/* === foundation === */
/* Owner: shared tokens, type, controls. Component geometry belongs in its own file. */
:root{--font:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;--ink:#25364a;--muted:#5b6b7d;--brand:#2864a0;--brand-soft:#eaf2fc;--success:#146c55;--success-soft:#e7f4ee;--warning:#855800;--warning-soft:#fff4d9;--danger:#a22e3b;--danger-soft:#fdeef0;--departure:#7046a0;--departure-soft:#f2ecfa;--neutral:#536174;--neutral-soft:#edf0f4;--line:#d7e0e9;--plum:#7445a0;--plum-soft:#f2eafa;--berry:#aa3869;--berry-soft:#fcebf2;--earth:#80603d;--earth-soft:#f6efe4;--sea:#176c70;--sea-soft:#e6f4f4;--leaf:#bd3549;--page:#fff;--surface:#f5f7fa;--surface-raised:#fff;--brand-action:#2864a0;--on-action:#fff;--inverse-bg:#25364a;--inverse-text:#fff;--shadow:0 8px 28px #14253620;--disabled:#77818f;--radius:12px;--space:16px;--font-size:16px;--text-page:calc(var(--font-size)*1.75);--text-section:calc(var(--font-size)*1.25);--text-subsection:calc(var(--font-size)*1.0625);--text-body:var(--font-size);--text-control:calc(var(--font-size)*.9375);--text-label:calc(var(--font-size)*.875);--text-meta:calc(var(--font-size)*.8125);--text-caption:calc(var(--font-size)*.75);--green:var(--brand);--cream:var(--surface);--cal-label:210px;--cal-day:96px;--tone:var(--neutral);--tone-soft:var(--neutral-soft)}
:root[data-theme=dark]{--plum:#ceabf6;--plum-soft:#372944;--berry:#f5a2c6;--berry-soft:#452b39;--earth:#d8b88d;--earth-soft:#383127;--sea:#81d4d6;--sea-soft:#213a3c;--leaf:#f37285;color-scheme:dark;--ink:#e8ebef;--muted:#aeb7c4;--line:#3e4652;--page:#191c21;--surface:#252a31;--surface-raised:#20252c;--success:#7dd7b4;--success-soft:#183d31;--warning:#f4ce78;--warning-soft:#41351c;--danger:#ff9fab;--danger-soft:#45252e;--departure:#c5a6ef;--departure-soft:#352844;--neutral:#bdc6d3;--neutral-soft:#303741;--inverse-bg:#e8ebef;--inverse-text:#191c21;--shadow:0 8px 28px #0005;--disabled:#85909f}

*,*::before,*::after{box-sizing:border-box}html{color-scheme:light;scroll-padding-top:16px}body{margin:0;background:var(--page);color:var(--ink);font:var(--font-size)/1.5 var(--font);-webkit-text-size-adjust:100%}main,section,article,form,fieldset,div,label{min-width:0}img,svg{vertical-align:middle}img{max-width:100%}a{color:inherit;text-underline-offset:3px}button,input,select,textarea{font:inherit;color:inherit}button{appearance:none;-webkit-appearance:none;border:0;background:transparent;padding:0;cursor:pointer;line-height:1.35}button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--brand);outline-offset:3px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:1px}button svg{pointer-events:none}h1,h2,h3,h4{margin:0 0 12px;font-weight:650;line-height:1.25;letter-spacing:-.025em;text-wrap:balance;overflow-wrap:normal}h1{font-size:var(--text-page)}h2{font-size:var(--text-section)}h3{font-size:var(--text-subsection)}h4{font-size:var(--text-body)}p{margin:0 0 12px;overflow-wrap:break-word;text-wrap:pretty}small,.small-note{font-size:var(--text-meta);line-height:1.5;color:var(--muted)}ul,ol{padding-left:22px}li{margin:6px 0}address{font-style:normal}strong{font-weight:650}fieldset{border:0;padding:0;margin:0}dl{margin:0}dd{margin:0}pre{overflow:auto;padding:16px;background:var(--surface);border-radius:var(--radius);font-size:var(--text-meta)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Only actual form controls get field geometry; no global button borders. */
:where(input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea){display:block;width:100%;min-width:0;max-width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);font-size:var(--text-body);line-height:1.4;box-shadow:none}textarea{resize:vertical;min-height:88px}input[type=checkbox],input[type=radio]{width:20px;height:20px;flex:none;margin:2px 0;accent-color:var(--brand)}input[type=color]{width:54px;height:44px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised)}label{line-height:1.5}label>input,label>select,label>textarea,label>.date-trigger{margin-top:6px}:where(form>label:not(:has(input[type=checkbox]))){display:block;margin:16px 0}label:has(>input[type=checkbox]),.check-option{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.form-row,.inline-form{display:flex;align-items:flex-end;gap:var(--space);flex-wrap:wrap;margin:16px 0}.form-row>label,.inline-form>label{flex:1 1 160px;min-width:0;margin:0;font-size:var(--text-label);font-weight:500}.form-feedback{margin:10px 0;font-size:var(--text-label)}.form-feedback:empty{display:none}.error,.form-feedback.error{color:var(--danger)}.form-feedback.success{color:var(--success)}
/* Same size, shape and typography regardless of persona or element tag. */
.primary,.secondary,.danger,.compare-select,.compare-link,.chip,.ui-button,.search-button,.filter-clear,.request-actions>button,.unit-actions>button,.editor-photo-row>button,.address-results>button,.chat-tools button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink);font-size:var(--text-control);font-weight:550;line-height:1.35;text-align:center;text-decoration:none;white-space:normal;vertical-align:middle;max-width:100%}.primary,.search-button{background:var(--brand-action);border-color:var(--brand-action);color:var(--on-action)}.primary:hover,.search-button:hover{filter:brightness(.94)}.secondary:hover,.compare-link:hover,.compare-select:hover,.chip:hover,.ui-button:hover{background:var(--surface)}.danger{background:var(--surface-raised);color:var(--danger);border-color:var(--danger)}.danger:hover{background:var(--danger-soft)}.compare-select.chosen,.chip.active{background:var(--brand-soft);color:var(--brand);border-color:var(--brand)}.primary:disabled,.ui-button:disabled{filter:none}.segmented,.view-toggle{display:inline-flex;gap:2px;align-items:center;padding:0;border:0;box-shadow:inset 0 0 0 1px var(--line);border-radius:11px;background:var(--surface);flex:none}.segmented button,.view-toggle button{display:flex;align-items:center;justify-content:center;padding:10px 12px;min-height:44px;border:0;border-radius:8px;font-size:var(--text-label);white-space:nowrap}.segmented button[aria-pressed=true],.view-toggle .active{background:var(--surface-raised);color:var(--brand);box-shadow:0 1px 4px #25364a12;font-weight:650}.badge,.semantic-status{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:3px 8px;border-radius:7px;font-size:var(--text-meta);font-weight:550;line-height:1.4;color:var(--tone);background:var(--tone-soft);white-space:normal}.semantic-status:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--tone);flex:none}.tone-info,[data-tone=info]{--tone:var(--brand);--tone-soft:var(--brand-soft)}.tone-success,[data-tone=success]{--tone:var(--success);--tone-soft:var(--success-soft)}.tone-warning,[data-tone=warning]{--tone:var(--warning);--tone-soft:var(--warning-soft)}.tone-danger,[data-tone=danger]{--tone:var(--danger);--tone-soft:var(--danger-soft)}.tone-departure,[data-tone=departure]{--tone:var(--departure);--tone-soft:var(--departure-soft)}.tone-neutral,[data-tone=neutral]{--tone:var(--neutral);--tone-soft:var(--neutral-soft)}.status-confirmed,.status-active{color:var(--brand);background:var(--brand-soft)}.status-pending,.status-new{color:var(--warning);background:var(--warning-soft)}.status-failed{color:var(--danger);background:var(--danger-soft)}.status-cancelled{color:var(--neutral);background:var(--neutral-soft)}.notice,.filter-empty,.rental-term{padding:14px 16px;background:var(--brand-soft);color:var(--ink);border-radius:var(--radius);margin:16px 0;font-size:var(--text-label);line-height:1.55}.notice p:last-child{margin:0}.rental-term.invalid{background:var(--danger-soft);color:var(--danger)}.eyebrow,.stay-origin{display:block;font-size:var(--text-caption);line-height:1.5;font-weight:600;letter-spacing:.05em;color:var(--muted);text-transform:uppercase;margin-bottom:7px}.permission-tags,.unit-highlights{display:flex;flex-wrap:wrap;gap:7px}.unit-highlights span{padding:4px 7px;background:var(--surface);border-radius:6px;font-size:var(--text-meta);color:var(--muted)}.row-between,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.section-heading{margin:0 0 12px}.section-heading h2,.row-between h2{margin:0}.section-heading>span{font-size:var(--text-label);color:var(--muted)}.section-heading>a{font-size:var(--text-label);color:var(--brand)}.panel{padding:20px 0;margin:0;border:0;border-bottom:1px solid var(--line);background:transparent;border-radius:0}.panel:last-child{border-bottom:0}.panel .panel,.panel .request-card{border:0;background:transparent;padding:16px 0;margin:0;border-radius:0}.panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.compact-disclosure,.property-extra,.all-unit-photos,.source-policies details,.calendar-cancelled,.booking-history,.cancel-booking,.rental-documents{border:0;border-top:1px solid var(--line);border-radius:0;padding:12px 0;margin:16px 0;background:transparent}summary{cursor:pointer;line-height:1.5}.compact-disclosure>summary,.property-extra>summary,.all-unit-photos>summary,.source-policies summary,.calendar-cancelled>summary,.booking-history>summary,.cancel-booking>summary,.rental-documents>summary{padding:9px 0;min-height:44px;font-size:var(--text-control);font-weight:550}.compact-disclosure>.panel{padding:16px 0;border:0}.compact-disclosure>:not(summary){margin-top:12px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:13px 18px;border-radius:12px;box-shadow:0 8px 24px #1233;background:var(--inverse-bg);color:var(--inverse-text);z-index:3000;max-width:calc(100vw - 32px);font-size:var(--text-control)}.toast.show{opacity:1;transform:translate(-50%,0)}footer{display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;padding:24px 28px;border-top:1px solid var(--line);font-size:var(--text-meta);color:var(--muted)}.empty{padding:36px 16px;text-align:center;grid-column:1/-1}.empty h2{font-size:var(--text-section)}.empty p{color:var(--muted)}.empty>button{display:inline-flex;min-height:44px;align-items:center;padding:10px 16px;border-radius:10px;color:var(--on-action);background:var(--brand-action)}
@media(max-width:760px){:root{--text-page:calc(var(--font-size)*1.5)}h1{font-size:var(--text-page)}h2{font-size:var(--text-section)}.panel-grid{grid-template-columns:1fr;gap:8px}.panel{padding:16px 0}.form-row,.inline-form{gap:12px}.form-row>label,.inline-form>label{flex-basis:calc(50% - 6px)}.primary,.secondary,.compare-select,.compare-link,.chip,.ui-button{font-size:var(--text-label);padding:10px 12px}.row-between{align-items:flex-start}footer{display:none}.toast{bottom:100px}.section-heading{gap:12px}.section-heading h2{font-size:var(--text-section)}}
@media(max-width:380px){.form-row>label,.inline-form>label{flex-basis:100%}}
a,button,input,select,textarea,summary{transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease,box-shadow 180ms ease}a:not([class]):hover{text-decoration-thickness:2px}::selection{background:var(--brand-soft);color:var(--ink)}.toast{transition:opacity 180ms ease,transform 180ms ease}dialog[open]{animation:context-enter 180ms ease-out}@keyframes context-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.chip[data-filter=resort] .category-icon{color:var(--sea)}.chip[data-filter=apartment] .category-icon{color:var(--plum)}.chip[data-filter=entire] .category-icon{color:var(--earth)}.category-icon{padding:2px;box-sizing:content-box;border-radius:7px}.chip[data-filter=resort] .category-icon{background:var(--sea-soft)}.chip[data-filter=apartment] .category-icon{background:var(--plum-soft)}.chip[data-filter=entire] .category-icon{background:var(--earth-soft)}

.panel>p:last-child,.notice>p:last-child,.empty>p:last-child{margin-bottom:0}.section-heading:not(:first-child){margin-top:20px}h1,h2,h3{hyphens:none}

/* Labeled facts share the same rhythm in guest and staff detail views. */
.detail-facts{margin:12px 0}.detail-facts>div{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,2.5fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:var(--text-label)}.detail-facts>div:last-child{border-bottom:0}.detail-facts dt{color:var(--muted)}.detail-facts dd{overflow-wrap:anywhere}.detail-facts dd>small{display:block;margin-top:3px}@media(max-width:480px){.detail-facts>div{grid-template-columns:1fr;gap:4px}}

.panel+.compact-disclosure{border-top:0;margin-top:0}

/* Related actions share a labelled section; primary and optional actions have distinct places. */
.action-section{min-width:0;margin:0;padding:18px 0;border-top:1px solid var(--line)}.action-section>h3,.action-heading{font-size:var(--text-label);font-weight:650;line-height:1.4;margin:0 0 12px}.action-section>p,.action-note{font-size:var(--text-meta);line-height:1.5;color:var(--muted);margin:8px 0 0}.action-pair{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin:0}.action-pair>label{display:block;min-width:0;margin:0;font-size:var(--text-label)}.action-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:12px 0 0}.action-help{margin:12px 0 0;padding:0;border:0}.action-help>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font-size:var(--text-meta);color:var(--muted);list-style:none}.action-help>summary::-webkit-details-marker{display:none}.action-help>summary:after{content:'›';font-size:22px;transition:transform 180ms ease}.action-help[open]>summary:after{transform:rotate(90deg)}.action-help>p{font-size:var(--text-meta);color:var(--muted);margin:8px 0;line-height:1.5}.action-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);margin:8px 0}.action-list>button{width:100%;justify-content:flex-start;text-align:left;padding:12px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}.action-list>button:hover{background:var(--surface)}.action-state{display:flex;align-items:flex-start;gap:12px}.action-state>p{flex:1;min-width:0;font-size:var(--text-meta);line-height:1.5;color:var(--muted);margin:2px 0 0}.action-state>.semantic-status{flex:none}
@media(max-width:480px){.action-pair{grid-template-columns:minmax(0,1fr);gap:10px}.action-pair>button{justify-self:start}.action-buttons{display:grid;grid-template-columns:minmax(0,1fr)}.action-buttons>button{width:100%}.action-state{flex-direction:column;gap:6px}.action-section{padding:16px 0}}

