/* Generated from ui/tokens.json. */
:root{--font:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;--ink:#25272d;--muted:#6a6d76;--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:#e2e3e8;--plum:#7445a0;--plum-soft:#f2eafa;--berry:#aa3869;--berry-soft:#fcebf2;--earth:#80603d;--earth-soft:#f6efe4;--sea:#176c70;--sea-soft:#e6f4f4;--leaf:#bd3549;--page:#f4f4f7;--surface:#f0f1f5;--surface-raised:#fff;--brand-action:#2864a0;--on-action:#fff;--inverse-bg:#25364a;--inverse-text:#fff;--shadow:0 8px 28px #14253620;--disabled:#77818f;--radius:12px;--panel-radius:18px;--panel-padding:14px;--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);--control-min:44px;--control-pad-block:10px;--control-pad-inline:12px;--nav-item-height:44px;--nav-pad:7px;--nav-icon:24px;--nav-label-gap:4px;--navigation-height:calc(var(--nav-item-height) + var(--nav-pad)*2 + 1px + env(safe-area-inset-bottom));--card-gap:12px;--section-gap:16px;--shadow-popover:var(--shadow);--control-height:max(var(--control-min),calc(var(--font-size)*1.4 + var(--control-pad-block)*2 + 2px));--text-card:calc(var(--font-size)*.875);--text-card-meta:calc(var(--font-size)*.75);--text-card-price:calc(var(--font-size)*.8125);--page-gutter:24px;--notification-fill:#bd3549;--nav-halo:#2864a021}
: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;--notification-fill:#bd3549;--nav-halo:#739ac12b}
@media(max-width:760px){:root{--text-page:calc(var(--font-size)*1.5);--panel-padding:12px;--nav-item-height:44px;--nav-pad:4px;--nav-icon:22px;--nav-label-gap:2px;--page-gutter:12px}}
/* === foundation === */
/* Owner: shared tokens, type, controls. Component geometry belongs in its own file. */

*,*::before,*::after{box-sizing:border-box}html{color-scheme:light;scroll-padding-top:16px;background:var(--surface-raised)}body{margin:0;min-height:100vh;min-height:100svh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);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-decoration:none}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:0;background:var(--brand-soft);color:var(--ink)}:is(input,select,textarea,.date-trigger,.choice-trigger):not(:where([type=checkbox],[type=radio],[type=color])):focus{outline:0;box-shadow:none;background:var(--brand-soft)}button svg{pointer-events:none}input::placeholder,textarea::placeholder{font:inherit;color:var(--muted);opacity:1}input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}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}
/* Safari-generated address/phone links inherit the same unlined typography as authored links. */
a[x-apple-data-detectors],a[x-apple-data-detectors] *,a[href^="x-apple-data-detectors:"],a[href^="x-apple-data-detectors:"] *{color:inherit;font:inherit;line-height:inherit;text-decoration:none;border:0;box-shadow:none}
/* 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:var(--control-height);padding:var(--control-pad-block) var(--control-pad-inline);border:0;border-radius:var(--radius);background:var(--surface);font-size:var(--text-body);font-weight:400;line-height:1.4;box-shadow:none}input:where(:not([type=checkbox]):not([type=radio]):not([type=color])),select,textarea{font-size:max(16px,var(--text-body))}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=checkbox]{appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;border:1.5px solid var(--muted);border-radius:5px;background:var(--surface);cursor:pointer}input[type=checkbox]::after{content:'';width:5px;height:9px;border:solid var(--on-action);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg);opacity:0}input[type=checkbox]:checked,input[type=checkbox]:indeterminate{background:var(--brand-action);border-color:var(--brand-action)}input[type=checkbox]:checked::after{opacity:1}input[type=checkbox]:indeterminate::after{width:9px;height:2px;border:0;background:var(--on-action);transform:none;opacity:1}input[type=checkbox]:disabled{opacity:.45;cursor:default}@media(forced-colors:active){input[type=checkbox]{appearance:auto}input[type=checkbox]::after{display:none}}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:var(--control-height);padding:var(--control-pad-block) var(--control-pad-inline);border:0;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%}.secondary,.ui-button{background:var(--surface)}.compare-select,.compare-link{background:var(--plum-soft);color:var(--plum)}.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}.primary:active:not(:disabled),.search-button:active:not(:disabled){filter:brightness(.86)}.secondary:active:not(:disabled),.ui-button:active:not(:disabled){background:var(--brand-soft);border-color:var(--brand)}.segmented,.view-toggle{display:inline-flex;gap:2px;align-items:center;padding:0;border:0;box-shadow:none;border-radius:11px;background:var(--surface);flex:none}.segmented button,.view-toggle button{display:flex;align-items:center;justify-content:center;padding:var(--control-pad-block) var(--control-pad-inline);min-height:var(--control-height);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:not(.primary,.secondary,.danger,.compare-link,.compare-select,.ui-button,.chip){font-size:var(--text-label);color:var(--brand)}.panel,.content-section{padding:var(--panel-padding);margin:12px 0;border:0;background:var(--surface-raised);border-radius:var(--panel-radius)}.content-section>h2,.content-section>h3{margin-bottom:10px}.content-section>:last-child{margin-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}/* Одинаковый disclosure для каталога и CRM: без широких пустых полос. */
.compact-disclosure,.property-extra,.all-unit-photos,.calendar-cancelled,.booking-history,.cancel-booking,.rental-documents{overflow:hidden;border:0;border-radius:var(--panel-radius);padding:0;margin:16px 0;background:var(--surface-raised)}summary{cursor:pointer;line-height:1.5}.compact-disclosure>summary,.property-extra>summary,.all-unit-photos>summary,.disclosure-group>details>summary,.calendar-cancelled>summary,.booking-history>summary,.cancel-booking>summary,.rental-documents>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:var(--control-pad-block) var(--control-pad-inline);min-height:var(--control-height);font-size:var(--text-control);font-weight:450;list-style:none;border-radius:var(--panel-radius)}
:where(.compact-disclosure,.property-extra,.all-unit-photos,.disclosure-group>details,.calendar-cancelled,.booking-history,.cancel-booking,.rental-documents)>summary::-webkit-details-marker{display:none}
:where(.compact-disclosure,.property-extra,.all-unit-photos,.disclosure-group>details,.calendar-cancelled,.booking-history,.cancel-booking,.rental-documents)>summary:after{content:'›';font-size:22px;line-height:1;color:var(--muted);flex:none;transition:transform 180ms ease}
:where(.compact-disclosure,.property-extra,.all-unit-photos,.disclosure-group>details,.calendar-cancelled,.booking-history,.cancel-booking,.rental-documents)[open]>summary:after{transform:rotate(90deg)}
:where(.compact-disclosure,.property-extra,.all-unit-photos,.disclosure-group>details,.calendar-cancelled,.booking-history,.cancel-booking,.rental-documents)>summary:hover{background:var(--surface)}
:where(.compact-disclosure,.property-extra,.all-unit-photos,.disclosure-group>details,.calendar-cancelled,.booking-history,.cancel-booking,.rental-documents)>summary:focus-visible{outline-offset:-3px}
:where(.compact-disclosure,.property-extra,.all-unit-photos,.calendar-cancelled,.booking-history,.cancel-booking,.rental-documents)>:not(summary){margin:0 16px 14px}
.disclosure-group{border:0;border-radius:var(--panel-radius);overflow:hidden;background:var(--surface-raised)}
.disclosure-group>details{padding:0;margin:0;border:0}
.disclosure-group>details+details{border-top:0}.disclosure-group>details+details>summary{position:relative}.disclosure-group>details+details>summary:before{content:"";position:absolute;top:0;left:14px;right:14px;height:0;background:transparent}
.disclosure-group>details>:not(summary){margin:0 14px 12px;font-size:var(--text-label);line-height:1.55;color:var(--muted)}
.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:0;font-size:var(--text-meta);color:var(--muted)}footer>a{display:inline-flex;align-items:center;min-height:var(--control-height)}
.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:var(--control-height);align-items:center;padding:10px 16px;border-radius:10px;color:var(--on-action);background:var(--brand-action)}
@media(max-width:760px){h1{font-size:var(--text-page)}h2{font-size:var(--text-section)}.panel-grid{grid-template-columns:1fr;gap:8px}.panel{padding:var(--panel-padding)}.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:var(--control-pad-block) var(--control-pad-inline)}.row-between{align-items:flex-start}footer{padding:20px 16px;gap:10px;align-items:flex-start}.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,filter 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}}

