/* Shared action hierarchy. Navigation, filters and photo gestures keep their roles. */
:root{--button-green:#205646;--button-green-hover:#174536;--button-line:#d7e1d6;--button-soft:#edf3e8;--button-radius:12px;--button-height:44px}
button{font-family:inherit;touch-action:manipulation;transition:background .16s,border-color .16s,color .16s,box-shadow .16s}
button:hover:not(:disabled){transform:none}
button:disabled{cursor:not-allowed}
button:focus-visible,a:focus-visible{outline:3px solid #91ad7b;outline-offset:3px}
.action-icon{display:block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
button.ui-button,.ui-button,.quiet-action,.agent-link-button,.client-link-button,.object-page #object-translate,.manager-row button{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--button-height);padding:11px 16px;
 border:1px solid var(--button-line);border-radius:var(--button-radius);background:#fff;color:#315b48;
 font-size:13px;font-weight:550;line-height:1.4;text-align:center;text-decoration:none;box-shadow:0 1px 2px #173c3405;
}
:is(button.ui-button,.ui-button,.quiet-action,.agent-link-button,.client-link-button,.manager-row button):hover:not(:disabled),.object-page #object-translate:hover:not(:disabled){background:#f0f5eb;border-color:#a8bea1}
.primary,button.ui-button--primary,.object-page #object-inquiry,.listing-confirmation .inquiry-button,.object-chat form button[type=submit],#object-prices button[type=submit]{
 display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:var(--button-height);padding:11px 18px;
 border:1px solid var(--button-green);border-radius:var(--button-radius);background:var(--button-green);color:#fff;
 font-size:13px;font-weight:600;line-height:1.4;text-align:center;box-shadow:0 3px 8px #20564612;
}
:is(.primary,button.ui-button--primary,.listing-confirmation .inquiry-button,.object-chat form button[type=submit],#object-prices button[type=submit]):hover:not(:disabled),.object-page #object-inquiry:hover:not(:disabled){background:var(--button-green-hover);border-color:var(--button-green-hover);box-shadow:0 4px 12px #20564620}
:is(.primary,.ui-button,.quiet-action,.inquiry-button):disabled{opacity:.48;box-shadow:none}
nav button,.sidebar-bottom>button{min-height:44px;border-radius:12px;line-height:1.35}
.mobile-links{padding:8px;border-radius:16px;box-shadow:0 12px 36px #173c3420}
.mobile-links button{min-height:44px;border-radius:10px;padding:12px 14px}
:is(#refresh,#logout,#mobile-menu){display:inline-grid;place-items:center;width:40px;height:40px;flex:none;padding:9px!important;border:1px solid transparent;border-radius:12px;color:#537362;background:transparent}
:is(#refresh,#logout,#mobile-menu):hover{border-color:#dce5d7;background:#eef3e9}
:is(#refresh,#logout,#mobile-menu) svg{width:19px;height:19px}
.select-trigger{min-height:44px;border-radius:12px}
.select-popup-head button{min-height:36px;padding:7px 10px;border-radius:8px}
.select-popup-head button:hover{background:#edf3e7;text-decoration:none}
.select-popup-foot button{min-height:40px;min-width:90px;border-radius:10px;padding:9px 17px;font-size:13px;font-weight:600}
.select-option{min-height:44px}
.searchbar>.select-control .select-trigger,.searchbar>button{min-height:44px;border-radius:11px}
.searchbar>button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;font-weight:550}
.searchbar>button .action-icon{width:18px;height:18px}
.filter-toolbar .quiet{min-height:40px;display:inline-flex;align-items:center;padding:8px 12px;border-radius:10px;background:#f0f4eb}
.filter-toolbar .quiet:hover{background:#e5eddd}
.area-chips button{min-height:40px;border-radius:30px;padding:9px 14px;font-size:12px;line-height:1.35}
.filter-token{min-height:34px;border-radius:30px;padding:7px 11px;line-height:1.35}
.filter-token svg{flex:none}
.card .save{display:grid;place-items:center;width:40px;height:40px;line-height:1;border-radius:50%;background:#ffffffed;box-shadow:0 2px 10px #183b3120;right:12px;top:12px}
.card .save .action-icon{width:20px;height:20px}
.card .save.saved{color:#205646;background:#e7f0e0}
.listing-confirmation{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:stretch;margin-top:18px;padding-top:16px;border-top:1px solid #e7ede2}
.listing-confirmation .confirmation-badge{justify-self:start;min-height:0;padding:5px 9px;border-radius:7px;font-size:10px;font-weight:550;line-height:1.4}
.listing-confirmation .inquiry-button{width:100%;max-width:none;min-width:0;margin:0;font-size:12px;min-height:42px;padding:10px 12px;order:0}
.listing-confirmation .facebook-icon{width:16px;height:16px}
.card-share-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}
.listing-confirmation .card-share-actions>button{order:0;min-width:0;min-height:40px;flex-basis:auto;margin:0;padding:9px 8px;font-size:11px;border-radius:10px;gap:6px}
.card-share-actions .action-icon{width:15px;height:15px}
.card-share-actions .client-preview-link{grid-column:1/-1;font-size:11px;padding:5px 0;color:#3f7051}
.request-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.request-actions a{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;margin:0;padding:9px 11px;border:1px solid #dce5d6;border-radius:10px;color:#456952;font-size:12px;text-align:center;line-height:1.4;background:#fff}
.request-actions a:first-child{grid-column:1/-1;background:#edf4e7;border-color:#d7e5cd;color:#245844;font-weight:600}
.request-actions a:hover{background:#e5eedf;border-color:#b1c7a2}
.request-funnel-status{min-height:44px;border-radius:12px;line-height:1.4;text-align:left}
.request-funnel-status:hover{border-color:#a9c198;background:#e5eedb}
.pagination button,.feed-more{min-height:44px;border:1px solid var(--button-line);border-radius:12px;padding:11px 20px;background:#fff;color:#315b48}
.object-header{gap:12px;flex-wrap:wrap}
.object-header>a:not(:first-child){display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 13px;border-radius:11px;font-size:13px;line-height:1.4;background:#f4f7ef}
.object-header>a:not(:first-child):hover{background:#e8efdf}
.object-page .object-info{min-width:0}
.object-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}
.object-page .object-actions button{width:100%;min-width:0;font-size:12px;padding:11px 12px;gap:8px}
.object-page #object-client-link{order:0}
.object-page #owner-confirmation{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin:0 0 24px;padding:17px;border:1px solid #dfe7d7;border-radius:16px;background:#fff;align-items:start}
.confirmation-meta{min-width:0}
.object-page #owner-confirmation .confirmation-badge{display:inline-flex;align-items:center;width:auto;font-size:11px;line-height:1.4;padding:6px 10px;border-radius:8px}
.confirmation-meta p{font-size:12px;line-height:1.55;color:#7c8a74;margin:9px 0 0}
.object-page #object-inquiry{margin:0;width:100%;min-width:0;font-size:13px;gap:9px}
.object-actions .client-preview-link{grid-column:1/-1;font-size:12px;padding:3px 0}
.object-note-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.object-note-actions button{flex:1 1 auto}
.object-page #object-source a,.object-page #object-map a{display:inline-flex;align-items:center;gap:7px;min-height:42px;margin:10px 8px 0 0;padding:10px 13px;border:1px solid #dce5d6;border-radius:11px;background:#fff;font-size:13px;line-height:1.4}
.object-page #object-source a:hover,.object-page #object-map a:hover{background:#ecf3e5;border-color:#b7caaa}
.object-page #object-translate{margin:16px 0 0;max-width:100%}
.object-chat form>button[type=submit]{margin-top:12px;min-width:140px}
.object-chat form>small{display:block;font-size:12px;line-height:1.5;margin-top:12px;color:#7c8b74}
.request-page-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:20px 0 24px}
.request-page-actions>button{flex:0 1 auto}
.request-page #search-request{display:inline-flex;margin:0}
.request-page #request-source{display:inline-flex;align-items:center;min-height:42px;padding:10px 0;font-size:13px}
.manager-row{gap:18px;flex-wrap:wrap}
.manager-row>div{flex:1 1 180px;min-width:0}
.manager-row button{flex:none;white-space:normal}
.settings-layout form>button.primary,.settings-layout details form>button.primary{margin-top:20px}
.smart-composer button{min-width:160px;margin:0}
.client-page .client-whatsapp{min-height:50px;border-radius:13px;font-size:14px;justify-content:center;gap:11px;box-shadow:0 4px 12px #1d57481a}
.client-page .client-whatsapp span{margin-left:0}
.client-page .gallery-arrow,.photo-nav,#lightbox .photo-arrow{display:grid;place-items:center;width:46px;height:46px;min-height:0;padding:0;border:1px solid #ffffff40;border-radius:50%;background:#10251ba6;color:#fff;box-shadow:0 3px 12px #0002}
:is(.gallery-arrow,.photo-nav,.photo-arrow) svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.object-page #object-photo-dialog .photo-nav{background:#10251ba6;border-color:#ffffff40;box-shadow:0 3px 12px #0002}
.photo-toolbar button{touch-action:manipulation}
@media(max-width:760px){
 .searchbar>button,.searchbar>.select-control .select-trigger{min-height:44px}
 .select-popup-head button{min-height:40px}.select-popup-foot button{min-height:44px}
 .area-chips button{min-height:42px}.filter-token{min-height:38px}
 .card-share-actions{grid-template-columns:1fr}.listing-confirmation .card-share-actions>button{min-height:42px;font-size:12px}
 .card .card-body{padding:16px}.card .card-area{font-size:9px}.card h3{font-size:15px}
 .card .save{width:36px;height:36px;top:9px;right:9px}
 .request-actions a{min-height:44px}.request-page-actions{display:grid;grid-template-columns:1fr;width:100%}.request-page-actions>button{width:100%}
 .object-header{padding:16px;gap:9px}.object-header>a:first-child{min-width:145px}.object-header>a:not(:first-child){font-size:12px;padding:9px 11px}
 .object-actions{gap:9px}.object-page .object-actions button{font-size:12px;min-height:46px;padding:11px 9px}
 .object-page #owner-confirmation{padding:15px}.object-page #object-inquiry{min-height:46px}
 .object-note-actions{gap:9px}.object-note-actions button{min-height:46px}
 .object-chat form>button[type=submit]{min-height:46px;width:100%}
 .manager-row button{width:100%}.smart-composer button{width:100%;min-height:46px}
}
@media(max-width:480px){.object-actions{grid-template-columns:1fr}.object-actions button{justify-content:center}.object-header .object-login{margin-left:auto}.request-actions{grid-template-columns:1fr}.request-actions a:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){button,a{transition:none!important}}

.action-icon--filled{fill:currentColor}

.inquiry-progress{width:100%;min-width:0}
.inquiry-status-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}
.inquiry-progress .confirmation-badge,.object-page #owner-confirmation .inquiry-progress .confirmation-badge{display:inline-flex;align-items:center;gap:7px;max-width:100%;white-space:normal;text-align:left;background:#eef3e8;color:#315c45;padding:7px 10px;line-height:1.5;border-radius:9px;font-size:12px}
.inquiry-status-dot{width:6px;height:6px;flex:none;border-radius:50%;background:currentColor;opacity:.65}
.inquiry-step{flex:none;color:#85917f;font-size:10px;line-height:1.5;padding-top:8px;white-space:nowrap}
.inquiry-progress-track{height:5px;overflow:hidden;border-radius:9px;background:#e8eee2;margin-top:12px}
.inquiry-progress-track>span{width:0%;display:block;height:100%;background:#50805d;border-radius:inherit;transition:width .45s ease}
.inquiry-progress-detail{font-size:12px;line-height:1.55;color:#7c8a74;margin:10px 0 0}
.inquiry-progress--blocked .confirmation-badge,.object-page #owner-confirmation .inquiry-progress--blocked .confirmation-badge{background:#fbf0df;color:#8d6b32}
.inquiry-progress--blocked .inquiry-progress-track{background:#f0e7d8}.inquiry-progress--blocked .inquiry-progress-track>span{background:#b89150}
.inquiry-progress--complete .confirmation-badge{background:#e3f0e6;color:#205742}
.inquiry-progress--working .inquiry-status-dot{animation:inquiry-pulse 1.5s ease-in-out infinite}
.inquiry-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[data-inquiry-status].is-typing::after{content:'';display:inline-block;width:1px;height:1em;background:currentColor;margin-left:2px;vertical-align:-.1em;animation:inquiry-caret .65s steps(1) infinite}
.listing-confirmation .inquiry-progress .confirmation-badge{font-size:10px;padding:6px 8px}.listing-confirmation .inquiry-progress-detail{font-size:11px}
@keyframes inquiry-caret{50%{opacity:0}}@keyframes inquiry-pulse{50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.inquiry-status-dot,[data-inquiry-status]::after{animation:none!important}.inquiry-progress-track>span{transition:none}}

.object-page button.primary{background:var(--button-green);border-color:var(--button-green);color:#fff}
.object-page button.primary:hover:not(:disabled){background:var(--button-green-hover);border-color:var(--button-green-hover)}
.object-actions:has(#object-client-link.hidden)>#share-object{grid-column:1/-1}

/* The agent gallery uses the same compact carousel as the client card. */
.object-page .object-gallery{display:block;min-width:0;align-self:start}
.object-page .object-gallery .client-slide{display:block;flex:0 0 100%;width:100%;height:100%;aspect-ratio:auto;padding:0;margin:0;border:0;border-radius:0;background:transparent}
.object-page .object-gallery .gallery-arrow{display:grid;place-items:center;width:44px;height:44px;aspect-ratio:1;padding:0;border:1px solid #ffffff40;border-radius:50%;background:#10251ba6;color:#fff}
.object-page .object-gallery .gallery-expand{display:inline-flex;align-items:center;justify-content:center;aspect-ratio:auto;width:auto;min-height:40px;padding:9px 14px;border:1px solid #ffffff80;border-radius:30px;background:#fffffff0;color:#245844;font-size:12px;font-weight:600}
.object-page .object-gallery .client-thumbs button{flex:0 0 82px;aspect-ratio:4/3;padding:2px;margin:0;border:2px solid transparent;border-radius:10px;background:#fff}
.object-page .object-gallery .client-thumbs button[aria-pressed=true]{border-color:#205646}
.object-page .object-gallery .client-thumbs img{display:block;width:100%;height:100%;object-fit:cover;border-radius:6px}
@media(max-width:800px){.object-page .object-gallery{position:static}.object-page .object-gallery .client-thumbs button{flex-basis:70px}}

.inquiry-progress-track[data-completed="0"]>.inquiry-progress-fill{width:0%}
.inquiry-progress-track[data-completed="1"]>.inquiry-progress-fill{width:12.5%}
.inquiry-progress-track[data-completed="2"]>.inquiry-progress-fill{width:25%}
.inquiry-progress-track[data-completed="3"]>.inquiry-progress-fill{width:37.5%}
.inquiry-progress-track[data-completed="4"]>.inquiry-progress-fill{width:50%}
.inquiry-progress-track[data-completed="5"]>.inquiry-progress-fill{width:62.5%}
.inquiry-progress-track[data-completed="6"]>.inquiry-progress-fill{width:75%}
.inquiry-progress-track[data-completed="7"]>.inquiry-progress-fill{width:87.5%}
.inquiry-progress-track[data-completed="8"]>.inquiry-progress-fill{width:100%}

/* Circular, server-backed progress inside the action, with a system-style spinner at startup. */
.inquiry-ring{width:20px;height:20px;display:inline-flex;flex:none;align-items:center;justify-content:center;color:currentColor}
.inquiry-ring svg{display:block;width:20px;height:20px;overflow:visible;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;transform:rotate(-90deg)}
.inquiry-ring-track{opacity:.24}.inquiry-ring-value{stroke-dasharray:56.549;stroke-dashoffset:56.549;transition:stroke-dashoffset .4s ease}
.inquiry-ring-pause{stroke-width:1.6;transform:rotate(90deg);transform-origin:12px 12px}
.inquiry-ring--working[data-completed="0"] .inquiry-ring-value,.inquiry-ring--waiting[data-completed="0"] .inquiry-ring-value{stroke-dasharray:14 42.549;stroke-dashoffset:0;transform-origin:12px 12px;animation:inquiry-ring-spin .85s linear infinite}
.object-page #object-inquiry:disabled:has(.inquiry-ring),.listing-confirmation .inquiry-button:disabled:has(.inquiry-ring){opacity:1;background:#edf2e8;border-color:#dce6d5;color:#54705c;box-shadow:none}
.object-page #object-inquiry:disabled:has(.inquiry-ring--blocked),.listing-confirmation .inquiry-button:disabled:has(.inquiry-ring--blocked){background:#f5f0e6;border-color:#e9dfcc;color:#8a7042}
@keyframes inquiry-ring-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.inquiry-ring-value{animation:none!important;transition:none}}
.inquiry-ring[data-completed="1"] .inquiry-ring-value{stroke-dashoffset:49.4804}
.inquiry-ring[data-completed="2"] .inquiry-ring-value{stroke-dashoffset:42.4117}
.inquiry-ring[data-completed="3"] .inquiry-ring-value{stroke-dashoffset:35.3431}
.inquiry-ring[data-completed="4"] .inquiry-ring-value{stroke-dashoffset:28.2745}
.inquiry-ring[data-completed="5"] .inquiry-ring-value{stroke-dashoffset:21.2059}
.inquiry-ring[data-completed="6"] .inquiry-ring-value{stroke-dashoffset:14.1372}
.inquiry-ring[data-completed="7"] .inquiry-ring-value{stroke-dashoffset:7.06862}
.inquiry-ring[data-completed="8"] .inquiry-ring-value{stroke-dashoffset:0}