/* === shell === */
/* Shared shell. Staff uses one compact navigation menu, not a second design language. */
.preview-bar{display:none}header{display:grid;grid-template-columns:minmax(96px,1fr) auto minmax(96px,1fr);align-items:center;gap:12px;padding:12px 28px;min-height:72px;border-bottom:1px solid var(--line);background:var(--surface-raised);position:relative;z-index:50}.brand{grid-column:2;grid-row:1;justify-self:center;display:inline-flex;align-items:center;gap:10px;text-decoration:none;flex:none}.brand-emblem{display:block;width:44px;height:44px;flex:none;stroke:none;color:var(--leaf)}.brand>span{font-size:28px;line-height:1;font-weight:700;letter-spacing:-.8px}.brand small{display:block;font-size:8px;line-height:1.3;font-weight:650;letter-spacing:1.25px;margin-top:6px}header>#main-nav{display:none}#main-nav{display:flex;align-items:center;gap:4px;flex:1;min-width:0}#main-nav a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 12px;border-radius:9px;text-decoration:none;font-size:var(--text-label);white-space:nowrap}#main-nav a.active{color:var(--brand);background:var(--brand-soft);font-weight:650}.nav-symbol{display:none}.nav-symbol svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.header-right{display:none}.language{display:none}#demo-tools-toggle{margin-left:auto;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);font-size:var(--text-label);flex:none}.role-label{display:block;width:100%;max-width:360px}.role-label select{width:100%}.demo-tools-open .header-right{display:flex;grid-column:1/-1;grid-row:2;justify-self:center;width:100%;max-width:360px;margin:8px 0 0}.demo-tools-open header{flex-wrap:wrap}.demo-strip{display:none}.demo-tools-open .demo-strip{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:16px 28px;background:var(--surface);border-bottom:1px solid var(--line);font-size:var(--text-label)}.demo-strip>span{flex:1 1 300px}.demo-strip button,.demo-strip a{display:inline-flex;align-items:center;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);text-decoration:none;color:var(--ink);font-size:var(--text-label)}.workspace{max-width:1440px;margin:0 auto;padding:24px 32px 28px}.workspace>h1{margin:0 0 8px}.workspace>.intro{max-width:84ch;color:var(--muted);margin-bottom:20px;font-size:var(--text-body)}.workspace>.eyebrow{display:none}body[data-persona=staff] #demo-tools-toggle{margin-left:0}.public-page{max-width:1240px;margin:auto;padding:24px 28px 28px}.page-back{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;margin:0 0 18px}.page-back>a{display:flex;align-items:center;min-height:44px;font-size:var(--text-label);text-decoration:none;color:var(--muted)}.demo-label{font-size:var(--text-meta);color:var(--muted);white-space:nowrap}.public-page .detail-body{padding:0}.public-page #detail-content>h1{margin-bottom:12px}.public-page .detail-body>h2{font-size:var(--text-page)}.public-page .detail-body>.eyebrow{margin-top:20px}
@media(max-width:900px){header{gap:16px;padding:12px 20px}.brand>span{font-size:25px}.brand small{font-size:8px;letter-spacing:1px}#main-nav a{padding:10px;font-size:var(--text-label)}}
@media(max-width:760px){header{min-height:62px;padding:9px 16px;gap:10px}.brand-emblem{width:32px;height:36px}.brand>span{font-size:24px}.brand{margin-right:0}.public-page{padding:20px 16px 28px}.page-back{margin-bottom:14px}.workspace{padding:20px 16px 28px}.workspace-current{display:none}body[data-persona=staff] header{gap:8px}body[data-persona=staff] #demo-tools-toggle{padding:10px 8px}.demo-tools-open .demo-strip{padding:12px 16px}.header-right{order:5;flex-basis:100%}.page-back .demo-label{font-size:var(--text-caption)}}

/* A single compact theme menu remains reachable on every persona and route. */
.appearance-menu{grid-column:3;grid-row:1;justify-self:end;position:relative;flex:none;margin:0}.appearance-menu>summary{display:grid;place-items:center;width:44px;height:44px;list-style:none;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised)}.appearance-menu>summary::-webkit-details-marker{display:none}.appearance-menu>summary svg{width:22px;height:22px;fill:none;stroke:var(--plum);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;display:block}.appearance-panel{position:absolute;right:0;top:calc(100% + 8px);display:grid;gap:12px;width:290px;max-width:calc(100vw - 32px);padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-raised);box-shadow:var(--shadow);z-index:120}.appearance-menu:not([open])>.appearance-panel{display:none}.appearance-panel>strong{font-size:var(--text-control)}.appearance-panel .segmented{display:flex}.appearance-panel .segmented button{flex:1}.appearance-panel p{margin:0;font-size:var(--text-caption)}.appearance-demo{border-top:1px solid var(--line);padding-top:12px}.appearance-demo #demo-tools-toggle{margin:0;width:100%;background:var(--surface-raised)}body[data-persona=staff] .appearance-menu{margin-left:0}
@media(max-width:760px){header,body[data-persona=staff] header{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:4px;padding:8px 12px;min-height:68px}.brand{grid-column:2;grid-row:1;justify-self:center;gap:7px}.brand>span{font-size:25px}.brand small{display:block;font-size:7px;letter-spacing:1px;margin-top:5px}.brand-emblem{width:36px;height:36px}.appearance-menu,body[data-persona=staff] .appearance-menu{grid-column:3;grid-row:1;justify-self:end;margin:0}.demo-tools-open .header-right{grid-column:1/-1;grid-row:2;margin:8px 0 0}.appearance-panel{right:0;max-height:calc(100dvh - 90px);overflow:auto}}

.sandbox-notice{padding:5px 16px;text-align:center;font-size:var(--text-caption);line-height:1.4;color:var(--muted);border-bottom:1px solid var(--line);background:var(--page)}.demo-label{display:none}.locate-link{color:var(--plum);background:var(--plum-soft);border-color:transparent}.property-address+.locate-link{margin:4px 0 12px}.locate-link .category-icon{width:18px;height:18px;padding:0}

#main-nav a[href="#explore"] .nav-symbol{color:var(--sea)}#main-nav a[href="#saved"] .nav-symbol{color:var(--berry)}#main-nav a[href="#stays"] .nav-symbol{color:var(--earth)}#main-nav a[href="#services"] .nav-symbol{color:var(--plum)}

/* Workspace navigation: one accessible modal drawer and a persistent calendar entry. */
.workspace-menu{grid-column:1;grid-row:1;justify-self:start;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 12px;margin:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised)}.workspace-menu svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.workspace-drawer{position:fixed;inset:0 auto 0 0;margin:0;width:340px;max-width:calc(100vw - 32px);height:100dvh;max-height:100dvh;padding:0;border:0;border-right:1px solid var(--line);border-radius:0;background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow);overflow:auto}.workspace-drawer::backdrop{background:rgb(0 0 0 / .48)}.workspace-drawer[open]{display:flex;flex-direction:column;animation:drawer-in 180ms ease-out}.drawer-open{overflow:hidden}.drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 20px 12px}.drawer-heading strong{font-size:var(--text-section)}.drawer-heading p{font-size:var(--text-caption);color:var(--muted);margin:2px 0 0}.drawer-close{font-size:24px;padding:5px;min-width:44px}.drawer-nav{padding:0 12px 16px;flex:1}.workspace-drawer #main-nav{display:grid;gap:3px}.workspace-drawer #main-nav a{justify-content:flex-start;white-space:normal;min-height:44px;padding:7px 10px;font-size:var(--text-label);gap:10px}.drawer-section-label{margin:16px 10px 5px;color:var(--muted);font-size:var(--text-caption);font-weight:650;letter-spacing:.05em;text-transform:uppercase}.workspace-symbol{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:9px;color:var(--brand);background:var(--brand-soft)}.workspace-symbol svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.workspace-symbol.tone-departure{color:var(--plum);background:var(--plum-soft)}.workspace-symbol.tone-success{color:var(--sea);background:var(--sea-soft)}.workspace-symbol.tone-danger{color:var(--berry);background:var(--berry-soft)}.workspace-symbol.tone-warning{color:var(--earth);background:var(--earth-soft)}.drawer-footer{display:grid;gap:10px;padding:16px 22px;border-top:1px solid var(--line);font-size:var(--text-meta)}.drawer-footer a{min-height:44px;display:flex;align-items:center;text-decoration:none}.drawer-footer span{font-size:var(--text-caption);color:var(--muted)}body[data-persona=staff] .appearance-menu{order:4}.header-right{order:5}@keyframes drawer-in{from{opacity:.5;transform:translateX(-16px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:760px){.workspace-menu{grid-column:1;grid-row:1;justify-self:start;width:44px;height:44px;padding:10px;margin:0}.workspace-menu>span{display:none}.demo-tools-open .header-right{grid-row:3}.workspace{padding-bottom:40px}.workspace-drawer{width:320px}.drawer-heading{padding:16px 20px 8px}}
@media(prefers-reduced-motion:reduce){.workspace-drawer[open]{animation:none}}

/* One persistent primary navigation for every account category. */
body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.appearance-menu{margin-left:0}.quick-nav{position:fixed;inset:auto 0 0;z-index:900;display:flex;justify-content:center;gap:8px;min-height:60px;padding:7px max(12px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface-raised)}.quick-nav a{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:44px;padding:6px 16px;border-radius:10px;font-size:var(--text-label);text-decoration:none;color:var(--muted)}.quick-nav a.active{color:var(--brand);font-weight:650;background:var(--brand-soft)}.quick-nav .workspace-symbol{width:24px;height:24px;background:transparent}.quick-nav .workspace-symbol svg{width:23px;height:23px}.profile-settings-link{display:flex;align-items:center;gap:12px;max-width:720px;min-height:64px;margin:12px 0 20px;padding:12px 14px;border-radius:var(--radius);background:var(--surface-raised);border:1px solid var(--line);text-decoration:none;font-size:var(--text-control)}.profile-settings-link>span:nth-child(2){flex:1;font-weight:550}.profile-settings-link small{display:block;font-weight:400;font-size:var(--text-caption);margin-top:2px}.profile-settings-link>span:last-child{font-size:24px;color:var(--muted)}.toast{bottom:96px}
@media(max-width:760px){.quick-nav{gap:2px;padding:5px 6px calc(5px + env(safe-area-inset-bottom));min-height:72px}.quick-nav a{display:grid;grid-template-rows:24px auto;align-content:center;justify-items:center;flex:1;gap:3px;padding:4px 1px;border-radius:0;min-height:60px;font-size:var(--text-caption);line-height:1.2;text-align:center}.quick-nav a>span:last-child{min-width:0;min-height:29px;max-width:100%;overflow-wrap:normal}.quick-nav a.active{background:transparent}.demo-tools-open .header-right{grid-row:2}.workspace{padding-bottom:32px}}

/* Give five persistent destinations the full width on compact phones. */
@media(max-width:389px){.quick-nav{gap:0;padding-inline:0}}

/* Уведомление обновления не закрывает нижнюю навигацию и не сбрасывает формы. */
.release-update{position:fixed;z-index:90;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));max-width:540px;margin:auto;padding:12px;display:flex;align-items:center;gap:12px;background:var(--surface-raised);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-popover);font-size:var(--text-label)}
.release-update span{flex:1}