.category-icon{padding:2px;box-sizing:content-box;border-radius:7px;color:var(--brand);background:var(--brand-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:0;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{margin-top:16px}

/* 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:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));grid-auto-rows:1fr;align-items:stretch;gap:8px;max-width:760px;margin:12px 0 0}.action-buttons>:is(button,a){width:100%;min-width:0;height:100%}.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:var(--control-height);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:var(--radius);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}}

/* Лёгкое раскрытие без изменения размеров; системный reduced-motion отключает анимацию. */
@media(prefers-reduced-motion:no-preference){.disclosure-group>details[open]>:not(summary){animation:soft-reveal 150ms ease-out}@keyframes soft-reveal{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}}

/* Одна группа — одна поверхность: заголовок, содержимое и пояснение внутри. */
.grouped-section{margin:22px 0;padding:var(--panel-padding);border:0;border-radius:var(--panel-radius);background:var(--surface-raised)}.grouped-section>.panel{padding:0;margin:0;background:transparent}.grouped-section>h3,.grouped-section>h2{font-size:var(--text-subsection);font-weight:600;letter-spacing:0;color:var(--ink);margin:0 0 12px}.grouped-footnote{font-size:var(--text-meta);line-height:1.5;color:var(--muted);margin:12px 0 0}.grouped-section .disclosure-group{display:grid;gap:4px;background:transparent}.grouped-section .disclosure-group>details>summary{padding:12px; background:var(--surface);min-height:48px}.grouped-section .disclosure-group>details>summary:after{font-size:20px;font-weight:400;opacity:.65}.detail-navigation{display:flex;align-items:center;gap:12px;margin:18px 0}.detail-navigation>button,.detail-navigation>a{min-height:var(--control-height);display:inline-flex;align-items:center;padding:8px 0;color:var(--brand);font-size:var(--text-label);text-decoration:none}.detail-navigation>button:hover,.detail-navigation>a:hover{text-decoration:none}

/* === shell === */
html{scrollbar-gutter:stable}
/* 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:calc(12px + env(safe-area-inset-top)) 28px 12px;min-height:calc(72px + env(safe-area-inset-top));border-bottom:0;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:var(--control-min);padding:var(--control-pad-block) var(--control-pad-inline);border-radius:9px;text-decoration:none;font-size:var(--text-label);white-space:nowrap}#main-nav a.active{color:var(--ink);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:var(--control-min);padding:var(--control-pad-block) var(--control-pad-inline);border:0;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:0;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:var(--control-min);padding:9px 12px;border:0;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:20px var(--page-gutter) 24px}.workspace>h1{margin:0 0 8px}.workspace:has(>.app-settings)>h1,.workspace:has(>.app-settings)>.intro{text-align:center}.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:20px var(--page-gutter) 24px}.page-back{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--control-min);margin:0 0 18px}.page-back>a{display:flex;align-items:center;min-height:var(--control-min);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:calc(12px + env(safe-area-inset-top)) 20px 12px}.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:16px var(--page-gutter) 20px}.page-back{margin-bottom:14px}.workspace{padding:16px var(--page-gutter) 20px}.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>.appearance-trigger{display:grid;place-items:center;width:44px;height:44px;list-style:none;border:0;border-radius:var(--radius);background:transparent}.appearance-menu>.appearance-trigger svg{width:22px;height:22px;fill:none;stroke:var(--brand);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:8px;width:260px;max-width:calc(100vw - 32px);padding:var(--panel-padding);border:0;border-radius:var(--panel-radius);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:2px 2px 0;font-size:var(--text-caption);line-height:1.5;color:var(--muted)}.appearance-demo:empty{display:none}.appearance-demo{padding:0}.settings-menu-link{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:var(--control-min);padding:6px 0;font-size:var(--text-label);text-decoration:none;color:var(--ink)}.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:calc(4px + env(safe-area-inset-top)) 12px 4px;min-height:calc(56px + env(safe-area-inset-top))}.brand{grid-column:2;grid-row:1;justify-self:center;gap:7px}.brand>span{font-size:22px}.brand small{display:block;font-size:6px;letter-spacing:1px;margin-top:5px}.brand-emblem{width:30px;height:32px}.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:0;background:var(--page)}.demo-label{display:none}.locate-link{color:var(--brand);background:var(--brand-soft);border:0}.locate-link:hover{background:var(--brand-soft)}.property-address+.locate-link{margin:4px 0 12px}.locate-link .category-icon{width:18px;height:18px;padding:0}



/* 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:var(--control-min);padding:var(--control-pad-block) var(--control-pad-inline);margin:0;border:1px solid transparent;border-radius:var(--radius);background:transparent}.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:360px;max-width:calc(100vw - 24px);height:100dvh;max-height:100dvh;padding:0;border:0;border-right:0;border-radius:0;background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow);overflow:hidden}.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{flex:none;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 strong:focus{outline:0}.drawer-heading p{font-size:var(--text-caption);color:var(--muted);margin:2px 0 0}.drawer-close{display:grid;place-items:center;font-size:24px;line-height:1;padding:5px;min-width:var(--control-min);border:0;background:transparent;box-shadow:none}.drawer-close:hover{background:var(--surface)}.drawer-close:focus:not(:focus-visible){outline:0;box-shadow:none}.drawer-nav{padding:0 12px 4px;flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.workspace-drawer #main-nav{display:grid;gap:4px}.workspace-drawer #main-nav a{justify-content:flex-start;white-space:normal;min-height:var(--control-min);padding:7px 10px;font-size:var(--text-label);gap:10px}.drawer-section-label{margin:16px 10px 4px;line-height:1.4;color:var(--muted);font-size:var(--text-caption);font-weight:600;letter-spacing:.04em;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}.drawer-footer{flex:none;margin-top:12px;display:grid;gap:10px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:0;font-size:var(--text-meta)}.drawer-footer a{min-height:var(--control-min);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:350px}.drawer-heading{padding:12px 16px 8px}.drawer-nav{padding:0 8px 4px}}
@media(prefers-reduced-motion:reduce){.workspace-drawer[open]{animation:none}}

/* One persistent primary navigation for every account category. */
body{padding-bottom:calc(var(--navigation-height) + 16px)}.appearance-menu{margin-left:0}.quick-nav,.public-nav{position:fixed;inset:auto 0 0;z-index:900;display:flex;justify-content:center;gap:8px;min-height:var(--navigation-height);padding:var(--nav-pad) max(12px,env(safe-area-inset-right)) calc(var(--nav-pad) + env(safe-area-inset-bottom));align-items:center;border-top:0;background:var(--surface-raised);isolation:isolate}.quick-nav::after,.public-nav::after{content:"";position:absolute;top:100%;left:0;right:0;height:100vh;height:100lvh;background:var(--surface-raised);pointer-events:none}.quick-nav a,.public-nav a{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:var(--nav-item-height);padding:6px 16px;border-radius:10px;font-size:var(--text-label);text-decoration:none;color:var(--muted)}.quick-nav a.active,.public-nav a[aria-current=page]{color:var(--ink);font-weight:650;background:transparent;isolation:isolate}.quick-nav a.active:before,.public-nav a[aria-current=page]:before{content:"";position:absolute;inset:-4px 0;z-index:-1;pointer-events:none;border-radius:50%;background:radial-gradient(ellipse at center,var(--nav-halo),transparent 70%);filter:blur(7px)}.quick-nav .workspace-symbol{width:24px;height:24px;background:transparent}.quick-nav .workspace-symbol,.public-nav a>svg{color:var(--brand)}.quick-nav .workspace-symbol svg,.public-nav a>svg{width:var(--nav-icon);height:var(--nav-icon);flex:none}.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:0;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,.public-nav{gap:2px;padding:var(--nav-pad) max(6px,env(safe-area-inset-right)) calc(var(--nav-pad) + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));min-height:var(--navigation-height)}.quick-nav a,.public-nav a{display:grid;grid-template-rows:var(--nav-icon) auto;align-content:center;justify-items:center;flex:1;gap:var(--nav-label-gap);padding:4px 1px;border-radius:0;min-height:var(--nav-item-height);font-size:var(--text-caption);line-height:1.2;text-align:center}.quick-nav a>span:last-child,.public-nav a>span:last-child{min-width:0;min-height:0;max-width:100%;overflow-wrap:normal}.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,.public-nav{gap:0;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}

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

/* Спокойная оболочка; фокус клавиатуры сохраняет общий контрастный контур. */
.workspace-menu,.appearance-menu>.appearance-trigger{transition:background-color 160ms ease}.workspace-menu:hover,.workspace-menu[aria-expanded=true],.appearance-menu>.appearance-trigger:hover,.appearance-menu[open]>summary{background:var(--brand-soft)}
.appearance-menu>.appearance-trigger:focus{outline:0;box-shadow:none;background:var(--brand-soft)}
@media(prefers-reduced-motion:reduce){.workspace-menu,.appearance-menu>.appearance-trigger{transition:none}}

/* Вторичная навигация доступна одним раскрытием без тяжёлой полосы внизу. */
footer:has(>.site-links){display:block;margin:0;padding:8px var(--page-gutter) 12px;border:0;background:transparent}.site-links{position:relative;margin:0 auto;max-width:720px;border:0;background:transparent;color:var(--muted)}.site-links>summary{width:max-content;margin-inline:auto;border-radius:var(--radius);background:var(--surface-raised);display:flex;justify-content:center;align-items:center;gap:8px;list-style:none;min-height:var(--control-min);padding:6px 12px;font-size:var(--text-caption);cursor:pointer}.site-links>summary::-webkit-details-marker{display:none}.site-links>summary>span{display:inline-grid;place-items:center;width:18px;font-size:16px;transition:transform 180ms ease}.site-links[open]>summary>span{transform:rotate(45deg)}.site-links-panel{position:absolute;z-index:50;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);width:360px;max-width:calc(100vw - 24px);padding:8px 12px;border-radius:var(--panel-radius);background:var(--surface-raised);box-shadow:var(--shadow-popover)}.site-links nav{display:flex;justify-content:center;flex-wrap:wrap;gap:0 16px}.site-links nav a{display:inline-flex;align-items:center;min-height:var(--control-min);font-size:var(--text-caption);color:var(--muted);text-decoration:none}.site-links nav a:hover{text-decoration:none;color:var(--brand)}.site-links-panel>small{display:block;text-align:center;font-size:var(--text-caption);padding:4px 0 8px}@media(prefers-reduced-motion:reduce){.site-links>summary>span{transition:none}}

.workspace:is(.account-gate,.guest-empty){width:min(100%,456px);margin:24px auto;text-align:center}.workspace:is(.account-gate,.guest-empty)>.primary{width:100%}

.nav-unread{position:absolute;top:2px;right:6px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--notification-fill);color:var(--on-action);font-size:var(--text-meta);font-style:normal;font-weight:650;line-height:1;pointer-events:none}


.drawer-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 20px 0;flex:none}.drawer-shortcuts a{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:var(--control-height);padding:10px 8px;border-radius:var(--radius);background:var(--surface);font-size:var(--text-label);font-weight:550;text-decoration:none}.drawer-shortcuts svg,.drawer-help>svg{width:22px;height:22px;flex:none;stroke:currentColor}.drawer-link-copy{display:grid;gap:3px;min-width:0}.drawer-link-copy small{font-size:var(--text-caption);font-weight:400;line-height:1.35;color:var(--muted)}.guest-drawer .workspace-symbol{color:var(--muted);background:transparent}.guest-drawer #main-nav a.active .workspace-symbol{color:var(--brand)}.workspace-drawer #main-nav a{position:relative;align-items:center;border-radius:var(--radius)}.drawer-help{gap:12px;padding:10px 12px;border-radius:var(--radius);background:var(--surface)}.drawer-help>span{color:var(--ink);display:grid;gap:4px;font-size:var(--text-label);font-weight:550}.drawer-help small{font-size:var(--text-caption);font-weight:400;color:var(--muted)}.drawer-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.drawer-meta>a{font-size:var(--text-caption);color:var(--muted)}.drawer-shortcuts a:hover,.drawer-help:hover{background:var(--brand-soft)}

/* One rhythm: 4px between rows, 8px below labels, 16px between sections.
   The footer follows Account; only navigation scrolls when height is limited. */
@media(max-width:760px){.guest-drawer .drawer-shortcuts{padding:0 16px}.guest-drawer .drawer-shortcuts a{padding:6px 8px;min-height:var(--control-min)}.guest-drawer .drawer-nav{padding:0 8px}.guest-drawer .drawer-footer{gap:8px;padding:0 16px calc(12px + env(safe-area-inset-bottom))}.guest-drawer .drawer-help{padding:6px 10px}.guest-drawer .drawer-meta{gap:8px}}
@media(max-width:760px) and (max-height:780px){.guest-drawer .drawer-help small{display:none}}
@media(max-width:760px) and (max-height:700px){.guest-drawer .drawer-footer{display:flex;align-items:center;gap:8px}.guest-drawer .drawer-help{flex:1;min-width:0}.guest-drawer .drawer-meta{flex:none}.guest-drawer .drawer-meta>span{display:none}}


@media(max-height:500px){.guest-drawer .drawer-footer{display:flex;align-items:center;gap:8px;padding:8px 12px}.guest-drawer .drawer-help{flex:1;min-width:0}.guest-drawer .drawer-help small,.guest-drawer .drawer-meta>span{display:none}.guest-drawer .drawer-meta{flex:none}.guest-drawer .drawer-help>span{font-size:var(--text-caption)}}

/* The unavailable route uses the same compact guest-state rhythm. */
.workspace.unavailable-page{width:min(100%,520px);margin:32px auto;text-align:center}.unavailable-symbol{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 20px;border-radius:20px;background:var(--brand-soft);color:var(--brand)}.unavailable-symbol svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.6}.unavailable-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px}.unavailable-actions a{min-width:0}

/* === catalogue === */
/* Search, catalogue, property and booking pages: shared geometry for every role. */
/* Публичные HTML-страницы используют те же tokens/карточки, без отдельной темы. */
.public-main{width:100%;max-width:1280px;margin:auto;padding:16px var(--page-gutter) 24px}
.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:var(--control-min);border:0;border-radius:var(--radius);font-size:24px}
.public-theme svg{width:22px;height:22px;fill:none;stroke:var(--brand);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.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:not(.manual-rate),.public-section p:not(.manual-rate){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:var(--control-min)}
.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:1;object-fit:cover;border-radius:var(--radius)}
.public-site .catalogue-gallery img{height:auto;aspect-ratio:4/3}
.public-section{padding:var(--panel-padding);margin:16px 0;border:0;border-radius:var(--panel-radius);background:var(--surface-raised)}.public-section>:last-child{margin-bottom:0}
.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:max(16px,var(--text-body))}.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{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:8px 16px;padding:0;margin:12px 0;list-style:none;font-size:var(--text-label);line-height:1.5}
.public-amenities li{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:8px;padding:4px 0;margin:0;overflow-wrap:anywhere}.public-amenities li:before{content:"✓";display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:7px;color:var(--plum);background:var(--plum-soft);font-size:var(--text-meta)}
.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:0;padding:12px 0}
.public-location-list a{min-height:var(--control-min);display:inline-flex;align-items:center;font-weight:600}
.public-location-list span{color:var(--muted);font-size:var(--text-label)}
.public-location-list .manual-rate{color:var(--ink);margin:6px 0 0}
.public-location-list .rate-unit{color:var(--muted)}
.public-location-list .rate-amount{color:var(--ink)}
@media(max-width:767px){.public-main{padding:12px var(--page-gutter)}.public-main .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}.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}}