/* === catalogue === */
/* Search, catalogue, property and booking pages: shared geometry for every role. */
/* Публичные HTML-страницы используют те же tokens/карточки, без отдельной темы. */
.public-main{width:100%;max-width:1280px;margin:auto;padding:24px 28px 36px}
.public-skip{position:absolute;left:12px;top:-80px;z-index:100;background:var(--surface-raised);padding:12px}
.public-skip:focus{top:8px}
.public-theme{grid-column:3;grid-row:1;justify-self:end;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:var(--radius);font-size:24px}
.public-lead{max-width:850px;margin:16px 0 28px}
.public-lead h1{font-size:var(--text-page);line-height:1.2;margin:8px 0 14px}
.public-lead p,.public-section p{line-height:1.65;color:var(--muted)}
.public-lead address{font-style:normal;line-height:1.5;color:var(--muted)}
.public-kind{font-size:var(--text-label);margin:0}
.public-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:var(--text-meta)}
.public-breadcrumbs a{display:inline-flex;align-items:center;min-height:44px}
.public-main .cards{grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:12px 24px}
.public-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}
.public-site .catalogue-gallery img{height:auto;aspect-ratio:4/3}
.public-section{padding:24px 0;border-top:1px solid var(--line)}
.public-section h2{font-size:var(--text-section);margin:0 0 12px}
.public-request{max-width:680px}.public-request fieldset{border:0;margin:0;padding:0}.public-request legend{font-size:var(--text-section);font-weight:600;margin-bottom:16px}.public-request label{display:block;margin:16px 0}.public-request input:not([type=checkbox]),.public-request textarea{display:block;width:100%;margin-top:8px;font-size:16px}.public-request-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.public-request .public-consent{display:flex;align-items:flex-start;gap:12px;font-size:var(--text-label);line-height:1.6}.public-consent input{flex:none;margin-top:5px}.public-request [role=alert]{color:var(--danger)}
.public-request input,.public-request textarea{min-width:0}.public-request #request-status{overflow-wrap:anywhere;line-height:1.6}
.public-amenities{columns:3;column-gap:28px;padding-left:20px;line-height:1.65}
.public-amenities li{break-inside:avoid;padding:4px 0}
.public-location-list{list-style:none;padding:0;margin:0}
.public-location-list li{display:grid;grid-template-columns:minmax(150px,1fr) 2fr;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:12px 0}
.public-location-list a{min-height:44px;display:inline-flex;align-items:center;font-weight:600}
.public-location-list span{color:var(--muted);font-size:var(--text-label)}
.public-nav{display:flex;justify-content:center;gap:12px;position:sticky;bottom:0;background:var(--surface-raised);border-top:1px solid var(--line);z-index:20;padding:6px 16px}
.public-nav a{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;min-height:48px;max-width:180px;padding:8px 16px;text-align:center;text-decoration:none;font-size:var(--text-label);border-radius:var(--radius)}
.public-nav a[aria-current=page]{color:var(--brand);background:var(--brand-soft);font-weight:600}
@media(max-width:767px){.public-main{padding:16px}.public-amenities{columns:2}.public-nav{gap:0;padding:4px 8px}.public-nav a{flex:1 1 auto;min-width:0;padding:6px 4px;font-size:12px}.public-location-list li{grid-template-columns:1fr;gap:0}.public-site .catalogue-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.public-site .catalogue-gallery img:first-child{grid-column:1/-1}.public-lead{margin-top:12px}}
@media(max-width:389px){.public-amenities{columns:1}}
.browse-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 28px 18px}
.browse-head h1{font-size:var(--text-page);line-height:1.2;margin:0}
.browse-head p{font-size:var(--text-label);color:var(--muted);margin:4px 0 0}
.compact-search{--search-control-height:max(46px,calc(var(--text-body)*1.4 + 22px));display:flex;gap:12px;align-items:flex-start;margin:0 28px 18px}
.compact-search>.primary{min-height:var(--search-control-height)}
.destination-label{margin:0;display:flex;align-items:center;gap:10px;flex:2;min-width:0;min-height:var(--search-control-height);border:1px solid var(--line);border-radius:10px;padding:0 12px}
.destination-label>.search-symbol{display:grid;place-items:center;flex:none;width:20px;height:20px}.search-symbol svg{display:block;width:20px;height:20px}
.destination-label input{min-height:calc(var(--search-control-height) - 2px);line-height:1.4;border:0;background:transparent;margin:0;padding:10px 0;outline-offset:-1px}
.search-dates{flex:1;min-width:180px}
.search-dates>summary,.amenities-filter>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;border:1px solid var(--line);border-radius:var(--radius);min-height:44px;padding:10px 13px;background:var(--surface-raised);font-size:var(--text-body);line-height:1.35}
.search-dates>summary::after,.amenities-filter>summary::after{content:'⌄';color:var(--muted)}
.search-dates>summary{min-height:var(--search-control-height)}
.search-dates>summary::-webkit-details-marker,.amenities-filter>summary::-webkit-details-marker{display:none}
.date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) 80px;gap:12px;margin:12px 0 0;font-size:var(--text-label)}
.search-dates[open]{flex:2}
.date-fields label{font-size:var(--text-label)}
.browse-toolbar{padding:0 28px 16px}
.browse-types{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:2px 0;scrollbar-width:none}
.browse-types .chip{white-space:nowrap;flex:none;gap:8px}
.category-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.filter-row{--filter-control-height:max(44px,calc(var(--text-control)*1.35 + 22px));display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin:0 28px 16px}
.filter-row .view-toggle{margin-left:auto}
.filter-row .amenities-filter>summary,.filter-row .choice-trigger,.filter-row .compare-link,.filter-row .view-toggle button{min-height:var(--filter-control-height);font-size:var(--text-control);line-height:1.35}
.amenities-filter{min-width:180px}
.amenities-filter[open]{flex:1 1 100%}
.amenity-options{padding:16px 0 0;margin:0}
.amenity-options>p{font-size:var(--text-label);color:var(--muted)}
.amenity-checks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 16px;margin-bottom:12px}
.amenity-checks label{display:flex;align-items:center;gap:9px;min-height:40px;font-size:var(--text-label)}
.amenity-options>button{margin:4px 8px 4px 0}
.stay-type select{margin:0;font-size:var(--text-body);min-height:44px;max-width:210px}
.compare-link{white-space:nowrap}
.results-line{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:0 28px 18px;font-size:var(--text-label);color:var(--muted)}
.results-line strong{color:var(--ink);font-weight:550}
.browse-note,.rental-link{margin:0 28px 16px;color:var(--muted);font-size:var(--text-label)}
.content{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,41%);gap:28px;padding:0 28px 36px;align-items:start}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px calc(var(--space) + 6px);align-items:start}
.content.list-only{display:block}
.content.list-only .cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.content.list-only .map-wrap,.content.map-only .cards{display:none}
.content.map-only{display:block}
.content.map-only .map-wrap{max-width:none}
.property-card{display:grid;grid-template-rows:subgrid;grid-row:span 5;align-self:stretch;gap:0;border:0;background:transparent;min-width:0;padding:0;border-radius:0}
.card-media{position:relative;min-width:0}
.property-card .location{font-size:var(--text-meta);color:var(--muted);margin:12px 0 4px;line-height:1.4}
.property-card h2{font-size:var(--text-subsection);line-height:1.35;margin:0 0 5px}
.property-card h2 a{text-decoration:none}
.property-card h2 a:hover{text-decoration:underline}
.property-card>p{font-size:var(--text-label);line-height:1.5;color:var(--muted);margin:0 0 10px}
.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:0;margin-bottom:16px}
.card-bottom>a,.card-bottom>button{display:inline-flex;align-items:center;gap:7px;justify-content:center;min-height:44px;padding:9px 0;border:0;background:transparent;font-size:var(--text-label);text-decoration:none;color:var(--brand);font-weight:550}
.card-bottom>button{padding:9px 10px;border-radius:9px;background:var(--plum-soft);color:var(--plum)}
.heart{position:absolute;z-index:3;top:8px;right:8px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:0;background:radial-gradient(circle,var(--surface-raised) 0 16px,transparent 17px);color:var(--ink);padding:0}
.heart svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.heart.saved{color:var(--berry);background:radial-gradient(circle,var(--berry-soft) 0 16px,transparent 17px)}
.heart.saved svg{fill:currentColor}
.building,.no-photo{display:grid;place-items:center;background:var(--surface);color:var(--muted);min-height:180px;border-radius:12px}
.building svg{width:110px;fill:none;stroke:var(--muted);stroke-width:2}
.property-heading{margin-bottom:16px}
.property-heading h1{margin-bottom:9px}
.property-heading p,.property-address{font-size:var(--text-body);color:var(--muted);margin:6px 0;line-height:1.5}
.property-heading address+p{display:none}
.property-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0 20px}
.property-intro>p{font-size:var(--text-label);color:var(--muted);margin:0}
.grounds-compact{display:flex;align-items:center;gap:10px;padding:6px 0;background:transparent;border:0;border-radius:0;color:var(--ink);text-align:left;max-width:100%;min-height:54px}
.grounds-compact>img{width:70px;height:44px;object-fit:cover;border-radius:7px}
.grounds-compact>span{display:grid;gap:2px}
.grounds-compact strong{font-size:var(--text-label)}
.grounds-compact small{font-size:var(--text-meta)}
.grounds-compact>span:last-child{font-size:23px;margin-left:6px}
.unit-filter-note{font-size:var(--text-label);line-height:1.5;color:var(--muted);margin:0 0 18px}
.unit-filter-note .secondary{margin:6px 0 0 8px}
.unit-list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--space) + 12px) calc(var(--space) + 8px)}
.unit-option{min-width:0;display:flex;flex-direction:column;padding:0;border:0;background:transparent}
.unit-option-body{display:flex;flex-direction:column;flex:1;padding:14px 0 0}
.unit-option h3{font-size:var(--text-subsection);line-height:1.4;margin:0 0 6px}
.unit-option h3 a{text-decoration:none}
.unit-option p{font-size:var(--text-label);line-height:1.5;color:var(--muted);margin:0 0 10px}
.unit-highlights{margin-bottom:12px}
.unit-option-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}
.unit-page-actions,.detail-actions,.request-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:14px 0}
.detail-actions>a{font-size:var(--text-label)}
.property-extra p,.source-policies p{font-size:var(--text-label);line-height:1.55;color:var(--muted)}
.property-extra ul,.source-policies ul{font-size:var(--text-label);line-height:1.55;margin-block:8px 12px}
.source-policies h3{margin-bottom:8px}
.source-policies details:last-child{margin-bottom:0}
.catalogue-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.catalogue-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.detail-photo{height:260px}
.detail-photo img{width:100%;height:100%;object-fit:cover;border-radius:12px}
.demo-unit{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.demo-unit strong{font-size:var(--text-subsection)}
.demo-unit p{font-size:var(--text-label);margin:6px 0}
.unit-actions{display:flex;flex-direction:column;gap:8px;flex:none;max-width:210px}
.catalogue-filters{margin:0 28px 24px}
.catalogue-unit-search{margin-top:20px}
.journey-planner{max-width:780px;margin:20px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.journey-planner .row-between h3{margin:0}
.journey-planner>p{font-size:var(--text-label);color:var(--muted);margin:12px 0}
.stay-time-rule{background:var(--surface);padding:12px;border-radius:10px}
.journey-planner .form-row>label{flex-basis:160px}
.price-breakdown{margin:18px 0;font-size:var(--text-body)}
.price-breakdown>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px 16px;padding:7px 0}
.price-breakdown dt{min-width:0;overflow-wrap:anywhere}
.price-breakdown dd{flex:none;white-space:nowrap;font-weight:600}
.price-total{border-top:1px solid var(--line);margin-top:8px;padding-top:14px;font-size:var(--text-section);font-weight:650}
.journey-terms{padding:16px 0;margin:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:var(--text-label)}
.journey-terms p:last-child{margin-bottom:0}
.journey-steps,.rental-steps{display:flex;gap:6px 16px;flex-wrap:wrap;font-size:var(--text-label);color:var(--muted);margin:12px 0 24px}
.journey-steps strong,.rental-steps strong{color:var(--brand)}
.journey-summary{display:flex;align-items:center;gap:18px;margin:20px 0}
.journey-summary img{width:150px;height:120px;object-fit:cover;border-radius:10px}
.journey-summary p{font-size:var(--text-label);line-height:1.5;margin:6px 0 0}
.journey-summary h3{margin:0}
.journey-checkout-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:28px}
.journey-cost{padding:20px;border:1px solid var(--line);border-radius:12px;align-self:start}
.journey-consent{display:flex;gap:10px;align-items:flex-start;margin:20px 0;font-size:var(--text-label);line-height:1.55;cursor:pointer}
.journey-consent input{margin-top:3px}
.journey-checkout,.journey-confirmation{max-width:1000px;margin:auto}
.journey-confirmation>button{margin:8px 8px 0 0}
.journey-receipt{margin-top:20px}
.compare-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) 100px auto;gap:16px;align-items:end;margin:24px 0}
.compare-dates label{margin:0;font-size:var(--text-label);font-weight:500}
.compare-dates input{margin-top:6px}
.comparison-scroll{overflow:auto;max-width:100%;margin:24px 0}
.comparison-table{border-collapse:collapse;table-layout:fixed;min-width:800px;width:100%;font-size:var(--text-label)}
.comparison-table th,.comparison-table td{padding:16px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left;width:240px}
.comparison-table tr>:first-child{width:150px;background:var(--surface)}
.comparison-table thead img{width:100%;height:150px;object-fit:cover;border-radius:10px;margin-bottom:12px}
.comparison-table thead span{display:block;font-weight:400;color:var(--muted);font-size:var(--text-label);margin-bottom:5px}
.comparison-table thead a{display:block;margin-bottom:10px;font-size:var(--text-subsection);line-height:1.35;text-decoration:none}
.comparison-table button{min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.comparison-table ul{margin:0;padding-left:18px}
.compare-total{font-size:var(--text-section)}
.feature-yes{color:var(--success)}
.feature-unknown{color:var(--muted)}
#compare-tray{display:flex;align-items:center;gap:12px;position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);padding:10px 14px;background:var(--surface-raised);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);z-index:850;font-size:var(--text-label)}
#clear-compare{min-height:44px;min-width:36px;font-size:25px}
.inquiry-form{max-width:840px}
.rental-documents li{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rental-documents li button{color:var(--brand);min-height:44px}
.inquiry-form input[type=file]{font-size:var(--text-label);padding:10px}
.inquiry-form input[type=file]::file-selector-button{font:inherit;border:0;background:var(--surface);padding:7px;border-radius:6px;margin-right:10px}
.policy-times{display:flex;flex-wrap:wrap;gap:12px 24px;padding:6px 0 2px}
.policy-times dt{font-size:var(--text-meta);color:var(--muted)}
.policy-times dd{font-size:var(--text-body);font-weight:600;margin-top:4px}
.rental-page-heading p{color:var(--muted)}

@media(max-width:1100px){.content{grid-template-columns:minmax(0,1fr) minmax(300px,42%);gap:24px}
.content:not(.list-only):not(.map-only) .cards{grid-template-columns:1fr}
.unit-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.amenity-checks{grid-template-columns:repeat(3,minmax(0,1fr))}
.compact-search{flex-wrap:wrap}
.search-dates[open]{flex-basis:100%;order:3}
}

@media(max-width:760px){.browse-head{padding:16px 16px 12px}
.browse-head h1{font-size:var(--text-page)}
.browse-head>div>p{display:none}
.compact-search{margin:0 16px 14px;gap:8px}
.destination-label{flex:1 1 calc(100% - 90px);min-height:var(--search-control-height)}
.compact-search>.primary{order:2}
.search-dates,.search-dates[open]{order:3;flex-basis:100%;min-width:0}
.search-dates>summary{min-height:var(--search-control-height)}
.date-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.date-fields>label:last-child{grid-column:1/-1}
.browse-toolbar{padding:0 0 12px}
.browse-types{padding:2px 16px}
.browse-types .chip{font-size:var(--text-label);padding:10px 12px}
.filter-row{margin:0 16px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.amenities-filter{grid-column:1/-1;min-width:0}
.amenities-filter[open]{grid-column:1/-1}
.filter-row .compare-link{justify-self:start}
.filter-row .view-toggle{justify-self:end;margin:0}
.filter-row [data-view=split]{display:none}
.stay-type{grid-column:1/-1;min-width:0}
.stay-type select{max-width:none;width:100%}
.amenity-checks{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px}
.results-line{padding:0 16px 16px}
.results-line>span{display:none}
.browse-note,.rental-link{margin:0 16px 16px}
.content,.content.list-only{display:block;padding:0 16px 32px}
.content:not(.map-only) .map-wrap{display:none}
.content.map-only .cards{display:none}
.cards,.content.list-only .cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px var(--space)}
.property-card .location{font-size:var(--text-meta);margin-top:10px}
.property-card h2{font-size:var(--text-subsection);min-height:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.property-card>p{font-size:var(--text-label);min-height:0;margin-bottom:6px}
.card-bottom>a{font-size:var(--text-label);padding:9px 0;gap:4px}
.card-bottom>button{font-size:var(--text-label);padding:9px 8px}
.property-heading h1{font-size:var(--text-page)}
.property-heading p,.property-address{font-size:var(--text-label)}
.property-intro{margin:10px 0 18px;gap:8px}
.property-intro>p{display:none}
.grounds-compact{gap:9px;padding:5px 0}
.grounds-compact>img{width:60px;height:38px}
.grounds-compact small{font-size:var(--text-meta)}
.unit-list-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(var(--space) + 8px) var(--space)}
.unit-option h3{font-size:var(--text-subsection)}
.unit-option-body{padding-top:12px}
.unit-option-actions{gap:7px}
.search-dates input,.stay-type select,.date-fields input,.compare-dates input,.journey-planner input,.inquiry-form input,.inquiry-form select{font-size:16px}
.unit-option-actions>*{width:100%}
.unit-page-actions{gap:8px}
.journey-checkout-grid{grid-template-columns:1fr;gap:20px}
.journey-cost{grid-row:1}
.journey-summary{align-items:flex-start;gap:14px}
.journey-summary img{width:95px;height:100px}
.journey-planner{margin:20px 0;padding:20px 0}
.journey-planner .form-row>label{flex-basis:calc(50% - 6px)}
.journey-planner .form-row>label:last-child{flex-basis:100%}
.compare-dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.compare-dates>label:nth-child(3),.compare-dates>button{grid-column:1/-1}
.comparison-table tr>:first-child{position:sticky;left:0;z-index:1}
.comparison-table{min-width:800px}
#compare-tray{bottom:calc(86px + env(safe-area-inset-bottom));width:calc(100vw - 24px);gap:8px;padding:8px 10px}
#compare-tray>span{flex:1}
#compare-tray .primary{font-size:var(--text-meta);padding:9px 10px}
.demo-unit{flex-direction:column}
.unit-actions{width:100%;max-width:none}
.catalogue-filters{margin:0 16px 20px}
.catalogue-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
.section-heading{align-items:baseline}
.property-extra,.all-unit-photos{margin:18px 0}
}

@media(max-width:389px){.unit-filter-note .secondary{margin-left:0}
.price-breakdown>div{flex-wrap:wrap}
.price-breakdown dd{margin-left:auto}
.cards,.content.list-only .cards,.unit-list-grid{grid-template-columns:1fr}
.property-card h2{min-height:0;font-size:var(--text-subsection)}
.property-card>p{min-height:0;font-size:var(--text-label)}
.card-bottom>a,.card-bottom>button{font-size:var(--text-label)}
.compare-dates{grid-template-columns:1fr}
.compare-dates>label,.compare-dates>button{grid-column:1}
.amenity-checks{grid-template-columns:1fr}
.journey-planner .form-row>label{flex-basis:100%}
}


/* Grid subtracks keep sibling baselines aligned without empty title/metadata rows. */
@supports not (grid-template-rows:subgrid){.property-card{display:flex;flex-direction:column;grid-row:auto}
.cards{row-gap:24px}
}


/* Во время bootstrap реального public UI скрываем промежуточный preview renderer. */
html[data-public-boot] #main,html[data-public-boot] #main-nav {visibility:hidden}

/* Спокойное появление действий, без анимации сотен фото или фоновых таймеров.
   Общий prefers-reduced-motion в foundation.css полностью отключает движение. */
.public-app .journey-planner,.public-site .public-request{animation:context-enter 180ms ease-out}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .public-app .primary,.public-site .public-request .primary{transition:background-color 180ms ease,color 180ms ease,box-shadow 180ms ease,transform 160ms ease}
 .public-app .primary:hover,.public-site .public-request .primary:hover{transform:translateY(-1px)}
 .public-app .primary:active,.public-site .public-request .primary:active{transform:translateY(0)}
}

/* Названия всех активных ограничений видимы до списка: Hot tub + Wi-Fi — две разные проверки. */
.browse-active-filters{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:8px 0 12px}
.browse-active-filters .chip{min-height:44px;max-width:100%;gap:8px;white-space:normal;text-align:left;font-size:var(--text-meta)}
.browse-clear-all{min-height:44px;border:0;background:transparent;color:var(--brand);font-size:var(--text-meta);text-decoration:underline;text-underline-offset:3px}

/* Подтверждённый ручной прайс: компактно, внутри существующих карточек. */
.manual-rate{display:block;font-size:var(--text-label);font-weight:600;color:var(--ink);margin:8px 0;overflow-wrap:anywhere}

/* === workspace === */
/* Workspaces use the same controls and type as customer pages. */
/* Connected CRM: те же controls, компактные группы и явные состояния сохранения. */
.crm-form-footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-top:12px;min-width:0}.crm-form-footer .form-feedback{margin:0;flex:1 1 180px;overflow-wrap:anywhere}.crm-pagination{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 0}.crm-pagination>span{color:var(--muted);font-size:var(--text-label)}.crm-clean-row,.crm-product-row{gap:16px;flex-wrap:wrap}.crm-clean-row>div:first-child,.crm-product-row>div:first-child{flex:1 1 160px;min-width:0}.crm-clean-row>label,.crm-product-row>label{flex:0 1 180px;min-width:120px;margin:0}.crm-clean-row .crm-form-footer,.crm-product-row .crm-form-footer{margin:0;flex:1 1 180px}.crm-inline-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.crm-messages .message{margin:12px 0;padding:16px;border-radius:var(--radius);background:var(--surface);overflow-wrap:anywhere}.crm-messages .message>p{white-space:pre-wrap}.crm-loading{padding:24px 0;color:var(--muted)}.connected-app .record-row>div{min-width:0}.connected-app .record-row small{overflow-wrap:anywhere}.connected-app .settings-options>form{margin:0}.connected-app .settings-options textarea{width:100%;resize:vertical;min-height:96px}.connected-app .workspace-facts dd{min-width:0;overflow-wrap:anywhere}
@media(max-width:760px){.crm-clean-row,.crm-product-row{align-items:flex-start}.crm-clean-row>div:first-child,.crm-product-row>div:first-child{flex-basis:100%}.crm-clean-row>label,.crm-product-row>label{flex:1 1 140px}.crm-clean-row .crm-form-footer,.crm-product-row .crm-form-footer{flex:1 1 130px}.crm-form-footer .form-feedback{flex-basis:100%}.crm-toolbar>button{min-height:44px}}
.local-filter-bar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding:0;margin:0 0 8px;border:0;border-radius:0;background:transparent}.local-filter-bar>label{margin:0;display:flex;flex-direction:column;gap:5px;flex:1 1 150px;font-size:13px;font-weight:550;color:var(--muted);min-width:0}.local-filter-bar>.filter-search{flex:2 1 220px}.local-filter-bar input,.local-filter-bar select{margin:0;height:44px}.filter-clear{border:0;background:transparent;color:var(--brand);white-space:nowrap}.filter-more{position:relative;flex:none}.filter-more>summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 13px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);list-style:none;font-size:14px;font-weight:550}.filter-more>summary::after{content:'⌄';color:var(--muted)}.filter-more>summary::-webkit-details-marker{display:none}.filter-more>div{display:flex;flex-direction:column;gap:12px;position:absolute;right:0;top:calc(100% + 8px);width:280px;max-width:calc(100vw - 40px);max-height:60dvh;overflow:auto;background:var(--surface-raised);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:16px;z-index:100}.filter-more:not([open])>div{display:none}.filter-more>div>label:not(.check-option){display:flex;flex-direction:column;gap:5px;font-size:14px}.filter-more p{font-size:13px;margin:0;color:var(--muted)}.filter-more .check-option{display:flex;align-items:center;gap:10px;min-height:36px;font-size:14px}.filter-active{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.filter-active:empty{display:none}.filter-active button{display:flex;align-items:center;gap:9px;min-height:36px;padding:6px 10px;border-radius:8px;background:var(--brand-soft);color:var(--brand);font-size:13px}.filter-active button span{font-size:18px}.filter-result-count{font-size:13px;color:var(--muted);margin:8px 0 18px}.unit-filter-container{margin:12px 0 20px}.record-filter-container{padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:8px}.record-filter-toggle,.unit-filters-toggle,.calendar-filter-toggle{display:none}.team-directory-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:12px}.team-person{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);text-align:left;min-width:0}.team-person>span:nth-child(2){flex:1;min-width:0}.team-person strong{display:block;font-size:16px}.team-person small{display:block;margin-top:3px;font-size:13px}.person-initial,.avatar{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:18px;font-weight:600}.demo-identity{display:flex;gap:12px;align-items:center;margin:18px 0}.demo-identity small{display:block;margin-top:4px}.request,.agenda-entry{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);text-align:left}.request:last-child{border-bottom:0}.request p{font-size:14px;color:var(--muted);margin:6px 0 0}.request>label{flex:none;max-width:200px;font-size:13px}.request-card{padding:20px 0;border-bottom:1px solid var(--line);margin:0;background:transparent}.request-card strong{font-weight:600}.request-card p{margin:7px 0 12px}.request-assignment-history{margin:14px 0;border-top:1px solid var(--line);padding-top:10px}.request-assignment-history>summary{padding:8px 0;min-height:44px;font-size:14px}.message-list{display:grid;gap:10px;margin:14px 0;max-height:360px;overflow:auto}.workspace .message{margin:0;padding:12px 14px;background:var(--surface);border-radius:10px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.message span{display:block;font-weight:600;color:var(--brand);font-size:13px;margin-bottom:5px}.message.internal{border-left:3px solid var(--warning);background:var(--warning-soft)}.message-list:empty{display:none}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.metric{background:var(--surface);padding:18px;border-radius:12px;min-width:0}.metric strong{display:block;font-size:28px;line-height:1.2;margin-bottom:8px;font-variant-numeric:tabular-nums}.metric span{font-size:14px;color:var(--muted)}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 18px;margin:14px 0}.check-grid label{font-size:14px;display:flex;align-items:flex-start;gap:9px;line-height:1.5;min-height:36px;padding:5px 0}.check-grid input{flex:none}.readiness-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0}.readiness-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.clean-checklist{padding:0;margin:16px 0}.clean-checklist>label{display:flex;align-items:flex-start;gap:10px;padding:12px 0;min-height:44px;border-bottom:1px solid var(--line);font-size:15px}.clean-inspect>label{display:block;margin:16px 0;font-size:14px}.approved-note{color:var(--success)}.turnover-grid,.walkthrough{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.walkthrough{gap:0 28px}.walkthrough>.panel{display:flex;align-items:flex-start;gap:16px;padding:20px 0}.walkthrough>.panel>div{flex:1;min-width:0}.walkthrough h2{font-size:var(--text-subsection);margin-bottom:8px}.walkthrough p{font-size:var(--text-label);line-height:1.6;margin:0}.turnover-grid article{padding:16px 0}.turnover-grid h3{margin-top:12px}.step-number{font-size:var(--text-section);line-height:1.3;color:var(--brand);display:block;flex:none;width:28px;margin:0;font-variant-numeric:tabular-nums}.step-done{color:var(--success);background:var(--success-soft)}.simulator-state{padding:16px;background:var(--surface);border-radius:12px;margin:20px 0}.simulator-state p{color:var(--muted);font-size:14px;margin:6px 0 0}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--danger);margin-right:8px}.status-dot.online{background:var(--success)}.selected-stay{background:transparent}.selected-stay h2{color:var(--brand)}.stay-origin{margin:8px 0;color:var(--brand);font-size:12px}.stay-card .row-between{align-items:center}.stay-card h2{font-size:var(--text-section)}.stay-card p{font-size:15px}.stay-card .eyebrow{margin-bottom:6px}.stay-card{padding:22px 0}.stay-card>button{margin-top:6px}.stay-origin+.request{border:0}.application-summaries>details{padding:12px 0;border-bottom:1px solid var(--line)}.application-summaries>details>summary{min-height:44px;padding:9px 0;font-weight:550;cursor:pointer}.review-table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}.review-table td,.review-table th{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}.review-table td>button{min-height:44px;color:var(--brand)}#create-employee>label,#access-form>label{display:block;max-width:560px;margin:16px 0}#create-employee h3,#access-fields h3{margin-top:24px}.catalog-editor{max-width:1120px}.catalog-editor .panel{padding:20px 0}.catalog-editor form>label{display:block;margin:16px 0}.catalog-editor .check-option{display:flex;align-items:flex-start;gap:10px}.editor-photo-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.editor-photo-row img{width:90px;height:66px;object-fit:cover;border-radius:8px;flex:none}.editor-photo-row>span{flex:1;min-width:0;font-size:14px;overflow-wrap:anywhere}.editor-photo-row>button{min-width:44px;padding:9px}.address-results{display:grid;gap:8px;margin:12px 0}.address-results>button{display:block;text-align:left}.address-results button span{display:block;color:var(--muted);font-size:13px;margin-top:4px}.address-status{font-size:14px;color:var(--muted);min-height:1.5em}.property-location-preview{height:260px;border:1px solid var(--line);border-radius:12px;margin:16px 0;isolation:isolate}.location-coordinates{font-variant-numeric:tabular-nums}#stay-detail,#calendar-detail{scroll-margin-top:16px}#stay-detail-title:focus,#calendar-detail-title:focus{outline:2px solid var(--brand);outline-offset:4px}.booking-history li{border-bottom:1px solid var(--line);padding:12px 0}.booking-history p{font-size:14px;margin:5px 0}.cancel-booking label,#transfer-booking-unit>label{display:block;margin:16px 0;font-size:14px}
@media(max-width:900px){.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.turnover-grid,.walkthrough{grid-template-columns:1fr}.readiness-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.local-filter-bar{gap:10px}.local-filter-bar>.filter-search{flex:1 1 calc(100% - 90px)}.local-filter-bar>label{flex:1 1 calc(50% - 5px)}.record-filter-toggle,.unit-filters-toggle,.calendar-filter-toggle{display:inline-flex;align-self:flex-end;flex:none}.record-filters:not(.filters-expanded)>:not(.filter-search):not(.record-filter-toggle),.calendar-filters:not(.filters-expanded)>:not(.filter-search):not(.calendar-filter-toggle),.unit-filter-container .local-filter-bar:not(.unit-filters-expanded)>:not(.filter-search):not(.unit-filters-toggle){display:none}.filter-more{flex:1 1 100%}.filter-more>div{position:static;width:100%;max-width:none;max-height:none;box-shadow:none;padding:14px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0}.filter-more>summary{justify-content:space-between}.team-directory-list{grid-template-columns:1fr}.metric-row{grid-template-columns:1fr}.metric{display:flex;align-items:center;gap:16px;padding:16px}.metric strong{font-size:25px;margin:0;flex:none}.request{flex-wrap:wrap;gap:12px}.request>label{max-width:none;width:100%;flex-basis:100%}.check-grid{grid-template-columns:1fr}.readiness-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-photo-row{flex-wrap:wrap;gap:8px}.editor-photo-row img{width:76px;height:56px}.editor-photo-row>span{flex-basis:calc(100% - 90px)}.review-table{display:block;overflow:auto}.request-actions{gap:8px}.request-actions>button{font-size:14px;padding:9px 12px}.stay-card .row-between{align-items:flex-start}.unit-filter-container{margin:16px 0}.filter-result-count{margin-bottom:12px}}
@media(max-width:389px){.readiness-grid{grid-template-columns:1fr}}