.browse-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px var(--page-gutter) 12px}
.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}
/* Поиск — одна композиция Where / When / Who. Телефон раскрывает панели в потоке, без ловушки прокрутки. */
.compact-search{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,.8fr) auto;align-items:start;gap:0;max-width:none;margin:0 var(--page-gutter) 12px;padding:4px;background:var(--surface-raised);border:1px solid transparent;border-radius:40px;box-shadow:0 5px 20px #00000008;z-index:12}
.search-destination,.search-part{position:relative;min-width:0;margin:0}
.destination-label{display:grid;gap:3px;min-width:0;margin:0;padding:6px 16px;border-radius:24px;min-height:52px}
.search-field-title{display:block;font-size:var(--text-meta);font-weight:650;line-height:1.4;color:var(--ink)}
.destination-label input:focus{outline:0;box-shadow:none}.destination-label input{min-height:25px;min-width:0;border:0;background:transparent;box-shadow:none;margin:0;padding:0;font-size:max(16px,var(--text-label));line-height:1.4;color:var(--ink)}
.destination-label:focus-within{outline:0;background:var(--brand-soft)}.destination-label:hover,.search-part>summary:hover,.search-part[open]>summary{background:var(--brand-soft);box-shadow:none}
.search-part>summary{display:grid;gap:3px;list-style:none;border:0;border-radius:30px;min-height:52px;padding:6px 16px;background:transparent;font-size:var(--text-label);color:var(--muted);cursor:pointer}
.search-part>summary::-webkit-details-marker{display:none}
.search-part>summary::after{display:none}
.search-part::before{display:none}
.compact-search>.search-submit{align-self:center;min-height:var(--control-min);gap:8px;border-radius:24px;padding:10px 18px;margin:0}
.search-submit svg{width:20px;height:20px;flex:none}
.destination-panel,.search-popover{position:fixed;top:calc(100% + 8px);left:-7px;background:var(--surface-raised);border:0;border-radius:var(--panel-radius);padding:var(--panel-padding);box-shadow:var(--shadow-popover);z-index:15;width:360px;max-width:calc(100vw - 32px)}
.destination-panel{position:fixed;display:flex;flex-direction:column;width:390px;padding:14px 8px 8px;overflow:hidden;isolation:isolate}.destination-panel>.search-panel-title{flex:none}
.search-popover>.search-panel-title{margin-inline:0}.search-panel-title{font-size:var(--text-label);font-weight:600;margin:0 10px 12px;color:var(--ink)}
.destination-section-label{padding:12px 12px 6px;font-size:var(--text-label);font-weight:600;color:var(--muted)}
#destination-options{min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-padding:4px}
#destination-options>[role=option]{display:flex;align-items:center;gap:12px;width:100%;text-align:left;min-height:56px;border:0;border-radius:12px;padding:10px;background:transparent;color:var(--ink);transition:background-color 180ms ease,color 180ms ease}
#destination-options>[role=option]:hover,#destination-options>[aria-selected=true]{background:var(--surface)}
#destination-options>[role=option]>span:last-child{display:grid;gap:4px;min-width:0}
#destination-options strong{font-size:var(--text-label);font-weight:550;overflow-wrap:anywhere;line-height:1.35}
#destination-options small{font-size:var(--text-meta);color:var(--muted);line-height:1.4}
.destination-option-icon{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:10px;background:var(--brand-soft);color:var(--brand)}
.destination-option-icon svg{width:23px;height:23px}
.search-no-destinations{padding:10px;line-height:1.5;color:var(--muted);font-size:var(--text-label)}
.date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;font-size:var(--text-label)}
.date-fields label{font-size:var(--text-label);margin:0}
.search-panel-footer{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));grid-auto-rows:1fr;gap:8px;align-items:stretch;margin-top:12px}
.search-panel-footer button{width:100%;font-size:var(--text-control)}
.search-popover{overflow-y:auto;overscroll-behavior:auto;touch-action:pan-y}.search-guests .search-popover{right:auto}
.guest-control{display:flex;align-items:center;justify-content:space-between;gap:20px}
.guest-control label{display:grid;gap:4px;margin:0;font-size:var(--text-label)}
.guest-control label span{font-size:var(--text-meta);color:var(--muted)}
.guest-stepper{display:flex;align-items:center;gap:4px}
.guest-stepper input{width:50px;text-align:center;border:0;padding:4px;font-size:16px;background:transparent;appearance:textfield}
.guest-stepper input::-webkit-inner-spin-button,.guest-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.guest-stepper button{min-width:44px;width:44px;height:44px;border-radius:50%;padding:0;font-size:22px}
.amenities-filter>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;border:0;border-radius:var(--radius);min-height:var(--control-min);padding:10px 13px;background:var(--surface-raised);font-size:var(--text-body);line-height:1.35}
.amenities-filter>summary::after{content:'⌄';color:var(--muted)}
.amenities-filter>summary::-webkit-details-marker{display:none}
.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:var(--control-min);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:var(--control-min);max-width:210px}
.compare-link{white-space:nowrap}
.results-line{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:0 var(--page-gutter) 10px;font-size:var(--text-label);color:var(--muted)}
.results-line strong{color:var(--ink);font-weight:550}
.rental-link a{display:inline-flex;align-items:center;min-height:var(--control-min);padding:8px 12px;background:var(--surface-raised);border-radius:var(--radius);text-decoration:none}
.browse-note,.rental-link{margin:0 var(--page-gutter) 12px;color:var(--muted);font-size:var(--text-label)}
.content{display:block;overflow-x:clip;padding:0 var(--page-gutter) 24px}
/* List и split используют одну сетку: число колонок зависит от ширины рядом с картой. */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:16px var(--space);align-items:start}
.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 4;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-card-meta);color:var(--muted);margin:3px 0 0;line-height:1.4;text-wrap:wrap}
.property-card h2{font-size:var(--text-card);line-height:1.3;margin:8px 0 0;letter-spacing:-.015em;text-wrap:wrap}
.property-card h2 a{text-decoration:none}
.property-card h2 a:hover{text-decoration:none}
.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:4px;margin:0 0 4px;min-width:0}
.card-bottom .manual-rate{margin:0;font-size:var(--text-card-price);line-height:1.35;color:var(--ink);font-weight:600}
.card-bottom>.card-map{display:grid;place-items:center;min-height:var(--control-min);width:44px;flex:none;border:0;background:transparent;color:var(--brand);border-radius:var(--radius);padding:0;text-decoration:none}
.card-map svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.card-map:hover{background:var(--brand-soft)}
.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(--brand);background:radial-gradient(circle,var(--brand-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-plan{margin:16px 0;min-width:0}
.grounds-plan figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.grounds-plan figcaption>span{display:grid;gap:2px}
.grounds-plan strong{font-size:var(--text-subsection)}
.grounds-plan small{font-size:var(--text-meta);color:var(--muted)}
.grounds-plan figcaption button{flex:none;min-height:var(--control-min);font-size:var(--text-label)}
.grounds-plan-image{display:block;width:100%;padding:0;border:0;background:transparent;border-radius:14px;cursor:zoom-in;touch-action:pan-x pan-y pinch-zoom}
.grounds-plan-image img{display:block;width:100%;height:auto;border-radius:14px}
.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:16px var(--space)}
.unit-option{min-width:0;display:grid;grid-template-rows:subgrid;grid-row:span 6;gap:0;align-self:stretch;padding:0;border:0;background:transparent}
/* Общие row tracks выравнивают первую пару и все следующие карточки без фиксированной высоты текста. */
.unit-option-body{display:contents}
.unit-option h3{text-wrap:wrap;font-size:var(--text-card);line-height:1.3;margin:8px 0 3px}
.unit-option h3 a{text-decoration:none}
.unit-option p{font-size:var(--text-card-meta);line-height:1.4;color:var(--muted);margin:0 0 5px}.unit-option p.manual-rate{font-size:var(--text-card-price);color:var(--ink);line-height:1.4;margin:2px 0 6px}
.unit-highlights{margin-bottom:12px}
.unit-option-actions{display:flex;align-items:center;gap:6px;margin:0}.unit-option-actions>.compare-select,.unit-option-actions>.locate-link{flex:1;font-size:var(--text-card-meta);padding:6px;min-height:var(--control-min)}
.unit-page-actions,.detail-actions,.request-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:14px 0}
.detail-actions,.unit-page-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));grid-auto-rows:1fr;align-items:stretch;max-width:760px}:is(.detail-actions,.unit-page-actions)>:is(a,button){width:100%;min-width:0;height:100%;font-size:var(--text-control)}
.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 .disclosure-group{margin-top:0}.unit-amenities .amenity-strip{margin:0}.unit-amenity-body{padding:0;background:transparent}.unit-amenity-body>p{font-size:var(--text-label);color:var(--muted);margin:10px 0 0}.unit-amenity-body>p+p{margin-top:4px}.listing-information>.disclosure-group>details{margin:0;background:transparent;border-radius:0;border:0}.listing-information h4{font-size:var(--text-label);margin:12px 0 6px}.listing-information ul{margin-top:6px}.listing-information .detail-actions{margin:10px 0 0}.listing-information a{color:var(--brand)}
/* На широком экране две смысловые группы занимают соседние колонки, на телефоне — общий поток. */
@media(min-width:1000px){#detail-content .detail-body:has(>.source-policies):has(>.unit-amenities){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;align-items:start}#detail-content .detail-body:has(>.source-policies):has(>.unit-amenities)>*{grid-column:1/-1}#detail-content .detail-body:has(>.source-policies)>.source-policies{grid-column:1}#detail-content .detail-body:has(>.source-policies)>.unit-amenities{grid-column:2}}

.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:0}
.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-unit-search{margin-top:20px}
.journey-planner{max-width:780px;margin:20px 0;padding:20px 0;border-top:0;border-bottom:0}
.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:0;margin-top:8px;padding-top:14px;font-size:var(--text-section);font-weight:650}
.journey-terms{padding:16px 0;margin:20px 0;border-top:0;border-bottom:0;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:0;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:0;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{width:100%;margin-top:4px}
.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;top:calc(var(--navigation-viewport-top,100dvh - var(--navigation-height)) - 12px);bottom:auto;left:50%;transform:translate(-50%,-100%);width:max-content;max-width:calc(100vw - 32px);padding:10px 14px;background:var(--surface-raised);border:0;border-radius:14px;box-shadow:var(--shadow);z-index:850;font-size:var(--text-label)}
.unit-overview #compare-tray{position:static;top:auto;left:auto;transform:none;width:auto;max-width:100%;margin-top:12px;box-shadow:none;flex-wrap:wrap;z-index:auto}
#clear-compare{min-height:var(--control-min);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:var(--control-min)}
.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){
.unit-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.amenity-checks{grid-template-columns:repeat(3,minmax(0,1fr))}
.compact-search{margin-inline:var(--page-gutter)}
}

@media(max-width:760px){.browse-head{padding:12px var(--page-gutter) 10px}
.browse-head h1{font-size:var(--text-page)}
.browse-head>div>p{display:none}
.compact-search{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 48px;margin:0 var(--page-gutter) 10px;padding:4px;border-radius:18px}
.search-destination{grid-column:1/3;grid-row:1}
.destination-label{padding:4px 10px;min-height:48px;border-radius:14px}.search-field-title{font-size:var(--text-caption);line-height:1.3}.destination-label input:focus{outline:0;box-shadow:none}.destination-label input{font-size:16px;min-height:23px}
.compact-search>.search-submit{grid-column:3;grid-row:1;min-width:44px;width:44px;height:44px;min-height:var(--control-min);padding:0;justify-self:center}
.search-submit>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.search-part{grid-row:2;border-top:0}
.search-dates{grid-column:1}
.search-guests{grid-column:2/4}
.search-part>summary{padding:4px 10px;min-height:46px;border-radius:12px;font-size:var(--text-label)}
.search-part::before{top:9px;height:28px}
.search-dates::before{display:none}
.compact-search:has(.search-part[open]) .search-part{grid-column:1/-1;grid-row:auto}
.search-part[open]::before{display:none}
.search-popover{position:static;width:auto;max-width:none;border:0;box-shadow:none;padding:12px 8px 8px;border-radius:0}
.search-guests .search-popover{width:auto}
.destination-panel{left:-7px;width:calc(100vw - 32px);max-width:calc(100vw - 32px);top:calc(100% + 10px);padding:16px 8px 8px}
.date-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.guest-control{gap:8px}
.browse-toolbar{padding:0 0 12px}
.browse-types{padding:2px 16px}
.browse-types .chip{font-size:var(--text-label);padding:var(--control-pad-block) var(--control-pad-inline)}
.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 var(--page-gutter) 8px;font-size:var(--text-meta)}
.results-line>span{display:none}
.browse-note,.rental-link{margin:0 16px 16px}
.content,.content.list-only{display:block;padding:0 var(--page-gutter) 20px}
.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:14px 10px}
.property-card h2{font-size:var(--text-card);display:block;overflow:visible}.property-card .location{margin-top:3px;font-size:var(--text-card-meta)}
.property-heading h1{font-size:var(--text-page)}
.property-heading p,.property-address{font-size:var(--text-label)}
.property-intro{margin:8px 0 12px;gap:8px}.property-intro>.unit-page-actions{width:100%;max-width:none}.property-intro+.section-heading{margin-top:0}
.property-intro>p{display:none}
.grounds-plan{margin:12px 0}
.grounds-plan figcaption{gap:8px}
.unit-list-grid{grid-template-columns:repeat(auto-fit,minmax(min(calc(var(--font-size)*10.625),100%),1fr));gap:14px 10px}
.unit-option h3{text-wrap:wrap;font-size:var(--text-card)}
.unit-option-body{padding-top:0}
.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:max(16px,var(--text-body))}
.unit-option-actions{display:flex;align-items:center}.unit-option-actions>*{min-width:0}
.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:auto;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-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
.section-heading{align-items:baseline}
.property-extra,.all-unit-photos{margin:16px 0}
}

@media(max-width:359px){.cards,.content.list-only .cards,.public-main .cards{grid-template-columns:1fr}}
@media(max-width:389px){.unit-filter-note .secondary{margin-left:0}
.price-breakdown>div{flex-wrap:wrap}
.price-breakdown dd{margin-left:auto}
.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}


/* Названия всех активных ограничений видимы до списка: Hot tub + Wi-Fi — две разные проверки. */
.browse-active-filters{padding:0 var(--page-gutter);display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:8px 0 12px}
.browse-active-filters .chip{min-height:var(--control-min);max-width:100%;gap:8px;white-space:normal;text-align:left;font-size:var(--text-meta)}
.browse-clear-all{min-height:var(--control-min);border:0;border-radius:var(--radius);padding:8px 12px;background:var(--surface-raised);color:var(--brand);font-size:var(--text-meta);text-decoration:none;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}
.manual-rate:has(>.rental-availability){display:grid;grid-template-columns:minmax(max-content,1fr) minmax(0,max-content);column-gap:8px;align-items:center}.manual-rate:has(>.rental-availability)>.rate-unit{grid-column:1;grid-row:1}.manual-rate:has(>.rental-availability)>.rate-amount{grid-column:1;grid-row:2}.rental-availability{grid-column:2;grid-row:1/span 2;justify-self:end;min-width:0;max-width:100%;padding:4px 7px;border-radius:8px;background:var(--tone-soft);color:var(--tone);font-size:inherit;font-weight:450;line-height:1.35;text-align:center;overflow-wrap:normal}
.manual-rate .rate-unit{display:block;margin-bottom:3px;font-size:inherit;white-space:nowrap;font-weight:400;color:var(--muted)}
.manual-rate .rate-row{display:flex;justify-content:space-between;align-items:baseline;gap:4px 8px;max-width:22em;line-height:1.5;flex-wrap:nowrap}
.unit-option .rate-row,.shortlist-card .rate-row,.booking-summary .rate-row{max-width:none}
.rate-amount,.manual-rate .rate-days{white-space:nowrap;overflow-wrap:normal}
.manual-rate .rate-days{font-weight:400}
.manual-rate .rate-amount{font-weight:600;font-variant-numeric:tabular-nums}

/* Одна панель дополнительных фильтров вместо нескольких рядов на главной. */
#main.catalogue-filtering{min-height:var(--catalogue-filter-floor);overflow-anchor:none}
.catalogue-controls{margin:0 var(--page-gutter) 8px}
.catalogue-control-bar{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;position:relative}
.catalogue-control-bar>.view-toggle{margin-left:auto}
.catalogue-filters{position:static;margin:0}
.catalogue-filters>summary{display:flex;gap:8px;align-items:center;min-height:var(--control-min);padding:10px 16px;border:0;border-radius:var(--radius);font-size:var(--text-control);list-style:none;background:var(--surface-raised);cursor:pointer}
.catalogue-filters>summary::-webkit-details-marker{display:none}
.catalogue-filters>summary svg{width:20px;height:20px}
.catalogue-filter-panel{container-type:inline-size;position:absolute;left:0;top:calc(100% + 12px);width:min(720px,100%);max-height:var(--filter-panel-height,calc(100dvh - 180px));overflow:auto;overscroll-behavior:auto;touch-action:pan-y;scrollbar-gutter:stable;background:var(--surface-raised);border:0;border-radius:var(--panel-radius);padding:var(--panel-padding);box-shadow:var(--shadow);z-index:14}
.filter-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.filter-panel-heading h2{font-size:var(--text-subsection);margin:0}
.filter-panel-heading button{display:grid;place-items:center;width:var(--control-min);height:var(--control-min);padding:0;border:0;border-radius:50%;background:var(--surface);font-size:22px}
.catalogue-filter-panel h3{font-size:var(--text-meta);color:var(--muted);font-weight:600;margin:0 0 6px}
.catalogue-filter-panel .browse-toolbar{padding:0 0 12px}
.catalogue-filter-panel .browse-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;padding:0;gap:8px}
.catalogue-filter-panel .browse-types button{white-space:normal;justify-content:flex-start;min-height:var(--control-min);gap:8px;padding:8px;border-color:transparent;background:var(--surface);font-size:var(--text-label);line-height:1.3}.catalogue-filter-panel .browse-types button.active{background:var(--ink);color:var(--surface-raised)}.catalogue-filter-panel .category-icon{width:18px;height:18px;padding:0;box-sizing:border-box;background:transparent;color:inherit}
.catalogue-city-group{display:grid;gap:6px;margin:0 0 12px;font-size:var(--text-meta);font-weight:600;color:var(--muted)}
.catalogue-city-group select,.catalogue-city-group .choice-field{width:100%;max-width:none}
.catalogue-filter-panel .filter-row{display:grid;gap:12px;margin:0;padding:0}
.catalogue-filter-panel .stay-type{display:grid;gap:6px;padding:0;margin:0}
.catalogue-filter-panel .stay-type>span{font-size:var(--text-meta);color:var(--muted);font-weight:600}
.catalogue-filter-panel .stay-type .choice-field,.catalogue-filter-panel .stay-type select{width:100%;max-width:none}
.catalogue-amenity-group{padding:0}
.catalogue-amenity-group .amenity-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:8px;padding:0}.catalogue-amenity-group .amenity-options>p,.catalogue-amenity-group .amenity-checks{grid-column:1/-1}.catalogue-amenity-group .amenity-options>p{font-size:var(--text-caption);line-height:1.4;margin:0 0 6px;color:var(--muted)}.catalogue-amenity-group .amenity-options>button{margin:0;min-height:var(--control-min);background:var(--brand-action);color:white}
.catalogue-amenity-group .amenity-checks{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0 0 8px}.catalogue-amenity-group .amenity-checks label{position:relative;align-items:center;min-height:var(--control-min);font-size:var(--text-label);line-height:1.35;gap:7px;padding:8px;border-radius:var(--radius);background:var(--surface);color:var(--muted)}.catalogue-amenity-group .amenity-checks label:has(:checked){background:var(--plum-soft);color:var(--plum)}.catalogue-amenity-group .amenity-checks input{position:absolute;width:1px;height:1px;opacity:0;margin:0}.catalogue-amenity-group .amenity-checks label:has(:focus-visible){outline:0;background:var(--brand-soft);color:var(--ink)}.filter-amenity-icon{display:grid;place-items:center;flex:none;color:var(--plum)}.filter-amenity-icon svg{width:19px;height:19px}
.catalogue-filter-panel .browse-active-filters{margin:16px 0 0}
/* Размер самого компонента, а не модель телефона, определяет число колонок. */
@container(min-width:560px){.catalogue-filter-panel .browse-types,.catalogue-amenity-group .amenity-checks{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Общая композиция заявки: разделы полей слева, итог справа; на телефоне всё в одном потоке. */
.unit-overview{padding:16px 0 0;display:grid;gap:8px}
.unit-overview .eyebrow,.unit-overview h1,.unit-overview h2,.unit-overview p{margin:0}
.unit-overview p,.unit-overview .property-address{font-size:var(--text-label);line-height:1.5;color:var(--muted)}
.unit-overview .unit-page-actions{margin:4px 0 0;gap:8px}
.journey-planner[aria-label="Request your stay"]{max-width:none;margin:20px 0;padding:0;border:0;border-radius:0;background:transparent}
.booking-intro{max-width:none;margin-bottom:8px;padding:var(--panel-padding);border-radius:var(--panel-radius);background:var(--surface-raised)}
.booking-intro h3{font-size:var(--text-section);margin:0 0 6px}
.booking-intro p{font-size:var(--text-label);line-height:1.5;color:var(--muted);margin:0}
.booking-status{font-size:var(--text-meta);line-height:1.5;overflow-wrap:anywhere;padding:var(--control-pad-block) var(--control-pad-inline);border-left:0;background:var(--surface);border-radius:var(--radius);margin:12px 0}
.booking-status[data-tone=warning]{border-color:var(--warning);background:var(--warning-soft);color:var(--warning)}.booking-status[role=alert]{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}
.booking-access{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:8px 0 12px}.booking-access .booking-status{margin:0;padding:8px 10px}.booking-signin{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:0;font-size:var(--text-meta);color:var(--muted)}
.booking-signin>a{width:100%;text-align:center;white-space:normal}.booking-access>[data-new-request]{width:100%;text-align:center;white-space:normal}
.booking-request-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;max-width:none}
.booking-request-form fieldset{display:contents}.booking-form-section:first-of-type{grid-column:1;grid-row:1}.booking-form-section:nth-of-type(2){grid-column:2;grid-row:1/span 2}
.booking-form-section{padding:var(--panel-padding);border:0;border-radius:var(--panel-radius);background:var(--surface-raised)}
.booking-section-heading{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.booking-section-heading>span{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:7px;background:var(--brand-soft);color:var(--brand);font-size:var(--text-meta);font-weight:650}
.booking-request-form h4{font-size:var(--text-subsection);margin:0;line-height:1.3}
.booking-request-form label{display:grid;gap:6px;margin:0;font-size:var(--text-label);font-weight:400;line-height:1.4;align-content:start}
.booking-stay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}.booking-accommodation{grid-column:1/-1}
.booking-stay-grid>.public-request-dates{grid-column:1/-1;gap:10px}.booking-stay-grid>.booking-guests{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px}.booking-guests input{max-width:80px}.booking-form-section:first-of-type .booking-section-heading>span{background:var(--plum-soft);color:var(--plum)}
.booking-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.booking-wide-field{grid-column:1/-1}
.booking-request-form input:not([type=checkbox]),.booking-request-form select,.booking-request-form textarea,.booking-request-form .choice-field,.booking-request-form .date-trigger{width:100%;min-width:0;margin:0;font-size:max(16px,var(--text-body))}
.booking-request-form textarea{min-height:96px}.booking-contact-help,.field-hint{font-size:var(--text-meta);font-weight:400;line-height:1.5;color:var(--muted)}.booking-contact-help{margin:0 0 12px}.booking-request-form :is(input:not([type=checkbox]),textarea,.choice-trigger,.date-trigger){font-family:var(--font);font-weight:400;line-height:1.4}
.booking-request-form .choice-trigger{font-size:max(16px,var(--text-body))}
.booking-request-form .public-consent{display:flex;gap:10px;align-items:flex-start;line-height:1.5;font-size:var(--text-meta);font-weight:400;margin-top:14px;min-height:var(--control-min)}
.booking-request-form .public-consent input{margin:0;flex:none;width:20px;height:20px}
.booking-account{margin:0 0 12px;overflow-wrap:anywhere}
.booking-summary{grid-column:1;grid-row:2;background:var(--surface-raised);border:0;border-radius:var(--panel-radius);padding:var(--panel-padding);min-width:0}
.booking-request-form:has(fieldset[hidden]){grid-template-columns:minmax(0,1fr)}.booking-request-form:has(fieldset[hidden]) .booking-summary{grid-column:1;grid-row:auto}
.booking-summary h4{margin:0 0 10px}
.booking-summary .price-breakdown{margin:12px 0;font-size:var(--text-label)}
.booking-summary .price-breakdown>div{gap:12px}
.booking-summary .price-breakdown dd{white-space:nowrap;font-variant-numeric:tabular-nums}
.booking-summary .manual-rate{margin:0;font-size:var(--text-label)}
.booking-summary .rate-estimate-heading{margin:16px 0 0;font-size:var(--text-meta);color:var(--muted)}
.booking-summary .price-breakdown dt{display:grid;gap:3px}
.booking-summary .request-receipt-facts dd{white-space:normal;min-width:0;overflow-wrap:anywhere}.booking-summary .request-receipt-facts>div:last-child dd{white-space:nowrap;overflow-wrap:normal}
.booking-summary .rate-calculation{display:block;font-size:inherit;font-weight:400;color:var(--muted)}
.booking-summary .price-total dt{font-size:var(--text-label)}
.booking-summary .price-total{font-size:var(--text-section)}
.booking-summary>.small-note{margin:10px 0 0}
.booking-summary>.primary{width:100%;margin-top:16px}
.booking-summary .booking-next-step{padding-top:8px;border-top:0}
.public-request:has(.booking-request-form){max-width:none}
@media(max-width:960px){.booking-request-form{grid-template-columns:minmax(0,1fr)}.booking-request-form .booking-form-section,.booking-request-form .booking-summary{grid-column:1;grid-row:auto}.booking-summary{max-width:none}}
@media(max-width:760px),(max-width:1024px) and (max-height:500px){.catalogue-controls{margin:0 var(--page-gutter) 8px}.catalogue-control-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.catalogue-control-bar>.view-toggle{grid-column:2;grid-row:1;align-self:start;justify-self:end;z-index:1}.catalogue-control-bar>.compare-link{grid-column:1/-1;grid-row:2;justify-self:start}.catalogue-filters{grid-column:1/-1;grid-row:1}.catalogue-filters>summary{width:max-content;max-width:100%}.catalogue-filter-panel{position:static;width:100%;max-height:none;margin-top:8px;padding:var(--panel-padding);box-shadow:none}.catalogue-filter-panel .browse-types{padding:0}.catalogue-filter-panel .filter-panel-heading{padding:0}}
@media(max-width:760px){.catalogue-control-bar [data-view=split]{display:none}.booking-request-form{gap:10px}.booking-form-section,.booking-summary{padding:var(--panel-padding)}.booking-stay-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-stay-grid>.public-request-dates{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.booking-stay-grid>.booking-guests{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px}.booking-guests input{max-width:76px}}
@media(max-width:389px){.booking-request-form .public-request-dates .date-trigger{padding-inline:8px;gap:4px}.booking-request-form .public-request-dates .date-trigger svg{display:none}}

@supports not(grid-template-rows:subgrid){.unit-option{display:flex;flex-direction:column;grid-row:auto}.unit-option-body{display:flex;flex:1;flex-direction:column}.unit-option-actions{margin-top:auto}}

.catalogue-filters>summary:hover,.catalogue-filters[open]>summary{background:var(--brand-soft)}

/* Unit journeys and populated comparison share compact, responsive sections. */
body:has(#compare-tray){padding-bottom:calc(var(--navigation-height) + 104px)}
#compare-tray{max-height:calc(100dvh - var(--navigation-height) - 24px);border-radius:var(--panel-radius)}
#clear-compare{min-width:var(--control-min);border-radius:var(--radius)}
.unit-detail-lead{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:24px;margin:12px 0 24px}
.unit-detail-lead>.browse-carousel{width:100%;aspect-ratio:3/2;margin:0}
.unit-detail-lead>.unit-overview{padding:0;gap:10px}
.unit-detail-lead .unit-overview h1,.unit-detail-lead .unit-overview h2{font-size:var(--text-section)}
.unit-detail-lead .unit-page-actions{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}
.unit-detail-lead .unit-page-actions>[data-booking-jump]{grid-column:1/-1}
.unit-detail-content .journey-planner{margin:0 0 20px;scroll-margin-top:20px}
.unit-detail-content .journey-planner .booking-intro h3{font-size:var(--text-section)}
.unit-map-link{margin:0;width:100%;border-radius:var(--radius);min-height:var(--control-height);background:transparent;color:var(--brand)}
.unit-map-link:hover{background:var(--surface)}
.booking-arrived .booking-intro{border-radius:var(--radius);animation:booking-focus 1.3s ease-out}
@keyframes booking-focus{from{background-color:var(--brand-soft)}to{background-color:transparent}}
.shortlist-page{max-width:1120px;margin:0 auto}
.shortlist-heading{margin:0 0 16px}.shortlist-heading h1{margin-bottom:8px}
.shortlist-grid{display:grid;grid-template-columns:repeat(var(--compare-count),minmax(0,1fr));gap:12px;align-items:stretch}
.shortlist-card{display:grid;grid-template-rows:subgrid;grid-row:span 6;gap:10px;padding:var(--panel-padding);border-radius:var(--panel-radius);background:var(--surface-raised);min-width:0}
.shortlist-photo{display:block;aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius)}.shortlist-photo img{width:100%;height:100%;object-fit:cover}
.shortlist-card h2{font-size:var(--text-subsection);line-height:1.3;margin:0;text-wrap:wrap;overflow-wrap:anywhere}
.shortlist-property{font-size:var(--text-meta);line-height:1.4;color:var(--muted);margin:0}
.shortlist-facts{display:grid;gap:10px;margin:0}.shortlist-facts dt{color:var(--muted);font-size:var(--text-caption);margin-bottom:3px}.shortlist-facts dd{font-size:var(--text-label);line-height:1.5}.shortlist-facts .manual-rate{margin:0;font:inherit}.shortlist-card>:is(.primary,.secondary){width:100%;font-size:var(--text-label)}
.shortlist-amenities{margin-top:16px}.shortlist-feature-list{padding:0 var(--panel-padding) var(--panel-padding)}.shortlist-feature{padding:12px 0}.shortlist-feature>strong{display:block;font-size:var(--text-label);margin-bottom:8px}.shortlist-feature-values{display:grid;grid-template-columns:repeat(var(--compare-count),minmax(0,1fr));gap:12px;font-size:var(--text-meta)}.shortlist-feature-values small{display:block;color:var(--muted);font-size:var(--text-caption);line-height:1.35;margin-bottom:4px}
@media(max-width:760px){.unit-detail-lead{grid-template-columns:minmax(0,1fr);gap:14px;margin:0 0 20px}.unit-detail-lead>.unit-overview{grid-row:1}.unit-detail-lead>.browse-carousel{aspect-ratio:16/10}.unit-detail-lead .unit-overview h1,.unit-detail-lead .unit-overview h2{font-size:var(--text-section)}.unit-detail-lead .unit-page-actions{gap:8px}.unit-detail-lead .unit-page-actions>:is(button,a){font-size:var(--text-label)}.shortlist-page> .shortlist-heading h1{font-size:var(--text-section)}.shortlist-grid{gap:8px}.shortlist-card{padding:10px;gap:8px}.shortlist-card h2{font-size:var(--text-label)}.shortlist-card .shortlist-facts dd{font-size:var(--text-meta)}.shortlist-card>:is(.primary,.secondary){font-size:var(--text-meta);padding:8px 6px}.shortlist-feature-values{gap:8px}.shortlist-property{font-size:var(--text-caption)}}
@media(prefers-reduced-motion:reduce){.booking-arrived .booking-intro{animation:none}}

@media(max-width:760px){.shortlist-grid{grid-template-columns:repeat(var(--compare-count),minmax(calc(var(--font-size)*11.125),1fr));overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:4px}.shortlist-card{scroll-snap-align:start}.unit-option-actions{flex-wrap:wrap}.unit-option-actions>[data-request-unit]{flex-basis:100%;font-size:var(--text-card-meta);padding:6px;min-height:var(--control-min)}}

.shortlist-swipe{display:none}@media(max-width:760px){.shortlist-swipe{display:block}}

/* Personal booking requests: shared filled panels, readable dates and equal actions. */
.workspace.guest-stays{max-width:1040px}.guest-stays-note{max-width:68ch;margin:0 0 16px;color:var(--muted);font-size:var(--text-label);line-height:1.5}.guest-stays-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--panel-padding);align-items:start}.guest-stay-card{min-width:0;padding:var(--panel-padding);border-radius:var(--panel-radius);background:var(--surface-raised)}.guest-stay-heading{display:flex;flex-wrap:wrap;align-items:start;gap:10px;margin-bottom:16px}.guest-stay-heading>div{flex:1 1 200px;min-width:0}.guest-stay-kind{font-size:var(--text-caption);color:var(--muted);margin:0 0 4px}.guest-stay-heading h2{font-size:var(--text-subsection);line-height:1.35;overflow-wrap:anywhere;margin:0}.guest-stay-heading .badge{white-space:normal;flex:none;max-width:100%}.guest-stay-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:12px;border-radius:var(--radius);background:var(--surface)}.guest-stay-dates dt{font-size:var(--text-caption);color:var(--muted);margin:0 0 4px}.guest-stay-dates dd{font-size:var(--text-label);font-weight:550;line-height:1.4;margin:0}.guest-stay-summary{font-size:var(--text-label);color:var(--muted);margin:12px 0 0}.guest-stay-reference{margin:12px 0;border:0;border-radius:var(--radius);background:transparent;overflow:hidden}.guest-stay-reference>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:var(--control-min);padding:8px;font-size:var(--text-caption);color:var(--muted);list-style:none;cursor:pointer;border-radius:inherit}.guest-stay-reference>summary::-webkit-details-marker{display:none}.guest-stay-reference>summary:hover{background:var(--surface)}.guest-stay-reference[open]>summary>span{transform:rotate(45deg)}.guest-stay-reference>p{font-size:var(--text-caption);overflow-wrap:anywhere;margin:0;padding:0 8px 8px}.guest-stay-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.guest-stay-actions>a{min-width:0;text-align:center}.workspace.guest-empty>h2{font-size:var(--text-section)}
@media(max-width:760px){.guest-stays-grid{grid-template-columns:minmax(0,1fr);gap:12px}.guest-stay-heading{gap:8px;margin-bottom:12px}.guest-stay-heading>div{flex-basis:180px}.guest-stay-dates{gap:8px;padding:10px}.guest-stay-actions>a{padding-inline:8px}}