/* Real, scoped metrics and a small seven-day activity chart. */
.dashboard-toolbar{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:16px 0}.dashboard-toolbar>label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted);font-weight:600;min-width:240px;max-width:100%}.dashboard-toolbar select{min-height:44px;border:1px solid var(--line);border-radius:9px;padding:9px 12px;background:var(--surface-raised);font:16px var(--font)}.dashboard-toolbar>span{font-size:14px;color:var(--muted);align-self:center;margin-top:15px}.dashboard-toolbar>a{margin-left:auto;font-size:14px}.dashboard-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;margin:18px 0}.dashboard-metric{background:var(--surface-raised);border:1px solid var(--line);border-radius:13px;text-align:left;padding:15px 16px;position:relative;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px}.dashboard-metric:before{content:'';width:26px;height:3px;display:block;background:var(--tone);border-radius:2px;margin-bottom:4px}.dashboard-metric>span{font-size:14px;color:var(--muted);font-weight:500}.dashboard-metric>strong{font-size:30px;line-height:1.2;font-weight:600;color:var(--tone);font-variant-numeric:tabular-nums}.dashboard-metric>small{font-size:12px;color:var(--muted)}.dashboard-metric:hover{border-color:var(--tone);background:color-mix(in srgb,var(--tone-soft) 35%,var(--surface-raised))}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin:20px 0 0}.chart-legend>span{color:var(--tone);font-weight:500}.chart-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;margin:6px 0 20px}.week-bars{display:flex;align-items:flex-end;gap:12px;height:144px}.week-day{flex:1;min-width:0;text-align:center;display:flex;flex-direction:column;gap:8px}.week-pair{height:110px;display:flex;justify-content:center;align-items:flex-end;gap:6px;border-bottom:1px solid var(--line)}.week-bar{width:16px;position:relative;border-radius:5px 5px 0 0;min-height:0}.week-bar.checkin{background:var(--success)}.week-bar.checkout{background:var(--departure)}.week-bar>span{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(100% + 5px);color:var(--ink);font-size:12px}.week-day>small{font-size:13px;color:var(--muted)}.dashboard-booking{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:12px 0;width:100%;text-align:left}.dashboard-booking>span:first-child{min-width:0}.dashboard-booking strong{font-size:15px;line-height:1.4}.dashboard-booking small{display:block;font-size:13px;color:var(--muted);margin-top:4px}.dashboard-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 22px}.dashboard-links>a{display:flex;flex-direction:column;gap:4px;padding:12px 0;text-decoration:none;color:var(--ink);font-size:16px;font-weight:600}.dashboard-links>a>span{font-size:14px;color:var(--muted);font-weight:400}.dashboard-links>a:hover{color:var(--brand)}