.unit-list-heading{align-items:center;gap:12px;flex-wrap:wrap}.unit-list-heading>h2{margin:0;min-width:0}.unit-list-heading>.compare-link{flex:none}

/* One read-only saved estimate for the office and the guest's own stays. */
.saved-stay-price{margin:12px 0;min-width:0}
.saved-price-total{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;font-size:var(--text-label)}
.saved-price-total>span{color:var(--muted)}
.saved-price-total>strong{font-size:var(--text-subsection);white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}
.saved-stay-price>.small-note,.saved-price-unknown{margin:6px 0;font-size:var(--text-meta);line-height:1.5}
.saved-price-breakdown{margin-top:6px;border:0;border-radius:var(--radius);overflow:hidden}
.saved-price-breakdown>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:var(--control-min);padding:8px;font-size:var(--text-label);border-radius:inherit;list-style:none;cursor:pointer}
.saved-price-breakdown>summary::-webkit-details-marker{display:none}
.saved-price-breakdown>summary:hover{background:var(--surface)}
.saved-price-details{padding:8px;font-size:var(--text-label)}
.saved-price-details .manual-rate{margin:0}.saved-price-details .rate-row{max-width:none}
.saved-price-details .rate-estimate-heading{font-size:var(--text-meta);color:var(--muted);margin:14px 0 0}
.saved-price-details .price-breakdown{font-size:var(--text-label);margin:8px 0}
.saved-price-details .price-breakdown dt{display:grid;gap:3px}
.saved-price-details .rate-calculation{font-size:inherit;font-weight:400;color:var(--muted)}
.saved-price-details .price-total{font-size:var(--text-label)}

/* === workspace === */
/* Workspaces use the same controls and type as customer pages. */
/* Единая геометрия служебных форм. Только class hook: payload и проверки прав остаются прежними. */
.crm-form{display:grid;gap:12px;min-width:0;max-width:760px;margin:10px 0 0;padding:var(--panel-padding);border:0;border-radius:var(--panel-radius);background:var(--surface-raised)}
.crm-form>label:not(:has(input[type=checkbox],input[type=radio])),.crm-form .form-row>label:not(:has(input[type=checkbox],input[type=radio])){display:grid;gap:6px;margin:0;font-size:var(--text-label);font-weight:400;align-content:start}
.crm-form label>input,.crm-form label>select,.crm-form label>textarea,.crm-form label>.choice-field,.crm-form label>.date-trigger{margin-top:0;font-size:max(16px,var(--text-body))}
.crm-form .form-row{margin:0;gap:12px;align-items:start}
.crm-form>.small-note,.crm-form>p{margin:0;font-size:var(--text-meta);line-height:1.5}
.crm-form .crm-form-footer{padding-top:8px;margin-top:0;border-top:0}
#detail:has(.crm-form){width:min(760px,calc(100vw - 24px))}
#detail .detail-body:has(.crm-form){padding:0}
/* Внутри готовой панели второй контур только сужает поля на телефоне. */
#detail .crm-form,.settings-options>.crm-form,.panel>.crm-form{padding:0;border:0;background:transparent}
#detail .detail-body:has(.crm-form)>p{font-size:var(--text-label);color:var(--muted);line-height:1.5}
@media(max-width:760px){.crm-form .form-row>label{flex-basis:calc(50% - 6px)}.crm-form .crm-form-footer>.primary{flex:1 1 auto}}
/* Связанные поля собраны в секции. Меняйте здесь плотность всех CMS-форм, не payload. */
.crm-form>section{display:grid;gap:14px;margin:0;padding:0}
.crm-form>section>h2{margin:0;font-size:var(--text-subsection)}
.crm-form>section>p{margin:0}
.crm-form>section>label:not(:has(input[type=checkbox],input[type=radio])),.listing-number-grid>label{display:grid;gap:6px;font-size:var(--text-label);font-weight:400;align-content:start}
.crm-form.listing-editor-form{max-width:960px;padding:0;border:0;background:transparent;gap:20px}
.crm-form.listing-editor-form>section{padding:var(--panel-padding);border:0;border-radius:var(--panel-radius);background:var(--surface-raised)}
.crm-form.listing-editor-form>.crm-form-footer{padding:16px 20px;border:0;border-radius:var(--panel-radius);background:var(--surface-raised)}
/* На широком экране две смысловые группы; на телефоне сохраняем порядок чтения. */
.workspace:has(.admin-home){max-width:1120px}
.admin-home{margin-top:28px}
.admin-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:28px}
.admin-section>h2{font-size:var(--text-subsection);margin:0 0 4px}
.admin-section>p{color:var(--muted);font-size:var(--text-label);margin:0 0 14px}
.admin-destination{display:flex;align-items:center;gap:14px;min-height:52px;padding:10px 14px;text-decoration:none;transition:background-color 180ms ease}
.admin-destination:hover{background:var(--surface)}
.admin-destination:active{background:var(--brand-soft)}
.admin-destination:focus-visible{outline-offset:-3px}
.admin-destination-icon{display:grid;place-items:center;width:24px;height:28px;flex:none;border-radius:0;background:transparent;color:var(--ink)}
.admin-destination-icon svg{width:19px;height:19px}
.admin-destination-copy{flex:1;min-width:0}
.admin-destination strong{display:block;font-size:var(--text-control);font-weight:450}
.admin-destination small:not(.sr-only){display:block;font-size:var(--text-meta);line-height:1.4;margin-top:3px}
.admin-destination-chevron{font-size:24px;color:var(--muted);flex:none}
.admin-guide{margin:24px 0 0;overflow:hidden;border:0;border-radius:var(--panel-radius);background:var(--surface-raised)}
.admin-guide>summary{border-radius:inherit;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:14px 18px;list-style:none;font-size:var(--text-label);font-weight:550}
.admin-guide>summary::-webkit-details-marker{display:none}
.admin-guide>summary>span{font-size:22px;transition:transform 180ms ease}
.admin-guide[open]>summary>span{transform:rotate(90deg)}
.admin-guide>div{padding:0 18px 6px;max-width:78ch;font-size:var(--text-label);color:var(--muted)}
.admin-guide h3{font-size:var(--text-label);color:var(--ink)}
@media(max-width:760px){.admin-home{margin-top:20px}.admin-sections{grid-template-columns:minmax(0,1fr);gap:16px}.admin-destination{min-height:52px;padding:10px 14px;gap:10px}.crm-form{padding:var(--panel-padding)}.crm-form.listing-editor-form>section,.crm-form.listing-editor-form>.crm-form-footer{padding:var(--panel-padding)}.admin-guide{margin-top:20px}}
/* 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 .grouped-record-row>div{min-width:0}.connected-app .grouped-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:var(--control-min)}}
.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:not(:has(input[type=checkbox],input[type=radio])){margin:0;display:flex;flex-direction:column;gap:6px;flex:1 1 150px;font-size:var(--text-label);font-weight:400;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:auto;min-height:var(--control-height)}.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:var(--control-min);padding:8px 12px;border:0;border-radius:var(--radius);background:var(--surface-raised);list-style:none;font-size:var(--text-label);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:8px;position:absolute;right:0;top:calc(100% + 8px);width:280px;max-width:calc(100vw - 40px);max-height:min(60dvh,var(--filter-more-height,60dvh));overflow:auto;overscroll-behavior:contain;touch-action:pan-y;background:var(--surface-raised);border:0;box-shadow:var(--shadow);border-radius:var(--panel-radius);padding:var(--panel-padding);z-index:100}.filter-more:not([open])>div{display:none}.filter-more>div>label:not(:has(input[type=checkbox],input[type=radio])){display:flex;flex-direction:column;gap:6px;font-size:var(--text-label)}.filter-more p{font-size:13px;margin:0;color:var(--muted)}.filter-more .check-option{display:flex;align-items:center;gap:8px;min-height:var(--control-min);font-size:var(--text-label)}.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}.unit-filter-container .unit-filter-form{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end}.unit-filter-container .unit-filter-form>.filter-search{gap:6px;font-size:var(--text-label)}.unit-filter-options{display:contents}.unit-filter-options>label{display:grid;gap:6px;min-width:0;margin:0;font-size:var(--text-label);color:var(--muted);font-weight:550}.unit-filter-form .choice-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unit-filter-options>.filter-clear{background:var(--surface);color:var(--ink)}.unit-amenities>.unit-amenity-choices{width:min(440px,calc(100vw - 40px));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overscroll-behavior:auto;touch-action:pan-y}.unit-amenity-choices .check-option{position:relative;margin:0;padding:8px;border-radius:var(--radius);background:var(--surface);color:var(--muted);gap:7px;line-height:1.3}.unit-amenity-choices .check-option:has(:checked){background:var(--plum-soft);color:var(--plum)}.unit-amenity-choices .check-option input{position:absolute;width:1px;height:1px;opacity:0;margin:0}.unit-amenity-choices .check-option:has(:focus-visible){outline:0;background:var(--brand-soft);color:var(--ink)}.unit-amenity-choices>button{grid-column:1/-1}.record-filter-container{padding-bottom:12px;border-bottom:0;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:0;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:0;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:0;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:0;padding-top:10px}.request-assignment-history>summary{padding:8px 0;min-height:var(--control-min);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:0;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:var(--control-min);border-bottom:0;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:0}.application-summaries>details>summary{min-height:var(--control-min);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:0;vertical-align:top}.review-table td>button{min-height:var(--control-min);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:0}.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:0;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:0;background:var(--brand-soft);border-radius:var(--radius)}.booking-history li{border-bottom:0;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:not(:has(input[type=checkbox],input[type=radio])){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)>.unit-filter-options{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:8px 0;border:0;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:12px 0}.unit-filter-container .unit-filter-form{grid-template-columns:minmax(0,1fr) auto;gap:12px}.unit-filter-form>.filter-search{grid-column:1}.unit-filter-form>.unit-filters-toggle{grid-column:2}.unit-filter-form>.unit-filter-options{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}.unit-filter-options>.unit-bedrooms-filter{grid-column:1;grid-row:1}.unit-filter-options>.unit-sort-filter{grid-column:2;grid-row:1}.unit-filter-options:not(:has(.unit-bedrooms-filter))>.unit-sort-filter{grid-column:1/-1}.unit-filter-options>.unit-amenities{grid-column:1/-1;grid-row:2;min-width:0}.unit-filter-options>.filter-clear{grid-column:1/-1;justify-self:end}.unit-amenities>.unit-amenity-choices{width:100%;max-width:none;background:transparent;box-shadow:none;border-radius:0;padding:8px 0 0;max-height:none;overflow:visible;position:static;z-index:auto}.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:var(--control-min);border:0;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{text-decoration:none;background:var(--surface-raised);border:0;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:0}.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:0;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:0}.workspace-facts>div{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,2fr);gap:20px;align-items:baseline;padding:11px 0;border-bottom:0}.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:0;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}}

/* Редактор прайса: единый сгруппированный список, без набора отдельных карточек. */
.crm-rate-row{display:flex;align-items:center;gap:12px}.crm-rate-row>button{flex:none}.crm-rate-fields input{font-size:max(16px,var(--text-body))}.crm-rate-row .record-content{min-width:0;overflow-wrap:anywhere}
@media(max-width:389px){.crm-rate-fields{display:grid;grid-template-columns:minmax(0,1fr)}}

/* Редактор объявлений: одна форма, адаптивные поля и компактный выбор amenities. */
.listing-editor-form {max-width: 960px;}
.listing-number-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4,16px);}
.listing-amenity-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;max-height:420px;overflow:auto;overscroll-behavior:auto;padding-block:12px;}
.listing-amenity {display:flex;align-items:center;gap:10px;min-height:var(--control-min);font-size:var(--text-meta);}
.listing-amenity input {width:20px;height:20px;flex:0 0 20px;}
.listing-photo-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;}
.listing-photo-grid figure {margin:0;min-width:0;}
.listing-photo-grid img {width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm,8px);}
.listing-photo-grid figcaption {font-size:var(--text-meta);margin-block:6px;}
.listing-photo-grid .crm-inline-actions {gap:6px;flex-wrap:wrap;}
.listing-upload {display:inline-flex;position:relative;overflow:hidden;cursor:pointer;}
.listing-upload input {position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;}
.staging-account{max-width:1120px;margin:auto;padding:20px 16px}.staging-account .auth-preview{padding:24px 0 16px}.admin-profile-entry{display:flex;gap:10px;flex-wrap:wrap;max-width:456px;margin:0 auto;padding:var(--panel-padding);border:0;border-radius:var(--panel-radius);background:var(--surface-raised)}.admin-profile-entry>a{flex:1 1 160px}
.listing-description {white-space:pre-line;}

/* В меню разделитель начинается после пиктограммы, как текст строки. */
.admin-section .settings-group{--group-inset:52px}.admin-section>p{font-size:var(--text-meta);line-height:1.5;margin-bottom:8px}.admin-section>h2{font-size:var(--text-meta);color:var(--muted);font-weight:600;padding-inline:14px}

/* Unit amenities are a peer of Bedrooms/Sort, with the same field surface and chevron alignment. */
.unit-filter-options>.unit-amenities{align-self:end;min-width:0}.unit-filter-options>.unit-amenities>summary{width:100%;justify-content:space-between}.unit-amenities>summary{height:var(--control-height);min-height:var(--control-height);background:var(--surface);font-size:var(--text-control);font-weight:400;padding:var(--control-pad-block) var(--control-pad-inline)}.unit-amenities>summary:after{content:"";width:7px;height:7px;flex:none;border:solid var(--muted);border-width:0 1.5px 1.5px 0;transform:translateY(-2px) rotate(45deg)}.disclosure-group>.stay-back-row{width:100%;justify-content:flex-start;background:transparent;color:var(--brand);font-size:var(--text-control);border:0;border-radius:var(--radius);text-align:left}.disclosure-group>.stay-back-row:hover{background:var(--surface)}

/* Staff filters share equal tracks and rounded filled surfaces at every width. */
.crm-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:start;gap:12px;padding:var(--panel-padding);border-radius:var(--panel-radius);background:var(--surface-raised)}.crm-toolbar>label{min-width:0;margin:0;display:grid;gap:6px;align-content:start}.crm-toolbar>button{align-self:end}.crm-toolbar .choice-trigger{min-height:var(--control-height)}.crm-toolbar .choice-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crm-toolbar>label:only-of-type{grid-column:1/span 2}.admin-destination{border-radius:var(--radius)}.admin-guide>summary:hover{background:var(--surface)}
@media(max-width:760px){.crm-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.crm-toolbar>button{grid-column:1/-1;justify-self:end}.crm-toolbar>label:only-of-type{grid-column:1}.crm-toolbar>label:only-of-type+button{grid-column:2;grid-row:1}.crm-toolbar .choice-trigger{width:100%}.crm-toolbar:has(#crm-rate-amenity)>label:first-of-type{grid-column:1/-1}.crm-toolbar:has(#crm-rate-amenity)>label:first-of-type .choice-value{white-space:normal;text-overflow:clip;overflow:visible}.crm-toolbar:has(#crm-rate-amenity)>button{grid-column:2;grid-row:2}}

.booking-source-message{white-space:pre-wrap;overflow-wrap:anywhere;padding:0 var(--control-pad-inline) 12px;font-size:var(--text-label)}

/* Team assignment uses the shared controls inside the existing scrolling dialog. */
.crm-form .team-property-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.team-property-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;border:0;padding:0;margin:0;min-width:0}.team-property-choices .check-option{display:flex;align-items:center;gap:10px;min-height:var(--control-min);margin:0;padding:8px;border-radius:var(--radius);overflow-wrap:anywhere}.team-property-choices .check-option:has(:checked){background:var(--brand-soft)}.team-property-choices input{flex:none}.team-property-choices span{min-width:0}
@media(max-width:760px){.team-property-choices{grid-template-columns:1fr}}

/* === 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 16px;padding:var(--panel-padding);border-radius:var(--panel-radius);background:var(--surface-raised)}.record-group-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 8px}.record-group-heading>h2{font-size:var(--text-meta);line-height:1.5;font-weight:600;letter-spacing:0;color:var(--muted);margin:0;text-transform:none}.record-group-count{font-size:var(--text-caption);color:var(--muted);font-variant-numeric:tabular-nums}.record-group-attention .record-group-heading>h2{color:var(--danger)}.record-group-list{border:0;border-radius:var(--panel-radius);overflow:hidden;background:var(--surface-raised)}.record-group-list>.grouped-request-row+.grouped-request-row,.record-group-list>.request-record-summary+.request-record-summary{border-top:0}.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{text-decoration:none;display:grid;grid-template-columns:minmax(0,1fr) auto 12px;align-items:center;gap:12px;list-style:none;min-height:60px;padding:var(--control-pad-block) var(--control-pad-inline);cursor:pointer}.request-record-summary::-webkit-details-marker{display:none}.request-record-summary>div{min-width:0}.request-record-summary strong{font-size:var(--text-control);font-weight:600;line-height:1.4;display:block;overflow-wrap:break-word}.request-record-summary p{font-size:var(--text-caption);color:var(--muted);line-height:1.5;margin:4px 0 0}.request-record-summary>.semantic-status{font-size:var(--text-caption);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:0;background:var(--brand-soft)}.request-record-body{padding:16px;border-top:0}.request-record-body>p{font-size:var(--text-meta);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:0;border-radius:var(--panel-radius);overflow:hidden;background:var(--surface-raised)}.record-list-panel>h2{padding:var(--control-pad-block) var(--control-pad-inline);margin:0;border-bottom:0;font-size:var(--text-subsection)}.record-list-panel>.grouped-record-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0;padding:var(--control-pad-block) var(--control-pad-inline);border:0;border-radius:0;background:transparent}.record-list-panel>.grouped-record-row+.grouped-record-row{border-top:0}.record-list-panel>.grouped-record-row>div:first-child{flex:1 1 160px;min-width:0}.record-list-panel>.grouped-record-row strong{font-size:var(--text-control);line-height:1.4}.record-list-panel>.grouped-record-row p{font-size:var(--text-meta);line-height:1.5;color:var(--muted);margin:5px 0 0}.record-list-panel>.grouped-record-row>label{font-size:var(--text-caption)}.record-list-panel>p{padding:var(--control-pad-block) var(--control-pad-inline);margin:0;font-size:var(--text-label);color:var(--muted)}
/* Внешняя группа уже владеет заливкой и отступом: вложенный список не создаёт вторую панель. */
.record-status-group>h2{margin:0 0 8px;font-size:var(--text-subsection);line-height:1.4}
.workspace .record-status-group>.record-list-panel{margin:0;background:transparent}
.workspace .record-status-group>.record-list-panel>.grouped-record-row{padding-inline:0}
.workspace .record-status-group>.record-group-list .request-record-summary{padding-inline:0}
.workspace .record-status-group>.record-list-panel>.filter-empty,.workspace .record-status-group>.record-group-list>.filter-empty{padding:var(--control-pad-block) 0}
/* Пустая группа — обычное содержимое своей панели, без второй цветной плашки и двойных отступов. */
.record-list-panel>.filter-empty,.record-group-list>.filter-empty,.settings-group>.filter-empty{margin:0;padding:16px;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:var(--text-label)}
.crm-rate-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex:0 0 auto;max-width:100%}