@media(max-width:760px){.dashboard-toolbar{gap:10px}.dashboard-toolbar>label{min-width:0;width:100%}.dashboard-toolbar>span{margin:0}.dashboard-toolbar>a{margin-left:0}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-metric{padding:14px 12px}.dashboard-metric>strong{font-size:27px}.dashboard-metric>small{font-size:12px;white-space:normal}.dashboard-grid{grid-template-columns:1fr;gap:12px}.dashboard-grid .panel{min-width:0}.week-bars{gap:8px}.week-pair{gap:4px}.week-bar{width:12px}.dashboard-links{grid-template-columns:1fr}.dashboard-booking{gap:10px}.team-directory{min-width:0}}
@media(max-width:360px){.week-bars{gap:5px}.week-bar{width:10px}.week-day>small{font-size:12px}}

.request-priority{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.stay-card .stay-origin{display:none}.stay-card .small-note{display:none}

/* Structured facts and concise section rhythm for account and staff screens. */
.workspace-footnote{font-size:var(--text-meta);line-height:1.55;color:var(--muted);margin:12px 0 0;max-width:860px}.workspace>.workspace-footnote{margin:12px 0 18px}.workspace-facts{margin:16px 0;max-width:780px;border-top:1px solid var(--line)}.workspace-facts>div{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,2fr);gap:20px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--line)}.workspace-facts dt{font-size:var(--text-meta);color:var(--muted)}.workspace-facts dd{font-size:var(--text-label);overflow-wrap:break-word}.profile-summary{max-width:800px}.profile-identity{display:flex;align-items:center;gap:14px}.profile-identity h2{font-size:var(--text-section);margin:0 0 4px}.profile-identity p{font-size:var(--text-label);color:var(--muted);margin:0}.profile-summary .compact-disclosure{margin:12px 0 0}.profile-summary .permission-tags{padding:8px 0}.access-fieldset{padding:18px 0;border-bottom:1px solid var(--line);margin:0 0 16px}.access-fieldset>legend{font-size:var(--text-subsection);font-weight:600;padding:0}.access-fieldset .check-grid{margin:12px 0 0}.access-fieldset .small-note{margin:12px 0 0}.access-fieldset:last-child{border-bottom:0}.role-reference{max-width:900px}.service-offer{max-width:760px}.service-offer .section-heading{margin:0 0 12px;align-items:baseline}.service-offer .section-heading>.service-price{color:var(--ink);font-weight:600;font-size:var(--text-section)}.service-price small{color:var(--muted);font-size:var(--text-meta);font-weight:400}.stay-section-heading{font-size:var(--text-subsection);margin:24px 0 12px}.stay-details-facts{max-width:600px;margin:14px 0}.finance-metrics .metric strong{font-size:var(--text-section)}.simulator-events>.request-actions{margin:12px 0}.simulator-events>.request,.simulator-records>.request,.simulator-journal-list>.request{font-size:var(--text-label);padding:12px 0}.simulator-records .request-actions{display:flex;flex-wrap:wrap;gap:8px}.simulator-journal-list{max-height:440px;overflow:auto;padding-right:8px}.simulator-journal-list .request>div{min-width:0}.simulator-journal-list .request p{overflow-wrap:anywhere}.simulator-journal-list .request>small{white-space:nowrap}.simulator-state{align-items:center}.simulator-state strong{font-size:var(--text-label)}
@media(max-width:760px){.workspace-facts>div{grid-template-columns:minmax(88px,.7fr) minmax(0,1.5fr);gap:12px;padding:10px 0}.finance-metrics .metric{display:block;padding:14px 16px}.finance-metrics .metric strong{margin-bottom:5px}.walkthrough>.panel{padding:16px 0;gap:12px}.walkthrough{gap:0}.stay-section-heading{margin-top:20px}.simulator-journal-list .request{flex-wrap:nowrap}.simulator-state{gap:12px}.profile-identity{gap:12px}.access-fieldset{padding:16px 0}}

/* === records === */
/* Shared record surfaces: filters stay separate, records form one readable group. */
.record-filter-container{margin-bottom:20px}.record-filter-container .record-filters{align-items:end}.record-filters>label:not(.filter-search){flex:1 1 155px}.record-filters>.filter-search{flex:2 1 220px}.record-status-group{margin:0 0 24px}.record-group-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px 8px}.record-group-heading>h2{font-size:13px;line-height:1.5;font-weight:600;letter-spacing:.025em;color:var(--muted);margin:0;text-transform:uppercase}.record-group-count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.record-group-attention .record-group-heading>h2{color:var(--danger)}.record-group-list{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface-raised)}.record-group-list>.grouped-request-row+.grouped-request-row{border-top:1px solid var(--line)}.workspace .panel.grouped-records{padding:0;border:0;margin:16px 0;background:transparent}.workspace article.grouped-request-row{padding:0;margin:0;border:0;border-radius:0;background:transparent}.request-record-details{margin:0;padding:0}.request-record-summary{display:grid;grid-template-columns:minmax(0,1fr) auto 12px;align-items:center;gap:12px;list-style:none;min-height:74px;padding:14px 16px;cursor:pointer}.request-record-summary::-webkit-details-marker{display:none}.request-record-summary>div{min-width:0}.request-record-summary strong{font-size:15px;font-weight:600;line-height:1.4;display:block;overflow-wrap:break-word}.request-record-summary p{font-size:12px;color:var(--muted);line-height:1.5;margin:4px 0 0}.request-record-summary>.semantic-status{font-size:12px;max-width:112px;text-align:left;min-width:0}.record-row-chevron{font-size:24px;font-weight:300;line-height:1;color:var(--muted);transition:transform 180ms ease;text-align:center}.request-record-details[open]>.request-record-summary>.record-row-chevron{transform:rotate(90deg)}.request-record-summary:hover{background:var(--surface)}.request-record-summary:focus-visible{outline:2px solid var(--brand);outline-offset:-3px}.request-record-body{padding:16px;border-top:1px solid var(--line)}.request-record-body>p{font-size:13px;color:var(--muted)}.request-record-body .message-list{margin-top:12px}.request-record-body .inline-form{margin-bottom:0}.request-record-body .request-actions{margin-top:12px}.workspace .record-list-panel{margin:16px 0 24px;padding:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface-raised)}.record-list-panel>h2{padding:14px 16px;margin:0;border-bottom:1px solid var(--line);font-size:var(--text-subsection)}.record-list-panel>.grouped-record-row{margin:0;padding:14px 16px;border:0;border-radius:0;background:transparent}.record-list-panel>.grouped-record-row+.grouped-record-row{border-top:1px solid var(--line)}.record-list-panel>.grouped-record-row strong{font-size:15px;line-height:1.4}.record-list-panel>.grouped-record-row p{font-size:13px;line-height:1.5;color:var(--muted);margin:5px 0 0}.record-list-panel>.grouped-record-row>label{font-size:12px}.record-list-panel>p{padding:14px 16px;margin:0;font-size:14px;color:var(--muted)}
@media(max-width:760px){.record-filters{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}.record-filters>.filter-search{grid-column:1;grid-row:1}.record-filters>.record-filter-toggle{grid-column:2;grid-row:1}.record-filters>label:not(.filter-search),.record-filters>.filter-more{grid-column:1/-1}.record-group-heading{padding:0 12px 8px}.request-record-summary{padding:12px;gap:8px;grid-template-columns:minmax(0,1fr) auto 10px}.request-record-summary strong{font-size:14px}.request-record-summary p{font-size:12px}.request-record-summary>.semantic-status{max-width:90px;font-size:12px;padding:3px 6px}.request-record-body{padding:12px}.record-status-group{margin-bottom:20px}.record-list-panel>h2,.record-list-panel>.grouped-record-row{padding:12px}.record-list-panel>.grouped-record-row{gap:12px}.record-filters>label:not(.filter-search){flex-basis:calc(50% - 8px)}}

.request-record-summary .request-priority{margin:5px 0;gap:5px}.request-record-summary .request-priority .semantic-status{font-size:12px;white-space:nowrap;min-height:23px;padding:2px 6px}.request-record-reference{font-size:12px;color:var(--muted);margin:0 0 10px}

/* A label/value pair reads consistently in bookings, residences and finance. */
.record-content{flex:1;min-width:0}.record-facts{margin:9px 0 0;display:grid;gap:5px}.record-facts>div{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:baseline;gap:12px;line-height:1.5}.record-facts dt{font-size:var(--text-meta);color:var(--muted);font-weight:400}.record-facts dd{font-size:var(--text-label);color:var(--ink);overflow-wrap:break-word}.record-list-panel>.grouped-record-row .record-reference,.record-reference{font-size:var(--text-caption);color:var(--muted);margin:9px 0 0;overflow-wrap:anywhere}.record-amount{flex:none;white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right;font-size:var(--text-label)}.record-amount small{font-size:var(--text-caption);display:block;margin-top:3px}.finance-entry{align-items:center}.stay-card .record-facts{margin:12px 0}.stay-card .record-facts>div{grid-template-columns:62px minmax(0,1fr)}
@media(max-width:760px){.record-facts>div{grid-template-columns:64px minmax(0,1fr);gap:10px}.record-list-panel>.finance-entry{flex-wrap:nowrap;align-items:center}.record-list-panel>.finance-entry>div{max-width:70%}.record-amount{font-size:var(--text-label)}.record-list-panel>.grouped-record-row>.record-content+.semantic-status{align-self:flex-start}}

/* A request opens into three stable sections, shared by staff and guest stay views. */
.request-sections{max-width:900px;margin:16px auto 0}.request-sections>.action-section:first-child{border-top:0;padding-top:0}.request-sections>.action-section:last-child{padding-bottom:0}.request-sections .message-list{margin:0 0 16px;max-height:360px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y}.request-reply{margin:0}.request-reply>label{display:block;margin:0;font-size:var(--text-label)}.request-reply textarea{min-height:88px}.reply-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:12px}.reply-footer>label{display:block;margin:0;font-size:var(--text-label);min-width:0}.reply-footer>.action-note{margin:0;align-self:center}.record-group-ready .record-group-heading>h2{color:var(--warning)}
@media(max-width:480px){.reply-footer{grid-template-columns:minmax(0,1fr);gap:12px}.reply-footer>button{width:100%}.request-record-body .request-sections{margin-top:12px}}