@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 0 8px}.request-record-summary{padding:12px;gap:8px;grid-template-columns:minmax(0,1fr) auto 10px}.request-record-summary strong{font-size:var(--text-label)}.request-record-summary p{font-size:var(--text-caption)}.request-record-summary>.semantic-status{max-width:90px;font-size:var(--text-caption);padding:3px 6px}.request-record-body{padding:12px}.record-status-group{margin-bottom:12px}.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:var(--text-caption);white-space:nowrap;min-height:23px;padding:2px 6px}.request-record-reference{font-size:var(--text-caption);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}}

.request-stay-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}
.request-stay-facts dt{font-size:var(--text-meta);color:var(--muted)}
.request-stay-facts dd{font-size:var(--text-label);margin:4px 0 0}

@media(max-width:760px){.record-list-panel>.booking-record{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}.booking-record>.record-content{grid-column:1/-1}.booking-record>.badge{grid-column:2;grid-row:2}.booking-record>button{grid-column:1;grid-row:2;justify-self:start}.booking-record>.primary{grid-column:1/-1;justify-self:stretch}}

/* === 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:var(--control-min);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:none;font-weight:650}.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:none;font-weight:650}.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{background:var(--brand-soft);box-shadow:none}.timeline-create{display:grid;place-items:center;width:100%;height:100%;min-height:var(--control-min);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:var(--control-min);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:0}.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:var(--control-min);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:var(--control-min);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}

/* Portfolio overview uses one grid mode and compact, property-scoped filters. */
.portfolio-property{margin:8px 0;border:0;border-radius:var(--panel-radius);background:var(--surface-raised);overflow:hidden}.portfolio-property>summary{display:flex;align-items:center;gap:10px;min-height:var(--control-min);padding:8px 12px;list-style:none;font-size:var(--text-label);font-weight:600}.portfolio-property>summary::-webkit-details-marker{display:none}.portfolio-property>summary:after{content:"›";margin-left:2px;color:var(--muted);transform:rotate(90deg)}.portfolio-property:not([open])>summary:after{transform:none}.portfolio-property>summary small{margin-left:auto;color:var(--muted);font-size:var(--text-caption);font-weight:400}.portfolio-calendar-body{padding:0 8px 8px}.portfolio-calendar-body .timeline-scroll{margin:0;max-height:55dvh}.portfolio-calendar-body .filter-empty{margin:0;padding:10px;font-size:var(--text-label)}.portfolio-filters>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:min(600px,calc(100vw - 32px))}.portfolio-filters>div>label{width:100%;min-width:0}.portfolio-filters>div>.filter-search{grid-column:1/-1}.calendar-toolbar:has(.portfolio-filters){padding:var(--panel-padding);background:var(--surface-raised);border-radius:var(--panel-radius)}.calendar-toolbar:has(.portfolio-filters) .calendar-date-nav h2{font-size:var(--text-label);font-weight:600}.calendar-toolbar:has(.portfolio-filters) .calendar-period{justify-content:flex-start;gap:8px}.calendar-toolbar:has(.portfolio-filters) .calendar-period>label{display:flex;align-items:center;gap:8px;font-size:var(--text-caption)}.calendar-toolbar:has(.portfolio-filters) .calendar-period>label .choice-field{width:130px}.calendar-toolbar:has(.portfolio-filters) #crm-new-booking{margin-left:auto}@media(max-width:760px){.portfolio-filters{display:block}.portfolio-filters>summary{justify-content:flex-start;width:max-content}.portfolio-filters>div{width:100%;grid-template-columns:minmax(0,1fr)}.calendar-toolbar:has(.portfolio-filters) .calendar-date-nav{flex-wrap:nowrap}.calendar-toolbar:has(.portfolio-filters) .calendar-date-nav h2{font-size:var(--text-label);white-space:normal}.portfolio-calendar-body .timeline-scroll{max-height:50dvh}}

/* === 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}
.property-card .native-gallery .gallery-slide,.unit-option .native-gallery .gallery-slide{aspect-ratio:1}
.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:var(--control-min);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:var(--control-min);padding:9px 12px;border:0;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:4px;margin:8px 0;overflow:visible}
.amenity-icon-wrap{position:relative;display:inline-flex;isolation:isolate}
.amenity-icon{position:relative;display:grid;place-items:center;width:28px;height:28px;min-width:24px;padding:5px;border:0;border-radius:7px;color:var(--plum);background:var(--plum-soft)}
.amenity-icon svg,.amenity-icon img{width:18px;height:18px;display:block;object-fit:contain}
.amenity-icon svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.amenity-icon:hover,.amenity-icon[aria-expanded=true]{background:color-mix(in srgb,var(--plum) 22%,var(--plum-soft))}
.amenity-tooltip{display:none;position:absolute;left:0;bottom:calc(100% + 6px);z-index:1100;min-width:100px;max-width:min(220px,calc(100vw - 24px));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-tooltip[data-below=true]{bottom:auto;top:calc(100% + 6px)}
.amenity-icon-wrap:has(.amenity-icon:hover),.amenity-icon-wrap:has(.amenity-icon:focus-visible),.amenity-icon-wrap:has(.amenity-icon[aria-expanded=true]){z-index:2}
.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}
/* Один компактный блок: ряд значков + кнопка и раскрытый список. */
.unit-amenity-summary{position:relative;margin:0 0 8px}
.amenity-preview-row{display:flex;align-items:center;gap:var(--amenity-gap,4px)}
.unit-amenity-summary .amenity-strip{display:flex;flex-wrap:wrap;gap:4px;margin:0}
.amenity-preview-row>.amenity-strip{flex:0 0 auto;min-width:0;gap:var(--amenity-gap,4px);flex-wrap:nowrap}
.unit-amenity-summary .amenity-icon{width:var(--amenity-tile-size,28px);height:var(--amenity-tile-size,28px);min-width:24px}
.unit-amenity-summary .amenity-icon-wrap{flex:none}
.amenity-toggle{display:grid;place-items:center;flex:none;width:var(--amenity-tile-size,28px);min-width:24px;height:var(--amenity-tile-size,28px);padding:0;border:0;border-radius:7px;background:var(--plum-soft);color:var(--plum);font-size:var(--text-caption);font-weight:600;line-height:1}
.amenity-toggle:hover,.amenity-toggle[aria-expanded=true]{background:color-mix(in srgb,var(--plum) 22%,var(--plum-soft))}
.amenity-extra{position:absolute;inset:calc(100% + 6px) 0 auto;z-index:12;max-height:min(240px,40dvh);overflow-y:auto;overscroll-behavior:auto;padding:10px;border:0;border-radius:var(--radius);background:var(--surface-raised);box-shadow:var(--shadow)}
.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:var(--control-min);padding:9px 0;font-size:var(--text-label)}

.map-wrap{display:grid;grid-template-rows:minmax(0,1fr);position:sticky;top:16px;overflow:hidden;height:620px;border:0;border-radius:14px;background:var(--surface);isolation:isolate}
/* В смешанном режиме карта участвует в потоке общей сетки: объявления продолжаются под ней. */
.cards>.map-wrap{position:relative;top:0;height:auto;min-height:300px;align-self:stretch}
.map-wrap #map{height:100%;min-height:0}
.map-note{position:absolute;z-index:450;left:8px;bottom:24px;max-width:calc(100% - 16px);padding:4px 8px;border:0;border-radius:8px;background:var(--surface-raised);display:flex;gap:6px;font-size:var(--text-caption);line-height:1.4;pointer-events:none}
.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:0;box-shadow:none;background:var(--brand-soft);border-radius:var(--radius)}
.location-marker:hover .location-dot,.location-marker:focus-visible .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:0;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:0;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-body);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:0;margin-top:10px;border:0;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);line-height:1.3;font-weight:650}
.map-cluster-hint{display:block;padding-top:0;margin-top:12px;border:0;font-size:var(--text-meta);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-body);line-height:1.3;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:0;border-radius:14px;box-shadow:var(--shadow)}
.location-same-address{display:grid;gap:6px}
.location-same-address button{min-height:var(--control-min);text-align:left;padding:8px 10px;border:0;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}

.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%}

}


.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}


/* 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)}


.amenity-extra .amenity-strip{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.amenity-extra .amenity-icon-wrap{display:flex;align-items:center;gap:8px}.amenity-extra .amenity-tooltip{display:block;position:static;min-width:0;max-width:none;width:auto;padding:0;background:transparent;color:var(--ink);font-size:var(--text-meta)}

.map-interaction{position:absolute;z-index:450;top:98px;right:10px;display:flex;flex-direction:column;align-items:flex-end;gap:0;background:transparent;pointer-events:none}.map-interaction button{display:grid;place-items:center;width:44px;height:44px;pointer-events:auto;min-height:var(--control-min);padding:6px 10px;border:0;border-radius:0;background:var(--surface-raised);box-shadow:none;color:var(--ink);font-size:var(--text-caption)}.map-interaction button:hover{background:var(--brand-soft)}.map-interaction-status{flex-basis:100%;padding:6px 10px;border-radius:var(--radius);background:var(--surface-raised);color:var(--muted);font-size:var(--text-caption);line-height:1.4;pointer-events:auto}.map-interaction-status:empty{display:none}.map-wrap #map:focus-visible{outline-offset:-3px}

.map-interaction button:first-child{border-radius:0}.map-interaction button:nth-child(2){border-radius:0 0 8px 8px}.map-interaction button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}.map-interaction-status{max-width:min(280px,calc(100vw - 88px))}.map-wrap .leaflet-control-zoom{border:0;box-shadow:none}.map-wrap .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;border:0;background:var(--surface-raised);color:var(--ink)}.leaflet-tile-container img{max-width:none;max-height:none}.grounds-launcher{display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:var(--radius);background:var(--surface-raised);font-size:var(--text-label);text-align:left;width:max-content;max-width:100%;margin-top:8px}.grounds-launcher img{width:52px;height:36px;object-fit:cover;border-radius:6px}.grounds-launcher small{display:block;font-size:var(--text-caption);color:var(--muted)}

.map-wrap .leaflet-control-zoom a:first-child{border-radius:8px 8px 0 0}.map-wrap .leaflet-control-zoom a:last-child{border-radius:0}

/* The tileload handler extends bitmap edges by one pixel; original Leaflet positions stay unchanged. */

/* Leaflet plus-lighter makes overlapped edges white; normal compositing keeps adjacent map colours intact. */
.map-wrap .leaflet-container img.leaflet-tile{mix-blend-mode:normal}