/* === calendar === */
/* Amenities use exactly the same explicit unit facts as public catalogue filters. */
.calendar-amenities{position:relative;min-width:160px}.calendar-amenities>summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius);font-size:var(--text-control);background:var(--surface-raised);cursor:pointer}.calendar-amenities>summary{list-style:none}.calendar-amenities>summary::after{content:'⌄';color:var(--muted)}.calendar-amenities>summary::-webkit-details-marker{display:none}.calendar-amenity-options{position:absolute;top:calc(100% + 6px);left:0;z-index:12;width:290px;max-width:calc(100vw - 40px);max-height:340px;overflow:auto;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);box-shadow:var(--shadow-popover,0 8px 28px #0002)}.calendar-amenity-options>label{display:flex;align-items:center;gap:10px;min-height:40px;margin:0;padding:5px 0;font-size:var(--text-label)}.calendar-amenity-options input{width:18px;height:18px;flex:none}.calendar-amenity-options p{font-size:var(--text-caption);line-height:1.5;margin:8px 0}.calendar-filters .calendar-amenities[open]>summary{border-color:var(--brand)}
@media(max-width:760px){.calendar-filters{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}.calendar-filters>.filter-search{grid-column:1;grid-row:1}.calendar-filters>.calendar-filter-toggle{grid-column:2;grid-row:1}.calendar-filters>label:not(.filter-search),.calendar-filters>.filter-more{grid-column:1/-1}.calendar-filters:not(.filters-expanded)>.calendar-amenities{display:none}.calendar-amenity-options{position:static;width:100%;max-width:none;margin-top:6px;box-shadow:none}.calendar-amenities{width:100%}}
/* Timeline has explicit dimensions; calendar overflow is contained within its viewport. */
.calendar-toolbar{margin:12px 0}.calendar-period{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px}.calendar-date-nav,.calendar-view-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-date-nav h2{display:flex;align-items:baseline;gap:8px;margin:0;font-size:var(--text-section);white-space:nowrap}.calendar-date-nav h2 small{font-size:var(--text-meta);font-weight:400}.calendar-date-nav>button{padding:9px 12px}.calendar-view-controls select{width:auto;min-width:84px;font-size:var(--text-label)}.calendar-status-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0}.calendar-status-strip>button{display:flex;align-items:center;gap:7px;min-height:40px;padding:8px 10px;border-radius:9px;background:var(--surface);color:var(--tone);font-size:var(--text-label);white-space:nowrap}.calendar-status-strip>button[aria-pressed=true]{background:var(--tone-soft);box-shadow:inset 0 0 0 1px var(--tone)}.calendar-status-strip strong{font-size:var(--text-label);font-variant-numeric:tabular-nums}.calendar-status-strip>span{font-size:var(--text-meta);color:var(--muted);margin-left:auto}.calendar-legend{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;margin:12px 0;font-size:var(--text-meta)}.legend-key{color:var(--tone);white-space:nowrap}.calendar-legend details{margin-left:auto;max-width:480px}.calendar-legend details>summary{font-size:var(--text-meta);color:var(--muted);padding:8px 0;min-height:40px}.calendar-legend details p{font-size:var(--text-label);color:var(--muted)}.timeline-scroll{--cal-label:220px;--cal-day:96px;position:relative;overflow:auto;max-height:72dvh;border:1px solid var(--line);border-radius:12px;background:var(--surface-raised);margin:12px 0 24px;isolation:isolate;overscroll-behavior:contain}.timeline{width:calc(var(--cal-label) + var(--cal-days)*var(--cal-day));font-variant-numeric:tabular-nums}.timeline-header{display:grid;grid-template-columns:var(--cal-label) repeat(var(--cal-days),var(--cal-day));position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}.timeline-corner{position:sticky;left:0;z-index:6;background:var(--surface);padding:12px 14px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;font-size:var(--text-label);font-weight:600}.timeline-corner small{display:block;font-size:var(--text-caption);font-weight:400;margin-top:3px}.timeline-date{min-height:48px;border-right:1px solid var(--line);text-align:center}.timeline-date>button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:100%;height:100%;min-height:48px;padding:3px 2px}.timeline-date small{font-size:var(--text-caption)}.timeline-date strong{font-size:var(--text-label)}.timeline-date.selected{background:var(--brand-soft);box-shadow:inset 0 -3px var(--brand)}.timeline-today-label{font-size:var(--text-caption);font-weight:600;color:var(--brand)}.timeline-row{display:grid;grid-template-columns:var(--cal-label) calc(var(--cal-days)*var(--cal-day));min-height:58px;border-bottom:1px solid var(--line)}.timeline-unit{position:sticky;left:0;z-index:3;display:flex;gap:9px;align-items:center;padding:5px 10px;background:var(--surface-raised);border-right:1px solid var(--line)}.timeline-unit img{width:28px;height:28px;object-fit:cover;border-radius:7px;flex:none}.timeline-unit>div{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:1px;width:100%}.timeline-unit small{grid-column:1/-1;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--text-caption);line-height:1.25;margin-bottom:1px}.timeline-unit strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:var(--text-label);line-height:1.3;margin:0;overflow-wrap:break-word}.timeline-unit .semantic-status{justify-self:start;max-width:100%;font-size:var(--text-caption);min-height:20px;padding:1px 5px}.timeline-track{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:4px 0}.timeline-nights{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--cal-days),var(--cal-day));z-index:0}.timeline-night{border-right:1px solid var(--line);position:relative}.timeline-night:nth-child(7n),.timeline-night:nth-child(7n+1){background:var(--surface)}.timeline-night.selected{background:var(--brand-soft)}.timeline-night.today{box-shadow:inset 1px 0 var(--brand)}.timeline-create{display:grid;place-items:center;width:100%;height:100%;min-height:44px;opacity:0;color:var(--muted);font-size:var(--text-section)}.timeline-night:hover .timeline-create,.timeline-create:focus-visible{opacity:1}.timeline-bars{display:grid;grid-template-columns:repeat(calc(var(--cal-days)*2),calc(var(--cal-day)/2));grid-template-rows:repeat(var(--cal-lanes),44px);gap:6px 0;position:relative;z-index:1;pointer-events:none}.timeline-stay{pointer-events:auto;display:flex;flex-direction:column;justify-content:center;gap:3px;margin:0 3px;min-width:0;min-height:44px;padding:4px 9px;border:1px solid var(--line);border-radius:7px;background:var(--brand-soft);color:var(--brand);overflow:hidden;text-align:left;font-size:var(--text-label);line-height:1.3}.timeline-stay>strong,.timeline-stay>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.timeline-stay>span{font-size:var(--text-caption)}.timeline-stay.tenancy{background:var(--neutral-soft);border-color:var(--line);color:var(--neutral)}.timeline-stay.unified-stay{background:#23796a;color:#fff;border-color:transparent;flex-direction:row;align-items:center;gap:5px;padding:5px}.timeline-stay.pending{background:#8a610c;color:#fff;border-color:transparent}.timeline-stay.departed,.timeline-stay.unified-stay.tenancy{background:#5b687b;color:#fff;border-color:transparent}.unified-stay .stay-copy{display:grid;gap:3px;min-width:0;flex:1}.stay-copy>strong,.stay-copy>small{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--text-label);line-height:1.3}.stay-copy>small{font-size:var(--text-caption);font-weight:400;color:inherit}.timeline-stay .stay-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:28px;flex:0 0 28px;max-width:none;overflow:visible;font-size:var(--text-control);font-weight:650}.stay-boundary small{font-size:var(--text-caption);line-height:1.2;color:inherit}.stay-in{color:#fff}.stay-out{color:#fff}.tile-mark{display:none}.timeline-stay.edge-checkout{background:var(--departure-soft);color:var(--departure);align-items:center;font-size:var(--text-caption);padding:3px;border-color:var(--departure)}.timeline-events{display:grid;grid-template-columns:repeat(var(--cal-days),var(--cal-day));position:relative;z-index:1;margin-top:6px;pointer-events:none}.timeline-events>div{display:flex;flex-wrap:wrap;gap:3px;padding:0 3px;min-width:0}.timeline-event{pointer-events:auto;min-height:32px;flex:1;padding:5px 4px;border:1px solid var(--warning);border-radius:7px;background:var(--warning-soft);color:var(--warning);font-size:var(--text-caption);font-weight:550;white-space:nowrap}.calendar-agenda{padding:24px 0}.calendar-agenda>.row-between{align-items:center}.calendar-agenda>.row-between>label{font-size:var(--text-label);max-width:210px}.calendar-agenda .date-trigger{min-width:160px}.agenda-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:20px}.agenda-columns h3{display:flex;justify-content:space-between;font-size:var(--text-subsection)}.agenda-entry{display:block;width:100%;font-size:var(--text-label)}.agenda-entry>strong,.agenda-entry>span,.agenda-entry>small{display:block}.agenda-entry>span{color:var(--muted);margin-top:4px}.agenda-entry>small{color:var(--brand);font-size:var(--text-meta);margin-top:4px}.calendar-detail{padding:24px 0;border-top:1px solid var(--line)}.calendar-detail .form-row{margin-top:18px}.calendar-editor-note{font-size:var(--text-label);color:var(--muted)}
@media(max-width:900px){.agenda-columns{grid-template-columns:1fr}.calendar-period{align-items:flex-start}.calendar-legend details{margin-left:0}}
@media(max-width:760px){:root{--cal-label:140px;--cal-day:64px}.calendar-toolbar{margin-top:16px}.calendar-period{gap:8px}.calendar-date-nav{width:100%;gap:6px}.calendar-date-nav h2{flex:1;justify-content:center;font-size:var(--text-body);gap:5px}.calendar-date-nav h2 small{font-size:var(--text-caption)}.calendar-date-nav>button{padding:9px 10px;min-width:40px}.calendar-date-nav #cal-today{font-size:var(--text-meta)}.calendar-view-controls{gap:6px;width:100%}.calendar-view-controls select{font-size:var(--text-meta);min-width:76px;padding:9px 8px}.calendar-view-controls .segmented button{font-size:var(--text-meta);padding:8px}.calendar-view-controls #cal-new-booking{margin-left:auto;padding:10px;font-size:var(--text-meta)}.calendar-status-strip{gap:7px;margin:12px 0}.calendar-status-strip button{font-size:var(--text-meta);padding:8px}.calendar-status-strip>span{margin-left:0;font-size:11px}.calendar-legend{gap:6px 12px;font-size:var(--text-caption)}.calendar-legend details{flex-basis:auto}.timeline-scroll{--cal-label:140px;--cal-day:64px;max-height:72dvh}.timeline-unit{padding:3px;gap:3px}.timeline-unit strong{font-size:var(--text-meta)}.timeline-unit small{font-size:10px}.timeline-unit img{display:block;width:22px;height:22px}.timeline-date strong{font-size:12px}.timeline-date small{font-size:10px}.timeline-today-label{display:none}.timeline-corner{padding:5px;font-size:11px}.timeline-corner small{display:none}.timeline-stay .stay-boundary{width:12px;flex-basis:12px;font-size:12px}.stay-boundary small{font-size:8px}.timeline-stay.unified-stay{gap:2px;padding:3px}.stay-copy>strong{font-size:11px}.stay-copy>small{display:none}.timeline-stay.tile-short .stay-copy,.timeline-stay.tile-short .stay-boundary{display:none}.timeline-stay.tile-short .tile-mark{display:block;font-size:13px;flex:1;text-align:center}.timeline-stay{margin:0 1px;padding:2px}.calendar-unit-name{font-size:11px}.calendar-clean-status{font-size:10px}.calendar-unit-name>summary{min-height:24px}.calendar-agenda>.row-between{flex-wrap:wrap}.calendar-agenda>.row-between>label{max-width:none;width:100%}}

.occupancy-date-label{display:grid;place-content:center;min-height:48px;gap:3px}

@media(min-width:761px){.agenda-columns:has(>div:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:360px){.calendar-date-nav{flex-wrap:nowrap}.calendar-date-nav h2{min-width:0}.calendar-date-nav h2 small{display:none}.calendar-date-nav>button:last-child{font-size:var(--text-meta)}.calendar-view-controls{flex-wrap:nowrap}.calendar-view-controls #cal-new-booking{min-width:44px;min-height:44px;padding:8px}.calendar-view-controls #cal-new-booking .booking-label{display:none}.calendar-view-controls .choice-trigger{font-size:var(--text-meta);padding:8px;gap:6px}}

/* Месяцы прокручиваются внутри своей полосы, не расширяя страницу. */
.calendar-month-nav{display:flex;gap:8px;align-items:center;min-width:0;margin-bottom:8px}
.calendar-month-nav>label{flex:none;margin:0;width:100px}
.calendar-months{position:relative;display:flex;gap:4px;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.calendar-months button{flex:0 0 56px;min-height:44px;padding:6px;border-radius:22px;color:var(--muted);font-size:var(--text-label)}
.calendar-months button[aria-pressed=true]{background:var(--brand-soft);color:var(--brand);font-weight:650}
.calendar-unit-name{min-width:0;font-size:var(--text-caption);line-height:1.3}
.calendar-unit-name>summary{min-height:20px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;cursor:pointer;list-style:none}
.calendar-unit-name>summary::-webkit-details-marker{display:none}
.calendar-unit-name>span{display:block;white-space:normal;padding:4px 0;color:var(--ink)}
.calendar-clean-status{justify-self:start;max-width:100%;white-space:nowrap;font-size:var(--text-caption);line-height:1.2;color:var(--tone);background:var(--tone-soft);border-radius:4px;padding:1px 4px}

/* === media === */
/* Galleries and map controls deliberately do not inherit form/button chrome. */
.browse-carousel,.native-gallery{position:relative;overflow:hidden;isolation:isolate;background:var(--surface);border-radius:14px}
.native-gallery .gallery-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y pinch-zoom;width:100%;outline-offset:-3px}
.native-gallery .gallery-track::-webkit-scrollbar{display:none}
.native-gallery .gallery-slide{display:block;position:relative;flex:0 0 100%;min-width:0;aspect-ratio:4/3;scroll-snap-align:start;scroll-snap-stop:always;touch-action:auto;color:var(--ink);text-decoration:none}
.native-gallery .gallery-slide>img{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;object-fit:cover;user-select:none;-webkit-user-drag:none}
.native-gallery .gallery-slide>img:not([src]){visibility:hidden}
.gallery-image-error{position:absolute;inset:0;display:grid;place-items:center;background:var(--surface);padding:18px;text-align:center;font-size:var(--text-label)}
.photo-prev,.photo-next{position:absolute;top:calc(50% - 22px);z-index:3;display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--surface-raised) 93%,transparent) 0 16px,transparent 17px);color:var(--ink);font-size:25px;line-height:1;box-shadow:none;text-shadow:none;touch-action:manipulation}
.photo-prev{left:6px}
.photo-next{right:6px}
.photo-prev:focus-visible,.photo-next:focus-visible{outline-offset:-3px}
.photo-count{position:absolute;right:10px;bottom:10px;z-index:3;padding:3px 8px;border-radius:16px;background:color-mix(in srgb,var(--inverse-bg) 86%,transparent);color:var(--inverse-text);font-size:var(--text-meta);line-height:1.5;pointer-events:none}
.gallery-load-state{position:absolute;left:9px;bottom:10px;z-index:2;padding:4px 7px;border-radius:7px;background:var(--surface-raised);color:var(--ink);font-size:var(--text-meta);line-height:1.4;max-width:calc(100% - 90px);pointer-events:none}
.gallery-load-state:empty{display:none}
.gallery-retry{position:absolute;left:10px;bottom:46px;z-index:5;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-raised);font-size:var(--text-label)}
#detail-content>.native-gallery{height:300px;margin-bottom:16px}
#detail-content>.native-gallery .gallery-track,#detail-content>.native-gallery .gallery-slide{height:100%;aspect-ratio:auto}
.amenity-strip{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0;overflow:visible}
.amenity-icon-wrap{position:relative;display:inline-flex;isolation:isolate}
.amenity-icon{position:relative;display:grid;place-items:center;width:40px;height:44px;min-width:40px;padding:9px 7px;border:0;border-radius:9px;background:var(--surface)}
.amenity-icon svg,.amenity-icon img{width:24px;height:24px;display:block;object-fit:contain}
.amenity-icon svg{fill:none;stroke:var(--brand);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.amenity-icon:hover,.amenity-icon[aria-expanded=true]{background:var(--brand-soft)}
.amenity-tooltip{display:none;position:absolute;left:0;bottom:calc(100% + 6px);z-index:1100;min-width:100px;max-width:220px;width:max-content;padding:8px 10px;border-radius:8px;background:var(--inverse-bg);color:var(--inverse-text);font-size:var(--text-label);line-height:1.45;pointer-events:none;overflow-wrap:break-word}
.amenity-icon:hover+.amenity-tooltip,.amenity-icon:focus-visible+.amenity-tooltip,.amenity-icon[aria-expanded=true]+.amenity-tooltip{display:block}
.amenity-unavailable{position:absolute;right:0;top:0;background:var(--surface-raised);color:var(--danger);border-radius:50%;font-size:var(--text-body);line-height:1}
.amenity-more{margin:0 0 12px;font-size:var(--text-label)}
.amenity-more>summary{min-height:44px;padding:9px 0;color:var(--brand);list-style:none}
.pet-policy-note{font-size:var(--text-meta);color:var(--muted);margin:0 0 8px}
.alternatives{margin:28px 0;border-top:1px solid var(--line);padding-top:24px}
.alternatives>h3{margin-top:22px}
.alternative-dates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.alternative-units{display:grid;gap:20px}
.alternative-card{padding:16px 0;border-bottom:1px solid var(--line);min-width:0}
.alternative-units .alternative-card{display:grid;grid-template-columns:140px minmax(0,1fr);gap:18px}
.alternative-card img{width:100%;height:130px;object-fit:cover;border-radius:10px}
.alternative-card h3{font-size:var(--text-subsection)}
.alternative-card p{font-size:var(--text-label);margin:8px 0}
.alternative-total{display:block;font-size:var(--text-section);margin:12px 0}
.alternative-breakdown>summary{min-height:44px;padding:9px 0;font-size:var(--text-label)}

.map-wrap{display:grid;grid-template-rows:minmax(0,1fr) auto;position:sticky;top:16px;overflow:hidden;height:620px;border:1px solid var(--line);border-radius:14px;background:var(--surface);isolation:isolate}
.map-wrap #map{height:100%;min-height:0}
.map-note{padding:11px 14px;border-top:1px solid var(--line);background:var(--surface-raised);display:grid;gap:3px;font-size:var(--text-meta);line-height:1.45}
.map-note strong{font-size:var(--text-meta)}
.map-note span,.map-note small{color:var(--muted);font-size:var(--text-meta)}
.map-fallback{padding:24px}
.location-marker{background:none;border:0;display:grid;place-items:center;cursor:pointer}
.location-dot{display:grid;place-items:center;width:18px;height:18px;border:3px solid var(--on-action);border-radius:50%;background:var(--brand-action);box-shadow:var(--shadow)}
.location-group .location-dot{width:26px;height:26px;color:var(--on-action);font:650 var(--text-meta)/1 var(--font)}
.location-marker:focus-visible{outline:2px solid var(--brand);outline-offset:0;border-radius:50%}
.location-marker:hover .location-dot,.location-dot.selected{background:var(--brand-action);transform:scale(1.15)}
.location-price{position:absolute;top:31px;left:50%;transform:translateX(-50%);padding:3px 7px;background:var(--surface-raised);border:1px solid var(--line);border-radius:8px;color:var(--ink);font:600 var(--text-meta)/1.4 var(--font);white-space:nowrap;pointer-events:none}
.leaflet-tooltip.location-tooltip{width:250px;min-width:220px;max-width:calc(100vw - 48px);padding:14px 16px;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);background:var(--surface-raised);color:var(--ink);font:400 var(--text-label)/1.5 var(--font);white-space:normal;word-break:normal}
.location-tooltip strong{display:block;font-size:var(--text-subsection);line-height:1.3;margin:5px 0;font-weight:650}
.location-tooltip span{display:block}
.location-tooltip .map-hover-kind{font-size:var(--text-caption);font-weight:550;color:var(--muted)}
.location-tooltip .map-hover-facts{font-size:var(--text-label);color:var(--muted)}
.location-tooltip .map-hover-price{padding-top:9px;margin-top:9px;border-top:1px solid var(--line);font-size:var(--text-subsection);font-weight:650}
.map-hover-price small{font-size:var(--text-caption);font-weight:400;white-space:nowrap}
.location-tooltip .map-hover-tag{display:inline-flex;padding:4px 8px;margin-top:8px;border-radius:6px;background:var(--departure-soft);color:var(--departure);font-size:var(--text-caption)}
.location-tooltip.leaflet-tooltip-top:before{border-top-color:var(--surface-raised)}
.location-tooltip.leaflet-tooltip-bottom:before{border-bottom-color:var(--surface-raised)}
.location-tooltip.leaflet-tooltip-left:before{border-left-color:var(--surface-raised)}
.location-tooltip.leaflet-tooltip-right:before{border-right-color:var(--surface-raised)}
.location-popup .leaflet-popup-tip{background:var(--surface-raised)}
.location-popup .leaflet-popup-close-button{color:var(--muted)}
.location-tooltip:before{left:calc(50% - var(--tooltip-shift,0px))}
.map-cluster-names{display:grid;gap:4px;margin:0;font-size:var(--text-body);font-weight:550}
.map-cluster-hint{display:block;padding-top:10px;margin-top:10px;border-top:1px solid var(--line);font-size:var(--text-caption);line-height:1.45;color:var(--muted);font-weight:400}
.location-preview{font:400 var(--text-label)/1.5 var(--font);color:var(--ink);max-width:100%;overflow-wrap:break-word}
.location-preview img{width:100%;height:120px;object-fit:cover;border-radius:9px}
.location-preview h3{font-size:var(--text-subsection);margin:12px 0 8px}
.location-preview h3 a{text-decoration:none}
.location-preview address{font-size:var(--text-meta);color:var(--muted);margin:0 0 10px}
.location-preview p{font-size:var(--text-meta);margin:9px 0}
.location-preview .location-quote{font-size:var(--text-body);font-weight:650}
.location-preview .primary{display:flex;margin-top:12px}
.location-popup .leaflet-popup-content{margin:14px}
.location-popup .leaflet-popup-content-wrapper{background:var(--surface-raised);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.location-same-address{display:grid;gap:6px}
.location-same-address button{min-height:44px;text-align:left;padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--text-label)}
.map-wrap .leaflet-control-zoom a,.property-location-preview .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;font-size:25px}
.map-wrap .leaflet-control-zoom a,.property-location-preview .leaflet-control-zoom a{background:var(--surface-raised);color:var(--ink);border-color:var(--line)}
.map-wrap .leaflet-control-zoom a:hover,.property-location-preview .leaflet-control-zoom a:hover{background:var(--surface)}
.leaflet-control-attribution{background:var(--surface-raised)!important;color:var(--muted);font:var(--text-caption)/1.5 var(--font)}

@media(max-width:1100px){.map-wrap{height:560px}
}

@media(max-width:760px){#detail-content>.native-gallery{height:230px}
.map-wrap{position:relative;top:0;height:65dvh;min-height:360px}
.location-tooltip{width:220px;min-width:200px}
.property-card .photo-count,.unit-option .photo-count{font-size:var(--text-meta);padding:3px 6px;top:8px;left:8px;bottom:auto;right:auto}
.property-card .photo-prev,.property-card .photo-next,.unit-option .photo-prev,.unit-option .photo-next{top:auto;bottom:3px}
.property-card .heart{top:4px;right:4px}
.photo-prev{left:1px}
.photo-next{right:1px}
.amenity-tooltip{max-width:180px}
.amenity-icon-wrap:nth-child(5n) .amenity-tooltip{left:auto;right:0}
.alternative-dates{grid-template-columns:1fr}
.alternative-units .alternative-card{grid-template-columns:90px minmax(0,1fr);gap:14px}
.alternative-card img{height:100px}
.alternative-card .primary{width:100%}
.unit-option .amenity-strip{gap:5px}
.unit-option .amenity-icon{width:36px;min-width:36px;padding:8px 6px}
.unit-option .amenity-icon svg{width:23px}
.map-note{padding:10px 12px}
}


.photo-prev svg,.photo-next svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.amenity-icon svg{stroke:currentColor}
.amenity-icon[data-family=water]{color:var(--sea);background:var(--sea-soft)}
.amenity-icon[data-family=comfort]{color:var(--plum);background:var(--plum-soft)}
.amenity-icon[data-family=kitchen]{color:var(--earth);background:var(--earth-soft)}
.amenity-icon[data-family=safety]{color:var(--berry);background:var(--berry-soft)}
.amenity-icon[data-family=outdoor]{color:var(--success);background:var(--success-soft)}


/* Leaflet's vendor link colour must not override product text or filled actions. */
.leaflet-container .location-preview h3 a{color:var(--ink)}
.leaflet-container .location-preview a.primary{color:var(--on-action);background:var(--brand-action);border-color:var(--brand-action)}
.leaflet-container a.leaflet-popup-close-button{color:var(--muted)}
.leaflet-control-attribution a{color:var(--brand)}


/* A property popup owns the map interaction until dismissed. Keep zoom chrome from covering its close action or photo. */
.map-wrap:has(.leaflet-popup) .leaflet-control-zoom{visibility:hidden}
.location-popup a.leaflet-popup-close-button{display:grid;place-items:center;width:32px;height:32px;top:4px;right:4px;border-radius:50%;background:var(--surface-raised);color:var(--ink);font-size:23px;box-shadow:var(--shadow)}