/* === 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 var(--control-pad-inline);border-radius:var(--radius)}
.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;background:transparent}
.chat-input-row{display:flex;align-items:flex-end;gap:8px;padding:4px;border:0;border-radius:26px;background:var(--surface)}
.chat-input-row:focus-within{outline:0;background:var(--brand-soft)}
.chat-input-row textarea{flex:1;min-width:0;width:0;min-height:var(--control-min);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:var(--control-min);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:var(--control-min);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:var(--control-min);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:var(--control-min);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:var(--control-min);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:var(--control-pad-block) var(--control-pad-inline)}
.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:var(--radius);background:transparent}.chat-tools .action-heading{margin-top:12px}.chat-tools .action-pair{margin-top:16px}

.guest-inbox{max-width:760px;margin-inline:auto}
.welcome-message,.welcome-support{padding:var(--panel-padding);margin:16px 0;border:0;border-radius:var(--panel-radius);background:var(--surface-raised)}.welcome-message h2,.welcome-support h2{font-size:var(--text-section);line-height:1.35;margin:12px 0}.welcome-message p,.welcome-support p{color:var(--muted);line-height:1.65}.welcome-message .detail-actions,.welcome-support .detail-actions{margin:16px 0 0}.welcome-label{display:inline-block;color:var(--muted);font-size:var(--text-meta)}.welcome-sound{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;color:var(--muted);font-size:var(--text-meta)}

/* Real office conversations share the same controls and quiet surfaces as the guest app. */
.support-inbox{display:grid;gap:12px}.support-card{padding:var(--panel-padding);background:var(--surface-raised);border:0;border-radius:var(--panel-radius);min-width:0}.support-card>h2{font-size:var(--text-section);margin:0 0 10px}.support-card>p,.support-empty{color:var(--muted);line-height:1.6}.support-form{display:grid;gap:12px;margin-top:16px}.support-form>label,.support-fields>label{margin:0;display:grid;gap:6px;font-size:var(--text-label);min-width:0}.support-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:12px}.support-form input:not([type=checkbox]),.support-form textarea{width:100%;min-width:0;font-size:16px}.support-form label>input,.support-form label>textarea{margin-top:0}.support-form>.form-feedback{margin:0}.support-form textarea{resize:vertical;min-height:100px}.support-form>.primary{width:100%;margin-top:2px}.support-form .support-consent{display:flex;align-items:flex-start;gap:10px;font-size:var(--text-caption);line-height:1.6}.support-consent input{flex:none;margin-top:3px}.support-consent a{color:var(--brand);text-decoration:none}.support-form .support-honeypot{display:none}.support-conversation{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-radius:var(--radius);text-decoration:none;background:var(--surface);margin-top:8px;min-width:0}.support-conversation>div{min-width:0}.support-conversation strong{display:block;font-size:var(--text-control)}.support-conversation p{margin:5px 0;color:var(--muted);font-size:var(--text-label);overflow-wrap:anywhere}.support-conversation small{color:var(--muted);font-size:var(--text-caption)}.support-conversation.unread strong{font-weight:700}.support-unread-label{flex:none;align-self:flex-start;color:var(--brand);background:var(--brand-soft);border-radius:8px;padding:4px 7px;font-size:var(--text-caption)}.support-compose>summary,.support-welcome>summary{font-weight:550;min-height:var(--control-height);display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer}.support-compose>summary:after,.support-welcome>summary:after{content:'+';font-size:20px;color:var(--muted)}.support-compose[open]>summary:after,.support-welcome[open]>summary:after{content:'−'}.support-compose>summary::-webkit-details-marker,.support-welcome>summary::-webkit-details-marker{display:none}.support-welcome .welcome-message{padding:0;background:transparent;margin:12px 0 0}.support-property-requests{background:var(--surface-raised);border-radius:var(--radius);justify-content:space-between}.support-messages{display:grid;gap:12px;padding-block:12px}.support-bubble{max-width:90%;min-width:0;justify-self:start;background:var(--surface);padding:12px 14px;border-radius:18px 18px 18px 5px}.support-bubble.own{justify-self:end;background:var(--brand-action);color:var(--on-action);border-radius:18px 18px 5px 18px}.support-bubble.own>time,.support-bubble.own>small{color:var(--on-action)}.support-bubble>strong{font-size:var(--text-caption);font-weight:600}.support-bubble>p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;margin:6px 0}.support-bubble>time{font-size:var(--text-caption);color:var(--muted)}.support-receipt>h2{font-size:var(--text-section)}.support-receipt>p{line-height:1.6;color:var(--muted)}.support-receipt strong{overflow-wrap:anywhere}.support-inbox>.form-feedback:empty{display:none}

/* Chat-first guest intake: contact details appear only after choosing Send. */
.support-chat{display:flex;flex-direction:column;padding:var(--panel-padding);max-height:calc(100svh - 240px);min-height:380px}.support-chat>.support-transcript{flex:1;min-height:140px}.support-chat>.support-chat-heading,.support-chat>.support-chat-form,.support-chat>.support-quick-replies,.support-chat>.support-signin-hint,.support-chat>.welcome-sound,.support-chat>.support-receipt{flex:none}.support-chat:has(.support-contact:not([hidden])){max-height:none}.support-chat:has([data-welcome-conversation]){max-height:none;min-height:0}.support-chat:has([data-welcome-conversation])>.support-transcript{flex:none;min-height:0;max-height:none;overflow:visible;padding:4px 2px 8px}.support-chat:has([data-welcome-conversation])>.support-chat-heading{padding-bottom:8px}.support-chat-heading{display:flex;align-items:center;gap:10px;padding-bottom:12px}.support-chat-heading strong{font-size:var(--text-control)}.support-chat-heading small{display:block;margin-top:3px;color:var(--muted);font-size:var(--text-caption)}.support-avatar{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:var(--text-section);font-weight:650}.support-transcript{display:flex;flex-direction:column;gap:12px;max-height:clamp(240px,48svh,560px);min-height:180px;overflow-y:auto;overscroll-behavior:contain;padding:8px 2px 16px;scrollbar-width:thin}.support-transcript>[data-guest-welcome]{display:contents}.support-transcript>.support-bubble{align-self:flex-start}.support-transcript>.support-bubble.own{align-self:flex-end}.support-welcome-bubble{max-width:min(100%,560px);flex-shrink:0;color:var(--ink)}.support-welcome-bubble>p{color:inherit;font-weight:400}.support-welcome-bubble>.welcome-label{display:block;margin-bottom:6px}.support-welcome-bubble>strong{display:block;font-size:var(--text-control)}.support-bubble p{font-size:var(--text-control)}.support-bubble small{font-size:var(--text-caption)}.support-quick-replies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:6px 0}.support-quick-replies button{min-width:0;min-height:var(--control-min);padding:8px 6px;font-size:var(--text-caption);font-weight:550;border-radius:999px;background:var(--brand-soft);color:var(--brand);border:0}.support-chat-form{margin-top:6px;gap:8px}.support-input-row{display:flex;align-items:flex-end;gap:8px;padding:4px 4px 4px 12px;border:0;border-radius:26px;background:var(--surface)}.support-input-row:focus-within{background:var(--brand-soft)}.support-chat-form .support-input-row textarea{flex:1;width:0;min-width:0;min-height:var(--control-min);height:var(--control-min);max-height:132px;margin:0;padding:10px 0;resize:none;border:0;background:transparent;box-shadow:none;outline:0;font-size:16px;line-height:1.5}.support-chat-form .support-send{display:grid;place-items:center;width:var(--control-min);height:var(--control-min);min-width:var(--control-min);padding:10px;border:0;border-radius:50%;margin:0;flex:none;background:var(--brand-action);color:var(--on-action)}.support-send svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.support-contact{min-width:0;margin:0;padding:14px 0 0;border:0}.support-contact legend{font-size:var(--text-control);font-weight:650;padding:0}.support-contact>p{font-size:var(--text-label);color:var(--muted);line-height:1.5;margin:4px 0 12px}.support-contact .support-consent{display:flex;margin:12px 0;align-items:flex-start;gap:10px;font-size:var(--text-caption);line-height:1.5}.support-contact-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.support-signin-hint{font-size:var(--text-caption);line-height:1.6;color:var(--muted);margin:12px 2px 0}.support-signin-hint a{color:var(--brand);text-decoration:none}.support-chat .welcome-sound,.support-compose .welcome-sound{margin:12px 2px 0}.support-receipt{padding-top:12px}.support-receipt>p{font-size:var(--text-label)}.support-receipt .detail-actions{margin-top:12px}
@media(max-width:389px){.support-quick-replies{grid-template-columns:repeat(2,minmax(0,1fr))}.support-quick-replies>button:last-child{grid-column:1/-1}}

@media(max-height:700px){.support-chat{max-height:none;min-height:0}.support-chat>.support-transcript{flex:none;max-height:45svh;min-height:140px}}

.support-quick-replies:has([data-seasonal-prompt]){grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr))}

.support-filter-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin:12px 0}.support-filter-toolbar>label{display:grid;gap:6px;min-width:0;margin:0;font-size:var(--text-label)}.support-filter-toolbar select{width:100%;min-width:0;margin:0}.support-filter-toolbar>button{margin:0}.support-filter-toolbar .choice-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* === 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}body:has(dialog[open]){overflow:hidden}#detail{width:min(960px,calc(100vw - 32px));max-height:calc(100dvh - 24px);border:0;border-radius:var(--panel-radius);padding:var(--panel-padding);overflow:auto;overscroll-behavior:contain}#detail .close{position:absolute;right:8px;top:8px;width:44px;height:44px;font-size:22px;border-radius:50%;background:var(--surface)}.detail-body{padding:0}#detail .detail-body>h2:first-child{padding-right:48px;min-height:var(--control-min);display:flex;align-items:center;font-size:var(--text-subsection);margin:0 0 8px}.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:var(--control-height);padding:var(--control-pad-block) var(--control-pad-inline);border:0;border-radius:var(--radius);background:var(--surface);color:var(--muted);font:400 max(16px,var(--text-body))/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:0;border-radius:var(--panel-radius);padding:var(--panel-padding);background:var(--surface-raised);box-shadow:var(--shadow);overflow:auto;overscroll-behavior:contain;touch-action:pan-y}.picker-title,.picker-month,.picker-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.picker-title h2{font-size:var(--text-subsection);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:22px;line-height:1}.picker-month{font-size:var(--text-body);font-weight:600;margin:8px 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{width:100%;height:auto;aspect-ratio:1;min-height:0;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]{font-weight:650}.picker-days button:focus-visible{outline:0;background:var(--brand-soft);color:var(--ink);box-shadow:none}.picker-days button[aria-pressed=true]{outline:0;background:var(--brand-action);color:var(--on-action);box-shadow:none}.picker-days button:disabled{opacity:1;color:var(--disabled);background:transparent;cursor:default}.picker-footer{margin-top:8px;padding-top:0}.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:var(--panel-padding)}.grounds-lightbox{padding:14px;width:calc(100vw - 16px)}.grounds-lightbox-head h2{font-size:var(--text-subsection)}.grounds-viewport{max-height:68dvh}#detail{padding:var(--panel-padding)}.date-trigger{padding:var(--control-pad-block) var(--control-pad-inline)}}
@media(max-width:360px){.date-picker{padding:12px}.date-trigger{white-space:normal}}

#modal-detail-content :is(h1,h2)[tabindex="-1"]:focus{outline:0}

.picker-title h2:focus{outline:0}

/* === 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:var(--control-min);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;margin-inline:auto;padding-top:4px}.workspace:has(>.app-settings){max-width:808px}.settings-section{margin:0 0 24px;padding:var(--panel-padding);border-radius:var(--panel-radius);background:var(--surface-raised)}.app-settings .settings-section>h2{font-size:var(--text-meta);line-height:1.5;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink);margin:0 0 12px;padding:0}.settings-group{overflow:hidden;border:0;border-radius:var(--panel-radius);background:var(--surface-raised)}.settings-group>*+*{border-top:0;position:relative}.settings-group>*+*:before{content:"";position:absolute;top:0;left:var(--group-inset,14px);right:14px;height:0;background:transparent;pointer-events:none}.settings-disclosure{margin:0;padding:0;border-radius:0;background:transparent}.settings-disclosure>summary,.settings-link-row,.settings-static-row{border-radius:var(--radius);display:flex;align-items:center;gap:12px;min-height:48px;padding:var(--control-pad-block) var(--control-pad-inline);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:450;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:has(>form){padding-block:12px 16px}.settings-options>button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:var(--control-min);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:var(--control-min);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:none;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:var(--control-min);padding:9px 0;font-size:var(--text-label);color:var(--brand);text-decoration:none}.settings-option-links>a:hover{text-decoration:none}.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-control)}.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}}
.context-coach{display:flex;align-items:center;gap:16px;margin:14px 0 18px;padding:12px 16px;border:0;border-inline-start:0;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:var(--control-min);padding:8px 4px;font-size:var(--text-meta);font-weight:600;color:var(--brand);white-space:nowrap}.context-coach-actions button:hover{text-decoration:none}.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:var(--control-pad-block) var(--control-pad-inline);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:var(--control-min)}}
.browse-head+.context-coach{margin:0 16px 16px}.context-coach p{display:block}

/* Подсказка внутри группы продолжает её общий отступ. */
.settings-group>.small-note{margin:0;padding:12px 16px;font-size:var(--text-meta)}

/* Пояснение к раскрытой настройке не прилипает к кнопке и не рисует ещё одну рамку. */
.settings-options>.small-note{margin:10px 0 4px;font-size:var(--text-meta);line-height:1.5;color:var(--muted)}

/* === 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:var(--control-height);padding:var(--control-pad-block) var(--control-pad-inline);border:0;border-radius:var(--radius);background:var(--surface);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(--brand-soft)}.choice-trigger[aria-expanded=true]{background:var(--brand-soft)}.choice-trigger[aria-invalid=true]{box-shadow:none;background:var(--danger-soft);color:var(--danger)}.choice-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.choice-trigger svg{transition:transform 160ms ease;width:18px;height:18px;flex:none;color:var(--muted)}.choice-value{min-width:0;white-space:normal;overflow-wrap:anywhere}.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:0;border-radius:var(--panel-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:var(--control-min);width:100%;margin:0 0 5px;padding:9px 11px;border:0;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:auto;min-height:0;scroll-padding:4px}.choice-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--control-height);padding:10px;border-radius:7px;cursor:pointer;overflow-wrap:anywhere;transition:background-color 180ms ease,color 180ms ease}.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(--brand-soft);color:var(--brand)}.choice-symbol svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