/* === messages === */
/* The conversation itself is a section, not another framed card. */
.inbox-list{display:grid;gap:0;margin-top:18px}
.inbox-list-item{display:block;overflow-wrap:anywhere;text-decoration:none;color:inherit;border-bottom:1px solid var(--line);padding:18px 0}
.inbox-list-item:hover{background:var(--surface)}
.inbox-list-item p{margin:5px 0;color:var(--muted);font-size:var(--text-label)}
.inbox-list-item>.row-between{gap:8px 14px;margin-bottom:7px}
.inbox-list-item>.row-between strong{font-size:var(--text-body);line-height:1.4}
.inbox-list-item>span:last-child{display:block;font-size:var(--text-label);line-height:1.5;margin-top:8px}
.inbox-channel{display:inline-flex;align-items:center;max-width:100%;padding:3px 8px;background:var(--brand-soft);color:var(--brand);border-radius:7px;font-size:var(--text-meta);line-height:1.5}
.inbox-unread{display:inline-block;width:8px;height:8px;background:var(--brand);border-radius:50%}
.inbox-tabs,.inbox-actions,.inbox-compose-options{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.inbox-actions{margin:16px 0}
.inbox-compose-options label{font-size:var(--text-label);flex:1;min-width:0}
.inbox-compose label,#inbox-assign label,#inbox-incoming label{display:block;font-size:var(--text-label)}
.inbox-messages{display:flex;flex-direction:column;gap:12px;margin:20px 0}
.inbox-message{align-self:flex-start;max-width:min(85%,720px);padding:12px 16px;border-radius:18px 18px 18px 5px;background:var(--surface);overflow-wrap:anywhere}
.inbox-message p{white-space:pre-wrap;line-height:1.55;margin:6px 0;font-size:var(--text-body)}
.inbox-message-meta{display:flex;line-height:1.45;gap:7px;flex-wrap:wrap;align-items:center;font-size:var(--text-meta);color:var(--muted)}
.inbox-message time{display:block;font-size:var(--text-meta);color:var(--muted);text-align:right}
.inbox-message.mine{align-self:flex-end;background:var(--brand-action);color:var(--on-action);border-radius:18px 18px 5px 18px}
.inbox-message.mine .inbox-message-meta,.inbox-message.mine time{color:var(--on-action)}
.inbox-message.internal{background:var(--warning-soft);color:var(--warning);border-left:3px solid var(--warning)}
.chat-conversation{max-width:980px;margin:16px auto;border:0;padding:0;border-radius:0;background:transparent}
.chat-live-label{display:flex;text-align:center;flex-wrap:wrap;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-size:var(--text-meta);padding:12px 0;border-bottom:1px solid var(--line)}
.chat-live-label>span{width:6px;height:6px;background:var(--brand);border-radius:50%}
.chat-conversation .inbox-messages{height:clamp(280px,48dvh,600px);overflow:auto;overscroll-behavior:contain;gap:10px;margin:0;padding:18px 8px;scrollbar-gutter:stable}
.chat-day{align-self:center;color:var(--muted);font-size:var(--text-meta);font-weight:550;padding:12px 4px 4px}
.inbox-compose{padding:14px 0;margin:0;border:0;border-top:1px solid var(--line);background:transparent}
.chat-input-row{display:flex;align-items:flex-end;gap:8px;padding:4px;border:1px solid var(--line);border-radius:26px;background:var(--surface-raised)}
.chat-input-row:focus-within{border-color:var(--brand);outline:2px solid var(--brand);outline-offset:0}
.chat-input-row textarea{flex:1;min-width:0;width:0;min-height:44px;max-height:144px;margin:0;padding:11px 14px;border:0;border-radius:20px;background:transparent;font:400 var(--text-body)/1.5 var(--font);resize:none;box-shadow:none;outline:none}
.chat-input-row .chat-send{display:grid;place-items:center;flex:none;width:44px;height:44px;min-width:44px;min-height:44px;padding:10px;border-radius:50%;margin:0;background:var(--brand-action);color:var(--on-action);border:0}
.chat-send svg{display:block;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.chat-conversation .inbox-compose-options{gap:8px;margin-top:10px;padding:0 4px}
.chat-conversation .inbox-compose-options label{display:flex;align-items:center;gap:8px;flex:0 1 auto;font-size:var(--text-label)}
.chat-conversation .inbox-compose-options select{width:auto;min-height:40px;font-size:var(--text-label);padding:7px 10px;margin:0}
.inbox-checkbox{display:flex;align-items:center;gap:8px;font-size:var(--text-meta)}
.chat-hint{font-size:var(--text-meta);color:var(--muted);margin-left:auto}
.chat-feedback{font-size:var(--text-label);color:var(--danger);margin:8px 0 0}
.chat-feedback:empty{display:none}
.chat-new{display:block;margin:8px auto;min-height:44px;padding:9px 12px;background:var(--brand-soft);color:var(--brand);border-radius:10px}
.chat-empty{text-align:center;color:var(--muted);font-size:var(--text-label)}
.chat-tools{margin:8px 0 0}
.chat-tools summary{min-height:44px;padding:10px 0;font-weight:550;font-size:var(--text-label)}
.inbox-delivery{border-top:1px solid var(--line);padding:16px 0;font-size:var(--text-label)}
.inbox-context{margin-top:16px;padding:16px 0}
.inbox-context>p{font-size:var(--text-label);line-height:1.55;margin-bottom:8px}
.inbox-context>a{font-size:var(--text-label)}
.inbox-context .inbox-compose-options{align-items:flex-end}
.inbox-delivery>strong{font-size:var(--text-body);line-height:1.4}
.inbox-delivery>p{margin:8px 0;color:var(--muted)}
.inbox-delivery details>summary{min-height:44px;padding:10px 0;font-weight:550}
.inbox-delivery details>p{white-space:pre-wrap;line-height:1.55;overflow-wrap:anywhere}
.inbox-message-meta strong{font-weight:600}
.stay-inbox{padding:20px 0;border:0}
.stay-inbox>h2{margin-bottom:8px}
.stay-inbox>p{font-size:var(--text-label);color:var(--muted)}

@media(max-width:760px){.chat-conversation{margin:18px 0}
.chat-conversation .inbox-messages{height:48dvh;padding:14px 2px}
.inbox-message{max-width:90%;padding:11px 14px}
.inbox-message p{font-size:var(--text-body)}
.chat-hint{display:none}
.inbox-compose-options{gap:8px}
.inbox-actions button{font-size:var(--text-label)}
.chat-input-row textarea{padding:11px 12px}
.inbox-message-meta,.inbox-message time{font-size:var(--text-meta)}
.chat-input-row textarea{font-size:16px}
.chat-conversation .inbox-compose-options{align-items:flex-start}
.chat-conversation .inbox-compose-options label{flex-wrap:wrap}
.chat-conversation .inbox-compose-options select{min-height:44px;font-size:16px}
.inbox-compose-options>label{flex-basis:100%}
.inbox-context .inbox-compose-options>button{max-width:100%}
}


@media(max-width:389px){.inbox-message{max-width:95%;padding:10px 12px}
.chat-live-label{font-size:var(--text-meta)}
.inbox-list-item>.row-between strong{flex:1 1 150px}
.inbox-actions{gap:8px}
.chat-conversation .inbox-messages{padding-inline:0}
}


/* Conversation maintenance uses named rows; assignment is a separate form. */
.inbox-actions.action-list{align-items:stretch;gap:0;margin:8px 0 16px}.chat-tools .action-list>button{justify-content:flex-start;text-align:left;padding:12px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.chat-tools .action-heading{margin-top:12px}.chat-tools .action-pair{margin-top:16px}

/* === overlays === */
/* Temporary context only: date/calendar and plan viewer. Property/checkout remain pages. */
dialog{background:var(--surface-raised);color:var(--ink);font:var(--font-size)/1.5 var(--font)}dialog::backdrop{background:#142b435f}#detail{width:min(960px,calc(100vw - 32px));max-height:90dvh;border:1px solid var(--line);border-radius:18px;padding:28px;overflow:auto}#detail .close{position:absolute;right:12px;top:12px;width:44px;height:44px;font-size:26px;border-radius:50%;background:var(--surface)}.detail-body{padding:18px 0}.date-source{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:0!important;opacity:0;pointer-events:none;clip-path:inset(50%)}.date-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);color:var(--muted);font:400 16px/1.4 var(--font);text-align:left;white-space:nowrap}.date-trigger.has-value{color:var(--ink)}.date-trigger svg{width:18px;height:18px;flex:none;fill:none;stroke:var(--muted);stroke-width:1.7}.date-picker{width:min(368px,calc(100vw - 24px));max-height:calc(100dvh - 24px);border:1px solid var(--line);border-radius:22px;padding:18px;background:var(--surface-raised);box-shadow:var(--shadow);overflow:auto}.picker-title,.picker-month,.picker-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.picker-title h2{font-size:var(--text-section);margin:0}.picker-title>button,.picker-month>button{display:grid;place-items:center;width:44px;height:44px;flex:none;padding:0;border:0;border-radius:50%;background:var(--surface);font-size:26px;line-height:1}.picker-month{font-size:var(--text-body);font-weight:600;margin:12px 0}.picker-week,.picker-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center}.picker-week{font-size:var(--text-caption);color:var(--muted);margin-bottom:6px}.picker-days button{height:44px;min-width:0;padding:0;border:0;border-radius:50%;background:transparent;font-size:var(--text-control);line-height:1;color:var(--ink)}.picker-days button:hover{background:var(--brand-soft)}.picker-days button[aria-current=date]{box-shadow:inset 0 0 0 1px var(--brand)}.picker-days button[aria-pressed=true]{background:var(--brand-action);color:var(--on-action)}.picker-days button:disabled{opacity:1;color:var(--disabled);background:transparent;cursor:default}.picker-footer{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.picker-footer button{font-size:var(--text-label)}.date-picker-open,.grounds-open{overflow:hidden}.grounds-lightbox{width:min(1200px,calc(100vw - 24px));max-height:calc(100dvh - 24px);border:0;border-radius:18px;padding:18px;background:var(--surface-raised);overflow:auto}.grounds-lightbox-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.grounds-lightbox-head h2{font-size:var(--text-section);margin:0}.grounds-lightbox-head button{width:44px;height:44px;flex:none;padding:0;font-size:25px}.grounds-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0}.grounds-tools button{min-width:44px}.grounds-tools output{font-size:var(--text-label);min-width:48px;text-align:center}.grounds-viewport{max-height:65dvh;width:100%;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom}.grounds-viewport img{display:block;width:100%;max-width:none;height:auto}.grounds-lightbox .small-note{margin:12px 0 0}
@media(max-width:760px){.date-picker{margin:auto auto max(12px,env(safe-area-inset-bottom));padding:16px}.grounds-lightbox{padding:14px;width:calc(100vw - 16px)}.grounds-lightbox-head h2{font-size:var(--text-subsection)}.grounds-viewport{max-height:68dvh}#detail{padding:54px 18px 20px}.date-trigger{padding:10px;font-size:var(--text-control)}}
@media(max-width:360px){.date-picker{padding:12px}.picker-days button{height:40px}.date-trigger{white-space:normal}}

/* === lab === */
/* UI kit and optional layout inspector, with the same application components. */
.ui-lab{max-width:1160px}.ui-lab-intro{max-width:75ch;color:var(--muted)}.ui-lab-nav{display:flex;gap:8px 18px;flex-wrap:wrap;margin:20px 0}.ui-lab-nav a{min-height:44px;padding:10px 0;font-size:var(--text-label);color:var(--brand)}.ui-lab-section{padding:26px 0;border-top:1px solid var(--line);scroll-margin-top:16px}.ui-lab-section>p{color:var(--muted);font-size:var(--text-label);max-width:80ch}.ui-lab-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}.ui-lab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.ui-lab-grid>label{display:flex;flex-direction:column;align-items:stretch;font-size:var(--text-label)}.ui-swatch{display:flex;align-items:center;gap:10px;font-size:var(--text-label)}.ui-swatch>i{width:32px;height:32px;flex:none;border-radius:9px;background:var(--tone)}.ui-lab-rules{font-size:var(--text-control);max-width:80ch}.ui-lab-rules li{margin:10px 0}.ui-lab pre{max-height:240px}.ui-edit-note{font-size:var(--text-meta);color:var(--muted);margin-top:12px}.ui-audit-dock{position:fixed;right:16px;bottom:16px;z-index:1600;width:280px;max-width:calc(100vw - 32px);background:var(--surface-raised);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:12px}.ui-audit-dock>summary{font-size:var(--text-label);font-weight:600}.ui-audit-dock p,.ui-audit-dock li{font-size:var(--text-caption);color:var(--muted)}.ui-audit-dock .ui-lab-row{gap:8px;margin:12px 0 0}.ui-audit-dock button{font-size:var(--text-meta)}.ui-outline-mode :is(input,select,textarea,button,summary,a){outline:1px dashed var(--departure);outline-offset:-1px}.ui-audit-issue{background:var(--warning-soft)}.privacy-summary{display:grid;gap:20px;max-width:800px}.privacy-summary h2{font-size:var(--text-section)}.privacy-summary p{font-size:var(--text-control)}.ui-kit-link{color:var(--brand)}
@media(max-width:760px){.ui-lab-grid{grid-template-columns:1fr}.ui-audit-dock{bottom:90px;right:12px}.ui-lab-section{padding:22px 0}.ui-lab-row{gap:8px}.ui-lab-row .primary,.ui-lab-row .secondary{flex:none}}

/* === settings === */
/* Owner: one grouped preference page for every role; contextual help remains nonblocking. */
.app-settings{max-width:760px;padding-top:4px}.settings-section{margin:0 0 24px}.app-settings .settings-section>h2{font-size:var(--text-meta);line-height:1.5;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;padding:0 14px}.settings-group{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised)}.settings-group>*+*{border-top:1px solid var(--line)}.settings-disclosure{margin:0;padding:0;border-radius:0;background:transparent}.settings-disclosure>summary,.settings-link-row,.settings-static-row{display:flex;align-items:center;gap:12px;min-height:54px;padding:13px 16px;text-decoration:none;line-height:1.4}.settings-disclosure>summary{list-style:none}.settings-disclosure>summary::-webkit-details-marker{display:none}.settings-label{font-size:var(--text-control);font-weight:500;min-width:0}.settings-value{margin-left:auto;text-align:right;font-size:var(--text-label);font-weight:400;color:var(--muted);min-width:0;overflow-wrap:break-word}.settings-static-row>.settings-value{max-width:65%}.settings-chevron{width:15px;height:15px;flex:none;fill:none;stroke:var(--muted);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform 180ms ease}.settings-link-row>.settings-chevron{margin-left:auto}.settings-disclosure[open]>summary>.settings-chevron{transform:rotate(90deg)}.settings-disclosure>summary:hover,.settings-link-row:hover{background:var(--surface)}.settings-options{padding:0 16px 8px}.settings-options>button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:44px;padding:10px 0;font-size:var(--text-label);color:var(--muted);text-align:left}.settings-options>button[aria-pressed=true]{color:var(--brand);font-weight:600}.settings-options>button>svg{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;visibility:hidden}.settings-options>button[aria-pressed=true]>svg{visibility:visible}.settings-options>button:hover{color:var(--brand)}.settings-row-note{font-size:var(--text-caption);color:var(--muted);padding:0 16px 12px;margin:0}.settings-footnote{font-size:var(--text-caption);line-height:1.5;color:var(--muted);margin:8px 14px 0}.settings-result{font-size:var(--text-meta);color:var(--success);margin:8px 14px 0}.settings-result:empty{display:none}.settings-switch-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 16px;min-height:62px}.settings-switch-row>div{min-width:0;flex:1}.settings-switch-row p{font-size:var(--text-caption);color:var(--muted);line-height:1.5;margin:4px 0 0}.settings-switch{position:relative;display:flex;align-items:center;justify-content:center;min-width:48px;min-height:44px;flex:none;border:0;background:transparent;padding:0}.settings-switch:before{content:'';width:44px;height:26px;border-radius:20px;background:var(--neutral-soft);box-shadow:inset 0 0 0 1px var(--line);transition:background-color 180ms ease}.settings-switch>span{position:absolute;left:5px;top:12px;width:20px;height:20px;border-radius:50%;background:var(--surface-raised);box-shadow:0 1px 4px #0003;transition:transform 180ms ease}.settings-switch[aria-checked=true]:before{background:var(--brand-action);box-shadow:none}.settings-switch[aria-checked=true]>span{transform:translateX(18px);background:var(--on-action)}.settings-option-links{padding:0 16px 8px}.settings-option-links>a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:9px 0;font-size:var(--text-label);color:var(--brand);text-decoration:none}.settings-option-links>a:hover{text-decoration:underline}.settings-disclosure>summary:focus-visible,.settings-link-row:focus-visible{outline-offset:-3px}.settings-options>button:focus-visible,.settings-option-links>a:focus-visible{outline-offset:0}.settings-scope-row{align-items:flex-start}.settings-scope-row>.settings-value{max-width:65%}
@media(max-width:400px){.settings-disclosure>summary,.settings-link-row,.settings-static-row{padding:12px;gap:8px}.settings-label{font-size:var(--text-label)}.settings-value{font-size:var(--text-meta)}.settings-switch-row{padding:12px;gap:12px}.settings-static-row>.settings-value{max-width:58%}.settings-footnote{margin-inline:12px}.app-settings .settings-section>h2{padding-inline:12px}.settings-section{margin-bottom:20px}}
.settings-menu-link{display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:10px 0 0;margin-top:8px;border-top:1px solid var(--line);font-size:var(--text-label);color:var(--ink);text-decoration:none}.context-coach{display:flex;align-items:center;gap:16px;margin:14px 0 18px;padding:12px 16px;border:1px solid var(--line);border-inline-start:3px solid var(--brand);border-radius:var(--radius);background:var(--surface);max-width:100%;color:var(--ink)}.context-coach>div:first-child{flex:1;min-width:0}.context-coach strong{font-size:var(--text-label)}.context-coach p{font-size:var(--text-meta);line-height:1.5;color:var(--muted);margin:3px 0 0}.context-coach-actions{display:flex;align-items:center;gap:12px;flex:none}.context-coach-actions button{min-height:44px;padding:8px 4px;font-size:var(--text-meta);font-weight:600;color:var(--brand);white-space:nowrap}.context-coach-actions button:hover{text-decoration:underline}.context-coach-actions button:last-child{font-weight:400;color:var(--muted)}

@media(max-width:760px){.context-coach{align-items:flex-start;flex-wrap:wrap;gap:4px;padding:10px 12px;margin:12px 0}.context-coach>div:first-child{flex-basis:100%}.context-coach-actions{margin-left:auto;gap:16px}.context-coach-actions button{min-height:44px}}
.browse-head+.context-coach{margin:0 16px 16px}.context-coach p{display:block}

/* === choices === */
/* Shared choices. Native selects remain in forms; all visible menus use this component. */
.choice-field{display:inline-flex;position:relative;flex-direction:column;vertical-align:middle;min-width:0;max-width:100%;width:100%;font-size:var(--text-body);line-height:1.4}
.choice-native{position:absolute!important;inset:0 auto auto 0!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;margin:0!important;opacity:0!important;pointer-events:none!important;clip-path:inset(50%)!important}
.choice-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink);font-size:inherit;line-height:1.4;text-align:left;font-weight:400;transition:background-color 180ms ease,border-color 180ms ease}
.choice-trigger:hover:not(:disabled){background:var(--surface)}.choice-trigger[aria-expanded=true]{border-color:var(--brand)}.choice-trigger[aria-invalid=true]{border-color:var(--danger)}.choice-trigger svg{width:18px;height:18px;flex:none;color:var(--muted)}.choice-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.choice-error{margin-top:6px;color:var(--danger);font-size:var(--text-meta);line-height:1.4}label>.choice-field{margin-top:6px}
.choice-popup{position:fixed;z-index:4100;display:flex;flex-direction:column;overflow:hidden;padding:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow);font-family:var(--font);font-size:var(--text-control);line-height:1.4;animation:choice-enter 150ms ease-out;isolation:isolate}
.choice-popup .choice-search{flex:none;min-height:42px;width:100%;margin:0 0 5px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:var(--text-body)}.choice-list{overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch;flex:1 1 auto;overscroll-behavior:contain;min-height:0;scroll-padding:4px}.choice-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:10px;border-radius:7px;cursor:pointer;overflow-wrap:anywhere}.choice-option[aria-selected=true]{font-weight:600;color:var(--brand)}.choice-option.is-highlighted{background:var(--brand-soft)}.choice-option[aria-disabled=true]{opacity:.45;cursor:not-allowed}.choice-check{font-size:var(--text-body);flex:none;line-height:1}.choice-group{padding:11px 10px 5px;color:var(--muted);font-size:var(--text-caption);font-weight:600;letter-spacing:.035em}.choice-empty{margin:0;padding:14px 10px;color:var(--muted);font-size:var(--text-label)}
@keyframes choice-enter{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.choice-popup{animation:none}.choice-trigger{transition:none}}
/* Match the same control slots used by native fields, without altering source form layout. */
.stay-type .choice-field{max-width:210px;margin-top:0;font-size:var(--text-control)}.calendar-view-controls .choice-field{width:auto;min-width:84px;font-size:var(--text-label)}.local-filter-bar label>.choice-field,.filter-more label>.choice-field{margin-top:0}.dashboard-toolbar .choice-field{width:auto;min-width:150px}
@media(max-width:760px){.calendar-view-controls .choice-field{font-size:var(--text-meta);min-width:76px}}

.choice-option-label{flex:1;min-width:0}.choice-symbol{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:7px;background:var(--plum-soft);color:var(--plum)}.choice-symbol svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
