/* Generated by tools/ui-build/build.mjs. Do not hand-edit. */
@layer ui-components,ui-legacy-layouts;
@layer ui-components{
/* assets/ui-system.css */
/* One owner for shared components. Feature sources own only operational layout. */
:root{--ui-control-height:40px;--ui-control-radius:8px;--ui-panel-radius:12px;--ui-dialog-radius:16px;--ui-action:var(--accent-coral,#b15d49);--ui-selection:var(--brand-gold,#e5bd65);--ui-field-surface:var(--surface-2);--ui-focus:var(--brand-gold,#e5bd65)}
body.hospitality-ui :is(#content,#modal-root,.reservation-detail-backdrop,.workspace-leave-confirm){font-family:var(--font-ui)!important;font-size:14px!important;line-height:1.5!important}
:is(.page-head,.hk-page-head,.calendar-reference-head,[data-ui-pagehead]){display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px;min-width:0}
:is(.page-head h1,.hk-page-head h1,.calendar-reference-head h1,[data-ui-title]){margin:0;font:400 32px/1.15 var(--font-display)!important;letter-spacing:-.025em!important;color:var(--text-primary)!important;min-width:0}
:is(.page-head,.hk-page-head,.calendar-reference-head,[data-ui-pagehead])>.toolbar,:is(.page-head,.hk-page-head,.calendar-reference-head,[data-ui-pagehead]) .hk-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
:is(.page-head,.hk-page-head,.calendar-reference-head,[data-ui-pagehead]) .eyebrow{display:none}
:is(.btn,[data-ui-control]){box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px!important;height:auto!important;padding:9px 14px!important;border:1px solid var(--border)!important;border-radius:8px!important;background:var(--surface-2)!important;color:var(--text-primary)!important;font:600 13px/20px var(--font-ui)!important;letter-spacing:0!important;text-decoration:none;white-space:normal;box-shadow:none!important;cursor:pointer;transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease!important}
:is(.btn,[data-ui-control]):hover:not(:disabled){background:var(--surface-hover)!important;border-color:var(--border-strong)!important}
:is(.btn,[data-ui-control])[data-ui-tone=primary]{background:var(--ui-action)!important;color:var(--accent-ink,#fffaf3)!important;border-color:transparent!important}
:is(.btn,[data-ui-control])[data-ui-tone=primary]:hover:not(:disabled){background:var(--accent-coral-hover,var(--ui-action))!important;border-color:transparent!important}
:is(.btn,[data-ui-control])[data-ui-tone=danger]{background:var(--danger-soft)!important;border-color:var(--danger)!important;color:var(--danger)!important}
:is(.btn,[data-ui-control]):disabled{opacity:.5;cursor:default}
:is(.btn,[data-ui-control]):is(.ghost,.icon-only){background:transparent!important}
:is(.btn,[data-ui-control]).icon-only{padding:9px!important;min-width:40px;width:40px;height:40px!important;flex-shrink:0}
:is(.btn,[data-ui-control]) svg{flex-shrink:0}
[data-ui-kind=tab],[data-ui-kind=filter]{background:transparent!important;border-color:transparent!important;color:var(--text-secondary)!important}
[data-ui-kind=tab]:is([aria-selected=true],[aria-pressed=true],.active,.primary),[data-ui-kind=filter][aria-pressed=true]{background:var(--surface-active,var(--surface-2))!important;border-color:var(--border-strong)!important;color:var(--text-primary)!important;box-shadow:inset 0 -2px 0 var(--ui-selection)!important}
:is(:is(.btn,[data-ui-control]),[data-ui-field]):focus-visible{outline:2px solid var(--ui-focus)!important;outline-offset:2px!important;box-shadow:none!important}
[data-ui-field=text]{box-sizing:border-box;min-height:40px!important;margin:0;padding:9px 12px!important;border:1px solid var(--border)!important;border-radius:8px!important;background:var(--ui-field-surface)!important;color:var(--text-primary)!important;font:400 14px/20px var(--font-ui)!important;letter-spacing:0!important;box-shadow:none!important;min-width:0}
textarea[data-ui-field=text]{height:auto!important;min-height:88px!important;resize:vertical}
[data-ui-field=text]:is(:disabled,[readonly]){opacity:.7}
[data-ui-field=check]{box-sizing:border-box;width:18px;min-width:18px;max-width:18px;height:18px!important;min-height:18px!important;max-height:18px;flex:0 0 18px;padding:0!important;margin:0;accent-color:var(--primary);vertical-align:middle}
[data-ui-check-label]{display:flex;align-items:center;gap:8px}
:is(.metric,[data-ui-metric]){box-sizing:border-box;border-radius:12px!important;background:var(--surface-1)!important;border:1px solid var(--border)!important;box-shadow:none!important}
:is(.metric,[data-ui-metric])::before{display:none}
:is(.metric,[data-ui-metric]) strong{font-family:var(--font-ui)!important;font-size:24px!important;font-weight:650!important;line-height:1.2!important;font-variant-numeric:tabular-nums;letter-spacing:-.02em!important}
:is(.metric,[data-ui-metric]) :is(span,small){font-family:var(--font-ui)!important;line-height:1.45!important}
.ui-loaded-filter{margin:10px 0 12px;border:0!important;padding:0!important;min-width:0}
.ui-loaded-filter>summary{width:max-content;max-width:100%;padding:6px 0!important;color:var(--text-secondary)!important;font:500 12px/20px var(--font-ui)!important;cursor:pointer}
.ui-loaded-filter .application-table-tools{margin:8px 0;padding:0!important}
.workspace-leave-confirm .modal{width:min(460px,calc(100vw - 32px));border-radius:16px!important;background:var(--surface-1)!important;color:var(--text-primary)!important}
.workspace-leave-confirm .modal-head h2{font:400 24px/1.2 var(--font-display)!important;margin:0}
.workspace-leave-confirm .modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px!important}
@media(max-width:767px){:is(.page-head h1,.hk-page-head h1,.calendar-reference-head h1,[data-ui-title]){font-size:28px!important}:is(.page-head,.hk-page-head,.calendar-reference-head,[data-ui-pagehead]){align-items:flex-start;flex-wrap:wrap;gap:12px}:is(.btn,[data-ui-control]),[data-ui-field=text]{min-height:44px!important}[data-ui-field=text]{font-size:16px!important}:is(.btn,[data-ui-control]).icon-only{height:44px!important;width:44px;min-width:44px}:is(.metric,[data-ui-metric]) strong{font-size:22px!important}}
@media(pointer:coarse){:is(.btn,[data-ui-control]),[data-ui-field=text]{min-height:44px!important}}
@media(prefers-reduced-motion:reduce){:is(.btn,[data-ui-control]),[data-ui-field]{transition:none!important}}

.btn.primary:not([data-ui-kind]){background:var(--ui-action)!important;color:var(--accent-ink,#fffaf3)!important;border-color:transparent!important}

:is(.metric,[data-ui-metric])[aria-pressed=true]{border-color:var(--ui-selection)!important;background:var(--surface-active,var(--surface-2))!important;box-shadow:inset 0 -2px 0 var(--ui-selection)!important}
/* Shared section rhythm; operational card colors and geometry remain module-owned. */
:is(.panel,.subpanel){border-radius:var(--ui-panel-radius)!important}
:is(.section-head,.reservation-section-heading) h2{margin:0;font:650 18px/1.35 var(--font-ui)!important;letter-spacing:-.015em!important}
:is(.section-head,.reservation-section-heading) h3{margin:0;font:650 16px/1.4 var(--font-ui)!important}
.modal-head h2{margin:0;font:400 24px/1.2 var(--font-display)!important;letter-spacing:-.02em!important}
.modal{border-radius:var(--ui-dialog-radius)!important}
.empty{box-sizing:border-box;padding:20px!important;border:1px dashed var(--border)!important;border-radius:var(--ui-panel-radius)!important;color:var(--text-secondary)!important;font:400 14px/1.5 var(--font-ui)!important;text-align:center}
.empty.compact{padding:14px!important}
.address-context-note{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:12px 16px!important;border:1px solid var(--border)!important;border-radius:12px!important;background:var(--surface-2)!important;color:var(--text-secondary)!important}

/* These are decorative presentation, never interactive visibility rules. */
:is(.metric,[data-ui-metric])::before{display:none!important}
:is(.page-head,.hk-page-head,.calendar-reference-head,[data-ui-pagehead]) .eyebrow{display:none!important}
@media(max-width:767px),(pointer:coarse){[data-ui-check-label]{min-height:44px!important}}
:is(.page-head h1,.modal-head h2,.section-head h2,.section-head h3){min-width:0;overflow-wrap:anywhere}
.modal-head h2{flex:1}

}
@layer ui-legacy-layouts{
/* assets/app.css */
:root{
  --shell-sidebar-expanded:288px;--shell-sidebar-collapsed:76px;--shell-topbar-height:64px;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;
  --radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;
  --control-sm:32px;--control-md:40px;--control-lg:48px;
  --z-sticky:20;--z-sidebar:40;--z-popover:60;--z-drawer-backdrop:100;--z-drawer:110;--z-modal-backdrop:120;--z-modal:130;--z-toast:150;
  color-scheme:light;
  --ds-canvas:#F7F8F5;--ds-canvas-strong:#F0F2EE;--ds-surface:#FFFFFF;--ds-surface-raised:#FFFFFF;--ds-surface-soft:#F6F8F6;--ds-surface-hover:#EFF4F0;--ds-surface-active:#E4EFE8;
  --ds-border:#E0E5E1;--ds-border-strong:#C5CEC8;--ds-border-emphasis:#9FABA4;
  --ds-ink:#17201B;--ds-ink-secondary:#435049;--ds-muted:#6C7771;--ds-faint:#939C97;--ds-on-dark:#F8F6EF;
  --ds-primary:#0E7A43;--ds-primary-hover:#0A6537;--ds-primary-pressed:#084F2C;--ds-primary-soft:#E4F4E9;--ds-primary-soft-strong:#CBE8D3;--ds-focus:#16834A;
  --ds-brass:#C59A52;--ds-brass-hover:#A47D3F;--ds-brass-soft:#F6EEDC;
  --ds-success:#2F7D5B;--ds-success-soft:#E4F2EA;--ds-info:#3B6E91;--ds-info-soft:#E5EEF5;--ds-warning:#B4771D;--ds-warning-soft:#F7ECD8;--ds-danger:#B64D4C;--ds-danger-soft:#F7E5E4;--ds-violet:#6B628A;--ds-violet-soft:#ECE9F4;
  --ds-sidebar:#08251E;--ds-sidebar-elevated:#0D3027;--ds-sidebar-hover:#143C31;--ds-sidebar-active:#1A4A3B;--ds-sidebar-border:#244A3E;--ds-sidebar-text:#F6F3EB;--ds-sidebar-muted:#A8B4AE;--ds-sidebar-accent:#D6AE67;
  --status-reservation:#6A6287;--status-reservation-soft:#ECE9F4;--status-occupied:#2E6A73;--status-occupied-soft:#E2EFF0;--status-available:#2F7D5B;--status-available-soft:#E4F2EA;--status-cleaning:#B4771D;--status-cleaning-soft:#F7ECD8;--status-out-of-order:#B64D4C;--status-out-of-order-soft:#F7E5E4;
  --shadow-xs:0 1px 2px rgb(32 42 37 / .06);--shadow-sm:0 2px 8px rgb(32 42 37 / .07);--shadow-md:0 12px 34px rgb(32 42 37 / .12);--shadow-modal:0 28px 72px rgb(26 35 31 / .20);--radius:10px;
  --bg:var(--ds-canvas);--panel:var(--ds-surface);--panel2:var(--ds-surface-soft);--panel3:var(--ds-surface-hover);--line:var(--ds-border);--bronze:var(--ds-brass);--bronze2:var(--ds-brass-hover);--cream:var(--ds-ink);--muted:var(--ds-muted);--green:var(--ds-success);--blue:var(--ds-info);--amber:var(--ds-warning);--red:var(--ds-danger);--shadow:var(--shadow-md)
}
*{box-sizing:border-box}html{margin:0;min-height:100%;background:var(--ds-canvas);color:var(--ds-ink);font:14px/1.45 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-feature-settings:"kern" 1,"liga" 1,"tnum" 1;-webkit-font-smoothing:antialiased}body{margin:0;min-height:100%;background:var(--ds-canvas);color:var(--ds-ink);font:14px/1.45 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-feature-settings:"kern" 1,"liga" 1,"tnum" 1;-webkit-font-smoothing:antialiased}button{font:inherit}input{font:inherit}select{font:inherit}textarea{font:inherit}a{color:inherit}button{touch-action:manipulation}::selection{background:var(--ds-primary-soft-strong);color:var(--ds-ink)}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:var(--ds-border-strong);border-radius:999px}::-webkit-scrollbar-track{background:transparent}
.splash{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:10px;color:var(--ds-muted);background:var(--ds-canvas)}
.brand{display:flex;align-items:center;gap:10px}.brand strong{display:block;color:var(--ds-sidebar-accent);font-size:16px;font-weight:650;letter-spacing:.12em}.brand small{display:block;margin-top:1px;color:var(--ds-sidebar-muted);font-size:10px;font-weight:650;letter-spacing:.22em}.brand-mark{width:38px;height:38px;display:grid;place-items:center;color:var(--ds-sidebar-accent);flex:0 0 auto}.brand-mark svg{display:block;width:100%;height:100%}.brand-mark.xl{width:62px;height:62px;color:var(--ds-primary)}
.login-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(420px,.95fr);background:var(--ds-canvas)}.login-art{padding:clamp(44px,7vw,108px);display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(155deg,var(--ds-sidebar) 0%,#0B3026 58%,#102F28 100%);color:var(--ds-sidebar-text)}.login-art .brand strong{color:var(--ds-sidebar-accent)}.login-art h1{max-width:760px;margin:30px 0 18px;color:var(--ds-sidebar-text);font-size:clamp(36px,5vw,70px);font-weight:690;letter-spacing:-.05em;line-height:1.02}.login-art p{max-width:620px;color:#CBD5CF;font-size:16px;line-height:1.65}.login-art>small{color:var(--ds-sidebar-muted)}.login-panel{display:grid;place-items:center;padding:38px;background:var(--ds-canvas)}.login-card{width:min(480px,100%);border:1px solid var(--ds-border);border-radius:14px;background:var(--ds-surface);padding:34px;box-shadow:var(--shadow-md)}.login-card h2{margin:0;color:var(--ds-ink);font-size:24px;letter-spacing:-.025em}.login-tabs{display:flex;gap:7px;margin:22px 0}.tab{flex:1;min-height:42px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface);color:var(--ds-muted);padding:9px 10px;cursor:pointer;font-weight:650}.tab:hover{background:var(--ds-surface-hover);color:var(--ds-ink)}.tab.active{border-color:var(--ds-primary);background:var(--ds-primary-soft);color:var(--ds-primary-hover)}
label{display:grid;gap:6px;margin:10px 0;color:var(--ds-ink-secondary);font-size:12px;font-weight:620}input{width:100%;min-height:42px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-raised);color:var(--ds-ink);padding:9px 11px;outline:none;transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease}select{width:100%;min-height:42px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-raised);color:var(--ds-ink);padding:9px 11px;outline:none;transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease}textarea{width:100%;min-height:42px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-raised);color:var(--ds-ink);padding:9px 11px;outline:none;transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease}input:hover{border-color:var(--ds-border-strong)}select:hover{border-color:var(--ds-border-strong)}textarea:hover{border-color:var(--ds-border-strong)}input:focus{border-color:var(--ds-focus);box-shadow:0 0 0 3px rgb(22 131 74 / .14)}select:focus{border-color:var(--ds-focus);box-shadow:0 0 0 3px rgb(22 131 74 / .14)}textarea:focus{border-color:var(--ds-focus);box-shadow:0 0 0 3px rgb(22 131 74 / .14)}textarea{min-height:88px;resize:vertical}input::placeholder{color:var(--ds-faint)}textarea::placeholder{color:var(--ds-faint)}
.btn{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.icon-only{width:40px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--shell-sidebar-expanded) minmax(0,1fr);background:var(--ds-canvas)}.sidebar{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--ds-sidebar);color:var(--ds-sidebar-text);display:flex;flex-direction:column;border-right:1px solid var(--ds-sidebar-border)}.sidebar .brand{height:72px;padding:12px 16px 10px}.sidebar .brand-mark{width:38px;height:38px}.nav{min-height:0;overflow:auto;padding:4px 10px 12px}.nav-group{margin:4px 0 13px}.nav-group-title{margin:0 0 5px;padding:0 8px;color:var(--ds-sidebar-accent);font-size:10px;font-weight:650;letter-spacing:.15em;text-transform:uppercase}.nav button{position:relative;width:100%;height:36px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--ds-sidebar-muted);text-align:left;padding:0 8px;cursor:pointer;display:flex;align-items:center;gap:9px;font-size:11.5px;font-weight:520}.nav button:hover{background:var(--ds-sidebar-hover);color:var(--ds-sidebar-text)}.nav button.active{background:var(--ds-sidebar-active);color:var(--ds-sidebar-text)}.nav button.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;border-radius:0 2px 2px 0;background:var(--ds-sidebar-accent)}.nav button.active .nav-icon{color:var(--ds-sidebar-accent)}.nav-icon{width:16px;height:16px;display:grid;place-items:center;color:var(--ds-sidebar-muted);flex:0 0 auto}.nav-icon svg{width:16px;height:16px;display:block;stroke:currentColor}.nav-badge{margin-left:auto;min-width:18px;border:1px solid var(--ds-sidebar-border);border-radius:99px;padding:1px 5px;text-align:center;color:var(--ds-sidebar-muted);font-size:9px}.sidebar-footer{margin-top:auto;border-top:1px solid var(--ds-sidebar-border);padding:10px 12px 12px}.user-mini{padding:7px 4px 9px}.user-mini strong{display:block;color:var(--ds-sidebar-text);font-size:11.5px;font-weight:620;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-mini small{display:block;margin-top:2px;color:var(--ds-sidebar-muted);font-size:10px}.sidebar-footer .btn{width:100%}
.main{min-width:0;min-height:100vh}.topbar{min-height:var(--shell-topbar-height);height:auto;border-bottom:1px solid var(--ds-border);display:grid;grid-template-columns:minmax(0,auto) minmax(180px,1fr) minmax(0,auto);align-items:center;gap:8px 12px;padding:8px 16px;position:sticky;top:0;background:rgb(255 255 255 / .96);backdrop-filter:blur(10px);z-index:20}.top-left{display:flex;align-items:center;gap:8px;min-width:0}.top-actions{display:flex;align-items:center;gap:8px;min-width:0}.hotel-switch{display:flex;align-items:center;gap:8px;min-width:0}.top-left{min-width:0;max-width:100%;overflow:visible}.top-actions{min-width:0;max-width:100%;overflow:visible}.mobile-menu{display:none}.hotel-switch select{width:auto;min-width:180px;max-width:260px;min-height:38px;border-color:transparent;background:transparent;font-size:12px;font-weight:650;padding-left:8px}.top-divider{width:1px;height:26px;background:var(--ds-border)}.business-date{display:flex;align-items:center;gap:7px;min-height:34px;border:1px solid #CFE3D6;border-radius:99px;background:var(--ds-success-soft);padding:0 10px;color:var(--ds-success);font-size:10.5px;font-weight:680;white-space:nowrap}.business-date.business-date-lag{border-color:#E6CCA4;background:var(--ds-warning-soft);color:var(--ds-warning)}.top-search{height:38px;min-width:220px;max-width:430px;flex:0 1 430px;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface);color:var(--ds-muted);display:flex;align-items:center;gap:8px;padding:0 11px;font-size:11px}.top-search:hover{background:var(--ds-surface-hover);border-color:var(--ds-border-strong)}.top-search kbd{margin-left:auto;border:1px solid var(--ds-border);border-radius:4px;background:var(--ds-surface-soft);padding:1px 5px;font-size:9px}.top-user{display:flex;align-items:center;gap:8px;min-width:0;padding:4px 5px;border-radius:7px}.top-avatar{width:30px;height:30px;border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface-soft);display:grid;place-items:center;color:var(--ds-primary);font-size:10px;font-weight:760}.top-user-text{max-width:130px;min-width:0}.top-user-text strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-user-text small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-user-text strong{font-size:10.5px}.top-user-text small{color:var(--ds-muted);font-size:9.5px}.cashier-chip{min-height:34px;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface);display:flex;align-items:center;gap:7px;padding:0 9px;color:var(--ds-ink-secondary);font-size:10.5px;font-weight:630}.cashier-dot{width:7px;height:7px;border-radius:999px;background:var(--ds-faint)}.cashier-chip.open .cashier-dot{background:var(--ds-success)}
.content{width:100%;max-width:1680px;margin:0 auto;padding:18px 22px 32px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.page-head h1{margin:0;color:var(--ds-ink);font-size:clamp(1.55rem,1.85vw,1.9rem);font-weight:720;letter-spacing:-.038em;line-height:1.08}.page-head p{margin:7px 0 0;max-width:66rem;color:var(--ds-muted);font-size:13px;line-height:1.55}.eyebrow{display:inline-flex;align-items:center;gap:7px;margin-bottom:5px;color:var(--ds-muted);font-size:10px;font-weight:760;letter-spacing:.12em;text-transform:uppercase}.eyebrow:before{content:"";width:5px;height:5px;border-radius:99px;background:var(--ds-brass)}
.panel{border:1px solid var(--ds-border);background:var(--ds-surface);color:var(--ds-ink);box-shadow:var(--shadow-xs)}.metric{border:1px solid var(--ds-border);background:var(--ds-surface);color:var(--ds-ink)}.panel{border-radius:var(--radius);padding:14px;margin-bottom:14px;overflow:hidden}.panel h1{margin-top:0}.panel h2{margin-top:0}.panel h3{margin-top:0}.panel h2{font-size:14px}.panel h3{font-size:12.5px;font-weight:710}.panel.danger{border-color:#E5B7B5;background:var(--ds-danger-soft)}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:-2px 0 12px}.section-head h2{margin:0 0 4px;color:var(--ds-ink);font-size:14px;font-weight:710}.muted{color:var(--ds-muted)}
.cards{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:8px;margin-bottom:14px}.metric{position:relative;min-height:104px;padding:13px 14px;overflow:hidden}.metric:after{content:"";position:absolute;inset-block:12px;left:0;width:3px;background:var(--ds-primary)}.metric:nth-child(1):after{background:var(--ds-info)}.metric:nth-child(2):after{background:var(--ds-success)}.metric:nth-child(3):after{background:var(--ds-warning)}.metric:nth-child(4):after{background:var(--ds-brass)}.metric:nth-child(5):after{background:var(--ds-violet)}.metric label{margin:0;color:var(--ds-muted)}.metric strong{display:block;margin-top:14px;color:var(--ds-ink);font-variant-numeric:tabular-nums}.metric small{display:block;margin-top:6px;color:var(--ds-muted)}.grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:12px}.grid.equal{grid-template-columns:1fr 1fr}
.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.quick-action{min-height:64px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface);padding:10px;text-align:left;cursor:pointer}.quick-action:hover{border-color:var(--ds-border-strong);background:var(--ds-surface-hover)}.quick-action strong{display:block;color:var(--ds-ink);font-size:11.5px}.quick-action small{display:block;margin-top:3px;color:var(--ds-muted);font-size:10px}.dashboard-room-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px}.room-mini{position:relative;min-height:46px;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface-raised);display:grid;place-items:center;padding-left:3px;color:var(--ds-ink-secondary);font-size:10.5px;font-weight:720}.room-mini:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ds-border-strong)}.room-mini.available{background:var(--status-available-soft)}.room-mini.available:before{background:var(--status-available)}.room-mini.occupied{background:var(--status-occupied-soft)}.room-mini.occupied:before{background:var(--status-occupied)}.room-mini.reserved{background:var(--status-reservation-soft)}.room-mini.reserved:before{background:var(--status-reservation)}.room-mini.cleaning{background:var(--status-cleaning-soft)}.room-mini.dirty{background:var(--status-cleaning-soft)}.room-mini.inspection{background:var(--status-cleaning-soft)}.room-mini.cleaning:before{background:var(--status-cleaning)}.room-mini.dirty:before{background:var(--status-cleaning)}.room-mini.inspection:before{background:var(--status-cleaning)}.room-mini.out_of_order{background:var(--status-out-of-order-soft)}.room-mini.out_of_order:before{background:var(--status-out-of-order)}
.table-wrap{overflow:auto;border:1px solid var(--ds-border);border-radius:8px}.table{width:100%;border-collapse:collapse;min-width:720px;background:var(--ds-surface)}.table th{padding:10px 11px;border-bottom:1px solid var(--ds-border);text-align:left;vertical-align:middle}.table td{padding:10px 11px;border-bottom:1px solid var(--ds-border);text-align:left;vertical-align:middle}.table th{font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ds-muted);background:var(--ds-surface-soft);position:sticky;top:0}.table td{font-size:11px}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--ds-surface-hover)}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:9.5px;font-weight:650;border:1px solid var(--ds-border);background:var(--ds-surface-soft);color:var(--ds-muted)}.badge.green{background:var(--ds-success-soft);border-color:#B8D8C6;color:var(--ds-success)}.badge.blue{background:var(--ds-info-soft);border-color:#BCD0DE;color:var(--ds-info)}.badge.amber{background:var(--ds-warning-soft);border-color:#E6CCA4;color:var(--ds-warning)}.badge.red{background:var(--ds-danger-soft);border-color:#E6B9B7;color:var(--ds-danger)}.badge.bronze{background:var(--ds-brass-soft);border-color:#E8D4B2;color:var(--ds-brass-hover)}
.rooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.room-card{position:relative;min-height:108px;border:1px solid var(--ds-border);background:var(--ds-surface);border-radius:8px;padding:12px;cursor:pointer;overflow:hidden}.room-card:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;background:var(--ds-border-strong)}.room-card:hover{border-color:var(--ds-border-strong);background:var(--ds-surface-hover)}.room-card.occupied:before{background:var(--status-occupied)}.room-card.free:before{background:var(--status-available)}.room-card.available:before{background:var(--status-available)}.room-card.reserved:before{background:var(--status-reservation)}.room-card.out_of_order:before{background:var(--status-out-of-order)}.room-card strong{font-size:18px}.room-card small{color:var(--ds-muted);display:block;font-size:10px}.toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.toolbar input{width:auto;min-width:145px}.toolbar select{width:auto;min-width:145px}.empty{padding:28px;text-align:center;color:var(--ds-muted);font-size:11px}
/* RC29 — canonical modal surface */
.modal-backdrop{position:fixed;inset:0;background:rgba(8,24,18,.32);backdrop-filter:blur(2px);display:grid;place-items:center;padding:20px;z-index:var(--z-modal-backdrop);overflow:hidden;overscroll-behavior:contain}
.modal{width:min(760px,100%);max-height:calc(100dvh - 32px);overflow:hidden;display:flex;flex-direction:column;background:var(--mh-surface);border:1px solid rgba(204,212,207,.8);border-radius:var(--mh-radius-xl);box-shadow:var(--mh-shadow-overlay);z-index:var(--z-modal)}
.modal.wide{width:min(1040px,100%)}
.modal-head{padding:18px 20px;border-bottom:1px solid var(--mh-border);display:flex;justify-content:space-between;align-items:center;background:var(--mh-surface);min-width:0}
.modal-head h2{margin:0;font-size:var(--mh-font-xl);font-weight:720;color:var(--mh-text-strong);letter-spacing:-.02em}
.modal-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px}
.modal-actions{position:sticky;bottom:0;z-index:2;flex:0 0 auto;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--mh-border);display:flex;justify-content:flex-end;gap:8px;background:var(--mh-surface-soft)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form-grid .full{grid-column:1/-1}
#toast-root{position:fixed;right:18px;bottom:18px;z-index:200;display:grid;gap:8px}.toast{max-width:420px;background:var(--ds-surface);border:1px solid var(--ds-border);border-left:4px solid var(--ds-brass);padding:11px 13px;border-radius:8px;box-shadow:var(--shadow-md);color:var(--ds-ink);font-size:11px}.toast.error{border-left-color:var(--ds-danger)}.toast.success{border-left-color:var(--ds-success)}
.license-banner{margin-bottom:12px;border:1px solid #E6CCA4;background:var(--ds-warning-soft);color:#76511A;padding:9px 12px;border-radius:8px;font-size:11px}.license-banner.expired{border-color:#E6B9B7;background:var(--ds-danger-soft);color:#873A39}.license-banner.suspended{border-color:#E6B9B7;background:var(--ds-danger-soft);color:#873A39}.split-note{padding:9px 11px;background:var(--ds-surface-soft);border:1px solid var(--ds-border);border-radius:8px;color:var(--ds-muted);font-size:11px}.code-box{font:650 16px ui-monospace,SFMono-Regular,Consolas,monospace;background:var(--ds-surface-soft);border:1px dashed var(--ds-brass);padding:11px;border-radius:8px;color:var(--ds-brass-hover)}.installer{padding:20px}.login-error{margin-top:14px;padding:10px 12px;border:1px solid #E6B9B7;border-radius:8px;background:var(--ds-danger-soft);color:var(--ds-danger);font-size:11px;line-height:1.45}.login-error[hidden]{display:none}
.hierarchy-strip{display:flex;gap:8px;flex-wrap:wrap}.hierarchy-strip span{flex:1 1 210px;padding:9px 11px;border:1px solid var(--ds-border);background:var(--ds-surface-soft);border-radius:8px;color:var(--ds-muted);font-size:10.5px}.hierarchy-strip b{color:var(--ds-ink)}.hierarchy-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;gap:8px;align-items:center}.hierarchy-flow>div{min-height:78px;padding:11px;border:1px solid #E8D4B2;background:var(--ds-brass-soft);border-radius:8px;display:flex;flex-direction:column;justify-content:center}.hierarchy-flow b{color:var(--ds-brass-hover);font-size:11px}.hierarchy-flow small{color:var(--ds-muted);margin-top:4px;font-size:9.5px}.hierarchy-flow i{font-style:normal;color:var(--ds-brass);font-size:18px}.subsection{margin-top:8px;padding:10px;border:1px solid #E8D4B2;border-radius:8px;background:var(--ds-brass-soft);display:flex;flex-direction:column;gap:2px}.subsection small{color:var(--ds-muted)}.platform-cards{grid-template-columns:repeat(4,minmax(150px,1fr))}
@media(max-width:1250px){.cards{grid-template-columns:repeat(3,1fr)}.top-search{display:none}.grid{grid-template-columns:1fr}.grid.equal{grid-template-columns:1fr}.quick-actions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-260px;width:244px;z-index:80;transition:left .2s ease}.sidebar.open{left:0}.mobile-menu{display:inline-flex}.topbar{padding:8px 10px}.business-date{display:none}.cashier-chip{display:none}.top-user-text{display:none}.hotel-switch select{min-width:130px;max-width:46vw}.content{padding:14px}.cards{grid-template-columns:repeat(2,1fr)}.page-head{flex-direction:column}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.hierarchy-flow{grid-template-columns:1fr}.hierarchy-flow i{transform:rotate(90deg);justify-self:center}.platform-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.login-wrap{grid-template-columns:1fr}.login-art{display:none}.login-panel{padding:18px}.login-card{padding:22px;border-radius:12px}.section-head{flex-direction:column}.toolbar input{width:100%;min-width:0}.toolbar select{width:100%;min-width:0}.quick-actions{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.content{padding:11px}.cards{grid-template-columns:1fr 1fr}.metric{min-height:94px;padding:11px}.top-actions .desktop-only{display:none}.page-head h1{font-size:24px}.quick-actions{grid-template-columns:1fr}.platform-cards{grid-template-columns:1fr 1fr}}
/* v15.12.0 — Atrium calendar/frontdesk parity wave */
.calendar-panel{padding:0}.calendar-legend{min-height:48px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;border-bottom:1px solid var(--ds-border);padding:9px 12px;color:var(--ds-muted);font-size:10px}.calendar-legend span{display:inline-flex;align-items:center;gap:5px}.calendar-legend i{width:9px;height:9px;border-radius:3px;background:var(--ds-border-strong)}.calendar-legend i.confirmed{background:var(--status-reservation)}.calendar-legend i.checked_in{background:var(--status-occupied)}.calendar-legend i.tentative{background:var(--ds-warning)}.calendar-legend strong{margin-left:auto;color:var(--ds-ink);font-size:10.5px}.calendar-scroll{overflow:auto;max-width:100%}.calendar-head{position:relative;display:grid;grid-template-columns:148px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,68px),1fr));min-width:calc(148px + var(--calendar-days) * var(--calendar-cell-min,68px))}.calendar-row{position:relative;display:grid;grid-template-columns:148px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,68px),1fr));min-width:calc(148px + var(--calendar-days) * var(--calendar-cell-min,68px))}.calendar-head{position:sticky;top:0;z-index:8;background:var(--ds-surface-soft);border-bottom:1px solid var(--ds-border)}.calendar-room-head{min-height:42px;display:flex;align-items:center;border-right:1px solid var(--ds-border);padding:7px 8px;color:var(--ds-muted);font-size:9.5px;font-weight:650}.calendar-day{min-height:42px;display:flex;align-items:center;border-right:1px solid var(--ds-border);padding:7px 8px;color:var(--ds-muted);font-size:9.5px;font-weight:650}.calendar-room-head{position:sticky;left:0;z-index:10;background:var(--ds-surface-soft);text-transform:uppercase;letter-spacing:.08em}.calendar-day{justify-content:center;text-align:center}.calendar-day.today{background:var(--ds-primary-soft);color:var(--ds-primary)}.calendar-row{min-height:50px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface)}.calendar-row:last-child{border-bottom:0}.calendar-room{position:sticky;left:0;z-index:6;grid-column:1;grid-row:1;min-width:0;background:var(--ds-surface);border-right:1px solid var(--ds-border);padding:8px 9px;display:flex;flex-direction:column;justify-content:center}.calendar-room strong{font-size:11px}.calendar-room small{margin-top:2px;color:var(--ds-muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-cell{grid-row:1;min-height:49px;border-right:1px solid var(--ds-border);background:linear-gradient(to bottom,transparent,var(--ds-surface-soft))}.calendar-res{z-index:4;grid-row:1;align-self:center;min-width:0;height:32px;margin:0 3px;border:1px solid transparent;border-radius:6px;padding:4px 7px;overflow:hidden;text-align:left;cursor:pointer;box-shadow:var(--shadow-xs)}.calendar-res strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-res small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-res strong{font-size:9.5px}.calendar-res small{font-size:8px;opacity:.82}.calendar-res.confirmed{background:var(--status-reservation-soft);border-color:#CFC9DF;color:var(--status-reservation)}.calendar-res.checked_in{background:var(--status-occupied-soft);border-color:#B9D3D6;color:var(--status-occupied)}.calendar-res.tentative{background:var(--ds-warning-soft);border-color:#E6CCA4;color:var(--ds-warning)}.calendar-res:hover{filter:brightness(.98);box-shadow:var(--shadow-sm)}
.frontdesk-cards{grid-template-columns:repeat(3,minmax(150px,1fr));max-width:760px}.frontdesk-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:62px;border-bottom:1px solid var(--ds-border);padding:8px 0}.frontdesk-row:last-child{border-bottom:0}.frontdesk-row .top-avatar{width:34px;height:34px}.frontdesk-guest{min-width:0}.frontdesk-guest strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frontdesk-guest small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frontdesk-guest strong{font-size:11px}.frontdesk-guest small{margin-top:3px;color:var(--ds-muted);font-size:9.5px}
@media(max-width:760px){.frontdesk-row{grid-template-columns:34px minmax(0,1fr) auto}.frontdesk-row>.toolbar{grid-column:1/-1;justify-content:flex-end}.frontdesk-cards{grid-template-columns:repeat(3,1fr)}.calendar-head{grid-template-columns:124px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,58px),1fr));min-width:calc(124px + var(--calendar-days) * var(--calendar-cell-min,58px))}.calendar-row{grid-template-columns:124px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,58px),1fr));min-width:calc(124px + var(--calendar-days) * var(--calendar-cell-min,58px))}}
@media(max-width:520px){.frontdesk-cards{grid-template-columns:1fr 1fr}.frontdesk-cards .metric:last-child{grid-column:1/-1}}

/* v15.12.0 — Atrium folio/cashier/night-audit parity wave */
.folio-kpis{grid-template-columns:repeat(4,minmax(150px,1fr))}.cashier-kpis{grid-template-columns:repeat(4,minmax(150px,1fr))}.night-kpis{grid-template-columns:repeat(4,minmax(150px,1fr))}.folio-detail-kpis{grid-template-columns:repeat(4,minmax(150px,1fr))}.folio-detail-kpis{margin:12px 0;grid-template-columns:repeat(3,minmax(140px,1fr))}.metric[data-tone="green"]{border-top:2px solid var(--ds-success)}.metric[data-tone="blue"]{border-top:2px solid var(--ds-info)}.metric[data-tone="violet"]{border-top:2px solid var(--ds-violet)}.metric[data-tone="amber"]{border-top:2px solid var(--ds-warning)}
.num{text-align:right;font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.link-button{border:0;background:transparent;padding:0;color:var(--ds-primary);cursor:pointer;text-align:left}.link-button:hover{text-decoration:underline;text-underline-offset:3px}.toolbar.compact{gap:4px;justify-content:flex-end}.folio-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--ds-border)}.folio-detail-head h3{margin:4px 0 2px;font-size:20px;letter-spacing:-.025em}.folio-detail-head p{margin:0;color:var(--ds-muted);font-size:10.5px}.folio-actions{margin:12px 0}.subpanel{border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface);margin-top:12px;overflow:hidden}.subpanel>.section-head{padding:10px 12px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface-soft)}.subpanel>.table-wrap{border:0;border-radius:0}.reversal-row{background:var(--ds-danger-soft)}.nested-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.nested-grid .full{grid-column:1/-1}.warning-panel{border-color:#E6CCA4;background:var(--ds-warning-soft);color:#76511A}.warning-panel p{margin:5px 0 0;color:#76511A;font-size:11px}.danger-text{color:var(--ds-danger)}
.audit-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.audit-check{min-height:62px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-soft);padding:10px 11px;display:flex;align-items:flex-start;gap:9px}.audit-dot{width:9px;height:9px;border-radius:999px;margin-top:4px;flex:0 0 auto}.audit-check.ok .audit-dot{background:var(--ds-success)}.audit-check.bad{border-color:#E6CCA4;background:var(--ds-warning-soft)}.audit-check.bad .audit-dot{background:var(--ds-warning)}.audit-check strong{display:block}.audit-check small{display:block}.audit-check strong{font-size:11px}.audit-check small{margin-top:3px;color:var(--ds-muted);font-size:9.5px;line-height:1.35}
@media(max-width:1050px){.folio-kpis{grid-template-columns:repeat(2,1fr)}.cashier-kpis{grid-template-columns:repeat(2,1fr)}.night-kpis{grid-template-columns:repeat(2,1fr)}.folio-detail-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.audit-checks{grid-template-columns:1fr}.nested-grid{grid-template-columns:1fr}.nested-grid .full{grid-column:auto}.folio-detail-head{flex-direction:column}.folio-detail-kpis{grid-template-columns:1fr 1fr}.folio-detail-kpis .metric:last-child{grid-column:1/-1}}

/* v15.13.0 — Guest CRM + staff schedule / handover parity wave */
.crm-kpis{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:9px;margin:0 0 14px}.schedule-columns{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:14px;align-items:start}.handover-card{border:1px solid var(--ds-border);border-left:3px solid var(--ds-info);border-radius:9px;background:var(--ds-surface);padding:12px;margin:0 0 10px}.handover-card.warning{border-left-color:var(--ds-warning);background:linear-gradient(90deg,var(--ds-warning-soft),var(--ds-surface) 18%)}.handover-card.critical{border-left-color:var(--ds-danger);background:linear-gradient(90deg,var(--ds-danger-soft),var(--ds-surface) 18%)}.handover-card h3{margin:8px 0 4px;font-size:13px}.handover-card p{margin:0 0 7px;color:var(--ds-ink-secondary);font-size:11px;white-space:pre-wrap}.handover-card .toolbar{margin-top:10px}.handover-meta{display:flex;gap:5px;flex-wrap:wrap}.handover-note{margin-top:8px;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface-soft);padding:7px 9px;color:var(--ds-muted);font-size:10px}.handover-note b{color:var(--ds-ink)}
@media(max-width:1050px){.schedule-columns{grid-template-columns:1fr}.crm-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.crm-kpis{grid-template-columns:1fr 1fr}}

/* v15.14.0 — original VESTNAS reservation/rate/package/commercial parity wave */
.reservation-editor{display:grid;gap:12px}.reservation-section{border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-surface);padding:12px 13px}.reservation-section-head{display:flex;align-items:center;gap:10px;margin:0 0 8px;padding-bottom:8px;border-bottom:1px solid var(--ds-border)}.reservation-section-head>span{width:28px;height:28px;border:1px solid var(--ds-primary-soft-strong);border-radius:7px;background:var(--ds-primary-soft);display:grid;place-items:center;color:var(--ds-primary);font-size:10px;font-weight:750}.reservation-section-head strong{display:block}.reservation-section-head small{display:block}.reservation-section-head strong{font-size:12px;color:var(--ds-ink)}.reservation-section-head small{margin-top:2px;color:var(--ds-muted);font-size:9.5px}.reservation-packages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reservation-package{display:flex;grid-template-columns:none;align-items:center;gap:9px;margin:0;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-soft);padding:9px 10px;cursor:pointer}.reservation-package:hover{border-color:var(--ds-border-strong);background:var(--ds-surface-hover)}.reservation-package input{width:16px;min-height:16px;height:16px;margin:0;flex:0 0 auto}.reservation-package span{min-width:0}.reservation-package strong{display:block}.reservation-package small{display:block}.reservation-package strong{font-size:10.5px;color:var(--ds-ink)}.reservation-package small{margin-top:2px;color:var(--ds-muted);font-size:9px}.empty.compact{padding:12px}.quote-panel{min-height:70px;border:1px solid var(--ds-border-strong);border-radius:9px;background:var(--ds-surface-soft);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ds-ink-secondary);font-size:10.5px}.quote-panel.loading{justify-content:flex-start}.quote-panel.available{border-color:#BFD9C7;background:var(--ds-success-soft);color:var(--ds-success)}.quote-panel.unavailable{border-color:#E4C0BE;background:var(--ds-danger-soft);color:var(--ds-danger);display:grid;justify-content:stretch}.quote-panel>div>strong{display:block}.quote-panel>div>span{display:block}.quote-panel.unavailable strong{display:block}.quote-panel.unavailable span{display:block}.quote-panel>div>span{margin-top:3px;font-size:9.5px}.quote-panel.unavailable span{margin-top:3px;font-size:9.5px}.quote-total{margin-left:auto;text-align:right}.quote-total small{display:block}.quote-total strong{display:block}.quote-total small{color:var(--ds-muted);font-size:9px}.quote-total strong{margin-top:2px;color:var(--ds-ink);font-size:18px;font-variant-numeric:tabular-nums}.quote-panel details{width:100%;grid-column:1/-1;border-top:1px solid rgb(47 125 91 / .18);padding-top:6px}.quote-panel summary{cursor:pointer;color:var(--ds-ink-secondary);font-size:9.5px}.night-rate-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;margin-top:6px}.night-rate-list span{display:flex;justify-content:space-between;gap:8px;color:var(--ds-muted);font-size:9px}.spinner-dot{width:9px;height:9px;border-radius:50%;background:var(--ds-primary);box-shadow:0 0 0 0 rgb(14 122 67 / .35);animation:vestnasPulse 1.2s infinite}@keyframes vestnasPulse{0%{box-shadow:0 0 0 0 rgb(14 122 67 / .35)}70%{box-shadow:0 0 0 7px rgb(14 122 67 / 0)}100%{box-shadow:0 0 0 0 rgb(14 122 67 / 0)}}
@media(max-width:760px){.reservation-packages{grid-template-columns:1fr}.quote-panel{align-items:flex-start;flex-direction:column}.quote-total{margin-left:0;text-align:left}.night-rate-list{grid-template-columns:1fr}}

/* v15.15 · native YOTTA invoice lifecycle inside Atrium */
.yotta-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}
.yotta-document-detail{display:grid;gap:18px}.yotta-doc-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid var(--ds-border,#dde4df)}
.yotta-doc-head h2{margin:3px 0 4px;font-size:26px}.yotta-doc-head p{margin:0;color:var(--ds-text-muted,#66736d)}
.yotta-settlement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.yotta-settlement-grid>div{padding:13px 14px;border:1px solid var(--ds-border,#dde4df);border-radius:12px;background:var(--ds-surface-soft,#f7f9f7);display:flex;flex-direction:column;gap:4px}.yotta-settlement-grid span{font-size:12px;color:var(--ds-text-muted,#66736d)}.yotta-settlement-grid strong{font-size:18px}.yotta-settlement-grid .is-total{border-color:rgba(14,122,67,.28);background:rgba(14,122,67,.06)}.yotta-settlement-grid .is-warning{border-color:rgba(197,154,82,.35);background:rgba(197,154,82,.08)}
.yotta-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.yotta-two-col section{min-width:0}.yotta-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--ds-border,#dde4df)}.yotta-history-row>div{display:flex;flex-direction:column;min-width:0;gap:2px}.yotta-history-row small{color:var(--ds-text-muted,#66736d);overflow-wrap:anywhere}.yotta-actions{justify-content:flex-end;flex-wrap:wrap;border-top:1px solid var(--ds-border,#dde4df);padding-top:15px}.danger-note{padding:12px 14px;border:1px solid rgba(190,55,55,.25);background:rgba(190,55,55,.06);border-radius:10px;color:#8c2727}.empty.compact{padding:16px 0}
@media(max-width:860px){.yotta-kpis{grid-template-columns:1fr}.yotta-settlement-grid{grid-template-columns:1fr}.yotta-two-col{grid-template-columns:1fr}.yotta-doc-head{flex-direction:column}.yotta-actions .btn{flex:1 1 auto}}
/* v15.16.0 — YOTTA invoice master-data parity */
.status-pill{display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border-radius:999px;border:1px solid var(--ds-border);font-size:9.5px;font-weight:700;white-space:nowrap}.status-pill.ok{background:var(--ds-success-soft);border-color:#BFD9C7;color:var(--ds-success)}.status-pill.warn{background:var(--ds-warning-soft);border-color:#E6CCA4;color:#76511A}.checkline{display:flex;align-items:center;gap:8px;min-height:34px}.checkline input[type=checkbox]{width:16px;height:16px;min-height:16px;margin:0}.section-divider{grid-column:1/-1;height:1px;background:var(--ds-border);margin:4px 0 2px}

/* v15.17.0 — Common documents parity */
.common-doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.common-doc-card{appearance:none;border:1px solid var(--ds-border);background:var(--ds-surface);border-radius:14px;padding:22px;text-align:left;cursor:pointer;min-height:155px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-card);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.common-doc-card:hover{transform:translateY(-2px);border-color:var(--ds-brass);box-shadow:0 14px 30px rgba(8,37,30,.10)}
.common-doc-card strong{font-size:18px;color:var(--ds-canvas)}
.common-doc-card small{color:var(--ds-muted);line-height:1.5}
.doc-kicker{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ds-primary);font-weight:700}
.document-sheet{background:#fff}
.document-sheet table td{vertical-align:top}
@media(max-width:760px){.common-doc-grid{grid-template-columns:1fr}}

/* v15.18.0 — YottaHotelier brand asset + Reports V2 */
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}.yotta-brand strong{letter-spacing:-.01em!important;color:var(--ds-sidebar-text)!important;font-size:15px!important}.yotta-brand strong span{color:var(--ds-sidebar-accent)}.yotta-brand small{letter-spacing:.13em!important;font-size:8.5px!important}.login-brand-logo{display:block;width:min(270px,72%);height:auto;margin:0 0 18px}.login-card .login-brand-logo{margin-left:auto;margin-right:auto}.login-art .brand-mark{width:44px;height:44px}.sidebar .yotta-brand{gap:8px}.sidebar .yotta-brand strong{font-size:14px!important}.sidebar .yotta-brand small{font-size:8px!important}
.report-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:12px}.report-control{display:grid;gap:5px}.report-control>span{font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--ds-muted)}.report-control input{min-width:150px}.report-control select{min-width:150px}.report-custom[hidden]{display:none}.report-period-note{margin:0 0 12px;color:var(--ds-muted);font-size:10.5px}.report-period-note strong{color:var(--ds-ink)}.report-tabs{display:flex;gap:6px;overflow:auto;margin-bottom:12px;border-bottom:1px solid var(--ds-border);padding-bottom:0}.report-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--ds-muted);padding:9px 12px;cursor:pointer;white-space:nowrap;font-size:11px;font-weight:700}.report-tabs button:hover{color:var(--ds-ink)}.report-tabs button.active{border-bottom-color:var(--ds-primary);color:var(--ds-primary)}.report-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:9px;margin-bottom:14px}.report-kpi{min-height:100px;border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-surface);padding:13px;box-shadow:var(--shadow-xs);display:flex;flex-direction:column}.report-kpi>span:first-child{color:var(--ds-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.report-kpi>strong{margin-top:7px;color:var(--ds-ink);font-size:23px;letter-spacing:-.03em;line-height:1.05}.report-kpi>small{margin-top:auto;padding-top:8px;color:var(--ds-muted);font-size:9.5px}.report-delta{margin-top:auto;padding-top:8px;font-size:9.5px;font-weight:750}.report-delta.up{color:var(--ds-success)}.report-delta.down{color:var(--ds-danger)}.report-delta.flat{color:var(--ds-muted)}.report-delta small{font-weight:600}.report-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.panel.compact{padding:14px}.report-chart{border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-surface);padding:14px;min-width:0}.report-chart-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.report-chart-head strong{font-size:12px}.report-chart-head span{font-size:11px;color:var(--ds-muted)}.report-chart svg{display:block;width:100%;height:210px;overflow:visible}.chart-axis{stroke:var(--ds-border-strong);stroke-width:1}.chart-line{stroke:var(--ds-primary);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:var(--ds-surface);stroke:var(--ds-primary);stroke-width:2}.report-axis-labels{display:flex;justify-content:space-between;color:var(--ds-muted);font-size:9px}.report-bars{display:grid;gap:9px}.report-bar-row{display:grid;gap:5px}.report-bar-label{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:10px}.report-bar-label strong{font-weight:650;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-bar-label span{color:var(--ds-muted);white-space:nowrap}.report-bar-track{height:7px;border-radius:999px;background:var(--ds-surface-soft);overflow:hidden}.report-bar-track i{display:block;height:100%;min-width:2px;border-radius:999px;background:linear-gradient(90deg,var(--ds-primary),#55A579)}.report-table-wrap{overflow:auto;border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-surface);margin-top:14px}.report-table{width:100%;border-collapse:collapse;font-size:10.5px}.report-table th{padding:9px 11px;border-bottom:1px solid var(--ds-border);text-align:left;white-space:nowrap}.report-table td{padding:9px 11px;border-bottom:1px solid var(--ds-border);text-align:left;white-space:nowrap}.report-table th{background:var(--ds-surface-soft);color:var(--ds-muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em}.report-table tr:last-child td{border-bottom:0}
@media(max-width:1250px){.report-kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.report-grid-2{grid-template-columns:1fr}.report-kpi-grid{grid-template-columns:repeat(2,1fr)}.report-controls{align-items:stretch}.report-control{flex:1 1 240px}}
@media(max-width:560px){.report-kpi-grid{grid-template-columns:1fr}.report-control{flex-basis:100%}.report-control .toolbar{display:grid;grid-template-columns:1fr auto 1fr}.login-brand-logo{width:min(240px,85%)}}
@media print{.sidebar{display:none!important}.topbar{display:none!important}.report-controls{display:none!important}.report-tabs{display:none!important}.page-head .toolbar{display:none!important}.license-banner{display:none!important}.app-shell{display:block}.content{padding:0!important}.report-kpi-grid{grid-template-columns:repeat(3,1fr)}.report-grid-2{grid-template-columns:1fr 1fr}.report-chart{break-inside:avoid;box-shadow:none}.panel{break-inside:avoid;box-shadow:none}.report-kpi{break-inside:avoid;box-shadow:none}.report-table-wrap{break-inside:avoid;box-shadow:none}}
.health-kpis{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-bottom:14px}.health-kpi{border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-surface);padding:14px;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon label" "icon value" "status status";gap:2px 10px;align-items:center}.health-icon{grid-area:icon;width:38px;height:38px;border-radius:9px;background:var(--ds-primary-soft);color:var(--ds-primary);display:grid;place-items:center;font-size:10px;font-weight:800}.health-kpi label{grid-area:label;color:var(--ds-muted);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em}.health-kpi strong{grid-area:value;font-size:22px;color:var(--ds-ink);line-height:1}.health-kpi .health-pill{grid-area:status;margin-top:8px;justify-self:start}.health-pill{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:3px 8px;border:1px solid var(--ds-border);border-radius:999px;font-size:9px;font-weight:700}.health-pill.ok{border-color:#BFD9C7;background:var(--ds-success-soft);color:var(--ds-success)}.health-pill.bad{border-color:#E4C0BE;background:var(--ds-danger-soft);color:var(--ds-danger)}.health-pill.neutral{background:var(--ds-surface-soft);color:var(--ds-muted)}.health-readiness{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.health-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.health-list{display:grid;gap:0}.health-list>div{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--ds-border);font-size:10.5px}.health-list>div:last-child{border-bottom:0}.health-list>div>span:first-child{color:var(--ds-ink-secondary);font-weight:650}.health-events{display:grid}.health-events article{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--ds-border)}.health-events article:last-child{border-bottom:0}.health-events strong{display:block}.health-events small{display:block}.health-events strong{font-size:10.5px;color:var(--ds-ink)}.health-events small{margin-top:2px;color:var(--ds-muted);font-size:9px}.health-events p{margin:4px 0 0;color:var(--ds-ink-secondary);font-size:9.5px}.health-count{text-align:right}.health-count b{display:block;font-size:16px}.health-count small{font-size:8.5px;color:var(--ds-muted);white-space:nowrap}.health-events time{font-size:8.5px;color:var(--ds-muted);white-space:nowrap}.health-events.pii article{align-items:flex-start}
@media(max-width:1050px){.health-kpis{grid-template-columns:repeat(2,1fr)}.health-readiness{grid-template-columns:1fr}.health-columns{grid-template-columns:1fr}}
@media(max-width:560px){.health-kpis{grid-template-columns:1fr}}

/* v15.18.0 — Original VESTNAS feedback board parity */
.feedback-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.feedback-board{display:grid;gap:12px}.feedback-card{display:grid;grid-template-columns:70px minmax(0,1fr);gap:14px;background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);padding:18px;box-shadow:var(--ds-shadow-sm)}.feedback-votes{display:flex;flex-direction:column;align-items:center;gap:5px;border-right:1px solid var(--ds-border);padding-right:14px}.feedback-votes strong{font-size:20px;color:var(--ds-ink)}.feedback-vote{width:34px;height:30px;border:1px solid var(--ds-border);background:var(--ds-surface);border-radius:8px;color:var(--ds-muted);cursor:pointer;font-weight:800}.feedback-vote:hover{border-color:var(--ds-primary);color:var(--ds-primary);background:var(--ds-primary-soft)}.feedback-vote.active.up{border-color:var(--ds-primary);color:var(--ds-primary);background:var(--ds-primary-soft)}.feedback-vote.active.down{border-color:#b44;color:#a22;background:#fff3f3}.feedback-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.feedback-card h3{margin:0 0 4px;font-size:17px}.feedback-card small{color:var(--ds-muted)}.feedback-card p{margin:13px 0;color:var(--ds-text);line-height:1.55}.feedback-meta{display:flex;gap:14px;color:var(--ds-muted);font-size:12px}@media(max-width:650px){.feedback-card{grid-template-columns:48px 1fr;padding:14px}.feedback-votes{padding-right:10px}.feedback-card-head{display:block}.feedback-card-head .toolbar{margin-top:10px}.feedback-toolbar{align-items:flex-start;flex-direction:column}}

/* v15.19.0 — original Assistant guarded/operator workspace parity */
.assistant-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assistant-mode{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.02em;background:var(--surface)}.assistant-mode.guarded{color:var(--green)}.assistant-mode.operator{color:var(--amber)}.assistant-mode-toggle{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.assistant-mode-toggle input{width:auto}.assistant-shell{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;gap:14px;min-height:calc(100vh - 210px)}.assistant-info{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid color-mix(in srgb,var(--green) 26%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--green) 5%,var(--surface));font-size:13px}.assistant-info strong{white-space:nowrap}.assistant-info span{color:var(--muted);line-height:1.45}.assistant-templates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.assistant-template{appearance:none;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:14px;text-align:left;color:var(--text);cursor:pointer;transition:.18s ease}.assistant-template:hover{border-color:var(--accent);transform:translateY(-1px)}.assistant-template strong{display:block}.assistant-template small{display:block}.assistant-template small{margin-top:5px;color:var(--muted);line-height:1.35}.assistant-operator-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 12px;border:1px dashed var(--border-strong);border-radius:12px;background:var(--surface-2)}.assistant-operator-actions>span{font-size:12px;font-weight:800;color:var(--muted);margin-right:3px}.assistant-messages{flex:1;min-height:330px;max-height:58vh;overflow:auto;border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:18px}.assistant-empty{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;color:var(--muted)}.assistant-empty h2{margin:0;color:var(--text);font-size:28px}.assistant-empty p{max-width:620px;line-height:1.6}.assistant-spark{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));color:var(--accent);font-size:24px}.assistant-message{display:flex;gap:10px;align-items:flex-start;margin-bottom:16px}.assistant-message.user{flex-direction:row-reverse}.assistant-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);font-size:11px;font-weight:900}.assistant-message.assistant .assistant-avatar{background:var(--sidebar-bg);color:var(--accent)}.assistant-bubble{max-width:min(820px,88%);border:1px solid var(--border);border-radius:13px;padding:13px 15px;background:var(--surface-2)}.assistant-message.user .assistant-bubble{background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}.assistant-bubble p{margin:0;line-height:1.55}.assistant-result-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.assistant-result-list{display:flex;flex-direction:column;gap:7px;margin-top:12px}.assistant-result-list article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.assistant-result-list article strong{display:block}.assistant-result-list article small{display:block}.assistant-result-list article small{color:var(--muted);margin-top:2px}.assistant-composer{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;position:sticky;bottom:0;padding:10px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px)}.assistant-composer textarea{min-height:54px;resize:vertical}.assistant-confirm{padding:14px;border:1px solid var(--border);border-radius:12px}.assistant-confirm.warning{background:color-mix(in srgb,var(--amber) 7%,var(--surface));border-color:color-mix(in srgb,var(--amber) 35%,var(--border))}.assistant-confirm.danger{background:color-mix(in srgb,var(--red) 6%,var(--surface));border-color:color-mix(in srgb,var(--red) 35%,var(--border))}.assistant-confirm h3{margin:8px 0}.assistant-confirm-note{padding:10px 12px;border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:13px}
@media(max-width:900px){.assistant-templates{grid-template-columns:repeat(2,minmax(0,1fr))}.assistant-messages{max-height:none}.assistant-shell{min-height:auto}}
@media(max-width:620px){.assistant-templates{grid-template-columns:1fr}.assistant-info{flex-direction:column}.assistant-composer{grid-template-columns:1fr}.assistant-bubble{max-width:92%}}


/* v15.27.0 — original VESTNAS drag-to-create calendar parity */
.calendar-drag-hint{display:inline-flex;align-items:center;gap:7px;margin:8px 0 0;color:var(--ds-primary);font-size:11px;font-weight:700}.calendar-cell.calendar-selectable{cursor:crosshair;touch-action:pan-y;background:linear-gradient(to bottom,transparent,var(--ds-surface-soft));transition:background-color .08s ease,box-shadow .08s ease}.calendar-cell.calendar-selectable:hover{background:var(--ds-primary-soft)}.calendar-cell.selecting{position:relative;z-index:2;background:color-mix(in srgb,var(--ds-primary) 18%,var(--ds-surface))!important;box-shadow:inset 0 2px 0 color-mix(in srgb,var(--ds-primary) 60%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--ds-primary) 60%,transparent)}.calendar-cell.selection-start{box-shadow:inset 2px 0 0 var(--ds-primary),inset 0 2px 0 color-mix(in srgb,var(--ds-primary) 60%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--ds-primary) 60%,transparent)}.calendar-cell.selection-end{box-shadow:inset -2px 0 0 var(--ds-primary),inset 0 2px 0 color-mix(in srgb,var(--ds-primary) 60%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--ds-primary) 60%,transparent)}body.calendar-dragging{user-select:none}.user-mini small:empty{display:none}.top-user-text small:empty{display:none}

/* v15.30.3 — platform-first hotel selection workspace */
.platform-lobby-shell .content{max-width:1500px}.platform-hotel-context{display:flex;align-items:center;gap:9px;min-width:230px;max-width:420px}.platform-hotel-context>.nav-icon{width:30px;height:30px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-soft);color:var(--ds-primary)}.platform-hotel-context>.nav-icon svg{width:17px;height:17px}.platform-hotel-context>div{min-width:0;display:grid}.platform-hotel-context small{font-size:9px;color:var(--ds-muted);text-transform:uppercase;letter-spacing:.08em}.platform-hotel-context strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.platform-hotel-context .btn{margin-left:4px;white-space:nowrap}.platform-hotel-context.empty-context strong{color:var(--ds-muted)}.sidebar-hotel-context{margin:0 10px 8px;padding:10px;border:1px solid var(--ds-sidebar-border);border-radius:8px;background:var(--ds-sidebar-elevated)}.sidebar-hotel-context small{display:block}.sidebar-hotel-context strong{display:block}.sidebar-hotel-context small{color:var(--ds-sidebar-accent);font-size:8px;text-transform:uppercase;letter-spacing:.12em}.sidebar-hotel-context strong{margin-top:3px;color:var(--ds-sidebar-text);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.platform-current-hotel{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;border:1px solid var(--ds-border);border-radius:12px;padding:16px 18px;background:var(--ds-surface)}.platform-selection-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;border:1px solid var(--ds-border);border-radius:12px;padding:16px 18px;background:var(--ds-surface)}.platform-current-hotel{border-color:#BFD9C7;background:var(--ds-success-soft)}.platform-current-hotel h2{margin:2px 0;font-size:18px}.platform-current-hotel p{margin:3px 0 0;color:var(--ds-muted);font-size:11px}.platform-selection-intro p{margin:3px 0 0;color:var(--ds-muted);font-size:11px}.platform-selection-intro{justify-content:flex-start}.platform-selection-icon{width:44px;height:44px;display:grid;place-items:center;flex:0 0 44px;border-radius:10px;background:var(--ds-primary-soft);color:var(--ds-primary)}.platform-selection-icon svg{width:22px;height:22px}.platform-selection-intro strong{font-size:14px}.platform-hotels-panel{padding:18px}.platform-hotels-head{align-items:flex-end}.platform-hotel-filters{display:flex;align-items:center;gap:8px;min-width:min(100%,520px)}.platform-search{position:relative;display:flex;align-items:center;flex:1;margin:0}.platform-search .nav-icon{position:absolute;left:10px;z-index:1}.platform-search input{padding-left:34px}.platform-hotel-filters select{width:140px}.platform-hotel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.platform-hotel-card{border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface);padding:15px;box-shadow:var(--shadow-xs);transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.platform-hotel-card:hover{border-color:var(--ds-border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.platform-hotel-card.current{border-color:#A9CFB7;box-shadow:0 0 0 2px rgb(47 125 91 / .08)}.platform-hotel-card.archived{opacity:.76;background:var(--ds-surface-soft)}.platform-hotel-card-head{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:start}.platform-hotel-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:9px;background:var(--ds-primary-soft);color:var(--ds-primary);font-size:12px;font-weight:800}.platform-hotel-title{display:flex;align-items:center;gap:7px;min-width:0}.platform-hotel-title h3{margin:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.platform-hotel-card-head small{display:block;margin-top:3px;color:var(--ds-muted);font-size:9.5px}.platform-hotel-card-head a{color:var(--ds-primary);text-decoration:none}.platform-hotel-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:14px 0;padding:10px 0;border-top:1px solid var(--ds-border);border-bottom:1px solid var(--ds-border)}.platform-hotel-stats span{min-width:0}.platform-hotel-stats b{display:block}.platform-hotel-stats small{display:block}.platform-hotel-stats b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.platform-hotel-stats small{margin-top:2px;color:var(--ds-muted);font-size:8.5px}.platform-hotel-primary{display:flex;gap:7px;flex-wrap:wrap}.platform-hotel-secondary{display:flex;gap:7px;flex-wrap:wrap}.platform-hotel-primary .btn.primary{flex:1}.platform-hotel-secondary{margin-top:8px}
@media(max-width:1180px){.platform-hotel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-hotel-filters{min-width:380px}}
@media(max-width:760px){.platform-hotel-grid{grid-template-columns:1fr}.platform-hotels-head{align-items:stretch;flex-direction:column}.platform-current-hotel{align-items:stretch;flex-direction:column}.platform-hotel-filters{width:100%;min-width:0}.platform-hotel-context .btn{display:none}.platform-hotel-context{min-width:0}.platform-hotel-context>div{max-width:180px}}
@media(max-width:520px){.platform-hotel-filters{align-items:stretch;flex-direction:column}.platform-hotel-filters select{width:100%}.platform-current-hotel .toolbar{width:100%}.platform-current-hotel .btn{flex:1}}

/* v15.32.0 — Rooms / Housekeeping / Maintenance parity phase 3 */
.calendar-res.released-tail{opacity:.28;border-style:dashed!important;background:var(--ds-surface-soft)!important;color:var(--ds-muted)!important;pointer-events:none;z-index:1}
.reservation-guest-roster{display:grid;gap:8px;margin-bottom:12px}.guest-roster-list{display:grid;gap:8px}.guest-roster-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-surface)}.guest-roster-row.primary{border-color:color-mix(in srgb,var(--ds-primary) 32%,var(--ds-border));background:var(--ds-primary-soft)}.guest-roster-row strong{display:block}.guest-roster-row small{display:block}.guest-roster-row small{margin-top:3px;color:var(--ds-muted);font-size:9.5px}.guest-roster-editor{margin-top:10px}.guest-follow{display:flex!important;align-items:center;gap:8px}.guest-follow input{width:auto!important}.frontdesk-guest small b{color:var(--ds-warning)}
@media(max-width:620px){.guest-roster-row{align-items:flex-start;flex-direction:column}.guest-roster-row .toolbar{width:100%;flex-wrap:wrap}.guest-roster-row .toolbar .btn{flex:1}}

/* v15.41.0 — UI/UX, mobile and accessibility parity */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.sr-status{min-height:1px;margin-top:8px;color:var(--ds-muted);font-size:11px}
:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--ds-focus) 38%,transparent);outline-offset:2px}
[aria-busy="true"]{cursor:progress}.modal[aria-busy="true"] .modal-body{opacity:.82}.modal[aria-busy="true"] .modal-close-x{pointer-events:none}.modal[aria-busy="true"] .modal-cancel{pointer-events:none}
.choice-row{display:flex;align-items:center;gap:10px;min-height:44px;margin:4px 0;padding:7px 9px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-soft);cursor:pointer}.choice-row input{width:18px;min-height:18px;height:18px;margin:0;flex:0 0 auto}.choice-row span{font-size:12px;font-weight:620}
.rate-toolbar{display:grid;grid-template-columns:minmax(150px,180px) minmax(150px,180px) minmax(220px,1fr) auto;gap:9px;align-items:end;margin-bottom:14px}.rate-toolbar label{margin:0}
.rate-matrix-wrap{max-height:min(68vh,720px)}.rate-matrix{min-width:820px}.rate-matrix th:first-child{position:sticky;left:0;z-index:3;background:var(--ds-surface)}.rate-matrix thead th{position:sticky;top:0;z-index:4;background:var(--ds-surface-soft)}.rate-matrix thead th:first-child{z-index:5}.rate-matrix tbody th{min-width:150px;text-align:left}.rate-matrix tbody th strong{display:block}.rate-matrix tbody th small{display:block}.rate-matrix-cell{width:100%;min-width:112px;min-height:62px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ds-ink);padding:8px;text-align:left;cursor:pointer}.rate-matrix-cell:hover{border-color:var(--ds-border-strong);background:var(--ds-surface-hover)}.rate-matrix-cell.selected{border-color:var(--ds-primary);background:var(--ds-primary-soft);box-shadow:inset 0 0 0 1px var(--ds-primary)}.rate-matrix-cell[aria-pressed="true"]{border-color:var(--ds-primary);background:var(--ds-primary-soft);box-shadow:inset 0 0 0 1px var(--ds-primary)}.rate-matrix-cell:disabled{cursor:default;opacity:.85}.rate-matrix-cell strong{display:block}.rate-matrix-cell small{display:block}.rate-matrix-cell strong{font-size:12px}.rate-matrix-cell small{margin-top:4px;color:var(--ds-muted);font-size:10.5px;line-height:1.3}
.calendar-cell[role="button"]{outline:none}.calendar-cell[role="button"]:focus-visible{box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--ds-focus) 45%,transparent);position:relative;z-index:3}
.table-wrap[tabindex="0"]:focus-visible{outline:3px solid color-mix(in srgb,var(--ds-focus) 25%,transparent);outline-offset:2px}

@media(max-width:900px){.rate-toolbar{grid-template-columns:1fr 1fr}.rate-toolbar label:nth-child(3){grid-column:1/-1}.rate-toolbar .btn{grid-column:1/-1}.table-wrap{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.page-head{align-items:stretch}.page-head>.toolbar{flex-wrap:wrap}}
@media(max-width:620px){.nav button{min-height:44px}.top-search{min-height:44px}.cashier-chip{min-height:44px}.quick-action{min-height:44px}
  .btn.icon-only{width:44px;min-width:44px}
  input{min-height:44px}select{min-height:44px}textarea{min-height:44px}select{padding-top:10px;padding-bottom:10px}
  .modal-backdrop{align-items:flex-end;padding:0}.modal{width:100%;max-width:none;max-height:calc(100dvh - 8px);border-radius:var(--mh-radius-lg) var(--mh-radius-lg) 0 0}.modal.wide{max-width:none}.modal-actions{display:flex;flex-direction:column;align-items:stretch}.modal-actions .modal-cancel{order:1}.modal-actions button[type="submit"]{order:2;width:100%}.modal.destructive .modal-actions button[type="submit"]{order:1}.modal.destructive .modal-actions .modal-cancel{order:2}
  .rate-toolbar{grid-template-columns:1fr}.rate-toolbar label:nth-child(3){grid-column:auto}.rate-toolbar .btn{grid-column:auto}.rate-matrix{min-width:720px}
  .frontdesk-guest strong{font-size:11px}.frontdesk-guest small{font-size:11px}.guest-roster-row small{font-size:11px}.reservation-section-head small{font-size:11px}.platform-hotel-card-head small{font-size:11px}
}


/* v15.43.0 — reservation creation recovery */
.reservation-primary-guest{display:grid;gap:7px}.guest-autocomplete{position:relative}.guest-suggestions{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 5px);max-height:260px;overflow:auto;border:1px solid var(--ds-border-strong);border-radius:10px;background:var(--ds-surface);box-shadow:var(--shadow-lg);padding:5px}.guest-suggestion{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:transparent;color:var(--ds-ink);padding:9px 10px;border-radius:8px;text-align:left;cursor:pointer}.duplicate-guest-choice{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:transparent;color:var(--ds-ink);padding:9px 10px;border-radius:8px;text-align:left;cursor:pointer}.guest-suggestion:hover{background:var(--ds-surface-hover)}.guest-suggestion[aria-selected="true"]{background:var(--ds-surface-hover)}.duplicate-guest-choice:hover{background:var(--ds-surface-hover)}.guest-suggestion.blocked{opacity:.65;cursor:not-allowed}.duplicate-guest-choice.blocked{opacity:.65;cursor:not-allowed}.guest-suggestion strong{display:block}.guest-suggestion small{display:block}.duplicate-guest-choice strong{display:block}.duplicate-guest-choice small{display:block}.guest-suggestion small{margin-top:2px;color:var(--ds-muted);font-size:10px}.duplicate-guest-choice small{margin-top:2px;color:var(--ds-muted);font-size:10px}.guest-selected-note{padding:8px 10px;border:1px dashed var(--ds-border);border-radius:8px;background:var(--ds-surface-soft);color:var(--ds-muted);font-size:10.5px}.guest-selected-note.selected{border-style:solid;border-color:color-mix(in srgb,var(--ds-success) 30%,var(--ds-border));background:var(--ds-success-soft);color:var(--ds-success)}.duplicate-guest-list{display:grid;gap:7px;margin:12px 0}.duplicate-guest-choice{border:1px solid var(--ds-border);background:var(--ds-surface-soft)}
@media(max-width:620px){.guest-suggestions{max-height:220px}.guest-suggestion{min-height:52px}.duplicate-guest-choice{min-height:52px}}


/* v15.44 Classic Calendar Recovery */
.calendar-res.calendar-movable{position:relative;cursor:grab;touch-action:none;padding-right:14px}.calendar-res.calendar-movable:active{cursor:grabbing}.calendar-res.calendar-drag-source{opacity:.48;outline:2px solid color-mix(in srgb,var(--ds-primary) 60%,transparent)}.calendar-cell.calendar-move-target{background:color-mix(in srgb,var(--ds-success) 16%,var(--ds-surface))!important;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--ds-success) 60%,transparent)}.calendar-resize-handle{position:absolute;top:2px;bottom:2px;width:8px;border-radius:5px;z-index:6;cursor:ew-resize;background:transparent}.calendar-resize-handle.start{left:0}.calendar-resize-handle.end{right:0}.calendar-res.calendar-resizable:hover .calendar-resize-handle{background:color-mix(in srgb,currentColor 24%,transparent)}.calendar-res.calendar-resizable:focus-within .calendar-resize-handle{background:color-mix(in srgb,currentColor 24%,transparent)}.calendar-resize-preview{outline:2px dashed var(--ds-primary);outline-offset:1px}.calendar-res.checked_in.calendar-movable{cursor:move}.calendar-res.checked_out{cursor:default}.calendar-res.released-tail{cursor:default}

/* v15.45 Reservations Registry + unified Reservation Detail */
.reservation-list-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:12px;align-items:start}
.reservation-list-main{min-width:0;overflow:auto}
.reservation-list-row:hover{background:var(--ds-surface-hover)}
.reservation-right-rail{display:grid;gap:12px;position:sticky;top:12px}
.reservation-rail-card{padding:0;overflow:hidden}.reservation-rail-card .section-head{padding:10px 12px;border-bottom:1px solid var(--ds-border);margin:0}.reservation-rail-row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:0;border-bottom:1px solid var(--ds-border);background:transparent;color:inherit;text-align:left;cursor:pointer}.reservation-rail-row:hover{background:var(--ds-surface-hover)}.reservation-rail-row span:first-child{min-width:0}.reservation-rail-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reservation-rail-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reservation-rail-row small{color:var(--ds-muted);margin-top:2px}.reservation-channel-row{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;font-size:12px;border-bottom:1px solid var(--ds-border)}
.reservation-detail-backdrop{position:fixed;inset:0;z-index:130;background:rgb(10 20 18 / .36);display:flex;justify-content:flex-end}
.reservation-detail-drawer{width:min(620px,94vw);height:100%;background:var(--ds-surface);border-left:1px solid var(--ds-border-strong);box-shadow:var(--shadow-modal);display:flex;flex-direction:column;animation:reservationDrawerIn .16s ease-out}
@keyframes reservationDrawerIn{from{transform:translateX(24px);opacity:.65}to{transform:none;opacity:1}}
.reservation-detail-loading{margin:auto;color:var(--ds-muted)}
.reservation-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;border-bottom:1px solid var(--ds-border)}.reservation-detail-head h2{margin:3px 0 2px;font-size:22px}.reservation-detail-head p{margin:0;color:var(--ds-muted);font-size:12px}
.reservation-detail-actions{display:flex;gap:8px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface-soft)}
.reservation-detail-scroll{overflow:auto;overscroll-behavior:contain;padding:14px 18px 28px;display:grid;gap:12px}
.reservation-detail-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reservation-detail-summary>div{display:grid;gap:2px;padding:12px;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface-soft)}.reservation-detail-summary small{color:var(--ds-muted);font-size:11px}.reservation-detail-summary span{color:var(--ds-muted);font-size:11px}.reservation-detail-summary strong{font-size:15px}
.reservation-detail-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border:0;border-bottom:1px solid var(--ds-border);background:transparent;color:inherit;text-align:left}.reservation-detail-row:last-child{border-bottom:0}.reservation-detail-row span:first-child{min-width:0}.reservation-detail-row strong{display:block}.reservation-detail-row small{display:block}.reservation-detail-row small{color:var(--ds-muted);margin-top:2px}.reservation-folio-open{cursor:pointer}.reservation-folio-open:hover{color:var(--ds-primary)}
@media(max-width:1100px){.reservation-list-layout{grid-template-columns:1fr}.reservation-right-rail{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-right-rail>[data-jump-frontdesk]{grid-column:1/-1}}
@media(max-width:720px){.reservation-right-rail{grid-template-columns:1fr}.reservation-detail-drawer{width:100vw;max-width:none}.reservation-detail-summary{grid-template-columns:1fr}.reservation-detail-actions{position:sticky;top:0;z-index:2}.reservation-list-main table{min-width:980px}}


/* v15.46 Front Desk three-zone recovery */
.frontdesk-three-zone{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(360px,1.08fr) minmax(260px,.76fr);gap:14px;min-height:610px;align-items:stretch}
.frontdesk-queue-zone{min-width:0;overflow:hidden}.frontdesk-detail-zone{min-width:0;overflow:hidden}.frontdesk-actions-zone{min-width:0;overflow:hidden}
.frontdesk-queue-tools{padding-bottom:12px;border-bottom:1px solid var(--line)}
.frontdesk-filter-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.frontdesk-filter{min-height:44px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--muted);font-weight:700;text-align:left;padding:8px 10px;display:flex;justify-content:space-between;gap:8px}.frontdesk-filter.active{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.frontdesk-filter span{font-variant-numeric:tabular-nums}
.frontdesk-queue-list{max-height:520px;overflow:auto;padding-top:9px}.frontdesk-queue-item{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);margin-bottom:6px;min-height:62px}.frontdesk-queue-item:hover{background:var(--surface-2);border-color:var(--line)}.frontdesk-queue-item.active{background:var(--accent-soft);border-color:var(--accent)}.frontdesk-queue-copy{min-width:0}.frontdesk-queue-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frontdesk-queue-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frontdesk-queue-copy small{color:var(--muted);margin-top:3px}.top-avatar.lg{width:48px;height:48px;font-size:14px}
.frontdesk-selected-head{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:start;padding-bottom:16px;border-bottom:1px solid var(--line)}.frontdesk-selected-head h2{margin:2px 0 4px}.frontdesk-selected-head p{margin:0;color:var(--muted)}
.frontdesk-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.frontdesk-detail-grid>div{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.frontdesk-detail-grid small{display:block}.frontdesk-detail-grid strong{display:block}.frontdesk-detail-grid span{display:block}.frontdesk-detail-grid small{color:var(--muted)}.frontdesk-detail-grid span{color:var(--muted)}.frontdesk-detail-grid strong{font-size:16px;margin:5px 0 2px}
.frontdesk-readiness{padding:12px;border:1px solid var(--line);border-radius:10px;margin-top:10px}.frontdesk-scheduled{padding:12px;border:1px solid var(--line);border-radius:10px;margin-top:10px}.frontdesk-notes{padding:12px;border:1px solid var(--line);border-radius:10px;margin-top:10px}.frontdesk-readiness.ready{border-color:rgba(47,107,95,.55)}.frontdesk-readiness.warning{border-color:rgba(245,158,11,.55)}.frontdesk-scheduled{border-color:rgba(245,158,11,.55)}.frontdesk-readiness.blocked{border-color:rgba(239,68,68,.55)}.frontdesk-readiness ul{margin:8px 0 0;padding-left:18px;color:var(--muted)}.frontdesk-scheduled strong{display:block}.frontdesk-scheduled span{display:block}.frontdesk-scheduled span{color:var(--muted);margin-top:4px}.frontdesk-notes p{margin:5px 0;color:var(--muted)}
.frontdesk-action-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--line)}.frontdesk-action-head h3{margin:2px 0 0}.frontdesk-action-stack{display:grid;gap:9px;padding-top:14px}.frontdesk-action-stack>.btn{width:100%;justify-content:center}.frontdesk-room-picker{display:grid;gap:6px;color:var(--muted);font-size:12px}.frontdesk-room-picker select{width:100%}.frontdesk-empty-zone{min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);gap:6px}.frontdesk-zone-loading{min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);gap:6px}.frontdesk-attention-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}.frontdesk-attention-strip .btn{margin-left:auto}
@media(max-width:1180px){.frontdesk-three-zone{grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr)}.frontdesk-actions-zone{grid-column:1/-1}.frontdesk-actions-zone .frontdesk-action-stack{grid-template-columns:repeat(3,minmax(0,1fr))}.frontdesk-actions-zone .frontdesk-room-picker{grid-column:1/-1}}
@media(max-width:760px){.frontdesk-three-zone{display:block;min-height:0}.frontdesk-queue-zone{margin-bottom:12px}.frontdesk-detail-zone{margin-bottom:12px}.frontdesk-actions-zone{margin-bottom:12px}.frontdesk-queue-list{max-height:340px}.frontdesk-selected-head{grid-template-columns:42px minmax(0,1fr)}.frontdesk-selected-head .frontdesk-full-detail{grid-column:1/-1}.frontdesk-detail-grid{grid-template-columns:1fr 1fr}.frontdesk-actions-zone .frontdesk-action-stack{grid-template-columns:1fr}.frontdesk-filter-tabs{grid-template-columns:1fr 1fr}.frontdesk-empty-zone{min-height:180px}.frontdesk-zone-loading{min-height:180px}}
@media(max-width:460px){.frontdesk-detail-grid{grid-template-columns:1fr}.frontdesk-queue-item{grid-template-columns:36px minmax(0,1fr)}.frontdesk-queue-item>.badge{grid-column:2;justify-self:start}.frontdesk-filter-tabs{grid-template-columns:1fr}.frontdesk-attention-strip .btn{margin-left:0;width:100%}}


/* v15.51.0 — Calendar + Stay Lifecycle Recovery */
.calendar-page-head{align-items:flex-start}.calendar-toolbar{display:grid;gap:8px;justify-items:end}.calendar-toolbar>.toolbar{flex-wrap:wrap;justify-content:flex-end}.calendar-date-jump{width:142px;min-width:142px}.calendar-search{margin:0;width:min(100%,360px)}.calendar-search input{width:100%}.calendar-zoom-label{min-width:48px;text-align:center;color:var(--ds-muted);font-size:10px;font-variant-numeric:tabular-nums}.calendar-room{width:100%;border:0;text-align:left;color:inherit;cursor:pointer}.calendar-room-main{min-width:0}.calendar-room-status{margin-top:5px;width:max-content;max-width:100%;font-size:8px}.calendar-legend i.checked_out{background:#7B8188}.calendar-legend i.released{background:#B9BDC1;border:1px dashed #7B8188}.calendar-legend i.blocked{background:repeating-linear-gradient(135deg,#A98C71 0 3px,transparent 3px 6px);border:1px solid #A98C71}.calendar-cell.calendar-blocked{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-warning) 10%,var(--ds-surface)) 0 7px,var(--ds-surface-soft) 7px 14px);cursor:not-allowed}.calendar-inventory-block{grid-row:1;align-self:stretch;z-index:2;margin:3px 2px;border:1px dashed color-mix(in srgb,var(--ds-warning) 62%,var(--ds-border));border-radius:6px;background:color-mix(in srgb,var(--ds-warning) 12%,var(--ds-surface));color:var(--ds-warning);padding:5px 7px;overflow:hidden;pointer-events:none}.calendar-inventory-block strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:8px}.calendar-inventory-block small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:8px}.calendar-res.checked_out{opacity:.58;filter:saturate(.4);background:color-mix(in srgb,#7B8188 16%,var(--ds-surface))!important;border-color:color-mix(in srgb,#7B8188 45%,var(--ds-border))!important;color:var(--ds-muted)!important}.calendar-res.checked_out.early-checkout{opacity:.52}.calendar-res.released-tail{opacity:.2!important;border:1px dashed color-mix(in srgb,var(--ds-muted) 55%,transparent)!important;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-muted) 7%,var(--ds-surface)) 0 6px,transparent 6px 12px)!important;color:var(--ds-muted)!important;pointer-events:none!important;box-shadow:none!important}.calendar-unassigned{display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:12px;align-items:start;margin:0 0 12px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--ds-warning) 35%,var(--ds-border));border-radius:10px;background:var(--ds-warning-soft)}.calendar-unassigned strong{display:block}.calendar-unassigned small{display:block}.calendar-unassigned small{margin-top:3px;color:var(--ds-muted);font-size:9.5px}.calendar-unassigned-list{display:flex;gap:7px;flex-wrap:wrap}.room-card.hk-focused{outline:3px solid color-mix(in srgb,var(--ds-primary) 38%,transparent);outline-offset:2px;box-shadow:var(--shadow-sm)}
@media(max-width:860px){.calendar-page-head{display:grid}.calendar-toolbar{justify-items:stretch}.calendar-toolbar>.toolbar{justify-content:flex-start}.calendar-search{width:100%}.calendar-unassigned{grid-template-columns:1fr}}


/* v15.51.0 — operational calendar intelligence */
.calendar-ops-strip{display:grid;grid-template-columns:repeat(6,minmax(92px,1fr));gap:8px;margin:0 0 12px}.calendar-ops-strip>button{min-width:0;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface);padding:9px 11px;text-align:left;color:var(--ds-ink)}.calendar-ops-strip>span{min-width:0;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface);padding:9px 11px;text-align:left;color:var(--ds-ink)}.calendar-ops-strip>button{cursor:pointer;font:inherit}.calendar-ops-strip>button:hover{border-color:color-mix(in srgb,var(--ds-primary) 48%,var(--ds-border));background:var(--ds-primary-soft)}.calendar-ops-strip>button.active{border-color:color-mix(in srgb,var(--ds-primary) 48%,var(--ds-border));background:var(--ds-primary-soft)}.calendar-ops-strip small{display:block}.calendar-ops-strip strong{display:block}.calendar-ops-strip small{color:var(--ds-muted);font-size:8.5px;text-transform:uppercase;letter-spacing:.05em}.calendar-ops-strip strong{margin-top:2px;font-size:13px}.calendar-unassigned-item{display:inline-flex;gap:5px;align-items:stretch}.calendar-unassigned-item .cal-assign.danger{border-color:color-mix(in srgb,var(--ds-danger) 42%,var(--ds-border));color:var(--ds-danger)}.calendar-res.calendar-assignment-locked{cursor:pointer!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 24%,transparent),var(--shadow-xs)}.calendar-res.calendar-assignment-locked:after{content:'🔒';position:absolute;right:5px;top:3px;font-size:8px;opacity:.85}.calendar-lock-note{border-left:3px solid var(--ds-primary)}.calendar-row[data-calendar-flags~="attention"] .calendar-room{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--ds-warning) 70%,transparent)}.calendar-row[data-calendar-flags~="turnover"] .calendar-room-main:after{content:'↻ turnover';display:inline-block;margin-top:3px;color:var(--ds-warning);font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
@media(max-width:980px){.calendar-ops-strip{grid-template-columns:repeat(3,minmax(90px,1fr))}}@media(max-width:620px){.calendar-ops-strip{grid-template-columns:repeat(2,minmax(90px,1fr))}.calendar-unassigned-item{width:100%;flex-wrap:wrap}.calendar-unassigned-item .btn{flex:1}}

/* === VESTNAS v15.52 Calendar V2 ========================================= */
.calendar-v2{display:grid;gap:10px;min-width:0}.calendar-v2-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:2px 2px 0}.calendar-title{display:flex;align-items:baseline;gap:10px;min-width:0}.calendar-title .eyebrow{margin:0}.calendar-title h1{margin:0;font-size:25px;letter-spacing:-.025em}.calendar-range{font-size:11px;color:var(--ds-muted);font-variant-numeric:tabular-nums}.calendar-primary-actions{display:flex;gap:7px;flex-wrap:wrap}.calendar-commandbar{position:sticky;top:0;z-index:24;display:flex;align-items:center;gap:8px;min-height:48px;padding:7px 8px;border:1px solid var(--ds-border);border-radius:12px;background:color-mix(in srgb,var(--ds-surface) 94%,transparent);box-shadow:0 5px 18px rgba(20,28,25,.04);backdrop-filter:blur(8px)}.calendar-nav-group{display:flex;align-items:center;gap:5px}.calendar-view-group{display:flex;align-items:center;gap:5px}.calendar-commandbar select{height:34px}.calendar-commandbar input{height:34px}.icon-btn{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface);color:var(--ds-ink);font:700 15px/1 inherit;cursor:pointer}.icon-btn:hover{border-color:var(--ds-border-strong);background:var(--ds-surface-soft)}.calendar-date-jump{width:132px!important;min-width:132px!important}.calendar-search-v2{margin-left:auto;min-width:180px;max-width:310px;flex:1;position:relative}.calendar-search-v2>span{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ds-muted);font-size:15px;pointer-events:none}.calendar-search-v2 input{width:100%;padding-left:30px;border-radius:9px}.calendar-zoom-label{min-width:42px;font-size:10px}.calendar-statusbar{display:flex;align-items:center;gap:6px;min-height:34px;overflow-x:auto;padding:0 1px 2px}.calendar-statusbar>button{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;height:29px;padding:4px 9px;border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface);color:var(--ds-muted);font:600 10px/1 inherit}.calendar-stat{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;height:29px;padding:4px 9px;border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface);color:var(--ds-muted);font:600 10px/1 inherit}.calendar-statusbar>button{cursor:pointer}.calendar-statusbar>button:hover{color:var(--ds-primary);border-color:color-mix(in srgb,var(--ds-primary) 38%,var(--ds-border));background:var(--ds-primary-soft)}.calendar-statusbar>button.active{color:var(--ds-primary);border-color:color-mix(in srgb,var(--ds-primary) 38%,var(--ds-border));background:var(--ds-primary-soft)}.calendar-statusbar b{color:var(--ds-ink);font-size:10px}.calendar-stat.warning{color:var(--ds-warning);border-color:color-mix(in srgb,var(--ds-warning) 32%,var(--ds-border));background:var(--ds-warning-soft)}.calendar-inline-notice{margin-left:auto;display:inline-flex;align-items:center;min-height:27px;max-width:420px;padding:4px 8px;border-radius:7px;font-size:10px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-inline-notice:empty{display:none}.calendar-inline-notice.error{color:var(--ds-danger);background:var(--ds-danger-soft)}.calendar-inline-notice.success{color:var(--ds-success);background:var(--ds-success-soft)}
.calendar-inbox{border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-surface)}.calendar-inbox summary{list-style:none;display:flex;align-items:center;gap:10px;padding:8px 11px;cursor:pointer}.calendar-inbox summary::-webkit-details-marker{display:none}.calendar-inbox summary>span{display:flex;align-items:center;gap:7px}.calendar-inbox summary b{font-size:11px}.calendar-inbox summary em{min-width:20px;height:20px;display:inline-grid;place-items:center;border-radius:999px;background:var(--ds-warning-soft);color:var(--ds-warning);font-style:normal;font-size:9px;font-weight:800}.calendar-inbox summary small{color:var(--ds-muted);font-size:9px}.calendar-inbox summary:after{content:'⌄';margin-left:auto;color:var(--ds-muted);transition:transform .15s ease}.calendar-inbox[open] summary:after{transform:rotate(180deg)}.calendar-inbox-body{display:grid;gap:5px;padding:0 8px 8px;border-top:1px solid var(--ds-border)}.calendar-inbox-item{display:flex;align-items:center;gap:8px;min-height:42px;padding:5px 3px;border-bottom:1px solid var(--ds-border)}.calendar-inbox-item:last-child{border-bottom:0}.calendar-inbox-res{flex:1;min-width:0;border:0;background:transparent;text-align:left;cursor:pointer;color:var(--ds-ink)}.calendar-inbox-res strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-inbox-res small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-inbox-res strong{font-size:10.5px}.calendar-inbox-res small{margin-top:2px;color:var(--ds-muted);font-size:8.5px}
.calendar-board{overflow:hidden;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface);box-shadow:0 8px 28px rgba(20,28,25,.045)}.calendar-board-top{min-height:38px;display:flex;align-items:center;gap:14px;padding:6px 10px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface)}.calendar-legend-v2{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--ds-muted);font-size:9px}.calendar-legend-v2 span{display:inline-flex;align-items:center;gap:5px}.calendar-legend-v2 i{width:8px;height:8px;border-radius:3px;background:var(--ds-border-strong)}.calendar-legend-v2 i.confirmed{background:var(--status-reservation)}.calendar-legend-v2 i.checked_in{background:var(--status-occupied)}.calendar-legend-v2 i.tentative{background:var(--ds-warning)}.calendar-legend-v2 i.checked_out{background:#7B8188}.calendar-legend-v2 i.released{background:#B9BDC1;border:1px dashed #7B8188}.calendar-legend-v2 i.blocked{background:#A98C71}.calendar-help{margin-left:auto;color:var(--ds-muted);font-size:8.5px;white-space:nowrap}.calendar-scroll{max-height:calc(100vh - 285px);min-height:280px;overscroll-behavior:contain;scrollbar-gutter:stable}.calendar-head{grid-template-columns:188px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,68px),1fr));min-width:calc(188px + var(--calendar-days) * var(--calendar-cell-min,68px))}.calendar-row{grid-template-columns:188px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,68px),1fr));min-width:calc(188px + var(--calendar-days) * var(--calendar-cell-min,68px))}.calendar-head{top:0;z-index:14;background:var(--ds-surface);box-shadow:0 1px 0 var(--ds-border)}.calendar-room-head{min-height:46px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;padding:7px 12px;background:var(--ds-surface)!important;text-transform:none;letter-spacing:0}.calendar-room-head span{font-size:10px;font-weight:800;color:var(--ds-ink)}.calendar-room-head small{font-size:8px;font-weight:600;color:var(--ds-muted)}.calendar-day{min-height:46px;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-content:center;justify-content:center;column-gap:3px;padding:4px 5px;background:var(--ds-surface);border-right:1px solid var(--ds-border)}.calendar-day small{grid-column:1/-1;font-size:7.5px;line-height:1;text-transform:uppercase;color:var(--ds-muted)}.calendar-day strong{font-size:12px;line-height:1.1;color:var(--ds-ink)}.calendar-day em{font-size:7.5px;line-height:1.4;color:var(--ds-muted);font-style:normal}.calendar-day.weekend{background:color-mix(in srgb,var(--ds-surface-soft) 78%,var(--ds-surface))}.calendar-day.today{position:relative;background:color-mix(in srgb,var(--ds-primary-soft) 78%,var(--ds-surface));color:var(--ds-primary)}.calendar-day.today:after{content:'';position:absolute;left:18%;right:18%;bottom:0;height:2px;border-radius:2px;background:var(--ds-primary)}.calendar-row{min-height:58px;background:var(--ds-surface)}.calendar-row:hover{background:color-mix(in srgb,var(--ds-primary-soft) 18%,var(--ds-surface))}.calendar-room{min-height:57px;padding:8px 10px 7px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;background:inherit;border-right:1px solid var(--ds-border);box-shadow:7px 0 15px -15px rgba(0,0,0,.36)}.calendar-room-main strong{font-size:12px;font-weight:800;letter-spacing:.01em}.calendar-room-main small{font-size:8.5px;margin-top:2px}.calendar-room-status{display:inline-flex;align-items:center;gap:4px;max-width:82px;padding:3px 6px;border-radius:999px;background:var(--ds-surface-soft);color:var(--ds-muted);font-size:7.5px;font-weight:750;white-space:nowrap}.calendar-room-status i{width:6px;height:6px;border-radius:50%;background:currentColor}.calendar-room-status.hk-inspected{color:var(--ds-success);background:var(--ds-success-soft)}.calendar-room-status.hk-occupied{color:var(--status-occupied);background:var(--status-occupied-soft)}.calendar-room-status.hk-cleaning{color:var(--ds-warning);background:var(--ds-warning-soft)}.calendar-room-status.hk-inspection{color:var(--ds-warning);background:var(--ds-warning-soft)}.calendar-room-status.hk-dirty{color:var(--ds-danger);background:var(--ds-danger-soft)}.calendar-room-status.hk-out_of_order{color:var(--ds-danger);background:var(--ds-danger-soft)}.calendar-cell{min-height:57px;background:transparent;border-right:1px solid color-mix(in srgb,var(--ds-border) 78%,transparent)}.calendar-cell:nth-of-type(7n+1){background:color-mix(in srgb,var(--ds-surface-soft) 55%,transparent)}.calendar-cell.calendar-selectable:hover{background:color-mix(in srgb,var(--ds-primary) 5%,transparent)}
.calendar-res{height:38px;margin:0 4px;border-radius:8px;padding:6px 9px;box-shadow:none;transition:transform .08s ease,box-shadow .12s ease,opacity .12s ease}.calendar-res:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(20,28,25,.11);filter:none}.calendar-res strong{font-size:9.5px;line-height:1.25;font-weight:800}.calendar-res small{margin-top:2px;font-size:7.5px;line-height:1.2}.calendar-res.confirmed{background:color-mix(in srgb,var(--status-reservation) 10%,var(--ds-surface));border-color:color-mix(in srgb,var(--status-reservation) 34%,var(--ds-border));color:var(--status-reservation)}.calendar-res.checked_in{background:color-mix(in srgb,var(--status-occupied) 12%,var(--ds-surface));border-color:color-mix(in srgb,var(--status-occupied) 38%,var(--ds-border));color:var(--status-occupied)}.calendar-res.tentative{background:color-mix(in srgb,var(--ds-warning) 10%,var(--ds-surface));border-color:color-mix(in srgb,var(--ds-warning) 36%,var(--ds-border));color:var(--ds-warning)}.calendar-res.checked_out{opacity:.42!important;background:color-mix(in srgb,#7B8188 8%,var(--ds-surface))!important}.calendar-res.released-tail{opacity:.16!important;border-radius:7px!important;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-muted) 5%,var(--ds-surface)) 0 5px,transparent 5px 10px)!important}.calendar-inventory-block{margin:5px 3px;border-radius:7px;padding:7px 8px;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-warning) 11%,var(--ds-surface)) 0 7px,color-mix(in srgb,var(--ds-warning) 5%,var(--ds-surface)) 7px 14px)}.calendar-cell.selecting{background:color-mix(in srgb,var(--ds-success) 12%,var(--ds-surface))!important;box-shadow:inset 0 2px 0 color-mix(in srgb,var(--ds-success) 58%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--ds-success) 58%,transparent)}.calendar-cell.calendar-conflict-preview{background:color-mix(in srgb,var(--ds-danger) 12%,var(--ds-surface))!important;box-shadow:inset 0 2px 0 color-mix(in srgb,var(--ds-danger) 62%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--ds-danger) 62%,transparent)}.calendar-cell.calendar-move-target{background:color-mix(in srgb,var(--ds-success) 11%,var(--ds-surface))!important}.calendar-row[data-calendar-flags~="attention"] .calendar-room{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--ds-warning) 60%,transparent),7px 0 15px -15px rgba(0,0,0,.36)}.calendar-row[data-calendar-flags~="turnover"] .calendar-room-main:after{margin-top:2px;font-size:7px}.toast{max-width:min(420px,calc(100vw - 32px));border-radius:10px;box-shadow:0 12px 36px rgba(20,28,25,.16)}
@media(max-width:1100px){.calendar-commandbar{flex-wrap:wrap}.calendar-search-v2{order:4;max-width:none;min-width:260px}.calendar-help{display:none}.calendar-scroll{max-height:calc(100vh - 330px)}}@media(max-width:760px){.calendar-v2-head{align-items:flex-start}.calendar-title{display:grid;gap:2px}.calendar-commandbar{position:relative}.calendar-search-v2{min-width:100%;order:10}.calendar-head{grid-template-columns:154px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,58px),1fr));min-width:calc(154px + var(--calendar-days) * var(--calendar-cell-min,58px))}.calendar-row{grid-template-columns:154px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,58px),1fr));min-width:calc(154px + var(--calendar-days) * var(--calendar-cell-min,58px))}.calendar-board-top{align-items:flex-start}.calendar-legend-v2{gap:7px}.calendar-room{padding-left:8px}.calendar-statusbar{padding-bottom:4px}.calendar-inline-notice{max-width:260px}}

/* v15.53 Room Planner Pro — context-first operational timeline */
.calendar-v3{display:grid;gap:10px;min-width:0}.room-planner-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:10px;min-width:0;align-items:start}.calendar-v3 .calendar-board{min-width:0}.calendar-v3 .calendar-scroll{max-height:calc(100vh - 300px);min-height:360px}.calendar-filter-menu{position:relative}.calendar-filter-menu>summary{list-style:none;cursor:pointer}.calendar-filter-menu>summary::-webkit-details-marker{display:none}.calendar-filter-popover{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:300px;padding:12px;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface);box-shadow:var(--shadow-lg);display:grid;grid-template-columns:1fr 1fr;gap:9px}.calendar-filter-popover label{display:grid;gap:4px;color:var(--ds-muted);font-size:9px;font-weight:700}.calendar-filter-popover label select{width:100%}.calendar-filter-popover .calendar-check{grid-column:1/-1;display:flex;align-items:center;gap:7px;color:var(--ds-ink);font-size:10px}.calendar-room-group{min-width:max-content}.calendar-group-heading{position:sticky;left:0;z-index:12;width:188px;height:31px;border:0;border-right:1px solid var(--ds-border);border-bottom:1px solid var(--ds-border);background:color-mix(in srgb,var(--ds-surface-soft) 82%,var(--ds-surface));color:var(--ds-ink);display:flex;align-items:center;justify-content:space-between;padding:5px 11px;cursor:default;text-align:left}.calendar-group-heading span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.calendar-group-heading b{font-size:8px;color:var(--ds-muted);border:1px solid var(--ds-border);border-radius:999px;padding:2px 5px}.calendar-row.calendar-row-compact{min-height:46px}.calendar-row.calendar-row-compact .calendar-room{min-height:45px}.calendar-row.calendar-row-compact .calendar-cell{min-height:45px}.calendar-row.calendar-row-compact .calendar-res{height:31px;padding:4px 7px}.calendar-row.calendar-row-compact .calendar-res strong{font-size:8.5px}.calendar-row.calendar-row-compact .calendar-res small{font-size:7px}.calendar-res.calendar-history-segment{opacity:.46;border-style:dotted;box-shadow:none}.calendar-res.calendar-scheduled-segment{opacity:.78;border-style:dashed!important;background:color-mix(in srgb,var(--ds-primary) 7%,var(--ds-surface))!important;color:var(--ds-primary)!important}.calendar-res.calendar-scheduled-segment:before{content:'↳';margin-right:3px;font-weight:900}.calendar-inventory-block.calendar-block-action{pointer-events:auto;cursor:pointer;text-align:left}.calendar-inventory-block.soft-oos{border-style:dashed;border-color:color-mix(in srgb,var(--ds-warning) 55%,var(--ds-border));background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-warning) 7%,var(--ds-surface)) 0 8px,var(--ds-surface) 8px 16px);color:var(--ds-warning);z-index:1}.calendar-inventory-block.hard-block{z-index:3}.calendar-cell.calendar-soft-warning{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-warning) 4%,transparent) 0 8px,transparent 8px 16px)}.calendar-cell.calendar-soft-warning.calendar-selectable:hover{background:color-mix(in srgb,var(--ds-warning) 9%,var(--ds-surface))}.calendar-room-status.hk-out_of_service{color:var(--ds-warning);background:var(--ds-warning-soft)}.calendar-legend-v2 i.planned{background:transparent;border:2px dashed var(--ds-primary)}.calendar-legend-v2 i.oos{background:transparent;border:2px dashed var(--ds-warning)}.calendar-inspector{position:sticky;top:72px;max-height:calc(100vh - 92px);overflow:auto;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface);box-shadow:0 8px 28px rgba(20,28,25,.045)}.calendar-inspector-empty{min-height:270px;padding:32px 22px;display:grid;place-items:center;text-align:center;align-content:center;color:var(--ds-muted)}.calendar-inspector-empty>span{font-size:28px;color:var(--ds-primary)}.calendar-inspector-empty strong{margin-top:9px;color:var(--ds-ink);font-size:15px}.calendar-inspector-empty p{max-width:240px;margin:7px 0 0;font-size:10px;line-height:1.55}.calendar-inspector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:15px 15px 12px;border-bottom:1px solid var(--ds-border)}.calendar-inspector-head h2{margin:2px 0 0;font-size:18px}.calendar-inspector-head p{margin:3px 0 0;color:var(--ds-muted);font-size:9px}.calendar-inspector-body{display:grid;gap:11px;padding:13px 15px}.calendar-inspector-body section{padding-top:9px;border-top:1px solid var(--ds-border)}.calendar-inspector-body section:first-of-type{padding-top:0;border-top:0}.calendar-inspector-body h3{margin:0 0 5px;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.calendar-inspector-body p{margin:0;color:var(--ds-muted);font-size:10px;line-height:1.55}.calendar-inspector-kpis{display:grid;grid-template-columns:1fr;gap:6px}.calendar-inspector-kpis>div{padding:8px 9px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-soft)}.calendar-inspector-kpis small{display:block}.calendar-inspector-kpis strong{display:block}.calendar-inspector-kpis small{font-size:7.5px;color:var(--ds-muted);text-transform:uppercase;letter-spacing:.05em}.calendar-inspector-kpis strong{margin-top:2px;font-size:10px}.calendar-inspector-actions{position:sticky;bottom:0;display:flex;gap:6px;flex-wrap:wrap;padding:10px 12px;border-top:1px solid var(--ds-border);background:color-mix(in srgb,var(--ds-surface) 94%,transparent);backdrop-filter:blur(7px)}.calendar-inbox-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:8px 0}.calendar-v3 .calendar-unassigned{display:block;background:color-mix(in srgb,var(--ds-warning-soft) 55%,var(--ds-surface));padding:9px 11px}.calendar-v3 .calendar-unassigned summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.calendar-v3 .calendar-unassigned summary span{display:flex;align-items:center;gap:6px}.calendar-v3 .calendar-unassigned summary em{font-style:normal;border:1px solid var(--ds-border);border-radius:999px;padding:2px 6px;font-size:8px}.calendar-v3 .calendar-inbox-body{display:grid;gap:5px;margin-top:8px}.calendar-v3 .calendar-inbox-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.calendar-v3 .calendar-inbox-res{border:0;background:transparent;text-align:left;padding:5px;border-radius:7px;color:var(--ds-ink);cursor:pointer}.calendar-v3 .calendar-inbox-res:hover{background:var(--ds-surface)}.calendar-v3 .calendar-inbox-res strong{display:block}.calendar-v3 .calendar-inbox-res small{display:block}.calendar-v3 .calendar-inbox-res small{color:var(--ds-muted);font-size:8.5px}
@media(max-width:1250px){.room-planner-layout{grid-template-columns:minmax(0,1fr) 280px}.calendar-inspector{top:64px}.calendar-group-heading{width:188px}}
@media(max-width:980px){.room-planner-layout{grid-template-columns:1fr}.calendar-inspector{position:relative;top:auto;max-height:none}.calendar-filter-popover{right:auto;left:0}.calendar-v3 .calendar-scroll{max-height:58vh}}
@media(max-width:760px){.calendar-filter-popover{position:fixed;left:12px;right:12px;top:auto;width:auto}.calendar-group-heading{width:154px}.calendar-inspector-actions{position:relative}}

/* v15.53.0 — Room Planner Pro visual system: grid-first, context-first */
.calendar-v4{display:grid;gap:10px;min-width:0}.calendar-shell-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:2px 2px 0}.calendar-shell-head .calendar-title{min-width:0}.calendar-title-line{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.calendar-title-line h1{margin:0;font-size:24px;line-height:1.12;letter-spacing:-.035em;font-weight:720}.calendar-shell-head .calendar-title>p{max-width:760px;margin:4px 0 0;color:var(--ds-muted);font-size:10.5px}.calendar-shell-head .calendar-range{display:inline-flex;align-items:center;min-height:24px;border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface);padding:3px 9px;color:var(--ds-ink-secondary);font-size:9px;font-weight:700;font-variant-numeric:tabular-nums}.calendar-primary-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.calendar-primary-actions .btn b{min-width:18px;border-radius:999px;background:color-mix(in srgb,currentColor 10%,transparent);padding:1px 5px;font-size:9px}.calendar-action-dot{width:7px;height:7px;border-radius:999px;background:currentColor;opacity:.8}
.calendar-control-deck{position:sticky;top:64px;z-index:17;display:flex;align-items:center;gap:7px;min-height:52px;border:1px solid var(--ds-border);border-radius:11px;background:color-mix(in srgb,var(--ds-surface) 96%,transparent);padding:6px 7px;box-shadow:0 5px 18px rgba(25,38,31,.045);backdrop-filter:blur(10px)}.calendar-nav-group{display:flex;align-items:center;gap:5px;flex:0 0 auto}.calendar-view-group{display:flex;align-items:center;gap:5px;flex:0 0 auto}.calendar-control-deck .icon-btn{width:34px;height:34px;min-height:34px;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface);color:var(--ds-ink-secondary);cursor:pointer}.calendar-control-deck .icon-btn:hover{border-color:var(--ds-border-strong);background:var(--ds-surface-hover);color:var(--ds-ink)}.calendar-control-deck select{min-height:34px;height:34px;border-radius:7px;padding-top:5px;padding-bottom:5px;font-size:10.5px}.calendar-control-deck input{min-height:34px;height:34px;border-radius:7px;padding-top:5px;padding-bottom:5px;font-size:10.5px}.calendar-date-jump{width:130px;min-width:130px}.calendar-search-v2{min-width:180px;max-width:420px;flex:1 1 320px;height:36px;margin:0;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface);display:flex;align-items:center;gap:7px;padding:0 9px;color:var(--ds-muted)}.calendar-search-v2:hover{border-color:var(--ds-border-strong)}.calendar-search-v2:focus-within{border-color:var(--ds-focus);box-shadow:0 0 0 3px rgb(22 131 74 / .10)}.calendar-search-v2 .nav-icon{width:15px;height:15px;flex:0 0 auto}.calendar-search-v2 input{height:32px;min-height:32px;border:0!important;box-shadow:none!important;background:transparent;padding:0;font-size:10.5px}.calendar-view-group select{width:88px}.calendar-zoom-label{min-width:39px;font-size:9px}.calendar-inspector-toggle.active{border-color:color-mix(in srgb,var(--ds-primary) 25%,var(--ds-border));background:var(--ds-primary-soft);color:var(--ds-primary)}
.calendar-filter-menu{position:relative;flex:0 0 auto}.calendar-filter-menu>summary{list-style:none;cursor:pointer}.calendar-filter-menu>summary::-webkit-details-marker{display:none}.calendar-filter-popover{position:absolute;right:0;top:calc(100% + 7px);z-index:50;width:304px;padding:12px;border:1px solid var(--ds-border);border-radius:11px;background:var(--ds-surface);box-shadow:var(--shadow-md);display:grid;grid-template-columns:1fr 1fr;gap:8px}.calendar-filter-popover label{display:grid;gap:4px;margin:0;color:var(--ds-muted);font-size:9px;font-weight:700}.calendar-filter-popover label select{width:100%}.calendar-filter-popover .calendar-check{grid-column:1/-1;display:flex;align-items:center;gap:7px;color:var(--ds-ink-secondary);font-size:9.5px}.calendar-filter-popover .calendar-check input{width:15px;height:15px;min-height:15px;margin:0}
.calendar-statusbar{display:flex;align-items:center;gap:5px;min-height:38px;overflow-x:auto;padding:0 1px 2px;scrollbar-width:none}.calendar-statusbar::-webkit-scrollbar{display:none}.calendar-statusbar>button{height:31px;min-width:max-content;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface);padding:0 9px;color:var(--ds-muted);display:inline-flex;align-items:center;gap:7px;font-size:9px;white-space:nowrap}.calendar-statusbar>.calendar-stat{height:31px;min-width:max-content;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface);padding:0 9px;color:var(--ds-muted);display:inline-flex;align-items:center;gap:7px;font-size:9px;white-space:nowrap}.calendar-statusbar>button{cursor:pointer}.calendar-statusbar>button b{color:var(--ds-ink);font-size:10px}.calendar-statusbar>.calendar-stat b{color:var(--ds-ink);font-size:10px}.calendar-statusbar>button:hover{border-color:var(--ds-border-strong);background:var(--ds-surface-hover);color:var(--ds-ink-secondary)}.calendar-statusbar>button.active{border-color:color-mix(in srgb,var(--ds-primary) 30%,var(--ds-border));background:var(--ds-primary-soft);color:var(--ds-primary)}.calendar-statusbar>.calendar-stat.warning{border-color:color-mix(in srgb,var(--ds-warning) 28%,var(--ds-border));background:var(--ds-warning-soft);color:var(--ds-warning)}.calendar-inline-notice{margin-left:auto;max-width:430px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;font-weight:650;color:var(--ds-muted)}.calendar-inline-notice.success{color:var(--ds-success)}.calendar-inline-notice.error{color:var(--ds-danger)}
.calendar-v4 .calendar-unassigned{display:block;margin:0;border:1px solid var(--ds-border);border-left:3px solid var(--ds-warning);border-radius:9px;background:var(--ds-surface);padding:0;overflow:hidden}.calendar-v4 .calendar-unassigned>summary{min-height:39px;padding:6px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;background:color-mix(in srgb,var(--ds-warning-soft) 42%,var(--ds-surface))}.calendar-v4 .calendar-unassigned>summary:hover{background:color-mix(in srgb,var(--ds-warning-soft) 72%,var(--ds-surface))}.calendar-v4 .calendar-unassigned>summary span{display:flex;align-items:center;gap:7px}.calendar-v4 .calendar-unassigned>summary b{font-size:10px}.calendar-v4 .calendar-unassigned>summary em{font-style:normal;border-radius:999px;background:var(--ds-warning);color:#fff;padding:1px 6px;font-size:8px;font-weight:800}.calendar-v4 .calendar-unassigned>summary small{color:var(--ds-muted);font-size:8.5px}.calendar-v4 .calendar-inbox-actions{margin:0;padding:8px 10px 0}.calendar-v4 .calendar-inbox-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px;padding:8px 10px 10px}.calendar-v4 .calendar-inbox-item{min-width:0;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface-soft);padding:4px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:center}.calendar-v4 .calendar-inbox-res{min-width:0}.calendar-v4 .calendar-inbox-res strong{font-size:9.5px}.calendar-v4 .calendar-inbox-res small{font-size:8px}
.room-planner-layout{display:grid;grid-template-columns:minmax(0,1fr) 336px;gap:10px;min-width:0;align-items:start}.calendar-v4.calendar-inspector-hidden .room-planner-layout{grid-template-columns:minmax(0,1fr)}.calendar-v4.calendar-inspector-hidden .calendar-inspector{display:none}.calendar-board{min-width:0;border:1px solid var(--ds-border);border-radius:11px;background:var(--ds-surface);overflow:hidden;box-shadow:0 2px 10px rgba(25,38,31,.035)}.calendar-board-top{height:38px;padding:0 10px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface-soft);display:flex;align-items:center;gap:12px}.calendar-board-context{display:flex;align-items:center;gap:6px;min-width:max-content}.calendar-board-context strong{font-size:9.5px}.calendar-board-context span{color:var(--ds-muted);font-size:8.5px}.calendar-legend-menu{position:relative;margin-left:auto}.calendar-legend-menu>summary{list-style:none;cursor:pointer;color:var(--ds-muted);font-size:9px;font-weight:700}.calendar-legend-menu>summary::-webkit-details-marker{display:none}.calendar-legend-menu[open]>summary{color:var(--ds-primary)}.calendar-legend-menu .calendar-legend-v2{position:absolute;right:0;top:calc(100% + 8px);z-index:45;width:max-content;max-width:min(680px,80vw);border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface);padding:9px 10px;box-shadow:var(--shadow-md)}.calendar-help{color:var(--ds-faint);font-size:8px;white-space:nowrap}.calendar-scroll{overflow:auto;max-width:100%;max-height:calc(100vh - 276px);min-height:410px;overscroll-behavior:contain;scrollbar-gutter:stable}.calendar-head{grid-template-columns:224px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,72px),1fr));min-width:calc(224px + var(--calendar-days) * var(--calendar-cell-min,72px))}.calendar-row{grid-template-columns:224px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,72px),1fr));min-width:calc(224px + var(--calendar-days) * var(--calendar-cell-min,72px))}.calendar-head{position:sticky;top:0;z-index:15;height:50px;background:var(--ds-surface);box-shadow:0 1px 0 var(--ds-border)}.calendar-room-head{position:sticky;left:0;z-index:18;min-height:50px;border-right:1px solid var(--ds-border);background:var(--ds-surface);padding:8px 11px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-transform:none;letter-spacing:0}.calendar-room-head span{color:var(--ds-ink);font-size:9px;font-weight:800}.calendar-room-head small{margin-top:1px;color:var(--ds-faint);font-size:7.5px;font-weight:650}.calendar-day{position:relative;min-height:50px;padding:5px 3px;border-right:1px solid var(--ds-border);display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;place-content:center;column-gap:3px;color:var(--ds-muted)}.calendar-day small{grid-column:1/-1;text-transform:uppercase;font-size:7px;letter-spacing:.05em;font-weight:750}.calendar-day strong{font-size:14px;line-height:1;color:var(--ds-ink-secondary);font-variant-numeric:tabular-nums}.calendar-day em{align-self:end;font-size:7px;font-style:normal;color:var(--ds-faint)}.calendar-day.weekend{background:color-mix(in srgb,var(--ds-surface-soft) 72%,var(--ds-surface))}.calendar-day.today{background:var(--ds-primary-soft);color:var(--ds-primary)}.calendar-day.today strong{color:var(--ds-primary)}.calendar-day.today span{position:absolute;left:50%;bottom:1px;transform:translateX(-50%);font-size:5.5px;font-weight:900;letter-spacing:.08em;color:var(--ds-primary)}
.calendar-room-group{min-width:max-content}.calendar-group-heading{position:sticky;left:0;z-index:13;width:224px;height:29px;border:0;border-right:1px solid var(--ds-border);border-bottom:1px solid var(--ds-border);background:#F1F4F1;color:var(--ds-ink-secondary);display:flex;align-items:center;justify-content:space-between;padding:4px 11px;text-align:left}.calendar-group-heading span{font-size:8px;font-weight:820;text-transform:uppercase;letter-spacing:.07em}.calendar-group-heading b{min-width:20px;border:0;border-radius:999px;background:var(--ds-surface);padding:2px 5px;color:var(--ds-muted);font-size:7px;text-align:center}.calendar-row{min-height:56px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface)}.calendar-row:hover{background:color-mix(in srgb,var(--ds-primary-soft) 15%,var(--ds-surface))}.calendar-row:hover .calendar-room{background:#FBFCFB}.calendar-room{position:sticky;left:0;z-index:9;grid-column:1;grid-row:1;min-height:55px;width:100%;border:0;border-right:1px solid var(--ds-border);background:var(--ds-surface);padding:6px 9px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;color:inherit;cursor:pointer;box-shadow:5px 0 10px -12px rgba(20,30,25,.4)}.calendar-room:hover{background:var(--ds-surface-hover)}.calendar-room.calendar-selected{background:var(--ds-primary-soft);box-shadow:inset 3px 0 0 var(--ds-primary),5px 0 10px -12px rgba(20,30,25,.4)}.calendar-room-identity{display:flex;align-items:center;gap:9px;min-width:0}.calendar-room-number{min-width:41px;color:var(--ds-ink);font-size:15px;font-weight:820;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.calendar-room-main{display:block;min-width:0}.calendar-room-main strong{display:block;max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ds-ink-secondary);font-size:8.5px;font-weight:720}.calendar-room-main small{display:block;margin-top:1px;color:var(--ds-faint);font-size:7.5px;white-space:nowrap}.calendar-room-status{display:inline-flex;align-items:center;gap:4px;min-height:22px;max-width:76px;margin:0;border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface-soft);padding:2px 6px;color:var(--ds-muted);font-size:7.5px;font-weight:760;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-room-status i{width:6px;height:6px;border-radius:999px;background:currentColor;flex:0 0 auto}.calendar-room-status.hk-inspected{border-color:#BCD9C5;background:var(--ds-success-soft);color:var(--ds-success)}.calendar-room-status.hk-occupied{border-color:#BDD1D5;background:var(--status-occupied-soft);color:var(--status-occupied)}.calendar-room-status.hk-dirty{border-color:#E5C5C3;background:var(--ds-danger-soft);color:var(--ds-danger)}.calendar-room-status.hk-cleaning{border-color:#E7D0AA;background:var(--ds-warning-soft);color:var(--ds-warning)}.calendar-room-status.hk-inspection{border-color:#C8D6E1;background:var(--ds-info-soft);color:var(--ds-info)}.calendar-room-status.hk-out_of_order{border-color:#E5B6B4;background:var(--ds-danger-soft);color:var(--ds-danger)}.calendar-room-status.hk-out_of_service{border-color:#E6CCA4;background:var(--ds-warning-soft);color:var(--ds-warning)}
.calendar-cell{grid-row:1;min-height:55px;border-right:1px solid var(--ds-border);background:transparent}.calendar-cell.weekend{background:color-mix(in srgb,var(--ds-surface-soft) 42%,transparent)}.calendar-cell.today{background:color-mix(in srgb,var(--ds-primary-soft) 34%,transparent)}.calendar-cell.calendar-selectable{cursor:crosshair;transition:background-color .08s ease,box-shadow .08s ease}.calendar-cell.calendar-selectable:hover{background:color-mix(in srgb,var(--ds-primary-soft) 68%,var(--ds-surface))}.calendar-cell.calendar-blocked{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-danger) 6%,var(--ds-surface)) 0 7px,color-mix(in srgb,var(--ds-danger) 1%,var(--ds-surface)) 7px 14px);cursor:not-allowed}.calendar-cell.calendar-soft-warning{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-warning) 4%,var(--ds-surface)) 0 8px,transparent 8px 16px)}.calendar-cell.selecting{background:color-mix(in srgb,var(--ds-success) 10%,var(--ds-surface))!important;box-shadow:inset 0 2px 0 color-mix(in srgb,var(--ds-success) 55%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--ds-success) 55%,transparent)}.calendar-cell.calendar-conflict-preview{background:color-mix(in srgb,var(--ds-danger) 10%,var(--ds-surface))!important;box-shadow:inset 0 2px 0 color-mix(in srgb,var(--ds-danger) 62%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--ds-danger) 62%,transparent)}.calendar-cell.calendar-move-target{background:color-mix(in srgb,var(--ds-primary) 8%,var(--ds-surface))!important;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--ds-primary) 35%,transparent)}
.calendar-res{z-index:5;grid-row:1;align-self:center;min-width:0;height:39px;margin:0 3px;border:1px solid transparent;border-radius:8px;padding:4px 7px 4px 8px;overflow:hidden;text-align:left;cursor:pointer;display:flex;align-items:center;gap:5px;box-shadow:0 1px 2px rgba(25,38,31,.06);transition:transform .11s ease,box-shadow .11s ease,filter .11s ease}.calendar-res:hover{z-index:8;transform:translateY(-1px);filter:none;box-shadow:0 5px 14px rgba(25,38,31,.11)}.calendar-res:focus-visible{outline:2px solid color-mix(in srgb,var(--ds-focus) 55%,transparent);outline-offset:1px}.calendar-res-copy{display:block;min-width:0;flex:1}.calendar-res-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-res-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-res-copy strong{font-size:9.5px;line-height:1.25;font-weight:760}.calendar-res-copy small{margin-top:2px;font-size:7.5px;opacity:.74;font-variant-numeric:tabular-nums}.calendar-res-dot{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:999px;background:currentColor;vertical-align:1px;opacity:.8}.calendar-res-flags{display:flex;gap:3px;align-items:center;flex:0 0 auto}.calendar-res-flag{display:inline-flex;align-items:center;justify-content:center;min-height:16px;border-radius:4px;padding:1px 4px;background:color-mix(in srgb,currentColor 9%,transparent);font-size:5.8px;font-weight:900;letter-spacing:.04em}.calendar-res.confirmed{background:#F1EFF7;border-color:#D8D3E4;color:#615878;box-shadow:inset 3px 0 0 #6A6287,0 1px 2px rgba(25,38,31,.06)}.calendar-res.checked_in{background:#E8F2F3;border-color:#C6DADC;color:#285E66;box-shadow:inset 3px 0 0 #2E6A73,0 1px 2px rgba(25,38,31,.06)}.calendar-res.tentative{background:#FBF2E4;border-color:#E8D0AA;color:#9A6519;box-shadow:inset 3px 0 0 #B4771D,0 1px 2px rgba(25,38,31,.06)}.calendar-res.checked_out{opacity:.48!important;background:#F2F3F2!important;border-color:#D6DAD7!important;color:#707A74!important;box-shadow:inset 3px 0 0 #8B938E!important}.calendar-res.calendar-selected{z-index:10;outline:2px solid color-mix(in srgb,var(--ds-primary) 55%,transparent);outline-offset:1px;box-shadow:0 6px 16px rgba(14,122,67,.14)}.calendar-res.calendar-assignment-locked{cursor:not-allowed}.calendar-res.calendar-history-segment{opacity:.42;border-style:dotted;box-shadow:none}.calendar-res.calendar-scheduled-segment{opacity:.9;border:1px dashed color-mix(in srgb,var(--ds-primary) 55%,var(--ds-border))!important;background:color-mix(in srgb,var(--ds-primary-soft) 55%,var(--ds-surface))!important;color:var(--ds-primary)!important;box-shadow:none}.calendar-res.released-tail{opacity:.19!important;border:1px dashed color-mix(in srgb,var(--ds-muted) 48%,transparent)!important;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-muted) 6%,var(--ds-surface)) 0 6px,transparent 6px 12px)!important;color:var(--ds-muted)!important;pointer-events:none!important;box-shadow:none!important}.calendar-resize-handle{top:3px;bottom:3px;width:7px}.calendar-res.calendar-resizable:hover .calendar-resize-handle{background:color-mix(in srgb,currentColor 17%,transparent)}
.calendar-inventory-block{grid-row:1;align-self:center;z-index:4;height:39px;margin:0 3px;border:1px solid color-mix(in srgb,var(--ds-danger) 34%,var(--ds-border));border-radius:8px;padding:5px 7px;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-danger) 9%,var(--ds-surface)) 0 7px,color-mix(in srgb,var(--ds-danger) 3%,var(--ds-surface)) 7px 14px);color:var(--ds-danger);overflow:hidden;text-align:left}.calendar-inventory-block strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-inventory-block small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-inventory-block strong{font-size:8px}.calendar-inventory-block small{margin-top:2px;font-size:7px}.calendar-inventory-block.soft-oos{border-style:dashed;border-color:color-mix(in srgb,var(--ds-warning) 45%,var(--ds-border));background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-warning) 7%,var(--ds-surface)) 0 8px,var(--ds-surface) 8px 16px);color:var(--ds-warning)}.calendar-inventory-block.calendar-selected{z-index:9;outline:2px solid color-mix(in srgb,var(--ds-primary) 50%,transparent);outline-offset:1px}
.calendar-legend-v2{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--ds-muted);font-size:8px}.calendar-legend-v2 span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.calendar-legend-v2 i{width:8px;height:8px;border-radius:3px;background:var(--ds-border-strong)}.calendar-legend-v2 i.confirmed{background:var(--status-reservation)}.calendar-legend-v2 i.checked_in{background:var(--status-occupied)}.calendar-legend-v2 i.tentative{background:var(--ds-warning)}.calendar-legend-v2 i.planned{background:transparent;border:2px dashed var(--ds-primary)}.calendar-legend-v2 i.released{background:#D4D8D5;border:1px dashed #8B938E}.calendar-legend-v2 i.blocked{background:repeating-linear-gradient(135deg,var(--ds-danger) 0 3px,transparent 3px 6px);border:1px solid color-mix(in srgb,var(--ds-danger) 50%,var(--ds-border))}.calendar-legend-v2 i.oos{background:transparent;border:2px dashed var(--ds-warning)}
.calendar-inspector{position:sticky;top:126px;max-height:calc(100vh - 146px);overflow:auto;border:1px solid var(--ds-border);border-radius:11px;background:var(--ds-surface);box-shadow:0 3px 16px rgba(25,38,31,.045);scrollbar-gutter:stable}.calendar-inspector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 14px 11px;border-bottom:1px solid var(--ds-border);background:linear-gradient(180deg,var(--ds-surface),color-mix(in srgb,var(--ds-surface-soft) 56%,var(--ds-surface)))}.calendar-inspector-head h2{margin:2px 0 0;font-size:17px;letter-spacing:-.025em}.calendar-inspector-head p{margin:3px 0 0;color:var(--ds-muted);font-size:8.5px;line-height:1.45}.calendar-health-dot{width:10px;height:10px;margin-top:4px;border-radius:999px;background:var(--ds-success);box-shadow:0 0 0 4px var(--ds-success-soft)}.calendar-health-dot.warning{background:var(--ds-warning);box-shadow:0 0 0 4px var(--ds-warning-soft)}.calendar-inspector-body{display:grid;gap:11px;padding:12px 14px}.calendar-inspector-body section{padding-top:10px;border-top:1px solid var(--ds-border)}.calendar-inspector-body section:first-of-type{padding-top:0;border-top:0}.calendar-inspector-body h3{margin:0 0 6px;color:var(--ds-ink-secondary);font-size:8px;text-transform:uppercase;letter-spacing:.07em}.calendar-inspector-body p{margin:0;color:var(--ds-muted);font-size:9px;line-height:1.52}.calendar-inspector-kpis{display:grid;grid-template-columns:1fr;gap:6px}.calendar-inspector-kpis>div{padding:8px 9px;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface-soft)}.calendar-inspector-kpis small{font-size:7px}.calendar-inspector-kpis strong{font-size:9.5px}.calendar-today-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:6px;align-items:center}.calendar-today-flow>div{min-width:0;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-soft);padding:8px;text-align:center}.calendar-today-flow>div span{display:block}.calendar-today-flow>div strong{display:block}.calendar-today-flow>div span{color:var(--ds-muted);font-size:7px}.calendar-today-flow>div strong{margin-top:1px;font-size:15px;font-variant-numeric:tabular-nums}.calendar-today-flow>i{color:var(--ds-faint);font-style:normal;font-size:10px}.calendar-inspector-list{display:grid;gap:2px}.calendar-inspector-list>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center;min-height:28px;border-radius:6px;padding:4px 5px}.calendar-inspector-list>div:hover{background:var(--ds-surface-soft)}.calendar-inspector-list span{color:var(--ds-ink-secondary);font-size:8.5px}.calendar-inspector-list strong{font-size:9px}.status-dot{width:7px;height:7px;border-radius:999px}.status-dot.ready{background:var(--ds-success)}.status-dot.housekeeping{background:var(--ds-warning)}.status-dot.turnover{background:var(--ds-info)}.status-dot.danger{background:var(--ds-danger)}.calendar-inspector-callout{border:1px solid color-mix(in srgb,var(--ds-warning) 25%,var(--ds-border))!important;border-radius:8px;background:var(--ds-warning-soft);padding:9px!important}.calendar-inspector-callout strong{font-size:9px}.calendar-inspector-tip{border:1px solid var(--ds-border)!important;border-radius:8px;background:var(--ds-surface-soft);padding:9px!important}.calendar-inspector-tip strong{display:block;margin-bottom:3px;font-size:8.5px}.calendar-inspector-actions{position:sticky;bottom:0;display:flex;gap:5px;flex-wrap:wrap;padding:9px 10px;border-top:1px solid var(--ds-border);background:color-mix(in srgb,var(--ds-surface) 96%,transparent);backdrop-filter:blur(8px)}.calendar-inspector-empty{min-height:260px;padding:28px 20px}
.calendar-row.calendar-row-compact{min-height:45px}.calendar-row.calendar-row-compact .calendar-room{min-height:44px}.calendar-row.calendar-row-compact .calendar-cell{min-height:44px}.calendar-row.calendar-row-compact .calendar-res{height:31px}.calendar-row.calendar-row-compact .calendar-inventory-block{height:31px}.calendar-row.calendar-row-compact .calendar-room-number{font-size:13px}.calendar-row.calendar-row-compact .calendar-res-copy small{display:none}.calendar-row[data-calendar-flags~="attention"] .calendar-room{box-shadow:inset 3px 0 0 var(--ds-warning),5px 0 10px -12px rgba(20,30,25,.4)}.calendar-row[data-calendar-flags~="turnover"] .calendar-room-number:after{content:'↻';margin-left:4px;color:var(--ds-info);font-size:8px;vertical-align:2px}.calendar-row[hidden]{display:none!important}.calendar-room-group[hidden]{display:none!important}
@media(max-width:1320px){.room-planner-layout{grid-template-columns:minmax(0,1fr) 300px}.calendar-head{grid-template-columns:208px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,68px),1fr));min-width:calc(208px + var(--calendar-days) * var(--calendar-cell-min,68px))}.calendar-row{grid-template-columns:208px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,68px),1fr));min-width:calc(208px + var(--calendar-days) * var(--calendar-cell-min,68px))}.calendar-group-heading{width:208px}.calendar-room-main strong{max-width:80px}.calendar-control-deck{flex-wrap:wrap}.calendar-search-v2{order:5;max-width:none;flex:1 1 280px}.calendar-inspector{top:178px;max-height:calc(100vh - 198px)}}
@media(max-width:1020px){.room-planner-layout{grid-template-columns:1fr}.calendar-inspector{position:relative;top:auto;max-height:none}.calendar-v4:not(.calendar-inspector-hidden) .calendar-inspector{display:block}.calendar-help{display:none}.calendar-scroll{max-height:58vh}.calendar-control-deck{position:relative;top:auto}.calendar-inspector-toggle{display:none}.calendar-inspector{order:2}.calendar-board{order:1}}
@media(max-width:760px){.calendar-shell-head{display:grid}.calendar-primary-actions{justify-content:flex-start;flex-wrap:wrap}.calendar-control-deck{display:grid;grid-template-columns:1fr auto}.calendar-nav-group{grid-column:1/-1}.calendar-search-v2{grid-column:1/-1;order:initial;min-width:100%}.calendar-view-group{justify-content:flex-start}.calendar-filter-menu{justify-self:end}.calendar-filter-popover{position:fixed;left:12px;right:12px;top:132px;width:auto;grid-template-columns:1fr;max-height:70vh;overflow:auto}.calendar-filter-popover .calendar-check{grid-column:auto}.calendar-statusbar{margin-right:-12px;padding-right:12px}.calendar-head{grid-template-columns:164px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,58px),1fr));min-width:calc(164px + var(--calendar-days) * var(--calendar-cell-min,58px))}.calendar-row{grid-template-columns:164px repeat(var(--calendar-days),minmax(var(--calendar-cell-min,58px),1fr));min-width:calc(164px + var(--calendar-days) * var(--calendar-cell-min,58px))}.calendar-group-heading{width:164px}.calendar-room{padding:5px 7px}.calendar-room-number{min-width:34px;font-size:13px}.calendar-room-main{display:none}.calendar-room-status{max-width:70px;font-size:7px}.calendar-v4 .calendar-inbox-body{grid-template-columns:1fr}.calendar-board-top{padding:0 8px}.calendar-board-context span{display:none}.calendar-legend-menu .calendar-legend-v2{right:-4px;max-width:92vw}.calendar-inline-notice{display:none}}

/* v15.53.0 — day details and scalable grouping */
.calendar-group-heading{cursor:pointer}.calendar-group-heading:hover{background:#E9EEEA}.calendar-group-heading span{display:flex;align-items:center;gap:5px}.calendar-group-heading span i{width:11px;color:var(--ds-faint);font-style:normal;font-size:12px;line-height:1}.calendar-room-group.collapsed .calendar-group-heading{border-bottom:1px solid var(--ds-border)}.calendar-day{appearance:none;width:auto;border:0;border-right:1px solid var(--ds-border);border-radius:0;cursor:pointer}.calendar-day:hover{background:var(--ds-surface-hover)}.calendar-day.today:hover{background:var(--ds-primary-soft-strong)}.calendar-day.calendar-selected{z-index:2;box-shadow:inset 0 -3px 0 var(--ds-primary);background:var(--ds-primary-soft)}.calendar-day-kpis{display:grid;grid-template-columns:1fr 1fr;gap:6px}.calendar-day-kpis>div{border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface-soft);padding:7px 8px}.calendar-day-kpis small{display:block}.calendar-day-kpis strong{display:block}.calendar-day-kpis small{color:var(--ds-muted);font-size:7px;text-transform:uppercase;letter-spacing:.05em}.calendar-day-kpis strong{margin-top:1px;font-size:14px}.calendar-day-res{width:100%;min-height:34px;border:0;border-bottom:1px solid var(--ds-border);background:transparent;padding:6px 2px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;color:var(--ds-ink);cursor:pointer}.calendar-day-note{width:100%;min-height:34px;border:0;border-bottom:1px solid var(--ds-border);background:transparent;padding:6px 2px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;color:var(--ds-ink);cursor:pointer}.calendar-day-res:last-child{border-bottom:0}.calendar-day-note:last-child{border-bottom:0}.calendar-day-res:hover{background:var(--ds-surface-soft)}.calendar-day-note:hover{background:var(--ds-surface-soft)}.calendar-day-res span:first-child{min-width:0}.calendar-day-res strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-day-res small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-day-res strong{font-size:8.5px}.calendar-day-res small{margin-top:1px;color:var(--ds-muted);font-size:7.5px}.calendar-day-res>span:last-child{color:var(--ds-muted);font-size:8px;white-space:nowrap}.calendar-day-note{display:grid;gap:2px}.calendar-day-note strong{font-size:8.5px}.calendar-day-note span{color:var(--ds-muted);font-size:8px}.calendar-day-note.risk{color:var(--ds-danger)}.calendar-day-note.warning{color:var(--ds-warning)}

/* v15.53.0 — compact actionable Conflict Center */
.calendar-conflict-center{display:grid;gap:12px}.calendar-conflict-summary{display:grid;grid-template-columns:repeat(6,minmax(86px,1fr));gap:6px}.calendar-conflict-summary>div{border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-soft);padding:8px 9px}.calendar-conflict-summary small{display:block}.calendar-conflict-summary strong{display:block}.calendar-conflict-summary small{color:var(--ds-muted);font-size:7.5px;text-transform:uppercase;letter-spacing:.05em}.calendar-conflict-summary strong{margin-top:2px;font-size:17px}.calendar-conflict-summary .danger{border-color:color-mix(in srgb,var(--ds-danger) 24%,var(--ds-border));background:var(--ds-danger-soft)}.calendar-conflict-summary .warning{border-color:color-mix(in srgb,var(--ds-warning) 25%,var(--ds-border));background:var(--ds-warning-soft)}.calendar-conflict-columns{display:grid;grid-template-columns:1fr 1fr;gap:9px}.calendar-conflict-columns>section{min-width:0;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface);padding:9px}.calendar-conflict-columns>section h3{margin:0 0 5px;color:var(--ds-ink-secondary);font-size:9px}.calendar-conflict-item{width:100%;min-height:40px;border:0;border-bottom:1px solid var(--ds-border);background:transparent;padding:6px 2px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;color:var(--ds-ink)}.calendar-conflict-item:last-child{border-bottom:0}.calendar-conflict-item.has-target{cursor:pointer}.calendar-conflict-item.has-target:hover{background:var(--ds-surface-soft)}.calendar-conflict-item strong{display:block;overflow:hidden;text-overflow:ellipsis}.calendar-conflict-item small{display:block;overflow:hidden;text-overflow:ellipsis}.calendar-conflict-item strong{font-size:8.7px}.calendar-conflict-item small{margin-top:2px;color:var(--ds-muted);font-size:7.7px;white-space:normal}.calendar-conflict-policy{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-soft);padding:9px 10px}.calendar-conflict-policy strong{font-size:8.5px}.calendar-conflict-policy span{color:var(--ds-muted);font-size:8.5px;line-height:1.45}@media(max-width:860px){.calendar-conflict-summary{grid-template-columns:repeat(3,1fr)}.calendar-conflict-columns{grid-template-columns:1fr}}

/* v15.53.0 — Room Planner Pro polished visual architecture ================== */
.calendar-v4{--calendar-room-rail:248px;display:grid;gap:12px;min-width:0}.calendar-shell-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:3px 2px 1px}.calendar-shell-head .calendar-title{display:block;min-width:0}.calendar-title-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.calendar-title-line h1{margin:0;color:var(--ds-ink);font-size:27px;line-height:1.08;font-weight:735;letter-spacing:-.042em}.calendar-shell-head .calendar-title>p{max-width:820px;margin:6px 0 0;color:var(--ds-muted);font-size:12px;line-height:1.45}.calendar-shell-head .calendar-range{display:inline-flex;align-items:center;min-height:27px;border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface-soft);padding:4px 10px;color:var(--ds-ink-secondary);font-size:10px;font-weight:720;font-variant-numeric:tabular-nums}.calendar-primary-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.calendar-primary-actions .btn b{min-width:19px;min-height:18px;display:inline-grid;place-items:center;border-radius:999px;background:color-mix(in srgb,currentColor 10%,transparent);padding:1px 5px;font-size:9px}.calendar-action-dot{width:7px;height:7px;border-radius:999px;background:currentColor;opacity:.82}
.calendar-control-deck{position:sticky;top:64px;z-index:24;display:flex;align-items:center;gap:8px;min-height:50px;border:1px solid var(--ds-border);border-radius:12px;background:rgb(255 255 255 / .96);padding:6px 7px;box-shadow:0 6px 22px rgb(31 45 38 / .055);backdrop-filter:blur(12px)}.calendar-nav-group{display:flex;align-items:center;gap:4px;flex:0 0 auto}.calendar-view-group{display:flex;align-items:center;gap:4px;flex:0 0 auto}.calendar-nav-group{padding-right:8px;border-right:1px solid var(--ds-border)}.calendar-control-deck .icon-btn{width:34px;height:34px;min-height:34px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ds-ink-secondary);font-size:15px}.calendar-control-deck .icon-btn:hover{border-color:var(--ds-border);background:var(--ds-surface-hover);color:var(--ds-ink)}.calendar-control-deck select{min-height:34px;height:34px;border-radius:8px;padding-top:5px;padding-bottom:5px;font-size:11px}.calendar-control-deck input{min-height:34px;height:34px;border-radius:8px;padding-top:5px;padding-bottom:5px;font-size:11px}.calendar-date-jump{width:132px!important;min-width:132px!important}.calendar-search-v2{min-width:220px;max-width:520px;flex:1 1 340px;height:36px;margin:0;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface-soft);display:flex;align-items:center;gap:7px;padding:0 10px;color:var(--ds-muted)}.calendar-search-v2:hover{border-color:var(--ds-border-strong);background:var(--ds-surface)}.calendar-search-v2:focus-within{border-color:var(--ds-focus);background:var(--ds-surface);box-shadow:0 0 0 3px rgb(22 131 74 / .10)}.calendar-search-v2 .nav-icon{width:16px;height:16px;flex:0 0 auto}.calendar-search-v2 input{height:32px;min-height:32px;border:0!important;box-shadow:none!important;background:transparent;padding:0;font-size:11px}.calendar-view-group{margin-left:auto}.calendar-view-group select{width:90px}.calendar-zoom-label{min-width:42px;text-align:center;color:var(--ds-muted);font-size:9.5px;font-variant-numeric:tabular-nums}.calendar-filter-menu>summary{white-space:nowrap}.calendar-inspector-toggle{white-space:nowrap}.calendar-inspector-toggle.active{border-color:#BAD8C3;background:var(--ds-success-soft);color:var(--ds-success)}
.calendar-statusbar{display:flex;align-items:center;gap:4px;min-height:34px;overflow-x:auto;padding:0 1px 2px}.calendar-statusbar>button{display:inline-flex;align-items:center;gap:6px;height:30px;border:1px solid transparent;border-radius:7px;background:transparent;padding:4px 8px;color:var(--ds-muted);font:650 10.5px/1 inherit;white-space:nowrap;cursor:pointer}.calendar-statusbar>button:before{content:'';width:7px;height:7px;border-radius:999px;background:var(--ds-border-strong);flex:0 0 auto}.calendar-statusbar>button[data-cal-filter="ready"]:before{background:var(--ds-success)}.calendar-statusbar>button[data-cal-filter="occupied"]:before{background:var(--status-occupied)}.calendar-statusbar>button[data-cal-filter="housekeeping"]:before{background:var(--ds-warning)}.calendar-statusbar>button[data-cal-filter="turnover"]:before{background:var(--ds-info)}.calendar-statusbar>button[data-cal-filter="attention"]:before{background:var(--ds-danger)}.calendar-statusbar>button:hover{background:var(--ds-surface-hover);color:var(--ds-ink)}.calendar-statusbar>button.active{border-color:var(--ds-border);background:var(--ds-surface);color:var(--ds-primary);box-shadow:var(--shadow-xs)}.calendar-statusbar>button.active:before{box-shadow:0 0 0 3px color-mix(in srgb,currentColor 10%,transparent)}.calendar-statusbar b{color:var(--ds-ink);font-size:10px}.calendar-stat{display:inline-flex;align-items:center;gap:5px;height:28px;border:0;border-left:1px solid var(--ds-border);border-radius:0;background:transparent;padding:0 0 0 9px;color:var(--ds-muted);font:620 10px/1 inherit;white-space:nowrap}.calendar-statusbar .calendar-stat:first-of-type{margin-left:auto}.calendar-stat b{color:var(--ds-ink)}.calendar-stat.warning{border:0;border-left:1px solid var(--ds-border);background:transparent;color:var(--ds-warning)}.calendar-inline-notice{margin-left:7px;display:inline-flex;align-items:center;min-height:28px;max-width:420px;border:1px solid transparent;border-radius:7px;padding:4px 8px;font-size:10px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-inline-notice:empty{display:none}.calendar-inline-notice.error{border-color:#EBC4C2;color:var(--ds-danger);background:var(--ds-danger-soft)}.calendar-inline-notice.success{border-color:#C8DECf;color:var(--ds-success);background:var(--ds-success-soft)}
.calendar-v4 .calendar-unassigned{display:block;margin:0;border:1px solid var(--ds-border);border-left:3px solid var(--ds-warning);border-radius:10px;background:var(--ds-surface);padding:0;overflow:hidden;box-shadow:var(--shadow-xs)}.calendar-v4 .calendar-unassigned>summary{min-height:42px;padding:7px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;background:var(--ds-surface)}.calendar-v4 .calendar-unassigned>summary:hover{background:var(--ds-surface-hover)}.calendar-v4 .calendar-unassigned>summary b{font-size:11px}.calendar-v4 .calendar-unassigned>summary em{min-width:21px;min-height:21px;display:inline-grid;place-items:center;border-radius:999px;background:var(--ds-warning);color:#fff;padding:1px 6px;font-size:9px;font-weight:800}.calendar-v4 .calendar-unassigned>summary small{color:var(--ds-muted);font-size:9.5px}.calendar-v4 .calendar-inbox-actions{margin:0;padding:9px 11px 0;border-top:1px solid var(--ds-border);background:var(--ds-surface-soft)}.calendar-v4 .calendar-inbox-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:7px;padding:8px 10px 10px;background:var(--ds-surface-soft)}.calendar-v4 .calendar-inbox-item{min-width:0;min-height:47px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface);padding:5px 6px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}.calendar-v4 .calendar-inbox-res strong{font-size:10.5px}.calendar-v4 .calendar-inbox-res small{margin-top:2px;font-size:9px}
.room-planner-layout{display:grid;grid-template-columns:minmax(0,1fr) 356px;gap:12px;min-width:0;align-items:start}.calendar-v4.calendar-inspector-hidden .room-planner-layout{grid-template-columns:minmax(0,1fr)}.calendar-board{min-width:0;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface);overflow:hidden;box-shadow:0 4px 18px rgb(28 43 35 / .045)}.calendar-board-top{height:42px;padding:0 11px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface-soft);display:flex;align-items:center;gap:12px}.calendar-board-context{display:flex;align-items:center;gap:7px;min-width:max-content}.calendar-board-context strong{font-size:10.5px}.calendar-board-context span{color:var(--ds-muted);font-size:9.5px}.calendar-legend-menu{position:relative;margin-left:auto}.calendar-legend-menu>summary{list-style:none;cursor:pointer;color:var(--ds-muted);font-size:9.5px;font-weight:700}.calendar-legend-menu>summary:hover{color:var(--ds-ink)}.calendar-legend-menu .calendar-legend-v2{position:absolute;right:0;top:calc(100% + 9px);z-index:50;width:max-content;max-width:min(720px,80vw);border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-surface);padding:10px 11px;box-shadow:var(--shadow-md)}.calendar-legend-v2{gap:11px;font-size:9.5px}.calendar-legend-v2 i{width:9px;height:9px}.calendar-help{color:var(--ds-faint);font-size:8.5px;white-space:nowrap}.calendar-scroll{overflow:auto;max-width:100%;max-height:calc(100vh - 278px);min-height:420px;overscroll-behavior:contain;scrollbar-gutter:stable;background:var(--ds-surface)}
.calendar-head{grid-template-columns:var(--calendar-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min,72px),1fr));min-width:calc(var(--calendar-room-rail) + var(--calendar-days) * var(--calendar-cell-min,72px))}.calendar-row{grid-template-columns:var(--calendar-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min,72px),1fr));min-width:calc(var(--calendar-room-rail) + var(--calendar-days) * var(--calendar-cell-min,72px))}.calendar-head{position:sticky;top:0;z-index:15;height:55px;background:var(--ds-surface);box-shadow:0 1px 0 var(--ds-border)}.calendar-room-head{position:sticky;left:0;z-index:19;min-height:55px;border-right:1px solid var(--ds-border);background:var(--ds-surface);padding:9px 13px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-transform:none;letter-spacing:0;box-shadow:8px 0 18px -20px rgb(17 30 23 / .55)}.calendar-room-head span{color:var(--ds-ink);font-size:10.5px;font-weight:800}.calendar-room-head small{margin-top:2px;color:var(--ds-faint);font-size:8.5px;font-weight:650}.calendar-day{position:relative;min-height:55px;padding:6px 4px;border:0;border-right:1px solid var(--ds-border);border-radius:0;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;place-content:center;column-gap:4px;background:var(--ds-surface);color:var(--ds-muted);cursor:pointer}.calendar-day small{grid-column:1/-1;text-transform:uppercase;font-size:8.5px;letter-spacing:.045em;font-weight:720}.calendar-day strong{font-size:15px;line-height:1;color:var(--ds-ink-secondary);font-variant-numeric:tabular-nums}.calendar-day em{align-self:end;font-size:8px;font-style:normal;color:var(--ds-faint)}.calendar-day.weekend{background:#FAFBFA}.calendar-day:hover{background:var(--ds-surface-hover)}.calendar-day.today{background:var(--ds-primary-soft);color:var(--ds-primary)}.calendar-day.today strong{color:var(--ds-primary)}.calendar-day.today:after{content:'';position:absolute;left:20%;right:20%;bottom:0;height:2px;border-radius:3px;background:var(--ds-primary)}.calendar-day.today span{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);font-size:6px;font-weight:900;letter-spacing:.08em;color:var(--ds-primary)}.calendar-day.calendar-selected{z-index:2;background:color-mix(in srgb,var(--ds-primary-soft) 88%,#fff);box-shadow:inset 0 -3px 0 var(--ds-primary)}
.calendar-room-group{min-width:max-content}.calendar-group-heading{position:sticky;left:0;z-index:13;width:var(--calendar-room-rail);height:34px;border:0;border-right:1px solid var(--ds-border);border-bottom:1px solid var(--ds-border);background:#F4F6F4;color:var(--ds-ink);display:flex;align-items:center;justify-content:space-between;padding:6px 13px;cursor:pointer;text-align:left;box-shadow:8px 0 18px -20px rgb(17 30 23 / .55)}.calendar-group-heading:hover{background:#EDF1EE}.calendar-group-heading span{display:flex;align-items:center;gap:6px;font-size:9.5px;font-weight:820;text-transform:uppercase;letter-spacing:.055em}.calendar-group-heading span i{width:12px;color:var(--ds-faint);font-style:normal;font-size:13px;line-height:1}.calendar-group-heading b{font-size:8.5px;color:var(--ds-muted);border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface);padding:2px 6px}.calendar-row{min-height:62px;background:var(--ds-surface)}.calendar-row:hover{background:#FBFCFB}.calendar-room{position:sticky;left:0;z-index:9;min-height:61px;padding:8px 10px 8px 13px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;background:inherit;border:0;border-right:1px solid var(--ds-border);color:inherit;text-align:left;cursor:pointer;box-shadow:8px 0 18px -20px rgb(17 30 23 / .55)}.calendar-room:hover{background:var(--ds-surface-hover)}.calendar-room-identity{display:flex;align-items:center;gap:9px;min-width:0}.calendar-room-number{min-width:42px;color:var(--ds-ink);font-size:16px;font-weight:780;letter-spacing:-.02em}.calendar-room-main{min-width:0}.calendar-room-main strong{display:block;max-width:106px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ds-ink-secondary);font-size:10.5px;font-weight:720}.calendar-room-main small{display:block;margin-top:2px;color:var(--ds-faint);font-size:8.5px;white-space:nowrap}.calendar-room-status{display:inline-flex;align-items:center;gap:5px;min-height:24px;max-width:88px;margin:0;border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface-soft);padding:3px 7px;color:var(--ds-muted);font-size:8.5px;font-weight:760;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-room-status i{width:7px;height:7px;border-radius:999px;background:currentColor;flex:0 0 auto}.calendar-cell{position:relative;min-height:61px;background:transparent;border-right:1px solid color-mix(in srgb,var(--ds-border) 85%,transparent);transition:background-color .08s ease}.calendar-cell.weekend{background:#FCFDFC}.calendar-cell.today{background:color-mix(in srgb,var(--ds-primary-soft) 38%,transparent)}.calendar-cell.calendar-selectable:hover{background:color-mix(in srgb,var(--ds-primary-soft) 58%,transparent)}.calendar-cell.calendar-selectable:hover:after{content:'+';position:absolute;inset:0;display:grid;place-items:center;color:color-mix(in srgb,var(--ds-primary) 52%,transparent);font-size:18px;font-weight:450;pointer-events:none}.calendar-cell.calendar-blocked{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-danger) 7%,#fff) 0 7px,#fff 7px 14px);cursor:not-allowed}.calendar-cell.calendar-soft-warning{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-warning) 5%,#fff) 0 8px,#fff 8px 16px)}.calendar-cell.selecting:after{display:none}.calendar-cell.calendar-conflict-preview:after{display:none}.calendar-cell.calendar-move-target:after{display:none}.calendar-row[data-calendar-flags~="attention"] .calendar-room{box-shadow:inset 3px 0 0 var(--ds-danger),8px 0 18px -20px rgb(17 30 23 / .55)}.calendar-row[data-calendar-flags~="warning"]:not([data-calendar-flags~="attention"]) .calendar-room{box-shadow:inset 3px 0 0 var(--ds-warning),8px 0 18px -20px rgb(17 30 23 / .55)}.calendar-row[data-calendar-flags~="turnover"] .calendar-room-number:after{content:'↻';margin-left:5px;color:var(--ds-info);font-size:9px;vertical-align:2px}
.calendar-res{z-index:5;grid-row:1;align-self:center;min-width:0;height:42px;margin:0 4px;border:1px solid transparent;border-radius:8px;padding:5px 8px 5px 9px;overflow:hidden;text-align:left;cursor:pointer;display:flex;align-items:center;gap:6px;box-shadow:0 1px 2px rgb(25 38 31 / .06);transition:transform .11s ease,box-shadow .11s ease,filter .11s ease}.calendar-res:hover{z-index:8;transform:translateY(-1px);filter:none;box-shadow:0 6px 16px rgb(25 38 31 / .12)}.calendar-res-copy{display:block;min-width:0;flex:1}.calendar-res-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-res-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-res-copy strong{font-size:10.5px;line-height:1.2;font-weight:760}.calendar-res-copy small{margin-top:3px;font-size:8.5px;line-height:1.1;opacity:.78;font-variant-numeric:tabular-nums}.calendar-res-dot{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:999px;background:currentColor;vertical-align:1px;opacity:.85}.calendar-res-flags{display:flex;gap:3px;align-items:center;flex:0 0 auto}.calendar-res-flag{display:inline-flex;align-items:center;justify-content:center;min-height:17px;border-radius:4px;padding:1px 4px;background:color-mix(in srgb,currentColor 9%,transparent);font-size:6.5px;font-weight:900;letter-spacing:.035em}.calendar-res[data-span="1"]{padding-left:7px;padding-right:6px}.calendar-res[data-span="1"] .calendar-res-copy small{display:none}.calendar-res[data-span="1"] .calendar-res-flags{display:none}.calendar-res.confirmed{background:#F1EFF7;border-color:#D7D2E3;color:#5E5676;box-shadow:inset 3px 0 0 #6A6287,0 1px 2px rgb(25 38 31 / .06)}.calendar-res.checked_in{background:#E7F1F2;border-color:#C3D8DA;color:#285E66;box-shadow:inset 3px 0 0 #2E6A73,0 1px 2px rgb(25 38 31 / .06)}.calendar-res.tentative{background:#FBF2E3;border-color:#E7CFA8;color:#956216;box-shadow:inset 3px 0 0 #B4771D,0 1px 2px rgb(25 38 31 / .06)}.calendar-res.checked_out{opacity:.5!important;background:#F2F3F2!important;border-color:#D7DAD8!important;color:#707A74!important;box-shadow:inset 3px 0 0 #8B938E!important}.calendar-res.calendar-selected{z-index:10;outline:2px solid var(--ds-primary);outline-offset:1px;box-shadow:0 7px 18px rgb(14 122 67 / .15)}.calendar-res.calendar-history-segment{opacity:.43;border-style:dotted;box-shadow:none}.calendar-res.calendar-scheduled-segment{opacity:.93;border:1px dashed color-mix(in srgb,var(--ds-primary) 55%,var(--ds-border))!important;background:color-mix(in srgb,var(--ds-primary-soft) 62%,#fff)!important;color:var(--ds-primary)!important;box-shadow:none}.calendar-res.released-tail{opacity:.2!important;border:1px dashed color-mix(in srgb,var(--ds-muted) 48%,transparent)!important;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-muted) 6%,#fff) 0 6px,transparent 6px 12px)!important;color:var(--ds-muted)!important;pointer-events:none!important;box-shadow:none!important}.calendar-inventory-block{grid-row:1;align-self:center;z-index:4;height:42px;margin:0 4px;border:1px solid color-mix(in srgb,var(--ds-danger) 37%,var(--ds-border));border-radius:8px;padding:5px 8px;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-danger) 9%,#fff) 0 7px,color-mix(in srgb,var(--ds-danger) 3%,#fff) 7px 14px);color:var(--ds-danger);overflow:hidden;text-align:left}.calendar-inventory-block strong{font-size:9px}.calendar-inventory-block small{margin-top:2px;font-size:8px}.calendar-inventory-block.soft-oos{border-style:dashed;border-color:color-mix(in srgb,var(--ds-warning) 48%,var(--ds-border));background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-warning) 8%,#fff) 0 8px,#fff 8px 16px);color:var(--ds-warning)}
.calendar-inspector{position:sticky;top:126px;max-height:calc(100vh - 146px);overflow:auto;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface);box-shadow:0 5px 20px rgb(25 38 31 / .055);scrollbar-gutter:stable}.calendar-inspector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:16px 16px 13px;border-bottom:1px solid var(--ds-border);background:linear-gradient(180deg,#fff,#FAFBFA)}.calendar-inspector-head .eyebrow{margin-bottom:4px;font-size:9px}.calendar-inspector-head h2{margin:0;color:var(--ds-ink);font-size:19px;line-height:1.18;letter-spacing:-.03em}.calendar-inspector-head p{margin:4px 0 0;color:var(--ds-muted);font-size:10.5px;line-height:1.45}.calendar-health-dot{width:10px;height:10px;margin-top:5px}.calendar-inspector-body{display:grid;gap:14px;padding:14px 16px}.calendar-inspector-body section{padding-top:12px;border-top:1px solid var(--ds-border)}.calendar-inspector-body section:first-of-type{padding-top:0;border-top:0}.calendar-inspector-body h3{margin:0 0 8px;color:var(--ds-ink-secondary);font-size:9.5px;text-transform:uppercase;letter-spacing:.065em}.calendar-inspector-body p{margin:0;color:var(--ds-muted);font-size:10.5px;line-height:1.55}.calendar-inspector-kpis{display:grid;grid-template-columns:1fr 1fr;gap:7px}.calendar-inspector-kpis>div{min-width:0;padding:9px 10px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-soft)}.calendar-inspector-kpis>div:nth-child(3):last-child{grid-column:1/-1}.calendar-inspector-kpis small{display:block}.calendar-inspector-kpis strong{display:block}.calendar-inspector-kpis small{color:var(--ds-muted);font-size:8.5px;text-transform:uppercase;letter-spacing:.04em}.calendar-inspector-kpis strong{margin-top:3px;color:var(--ds-ink);font-size:10.5px;line-height:1.4;overflow-wrap:anywhere}.calendar-today-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:6px;align-items:center}.calendar-today-flow>div{min-width:0;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-soft);padding:9px 6px;text-align:center}.calendar-today-flow>div span{color:var(--ds-muted);font-size:8px}.calendar-today-flow>div strong{margin-top:2px;font-size:17px}.calendar-inspector-list>div{min-height:31px;padding:5px 6px}.calendar-inspector-list span{font-size:9.5px}.calendar-inspector-list strong{font-size:10px}.calendar-inspector-callout{padding:10px!important}.calendar-inspector-tip{padding:10px!important}.calendar-inspector-callout strong{font-size:10px}.calendar-inspector-tip strong{font-size:10px}.calendar-inspector-tip p{font-size:9.5px}.calendar-inspector-callout p{font-size:9.5px}.calendar-inspector-actions{position:sticky;bottom:0;z-index:3;display:flex;gap:6px;flex-wrap:wrap;padding:10px 11px;border-top:1px solid var(--ds-border);background:rgb(255 255 255 / .96);backdrop-filter:blur(9px)}.calendar-route{position:relative;display:grid;gap:0;padding-left:2px}.calendar-route-step{position:relative;display:grid;grid-template-columns:16px minmax(0,1fr);gap:7px;min-height:42px}.calendar-route-step:not(:last-child):before{content:'';position:absolute;left:5px;top:13px;bottom:-6px;width:1px;background:var(--ds-border-strong)}.calendar-route-marker{position:relative;z-index:1;width:11px;height:11px;margin-top:3px;border:3px solid var(--ds-surface);border-radius:999px;background:var(--ds-info);box-shadow:0 0 0 1px var(--ds-border-strong)}.calendar-route-step.planned .calendar-route-marker{background:var(--ds-primary)}.calendar-route-step.history .calendar-route-marker{background:var(--ds-faint)}.calendar-route-step strong{display:block}.calendar-route-step small{display:block}.calendar-route-step strong{font-size:10.5px}.calendar-route-step small{margin-top:2px;color:var(--ds-muted);font-size:9px}.calendar-route-empty{border:1px dashed var(--ds-border-strong);border-radius:8px;padding:10px;color:var(--ds-muted);font-size:9.5px}.calendar-day-kpis{gap:7px}.calendar-day-kpis>div{padding:8px 9px}.calendar-day-kpis small{font-size:8px}.calendar-day-kpis strong{font-size:16px}.calendar-day-res{min-height:38px;padding:7px 3px}.calendar-day-note{min-height:38px;padding:7px 3px}.calendar-day-res strong{font-size:9.5px}.calendar-day-note strong{font-size:9.5px}.calendar-day-res small{font-size:8.5px}.calendar-day-note span{font-size:8.5px}
.calendar-row.calendar-row-compact{min-height:49px}.calendar-row.calendar-row-compact .calendar-room{min-height:48px}.calendar-row.calendar-row-compact .calendar-cell{min-height:48px}.calendar-row.calendar-row-compact .calendar-res{height:34px}.calendar-row.calendar-row-compact .calendar-inventory-block{height:34px}.calendar-row.calendar-row-compact .calendar-room-number{font-size:14px}.calendar-row.calendar-row-compact .calendar-res-copy strong{font-size:9.5px}.calendar-row.calendar-row-compact .calendar-res-copy small{display:none}.calendar-row.calendar-row-compact .calendar-room-status{min-height:21px;font-size:7.8px}
.calendar-conflict-summary{gap:8px}.calendar-conflict-summary>div{padding:10px 11px}.calendar-conflict-summary small{font-size:8.5px}.calendar-conflict-summary strong{font-size:19px}.calendar-conflict-columns{gap:10px}.calendar-conflict-columns>section{border-radius:10px;padding:11px}.calendar-conflict-columns>section h3{font-size:10px}.calendar-conflict-item{min-height:44px;padding:7px 3px}.calendar-conflict-item strong{font-size:9.5px}.calendar-conflict-item small{font-size:8.5px}.calendar-conflict-policy strong{font-size:9.5px}.calendar-conflict-policy span{font-size:9.5px}
@media(max-width:1420px){.calendar-v4{--calendar-room-rail:224px}.room-planner-layout{grid-template-columns:minmax(0,1fr) 320px}.calendar-room-number{min-width:38px;font-size:15px}.calendar-room-main strong{max-width:86px}.calendar-shell-head .calendar-title>p{max-width:680px}.calendar-help{display:none}}
@media(max-width:1180px){.calendar-control-deck{flex-wrap:wrap}.calendar-search-v2{order:5;max-width:none;flex:1 1 300px}.calendar-view-group{margin-left:0}.calendar-statusbar .calendar-stat:first-of-type{margin-left:6px}.calendar-inspector{top:179px;max-height:calc(100vh - 199px)}}
@media(max-width:1020px){.room-planner-layout{grid-template-columns:1fr}.calendar-inspector{position:relative;top:auto;max-height:none}.calendar-v4:not(.calendar-inspector-hidden) .calendar-inspector{display:block}.calendar-control-deck{position:relative;top:auto}.calendar-inspector-toggle{display:none}.calendar-board{order:1}.calendar-inspector{order:2}.calendar-scroll{max-height:60vh}.calendar-statusbar .calendar-stat:first-of-type{margin-left:0}}
@media(max-width:760px){.calendar-v4{--calendar-room-rail:170px}.calendar-shell-head{display:grid;align-items:start}.calendar-title-line h1{font-size:24px}.calendar-shell-head .calendar-title>p{font-size:11px}.calendar-primary-actions{justify-content:flex-start;flex-wrap:wrap}.calendar-control-deck{display:grid;grid-template-columns:1fr auto;gap:7px}.calendar-nav-group{grid-column:1/-1;padding-right:0;border-right:0}.calendar-search-v2{grid-column:1/-1;order:initial;min-width:100%}.calendar-view-group{justify-content:flex-start}.calendar-filter-menu{justify-self:end}.calendar-filter-popover{position:fixed;left:12px;right:12px;top:132px;width:auto;grid-template-columns:1fr;max-height:70vh;overflow:auto}.calendar-filter-popover .calendar-check{grid-column:auto}.calendar-statusbar{margin-right:-12px;padding-right:12px}.calendar-stat{display:none}.calendar-board-top{padding:0 8px}.calendar-board-context span{display:none}.calendar-head{grid-template-columns:var(--calendar-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min,58px),1fr));min-width:calc(var(--calendar-room-rail) + var(--calendar-days) * var(--calendar-cell-min,58px))}.calendar-row{grid-template-columns:var(--calendar-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min,58px),1fr));min-width:calc(var(--calendar-room-rail) + var(--calendar-days) * var(--calendar-cell-min,58px))}.calendar-group-heading{width:var(--calendar-room-rail)}.calendar-room{padding:6px 7px}.calendar-room-number{min-width:36px;font-size:14px}.calendar-room-main{display:none}.calendar-room-status{max-width:76px;font-size:7.5px}.calendar-day{min-height:50px}.calendar-cell{min-height:54px}.calendar-room{min-height:54px}.calendar-row{min-height:54px}.calendar-res{height:36px}.calendar-inventory-block{height:36px}.calendar-res-copy strong{font-size:9.5px}.calendar-res-copy small{display:none}.calendar-v4 .calendar-inbox-body{grid-template-columns:1fr}.calendar-legend-menu .calendar-legend-v2{right:-4px;max-width:92vw}.calendar-inline-notice{display:none}}

/* ========================================================================== 
   v15.54 — exact classic Room Timeline restoration from VESTNAS v15.9.112.
   The visual hierarchy intentionally removes Room Planner Pro dashboard chrome.
   ========================================================================== */
.calendar-v112{--classic-room-rail:144px;--classic-row-height:52px;display:flex;min-height:calc(100vh - 122px);flex-direction:column;gap:10px;min-width:0}
.calendar-v112 .calendar-classic-page-head{margin-bottom:0;align-items:flex-end}.calendar-v112 .calendar-classic-page-head h1{margin-bottom:3px}.calendar-v112 .calendar-classic-page-head p{max-width:820px;margin:0;color:var(--ds-muted);font-size:11px;line-height:1.45}
.classic-calendar-controls{position:relative;z-index:16;display:flex;align-items:center;gap:8px;min-height:40px}.classic-calendar-nav{display:flex;align-items:center;gap:4px}.classic-calendar-nav .icon-btn{width:34px;height:34px;min-height:34px}.classic-calendar-date{display:flex;align-items:center;gap:5px;height:34px;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface);padding:0 7px;color:var(--ds-muted)}.classic-calendar-date input{width:118px;min-width:0;border:0!important;background:transparent!important;padding:0!important;font-size:10.5px;box-shadow:none!important}.classic-calendar-search{display:flex;align-items:center;gap:6px;width:min(360px,38vw);height:34px;margin-left:auto;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface);padding:0 9px;color:var(--ds-muted)}.classic-calendar-search input{width:100%;min-width:0;border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important;font-size:10.5px}.classic-calendar-search:focus-within{border-color:var(--ds-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--ds-primary) 10%,transparent)}.classic-calendar-date:focus-within{border-color:var(--ds-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--ds-primary) 10%,transparent)}
.classic-calendar-settings{position:relative}.classic-calendar-settings>summary{list-style:none;display:grid;place-items:center;width:34px;height:34px}.classic-calendar-settings>summary::-webkit-details-marker{display:none}.classic-calendar-settings-pop{position:absolute;right:0;top:calc(100% + 7px);z-index:80;width:270px;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface);padding:10px;box-shadow:var(--shadow-md);display:grid;gap:8px}.classic-calendar-settings-pop label{display:grid;gap:4px;color:var(--ds-muted);font-size:9px;font-weight:650}.classic-calendar-settings-pop select{width:100%;font-size:10px}.classic-calendar-zoom{display:grid;grid-template-columns:1fr auto 48px auto;gap:5px;align-items:center;color:var(--ds-muted);font-size:9px}.classic-calendar-zoom output{text-align:center;font-variant-numeric:tabular-nums}
.calendar-v112 .classic-calendar-panel{display:flex;min-height:0;flex:1;flex-direction:column;overflow:hidden;padding:0;border-radius:9px}.classic-calendar-topline{display:flex;min-height:34px;align-items:center;gap:12px;border-bottom:1px solid var(--ds-border);padding:5px 9px;background:var(--ds-surface);font-size:9.5px}.classic-calendar-topline>strong{margin-left:auto;color:var(--ds-muted);font-size:9.5px;font-variant-numeric:tabular-nums}.classic-calendar-legend{display:flex;align-items:center;gap:11px;flex-wrap:wrap;color:var(--ds-muted);font-size:9px}.classic-calendar-legend span{display:inline-flex;align-items:center;gap:4px}.classic-calendar-legend i{display:inline-block;width:8px;height:8px;border-radius:3px;border:1px solid transparent}.classic-calendar-legend i.confirmed{background:var(--status-reservation);border-color:var(--status-reservation)}.classic-calendar-legend i.checked_in{background:var(--status-occupied);border-color:var(--status-occupied)}.classic-calendar-legend i.tentative{background:var(--ds-warning);border-color:var(--ds-warning)}.classic-calendar-legend i.checked_out{background:#939995;border-color:#939995}.classic-calendar-legend i.released{background:transparent;border:1px dashed #8b938e}.classic-calendar-legend i.blocked{background:repeating-linear-gradient(135deg,#a98c71 0 2px,transparent 2px 4px);border-color:#a98c71}
.classic-calendar-scroll{position:relative;min-height:420px;flex:1;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:var(--ds-canvas)}
.calendar-v112 .classic-calendar-axis{position:relative;display:grid;grid-template-columns:var(--classic-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min,72px),1fr));min-width:calc(var(--classic-room-rail) + var(--calendar-days) * var(--calendar-cell-min,72px))}.calendar-v112 .calendar-row{position:relative;display:grid;grid-template-columns:var(--classic-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min,72px),1fr));min-width:calc(var(--classic-room-rail) + var(--calendar-days) * var(--calendar-cell-min,72px))}
.classic-calendar-month-axis{position:sticky!important;top:0;z-index:40;height:24px;border-bottom:1px solid var(--ds-border);background:color-mix(in srgb,var(--ds-surface-soft) 82%,var(--ds-surface))}.classic-calendar-day-axis{position:sticky!important;top:24px;z-index:39;height:32px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface)}.classic-calendar-room-axis{position:sticky;left:0;z-index:50;grid-column:1;grid-row:1;display:flex;align-items:center;border-right:1px solid var(--ds-border);background:inherit;padding:0 10px;color:var(--ds-muted);font-size:10px;font-weight:650}.classic-calendar-room-axis small{font-size:9px;font-weight:600}.classic-calendar-month{grid-row:1;display:flex;align-items:center;justify-content:center;border-right:1px solid color-mix(in srgb,var(--ds-border) 60%,transparent);padding:0 4px;color:var(--ds-muted);font-size:10px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}.classic-calendar-day{grid-row:1;display:flex;align-items:center;justify-content:center;gap:4px;border:0;border-right:1px solid color-mix(in srgb,var(--ds-border) 62%,transparent);background:var(--ds-surface);color:var(--ds-muted);font:inherit;cursor:pointer}.classic-calendar-day small{font-size:9px;font-weight:500;text-transform:lowercase}.classic-calendar-day strong{font-size:10.5px;font-variant-numeric:tabular-nums}.classic-calendar-day.weekend:not(.today){background:color-mix(in srgb,var(--ds-surface-soft) 55%,var(--ds-surface));color:color-mix(in srgb,var(--ds-muted) 68%,transparent)}.classic-calendar-day.today{background:color-mix(in srgb,var(--ds-primary) 8%,var(--ds-surface));color:var(--ds-primary);font-weight:800}
.classic-calendar-group{min-width:max-content}.classic-calendar-group-label{position:sticky;left:0;z-index:23;display:flex;width:var(--classic-room-rail);height:24px;align-items:center;justify-content:space-between;border-right:1px solid var(--ds-border);border-bottom:1px solid var(--ds-border);background:var(--ds-surface-soft);padding:0 9px;color:var(--ds-muted);font-size:8.5px;text-transform:uppercase;letter-spacing:.04em}.classic-calendar-group-label span{display:grid;min-width:17px;height:17px;place-items:center;border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface);font-size:8px}
.calendar-v112 .calendar-row{min-height:var(--classic-row-height);height:var(--classic-row-height);border-bottom:1px solid var(--ds-border);background:var(--ds-canvas);transition:background .08s ease}.calendar-v112 .calendar-row:hover{background:var(--ds-surface)}.calendar-v112 .calendar-row[hidden]{display:none!important}.calendar-v112 .calendar-room{position:sticky;left:0;z-index:25;grid-column:1;grid-row:1;display:flex;width:var(--classic-room-rail);min-width:var(--classic-room-rail);height:var(--classic-row-height);align-items:center;justify-content:space-between;gap:5px;border:0;border-right:1px solid var(--ds-border);background:var(--ds-surface);padding:6px 8px;text-align:left;color:inherit;cursor:pointer}.calendar-v112 .calendar-room>span{display:grid;min-width:0;gap:2px}.calendar-v112 .calendar-room strong{color:var(--ds-ink-secondary);font-size:11px;line-height:1.1;font-weight:750}.calendar-v112 .calendar-room small{max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ds-muted);font-size:8.5px}.classic-room-state{display:inline-flex;max-width:58px;min-height:17px;align-items:center;border:1px solid var(--ds-border);border-radius:5px;padding:1px 4px;background:var(--ds-surface-soft);color:var(--ds-muted);font-size:7px;font-style:normal;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.classic-room-state.hk-inspected{border-color:color-mix(in srgb,var(--ds-success) 30%,var(--ds-border));background:color-mix(in srgb,var(--ds-success) 8%,var(--ds-surface));color:var(--ds-success)}.classic-room-state.hk-occupied{border-color:color-mix(in srgb,var(--ds-info) 30%,var(--ds-border));background:color-mix(in srgb,var(--ds-info) 8%,var(--ds-surface));color:var(--ds-info)}.classic-room-state.hk-dirty{border-color:color-mix(in srgb,var(--ds-danger) 30%,var(--ds-border));background:color-mix(in srgb,var(--ds-danger) 7%,var(--ds-surface));color:var(--ds-danger)}.classic-room-state.hk-out_of_order{border-color:color-mix(in srgb,var(--ds-danger) 30%,var(--ds-border));background:color-mix(in srgb,var(--ds-danger) 7%,var(--ds-surface));color:var(--ds-danger)}.classic-room-state.hk-cleaning{border-color:color-mix(in srgb,var(--ds-warning) 30%,var(--ds-border));background:color-mix(in srgb,var(--ds-warning) 7%,var(--ds-surface));color:var(--ds-warning)}.classic-room-state.hk-out_of_service{border-color:color-mix(in srgb,var(--ds-warning) 30%,var(--ds-border));background:color-mix(in srgb,var(--ds-warning) 7%,var(--ds-surface));color:var(--ds-warning)}
.calendar-v112 .calendar-cell{grid-row:1;min-height:var(--classic-row-height);height:var(--classic-row-height);border-right:1px solid color-mix(in srgb,var(--ds-border) 58%,transparent);background:transparent;cursor:crosshair;user-select:none}.calendar-v112 .calendar-cell.weekend:not(.today){background:color-mix(in srgb,var(--ds-surface-soft) 35%,transparent)}.calendar-v112 .calendar-cell.today{background:color-mix(in srgb,var(--ds-primary) 4%,transparent)}.calendar-v112 .calendar-cell.calendar-blocked{cursor:not-allowed;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-danger) 5%,transparent) 0 6px,color-mix(in srgb,var(--ds-danger) 10%,transparent) 6px 12px)}.calendar-v112 .calendar-cell.calendar-soft-warning{box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--ds-warning) 45%,transparent)}.calendar-v112 .calendar-cell.selecting{background:color-mix(in srgb,var(--ds-primary) 13%,transparent)!important}.calendar-v112 .calendar-cell.calendar-conflict-preview{background:color-mix(in srgb,var(--ds-danger) 15%,transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ds-danger) 46%,transparent)}.calendar-v112 .calendar-cell.calendar-move-target{background:color-mix(in srgb,var(--ds-success) 12%,transparent)!important}
.calendar-v112 .calendar-res{position:relative;z-index:5;grid-row:1;align-self:center;display:flex;min-width:0;height:39px;align-items:center;margin:0 3px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-canvas);padding:4px 8px 4px 12px;overflow:hidden;text-align:left;color:var(--ds-muted);cursor:pointer;box-shadow:0 1px 2px rgba(20,30,26,.04);transition:filter .08s ease,transform .08s ease}.calendar-v112 .calendar-res:before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--ds-border-strong)}.calendar-v112 .calendar-res:hover{z-index:8;transform:none;filter:brightness(.985);box-shadow:0 2px 5px rgba(20,30,26,.08)}.calendar-v112 .calendar-res-copy{display:block;min-width:0;flex:1}.calendar-v112 .calendar-res-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-v112 .calendar-res-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-v112 .calendar-res-copy strong{color:inherit;font-size:10.5px;line-height:1.2;font-weight:750}.calendar-v112 .calendar-res-copy small{margin-top:2px;color:inherit;font-size:7.8px;line-height:1.1;opacity:.76}.calendar-v112 .calendar-res.confirmed{border-color:color-mix(in srgb,var(--ds-success) 55%,var(--ds-border));background:var(--ds-canvas);color:var(--ds-muted)}.calendar-v112 .calendar-res.confirmed:before{background:var(--ds-success)}.calendar-v112 .calendar-res.tentative{border-color:color-mix(in srgb,var(--ds-warning) 55%,var(--ds-border));background:var(--ds-canvas);color:var(--ds-muted)}.calendar-v112 .calendar-res.tentative:before{background:var(--ds-warning)}.calendar-v112 .calendar-res.checked_in{border-color:color-mix(in srgb,var(--ds-primary) 55%,var(--ds-border));background:var(--ds-canvas);color:var(--ds-muted)}.calendar-v112 .calendar-res.checked_in:before{background:var(--ds-primary)}.calendar-v112 .calendar-res.checked_out{z-index:2!important;opacity:.45!important;filter:none!important;background:var(--ds-canvas)!important;color:var(--ds-muted)!important;border-color:var(--ds-border)!important;box-shadow:none!important}.calendar-v112 .calendar-res.calendar-history-segment{z-index:2!important;opacity:.45!important;filter:none!important;background:var(--ds-canvas)!important;color:var(--ds-muted)!important;border-color:var(--ds-border)!important;box-shadow:none!important}.calendar-v112 .calendar-res.checked_out:before{background:var(--ds-border-strong)}.calendar-v112 .calendar-res.calendar-history-segment:before{background:var(--ds-border-strong)}.calendar-v112 .calendar-res.released-tail{z-index:1!important;opacity:.22!important;pointer-events:auto!important;cursor:crosshair!important;border:1px dashed var(--ds-border-strong)!important;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-muted) 4%,var(--ds-canvas)) 0 6px,transparent 6px 12px)!important;color:var(--ds-muted)!important;box-shadow:none!important}.calendar-v112 .calendar-res.released-tail:before{background:transparent}.calendar-v112 .calendar-res.calendar-scheduled-segment{border-style:dashed!important;border-color:color-mix(in srgb,var(--ds-primary) 46%,var(--ds-border))!important;background:var(--ds-canvas)!important;color:var(--ds-muted)!important}.calendar-v112 .calendar-res.calendar-scheduled-segment:before{background:color-mix(in srgb,var(--ds-primary) 55%,transparent)}.calendar-v112 .calendar-res.calendar-assignment-locked{cursor:pointer}.calendar-v112 .calendar-res-lock{margin-left:5px;font-size:8px}.calendar-v112 .calendar-resize-handle{position:absolute;top:0;bottom:0;width:8px;z-index:7;background:transparent;cursor:ew-resize}.calendar-v112 .calendar-resize-handle.start{left:0}.calendar-v112 .calendar-resize-handle.end{right:0}.calendar-v112 .calendar-res.calendar-resizable:hover .calendar-resize-handle{background:color-mix(in srgb,currentColor 9%,transparent)}
.calendar-v112 .calendar-inventory-block{z-index:3;grid-row:1;align-self:center;height:37px;margin:0 3px;border:1px dashed color-mix(in srgb,var(--ds-danger) 45%,var(--ds-border));border-radius:7px;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-danger) 5%,var(--ds-canvas)) 0 6px,color-mix(in srgb,var(--ds-danger) 10%,var(--ds-canvas)) 6px 12px);padding:4px 7px;overflow:hidden;text-align:left;color:var(--ds-danger);pointer-events:auto}.calendar-v112 .calendar-inventory-block.soft-oos{border-color:color-mix(in srgb,var(--ds-warning) 48%,var(--ds-border));background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ds-warning) 4%,var(--ds-canvas)) 0 6px,color-mix(in srgb,var(--ds-warning) 8%,var(--ds-canvas)) 6px 12px);color:var(--ds-warning)}.calendar-v112 .calendar-inventory-block strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7.5px}.calendar-v112 .calendar-inventory-block small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7.5px}
.calendar-v112 .calendar-inline-notice{min-height:18px;margin-left:auto;border-radius:5px;padding:2px 6px;font-size:8.5px}.calendar-v112 .calendar-inline-notice.success{color:var(--ds-success);background:color-mix(in srgb,var(--ds-success) 7%,transparent)}.calendar-v112 .calendar-inline-notice.error{color:var(--ds-danger);background:color-mix(in srgb,var(--ds-danger) 7%,transparent)}
.classic-unassigned{display:grid;grid-template-columns:190px 1fr;gap:12px;align-items:start;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface);padding:8px 10px}.classic-unassigned>div:first-child{display:grid;gap:2px}.classic-unassigned strong{font-size:10px}.classic-unassigned small{color:var(--ds-muted);font-size:8.5px}.classic-unassigned-list{display:flex;gap:5px;flex-wrap:wrap}.classic-unassigned-item{display:inline-flex;gap:3px}
.calendar-dragging .calendar-v112 .calendar-res{pointer-events:none}.calendar-dragging .calendar-v112 .calendar-res.calendar-drag-source{pointer-events:auto}.calendar-dragging .calendar-v112 .calendar-res.calendar-resize-preview{pointer-events:auto}.calendar-v112 .calendar-res.calendar-drag-source{opacity:.42!important;outline:1px dashed var(--ds-primary)}.calendar-v112 .calendar-res.calendar-resize-preview{outline:1px dashed var(--ds-primary);outline-offset:1px}
@media(max-width:900px){.calendar-v112{--classic-room-rail:132px}.classic-calendar-search{width:min(280px,35vw)}.calendar-v112 .calendar-room small{max-width:66px}.classic-calendar-topline{align-items:flex-start;flex-wrap:wrap}.classic-calendar-topline>strong{margin-left:0}.calendar-v112 .calendar-classic-page-head p{display:none}}
@media(max-width:680px){.calendar-v112{--classic-room-rail:118px;min-height:calc(100vh - 96px)}.classic-calendar-controls{display:grid;grid-template-columns:1fr auto}.classic-calendar-search{grid-column:1/-1;grid-row:2;width:100%}.classic-calendar-nav{min-width:0}.classic-calendar-nav .classic-calendar-date{display:none}.calendar-v112 .calendar-classic-page-head{display:flex}.calendar-v112 .calendar-classic-page-head .eyebrow{display:none}.calendar-v112 .calendar-classic-page-head h1{font-size:22px}.calendar-v112 .calendar-room{padding:5px}.calendar-v112 .calendar-room small{display:none}.classic-room-state{max-width:52px;font-size:6.5px}.classic-calendar-legend span:nth-child(n+5){display:none}.classic-unassigned{grid-template-columns:1fr}.classic-calendar-scroll{min-height:360px}}

/* ========================================================================== 
   v15.55.0 — v15.9.112 screenshot-exact Room Calendar visual parity.
   Keeps the current PHP/MySQL lifecycle engine; restores the original workspace geometry.
   ========================================================================== */
.calendar-v112-reference{
  --classic-room-rail:144px;
  --classic-row-height:52px;
  display:flex;
  min-height:calc(100vh - 118px);
  flex-direction:column;
  gap:14px;
  min-width:0;
}
.calendar-reference-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin:0;
  min-width:0;
}
.calendar-reference-copy{min-width:0;flex:1}
.calendar-reference-copy h1{
  margin:0;
  color:var(--ds-ink);
  font-size:clamp(1.55rem,1.85vw,1.9rem);
  font-weight:720;
  letter-spacing:-.038em;
  line-height:1.08;
  text-wrap:balance;
}
.calendar-reference-hints{
  display:flex;
  margin-top:7px;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 7px;
  max-width:66rem;
  color:var(--ds-muted);
  font-size:13px;
  line-height:1.55;
}
.calendar-reference-hint{display:inline-flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}
.calendar-reference-hint>svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.calendar-reference-dot{color:var(--ds-faint)}
.calendar-reference-shortcuts{flex-basis:100%;gap:5px}
.calendar-reference-shortcuts kbd{
  min-width:26px;
  height:25px;
  display:inline-grid;
  place-items:center;
  border:1px solid var(--ds-border);
  border-radius:6px;
  background:var(--ds-surface);
  padding:0 7px;
  color:var(--ds-muted);
  font:600 12px/1 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  box-shadow:0 1px 0 rgb(17 32 24 / .02);
}

.calendar-reference-new{
  flex:0 0 auto;
  min-height:44px;
  padding:0 18px;
  border-radius:8px;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
.calendar-reference-toolbar{
  display:flex;
  min-width:0;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.calendar-reference-toolbar-right{
  display:flex;
  min-width:0;
  flex:1;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.calendar-reference-search{
  display:flex;
  width:min(430px,42vw);
  min-width:220px;
  height:44px;
  align-items:center;
  gap:8px;
  border:1px solid var(--ds-border);
  border-radius:8px;
  background:var(--ds-canvas-strong);
  padding:0 12px;
  color:var(--ds-muted);
}
.calendar-reference-search:focus-within{
  border-color:color-mix(in srgb,var(--ds-primary) 45%,var(--ds-border));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ds-primary) 8%,transparent);
}
.calendar-reference-search>span{font-size:17px;line-height:1;opacity:.8}
.calendar-reference-search input{
  width:100%!important;
  min-height:0!important;
  height:40px;
  border:0!important;
  background:transparent!important;
  padding:0!important;
  color:var(--ds-ink-secondary);
  font-size:12px;
  box-shadow:none!important;
  outline:0!important;
}
.calendar-reference-search input::placeholder{color:var(--ds-faint)}
.calendar-row-focus{animation:calendarRoomFocus 1.8s ease-out}
@keyframes calendarRoomFocus{
  0%,35%{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--ds-primary) 58%,transparent);background:color-mix(in srgb,var(--ds-primary) 7%,var(--ds-canvas))}
  100%{box-shadow:inset 0 0 0 0 transparent;background:var(--ds-canvas)}
}

.calendar-reference-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.calendar-reference-nav{
  display:flex;
  height:44px;
  align-items:stretch;
  overflow:hidden;
  border:1px solid var(--ds-border);
  border-radius:8px;
  background:var(--ds-canvas-strong);
}
.calendar-reference-nav>*+*{border-left:1px solid var(--ds-border)!important}
.calendar-reference-nav button{
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--ds-muted);
}.calendar-reference-date{
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--ds-muted);
}
.calendar-reference-nav button:hover{background:var(--ds-surface);color:var(--ds-ink)}.calendar-reference-date:hover{background:var(--ds-surface);color:var(--ds-ink)}
.calendar-reference-nav-btn{width:44px;padding:0;cursor:pointer;font-size:27px;font-weight:300;line-height:1}
.calendar-reference-focus{
  min-width:132px;
  padding:0 18px;
  cursor:pointer;
  color:var(--ds-ink-secondary)!important;
  font-size:13px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
}
.calendar-reference-date{
  position:relative;
  width:52px;
  display:grid;
  place-items:center;
  cursor:pointer;
}
.calendar-reference-date svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}.calendar-reference-settings-btn svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.calendar-reference-date input{
  position:absolute!important;
  inset:0;
  width:100%!important;
  min-height:0!important;
  height:100%;
  opacity:0;
  cursor:pointer;
  padding:0!important;
  border:0!important;
}
.calendar-reference-settings{position:relative}
.calendar-reference-settings>summary::-webkit-details-marker{display:none}
.calendar-reference-settings-btn{
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  list-style:none;
  border:1px solid var(--ds-border);
  border-radius:8px;
  background:var(--ds-canvas-strong);
  color:var(--ds-muted);
  cursor:pointer;
}
.calendar-reference-settings-btn:hover{border-color:var(--ds-border-strong);background:var(--ds-surface-soft);color:var(--ds-ink)}
.calendar-reference-settings .classic-calendar-settings-pop{top:calc(100% + 8px);width:300px;padding:12px}
.calendar-reference-settings .classic-calendar-search{
  width:100%;
  height:38px;
  margin:0;
  display:flex;
  align-items:center;
  gap:7px;
  border:1px solid var(--ds-border);
  border-radius:7px;
  background:var(--ds-surface);
  padding:0 9px;
}
.calendar-reference-settings .classic-calendar-search input{min-height:0!important;height:34px;padding:0!important;border:0!important;box-shadow:none!important}
.calendar-reference-settings-legend{display:grid;gap:6px;border-top:1px solid var(--ds-border);padding-top:8px}
.calendar-reference-settings-legend>strong{font-size:9px;color:var(--ds-muted);text-transform:uppercase;letter-spacing:.08em}
.calendar-reference-settings .classic-calendar-legend{gap:7px;font-size:8.5px}
.calendar-reference-settings .classic-calendar-legend span{white-space:nowrap}
.calendar-v112-reference .calendar-inline-notice{display:inline-flex;min-height:0;margin:0 0 0 3px;padding:1px 5px}
.calendar-v112-reference .calendar-inline-notice:empty{display:none}

.calendar-v112-reference .classic-calendar-panel{
  display:flex;
  min-height:420px;
  flex:1;
  flex-direction:column;
  overflow:hidden;
  padding:0;
  border:1px solid var(--ds-border);
  border-radius:10px;
  background:var(--ds-surface);
  box-shadow:var(--shadow-xs);
}
.calendar-v112-reference .classic-calendar-scroll{
  position:relative;
  min-height:420px;
  flex:1;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  background:var(--ds-canvas);
}
/* The approved reference uses a single 56px day axis. Keep month markup for compatibility, hide it visually. */
.calendar-v112-reference .classic-calendar-month-axis{display:none!important}
.calendar-v112-reference .classic-calendar-day-axis{
  position:sticky!important;
  top:0!important;
  z-index:39;
  height:56px!important;
  border-bottom:1px solid var(--ds-border);
  background:var(--ds-surface);
}
.calendar-v112-reference .classic-calendar-axis{
  position:relative;
  display:grid;
  grid-template-columns:var(--classic-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min,68px),1fr));
  min-width:calc(var(--classic-room-rail) + var(--calendar-days) * var(--calendar-cell-min,68px));
}.calendar-v112-reference .calendar-row{
  position:relative;
  display:grid;
  grid-template-columns:var(--classic-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min,68px),1fr));
  min-width:calc(var(--classic-room-rail) + var(--calendar-days) * var(--calendar-cell-min,68px));
}.calendar-v112-reference .classic-calendar-section-row{
  position:relative;
  display:grid;
  grid-template-columns:var(--classic-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min,68px),1fr));
  min-width:calc(var(--classic-room-rail) + var(--calendar-days) * var(--calendar-cell-min,68px));
}
.calendar-v112-reference .classic-calendar-room-axis{
  position:sticky;
  left:0;
  z-index:50;
  grid-column:1;
  display:flex;
  align-items:center;
  border-right:1px solid var(--ds-border);
  background:var(--ds-surface);
  padding:0 12px;
  color:var(--ds-muted);
  font-size:13px;
  font-weight:650;
}
.calendar-v112-reference .classic-calendar-day{
  grid-row:1;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-right:1px solid color-mix(in srgb,var(--ds-border) 55%,transparent);
  background:var(--ds-surface);
  color:var(--ds-muted);
  cursor:default;
}
.calendar-v112-reference .classic-calendar-day strong{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}
.calendar-v112-reference .classic-calendar-day.weekend:not(.today){background:var(--ds-surface);color:color-mix(in srgb,var(--ds-muted) 50%,transparent)}
.calendar-v112-reference .classic-calendar-day.today{background:color-mix(in srgb,var(--ds-primary) 7%,var(--ds-surface));color:var(--ds-primary)}
.calendar-v112-reference .classic-calendar-day.today strong{font-weight:800}

.calendar-v112-reference .classic-calendar-group{min-width:max-content}
.calendar-v112-reference .classic-calendar-group-label{
  width:auto;
  min-width:calc(var(--classic-room-rail) + var(--calendar-days) * var(--calendar-cell-min,68px));
  padding:0;
  border:0;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.calendar-v112-reference .classic-calendar-group-label.primary{height:24px;background:var(--ds-surface-soft);border-bottom:1px solid var(--ds-border)}
.calendar-v112-reference .classic-calendar-group-label.secondary{height:20px;background:var(--ds-surface);border-bottom:1px solid var(--ds-border)}
.calendar-v112-reference .classic-calendar-section-rail{
  position:sticky;
  left:0;
  z-index:28;
  grid-column:1;
  display:flex;
  height:100%;
  align-items:center;
  border-right:1px solid var(--ds-border);
  background:inherit;
  padding:0 12px;
}
.calendar-v112-reference .classic-calendar-group-label.secondary .classic-calendar-section-rail{padding-left:20px}
.calendar-v112-reference .classic-calendar-section-title{display:flex;min-width:0;align-items:center;gap:8px}
.calendar-v112-reference .classic-calendar-section-title strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--ds-muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.14em;
}
.calendar-v112-reference .classic-calendar-group-label.secondary .classic-calendar-section-title strong{font-size:9px;letter-spacing:.16em}
.calendar-v112-reference .classic-calendar-section-dot{
  display:inline-block;
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:999px;
  background:var(--ds-primary);
}.calendar-v112-reference .classic-room-type-dot{
  display:inline-block;
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:999px;
  background:var(--ds-primary);
}

.calendar-v112-reference .calendar-row{
  min-height:var(--classic-row-height);
  height:var(--classic-row-height);
  border-bottom:1px solid var(--ds-border);
  background:var(--ds-canvas);
  transition:background-color .08s ease;
}
.calendar-v112-reference .calendar-row:hover{background:var(--ds-surface)}
.calendar-v112-reference .calendar-room{
  position:sticky;
  left:0;
  z-index:25;
  grid-column:1;
  grid-row:1;
  display:block;
  width:var(--classic-room-rail);
  min-width:var(--classic-room-rail);
  height:var(--classic-row-height);
  border:0;
  border-right:1px solid var(--ds-border);
  background:var(--ds-surface);
  padding:6px 12px;
  text-align:left;
  color:inherit;
  cursor:pointer;
}
.calendar-v112-reference .classic-room-copy{display:flex;min-width:0;height:100%;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px}
.calendar-v112-reference .classic-room-name{display:flex;min-width:0;align-items:center;gap:8px}
.calendar-v112-reference .classic-room-name strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--ds-ink-secondary);
  font-size:11px;
  line-height:1.1;
  font-weight:750;
}
.calendar-v112-reference .classic-room-state{
  display:inline-flex;
  max-width:92px;
  min-height:20px;
  align-items:center;
  border:1px solid var(--ds-border);
  border-radius:6px;
  padding:2px 6px;
  background:var(--ds-surface);
  color:var(--ds-muted);
  font-size:9px;
  font-style:normal;
  font-weight:700;
  white-space:nowrap;
}
.calendar-v112-reference .classic-room-state.hk-inspected{border-color:var(--ds-success);background:var(--ds-surface);color:var(--ds-success)}
.calendar-v112-reference .classic-room-state.hk-occupied{border-color:var(--ds-info);background:var(--ds-surface);color:var(--ds-info)}
.calendar-v112-reference .classic-room-state.hk-dirty{border-color:var(--ds-warning);background:var(--ds-surface);color:var(--ds-warning)}.calendar-v112-reference .classic-room-state.hk-cleaning{border-color:var(--ds-warning);background:var(--ds-surface);color:var(--ds-warning)}.calendar-v112-reference .classic-room-state.hk-inspection{border-color:var(--ds-warning);background:var(--ds-surface);color:var(--ds-warning)}
.calendar-v112-reference .classic-room-state.hk-out_of_order{border-color:var(--ds-danger);background:var(--ds-surface);color:var(--ds-danger)}
.calendar-v112-reference .classic-room-state.hk-out_of_service{border-color:var(--ds-warning);background:var(--ds-surface);color:var(--ds-warning)}

.calendar-v112-reference .calendar-cell{
  grid-row:1;
  min-height:var(--classic-row-height);
  height:var(--classic-row-height);
  border-right:1px solid color-mix(in srgb,var(--ds-border) 48%,transparent);
  background:transparent;
  cursor:crosshair;
  user-select:none;
}
.calendar-v112-reference .calendar-cell.weekend:not(.today){background:color-mix(in srgb,var(--ds-surface-soft) 22%,transparent)}
.calendar-v112-reference .calendar-cell.today{background:color-mix(in srgb,var(--ds-primary) 3%,transparent)}
.calendar-v112-reference .calendar-cell.calendar-selectable:hover{background:color-mix(in srgb,var(--ds-primary) 6%,transparent)}

.calendar-v112-reference .calendar-res{
  position:relative;
  z-index:5;
  grid-row:1;
  align-self:center;
  display:flex;
  min-width:0;
  height:46px;
  align-items:center;
  margin:0 3px;
  border:1px solid var(--ds-border);
  border-radius:8px;
  background:var(--ds-canvas);
  padding:14px 8px 4px 12px;
  overflow:hidden;
  text-align:left;
  color:var(--ds-muted);
  cursor:pointer;
  box-shadow:0 1px 2px rgb(20 30 26 / .04);
}
.calendar-v112-reference .calendar-res:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--ds-border-strong)}
.calendar-v112-reference .calendar-res-status{
  position:absolute;
  top:3px;
  right:5px;
  max-width:70%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  border:1px solid var(--ds-border);
  border-radius:5px;
  background:rgb(255 255 255 / .86);
  padding:1px 5px;
  color:var(--ds-muted);
  font-size:8.5px;
  font-weight:750;
  line-height:1.25;
}
.calendar-v112-reference .calendar-res-copy{display:block;min-width:0;flex:1}
.calendar-v112-reference .calendar-res-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-v112-reference .calendar-res-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-v112-reference .calendar-res-copy strong{font-size:10px;line-height:1.1;font-weight:750}
.calendar-v112-reference .calendar-res-copy small{margin-top:2px;font-size:7.5px;line-height:1.1;opacity:.72}
.calendar-v112-reference .calendar-res.confirmed{border-color:color-mix(in srgb,var(--ds-success) 48%,var(--ds-border));color:var(--ds-muted)}
.calendar-v112-reference .calendar-res.confirmed:before{background:var(--ds-success)}
.calendar-v112-reference .calendar-res.tentative{border-color:color-mix(in srgb,var(--ds-warning) 48%,var(--ds-border));color:var(--ds-muted)}
.calendar-v112-reference .calendar-res.tentative:before{background:var(--ds-warning)}
.calendar-v112-reference .calendar-res.checked_in{border-color:color-mix(in srgb,var(--ds-primary) 48%,var(--ds-border));color:var(--ds-muted)}
.calendar-v112-reference .calendar-res.checked_in:before{background:var(--ds-primary)}
.calendar-v112-reference .calendar-res.checked_out{opacity:.34!important;background:var(--ds-canvas)!important;color:var(--ds-muted)!important;border-color:var(--ds-border)!important;box-shadow:none!important}.calendar-v112-reference .calendar-res.calendar-history-segment{opacity:.34!important;background:var(--ds-canvas)!important;color:var(--ds-muted)!important;border-color:var(--ds-border)!important;box-shadow:none!important}
.calendar-v112-reference .calendar-res.released-tail{opacity:.20!important;pointer-events:auto!important;cursor:crosshair!important;border-style:dashed!important;box-shadow:none!important}
.calendar-v112-reference .calendar-res.calendar-scheduled-segment{border-style:dashed!important}

.classic-calendar-now-line{
  position:absolute;
  top:0;
  z-index:34;
  width:2px;
  min-height:100%;
  background:color-mix(in srgb,var(--ds-primary) 82%,transparent);
  pointer-events:none;
  transform:translateX(-1px);
}

@media(max-width:900px){
  .calendar-reference-head{align-items:flex-start;margin-bottom:0}
  .calendar-reference-toolbar{align-items:stretch;flex-direction:column}
  .calendar-reference-toolbar-right{width:100%;justify-content:stretch}
  .calendar-reference-search{width:100%;min-width:0;flex:1}
  .calendar-reference-hints{font-size:12px}
  .calendar-v112-reference{--classic-room-rail:132px}
}
@media(max-width:680px){
  .calendar-v112-reference{--classic-room-rail:118px;min-height:calc(100vh - 96px)}
  .calendar-reference-shortcuts{display:none}
  .calendar-reference-toolbar{gap:8px}
  .calendar-reference-toolbar-right{gap:8px}
  .calendar-reference-nav{width:100%;flex:1;min-width:0}
  .calendar-reference-new{min-height:40px;padding:0 12px}
  .calendar-reference-focus{flex:1;min-width:90px;padding:0 8px}
  .calendar-reference-copy h1{font-size:1.35rem}
  .calendar-reference-hints{display:none}
  .calendar-v112-reference .classic-room-name strong{font-size:10px}
  .calendar-v112-reference .classic-room-state{max-width:74px;font-size:8px}
}

/* v15.56.0 — hotel-local live time strip + released-room reuse actions */
.classic-calendar-now-line{
  width:3px;
  background:color-mix(in srgb,var(--ds-primary) 88%,transparent);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--ds-primary) 10%,transparent);
  transition:left 14.5s linear;
}

/* v15.57.0 — bidirectional calendar window + canonical Ready Walk-in reuse */

/* v15.58.0 — Calendar page design + action wiring hardening */
.calendar-v112-reference[data-calendar-reference="screenshot-exact"] .calendar-reference-toolbar{scroll-margin-top:12px}

/* v15.59.0 — full v15.9.112 reservation creation workflow restoration */
.reservation-v112-create{display:grid;gap:14px}
.modal.wide.reservation-v112-modal{width:min(1180px,calc(100vw - 40px))}
.reservation-v112-intro{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;padding:2px 2px 0;color:var(--ds-muted);font-size:13px;line-height:1.45}
.reservation-v112-intro strong{color:var(--ds-text);font-size:14px}
.reservation-v112-section{margin:0;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface);padding:14px;box-shadow:0 1px 2px rgb(20 30 26 / .025)}
.reservation-v112-section-title{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}
.reservation-v112-section-title h3{margin:0;color:var(--ds-text);font-size:14px;line-height:1.25;letter-spacing:-.01em}
.reservation-v112-section-title p{margin:3px 0 0;color:var(--ds-muted);font-size:11.5px;line-height:1.4}
.reservation-v112-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface-soft);color:var(--ds-primary);font-weight:800}
.reservation-v112-commercial{background:color-mix(in srgb,var(--ds-surface) 96%,var(--ds-primary) 4%)}
.reservation-v112-commercial-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.reservation-v112-commercial-grid .wide{grid-column:span 2}
.reservation-v112-commercial-more{margin-top:10px;border-top:1px solid var(--ds-border);padding-top:10px}
.reservation-v112-commercial-more>summary{cursor:pointer;color:var(--ds-text);font-weight:750;font-size:12px;list-style-position:inside}.reservation-v112-inventory>summary{cursor:pointer;color:var(--ds-text);font-weight:750;font-size:12px;list-style-position:inside}.reservation-v112-roster>summary{cursor:pointer;color:var(--ds-text);font-weight:750;font-size:12px;list-style-position:inside}
.reservation-v112-commercial-more[open]>summary{margin-bottom:10px}.reservation-v112-inventory[open]>summary{margin-bottom:10px}.reservation-v112-roster[open]>summary{margin-bottom:10px}
.reservation-v112-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.82fr);gap:14px;align-items:start}
.reservation-v112-main{display:grid;gap:14px;min-width:0}
.reservation-v112-aside{display:grid;gap:14px;position:sticky;top:0;min-width:0}
.reservation-v112-inventory{padding:12px 14px}
.reservation-v112-flag{display:flex!important;align-items:flex-start;gap:9px;margin-top:12px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--ds-warning) 38%,var(--ds-border));border-radius:9px;background:color-mix(in srgb,var(--ds-warning) 7%,var(--ds-surface));font-size:12px;line-height:1.4}
.reservation-v112-flag input{flex:0 0 auto;margin-top:2px}
#res-flag-reason-wrap{margin-top:10px}
.reservation-v112-summary{display:grid;gap:0;border:1px solid var(--ds-border);border-radius:9px;overflow:hidden}
.reservation-v112-summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:8px 10px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface)}
.reservation-v112-summary>div:last-child{border-bottom:0}
.reservation-v112-summary span{color:var(--ds-muted);font-size:11px}
.reservation-v112-summary strong{color:var(--ds-text);font-size:12px;text-align:right}
.reservation-v112-summary button{appearance:none;border:0;background:transparent;padding:2px 0;color:var(--ds-primary);font:inherit;font-size:12px;font-weight:750;cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ds-primary) 28%,transparent);text-underline-offset:3px}
.reservation-v112-summary .total{background:var(--ds-surface-soft)}
.reservation-v112-summary .total strong{font-size:15px}
.reservation-v112-time-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.reservation-v112-packages{display:grid;gap:8px}
.reservation-v112-package{display:flex!important;align-items:center;gap:9px;margin:0;padding:9px 10px;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface);cursor:pointer}
.reservation-v112-package:hover{border-color:var(--ds-border-strong);background:var(--ds-surface-soft)}
.reservation-v112-package input{flex:0 0 auto}
.reservation-v112-package span{display:flex;flex:1;min-width:0;align-items:center;justify-content:space-between;gap:10px}
.reservation-v112-package strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.reservation-v112-package small{white-space:nowrap;color:var(--ds-muted);font-size:11px}
.reservation-v112-package small b{color:var(--ds-primary);font-weight:750}
.reservation-v112-price{border-color:color-mix(in srgb,var(--ds-primary) 24%,var(--ds-border));background:color-mix(in srgb,var(--ds-primary) 3%,var(--ds-surface))}
.reservation-v112-price-lines{display:grid;gap:0;border-top:1px solid var(--ds-border)}
.reservation-v112-price-lines>div{display:flex;justify-content:space-between;gap:14px;padding:9px 2px;border-bottom:1px solid var(--ds-border);font-size:12px}
.reservation-v112-price-lines>div span{color:var(--ds-muted)}
.reservation-v112-price-lines>div strong{color:var(--ds-text);white-space:nowrap}
.reservation-v112-price-lines>div.grand{margin-top:2px;padding-top:12px;border-bottom:0;font-size:14px;font-weight:800}
.reservation-v112-price-lines>div.grand span{color:var(--ds-text)}.reservation-v112-price-lines>div.grand strong{color:var(--ds-text)}
.reservation-v112-roster .subpanel{margin-top:10px}
.reservation-v112-create .quote-panel{margin-top:2px}
.reservation-v112-create textarea{resize:vertical}
.reservation-v112-create label>small{display:block;margin-top:4px;color:var(--ds-muted);font-size:10.5px;line-height:1.35}

@media(max-width:980px){
  .modal.wide.reservation-v112-modal{width:min(920px,calc(100vw - 24px))}
  .reservation-v112-commercial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reservation-v112-layout{grid-template-columns:1fr}
  .reservation-v112-aside{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
  .reservation-v112-aside>.reservation-v112-price{grid-column:1/-1}
}
@media(max-width:680px){
  .reservation-v112-commercial-grid{grid-template-columns:1fr}.reservation-v112-time-grid{grid-template-columns:1fr}.reservation-v112-aside{grid-template-columns:1fr}
  .reservation-v112-commercial-grid .wide{grid-column:auto}.reservation-v112-aside>.reservation-v112-price{grid-column:auto}
  .reservation-v112-section{padding:12px}
  .reservation-v112-package span{align-items:flex-start;flex-direction:column;gap:2px}
}
.reservation-attention-panel{border-color:color-mix(in srgb,var(--ds-warning) 45%,var(--ds-border));background:color-mix(in srgb,var(--ds-warning) 7%,var(--ds-surface))}
.reservation-attention-panel p{margin:6px 0 0;color:var(--ds-text);font-size:12px;line-height:1.45}

/* v15.60.0 — same-day turnover geometry + previous-stay visual clarity */
.calendar-v112-reference .calendar-cell.calendar-turnover-open:not(.calendar-blocked){
  background:linear-gradient(90deg,
    color-mix(in srgb,var(--ds-border-strong) 7%,transparent) 0 45.8%,
    transparent 45.8% 57.8%,
    color-mix(in srgb,var(--ds-success) 5%,transparent) 57.8% 100%);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ds-success) 7%,transparent);
}
.calendar-v112-reference .calendar-cell.calendar-turnover-open:not(.calendar-blocked):after{
  content:'↻';
  position:absolute;
  z-index:1;
  margin:4px 0 0 4px;
  color:color-mix(in srgb,var(--ds-success) 58%,var(--ds-muted));
  font-size:8px;
  font-weight:800;
  line-height:1;
  opacity:.7;
  pointer-events:none;
}
.calendar-v112 .calendar-res.checked_out{
  z-index:3!important;
  opacity:.76!important;
  filter:none!important;
  background:color-mix(in srgb,var(--ds-border-strong) 8%,var(--ds-canvas))!important;
  color:color-mix(in srgb,var(--ds-ink) 78%,var(--ds-muted))!important;
  border-color:color-mix(in srgb,var(--ds-border-strong) 72%,var(--ds-border))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ds-border-strong) 10%,transparent)!important;
}
.calendar-v112 .calendar-res.calendar-history-segment{
  z-index:3!important;
  opacity:.76!important;
  filter:none!important;
  background:color-mix(in srgb,var(--ds-border-strong) 8%,var(--ds-canvas))!important;
  color:color-mix(in srgb,var(--ds-ink) 78%,var(--ds-muted))!important;
  border-color:color-mix(in srgb,var(--ds-border-strong) 72%,var(--ds-border))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ds-border-strong) 10%,transparent)!important;
}
.calendar-v112-reference .calendar-res.checked_out{
  z-index:3!important;
  opacity:.76!important;
  filter:none!important;
  background:color-mix(in srgb,var(--ds-border-strong) 8%,var(--ds-canvas))!important;
  color:color-mix(in srgb,var(--ds-ink) 78%,var(--ds-muted))!important;
  border-color:color-mix(in srgb,var(--ds-border-strong) 72%,var(--ds-border))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ds-border-strong) 10%,transparent)!important;
}
.calendar-v112-reference .calendar-res.calendar-history-segment{
  z-index:3!important;
  opacity:.76!important;
  filter:none!important;
  background:color-mix(in srgb,var(--ds-border-strong) 8%,var(--ds-canvas))!important;
  color:color-mix(in srgb,var(--ds-ink) 78%,var(--ds-muted))!important;
  border-color:color-mix(in srgb,var(--ds-border-strong) 72%,var(--ds-border))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ds-border-strong) 10%,transparent)!important;
}
.calendar-v112 .calendar-res.checked_out:before{
  background:color-mix(in srgb,var(--ds-border-strong) 88%,var(--ds-muted))!important;
}
.calendar-v112 .calendar-res.calendar-history-segment:before{
  background:color-mix(in srgb,var(--ds-border-strong) 88%,var(--ds-muted))!important;
}
.calendar-v112-reference .calendar-res.checked_out:before{
  background:color-mix(in srgb,var(--ds-border-strong) 88%,var(--ds-muted))!important;
}
.calendar-v112-reference .calendar-res.calendar-history-segment:before{
  background:color-mix(in srgb,var(--ds-border-strong) 88%,var(--ds-muted))!important;
}
.calendar-v112 .calendar-res.checked_out .calendar-res-status{
  background:color-mix(in srgb,var(--ds-border-strong) 6%,#fff)!important;
  color:color-mix(in srgb,var(--ds-ink) 72%,var(--ds-muted))!important;
  border-color:color-mix(in srgb,var(--ds-border-strong) 42%,var(--ds-border))!important;
}
.calendar-v112 .calendar-res.calendar-history-segment .calendar-res-status{
  background:color-mix(in srgb,var(--ds-border-strong) 6%,#fff)!important;
  color:color-mix(in srgb,var(--ds-ink) 72%,var(--ds-muted))!important;
  border-color:color-mix(in srgb,var(--ds-border-strong) 42%,var(--ds-border))!important;
}
.calendar-v112-reference .calendar-res.checked_out .calendar-res-status{
  background:color-mix(in srgb,var(--ds-border-strong) 6%,#fff)!important;
  color:color-mix(in srgb,var(--ds-ink) 72%,var(--ds-muted))!important;
  border-color:color-mix(in srgb,var(--ds-border-strong) 42%,var(--ds-border))!important;
}
.calendar-v112-reference .calendar-res.calendar-history-segment .calendar-res-status{
  background:color-mix(in srgb,var(--ds-border-strong) 6%,#fff)!important;
  color:color-mix(in srgb,var(--ds-ink) 72%,var(--ds-muted))!important;
  border-color:color-mix(in srgb,var(--ds-border-strong) 42%,var(--ds-border))!important;
}
.calendar-v112 .calendar-res.released-tail{
  z-index:2!important;
  opacity:.44!important;
  pointer-events:auto!important;
  cursor:crosshair!important;
  border:1px dashed color-mix(in srgb,var(--ds-border-strong) 82%,var(--ds-border))!important;
  background:repeating-linear-gradient(135deg,
    color-mix(in srgb,var(--ds-border-strong) 7%,var(--ds-canvas)) 0 6px,
    color-mix(in srgb,var(--ds-canvas) 96%,transparent) 6px 12px)!important;
  color:color-mix(in srgb,var(--ds-ink) 60%,var(--ds-muted))!important;
  box-shadow:none!important;
}
.calendar-v112-reference .calendar-res.released-tail{
  z-index:2!important;
  opacity:.44!important;
  pointer-events:auto!important;
  cursor:crosshair!important;
  border:1px dashed color-mix(in srgb,var(--ds-border-strong) 82%,var(--ds-border))!important;
  background:repeating-linear-gradient(135deg,
    color-mix(in srgb,var(--ds-border-strong) 7%,var(--ds-canvas)) 0 6px,
    color-mix(in srgb,var(--ds-canvas) 96%,transparent) 6px 12px)!important;
  color:color-mix(in srgb,var(--ds-ink) 60%,var(--ds-muted))!important;
  box-shadow:none!important;
}
.calendar-v112-reference .same-day-turnover-note{
  border-left:3px solid color-mix(in srgb,var(--ds-success) 72%,var(--ds-border));
  background:color-mix(in srgb,var(--ds-success) 5%,var(--ds-canvas));
}
.calendar-v112-reference .same-day-turnover-ok{color:color-mix(in srgb,var(--ds-success) 82%,var(--ds-ink));font-weight:750}
.calendar-v112-reference .released-slot-walkin-disabled{opacity:.58;cursor:not-allowed}
.calendar-v112-reference .calendar-cell.calendar-turnover-open{position:relative}

/* v15.61.0 — classic spacious New Reservation UI restored from the approved old interface */
.modal.wide.reservation-v112-modal{
  width:min(1240px,calc(100vw - 16px));
  max-height:calc(100vh - 12px);
  border-radius:14px;
  border-color:#C5CEC8;
  background:#fff;
}
.reservation-v112-modal .modal-head{
  padding:18px 32px 6px;
  border-bottom:0;
  background:#fff;
}
.reservation-v112-modal .modal-head h2{
  color:#17201B;
  font-size:28px;
  font-weight:760;
  line-height:1.16;
  letter-spacing:-.035em;
}
.reservation-v112-modal .modal-close-x{
  width:42px;
  height:42px;
  min-height:42px;
  border:0;
  background:transparent;
  color:#6C7B73;
  font-size:27px;
}
.reservation-v112-modal .modal-body{
  padding:4px 32px 28px;
  background:#fff;
}
.reservation-v112-modal .modal-actions{
  padding:14px 32px 18px;
  border-top:1px solid #E0E5E1;
  background:#fff;
}
.reservation-v112-create{
  gap:22px;
}
.reservation-v112-intro{
  display:block;
  padding:0 0 50px;
  color:#5F7168;
  font-size:20px;
  line-height:1.75;
}
.reservation-v112-intro strong{
  display:inline;
  color:#5F7168;
  font-size:20px;
  font-weight:400;
}
.reservation-v112-intro span{
  display:inline;
}
.reservation-v112-section.reservation-v112-commercial{
  margin:0;
  padding:26px 26px 30px;
  border:1px solid #C5D0CA;
  border-radius:14px;
  background:#F7F8F5;
  box-shadow:none;
}
.reservation-v112-commercial .reservation-v112-section-title{
  gap:14px;
  align-items:center;
  margin-bottom:27px;
}
.reservation-v112-commercial .reservation-v112-icon{
  display:grid;
  place-items:center;
  flex:0 0 26px;
  width:26px;
  height:26px;
  border:0;
  border-radius:0;
  background:transparent;
  color:#0E7A43;
}
.reservation-v112-commercial .reservation-v112-icon svg{
  width:24px;
  height:24px;
}
.reservation-v112-commercial .reservation-v112-section-title h3{
  margin:0;
  color:#17201B;
  font-size:23px;
  font-weight:790;
  line-height:1.2;
  letter-spacing:-.025em;
}
.reservation-v112-commercial .reservation-v112-section-title p{
  margin:4px 0 0;
  color:#64766D;
  font-size:18px;
  line-height:1.42;
}
/* v15.59 used a dense four-column panel; the approved classic UI is intentionally two-column. */
.reservation-v112-commercial-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 20px;
}
.reservation-v112-commercial-grid>label{
  gap:8px;
  margin:0;
  color:#0E7A43;
  font-size:13px;
  font-weight:820;
  line-height:1.2;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.reservation-v112-commercial-grid>label.wide{
  grid-column:1/-1;
}
.reservation-v112-commercial-grid>label>input{
  min-height:72px;
  border:1px solid #E0E5E1;
  border-radius:12px;
  background:#fff;
  color:#17201B;
  padding:15px 26px;
  font-size:22px;
  font-weight:400;
  line-height:1.25;
  letter-spacing:0;
  text-transform:none;
  box-shadow:0 2px 5px rgb(30 48 39 / .035);
}
.reservation-v112-commercial-grid>label>select{
  min-height:72px;
  border:1px solid #E0E5E1;
  border-radius:12px;
  background:#fff;
  color:#17201B;
  padding:15px 26px;
  font-size:22px;
  font-weight:400;
  line-height:1.25;
  letter-spacing:0;
  text-transform:none;
  box-shadow:0 2px 5px rgb(30 48 39 / .035);
}
.reservation-v112-commercial-grid>label>textarea{
  min-height:72px;
  border:1px solid #E0E5E1;
  border-radius:12px;
  background:#fff;
  color:#17201B;
  padding:15px 26px;
  font-size:22px;
  font-weight:400;
  line-height:1.25;
  letter-spacing:0;
  text-transform:none;
  box-shadow:0 2px 5px rgb(30 48 39 / .035);
}
.reservation-v112-commercial-grid>label>textarea{
  min-height:96px;
  padding-top:16px;
}
.reservation-v112-commercial-grid>label>input::placeholder{
  color:#98A39D;
}
.reservation-v112-commercial-grid>label>textarea::placeholder{
  color:#98A39D;
}
.reservation-v112-commercial-grid>label>input:hover{
  border-color:#C5D0CA;
}
.reservation-v112-commercial-grid>label>select:hover{
  border-color:#C5D0CA;
}
.reservation-v112-commercial-grid>label>textarea:hover{
  border-color:#C5D0CA;
}
.reservation-v112-commercial-grid>label>input:focus{
  border-color:#16834A;
  box-shadow:0 0 0 3px #16834A;
}
.reservation-v112-commercial-grid>label>select:focus{
  border-color:#16834A;
  box-shadow:0 0 0 3px #16834A;
}
.reservation-v112-commercial-grid>label>textarea:focus{
  border-color:#16834A;
  box-shadow:0 0 0 3px #16834A;
}
.reservation-v112-commercial-more{
  margin-top:20px;
  border-top:1px solid #DDE3DF;
  padding-top:16px;
}
.reservation-v112-commercial-more>summary{
  color:#52645A;
  font-size:13px;
  font-weight:760;
}
.reservation-v112-commercial-more[open]>summary{
  margin-bottom:18px;
}
.reservation-v112-commercial-advanced>label>input{
  min-height:54px;
  padding:11px 15px;
  font-size:15px;
}
.reservation-v112-commercial-advanced>label>select{
  min-height:54px;
  padding:11px 15px;
  font-size:15px;
}
.reservation-v112-commercial-advanced>label>textarea{
  min-height:54px;
  padding:11px 15px;
  font-size:15px;
}
.reservation-v112-commercial-advanced>label>textarea{
  min-height:84px;
}
.reservation-v112-layout{
  gap:20px;
}
.reservation-v112-main{
  gap:18px;
}
.reservation-v112-aside{
  gap:18px;
}
.reservation-v112-main>.reservation-v112-section{
  border-radius:13px;
  padding:18px;
}
.reservation-v112-aside>.reservation-v112-section{
  border-radius:13px;
  padding:18px;
}
.reservation-v112-main>details.reservation-v112-section{
  border-radius:13px;
  padding:18px;
}
.reservation-v112-main .reservation-v112-section-title h3{
  font-size:16px;
}
.reservation-v112-aside .reservation-v112-section-title h3{
  font-size:16px;
}
.reservation-v112-modal .modal-actions button[type="submit"]{
  min-width:180px;
}
@media(max-width:980px){
  .modal.wide.reservation-v112-modal{width:min(920px,calc(100vw - 18px));max-height:calc(100vh - 10px)}
  .reservation-v112-modal .modal-head{padding:16px 22px 6px}
  .reservation-v112-modal .modal-body{padding:4px 22px 22px}
  .reservation-v112-intro{padding-bottom:30px;font-size:17px;line-height:1.6}
  .reservation-v112-intro strong{font-size:17px}
  .reservation-v112-section.reservation-v112-commercial{padding:22px}
  .reservation-v112-commercial-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
  .reservation-v112-commercial-grid>label>input{min-height:62px;padding:12px 18px;font-size:18px}.reservation-v112-commercial-grid>label>select{min-height:62px;padding:12px 18px;font-size:18px}.reservation-v112-commercial-grid>label>textarea{min-height:62px;padding:12px 18px;font-size:18px}
}
@media(max-width:680px){
  .reservation-v112-modal .modal-head{padding:14px 16px 5px}
  .reservation-v112-modal .modal-head h2{font-size:22px}
  .reservation-v112-modal .modal-body{padding:4px 14px 18px}
  .reservation-v112-modal .modal-actions{padding:12px 14px 14px}
  .reservation-v112-intro{padding-bottom:22px;font-size:15px;line-height:1.55}
  .reservation-v112-intro strong{font-size:15px}
  .reservation-v112-section.reservation-v112-commercial{padding:16px;border-radius:12px}
  .reservation-v112-commercial .reservation-v112-section-title h3{font-size:19px}
  .reservation-v112-commercial .reservation-v112-section-title p{font-size:14px}
  .reservation-v112-commercial-grid{grid-template-columns:1fr;gap:14px}
  .reservation-v112-commercial-grid>label.wide{grid-column:auto}
  .reservation-v112-commercial-grid>label>input{min-height:56px;padding:11px 14px;font-size:17px}.reservation-v112-commercial-grid>label>select{min-height:56px;padding:11px 14px;font-size:17px}.reservation-v112-commercial-grid>label>textarea{min-height:56px;padding:11px 14px;font-size:17px}
}

/* v15.62.0 — viewport-safe reservation modal + stable day-column calendar geometry */
body.modal-open{overflow:hidden;overscroll-behavior:none}


/* Reservation dialogs use one scroll owner: the body. Header and actions never cover fields. */
.modal.wide.reservation-v112-modal{
  display:flex;
  width:min(1240px,calc(100vw - 32px));
  height:min(900px,calc(100dvh - 24px));
  max-height:calc(100dvh - 24px);
  flex-direction:column;
  overflow:hidden;
}
.reservation-v112-modal .modal-head{
  position:relative;
  z-index:3;
  flex:0 0 auto;
  padding:18px 28px 10px;
}
.reservation-v112-modal .modal-head h2{font-size:26px}
.reservation-v112-modal .modal-body{
  flex:1 1 auto;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
  padding:8px 28px 28px;
}
.reservation-v112-modal .modal-actions{
  position:static;
  z-index:3;
  flex:0 0 auto;
  padding:14px 28px 16px;
  border-top:1px solid #DDE3DF;
  background:#fff;
  box-shadow:0 -8px 20px rgb(23 32 27 / .035);
}
.reservation-v112-intro{
  padding:0 0 24px;
  font-size:16px;
  line-height:1.55;
}
.reservation-v112-intro strong{font-size:16px}
.reservation-v112-section.reservation-v112-commercial{padding:22px 24px 24px}
.reservation-v112-commercial .reservation-v112-section-title{margin-bottom:20px}
.reservation-v112-commercial .reservation-v112-section-title h3{font-size:20px}
.reservation-v112-commercial .reservation-v112-section-title p{font-size:15px;line-height:1.4}
.reservation-v112-commercial-grid{gap:14px 18px}
.reservation-v112-commercial-grid>label{gap:7px;font-size:12px}
.reservation-v112-commercial-grid>label>input{
  min-height:60px;
  padding:12px 18px;
  font-size:18px;
}
.reservation-v112-commercial-grid>label>select{
  min-height:60px;
  padding:12px 18px;
  font-size:18px;
}
.reservation-v112-commercial-grid>label>textarea{
  min-height:60px;
  padding:12px 18px;
  font-size:18px;
}
.reservation-v112-commercial-grid>label>textarea{min-height:86px}
.reservation-v112-commercial-more{margin-top:16px;padding-top:14px}
.reservation-v112-layout{gap:16px}
.reservation-v112-main{gap:14px}.reservation-v112-aside{gap:14px}

/* v15.80.0 — date columns remain the grid, while check-in/check-out times trim bookings inside their boundary days. */
.calendar-v112-reference .calendar-res{
  transform:none!important;
  width:auto!important;
  max-width:none!important;
}
.calendar-v112-reference .calendar-res[data-calendar-start-offset]{min-width:6px}
.calendar-v112-reference .calendar-cell{background-image:linear-gradient(to right,transparent 49.5%,color-mix(in srgb,var(--ds-border) 18%,transparent) 50%,transparent 50.5%);background-size:100% 100%}
.calendar-v112-reference .calendar-cell.today{background-image:linear-gradient(to right,transparent 49.5%,color-mix(in srgb,var(--ds-primary) 16%,transparent) 50%,transparent 50.5%)}
.calendar-v112-reference .calendar-res.calendar-completed-history{
  opacity:.84!important;
  background:#F0F2F0!important;
  color:#46534C!important;
  border-color:#AEB9B2!important;
}
.calendar-v112-reference .calendar-res.checked_out{
  opacity:.84!important;
  background:#F0F2F0!important;
  color:#46534C!important;
  border-color:#AEB9B2!important;
}
.calendar-v112-reference .calendar-res.calendar-history-segment{
  opacity:.84!important;
  background:#F0F2F0!important;
  color:#46534C!important;
  border-color:#AEB9B2!important;
}
.calendar-v112-reference .calendar-res.calendar-completed-history:before{background:#6F7D75!important}
.calendar-v112-reference .calendar-res.checked_out:before{background:#6F7D75!important}
.calendar-v112-reference .calendar-res.calendar-history-segment:before{background:#6F7D75!important}
.calendar-v112-reference .calendar-res.released-tail{
  opacity:.38!important;
  background:repeating-linear-gradient(135deg,#F7F8F5 0 7px,#EDF0ED 7px 14px)!important;
  color:#637069!important;
  border-color:#B8C2BC!important;
}
.calendar-v112-reference .calendar-res.released-tail:before{background:#9BA69F!important}

@media(max-width:980px){
  .modal.wide.reservation-v112-modal{
    width:min(920px,calc(100vw - 20px));
    height:calc(100dvh - 16px);
    max-height:calc(100dvh - 16px);
  }
  .reservation-v112-modal .modal-head{padding:16px 20px 8px}
  .reservation-v112-modal .modal-body{padding:6px 20px 22px}
  .reservation-v112-modal .modal-actions{padding:12px 20px 14px}
  .reservation-v112-intro{padding-bottom:20px;font-size:15px}
  .reservation-v112-intro strong{font-size:15px}
  .reservation-v112-section.reservation-v112-commercial{padding:18px}
  .reservation-v112-commercial-grid>label>input{min-height:56px;padding:11px 15px;font-size:16px}
  .reservation-v112-commercial-grid>label>select{min-height:56px;padding:11px 15px;font-size:16px}
  .reservation-v112-commercial-grid>label>textarea{min-height:56px;padding:11px 15px;font-size:16px}
}
@media(max-width:680px){
  .modal.wide.reservation-v112-modal{
    width:100%;
    height:min(96dvh,900px);
    max-height:96dvh;
    border-radius:16px 16px 0 0;
  }
  .reservation-v112-modal .modal-head{padding:14px 16px 8px}
  .reservation-v112-modal .modal-head h2{font-size:21px}
  .reservation-v112-modal .modal-body{padding:4px 14px 18px}
  .reservation-v112-modal .modal-actions{padding:10px 14px 12px}
  .reservation-v112-section.reservation-v112-commercial{padding:14px}
  .reservation-v112-commercial .reservation-v112-section-title{margin-bottom:16px}
  .reservation-v112-commercial .reservation-v112-section-title h3{font-size:18px}
  .reservation-v112-commercial .reservation-v112-section-title p{font-size:13px}
  .reservation-v112-commercial-grid{grid-template-columns:1fr;gap:12px}
  .reservation-v112-commercial-grid>label.wide{grid-column:auto}
  .reservation-v112-commercial-grid>label>input{min-height:52px;padding:10px 13px;font-size:16px}
  .reservation-v112-commercial-grid>label>select{min-height:52px;padding:10px 13px;font-size:16px}
  .reservation-v112-commercial-grid>label>textarea{min-height:52px;padding:10px 13px;font-size:16px}
}

/* v15.63.0 — classic compact reservation sheet restored from approved reference */
.modal.wide.reservation-v112-modal{
  width:min(1220px,calc(100vw - 64px));
  height:min(820px,calc(100dvh - 64px));
  max-height:calc(100dvh - 64px);
  border-radius:15px;
  box-shadow:0 24px 70px rgb(15 31 24 / .24);
}
.reservation-v112-modal .modal-head{
  padding:15px 22px 8px;
}
.reservation-v112-modal .modal-head h2{
  font-size:22px;
  line-height:1.2;
  letter-spacing:-.025em;
}
.reservation-v112-modal .modal-close-x{
  width:36px;
  height:36px;
  min-height:36px;
  font-size:22px;
}
.reservation-v112-modal .modal-body{
  padding:6px 22px 18px;
}
.reservation-v112-modal .modal-actions{
  padding:11px 22px 13px;
  box-shadow:none;
}
.reservation-v112-create{gap:14px}
.reservation-v112-intro{
  padding:0 2px 12px;
  font-size:13px;
  line-height:1.45;
}
.reservation-v112-intro strong{font-size:13px}
.reservation-v112-section{
  padding:15px 18px;
  border-radius:11px;
  box-shadow:none;
}
.reservation-v112-main>.reservation-v112-section{
  padding:15px 18px;
  border-radius:11px;
  box-shadow:none;
}
.reservation-v112-aside>.reservation-v112-section{
  padding:15px 18px;
  border-radius:11px;
  box-shadow:none;
}
.reservation-v112-main>details.reservation-v112-section{
  padding:15px 18px;
  border-radius:11px;
  box-shadow:none;
}
.reservation-v112-section-title{
  gap:11px;
  margin-bottom:11px;
  padding-bottom:10px;
}
.reservation-v112-section-title h3{
  font-size:15px;
  line-height:1.25;
}
.reservation-v112-main .reservation-v112-section-title h3{
  font-size:15px;
  line-height:1.25;
}
.reservation-v112-aside .reservation-v112-section-title h3{
  font-size:15px;
  line-height:1.25;
}
.reservation-v112-section-title p{
  margin-top:3px;
  font-size:12px;
  line-height:1.4;
}
.reservation-v112-icon{
  flex-basis:30px;
  width:30px;
  height:30px;
}
.reservation-v112-section.reservation-v112-commercial{
  padding:16px 18px 18px;
  border-radius:11px;
  background:#F8F9F7;
}
.reservation-v112-commercial .reservation-v112-section-title{
  margin-bottom:14px;
}
.reservation-v112-commercial .reservation-v112-section-title h3{font-size:16px}
.reservation-v112-commercial .reservation-v112-section-title p{font-size:12px}
.reservation-v112-commercial-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px 14px;
}
.reservation-v112-commercial-grid>label{
  gap:6px;
  font-size:10px;
  letter-spacing:.08em;
}
.reservation-v112-commercial-grid>label>input{
  min-height:44px;
  padding:8px 12px;
  border-radius:9px;
  font-size:14px;
  box-shadow:none;
}
.reservation-v112-commercial-grid>label>select{
  min-height:44px;
  padding:8px 12px;
  border-radius:9px;
  font-size:14px;
  box-shadow:none;
}
.reservation-v112-commercial-grid>label>textarea{
  min-height:44px;
  padding:8px 12px;
  border-radius:9px;
  font-size:14px;
  box-shadow:none;
}
.reservation-v112-commercial-grid>label>textarea{min-height:70px}
.reservation-v112-commercial-more{
  margin-top:12px;
  padding-top:10px;
}
.reservation-v112-commercial-more[open]>summary{margin-bottom:12px}
.reservation-v112-commercial-advanced>label>input{
  min-height:42px;
  padding:8px 11px;
  font-size:13px;
}
.reservation-v112-commercial-advanced>label>select{
  min-height:42px;
  padding:8px 11px;
  font-size:13px;
}
.reservation-v112-commercial-advanced>label>textarea{
  min-height:42px;
  padding:8px 11px;
  font-size:13px;
}
.reservation-v112-layout{
  grid-template-columns:1fr;
  gap:14px;
}
.reservation-v112-main{gap:14px}
.reservation-v112-aside{
  position:static;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.reservation-v112-aside>.reservation-v112-section:nth-child(3){
  grid-column:1/-1;
}
.reservation-v112-aside>.reservation-v112-price{
  grid-column:1/-1;
}
.reservation-v112-summary>div{
  min-height:38px;
  padding:7px 10px;
}
.reservation-v112-time-grid{gap:12px}
.reservation-v112-packages{
  display:block;
  border-top:1px solid var(--ds-border);
}
.reservation-v112-package{
  min-height:52px;
  padding:10px 6px!important;
  border:0!important;
  border-bottom:1px solid var(--ds-border)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.reservation-v112-package:hover{
  background:var(--ds-surface-soft)!important;
}
.reservation-v112-package input{
  width:18px;
  height:18px;
}
.reservation-v112-package strong{font-size:13px}
.reservation-v112-package small{font-size:12px}
.reservation-v112-price{
  background:#fff;
  border-color:var(--ds-border);
}
.reservation-v112-price-lines>div{
  padding:11px 0;
  font-size:13px;
}
.reservation-v112-price-lines>div.grand{
  padding-top:14px;
  font-size:14px;
}
.reservation-v112-modal .modal-actions button[type="submit"]{min-width:170px}

@media(max-width:1280px){
  .modal.wide.reservation-v112-modal{
    width:min(1080px,calc(100vw - 36px));
    height:min(800px,calc(100dvh - 36px));
    max-height:calc(100dvh - 36px);
  }
}
@media(max-width:980px){
  .modal.wide.reservation-v112-modal{
    width:min(900px,calc(100vw - 24px));
    height:calc(100dvh - 24px);
    max-height:calc(100dvh - 24px);
  }
  .reservation-v112-aside{grid-template-columns:1fr}
  .reservation-v112-aside>.reservation-v112-section:nth-child(3){grid-column:auto}
  .reservation-v112-aside>.reservation-v112-price{grid-column:auto}
  .reservation-v112-modal .modal-head{padding:14px 18px 7px}
  .reservation-v112-modal .modal-body{padding:5px 18px 16px}
  .reservation-v112-modal .modal-actions{padding:10px 18px 12px}
}
@media(max-width:680px){
  .modal.wide.reservation-v112-modal{
    width:100%;
    height:94dvh;
    max-height:94dvh;
    border-radius:14px 14px 0 0;
  }
  .reservation-v112-modal .modal-head h2{font-size:20px}
  .reservation-v112-modal .modal-body{padding:4px 12px 14px}
  .reservation-v112-section{padding:13px}
  .reservation-v112-section.reservation-v112-commercial{padding:13px}
  .reservation-v112-commercial-grid{grid-template-columns:1fr;gap:10px}
  .reservation-v112-commercial-grid>label.wide{grid-column:auto}
  .reservation-v112-commercial-grid>label>input{min-height:44px;font-size:14px}
  .reservation-v112-commercial-grid>label>select{min-height:44px;font-size:14px}
  .reservation-v112-commercial-grid>label>textarea{min-height:44px;font-size:14px}
}

/* v15.63.0 checkbox normalization — prevent generic form sizing from inflating operational flags */
.reservation-v112-modal .reservation-v112-flag input[type="checkbox"]{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  padding:0!important;
  margin:1px 0 0!important;
  flex:0 0 18px!important;
}
.reservation-v112-modal .reservation-v112-package input[type="checkbox"]{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  padding:0!important;
  margin:1px 0 0!important;
  flex:0 0 18px!important;
}
.reservation-v112-modal .guest-follow input[type="checkbox"]{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  padding:0!important;
  margin:1px 0 0!important;
  flex:0 0 18px!important;
}
.reservation-v112-modal .reservation-v112-flag{
  min-height:auto;
  padding:10px 12px;
  align-items:flex-start;
}

/* v15.64.0 — editable reservation summary dates + availability/closest-room picker */
.reservation-v112-summary .room-choice{align-items:flex-start}
.reservation-v112-room-summary{display:flex;align-items:flex-end;flex-direction:column;gap:7px;min-width:0}
.reservation-v112-room-summary strong{max-width:100%;overflow-wrap:anywhere}
.reservation-v112-room-check{min-height:30px!important;padding:5px 9px!important;font-size:11px!important;white-space:nowrap}
.reservation-v112-summary .date-choice input[type=date]{width:154px;min-height:32px;padding:5px 8px;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface);color:var(--ds-primary);font:inherit;font-size:12px;font-weight:750;text-align:right}
.reservation-v112-summary .date-choice input[type=date]:focus{outline:2px solid color-mix(in srgb,var(--ds-primary) 24%,transparent);outline-offset:1px;border-color:var(--ds-primary)}
.reservation-room-availability-results{margin-top:10px;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface-soft);overflow:hidden}
.reservation-room-availability-loading{display:grid;gap:4px;padding:12px;font-size:12px;color:var(--ds-muted)}.reservation-room-availability-empty{display:grid;gap:4px;padding:12px;font-size:12px;color:var(--ds-muted)}
.reservation-room-availability-empty strong{color:var(--ds-text);font-size:12.5px}
.reservation-room-availability-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 11px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface)}
.reservation-room-availability-head>div{display:grid;gap:2px;min-width:0}
.reservation-room-availability-head strong{font-size:12.5px;color:var(--ds-text)}
.reservation-room-availability-head span:not(.badge){font-size:11px;color:var(--ds-muted)}
.reservation-room-availability-list{display:grid}
.reservation-room-choice{appearance:none;width:100%;border:0;border-bottom:1px solid var(--ds-border);background:transparent;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;color:inherit}
.reservation-room-choice:last-child{border-bottom:0}
.reservation-room-choice:hover{background:var(--ds-surface);outline:none}.reservation-room-choice:focus-visible{background:var(--ds-surface);outline:none}
.reservation-room-choice-main{display:grid;gap:3px;min-width:0}
.reservation-room-choice-main strong{font-size:12.5px;color:var(--ds-text)}
.reservation-room-choice-main small{font-size:11px;color:var(--ds-muted)}
.reservation-room-choice-action{flex:0 0 auto;font-size:11px;font-weight:800;color:var(--ds-primary)}
.reservation-room-fit-labels{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.reservation-room-fit-labels span{padding:2px 5px;border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface);font-size:9.5px!important;color:var(--ds-muted)!important}
.reservation-room-availability-note{margin:0;padding:9px 11px;border-top:1px solid var(--ds-border);font-size:10.5px;line-height:1.4;color:var(--ds-muted);background:var(--ds-surface)}
@media(max-width:680px){.reservation-v112-summary .date-choice{align-items:flex-start}.reservation-v112-summary .date-choice input[type=date]{width:148px}.reservation-v112-room-summary{align-items:flex-start}.reservation-v112-summary .room-choice{align-items:flex-start;flex-direction:column}.reservation-room-choice{align-items:flex-start}.reservation-room-choice-action{padding-top:2px}}

/* v15.65.0 — exact calendar axis alignment + fast race-safe history navigation */
.calendar-v112 .classic-calendar-room-axis{grid-row:1}.calendar-v112 .classic-calendar-month{grid-row:1}.calendar-v112 .classic-calendar-day{grid-row:1}

/* v15.66.0 — buffered calendar range navigation + resilient in-place loading */
.calendar-v112.calendar-loading .calendar-panel{position:relative}
.calendar-v112.calendar-loading .calendar-panel::after{content:"";position:absolute;inset:0;pointer-events:none;background:rgba(255,255,255,.08);animation:calendar-v1566-loading 1.1s ease-in-out infinite;opacity:.18}
.calendar-v112.calendar-loading .calendar-reference-nav-btn{cursor:progress}.calendar-v112.calendar-loading .calendar-reference-focus{cursor:progress}
.calendar-inline-notice.loading{color:var(--ds-muted)}
@keyframes calendar-v1566-loading{0%,100%{opacity:.10}50%{opacity:.28}}
@media(prefers-reduced-motion:reduce){.calendar-v112.calendar-loading .calendar-panel::after{animation:none;opacity:.2}}


/* v15.67.0 — reservation quote error recovery + qualitative room alternatives */
.reservation-room-choice-action{white-space:nowrap}

/* v15.71.0 — Calendar UX polish: readable day axis, quick filters, density, hover column and drag HUD */
.calendar-reference-context{
  display:flex;
  min-height:28px;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin-top:-4px;
  color:var(--ds-muted);
  font-size:10.5px;
}
.calendar-context-stat{
  display:inline-flex;
  min-height:24px;
  align-items:center;
  gap:3px;
  border:1px solid var(--ds-border);
  border-radius:999px;
  background:var(--ds-surface);
  padding:3px 8px;
  white-space:nowrap;
}.calendar-filter-chip{
  display:inline-flex;
  min-height:24px;
  align-items:center;
  gap:3px;
  border:1px solid var(--ds-border);
  border-radius:999px;
  background:var(--ds-surface);
  padding:3px 8px;
  white-space:nowrap;
}
.calendar-context-stat strong{color:var(--ds-ink-secondary);font-weight:800}
.calendar-filter-chip{border-color:color-mix(in srgb,var(--ds-primary) 26%,var(--ds-border));background:color-mix(in srgb,var(--ds-primary) 5%,var(--ds-surface));color:var(--ds-primary);font-weight:750}
.calendar-filter-clear{
  min-height:24px;
  border:0;
  background:transparent;
  padding:2px 5px;
  color:var(--ds-primary);
  font-size:10px;
  font-weight:750;
  cursor:pointer;
}
.calendar-filter-clear:hover{text-decoration:underline}
.calendar-setting-toggles{display:grid;grid-template-columns:1fr;gap:5px;padding:6px 0;border-top:1px solid var(--ds-border);border-bottom:1px solid var(--ds-border)}
.calendar-reference-settings .calendar-setting-toggle{display:flex!important;min-height:26px;align-items:center;gap:7px;font-size:9.5px!important;font-weight:650!important;color:var(--ds-ink-secondary)!important;cursor:pointer}
.calendar-reference-settings .calendar-setting-toggle input[type="checkbox"]{width:15px!important;height:15px!important;min-width:15px!important;min-height:15px!important;margin:0!important;padding:0!important;accent-color:var(--ds-primary)}

.calendar-v112-reference .classic-calendar-day{flex-direction:column;gap:1px;cursor:pointer;position:relative}
.calendar-v112-reference .classic-calendar-day small{display:block;font-size:8px;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.04em;color:var(--ds-faint)}
.calendar-v112-reference .classic-calendar-day strong{font-size:13px;line-height:1.05}
.calendar-v112-reference .classic-calendar-day:hover{background:color-mix(in srgb,var(--ds-primary) 5%,var(--ds-surface));color:var(--ds-ink-secondary)}
.calendar-v112-reference .classic-calendar-day.focus-date::after{content:"";position:absolute;left:20%;right:20%;bottom:0;height:3px;border-radius:3px 3px 0 0;background:color-mix(in srgb,var(--ds-primary) 72%,transparent)}
.calendar-v112-reference .calendar-cell.focus-date{box-shadow:inset 1px 0 0 color-mix(in srgb,var(--ds-primary) 10%,transparent),inset -1px 0 0 color-mix(in srgb,var(--ds-primary) 10%,transparent)}
.classic-calendar-hover-column{position:absolute;top:56px;z-index:2;pointer-events:none;background:color-mix(in srgb,var(--ds-primary) 4%,transparent);border-left:1px solid color-mix(in srgb,var(--ds-primary) 10%,transparent);border-right:1px solid color-mix(in srgb,var(--ds-primary) 10%,transparent)}
.classic-calendar-hover-column[hidden]{display:none}

.calendar-v112-reference .calendar-res{transition:transform .1s ease,box-shadow .1s ease,border-color .1s ease,opacity .1s ease}
.calendar-v112-reference .calendar-res:hover{z-index:12;transform:translateY(-1px);box-shadow:0 5px 14px rgb(20 30 26 / .10)}
.calendar-v112-reference .calendar-res.calendar-res-short{padding-left:9px;padding-right:5px}
.calendar-v112-reference .calendar-res.calendar-res-short .calendar-res-status{display:none}
.calendar-v112-reference .calendar-res.calendar-res-short .calendar-res-copy small{display:none}
.calendar-v112-reference .calendar-res.calendar-res-short .calendar-res-copy strong{font-size:9px}
.calendar-v112-reference .calendar-res.calendar-res-medium .calendar-res-copy small{font-size:7px}

.calendar-v112-reference.calendar-density-compact{--classic-row-height:44px}
.calendar-v112-reference.calendar-density-compact .calendar-room{padding-top:4px;padding-bottom:4px}
.calendar-v112-reference.calendar-density-compact .classic-room-copy{gap:3px}
.calendar-v112-reference.calendar-density-compact .classic-room-state{min-height:17px;padding:1px 5px;font-size:8px}
.calendar-v112-reference.calendar-density-compact .calendar-res{height:38px;padding:12px 7px 3px 10px;border-radius:7px}
.calendar-v112-reference.calendar-density-compact .calendar-res-status{top:2px;font-size:7.5px;padding:0 4px}
.calendar-v112-reference.calendar-density-compact .calendar-res-copy strong{font-size:9px}
.calendar-v112-reference.calendar-density-compact .calendar-res-copy small{font-size:6.8px}
.calendar-v112-reference.calendar-density-compact .calendar-inventory-block{height:34px}

.calendar-drag-hud{
  position:fixed;
  z-index:9999;
  width:min(280px,calc(100vw - 16px));
  display:grid;
  gap:3px;
  pointer-events:none;
  border:1px solid color-mix(in srgb,var(--ds-primary) 30%,var(--ds-border));
  border-radius:9px;
  background:color-mix(in srgb,var(--ds-surface) 96%,transparent);
  padding:8px 10px;
  color:var(--ds-ink-secondary);
  box-shadow:0 10px 26px rgb(20 30 26 / .16);
  backdrop-filter:blur(7px);
}
.calendar-drag-hud[hidden]{display:none}
.calendar-drag-hud strong{font-size:11px;line-height:1.25;font-weight:800}
.calendar-drag-hud span{font-size:9.5px;line-height:1.35;color:var(--ds-muted)}
.calendar-drag-hud.success{border-color:color-mix(in srgb,var(--ds-success) 42%,var(--ds-border))}
.calendar-drag-hud.error{border-color:color-mix(in srgb,var(--ds-danger) 48%,var(--ds-border));background:color-mix(in srgb,var(--ds-danger) 4%,var(--ds-surface))}
body.calendar-dragging{cursor:grabbing!important}body.calendar-dragging *{cursor:grabbing!important}
body.calendar-dragging .calendar-reference-toolbar{user-select:none}body.calendar-dragging .calendar-reference-context{user-select:none}

@media(max-width:900px){
  .calendar-reference-context{font-size:9.5px}
  .calendar-context-stat:nth-child(3){display:none}
}
@media(max-width:680px){
  .calendar-reference-context{gap:4px}
  .calendar-context-stat{min-height:22px;padding:2px 6px;font-size:9px}.calendar-filter-chip{min-height:22px;padding:2px 6px;font-size:9px}
  .calendar-filter-clear{font-size:9px}
  .calendar-v112-reference .classic-calendar-day small{font-size:7px}
  .calendar-v112-reference .classic-calendar-day strong{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.calendar-v112-reference .calendar-res{transition:none}.calendar-v112-reference .calendar-res:hover{transform:none}}
.calendar-reference-settings .classic-calendar-settings-pop{max-height:min(72vh,640px);overflow:auto;overscroll-behavior:contain}

/* v15.73.0 — frontend helper/runtime hardening + guest duplicate resolver */
.guest-duplicate-layer{position:fixed;inset:0;z-index:180;background:rgb(8 22 18 / .58);display:grid;place-items:center;padding:20px;backdrop-filter:blur(2px)}
.guest-duplicate-dialog{width:min(720px,100%);max-height:min(82vh,760px);overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--ds-surface);border:1px solid var(--ds-border-strong);border-radius:16px;box-shadow:var(--shadow-modal)}
.guest-duplicate-dialog>header{padding:18px 20px 14px;border-bottom:1px solid var(--ds-border);display:flex;gap:18px;justify-content:space-between;align-items:flex-start}.guest-duplicate-dialog h2{margin:2px 0 5px;font-size:22px}.guest-duplicate-dialog p{margin:0;color:var(--ds-muted);line-height:1.45}.guest-duplicate-dialog>footer{padding:14px 20px;border-top:1px solid var(--ds-border);display:flex;justify-content:flex-end;gap:10px;background:var(--ds-surface-soft)}
.guest-duplicate-list{padding:14px 20px;overflow:auto;display:grid;gap:10px;overscroll-behavior:contain}.guest-duplicate-card{appearance:none;width:100%;border:1px solid var(--ds-border);background:var(--ds-surface);border-radius:12px;padding:13px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 16px;text-align:left;color:inherit;cursor:pointer}.guest-duplicate-card:hover{border-color:var(--ds-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ds-primary) 13%,transparent);outline:none}.guest-duplicate-card:focus-visible{border-color:var(--ds-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ds-primary) 13%,transparent);outline:none}.guest-duplicate-card span:first-child{display:flex;flex-direction:column;min-width:0}.guest-duplicate-card strong{font-size:15px}.guest-duplicate-card small{color:var(--ds-muted);font-size:12px}.guest-duplicate-reasons{color:var(--ds-muted);font-size:12px}.guest-duplicate-card>b{grid-column:2;grid-row:1/3;align-self:center;color:var(--ds-primary);font-size:13px}.guest-duplicate-reasons{grid-column:1}
@media(max-width:680px){.guest-duplicate-layer{padding:0;align-items:end}.guest-duplicate-dialog{width:100%;max-height:92vh;border-radius:18px 18px 0 0}.guest-duplicate-card{grid-template-columns:1fr}.guest-duplicate-card>b{grid-column:1;grid-row:auto}.guest-duplicate-dialog>footer{flex-direction:column}.guest-duplicate-dialog>footer .btn{width:100%}}

/* v15.74.0 — YOTTA Invoice hotel folio composer */
.invoice-source-composer{border:1px solid #dce5df;border-radius:14px;background:#f8faf8;padding:16px;display:grid;gap:14px}.invoice-source-composer[hidden]{display:none!important}.invoice-compose-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.invoice-compose-head>div:first-child{display:grid;gap:3px}.invoice-compose-head strong{font-size:16px}.invoice-compose-head span{color:#6c7973;font-size:13px}.invoice-compose-actions{display:flex;gap:8px;flex-wrap:wrap}.invoice-compose-lines{display:grid;border:1px solid #e1e8e3;border-radius:12px;overflow:hidden;background:#fff}.invoice-compose-line{display:grid;grid-template-columns:28px 112px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid #e8edea;margin:0;cursor:pointer}.invoice-compose-line:last-child{border-bottom:0}.invoice-compose-line:hover{background:#fbfdfb}.invoice-compose-line.mandatory{background:#f3faf6}.invoice-compose-line input{width:18px;height:18px;margin:0;accent-color:#0c8149}.invoice-compose-line input:disabled{opacity:1;cursor:not-allowed}.invoice-compose-kind{font-size:11px;text-transform:uppercase;letter-spacing:.055em;color:#617069;font-weight:700}.invoice-compose-main{display:grid;gap:2px;min-width:0}.invoice-compose-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invoice-compose-main small{color:#74817b}.invoice-compose-amount{font-weight:800;white-space:nowrap}.invoice-compose-total{display:flex;justify-content:flex-end;gap:28px;align-items:center;border-top:1px solid #dce5df;padding-top:12px}.invoice-compose-total strong{font-size:16px}.invoice-compose-loading{padding:18px;text-align:center;color:#68766f}.invoice-compose-blocked{font-size:12px;color:#68766f}.invoice-compose-blocked>div{padding:4px 0}.invoice-create-grid .nested-grid{align-items:end}@media(max-width:900px){.invoice-compose-head{align-items:flex-start;flex-direction:column}.invoice-compose-line{grid-template-columns:28px 1fr auto}.invoice-compose-kind{grid-column:2}.invoice-compose-main{grid-column:2}.invoice-compose-amount{grid-column:3;grid-row:1/3}.invoice-compose-line .badge{grid-column:2/4;justify-self:start}.invoice-compose-total{justify-content:space-between;gap:12px;flex-wrap:wrap}}

/* v15.75.0 — YOTTA Billing Center */
.yotta-billing-head{align-items:flex-start}.yotta-billing-head h1{font-size:clamp(30px,3vw,46px);letter-spacing:-.035em}.yotta-billing-head p{max-width:900px}.yotta-doc-menu{position:relative}.yotta-doc-menu>summary{list-style:none;cursor:pointer;min-height:48px;display:flex;align-items:center}.yotta-doc-menu>summary::-webkit-details-marker{display:none}.yotta-doc-menu-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:35;width:290px;padding:8px;background:#fff;border:1px solid var(--line,#dce3df);border-radius:14px;box-shadow:0 18px 45px rgba(5,39,28,.16)}.yotta-doc-menu-pop button{width:100%;border:0;background:transparent;text-align:left;padding:13px 15px;border-radius:10px;font:inherit;font-size:16px;cursor:pointer;color:var(--text,#1f2925)}.yotta-doc-menu-pop button:hover{background:#e8f5ec;color:#087b41}.yotta-warning{margin:12px 0 20px;border:1px solid #d49a35;background:#fffaf0;border-radius:14px;padding:16px 20px;display:flex;gap:10px;flex-direction:column}.yotta-warning strong{color:#a66b08}.yotta-setup{border-color:#15945b!important}.yotta-setup-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.yotta-setup-steps button{border:1px dashed #cdd9d3;background:#fff;border-radius:12px;min-height:80px;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:800;cursor:pointer}.yotta-setup-steps button:hover{border-style:solid;border-color:#0b8b4b;background:#f5fbf7}.yotta-setup-steps b{font-size:18px}.yotta-setup-steps small{display:block;color:var(--muted);font-weight:600}.yotta-billing-tabs{display:flex;gap:8px;overflow-x:auto;border-bottom:1px solid var(--line,#dde5e1);margin:18px 0 24px;padding:0 4px;scrollbar-width:thin}.yotta-billing-tabs button{flex:0 0 auto;border:0;background:transparent;padding:13px 14px 12px;font-weight:800;color:var(--muted,#75817b);cursor:pointer;border-bottom:3px solid transparent}.yotta-billing-tabs button.active{color:#087b41;border-bottom-color:#0b9a51}.yotta-billing-tabs button:hover{color:#087b41}.yotta-documents{padding-bottom:30px}.yotta-filters{display:grid;grid-template-columns:minmax(280px,1fr) 245px 245px 140px;gap:12px;margin:14px 0}.yotta-filters input{min-height:52px}.yotta-filters select{min-height:52px}.yotta-more-filters{border:1px solid var(--line,#dde5e1);border-radius:12px;margin:12px 0 20px;background:#fff}.yotta-more-filters summary{padding:14px 18px;color:#087b41;font-weight:800;cursor:pointer}.yotta-more-filters>div{display:flex;gap:15px;padding:0 18px 16px}.yotta-more-filters label{display:grid;gap:6px}.toolbar.compact{gap:6px;flex-wrap:nowrap}.toolbar.compact .btn{white-space:nowrap}.yotta-pdf-preview{display:flex;justify-content:space-between;align-items:center;padding:18px;border:1px solid #c9d9d1;background:#f8fbf9;border-radius:13px;margin:10px 0 20px}.inline-control{display:flex;gap:8px}.inline-control input{min-width:0;flex:1}.invoice-manual-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:12px 14px;background:#f7faf8;border:1px solid var(--line,#dde5e1);border-radius:12px}.invoice-manual-head strong{display:block}.invoice-manual-head small{display:block}.invoice-manual-head small{color:var(--muted)}#inv-manual-lines{display:grid;gap:8px}.invoice-manual-line{display:grid;grid-template-columns:150px minmax(190px,1.6fr) 86px 82px 130px 95px 88px 42px;gap:8px;align-items:end;border:1px solid var(--line,#dde5e1);border-radius:12px;padding:10px;background:#fff}.invoice-manual-line label{min-width:0}.invoice-manual-line label.wide{min-width:0}.invoice-manual-line input{min-height:42px;padding:8px}.invoice-manual-line select{min-height:42px;padding:8px}.invoice-manual-line .im-remove{height:42px;width:42px;padding:0}.invoice-manual-total{display:flex;justify-content:flex-end;gap:14px;font-size:17px;margin-top:12px;padding:12px 0;border-top:1px solid var(--line,#dde5e1)}.invoice-manual-total strong{font-size:20px}.yotta-documents table{font-size:14px}.yotta-documents .badge{white-space:nowrap}
@media(max-width:1200px){.yotta-filters{grid-template-columns:1fr 1fr}.invoice-manual-line{grid-template-columns:repeat(4,minmax(0,1fr))}.invoice-manual-line label.wide{grid-column:span 2}.invoice-manual-line .im-remove{justify-self:end}.yotta-setup-steps{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.yotta-filters{grid-template-columns:1fr}.yotta-more-filters>div{flex-direction:column}.invoice-manual-line{grid-template-columns:1fr 1fr}.invoice-manual-line label.wide{grid-column:1/-1}.yotta-setup-steps{grid-template-columns:1fr}.yotta-billing-head .toolbar{width:100%}.yotta-billing-head .toolbar>.btn{flex:1}.yotta-doc-menu{flex:1}.yotta-doc-menu>summary{justify-content:center}}

/* v15.76.0 — invoice / folio workflow UX */
.folio-invoice-state{display:grid;gap:4px;min-width:145px}.folio-invoice-state small{color:var(--muted);font-size:11px;line-height:1.35}.folio-invoice-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 16px}.folio-invoice-progress>div{display:grid;gap:3px;padding:11px 13px;border:1px solid var(--line,#dde5e1);border-radius:11px;background:#f8faf9}.folio-invoice-progress span{font-size:11px;color:var(--muted);font-weight:700}.folio-invoice-progress strong{font-size:17px}.invoice-live-preview{border:1px solid #bfd8ca;border-radius:14px;background:linear-gradient(180deg,#f8fcf9,#f4faf6);padding:14px 16px;display:grid;gap:12px}.invoice-preview-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.invoice-preview-head>div{display:grid;gap:2px}.invoice-preview-head small{color:var(--muted);font-weight:700}.invoice-preview-head strong{font-size:17px}.invoice-preview-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:8px}.invoice-preview-grid>span{display:grid;gap:2px;padding:8px 10px;border:1px solid #dce9e1;border-radius:9px;background:#fff;min-width:0}.invoice-preview-grid small{color:var(--muted);font-size:10px}.invoice-preview-grid strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folio-doc-open.link-button{padding:0;border:0;background:transparent;cursor:pointer}.folio-doc-open.link-button:hover .badge{filter:brightness(.96)}
@media(max-width:760px){.folio-invoice-progress{grid-template-columns:1fr}.invoice-preview-grid{grid-template-columns:1fr 1fr}.invoice-preview-head{align-items:flex-start}.invoice-live-preview{padding:12px}}

/* v15.77.0 — YOTTA document lifecycle + settlement UX */
.yotta-lifecycle-card{display:grid;gap:10px;margin:14px 0;padding:14px 16px;border:1px solid #d7e6de;border-radius:13px;background:#f8fbf9}.yotta-lifecycle-top{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.yotta-lifecycle-top>div{display:grid;gap:3px}.yotta-lifecycle-top small{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.yotta-lifecycle-top strong{font-size:13px}.yotta-progress{height:8px;border-radius:999px;background:#e5ece8;overflow:hidden}.yotta-progress>span{display:block;height:100%;border-radius:inherit;background:#0b8b4b;transition:width .2s ease}.yotta-timeline{margin-top:18px}.yotta-timeline-row{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid #edf1ef}.yotta-timeline-row:last-child{border-bottom:0}.yotta-timeline-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef7f2;color:#087b41;font-weight:900}.yotta-timeline-row>div{display:grid;gap:2px}.yotta-timeline-row strong{font-size:13px}.yotta-timeline-row small{font-size:11px;color:var(--muted)}.yotta-related-doc{cursor:pointer;border-radius:9px;padding:8px}.yotta-related-doc:hover{background:#f3f8f5;outline:2px solid color-mix(in srgb,#0b8b4b 18%,transparent)}.yotta-related-doc:focus-visible{background:#f3f8f5;outline:2px solid color-mix(in srgb,#0b8b4b 18%,transparent)}.yotta-documents td small{line-height:1.35}.yotta-documents td.num small{white-space:nowrap}.negative{color:#b44343!important}
@media(max-width:760px){.yotta-lifecycle-top{grid-template-columns:1fr}.yotta-timeline-row{grid-template-columns:26px 1fr}.yotta-timeline-icon{width:24px;height:24px}}

/* v15.78.0 — YOTTA accounting integrity + folio reconciliation */
.yotta-integrity-card{margin:12px 0;padding:12px 14px;border:1px solid var(--line,#dce5e1);border-radius:12px;background:#f8faf9;display:flex;justify-content:space-between;align-items:center;gap:14px}.yotta-reconciliation-card{margin:12px 0;padding:12px 14px;border:1px solid var(--line,#dce5e1);border-radius:12px;background:#f8faf9;display:flex;justify-content:space-between;align-items:center;gap:14px}.yotta-integrity-card>div{display:grid;gap:3px}.yotta-reconciliation-card>div{display:grid;gap:3px}.yotta-integrity-card strong{font-size:13px}.yotta-reconciliation-card strong{font-size:13px}.yotta-integrity-card small{font-size:11px;line-height:1.4;color:var(--muted)}.yotta-reconciliation-card small{font-size:11px;line-height:1.4;color:var(--muted)}.yotta-integrity-card code{font:11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:#52615a;background:#fff;border:1px solid #dce5e1;border-radius:7px;padding:6px 8px;white-space:nowrap}.yotta-integrity-card.verified{border-color:#b9ddc9;background:#f2fbf6}.yotta-reconciliation-card.verified{border-color:#b9ddc9;background:#f2fbf6}.yotta-integrity-card.verified strong{color:#087b41}.yotta-reconciliation-card.verified strong{color:#087b41}.yotta-integrity-card.legacy{border-color:#e4c98d;background:#fffaf0}.yotta-reconciliation-card.legacy{border-color:#e4c98d;background:#fffaf0}.yotta-integrity-card.legacy strong{color:#98630d}.yotta-reconciliation-card.legacy strong{color:#98630d}.yotta-integrity-card.mismatch{border-color:#e6aaaa;background:#fff4f4}.yotta-reconciliation-card.mismatch{border-color:#e6aaaa;background:#fff4f4}.yotta-integrity-card.mismatch strong{color:#b43b3b}.yotta-reconciliation-card.mismatch strong{color:#b43b3b}@media(max-width:700px){.yotta-integrity-card{align-items:flex-start;flex-direction:column}.yotta-reconciliation-card{align-items:flex-start;flex-direction:column}.yotta-integrity-card code{max-width:100%;overflow:hidden;text-overflow:ellipsis}}

/* v15.79.0 — invoice stay-scope guard + reversed-source exclusion */
.invoice-partial-stay-warning{display:grid;gap:10px}.invoice-partial-stay-warning .checkline{margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel) 82%,transparent)}.yotta-stay-scope{margin:14px 0}.yotta-stay-scope.is-ok{border-color:color-mix(in srgb,var(--success) 45%,var(--line))}


/* v15.81.0 — unambiguous Bulgarian dates + stronger continuous day-column boundaries. */
.localized-date-control{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;width:100%;min-width:0;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface);overflow:hidden;transition:border-color .14s ease,box-shadow .14s ease}
.localized-date-control:hover{border-color:var(--ds-border-strong)}
.localized-date-control:focus-within{border-color:var(--ds-focus);box-shadow:0 0 0 3px rgb(22 131 74 / .12)}
.localized-date-display{min-width:0!important;min-height:40px!important;height:40px!important;border:0!important;border-radius:0!important;background:transparent!important;padding:7px 8px 7px 10px!important;box-shadow:none!important;color:var(--ds-ink)!important;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.localized-date-display:focus{box-shadow:none!important;outline:0!important}
.localized-date-picker{width:34px;height:40px;display:grid;place-items:center;border:0;border-left:1px solid var(--ds-border);background:var(--ds-surface-soft);color:var(--ds-primary);cursor:pointer;padding:0}
.localized-date-picker:hover{background:var(--ds-primary-soft)}
.localized-date-picker:disabled{cursor:default;opacity:.42;background:var(--ds-surface-soft)}
.localized-date-picker svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.localized-date-native{position:absolute!important;width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;left:-9999px!important;opacity:0!important;pointer-events:none!important;padding:0!important;border:0!important}
.localized-date-control.is-readonly .localized-date-display{color:var(--ds-muted)!important;background:var(--ds-surface-soft)!important}
.calendar-reference-date{padding:0!important;min-width:150px!important;height:44px!important}
.calendar-reference-date>.localized-date-control{height:100%;border:0;border-radius:0;background:transparent}
.calendar-reference-date .localized-date-display{height:42px!important;min-height:42px!important;padding-left:12px!important;font-size:11px!important;font-weight:750!important;color:var(--ds-primary)!important;text-align:center}
.calendar-reference-date .localized-date-picker{height:42px;background:transparent}
.reservation-v112-summary .date-choice>.localized-date-control{width:164px;flex:0 0 164px}
.reservation-v112-summary .date-choice .localized-date-display{height:34px!important;min-height:34px!important;padding:5px 7px!important;text-align:right;color:var(--ds-primary)!important;font-size:12px!important;font-weight:750!important}
.reservation-v112-summary .date-choice .localized-date-picker{width:32px;height:34px}

/* Strong day grid: every day edge is readable through header, section bands and room rows. */
.calendar-v112-reference{--calendar-day-line:color-mix(in srgb,var(--ds-border-strong) 76%,var(--ds-border));--calendar-day-line-strong:color-mix(in srgb,var(--ds-border-emphasis) 62%,var(--ds-border))}
.calendar-v112-reference .classic-calendar-day{border-right:1px solid var(--calendar-day-line)!important}
.calendar-v112-reference .classic-calendar-day:first-of-type{border-left:1px solid var(--calendar-day-line)!important}
.calendar-v112-reference .calendar-cell{position:relative;border-right:1px solid var(--calendar-day-line)!important}
.calendar-v112-reference .calendar-row>.calendar-cell:nth-of-type(2){border-left:1px solid var(--calendar-day-line)!important}
.calendar-v112-reference .calendar-cell::after{content:"";position:absolute;top:0;right:-1px;bottom:0;width:1px;background:var(--calendar-day-line);pointer-events:none;z-index:1}
.calendar-v112-reference .calendar-section-day-divider{grid-row:1;align-self:stretch;min-width:0;border-right:1px solid var(--calendar-day-line);pointer-events:none}
.calendar-v112-reference .calendar-section-day-divider:first-of-type{border-left:1px solid var(--calendar-day-line)}
.calendar-v112-reference .calendar-section-day-divider.today{background:color-mix(in srgb,var(--ds-primary) 3.5%,transparent);border-right-color:color-mix(in srgb,var(--ds-primary) 24%,var(--calendar-day-line))}
.calendar-v112-reference .classic-calendar-day.today{box-shadow:inset 1px 0 0 color-mix(in srgb,var(--ds-primary) 22%,transparent),inset -1px 0 0 color-mix(in srgb,var(--ds-primary) 22%,transparent)}
.calendar-v112-reference .calendar-cell.today{box-shadow:inset 1px 0 0 color-mix(in srgb,var(--ds-primary) 13%,transparent),inset -1px 0 0 color-mix(in srgb,var(--ds-primary) 13%,transparent)}
.calendar-v112-reference .calendar-row:hover .calendar-cell{background-color:color-mix(in srgb,var(--ds-surface) 58%,transparent)}
.calendar-v112-reference .calendar-row:hover .calendar-cell.today{background-color:color-mix(in srgb,var(--ds-primary) 5%,var(--ds-surface))}
.calendar-v112-reference .calendar-res{box-shadow:0 1px 3px rgb(20 30 26 / .06);border-color:color-mix(in srgb,var(--ds-border-strong) 76%,var(--ds-border))}
.calendar-v112-reference .calendar-res:hover{box-shadow:0 6px 16px rgb(20 30 26 / .12)}
@media(max-width:680px){.reservation-v112-summary .date-choice>.localized-date-control{width:154px;flex-basis:154px}.calendar-reference-date{min-width:142px!important}}

/* v15.83 Financial Truth Recovery */
.financial-truth-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px}.financial-truth-grid>div{display:grid;gap:3px;padding:10px 11px;border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-surface-soft);min-width:0}.financial-truth-grid span{font-size:10px;font-weight:700;color:var(--ds-muted)}.financial-truth-grid strong{font-size:15px;white-space:nowrap}.financial-truth-grid .financial-truth-due{border-color:color-mix(in srgb,var(--ds-warning) 45%,var(--ds-border));background:color-mix(in srgb,var(--ds-warning) 7%,var(--ds-surface-soft))}.financial-truth-note{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:9px;padding:9px 11px;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface-soft)}.financial-truth-note span{font-size:11px;color:var(--ds-muted);text-align:right}.reservation-financial-truth{border-left:3px solid var(--ds-success)}.folio-stay-truth{border-left:3px solid var(--ds-success)}
@media(max-width:900px){.financial-truth-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.financial-truth-grid .financial-truth-due{grid-column:1/-1}.financial-truth-note{align-items:flex-start;flex-direction:column}.financial-truth-note span{text-align:left}}

/* v15.84 Rooms / Inventory / Housekeeping Truth */
.room-truth-summary{margin-bottom:12px}
.room-card.room-state-ready:before{background:var(--status-available)}
.room-card.room-state-occupied:before{background:var(--status-occupied)}
.room-card.room-state-reserved:before{background:var(--status-reservation)}
.room-card.room-state-dirty:before{background:var(--status-cleaning)}.room-card.room-state-cleaning:before{background:var(--status-cleaning)}.room-card.room-state-inspection:before{background:var(--status-cleaning)}
.room-card.room-state-out_of_order:before{background:var(--status-out-of-order)}
.room-card.room-state-out_of_service:before{background:var(--ds-warning)}
.room-card.room-state-inactive:before{background:var(--ds-muted)}
.room-card.room-state-ready{background:var(--status-available-soft)}
.room-card.room-state-occupied{background:var(--status-occupied-soft)}
.room-card.room-state-out_of_order{background:var(--status-out-of-order-soft)}
.room-card.room-state-out_of_service{background:var(--status-cleaning-soft)}.room-card.room-state-dirty{background:var(--status-cleaning-soft)}.room-card.room-state-cleaning{background:var(--status-cleaning-soft)}.room-card.room-state-inspection{background:var(--status-cleaning-soft)}
.room-mini.out_of_service{background:var(--status-cleaning-soft)}.room-mini.out_of_service:before{background:var(--ds-warning)}

/* v15.88.0 — shared page-state foundation */
.page-state{min-height:116px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;position:relative}.page-state>div>strong{display:block;font-size:13px;color:var(--ds-ink)}.page-state>div>small{display:block;margin-top:4px;color:var(--ds-muted);font-size:10.5px}.page-state-spinner{width:28px;height:28px;border-radius:999px;border:3px solid var(--ds-border);border-top-color:var(--ds-primary);animation:yotta-page-state-spin .8s linear infinite}.page-state-skeleton{grid-column:1/-1;display:grid;grid-template-columns:1.4fr 1fr .7fr;gap:8px}.page-state-skeleton i{height:8px;border-radius:999px;background:var(--ds-surface-soft);overflow:hidden;position:relative}.page-state-skeleton i:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgb(255 255 255 / .52),transparent);animation:yotta-page-state-shimmer 1.25s ease-in-out infinite}.page-state-empty{min-height:130px;text-align:left}.page-state-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface-soft);color:var(--ds-muted);font-size:18px}@keyframes yotta-page-state-spin{to{transform:rotate(360deg)}}@keyframes yotta-page-state-shimmer{to{transform:translateX(100%)}}@media(prefers-reduced-motion:reduce){.page-state-spinner{animation:none}.page-state-skeleton i:after{animation:none}}

/* v16.0.0 — production acceptance / data integrity readiness */
.production-readiness{margin-top:16px;border-width:1px}.production-readiness.ok{border-color:rgba(47,107,95,.35)}.production-readiness.warn{border-color:rgba(245,158,11,.4)}.production-readiness.bad{border-color:rgba(239,68,68,.42)}
.production-readiness-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.production-readiness-kpis>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-subtle,rgba(255,255,255,.025))}.production-readiness-kpis small{display:block;color:var(--muted);margin-bottom:4px}.production-readiness-kpis strong{font-size:1.12rem}
.production-readiness-list{display:grid;gap:10px}.production-readiness-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:12px;border:1px solid var(--line);border-radius:12px}.production-readiness-list>article.blocker{border-color:rgba(239,68,68,.35)}.production-readiness-list>article.warning{border-color:rgba(245,158,11,.32)}.production-readiness-list article small{display:block;color:var(--muted);margin-top:3px}
.production-readiness-samples{grid-column:1/-1;display:grid;gap:6px;margin-top:4px}.production-readiness-samples>div{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.025)}.production-readiness-samples span{display:flex;gap:5px;align-items:baseline}.production-readiness-samples span small{margin:0}.production-readiness-samples span strong{font-size:.9rem}
@media(max-width:900px){.production-readiness-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.production-readiness-kpis{grid-template-columns:1fr}.production-readiness-list>article{grid-template-columns:1fr}.production-readiness-list>article>.badge{justify-self:start}}

/* v16 RC3 · complete-registry pagination */
.list-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.list-pagination .toolbar{margin-left:auto}.list-pagination strong{color:var(--text);font-size:12px;white-space:nowrap}.list-pagination .btn[disabled]{opacity:.42;cursor:not-allowed}@media(max-width:720px){.list-pagination{align-items:stretch;flex-direction:column}.list-pagination .toolbar{margin-left:0;justify-content:space-between;width:100%}}

/* v16.0 RC7 — invoice issuance recovery / VAT clarity */
.invoice-key-field{position:relative;padding:9px 10px;border:1px solid color-mix(in srgb,var(--ds-primary) 28%,var(--ds-border));border-radius:11px;background:color-mix(in srgb,var(--ds-primary-soft) 46%,var(--ds-surface));box-shadow:0 1px 0 rgb(255 255 255 / .7)}
.invoice-key-field>input{border-color:color-mix(in srgb,var(--ds-primary) 34%,var(--ds-border-strong));background:var(--ds-surface)}.invoice-key-field>select{border-color:color-mix(in srgb,var(--ds-primary) 34%,var(--ds-border-strong));background:var(--ds-surface)}.invoice-key-field>.inline-control input{border-color:color-mix(in srgb,var(--ds-primary) 34%,var(--ds-border-strong));background:var(--ds-surface)}
.invoice-key-field:focus-within{border-color:color-mix(in srgb,var(--ds-primary) 58%,var(--ds-border-strong));box-shadow:0 0 0 3px rgb(22 131 74 / .08)}
.invoice-manual-line .invoice-key-field{margin:0;padding:6px 7px;border-radius:9px}
.invoice-vat-rule{display:block;margin-top:2px;color:var(--ds-muted);font-size:8.5px;line-height:1.25}
.invoice-issue-readiness{display:grid;gap:5px;padding:13px 15px;border-radius:12px}.invoice-issue-advisory{display:grid;gap:5px;padding:13px 15px;border-radius:12px}
.invoice-issue-readiness span{font-size:11px;line-height:1.45}.invoice-issue-advisory span{font-size:11px;line-height:1.45}
.invoice-issue-readiness small{color:inherit;opacity:.78}.invoice-issue-advisory small{color:inherit;opacity:.78}
.invoice-issue-advisory{border:1px solid color-mix(in srgb,var(--ds-success) 28%,var(--ds-border));background:var(--ds-success-soft);color:var(--ds-success)}
.invoice-preview-critical{grid-template-columns:repeat(4,minmax(118px,1fr))}
.invoice-preview-critical>span:first-child{grid-column:span 2}
.invoice-preview-critical .vat-nine{border-color:color-mix(in srgb,var(--ds-success) 30%,var(--ds-border));background:var(--ds-success-soft)}
.invoice-preview-critical .vat-twenty{border-color:color-mix(in srgb,var(--ds-info) 28%,var(--ds-border));background:var(--ds-info-soft)}
.invoice-preview-critical .invoice-preview-total{grid-column:span 2;border-color:color-mix(in srgb,var(--ds-primary) 38%,var(--ds-border));background:var(--ds-primary-soft)}
.invoice-preview-critical .invoice-preview-total strong{font-size:15px;color:var(--ds-primary)}
.invoice-auto-materialize-note{display:grid;gap:5px;text-align:left!important;padding:16px 18px!important;background:var(--ds-success-soft);color:var(--ds-ink-secondary)}
.invoice-auto-materialize-note strong{color:var(--ds-success);font-size:12px}
.invoice-auto-materialize-note span{font-size:10px;line-height:1.45}
@media(max-width:900px){.invoice-preview-critical{grid-template-columns:1fr 1fr}.invoice-preview-critical>span:first-child{grid-column:span 2}.invoice-preview-critical .invoice-preview-total{grid-column:span 2}}
@media(max-width:560px){.invoice-preview-critical{grid-template-columns:1fr}.invoice-preview-critical>span:first-child{grid-column:auto}.invoice-preview-critical .invoice-preview-total{grid-column:auto}}

/* v16.0.0 RC8 — invoice projection / atomic issue UX */
.invoice-preview-projection{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 11px;border:1px solid color-mix(in srgb,var(--ds-success) 28%,var(--ds-border));border-radius:10px;background:var(--ds-success-soft)}
.invoice-preview-projection strong{font-size:12px;color:var(--ds-success)}
.invoice-preview-projection span{font-size:11px;color:var(--ds-ink-secondary);text-align:right}
.invoice-compose-line.invoice-projected-room{grid-template-columns:112px minmax(0,1fr) auto auto;cursor:default;border-style:dashed}
.invoice-compose-line.invoice-projected-room:hover{background:var(--ds-success-soft)}
@media(max-width:900px){.invoice-compose-line.invoice-projected-room{grid-template-columns:1fr auto}.invoice-compose-line.invoice-projected-room .invoice-compose-kind{grid-column:1}.invoice-compose-line.invoice-projected-room .invoice-compose-main{grid-column:1}.invoice-compose-line.invoice-projected-room .invoice-compose-amount{grid-column:2;grid-row:1/3}.invoice-preview-projection{align-items:flex-start;flex-direction:column}.invoice-preview-projection span{text-align:left}}

/* v16.0.0 RC9 — simplified invoice/document issuance UX */
.modal.invoice-issue-modal{
  width:min(1180px,calc(100vw - 32px));
  max-height:calc(100vh - 24px);
  border-radius:18px;
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  background:var(--ds-surface-soft);
}
.invoice-issue-modal .modal-head{
  padding:17px 22px 13px;
  background:var(--ds-surface);
}
.invoice-issue-modal .modal-head h2{font-size:21px;font-weight:800;letter-spacing:-.025em}
.invoice-issue-modal .modal-body{
  padding:0 22px 22px;
  overflow:auto;
  background:var(--ds-surface-soft);
}
.invoice-issue-modal .modal-actions{
  position:static;
  padding:13px 22px;
  background:var(--ds-surface);
  border-top:1px solid var(--ds-border);
}
.invoice-issue-modal .modal-actions .modal-cancel{margin-right:auto}
.invoice-issue-modal .modal-actions button[type="submit"]{min-width:172px;min-height:44px;font-weight:800}
.invoice-issue-shell{display:grid;gap:14px}
.invoice-flow-steps{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:11px 8px 5px;color:var(--ds-muted)
}
.invoice-flow-steps span{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:750;white-space:nowrap}
.invoice-flow-steps b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--ds-surface);border:1px solid var(--ds-border);font-size:11px}
.invoice-flow-steps span.active{color:var(--ds-primary)}
.invoice-flow-steps span.active b{background:var(--ds-primary);border-color:var(--ds-primary);color:white}
.invoice-flow-steps em{font-style:normal}
.invoice-flow-steps i{width:54px;height:1px;background:var(--ds-border)}
.invoice-workspace{display:grid;grid-template-columns:minmax(0,1.72fr) minmax(290px,.82fr);gap:16px;align-items:start}
.invoice-main-flow{display:grid;gap:12px;min-width:0}
.invoice-simple-card{
  background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:14px;
  padding:15px 16px;box-shadow:0 1px 2px rgb(18 39 31 / .025)
}
.invoice-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}
.invoice-card-head>div:first-child{display:flex;align-items:flex-start;gap:10px;min-width:0}
.invoice-card-head h3{font-size:14px;line-height:1.2;margin:1px 0 3px;font-weight:850;letter-spacing:-.01em}
.invoice-card-head p{margin:0;color:var(--ds-muted);font-size:11px;line-height:1.45}
.invoice-card-icon{width:25px;height:25px;border-radius:8px;background:var(--ds-primary-soft);color:var(--ds-primary);display:grid;place-items:center;font-weight:900;flex:0 0 auto}
.invoice-smart-badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:var(--ds-success-soft);color:var(--ds-success);font-size:9.5px;font-weight:800;white-space:nowrap}.invoice-vat-chip{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:var(--ds-success-soft);color:var(--ds-success);font-size:9.5px;font-weight:800;white-space:nowrap}
.invoice-vat-chip{background:var(--ds-info-soft);color:var(--ds-info)}
.invoice-simple-card label{display:grid;gap:5px;color:var(--ds-ink-secondary);font-size:10px;font-weight:750}
.invoice-simple-card input{font-size:12px}.invoice-simple-card select{font-size:12px}.invoice-simple-card textarea{font-size:12px}
.invoice-primary-control{gap:6px!important}
.invoice-primary-control>input{margin-bottom:5px}
.invoice-primary-control>select{font-weight:750}
.invoice-recipient-pickers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.invoice-recipient-core{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.invoice-payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.invoice-compact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.invoice-recipient-core{grid-template-columns:1.3fr .9fr;margin-top:10px}
.invoice-recipient-core .wide{grid-column:1/-1}.invoice-compact-grid .wide{grid-column:1/-1}
.invoice-more{margin-top:11px;border-top:1px solid var(--ds-border);padding-top:9px}
.invoice-more>summary{list-style:none;cursor:pointer;color:var(--ds-muted);font-size:10.5px;font-weight:750;display:inline-flex;align-items:center;gap:6px}
.invoice-more>summary::-webkit-details-marker{display:none}
.invoice-more>summary:before{content:'＋';font-size:12px;color:var(--ds-primary)}
.invoice-more[open]>summary:before{content:'−'}
.invoice-more>div{margin-top:10px}
.invoice-lookup-btn{min-width:72px}
.invoice-items-card .invoice-source-composer{margin:0;border:0;border-radius:0;background:transparent;padding:0;gap:10px}
.invoice-items-card .invoice-compose-head{padding:0 0 8px;border-bottom:1px solid var(--ds-border)}
.invoice-items-card .invoice-compose-head strong{font-size:12.5px}
.invoice-items-card .invoice-compose-head span{font-size:10px}
.invoice-items-card .invoice-stay-financial{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0}
.invoice-items-card .invoice-stay-financial .metric{padding:8px 9px}
.invoice-items-card .invoice-stay-financial label{font-size:8.5px}
.invoice-items-card .invoice-stay-financial strong{font-size:12px}
.invoice-items-card .warning-panel{margin:0;padding:9px 10px;border-radius:9px;font-size:10px;line-height:1.4}.invoice-items-card .split-note{margin:0;padding:9px 10px;border-radius:9px;font-size:10px;line-height:1.4}
.invoice-items-card .warning-panel p{margin:4px 0 0;font-size:10px}
.invoice-items-card .invoice-compose-lines{border-radius:10px;border-color:var(--ds-border)}
.invoice-items-card .invoice-compose-line{grid-template-columns:24px 88px minmax(0,1fr) auto auto;gap:9px;padding:9px 10px}
.invoice-items-card .invoice-compose-kind{font-size:8.5px}
.invoice-items-card .invoice-compose-main strong{font-size:11.5px}
.invoice-items-card .invoice-compose-main small{font-size:9.5px}
.invoice-items-card .invoice-compose-amount{font-size:11.5px}
.invoice-items-card .invoice-compose-total{padding-top:8px;gap:18px;font-size:10.5px}
.invoice-items-card .invoice-compose-total strong{font-size:13px}
.invoice-manual-head{padding:0 0 9px;margin:0 0 8px;background:transparent;border:0;border-bottom:1px solid var(--ds-border);border-radius:0}
.invoice-manual-head strong{font-size:12.5px}.invoice-manual-head small{font-size:9.5px;margin-top:2px}
#inv-manual-lines{gap:7px}
.invoice-manual-line{
  position:relative;display:grid;
  grid-template-columns:minmax(190px,1.8fr) 70px 112px 74px 112px 34px;
  gap:7px;align-items:end;padding:9px 10px;border-radius:10px;background:var(--ds-surface);border:1px solid var(--ds-border)
}
.invoice-manual-line label{gap:3px!important;font-size:8.5px!important}
.invoice-manual-line input{min-height:35px;height:35px;padding:6px 8px;font-size:11px}.invoice-manual-line select{min-height:35px;height:35px;padding:6px 8px;font-size:11px}
.invoice-manual-line .im-service{display:grid;grid-template-columns:.85fr 1.15fr;grid-template-rows:auto 35px;column-gap:6px}
.invoice-manual-line .im-service{font-size:0!important}
.invoice-manual-line .im-service:before{content:'Услуга';grid-column:1/-1;font-size:8.5px;color:var(--ds-ink-secondary);font-weight:750;margin-bottom:3px}
.invoice-manual-line .im-service select{grid-row:2}.invoice-manual-line .im-service input{grid-row:2}
.invoice-manual-line .im-vat-field small{font-size:7.5px;color:var(--ds-muted);margin-top:-1px}
.invoice-manual-line .im-total{height:35px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding:4px 8px;border-radius:8px;background:var(--ds-surface-soft)}
.invoice-manual-line .im-total span{font-size:7.5px;color:var(--ds-muted)}
.invoice-manual-line .im-total strong{font-size:11.5px;white-space:nowrap}
.invoice-line-more{position:relative;align-self:end}
.invoice-line-more>summary{list-style:none;width:34px;height:35px;border:1px solid var(--ds-border);border-radius:8px;display:grid;place-items:center;cursor:pointer;font-weight:900;letter-spacing:.08em}
.invoice-line-more>summary::-webkit-details-marker{display:none}
.invoice-line-more>div{position:absolute;right:0;top:calc(100% + 6px);z-index:15;width:220px;padding:10px;background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:10px;box-shadow:var(--shadow-modal);display:grid;grid-template-columns:1fr 1fr;gap:8px}
.invoice-line-more .im-remove{grid-column:1/-1;width:100%;height:34px}
.invoice-manual-total{margin-top:9px;padding:10px 0 0;align-items:baseline;font-size:10.5px}
.invoice-manual-total strong{font-size:17px;color:var(--ds-primary)}
.invoice-side-panel{position:sticky;top:0;display:grid;gap:10px;background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:14px;padding:14px;min-width:0}
.invoice-side-head{display:flex;align-items:center;justify-content:space-between;padding:1px 2px 9px;border-bottom:1px solid var(--ds-border)}
.invoice-side-head>div{display:grid;gap:2px}.invoice-side-head span{font-size:9px;color:var(--ds-muted);font-weight:750;text-transform:uppercase;letter-spacing:.08em}.invoice-side-head strong{font-size:14px}
.invoice-ready-dot{color:var(--ds-success)!important;font-size:11px!important}
.invoice-side-panel .invoice-live-preview{border:0;background:transparent;padding:0;display:block}
.invoice-summary-card{display:grid;gap:12px}
.invoice-summary-recipient{display:grid;gap:3px;padding:11px;background:var(--ds-surface-soft);border-radius:10px}
.invoice-summary-recipient small{font-size:8.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ds-muted);font-weight:800}
.invoice-summary-recipient strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.invoice-summary-recipient span{font-size:9px;line-height:1.35;color:var(--ds-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.invoice-summary-breakdown{display:grid;gap:0;border-top:1px solid var(--ds-border)}
.invoice-summary-breakdown>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 2px;border-bottom:1px solid var(--ds-border);font-size:10px}
.invoice-summary-breakdown span{color:var(--ds-muted)}.invoice-summary-breakdown b{font-size:11px;color:var(--ds-ink)}
.invoice-summary-tax{font-weight:800}.invoice-summary-tax span{color:var(--ds-ink-secondary)}
.invoice-summary-total{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:12px;border-radius:10px;background:var(--ds-primary-soft);border:1px solid color-mix(in srgb,var(--ds-primary) 25%,var(--ds-border))}
.invoice-summary-total span{font-size:10px;font-weight:800;color:var(--ds-primary)}
.invoice-summary-total strong{font-size:21px;line-height:1;color:var(--ds-primary);letter-spacing:-.025em}
.invoice-side-panel .invoice-preview-projection{display:grid;gap:3px;padding:8px 9px;border-radius:8px}
.invoice-side-panel .invoice-preview-projection strong{font-size:9.5px}.invoice-side-panel .invoice-preview-projection span{text-align:left;font-size:8.5px}
.invoice-side-help{padding:9px 10px;border-radius:9px;background:var(--ds-surface-soft);color:var(--ds-muted);font-size:9px;line-height:1.45}
.invoice-side-help strong{color:var(--ds-ink-secondary)}
.invoice-draft-button{width:100%;min-height:38px;background:var(--ds-surface)}
.invoice-issue-modal .invoice-issue-readiness{margin-top:12px;padding:10px 12px}.invoice-issue-modal .invoice-issue-advisory{margin-top:12px;padding:10px 12px}
.invoice-issue-modal .invoice-issue-readiness strong{font-size:11px}.invoice-issue-modal .invoice-issue-advisory strong{font-size:11px}
.invoice-issue-modal .invoice-issue-readiness span{font-size:9.5px}.invoice-issue-modal .invoice-issue-advisory span{font-size:9.5px}

/* Billing center: calmer primary navigation */
.yotta-billing-head h1{font-size:clamp(28px,2.6vw,40px)}
.yotta-billing-head p{max-width:760px}
.yotta-billing-tabs{gap:4px;padding:4px;border:1px solid var(--ds-border);border-radius:11px;background:var(--ds-surface-soft)}
.yotta-billing-tabs button{border-radius:8px;padding:8px 11px;font-size:11px}

@media(max-width:980px){
  .modal.invoice-issue-modal{width:min(920px,calc(100vw - 18px))}
  .invoice-workspace{grid-template-columns:1fr}
  .invoice-side-panel{position:static;grid-template-columns:1fr}
  .invoice-items-card .invoice-stay-financial{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .modal.invoice-issue-modal{width:100%;max-height:95vh;border-radius:18px 18px 0 0}
  .invoice-issue-modal .modal-head{padding:14px 16px 10px}
  .invoice-issue-modal .modal-body{padding:0 12px 14px}
  .invoice-issue-modal .modal-actions{padding:10px 12px}
  .invoice-flow-steps i{width:24px}.invoice-flow-steps em{font-size:10px}
  .invoice-recipient-pickers{grid-template-columns:1fr}.invoice-recipient-core{grid-template-columns:1fr}.invoice-payment-grid{grid-template-columns:1fr}.invoice-compact-grid{grid-template-columns:1fr}
  .invoice-recipient-core .wide{grid-column:auto}.invoice-compact-grid .wide{grid-column:auto}
  .invoice-manual-line{grid-template-columns:minmax(0,1fr) 68px 92px 70px 34px}
  .invoice-manual-line .im-service{grid-column:1/-1}
  .invoice-manual-line .im-total{grid-column:1/5;grid-row:auto;align-items:flex-start}
  .invoice-line-more{grid-column:5}
  .invoice-card-head{align-items:flex-start}.invoice-smart-badge{display:none}.invoice-vat-chip{display:none}
}
@media(max-width:520px){
  .invoice-flow-steps{justify-content:flex-start;overflow:auto}
  .invoice-simple-card{padding:12px}
  .invoice-manual-line{grid-template-columns:1fr 1fr}
  .invoice-manual-line .im-service{grid-column:1/-1}.invoice-manual-line .im-total{grid-column:1/-1}
  .invoice-line-more{grid-column:2;justify-self:end}
  .invoice-issue-modal .modal-actions{flex-direction:row;align-items:center}
  .invoice-issue-modal .modal-actions .modal-cancel{width:auto;order:1}
  .invoice-issue-modal .modal-actions button[type="submit"]{width:auto;flex:1;order:2}
}
.invoice-source-mini{margin-top:12px;padding:12px 14px;border:1px solid #dce5df;border-radius:12px;background:#f8faf8;color:#44514b;font-size:12.5px;display:grid;gap:10px}
.invoice-source-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.invoice-source-mini-grid small{color:#6e7b75}.invoice-source-mini-note{color:#6e7b75}
.invoice-source-mini-grid strong{display:block;font-size:16px;color:#17211d;margin-top:3px}
.invoice-compose-helper{padding:12px 14px;border:1px solid #e4dcc5;background:#fffaf0;border-radius:12px;display:grid;gap:6px}
.invoice-compose-helper strong{color:#9b6a10}
.invoice-compose-helper span{color:#5f5646;font-size:12.5px;line-height:1.45}
@media(max-width:760px){.invoice-source-mini-grid{grid-template-columns:1fr}}
.reservation-room-availability-results.auto-suggestions{border-color:#d9c27a;background:#fffcf2;box-shadow:0 0 0 1px rgba(185,149,63,.06) inset}
.reservation-room-availability-results.auto-suggestions .reservation-room-availability-head{background:#fff8e6}
.reservation-room-choice-side{display:grid;justify-items:end;gap:6px;flex:0 0 auto;min-width:112px}
.reservation-room-choice-price{display:grid;justify-items:end;gap:2px}
.reservation-room-choice-price strong{font-size:14px;color:var(--ds-text)}
.reservation-room-choice-price small{font-size:10.5px;color:var(--ds-muted)}
.reservation-room-choice-meta{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:1px}
.reservation-room-choice-meta small{font-size:10.5px;color:var(--ds-muted)}
.quote-panel small{display:block;margin-top:6px;color:var(--ds-muted);font-size:11px;line-height:1.45}
@media(max-width:680px){.reservation-room-choice-side{width:100%;justify-items:start;min-width:0}.reservation-room-choice-price{justify-items:start}.reservation-room-choice-meta{flex-direction:column;gap:3px}}
.reservation-room-filterbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 11px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface)}
.reservation-room-filterbar>span{font-size:10.5px;font-weight:800;color:var(--ds-muted);text-transform:uppercase;letter-spacing:.04em}
.reservation-room-filterbar label{display:flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--ds-border);border-radius:999px;background:var(--ds-surface-soft);font-size:10.5px;font-weight:750;cursor:pointer}
.reservation-room-filterbar label.disabled{opacity:.48;cursor:not-allowed}
.reservation-room-filterbar input{width:14px;height:14px;margin:0;accent-color:var(--ds-primary)}
.reservation-room-choice.best-alternative{background:#f3fbf6;box-shadow:inset 3px 0 0 var(--ds-primary)}
.reservation-room-choice-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.reservation-room-choice-title .badge{font-size:9px;padding:3px 6px}
.reservation-employer-note{margin:0;padding:9px 11px;border-top:1px solid var(--ds-border);font-size:10.5px;line-height:1.45;color:var(--ds-muted);background:#f7f9ff}
@media(max-width:680px){.reservation-room-filterbar{align-items:stretch}.reservation-room-filterbar>span{width:100%}.reservation-room-filterbar label{justify-content:center}.reservation-room-filterbar .btn{justify-content:center}.reservation-room-choice-title{align-items:flex-start}}
.reservation-inhouse-account{display:grid;gap:14px;border:1px solid #d9e4de;background:linear-gradient(180deg,#fbfdfc 0%,#f6faf8 100%)}
.reservation-inhouse-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.reservation-inhouse-head h3{margin:2px 0 4px;font-size:17px}.reservation-inhouse-head p{margin:0;color:var(--muted);font-size:12px}
.reservation-inhouse-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.reservation-inhouse-kpis>div{padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;display:grid;gap:3px}
.reservation-inhouse-kpis small{font-size:10px;color:var(--muted)}.reservation-inhouse-kpis strong{font-size:15px}.reservation-inhouse-kpis .due{border-color:#e3bd70;background:#fffaf0}.reservation-inhouse-kpis .due strong{font-size:17px}
.reservation-inhouse-actions{display:flex;flex-wrap:wrap;gap:7px}.reservation-inhouse-recent{border-top:1px solid var(--line);padding-top:10px}.reservation-inhouse-recent .section-head{margin-bottom:4px}.reservation-inhouse-recent h4{margin:0}.reservation-inhouse-recent .section-head span{font-size:10px;color:var(--muted)}
.reservation-inhouse-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--line)}.reservation-inhouse-row:last-child{border-bottom:0}.reservation-inhouse-row>span{display:grid;gap:2px}.reservation-inhouse-row small{font-size:10px;color:var(--muted)}
.in-house-charge-sheet{display:grid;gap:14px}.in-house-charge-context{display:grid;grid-template-columns:1fr 1fr;gap:8px}.in-house-charge-context>div{border:1px solid var(--line);border-radius:11px;background:var(--surface-soft,#f7faf8);padding:10px 12px;display:grid;gap:2px}.in-house-charge-context small{font-size:10px;color:var(--muted)}.in-house-charge-context span{font-size:10px;color:var(--muted)}.in-house-charge-context strong{font-size:13px}
.in-house-charge-categories{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.in-house-charge-categories label{margin:0;cursor:pointer}.in-house-charge-categories input{position:absolute;opacity:0;pointer-events:none}.in-house-charge-categories span{min-height:58px;border:1px solid var(--line);border-radius:11px;background:#fff;display:grid;place-items:center;align-content:center;gap:3px;text-align:center;padding:7px;font-size:10px;font-weight:750}.in-house-charge-categories b{font-size:17px;line-height:1}.in-house-charge-categories input:checked+span{border-color:var(--ds-primary,#0e7a43);background:#eff9f3;color:var(--ds-primary,#0e7a43);box-shadow:0 0 0 1px var(--ds-primary,#0e7a43) inset}.in-house-charge-categories label:hover span{background:#f8fbf9}
.in-house-charge-fields{margin:0}.in-house-charge-total{display:flex;justify-content:space-between;gap:16px;border:1px solid #d8e3dd;border-radius:12px;background:#f7faf8;padding:12px 14px}.in-house-charge-total>div{display:grid;gap:2px}.in-house-charge-total>div:last-child{text-align:right}.in-house-charge-total small{font-size:10px;color:var(--muted)}.in-house-charge-total span{font-size:10px;color:var(--muted)}.in-house-charge-total strong{font-size:15px}.in-house-charge-total #in-house-charge-total{font-size:22px;color:var(--ds-primary,#0e7a43)}
.in-house-employer-note{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #eadbb8;background:#fffaf0;border-radius:12px;padding:11px 12px}.in-house-employer-note>div{display:grid;gap:2px}.in-house-employer-note span{font-size:10px;color:#76694d}.in-house-employer-note small{font-size:10px;color:#76694d}.in-house-employer-note .btn{flex:0 0 auto}
@media(max-width:980px){.reservation-inhouse-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.in-house-charge-categories{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.reservation-inhouse-kpis{grid-template-columns:1fr 1fr}.reservation-inhouse-kpis .due{grid-column:1/-1}.reservation-inhouse-head{align-items:stretch;flex-direction:column}.in-house-employer-note{align-items:stretch;flex-direction:column}.in-house-charge-total{align-items:stretch;flex-direction:column}.in-house-charge-context{grid-template-columns:1fr}.in-house-charge-categories{grid-template-columns:repeat(2,minmax(0,1fr))}.in-house-charge-total>div:last-child{text-align:left}.reservation-inhouse-actions .btn{flex:1 1 45%}}

/* ========================================================================== 
   v16.0.0 RC14 — Professional Room Planner calendar visual system
   Visual-only refinement: operational calendar behavior remains unchanged.
   ========================================================================== */
.calendar-rc14-shell{--calendar-room-rail:232px;--classic-room-rail:var(--calendar-room-rail);--classic-row-height:60px;gap:10px;min-height:calc(100vh - 112px)}
.calendar-rc14-shell .calendar-reference-head{align-items:center;gap:14px}
.calendar-rc14-shell .calendar-reference-copy h1{font-size:clamp(1.5rem,1.7vw,1.85rem);font-weight:760;letter-spacing:-.035em}
.calendar-rc14-shell .calendar-reference-hints{margin-top:5px;gap:7px;font-size:11px;line-height:1.35}
.calendar-rc14-shell .calendar-reference-primary-hint{color:var(--ds-muted)}
.calendar-rc14-shell .calendar-reference-primary-hint>svg{width:14px;height:14px}
.calendar-rc14-shell .calendar-help-menu{position:relative;color:var(--ds-muted)}
.calendar-rc14-shell .calendar-help-menu>summary{list-style:none;cursor:pointer;font-size:10px;font-weight:700;color:var(--ds-primary)}
.calendar-rc14-shell .calendar-help-menu>summary::-webkit-details-marker{display:none}
.calendar-rc14-shell .calendar-help-menu[open] .calendar-reference-shortcuts{position:absolute;left:0;top:calc(100% + 7px);z-index:90;width:max-content;max-width:min(680px,75vw);padding:9px 11px;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface);box-shadow:var(--shadow-md)}
.calendar-rc14-shell .calendar-help-menu:not([open]) .calendar-reference-shortcuts{display:none}
.calendar-rc14-shell .calendar-reference-new{min-height:40px;height:40px;padding:0 14px;border-radius:8px}

.calendar-rc14-shell .calendar-reference-toolbar{gap:9px;padding:7px 8px;border:1px solid var(--ds-border);border-radius:11px;background:var(--ds-surface);box-shadow:0 1px 3px rgb(17 32 24 / .03)}
.calendar-rc14-shell .calendar-reference-nav{height:38px;border-radius:7px}
.calendar-rc14-shell .calendar-reference-nav-btn{width:38px;font-size:23px}
.calendar-rc14-shell .calendar-reference-focus{min-width:108px;padding:0 12px;font-size:11.5px}
.calendar-rc14-shell .calendar-reference-date{width:40px}
.calendar-rc14-shell .calendar-reference-toolbar-right{gap:7px}
.calendar-period-switch{display:inline-flex;height:38px;align-items:stretch;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface-soft);overflow:hidden;flex:0 0 auto}.calendar-toolbar-zoom{display:inline-flex;height:38px;align-items:stretch;border:1px solid var(--ds-border);border-radius:7px;background:var(--ds-surface-soft);overflow:hidden;flex:0 0 auto}
.calendar-period-switch button{min-width:35px;border:0;border-left:1px solid var(--ds-border);background:transparent;padding:0 8px;color:var(--ds-muted);font:700 10px/1 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer}.calendar-toolbar-zoom button{min-width:35px;border:0;border-left:1px solid var(--ds-border);background:transparent;padding:0 8px;color:var(--ds-muted);font:700 10px/1 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer}
.calendar-period-switch button:first-child{border-left:0}.calendar-toolbar-zoom button:first-child{border-left:0}
.calendar-period-switch button:hover{background:var(--ds-surface);color:var(--ds-ink)}.calendar-toolbar-zoom button:hover{background:var(--ds-surface);color:var(--ds-ink)}
.calendar-period-switch button.active{background:var(--ds-primary);color:#fff}
.calendar-toolbar-zoom output{min-width:48px;display:grid;place-items:center;border-left:1px solid var(--ds-border);color:var(--ds-muted);font-size:9.5px;font-variant-numeric:tabular-nums}
.calendar-rc14-shell .calendar-reference-search{width:min(320px,30vw);min-width:190px;height:38px;border-radius:7px;padding:0 10px}
.calendar-rc14-shell .calendar-reference-search input{height:36px;font-size:11px}
.calendar-rc14-shell .calendar-reference-settings-btn{width:auto;min-width:78px;height:38px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border-radius:7px;font-size:10px;font-weight:760}
.calendar-rc14-shell .calendar-reference-settings-btn svg{width:16px;height:16px}
.calendar-settings-zoom-note{padding:7px 8px;border-radius:7px;background:var(--ds-surface-soft);color:var(--ds-muted);font-size:9px}

.calendar-rc14-shell .calendar-reference-context{min-height:26px;margin-top:-1px;gap:5px;font-size:9.5px}
.calendar-rc14-shell .calendar-context-stat{min-height:22px;padding:2px 7px;border-radius:999px;font-size:9px}.calendar-rc14-shell .calendar-filter-chip{min-height:22px;padding:2px 7px;border-radius:999px;font-size:9px}
.calendar-rc14-shell .calendar-filter-chip{border-color:color-mix(in srgb,var(--ds-primary) 30%,var(--ds-border));background:color-mix(in srgb,var(--ds-primary) 6%,var(--ds-surface));color:var(--ds-primary);font-weight:780}
.calendar-rc14-shell .calendar-filter-clear{min-height:22px;font-size:9px}

.calendar-rc14-shell .classic-calendar-panel{border-radius:11px;border-color:var(--ds-border);box-shadow:0 4px 18px rgb(17 32 24 / .045)}
.calendar-rc14-shell .classic-calendar-scroll{background:var(--ds-surface);min-height:440px}
.calendar-rc14-shell .classic-calendar-month-axis{height:26px;background:var(--ds-surface-soft)}
.calendar-rc14-shell .classic-calendar-day-axis{top:26px;height:38px;box-shadow:0 1px 0 var(--ds-border)}
.calendar-rc14-shell .classic-calendar-room-axis{padding:0 13px;color:var(--ds-ink-secondary);font-size:10.5px;font-weight:780}
.calendar-rc14-shell .classic-calendar-month{font-size:9.5px;font-weight:700}
.calendar-rc14-shell .classic-calendar-day{gap:5px;color:var(--ds-muted)}
.calendar-rc14-shell .classic-calendar-day small{font-size:9px;font-weight:650}
.calendar-rc14-shell .classic-calendar-day strong{font-size:12px;font-weight:780}
.calendar-rc14-shell .classic-calendar-day.today{background:color-mix(in srgb,var(--ds-primary) 8%,var(--ds-surface));color:var(--ds-primary)}
.calendar-rc14-shell .classic-calendar-day.today:after{content:'';position:absolute;left:22%;right:22%;bottom:0;height:2px;border-radius:999px;background:var(--ds-primary)}

.calendar-rc14-shell .classic-calendar-group-label{width:var(--classic-room-rail);height:26px;padding:0 12px;border-color:var(--ds-border);background:color-mix(in srgb,var(--ds-surface-soft) 84%,var(--ds-surface));color:var(--ds-muted);font-size:8px;font-weight:760;letter-spacing:.055em}
.calendar-rc14-shell .classic-calendar-section-row.primary{background:color-mix(in srgb,var(--ds-primary-soft) 30%,var(--ds-surface-soft));color:var(--ds-ink-secondary)}
.calendar-rc14-shell .classic-calendar-section-row.primary strong{font-size:9px}
.calendar-rc14-shell .classic-calendar-section-row.secondary{height:22px;background:var(--ds-surface-soft)}

.calendar-rc14-shell.calendar-density-comfortable .calendar-row{min-height:60px;height:60px}
.calendar-rc14-shell.calendar-density-comfortable .calendar-room{min-height:60px;height:60px}.calendar-rc14-shell.calendar-density-comfortable .calendar-cell{min-height:60px;height:60px}
.calendar-rc14-shell.calendar-density-compact{--classic-row-height:48px}
.calendar-rc14-shell.calendar-density-compact .calendar-row{min-height:48px;height:48px}
.calendar-rc14-shell.calendar-density-compact .calendar-room{min-height:48px;height:48px}.calendar-rc14-shell.calendar-density-compact .calendar-cell{min-height:48px;height:48px}
.calendar-rc14-shell .calendar-row{background:var(--ds-surface);border-bottom-color:color-mix(in srgb,var(--ds-border) 82%,transparent)}
.calendar-rc14-shell .calendar-row:hover{background:color-mix(in srgb,var(--ds-primary-soft) 14%,var(--ds-surface))}
.calendar-rc14-shell .calendar-room{width:var(--classic-room-rail);min-width:var(--classic-room-rail);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 11px 7px 13px;background:inherit;border-right:1px solid var(--ds-border);box-shadow:8px 0 16px -19px rgb(15 28 21 / .55)}
.calendar-rc14-shell .calendar-room:hover{background:var(--ds-surface-hover)}
.calendar-rc14-shell .calendar-room-identity{display:flex!important;align-items:center;gap:10px;min-width:0;flex:1}
.calendar-rc14-shell .calendar-room-number{min-width:43px;color:var(--ds-ink);font-size:16px;font-weight:820;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.calendar-rc14-shell .calendar-room-meta{display:grid;min-width:0;gap:2px}
.calendar-rc14-shell .calendar-room-meta strong{max-width:106px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ds-ink-secondary);font-size:10.5px;font-weight:740}
.calendar-rc14-shell .calendar-room-meta small{max-width:106px;margin:0;color:var(--ds-muted);font-size:8.5px}
.calendar-rc14-shell .calendar-room-status{display:inline-flex;min-height:23px;max-width:84px;align-items:center;gap:5px;border:1px solid var(--ds-border);border-radius:999px;padding:2px 7px;background:var(--ds-surface-soft);font-size:8px;font-weight:780}
.calendar-rc14-shell .calendar-room-status i{width:6px;height:6px;border-radius:999px;background:currentColor;flex:0 0 auto}

.calendar-rc14-shell .calendar-cell{position:relative;border-right-color:color-mix(in srgb,var(--ds-border) 68%,transparent);background:transparent}
.calendar-rc14-shell .calendar-cell.weekend:not(.today-column){background:color-mix(in srgb,var(--ds-surface-soft) 40%,transparent)}
.calendar-rc14-shell .calendar-cell.today-column{background:color-mix(in srgb,var(--ds-primary) 4.5%,transparent);box-shadow:inset 1px 0 0 color-mix(in srgb,var(--ds-primary) 18%,transparent),inset -1px 0 0 color-mix(in srgb,var(--ds-primary) 18%,transparent)}
.calendar-rc14-shell .calendar-cell.calendar-selectable:hover{background:color-mix(in srgb,var(--ds-primary) 8%,var(--ds-surface))}

.calendar-rc14-shell .calendar-res{height:42px;margin:0 4px;border-radius:8px;padding:5px 8px 5px 12px;background:var(--ds-surface);box-shadow:0 1px 3px rgb(17 32 24 / .055);transition:transform .1s ease,box-shadow .1s ease,border-color .1s ease}
.calendar-rc14-shell .calendar-res:hover{z-index:9;transform:translateY(-1px);filter:none;box-shadow:0 5px 14px rgb(17 32 24 / .11)}
.calendar-rc14-shell .calendar-res:before{width:4px}
.calendar-rc14-shell .calendar-res-status{flex:0 0 auto;max-width:72px;margin-right:7px;border-radius:999px;padding:2px 6px;background:color-mix(in srgb,currentColor 8%,transparent);font-size:7px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-rc14-shell .calendar-res-copy strong{font-size:11.5px;line-height:1.15;font-weight:790;color:inherit}
.calendar-rc14-shell .calendar-res-copy small{margin-top:3px;font-size:8.5px;line-height:1.1;opacity:.76}
.calendar-rc14-shell .calendar-res.confirmed{border-color:#CBD9EA;background:#F3F7FC;color:#315F90}
.calendar-rc14-shell .calendar-res.confirmed:before{background:#3B82F6}
.calendar-rc14-shell .calendar-res.checked_in{border-color:#BEDBD4;background:#EEF8F5;color:#2F6B5F}
.calendar-rc14-shell .calendar-res.checked_in:before{background:#2F6B5F}
.calendar-rc14-shell .calendar-res.tentative{border-color:#EAD5AE;background:#FFF8EA;color:#8B5E16}
.calendar-rc14-shell .calendar-res.tentative:before{background:#F59E0B}
.calendar-rc14-shell .calendar-res.checked_out{opacity:.5!important;background:#F5F6F5!important;border-color:#DDE1DE!important;color:#707A74!important;box-shadow:none!important}.calendar-rc14-shell .calendar-res.calendar-history-segment{opacity:.5!important;background:#F5F6F5!important;border-color:#DDE1DE!important;color:#707A74!important;box-shadow:none!important}
.calendar-rc14-shell .calendar-res.checked_out:before{background:#8D9690}.calendar-rc14-shell .calendar-res.calendar-history-segment:before{background:#8D9690}
.calendar-rc14-shell .calendar-res.calendar-selected{outline:2px solid color-mix(in srgb,var(--ds-primary) 78%,#fff);outline-offset:1px;box-shadow:0 6px 18px rgb(14 122 67 / .14)}
.calendar-rc14-shell.calendar-density-compact .calendar-res{height:34px;padding-top:4px;padding-bottom:4px}
.calendar-rc14-shell.calendar-density-compact .calendar-res-status{display:none}
.calendar-rc14-shell.calendar-density-compact .calendar-res-copy strong{font-size:10px}
.calendar-rc14-shell.calendar-density-compact .calendar-res-copy small{display:none}
.calendar-rc14-shell.calendar-density-compact .calendar-room-number{font-size:14px}
.calendar-rc14-shell.calendar-density-compact .calendar-room-meta small{display:none}

.calendar-rc14-shell .calendar-unassigned{display:block;margin:0;border:1px solid var(--ds-border);border-left:3px solid var(--ds-warning);border-radius:10px;background:var(--ds-surface);padding:0;overflow:hidden;box-shadow:0 1px 3px rgb(17 32 24 / .03)}
.calendar-rc14-shell .calendar-unassigned>summary{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 11px;cursor:pointer;background:var(--ds-surface);list-style:none}
.calendar-rc14-shell .calendar-unassigned>summary::-webkit-details-marker{display:none}
.calendar-rc14-shell .calendar-unassigned>summary:hover{background:var(--ds-surface-hover)}
.calendar-rc14-shell .calendar-unassigned>summary span{display:flex;align-items:baseline;gap:8px}
.calendar-rc14-shell .calendar-unassigned>summary strong{font-size:10.5px}
.calendar-rc14-shell .calendar-unassigned>summary small{font-size:9px;color:var(--ds-muted)}
.calendar-rc14-shell .calendar-unassigned>summary em{min-width:22px;min-height:22px;display:grid;place-items:center;border-radius:999px;background:var(--ds-warning);color:#fff;font-size:9px;font-style:normal;font-weight:850}
.calendar-rc14-shell .calendar-unassigned .classic-unassigned-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:7px;padding:8px 10px 10px;border-top:1px solid var(--ds-border);background:var(--ds-surface-soft)}
.calendar-rc14-shell .calendar-unassigned .classic-unassigned-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface);padding:5px}
.calendar-rc14-shell .calendar-unassigned .cal-unassigned{min-width:0;text-align:left;display:grid;gap:2px;justify-items:start}
.calendar-rc14-shell .calendar-unassigned .cal-unassigned strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px}
.calendar-rc14-shell .calendar-unassigned .cal-unassigned small{font-size:8px;color:var(--ds-muted)}

@media(max-width:1180px){
  .calendar-rc14-shell{--calendar-room-rail:208px}
  .calendar-rc14-shell .calendar-reference-toolbar{align-items:stretch;flex-wrap:wrap}
  .calendar-rc14-shell .calendar-reference-toolbar-right{flex-wrap:wrap;justify-content:flex-start}
  .calendar-rc14-shell .calendar-reference-search{order:5;flex:1 1 280px;width:auto;max-width:none}
}
@media(max-width:900px){
  .calendar-rc14-shell{--calendar-room-rail:188px}
  .calendar-rc14-shell .calendar-reference-toolbar{align-items:stretch;flex-direction:column}
  .calendar-rc14-shell .calendar-reference-toolbar-right{width:100%;justify-content:flex-start}
  .calendar-rc14-shell .calendar-reference-search{min-width:240px}
  .calendar-rc14-shell .calendar-room-meta strong{max-width:82px}.calendar-rc14-shell .calendar-room-meta small{max-width:82px}
}
@media(max-width:680px){
  .calendar-rc14-shell{--calendar-room-rail:152px;--classic-row-height:54px}
  .calendar-period-switch{order:2}
  .calendar-toolbar-zoom{order:3}
  .calendar-rc14-shell .calendar-reference-search{order:5;flex-basis:100%;min-width:100%}
  .calendar-rc14-shell .calendar-reference-settings{order:4}
  .calendar-rc14-shell .calendar-reference-settings-btn{min-width:42px}
  .calendar-rc14-shell .calendar-reference-settings-btn span{display:none}
  .calendar-rc14-shell .calendar-room-meta{display:none}
  .calendar-rc14-shell .calendar-room-number{min-width:36px;font-size:14px}
  .calendar-rc14-shell .calendar-room-status{max-width:72px;font-size:7px;padding:2px 5px}
  .calendar-rc14-shell .calendar-unassigned>summary span{display:grid;gap:1px}
  .calendar-rc14-shell .calendar-unassigned .classic-unassigned-list{grid-template-columns:1fr}
}
/* RC15 reservation alternatives simplification */
.quote-panel.is-hidden{display:none!important}
.reservation-room-availability-head.compact-top{margin-bottom:10px}
.reservation-room-filterbar[hidden]{display:none!important}
.reservation-room-more-wrap{display:flex;justify-content:center;padding:10px 0 2px}
.reservation-room-more-wrap .btn{min-width:220px}
.reservation-room-availability-results.auto-suggestions{margin-top:4px}
.reservation-room-availability-results .reservation-room-choice{margin-bottom:10px}
.reservation-room-availability-results .reservation-room-choice:last-child{margin-bottom:0}

/* v16.0.0 RC16 — fluid modern room planner: distinct status colors, no oval UI, fast local zoom */
.calendar-rc16-shell{
  --cal-confirmed:#3B82F6;
  --cal-confirmed-bg:#EAF3FF;
  --cal-confirmed-border:#B8D7FF;
  --cal-checked-in:#179B68;
  --cal-checked-in-bg:#E8F8F1;
  --cal-checked-in-border:#A9E2C9;
  --cal-tentative:#E5A11A;
  --cal-tentative-bg:#FFF5DC;
  --cal-tentative-border:#F1D28A;
  --cal-blocked:#D9534F;
  --cal-blocked-bg:#FDECEC;
  --cal-blocked-border:#F2B9B6;
  --cal-checked-out:#7C8792;
  --cal-checked-out-bg:#F0F2F4;
  --cal-checked-out-border:#D8DDE2;
  --cal-planned:#7C62C8;
  --cal-planned-bg:#F1EEFB;
  --cal-grid:#E7ECE9;
  --calendar-room-rail:236px;
  --classic-room-rail:var(--calendar-room-rail);
  gap:8px;
  min-width:0;
  min-height:calc(100vh - 104px);
}
.calendar-rc16-shell .calendar-reference-head{margin:0 0 2px;align-items:flex-end;gap:14px}
.calendar-rc16-shell .calendar-reference-copy{display:grid;gap:2px}
.calendar-rc16-shell .calendar-reference-copy h1{font-size:clamp(1.65rem,1.9vw,2rem);line-height:1.05;font-weight:790;letter-spacing:-.04em;color:var(--ds-ink)}
.calendar-rc16-shell .calendar-reference-subtitle{margin:0;color:var(--ds-muted);font-size:11.5px;line-height:1.3}
.calendar-rc16-shell .calendar-reference-hints-compact{margin:0;min-height:0}
.calendar-rc16-shell .calendar-help-menu>summary{font-size:9px;color:var(--ds-faint);font-weight:650}
.calendar-rc16-shell .calendar-reference-new{border-radius:8px;box-shadow:none}

.calendar-rc16-shell .calendar-reference-toolbar{padding:7px;border:1px solid var(--cal-grid);border-radius:10px;background:var(--ds-surface);box-shadow:0 2px 8px rgb(22 36 29 / .035)}
.calendar-rc16-shell .calendar-reference-nav{border-radius:7px;border-color:var(--cal-grid);box-shadow:none}
.calendar-rc16-shell .calendar-reference-nav-btn{background:var(--ds-surface)}.calendar-rc16-shell .calendar-reference-focus{background:var(--ds-surface)}
.calendar-rc16-shell .calendar-reference-nav-btn:hover{background:#F5F8F6}.calendar-rc16-shell .calendar-reference-focus:hover{background:#F5F8F6}
.calendar-rc16-shell .calendar-period-switch{gap:3px;padding:3px;border:1px solid var(--cal-grid);border-radius:8px;background:#F7F9F8}
.calendar-rc16-shell .calendar-period-btn{min-width:58px;height:31px;border:0;border-radius:6px;background:transparent;color:var(--ds-muted);font-size:9.5px;font-weight:730;box-shadow:none}
.calendar-rc16-shell .calendar-period-btn:hover{background:#EEF3F0;color:var(--ds-ink-secondary)}
.calendar-rc16-shell .calendar-period-btn.active{background:#0F6E54;color:#fff;box-shadow:0 1px 3px rgb(15 110 84 / .16)}
.calendar-rc16-shell .calendar-toolbar-zoom{height:38px;border:1px solid var(--cal-grid);border-radius:8px;background:var(--ds-surface);overflow:hidden}
.calendar-rc16-shell .calendar-toolbar-zoom button{width:34px;height:36px;border:0;border-radius:0;background:transparent;color:var(--ds-muted)}
.calendar-rc16-shell .calendar-toolbar-zoom button:hover{background:#F3F6F4;color:var(--ds-ink)}
.calendar-rc16-shell .calendar-toolbar-zoom output{min-width:52px;padding:0 8px;border-left:1px solid var(--cal-grid);border-right:1px solid var(--cal-grid);font-size:10px;font-weight:760;color:var(--ds-ink-secondary);font-variant-numeric:tabular-nums}
.calendar-rc16-shell .calendar-reference-search{border-color:var(--cal-grid);border-radius:8px;background:#FBFCFB;box-shadow:none}
.calendar-rc16-shell .calendar-reference-search:focus-within{border-color:color-mix(in srgb,var(--ds-primary) 42%,var(--cal-grid));box-shadow:0 0 0 3px rgb(15 110 84 / .08)}
.calendar-rc16-shell .calendar-reference-settings-btn{border-color:var(--cal-grid);border-radius:8px;background:var(--ds-surface);color:var(--ds-ink-secondary)}
.calendar-rc16-shell .calendar-reference-settings-btn:hover{border-color:#B7C8C0;background:#F6F9F7}

.calendar-rc16-shell .calendar-reference-context{margin:0;gap:5px;min-height:24px}
.calendar-rc16-shell .calendar-context-stat{min-height:23px;padding:3px 7px;border-radius:8px;border-color:var(--cal-grid);background:#F8FAF9;font-size:9px}.calendar-rc16-shell .calendar-filter-chip{min-height:23px;padding:3px 7px;border-radius:8px;border-color:var(--cal-grid);background:#F8FAF9;font-size:9px}
.calendar-rc16-shell .calendar-filter-chip{background:#EEF7F3;border-color:#CFE3D9;color:#176F56}
.calendar-rc16-shell .calendar-filter-clear{border-radius:6px}

.calendar-rc16-shell .calendar-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;min-height:0;align-items:start}
.calendar-rc16-shell .calendar-workspace.has-inbox{grid-template-columns:minmax(0,1fr) minmax(270px,310px)}
.calendar-rc16-shell .calendar-workspace .calendar-panel{min-width:0;min-height:560px}
.calendar-rc16-shell .classic-calendar-panel{border-color:var(--cal-grid);border-radius:10px;box-shadow:0 3px 14px rgb(20 34 27 / .04)}
.calendar-rc16-shell .classic-calendar-scroll{min-height:560px;background:#fff;scrollbar-width:thin;scrollbar-color:#C6D1CB transparent;touch-action:pan-x pan-y;scroll-behavior:auto}
.calendar-rc16-shell .classic-calendar-scroll::-webkit-scrollbar{width:9px;height:9px}
.calendar-rc16-shell .classic-calendar-scroll::-webkit-scrollbar-thumb{background:#C6D1CB;border:2px solid #fff;border-radius:7px}
.calendar-rc16-shell .classic-calendar-scroll::-webkit-scrollbar-track{background:transparent}
.calendar-rc16-shell .classic-calendar-group{content-visibility:auto;contain-intrinsic-size:auto 360px}

.calendar-rc16-shell .classic-calendar-day-axis{height:54px!important;top:0!important;background:#FBFCFB;border-bottom:1px solid var(--cal-grid);box-shadow:none}
.calendar-rc16-shell .classic-calendar-room-axis{background:#FBFCFB;border-right-color:var(--cal-grid);font-size:10px;font-weight:760;color:#4E5C55}
.calendar-rc16-shell .classic-calendar-day{background:#FBFCFB;border-right:1px solid var(--cal-grid)!important;color:#617069;gap:3px}
.calendar-rc16-shell .classic-calendar-day small{font-size:8.5px;font-weight:720;color:#7A8881}
.calendar-rc16-shell .classic-calendar-day strong{font-size:12px;font-weight:780;color:#394840}
.calendar-rc16-shell .classic-calendar-day.weekend:not(.today){background:#FAFBFA;color:#8E9893}
.calendar-rc16-shell .classic-calendar-day.today{background:#ECF8F2;color:#0F6E54}
.calendar-rc16-shell .classic-calendar-day.today strong{color:#0F6E54}
.calendar-rc16-shell .classic-calendar-day.today:after{left:calc(50% - 2px);right:auto;bottom:5px;width:4px;height:4px;border-radius:50%;background:#179B68}
.calendar-rc16-shell .classic-calendar-day.focus-date:not(.today)::after{left:22%;right:22%;bottom:0;height:2px;border-radius:2px;background:#92A49B}

.calendar-rc16-shell .classic-calendar-group-label.primary{height:24px;background:#F6F8F7;border-color:var(--cal-grid)}
.calendar-rc16-shell .classic-calendar-group-label.secondary{height:20px;background:#FBFCFB;border-color:var(--cal-grid)}
.calendar-rc16-shell .classic-calendar-section-rail{border-right-color:var(--cal-grid);padding:0 11px}
.calendar-rc16-shell .classic-calendar-section-title strong{font-size:9px;letter-spacing:.08em;color:#67766E}
.calendar-rc16-shell .classic-calendar-section-dot{width:5px;height:5px;flex-basis:5px;border-radius:50%;background:#179B68}

.calendar-rc16-shell.calendar-density-comfortable{--classic-row-height:58px}
.calendar-rc16-shell.calendar-density-comfortable .calendar-row{height:58px;min-height:58px}.calendar-rc16-shell.calendar-density-comfortable .calendar-room{height:58px;min-height:58px}.calendar-rc16-shell.calendar-density-comfortable .calendar-cell{height:58px;min-height:58px}
.calendar-rc16-shell.calendar-density-compact{--classic-row-height:46px}
.calendar-rc16-shell.calendar-density-compact .calendar-row{height:46px;min-height:46px}.calendar-rc16-shell.calendar-density-compact .calendar-room{height:46px;min-height:46px}.calendar-rc16-shell.calendar-density-compact .calendar-cell{height:46px;min-height:46px}
.calendar-rc16-shell .calendar-row{border-bottom:1px solid var(--cal-grid);background:#fff}
.calendar-rc16-shell .calendar-row:hover{background:#FCFDFC}
.calendar-rc16-shell .calendar-room{background:#fff;border-right-color:var(--cal-grid);padding:7px 10px 7px 12px;box-shadow:5px 0 12px -14px rgb(20 36 28 / .45)}
.calendar-rc16-shell .calendar-room:hover{background:#F7FAF8}
.calendar-rc16-shell .calendar-room-number{min-width:40px;font-size:15px;font-weight:820;color:#1B2A23}
.calendar-rc16-shell .calendar-room-meta{gap:1px}
.calendar-rc16-shell .calendar-room-meta strong{font-size:9.5px;color:#4E5C55}
.calendar-rc16-shell .calendar-room-meta small{font-size:8px;color:#87928C}
.calendar-rc16-shell .calendar-room-status{min-height:21px;max-width:88px;gap:5px;border-radius:6px;padding:2px 6px;border-color:#DCE4E0;background:#F6F8F7;font-size:7.5px;font-weight:780;box-shadow:none}
.calendar-rc16-shell .calendar-room-status i{width:5px;height:5px;border-radius:50%}
.calendar-rc16-shell .calendar-room-status.hk-inspected{border-color:#BFE2D0;background:#EAF7F0;color:#178759}
.calendar-rc16-shell .calendar-room-status.hk-occupied{border-color:#BDD6F8;background:#EEF5FE;color:#2D6DB9}
.calendar-rc16-shell .calendar-room-status.hk-dirty{border-color:#EED59B;background:#FFF8E7;color:#9B6A0C}.calendar-rc16-shell .calendar-room-status.hk-cleaning{border-color:#EED59B;background:#FFF8E7;color:#9B6A0C}.calendar-rc16-shell .calendar-room-status.hk-inspection{border-color:#EED59B;background:#FFF8E7;color:#9B6A0C}
.calendar-rc16-shell .calendar-room-status.hk-out_of_order{border-color:#F0B8B4;background:#FDEEEE;color:#B43F3A}
.calendar-rc16-shell .calendar-room-status.hk-out_of_service{border-color:#EED59B;background:#FFF8E7;color:#9B6A0C}

.calendar-rc16-shell .calendar-cell{border-right:1px solid var(--cal-grid)!important;background:#fff;background-image:none!important}
.calendar-rc16-shell .calendar-cell::after{background:transparent!important}
.calendar-rc16-shell .calendar-cell.weekend:not(.today-column){background:#FBFCFB}
.calendar-rc16-shell .calendar-cell.today-column{background:#F1FAF6!important;box-shadow:inset 1px 0 0 #CFEADD,inset -1px 0 0 #CFEADD}
.calendar-rc16-shell .calendar-cell.calendar-selectable:hover{background:#EDF8F3!important}
.calendar-rc16-shell .classic-calendar-hover-column{background:rgb(23 155 104 / .035);border-color:rgb(23 155 104 / .09)}

.calendar-rc16-shell .calendar-res{height:40px;margin:0 4px;border-radius:7px;padding:5px 8px 5px 11px;box-shadow:0 1px 3px rgb(22 36 29 / .06);color:#24372E;transition:transform .08s ease,box-shadow .08s ease,border-color .08s ease}
.calendar-rc16-shell .calendar-res:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgb(21 35 28 / .11)}
.calendar-rc16-shell .calendar-res:before{width:3px}
.calendar-rc16-shell .calendar-res-status{top:5px;right:6px;max-width:76px;border-radius:5px;padding:1px 5px;font-size:7px;line-height:1.2;font-weight:820;box-shadow:none}
.calendar-rc16-shell .calendar-res-copy strong{font-size:10.5px;line-height:1.15;font-weight:800;color:#203129}
.calendar-rc16-shell .calendar-res-copy small{font-size:7.8px;line-height:1.2;color:#5C6B63;opacity:.88}
.calendar-rc16-shell .calendar-res.confirmed{border-color:var(--cal-confirmed-border);background:var(--cal-confirmed-bg);color:#255F9F}
.calendar-rc16-shell .calendar-res.confirmed:before{background:var(--cal-confirmed)}
.calendar-rc16-shell .calendar-res.confirmed .calendar-res-status{border-color:#B5D4FF;background:#DDEBFF;color:#2261AA}
.calendar-rc16-shell .calendar-res.checked_in{border-color:var(--cal-checked-in-border);background:var(--cal-checked-in-bg);color:#116D4A}
.calendar-rc16-shell .calendar-res.checked_in:before{background:var(--cal-checked-in)}
.calendar-rc16-shell .calendar-res.checked_in .calendar-res-status{border-color:#A2DBBF;background:#D8F2E6;color:#0F704A}
.calendar-rc16-shell .calendar-res.tentative{border-color:var(--cal-tentative-border);background:var(--cal-tentative-bg);color:#8C5D05}
.calendar-rc16-shell .calendar-res.tentative:before{background:var(--cal-tentative)}
.calendar-rc16-shell .calendar-res.tentative .calendar-res-status{border-color:#EBCF8A;background:#FFF0C8;color:#956205}
.calendar-rc16-shell .calendar-res.checked_out{opacity:.72!important;border-color:var(--cal-checked-out-border)!important;background:var(--cal-checked-out-bg)!important;color:#66717B!important}.calendar-rc16-shell .calendar-res.calendar-history-segment{opacity:.72!important;border-color:var(--cal-checked-out-border)!important;background:var(--cal-checked-out-bg)!important;color:#66717B!important}
.calendar-rc16-shell .calendar-res.checked_out:before{background:var(--cal-checked-out)!important}.calendar-rc16-shell .calendar-res.calendar-history-segment:before{background:var(--cal-checked-out)!important}
.calendar-rc16-shell .calendar-res.checked_out .calendar-res-status{border-color:#D2D8DE;background:#E5E9ED;color:#66717B}.calendar-rc16-shell .calendar-res.calendar-history-segment .calendar-res-status{border-color:#D2D8DE;background:#E5E9ED;color:#66717B}
.calendar-rc16-shell .calendar-res.calendar-scheduled-segment{border-color:#CFC4EE;background:var(--cal-planned-bg);color:#6751A8}
.calendar-rc16-shell .calendar-res.calendar-scheduled-segment:before{background:var(--cal-planned)}
.calendar-rc16-shell .calendar-inventory-block.hard-block{border-color:var(--cal-blocked-border);background:var(--cal-blocked-bg);color:#A83E39}
.calendar-rc16-shell .calendar-inventory-block.hard-block:before{background:var(--cal-blocked)}
.calendar-rc16-shell .calendar-inventory-block.soft-oos{border-color:#EBCF8A;background:#FFF7E3;color:#94620A}

.calendar-rc16-shell .calendar-inbox-side{position:sticky;top:8px;min-width:0;max-height:calc(100vh - 170px);overflow:auto;scrollbar-width:thin;scrollbar-color:#C6D1CB transparent}
.calendar-rc16-shell .calendar-unassigned{margin:0;border:1px solid var(--cal-grid);border-left:0;border-radius:10px;background:#FBFCFB;box-shadow:0 2px 10px rgb(20 34 27 / .035);overflow:hidden}
.calendar-rc16-shell .calendar-unassigned>summary{min-height:50px;padding:10px 11px;background:#FBFCFB;border-bottom:1px solid var(--cal-grid)}
.calendar-rc16-shell .calendar-unassigned>summary span{display:grid;gap:2px;align-items:start}
.calendar-rc16-shell .calendar-unassigned>summary strong{font-size:11px;color:#24352D}
.calendar-rc16-shell .calendar-unassigned>summary small{font-size:8.5px;color:#7A8781}
.calendar-rc16-shell .calendar-unassigned>summary em{min-width:22px;min-height:22px;border-radius:6px;background:#E9F0EC;color:#476057;font-size:9px}
.calendar-rc16-shell .calendar-unassigned .classic-unassigned-list{display:grid;grid-template-columns:1fr;gap:7px;padding:8px;background:#FBFCFB;border-top:0}
.calendar-rc16-shell .calendar-unassigned .calendar-unassigned-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;border:1px solid var(--cal-grid);border-radius:8px;background:#fff;padding:8px;box-shadow:0 1px 2px rgb(20 34 27 / .025)}
.calendar-rc16-shell .calendar-unassigned-main{min-width:0;display:grid;gap:3px;border:0;background:transparent;padding:0;text-align:left;color:inherit;cursor:pointer}
.calendar-rc16-shell .calendar-unassigned-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:#23342C}
.calendar-rc16-shell .calendar-unassigned-main small{font-size:8.5px;color:#728078}.calendar-rc16-shell .calendar-unassigned-main>span{font-size:8.5px;color:#728078}
.calendar-rc16-shell .calendar-unassigned-status{width:max-content;margin-top:2px;border-radius:5px;padding:2px 5px;font-size:7.5px;font-weight:780}
.calendar-rc16-shell .calendar-unassigned-status.confirmed{background:var(--cal-confirmed-bg);color:#2764AB}
.calendar-rc16-shell .calendar-unassigned-status.tentative{background:var(--cal-tentative-bg);color:#94620A}
.calendar-rc16-shell .calendar-unassigned-status.checked_in{background:var(--cal-checked-in-bg);color:#12704C}
.calendar-rc16-shell .calendar-unassigned-assign{min-height:30px;border:1px solid #CFE0D7;border-radius:7px;background:#F1F8F4;padding:0 8px;color:#166A51;font-size:8.5px;font-weight:760;cursor:pointer}
.calendar-rc16-shell .calendar-unassigned-assign:hover{background:#E5F3EB;border-color:#B6D7C6}

.calendar-rc16-shell .calendar-bottom-bar{display:flex;min-height:30px;align-items:center;justify-content:space-between;gap:14px;padding:3px 2px 0;color:#708078;font-size:8.5px}
.calendar-rc16-shell .calendar-bottom-legend .classic-calendar-legend{display:flex;flex-wrap:wrap;gap:12px}
.calendar-rc16-shell .calendar-bottom-legend .classic-calendar-legend span{display:inline-flex;align-items:center;gap:5px}
.calendar-rc16-shell .calendar-bottom-legend .classic-calendar-legend i{width:7px;height:7px;border-radius:50%;border:0}
.calendar-rc16-shell .calendar-bottom-legend i.confirmed{background:var(--cal-confirmed)}
.calendar-rc16-shell .calendar-bottom-legend i.checked_in{background:var(--cal-checked-in)}
.calendar-rc16-shell .calendar-bottom-legend i.tentative{background:var(--cal-tentative)}
.calendar-rc16-shell .calendar-bottom-legend i.checked_out{background:var(--cal-checked-out)}
.calendar-rc16-shell .calendar-bottom-legend i.blocked{background:var(--cal-blocked)}
.calendar-rc16-shell .calendar-bottom-stats{display:flex;gap:12px;white-space:nowrap}
.calendar-rc16-shell .calendar-bottom-stats span+span{position:relative;padding-left:12px}
.calendar-rc16-shell .calendar-bottom-stats span+span:before{content:"";position:absolute;left:5px;top:50%;width:1px;height:10px;background:#D7DFDB;transform:translateY(-50%)}

@media(max-width:1280px){
 .calendar-rc16-shell .calendar-workspace.has-inbox{grid-template-columns:minmax(0,1fr)}
 .calendar-rc16-shell .calendar-inbox-side{position:relative;top:auto;max-height:none}
 .calendar-rc16-shell .calendar-unassigned .classic-unassigned-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
}
@media(max-width:980px){
 .calendar-rc16-shell{--calendar-room-rail:198px}
 .calendar-rc16-shell .calendar-reference-toolbar{align-items:stretch;flex-wrap:wrap}
 .calendar-rc16-shell .calendar-reference-toolbar-right{width:100%;flex-wrap:wrap;justify-content:flex-start}
 .calendar-rc16-shell .calendar-reference-search{order:5;flex:1 1 100%;width:100%;max-width:none}
 .calendar-rc16-shell .calendar-period-btn{min-width:52px}
 .calendar-rc16-shell .calendar-bottom-bar{align-items:flex-start;flex-direction:column}
}
@media(max-width:680px){
 .calendar-rc16-shell{--calendar-room-rail:154px;min-height:calc(100vh - 84px)}
 .calendar-rc16-shell .calendar-reference-head{align-items:flex-start}
 .calendar-rc16-shell .calendar-reference-subtitle{font-size:10px}
 .calendar-rc16-shell .calendar-reference-toolbar{gap:6px;padding:6px}
 .calendar-rc16-shell .calendar-period-switch{width:100%;display:grid;grid-template-columns:repeat(4,1fr)}
 .calendar-rc16-shell .calendar-period-btn{min-width:0}
 .calendar-rc16-shell .calendar-toolbar-zoom{order:3}
 .calendar-rc16-shell .calendar-reference-settings{order:4}
 .calendar-rc16-shell .calendar-reference-search{order:5}
 .calendar-rc16-shell .calendar-room-meta{display:none}
 .calendar-rc16-shell .calendar-room-number{font-size:13px;min-width:34px}
 .calendar-rc16-shell .calendar-room-status{max-width:68px;font-size:7px}
 .calendar-rc16-shell .calendar-bottom-stats{flex-wrap:wrap;white-space:normal}
}

/* v16.0.0 RC17 — exact modern room-planner mockup implementation */
.calendar-rc17-shell{
  --cal-confirmed:#3B82F6;
  --cal-confirmed-bg:#EAF3FF;
  --cal-confirmed-border:#AFCFFF;
  --cal-checked-in:#179B68;
  --cal-checked-in-bg:#E6F8F0;
  --cal-checked-in-border:#9DDEC3;
  --cal-tentative:#E5A11A;
  --cal-tentative-bg:#FFF4D9;
  --cal-tentative-border:#F2CE7A;
  --cal-blocked:#D9534F;
  --cal-blocked-bg:#FDEAEA;
  --cal-blocked-border:#F0AEAA;
  --cal-checked-out:#7C8792;
  --cal-checked-out-bg:#EEF1F3;
  --cal-checked-out-border:#D3D9DE;
  --cal-grid:#E2E8E5;
  --calendar-room-rail:190px;
  --classic-room-rail:var(--calendar-room-rail);
  gap:10px;
  min-width:0;
  background:transparent;
}
.calendar-rc17-shell .calendar-reference-head{align-items:flex-start;margin-bottom:4px}
.calendar-rc17-shell .calendar-reference-copy h1{font-size:30px;line-height:1;font-weight:800;letter-spacing:-.04em}
.calendar-rc17-shell .calendar-reference-subtitle{font-size:12px;color:#7B8982}
.calendar-rc17-shell .calendar-reference-hints-compact{display:none!important}.calendar-rc17-shell .calendar-reference-new{display:none!important}

.calendar-rc17-shell .calendar-reference-toolbar{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--cal-grid);border-radius:12px;background:#fff;box-shadow:0 2px 12px rgb(31 51 42 / .04)}
.calendar-rc17-shell .calendar-reference-nav{height:40px;border:1px solid var(--cal-grid);border-radius:8px;overflow:hidden;background:#fff;display:flex;align-items:stretch}
.calendar-rc17-shell .calendar-reference-nav-btn{min-width:42px;height:38px;border:0;border-right:1px solid var(--cal-grid);border-radius:0;background:#fff;color:#52635B;font-size:13px;font-weight:750}.calendar-rc17-shell .calendar-reference-focus{min-width:42px;height:38px;border:0;border-right:1px solid var(--cal-grid);border-radius:0;background:#fff;color:#52635B;font-size:13px;font-weight:750}
.calendar-rc17-shell .calendar-reference-focus{min-width:68px;color:#24453A}
.calendar-rc17-shell .calendar-reference-nav-btn:last-child{border-right:0}
.calendar-rc17-shell .calendar-reference-nav-btn:hover{background:#F6F9F7}.calendar-rc17-shell .calendar-reference-focus:hover{background:#F6F9F7}

.calendar-rc17-shell .calendar-reference-range{height:40px;min-width:230px;display:flex;align-items:center;border:1px solid var(--cal-grid);border-radius:8px;background:#fff;overflow:hidden}
.calendar-rc17-shell .calendar-reference-range-copy{display:flex;min-width:0;flex:1;align-items:center;gap:8px;padding:0 10px;color:#44564D}
.calendar-rc17-shell .calendar-reference-range-copy svg{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:#52675D;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.calendar-rc17-shell .calendar-reference-range-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-weight:760;font-variant-numeric:tabular-nums}
.calendar-rc17-shell .calendar-reference-range .calendar-reference-date{width:38px!important;min-width:38px!important;height:38px!important;border-left:1px solid var(--cal-grid)}
.calendar-rc17-shell .calendar-reference-range .localized-date-control{width:38px;height:38px;border:0;border-radius:0;display:block;position:relative;overflow:visible;background:#fff}
.calendar-rc17-shell .calendar-reference-range .localized-date-display{position:absolute!important;width:1px!important;height:1px!important;left:-9999px!important;opacity:0!important;padding:0!important}
.calendar-rc17-shell .calendar-reference-range .localized-date-picker{width:38px;height:38px;border:0;background:#fff;color:#52675D}
.calendar-rc17-shell .calendar-reference-range .localized-date-picker:hover{background:#F4F8F5}

.calendar-rc17-shell .calendar-reference-toolbar-right{display:flex;align-items:center;gap:9px;min-width:0;flex:1}
.calendar-rc17-shell .calendar-period-switch{height:40px;display:grid;grid-template-columns:repeat(4,minmax(58px,1fr));gap:3px;padding:3px;border:1px solid var(--cal-grid);border-radius:8px;background:#F6F8F7}
.calendar-rc17-shell .calendar-period-btn{height:32px;min-width:58px;border:0;border-radius:6px;background:transparent;color:#66766E;font-size:9.5px;font-weight:760}
.calendar-rc17-shell .calendar-period-btn.active{background:#0E6F56;color:#fff;box-shadow:0 1px 4px rgb(14 111 86 / .16)}
.calendar-rc17-shell .calendar-toolbar-zoom{height:40px;border:1px solid var(--cal-grid);border-radius:8px;background:#fff;display:flex;align-items:center;overflow:hidden}
.calendar-rc17-shell .calendar-toolbar-zoom button{width:36px;height:38px;border:0;background:#fff;color:#4C5F56;font-size:14px}
.calendar-rc17-shell .calendar-toolbar-zoom output{height:38px;min-width:54px;display:grid;place-items:center;border-left:1px solid var(--cal-grid);border-right:1px solid var(--cal-grid);font-size:10px;font-weight:800;color:#34473E}
.calendar-rc17-shell .calendar-reference-search{height:40px;min-width:240px;flex:1;border:1px solid var(--cal-grid);border-radius:8px;background:#fff;box-shadow:none}
.calendar-rc17-shell .calendar-reference-search span{color:#8A9790}
.calendar-rc17-shell .calendar-reference-search input{font-size:10.5px}
.calendar-rc17-shell .calendar-reference-settings-btn{height:40px;border:1px solid #BAC9C1;border-radius:8px;background:#fff;color:#345047;font-size:10px;font-weight:780;box-shadow:none}
.calendar-rc17-shell .calendar-filter-count{min-width:18px;height:18px;display:grid;place-items:center;margin-left:5px;border-radius:5px;background:#E5F3EC;color:#136D51;font-size:8px;font-weight:850}

/* Target mockup has no secondary chip/status strip. */
.calendar-rc17-shell .calendar-reference-context{display:none!important}
.calendar-rc17-shell .calendar-context-stat{display:none!important}.calendar-rc17-shell .calendar-filter-chip{display:none!important}

.calendar-rc17-shell .calendar-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:0;align-items:start;min-width:0;border:1px solid var(--cal-grid);border-radius:12px;background:var(--ds-surface);overflow:hidden;box-shadow:0 3px 14px rgb(25 45 36 / .04)}
.calendar-rc17-shell .calendar-panel{min-width:0;min-height:580px;border:0;border-radius:0;box-shadow:none;background:var(--ds-surface)}.calendar-rc17-shell .classic-calendar-panel{min-width:0;min-height:580px;border:0;border-radius:0;box-shadow:none;background:var(--ds-surface)}
.calendar-rc17-shell .classic-calendar-scroll{position:relative;min-height:580px;border-right:1px solid var(--cal-grid);background:var(--ds-surface);scrollbar-width:thin;scrollbar-color:var(--ds-border-strong) transparent}
.calendar-rc17-shell .classic-calendar-scroll::-webkit-scrollbar{width:8px;height:8px}
.calendar-rc17-shell .classic-calendar-scroll::-webkit-scrollbar-thumb{border:2px solid var(--ds-surface);border-radius:8px;background:var(--ds-border-strong)}

.calendar-rc17-shell .classic-calendar-group-label{display:none!important}
.calendar-rc17-shell .calendar-flat-room-list{width:100%;min-width:100%;background:var(--ds-surface)}
.calendar-rc17-shell .calendar-flat-room-list .calendar-row{content-visibility:auto;contain-intrinsic-size:auto 54px;contain:layout style paint}
.calendar-rc17-shell.calendar-density-comfortable{--classic-row-height:54px}
.calendar-rc17-shell.calendar-density-comfortable .calendar-row{height:54px;min-height:54px}.calendar-rc17-shell.calendar-density-comfortable .calendar-room{height:54px;min-height:54px}.calendar-rc17-shell.calendar-density-comfortable .calendar-cell{height:54px;min-height:54px}
.calendar-rc17-shell.calendar-density-compact{--classic-row-height:44px}
.calendar-rc17-shell.calendar-density-compact .calendar-row{height:44px;min-height:44px}.calendar-rc17-shell.calendar-density-compact .calendar-room{height:44px;min-height:44px}.calendar-rc17-shell.calendar-density-compact .calendar-cell{height:44px;min-height:44px}

.calendar-rc17-shell .classic-calendar-day-axis{height:58px!important;background:var(--ds-surface-soft);border-bottom:1px solid var(--cal-grid);box-shadow:none}
.calendar-rc17-shell .classic-calendar-room-axis{padding:0 12px;background:var(--ds-surface-soft);border-right:1px solid var(--cal-grid);color:var(--ds-ink);font-size:10.5px;font-weight:800}
.calendar-rc17-shell .classic-calendar-day{height:58px;background:var(--ds-surface-soft);border-right:1px solid var(--cal-grid)!important;color:var(--ds-muted);gap:2px}
.calendar-rc17-shell .classic-calendar-day small{font-size:8.5px;font-weight:760;text-transform:uppercase}
.calendar-rc17-shell .classic-calendar-day strong{font-size:12px;font-weight:850;color:var(--ds-ink)}
.calendar-rc17-shell .classic-calendar-day.weekend:not(.today){background:var(--ds-surface-soft);color:var(--ds-muted)}
.calendar-rc17-shell .classic-calendar-day.today{background:var(--ds-primary-soft);color:var(--ds-primary)}
.calendar-rc17-shell .classic-calendar-day.today strong{color:var(--ds-primary)}
.calendar-rc17-shell .classic-calendar-day.today:after{left:50%;bottom:5px;width:5px;height:5px;border-radius:50%;background:var(--ds-primary);transform:translateX(-50%)}
.calendar-rc17-shell .classic-calendar-day.focus-date:not(.today)::after{display:none}

.calendar-rc17-shell .calendar-row{border-bottom:1px solid var(--cal-grid);background:var(--ds-surface);transition:background-color .08s ease}
.calendar-rc17-shell .calendar-row:hover{background:var(--ds-surface-hover)}
.calendar-rc17-shell .calendar-room{display:flex;align-items:center;justify-content:space-between;gap:8px;width:var(--classic-room-rail);min-width:var(--classic-room-rail);padding:6px 8px 6px 11px;border-right:1px solid var(--cal-grid);background:var(--ds-surface);box-shadow:none}
.calendar-rc17-shell .calendar-room:hover{background:var(--ds-surface-hover)}
.calendar-rc17-shell .calendar-room-identity{display:flex!important;align-items:center;gap:8px;min-width:0;flex:1}
.calendar-rc17-shell .calendar-room-number{min-width:34px;font-size:14px;font-weight:850;color:var(--ds-ink);font-variant-numeric:tabular-nums}
.calendar-rc17-shell .calendar-room-meta{display:grid;gap:1px;min-width:0}
.calendar-rc17-shell .calendar-room-meta strong{max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8.8px;font-weight:720;color:var(--ds-ink-secondary)}
.calendar-rc17-shell .calendar-room-meta small{font-size:7.5px;color:var(--ds-muted)}
.calendar-rc17-shell .calendar-room-status{min-height:20px;max-width:78px;display:inline-flex;align-items:center;gap:4px;border:1px solid var(--cal-grid);border-radius:5px;padding:2px 5px;background:var(--ds-surface-soft);font-size:7px;font-weight:780;box-shadow:none}
.calendar-rc17-shell .calendar-room-status i{width:6px;height:6px;border-radius:50%;background:currentColor}
.calendar-rc17-shell .calendar-room-status.hk-inspected{border-color:#BDE2D0;background:var(--ds-success-soft);color:var(--ds-success)}
.calendar-rc17-shell .calendar-room-status.hk-occupied{border-color:#BDD6F8;background:var(--ds-info-soft);color:var(--ds-info)}
.calendar-rc17-shell .calendar-room-status.hk-dirty{border-color:#EED59B;background:var(--ds-warning-soft);color:var(--ds-warning)}.calendar-rc17-shell .calendar-room-status.hk-cleaning{border-color:#EED59B;background:var(--ds-warning-soft);color:var(--ds-warning)}.calendar-rc17-shell .calendar-room-status.hk-inspection{border-color:#EED59B;background:var(--ds-warning-soft);color:var(--ds-warning)}
.calendar-rc17-shell .calendar-room-status.hk-out_of_order{border-color:#F0B8B4;background:var(--ds-danger-soft);color:var(--ds-danger)}
.calendar-rc17-shell .calendar-room-status.hk-out_of_service{border-color:#EED59B;background:var(--ds-warning-soft);color:var(--ds-warning)}

.calendar-rc17-shell .calendar-cell{border-right:1px solid var(--cal-grid)!important;background:var(--ds-surface)!important;background-image:none!important}
.calendar-rc17-shell .calendar-cell.weekend:not(.today-column){background:var(--ds-surface-soft)!important}
.calendar-rc17-shell .calendar-cell.today-column{background:var(--ds-primary-soft)!important;box-shadow:inset 1px 0 0 #D2EADF,inset -1px 0 0 #D2EADF}
.calendar-rc17-shell .calendar-cell.calendar-selectable:hover{background:var(--ds-surface-hover)!important}
.calendar-rc17-shell .classic-calendar-hover-column{background:rgb(23 155 104 / .03);border-color:rgb(23 155 104 / .08)}

.calendar-rc17-shell .calendar-res{height:38px;margin:0 4px;border-width:1px;border-style:solid;border-radius:7px;padding:5px 7px 5px 9px;display:flex;align-items:center;gap:7px;box-shadow:0 1px 4px rgb(20 36 28 / .07);overflow:hidden;transition:transform .08s ease,box-shadow .08s ease}
.calendar-rc17-shell .calendar-res:hover{z-index:12;transform:translateY(-1px);box-shadow:0 5px 14px rgb(20 36 28 / .12)}
.calendar-rc17-shell .calendar-res:before{width:3px}
.calendar-rc17-shell .calendar-res-icon{width:14px;flex:0 0 14px;display:grid;place-items:center;font-size:8px;line-height:1;color:currentColor;opacity:.88}
.calendar-rc17-shell .calendar-res-copy{display:block;min-width:0;flex:1}
.calendar-rc17-shell .calendar-res-copy strong{font-size:9.5px;line-height:1.15;font-weight:820;color:var(--ds-ink)}
.calendar-rc17-shell .calendar-res-copy small{margin-top:2px;font-size:7.3px;line-height:1.15;color:var(--ds-muted);opacity:1}
.calendar-rc17-shell .calendar-res-status{position:static;flex:0 0 auto;max-width:82px;border:1px solid currentColor;border-radius:5px;padding:2px 5px;background:color-mix(in srgb,currentColor 8%,var(--ds-surface));font-size:6.8px;line-height:1.1;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-rc17-shell .calendar-res.confirmed{border-color:var(--cal-confirmed-border);background:var(--cal-confirmed-bg);color:#2469B6}
.calendar-rc17-shell .calendar-res.confirmed:before{background:var(--cal-confirmed)}
.calendar-rc17-shell .calendar-res.confirmed .calendar-res-status{border-color:#AFCFFF;background:color-mix(in srgb,var(--ds-info) 10%,var(--ds-surface));color:var(--ds-info)}
.calendar-rc17-shell .calendar-res.checked_in{border-color:var(--cal-checked-in-border);background:var(--cal-checked-in-bg);color:var(--ds-success)}
.calendar-rc17-shell .calendar-res.checked_in:before{background:var(--cal-checked-in)}
.calendar-rc17-shell .calendar-res.checked_in .calendar-res-status{border-color:#9DDEC3;background:color-mix(in srgb,var(--ds-success) 10%,var(--ds-surface));color:var(--ds-success)}
.calendar-rc17-shell .calendar-res.tentative{border-color:var(--cal-tentative-border);background:var(--cal-tentative-bg);color:var(--ds-warning)}
.calendar-rc17-shell .calendar-res.tentative:before{background:var(--cal-tentative)}
.calendar-rc17-shell .calendar-res.tentative .calendar-res-status{border-color:#F0C969;background:color-mix(in srgb,var(--ds-warning) 12%,var(--ds-surface));color:var(--ds-warning)}
.calendar-rc17-shell .calendar-res.checked_out{opacity:.78!important;border-color:var(--cal-checked-out-border)!important;background:var(--cal-checked-out-bg)!important;color:#69747E!important;box-shadow:none!important}.calendar-rc17-shell .calendar-res.calendar-history-segment{opacity:.78!important;border-color:var(--cal-checked-out-border)!important;background:var(--cal-checked-out-bg)!important;color:#69747E!important;box-shadow:none!important}
.calendar-rc17-shell .calendar-res.checked_out:before{background:var(--cal-checked-out)!important}.calendar-rc17-shell .calendar-res.calendar-history-segment:before{background:var(--cal-checked-out)!important}
.calendar-rc17-shell .calendar-inventory-block.hard-block{border-color:var(--cal-blocked-border);background:var(--cal-blocked-bg);color:#A83E39}
.calendar-rc17-shell .calendar-inventory-block.hard-block:before{background:var(--cal-blocked)}

/* Hotel-local current time: one clear vertical line through today's column. */
.calendar-rc17-shell .calendar-today-time-line{top:58px!important;z-index:32;width:2px;background:var(--ds-primary);box-shadow:0 0 0 1px rgb(20 150 106 / .08);transform:translateX(-1px);pointer-events:none;transition:left 14.5s linear}

.calendar-rc17-shell .calendar-inbox-side{position:sticky;top:8px;min-width:0;max-height:calc(100vh - 150px);overflow:auto;background:var(--ds-surface-soft);scrollbar-width:thin;scrollbar-color:#C5CEC9 transparent}
.calendar-rc17-shell .calendar-unassigned{margin:0;border:0;border-radius:0;background:var(--ds-surface-soft);box-shadow:none;overflow:hidden}
.calendar-rc17-shell .calendar-inbox-head{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;border-bottom:1px solid var(--cal-grid);background:var(--ds-surface-soft)}
.calendar-rc17-shell .calendar-inbox-head strong{font-size:11px;font-weight:820;color:#22372D}
.calendar-rc17-shell .calendar-inbox-collapse{width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:#738179;cursor:pointer}
.calendar-rc17-shell .calendar-inbox-collapse:hover{background:#F0F4F2}
.calendar-rc17-shell .calendar-unassigned .classic-unassigned-list{display:grid;grid-template-columns:1fr;gap:8px;padding:10px;background:var(--ds-surface-soft);border:0}
.calendar-rc17-shell .calendar-unassigned .calendar-unassigned-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;border:1px solid var(--cal-grid);border-radius:8px;background:var(--ds-surface);padding:9px;box-shadow:0 1px 3px rgb(24 43 34 / .035)}
.calendar-rc17-shell .calendar-unassigned-main{display:grid;gap:3px;min-width:0;border:0;background:transparent;padding:0;text-align:left;color:inherit;cursor:pointer}
.calendar-rc17-shell .calendar-unassigned-main strong{font-size:10.5px;font-weight:820;color:#24372E}
.calendar-rc17-shell .calendar-unassigned-main small{font-size:8.2px;color:#74817A}.calendar-rc17-shell .calendar-unassigned-main>span{font-size:8.2px;color:#74817A}
.calendar-rc17-shell .calendar-unassigned-status{width:max-content;margin-top:2px;border-radius:5px;padding:2px 5px;font-size:7.4px;font-weight:800}
.calendar-rc17-shell .calendar-unassigned-status.confirmed{background:var(--cal-confirmed-bg);color:var(--ds-info)}
.calendar-rc17-shell .calendar-unassigned-status.tentative{background:var(--cal-tentative-bg);color:var(--ds-warning)}
.calendar-rc17-shell .calendar-unassigned-status.checked_in{background:var(--cal-checked-in-bg);color:var(--ds-success)}
.calendar-rc17-shell .calendar-inbox-empty{display:grid;gap:4px;padding:18px 12px;text-align:center;color:#829087}
.calendar-rc17-shell .calendar-inbox-empty strong{font-size:10px;color:#5C6B63}
.calendar-rc17-shell .calendar-inbox-empty span{font-size:8.5px}
.calendar-rc17-shell .calendar-inbox-new{margin:0 10px 10px;min-height:76px;width:calc(100% - 20px);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;justify-content:center;column-gap:8px;border:1px dashed #AEBDB5;border-radius:8px;background:var(--ds-surface);color:#2F4A3E;cursor:pointer}
.calendar-rc17-shell .calendar-inbox-new>span{grid-row:1/3;font-size:20px;color:#1C7257}
.calendar-rc17-shell .calendar-inbox-new strong{align-self:end;text-align:left;font-size:10px}
.calendar-rc17-shell .calendar-inbox-new small{align-self:start;text-align:left;font-size:8.5px;color:#7B8982}
.calendar-rc17-shell .calendar-inbox-new:hover{border-color:#7BA691;background:#F5FAF7}

.calendar-rc17-shell .calendar-bottom-bar{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 2px 0;color:#708078;font-size:8.5px}
.calendar-rc17-shell .calendar-bottom-legend .classic-calendar-legend{display:flex;flex-wrap:wrap;gap:12px}
.calendar-rc17-shell .calendar-bottom-legend .classic-calendar-legend i{width:7px;height:7px;border-radius:50%;border:0}
.calendar-rc17-shell .calendar-bottom-stats{display:flex;gap:12px;white-space:nowrap}

@media(max-width:1180px){
  .calendar-rc17-shell .calendar-workspace{grid-template-columns:minmax(0,1fr)}
  .calendar-rc17-shell .calendar-inbox-side{position:relative;top:auto;max-height:none;border-top:1px solid var(--cal-grid)}
  .calendar-rc17-shell .calendar-unassigned .classic-unassigned-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
  .calendar-rc17-shell .calendar-reference-toolbar{flex-wrap:wrap}
  .calendar-rc17-shell .calendar-reference-toolbar-right{width:100%;flex-wrap:wrap}
  .calendar-rc17-shell .calendar-reference-search{min-width:260px}
}
@media(max-width:760px){
  .calendar-rc17-shell{--calendar-room-rail:154px}
  .calendar-rc17-shell .calendar-reference-copy h1{font-size:24px}
  .calendar-rc17-shell .calendar-reference-toolbar{gap:6px;padding:6px}
  .calendar-rc17-shell .calendar-reference-range{min-width:190px;flex:1}
  .calendar-rc17-shell .calendar-period-switch{order:3;width:100%}
  .calendar-rc17-shell .calendar-toolbar-zoom{order:4}
  .calendar-rc17-shell .calendar-reference-settings{order:5}
  .calendar-rc17-shell .calendar-reference-search{order:6;width:100%;min-width:0}
  .calendar-rc17-shell .calendar-room-meta{display:none}
  .calendar-rc17-shell .calendar-room-number{min-width:34px;font-size:13px}
  .calendar-rc17-shell .calendar-room-status{max-width:68px;font-size:6.7px}
  .calendar-rc17-shell .calendar-bottom-bar{align-items:flex-start;flex-direction:column}
  .calendar-rc17-shell .calendar-bottom-stats{flex-wrap:wrap;white-space:normal}
}
/* RC17 dynamic planner height: small hotels should not get a giant empty canvas. */
.calendar-rc17-shell .calendar-panel{min-height:var(--calendar-content-height);height:var(--calendar-content-height);max-height:calc(100vh - 190px)}.calendar-rc17-shell .classic-calendar-panel{min-height:var(--calendar-content-height);height:var(--calendar-content-height);max-height:calc(100vh - 190px)}
.calendar-rc17-shell .classic-calendar-scroll{min-height:var(--calendar-content-height);height:var(--calendar-content-height);max-height:calc(100vh - 190px)}
.calendar-rc17-shell .calendar-inbox-side{max-height:min(var(--calendar-content-height),calc(100vh - 190px))}

/* v16.0.0 RC18 — calendar interaction stability, non-overlap layout and deterministic navigation */
.calendar-rc18-shell .calendar-workspace{isolation:isolate}
.calendar-rc18-shell .calendar-reference-toolbar{display:grid;grid-template-columns:auto minmax(210px,260px) minmax(0,1fr);align-items:center;gap:8px;min-width:0}
.calendar-rc18-shell .calendar-reference-nav{min-width:0}.calendar-rc18-shell .calendar-reference-range{min-width:0}
.calendar-rc18-shell .calendar-reference-toolbar-right{display:grid;grid-template-columns:minmax(246px,auto) auto minmax(220px,1fr) auto;align-items:center;gap:8px;min-width:0;width:auto;flex:none}
.calendar-rc18-shell .calendar-period-switch{min-width:0}
.calendar-rc18-shell .calendar-reference-search{min-width:0;width:auto;max-width:none}
.calendar-rc18-shell .calendar-reference-settings{min-width:0}
.calendar-rc18-shell .calendar-reference-settings-btn{white-space:nowrap}
.calendar-rc18-shell .calendar-cell.focus-date{box-shadow:none!important}
.calendar-rc18-shell .calendar-row{isolation:isolate}
.calendar-rc18-shell .calendar-cell{z-index:0}
.calendar-rc18-shell .calendar-res{z-index:4;max-width:calc(100% - 6px);min-width:0;box-sizing:border-box}.calendar-rc18-shell .calendar-inventory-block{z-index:4;max-width:calc(100% - 6px);min-width:0;box-sizing:border-box}
.calendar-rc18-shell .calendar-res-copy{overflow:hidden;min-width:0;max-width:100%}
.calendar-rc18-shell .calendar-res-copy strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-rc18-shell .calendar-res-copy small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-rc18-shell .calendar-res-status{min-width:0;max-width:72px;overflow:hidden;text-overflow:ellipsis}
.calendar-rc18-shell .calendar-res-short{padding-inline:7px;gap:4px}
.calendar-rc18-shell .calendar-res-short .calendar-res-status{display:none!important}
.calendar-rc18-shell .calendar-res-short .calendar-res-copy small{display:none!important}
.calendar-rc18-shell .calendar-res-short .calendar-res-icon{width:10px;flex-basis:10px;font-size:7px}
.calendar-rc18-shell .calendar-res-medium .calendar-res-icon{display:none!important}
.calendar-rc18-shell .calendar-res-medium{gap:4px}
.calendar-rc18-shell .calendar-res-medium .calendar-res-status{max-width:52px;font-size:6.4px}
.calendar-rc18-shell .calendar-cell.selecting{z-index:2}
.calendar-rc18-shell .calendar-cell.selection-start{z-index:3}.calendar-rc18-shell .calendar-cell.selection-end{z-index:3}
.calendar-rc18-shell .calendar-today-time-line{z-index:14}
.calendar-rc18-shell .classic-calendar-hover-column{z-index:1}

@media(max-width:1320px){
 .calendar-rc18-shell .calendar-reference-toolbar{grid-template-columns:auto minmax(190px,1fr)}
 .calendar-rc18-shell .calendar-reference-toolbar-right{grid-column:1/-1;grid-template-columns:minmax(246px,1fr) auto minmax(220px,1.4fr) auto;width:100%}
}
@media(max-width:980px){
 .calendar-rc18-shell .calendar-reference-toolbar{grid-template-columns:auto minmax(0,1fr)}
 .calendar-rc18-shell .calendar-reference-toolbar-right{grid-template-columns:minmax(220px,1fr) auto auto}
 .calendar-rc18-shell .calendar-reference-search{grid-column:1/-1;grid-row:2}
}
@media(max-width:700px){
 .calendar-rc18-shell .calendar-reference-toolbar{display:flex;flex-wrap:wrap}
 .calendar-rc18-shell .calendar-reference-nav{flex:0 0 auto}
 .calendar-rc18-shell .calendar-reference-range{flex:1 1 190px}
 .calendar-rc18-shell .calendar-reference-toolbar-right{display:grid;grid-template-columns:1fr auto;flex:1 0 100%;width:100%}
 .calendar-rc18-shell .calendar-period-switch{grid-column:1/-1;width:100%}
 .calendar-rc18-shell .calendar-reference-search{grid-column:1/-1;width:100%}
 .calendar-rc18-shell .calendar-toolbar-zoom{grid-column:1}
 .calendar-rc18-shell .calendar-reference-settings{grid-column:2}
}
/* v16.0.0 RC19 — room/guest accounts + reception stay actions */
.reservation-inhouse-section-label{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.reservation-inhouse-folios{display:grid;gap:7px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.reservation-inhouse-folio-target{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;cursor:pointer;color:inherit}
.reservation-inhouse-folio-target>span{display:grid;gap:2px;min-width:0}.reservation-inhouse-folio-target small{color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reservation-inhouse-quick-services{display:grid;gap:6px}.reservation-inhouse-quick-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.reservation-inhouse-quick-charge{justify-content:flex-start;gap:6px;min-width:0;padding-inline:10px}.reservation-inhouse-quick-charge span{font-size:14px}
.reservation-detail-primary-op{font-weight:800;min-width:120px}
.room-current-guest{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:9px 10px;border:1px solid #d8e5de;border-radius:10px;background:#f7fbf9}
.room-current-guest>span{display:grid;gap:2px;min-width:0}.room-current-guest small{font-size:10px;color:var(--muted)}.room-current-guest strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:980px){.reservation-inhouse-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.reservation-inhouse-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-inhouse-folio-target{align-items:flex-start;flex-direction:column}.reservation-detail-primary-op{flex:1 1 45%}}
.reservation-detail-actions .reservation-detail-checkin{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:800;min-width:120px}
.frontdesk-guest-account{display:grid;gap:9px;margin-top:12px;padding:12px;border:1px solid #d7e4dd;border-radius:12px;background:#f8fbf9}
.frontdesk-guest-account-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.frontdesk-guest-account-head>div{display:grid;gap:2px}.frontdesk-guest-account-head small{color:var(--muted);font-size:10px}.frontdesk-guest-account-head span{color:var(--muted);font-size:10px}.frontdesk-guest-account-head strong{font-size:17px}
.frontdesk-guest-account-quick{display:flex;flex-wrap:wrap;gap:6px}.frontdesk-guest-account-actions{display:flex;flex-wrap:wrap;gap:6px}
@media(max-width:640px){.frontdesk-guest-account-head{align-items:flex-start;flex-direction:column}.frontdesk-guest-account-quick .btn{flex:1 1 45%}.frontdesk-guest-account-actions .btn{flex:1 1 45%}}
/* v16.0.0 RC22 — simplified reservation lifecycle actions */
.reservation-detail-actions{align-items:center}
.reservation-more-actions{position:relative}.frontdesk-more-actions{position:relative}
.reservation-more-actions>summary{list-style:none;cursor:pointer;user-select:none;display:inline-flex;align-items:center;justify-content:center}.frontdesk-more-actions>summary{list-style:none;cursor:pointer;user-select:none;display:inline-flex;align-items:center;justify-content:center}
.reservation-more-actions>summary::-webkit-details-marker{display:none}.frontdesk-more-actions>summary::-webkit-details-marker{display:none}
.reservation-more-actions-menu{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;padding:10px;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface);box-shadow:0 10px 28px rgba(23,33,29,.08)}.frontdesk-more-actions-menu{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;padding:10px;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface);box-shadow:0 10px 28px rgba(23,33,29,.08)}
.reservation-detail-no-ops{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface-soft);color:var(--ds-muted)}.frontdesk-no-ops{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface-soft);color:var(--ds-muted)}
.reservation-detail-no-ops strong{color:var(--ds-text)}.frontdesk-no-ops strong{color:var(--ds-text)}
.frontdesk-primary-op{min-height:48px;font-size:15px;font-weight:800}
.frontdesk-more-actions>summary{width:100%;min-height:42px}
.frontdesk-more-actions-menu{display:grid;grid-template-columns:1fr;box-shadow:none;background:transparent;padding:8px 0 0;border:0}
.frontdesk-more-actions-menu>.btn{width:100%;justify-content:center}
@media(max-width:720px){.reservation-more-actions{width:100%}.reservation-more-actions>summary{width:100%}.reservation-more-actions-menu{display:grid;grid-template-columns:1fr;width:100%}}

/* v16.0.0 RC23 · Room equipment editor */
.room-equipment-editor{margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--surface-soft,#f8f8f7)}
.room-equipment-editor .section-head.compact{margin-bottom:12px}.room-equipment-editor h3{margin:0 0 4px}.room-equipment-picker{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:8px;align-items:end}.room-equipment-search-label{min-width:0}.room-equipment-new-form{display:flex;gap:8px;align-items:end;margin-top:10px;padding:10px;border:1px dashed var(--border);border-radius:12px}.room-equipment-copy-form{display:flex;gap:8px;align-items:end;margin-top:10px;padding:10px;border:1px dashed var(--border);border-radius:12px}.room-equipment-new-form[hidden]{display:none}.room-equipment-copy-form[hidden]{display:none}.room-equipment-selected{display:grid;gap:8px;margin-top:12px}.room-equipment-row{display:grid;grid-template-columns:minmax(150px,1.2fr) 110px minmax(160px,1fr) auto;gap:8px;align-items:end;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface,#fff)}.room-equipment-row-title{align-self:center;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.room-equipment-note{min-width:0}
@media(max-width:760px){.room-equipment-picker{grid-template-columns:1fr}.room-equipment-row{grid-template-columns:1fr}.room-equipment-new-form{align-items:stretch;flex-direction:column}.room-equipment-copy-form{align-items:stretch;flex-direction:column}.room-equipment-picker .btn{width:100%}.room-equipment-row .btn{width:100%}}

/* RC23 · Housekeeping equipment checklist */
.hk-cleaning-sheet{display:grid;gap:16px}.hk-cleaning-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.hk-cleaning-summary h3{margin:2px 0 0}.hk-equipment-checklist{display:grid;gap:12px}.hk-equipment-row{border:1px solid var(--border);border-radius:14px;padding:14px;background:var(--surface,#fff);display:grid;gap:12px}.hk-equipment-row.has-problem{border-color:var(--danger,#b94b4b)}.hk-equipment-row-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.hk-equipment-row-head small{color:var(--muted);margin-left:6px}.hk-equipment-state-text{font-size:.82rem;color:var(--muted)}.hk-equipment-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.hk-equipment-choice{position:relative;margin:0}.hk-equipment-choice input{position:absolute;opacity:0;pointer-events:none}.hk-equipment-choice span{display:flex;align-items:center;justify-content:center;min-height:38px;padding:7px 9px;border:1px solid var(--border);border-radius:10px;cursor:pointer;font-size:.88rem;text-align:center}.hk-equipment-choice input:checked+span{border-color:currentColor;font-weight:700;background:var(--surface-2,#f5f5f5)}.hk-equipment-choice.damaged input:checked+span{color:var(--danger,#a83e3e)}.hk-equipment-choice.missing input:checked+span{color:var(--danger,#a83e3e)}.hk-equipment-choice.note input:checked+span{color:var(--warning,#8a6415)}.hk-equipment-choice.ok input:checked+span{color:var(--success,#27724d)}.hk-equipment-note{margin:0}.hk-equipment-note textarea{min-height:54px}.hk-equipment-error{margin:0}.room-equipment-blockers{display:block;margin-top:8px;color:var(--danger,#a83e3e)}
@media(max-width:760px){.hk-equipment-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.hk-cleaning-summary{align-items:stretch;flex-direction:column}.hk-equipment-row-head{align-items:stretch;flex-direction:column}}
.hk-equipment-photo{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.hk-equipment-photo[hidden]{display:none}.hk-equipment-photo-preview img{display:block;width:72px;height:54px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}
.room-equipment-catalog{display:grid;gap:14px}.room-equipment-catalog .search-field{max-width:440px}.room-equipment-catalog-list{display:grid;gap:8px;max-height:min(58vh,620px);overflow:auto;padding-right:2px}.room-equipment-catalog-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid var(--border);border-radius:12px;background:var(--surface,#fff)}.room-equipment-catalog-item small{display:block;margin-top:5px;color:var(--muted)}
@media(max-width:760px){.room-equipment-catalog-item{align-items:stretch;flex-direction:column}.room-equipment-catalog-item>.toolbar{justify-content:flex-start}}
.maintenance-equipment-origin{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}.room-state-equipment_issue{border-color:color-mix(in srgb,var(--danger,#a83e3e) 45%,var(--border))}
/* RC24 — Front Desk overstay / conflict resolution */
.frontdesk-overstay{margin-top:10px;padding:12px;border:1px solid color-mix(in srgb,var(--ds-danger) 45%,var(--ds-border));border-radius:10px;background:var(--ds-danger-soft)}
.frontdesk-overstay p{margin:7px 0;color:var(--ds-ink)}.frontdesk-overstay small{display:block;color:var(--ds-muted);line-height:1.45}
.frontdesk-readiness-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.frontdesk-room-conflict-results{display:grid;gap:8px;margin-top:12px}.frontdesk-conflict-room{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-surface);color:var(--ds-ink);text-align:left;cursor:pointer}.frontdesk-conflict-room:hover{border-color:var(--ds-primary);background:var(--ds-primary-soft)}.frontdesk-conflict-room strong{display:block}.frontdesk-conflict-room small{display:block}.frontdesk-conflict-room small{margin-top:3px;color:var(--ds-muted)}

/* v16.0.0 RC25 — physical overstay visibility + calendar decision queue */
.calendar-v112-reference .calendar-res.calendar-overstay-segment{background:color-mix(in srgb,var(--ds-danger,#b64242) 12%,var(--ds-surface,#fff))!important;border-color:color-mix(in srgb,var(--ds-danger,#b64242) 55%,var(--ds-border,#ddd))!important;border-style:dashed!important;color:var(--ds-danger,#a53434)!important;z-index:5}
.calendar-v112-reference .calendar-res.calendar-overstay-segment .calendar-res-status{font-weight:800}
.calendar-decision-queue{margin-bottom:10px;border:1px solid color-mix(in srgb,var(--ds-danger,#b64242) 28%,var(--ds-border,#ddd));border-radius:10px;background:color-mix(in srgb,var(--ds-danger,#b64242) 6%,var(--ds-surface,#fff));overflow:hidden}
.calendar-decision-queue>header{display:flex;flex-direction:column;gap:2px;padding:10px 11px;border-bottom:1px solid var(--ds-border,#ddd)}
.calendar-decision-queue>header strong{font-size:12px}.calendar-decision-queue>header small{font-size:10px;color:var(--ds-muted,#6d7772)}
.calendar-decision-item{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:0;border-bottom:1px solid var(--ds-border,#ddd);background:transparent;text-align:left;cursor:pointer}.calendar-decision-item:last-child{border-bottom:0}.calendar-decision-item span{min-width:0}.calendar-decision-item strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-decision-item small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-decision-item small{margin-top:2px;color:var(--ds-muted,#6d7772);font-size:10px}.calendar-decision-item b{flex:0 0 auto;font-size:10px;color:var(--ds-danger,#a53434)}
.calendar-v112-reference .classic-calendar-legend i.overstay{background:color-mix(in srgb,var(--ds-danger,#b64242) 70%,transparent);border:1px dashed var(--ds-danger,#a53434)}

/* RC30 · calendar decisions and unassigned planning live in overlay drawers, never in the timeline width. */
.calendar-reference-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}
.calendar-decision-trigger{border-color:color-mix(in srgb,var(--ds-danger,#b64242) 30%,var(--ds-border));background:color-mix(in srgb,var(--ds-danger,#b64242) 7%,var(--ds-surface));color:var(--ds-danger,#a53434);white-space:nowrap}
.calendar-ops-backdrop{position:fixed;inset:0;display:flex;justify-content:flex-end;background:rgb(8 24 19 / .38);backdrop-filter:blur(2px);z-index:var(--z-drawer-backdrop);animation:calendarDrawerFade .14s ease-out}
.calendar-decision-drawer{width:min(460px,92vw);height:100dvh;max-height:100dvh;display:flex;flex-direction:column;border:0;border-radius:0;background:var(--ds-surface,#fff);box-shadow:var(--shadow-modal);overflow:hidden;animation:calendarDrawerIn .16s ease-out}.calendar-inbox-drawer{width:min(460px,92vw);height:100dvh;max-height:100dvh;display:flex;flex-direction:column;border:0;border-radius:0;background:var(--ds-surface,#fff);box-shadow:var(--shadow-modal);overflow:hidden;animation:calendarDrawerIn .16s ease-out}
.calendar-ops-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface)}
.calendar-ops-drawer-head>div{min-width:0}.calendar-ops-drawer-head h2{margin:2px 0 4px;font-size:22px;letter-spacing:-.025em}.calendar-ops-drawer-head p{margin:0;color:var(--ds-muted);font-size:11px;line-height:1.45}
.calendar-ops-close{flex:0 0 auto}
.calendar-ops-drawer-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:12px;background:var(--ds-surface-soft)}.calendar-inbox-drawer .calendar-inbox-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:12px;background:var(--ds-surface-soft)}
.calendar-decision-drawer .calendar-decision-queue{display:grid;gap:10px;margin:0;border:0;border-radius:0;background:var(--ds-surface-soft);overflow:auto}
.calendar-decision-card{display:grid;gap:12px;padding:14px;border:1px solid color-mix(in srgb,var(--ds-danger,#b64242) 22%,var(--ds-border));border-radius:12px;background:var(--ds-surface);box-shadow:var(--shadow-xs)}
.calendar-decision-card-copy{min-width:0}.calendar-decision-card-copy h3{margin:3px 0 4px;font-size:16px;line-height:1.2}.calendar-decision-card-copy p{margin:0;color:var(--ds-muted);font-size:10.5px;line-height:1.45}
.calendar-decision-card-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.calendar-decision-card-actions .btn{width:100%;white-space:normal}
.calendar-inbox-drawer .calendar-inbox-new{margin:12px;width:calc(100% - 24px)}
.reservation-detail-decision-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:10px;width:100%}
@keyframes calendarDrawerFade{from{opacity:0}to{opacity:1}}@keyframes calendarDrawerIn{from{transform:translateX(18px);opacity:.75}to{transform:translateX(0);opacity:1}}
@media(max-width:639px){.calendar-reference-head-actions{width:100%;justify-content:flex-start}.calendar-decision-drawer{width:100vw;max-width:100vw}.calendar-inbox-drawer{width:100vw;max-width:100vw}.calendar-ops-drawer-head{padding:16px}.calendar-decision-card-actions{grid-template-columns:minmax(0,1fr)}.reservation-detail-decision-actions{grid-template-columns:minmax(0,1fr)}}

/* RC26 — unified application shell */
.app-shell{grid-template-columns:var(--shell-sidebar-expanded) minmax(0,1fr);transition:grid-template-columns .18s ease}
.sidebar{z-index:var(--z-sidebar)}
.sidebar-collapse{position:static;align-self:flex-end;margin:0 10px 8px;width:32px;height:32px;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface);color:var(--ds-ink-secondary);display:grid;place-items:center;cursor:pointer;box-shadow:none;z-index:calc(var(--z-sidebar) + 1)}
.sidebar-collapse:hover{background:var(--ds-surface-hover);color:var(--ds-ink)}
.sidebar-backdrop{display:none}
.app-shell.sidebar-collapsed{grid-template-columns:var(--shell-sidebar-collapsed) minmax(0,1fr)}
.app-shell.sidebar-collapsed .sidebar .brand{justify-content:center;padding-inline:10px}
.app-shell.sidebar-collapsed .sidebar-collapse{align-self:center;margin:0 auto 8px}
.app-shell.sidebar-collapsed .sidebar .brand-mark{width:42px;height:42px}
.app-shell.sidebar-collapsed .nav-label{display:none}.app-shell.sidebar-collapsed .nav-group-title{display:none}.app-shell.sidebar-collapsed .brand-copy{display:none}.app-shell.sidebar-collapsed .user-mini-copy{display:none}.app-shell.sidebar-collapsed .logout-label{display:none}.app-shell.sidebar-collapsed .sidebar-hotel-context{display:none}
.app-shell.sidebar-collapsed .nav{padding-inline:10px}
.app-shell.sidebar-collapsed .nav-group{margin-bottom:8px}
.app-shell.sidebar-collapsed .nav button{justify-content:center;padding-inline:0;gap:0}
.app-shell.sidebar-collapsed .nav-badge{position:absolute;right:2px;top:2px;margin:0;min-width:14px;padding:0 3px}
.app-shell.sidebar-collapsed .sidebar-footer{padding-inline:10px}
.app-shell.sidebar-collapsed .sidebar-footer .btn{justify-content:center}
.app-shell.sidebar-collapsed .user-mini{min-height:8px;padding:0}
.main{min-width:0}.content{min-width:0}
@media(max-width:1023px){
 .app-shell{grid-template-columns:minmax(0,1fr)}.app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}
 .sidebar{position:fixed;inset:0 auto 0 0;width:min(88vw,320px);height:100dvh;transform:translateX(-102%);transition:transform .18s ease;box-shadow:var(--shadow-modal)}
 .sidebar.open{transform:translateX(0)}
 .sidebar-collapse{display:none}
 .sidebar-backdrop{position:fixed;inset:0;display:block;background:rgb(7 20 16 / .48);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:calc(var(--z-sidebar) - 1)}
 .sidebar-backdrop.open{opacity:1;pointer-events:auto}
 .mobile-menu{display:inline-flex}
 .topbar{z-index:var(--z-sticky)}
}
@media(max-width:639px){
 .sidebar{width:min(88vw,320px)}
 .topbar{padding-inline:10px}
 .content{padding-inline:10px}
}

/* RC26 — shared UI primitives and overlay layers */
.ui-action-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0}
.ui-action-row>.btn{max-width:100%}
.ui-card{min-width:0;border:1px solid var(--ds-border);border-radius:var(--radius-md);background:var(--ds-surface);padding:var(--space-4);box-shadow:var(--shadow-xs)}
.ui-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);min-width:0;margin-bottom:var(--space-3)}
.ui-card-head>*{min-width:0}
.ui-field{min-width:0;display:grid;gap:var(--space-2)}
.ui-field>input{min-height:var(--control-md);border-radius:var(--radius-sm)}.ui-field>select{min-height:var(--control-md);border-radius:var(--radius-sm)}.ui-field>textarea{min-height:var(--control-md);border-radius:var(--radius-sm)}
.ui-stack{display:grid;gap:var(--space-4);min-width:0}
.ui-cluster{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0}
.ui-truncate{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ui-wrap-anywhere{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.panel{min-width:0}.card{min-width:0}.toolbar{min-width:0}.page-head{min-width:0}.modal-head{min-width:0}.modal-body{min-width:0}.modal-actions{min-width:0}
input{min-height:var(--control-md);border-radius:var(--radius-sm)}select{min-height:var(--control-md);border-radius:var(--radius-sm)}textarea{min-height:var(--control-md);border-radius:var(--radius-sm)}
.panel{border-radius:var(--radius-md)}
.badge{max-width:100%}.status-badge{max-width:100%}.chip{max-width:100%}

.reservation-detail-backdrop{z-index:var(--z-drawer-backdrop)}
.reservation-detail-drawer{width:min(720px,100vw);max-width:min(720px,100vw);height:100dvh;min-width:0;z-index:var(--z-drawer)}
.reservation-detail-head{min-width:0}.reservation-detail-body{min-width:0}.reservation-detail-actions{min-width:0}
.toast{z-index:var(--z-toast)}#toast{z-index:var(--z-toast)}.toast-stack{z-index:var(--z-toast)}
@media(max-width:639px){
 .reservation-detail-drawer{width:100vw;max-width:100vw}
}

/* RC26 — Calendar responsive cleanup */
.calendar-rc26-shell{min-width:0;max-width:100%;overflow:hidden}
.calendar-rc26-shell .calendar-reference-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);align-items:center;gap:var(--space-3);min-width:0}
.calendar-rc26-shell .calendar-reference-toolbar>*{min-width:0}
.calendar-rc26-shell .calendar-reference-toolbar-right{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;min-width:0}
.calendar-rc26-shell .calendar-reference-toolbar-right>*{min-width:0;max-width:100%}
.calendar-rc26-shell .calendar-reference-search{flex:1 1 220px;min-width:180px;max-width:100%}
.calendar-rc26-shell .calendar-workspace{min-width:0;max-width:100%;overflow:hidden}
.calendar-rc26-shell .calendar-panel{min-width:0;overflow:hidden}
.calendar-rc26-shell .classic-calendar-scroll{overflow-x:auto;overflow-y:auto;max-width:100%;overscroll-behavior-inline:contain}
.calendar-rc26-shell .toolbar{min-width:0;max-width:100%;flex-wrap:wrap}
.calendar-rc26-shell .classic-calendar-axis{isolation:isolate}.calendar-rc26-shell .classic-calendar-row{isolation:isolate}
.calendar-rc26-shell .classic-calendar-room-axis{z-index:var(--z-sticky)}
.calendar-rc26-shell .calendar-reference-legend{min-width:0;overflow-x:auto}.calendar-rc26-shell .calendar-reference-settings-legend{min-width:0;overflow-x:auto}
.calendar-rc26-shell .calendar-res-copy{min-width:0}
.calendar-rc26-shell .calendar-res-copy strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-rc26-shell .calendar-res-copy small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1023px){
 .calendar-rc26-shell .calendar-reference-toolbar{grid-template-columns:minmax(0,1fr)}
 .calendar-rc26-shell .calendar-reference-toolbar-right{justify-content:flex-start}
 .calendar-rc26-shell .calendar-reference-search{flex:1 1 260px}
}
@media(max-width:639px){
 .calendar-rc26-shell .calendar-reference-toolbar{gap:var(--space-2)}
 .calendar-rc26-shell .calendar-reference-toolbar-right{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
 .calendar-rc26-shell .calendar-period-switch{grid-column:1/-1;max-width:100%;overflow-x:auto}
 .calendar-rc26-shell .calendar-reference-search{grid-column:1/-1;min-width:0;width:100%}
 .calendar-rc26-shell .calendar-toolbar-zoom{justify-self:start}
}

/* RC26 — Front Desk responsive workflow */
.frontdesk-rc26{min-width:0;display:grid;gap:var(--space-4)}
.frontdesk-rc26 .page-head{min-width:0;max-width:100%}.frontdesk-rc26 .frontdesk-cards{min-width:0;max-width:100%}.frontdesk-rc26 .frontdesk-three-zone{min-width:0;max-width:100%}
.frontdesk-rc26 .frontdesk-three-zone{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(360px,1.1fr) minmax(240px,.75fr);gap:var(--space-4);align-items:start}
.frontdesk-rc26 .frontdesk-three-zone>*{min-width:0}
.frontdesk-queue-zone{min-width:0;max-width:100%;overflow:hidden}.frontdesk-detail-zone{min-width:0;max-width:100%;overflow:hidden}.frontdesk-actions-zone{min-width:0;max-width:100%;overflow:hidden}
.frontdesk-detail-zone{overflow-wrap:anywhere}
.frontdesk-detail-zone .frontdesk-selected-head{min-width:0}.frontdesk-detail-zone .frontdesk-detail-grid{min-width:0}
.frontdesk-detail-zone .frontdesk-selected-head>*{min-width:0}.frontdesk-detail-grid>*{min-width:0}
.frontdesk-action-stack{min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}
.frontdesk-action-stack .btn{max-width:100%;width:100%;white-space:normal;text-align:center}
.frontdesk-action-stack details{min-width:0;max-width:100%}
.frontdesk-action-stack summary{max-width:100%;overflow-wrap:anywhere}
.frontdesk-queue-list{min-width:0;overflow-x:hidden}
.frontdesk-queue-list button{max-width:100%;min-width:0}
.frontdesk-rc26 .frontdesk-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}
@media(max-width:1023px){
 .frontdesk-rc26 .frontdesk-three-zone{grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr)}
 .frontdesk-rc26 .frontdesk-actions-zone{grid-column:1/-1}
 .frontdesk-rc26 .frontdesk-action-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
}
@media(max-width:639px){
 .frontdesk-rc26 .frontdesk-three-zone{grid-template-columns:minmax(0,1fr);gap:var(--space-3)}
 .frontdesk-rc26 .frontdesk-actions-zone{grid-column:auto}
 .frontdesk-rc26 .frontdesk-queue-list{max-height:42dvh;overflow-y:auto}
 .frontdesk-rc26 .frontdesk-action-stack{display:flex}
 .frontdesk-rc26 .page-head{align-items:flex-start}
 .frontdesk-rc26 .page-head>.toolbar{width:100%}
 .frontdesk-rc26 .page-head>.toolbar .btn{flex:1 1 140px}
}

/* RC26 — Reservations registry and detail drawer */
.reservations-rc26{min-width:0;display:grid;gap:var(--space-4)}
.reservations-rc26 .page-head{min-width:0;max-width:100%}.reservations-rc26 .panel{min-width:0;max-width:100%}.reservations-rc26 .reservation-list-layout{min-width:0;max-width:100%}
.reservations-rc26 .toolbar{min-width:0;max-width:100%;flex-wrap:wrap}
.reservations-rc26 .toolbar>*{min-width:0;max-width:100%}
.reservations-rc26 #rw-search{flex:2 1 240px}
.reservations-rc26 select{flex:1 1 150px;width:auto}
.reservation-list-main{max-width:100%;overflow-x:auto;min-width:0}
.reservation-list-main table{width:100%;max-width:100%}
.reservation-list-main td{vertical-align:middle}.reservation-list-main th{vertical-align:middle}
.reservation-list-main td>*{min-width:0}
.reservation-drawer-rc26{min-width:0}
.reservation-drawer-rc26 .reservation-detail-head{display:flex;align-items:flex-start;gap:var(--space-3)}
.reservation-drawer-title{min-width:0;flex:1 1 auto;overflow-wrap:anywhere}
.reservation-drawer-title h2{min-width:0;overflow-wrap:anywhere}.reservation-drawer-title p{min-width:0;overflow-wrap:anywhere}
.reservation-drawer-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-3) var(--space-4)}
.reservation-drawer-actions>.btn{min-width:0;max-width:100%}.reservation-drawer-actions>details{min-width:0;max-width:100%}
.reservation-drawer-actions .reservation-detail-primary-op{flex:1 1 180px}
.reservation-drawer-rc26 .reservation-detail-scroll{min-width:0;overflow-x:hidden}
.reservation-drawer-rc26 .reservation-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.reservation-drawer-rc26 .reservation-detail-summary>div{min-width:0;overflow-wrap:anywhere}
.reservation-drawer-rc26 .financial-truth-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:var(--space-2)}
.reservation-drawer-rc26 .reservation-detail-row{min-width:0;gap:var(--space-3)}
.reservation-drawer-rc26 .reservation-detail-row>span{min-width:0;overflow-wrap:anywhere}
.reservation-more-actions-menu{max-width:min(360px,calc(100vw - 32px));min-width:min(260px,calc(100vw - 32px));overflow:auto}
@media(max-width:1023px){
 .reservations-rc26 .page-head{align-items:flex-start}
 .reservations-rc26 .page-head>.toolbar{width:100%}
 .reservation-drawer-rc26 .reservation-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:639px){
 .reservations-rc26 .toolbar{gap:var(--space-2)}
 .reservations-rc26 .toolbar input{flex:1 1 100%;width:100%}.reservations-rc26 .toolbar select{flex:1 1 100%;width:100%}
 .reservation-drawer-rc26{width:100vw;max-width:100vw}
 .reservation-drawer-actions{align-items:stretch}
 .reservation-drawer-actions .reservation-detail-primary-op{flex:1 1 100%;width:100%}
 .reservation-drawer-rc26 .reservation-detail-summary{grid-template-columns:minmax(0,1fr)}
 .reservation-drawer-rc26 .financial-truth-grid{grid-template-columns:minmax(0,1fr)}
}

/* RC26 — Rooms, Housekeeping and Maintenance operational surfaces */
.rooms-rc26{min-width:0;display:grid;gap:var(--space-4)}.housekeeping-rc26{min-width:0;display:grid;gap:var(--space-4)}.maintenance-rc26{min-width:0;display:grid;gap:var(--space-4)}
.rooms-rc26 .page-head{min-width:0;max-width:100%}.housekeeping-rc26 .page-head{min-width:0;max-width:100%}.maintenance-rc26 .page-head{min-width:0;max-width:100%}
.rooms-rc26 .metric-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:var(--space-3)}.housekeeping-rc26 .metric-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:var(--space-3)}.maintenance-rc26 .metric-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:var(--space-3)}
.rooms-rc26 .rooms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:var(--space-3);min-width:0}.housekeeping-rc26 .rooms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:var(--space-3);min-width:0}
.rooms-rc26 .room-card{min-width:0;display:flex;flex-direction:column;gap:var(--space-2);border-radius:var(--radius-md);overflow:hidden}.housekeeping-rc26 .room-card{min-width:0;display:flex;flex-direction:column;gap:var(--space-2);border-radius:var(--radius-md);overflow:hidden}
.rooms-rc26 .room-card>.toolbar{min-width:0;max-width:100%;flex-wrap:wrap}.housekeeping-rc26 .room-card>.toolbar{min-width:0;max-width:100%;flex-wrap:wrap}
.rooms-rc26 .room-card .badge{max-width:100%;overflow-wrap:anywhere}.housekeeping-rc26 .room-card .badge{max-width:100%;overflow-wrap:anywhere}
.rooms-rc26 .room-current-guest{min-width:0;overflow-wrap:anywhere}
.rooms-rc26 .room-current-guest span{min-width:0}
.rooms-rc26 .room-current-guest strong{overflow-wrap:anywhere}
.rooms-rc26 .room-card .btn{flex:1 1 auto;max-width:100%}
.housekeeping-rc26 .room-equipment-blockers{overflow-wrap:anywhere}
.housekeeping-rc26 .hk-equipment-checklist{min-width:0;gap:var(--space-3)}
.housekeeping-rc26 .hk-equipment-row{min-width:0;border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3)}
.housekeeping-rc26 .hk-equipment-row-head{min-width:0;flex-wrap:wrap}
.housekeeping-rc26 .hk-equipment-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);min-width:0}
.housekeeping-rc26 .hk-equipment-choice span{min-height:44px;padding:var(--space-2);overflow-wrap:anywhere}
.housekeeping-rc26 .hk-cleaning-sheet{min-width:0;gap:var(--space-4)}
.housekeeping-rc26 .hk-cleaning-summary{min-width:0;flex-wrap:wrap}
.housekeeping-rc26 .hk-cleaning-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}
.maintenance-rc26 .panel{min-width:0;max-width:100%}.maintenance-rc26 .table-wrap{min-width:0;max-width:100%}
.maintenance-rc26 .table-wrap{overflow-x:auto}
.maintenance-rc26 td{vertical-align:middle}.maintenance-rc26 th{vertical-align:middle}
.maintenance-rc26 td{overflow-wrap:anywhere}
.maintenance-rc26 td .toolbar{min-width:0;flex-wrap:wrap}
.maintenance-rc26 td .toolbar .btn{max-width:100%;white-space:normal}
.maintenance-rc26 .maintenance-equipment-origin{min-width:0;display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}
@media(max-width:1023px){
 .rooms-rc26 .page-head{align-items:flex-start}.housekeeping-rc26 .page-head{align-items:flex-start}.maintenance-rc26 .page-head{align-items:flex-start}
 .housekeeping-rc26 .hk-equipment-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:639px){
 .rooms-rc26 .rooms-grid{grid-template-columns:minmax(0,1fr)}.housekeeping-rc26 .rooms-grid{grid-template-columns:minmax(0,1fr)}
 .rooms-rc26 .page-head>.toolbar{width:100%}.housekeeping-rc26 .page-head>.toolbar{width:100%}.maintenance-rc26 .page-head>.toolbar{width:100%}
 .rooms-rc26 .page-head>.toolbar .btn{flex:1 1 140px}.housekeeping-rc26 .page-head>.toolbar .btn{flex:1 1 140px}.maintenance-rc26 .page-head>.toolbar .btn{flex:1 1 140px}
 .housekeeping-rc26 .hk-equipment-choices{grid-template-columns:minmax(0,1fr)}
}

/* RC26 — Admin, Platform and global content consistency */
.content>.page-head{min-width:0;max-width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}
.content>.page-head>div{min-width:0;max-width:100%}
.content>.page-head h1{overflow-wrap:anywhere}.content>.page-head p{overflow-wrap:anywhere}
.content .toolbar{min-width:0;flex-wrap:wrap;max-width:100%}
.content .toolbar>*{min-width:0;max-width:100%}
.page-head .toolbar{max-width:100%;margin-left:auto}
.section-head{min-width:0;max-width:100%;display:flex;gap:var(--space-3);flex-wrap:wrap}
.section-head>*{min-width:0;max-width:100%}
.content .table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.content .table{max-width:100%}
.content .cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:var(--space-3);min-width:0}.content .metric-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:var(--space-3);min-width:0}
.content .grid{min-width:0;max-width:100%}
.content .grid>*{min-width:0}
.admin-rc26{min-width:0;display:grid;gap:var(--space-4)}.platform-rc26{min-width:0;display:grid;gap:var(--space-4)}
.admin-rc26>.panel{min-width:0;max-width:100%;margin:0}.platform-rc26>.panel{min-width:0;max-width:100%;margin:0}.admin-rc26>form.panel{min-width:0;max-width:100%;margin:0}.platform-rc26>form.panel{min-width:0;max-width:100%;margin:0}
.admin-rc26 .form-grid{min-width:0}.platform-rc26 .form-grid{min-width:0}
.admin-rc26 .form-grid>*{min-width:0}.platform-rc26 .form-grid>*{min-width:0}
.platform-rc26 .platform-hotel-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:var(--space-3)}
@media(max-width:1023px){
 .content>.page-head{align-items:flex-start}
 .page-head .toolbar{margin-left:0}
 .admin-rc26 .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-rc26 .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:639px){
 .content>.page-head{gap:var(--space-3)}.section-head{gap:var(--space-3)}
 .page-head .toolbar{width:100%}
 .page-head .toolbar .btn{flex:1 1 140px}
 .admin-rc26 .form-grid{grid-template-columns:minmax(0,1fr)}.platform-rc26 .form-grid{grid-template-columns:minmax(0,1fr)}
}

/* RC26 — final accessibility and overflow hardening */
.app-shell{min-width:0}.main{min-width:0}.content{min-width:0}.page-head{min-width:0}.panel{min-width:0}.toolbar{min-width:0}
.content{overflow-x:clip;max-width:100%}
img{max-width:100%}svg{max-width:100%}
.table-wrap{overflow-x:auto;overscroll-behavior-inline:contain}.classic-calendar-scroll{overflow-x:auto;overscroll-behavior-inline:contain}
.nav button:focus-visible{outline:3px solid color-mix(in srgb,var(--ds-sidebar-accent) 50%,transparent);outline-offset:2px}.sidebar-collapse:focus-visible{outline:3px solid color-mix(in srgb,var(--ds-sidebar-accent) 50%,transparent);outline-offset:2px}.mobile-menu:focus-visible{outline:3px solid color-mix(in srgb,var(--ds-sidebar-accent) 50%,transparent);outline-offset:2px}
.sidebar-collapse{min-width:40px;min-height:40px}.mobile-menu{min-width:40px;min-height:40px}.btn.icon-only{min-width:40px}
@media(prefers-reduced-motion:reduce){
 .app-shell{transition:none!important}.sidebar{transition:none!important}.sidebar-backdrop{transition:none!important}.sidebar-collapse{transition:none!important}
}

/* v16.0.0 RC27 — Modern Hospitality token layer */
:root{
  --mh-bg-app:#F6F5F1;--mh-bg-subtle:#F1F2EE;--mh-surface:#FFFFFF;--mh-surface-raised:#FFFFFF;--mh-surface-soft:#FAFAF7;--mh-surface-muted:#F4F5F1;
  --mh-green-950:#072C24;--mh-green-900:#0B3B30;--mh-green-800:#0F4C3C;--mh-green-700:#146047;--mh-green-600:#177A55;--mh-green-500:#1D8B60;--mh-green-100:#E7F3ED;--mh-green-50:#F2F8F5;
  --mh-primary:var(--mh-green-700);--mh-primary-hover:var(--mh-green-800);
  --mh-bronze-700:#8C6330;--mh-bronze-600:#A87938;--mh-bronze-500:#C08A3E;--mh-bronze-200:#E7D4B8;--mh-bronze-100:#F3E9DA;--mh-bronze-50:#FBF7F0;
  --mh-text-strong:#15211D;--mh-text:#33423C;--mh-text-muted:#6B7772;--mh-text-soft:#8B9691;--mh-border:#DDE2DE;--mh-border-strong:#CCD4CF;
  --mh-success:#177A55;--mh-success-soft:#E8F4ED;--mh-warning:#B87814;--mh-warning-soft:#FFF4DD;--mh-danger:#B94A48;--mh-danger-hover:#9F3D3B;--mh-danger-soft:#FBECEA;--mh-info:#3E6D8E;--mh-info-soft:#EAF3F8;--mh-neutral-soft:#EFF2F0;
  --mh-font-xs:12px;--mh-font-sm:13px;--mh-font-md:14px;--mh-font-lg:16px;--mh-font-xl:18px;--mh-font-2xl:24px;--mh-font-3xl:32px;
  --mh-shadow-subtle:0 1px 2px rgba(15,35,27,.04),0 4px 14px rgba(15,35,27,.03);--mh-shadow-raised:0 2px 6px rgba(15,35,27,.05),0 10px 28px rgba(15,35,27,.07);--mh-shadow-overlay:0 18px 50px rgba(12,31,24,.16);
  --mh-radius-sm:8px;--mh-radius-md:12px;--mh-radius-lg:16px;--mh-radius-xl:20px;
  --ds-canvas:var(--mh-bg-app);--ds-canvas-strong:var(--mh-bg-subtle);--ds-surface:var(--mh-surface);--ds-surface-raised:var(--mh-surface-raised);--ds-surface-soft:var(--mh-surface-soft);--ds-surface-hover:var(--mh-surface-muted);--ds-surface-active:var(--mh-green-100);
  --ds-border:var(--mh-border);--ds-border-strong:var(--mh-border-strong);--ds-ink:var(--mh-text-strong);--ds-ink-secondary:var(--mh-text);--ds-muted:var(--mh-text-muted);--ds-faint:var(--mh-text-soft);
  --ds-primary:var(--mh-primary);--ds-primary-hover:var(--mh-primary-hover);--ds-primary-soft:var(--mh-green-100);--ds-primary-soft-strong:#D6EADF;--ds-focus:var(--mh-green-600);
  --ds-brass:var(--mh-bronze-600);--ds-brass-hover:var(--mh-bronze-700);--ds-brass-soft:var(--mh-bronze-100);
  --ds-success:var(--mh-success);--ds-success-soft:var(--mh-success-soft);--ds-info:var(--mh-info);--ds-info-soft:var(--mh-info-soft);--ds-warning:var(--mh-warning);--ds-warning-soft:var(--mh-warning-soft);--ds-danger:var(--mh-danger);--ds-danger-soft:var(--mh-danger-soft);
  --shadow-xs:var(--mh-shadow-subtle);--shadow-sm:var(--mh-shadow-subtle);--shadow-md:var(--mh-shadow-raised);--shadow-modal:var(--mh-shadow-overlay);
}

/* v16.0.0 RC27 — Modern Hospitality shared component layer */
.btn{gap:8px;
}.btn-secondary{gap:8px;
}.btn-primary{gap:8px;
}.btn-ghost{gap:8px;
}.btn-danger{gap:8px;
}.btn-icon{gap:8px;
}
.btn.icon-only{width:40px;min-width:40px}.btn-icon{width:40px;min-width:40px}
.btn:disabled{opacity:.46;cursor:not-allowed;transform:none}.btn-primary:disabled{opacity:.46;cursor:not-allowed;transform:none}.btn-secondary:disabled{opacity:.46;cursor:not-allowed;transform:none}.btn-ghost:disabled{opacity:.46;cursor:not-allowed;transform:none}.btn-danger:disabled{opacity:.46;cursor:not-allowed;transform:none}
.btn[aria-busy="true"]{cursor:progress;min-width:max-content}.btn-primary[aria-busy="true"]{cursor:progress;min-width:max-content}

.panel{border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle)}.ui-card{border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle)}
.metric{border:1px solid var(--mh-border);background:var(--mh-surface);padding:18px}.ui-card-kpi{border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle);padding:18px}
.ui-card-operational{border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle)}
.ui-card-info{border:0;border-radius:var(--mh-radius-lg);background:var(--mh-surface-muted);box-shadow:none}
.ui-card-action{border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease,background-color .15s ease}
.ui-card-action:hover{transform:translateY(-1px);border-color:var(--mh-border-strong);box-shadow:var(--mh-shadow-raised);background:var(--mh-green-50)}

input{min-height:42px;border:1px solid var(--mh-border);border-radius:var(--mh-radius-md);background:var(--mh-surface);color:var(--mh-text-strong)}.ui-field{min-height:42px;border:1px solid var(--mh-border);border-radius:var(--mh-radius-md);background:var(--mh-surface);color:var(--mh-text-strong)}select{min-height:42px;border:1px solid var(--mh-border);border-radius:var(--mh-radius-md);background:var(--mh-surface);color:var(--mh-text-strong)}.ui-select{min-height:42px;border:1px solid var(--mh-border);border-radius:var(--mh-radius-md);background:var(--mh-surface);color:var(--mh-text-strong)}textarea{min-height:42px;border:1px solid var(--mh-border);border-radius:var(--mh-radius-md);background:var(--mh-surface);color:var(--mh-text-strong)}
input:hover{border-color:var(--mh-border-strong)}.ui-field:hover{border-color:var(--mh-border-strong)}select:hover{border-color:var(--mh-border-strong)}.ui-select:hover{border-color:var(--mh-border-strong)}textarea:hover{border-color:var(--mh-border-strong)}
input:focus{border-color:var(--mh-primary);box-shadow:0 0 0 3px rgba(23,122,85,.14)}.ui-field:focus{border-color:var(--mh-primary);box-shadow:0 0 0 3px rgba(23,122,85,.14)}select:focus{border-color:var(--mh-primary);box-shadow:0 0 0 3px rgba(23,122,85,.14)}.ui-select:focus{border-color:var(--mh-primary);box-shadow:0 0 0 3px rgba(23,122,85,.14)}textarea:focus{border-color:var(--mh-primary);box-shadow:0 0 0 3px rgba(23,122,85,.14)}.ui-search:focus-within{border-color:var(--mh-primary);box-shadow:0 0 0 3px rgba(23,122,85,.14)}
.ui-search{min-height:40px;border:1px solid var(--mh-border);border-radius:var(--mh-radius-md);background:var(--mh-surface-soft);display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--mh-text-muted)}
label{color:var(--mh-text);font-size:var(--mh-font-xs);font-weight:650}

.badge{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:680;line-height:1.1;border:1px solid transparent;white-space:nowrap}.ui-badge-neutral{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:680;line-height:1.1;border:1px solid transparent;white-space:nowrap}.ui-badge-success{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:680;line-height:1.1;border:1px solid transparent;white-space:nowrap}.ui-badge-warning{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:680;line-height:1.1;border:1px solid transparent;white-space:nowrap}.ui-badge-danger{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:680;line-height:1.1;border:1px solid transparent;white-space:nowrap}.ui-badge-info{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:680;line-height:1.1;border:1px solid transparent;white-space:nowrap}
.badge{background:var(--mh-neutral-soft);color:var(--mh-text-muted)}.ui-badge-neutral{background:var(--mh-neutral-soft);color:var(--mh-text-muted)}
.badge.green{background:var(--mh-success-soft);color:var(--mh-success);border-color:#CAE4D5}.ui-badge-success{background:var(--mh-success-soft);color:var(--mh-success);border-color:#CAE4D5}
.badge.amber{background:var(--mh-warning-soft);color:#8B5A0D;border-color:#F0D9AB}.ui-badge-warning{background:var(--mh-warning-soft);color:#8B5A0D;border-color:#F0D9AB}
.badge.red{background:var(--mh-danger-soft);color:var(--mh-danger);border-color:#F0C9C6}.ui-badge-danger{background:var(--mh-danger-soft);color:var(--mh-danger);border-color:#F0C9C6}
.badge.blue{background:var(--mh-info-soft);color:var(--mh-info);border-color:#D1E2EC}.ui-badge-info{background:var(--mh-info-soft);color:var(--mh-info);border-color:#D1E2EC}


.ui-modal{border:1px solid rgba(204,212,207,.8);border-radius:var(--mh-radius-xl);background:var(--mh-surface);box-shadow:var(--mh-shadow-overlay)}
.reservation-detail-drawer{border-left:1px solid var(--mh-border);background:var(--mh-surface);box-shadow:var(--mh-shadow-overlay)}.ui-drawer{border-left:1px solid var(--mh-border);background:var(--mh-surface);box-shadow:var(--mh-shadow-overlay)}
.ui-popover{border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-raised);padding:8px}
.toast{max-width:420px;border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-raised);color:var(--mh-text)}.ui-toast{max-width:420px;border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-raised);color:var(--mh-text)}

.table{width:100%;border-collapse:collapse;background:var(--mh-surface)}.ui-table{width:100%;border-collapse:collapse;background:var(--mh-surface)}
.table th{height:44px;background:var(--mh-surface-soft);color:var(--mh-text-muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.ui-table th{height:44px;background:var(--mh-surface-soft);color:var(--mh-text-muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.table td{min-height:44px;border-bottom:1px solid var(--mh-border);color:var(--mh-text)}.ui-table td{min-height:44px;border-bottom:1px solid var(--mh-border);color:var(--mh-text)}
.table tbody tr:hover{background:var(--mh-green-50)}.ui-table tbody tr:hover{background:var(--mh-green-50)}
.table tbody tr[aria-selected="true"]{background:var(--mh-green-100)}.ui-table tbody tr[aria-selected="true"]{background:var(--mh-green-100)}
.table-wrap{border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);overflow:auto}

.tab{min-height:40px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--mh-text-muted);padding:8px 12px;font-weight:650}.ui-tabs button{min-height:40px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--mh-text-muted);padding:8px 12px;font-weight:650}
.tab.active{border-bottom-color:var(--mh-primary);background:transparent;color:var(--mh-primary)}.ui-tabs button.active{border-bottom-color:var(--mh-primary);background:transparent;color:var(--mh-primary)}
.ui-segmented{display:inline-flex;align-items:center;gap:3px;border-radius:var(--mh-radius-md);background:var(--mh-surface-muted);padding:3px}
.ui-segmented>*{min-height:34px;border:0;border-radius:9px;background:transparent;color:var(--mh-text-muted);padding:6px 10px}
.ui-segmented>*.active{background:var(--mh-surface);color:var(--mh-text-strong);box-shadow:var(--mh-shadow-subtle)}.ui-segmented>*[aria-pressed="true"]{background:var(--mh-surface);color:var(--mh-text-strong);box-shadow:var(--mh-shadow-subtle)}

.empty{border:0;border-radius:var(--mh-radius-lg);background:var(--mh-surface-muted);color:var(--mh-text-muted);padding:22px;text-align:center}

/* v16.0.0 RC27 — shell, topbar and dashboard hospitality hierarchy */
.sidebar{background:linear-gradient(180deg,var(--mh-green-950) 0%,#0A352B 100%);border-right-color:rgba(231,212,184,.16)}
.sidebar .nav button{border-radius:10px;color:#AFBBB5;transition:background-color .15s ease,color .15s ease,transform .15s ease}
.sidebar .nav button:hover{background:rgba(255,255,255,.055);color:#F7F5EF}
.sidebar .nav button.active{background:rgba(255,255,255,.08);color:#FFFFFF}
.sidebar .nav button.active:before{background:var(--mh-bronze-500);width:3px;top:7px;bottom:7px;border-radius:0 3px 3px 0}
.sidebar .nav button.active .nav-icon{color:var(--mh-bronze-200)}
.sidebar .nav-group-title{color:#83928B;font-size:10px;letter-spacing:.14em}
.sidebar-collapse{border-color:rgba(231,212,184,.16);background:rgba(255,255,255,.035)}
.sidebar-collapse:hover{background:rgba(255,255,255,.07)}
.topbar{background:rgba(255,255,255,.92);border-bottom-color:rgba(221,226,222,.82);box-shadow:0 1px 0 rgba(15,35,27,.02);backdrop-filter:blur(14px)}
.top-search{border-color:transparent;background:var(--mh-surface-soft);border-radius:var(--mh-radius-md);box-shadow:inset 0 0 0 1px rgba(221,226,222,.55)}
.top-search:hover{border-color:transparent;background:var(--mh-surface-muted);box-shadow:inset 0 0 0 1px var(--mh-border)}
.top-search kbd{border-color:var(--mh-border);background:var(--mh-surface);color:var(--mh-text-soft)}
.hotel-switch select{border-radius:var(--mh-radius-md)}
.cashier-chip{border-color:var(--mh-border);border-radius:999px;background:var(--mh-surface-soft);color:var(--mh-text-muted)}
.business-date{border-color:transparent;border-radius:999px;background:var(--mh-success-soft);color:var(--mh-success)}
.business-date.business-date-lag{border-color:transparent;background:var(--mh-warning-soft);color:#8B5A0D}
.content{background:var(--mh-bg-app)}
.page-head h1{color:var(--mh-text-strong);font-weight:735;letter-spacing:-.035em}
.mh-dashboard{display:grid;gap:24px}
.mh-dashboard .page-head{margin-bottom:0;align-items:flex-end}
.mh-dashboard .page-head h1{font-size:32px;line-height:1.08}
.mh-dashboard .page-head p{max-width:780px;color:var(--mh-text-muted);font-size:14px;line-height:1.55}
.mh-dashboard .cards{gap:12px}
.mh-dashboard .metric{min-height:112px;padding:18px 18px 16px;border-color:rgba(221,226,222,.9)}.mh-dashboard .ui-card-kpi{min-height:112px;padding:18px 18px 16px;border-color:rgba(221,226,222,.9);box-shadow:var(--mh-shadow-subtle)}
.mh-dashboard .metric label{color:var(--mh-text-muted);text-transform:uppercase}.mh-dashboard .ui-card-kpi label{color:var(--mh-text-muted);font-size:11px;font-weight:700;letter-spacing:.055em;text-transform:uppercase}
.mh-dashboard .metric strong{margin-top:8px;color:var(--mh-text-strong);font-variant-numeric:tabular-nums}.mh-dashboard .ui-card-kpi strong{margin-top:8px;color:var(--mh-text-strong);font-size:26px;font-weight:740;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.mh-dashboard .metric small{margin-top:auto;color:var(--mh-text-muted)}.mh-dashboard .ui-card-kpi small{margin-top:auto;color:var(--mh-text-muted);font-size:11px}
.mh-dashboard .quick-actions{gap:12px}
.mh-dashboard .quick-action{position:relative;min-height:112px;padding:18px 46px 18px 18px;text-align:left;overflow:hidden}
.mh-dashboard .quick-action strong{color:var(--mh-text-strong);font-size:15px;font-weight:700}
.mh-dashboard .quick-action small{margin-top:6px;color:var(--mh-text-muted);font-size:12px;line-height:1.45}
.mh-dashboard .quick-action::after{content:"→";position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--mh-bronze-600);font-size:20px;font-weight:500;transition:transform .15s ease,color .15s ease}
.mh-dashboard .quick-action:hover::after{transform:translate(3px,-50%);color:var(--mh-primary)}
.mh-dashboard .panel{padding:20px}
.business-date-context{border:0;border-radius:var(--mh-radius-lg);background:var(--mh-surface-muted);box-shadow:none;color:var(--mh-text);padding:14px 16px}
.business-date-context strong{color:var(--mh-primary)}

/* v16.0.0 RC27 — Calendar + Front Desk Modern Hospitality surfaces */
.calendar-rc26-shell .calendar-panel{border-color:var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle)}
.calendar-rc26-shell .calendar-head{background:var(--mh-surface-soft);border-bottom-color:var(--mh-border)}
.calendar-rc26-shell .calendar-room-head{background:var(--mh-surface-soft);border-right-color:rgba(221,226,222,.78);color:var(--mh-text-muted)}
.calendar-rc26-shell .calendar-day{border-right-color:rgba(221,226,222,.72);color:var(--mh-text-muted)}
.calendar-rc26-shell .calendar-cell{border-right-color:rgba(221,226,222,.72);background:linear-gradient(to bottom,transparent,var(--mh-surface-soft))}
.calendar-rc26-shell .calendar-row{border-bottom-color:rgba(221,226,222,.72);background:var(--mh-surface)}
.calendar-rc26-shell .calendar-room{background:var(--mh-surface);border-right-color:rgba(221,226,222,.78)}
.calendar-rc26-shell .calendar-day.today{background:var(--mh-green-100);color:var(--mh-primary);box-shadow:inset 0 -2px 0 var(--mh-primary)}
.calendar-rc26-shell .calendar-res{height:34px;border-radius:9px;box-shadow:none;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}
.calendar-rc26-shell .calendar-res:hover{transform:translateY(-1px);filter:none;box-shadow:var(--mh-shadow-subtle)}
.calendar-rc26-shell .calendar-res.confirmed{background:#F1EEF7;border-color:#D8D1E6;color:#61597F}
.calendar-rc26-shell .calendar-res.checked_in{background:#E8F2F2;border-color:#C6DEDF;color:#2E6870}
.calendar-rc26-shell .calendar-res.tentative{background:var(--mh-warning-soft);border-color:#F0D9AB;color:#8B5A0D}
.calendar-rc26-shell .calendar-reference-toolbar{border:0;border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle);padding:12px 14px}
.calendar-rc26-shell .calendar-reference-toolbar-right{gap:10px}
.calendar-rc26-shell .calendar-date-jump{background:var(--mh-surface-soft);border-color:transparent;box-shadow:inset 0 0 0 1px var(--mh-border)}
.calendar-rc26-shell .calendar-legend{border-bottom-color:var(--mh-border);background:var(--mh-surface-soft);color:var(--mh-text-muted)}
.calendar-rc26-shell .calendar-legend i{border-radius:999px}

.frontdesk-rc26 .frontdesk-queue-zone{border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle);padding:16px}.frontdesk-rc26 .frontdesk-detail-zone{border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle);padding:16px}.frontdesk-rc26 .frontdesk-actions-zone{border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle);padding:16px}
.frontdesk-rc26 .frontdesk-queue-tools{border-bottom-color:var(--mh-border);padding-bottom:14px}
.frontdesk-rc26 .frontdesk-filter{border-color:var(--mh-border);border-radius:var(--mh-radius-md);background:var(--mh-surface-soft);color:var(--mh-text-muted)}
.frontdesk-rc26 .frontdesk-filter:hover{background:var(--mh-surface-muted);color:var(--mh-text-strong)}
.frontdesk-rc26 .frontdesk-filter.active{background:var(--mh-green-100);border-color:transparent;color:var(--mh-primary)}
.frontdesk-rc26 .frontdesk-queue-item{border:1px solid transparent;border-radius:var(--mh-radius-md);background:transparent}
.frontdesk-rc26 .frontdesk-queue-item:hover{background:var(--mh-surface-soft);border-color:var(--mh-border)}
.frontdesk-rc26 .frontdesk-queue-item.active{background:var(--mh-green-100);border-color:transparent;box-shadow:inset 3px 0 0 var(--mh-primary)}
.frontdesk-rc26 .frontdesk-selected-head{border-bottom-color:var(--mh-border);padding-bottom:18px}
.frontdesk-rc26 .frontdesk-selected-head h2{font-size:20px;color:var(--mh-text-strong);font-weight:720}
.frontdesk-rc26 .frontdesk-detail-grid>div{border:0;border-radius:var(--mh-radius-md);background:var(--mh-surface-muted);padding:13px}
.frontdesk-rc26 .frontdesk-detail-grid small{color:var(--mh-text-muted)}.frontdesk-rc26 .frontdesk-detail-grid span{color:var(--mh-text-muted)}
.frontdesk-rc26 .frontdesk-detail-grid strong{color:var(--mh-text-strong);font-variant-numeric:tabular-nums}
.frontdesk-rc26 .frontdesk-readiness{border:0;border-radius:var(--mh-radius-md);background:var(--mh-surface-muted);padding:13px}.frontdesk-rc26 .frontdesk-scheduled{border:0;border-radius:var(--mh-radius-md);background:var(--mh-surface-muted);padding:13px}.frontdesk-rc26 .frontdesk-notes{border:0;border-radius:var(--mh-radius-md);background:var(--mh-surface-muted);padding:13px}
.frontdesk-rc26 .frontdesk-readiness.ready{background:var(--mh-success-soft)}
.frontdesk-rc26 .frontdesk-readiness.warning{background:var(--mh-warning-soft)}.frontdesk-rc26 .frontdesk-scheduled{background:var(--mh-warning-soft)}
.frontdesk-rc26 .frontdesk-readiness.blocked{background:var(--mh-danger-soft);color:var(--mh-danger)}
.frontdesk-rc26 .frontdesk-guest-account{border:0;border-radius:var(--mh-radius-lg);background:var(--mh-green-50);box-shadow:inset 0 0 0 1px rgba(23,122,85,.08);padding:14px}
.frontdesk-rc26 .frontdesk-guest-account-head strong{font-size:20px;color:var(--mh-text-strong);font-variant-numeric:tabular-nums}
.frontdesk-rc26 .frontdesk-action-head{border-bottom-color:var(--mh-border)}
.frontdesk-rc26 .frontdesk-attention-strip{border-radius:var(--mh-radius-md);background:var(--mh-surface-muted);padding:10px 12px}

/* v16.0.0 RC27 — Reservations, Rooms, Housekeeping, Maintenance */
.reservations-rc26 .reservation-list-row:hover{background:var(--mh-green-50)}
.reservation-drawer-rc26 .reservation-detail-head{padding:20px 22px;border-bottom-color:var(--mh-border);background:var(--mh-surface)}
.reservation-drawer-rc26 .reservation-detail-scroll{padding:18px 22px 28px;gap:16px;background:var(--mh-bg-app)}
.reservation-drawer-rc26 .reservation-detail-summary>div{border:0;border-radius:var(--mh-radius-md);background:var(--mh-surface-muted);box-shadow:inset 0 0 0 1px rgba(31,43,38,.04)}
.reservation-drawer-rc26 .reservation-detail-row{padding:11px 0;border-bottom-color:var(--mh-border)}
.reservation-drawer-rc26 .reservation-detail-actions{border-top-color:var(--mh-border);background:var(--mh-surface-soft)}
.reservation-drawer-rc26 .reservation-detail-card{border-color:var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle)}

.rooms-rc26 .room-card{position:relative;overflow:hidden;background:var(--mh-surface);border-color:var(--mh-border);border-radius:var(--mh-radius-lg);box-shadow:var(--mh-shadow-subtle)}.housekeeping-rc26 .room-card{position:relative;overflow:hidden;background:var(--mh-surface);border-color:var(--mh-border);border-radius:var(--mh-radius-lg);box-shadow:var(--mh-shadow-subtle)}
.rooms-rc26 .room-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--mh-border-strong);opacity:.8}.housekeeping-rc26 .room-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--mh-border-strong);opacity:.8}
.rooms-rc26 .room-card.room-state-ready{background:var(--mh-surface)}
.rooms-rc26 .room-card.room-state-ready:before{background:var(--mh-success)}
.rooms-rc26 .room-card.room-state-occupied{background:var(--mh-surface)}
.rooms-rc26 .room-card.room-state-occupied:before{background:var(--mh-info)}
.rooms-rc26 .room-card.room-state-reserved{background:var(--mh-surface)}
.rooms-rc26 .room-card.room-state-reserved:before{background:var(--mh-bronze-500)}
.rooms-rc26 .room-card.room-state-dirty{background:var(--mh-surface)}.housekeeping-rc26 .room-card.room-state-dirty{background:var(--mh-surface)}
.rooms-rc26 .room-card.room-state-dirty:before{background:var(--mh-warning)}.housekeeping-rc26 .room-card.room-state-dirty:before{background:var(--mh-warning)}
.rooms-rc26 .room-card.room-state-cleaning{background:var(--mh-surface)}.housekeeping-rc26 .room-card.room-state-cleaning{background:var(--mh-surface)}
.rooms-rc26 .room-card.room-state-cleaning:before{background:var(--mh-info)}.housekeeping-rc26 .room-card.room-state-cleaning:before{background:var(--mh-info)}
.rooms-rc26 .room-card.room-state-inspection{background:var(--mh-surface)}.housekeeping-rc26 .room-card.room-state-inspection{background:var(--mh-surface)}
.rooms-rc26 .room-card.room-state-inspection:before{background:var(--mh-bronze-500)}.housekeeping-rc26 .room-card.room-state-inspection:before{background:var(--mh-bronze-500)}
.rooms-rc26 .room-card.room-state-out_of_order{background:var(--mh-surface)}.rooms-rc26 .room-card.room-state-out_of_service{background:var(--mh-surface)}.housekeeping-rc26 .room-card.room-state-out_of_order{background:var(--mh-surface)}.housekeeping-rc26 .room-card.room-state-out_of_service{background:var(--mh-surface)}
.rooms-rc26 .room-card.room-state-out_of_order:before{background:var(--mh-danger)}.rooms-rc26 .room-card.room-state-out_of_service:before{background:var(--mh-danger)}.housekeeping-rc26 .room-card.room-state-out_of_order:before{background:var(--mh-danger)}.housekeeping-rc26 .room-card.room-state-out_of_service:before{background:var(--mh-danger)}
.rooms-rc26 .room-card:hover{border-color:var(--mh-border-strong);box-shadow:var(--mh-shadow-raised);transform:translateY(-1px)}.housekeeping-rc26 .room-card:hover{border-color:var(--mh-border-strong);box-shadow:var(--mh-shadow-raised);transform:translateY(-1px)}

.housekeeping-rc26 .hk-equipment-row{border-color:var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle)}
.housekeeping-rc26 .hk-equipment-row.has-problem{border-color:transparent;background:var(--mh-danger-soft);box-shadow:inset 3px 0 0 var(--mh-danger)}
.housekeeping-rc26 .hk-equipment-choice span{min-height:44px;border-color:var(--mh-border);border-radius:10px;background:var(--mh-surface-soft);color:var(--mh-text)}
.housekeeping-rc26 .hk-equipment-choice input:checked+span{background:var(--mh-green-100);border-color:transparent;color:var(--mh-primary);box-shadow:inset 0 0 0 1px rgba(23,122,85,.12)}
.housekeeping-rc26 .hk-equipment-note input{background:var(--mh-surface);border-color:var(--mh-border)}

.maintenance-rc26 .maintenance-row{transition:background .14s ease,box-shadow .14s ease}
.maintenance-rc26 .maintenance-row.priority-p1{box-shadow:inset 3px 0 0 var(--mh-danger);background:linear-gradient(90deg,var(--mh-danger-soft),var(--mh-surface) 28%)}
.maintenance-rc26 .maintenance-row.priority-p2{box-shadow:inset 3px 0 0 var(--mh-warning);background:linear-gradient(90deg,var(--mh-warning-soft),var(--mh-surface) 24%)}
.maintenance-rc26 .maintenance-row.priority-p3{box-shadow:inset 3px 0 0 var(--mh-border-strong)}
.maintenance-rc26 .table td:last-child .toolbar{gap:6px;justify-content:flex-end;flex-wrap:wrap}
.maintenance-rc26 .maintenance-equipment-origin{gap:8px;margin-top:8px}

/* v16.0.0 RC27 — Admin, Platform, accessibility and responsive sweep */
.admin-rc26>.panel{border-color:var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle)}.platform-rc26>.panel{border-color:var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle)}
.admin-rc26>form.panel{border-color:var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle)}.platform-rc26>form.panel{border-color:var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle)}
.admin-rc26 .form-grid label{color:var(--mh-text-muted);font-size:12px;font-weight:650}.platform-rc26 .form-grid label{color:var(--mh-text-muted);font-size:12px;font-weight:650}
.admin-rc26 .form-grid input{background:var(--mh-surface-soft);border-color:var(--mh-border)}.admin-rc26 .form-grid select{background:var(--mh-surface-soft);border-color:var(--mh-border)}.admin-rc26 .form-grid textarea{background:var(--mh-surface-soft);border-color:var(--mh-border)}.platform-rc26 .form-grid input{background:var(--mh-surface-soft);border-color:var(--mh-border)}.platform-rc26 .form-grid select{background:var(--mh-surface-soft);border-color:var(--mh-border)}.platform-rc26 .form-grid textarea{background:var(--mh-surface-soft);border-color:var(--mh-border)}
.platform-rc26 .platform-current-hotel{border-color:transparent;background:var(--mh-green-50);box-shadow:inset 3px 0 0 var(--mh-primary);border-radius:var(--mh-radius-lg)}
.platform-rc26 .platform-selection-intro{border-color:var(--mh-border);background:var(--mh-surface);border-radius:var(--mh-radius-lg);box-shadow:var(--mh-shadow-subtle)}
.platform-rc26 .platform-selection-icon{background:var(--mh-green-100);color:var(--mh-primary);border-radius:var(--mh-radius-md)}
.platform-rc26 .platform-hotel-card{border-color:var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle)}
.platform-rc26 .platform-hotel-card:hover{border-color:var(--mh-border-strong);box-shadow:var(--mh-shadow-raised)}
.platform-rc26 .platform-hotel-card.current{border-color:var(--mh-success);box-shadow:inset 3px 0 0 var(--mh-primary),var(--mh-shadow-subtle)}
.platform-rc26 .platform-hotel-card.archived{background:var(--mh-surface-muted);opacity:.78}
.platform-rc26 .platform-hotel-avatar{background:var(--mh-green-100);color:var(--mh-primary);border-radius:var(--mh-radius-md)}
.platform-rc26 .platform-hotel-stats{border-color:var(--mh-border)}
.platform-rc26 .platform-search input{background:var(--mh-surface-soft);border-color:var(--mh-border)}.platform-rc26 .platform-hotel-filters select{background:var(--mh-surface-soft);border-color:var(--mh-border)}

:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid rgba(23,122,85,.18);outline-offset:2px}
.ui-modal{max-height:calc(100dvh - 24px);overscroll-behavior:contain}.ui-drawer{max-height:calc(100dvh - 24px);overscroll-behavior:contain}.reservation-detail-drawer{max-height:calc(100dvh - 24px);overscroll-behavior:contain}
.content .toolbar{min-width:0;flex-wrap:wrap;max-width:100%}.ui-modal .toolbar{min-width:0;flex-wrap:wrap;max-width:100%}.ui-drawer .toolbar{min-width:0;flex-wrap:wrap;max-width:100%}
.content .table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.btn{transition-duration:.14s}.ui-card{transition-duration:.14s}.room-card{transition-duration:.14s}.platform-hotel-card{transition-duration:.14s}.quick-action{transition-duration:.14s}.frontdesk-queue-item{transition-duration:.14s}

@media(prefers-reduced-motion:reduce){.btn{transform:none!important}.ui-card{transition:none!important;transform:none!important}.room-card{transition:none!important;transform:none!important}.platform-hotel-card{transition:none!important;transform:none!important}.quick-action{transition:none!important;transform:none!important}.frontdesk-queue-item{transition:none!important;transform:none!important}.page-state-spinner{animation:none!important}.page-state-skeleton i:after{animation:none!important}}
@media(max-width:1023px){.content{padding:18px 16px 28px}.page-head{gap:14px}.page-head>.toolbar{width:100%;justify-content:flex-start}}
@media(max-width:639px){.content{padding:14px 12px 22px}.page-head h1{font-size:24px}.page-head p{font-size:12px}.panel{border-radius:var(--mh-radius-md)}.btn{max-width:100%}.form-grid{gap:12px}.ui-modal{max-height:calc(100dvh - 12px)}.ui-drawer{max-height:calc(100dvh - 12px)}.reservation-detail-drawer{max-height:calc(100dvh - 12px)}}


/* v16.0.0 RC28 — shell-aware responsive stabilization */
.main{container-type:inline-size;container-name:yotta-main}
.topbar{overflow:visible}
.top-left{min-width:0;overflow:visible}
.top-left .platform-hotel-context{min-width:0;max-width:min(420px,42cqw);flex:0 1 auto}
.top-left .business-date{flex:0 0 auto}
.top-search{min-width:180px;width:100%;max-width:430px;justify-self:stretch}
.top-actions{justify-self:end;min-width:0}
.top-actions>.btn{flex:0 0 auto;white-space:nowrap}
.mh-dashboard .cards{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}

@container yotta-main (min-width:1380px){
 .mh-dashboard .cards{grid-template-columns:repeat(6,minmax(0,1fr))}
}
@container yotta-main (max-width:1560px){
 .topbar{grid-template-columns:minmax(0,1fr) minmax(0,auto)}
 .top-left{grid-column:1;grid-row:1}
 .top-actions{grid-column:2;grid-row:1}
 .top-search{grid-row:2;grid-column:1/-1;max-width:none;width:100%;justify-self:stretch}
}
@container yotta-main (max-width:1180px){
 .top-search{display:none}
 .top-user-text{display:none}
 .top-left .platform-hotel-context{max-width:320px}
}
@container yotta-main (max-width:1100px){
 .content .grid{grid-template-columns:minmax(0,1fr)}.content .grid.equal{grid-template-columns:minmax(0,1fr)}
 .content .quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
 .calendar-rc26-shell .calendar-reference-toolbar{grid-template-columns:minmax(0,1fr)}
 .calendar-rc26-shell .calendar-reference-toolbar-right{justify-content:flex-start;width:100%}
}
@container yotta-main (max-width:980px){
 .business-date.business-date-lag{display:none}
 .cashier-chip{width:40px;min-width:40px;padding-inline:0;justify-content:center}
 .cashier-chip>span:last-child{display:none}
 .top-left .platform-hotel-context{max-width:280px}
}
@container yotta-main (max-width:760px){
 .mh-dashboard .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .content .quick-actions{grid-template-columns:minmax(0,1fr)}
}
@container yotta-main (max-width:520px){
 .mh-dashboard .cards{grid-template-columns:minmax(0,1fr)}
}

/* RC28 — mirror legacy viewport breakpoints against the real hotel workspace. */
@container yotta-main (max-width:1250px){
 .report-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@container yotta-main (max-width:1180px){
 .frontdesk-rc26 .frontdesk-three-zone{grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr)}
 .frontdesk-rc26 .frontdesk-actions-zone{grid-column:1/-1}
 .frontdesk-rc26 .frontdesk-actions-zone .frontdesk-action-stack{grid-template-columns:repeat(3,minmax(0,1fr))}
 .frontdesk-rc26 .frontdesk-actions-zone .frontdesk-room-picker{grid-column:1/-1}
 .platform-rc26 .platform-hotel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .platform-rc26 .platform-hotel-filters{min-width:380px}
}
@container yotta-main (max-width:1100px){
 .reservations-rc26 .reservation-list-layout{grid-template-columns:minmax(0,1fr)}
 .reservations-rc26 .reservation-right-rail{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
 .reservations-rc26 .reservation-right-rail>[data-jump-frontdesk]{grid-column:1/-1}
}
@container yotta-main (max-width:1050px){
 .folio-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cashier-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.night-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .schedule-columns{grid-template-columns:minmax(0,1fr)}
 .crm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container yotta-main (max-width:860px){
 .yotta-kpis{grid-template-columns:minmax(0,1fr)}.yotta-settlement-grid{grid-template-columns:minmax(0,1fr)}
 .yotta-two-col{grid-template-columns:minmax(0,1fr)}
 .yotta-doc-head{flex-direction:column}
 .yotta-actions .btn{flex:1 1 auto}
}
@container yotta-main (max-width:850px){
 .report-grid-2{grid-template-columns:minmax(0,1fr)}
 .report-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .report-controls{align-items:stretch}
 .report-control{flex:1 1 240px}
}
@container yotta-main (max-width:760px){
 .frontdesk-rc26 .frontdesk-three-zone{grid-template-columns:minmax(0,1fr);gap:var(--space-3)}
 .frontdesk-rc26 .frontdesk-actions-zone{grid-column:auto}
 .frontdesk-rc26 .frontdesk-actions-zone .frontdesk-action-stack{grid-template-columns:minmax(0,1fr)}
 .platform-rc26 .platform-hotel-grid{grid-template-columns:minmax(0,1fr)}
 .platform-rc26 .platform-hotels-head{align-items:stretch;flex-direction:column}.platform-rc26 .platform-current-hotel{align-items:stretch;flex-direction:column}
 .platform-rc26 .platform-hotel-filters{width:100%;min-width:0}
 .reservations-rc26 .reservation-right-rail{grid-template-columns:minmax(0,1fr)}
 .reservations-rc26 .reservation-right-rail>[data-jump-frontdesk]{grid-column:auto}
}
@container yotta-main (max-width:1023px){
 .content>.page-head{align-items:flex-start}
 .page-head .toolbar{margin-left:0}
 .calendar-rc26-shell .calendar-reference-toolbar{grid-template-columns:minmax(0,1fr)}
 .calendar-rc26-shell .calendar-reference-toolbar-right{justify-content:flex-start}
 .calendar-rc26-shell .calendar-reference-search{flex:1 1 260px}
 .reservations-rc26 .page-head{align-items:flex-start}
 .reservations-rc26 .page-head>.toolbar{width:100%}
 .rooms-rc26 .page-head{align-items:flex-start}.housekeeping-rc26 .page-head{align-items:flex-start}.maintenance-rc26 .page-head{align-items:flex-start}
 .housekeeping-rc26 .hk-equipment-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
 .admin-rc26 .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-rc26 .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* v16.0.0 RC31 — canonical calendar column geometry + sidebar panel affordance */
.calendar-rc31-shell .calendar-flat-room-list{width:100%;min-width:100%}
.calendar-rc31-shell .classic-calendar-axis{
  grid-template-columns:var(--classic-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min),1fr));
  min-width:calc(var(--classic-room-rail) + var(--calendar-days) * var(--calendar-cell-min));
  width:100%;
}.calendar-rc31-shell .calendar-row{
  grid-template-columns:var(--classic-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min),1fr));
  min-width:calc(var(--classic-room-rail) + var(--calendar-days) * var(--calendar-cell-min));
  width:100%;
}
.calendar-rc31-shell .calendar-flat-room-list>.calendar-row{max-width:none}
.sidebar-collapse .nav-icon{width:18px;height:18px}
.sidebar-collapse .nav-icon svg{width:18px;height:18px;stroke-width:1.65}

/* RC33 — Reception-first shell */
.nav-group-secondary{margin-top:18px;padding-top:12px;border-top:1px solid rgba(231,212,184,.12)}
.nav-group-secondary .nav-group-title{color:#74827c}
.nav-group-secondary .nav button{min-height:34px;opacity:.86}
.nav-group-secondary .nav button:hover{opacity:1}.nav-group-secondary .nav button.active{opacity:1}
.top-user-menu{position:relative;min-width:0}
.top-user-menu>.top-user{appearance:none;border:1px solid transparent;background:transparent;color:var(--ds-ink);cursor:pointer;min-height:40px;padding:4px 7px}
.top-user-menu>.top-user:hover{border-color:var(--ds-border);background:var(--ds-surface-soft)}.top-user-menu>.top-user[aria-expanded="true"]{border-color:var(--ds-border);background:var(--ds-surface-soft)}
.top-user-caret{font-size:12px;color:var(--ds-muted);line-height:1}
.top-user-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:110;min-width:210px;padding:6px;border:1px solid var(--mh-border);border-radius:12px;background:var(--mh-surface);box-shadow:var(--mh-shadow-overlay)}
.top-user-popover[hidden]{display:none}
.top-user-popover button{width:100%;min-height:40px;border:0;border-radius:8px;background:transparent;display:flex;align-items:center;gap:10px;padding:8px 10px;color:var(--mh-text-strong);text-align:left;cursor:pointer}
.top-user-popover button:hover{background:var(--mh-surface-muted)}.top-user-popover button:focus-visible{background:var(--mh-surface-muted)}
.top-user-popover button:last-child{color:var(--mh-danger)}

/* RC33 — Operational home */
.dashboard-rc33{display:flex;flex-direction:column;gap:14px}
.dashboard-operational-counters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.dashboard-counter{min-width:0;min-height:104px;border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface);box-shadow:var(--mh-shadow-subtle);padding:14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.dashboard-counter:hover{border-color:var(--mh-green-300);background:var(--mh-green-50)}
.dashboard-counter>span{color:var(--mh-text-muted);font-size:11px;font-weight:700}
.dashboard-counter>strong{margin-top:8px;color:var(--mh-text-strong);font-size:28px;line-height:1;font-variant-numeric:tabular-nums}
.dashboard-counter>small{margin-top:6px;color:var(--mh-text-muted);font-size:10px}
.dashboard-counter.attention{background:var(--mh-warning-soft);border-color:#ead5ad}
.dashboard-attention{border-color:#ead5ad;background:linear-gradient(180deg,#fffdfa 0%,var(--mh-surface) 100%)}
.dashboard-attention-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--mh-border)}
.dashboard-attention-card:last-of-type{border-bottom:0}
.dashboard-attention-card strong{display:block;color:var(--mh-text-strong);font-size:13px}
.dashboard-attention-card p{margin:3px 0 0;color:var(--mh-text-muted);font-size:11px}
.dashboard-attention-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.dashboard-attention-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:10px}
.dashboard-attention-summary{min-height:54px;border:1px solid var(--mh-border);border-radius:10px;background:var(--mh-surface-soft);display:flex;align-items:center;gap:10px;padding:10px 12px;text-align:left;cursor:pointer;color:var(--mh-text-strong)}
.dashboard-attention-summary strong{font-size:20px;font-variant-numeric:tabular-nums}.dashboard-attention-summary span{color:var(--mh-text-muted);font-size:10.5px}
.dashboard-next-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dashboard-support-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dashboard-ops-list{display:flex;flex-direction:column;gap:5px}
.dashboard-ops-row{width:100%;min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;border:0;border-radius:10px;background:transparent;padding:8px;text-align:left;cursor:pointer}
.dashboard-ops-row:hover{background:var(--mh-surface-muted)}
.dashboard-ops-copy{min-width:0}.dashboard-ops-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-ops-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-ops-copy strong{font-size:11.5px;color:var(--mh-text-strong)}.dashboard-ops-copy small{margin-top:2px;color:var(--mh-text-muted);font-size:10px}
.dashboard-room-action{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer;border:0;margin:4px 0}
.dashboard-management-kpis{border:1px solid var(--mh-border);border-radius:var(--mh-radius-lg);background:var(--mh-surface)}
.dashboard-management-kpis>summary{cursor:pointer;list-style:none;padding:14px 16px;font-weight:700;color:var(--mh-text-strong)}
.dashboard-management-kpis>summary::-webkit-details-marker{display:none}.dashboard-management-kpis>summary:after{content:'⌄';float:right;color:var(--mh-text-muted)}.dashboard-management-kpis[open]>summary:after{transform:rotate(180deg)}
.dashboard-kpi-cards{padding:0 14px 14px;margin:0;grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media(max-width:1180px){.dashboard-operational-counters{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-next-grid{grid-template-columns:minmax(0,1fr)}.dashboard-support-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:720px){.dashboard-operational-counters{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-attention-card{align-items:flex-start;flex-direction:column}.dashboard-attention-actions{justify-content:flex-start}.dashboard-kpi-cards{grid-template-columns:minmax(0,1fr)!important}}

/* RC33 — Reception-first operational workspace */
.frontdesk-rc33 .frontdesk-filter-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.frontdesk-rc33 .frontdesk-filter{min-width:0;overflow:hidden}
.frontdesk-rc33 .frontdesk-filter>span{flex:0 0 auto}
.frontdesk-rc33 .frontdesk-three-zone{grid-template-columns:minmax(230px,.72fr) minmax(0,1.45fr) minmax(230px,.78fr);min-width:0}
.frontdesk-rc33 .frontdesk-queue-zone{min-width:0}.frontdesk-rc33 .frontdesk-detail-zone{min-width:0}.frontdesk-rc33 .frontdesk-actions-zone{min-width:0}
.frontdesk-rc33 .frontdesk-action-stack{min-width:0;display:flex;flex-direction:column;gap:8px}
.frontdesk-rc33 .frontdesk-action-stack>.btn{max-width:100%;min-width:0}.frontdesk-rc33 .frontdesk-action-stack>details{max-width:100%;min-width:0}
.frontdesk-rc33 .frontdesk-more-actions-menu{max-width:100%;overflow-wrap:anywhere}
.frontdesk-queue-summary{grid-template-columns:repeat(4,minmax(0,1fr))}

.reservation-detail-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.reservation-detail-primary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.reservation-detail-secondary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.reservation-detail-primary-actions{flex:0 1 auto}
.reservation-detail-secondary-actions{flex:1 1 auto}
.reservation-detail-actions>.reservation-more-actions{margin-left:auto;flex:0 0 auto}

@container yotta-main (max-width:1180px){
 .frontdesk-rc33 .frontdesk-three-zone{grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr)}
 .frontdesk-rc33 .frontdesk-actions-zone{grid-column:1/-1}
 .frontdesk-rc33 .frontdesk-action-stack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
 .frontdesk-queue-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container yotta-main (max-width:760px){
 .frontdesk-rc33 .frontdesk-three-zone{display:grid;grid-template-columns:minmax(0,1fr)}
 .frontdesk-rc33 .frontdesk-actions-zone{grid-column:auto}
 .frontdesk-rc33 .frontdesk-action-stack{display:flex;flex-direction:column}
 .frontdesk-rc33 .frontdesk-filter-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
 .frontdesk-queue-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .reservation-detail-primary-actions{width:100%}.reservation-detail-secondary-actions{width:100%}
 .reservation-detail-primary-actions>.btn{flex:1 1 180px}.reservation-detail-secondary-actions>.btn{flex:1 1 180px}
 .reservation-detail-actions>.reservation-more-actions{width:100%;margin-left:0}
 .reservation-detail-actions>.reservation-more-actions>summary{width:100%}
}
@container yotta-main (max-width:480px){
 .frontdesk-rc33 .frontdesk-filter-tabs{grid-template-columns:minmax(0,1fr)}.frontdesk-queue-summary{grid-template-columns:minmax(0,1fr)}
 .reservation-detail-primary-actions>.btn{flex-basis:100%;width:100%}.reservation-detail-secondary-actions>.btn{flex-basis:100%;width:100%}
}

/* RC34 — Reservations list-first registry */
.reservations-rc34 .reservation-registry-panel{display:grid;gap:14px}
.reservations-rc34 .reservation-registry-filters{display:grid;grid-template-columns:minmax(240px,1.8fr) repeat(3,minmax(150px,1fr)) minmax(150px,.8fr) auto;gap:10px;align-items:center}
.reservations-rc34 .reservation-registry-filters>input{min-width:0;width:100%}.reservations-rc34 .reservation-registry-filters>select{min-width:0;width:100%}
.reservations-rc34 .reservation-view-more{border:1px solid var(--ds-border-subtle,#e5e7eb);border-radius:12px;background:var(--ds-surface-soft,#fafafa);padding:0}
.reservations-rc34 .reservation-view-more>summary{cursor:pointer;list-style:none;padding:10px 12px;font-weight:700;color:var(--ds-text-muted,#5f6875)}
.reservations-rc34 .reservation-view-more>summary::-webkit-details-marker{display:none}
.reservations-rc34 .reservation-view-more-body{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:0 12px 12px}
.reservations-rc34 .reservation-registry-content{min-width:0}
@container yotta-main (max-width:1100px){.reservations-rc34 .reservation-registry-filters{grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(150px,1fr))}.reservations-rc34 .reservation-registry-filters .badge{justify-self:start}}
@container yotta-main (max-width:760px){.reservations-rc34 .reservation-registry-filters{grid-template-columns:1fr 1fr}.reservations-rc34 .reservation-registry-filters>input:first-child{grid-column:1/-1}.reservations-rc34 .reservation-view-more-body{align-items:stretch}.reservations-rc34 .reservation-view-period{width:100%}}
@container yotta-main (max-width:520px){.reservations-rc34 .reservation-registry-filters{grid-template-columns:1fr}}

/* RC34 — progressive New Reservation workflow */
.reservation-flow-shell{display:grid;gap:14px;min-width:0}
.reservation-flow{display:grid;gap:14px;min-width:0}
.reservation-flow-stepper{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px;min-width:0;overflow-x:auto;padding:2px 0 4px;scrollbar-width:thin}
.reservation-flow-step{appearance:none;border:1px solid var(--ds-border-subtle,#e4e7eb);background:var(--ds-surface-soft,#f8f9fa);border-radius:12px;min-height:54px;padding:8px 10px;display:flex;align-items:center;gap:9px;text-align:left;color:var(--ds-text-muted,#657080);cursor:pointer;white-space:nowrap}
.reservation-flow-step>span{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;border:1px solid currentColor;font-size:12px;font-weight:800;flex:0 0 auto}
.reservation-flow-step>strong{font-size:13px}
.reservation-flow-step.active{background:color-mix(in srgb,var(--ds-primary,#184f43) 8%,#fff);border-color:color-mix(in srgb,var(--ds-primary,#184f43) 40%,#dfe5e2);color:var(--ds-primary,#184f43)}.reservation-flow-step[aria-current="step"]{background:color-mix(in srgb,var(--ds-primary,#184f43) 8%,#fff);border-color:color-mix(in srgb,var(--ds-primary,#184f43) 40%,#dfe5e2);color:var(--ds-primary,#184f43)}
.reservation-flow-panels{min-width:0}
.reservation-flow-panel{display:grid;gap:14px;min-width:0}
.reservation-flow-panel[hidden]{display:none!important}
.reservation-flow-panel>.reservation-v112-section{margin:0;min-width:0}.reservation-flow-panel>details.reservation-v112-section{margin:0;min-width:0}
.reservation-flow-controls{display:flex;align-items:center;gap:10px;padding-top:2px}
.reservation-flow-spacer{flex:1 1 auto}
.reservation-flow-confirmation{display:grid;gap:12px;padding:16px;border:1px solid var(--ds-border-subtle,#e3e6e8);border-radius:14px;background:var(--ds-surface-soft,#fafaf8)}
.reservation-flow-confirmation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.reservation-flow-confirmation-grid>div{display:grid;gap:3px;padding:10px;border-radius:10px;background:#fff;border:1px solid var(--ds-border-subtle,#eceeed);min-width:0}
.reservation-flow-confirmation-grid span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ds-text-muted,#7a838e)}
.reservation-flow-confirmation-grid strong{font-size:13px;overflow-wrap:anywhere}
.reservation-flow-shell .reservation-v112-layout[hidden]{display:none!important}
.reservation-flow-shell .reservation-v112-commercial{order:3}
.reservation-flow-shell .reservation-v112-commercial-more{margin-top:8px}
.reservation-flow-shell .reservation-v112-summary-section{position:static!important;top:auto!important}
.reservation-flow-final-submit[hidden]{display:none!important}
@container yotta-main (max-width:900px){.reservation-flow-stepper{grid-template-columns:repeat(4,minmax(118px,1fr))}.reservation-flow-confirmation-grid{grid-template-columns:1fr 1fr}}
@container yotta-main (max-width:760px){.reservation-flow-stepper{display:flex;grid-template-columns:none}.reservation-flow-step{min-width:132px;flex:0 0 auto}.reservation-flow-confirmation-grid{grid-template-columns:1fr}.reservation-flow-controls{position:sticky;bottom:0;z-index:2;background:linear-gradient(to top,var(--ds-surface,#fff) 70%,transparent);padding:12px 0 4px}.reservation-flow-panel .form-grid{grid-template-columns:1fr}}
.reservation-flow-advanced{border:1px solid var(--ds-border-subtle,#e4e7eb);border-radius:12px;background:var(--ds-surface-soft,#fafafa);padding:0}
.reservation-flow-advanced>summary{cursor:pointer;padding:11px 12px;font-weight:700;color:var(--ds-text-muted,#66717e)}
.reservation-flow-advanced>.reservation-v112-commercial{border:0;background:transparent;padding-top:4px}

/* RC35 front-desk geometry retained; sidebar styling superseded by RC37 canonical shell */
.frontdesk-rc35{scroll-margin-top:calc(var(--shell-topbar-height) + 12px)}
.frontdesk-rc35 .frontdesk-three-zone{display:grid;grid-template-columns:minmax(340px,2fr) minmax(0,3fr);gap:16px;align-items:start;min-width:0}
.frontdesk-rc35 .frontdesk-workspace-zone{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;align-content:start}
.frontdesk-rc35 .frontdesk-queue-zone{min-width:0;position:sticky;top:calc(var(--shell-topbar-height) + 14px)}
.frontdesk-rc35 .frontdesk-filter-tabs{display:grid;grid-template-columns:repeat(4,minmax(108px,1fr));gap:7px;overflow-x:auto;overscroll-behavior-inline:contain;padding-bottom:2px;scrollbar-width:thin}
.frontdesk-rc35 .frontdesk-filter{min-width:108px;min-height:46px;border-radius:12px;white-space:nowrap;padding:9px 10px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease}
.frontdesk-rc35 .frontdesk-filter:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgb(20 40 33 / .08)}
.frontdesk-rc35 .frontdesk-filter>span{display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:rgb(255 255 255 / .7);padding:0 6px;font-size:10px}
.frontdesk-rc35 .frontdesk-queue-tools>input{min-height:44px;border-radius:12px}
.frontdesk-rc35 .frontdesk-detail-zone{min-height:360px}
.frontdesk-rc35 .frontdesk-actions-zone[hidden]{display:none!important}
.frontdesk-empty-zone-rc35{min-height:300px;max-width:580px;margin:0 auto;padding:48px 28px;text-align:center}
.frontdesk-empty-zone-rc35 .eyebrow{justify-content:center;margin-bottom:10px}
.frontdesk-empty-zone-rc35 strong{font-size:18px;color:var(--mh-text-strong)}
.frontdesk-empty-zone-rc35>span:last-child{max-width:480px;margin-top:8px;color:var(--mh-text-muted);line-height:1.55}
@container yotta-main (max-width:1350px){
 .frontdesk-rc35 .frontdesk-three-zone{grid-template-columns:minmax(330px,.92fr) minmax(0,1.18fr)}
 .frontdesk-rc35 .frontdesk-filter-tabs{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
 .frontdesk-rc35 .frontdesk-filter{min-width:0}
}
@container yotta-main (max-width:860px){
 .frontdesk-rc35 .frontdesk-three-zone{grid-template-columns:minmax(0,1fr)}
 .frontdesk-rc35 .frontdesk-queue-zone{position:static}
 .frontdesk-rc35 .frontdesk-detail-zone{min-height:280px}
}
@container yotta-main (max-width:520px){
 .frontdesk-rc35 .frontdesk-filter-tabs{grid-template-columns:minmax(0,1fr)}
 .frontdesk-empty-zone-rc35{min-height:220px;padding:32px 18px}
}
@keyframes rc35PanelIn{from{opacity:.72;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.frontdesk-rc35 .frontdesk-queue-zone{animation:rc35PanelIn .2s ease both}.frontdesk-rc35 .frontdesk-workspace-zone>.panel{animation:rc35PanelIn .2s ease both}
@media (prefers-reduced-motion:reduce){.frontdesk-rc35 .frontdesk-queue-zone{animation:none!important}.frontdesk-rc35 .frontdesk-workspace-zone>.panel{animation:none!important}}


/* RC37 — canonical Modern Hospitality shell */
/* Full canonical shell rules live in assets/ui-components.css. */

/* RC48 early checkout charge-scope decision */
.checkout-scope-intro{display:grid;gap:6px;margin-bottom:14px}.checkout-scope-intro p{margin:0;color:var(--text)}.checkout-scope-intro small{color:var(--muted)}
.checkout-scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.checkout-scope-card{position:relative;display:flex;gap:12px;min-width:0;margin:0;padding:15px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-soft);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.checkout-scope-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.checkout-scope-card:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.checkout-scope-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}
.checkout-scope-card input[type="radio"]{width:18px;height:18px;min-width:18px;max-width:18px;min-height:18px;flex:0 0 18px;margin:2px 0 0;padding:0;border:0;background:transparent;box-shadow:none;accent-color:var(--accent);align-self:flex-start}.checkout-scope-copy{min-width:0;display:grid;gap:7px;flex:1}.checkout-scope-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.checkout-scope-copy small{color:var(--muted);line-height:1.45}.checkout-scope-meta{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-size:.9rem}.checkout-scope-due{font-weight:700}.checkout-scope-card.disabled{cursor:default;opacity:.82}
@media(max-width:720px){.checkout-scope-grid{grid-template-columns:1fr}.checkout-scope-card{padding:13px}}

/* RC50 — Bulgarian Hotel Compliance Center workspace */
.compliance-workspace-rc50{display:grid;gap:14px;min-width:0}
.compliance-workspace-rc50 .compliance-head{margin-bottom:0}
.compliance-workspace-rc50 .compliance-tab-body{min-width:0;display:grid;gap:14px}
.compliance-workspace-rc50 .compliance-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.compliance-workspace-rc50 .compliance-action-list{display:grid;gap:8px}
.compliance-workspace-rc50 .compliance-action{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.compliance-workspace-rc50 .compliance-action>div{min-width:0;display:grid;gap:2px}
.compliance-workspace-rc50 .compliance-action small{color:var(--muted)}
.compliance-workspace-rc50 .compliance-reconciliation{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.compliance-workspace-rc50 .compliance-reconciliation>div{display:grid;gap:4px;min-width:0}
.compliance-workspace-rc50 .compliance-reconciliation span{color:var(--muted);font-size:12px}
.compliance-workspace-rc50 .compliance-tax-actions{margin-top:14px}
.compliance-workspace-rc50 .compliance-timeline{display:grid;gap:0}
.compliance-workspace-rc50 .compliance-timeline article{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;min-width:0}
.compliance-workspace-rc50 .compliance-timeline time{font-variant-numeric:tabular-nums;color:var(--muted)}
.compliance-workspace-rc50 .compliance-timeline p{margin:4px 0;overflow-wrap:anywhere}
.compliance-workspace-rc50 .compliance-embedded-esti{min-width:0}
@media(max-width:1100px){.compliance-workspace-rc50 .compliance-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.compliance-workspace-rc50 .compliance-reconciliation{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.compliance-workspace-rc50 .compliance-kpis{grid-template-columns:minmax(0,1fr)}.compliance-workspace-rc50 .compliance-reconciliation{grid-template-columns:minmax(0,1fr)}.compliance-workspace-rc50 .compliance-timeline article{grid-template-columns:minmax(0,1fr);gap:5px}.compliance-workspace-rc50 .compliance-head .toolbar{width:100%}.compliance-workspace-rc50 .compliance-head .toolbar .btn{width:100%}}

/* RC51.1-HF2 — clean YottaHotelier branding, theme-aware without raster wordmark halos */
.brand-mark{position:relative}
.brand-mark .brand-theme-img{display:block;width:100%;height:100%;object-fit:contain}.login-brand-icon .brand-theme-img{display:block;width:100%;height:100%;object-fit:contain}
.brand-mark .brand-theme-img{grid-area:1/1}
.brand-theme-img-dark{display:none!important}
[data-theme="dark"] .brand-theme-img-light{display:none!important}
[data-theme="dark"] .brand-theme-img-dark{display:block!important}
[data-theme="light"] .brand-theme-img-light{display:block!important}
[data-theme="light"] .brand-theme-img-dark{display:none!important}
.login-brand-lockup{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:0 auto 18px;max-width:100%;line-height:1}
.login-brand-icon{display:grid;place-items:center;width:min(188px,62%);aspect-ratio:425/380;filter:drop-shadow(0 10px 18px rgba(7,23,18,.12))}
.login-brand-icon .brand-theme-img{grid-area:1/1}
.login-brand-wordmark{display:inline-flex;align-items:baseline;justify-content:center;white-space:nowrap;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:clamp(34px,4vw,44px);font-weight:760;letter-spacing:-.055em}
.login-brand-wordmark .yotta-word{color:#13211d}
.login-brand-wordmark .hotel-word{color:#c9903f;background:linear-gradient(180deg,#efbd6c 0%,#c88b35 52%,#a86c25 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
[data-theme="dark"] .login-brand-lockup{filter:none}
[data-theme="dark"] .login-brand-wordmark .yotta-word{color:#f7f6f1}
[data-theme="dark"] .login-brand-wordmark .hotel-word{background:linear-gradient(180deg,#f4c477 0%,#d79a45 50%,#b7782e 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.login-brand-wordmark .hotel-word{font-feature-settings:"kern" 1,"liga" 1}
@media(max-width:560px){.login-brand-icon{width:min(164px,58vw)}.login-brand-wordmark{font-size:clamp(30px,9vw,38px)}.login-brand-lockup{margin-bottom:16px}}
[data-theme="light"] .login-brand-lockup{filter:none}

/* HF6 — Apple-style calendar direct manipulation */
.calendar-v112 .calendar-res.calendar-drag-source{
  z-index:32!important;
  opacity:.9!important;
  pointer-events:none!important;
  transform:translate3d(var(--calendar-drag-x,0px),var(--calendar-drag-y,0px),0) scale(1.012);
  transform-origin:center;
  transition:none!important;
  will-change:transform;
  outline:1px solid color-mix(in srgb,var(--ds-primary) 72%,var(--ds-border));
  box-shadow:0 12px 30px rgb(9 29 22 / .2),0 2px 8px rgb(9 29 22 / .12);
  filter:none!important;
}
.calendar-v112 .calendar-res.calendar-resize-preview{
  transition:none!important;
  will-change:margin-left,margin-right;
}
@media (prefers-reduced-motion: reduce){
  .calendar-v112 .calendar-res.calendar-drag-source{transform:translate3d(var(--calendar-drag-x,0px),var(--calendar-drag-y,0px),0)}
}

/* HF48 Hotelier Agent */
.assistant-agent-progress{position:sticky;bottom:82px;z-index:2;align-self:flex-start;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);box-shadow:var(--shadow-sm);font-size:12px;font-weight:800;color:var(--muted)}
.assistant-agent-progress:not([hidden])::before{content:'◌';display:inline-block;margin-right:7px;animation:assistant-agent-spin .9s linear infinite}@keyframes assistant-agent-spin{to{transform:rotate(360deg)}}
.assistant-agent-bubble{width:min(820px,88%)}.assistant-agent-clarification{display:flex;flex-direction:column;gap:12px}.assistant-agent-preview{display:flex;flex-direction:column;gap:12px}.assistant-agent-conflict{display:flex;flex-direction:column;gap:12px}.assistant-agent-clarification>strong{font-size:15px}.assistant-agent-options{display:flex;flex-wrap:wrap;gap:8px}.assistant-agent-options .btn{text-align:left;white-space:normal}
.assistant-agent-preview{padding:2px}.assistant-agent-preview.completed{min-width:min(520px,100%)}.assistant-agent-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.assistant-agent-preview-head h3{margin:3px 0 0;font-size:18px}.assistant-agent-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assistant-agent-preview-grid>div{padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.assistant-agent-preview-grid span{display:block}.assistant-agent-preview-grid strong{display:block}.assistant-agent-preview-grid span{font-size:11px;color:var(--muted);margin-bottom:3px}.assistant-agent-effects{padding:11px 12px;border-radius:9px;background:var(--surface);border:1px solid var(--border)}.assistant-agent-effects ol{margin:8px 0 0;padding-left:22px}.assistant-agent-effects li+li{margin-top:5px}.assistant-agent-confirm-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:4px}.assistant-agent-confirm-actions small{color:var(--muted);max-width:440px}.assistant-agent-conflict{padding:11px 12px;border:1px solid color-mix(in srgb,var(--amber) 45%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--amber) 7%,var(--surface))}.assistant-agent-conflict p{margin:0;color:var(--muted)}
@media(max-width:620px){.assistant-agent-preview-grid{grid-template-columns:1fr}.assistant-agent-confirm-actions{align-items:stretch;flex-direction:column}.assistant-agent-confirm-actions .btn{width:100%}.assistant-agent-bubble{width:100%;max-width:94%}.assistant-agent-progress{bottom:72px}}

/* HF48.1 Hotelier Intelligence Command Center */
.assistant-command-center{display:flex;flex-direction:column;gap:12px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm)}
.assistant-command-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.assistant-command-head strong{display:block;font-size:16px}.assistant-command-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.assistant-command-tile{display:flex;flex-direction:column;gap:3px;min-width:0;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2,var(--surface))}.assistant-command-tile span{color:var(--muted)}.assistant-command-tile small{color:var(--muted)}.assistant-command-tile span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.assistant-command-tile strong{font-size:20px}.assistant-command-tile.attention strong{color:var(--danger)}.assistant-command-tile.risk strong{color:var(--danger)}.assistant-command-tile.opportunity strong{color:var(--success)}.assistant-command-summary{margin:0;color:var(--muted)}
.assistant-intelligence-card{display:flex;flex-direction:column;gap:12px}.assistant-intelligence-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.assistant-intelligence-card h3{margin:3px 0 0;font-size:18px}.assistant-confidence{white-space:nowrap;font-size:12px;font-weight:800;color:var(--text);padding:5px 8px;border:1px solid var(--border);border-radius:999px}.assistant-intelligence-summary{margin:0}.assistant-intelligence-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.assistant-intelligence-metrics>div{padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.assistant-intelligence-facts>div{padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.assistant-intelligence-metrics span{display:block;color:var(--muted);font-size:11px}.assistant-intelligence-facts span{display:block;color:var(--muted);font-size:11px}.assistant-intelligence-metrics strong{display:block;margin-top:3px;font-size:15px}.assistant-intelligence-facts strong{display:block;margin-top:3px;font-size:15px}.assistant-intelligence-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.assistant-comparison-deltas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assistant-comparison-delta{padding:10px;border:1px solid var(--border);border-radius:9px}.assistant-comparison-delta span{display:block;color:var(--muted)}.assistant-comparison-delta small{display:block;color:var(--muted)}.assistant-comparison-delta strong{display:block;margin:3px 0;font-size:16px}
.assistant-intelligence-insights{display:flex;flex-direction:column;gap:8px}.assistant-intelligence-recommendations{display:flex;flex-direction:column;gap:8px}.assistant-insight{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.assistant-recommendation{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.assistant-insight h4{margin:2px 0 4px}.assistant-recommendation h4{margin:2px 0 4px}.assistant-insight p{margin:0;color:var(--muted)}.assistant-recommendation p{margin:0;color:var(--muted)}.assistant-insight-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.assistant-recommendation-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.assistant-insight.critical{border-inline-start:4px solid var(--danger)}.assistant-insight.high{border-inline-start:4px solid var(--danger)}.assistant-insight.medium{border-inline-start:4px solid var(--amber)}.assistant-intelligence-recommendations .assistant-recommendation{border-inline-start:4px solid var(--success)}.assistant-caveats{padding:10px 12px;border:1px dashed var(--border);border-radius:9px;background:var(--surface)}.assistant-caveats ul{margin:6px 0 0;padding-left:20px}.assistant-caveats li+li{margin-top:4px}
@media(max-width:900px){.assistant-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.assistant-intelligence-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.assistant-command-head{align-items:stretch;flex-direction:column}.assistant-intelligence-card>header{align-items:stretch;flex-direction:column}.assistant-insight{align-items:stretch;flex-direction:column}.assistant-recommendation{align-items:stretch;flex-direction:column}.assistant-command-grid{grid-template-columns:1fr}.assistant-intelligence-metrics{grid-template-columns:1fr}.assistant-intelligence-facts{grid-template-columns:1fr}.assistant-comparison-deltas{grid-template-columns:1fr}.assistant-insight-actions{justify-content:flex-start}.assistant-recommendation-actions{justify-content:flex-start}.assistant-confidence{align-self:flex-start}}


.assistant-command-inbox{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);padding-top:10px}
.assistant-command-tabs{display:flex;gap:6px;overflow:auto;padding-bottom:2px}.assistant-command-tab{border:1px solid var(--border);border-radius:999px;background:var(--surface-2,var(--surface));color:var(--muted);padding:7px 10px;font:inherit;font-size:12px;font-weight:750;white-space:nowrap;cursor:pointer}.assistant-command-tab.active{color:var(--text);border-color:var(--accent);background:var(--surface)}.assistant-command-tab b{margin-left:4px}
.assistant-command-bucket{display:flex;flex-direction:column;gap:8px}.assistant-command-bucket[hidden]{display:none}.assistant-command-bucket-head{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.assistant-command-finding{display:flex;flex-direction:column;gap:7px;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2,var(--surface))}.assistant-command-finding-main{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.assistant-command-finding h4{margin:0}.assistant-command-finding p{margin:0}.assistant-command-finding p{font-size:13px}.assistant-priority-score{font-weight:800;font-size:12px;white-space:nowrap}.assistant-finding-actions{display:flex;gap:6px;flex-wrap:wrap}.assistant-finding-why-text{padding:7px 9px;border-radius:8px;background:var(--surface);color:var(--muted)}
.assistant-freshness{display:inline-block;font-size:12px;font-weight:800;color:var(--text)}.assistant-freshness.stale{font-weight:900}.assistant-briefing{display:flex;flex-direction:column;gap:10px}.assistant-briefing-sections{display:flex;gap:8px;flex-wrap:wrap}.assistant-briefing-sections span{display:flex;gap:8px;align-items:center;padding:7px 9px;border:1px solid var(--border);border-radius:9px}.assistant-briefing-priorities{display:flex;flex-direction:column;gap:6px}.assistant-briefing-priorities>div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--border)}

/* HF48.3 Revenue & Forecast Intelligence */
.assistant-revenue-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2,var(--surface))}
.assistant-revenue-kpi{min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.assistant-revenue-kpi span{display:block;color:var(--muted);font-size:10.5px}.assistant-revenue-kpi small{display:block;color:var(--muted);font-size:10.5px}.assistant-revenue-kpi strong{display:block;margin:4px 0;font-size:15px;font-variant-numeric:tabular-nums}.assistant-revenue-actions{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}
.assistant-revenue-grid{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.assistant-revenue-section-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.assistant-revenue-section-head span{color:var(--muted);font-size:11px}.assistant-revenue-table-wrap{max-width:100%;overflow:auto}.assistant-revenue-table{width:100%;border-collapse:collapse;font-size:11.5px}.assistant-revenue-table th{padding:7px 8px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.assistant-revenue-table td{padding:7px 8px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.assistant-revenue-table th{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.03em}
.assistant-revenue-opportunities{display:flex;flex-direction:column;gap:7px}.assistant-revenue-opportunity{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border:1px solid var(--border);border-radius:9px}.assistant-revenue-opportunity span{display:block;color:var(--muted);font-size:10.5px}.assistant-revenue-opportunity small{display:block;color:var(--muted);font-size:10.5px}.assistant-revenue-opportunity strong{display:block;margin:3px 0}.assistant-revenue-simulation{border-style:dashed}.assistant-revenue-unknown{margin:0;color:var(--muted);font-size:11px}
.assistant-pricing-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2,var(--surface))}.assistant-pricing-preview>div{min-width:0}.assistant-pricing-preview span{display:block}.assistant-pricing-preview strong{display:block}.assistant-pricing-preview span{color:var(--muted);font-size:10.5px}.assistant-pricing-preview strong{margin-top:3px;font-size:12px;overflow-wrap:anywhere}.assistant-pricing-rates{grid-column:1/-1}
@media(max-width:1100px){.assistant-revenue-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.assistant-revenue-strip{grid-template-columns:1fr 1fr}.assistant-revenue-section-head{align-items:stretch;flex-direction:column}.assistant-revenue-opportunity{align-items:stretch;flex-direction:column}.assistant-pricing-preview{grid-template-columns:1fr}}


/* HF48.4 Guest CRM & Communications */
.assistant-guest-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2,var(--surface))}
.assistant-guest-kpi{min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.assistant-guest-kpi span{display:block;color:var(--muted);font-size:10.5px}.assistant-guest-kpi small{display:block;color:var(--muted);font-size:10.5px}.assistant-guest-kpi strong{display:block;margin:4px 0;font-size:15px;font-variant-numeric:tabular-nums}.assistant-guest-actions{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}
.assistant-guest-profile{display:flex;flex-direction:column;gap:9px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.assistant-guest-timeline{display:flex;flex-direction:column;gap:9px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.assistant-guest-opportunities{display:flex;flex-direction:column;gap:9px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.assistant-communication-draft{display:flex;flex-direction:column;gap:9px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.assistant-guest-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.assistant-guest-section-head span{color:var(--muted);font-size:10.5px}.assistant-guest-section-head small{color:var(--muted);font-size:10.5px}.assistant-guest-section-head strong{display:block;margin-top:2px}
.assistant-guest-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.assistant-guest-profile-grid>div{padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2,var(--surface))}.assistant-guest-profile-grid span{display:block;color:var(--muted);font-size:10.5px}.assistant-guest-profile-grid small{display:block;color:var(--muted);font-size:10.5px}.assistant-guest-profile-grid strong{display:block;margin:3px 0;overflow-wrap:anywhere}.assistant-guest-segments{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.assistant-guest-tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.assistant-guest-segments span{padding:4px 7px;border:1px solid var(--border);border-radius:999px;font-size:10.5px}.assistant-guest-tags span{padding:4px 7px;border:1px solid var(--border);border-radius:999px;font-size:10.5px}
.assistant-guest-timeline-item{display:grid;grid-template-columns:minmax(115px,auto) 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.assistant-guest-timeline-item:last-child{border-bottom:0}.assistant-guest-timeline-item>span{color:var(--muted);font-size:10.5px}.assistant-guest-timeline-item small{color:var(--muted);font-size:10.5px}.assistant-guest-timeline-item small{display:block;margin-top:2px}
.assistant-guest-opportunity{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border:1px solid var(--border);border-radius:9px}.assistant-guest-opportunity span{display:block;color:var(--muted);font-size:10.5px}.assistant-guest-opportunity small{display:block;color:var(--muted);font-size:10.5px}.assistant-guest-opportunity strong{display:block;margin:3px 0}
.assistant-communication-meta{display:grid;grid-template-columns:100px 1fr;gap:8px}.assistant-communication-subject{display:grid;grid-template-columns:100px 1fr;gap:8px}.assistant-communication-meta span{color:var(--muted);font-size:10.5px}.assistant-communication-subject span{color:var(--muted);font-size:10.5px}.assistant-communication-body{white-space:pre-wrap;overflow-wrap:anywhere;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2,var(--surface))}.assistant-draft-state{color:var(--muted)}
.assistant-guest-warning{display:flex;flex-direction:column;gap:2px;padding:9px;border:1px solid var(--border);border-inline-start:4px solid var(--amber);border-radius:8px}.assistant-guest-warning span{color:var(--muted);font-size:11px}
.assistant-guest-action-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2,var(--surface))}.assistant-guest-action-preview>div{min-width:0}.assistant-guest-action-preview span{display:block}.assistant-guest-action-preview strong{display:block}.assistant-guest-action-preview span{color:var(--muted);font-size:10.5px}.assistant-guest-action-preview strong{margin-top:3px;font-size:12px;overflow-wrap:anywhere}.assistant-guest-preview-wide{grid-column:1/-1}
@media(max-width:1100px){.assistant-guest-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.assistant-guest-strip{grid-template-columns:1fr 1fr}.assistant-guest-section-head{align-items:stretch;flex-direction:column}.assistant-guest-opportunity{align-items:stretch;flex-direction:column}.assistant-guest-profile-grid{grid-template-columns:1fr}.assistant-guest-action-preview{grid-template-columns:1fr}.assistant-guest-preview-wide{grid-column:auto}.assistant-guest-timeline-item{grid-template-columns:1fr}.assistant-communication-meta{grid-template-columns:1fr}.assistant-communication-subject{grid-template-columns:1fr}}

/* HF48.5 Finance & Audit Agent */
.assistant-finance-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--panel) 92%,transparent)}
.assistant-finance-kpi{display:flex;flex-direction:column;gap:3px;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.assistant-finance-kpi span{font-size:12px;color:var(--muted)}.assistant-finance-grid span{font-size:12px;color:var(--muted)}.assistant-finance-action-preview span{font-size:12px;color:var(--muted)}.assistant-finance-kpi strong{font-size:16px}.assistant-finance-grid strong{font-size:16px}.assistant-finance-kpi small{color:var(--muted)}
.assistant-finance-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}.assistant-finance-section{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.assistant-finance-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.assistant-finance-section-head>div{display:flex;flex-direction:column;gap:3px}.assistant-finance-status{font-size:12px;font-weight:700;padding:5px 9px;border:1px solid var(--line);border-radius:999px}.assistant-finance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.assistant-finance-grid>div{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 94%,transparent)}.assistant-finance-action-preview>div{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 94%,transparent)}
.assistant-finance-table-wrap{overflow:auto}.assistant-finance-table{width:100%;border-collapse:collapse;font-size:13px}.assistant-finance-table th{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.assistant-finance-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.assistant-finance-findings{display:grid;gap:8px}.assistant-finance-finding{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid var(--line);border-radius:14px}.assistant-finance-finding>div{display:flex;flex-direction:column;gap:3px;min-width:0}.assistant-finance-finding small{color:var(--muted)}.assistant-finance-notes{margin-top:10px}.assistant-finance-notes ul{margin:5px 0 0 18px}.assistant-finance-action-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.assistant-finance-preview-wide{grid-column:1/-1}
@media(max-width:900px){.assistant-finance-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.assistant-finance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.assistant-finance-strip{grid-template-columns:1fr}.assistant-finance-grid{grid-template-columns:1fr}.assistant-finance-action-preview{grid-template-columns:1fr}.assistant-finance-section-head{align-items:stretch;flex-direction:column}.assistant-finance-finding{align-items:stretch;flex-direction:column}.assistant-finance-preview-wide{grid-column:auto}}
/* HF48.6 Staff & Housekeeping Optimizer */
.assistant-operations-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--panel) 92%,transparent)}
.assistant-operations-kpi{display:flex;flex-direction:column;gap:3px;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.assistant-operations-kpi span{font-size:12px;color:var(--muted)}.assistant-operations-grid span{font-size:12px;color:var(--muted)}.assistant-operations-action-preview span{font-size:12px;color:var(--muted)}.assistant-operations-kpi strong{font-size:16px}.assistant-operations-grid strong{font-size:16px}.assistant-operations-kpi small{color:var(--muted)}
.assistant-operations-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}.assistant-operations-section{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.assistant-operations-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.assistant-operations-section-head>div{display:flex;flex-direction:column;gap:3px}.assistant-operations-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.assistant-operations-grid>div{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 94%,transparent)}.assistant-operations-action-preview>div{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 94%,transparent)}
.assistant-operations-table-wrap{overflow:auto}.assistant-operations-table{width:100%;border-collapse:collapse;font-size:13px}.assistant-operations-table th{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.assistant-operations-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.assistant-operations-findings{display:grid;gap:8px}.assistant-operations-finding{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid var(--line);border-radius:14px}.assistant-operations-finding>div{display:flex;flex-direction:column;gap:3px;min-width:0}.assistant-operations-finding small{color:var(--muted)}.assistant-operations-risk{font-size:12px;font-weight:700;padding:4px 8px;border:1px solid var(--line);border-radius:999px}.assistant-operations-action-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.assistant-operations-preview-wide{grid-column:1/-1}
@media(max-width:900px){.assistant-operations-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.assistant-operations-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.assistant-operations-strip{grid-template-columns:1fr}.assistant-operations-grid{grid-template-columns:1fr}.assistant-operations-action-preview{grid-template-columns:1fr}.assistant-operations-section-head{align-items:stretch;flex-direction:column}.assistant-operations-finding{align-items:stretch;flex-direction:column}.assistant-operations-preview-wide{grid-column:auto}}

/* HF49 Assistant Workspace — conversation-first UI */
.assistant-shell{max-width:1180px;margin:0 auto;min-height:calc(100vh - 120px);display:grid;grid-template-rows:auto auto auto minmax(360px,1fr) auto;gap:10px;padding:4px 0 18px}
.assistant-workspace-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 2px}
.assistant-workspace-title{display:flex;align-items:center;gap:10px;min-width:0}.assistant-workspace-title h1{margin:1px 0 0;font-size:23px;letter-spacing:-.025em}.assistant-agent-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent)}
.assistant-statusbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.assistant-statusbar .assistant-mode{padding:7px 10px;background:transparent}
.assistant-overflow-menu{position:relative}.assistant-overflow-menu>summary{list-style:none;cursor:pointer;min-width:40px;padding-inline:10px;text-align:center}.assistant-overflow-menu>summary::-webkit-details-marker{display:none}.assistant-overflow-menu[open]>summary{border-color:var(--accent)}
.assistant-overflow-popover{position:absolute;z-index:8;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 36px));display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-md)}
.assistant-overflow-popover .assistant-mode-toggle{padding:4px 2px}.assistant-overflow-popover .assistant-operator-actions{display:grid;grid-template-columns:1fr;align-items:stretch;gap:8px;padding:10px;border-style:solid}.assistant-overflow-popover .assistant-operator-actions>strong{font-size:12px}.assistant-overflow-popover .assistant-operator-actions small{line-height:1.35}
.assistant-context-panel{position:relative;padding:8px 44px 8px 8px;border:1px solid var(--border);border-radius:15px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:none}
.assistant-context-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.assistant-context-chip{appearance:none;display:grid;grid-template-columns:auto 1fr;grid-template-areas:'label value' 'meta meta';align-items:center;gap:1px 8px;min-width:0;padding:8px 10px;border:1px solid transparent;border-radius:11px;background:var(--surface-2,var(--surface));color:var(--text);text-align:left;cursor:pointer}.assistant-context-chip:hover{border-color:var(--accent)}.assistant-context-chip span{grid-area:label;color:var(--muted);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.assistant-context-chip strong{grid-area:value;justify-self:end;font-size:15px;font-variant-numeric:tabular-nums}.assistant-context-chip small{grid-area:meta;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assistant-context-chip.attention strong{color:var(--danger)}.assistant-context-chip.risk strong{color:var(--danger)}.assistant-context-chip.opportunity strong{color:var(--success)}
.assistant-context-summary{margin:7px 4px 0;color:var(--muted);font-size:12px;line-height:1.35}.assistant-context-refresh{position:absolute;right:9px;top:9px;width:30px;height:30px;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}.assistant-context-refresh:hover{color:var(--text);border-color:var(--accent)}
.assistant-context-drawer{margin:7px 2px 0;padding-top:6px;border-top:1px solid var(--border)}.assistant-context-drawer>summary{cursor:pointer;color:var(--muted);font-size:11px;font-weight:750}.assistant-context-drawer[open]>summary{margin-bottom:10px}.assistant-context-detail-grid{display:grid;gap:8px}.assistant-context-detail-grid .assistant-revenue-strip{margin:0}.assistant-context-detail-grid .assistant-guest-strip{margin:0}.assistant-context-detail-grid .assistant-finance-strip{margin:0}.assistant-context-detail-grid .assistant-operations-strip{margin:0}
.assistant-suggestions{display:flex;gap:7px;overflow:auto;padding:0 1px 2px;scrollbar-width:thin}.assistant-suggestion{appearance:none;flex:0 0 auto;padding:8px 11px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer}.assistant-suggestion:hover{border-color:var(--accent);color:var(--text);background:var(--surface)}
.assistant-thread{min-height:0;border:1px solid var(--border);border-radius:18px;background:var(--surface);overflow:hidden}.assistant-messages{height:100%;min-height:390px;max-height:calc(100vh - 335px);overflow:auto;border:0;border-radius:0;background:transparent;padding:22px clamp(14px,3vw,34px)}
.assistant-empty{min-height:340px;gap:8px}.assistant-empty h2{font-size:24px}.assistant-empty p{max-width:520px;font-size:13px;line-height:1.55}.assistant-spark{width:42px;height:42px;border-radius:13px}
.assistant-message{margin:0 0 20px}.assistant-message:last-child{margin-bottom:0}.assistant-avatar{width:30px;height:30px;flex-basis:30px;font-size:10px}.assistant-bubble{max-width:min(840px,86%);border:0;border-radius:16px;padding:11px 14px;background:var(--surface-2)}.assistant-message.assistant .assistant-bubble{background:transparent;padding:4px 2px;max-width:min(920px,92%)}.assistant-message.user .assistant-bubble{background:color-mix(in srgb,var(--accent) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-bottom-right-radius:5px}.assistant-message.assistant .assistant-avatar{background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-color:color-mix(in srgb,var(--accent) 22%,var(--border))}
.assistant-composer{grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;bottom:max(8px,env(safe-area-inset-bottom));padding:8px;border-radius:16px;box-shadow:0 8px 28px color-mix(in srgb,var(--text) 10%,transparent)}.assistant-composer textarea{min-height:48px;max-height:160px;border:0;background:transparent;box-shadow:none;padding:12px 10px;resize:none}.assistant-composer textarea:focus{outline:0;box-shadow:none}.assistant-composer .assistant-send{min-height:46px;padding-inline:16px}.assistant-agent-progress{position:static;grid-column:1/-1;align-self:auto;padding:4px 8px;border:0;border-radius:8px;background:transparent;box-shadow:none;font-size:11px}
.assistant-twin-card{margin-top:12px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.assistant-plan-card{margin-top:12px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.assistant-twin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.assistant-plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.assistant-twin-head h3{margin:3px 0 0;font-size:17px}.assistant-plan-head h3{margin:3px 0 0;font-size:17px}.assistant-twin-risk{padding:5px 8px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:11px;font-weight:800}.assistant-plan-status{padding:5px 8px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:11px;font-weight:800}.assistant-twin-risk.high{color:var(--danger)}.assistant-twin-risk.critical{color:var(--danger)}
.assistant-twin-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:11px}.assistant-twin-facts>div{padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.assistant-twin-facts span{display:block}.assistant-twin-facts strong{display:block}.assistant-twin-facts span{color:var(--muted);font-size:10.5px}.assistant-twin-facts strong{margin-top:3px;font-size:15px}.assistant-twin-constraints{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.assistant-twin-constraints>div{padding:10px;border:1px solid var(--border);border-radius:10px}.assistant-twin-constraints ul{margin:7px 0 0;padding:0;list-style:none}.assistant-twin-constraints li{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px solid var(--border);font-size:11px}.assistant-twin-constraints li span{color:var(--muted);text-align:right}.assistant-twin-hash{display:block;margin-top:8px;color:var(--muted)}
.assistant-plan-steps{display:grid;gap:7px;margin:12px 0 0;padding:0;list-style:none;counter-reset:none}.assistant-plan-step{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;align-items:start;padding:9px;border:1px solid var(--border);border-radius:11px}.assistant-plan-step>span{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:var(--surface-2);font-size:11px;font-weight:900}.assistant-plan-step strong{display:block}.assistant-plan-step small{display:block}.assistant-plan-step p{display:block}.assistant-plan-step em{display:block}.assistant-plan-step small{margin-top:2px;color:var(--muted);font-size:10.5px;text-transform:uppercase}.assistant-plan-step p{margin:5px 0 0;font-size:12px;line-height:1.4}.assistant-plan-step em{margin-top:4px;color:var(--muted);font-size:10.5px;font-style:normal}.assistant-plan-caveats{margin-top:10px;padding:9px 11px;border-radius:10px;background:var(--surface-2);font-size:11px}.assistant-plan-caveats ul{margin:6px 0 0;padding-left:18px}.assistant-plan-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:11px}.assistant-plan-actions small{color:var(--muted)}
@media(max-width:900px){.assistant-context-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.assistant-twin-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.assistant-twin-constraints{grid-template-columns:1fr}.assistant-messages{max-height:calc(100vh - 360px)}}
@media(max-width:620px){.assistant-shell{min-height:calc(100vh - 90px);grid-template-rows:auto auto auto minmax(320px,1fr) auto}.assistant-workspace-head{align-items:flex-start}.assistant-workspace-title h1{font-size:20px}.assistant-statusbar{gap:6px}.assistant-statusbar .assistant-mode{font-size:10.5px}.assistant-context-panel{padding-right:8px;padding-bottom:44px}.assistant-context-refresh{top:auto;bottom:8px}.assistant-context-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.assistant-context-chip:last-child{grid-column:1/-1}.assistant-messages{min-height:330px;max-height:calc(100vh - 390px);padding:16px 12px}.assistant-avatar{display:none}.assistant-bubble{max-width:94%}.assistant-message.assistant .assistant-bubble{max-width:94%}.assistant-message.user .assistant-bubble{max-width:88%}.assistant-composer{bottom:max(4px,env(safe-area-inset-bottom))}.assistant-composer .assistant-send{padding-inline:12px}.assistant-twin-facts{grid-template-columns:1fr 1fr}.assistant-twin-head{flex-direction:column}.assistant-plan-head{flex-direction:column}.assistant-plan-actions{align-items:stretch;flex-direction:column}.assistant-plan-actions .btn{width:100%}}

/* assets/ui-tokens.css */
/* YottaHotelier RC37 — Canonical Modern Hospitality design tokens */
:root {
  color-scheme: light;
  --bg-app: #F4F7F5;
  --bg-sidebar: #08251E;
  --surface-1: #FFFFFF;
  --surface-2: #F9FBFA;
  --surface-3: #F1F5F2;
  --surface-hover: #F0F5F2;
  --surface-active: #E7F3EC;
  --text-primary: #18231D;
  --text-secondary: #526159;
  --text-muted: #5F7067;
  --text-disabled: #A6B0AA;
  --border: #DEE5E1;
  --border-strong: #CBD6D0;
  --divider: #E7ECE9;
  --primary: #287A57;
  --primary-hover: #226A4C;
  --primary-active: #1C5940;
  --primary-soft: #E7F3EC;
  --primary-soft-2: #F1F8F4;
  --primary-border: #B8D8C7;
  --danger: #B42323;
  --danger-hover: #C33838;
  --danger-soft: #FAEAEA;
  --warning: #8A5B00;
  --warning-soft: #FCF3E1;
  --info: #1F5F99;
  --info-soft: #EAF3FA;
  --success: #1D7A4E;
  --success-soft: #E8F5EE;
  --neutral: #77847D;
  --neutral-soft: #EFF2F0;
  --brand-sidebar: #08251E;
  --brand-sidebar-2: #0D3027;
  --brand-sidebar-hover: #143C31;
  --brand-sidebar-active: #173D32;
  --brand-sidebar-border: #244A3E;
  --brand-sidebar-text: #F7F5EF;
  --brand-sidebar-muted: #A8B4AE;
  --brand-gold: #D6AE67;
  --radius-sm: 8px;
  --radius-control: 10px;
  --radius-menu: 12px;
  --radius-card: 14px;
  --radius-panel: 16px;
  --radius-modal: 18px;
  --radius-floating: 20px;
  --radius-pill: 999px;
  --control-sm: 32px;
  --control-md: 40px;
  --control-lg: 46px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --shadow-xs: 0 1px 3px rgba(20,35,27,.05);
  --shadow-sm: 0 6px 18px rgba(20,35,27,.08);
  --shadow-md: 0 14px 36px rgba(20,35,27,.12);
  --shadow-lg: 0 18px 50px rgba(20,35,27,.14);
  --focus-ring: 0 0 0 3px rgba(40,122,87,.14);
  --sidebar-collapsed: 72px;
  --sidebar-expanded: 260px;
  --topbar-min-height: 64px;
  --motion-fast: 120ms;
  --motion-normal: 180ms;
  --motion-slow: 240ms;
  --ease-standard: cubic-bezier(.2,.8,.2,1);
  --font-ui: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --type-caption:.75rem;
  --type-small:.8125rem;
  --type-body:.875rem;
  --type-control:.875rem;
  --type-title-sm:1rem;
  --type-title:1.25rem;
  --type-display:1.75rem;
  --leading-tight:1.2;
  --leading-ui:1.4;
  --leading-copy:1.55;

  /* RC40 bridge: legacy Modern Hospitality variables dynamically follow canonical theme tokens. */
  --mh-bg-app:var(--bg-app);--mh-bg-subtle:var(--surface-3);
  --mh-surface:var(--surface-1);--mh-surface-raised:var(--surface-1);--mh-surface-soft:var(--surface-2);--mh-surface-muted:var(--surface-hover);
  --mh-green-50:var(--primary-soft-2);--mh-green-100:var(--primary-soft);--mh-green-300:var(--primary-border);--mh-green-500:var(--primary);--mh-green-600:var(--primary);--mh-green-700:var(--primary);--mh-green-800:var(--primary-hover);--mh-green-900:var(--primary-active);--mh-green-950:var(--brand-sidebar);
  --mh-primary:var(--primary);--mh-primary-hover:var(--primary-hover);
  --mh-bronze-50:var(--surface-2);--mh-bronze-100:var(--primary-soft-2);--mh-bronze-200:var(--brand-gold);--mh-bronze-500:var(--brand-gold);--mh-bronze-600:var(--brand-gold);--mh-bronze-700:var(--brand-gold);
  --mh-text-strong:var(--text-primary);--mh-text:var(--text-secondary);--mh-text-muted:var(--text-muted);--mh-text-soft:var(--text-disabled);
  --mh-border:var(--border);--mh-border-strong:var(--border-strong);
  --mh-success:var(--success);--mh-success-soft:var(--success-soft);--mh-warning:var(--warning);--mh-warning-soft:var(--warning-soft);--mh-danger:var(--danger);--mh-danger-hover:var(--danger-hover);--mh-danger-soft:var(--danger-soft);--mh-info:var(--info);--mh-info-soft:var(--info-soft);--mh-neutral-soft:var(--neutral-soft);
  --mh-shadow-subtle:var(--shadow-xs);--mh-shadow-raised:var(--shadow-sm);--mh-shadow-overlay:var(--shadow-lg);
  --mh-radius-sm:var(--radius-sm);--mh-radius-md:var(--radius-menu);--mh-radius-lg:var(--radius-panel);--mh-radius-xl:var(--radius-floating);

  /* Backward-compatible aliases for legacy application CSS */
  --shell-sidebar-expanded: var(--sidebar-expanded);
  --shell-sidebar-collapsed: var(--sidebar-collapsed);
  --shell-topbar-height: var(--topbar-min-height);
  --ds-canvas: var(--bg-app);
  --ds-canvas-strong: #EDF2EF;
  --ds-surface: var(--surface-1);
  --ds-surface-raised: var(--surface-1);
  --ds-surface-soft: var(--surface-2);
  --ds-surface-hover: var(--surface-hover);
  --ds-surface-active: var(--surface-active);
  --ds-border: var(--border);
  --ds-border-strong: var(--border-strong);
  --ds-border-emphasis: #AEBAB3;
  --ds-ink: var(--text-primary);
  --ds-ink-secondary: var(--text-secondary);
  --ds-muted: var(--text-muted);
  --ds-faint: var(--text-disabled);
  --ds-on-dark: var(--brand-sidebar-text);
  --ds-primary: var(--primary);
  --ds-primary-hover: var(--primary-hover);
  --ds-primary-pressed: var(--primary-active);
  --ds-primary-soft: var(--primary-soft);
  --ds-primary-soft-strong: #CFE8D9;
  --ds-focus: var(--primary);
  --ds-brass: var(--brand-gold);
  --ds-brass-hover: #B28E50;
  --ds-brass-soft: #F8F0E1;
  --ds-success: var(--success);
  --ds-success-soft: var(--success-soft);
  --ds-info: var(--info);
  --ds-info-soft: var(--info-soft);
  --ds-warning: var(--warning);
  --ds-warning-soft: var(--warning-soft);
  --ds-danger: var(--danger);
  --ds-danger-soft: var(--danger-soft);
  --ds-violet: #6B628A;
  --ds-violet-soft: #ECE9F4;
  --ds-sidebar: var(--brand-sidebar);
  --ds-sidebar-elevated: var(--brand-sidebar-2);
  --ds-sidebar-hover: var(--brand-sidebar-hover);
  --ds-sidebar-active: var(--brand-sidebar-active);
  --ds-sidebar-border: var(--brand-sidebar-border);
  --ds-sidebar-text: var(--brand-sidebar-text);
  --ds-sidebar-muted: var(--brand-sidebar-muted);
  --ds-sidebar-accent: var(--brand-gold);
  --bg: var(--bg-app);
  --panel: var(--surface-1);
  --panel2: var(--surface-2);
  --panel3: var(--surface-hover);
  --line: var(--border);
  --bronze: var(--brand-gold);
  --bronze2: #B28E50;
  --cream: var(--text-primary);
  --muted: var(--text-muted);
  --green: var(--success);
  --blue: var(--info);
  --amber: var(--warning);
  --red: var(--danger);
  --shadow: var(--shadow-md);
  --radius: var(--radius-control);
}

[data-theme="dark"] {
  color-scheme: dark;
  --bg-app: #0E1411;
  --bg-sidebar: #111915;
  --surface-1: #151E19;
  --surface-2: #19231E;
  --surface-3: #1D2822;
  --surface-hover: #222F28;
  --surface-active: #173126;
  --text-primary: #F0F4F2;
  --text-secondary: #B7C3BC;
  --text-muted: #829087;
  --text-disabled: #59665F;
  --border: #2A3831;
  --border-strong: #39483F;
  --divider: #26342D;
  --primary: #3FA978;
  --primary-hover: #4DBA88;
  --primary-active: #35936A;
  --primary-soft: #173126;
  --primary-soft-2: #13281F;
  --primary-border: #285B43;
  --danger: #ED7474;
  --danger-hover: #F08484;
  --danger-soft: #382020;
  --warning: #E2AB4B;
  --warning-soft: #332A18;
  --info: #6DA7D8;
  --info-soft: #182B39;
  --success: #63C997;
  --success-soft: #173126;
  --neutral: #9BA8A1;
  --neutral-soft: #202925;
  --brand-sidebar: #111915;
  --brand-sidebar-2: #16211B;
  --brand-sidebar-hover: #1D2923;
  --brand-sidebar-active: #173126;
  --brand-sidebar-border: #2A3831;
  --brand-sidebar-text: #F0F4F2;
  --brand-sidebar-muted: #829087;
  --brand-gold: #DDBA79;
  --shadow-xs: 0 1px 3px rgba(0,0,0,.18);
  --shadow-sm: 0 8px 20px rgba(0,0,0,.22);
  --shadow-md: 0 16px 40px rgba(0,0,0,.28);
  --shadow-lg: 0 22px 60px rgba(0,0,0,.40);
  --focus-ring: 0 0 0 3px rgba(63,169,120,.18);

  --ds-canvas-strong: #111915;
  --ds-border-emphasis: #48584F;
  --ds-primary-soft-strong: #214635;
  --ds-brass-hover: #E7C98D;
  --ds-brass-soft: #302A1E;
  --ds-violet: #AAA0D0;
  --ds-violet-soft: #29243A;
}

/* RC46 — canonical form contrast + legacy theme bridges */
:root{
  --field-surface:var(--surface-1);
  --field-surface-muted:var(--surface-2);
  --field-text:var(--text-primary);
  --field-disabled-text:var(--text-disabled);
  --form-label:var(--text-secondary);
  --form-helper:color-mix(in srgb,var(--text-secondary) 50%,var(--text-muted));
  --form-placeholder:color-mix(in srgb,var(--text-secondary) 50%,var(--text-muted));
  --surface:var(--surface-1);
  --surface-soft:var(--surface-2);
  --surface-subtle:var(--surface-3);
  --text:var(--text-primary);
  --ds-text:var(--text-primary);
  --ds-text-muted:var(--text-muted);
  --ds-border-subtle:var(--border);
}

/* assets/ui-components.css */
/* YottaHotelier RC37 — Canonical shared component language */
html{background:var(--bg-app);color:var(--text-primary);font-family:var(--font-ui);font-size:14px;line-height:1.45}body{background:var(--bg-app);color:var(--text-primary);font-family:var(--font-ui);font-size:14px;line-height:1.45}
body{transition:background-color var(--motion-normal) ease,color var(--motion-normal) ease}
button{font-family:inherit}input{font-family:inherit}select{font-family:inherit}textarea{font-family:inherit}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

/* Controls */
.btn{gap:8px}
.btn:active{transform:translateY(1px)}
.btn.icon-only{min-width:var(--control-md);width:var(--control-md)}
.btn .ui-icon{width:18px;height:18px}.btn .nav-icon{width:18px;height:18px}

label{gap:7px;color:var(--text-secondary);font-size:13px;font-weight:600}
input{min-height:var(--control-md);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-1);color:var(--text-primary);padding:8px 12px;font-size:14px;transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,background-color var(--motion-fast) ease}select{min-height:var(--control-md);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-1);color:var(--text-primary);padding:8px 12px;font-size:14px;transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,background-color var(--motion-fast) ease}textarea{min-height:var(--control-md);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-1);color:var(--text-primary);padding:8px 12px;font-size:14px;transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,background-color var(--motion-fast) ease}
input:hover{border-color:var(--border-strong)}select:hover{border-color:var(--border-strong)}textarea:hover{border-color:var(--border-strong)}
input:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}select:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}
input::placeholder{color:var(--text-muted);opacity:.82}textarea::placeholder{color:var(--text-muted);opacity:.82}
input:disabled{background:var(--surface-2);color:var(--text-disabled)}select:disabled{background:var(--surface-2);color:var(--text-disabled)}textarea:disabled{background:var(--surface-2);color:var(--text-disabled)}

/* Panels and cards */
.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-xs)}.ui-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-xs)}.metric{background:var(--surface-1);border:1px solid var(--border)}
.panel{padding:20px}
.metric{padding:16px 18px}.ui-card:hover{box-shadow:var(--shadow-sm)}
.section-head{gap:16px;margin-bottom:16px}
.section-head h2{color:var(--text-primary);font-size:16px;font-weight:650;line-height:1.3}.panel h2{color:var(--text-primary);font-size:16px;font-weight:650;line-height:1.3}
.page-head{gap:24px;margin-bottom:20px}
.page-head h1{margin:2px 0 4px;color:var(--text-primary);font-size:clamp(24px,2.4vw,28px);font-weight:650;letter-spacing:-.025em;line-height:1.2}
.page-head p{color:var(--text-muted)}.muted{color:var(--text-muted)}
.eyebrow{color:var(--text-muted);font-size:11px;font-weight:650;letter-spacing:.12em;text-transform:uppercase}

/* Status and chips */
.badge{display:inline-flex;align-items:center;gap:6px;min-height:24px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--neutral-soft);color:var(--neutral);padding:2px 9px;font-size:12px;font-weight:650;line-height:1.2}.status-badge{display:inline-flex;align-items:center;gap:6px;min-height:24px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--neutral-soft);color:var(--neutral);padding:2px 9px;font-size:12px;font-weight:650;line-height:1.2}.chip{display:inline-flex;align-items:center;gap:6px;min-height:24px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--neutral-soft);color:var(--neutral);padding:2px 9px;font-size:12px;font-weight:650;line-height:1.2}
.badge.green{border-color:color-mix(in srgb,var(--success) 28%,transparent);background:var(--success-soft);color:var(--success)}.badge.success{border-color:color-mix(in srgb,var(--success) 28%,transparent);background:var(--success-soft);color:var(--success)}.status-success{border-color:color-mix(in srgb,var(--success) 28%,transparent);background:var(--success-soft);color:var(--success)}
.badge.blue{border-color:color-mix(in srgb,var(--info) 28%,transparent);background:var(--info-soft);color:var(--info)}.badge.info{border-color:color-mix(in srgb,var(--info) 28%,transparent);background:var(--info-soft);color:var(--info)}.status-info{border-color:color-mix(in srgb,var(--info) 28%,transparent);background:var(--info-soft);color:var(--info)}
.badge.amber{border-color:color-mix(in srgb,var(--warning) 28%,transparent);background:var(--warning-soft);color:var(--warning)}.badge.warning{border-color:color-mix(in srgb,var(--warning) 28%,transparent);background:var(--warning-soft);color:var(--warning)}.status-warning{border-color:color-mix(in srgb,var(--warning) 28%,transparent);background:var(--warning-soft);color:var(--warning)}
.badge.red{border-color:color-mix(in srgb,var(--danger) 28%,transparent);background:var(--danger-soft);color:var(--danger)}.badge.danger{border-color:color-mix(in srgb,var(--danger) 28%,transparent);background:var(--danger-soft);color:var(--danger)}.status-danger{border-color:color-mix(in srgb,var(--danger) 28%,transparent);background:var(--danger-soft);color:var(--danger)}

/* Tables */
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1)}
table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface-1);color:var(--text-primary)}
th{height:40px;background:var(--surface-2);color:var(--text-secondary);font-size:12px;font-weight:650;text-align:left;border-bottom:1px solid var(--divider);padding:8px 12px;white-space:nowrap}
td{min-height:44px;height:48px;border-bottom:1px solid var(--divider);padding:9px 12px;color:var(--text-primary);vertical-align:middle}
tbody tr:hover td{background:var(--surface-hover)}
tbody tr:last-child td{border-bottom:0}

/* Empty and notices */
.empty{border:1px dashed var(--border-strong);border-radius:var(--radius-card);background:var(--surface-2);color:var(--text-muted);padding:28px;text-align:center}
.empty.compact{padding:16px 18px}
.split-note{border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-2);color:var(--text-secondary);padding:12px 14px}.notice{border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-2);color:var(--text-secondary);padding:12px 14px}
.warning-panel{border:1px solid color-mix(in srgb,var(--warning) 38%,var(--border));border-radius:var(--radius-card);background:var(--warning-soft);color:var(--text-primary);padding:16px}

/* Modal and drawer */
.modal-backdrop{background:rgba(17,27,22,.40)}
[data-theme="dark"] .modal-backdrop{background:rgba(0,0,0,.60)}
.modal-card{border:1px solid var(--border);border-radius:var(--radius-modal);background:var(--surface-1);color:var(--text-primary);box-shadow:var(--shadow-lg)}.modal{border:1px solid var(--border);border-radius:var(--radius-modal);background:var(--surface-1);color:var(--text-primary);box-shadow:var(--shadow-lg)}.dialog{border:1px solid var(--border);border-radius:var(--radius-modal);background:var(--surface-1);color:var(--text-primary);box-shadow:var(--shadow-lg)}
.modal-card{padding:0;overflow:hidden}
.modal-head{padding:20px 24px 14px;border-bottom:1px solid var(--divider);background:var(--surface-1)}.modal-header{padding:20px 24px 14px;border-bottom:1px solid var(--divider);background:var(--surface-1)}
.modal-body{padding:20px 24px}
.modal-actions{padding:14px 24px 20px;border-top:1px solid var(--divider);background:var(--surface-1)}.modal-footer{padding:14px 24px 20px;border-top:1px solid var(--divider);background:var(--surface-1)}
.drawer{background:var(--surface-1);color:var(--text-primary);border-left:1px solid var(--border);box-shadow:var(--shadow-md)}.ui-drawer{background:var(--surface-1);color:var(--text-primary);border-left:1px solid var(--border);box-shadow:var(--shadow-md)}.calendar-ops-drawer{background:var(--surface-1);color:var(--text-primary);border-left:1px solid var(--border);box-shadow:var(--shadow-md)}

/* Dropdown / popover */
.top-user-popover{border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-1);box-shadow:var(--shadow-sm);padding:6px}.context-menu{border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-1);box-shadow:var(--shadow-sm);padding:6px}.dropdown-menu{border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-1);box-shadow:var(--shadow-sm);padding:6px}
.top-user-popover button{min-height:38px;border-radius:8px;color:var(--text-primary)}.context-menu button{min-height:38px;border-radius:8px;color:var(--text-primary)}.dropdown-menu button{min-height:38px;border-radius:8px;color:var(--text-primary)}
.top-user-popover button:hover{background:var(--surface-hover)}.context-menu button:hover{background:var(--surface-hover)}.dropdown-menu button:hover{background:var(--surface-hover)}

/* RC37 — canonical Modern Hospitality shell */
/* RC38 — sidebar visual cleanup */
.app-shell.sidebar-hover-shell{grid-template-columns:var(--sidebar-collapsed) minmax(0,1fr);background:var(--bg-app)}
.sidebar-hover-shell .sidebar{background:linear-gradient(180deg,var(--brand-sidebar) 0%,#0A3027 100%);border-right:1px solid var(--brand-sidebar-border);color:var(--brand-sidebar-text)}
.sidebar-hover-shell .sidebar .brand{height:84px;min-height:84px;flex:0 0 84px}
.sidebar-hover-shell .brand-copy strong{color:var(--brand-sidebar-text);font-size:15px;letter-spacing:.02em}
.sidebar-hover-shell .brand-copy strong span{color:var(--brand-gold)}
.sidebar-hover-shell .brand-copy small{color:var(--brand-sidebar-muted);font-size:9px;letter-spacing:.18em}
.sidebar-hover-shell .nav{padding:4px 10px 14px}
.sidebar-hover-shell .nav-group{margin:4px 0 12px}
.sidebar-hover-shell .nav-group-title{color:var(--brand-sidebar-muted);font-size:10px;letter-spacing:.13em}
.sidebar-hover-shell .nav button{height:42px;border-radius:var(--radius-control);color:var(--brand-sidebar-muted);font-size:13px;font-weight:560}
.sidebar-hover-shell .nav button:hover{background:rgba(255,255,255,.035);color:var(--brand-sidebar-text)}
.sidebar-hover-shell .nav button.active{background:transparent;color:var(--brand-sidebar-text);box-shadow:none}
.sidebar-hover-shell .nav button.active:before{background:var(--brand-gold);width:3px;top:9px;bottom:9px}
.sidebar-hover-shell .nav button.active:hover{background:rgba(255,255,255,.025)}
.sidebar-hover-shell .nav button.active .nav-icon{color:var(--brand-gold)}
.sidebar-hover-shell .nav-icon{width:20px;height:20px;color:currentColor}
.sidebar-hover-shell .nav-icon svg{width:20px;height:20px;stroke-width:1.8}
.sidebar-hover-shell .sidebar-hotel-context{flex:0 0 58px;min-height:58px;margin:0 16px 10px;padding:4px 0 12px;border:0;border-bottom:1px solid rgba(255,255,255,.08);border-radius:0;background:transparent;min-width:0;overflow:hidden}
.sidebar-hotel-name{display:block;color:var(--brand-sidebar-text);font-size:14px;font-weight:650;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-hotel-status{display:flex;align-items:center;gap:6px;margin-top:5px;color:var(--brand-sidebar-muted);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.sidebar-hotel-status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px rgba(99,201,151,.10)}

@media (min-width:1200px) and (hover:hover) and (pointer:fine){
  .sidebar-hover-shell .sidebar{width:var(--sidebar-collapsed);min-width:var(--sidebar-collapsed);overflow:hidden;box-shadow:none;transition:width .18s var(--ease-standard) .12s,box-shadow .18s ease .12s;will-change:width}
  .sidebar-hover-shell .sidebar:hover{width:260px;transition-delay:0s;box-shadow:18px 0 38px rgba(6,24,19,.18)}.sidebar-hover-shell .sidebar.keyboard-expanded{width:260px;transition-delay:0s;box-shadow:18px 0 38px rgba(6,24,19,.18)}
  .sidebar-hover-shell .sidebar .brand{position:relative;display:block;padding:0}
  .sidebar-hover-shell .brand-mark{position:absolute;left:17px;top:16px;width:40px;height:40px;margin:0;transition:none}
  .sidebar-hover-shell .brand-copy{position:absolute;left:68px;right:12px;top:19px;opacity:0;transform:translateX(-4px);overflow:hidden;white-space:nowrap;pointer-events:none;transition:opacity .11s ease .05s,transform .18s var(--ease-standard) .05s}
  .sidebar-hover-shell .sidebar:hover .brand-copy{opacity:1;transform:translateX(0);pointer-events:auto}.sidebar-hover-shell .sidebar.keyboard-expanded .brand-copy{opacity:1;transform:translateX(0);pointer-events:auto}
  .sidebar-hover-shell .nav button{position:relative;display:block;width:100%;padding:0;overflow:hidden}
  .sidebar-hover-shell .nav button>.nav-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);transition:color .12s ease}
  .sidebar-hover-shell .nav button>.nav-label{position:absolute;left:50px;right:12px;top:50%;opacity:0;transform:translateY(-50%) translateX(-4px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;transition:opacity .11s ease .05s,transform .18s var(--ease-standard) .05s}
  .sidebar-hover-shell .sidebar:hover .nav button>.nav-label{opacity:1;transform:translateY(-50%) translateX(0);pointer-events:auto}.sidebar-hover-shell .sidebar.keyboard-expanded .nav button>.nav-label{opacity:1;transform:translateY(-50%) translateX(0);pointer-events:auto}
  .sidebar-hover-shell .nav-group-title{opacity:0;transform:translateX(-4px);pointer-events:none;transition:opacity .11s ease .05s,transform .18s var(--ease-standard) .05s}
  .sidebar-hover-shell .sidebar:hover .nav-group-title{opacity:1;transform:translateX(0);pointer-events:auto}.sidebar-hover-shell .sidebar.keyboard-expanded .nav-group-title{opacity:1;transform:translateX(0);pointer-events:auto}
  .sidebar-hover-shell .sidebar-hotel-context{opacity:0;transform:translateX(-4px);pointer-events:none;transition:opacity .11s ease .05s,transform .18s var(--ease-standard) .05s,background-color .14s ease,border-color .14s ease}
  .sidebar-hover-shell .sidebar:hover .sidebar-hotel-context{opacity:1;transform:translateX(0);pointer-events:auto}.sidebar-hover-shell .sidebar.keyboard-expanded .sidebar-hotel-context{opacity:1;transform:translateX(0);pointer-events:auto}
}
@media (min-width:1200px) and (hover:none){.sidebar-hover-shell{grid-template-columns:var(--sidebar-expanded) minmax(0,1fr)}.sidebar-hover-shell .sidebar{width:var(--sidebar-expanded)}}
@media (max-width:1199px){.app-shell.sidebar-hover-shell{grid-template-columns:minmax(0,1fr)}.sidebar-hover-shell .sidebar{width:min(88vw,320px)}.sidebar-hover-shell .brand-copy{opacity:1!important;transform:none!important;pointer-events:auto!important}.sidebar-hover-shell .nav-label{opacity:1!important;transform:none!important;pointer-events:auto!important}.sidebar-hover-shell .nav-group-title{opacity:1!important;transform:none!important;pointer-events:auto!important}.sidebar-hover-shell .sidebar-hotel-context{opacity:1!important;transform:none!important;pointer-events:auto!important}}

/* Topbar */
.topbar{min-height:var(--topbar-min-height);border-bottom:1px solid var(--divider);background:color-mix(in srgb,var(--surface-1) 96%,transparent);color:var(--text-primary);box-shadow:0 1px 0 rgba(20,35,27,.02)}
.top-search{border-radius:var(--radius-control);background:var(--surface-2);border-color:var(--border);color:var(--text-secondary)}
.top-search:hover{background:var(--surface-hover);border-color:var(--border-strong)}
.top-user{border-radius:var(--radius-control)}
.top-avatar{background:var(--primary-soft);color:var(--primary)}
.cashier-chip{border-radius:var(--radius-pill)}.business-date{border-radius:var(--radius-pill)}

/* Core screen families */
.dashboard-rc33{color:var(--text-primary)}.frontdesk-rc35{color:var(--text-primary)}.reservations-rc34{color:var(--text-primary)}.calendar-rc17{color:var(--text-primary)}.rooms-rc26{color:var(--text-primary)}.platform-rc26{color:var(--text-primary)}
.dashboard-operational-counters{gap:12px}.cards{gap:12px}.metric-grid{gap:12px}
.dashboard-counter{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);color:var(--text-primary);box-shadow:var(--shadow-xs)}
.dashboard-counter:hover{border-color:var(--primary-border);background:var(--primary-soft-2);box-shadow:var(--shadow-sm)}
.frontdesk-filter{border-radius:var(--radius-control)!important}
.frontdesk-detail-zone{min-width:0}.frontdesk-queue-zone{min-width:0}
.reservation-flow-step{border-radius:var(--radius-menu);background:var(--surface-2);border-color:var(--border);color:var(--text-secondary)}
.reservation-flow-step.active{background:var(--primary-soft);border-color:var(--primary-border);color:var(--primary)}.reservation-flow-step[aria-current="step"]{background:var(--primary-soft);border-color:var(--primary-border);color:var(--primary)}
.reservation-flow-confirmation{background:var(--surface-2);border-color:var(--border);border-radius:var(--radius-card)}.reservation-flow-advanced{background:var(--surface-2);border-color:var(--border);border-radius:var(--radius-card)}
.reservation-flow-confirmation-grid>div{background:var(--surface-1);border-color:var(--border);border-radius:var(--radius-control)}

/* Calendar visual language without altering geometry */
.calendar-reference-shell{background:var(--surface-1);color:var(--text-primary)}.classic-calendar{background:var(--surface-1);color:var(--text-primary)}.calendar-reference-grid{background:var(--surface-1);color:var(--text-primary)}
.calendar-reference-head{background:var(--surface-2);border-color:var(--divider)}.classic-calendar-head{background:var(--surface-2);border-color:var(--divider)}
.calendar-reference-day.today{background:var(--primary-soft-2)}.classic-calendar-day.today{background:var(--primary-soft-2)}
.calendar-reference-search{border-color:var(--border);background:var(--surface-1);border-radius:var(--radius-control)}.calendar-reference-settings-btn{border-color:var(--border);background:var(--surface-1);border-radius:var(--radius-control)}.calendar-period-btn{border-color:var(--border);background:var(--surface-1);border-radius:var(--radius-control)}.calendar-toolbar-zoom{border-color:var(--border);background:var(--surface-1);border-radius:var(--radius-control)}
.calendar-period-btn.active{background:var(--primary-soft);color:var(--primary);border-color:var(--primary-border)}

/* Public/auth/install consistency */
.login-panel{background:var(--bg-app)}.auth-public-main{background:var(--bg-app)}.hotel-login-main{background:var(--bg-app)}
.login-card{background:var(--surface-1);border-color:var(--border);border-radius:var(--radius-panel);color:var(--text-primary);box-shadow:var(--shadow-sm)}.auth-public-card{background:var(--surface-1);border-color:var(--border);border-radius:var(--radius-panel);color:var(--text-primary);box-shadow:var(--shadow-sm)}.hotel-login-card{background:var(--surface-1);border-color:var(--border);border-radius:var(--radius-panel);color:var(--text-primary);box-shadow:var(--shadow-sm)}.installer .panel{background:var(--surface-1);border-color:var(--border);border-radius:var(--radius-panel);color:var(--text-primary);box-shadow:var(--shadow-sm)}
.login-art{background:linear-gradient(155deg,var(--brand-sidebar) 0%,#0B3026 60%,#102F28 100%)}.auth-public-aside{background:linear-gradient(155deg,var(--brand-sidebar) 0%,#0B3026 60%,#102F28 100%)}.hotel-login-aside{background:linear-gradient(155deg,var(--brand-sidebar) 0%,#0B3026 60%,#102F28 100%)}

/* Theme chooser */
.theme-choice{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-2)}
.theme-choice button{min-height:32px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);padding:0 10px;cursor:pointer}
.theme-choice button[aria-pressed="true"]{background:var(--surface-1);color:var(--primary);box-shadow:var(--shadow-xs)}

@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}*::before{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}}

/* RC37 canonical compact-mobile breakpoint */
@media (max-width:639px){
  .content{padding:12px}
  .page-head{gap:12px;margin-bottom:16px}
  .page-head h1{font-size:24px}
  .panel{padding:16px}
  .toolbar{gap:8px}
  .modal-body{padding:18px}
  .modal-actions{padding:12px 18px 18px}.modal-footer{padding:12px 18px 18px}
}

/* RC39 — topbar + calendar theme consistency */
.topbar{
  min-height:var(--topbar-min-height);
  padding-block:8px;
  background:color-mix(in srgb,var(--surface-1) 96%,transparent);
  border-bottom-color:var(--divider);
  box-shadow:0 1px 0 color-mix(in srgb,var(--border) 55%,transparent);
  backdrop-filter:blur(14px);
}
.top-left{gap:8px}.top-actions{gap:8px}
.topbar .platform-hotel-context{min-height:var(--control-md)}.topbar .top-search{min-height:var(--control-md)}.topbar .cashier-chip{min-height:var(--control-md)}.topbar .business-date{min-height:var(--control-md)}.topbar .top-user{min-height:var(--control-md)}
.topbar .platform-hotel-context>.nav-icon{background:var(--surface-2);border-color:var(--border);color:var(--primary)}
.topbar .top-search{background:var(--surface-2);border-color:var(--border);box-shadow:none}
.topbar .top-search:hover{background:var(--surface-hover);border-color:var(--border-strong)}
.topbar .cashier-chip{background:var(--surface-2);border-color:var(--border);color:var(--text-secondary)}
.topbar .business-date{border-color:transparent;background:var(--success-soft);color:var(--success)}
.topbar .business-date.business-date-lag{background:var(--warning-soft);color:var(--warning)}

/* The active room planner keeps its geometry, but every visible surface follows the design tokens. */
.calendar-v112-reference{
  --cal-grid:var(--divider);
  color:var(--text-primary);
}
.calendar-v112-reference .calendar-reference-head{color:var(--text-primary)}
.calendar-v112-reference .calendar-reference-copy h1{color:var(--text-primary)}
.calendar-v112-reference .calendar-reference-subtitle{color:var(--text-muted)}
.calendar-v112-reference .calendar-reference-toolbar{
  border-color:var(--border);
  background:var(--surface-1);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-xs);
}
.calendar-v112-reference .calendar-reference-nav{
  border-color:var(--border);
  background:var(--surface-1);
  color:var(--text-secondary);
}
.calendar-v112-reference .calendar-reference-range{
  border-color:var(--border);
  background:var(--surface-1);
  color:var(--text-secondary);
}
.calendar-v112-reference .calendar-toolbar-zoom{
  border-color:var(--border);
  background:var(--surface-1);
  color:var(--text-secondary);
}
.calendar-v112-reference .calendar-reference-search{
  border-color:var(--border);
  background:var(--surface-1);
  color:var(--text-secondary);
}
.calendar-v112-reference .calendar-reference-settings-btn{
  border-color:var(--border);
  background:var(--surface-1);
  color:var(--text-secondary);
}
.calendar-v112-reference .calendar-reference-nav-btn{
  background:var(--surface-1);
  color:var(--text-secondary);
  border-color:var(--border);
}
.calendar-v112-reference .calendar-reference-focus{
  background:var(--surface-1);
  color:var(--text-secondary);
  border-color:var(--border);
}
.calendar-v112-reference .calendar-toolbar-zoom button{
  background:var(--surface-1);
  color:var(--text-secondary);
  border-color:var(--border);
}
.calendar-v112-reference .calendar-reference-range .localized-date-control{
  background:var(--surface-1);
  color:var(--text-secondary);
  border-color:var(--border);
}
.calendar-v112-reference .calendar-reference-range .localized-date-picker{
  background:var(--surface-1);
  color:var(--text-secondary);
  border-color:var(--border);
}
.calendar-v112-reference .calendar-reference-focus{color:var(--text-primary)}
.calendar-v112-reference .calendar-reference-nav-btn:hover{
  background:var(--surface-hover);
  color:var(--text-primary);
}
.calendar-v112-reference .calendar-reference-focus:hover{
  background:var(--surface-hover);
  color:var(--text-primary);
}
.calendar-v112-reference .calendar-toolbar-zoom button:hover{
  background:var(--surface-hover);
  color:var(--text-primary);
}
.calendar-v112-reference .calendar-reference-range .localized-date-picker:hover{
  background:var(--surface-hover);
  color:var(--text-primary);
}
.calendar-v112-reference .calendar-reference-settings-btn:hover{
  background:var(--surface-hover);
  color:var(--text-primary);
}
.calendar-v112-reference .calendar-reference-range-copy{color:var(--text-secondary)}
.calendar-v112-reference .calendar-reference-range-copy .ui-icon{color:var(--text-muted)}
.calendar-v112-reference .calendar-reference-range .calendar-reference-date{border-color:var(--border)}
.calendar-v112-reference .calendar-period-switch{border-color:var(--border);background:var(--surface-2)}
.calendar-v112-reference .calendar-period-btn{color:var(--text-secondary)}
.calendar-v112-reference .calendar-period-btn:hover{background:var(--surface-hover);color:var(--text-primary)}
.calendar-v112-reference .calendar-period-btn.active{background:var(--primary-soft);color:var(--primary);box-shadow:none}
.calendar-v112-reference .calendar-toolbar-zoom output{border-color:var(--border);color:var(--text-primary)}
.calendar-v112-reference .calendar-reference-search span{color:var(--text-muted)}
.calendar-v112-reference .calendar-reference-search input{background:transparent;border:0;box-shadow:none;color:var(--text-primary)}
.calendar-v112-reference .calendar-reference-search input:focus{box-shadow:none}
.calendar-v112-reference .calendar-filter-count{background:var(--primary-soft);color:var(--primary)}
.calendar-v112-reference .classic-calendar-settings-pop{border-color:var(--border);background:var(--surface-1);color:var(--text-primary);box-shadow:var(--shadow-md)}
.calendar-v112-reference .calendar-workspace{
  border-color:var(--border);
  background:var(--surface-1);
  box-shadow:var(--shadow-xs);
}
.calendar-v112-reference .calendar-panel{
  background:var(--surface-1);
  border-color:var(--divider);
  color:var(--text-primary);
}
.calendar-v112-reference .classic-calendar-panel{
  background:var(--surface-1);
  border-color:var(--divider);
  color:var(--text-primary);
}
.calendar-v112-reference .classic-calendar-scroll{
  background:var(--surface-1);
  border-color:var(--divider);
  color:var(--text-primary);
}
.calendar-v112-reference .calendar-flat-room-list{
  background:var(--surface-1);
  border-color:var(--divider);
  color:var(--text-primary);
}
.calendar-v112-reference .calendar-row{
  background:var(--surface-1);
  border-color:var(--divider);
  color:var(--text-primary);
}
.calendar-v112-reference .calendar-room{
  background:var(--surface-1);
  border-color:var(--divider);
  color:var(--text-primary);
}
.calendar-v112-reference .calendar-row:hover{background:var(--surface-hover)}
.calendar-v112-reference .calendar-room:hover{background:var(--surface-hover)}
.calendar-v112-reference .classic-calendar-day-axis{
  background:var(--surface-2);
  border-color:var(--divider)!important;
  color:var(--text-secondary);
}
.calendar-v112-reference .classic-calendar-room-axis{
  background:var(--surface-2);
  border-color:var(--divider)!important;
  color:var(--text-secondary);
}
.calendar-v112-reference .classic-calendar-day{
  background:var(--surface-2);
  border-color:var(--divider)!important;
  color:var(--text-secondary);
}
.calendar-v112-reference .classic-calendar-room-axis{color:var(--text-primary)}
.calendar-v112-reference .classic-calendar-day strong{color:var(--text-primary)}
.calendar-v112-reference .calendar-room-number{color:var(--text-primary)}
.calendar-v112-reference .classic-calendar-day.weekend:not(.today){background:var(--surface-3);color:var(--text-muted)}
.calendar-v112-reference .classic-calendar-day.today{background:var(--primary-soft-2);color:var(--primary)}
.calendar-v112-reference .classic-calendar-day.today strong{color:var(--primary)}
.calendar-v112-reference .calendar-room-meta strong{color:var(--text-secondary)}
.calendar-v112-reference .calendar-room-meta small{color:var(--text-muted)}
.calendar-v112-reference .calendar-room-status{border-color:var(--border);background:var(--surface-2)}
.calendar-v112-reference .calendar-cell{border-color:var(--divider)!important;background:var(--surface-1)}
.calendar-v112-reference .classic-calendar-scroll{scrollbar-color:var(--border-strong) transparent}
.calendar-v112-reference .classic-calendar-scroll::-webkit-scrollbar-thumb{border-color:var(--surface-1);background:var(--border-strong)}

[data-theme="dark"] .calendar-v112-reference{--cal-grid:var(--border)}
[data-theme="dark"] .calendar-v112-reference .calendar-reference-toolbar{box-shadow:none}
[data-theme="dark"] .calendar-v112-reference .calendar-workspace{box-shadow:none}
[data-theme="dark"] .calendar-v112-reference .classic-calendar-day.today{background:var(--primary-soft);color:var(--primary)}
[data-theme="dark"] .calendar-v112-reference .classic-calendar-scroll::-webkit-scrollbar-thumb{border-color:var(--surface-1);background:var(--border-strong)}


/* RC40 — shell state + admin theme stability */
@media (min-width:1200px) and (hover:hover){
  .sidebar-hover-shell .sidebar:hover{width:260px;transition-delay:0s;box-shadow:18px 0 38px rgba(6,24,19,.18)}.sidebar-hover-shell .sidebar.keyboard-expanded{width:260px;transition-delay:0s;box-shadow:18px 0 38px rgba(6,24,19,.18)}
  .sidebar-hover-shell .sidebar:hover .brand-copy{opacity:1;transform:translateX(0);pointer-events:auto}.sidebar-hover-shell .sidebar.keyboard-expanded .brand-copy{opacity:1;transform:translateX(0);pointer-events:auto}
  .sidebar-hover-shell .sidebar:hover .nav button>.nav-label{opacity:1;transform:translateY(-50%) translateX(0);pointer-events:auto}.sidebar-hover-shell .sidebar.keyboard-expanded .nav button>.nav-label{opacity:1;transform:translateY(-50%) translateX(0);pointer-events:auto}
  .sidebar-hover-shell .sidebar:hover .nav-group-title{opacity:1;transform:translateX(0);pointer-events:auto}.sidebar-hover-shell .sidebar.keyboard-expanded .nav-group-title{opacity:1;transform:translateX(0);pointer-events:auto}
  .sidebar-hover-shell .sidebar:hover .sidebar-hotel-context{opacity:1;transform:translateX(0);pointer-events:auto}.sidebar-hover-shell .sidebar.keyboard-expanded .sidebar-hotel-context{opacity:1;transform:translateX(0);pointer-events:auto}
}
.platform-lobby-shell .content{background:var(--bg-app);color:var(--text-primary)}
.platform-rc26{color:var(--text-primary)}
.platform-rc26 .page-head h1{color:var(--text-primary)}.platform-rc26 .page-head h2{color:var(--text-primary)}.platform-rc26 .section-head h2{color:var(--text-primary)}
.platform-rc26 .page-head p{color:var(--text-muted)}.platform-rc26 .muted{color:var(--text-muted)}
.platform-rc26 .platform-selection-intro{background:var(--surface-1);color:var(--text-primary);border-color:var(--border);box-shadow:var(--shadow-xs)}
.platform-rc26 .platform-selection-intro strong{color:var(--text-primary)}
.platform-rc26 .platform-selection-intro p{color:var(--text-muted)}
.platform-rc26 .platform-selection-icon{background:var(--primary-soft);color:var(--primary)}
.platform-rc26 .platform-hotels-panel{background:var(--surface-1);color:var(--text-primary);border-color:var(--border);box-shadow:var(--shadow-xs)}
.platform-rc26 .metric{background:var(--surface-1);color:var(--text-primary);border-color:var(--border)}
.platform-rc26 .metric label{color:var(--text-muted)}.platform-rc26 .metric small{color:var(--text-muted)}
.platform-rc26 .metric strong{color:var(--text-primary)}
.platform-rc26 .platform-hotel-card{background:var(--surface-1);color:var(--text-primary);border-color:var(--border)}
.platform-rc26 .platform-search input{background:var(--surface-2);color:var(--text-primary);border-color:var(--border)}.platform-rc26 .platform-hotel-filters select{background:var(--surface-2);color:var(--text-primary);border-color:var(--border)}

/* RC41 — Business Date recovery + dark calendar completion */
.business-date-recovery{appearance:none;-webkit-appearance:none;font:inherit;cursor:pointer;text-align:left;display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px}
.business-date-recovery small{font-size:10px;line-height:1.15;color:var(--warning)}
.business-date-catchup{border-color:color-mix(in srgb,var(--warning) 45%,var(--border));background:var(--warning-soft)}
.business-date-catchup .split-note{background:color-mix(in srgb,var(--surface-1) 78%,transparent);border-color:color-mix(in srgb,var(--warning) 35%,var(--border))}

[data-theme="dark"] .calendar-rc17-shell .calendar-workspace{background:var(--surface-1)!important;color:var(--text-primary)}
[data-theme="dark"] .calendar-rc17-shell .calendar-panel{background:var(--surface-1)!important;color:var(--text-primary)}
[data-theme="dark"] .calendar-rc17-shell .classic-calendar-panel{background:var(--surface-1)!important;color:var(--text-primary)}
[data-theme="dark"] .calendar-rc17-shell .classic-calendar-scroll{background:var(--surface-1)!important;color:var(--text-primary)}
[data-theme="dark"] .calendar-rc17-shell .calendar-flat-room-list{background:var(--surface-1)!important;color:var(--text-primary)}
[data-theme="dark"] .calendar-rc17-shell .calendar-row{background:var(--surface-1)!important;color:var(--text-primary)}
[data-theme="dark"] .calendar-rc17-shell .calendar-room{background:var(--surface-1)!important;color:var(--text-primary)}
[data-theme="dark"] .calendar-rc17-shell .calendar-cell{background:var(--surface-1)!important;color:var(--text-primary)}
[data-theme="dark"] .calendar-rc17-shell .classic-calendar-day-axis{background:var(--surface-2)!important;color:var(--text-secondary)!important}
[data-theme="dark"] .calendar-rc17-shell .classic-calendar-room-axis{background:var(--surface-2)!important;color:var(--text-secondary)!important}
[data-theme="dark"] .calendar-rc17-shell .classic-calendar-day{background:var(--surface-2)!important;color:var(--text-secondary)!important}
[data-theme="dark"] .calendar-rc17-shell .classic-calendar-day.weekend:not(.today){background:var(--surface-3)!important;color:var(--text-muted)!important}
[data-theme="dark"] .calendar-rc17-shell .classic-calendar-day.today{background:var(--primary-soft)!important;color:var(--primary)!important;box-shadow:inset 1px 0 0 var(--primary-border),inset -1px 0 0 var(--primary-border)}
[data-theme="dark"] .calendar-rc17-shell .calendar-cell.today-column{background:var(--primary-soft)!important;color:var(--primary)!important;box-shadow:inset 1px 0 0 var(--primary-border),inset -1px 0 0 var(--primary-border)}
[data-theme="dark"] .calendar-rc17-shell .calendar-cell.weekend:not(.today-column){background:var(--surface-2)!important}
[data-theme="dark"] .calendar-rc17-shell .calendar-row:hover{background:var(--surface-hover)!important}
[data-theme="dark"] .calendar-rc17-shell .calendar-room:hover{background:var(--surface-hover)!important}
[data-theme="dark"] .calendar-rc17-shell .calendar-cell.calendar-selectable:hover{background:var(--surface-hover)!important}
[data-theme="dark"] .calendar-rc17-shell .calendar-room-number{color:var(--text-primary)!important}
[data-theme="dark"] .calendar-rc17-shell .calendar-res-copy strong{color:var(--text-primary)!important}
[data-theme="dark"] .calendar-rc17-shell .calendar-room-meta strong{color:var(--text-secondary)!important}
[data-theme="dark"] .calendar-rc17-shell .calendar-res-copy small{color:var(--text-secondary)!important}
[data-theme="dark"] .calendar-rc17-shell .calendar-room-meta small{color:var(--text-muted)!important}
[data-theme="dark"] .calendar-rc17-shell .calendar-res-status{background:color-mix(in srgb,currentColor 10%,var(--surface-1))!important}
[data-theme="dark"] .calendar-rc17-shell .classic-calendar-scroll::-webkit-scrollbar-thumb{border-color:var(--surface-1)!important;background:var(--border-strong)!important}

.calendar-stay-tooltip{position:fixed;z-index:2600;max-width:320px;min-width:180px;padding:9px 11px;border:1px solid var(--border-strong);border-radius:var(--radius-menu);background:var(--surface-1);color:var(--text-primary);box-shadow:var(--shadow-md);pointer-events:none;font-size:12px;line-height:1.25}
.calendar-stay-tooltip[hidden]{display:none!important}
.calendar-stay-tooltip strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700}
.calendar-stay-tooltip .calendar-stay-tooltip-meta{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:11px}

/* RC42 — global component polish */
.panel{padding:20px;border-radius:var(--radius-panel)}
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.toolbar.compact{gap:6px}
.toolbar>*{min-width:0}

.modal{width:min(680px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:hidden;display:flex;flex-direction:column}
.modal.wide{width:min(1040px,calc(100vw - 32px))}
.modal-head{flex:0 0 auto;padding:20px 24px 14px}.modal-header{flex:0 0 auto;padding:20px 24px 14px}
.modal-head h2{min-width:0;overflow-wrap:anywhere}.modal-header h2{min-width:0;overflow-wrap:anywhere}
.modal-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px 24px}
.modal-actions{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:14px 24px 20px}.modal-footer{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:14px 24px 20px}
.modal-actions .modal-cancel{margin-right:auto}

.top-user-popover{min-width:220px;max-width:min(320px,calc(100vw - 24px));border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-1);box-shadow:var(--shadow-sm);padding:6px}.context-menu{min-width:220px;max-width:min(320px,calc(100vw - 24px));border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-1);box-shadow:var(--shadow-sm);padding:6px}.dropdown-menu{min-width:220px;max-width:min(320px,calc(100vw - 24px));border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-1);box-shadow:var(--shadow-sm);padding:6px}
.top-user-popover button{width:100%;min-height:38px;border-radius:var(--radius-sm);padding:8px 10px;gap:10px}.context-menu button{width:100%;min-height:38px;border-radius:var(--radius-sm);padding:8px 10px;gap:10px}.dropdown-menu button{width:100%;min-height:38px;border-radius:var(--radius-sm);padding:8px 10px;gap:10px}

@media (max-width:639px){.modal-backdrop{align-items:flex-end;padding:0}.modal{width:100%;max-width:none;max-height:calc(100dvh - 8px);border-radius:var(--radius-modal) var(--radius-modal) 0 0}.modal.wide{width:100%;max-width:none;max-height:calc(100dvh - 8px);border-radius:var(--radius-modal) var(--radius-modal) 0 0}.modal-head{padding:18px 18px 12px}.modal-header{padding:18px 18px 12px}.modal-body{padding:18px}.modal-actions{align-items:stretch;flex-direction:column;padding:12px 18px 18px}.modal-footer{align-items:stretch;flex-direction:column;padding:12px 18px 18px}.modal-actions .modal-cancel{margin-right:0;order:2}.modal-actions button[type="submit"]{width:100%;order:1}}

/* RC43 — workspace visual alignment */
.calendar-rc43{min-width:0;color:var(--text-primary)}.reservations-rc43{min-width:0;color:var(--text-primary)}.rooms-rc43{min-width:0;color:var(--text-primary)}.guests-rc43{min-width:0;color:var(--text-primary)}.invoices-rc43{min-width:0;color:var(--text-primary)}.platform-rc43{min-width:0;color:var(--text-primary)}.admin-rc26{min-width:0;color:var(--text-primary)}
.reservations-rc43{display:grid;gap:20px}.rooms-rc43{display:grid;gap:20px}.guests-rc43{display:grid;gap:20px}.invoices-rc43{display:grid;gap:20px}.platform-rc43{display:grid;gap:20px}
.reservations-rc43>.page-head{margin:0;padding:2px 0 4px;align-items:flex-start}.rooms-rc43>.page-head{margin:0;padding:2px 0 4px;align-items:flex-start}.guests-rc43>.page-head{margin:0;padding:2px 0 4px;align-items:flex-start}.invoices-rc43>.page-head{margin:0;padding:2px 0 4px;align-items:flex-start}.platform-rc43>.page-head{margin:0;padding:2px 0 4px;align-items:flex-start}
.reservations-rc43>.page-head p{max-width:780px;color:var(--text-muted)}.rooms-rc43>.page-head p{max-width:780px;color:var(--text-muted)}.guests-rc43>.page-head p{max-width:780px;color:var(--text-muted)}.invoices-rc43>.page-head p{max-width:780px;color:var(--text-muted)}.platform-rc43>.page-head p{max-width:780px;color:var(--text-muted)}
.reservations-rc43>.panel{border-color:var(--border);background:var(--surface-1);box-shadow:var(--shadow-xs)}.rooms-rc43>.panel{border-color:var(--border);background:var(--surface-1);box-shadow:var(--shadow-xs)}.guests-rc43>.panel{border-color:var(--border);background:var(--surface-1);box-shadow:var(--shadow-xs)}.invoices-rc43>.panel{border-color:var(--border);background:var(--surface-1);box-shadow:var(--shadow-xs)}.platform-rc43>.panel{border-color:var(--border);background:var(--surface-1);box-shadow:var(--shadow-xs)}.admin-rc26>.panel{border-color:var(--border);background:var(--surface-1);box-shadow:var(--shadow-xs)}

.reservations-rc43 .reservation-registry-filters{padding:12px;border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-2);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--surface-1) 70%,transparent)}.guests-rc43 .guest-workspace-toolbar{padding:12px;border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-2);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--surface-1) 70%,transparent)}
.reservations-rc43 .reservation-registry-filters input{background:var(--surface-1)}.reservations-rc43 .reservation-registry-filters select{background:var(--surface-1)}.guests-rc43 .guest-workspace-toolbar input{background:var(--surface-1)}
.reservations-rc43 .reservation-view-more{border-color:var(--border);border-radius:var(--radius-menu);background:var(--surface-2)}
.reservations-rc43 .reservation-view-more>summary{color:var(--text-secondary)}
.reservations-rc43 .reservation-list-row td{padding-block:12px}
.reservations-rc43 .reservation-list-row:hover{background:var(--surface-hover)}

.rooms-rc43 .room-truth-summary .metric{min-height:98px;border-color:var(--border);background:var(--surface-1)}
.rooms-rc43 .room-card{padding:16px;border-radius:var(--radius-card);border-color:var(--border);background:var(--surface-1);box-shadow:var(--shadow-xs);transition:transform var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}
.rooms-rc43 .room-card:hover{transform:translateY(-1px);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.rooms-rc43 .room-card>.toolbar:first-child{padding-bottom:8px;border-bottom:1px solid var(--divider)}
.rooms-rc43 .room-current-guest{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-2)}
.rooms-rc43 .room-card>.toolbar:last-child{margin-top:auto!important;padding-top:4px}

.guests-rc43 .guest-registry-panel{display:grid;gap:14px}
.guests-rc43 .guest-workspace-toolbar{margin:0}
.guests-rc43 .guest-workspace-toolbar #guest-q{flex:1 1 360px;min-width:220px}
.guests-rc43 #guest-list .table-wrap{border-radius:var(--radius-card);box-shadow:none}
.guests-rc43 #guest-list tbody tr:hover{background:var(--surface-hover)}
.guests-rc43 #guest-list td:last-child .toolbar{justify-content:flex-end}

.invoices-rc43 .yotta-kpis{gap:12px;margin:0}
.invoices-rc43 .yotta-kpis .metric{border-color:var(--border);background:var(--surface-1)}
.invoices-rc43 .yotta-billing-tabs{display:flex;gap:4px;overflow-x:auto;overscroll-behavior-inline:contain;padding:4px;border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-2);scrollbar-width:thin}
.invoices-rc43 .yotta-billing-tabs button{flex:0 0 auto;min-height:36px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);padding:0 12px;font:inherit;font-size:13px;font-weight:650;white-space:nowrap;cursor:pointer}
.invoices-rc43 .yotta-billing-tabs button:hover{background:var(--surface-hover);color:var(--text-primary)}
.invoices-rc43 .yotta-billing-tabs button.active{background:var(--surface-1);color:var(--primary);box-shadow:var(--shadow-xs)}
.invoices-rc43 #yotta-tab-content{min-width:0}
.invoices-rc43 .yotta-doc-menu-pop{border-color:var(--border);border-radius:var(--radius-menu);background:var(--surface-1);box-shadow:var(--shadow-sm)}

.platform-rc43 .platform-current-hotel{border-radius:var(--radius-panel);box-shadow:var(--shadow-xs)}.platform-rc43 .platform-selection-intro{border-radius:var(--radius-panel);box-shadow:var(--shadow-xs)}
.platform-rc43 .platform-hotels-panel{border-radius:var(--radius-panel)}
.platform-rc43 .platform-hotel-card{border-radius:var(--radius-panel);padding:18px;border-color:var(--border);background:var(--surface-1);box-shadow:var(--shadow-xs)}
.platform-rc43 .platform-hotel-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.platform-rc43 .platform-hotel-filters{padding:4px;border-radius:var(--radius-menu);background:var(--surface-2)}
.platform-rc43 .platform-search input{background:var(--surface-1)}.platform-rc43 .platform-hotel-filters select{background:var(--surface-1)}
.admin-rc26 .section-head{align-items:flex-start}
.admin-rc26 .table-wrap{border-radius:var(--radius-card)}

.calendar-rc43 .calendar-reference-toolbar{border-radius:var(--radius-panel);box-shadow:var(--shadow-xs)}
.calendar-rc43 .calendar-reference-nav{border-radius:var(--radius-control)}.calendar-rc43 .calendar-reference-range{border-radius:var(--radius-control)}.calendar-rc43 .calendar-toolbar-zoom{border-radius:var(--radius-control)}.calendar-rc43 .calendar-reference-settings-btn{border-radius:var(--radius-control)}

@media (max-width:639px){.reservations-rc43 .reservation-registry-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:10px}.guests-rc43 .guest-workspace-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:10px}.guests-rc43 .guest-workspace-toolbar #guest-q{min-width:0;width:100%}.guests-rc43 .guest-workspace-toolbar .btn{width:100%}.rooms-rc43 .room-card{padding:14px}.invoices-rc43 .yotta-billing-tabs{margin-inline:-2px}.platform-rc43 .platform-hotel-card{padding:15px}}


/* RC44 — live dark calendar + Night Audit recovery */
.calendar-rc43 .calendar-workspace{min-width:0;max-width:100%;overflow:hidden}
.calendar-rc43 .calendar-panel{min-width:0;max-width:100%}.calendar-rc43 .classic-calendar-panel{min-width:0;max-width:100%}
[data-theme="dark"] .calendar-rc43{--cal-confirmed-bg:#17283B;--cal-confirmed-border:#2D587A;--cal-confirmed:#78B8EE;--cal-checked-in-bg:#173027;--cal-checked-in-border:#2F654D;--cal-checked-in:#69CB97;--cal-tentative-bg:#332A18;--cal-tentative-border:#6A5528;--cal-tentative:#E7BE62;--cal-checked-out-bg:#202823;--cal-checked-out-border:#3D4A42;--cal-checked-out:#8C9B93;--cal-planned-bg:#29243B;--cal-planned:#B7A9E8}
[data-theme="dark"] .calendar-rc43 .calendar-res.confirmed{color:#A9D2F4!important}
[data-theme="dark"] .calendar-rc43 .calendar-res.checked_in{color:#9ADDB9!important}
[data-theme="dark"] .calendar-rc43 .calendar-res.tentative{color:#EBCB79!important}
[data-theme="dark"] .calendar-rc43 .calendar-res.calendar-scheduled-segment{color:#C7BAF0!important}
[data-theme="dark"] .calendar-rc43 .calendar-res.checked_out{color:#AFBBB4!important}[data-theme="dark"] .calendar-rc43 .calendar-res.calendar-history-segment{color:#AFBBB4!important}
[data-theme="dark"] .calendar-rc43 .calendar-res-copy strong{color:currentColor!important}
[data-theme="dark"] .calendar-rc43 .calendar-res-copy small{color:currentColor!important;opacity:.74}
[data-theme="dark"] .calendar-rc43 .calendar-res-status{color:currentColor!important;border-color:color-mix(in srgb,currentColor 48%,var(--border))!important;background:color-mix(in srgb,currentColor 9%,var(--surface-1))!important}
.night-blocker-summary{display:grid;gap:8px;margin-top:12px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--warning) 42%,var(--border));border-radius:var(--radius-card);background:color-mix(in srgb,var(--warning-soft) 72%,var(--surface-1));color:var(--text-primary)}
.night-blocker-summary strong{font-size:13px}
.night-blocker-summary small{color:var(--text-secondary);line-height:1.45}
.night-blocker-summary .toolbar{margin-top:2px}

/* RC46 — form contrast audit */
label{color:var(--form-label)}
input{background:var(--field-surface);color:var(--field-text)}select{background:var(--field-surface);color:var(--field-text)}textarea{background:var(--field-surface);color:var(--field-text)}
input::placeholder{color:var(--form-placeholder);opacity:1}textarea::placeholder{color:var(--form-placeholder);opacity:1}
input:disabled{background:var(--field-surface-muted);color:var(--field-disabled-text);opacity:1}select:disabled{background:var(--field-surface-muted);color:var(--field-disabled-text);opacity:1}textarea:disabled{background:var(--field-surface-muted);color:var(--field-disabled-text);opacity:1}
input[readonly]{background:var(--field-surface-muted);color:var(--text-secondary)}textarea[readonly]{background:var(--field-surface-muted);color:var(--text-secondary)}
select option{background:var(--surface-1);color:var(--text-primary)}

/* Room equipment / housekeeping: legacy --surface fallbacks must never become light islands in dark mode. */
.room-equipment-editor{background:var(--surface-2);border-color:var(--border);color:var(--text-primary)}
.room-equipment-row{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}.room-equipment-catalog-item{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}.hk-equipment-row{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}
.room-equipment-editor label{color:var(--form-label)}.hk-equipment-row label{color:var(--form-label)}.room-equipment-catalog label{color:var(--form-label)}
.room-equipment-new-form{background:var(--surface-2);border-color:var(--border-strong)}.room-equipment-copy-form{background:var(--surface-2);border-color:var(--border-strong)}
.room-equipment-row-title strong{color:var(--text-primary)}.hk-equipment-row-head strong{color:var(--text-primary)}.room-equipment-catalog-item strong{color:var(--text-primary)}
.room-equipment-catalog-item small{color:var(--form-helper)}.hk-equipment-row-head small{color:var(--form-helper)}.hk-equipment-state-text{color:var(--form-helper)}

/* In-house service/charge sheet. */
.in-house-charge-context>div{background:var(--surface-2);border-color:var(--border)}.in-house-charge-total{background:var(--surface-2);border-color:var(--border)}
.in-house-charge-categories span{background:var(--surface-2);border-color:var(--border);color:var(--text-primary)}
.in-house-charge-categories label:hover span{background:var(--surface-hover)}
.in-house-charge-categories input:checked+span{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.in-house-charge-context small{color:var(--form-helper)}.in-house-charge-context span{color:var(--form-helper)}.in-house-charge-total small{color:var(--form-helper)}.in-house-charge-total span{color:var(--form-helper)}

/* Billing/invoice editors: preserve document/PDF white paper, but make editable UI theme-aware. */
.invoice-source-composer{background:var(--surface-2);border-color:var(--border)}.invoice-manual-head{background:var(--surface-2);border-color:var(--border)}.folio-invoice-progress>div{background:var(--surface-2);border-color:var(--border)}.yotta-lifecycle-card{background:var(--surface-2);border-color:var(--border)}
.invoice-compose-lines{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}.invoice-manual-line{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}.invoice-preview-grid>span{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}.yotta-more-filters{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}.yotta-doc-menu-pop{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}.yotta-setup-steps button{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}
.invoice-compose-line{border-color:var(--divider);color:var(--text-primary)}
.invoice-compose-line:hover{background:var(--surface-hover)}.yotta-setup-steps button:hover{background:var(--surface-hover)}
.invoice-compose-line.mandatory{background:var(--primary-soft-2)}
.invoice-live-preview{background:var(--surface-2);border-color:var(--primary-border)}.yotta-pdf-preview{background:var(--surface-2);border-color:var(--primary-border)}
.invoice-compose-head span{color:var(--form-helper)}.invoice-compose-main small{color:var(--form-helper)}.invoice-compose-loading{color:var(--form-helper)}.invoice-compose-blocked{color:var(--form-helper)}.invoice-preview-grid small{color:var(--form-helper)}
.yotta-doc-menu-pop button{color:var(--text-primary)}
.yotta-doc-menu-pop button:hover{background:var(--surface-hover);color:var(--primary)}
.yotta-warning{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 52%,var(--border));color:var(--text-primary)}

/* Reservation creation/confirmation: high-specificity legacy light rules need explicit theme-safe surfaces. */
.modal.wide.reservation-v112-modal{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}.reservation-v112-modal .modal-head{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}.reservation-v112-modal .modal-body{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}.reservation-v112-modal .modal-actions{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}
.reservation-v112-modal .modal-head h2{color:var(--text-primary)}.reservation-v112-main .reservation-v112-section-title h3{color:var(--text-primary)}.reservation-v112-aside .reservation-v112-section-title h3{color:var(--text-primary)}
.reservation-v112-intro{color:var(--text-secondary)}.reservation-v112-intro strong{color:var(--text-secondary)}.reservation-v112-commercial .reservation-v112-section-title p{color:var(--text-secondary)}
.reservation-v112-section.reservation-v112-commercial{background:var(--surface-2);border-color:var(--border)}.reservation-v112-price{background:var(--surface-2);border-color:var(--border)}
.reservation-v112-commercial-grid>label{color:var(--primary)}
.reservation-v112-commercial-grid>label>input{background:var(--field-surface);border-color:var(--border);color:var(--field-text)}.reservation-v112-commercial-grid>label>select{background:var(--field-surface);border-color:var(--border);color:var(--field-text)}.reservation-v112-commercial-grid>label>textarea{background:var(--field-surface);border-color:var(--border);color:var(--field-text)}.reservation-v112-commercial-advanced>label>input{background:var(--field-surface);border-color:var(--border);color:var(--field-text)}.reservation-v112-commercial-advanced>label>select{background:var(--field-surface);border-color:var(--border);color:var(--field-text)}.reservation-v112-commercial-advanced>label>textarea{background:var(--field-surface);border-color:var(--border);color:var(--field-text)}
.reservation-v112-commercial-grid>label>input::placeholder{color:var(--form-placeholder)}.reservation-v112-commercial-grid>label>textarea::placeholder{color:var(--form-placeholder)}
.reservation-flow-confirmation-grid>div{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}
.reservation-flow-confirmation{background:var(--surface-2);border-color:var(--border);color:var(--text-secondary)}.reservation-flow-advanced{background:var(--surface-2);border-color:var(--border);color:var(--text-secondary)}.reservation-flow-step{background:var(--surface-2);border-color:var(--border);color:var(--text-secondary)}
.reservation-flow-step.active{background:var(--primary-soft);border-color:var(--primary-border);color:var(--primary)}.reservation-flow-step[aria-current="step"]{background:var(--primary-soft);border-color:var(--primary-border);color:var(--primary)}

/* Dark theme refinements for components whose old rules intentionally contained fixed light ink/surfaces. */
[data-theme="dark"] .reservation-v112-modal .modal-close-x{color:var(--text-muted)}
[data-theme="dark"] .reservation-v112-commercial .reservation-v112-section-title h3{color:var(--text-primary)}
[data-theme="dark"] .reservation-v112-commercial-more>summary{color:var(--text-secondary)}

/* RC46 — secondary operational form surfaces found by the cross-module audit. */
.reservation-inhouse-kpis>div{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}.reservation-inhouse-folio-target{background:var(--surface-1);border-color:var(--border);color:var(--text-primary)}
.reservation-inhouse-kpis .due{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 48%,var(--border))}
.room-current-guest{background:var(--surface-2);border-color:var(--border);color:var(--text-primary)}.frontdesk-guest-account{background:var(--surface-2);border-color:var(--border);color:var(--text-primary)}
.invoice-source-mini{background:var(--surface-2);border-color:var(--border);color:var(--text-secondary)}
.invoice-compose-helper{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 40%,var(--border));color:var(--text-primary)}
.reservation-room-availability-results.auto-suggestions{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 42%,var(--border))}
.reservation-room-availability-results.auto-suggestions .reservation-room-availability-head{background:color-mix(in srgb,var(--warning-soft) 72%,var(--surface-1));color:var(--text-primary)}
.reservation-room-choice.best-alternative{background:var(--primary-soft-2)}
.reservation-employer-note{background:var(--info-soft);border-color:var(--border);color:var(--text-secondary)}

/* RC47 — explicit invoice issue date / controlled backdating */
.invoice-date-backdated-warning{display:grid;gap:8px;margin-top:12px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--warning) 52%,var(--border));border-radius:var(--radius-card);background:var(--warning-soft);color:var(--text-primary)}
.invoice-date-backdated-warning[hidden]{display:none!important}
.invoice-date-backdated-warning>strong{font-size:13px}
.invoice-date-backdated-warning>span{color:var(--text-secondary);font-size:12px;line-height:1.45}
.invoice-date-backdated-warning label{margin:0}
.invoice-issue-date-form .split-note p{margin:4px 0 0;color:var(--text-secondary)}

/* RC50 — Compliance Center component polish */
.compliance-workspace-rc50 .compliance-tabs{display:flex;gap:4px;overflow-x:auto;overscroll-behavior-inline:contain;padding:4px;border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-2);scrollbar-width:thin}
.compliance-workspace-rc50 .compliance-tabs button{flex:0 0 auto;min-height:36px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);padding:0 12px;font:inherit;font-size:13px;font-weight:650;white-space:nowrap;cursor:pointer}
.compliance-workspace-rc50 .compliance-tabs button:hover{background:var(--surface-hover);color:var(--text-primary)}
.compliance-workspace-rc50 .compliance-tabs button.active{background:var(--surface-1);color:var(--primary);box-shadow:var(--shadow-xs)}
.compliance-workspace-rc50 .compliance-action{padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1)}
.compliance-workspace-rc50 .compliance-reconciliation>div{padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-2)}
.compliance-workspace-rc50 .compliance-timeline article{padding:14px 0;border-bottom:1px solid var(--border)}
.compliance-workspace-rc50 .compliance-timeline article:last-child{border-bottom:0}
.compliance-workspace-rc50 .table-wrap{max-width:100%;overflow:auto}
.compliance-workspace-rc50 .table-wrap table{min-width:760px}
.compliance-workspace-rc50 input[type="month"]{min-width:150px}
@media(max-width:639px){.compliance-workspace-rc50 .compliance-tabs{margin-inline:-2px}.compliance-workspace-rc50 .section-head>.toolbar{width:100%;display:grid;grid-template-columns:minmax(0,1fr)}.compliance-workspace-rc50 .section-head>.toolbar label{width:100%;min-width:0}.compliance-workspace-rc50 .section-head>.toolbar input{width:100%;min-width:0}.compliance-workspace-rc50 .section-head>.toolbar .btn{width:100%;min-width:0}}

/* HF3 — Unified dropdown system */
select:not([multiple]):not([size]){
  appearance:none;
  -webkit-appearance:none;
  min-height:42px;
  padding-inline-start:12px;
  padding-inline-end:36px;
  border:1px solid var(--border);
  border-radius:var(--radius-control);
  background-color:var(--field-surface);
  background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);
  background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
  color:var(--field-text);
  cursor:pointer;
  line-height:1.3;
  text-overflow:ellipsis;
  transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,background-color var(--motion-fast) ease,color var(--motion-fast) ease;
}
select:not([multiple]):not([size]):hover{
  border-color:var(--border-strong);
  background-color:var(--surface-hover);
}
select:not([multiple]):not([size]):focus{
  outline:none;
  border-color:var(--primary);
  background-color:var(--surface-1);
  box-shadow:var(--focus-ring);
}
select:not([multiple]):not([size]):focus-visible{
  outline:none;
  border-color:var(--primary);
  background-color:var(--surface-1);
  box-shadow:var(--focus-ring);
}
select:not([multiple]):not([size]):disabled{
  border-color:var(--border);
  background-color:var(--field-surface-muted);
  color:var(--field-disabled-text);
  cursor:not-allowed;
  opacity:1;
}
select:not([multiple]):not([size])[aria-invalid="true"]{
  border-color:var(--danger);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 18%,transparent);
}
select:not([multiple]):not([size]).is-invalid{
  border-color:var(--danger);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 18%,transparent);
}
select:not([multiple]):not([size]) option{
  background:var(--surface-1);
  color:var(--text-primary);
}
select:not([multiple]):not([size]) optgroup{
  background:var(--surface-1);
  color:var(--text-primary);
}
select:not([multiple]):not([size]) option:checked{
  background:var(--primary-soft);
  color:var(--primary);
}

/* Compact dropdowns used in toolbars, filters and top navigation. */
.toolbar select:not([multiple]):not([size]){
  min-height:38px;
  height:38px;
  padding-block:6px;
  font-size:12px;
}
.report-controls select:not([multiple]):not([size]){
  min-height:38px;
  height:38px;
  padding-block:6px;
  font-size:12px;
}
.calendar-control-deck select:not([multiple]):not([size]){
  min-height:38px;
  height:38px;
  padding-block:6px;
  font-size:12px;
}
.toolbar.compact select:not([multiple]):not([size]){
  min-height:34px;
  height:34px;
  padding-block:4px;
  font-size:11px;
}
.hotel-switch select:not([multiple]):not([size]){
  min-height:38px;
  height:38px;
  border-color:var(--border);
  border-radius:var(--radius-control);
  background-color:var(--surface-2);
  color:var(--text-primary);
  padding-inline-start:10px;
  padding-inline-end:34px;
  font-weight:650;
}
.hotel-switch select:not([multiple]):not([size]):hover{background-color:var(--surface-hover);border-color:var(--border-strong)}
.hotel-switch select:not([multiple]):not([size]):focus{background-color:var(--surface-1);border-color:var(--primary)}

/* Canonical custom-menu surface shared by every dropdown/popover family. */
:where(.top-user-popover,.context-menu,.dropdown-menu,.ui-popover,.yotta-doc-menu-pop,.classic-calendar-settings-pop,.reservation-more-actions-menu,.frontdesk-more-actions-menu,.calendar-reference-shortcuts,.calendar-filter-popover,.calendar-legend-v2,.invoice-line-more>div){
  border:1px solid var(--border);
  border-radius:var(--radius-menu);
  background:var(--surface-1);
  color:var(--text-primary);
  box-shadow:var(--shadow-md);
}
:where(.top-user-popover,.context-menu,.dropdown-menu,.yotta-doc-menu-pop) button{
  width:100%;
  min-height:40px;
  border:0;
  border-radius:var(--radius-sm);
  background:transparent;
  color:var(--text-primary);
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  text-align:left;
  cursor:pointer;
  transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease;
}
.top-user-popover button:is(:hover,:focus-visible){
  outline:none;
  background:var(--surface-hover);
  color:var(--primary);
}
.context-menu button:is(:hover,:focus-visible){
  outline:none;
  background:var(--surface-hover);
  color:var(--primary);
}
.dropdown-menu button:is(:hover,:focus-visible){
  outline:none;
  background:var(--surface-hover);
  color:var(--primary);
}
.yotta-doc-menu-pop button:is(:hover,:focus-visible){
  outline:none;
  background:var(--surface-hover);
  color:var(--primary);
}
:where(.top-user-popover,.context-menu,.dropdown-menu,.yotta-doc-menu-pop) button:is(.active,[aria-current="true"],[aria-selected="true"]){
  background:var(--primary-soft);
  color:var(--primary);
}
.classic-calendar-settings-pop label{color:var(--form-label)}
.calendar-reference-shortcuts a{border-radius:var(--radius-sm)}
.calendar-reference-shortcuts button{border-radius:var(--radius-sm)}

@media (max-width:700px){
  select:not([multiple]):not([size]){min-height:44px;height:auto;font-size:16px}
  .toolbar select:not([multiple]):not([size]){min-height:44px;height:44px;font-size:16px}
  .toolbar.compact select:not([multiple]):not([size]){min-height:44px;height:44px;font-size:16px}
  .report-controls select:not([multiple]):not([size]){min-height:44px;height:44px;font-size:16px}
  :where(.top-user-popover,.context-menu,.dropdown-menu,.yotta-doc-menu-pop) button{min-height:44px}
}

/* HF4 — Browser-independent custom dropdowns across the entire application */
.yotta-select{position:relative;display:block;width:100%;min-width:0;max-width:100%;color:var(--text-primary)}
.yotta-native-select{position:absolute!important;width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;margin:0!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none!important;clip-path:inset(50%)!important;overflow:hidden!important}
.yotta-select-trigger{width:100%;min-width:0;min-height:42px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--field-surface);color:var(--field-text);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 11px 8px 12px;font:inherit;font-size:14px;line-height:1.3;text-align:left;cursor:pointer;transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,background-color var(--motion-fast) ease,color var(--motion-fast) ease}
.yotta-select-trigger:hover{border-color:var(--border-strong);background:var(--surface-hover)}
.yotta-select-trigger:focus-visible{outline:none;border-color:var(--primary);background:var(--surface-1);box-shadow:var(--focus-ring)}.yotta-select.is-open .yotta-select-trigger{outline:none;border-color:var(--primary);background:var(--surface-1);box-shadow:var(--focus-ring)}
.yotta-select-value{display:block;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.yotta-select-caret{width:8px;height:8px;flex:0 0 8px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:translateY(-2px) rotate(45deg);transition:transform var(--motion-fast) ease,border-color var(--motion-fast) ease}
.yotta-select.is-open .yotta-select-caret{transform:translateY(2px) rotate(225deg);border-color:var(--primary)}
.yotta-select.is-disabled .yotta-select-trigger{border-color:var(--border);background:var(--field-surface-muted);color:var(--field-disabled-text);cursor:not-allowed}.yotta-select-trigger:disabled{border-color:var(--border);background:var(--field-surface-muted);color:var(--field-disabled-text);cursor:not-allowed}
.yotta-select.is-invalid .yotta-select-trigger{border-color:var(--danger);box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 18%,transparent)}
.yotta-select-menu{position:fixed;z-index:10000;display:grid;gap:2px;overflow:auto;overscroll-behavior:contain;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--surface-1);color:var(--text-primary);box-shadow:0 18px 50px rgb(10 28 21 / .20);scrollbar-width:thin;transform-origin:top center;animation:yotta-select-open .12s ease-out}
@keyframes yotta-select-open{from{opacity:0;transform:translateY(-3px) scale(.99)}to{opacity:1;transform:none}}
.yotta-select-group{padding:7px 10px 4px;color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.yotta-select-option{width:100%;min-height:40px;border:0;border-radius:8px;background:transparent;color:var(--text-primary);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;font:inherit;font-size:13px;text-align:left;cursor:pointer}
.yotta-select-option:hover{outline:none;background:var(--surface-hover);color:var(--primary)}.yotta-select-option:focus-visible{outline:none;background:var(--surface-hover);color:var(--primary)}
.yotta-select-option[aria-selected="true"]{background:var(--primary-soft);color:var(--primary);font-weight:700}
.yotta-select-option:disabled{opacity:.45;cursor:not-allowed;background:transparent;color:var(--text-muted)}
.yotta-select-option-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.yotta-select-option-check{flex:0 0 auto;color:var(--primary);font-size:13px;font-weight:900;opacity:0}
.yotta-select-option[aria-selected="true"] .yotta-select-option-check{opacity:1}
[data-theme="dark"] .yotta-select-menu{background:var(--surface-1);border-color:var(--border-strong);box-shadow:0 20px 55px rgb(0 0 0 / .48)}
[data-theme="dark"] .yotta-select-option:hover{background:var(--surface-hover)}[data-theme="dark"] .yotta-select-option:focus-visible{background:var(--surface-hover)}

/* Preserve established compact/select sizing after replacing native controls. */
.toolbar .yotta-select{width:auto;min-width:145px;max-width:100%}
.toolbar.compact .yotta-select{min-width:120px}
.toolbar .yotta-select-trigger{min-height:38px;height:38px;padding-block:6px;font-size:12px}.report-controls .yotta-select-trigger{min-height:38px;height:38px;padding-block:6px;font-size:12px}.calendar-control-deck .yotta-select-trigger{min-height:38px;height:38px;padding-block:6px;font-size:12px}
.toolbar.compact .yotta-select-trigger{min-height:34px;height:34px;padding-block:4px;font-size:11px}
.hotel-switch .yotta-select{width:auto;min-width:180px;max-width:260px}
.hotel-switch .yotta-select-trigger{min-height:38px;height:38px;background:var(--surface-2);font-weight:650}
.reservations-rc26 .toolbar .yotta-select{flex:1 1 150px}
.calendar-control-deck .yotta-select{width:auto}
.calendar-view-group .yotta-select{width:90px;min-width:90px}
.invoice-manual-line .yotta-select-trigger{min-height:35px;height:35px;padding:6px 8px;font-size:11px}
.yotta-filters .yotta-select-trigger{min-height:52px}

/* Calendar filters: keep the trigger as a real button, icon + label on one row. */
.calendar-rc17-shell .classic-calendar-settings > summary.calendar-reference-settings-btn{list-style:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;width:auto!important;min-width:92px!important;max-width:none!important;height:40px!important;min-height:40px!important;padding:0 12px!important;white-space:nowrap!important;line-height:1!important;cursor:pointer!important;flex:0 0 auto!important}
.calendar-rc17-shell .classic-calendar-settings > summary.calendar-reference-settings-btn::-webkit-details-marker{display:none!important}
.calendar-rc17-shell .classic-calendar-settings > summary.calendar-reference-settings-btn::marker{content:""}
.calendar-rc17-shell .classic-calendar-settings > summary.calendar-reference-settings-btn svg{width:18px!important;height:18px!important;flex:0 0 18px!important}
.calendar-rc17-shell .classic-calendar-settings > summary.calendar-reference-settings-btn span{display:inline!important;line-height:1!important}
.calendar-rc17-shell .calendar-reference-settings{flex:0 0 auto!important;width:auto!important;min-width:92px!important}
.calendar-rc17-shell .calendar-reference-settings[open] > summary.calendar-reference-settings-btn{border-color:var(--primary)!important;background:var(--primary-soft)!important;color:var(--primary)!important}
.calendar-rc17-shell .classic-calendar-settings-pop .yotta-select{width:100%;min-width:0}
.calendar-rc17-shell .classic-calendar-settings-pop .yotta-select-trigger{min-height:42px;height:42px;font-size:12px}

@media(max-width:700px){
  .yotta-select-trigger{min-height:44px;font-size:16px}
  .yotta-select-option{min-height:44px;font-size:15px}
  .toolbar .yotta-select{width:100%;min-width:0}.toolbar.compact .yotta-select{width:100%;min-width:0}.report-controls .yotta-select{width:100%;min-width:0}
  .toolbar .yotta-select-trigger{min-height:44px;height:44px;font-size:16px}.toolbar.compact .yotta-select-trigger{min-height:44px;height:44px;font-size:16px}.report-controls .yotta-select-trigger{min-height:44px;height:44px;font-size:16px}
  .hotel-switch .yotta-select{min-width:130px;max-width:46vw}
  .calendar-rc17-shell .classic-calendar-settings > summary.calendar-reference-settings-btn{min-width:44px!important;padding:0 10px!important}
  .calendar-rc17-shell .classic-calendar-settings > summary.calendar-reference-settings-btn span{display:none!important}
  .calendar-rc17-shell .calendar-reference-settings{min-width:44px!important}
}

/* HF5 — Apple design foundation: scalable type, stronger contrast and accessibility preferences */
html{font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-optical-sizing:auto;font-kerning:normal;text-rendering:optimizeLegibility}
body .eyebrow{font-size:var(--type-caption);line-height:var(--leading-ui)}
body .nav-group-title{font-size:var(--type-caption);line-height:var(--leading-ui)}
body .report-control>span{font-size:var(--type-caption);line-height:var(--leading-ui)}
body .report-kpi>span:first-child{font-size:var(--type-caption);line-height:var(--leading-ui)}
body .health-pill{font-size:var(--type-caption);line-height:var(--leading-ui)}
body .health-events small{font-size:var(--type-caption);line-height:var(--leading-ui)}
body .platform-hotel-context small{font-size:var(--type-caption);line-height:var(--leading-ui)}
body .sidebar-hotel-context small{font-size:var(--type-caption);line-height:var(--leading-ui)}
body .guest-suggestion small{font-size:var(--type-caption);line-height:var(--leading-ui)}
body .duplicate-guest-choice small{font-size:var(--type-caption);line-height:var(--leading-ui)}
body .muted{line-height:var(--leading-copy)}
body .form-helper{line-height:var(--leading-copy)}
body .split-note{line-height:var(--leading-copy)}
body .warning-panel{line-height:var(--leading-copy)}
body .info-panel{line-height:var(--leading-copy)}
.modal :is(small,.muted,.form-helper){font-size:var(--type-caption);line-height:var(--leading-copy)}
.ui-drawer :is(small,.muted){font-size:var(--type-caption);line-height:var(--leading-copy)}
.reservation-detail-drawer :is(small,.muted){font-size:var(--type-caption);line-height:var(--leading-copy)}

/* Active calendar/front-desk/reservation surfaces must not depend on 5–10px legacy type. */
.calendar-rc17-shell :is(.calendar-room-status,.calendar-filter-count,.calendar-res-icon,.calendar-context-stat,.calendar-filter-chip,.calendar-toolbar-zoom output,.classic-calendar-settings-pop label,.classic-calendar-zoom,.classic-calendar-legend,.classic-calendar-room-axis,.classic-calendar-day small,.classic-calendar-group-label span,.classic-room-state,.calendar-reference-subtitle,.calendar-inbox-empty strong,.calendar-inbox-new strong){font-size:var(--type-caption);line-height:var(--leading-ui)}
.frontdesk-rc35 :is(.frontdesk-filter>span,.frontdesk-queue-zone small,.frontdesk-detail-grid small,.frontdesk-guest-account-head small,.frontdesk-guest-account-head span){font-size:var(--type-caption);line-height:var(--leading-ui)}
.reservations-rc43 :is(.reservation-section-head>span,.reservation-package small,.quote-total small,.night-rate-list span,.reservation-room-choice-title .badge,.reservation-inhouse-kpis small,.reservation-inhouse-row small){font-size:var(--type-caption);line-height:var(--leading-ui)}
.invoice-rc43 :is(.invoice-preview-grid small,.invoice-auto-materialize-note span,.invoice-simple-card label,.invoice-side-head span,.invoice-summary-recipient span,.invoice-side-help,.invoice-flow-steps em){font-size:var(--type-caption);line-height:var(--leading-ui)}
.calendar-rc17-shell :is(.calendar-ops-drawer-head p,.calendar-unassigned-card small){font-size:var(--type-small);line-height:var(--leading-copy)}
.frontdesk-rc35 :is(.frontdesk-selected-head p,.frontdesk-no-ops span){font-size:var(--type-small);line-height:var(--leading-copy)}
.reservations-rc43 :is(.reservation-detail-row small,.reservation-inhouse-recent .section-head span){font-size:var(--type-small);line-height:var(--leading-copy)}
.yotta-select-group{font-size:var(--type-caption)}
.yotta-select-trigger{font-size:var(--type-control)}
.yotta-select-option{font-size:var(--type-body)}

@media (prefers-reduced-transparency: reduce){
  .modal-backdrop{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.calendar-ops-backdrop{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.reservation-detail-backdrop{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .modal-backdrop{background:color-mix(in srgb,var(--bg-app) 94%,#000 6%)!important}
  .calendar-ops-backdrop{background:color-mix(in srgb,var(--bg-app) 92%,#000 8%)!important}.reservation-detail-backdrop{background:color-mix(in srgb,var(--bg-app) 92%,#000 8%)!important}
  :where(.topbar,.ui-popover,.top-user-popover,.dropdown-menu,.yotta-select-menu){backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
}

@media (prefers-contrast: more){
  :root{
    --text-muted:#526159;
    --text-disabled:#748078;
    --border:#AEBDB5;
    --border-strong:#84978D;
    --primary-border:#78A98F;
    --focus-ring:0 0 0 3px rgba(28,89,64,.34);
  }
  [data-theme="dark"]{
    --text-muted:#A0ADA5;
    --text-disabled:#85948B;
    --border:#51635A;
    --border-strong:#70837A;
    --primary-border:#4F906F;
    --focus-ring:0 0 0 3px rgba(99,201,151,.38);
  }
}

/* HF7 — interruptible motion and overlays */
:root{
  --motion-overlay-duration:160ms;
  --motion-popover-duration:120ms;
  --motion-overlay-ease:cubic-bezier(.2,.8,.2,1);
}
.modal-backdrop{will-change:opacity}.calendar-ops-backdrop{will-change:opacity}.reservation-detail-backdrop{will-change:opacity}
.modal{will-change:transform,opacity}.calendar-decision-drawer{will-change:transform,opacity}.calendar-inbox-drawer{will-change:transform,opacity}.reservation-detail-drawer{will-change:transform,opacity}.yotta-select-menu{will-change:transform,opacity}.top-user-popover{will-change:transform,opacity}
.calendar-ops-backdrop{animation:none!important}.calendar-decision-drawer{animation:none!important}.calendar-inbox-drawer{animation:none!important}.reservation-detail-drawer{animation:none!important}.yotta-select-menu{animation:none!important}
[data-motion-state="closing"]{pointer-events:none}
@media (prefers-reduced-motion:reduce){
  :root{--motion-overlay-duration:1ms;--motion-popover-duration:1ms}
  .modal-backdrop{animation:none!important;transition:none!important}.modal{animation:none!important;transition:none!important}.calendar-ops-backdrop{animation:none!important;transition:none!important}.calendar-decision-drawer{animation:none!important;transition:none!important}.calendar-inbox-drawer{animation:none!important;transition:none!important}.reservation-detail-backdrop{animation:none!important;transition:none!important}.reservation-detail-drawer{animation:none!important;transition:none!important}.yotta-select-menu{animation:none!important;transition:none!important}.top-user-popover{animation:none!important;transition:none!important}
}

/* Apple Design Phase D — touch, safe-area and immediate response */
:root{
  --touch-target:44px;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
}

/* Immediate response without layout shift. Keep precision controls dense on mouse/trackpad. */
:where(.btn,.top-user,.nav button,.yotta-select-trigger,.yotta-select-option,.theme-choice button,.calendar-filter-trigger,.calendar-toolbar button,.reservation-detail-actions button):active:not(:disabled){
  transform:translateY(1px) scale(.99);
  transition-duration:80ms!important;
}
:where(.btn.icon-only,.top-user,.nav button,.yotta-select-trigger,.theme-choice button){touch-action:manipulation;-webkit-tap-highlight-color:transparent}

/* Safe-area aware chrome. */
.topbar{padding-top:max(0px,var(--safe-top))}
#toast-root{right:calc(18px + var(--safe-right));bottom:calc(18px + var(--safe-bottom))}
.modal-actions{padding-bottom:max(0px,var(--safe-bottom))}.reservation-detail-actions{padding-bottom:max(0px,var(--safe-bottom))}.calendar-ops-drawer-actions{padding-bottom:max(0px,var(--safe-bottom))}
@media (max-width:720px){
  .sidebar{padding-left:max(0px,var(--safe-left));padding-bottom:max(0px,var(--safe-bottom))}
  .content{padding-left:max(12px,var(--safe-left));padding-right:max(12px,var(--safe-right));padding-bottom:max(16px,var(--safe-bottom))}
}

@media (pointer:coarse){
  :where(.btn,.top-user,.nav button,.yotta-select-trigger,.yotta-select-option,.theme-choice button,.calendar-filter-trigger,.calendar-toolbar button,.toolbar button,.reservation-detail-actions button,.modal-actions button,.tab,.tabs button){
    min-height:44px;
  }
  :where(.btn.icon-only,.mobile-menu,.calendar-toolbar button.icon-only,.toolbar button.icon-only){min-width:44px;min-height:44px}
  .yotta-select-option{padding-block:.7rem}
  .top-user-popover button{min-height:44px}
}

/* Apple Design Phase F — spatial origin and scroll-edge craft */
:root{--popover-origin-x:50%;--popover-origin-y:0px}
:where(.top-user-popover,.ui-popover,.dropdown-menu,.yotta-select-menu){transform-origin:var(--popover-origin-x) var(--popover-origin-y)}
.topbar{transition:background-color 140ms ease,border-color 140ms ease,box-shadow 140ms ease,backdrop-filter 140ms ease}
.topbar.is-scrolled{
  background:color-mix(in srgb,var(--surface-1) 94%,transparent);
  border-bottom-color:color-mix(in srgb,var(--border-strong) 74%,transparent);
  box-shadow:0 8px 22px rgb(12 31 24 / .08),0 1px 0 rgb(12 31 24 / .06);
}
[data-theme="dark"] .topbar.is-scrolled{box-shadow:0 10px 26px rgb(0 0 0 / .28),0 1px 0 rgb(255 255 255 / .035)}
@media (prefers-reduced-transparency:reduce){.topbar.is-scrolled{background:var(--surface-1);backdrop-filter:none;-webkit-backdrop-filter:none}}

/* HF11 — application-wide spacing rhythm, density and icon polish */
:root{
  --density-page-inline:clamp(16px,1.35vw,22px);
  --density-page-top:14px;
  --density-page-bottom:28px;
  --density-panel-pad:16px;
  --density-section-gap:14px;
  --density-stack-gap:12px;
  --density-control-gap:8px;
  --density-row-y:10px;
  --density-row-x:12px;
}

/* App shell: reduce dead space while keeping clear hierarchy. */
.content{max-width:1600px;padding:var(--density-page-top) var(--density-page-inline) var(--density-page-bottom)}
.page-head{gap:16px;margin-bottom:14px;align-items:flex-end}
.page-head>div:first-child{max-width:920px}
.page-head h1{margin:0 0 2px;font-size:clamp(1.55rem,2vw,1.9rem);line-height:1.12}
.page-head p{margin:5px 0 0;max-width:780px;font-size:.875rem;line-height:1.48}
.page-head .eyebrow{margin-bottom:4px}
.page-head .toolbar{gap:8px;align-self:flex-start}
.panel{padding:var(--density-panel-pad);margin-bottom:var(--density-section-gap)}
.section-head{gap:12px;margin:0 0 12px;align-items:center}
.section-head h2{margin:0;font-size:.95rem}.panel h2{margin:0;font-size:.95rem}
.section-head h3{margin:0}.panel h3{margin:0}
.toolbar{gap:var(--density-control-gap)}
.cards{gap:12px}.quick-actions{gap:12px}.metric-grid{gap:12px}
.form-grid{gap:12px}

/* Top chrome: one clean rhythm, less vertical bulk. */
.topbar{gap:8px 10px;padding:7px 14px;min-height:58px}
.top-search{height:40px;min-height:40px;max-width:400px;border-radius:10px;padding-inline:12px}
.business-date{min-height:36px}.cashier-chip{min-height:36px}
.top-user{min-height:40px;padding:4px 7px}
.top-actions{gap:8px}
input{border-radius:10px}select{border-radius:10px}textarea{border-radius:10px}.yotta-select-trigger{border-radius:10px}
.toolbar .yotta-select-trigger{height:40px;min-height:40px}
.toolbar.compact .yotta-select-trigger{height:36px;min-height:36px}

/* Navigation icons: calmer, more consistent stroke and optical size. */
.sidebar-hover-shell .nav button{height:40px;gap:10px;border-radius:9px}
.sidebar-hover-shell .nav-icon{width:19px;height:19px}
.sidebar-hover-shell .nav-icon svg{width:19px;height:19px;stroke-width:1.65}
.sidebar-hover-shell .nav button.active:before{top:8px;bottom:8px}
.sidebar-hover-shell .nav-group{margin-bottom:10px}
.sidebar-hover-shell .nav{padding-top:2px}

/* Tables and list workspaces: compact but readable, consistent across modules. */
.table-wrap{border-radius:14px}
table th{height:38px;padding:8px 10px;font-size:.72rem;letter-spacing:.045em}.table th{height:38px;padding:8px 10px;font-size:.72rem;letter-spacing:.045em}.ui-table th{height:38px;padding:8px 10px;font-size:.72rem;letter-spacing:.045em}
table td{height:auto;min-height:44px;padding:10px;color:var(--text-primary);vertical-align:middle}.table td{height:auto;min-height:44px;padding:10px;color:var(--text-primary);vertical-align:middle}.ui-table td{height:auto;min-height:44px;padding:10px;color:var(--text-primary);vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
.table .toolbar{gap:6px}.table td>.toolbar{gap:6px}td>.toolbar{gap:6px}
.empty.compact{padding:14px 16px}

/* Modal / drawer internal rhythm. */
.modal-head{padding:16px 20px 12px}.modal-header{padding:16px 20px 12px}
.modal-body{padding:18px 20px}
.modal-actions{padding:12px 20px 16px}.modal-footer{padding:12px 20px 16px}
.reservation-detail-drawer .section-head{margin-bottom:10px}.calendar-ops-drawer .section-head{margin-bottom:10px}

/* Reservations — remove nested-card bloat and make list-first layout feel deliberate. */
.reservations-rc43 .page-head{margin-bottom:14px}
.reservations-rc43 .reservation-page-actions{min-height:34px}
.reservations-rc43 .reservation-registry-panel{display:grid;gap:12px;padding:16px}
.reservations-rc43 .reservation-registry-filters{gap:8px;padding:10px;border-radius:13px;box-shadow:none}
.reservations-rc43 .reservation-registry-filters .yotta-select-trigger{min-height:42px;height:42px}
.reservations-rc43 .reservation-registry-filters>input{min-height:42px;height:42px}
.reservations-rc43 .reservation-registry-filters>.badge{min-width:34px;justify-content:center;padding-inline:8px}
.reservations-rc43 .reservation-view-more{border-radius:11px}
.reservations-rc43 .reservation-view-more>summary{padding:9px 11px;font-size:.82rem}
.reservations-rc43 .reservation-view-more-body{gap:10px;padding:0 11px 10px}
.reservations-rc43 .reservation-list-layout{grid-template-columns:minmax(0,1fr) 278px;gap:10px}
.reservations-rc43 .reservation-list-main{min-width:0}
.reservation-list-main th{padding-inline:10px}
.reservation-list-main td{padding-block:10px;padding-inline:10px}
.reservation-list-main td:first-child{font-variant-numeric:tabular-nums}
.reservation-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:nowrap}
.reservation-row-actions .btn{white-space:nowrap}
.reservation-row-actions .nav-icon{display:grid;place-items:center;width:16px;height:16px;flex:0 0 16px}
.reservation-right-rail{gap:10px;top:10px}
.reservation-rail-card{border-radius:13px}
.reservation-rail-card .section-head{padding:10px 12px;margin:0}
.reservation-rail-row{padding:9px 12px;min-height:54px}
.reservation-channel-row{padding:8px 12px}

/* Shared list/filter workspaces: same spacing grammar as Reservations. */
:where(.guests-rc43 .guest-workspace-toolbar,.yotta-filters,.report-controls,.room-toolbar,.frontdesk-controls,.company-filters,.group-filters){gap:8px}
:where(.guests-rc43 .guest-workspace-toolbar,.yotta-filters,.report-controls){padding:10px;border-radius:13px}
:where(.guest-workspace,.rooms-rc43,.invoices-rc43,.frontdesk-rc35,.platform-rc43) .panel{margin-bottom:12px}

/* Prevent decorative cards from creating empty visual mass. */
.reservation-rail-card .empty.compact{min-height:0}.panel>.empty.compact{min-height:0}

@media (max-width:1100px){
  .reservations-rc43 .reservation-list-layout{grid-template-columns:minmax(0,1fr)}
  .reservation-right-rail{grid-template-columns:repeat(2,minmax(0,1fr));position:static}
  .reservation-right-rail>[data-jump-frontdesk]{grid-column:1/-1}
}
@media (max-width:760px){
  .content{padding:12px max(12px,var(--safe-left)) max(18px,var(--safe-bottom))}
  .page-head{align-items:stretch;margin-bottom:12px}
  .page-head .toolbar{margin-left:0;align-self:auto}
  .reservations-rc43 .reservation-registry-panel{padding:12px;gap:10px}
  .reservations-rc43 .reservation-registry-filters{padding:8px}
  .reservation-right-rail{grid-template-columns:minmax(0,1fr)}
  .reservation-right-rail>[data-jump-frontdesk]{grid-column:auto}
  .reservation-row-actions{justify-content:flex-start;flex-wrap:wrap}
}

/* HF12 — navbar functionality-preserving redesign + readable room status tiles */
/* Keep every global action visible; at narrower desktop widths the search wraps instead of disappearing. */
.topbar{
  grid-template-columns:minmax(380px,1.15fr) minmax(260px,.82fr) auto;
  align-items:center;
  column-gap:12px;
  row-gap:8px;
  min-height:64px;
  padding:8px 14px;
}
.topbar .top-left{gap:8px;align-items:center;min-width:0}
.topbar .top-search{
  display:flex!important;
  min-width:240px;
  max-width:520px;
  width:100%;
  height:42px;
  min-height:42px;
  justify-self:center;
  border-radius:12px;
  background:var(--surface-2);
  border-color:var(--border);
}
.topbar .top-search:hover{background:var(--surface-hover);border-color:var(--border-strong)}
.topbar .top-search .nav-icon{color:var(--text-muted)}
.topbar .top-search kbd{margin-left:auto}
.topbar .top-actions{gap:8px;align-items:center;justify-content:flex-end;min-width:0}
.topbar .top-divider{height:30px;opacity:.7}

/* Current hotel remains fully actionable, but reads as one compact context control. */
.top-left .platform-hotel-context{
  min-width:0;
  max-width:min(500px,46cqw);
  min-height:44px;
  padding:4px 4px 4px 8px;
  gap:8px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface-2);
}
.top-left .platform-hotel-context>.nav-icon{
  width:30px;height:30px;flex:0 0 30px;
  border:0;background:transparent;color:var(--primary)
}
.top-left .platform-hotel-context>div{gap:0;min-width:0}
.top-left .platform-hotel-context small{font-size:.68rem;line-height:1.05;letter-spacing:.095em;color:var(--text-muted)}
.top-left .platform-hotel-context strong{font-size:.86rem;line-height:1.25;color:var(--text-primary)}
.top-left .platform-hotel-context .btn{
  margin-left:4px;white-space:nowrap
}
.top-left .business-date{min-height:38px;padding-inline:11px}
.topbar .cashier-chip{min-height:38px;padding-inline:11px}
.topbar #quick-res{min-height:42px;padding-inline:16px}
.topbar .top-user-menu>.top-user{min-height:42px}

/* Responsive navbar: preserve search functionality by wrapping it to a second row. */
@container yotta-main (max-width:1560px){
  .topbar{grid-template-columns:minmax(0,1fr) auto}
  .topbar .top-left{grid-column:1;grid-row:1}
  .topbar .top-actions{grid-column:2;grid-row:1}
  .topbar .top-search{grid-row:2;grid-column:1/-1;max-width:none;width:100%;justify-self:stretch}
}
@container yotta-main (max-width:1180px){
  .topbar .top-search{display:flex!important;grid-row:2;grid-column:1/-1;max-width:none;width:100%}
  .topbar .top-user-text{display:none}
  .top-left .platform-hotel-context{max-width:360px}
}
@container yotta-main (max-width:900px){
  .topbar{grid-template-columns:minmax(0,1fr) auto;padding-inline:10px}
  .top-left .platform-hotel-context{max-width:310px}
  .top-left .platform-hotel-context small{display:none}
  .top-left .business-date{font-size:.75rem}
}
@container yotta-main (max-width:980px){
  .topbar .cashier-chip{width:auto;min-width:0;padding-inline:10px}
  .topbar .cashier-chip>span:last-child{display:inline}
}
@container yotta-main (max-width:700px){
  .topbar{grid-template-columns:minmax(0,1fr)}
  .topbar .top-left{grid-column:1;grid-row:1;gap:6px;flex-wrap:wrap}
  .topbar .top-actions{grid-column:1;grid-row:2;width:100%;justify-content:flex-start;flex-wrap:wrap}
  .topbar .top-search{grid-column:1;grid-row:3;height:44px;min-height:44px}
  .topbar .top-divider{display:none}
  .top-left .platform-hotel-context{max-width:100%;flex:1 1 280px}
  .top-left .business-date{display:flex;min-height:34px;font-size:.72rem}
  .topbar #quick-res{min-height:40px;padding-inline:12px}
}


/* Dashboard room status tiles: readable in both themes, status remains visible without relying on fill alone. */
.dashboard-room-strip{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px}
.dashboard-room-strip .room-mini{
  min-height:64px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:3px;
  padding:9px 11px 9px 15px;
  overflow:hidden;
  text-align:left;
  color:var(--text-primary);
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--surface-2);
  box-shadow:none;
  cursor:pointer;
  transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,transform var(--motion-fast) ease;
}
.dashboard-room-strip .room-mini:hover{background:var(--surface-hover);border-color:var(--border-strong);box-shadow:var(--shadow-xs);transform:translateY(-1px)}
.dashboard-room-strip .room-mini:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.dashboard-room-strip .room-mini:before{width:4px;border-radius:11px 0 0 11px}
.room-mini-number{display:block;color:var(--text-primary);font-size:.98rem;font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums}
.room-mini-status{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:.7rem;font-weight:650;line-height:1.25}
.dashboard-room-strip .room-mini.available{background:color-mix(in srgb,var(--success) 7%,var(--surface-2))}
.dashboard-room-strip .room-mini.reserved{background:color-mix(in srgb,var(--info) 7%,var(--surface-2))}
.dashboard-room-strip .room-mini.occupied{background:color-mix(in srgb,var(--primary) 8%,var(--surface-2))}
.dashboard-room-strip .room-mini.cleaning{background:color-mix(in srgb,var(--warning) 8%,var(--surface-2))}.dashboard-room-strip .room-mini.dirty{background:color-mix(in srgb,var(--warning) 8%,var(--surface-2))}.dashboard-room-strip .room-mini.inspection{background:color-mix(in srgb,var(--warning) 8%,var(--surface-2))}.dashboard-room-strip .room-mini.out_of_service{background:color-mix(in srgb,var(--warning) 8%,var(--surface-2))}
.dashboard-room-strip .room-mini.out_of_order{background:color-mix(in srgb,var(--danger) 8%,var(--surface-2))}
[data-theme="dark"] .dashboard-room-strip .room-mini{
  background:color-mix(in srgb,var(--surface-2) 94%,#000);
  border-color:var(--border);
  color:var(--text-primary)
}
[data-theme="dark"] .dashboard-room-strip .room-mini.available{background:color-mix(in srgb,var(--success) 10%,var(--surface-2))}
[data-theme="dark"] .dashboard-room-strip .room-mini.reserved{background:color-mix(in srgb,var(--info) 10%,var(--surface-2))}
[data-theme="dark"] .dashboard-room-strip .room-mini.occupied{background:color-mix(in srgb,var(--primary) 12%,var(--surface-2))}
[data-theme="dark"] .dashboard-room-strip .room-mini.cleaning{background:color-mix(in srgb,var(--warning) 10%,var(--surface-2))}
[data-theme="dark"] .dashboard-room-strip .room-mini.dirty{background:color-mix(in srgb,var(--warning) 10%,var(--surface-2))}
[data-theme="dark"] .dashboard-room-strip .room-mini.inspection{background:color-mix(in srgb,var(--warning) 10%,var(--surface-2))}
[data-theme="dark"] .dashboard-room-strip .room-mini.out_of_service{background:color-mix(in srgb,var(--warning) 10%,var(--surface-2))}
[data-theme="dark"] .dashboard-room-strip .room-mini.out_of_order{background:color-mix(in srgb,var(--danger) 11%,var(--surface-2))}
[data-theme="dark"] .dashboard-room-strip .room-mini-number{color:var(--text-primary)}
[data-theme="dark"] .dashboard-room-strip .room-mini-status{color:var(--text-secondary)}

@media(max-width:760px){
  .dashboard-room-strip{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:7px}
  .dashboard-room-strip .room-mini{min-height:60px;padding:8px 9px 8px 13px}
}


/* HF13 — shell/dashboard refinement: tighter hierarchy without removing global actions */
.dashboard-rc33{gap:12px}
.dashboard-rc33 .dashboard-page-head{align-items:flex-end;margin-bottom:0;padding-block:0 2px;gap:16px}
.dashboard-rc33 .dashboard-page-head>div:first-child{max-width:980px}
.dashboard-rc33 .dashboard-page-head .eyebrow{margin-bottom:5px}
.dashboard-rc33 .dashboard-page-head h1{font-size:clamp(1.82rem,2.25cqw,2.42rem);line-height:1.04;letter-spacing:-.035em;margin:0}
.dashboard-rc33 .dashboard-page-head p{max-width:900px;margin:7px 0 0;line-height:1.45}
.dashboard-page-actions{flex:0 0 auto;margin-left:auto}
.dashboard-page-actions .btn{gap:7px}
.dashboard-operational-counters{gap:9px}
.dashboard-operational-counters .dashboard-counter{min-height:88px;padding:11px 13px;border-radius:12px}
.dashboard-operational-counters .dashboard-counter>span{font-size:.72rem}
.dashboard-operational-counters .dashboard-counter>strong{margin-top:5px;font-size:1.65rem}
.dashboard-operational-counters .dashboard-counter>small{margin-top:4px;font-size:.68rem}
.dashboard-attention{padding:14px 16px}
.dashboard-attention .section-head{margin-bottom:9px}
.dashboard-attention .section-head h2{font-size:1.02rem}
.dashboard-attention .section-head p{margin-top:4px}
.dashboard-attention:has(.empty.compact){padding-bottom:12px}
.dashboard-attention:has(.empty.compact) .section-head{margin-bottom:7px}
.dashboard-attention .empty.compact{min-height:44px;padding:10px 12px;display:grid;place-items:center}

/* Keep the full desktop navbar on one row for ordinary laptop/desktop widths. */
@container yotta-main (min-width:1321px){
  .topbar{grid-template-columns:minmax(430px,.92fr) minmax(250px,.72fr) auto;min-height:58px;padding-block:6px;row-gap:0}
  .topbar .top-left{grid-column:1;grid-row:1;min-width:0}
  .topbar .top-search{grid-row:1;grid-column:2;display:flex!important;min-width:230px;max-width:460px;width:100%;height:40px;min-height:40px;justify-self:stretch}
  .topbar .top-actions{grid-column:3;grid-row:1;min-width:max-content}
  .top-left .platform-hotel-context{max-width:420px;min-height:40px}
  .top-left .business-date{min-height:36px}
  .topbar .cashier-chip{min-height:36px}
  .topbar #quick-res{min-height:40px}
  .topbar .top-user-menu>.top-user{min-height:40px}
}
/* At genuinely constrained widths search stays fully available on a second row. */
@container yotta-main (max-width:1320px){
  .topbar{grid-template-columns:minmax(0,1fr) auto}
  .topbar .top-left{grid-column:1;grid-row:1}
  .topbar .top-actions{grid-column:2;grid-row:1}
  .topbar .top-search{display:flex!important;grid-row:2;grid-column:1/-1;max-width:none;width:100%;justify-self:stretch}
}

/* Sidebar: clearer icon geometry and quieter active state, while preserving hover-expand behaviour. */
.sidebar-hover-shell .nav{padding-inline:9px}
.sidebar-hover-shell .nav button{height:40px;border-radius:10px}
.sidebar-hover-shell .nav button .nav-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease}
.sidebar-hover-shell .nav button .nav-icon svg{width:19px;height:19px;stroke-width:1.7}
.sidebar-hover-shell .nav button:hover .nav-icon{background:rgba(255,255,255,.045)}
.sidebar-hover-shell .nav button.active{background:rgba(255,255,255,.025)}
.sidebar-hover-shell .nav button.active .nav-icon{background:color-mix(in srgb,var(--brand-gold) 12%,transparent);color:var(--brand-gold)}
.sidebar-hover-shell .nav button.active:before{top:9px;bottom:9px;width:2px;border-radius:999px}
@media (min-width:1200px) and (hover:hover) and (pointer:fine){
  .sidebar-hover-shell .nav button>.nav-icon{left:11px}
  .sidebar-hover-shell .nav button>.nav-label{left:50px}
}

@container yotta-main (max-width:760px){
  .dashboard-rc33 .dashboard-page-head{align-items:stretch}
  .dashboard-page-actions{margin-left:0}
  .dashboard-operational-counters .dashboard-counter{min-height:82px}
}

/* HF14 — compact search trigger + command palette */
/* Global search stays fully available, but no longer consumes a field-sized slot in the topbar. */
.topbar{
  grid-template-columns:minmax(0,1fr) auto auto;
}
.topbar .top-left{grid-column:1;grid-row:1;min-width:0}
.topbar .top-search-trigger{
  display:inline-flex!important;
  grid-column:2!important;
  grid-row:1!important;
  justify-self:end!important;
  width:auto!important;
  min-width:0!important;
  max-width:168px!important;
  height:40px;
  min-height:40px;
  flex:0 0 auto!important;
  padding:0 11px;
  gap:7px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
  color:var(--text-secondary);
  white-space:nowrap;
  box-shadow:none;
}
.topbar .top-search-trigger:hover{background:var(--surface-hover);border-color:var(--border-strong);color:var(--text-primary)}
.topbar .top-search-trigger .nav-icon{color:var(--text-muted)}
.topbar .top-search-trigger kbd{margin-left:2px;padding:1px 5px;border:1px solid var(--border);border-radius:5px;background:var(--surface-1);color:var(--text-muted);font-size:.62rem}
.topbar .top-actions{grid-column:3;grid-row:1;min-width:max-content}

@container yotta-main (max-width:1180px){
  .topbar{grid-template-columns:minmax(0,1fr) auto auto}
  .topbar .top-left{grid-column:1;grid-row:1}
  .topbar .top-search-trigger{grid-column:2!important;grid-row:1!important;width:44px!important;height:44px;min-height:44px;max-width:44px!important;padding:0;justify-content:center!important}
  .topbar .top-search-trigger>span:not(.nav-icon){display:none}.topbar .top-search-trigger kbd{display:none}
  .topbar .top-actions{grid-column:3;grid-row:1}
}
@container yotta-main (max-width:760px){
  .topbar{grid-template-columns:minmax(0,1fr) auto}
  .topbar .top-left{grid-column:1;grid-row:1}
  .topbar .top-search-trigger{grid-column:2!important;grid-row:1!important}
  .topbar .top-actions{grid-column:1/-1;grid-row:2;width:100%;justify-content:flex-start;flex-wrap:wrap}
}

.command-palette-modal{
  width:min(640px,calc(100vw - 24px));
  max-width:640px;
  padding:0;
  overflow:hidden;
}
.command-palette-modal .modal-head{padding:14px 16px 8px;border-bottom:0}
.command-palette-modal .modal-head h2{font-size:.82rem;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted)}
.command-palette-modal .modal-body{padding:0 14px 14px}
.command-palette-modal .modal-actions{display:none}
.command-palette{display:grid;gap:8px}
.command-palette-search{
  min-height:52px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 12px;
  border:1px solid var(--border-strong);
  border-radius:12px;
  background:var(--surface-1);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent);
}
.command-palette-search>.nav-icon{color:var(--text-muted);flex:0 0 auto}
.command-palette-search input{flex:1;min-width:0;height:auto!important;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;font-size:1rem;color:var(--text-primary)}
.command-palette-search input:focus{outline:0}
.command-palette-search kbd{padding:2px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);color:var(--text-muted);font-size:.64rem}
.command-palette-caption{padding:4px 4px 0;color:var(--text-muted);font-size:.68rem;font-weight:720;text-transform:uppercase;letter-spacing:.08em}
.command-palette-results{display:grid;gap:3px;max-height:min(440px,56vh);overflow:auto;padding:2px}
.command-palette-result{width:100%;min-height:50px;display:grid;grid-template-columns:34px minmax(0,1fr) 24px;align-items:center;gap:9px;padding:7px 9px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text-primary);text-align:left;cursor:pointer}
.command-palette-result:hover{background:var(--surface-hover);border-color:var(--border)}.command-palette-result.is-active{background:var(--surface-hover);border-color:var(--border)}
.command-palette-result-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--surface-2);color:var(--primary)}
.command-palette-result-copy{min-width:0;display:grid;gap:2px}
.command-palette-result-copy strong{font-size:.82rem;line-height:1.2}
.command-palette-result-copy small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:.68rem}
.command-palette-enter{color:var(--text-muted);font-size:.78rem;text-align:center}
.command-palette-empty{padding:24px 12px;text-align:center;color:var(--text-muted);font-size:.78rem}
.command-palette-help{display:flex;gap:12px;flex-wrap:wrap;padding:6px 4px 0;color:var(--text-muted);font-size:.64rem}
@media(max-width:560px){.command-palette-modal{width:calc(100vw - 16px)}.command-palette-modal .modal-head{padding-inline:12px}.command-palette-modal .modal-body{padding:0 10px 12px}.command-palette-result-copy small{display:none}}

/* HF15 — unified navbar control geometry */
.topbar{
  --navbar-control-height:44px;
  --navbar-control-radius:12px;
  --navbar-control-pad-x:14px;
  --navbar-control-gap:8px;
  --navbar-control-bg:var(--surface-2);
  --navbar-control-border:var(--border);
  --navbar-control-hover:var(--surface-hover);
  column-gap:10px;
  align-items:center;
}
.topbar .top-left{gap:var(--navbar-control-gap);align-items:center}.topbar .top-actions{gap:var(--navbar-control-gap);align-items:center}
.topbar :is(.platform-hotel-context,.business-date,.top-search-trigger,.cashier-chip,#quick-res,.top-user-menu>.top-user,.hotel-switch .yotta-select-trigger){
  box-sizing:border-box;
  height:var(--navbar-control-height)!important;
  min-height:var(--navbar-control-height)!important;
  border-radius:var(--navbar-control-radius)!important;
  border:1px solid var(--navbar-control-border);
  box-shadow:none;
}
.topbar .platform-hotel-context{
  padding:3px 4px 3px 12px;
  gap:9px;
  background:var(--navbar-control-bg);
  color:var(--text-primary);
  overflow:hidden;
}
.topbar .platform-hotel-context>.nav-icon{
  width:22px;
  height:22px;
  flex:0 0 22px;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--primary);
}
.topbar .platform-hotel-context>.nav-icon svg{width:20px;height:20px;stroke-width:1.8}
.topbar .platform-hotel-context>div{gap:0;align-self:center}
.topbar .platform-hotel-context small{font-size:.62rem;line-height:1;letter-spacing:.09em}
.topbar .platform-hotel-context strong{font-size:.82rem;line-height:1.12;font-weight:690}
.topbar .platform-hotel-context .btn{
  margin-left:2px;
}
.topbar .hotel-switch .yotta-select-trigger{
  padding-inline:var(--navbar-control-pad-x);
  background:var(--navbar-control-bg);
  border-color:var(--navbar-control-border);
}
.topbar .business-date.app-date{
  padding-inline:var(--navbar-control-pad-x);
  gap:8px;
  background:var(--navbar-control-bg);
  border-color:var(--navbar-control-border);
  color:var(--text-secondary);
  font-size:.76rem;
}
.topbar .business-date.app-date .nav-icon{color:var(--primary)}
.topbar .business-date.business-date-lag{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 34%,var(--border));color:var(--warning)}
.topbar .business-date-recovery{height:auto!important;min-height:var(--navbar-control-height)!important;padding-block:5px}
.topbar .top-search-trigger{
  height:var(--navbar-control-height)!important;
  min-height:var(--navbar-control-height)!important;
  padding-inline:var(--navbar-control-pad-x);
  gap:8px;
  background:var(--navbar-control-bg);
  border-color:var(--navbar-control-border);
  color:var(--text-secondary);
}
.topbar .top-search-trigger:hover{background:var(--navbar-control-hover);border-color:var(--border-strong);color:var(--text-primary)}
.topbar .top-search-trigger kbd{border-radius:6px;background:var(--surface-1)}
.topbar .cashier-chip{
  padding-inline:var(--navbar-control-pad-x);
  gap:8px;
  background:var(--navbar-control-bg);
  border-color:var(--navbar-control-border);
  color:var(--text-secondary);
  font-size:.76rem;
}
.topbar .cashier-chip:hover{background:var(--navbar-control-hover);border-color:var(--border-strong);color:var(--text-primary)}
.topbar .cashier-dot{width:7px;height:7px;flex:0 0 7px}
.topbar #quick-res{
  height:var(--navbar-control-height)!important;
  min-height:var(--navbar-control-height)!important;
  padding-inline:17px;
  border-radius:var(--navbar-control-radius)!important;
  font-size:.82rem;
}
.topbar .top-user-menu>.top-user{
  padding:0 10px 0 6px;
  gap:8px;
  background:var(--navbar-control-bg);
  border-color:var(--navbar-control-border);
  color:var(--text-primary);
}
.topbar .top-user-menu>.top-user:hover{background:var(--navbar-control-hover);border-color:var(--border-strong)}
.topbar .top-avatar{width:32px;height:32px;flex:0 0 32px;border-radius:50%;border:1px solid color-mix(in srgb,var(--primary) 20%,var(--border));background:var(--primary-soft);color:var(--primary)}
.topbar .top-user-text strong{font-size:.76rem;font-weight:680}
.topbar .top-user-text small{font-size:.65rem}
.topbar .top-user-caret{display:grid;place-items:center;color:var(--text-muted)}
.topbar .top-divider{height:28px;opacity:.62}

@container yotta-main (max-width:1180px){
  .topbar .top-search-trigger{width:44px!important;max-width:44px!important;padding:0!important}
}
@container yotta-main (max-width:760px){
  .topbar .top-actions{gap:8px}
  .topbar .platform-hotel-context{height:var(--navbar-control-height)!important;min-height:var(--navbar-control-height)!important}
  .topbar #quick-res{height:var(--navbar-control-height)!important;min-height:var(--navbar-control-height)!important}.topbar .cashier-chip{height:var(--navbar-control-height)!important;min-height:var(--navbar-control-height)!important}.topbar .top-user-menu>.top-user{height:var(--navbar-control-height)!important;min-height:var(--navbar-control-height)!important}
}

/* HF16 — compact sidebar navigation rail */
/* Keep the workspace column stable while removing dead space from the collapsed rail. */
.app-shell.sidebar-hover-shell{
  --sidebar-collapsed:58px;
  --sidebar-expanded:238px;
  grid-template-columns:var(--sidebar-collapsed) minmax(0,1fr);
}
.sidebar-hover-shell .sidebar .brand{height:64px;min-height:64px;flex:0 0 64px}
.sidebar-hover-shell .nav{padding:2px 7px 10px;scrollbar-width:thin;scrollbar-color:transparent transparent}
.sidebar-hover-shell .nav::-webkit-scrollbar{width:4px}
.sidebar-hover-shell .nav::-webkit-scrollbar-track{background:transparent}
.sidebar-hover-shell .nav::-webkit-scrollbar-thumb{border-radius:999px;background:transparent}
.sidebar-hover-shell .nav-group{margin:0 0 4px}
.sidebar-hover-shell .nav button{height:42px;border-radius:10px}
.sidebar-hover-shell .nav-group-secondary{margin-top:4px;padding-top:4px}

@media (min-width:1200px) and (hover:hover) and (pointer:fine){
  .sidebar-hover-shell .sidebar{width:var(--sidebar-collapsed);min-width:var(--sidebar-collapsed)}
  .sidebar-hover-shell .sidebar:hover{width:var(--sidebar-expanded);transition-delay:0s;box-shadow:18px 0 38px rgba(6,24,19,.18)}.sidebar-hover-shell .sidebar.keyboard-expanded{width:var(--sidebar-expanded);transition-delay:0s;box-shadow:18px 0 38px rgba(6,24,19,.18)}
  .sidebar-hover-shell .brand-mark{left:11px;top:12px;width:36px;height:36px}
  .sidebar-hover-shell .brand-copy{left:58px;right:10px;top:14px}
  .sidebar-hover-shell .nav button>.nav-icon{left:8px}
  .sidebar-hover-shell .nav button>.nav-label{left:46px;right:10px}

  /* Hidden labels/groups must not reserve vertical space in the compact rail. */
  .sidebar-hover-shell .nav-group-title{max-height:0;margin:0;padding-block:0;line-height:0;overflow:hidden}
  .sidebar-hover-shell .sidebar:hover .nav-group-title{max-height:20px;margin:4px 0 5px;padding-block:0;line-height:1.2}.sidebar-hover-shell .sidebar.keyboard-expanded .nav-group-title{max-height:20px;margin:4px 0 5px;padding-block:0;line-height:1.2}
  .sidebar-hover-shell .sidebar-hotel-context{flex:0 0 0;min-height:0;height:0;margin:0;padding:0 12px;border-bottom-color:transparent;overflow:hidden}
  .sidebar-hover-shell .sidebar:hover .sidebar-hotel-context{flex:0 0 52px;min-height:52px;height:auto;margin:0 12px 6px;padding:2px 0 10px;border-bottom-color:rgba(255,255,255,.08)}.sidebar-hover-shell .sidebar.keyboard-expanded .sidebar-hotel-context{flex:0 0 52px;min-height:52px;height:auto;margin:0 12px 6px;padding:2px 0 10px;border-bottom-color:rgba(255,255,255,.08)}
  .sidebar-hover-shell .sidebar:hover .nav-group{margin-bottom:8px}.sidebar-hover-shell .sidebar.keyboard-expanded .nav-group{margin-bottom:8px}
  .sidebar-hover-shell .sidebar:hover .nav-group-secondary{margin-top:10px;padding-top:9px}.sidebar-hover-shell .sidebar.keyboard-expanded .nav-group-secondary{margin-top:10px;padding-top:9px}
  .sidebar-hover-shell .sidebar:hover .nav{scrollbar-color:rgba(168,180,174,.28) transparent}
  .sidebar-hover-shell .sidebar:hover .nav::-webkit-scrollbar-thumb{background:rgba(168,180,174,.28)}.sidebar-hover-shell .sidebar.keyboard-expanded .nav::-webkit-scrollbar-thumb{background:rgba(168,180,174,.28)}
}

@media (min-width:1200px) and (hover:none){
  .sidebar-hover-shell{grid-template-columns:var(--sidebar-expanded) minmax(0,1fr)}
  .sidebar-hover-shell .sidebar{width:var(--sidebar-expanded)}
}

/* HF17 — sidebar composition refinement */
/* One compact rail, one clean expanded composition, no inherited dead space. */
.app-shell.sidebar-hover-shell{
  --sidebar-collapsed:56px;
  --sidebar-expanded:224px;
  grid-template-columns:var(--sidebar-collapsed) minmax(0,1fr);
}
.sidebar-hover-shell .sidebar .brand{height:56px;min-height:56px;flex:0 0 56px}
.sidebar-hover-shell .nav{padding:2px 6px 8px;scrollbar-width:none;scrollbar-color:transparent transparent}
.sidebar-hover-shell .nav::-webkit-scrollbar{width:2px}
.sidebar-hover-shell .nav::-webkit-scrollbar-track{background:transparent}
.sidebar-hover-shell .nav::-webkit-scrollbar-thumb{border-radius:999px;background:transparent}
.sidebar-hover-shell .nav-group{margin:0 0 2px}
.sidebar-hover-shell .nav-group-title{font-size:9px;letter-spacing:.14em}
.sidebar-hover-shell .nav button{height:38px;border-radius:9px}
.sidebar-hover-shell .nav button.active{background:color-mix(in srgb,var(--brand-gold) 9%,transparent)}
.sidebar-hover-shell .nav button.active:before{top:8px;bottom:8px;width:2px}
.sidebar-hover-shell .nav button .nav-icon{width:28px;height:28px;border-radius:8px}
.sidebar-hover-shell .nav button .nav-icon svg{width:18px;height:18px;stroke-width:1.7}
.sidebar-hover-shell .nav-group-secondary{margin-top:2px;padding-top:5px;border-top:1px solid rgba(255,255,255,.065)}

@media (min-width:1200px) and (hover:hover) and (pointer:fine){
  .sidebar-hover-shell .sidebar{width:var(--sidebar-collapsed);min-width:var(--sidebar-collapsed)}
  .sidebar-hover-shell .sidebar:hover{width:var(--sidebar-expanded);box-shadow:14px 0 30px rgba(6,24,19,.17)}.sidebar-hover-shell .sidebar.keyboard-expanded{width:var(--sidebar-expanded);box-shadow:14px 0 30px rgba(6,24,19,.17)}
  .sidebar-hover-shell .brand-mark{left:11px;top:11px;width:34px;height:34px}
  .sidebar-hover-shell .brand-copy{left:54px;right:10px;top:10px;display:flex;flex-direction:column;justify-content:center;min-height:36px}
  .sidebar-hover-shell .brand-copy strong{line-height:1.08;font-size:13px!important;letter-spacing:0!important}
  .sidebar-hover-shell .brand-copy small{margin-top:2px;line-height:1;font-size:7.5px!important;letter-spacing:.15em!important}
  .sidebar-hover-shell .nav button>.nav-icon{left:8px}
  .sidebar-hover-shell .nav button>.nav-label{left:44px;right:9px;font-size:12.5px}

  /* Collapsed rail reserves only what is actually visible. */
  .sidebar-hover-shell .nav-group-title{max-height:0;margin:0;padding:0;line-height:0;overflow:hidden}
  .sidebar-hover-shell .sidebar-hotel-context{flex:0 0 0;min-height:0;height:0;margin:0;padding:0 10px;border:0;overflow:hidden}

  /* Expanded state restores compact labels/context without building a second header. */
  .sidebar-hover-shell .sidebar:hover .nav-group-title{max-height:16px;margin:5px 0 4px;padding:0 7px;line-height:1.15}.sidebar-hover-shell .sidebar.keyboard-expanded .nav-group-title{max-height:16px;margin:5px 0 4px;padding:0 7px;line-height:1.15}
  .sidebar-hover-shell .sidebar:hover .sidebar-hotel-context{flex:0 0 42px;min-height:42px;height:42px;margin:0 10px 4px;padding:2px 0 7px;border-bottom:1px solid rgba(255,255,255,.07)}.sidebar-hover-shell .sidebar.keyboard-expanded .sidebar-hotel-context{flex:0 0 42px;min-height:42px;height:42px;margin:0 10px 4px;padding:2px 0 7px;border-bottom:1px solid rgba(255,255,255,.07)}
  .sidebar-hover-shell .sidebar-hotel-name{font-size:11.5px;line-height:1.15}
  .sidebar-hover-shell .sidebar-hotel-status{margin-top:3px;font-size:8.5px;letter-spacing:.07em}
  .sidebar-hover-shell .sidebar-hotel-status:before{width:5px;height:5px;box-shadow:none}
  .sidebar-hover-shell .sidebar:hover .nav-group{margin-bottom:4px}.sidebar-hover-shell .sidebar.keyboard-expanded .nav-group{margin-bottom:4px}
  .sidebar-hover-shell .sidebar:hover .nav-group-secondary{margin-top:4px;padding-top:6px}.sidebar-hover-shell .sidebar.keyboard-expanded .nav-group-secondary{margin-top:4px;padding-top:6px}
  .sidebar-hover-shell .sidebar:hover .nav{scrollbar-width:thin;scrollbar-color:rgba(168,180,174,.18) transparent}.sidebar-hover-shell .sidebar.keyboard-expanded .nav{scrollbar-width:thin;scrollbar-color:rgba(168,180,174,.18) transparent}
  .sidebar-hover-shell .sidebar:hover .nav::-webkit-scrollbar-thumb{background:rgba(168,180,174,.18)}.sidebar-hover-shell .sidebar.keyboard-expanded .nav::-webkit-scrollbar-thumb{background:rgba(168,180,174,.18)}
}

@media (min-width:1200px) and (hover:none){
  .sidebar-hover-shell{grid-template-columns:var(--sidebar-expanded) minmax(0,1fr)}
  .sidebar-hover-shell .sidebar{width:var(--sidebar-expanded)}
}

/* HF20 — mobile shell grid containment */
/* HF16/HF17 desktop rail rules come after older mobile media queries.
   At tablet/phone widths, keep the drawer out of grid flow and give main
   the only grid track; otherwise main is squeezed into the 56px rail track. */
@media (max-width:1199px){
  .app-shell.sidebar-hover-shell{
    grid-template-columns:minmax(0,1fr);
  }
  .app-shell.sidebar-hover-shell.sidebar-collapsed{
    grid-template-columns:minmax(0,1fr);
  }
  .sidebar-hover-shell .main{
    grid-column:1 / -1;
    width:100%;
    min-width:0;
  }
  .sidebar-hover-shell .sidebar{
    position:fixed;
    inset:0 auto 0 0;
    width:min(88vw,320px);
    min-width:0;
    max-width:320px;
    height:100dvh;
    transform:translateX(calc(-100% - 8px));
    z-index:var(--z-sidebar);
  }
  .sidebar-hover-shell .sidebar.open{transform:translateX(0)}
  .sidebar-hover-shell .mobile-menu{display:inline-flex}
  .sidebar-hover-shell .sidebar-backdrop{
    display:block;
    position:fixed;
    inset:0;
    background:rgb(7 20 16 / .48);
    opacity:0;
    pointer-events:none;
    z-index:calc(var(--z-sidebar) - 1);
  }
  .sidebar-hover-shell .sidebar-backdrop.open{
    opacity:1;
    pointer-events:auto;
  }
}


/* HF21 — reservation/modal pointer isolation (preserves HF20 mobile grid).
   The left desktop rail may expand on hover only when no modal is open.
   Dialogs are in a top-level fixed stack, above desktop and mobile nav. */
#modal-root:not(:empty){position:fixed;inset:0;z-index:var(--z-modal-backdrop);pointer-events:none}
#modal-root:not(:empty)>.modal-backdrop{pointer-events:auto}
body.modal-open .app-shell.sidebar-hover-shell .sidebar{pointer-events:none!important}
body.modal-open .app-shell.sidebar-hover-shell .sidebar-backdrop{pointer-events:none!important}
@media (min-width:1200px) and (hover:hover) and (pointer:fine){
 body.modal-open .sidebar-hover-shell .sidebar{
   width:var(--sidebar-collapsed)!important;
   min-width:var(--sidebar-collapsed)!important;
   box-shadow:none!important;
   transition:none!important;
 }
 body.modal-open .sidebar-hover-shell .sidebar:hover{
   width:var(--sidebar-collapsed)!important;
   min-width:var(--sidebar-collapsed)!important;
   box-shadow:none!important;
   transition:none!important;
 }
 body.modal-open .sidebar-hover-shell .sidebar.keyboard-expanded{
   width:var(--sidebar-collapsed)!important;
   min-width:var(--sidebar-collapsed)!important;
   box-shadow:none!important;
   transition:none!important;
 }
}

/* HF22 staff PIN: intentional reveal, never plain text in initial list. */
.staff-pin-inline{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.staff-pin-value{min-width:70px;font-variant-numeric:tabular-nums;letter-spacing:.15em;font-weight:750;white-space:nowrap}
.staff-pin-create{display:flex;gap:10px;align-items:center;margin-top:7px;flex-wrap:wrap}
.staff-pin-create input{flex:1;min-width:120px;font-variant-numeric:tabular-nums;letter-spacing:.12em}
.staff-pin-create .btn{flex:0 0 auto}

/* HF26 — Rooms + Housekeeping coherent operational workspace. */
.rooms-rc26-hf26 .room-truth-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:10px;margin:0}
.rooms-rc26-hf26 .room-truth-summary .metric{min-height:88px;padding:15px 16px}
.rooms-rc26-hf26 .rooms-board-panel{min-width:0;overflow:visible}
.rooms-rc26-hf26 .room-board-filters{display:grid;grid-template-columns:minmax(200px,2fr) minmax(155px,1fr) minmax(130px,0.85fr) auto;align-items:end;gap:12px;margin:16px 0 20px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-2)}
.rooms-rc26-hf26 .room-board-filters>label{display:grid;gap:6px;min-width:0;color:var(--text-secondary);font-size:12px;font-weight:700}
.rooms-rc26-hf26 .room-board-filters input{min-width:0;width:100%;min-height:44px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-1);color:var(--text-primary);padding:8px 12px;font:inherit;font-weight:500}.rooms-rc26-hf26 .room-board-filters select{min-width:0;width:100%;min-height:44px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-1);color:var(--text-primary);padding:8px 12px;font:inherit;font-weight:500}
.rooms-rc26-hf26 .room-board-filters input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.rooms-rc26-hf26 .room-board-filters select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.rooms-rc26-hf26 .room-board-count{margin:0;white-space:nowrap;color:var(--text-secondary);font-size:13px;padding-bottom:12px}
.rooms-rc26-hf26 .room-board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr));gap:15px;align-items:stretch}
.rooms-rc26-hf26 .room-board-card{display:flex;flex-direction:column;min-width:0;min-height:0;padding:17px;gap:0;border-radius:var(--radius-card);background:var(--surface-1);border:1px solid var(--border);box-shadow:var(--shadow-xs);cursor:default}
.rooms-rc26-hf26 .room-board-card::before{inset:14px auto 14px 0;width:4px;border-radius:0 4px 4px 0}
.rooms-rc26-hf26 .room-board-card[hidden]{display:none!important}.rooms-rc26-hf26 #room-board-empty[hidden]{display:none!important}
.rooms-rc26-hf26 .room-board-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--divider)}
.rooms-rc26-hf26 .room-board-head>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.rooms-rc26-hf26 .room-board-head small{font-size:12px;line-height:1.4;color:var(--text-secondary);overflow-wrap:anywhere}
.rooms-rc26-hf26 .room-board-number{font-size:24px;line-height:1.1;font-weight:750;letter-spacing:-.02em;color:var(--text-primary)}
.rooms-rc26-hf26 .room-board-state{display:inline-flex;align-items:center;justify-content:center;flex:none;max-width:145px;min-height:30px;padding:5px 10px;border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:750;line-height:1.3;text-align:center;color:var(--text-secondary);background:var(--surface-2)}
.rooms-rc26-hf26 .room-board-state.state-ready{color:var(--status-available,var(--primary));border-color:color-mix(in srgb,var(--status-available,var(--primary)) 38%,var(--border));background:color-mix(in srgb,var(--status-available,var(--primary)) 11%,var(--surface-1))}
.rooms-rc26-hf26 .room-board-state.state-occupied{color:var(--status-occupied,var(--text-primary));border-color:color-mix(in srgb,var(--status-occupied,var(--text-primary)) 36%,var(--border));background:var(--surface-2)}
.rooms-rc26-hf26 .room-board-state.state-dirty{color:var(--ds-warning);border-color:color-mix(in srgb,var(--ds-warning) 38%,var(--border));background:color-mix(in srgb,var(--ds-warning) 9%,var(--surface-1))}.rooms-rc26-hf26 .room-board-state.state-inspection{color:var(--ds-warning);border-color:color-mix(in srgb,var(--ds-warning) 38%,var(--border));background:color-mix(in srgb,var(--ds-warning) 9%,var(--surface-1))}.rooms-rc26-hf26 .room-board-state.state-cleaning{color:var(--ds-warning);border-color:color-mix(in srgb,var(--ds-warning) 38%,var(--border));background:color-mix(in srgb,var(--ds-warning) 9%,var(--surface-1))}
.rooms-rc26-hf26 .room-board-state.state-out_of_order{color:var(--ds-danger);border-color:color-mix(in srgb,var(--ds-danger) 35%,var(--border));background:color-mix(in srgb,var(--ds-danger) 9%,var(--surface-1))}.rooms-rc26-hf26 .room-board-state.state-out_of_service{color:var(--ds-danger);border-color:color-mix(in srgb,var(--ds-danger) 35%,var(--border));background:color-mix(in srgb,var(--ds-danger) 9%,var(--surface-1))}.rooms-rc26-hf26 .room-board-state.state-equipment_issue{color:var(--ds-danger);border-color:color-mix(in srgb,var(--ds-danger) 35%,var(--border));background:color-mix(in srgb,var(--ds-danger) 9%,var(--surface-1))}
.rooms-rc26-hf26 .room-board-state-note{min-height:22px;margin:10px 0 9px;color:var(--text-secondary);font-size:12px;line-height:1.5}
.rooms-rc26-hf26 .room-board-guest{display:grid;gap:4px;padding:10px 11px;margin-bottom:10px;border-radius:var(--radius-control);background:var(--surface-2);border:1px solid var(--border)}
.rooms-rc26-hf26 .room-board-guest span{font-size:11px;color:var(--text-secondary)}.rooms-rc26-hf26 .room-board-guest small{font-size:11px;color:var(--text-secondary)}
.rooms-rc26-hf26 .room-board-guest strong{overflow-wrap:anywhere;font-size:13px}
.rooms-rc26-hf26 .room-board-dimensions{display:grid;gap:8px;margin:0;padding:0 0 13px}
.rooms-rc26-hf26 .room-board-dimensions>div{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;min-width:0}
.rooms-rc26-hf26 .room-board-dimensions dt{flex:0 0 auto;min-width:86px;color:var(--text-muted);font-size:12px;font-weight:600}
.rooms-rc26-hf26 .room-board-dimensions dd{margin:0;min-width:0;text-align:right;overflow-wrap:anywhere;font-size:12px;font-weight:670;color:var(--text-primary)}
.rooms-rc26-hf26 .room-board-dimensions dd.is-good{color:var(--status-available,var(--primary))}
.rooms-rc26-hf26 .room-board-dimensions dd.needs-attention{color:var(--ds-warning)}
.rooms-rc26-hf26 .room-board-alerts{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 11px}
.rooms-rc26-hf26 .room-alert{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-control);padding:5px 7px;font-size:11px;font-weight:700;line-height:1.4;background:var(--surface-2);color:var(--text-secondary)}
.rooms-rc26-hf26 .room-alert.danger{color:var(--ds-danger);background:color-mix(in srgb,var(--ds-danger) 8%,var(--surface-1));border-color:color-mix(in srgb,var(--ds-danger) 35%,var(--border))}
.rooms-rc26-hf26 .room-alert.warn{color:var(--ds-warning);border-color:color-mix(in srgb,var(--ds-warning) 40%,var(--border))}
.rooms-rc26-hf26 .room-alert.info{color:var(--text-secondary)}
.rooms-rc26-hf26 .room-board-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:auto;padding-top:13px;border-top:1px solid var(--divider)}
.rooms-rc26-hf26 .room-board-actions .btn{min-width:0;margin:0;white-space:normal}
.rooms-rc26-hf26 .room-board-actions .room-tasks{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 40%,var(--border))}
.room-status-editor{display:grid;gap:16px;min-width:0}
.room-status-editor>.muted{margin:0;max-width:58ch;line-height:1.5}
.room-status-editor .room-status-choices{min-width:0;display:grid;gap:10px;padding:0;margin:0;border:0}
.room-status-editor .room-status-choices legend{margin-bottom:10px;color:var(--text-primary);font-size:13px;font-weight:750}
.room-status-editor .room-status-choice{display:flex;gap:12px;align-items:center;min-width:0;margin:0;padding:14px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-2);cursor:pointer}
.room-status-editor .room-status-choice:hover:not(.is-disabled){border-color:var(--border-strong);background:var(--surface-hover)}
.room-status-editor .room-status-choice:has(input:checked){border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface-1));box-shadow:inset 0 0 0 1px var(--primary)}
.room-status-editor .room-status-choice:focus-within{outline:2px solid var(--primary);outline-offset:2px}
.room-status-editor .room-status-choice.is-disabled{opacity:.55;cursor:not-allowed}
.room-status-editor .room-status-choice>input{flex:none;margin:0;width:18px;height:18px;accent-color:var(--primary)}
.room-status-editor .room-status-choice-text{display:grid;gap:5px;flex:1;min-width:0}
.room-status-editor .room-status-choice-text strong{font-size:15px;color:var(--text-primary)}
.room-status-editor .room-status-choice-text small{font-size:12px;line-height:1.5;color:var(--text-secondary)}
.room-status-editor .room-status-check{opacity:0;color:var(--primary);font-weight:900;font-size:20px}
.room-status-editor .room-status-choice:has(input:checked) .room-status-check{opacity:1}
.room-status-editor .room-status-context{padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-2);font-size:12px;line-height:1.5}
.room-status-editor .room-status-context strong{display:block;margin-bottom:5px}
.room-status-editor .room-status-context p{margin:4px 0;color:var(--ds-warning)}
.room-status-editor .room-status-context small{color:var(--text-secondary)}
.room-status-editor .room-status-tasks{justify-self:start}
.housekeeping-rc26 .room-focus-notice{margin:8px 0;gap:8px}
@media(max-width:1080px){.rooms-rc26-hf26 .room-board-filters{grid-template-columns:minmax(180px,1fr) minmax(155px,1fr)}.rooms-rc26-hf26 .room-board-count{align-self:end}}
@media(max-width:640px){.rooms-rc26-hf26 .room-board-filters{grid-template-columns:1fr}.rooms-rc26-hf26 .room-board-count{padding-bottom:0}.rooms-rc26-hf26 .room-board-grid{grid-template-columns:1fr}.rooms-rc26-hf26 .room-board-card{padding:15px}.rooms-rc26-hf26 .room-board-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.room-status-editor .room-status-choice{padding:12px}}

/* HF26: share one compact visual grammar between Rooms and manager HK board. */
.hk-manager-room-board .room-board-grid{margin-top:4px}
.hk-manager-room-board .room-board-card.hk-focused{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-border)}
.hk-manager-room-board .room-board-actions .hk-room-service{border-color:var(--ds-warning);color:var(--ds-warning)}

/* HF27: manager-confirmed housekeeping task sheets */
.hk-dispatch-modal{display:grid;gap:16px;min-width:0}
.hk-dispatch-workloads{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px}
.hk-dispatch-load{padding:12px;border:1px solid var(--mh-border,var(--border));border-radius:12px;background:var(--mh-surface,var(--surface));display:grid;gap:6px}
.hk-dispatch-load.overloaded{border-color:var(--mh-danger,#dc6565);box-shadow:inset 3px 0 0 var(--mh-danger,#dc6565)}
.hk-dispatch-meter{height:6px;background:var(--mh-border,var(--border));border-radius:99px;overflow:hidden}
.hk-dispatch-fill{height:100%;display:block;background:var(--mh-primary,#38a179);border-radius:99px;transition:width .2s}
.hk-dispatch-load.overloaded .hk-dispatch-fill{background:var(--mh-danger,#dc6565)}
.hk-dispatch-table-wrap{width:100%;max-height:min(56vh,580px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--mh-border,var(--border));border-radius:12px}
.hk-dispatch-table-wrap table{width:100%;min-width:580px}
.hk-dispatch-table-wrap th{position:sticky;top:0;z-index:1;background:var(--mh-surface,var(--surface))}
.hk-dispatch-select{max-width:100%;min-width:160px}
.hk-dispatch-summary{padding:10px 12px;border-radius:10px;background:var(--mh-surface-soft,var(--surface));border:1px solid var(--mh-border,var(--border))}
.hk-dispatch-blocked{border:1px solid var(--mh-border,var(--border));border-radius:10px;padding:12px}
.hk-dispatch-blocked summary{cursor:pointer;font-weight:650}
.hk-dispatch-blocked-list{max-height:220px;overflow:auto}
.hk-dispatch-blocked-list p{margin:8px 0}
@media(max-width:760px){.hk-dispatch-table-wrap{max-height:48vh}.housekeeping-rc26 .section-head .toolbar{flex-wrap:wrap}}


/* HF28 — Housekeeping QA / senior housekeeper inspection */
.hk-qa-sheet{display:grid;gap:16px;min-width:0}.hk-qa-settings{display:grid;gap:16px;min-width:0}.hk-qa-list{display:grid;gap:10px}.hk-qa-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface)}.hk-qa-choices{display:flex;gap:8px;flex-wrap:wrap}.hk-qa-choices label{cursor:pointer}.hk-qa-choices input{position:absolute;opacity:0;pointer-events:none}.hk-qa-choices span{display:inline-flex;min-height:38px;align-items:center;padding:7px 11px;border:1px solid var(--ds-border);border-radius:9px;background:var(--ds-surface-soft);font-weight:650}.hk-qa-choices input:checked+span{border-color:var(--ds-primary);background:color-mix(in srgb,var(--ds-primary) 12%,var(--ds-surface));color:var(--ds-primary)}.hk-qa-choices input[value="fail"]:checked+span{border-color:var(--ds-danger);background:var(--ds-danger-soft);color:var(--ds-danger)}.hk-qa-history{border-top:1px solid var(--ds-border);padding-top:12px}.hk-qa-history p{padding:8px 0;margin:0;border-bottom:1px solid var(--ds-border)}.hk-qa-settings textarea{min-height:260px;resize:vertical}@media(max-width:760px){.hk-qa-row{grid-template-columns:1fr}.hk-qa-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.hk-qa-choices span{justify-content:center}}

/* HF29 — Housekeeping workspace redesign */
.hk-rc29{display:grid;gap:16px}
.hk-page-head{align-items:flex-start;gap:18px;margin-bottom:0}
.hk-head-main{display:grid;gap:10px;min-width:0}
.hk-head-main p{max-width:880px}
.hk-head-actions{display:flex;flex-wrap:wrap;gap:10px;align-self:flex-start;justify-content:flex-end}
.hk-panel-elevated{border-radius:16px;border-color:var(--border);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 70%,transparent),var(--surface-1));box-shadow:var(--shadow-xs)}
.hk-section-head{align-items:flex-start;gap:14px}
.hk-section-head .toolbar{align-self:flex-start}
.hk-workflow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px}
.hk-workflow-step{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.01em}
.hk-workflow-step.is-live{border-color:color-mix(in srgb,var(--primary) 28%,var(--border));background:color-mix(in srgb,var(--primary) 9%,var(--surface-1));color:var(--text-primary)}
.hk-workflow-step.is-current{border-color:color-mix(in srgb,var(--ds-warning) 45%,var(--border));background:color-mix(in srgb,var(--ds-warning) 10%,var(--surface-1));color:var(--ds-warning)}
.hk-workflow-arrow{color:var(--text-muted);font-size:13px;font-weight:800}
.hk-inline-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:rgb(255 255 255 / .1);font-size:11px;font-weight:800}
.hk-state-stack{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.hk-automation-panel{display:grid;gap:18px}
.hk-automation-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.9fr);gap:16px;align-items:start}
.hk-automation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.hk-setting-toggle{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);cursor:pointer}
.hk-setting-toggle input{width:20px;height:20px;margin-top:2px;accent-color:var(--primary)}
.hk-setting-toggle strong{display:block;color:var(--text-primary);font-size:14px}
.hk-setting-toggle small{display:block;margin-top:4px;color:var(--text-muted);line-height:1.45}
.hk-setting-field{display:grid;gap:6px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}
.hk-setting-field span{color:var(--text-secondary);font-size:12px;font-weight:700}
.hk-setting-field input{width:100%;min-height:46px;font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums}
.hk-automation-save{align-self:end;min-height:46px}
.hk-automation-aside{display:grid;gap:12px}
.hk-inline-metric{display:grid;gap:5px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}
.hk-inline-metric span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.hk-inline-metric strong{font-size:16px;line-height:1.25;color:var(--text-primary)}
.hk-inline-metric small{line-height:1.45;color:var(--text-secondary)}
.hk-summary-grid{margin-top:0}
.hk-summary-grid .metric{min-height:100px;padding:16px 17px;gap:7px}
.hk-summary-grid .metric small{color:var(--text-muted)}
.hk-section-stack{display:grid;gap:16px}
.hk-shift-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.hk-shift-cards .split-note{border-radius:14px;background:var(--surface-2);border:1px solid var(--border);padding:14px}
.hk-mode-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.hk-manager-room-board .room-board-grid{gap:12px}
.hk-manager-room-board .room-board-card{border-radius:16px}
.hk-manager-room-board .room-board-head{padding-bottom:10px}
.hk-manager-room-board .room-board-dimensions{padding-bottom:11px}
@media (max-width:980px){
  .hk-page-head{flex-direction:column}
  .hk-head-actions{justify-content:flex-start}
  .hk-automation-layout{grid-template-columns:1fr}
}
@media (max-width:760px){
  .hk-automation-form{grid-template-columns:1fr}
  .hk-mode-tabs{justify-content:flex-start}
}

/* HF30 — Housekeeping task modal redesign */
.hk-task-modal{display:grid;gap:16px;min-width:0}
.hk-task-modal-intro{display:grid;gap:6px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}
.hk-task-modal-intro strong{font-size:15px;color:var(--text-primary)}
.hk-task-modal-intro p{margin:0;color:var(--text-secondary);line-height:1.5}
.hk-task-modal-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1.25fr);gap:14px;align-items:start}
.hk-field{display:grid;gap:7px;min-width:0}
.hk-field>span{font-size:12px;font-weight:750;color:var(--text-secondary)}
.hk-field input{width:100%;background:var(--surface-2);border-color:var(--border)}.hk-field select{width:100%;background:var(--surface-2);border-color:var(--border)}.hk-field textarea{width:100%;background:var(--surface-2);border-color:var(--border)}
.hk-field textarea{min-height:120px;resize:vertical}
.hk-field-assignee{grid-column:1}
.hk-task-modal-side{display:grid;gap:14px;grid-column:2}
.hk-task-flags-panel{grid-column:1/-1;display:grid;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 82%,transparent),var(--surface-1))}
.hk-task-section-head{display:grid;gap:4px}
.hk-task-section-head h3{margin:0;font-size:15px}
.hk-task-section-head p{margin:0;color:var(--text-muted);line-height:1.45}
.hk-task-flags{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.hk-flag-chip{position:relative;display:flex;min-width:0;margin:0;cursor:pointer}
.hk-flag-chip input{position:absolute;inset:0;opacity:0;pointer-events:none}
.hk-flag-chip span{display:grid;gap:4px;width:100%;min-height:84px;padding:12px 13px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.hk-flag-chip:hover span{transform:translateY(-1px);box-shadow:var(--shadow-xs)}
.hk-flag-chip strong{font-size:13px;line-height:1.35;color:var(--text-primary)}
.hk-flag-chip small{line-height:1.4;color:var(--text-muted)}
.hk-flag-chip input:checked+span{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--surface-1));box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 16%,transparent)}
.hk-field-notes{grid-column:1/-1}
.hk-task-guidance{grid-column:1/-1;display:grid;gap:6px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--primary) 20%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--primary) 5%,var(--surface-1))}
.hk-task-guidance strong{font-size:13px;color:var(--text-primary)}
.hk-task-guidance p{margin:0;color:var(--text-secondary);line-height:1.5}
@media (max-width:900px){
  .hk-task-modal-grid{grid-template-columns:1fr}
  .hk-field-assignee{grid-column:auto}.hk-task-modal-side{grid-column:auto}
}
@media (max-width:760px){
  .hk-task-flags{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
  .hk-task-flags{grid-template-columns:1fr}
  .hk-flag-chip span{min-height:72px}
}

/* HF31 — faster housekeeping task intake + clear QA handoff */
.hk-inspection-help{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--ds-warning) 42%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--ds-warning) 8%,var(--surface-1))}
.hk-inspection-help>div{display:grid;gap:4px;min-width:0}
.hk-inspection-help strong{font-size:14px;color:var(--text-primary)}
.hk-inspection-help span{color:var(--text-secondary);line-height:1.45}
.hk-inspection-help .btn{flex:0 0 auto}
.hk-task-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.hk-manager-room-board .room-qa-now{grid-column:1/-1;min-height:42px;font-weight:750}
.hk-task-modal .hk-field-assignee:after{content:'Оставете неназначена, ако искате свободна камериерка да поеме задачата.';display:block;margin-top:-2px;color:var(--text-muted);font-size:11px;line-height:1.35}
@media(max-width:720px){.hk-inspection-help{align-items:stretch;flex-direction:column}.hk-inspection-help .btn{width:100%}}

/* HF33: one explicit QA command centre and visible not-ready linen workflow. */
.hk-qa-command-panel{display:grid;gap:14px;border:1px solid color-mix(in srgb,var(--primary) 40%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--primary) 5%,var(--surface-1))}
.hk-qa-command-panel .section-head{margin-bottom:0;align-items:flex-start}
.hk-qa-command-panel .hk-inline-count{vertical-align:middle;color:var(--text-primary);border:1px solid var(--border);background:var(--surface-2)}
.hk-qa-command-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}
.hk-qa-command-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:start;padding:14px;border:1px solid var(--border);border-radius:13px;background:var(--surface-1)}
.hk-qa-command-card>div{display:grid;gap:4px;min-width:0}
.hk-qa-command-card>div strong{font-size:16px;color:var(--text-primary)}
.hk-qa-command-card>div small{color:var(--text-muted);line-height:1.4}
.hk-qa-command-card>.badge{justify-self:end;max-width:100%;white-space:normal;text-align:center}
.hk-qa-command-card>.btn{grid-column:1/-1;width:100%;margin-top:2px}
.hk-qa-done-note{margin:0;color:var(--text-secondary);font-size:13px}
.hk-head-inspection{border-color:color-mix(in srgb,var(--primary) 52%,var(--border));color:var(--text-primary);background:color-mix(in srgb,var(--primary) 7%,var(--surface-1))}
.rooms-rc26-hf26 .room-board-state.state-linen_pending{color:var(--ds-warning);border-color:color-mix(in srgb,var(--ds-warning) 48%,var(--border));background:color-mix(in srgb,var(--ds-warning) 12%,var(--surface-1))}
.rooms-rc26-hf26 .room-board-card.room-state-linen_pending{border-color:color-mix(in srgb,var(--ds-warning) 35%,var(--border))}
.rooms-rc26-hf26 .room-board-card.room-state-linen_pending:before{background:var(--ds-warning)}
.room-board-actions .room-linen-now{border-color:color-mix(in srgb,var(--ds-warning) 48%,var(--border));color:var(--ds-warning)}
.room-status-editor .room-status-qa{justify-self:start;min-height:43px}
@media(max-width:639px){
 .hk-qa-command-grid{grid-template-columns:1fr}
 .hk-qa-command-card{padding:12px}
 .hk-head-inspection{width:100%}
}

/* HF34 — physical occupancy discrepancies: visible to managers; report on assigned tasks. */
.room-board-state.state-discrepancy{background:color-mix(in srgb,var(--ds-danger) 10%,var(--surface-2));color:var(--ds-danger);border-color:var(--ds-danger)}
.room-board-card.room-state-discrepancy{border-color:color-mix(in srgb,var(--ds-danger) 35%,var(--border))}
.hk-discrepancy-panel{border:1px solid color-mix(in srgb,var(--ds-warning) 35%,var(--border));display:grid;gap:14px}
.hk-discrepancy-panel .section-head{align-items:center}
.hk-discrepancy-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:10px}
.hk-discrepancy-item{display:grid;align-items:start;gap:12px;padding:14px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2)}
.hk-discrepancy-item.critical{border-color:color-mix(in srgb,var(--ds-danger) 46%,var(--border))}
.hk-discrepancy-item>div:first-child{display:grid;gap:5px}
.hk-discrepancy-item strong{color:var(--text-primary)}.hk-discrepancy-item small{color:var(--text-secondary);overflow-wrap:anywhere;line-height:1.45}
.hk-discrepancy-empty{padding:14px;color:var(--text-secondary);border:1px dashed var(--border);border-radius:10px}
.hk-observe-form{display:grid;gap:16px}.hk-observe-form>p{margin:0;color:var(--text-secondary);line-height:1.5}
.hk-observe-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.hk-observe-options label{position:relative;margin:0;cursor:pointer}.hk-observe-options input{position:absolute;opacity:0;pointer-events:none}
.hk-observe-options span{display:grid;gap:6px;min-height:84px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}
.hk-observe-options strong{color:var(--text-primary);font-size:15px}.hk-observe-options small{color:var(--text-muted)}
.hk-observe-options input:checked+span{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,var(--surface-1));box-shadow:inset 0 0 0 1px var(--primary)}
.hk-observe-options input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}
.hk-observe-note{display:grid;gap:7px;font-weight:650;color:var(--text-secondary)}.hk-observe-note textarea{min-height:100px;resize:vertical;width:100%}
.hk-discrepancy-context{padding:14px;border:1px solid var(--border);background:var(--surface-2);border-radius:12px}.hk-discrepancy-context p{margin:5px 0 0;color:var(--text-secondary)}
@media(max-width:540px){.hk-observe-options{grid-template-columns:1fr}.hk-discrepancy-item .toolbar{flex-direction:column;align-items:stretch}.hk-discrepancy-item .toolbar .btn{width:100%}}

/* HF35 — reservation vs check-in identity separation */
.reservation-identity-later{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);align-self:end}
.reservation-identity-later strong{font-size:12px;color:var(--text-primary)}
.reservation-identity-later small{line-height:1.45;color:var(--text-muted)}
.checkin-registration{display:grid;gap:16px}
.checkin-registration-intro{display:grid;gap:5px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}
.checkin-registration-intro p{margin:0;color:var(--text-secondary);line-height:1.5}
.checkin-permanent{display:flex!important;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);cursor:pointer}.checkin-print-card{display:flex!important;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);cursor:pointer}
.checkin-permanent input{flex:none;width:18px!important;height:18px;margin:2px 0 0;accent-color:var(--primary)}.checkin-print-card input{flex:none;width:18px!important;height:18px;margin:2px 0 0;accent-color:var(--primary)}
.checkin-permanent span{display:grid;gap:3px}.checkin-permanent strong{font-size:12px}.checkin-permanent small{color:var(--text-muted);line-height:1.35}
#ci-expiry-wrap.is-disabled{opacity:.55}
.agency-billing-profile{display:grid;gap:12px;margin:4px 0;padding:15px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}
.agency-billing-profile .reservation-v112-section-title{margin:0}
@media(max-width:640px){.checkin-registration .form-grid{grid-template-columns:1fr}.reservation-identity-later{grid-column:1/-1}}

/* assets/ui-apple-hf36.css */
/* HF36 — Apple HIG-inspired, cross-workspace web accessibility and interface consistency.
   An additive layer: preserves every HF35 business flow, role, action and responsive calendar.
   macOS precision controls remain compact; touch targets are 44 CSS pixels. */
:root {
  --hig-copy: .9375rem;
  --hig-secondary: .8125rem;
  --hig-caption: .75rem;
  --hig-touch-target: 44px;
  --hig-control-radius: var(--radius-control, 10px);
  --hig-panel-radius: var(--radius-card, 14px);
}

/* Consistent layout containment across the entire application, not just reservations. */
.app-shell.sidebar-hover-shell{ min-width: 0; }
.app-shell.sidebar-hover-shell .main{ min-width: 0; }
.app-shell.sidebar-hover-shell .content{ min-width: 0; }
.content :is(.page-head,.section-head,.toolbar,.panel,.ui-card,.table-wrap){ min-width: 0; }
.modal{ min-width: 0; }.modal-body{ min-width: 0; }.modal-head{ min-width: 0; }.modal-actions{ min-width: 0; }
.ui-drawer{ min-width: 0; }.calendar-ops-drawer{ min-width: 0; }.reservation-detail-drawer { min-width: 0; }
.content :is(.panel,.ui-card,.metric){ overflow-wrap: anywhere; }.modal :is(.panel,.ui-card) { overflow-wrap: anywhere; }
.content :is(.table-wrap,.hk-dispatch-table-wrap,.report-table-wrap){max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;}
.modal-body .table-wrap {max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;}
.content :is(.table-wrap,.hk-dispatch-table-wrap) :is(th,td) {overflow-wrap:normal;}

/* Semantic reading hierarchy; only decorative marks may be smaller than 11px. */
.content {font-size:var(--hig-copy);line-height:1.5;}
.content :is(p,.muted,.form-helper,.split-note,.empty){line-height:1.5;}
.modal-body :is(p,.muted,.form-helper){line-height:1.5;}.ui-drawer :is(p,.muted) {line-height:1.5;}
.content :is(.page-head p,.section-head p) {color:var(--text-secondary);}
.content :is(label,.report-control>span,.hk-field>span){font-size:var(--hig-secondary);line-height:1.4;}
.modal-body :is(label,.hk-field>span) {font-size:var(--hig-secondary);line-height:1.4;}
.content :is(.eyebrow,.nav-group-title){font-size:var(--hig-caption);line-height:1.4;}
.modal-body :is(.eyebrow,.form-helper){font-size:var(--hig-caption);line-height:1.4;}
:where(.badge,.status-badge,.chip) {font-size:var(--hig-caption);line-height:1.4;}

/* The rail has accumulated multiple overrides; restore legible labels and a consistent row. */
.sidebar-hover-shell .nav button {height:42px;min-height:42px;border-radius:var(--hig-control-radius);}
.sidebar-hover-shell .nav button>.nav-label {font-size:13px;line-height:1.25;}
.sidebar-hover-shell .nav-group-title {font-size:11px;line-height:1.25;letter-spacing:.09em;}
.sidebar-hover-shell .sidebar-hotel-name {font-size:13px;line-height:1.25;}
.sidebar-hover-shell .sidebar-hotel-status {font-size:11px;line-height:1.3;letter-spacing:.025em;}
@media (min-width:1200px) and (hover:hover) and (pointer:fine){
  .app-shell.sidebar-hover-shell{--sidebar-expanded:244px;}
  .sidebar-hover-shell .sidebar:hover .nav-group-title{max-height:22px;line-height:1.25;}
  .sidebar-hover-shell .sidebar.keyboard-expanded .nav-group-title{max-height:22px;line-height:1.25;}
  .sidebar-hover-shell .sidebar:hover .sidebar-hotel-context{height:auto;min-height:56px;flex-basis:56px;}
  .sidebar-hover-shell .sidebar.keyboard-expanded .sidebar-hotel-context{height:auto;min-height:56px;flex-basis:56px;}
  .sidebar-hover-shell .brand-copy small{font-size:11px!important;letter-spacing:.06em!important;}
}

/* Compact topbar, but no unreadable secondary labels. */
.topbar .platform-hotel-context small{font-size:11px;line-height:1.25;letter-spacing:0;}
.topbar .top-user-text small {font-size:11px;line-height:1.25;letter-spacing:0;}
.topbar .platform-hotel-context strong{font-size:12.5px;line-height:1.3;}
.topbar .top-user-text strong{font-size:12.5px;line-height:1.3;}
.topbar .business-date.app-date{font-size:12.5px;line-height:1.3;}
.topbar .cashier-chip {font-size:12.5px;line-height:1.3;}
.topbar .top-left{min-width:0;}.topbar .top-actions {min-width:0;}
.topbar .top-user-menu{min-width:0;}.topbar .hotel-switch{min-width:0;}

/* Shared controls: preserve 40px precision density on desktop, 44px touch size below. */
:where(.content,.modal,.ui-drawer,.topbar) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){min-width:0;max-width:100%;}
:where(.content,.modal,.ui-drawer) :is(.btn,.tab,.yotta-select-trigger):disabled {cursor:not-allowed;}
:where(.content,.modal,.ui-drawer,.topbar) :is(input,select,textarea,button,a,[role="button"]):focus-visible{
  outline:2px solid var(--primary);
  outline-offset:3px;
}
.sidebar :is(button,a):focus-visible {
  outline:2px solid var(--primary);
  outline-offset:3px;
}
/* Keyboard focus remains visible on custom radio/check selectors. */
.hk-flag-chip input:focus-visible+span{outline:2px solid var(--primary);outline-offset:3px;}
.hk-observe-options input:focus-visible+span {outline:2px solid var(--primary);outline-offset:3px;}

/* Modals, drawers and popovers must remain inside the viewport and tolerate long values. */
.modal-head h2{min-width:0;overflow-wrap:anywhere;line-height:1.25;}.modal-header h2 {min-width:0;overflow-wrap:anywhere;line-height:1.25;}
.modal-actions{gap:8px;}.modal-footer{gap:8px;}.reservation-detail-actions{gap:8px;}.calendar-ops-drawer-actions {gap:8px;}
:where(.top-user-popover,.context-menu,.dropdown-menu,.yotta-select-menu){max-width:min(440px,calc(100vw - 24px));}
:where(.top-user-popover,.context-menu,.dropdown-menu,.yotta-select-menu) :is(button,[role="option"]){min-height:40px;}
:where(.modal,.ui-drawer,.reservation-detail-drawer,.calendar-ops-drawer) :is(input,select,textarea){font-size:max(14px,var(--type-body,.875rem));}

/* Consistent informative statuses; never communicate state with color alone. */
:where(.badge,.status-badge,.chip,.room-board-state){white-space:normal;overflow-wrap:anywhere;}
:where(.toast,.notice,.warning-panel,.split-note){line-height:1.45;}

@media (pointer:coarse){
  :where(.content,.modal,.ui-drawer,.topbar,.sidebar) :is(.btn.icon-only,.mobile-menu,.modal-close-x,[aria-label="Затвори"]){min-width:var(--hig-touch-target);}
  :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){font-size:16px;}
  .hk-flag-chip span{min-height:84px;}.hk-observe-options span {min-height:84px;}
}

@media (max-width:760px){
  .content{padding-inline:max(12px,var(--safe-left,0px));padding-bottom:max(20px,var(--safe-bottom,0px));}
  .content .page-head{flex-wrap:wrap;align-items:start;gap:12px;}
  .content .page-head .toolbar{max-width:100%;flex-wrap:wrap;}
  .content .section-head{flex-wrap:wrap;align-items:start;}
  .content .section-head>.toolbar{max-width:100%;flex-wrap:wrap;}
  .content .toolbar :is(button,input,select){max-width:100%;}
  .modal-body{overscroll-behavior:contain;}
  .modal-actions{padding-bottom:max(18px,var(--safe-bottom,0px));}
  :where(.top-user-popover,.context-menu,.dropdown-menu,.yotta-select-menu){max-width:calc(100vw - 16px);}
}
@media (max-width:420px){
  .content .page-head h1{font-size:1.5rem;line-height:1.15;}
  .content :is(.panel,.ui-card){min-width:0;}
  .modal-head{padding-inline:16px;}.modal-header{padding-inline:16px;}
  .modal-body{padding-inline:16px;}
  .modal-actions{padding-inline:16px;}
}
@media (prefers-reduced-motion:reduce){
  .app-shell.sidebar-hover-shell .sidebar{animation:none!important;transition-duration:.001ms!important;}
  .sidebar-hover-shell .nav button{animation:none!important;transition-duration:.001ms!important;}
  .topbar{animation:none!important;transition-duration:.001ms!important;}.modal{animation:none!important;transition-duration:.001ms!important;}.modal-backdrop{animation:none!important;transition-duration:.001ms!important;}
}
@media (prefers-contrast:more){
  :where(.badge,.status-badge,.chip){border-width:1px;}
}

/* HF36 browser-audit follow-up: legacy high-specificity 39/40px controls overrode the
   generic pointer rule. Keep the desktop density and make the actual touch surfaces 44px. */
@media (pointer:coarse){
  .sidebar-hover-shell .nav button{height:44px;min-height:44px;}.content .tab{min-height:44px!important;}.content .yotta-select-trigger{min-height:44px!important;}
  .content .calendar-filter-trigger{min-height:44px!important;}.topbar button{min-height:44px!important;}.modal button{min-height:44px!important;}.ui-drawer button{min-height:44px!important;}
  .top-user-popover button{min-height:44px!important;}.context-menu button{min-height:44px!important;}.dropdown-menu button{min-height:44px!important;}
  .yotta-select-menu [role="option"] {min-height:44px!important;}
  .content :is(input:not([type="checkbox"]):not([type="radio"]),select){min-height:44px!important;}
  .modal-body :is(input:not([type="checkbox"]):not([type="radio"]),select){min-height:44px!important;}
  .ui-drawer :is(input:not([type="checkbox"]):not([type="radio"]),select)
  {min-height:44px!important;}
  .content .table-wrap :is(th,td){font-size:max(12px,var(--type-caption,.75rem));}.content .yotta-select-trigger{font-size:max(14px,var(--type-control,.875rem));}
}

/* Phone shell: date and account share the second line; avoid a third line
   containing only the account avatar. Preserve all actions and the search icon. */
@media (max-width:620px){
  .sidebar-hover-shell .topbar{position:relative;padding-bottom:8px;align-items:start;}
  .sidebar-hover-shell .topbar .top-left{align-self:start;}
  .sidebar-hover-shell .topbar .top-search-trigger{align-self:start;margin-top:0;}
  .sidebar-hover-shell .topbar .top-actions{
    position:absolute;right:10px;bottom:8px;width:auto;max-width:calc(100% - 20px);
    grid-column:auto;grid-row:auto;justify-content:flex-end;pointer-events:none;
  }
  .sidebar-hover-shell .topbar .top-actions>*{pointer-events:auto;}
}
@media (max-width:360px){
  .rooms-rc26-hf26 .room-board-actions{grid-template-columns:minmax(0,1fr);}
  .rooms-rc26-hf26 .room-board-actions .btn{width:100%;}
}

/* assets/ui-compact-hf38.css */
/* HF38 — Whole-app compact polish. Loaded after HF36; additive presentation layer.
 * Text reduction lives in app.js: essential validation, finance, safety and PII
 * instructions stay visible. Do not hide paragraphs or disabled-state explanations. */
:root{--hf38-gap:8px;--hf38-section:12px;--hf38-field:40px;}

/* Keep short headings, action groups, and section controls on one line when there
 * is real room; do not use fixed widths that push actions into adjacent panels. */
.content :is(.page-head,.section-head){min-width:0;column-gap:14px;row-gap:8px;}
.content .page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px;}
.content .page-head>div:first-child{flex:1 1 260px;min-width:0;max-width:100%;}
.content .page-head h1{margin:0;line-height:1.18;overflow-wrap:anywhere;}
.content .page-head .eyebrow{margin:0 0 3px;font-size:11px;line-height:1.3;}
.content .page-head p{margin:3px 0 0;max-width:64ch;font-size:13px;line-height:1.42;}
.content .page-head>.toolbar{display:flex;flex:0 1 auto;width:auto;max-width:100%;margin:0;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;align-self:center;}
.content .page-head>.toolbar>:is(.btn,button){flex:0 0 auto;margin:0;}
.content .page-head>.btn{flex:0 0 auto;margin:0;align-self:center;}
.content .section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:10px;}
.content .section-head>div:first-child{min-width:0;flex:1 1 220px;}
.content .section-head h2{margin:0;line-height:1.25;}.content .section-head h3{margin:0;line-height:1.25;}
.content .section-head p{margin:3px 0 0;font-size:12.5px;line-height:1.4;max-width:74ch;}
.content .section-head>.toolbar{display:flex;align-items:center;flex:0 1 auto;gap:8px;flex-wrap:wrap;justify-content:flex-end;}

/* Predictable breathing room, not nested piles of margins. */
.content :is(.cards,.metric-grid,.dashboard-operational-counters){gap:10px;}
.content :is(.panel,.ui-card){min-width:0;}
.content :is(.panel,.ui-card) :is(.toolbar,.form-grid,.table-wrap){min-width:0;}
.content :is(.panel,.ui-card)>.section-head:first-child{margin-top:0;}
.content :is(.panel,.ui-card)>.section-head:first-child+ :is(.toolbar,.form-grid,.table-wrap){margin-top:0;}
.content .toolbar{column-gap:8px;row-gap:8px;min-width:0;}.modal .toolbar{column-gap:8px;row-gap:8px;min-width:0;}.ui-drawer .toolbar{column-gap:8px;row-gap:8px;min-width:0;}
.content .toolbar>:is(input,select,.yotta-select,.btn,button){min-width:0;max-width:100%;}.modal .toolbar>:is(input,select,.yotta-select,.btn,button){min-width:0;max-width:100%;}
.content .toolbar>label{min-width:0;max-width:100%;}.modal .toolbar>label{min-width:0;max-width:100%;}
.content .toolbar>label :is(input,select){min-width:0;max-width:100%;}.modal .toolbar>label :is(input,select){min-width:0;max-width:100%;}
.content .toolbar :is(.btn,button){white-space:normal;text-wrap:balance;}.modal .toolbar :is(.btn,button){white-space:normal;text-wrap:balance;}
.content :is(.form-grid,.report-controls)>label:not(:has(>input[type="checkbox"])){min-width:0;display:flex;flex-direction:column;gap:5px;}
.modal .form-grid>label:not(:has(>input[type="checkbox"])){min-width:0;display:flex;flex-direction:column;gap:5px;}
.ui-drawer .form-grid>label:not(:has(>input[type="checkbox"])){min-width:0;display:flex;flex-direction:column;gap:5px;}
.content .form-grid{column-gap:12px;row-gap:10px;min-width:0;}.modal .form-grid{column-gap:12px;row-gap:10px;min-width:0;}.ui-drawer .form-grid{column-gap:12px;row-gap:10px;min-width:0;}
.content .form-grid>.full{grid-column:1/-1;}.modal .form-grid>.full{grid-column:1/-1;}.ui-drawer .form-grid>.full{grid-column:1/-1;}
.content .form-grid :is(input,select,textarea,.yotta-select){min-width:0;max-width:100%;}
.modal .form-grid :is(input,select,textarea,.yotta-select){min-width:0;max-width:100%;}

/* Search / filter areas: aligned inputs, adjacent secondary actions, no ghost space. */
.reservations-rc43 .reservation-registry-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:8px;align-items:center;padding:9px;}
.reservations-rc43 .reservation-registry-filters>input{min-width:0;width:100%;}
.reservations-rc43 .reservation-registry-filters>select{width:100%;min-width:0;}
.reservations-rc43 .reservation-registry-filters>.badge{justify-self:end;align-self:center;}
.guests-rc43 .guest-workspace-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:9px;}
.guests-rc43 .guest-workspace-toolbar #guest-q{min-width:0;width:100%;}
.guests-rc43 .guest-workspace-toolbar .btn{width:auto;white-space:nowrap;}
.platform-rc43 .platform-hotel-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,auto);gap:8px;align-items:center;padding:6px;min-width:0;}
.platform-rc43 .platform-hotel-filters .platform-search{min-width:0;max-width:100%;}
.platform-rc43 .platform-hotel-filters :is(input,select){min-width:0;width:100%;}
.content .frontdesk-filter-tabs{gap:6px;}
.content .frontdesk-queue-tools>input{width:100%;min-width:0;}
.content :is(.company-filters,.group-filters,.room-toolbar,.frontdesk-controls){display:flex;align-items:center;flex-wrap:wrap;gap:8px;}
.content :is(.company-filters,.group-filters,.room-toolbar,.frontdesk-controls)>:is(input,select){flex:1 1 168px;min-width:0;max-width:100%;}

/* Date-range inputs share the same baseline at any viewport. In reports and
 * documents the two actual dates remain adjacent unless the width is too small. */
.content .report-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,236px),1fr));align-items:end;gap:10px;padding:11px;}
.content .report-control{min-width:0;flex:none;}
.content .report-control>.toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:center;}
.content .report-control>.toolbar>:is(input,select){min-width:0;width:100%;padding-inline:6px;}
.content .report-control>.toolbar>span{white-space:nowrap;text-align:center;}
.content .report-controls>#run-report{justify-self:start;align-self:end;margin:0;}
.content .report-controls .yotta-select{width:100%;min-width:0;}

/* Operational cards and finance. Suppress nested surplus gaps; do not alter status
 * semantics, event handlers or any business-day/calendar calculations. */
.dashboard-rc33 .dashboard-page-head{align-items:center;margin-bottom:12px;}
.dashboard-rc33 .dashboard-page-head h1{font-size:clamp(1.55rem,2.2vw,2.05rem);line-height:1.18;}
.dashboard-rc33 .dashboard-page-actions{width:auto;justify-content:flex-end;}
.rooms-rc43 .page-head>.toolbar{justify-content:flex-end;}
.rooms-rc26-hf26 .room-board-actions{gap:8px;padding-top:10px;}
.hk-rc29 .hk-page-head{display:flex;flex-direction:row;align-items:center;gap:12px;margin-bottom:12px;}
.hk-rc29 .hk-head-main{gap:4px;flex:1 1 270px;min-width:0;}
.hk-rc29 .hk-head-main>p{margin:0;font-size:12.5px;line-height:1.4;}
.hk-rc29 .hk-page-head>.toolbar{justify-content:flex-end;}
.invoices-rc43 .yotta-billing-head{align-items:center;}
.invoices-rc43 .yotta-billing-head h1{font-size:clamp(1.65rem,2.5vw,2.15rem);}
.invoices-rc43 .yotta-billing-head>.toolbar{width:auto;flex:0 1 auto;}
.invoices-rc43 .yotta-billing-head .toolbar>.btn{flex:0 1 auto;min-width:0;}
.invoices-rc43 .yotta-billing-head .yotta-doc-menu{flex:0 1 auto;min-width:0;}
.invoices-rc43 .yotta-doc-menu>summary{height:100%;display:flex;align-items:center;gap:6px;}
.platform-rc43 .platform-page-head{align-items:center;}
.platform-rc43 .platform-selection-intro p{margin:3px 0 0;line-height:1.45;}

/* Modal headers and button rows are one family; long Bulgarian labels wrap rather
 * than collide. Native cancel/submit DOM order is retained for keyboard use. */
.modal:not(.command-palette-modal) .modal-head{display:flex;gap:10px;align-items:center;justify-content:space-between;min-width:0;}
.modal:not(.command-palette-modal) .modal-header{display:flex;gap:10px;align-items:center;justify-content:space-between;min-width:0;}
.modal :is(.modal-head,.modal-header)>:is(h1,h2,h3){min-width:0;overflow-wrap:anywhere;}
.modal:not(.command-palette-modal) .modal-actions{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;}.modal:not(.command-palette-modal) .modal-footer{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;}
.modal:not(.command-palette-modal) .modal-actions>:is(.btn,button){width:auto;max-width:100%;min-width:0;flex:0 1 auto;margin:0;}
.modal:not(.command-palette-modal) .modal-footer>:is(.btn,button){width:auto;max-width:100%;min-width:0;flex:0 1 auto;margin:0;}
.modal:not(.command-palette-modal) .modal-actions .modal-cancel{order:0;margin-right:auto;}
.modal:not(.command-palette-modal) .modal-actions button[type="submit"]{order:0;}

@media (min-width:900px){
  .reservations-rc43 .reservation-registry-filters{grid-template-columns:minmax(190px,2fr) repeat(4,minmax(108px,1fr)) auto;}
  .content .form-grid:not(.reservation-flow-panel .form-grid){grid-template-columns:repeat(2,minmax(0,1fr));}
  .modal .form-grid:not(.reservation-flow-panel .form-grid){grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:700px) and (max-width:899px){
  .reservations-rc43 .reservation-registry-filters>input{grid-column:span 2;}
}
@media (max-width:760px){
  /* Older mobile rules turn page-head into a column but leave flex-wrap:wrap.
     That moves toolbars into a second *horizontal* column and clips actions. */
  .content .page-head{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:10px;margin-bottom:10px;}
  .content .page-head>div:first-child{flex:0 1 auto;width:100%;max-width:100%;}
  .content .page-head>.toolbar{flex:0 0 auto;width:100%;max-width:100%;align-self:stretch;justify-content:flex-start;}
  .content .page-head>.btn{align-self:flex-start;}
  .content .section-head{align-items:flex-start;gap:8px;}
  .content .section-head>.toolbar{justify-content:flex-start;}
  .hk-rc29 .hk-page-head{align-items:flex-start;flex-direction:column;}
  .hk-rc29 .hk-page-head>.toolbar{width:100%;justify-content:flex-start;}
  .platform-rc43 .platform-hotel-filters{grid-template-columns:minmax(0,1fr);width:100%;}
  .invoices-rc43 .yotta-billing-head>.toolbar{width:100%;}
  .content .report-controls>#run-report{justify-self:stretch;}
}
@media (max-width:639px){
  /* Search is the first full row, search actions are two balanced adjacent cells. */
  .guests-rc43 .guest-workspace-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));}
  .guests-rc43 .guest-workspace-toolbar #guest-q{grid-column:1/-1;}
  .guests-rc43 .guest-workspace-toolbar .btn{width:100%;}
  .reservations-rc43 .reservation-registry-filters{grid-template-columns:repeat(2,minmax(0,1fr));}
  .reservations-rc43 .reservation-registry-filters>input{grid-column:1/-1;}
  .reservations-rc43 .reservation-registry-filters>.badge{grid-column:1/-1;justify-self:start;}
  .content .page-head>.toolbar>.btn{flex:0 1 auto;}
  .content .section-head>div:first-child{flex:1 1 100%;}
  .content .report-controls{grid-template-columns:minmax(0,1fr);}
  .modal:not(.command-palette-modal) .modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;}
  .modal:not(.command-palette-modal) .modal-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;}
  .modal:not(.command-palette-modal) .modal-actions>:is(.btn,button){width:100%;}
  .modal:not(.command-palette-modal) .modal-footer>:is(.btn,button){width:100%;}
  .modal:not(.command-palette-modal) .modal-actions>:only-child{grid-column:1/-1;}
  .modal:not(.command-palette-modal) .modal-footer>:only-child{grid-column:1/-1;}
}
@media (max-width:359px){
  .reservations-rc43 .reservation-registry-filters{grid-template-columns:minmax(0,1fr);}
  .content .report-control>.toolbar{grid-template-columns:minmax(0,1fr);}
  .content .report-control>.toolbar>span{display:none;}
  .modal:not(.command-palette-modal) .modal-actions{grid-template-columns:minmax(0,1fr);}
  .modal:not(.command-palette-modal) .modal-footer{grid-template-columns:minmax(0,1fr);}
}
@media (pointer:coarse){.modal :is(.modal-actions,.modal-footer)>button{min-height:44px;}
}

/* assets/ui-team-hf39.css */
/* HF39 — compact team operations panel. Only the dashboard team panel is affected. */
.dashboard-rc33 .team-ops-panel{display:grid;gap:12px;min-width:0;}
.dashboard-rc33 .team-ops-head{margin:0;align-items:center;}
.dashboard-rc33 .team-ops-head>div{flex:1 1 auto;}
.dashboard-rc33 .team-ops-head .btn{flex:0 0 auto;}
.dashboard-rc33 .team-ops-risk{display:flex;align-items:center;gap:10px;min-width:0;margin:0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--warning) 35%,var(--border));border-radius:var(--radius-menu);background:var(--warning-soft);}
.dashboard-rc33 .team-ops-risk-icon{color:var(--warning);display:grid;place-items:center;flex:0 0 24px;}
.dashboard-rc33 .team-ops-risk-copy{display:flex;gap:2px;flex-direction:column;min-width:0;line-height:1.35;}
.dashboard-rc33 .team-ops-risk-copy strong{font-size:13px;font-weight:700;color:var(--text-primary);}
.dashboard-rc33 .team-ops-risk-copy>span{font-size:12.5px;color:var(--text-secondary);}
.dashboard-rc33 .team-ops-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;overflow:hidden;min-width:0;margin:0;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-2);}
.dashboard-rc33 .team-ops-stat{display:grid;align-content:center;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:3px;min-width:0;min-height:76px;padding:11px 16px;position:relative;}
.dashboard-rc33 .team-ops-stat+.team-ops-stat{border-inline-start:1px solid var(--divider);}
.dashboard-rc33 .team-ops-stat:before{content:'';position:absolute;inset-inline-start:0;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--info);}
.dashboard-rc33 .team-ops-stat[data-tone="late"]:before{background:var(--warning);}
.dashboard-rc33 .team-ops-stat[data-tone="missed"]:before{background:var(--danger);}
.dashboard-rc33 .team-ops-stat[data-tone="ready"]:before{background:var(--success);}
.dashboard-rc33 .team-ops-stat-label{color:var(--text-secondary);font-weight:650;font-size:12px;align-self:end;white-space:normal;line-height:1.25;}
.dashboard-rc33 .team-ops-stat strong{grid-column:2;grid-row:1/3;font-variant-numeric:tabular-nums;font-size:clamp(22px,2vw,28px);font-weight:720;line-height:1;align-self:center;color:var(--text-primary);}
.dashboard-rc33 .team-ops-stat small{grid-column:1;color:var(--text-muted);font-size:11px;line-height:1.3;}
.dashboard-rc33 .team-ops-workload{min-width:0;}.dashboard-rc33 .team-ops-attention{min-width:0;}
.dashboard-rc33 :is(.team-ops-workload,.team-ops-attention)>h3{font-size:13px;font-weight:700;margin:0 0 8px;color:var(--text-primary);}
.dashboard-rc33 .team-ops-workload-list{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;}
.dashboard-rc33 .team-ops-work-item{display:flex;align-items:center;gap:12px;justify-content:space-between;max-width:100%;min-width:min(100%,230px);padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-menu);color:var(--text-secondary);font-size:12.5px;line-height:1.3;}
.dashboard-rc33 .team-ops-work-item strong{font-variant-numeric:tabular-nums;font-size:16px;color:var(--text-primary);}
.dashboard-rc33 .team-ops-work-item small{font-size:11px;color:var(--text-muted);}
.dashboard-rc33 .team-ops-work-empty{margin:0;font-size:12.5px;color:var(--text-muted);}
.dashboard-rc33 .team-ops-attention-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:8px;}
.dashboard-rc33 .team-ops-person{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-2);font-size:12px;min-width:0;}
.dashboard-rc33 .team-ops-person>div{display:grid;gap:3px;min-width:0;}
.dashboard-rc33 .team-ops-person strong{font-size:13px;color:var(--text-primary);}
.dashboard-rc33 .team-ops-person :is(span,small){color:var(--text-secondary);}
.dashboard-rc33 .team-ops-person-state{justify-items:end;}
@media(max-width:720px){
 .dashboard-rc33 .team-ops-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}
 .dashboard-rc33 .team-ops-stat:nth-child(3){border-inline-start:0;}
 .dashboard-rc33 .team-ops-stat:nth-child(n+3){border-top:1px solid var(--divider);}
}
@media(max-width:420px){
 .dashboard-rc33 .team-ops-stat{padding:10px 12px;min-height:72px;}
 .dashboard-rc33 .team-ops-risk{align-items:flex-start;}
 .dashboard-rc33 .team-ops-workload-list{display:grid;grid-template-columns:minmax(0,1fr);}
 .dashboard-rc33 .team-ops-work-item{width:100%;}
}

/* assets/ui-mobile-hf40.css */
/* HF40: mobile QA inspection and reservation-detail usability.
 * Scoped overrides loaded last; no changes to global component geometry. */
.hk-qa-modal .hk-qa-sheet{gap:12px;min-width:0;}
.hk-qa-modal .modal-body{padding-bottom:40px;}
.hk-qa-modal .modal-actions{position:relative;bottom:auto;}
.hk-qa-modal .hk-qa-list{gap:9px;min-width:0;}
.hk-qa-modal .hk-qa-row{min-width:0;padding:12px;gap:10px;}
.hk-qa-modal .hk-qa-row>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;min-width:0;}
.hk-qa-modal .hk-qa-row strong{font-size:14px;line-height:1.3;}
.hk-qa-modal .hk-qa-row .badge{font-size:11px;padding:3px 9px;white-space:nowrap;}
.hk-qa-modal .hk-qa-choices{min-width:0;}
.hk-qa-modal .hk-qa-choices label{min-width:0;}
.hk-qa-modal .hk-qa-choices span{min-height:44px;justify-content:center;text-align:center;}
.hk-qa-modal .hk-qa-choices input:focus-visible+span{outline:2px solid var(--ds-primary);outline-offset:3px;}
.hk-qa-modal .hk-qa-reason{display:grid;gap:8px;min-width:0;scroll-margin-bottom:96px;}
.hk-qa-modal .hk-qa-reason textarea{font-size:16px;line-height:1.45;min-height:76px;resize:vertical;}

@media(max-width:639px){
 /* Native full-screen QA: a single scrolling body and a persistent bottom bar.
    Avoid short bottom sheets left at keyboard-height after mobile viewport changes. */
 #modal-root .modal-backdrop:has(>.hk-qa-modal){display:flex;align-items:stretch;justify-content:stretch;padding:0;}
 #modal-root .modal.hk-qa-modal{
  width:100%;max-width:100%;height:100dvh;max-height:100dvh;
  min-height:0;margin:0;border-radius:0;display:flex;flex-direction:column;
 }#modal-root .modal.wide.hk-qa-modal{
  width:100%;max-width:100%;height:100dvh;max-height:100dvh;
  min-height:0;margin:0;border-radius:0;display:flex;flex-direction:column;
 }
 #modal-root .hk-qa-modal .modal-head{flex:0 0 auto;padding:14px 16px 10px;}
 #modal-root .hk-qa-modal .modal-body{
  flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:14px 14px 28px;
 }
 #modal-root .hk-qa-modal .hk-qa-sheet{gap:12px;}
 #modal-root .hk-qa-modal .hk-qa-row{grid-template-columns:minmax(0,1fr);padding:11px 12px;gap:10px;}
 #modal-root .hk-qa-modal .hk-qa-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
 #modal-root .hk-qa-modal .hk-qa-choices span{display:flex;width:100%;min-height:44px;}
 #modal-root .hk-qa-modal .modal-actions{
  position:relative;bottom:auto;z-index:2;flex:0 0 auto;
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:8px;align-items:stretch;padding:10px 14px max(14px,env(safe-area-inset-bottom));
 }
 #modal-root .hk-qa-modal .modal-actions>.btn{width:100%;min-width:0;margin:0;white-space:normal;}
 #modal-root .hk-qa-modal .modal-actions .modal-cancel{order:0;}
 #modal-root .hk-qa-modal .modal-actions button[type="submit"]{order:0;}

 /* The drawer lives in document.body, not inside the yotta-main container.
    Container-only breakpoints in older layers therefore never applied here. */
 .reservation-detail-backdrop{inset:0;}
 .reservation-drawer-rc26.reservation-detail-drawer{
  width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;min-height:0;
 }
 .reservation-drawer-rc26 .reservation-detail-head{padding:12px 14px 10px;gap:10px;}
 .reservation-drawer-rc26 .reservation-drawer-title{min-width:0;}
 .reservation-drawer-rc26 .reservation-detail-head h2{font-size:22px;line-height:1.15;}
 .reservation-drawer-rc26 .reservation-detail-head p{margin:5px 0 0;line-height:1.3;}
 .reservation-drawer-rc26 .reservation-detail-actions{
  display:flex;align-items:center;flex-wrap:nowrap;gap:7px;padding:9px 12px;
  position:relative;top:auto;z-index:5;min-width:0;
 }
 .reservation-drawer-rc26 .reservation-detail-primary-actions{display:flex;width:auto;min-width:0;flex:1 1 auto;gap:0;}
 .reservation-drawer-rc26 .reservation-detail-secondary-actions{display:flex;width:auto;min-width:0;flex:1 1 auto;gap:0;}
 .reservation-drawer-rc26 .reservation-detail-primary-actions>.btn{
  flex:1 1 auto;min-width:0;width:100%;max-width:100%;white-space:normal;
 }
 .reservation-drawer-rc26 .reservation-detail-secondary-actions>.btn{
  flex:1 1 auto;min-width:0;width:100%;max-width:100%;white-space:normal;
 }
 .reservation-drawer-rc26 .reservation-detail-actions>.reservation-more-actions{width:auto;max-width:86px;min-width:58px;flex:0 0 auto;margin:0;}
 .reservation-drawer-rc26 .reservation-detail-actions>.reservation-more-actions>summary{width:auto;min-width:58px;min-height:44px;display:flex;align-items:center;justify-content:center;padding:8px 10px;}
 .reservation-drawer-rc26 .reservation-detail-scroll{
  flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;
  padding:12px 12px max(24px,env(safe-area-inset-bottom));gap:12px;
  align-content:start;grid-auto-rows:max-content;
 }
 .reservation-drawer-rc26 .reservation-detail-summary{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:start;
  align-content:start;grid-auto-rows:max-content;
 }
 .reservation-drawer-rc26 .reservation-detail-summary>div{
  min-width:0;min-height:94px;display:flex;flex-direction:column;align-items:flex-start;
  justify-content:flex-start;gap:4px;padding:11px 12px;overflow-wrap:anywhere;
 }
 .reservation-drawer-rc26 .reservation-detail-summary strong{font-size:15px;line-height:1.25;overflow-wrap:anywhere;}
 .reservation-drawer-rc26 .reservation-detail-summary small{font-size:12px;line-height:1.3;}
 .reservation-drawer-rc26 .reservation-detail-summary span{font-size:12px;line-height:1.35;overflow-wrap:anywhere;}
 .reservation-drawer-rc26 .reservation-detail-scroll>.subpanel{min-width:0;}
 .reservation-drawer-rc26 .reservation-detail-scroll .reservation-detail-row{min-width:0;}
 .reservation-drawer-rc26 .reservation-more-actions-menu{
  position:absolute;inset-inline-end:0;inset-inline-start:auto;top:100%;z-index:15;
  width:min(280px,calc(100vw - 24px));min-width:0;max-width:calc(100vw - 24px);
  max-height:min(50dvh,420px);overflow-y:auto;margin-top:5px;
  display:grid;grid-template-columns:minmax(0,1fr);
 }
 .reservation-drawer-rc26 .reservation-more-actions-menu>.btn{width:100%;text-align:start;justify-content:flex-start;}
}
@media(max-width:359px){
 .reservation-drawer-rc26 .reservation-detail-summary>div{padding:9px 10px;}
}

/* assets/ui-qa-hf42.css */
/* HF42 — QA modal desktop geometry repair.
 * Keeps the HF40 full-screen mobile treatment intact, but prevents the desktop
 * QA dialog from retaining a viewport-height shell after its scrollable content
 * has ended. The action row must sit directly after the body with no dead area. */

.hk-qa-modal .hk-qa-sheet{
  align-content:start;
  grid-auto-rows:max-content;
  min-height:0;
}
.hk-qa-modal .hk-qa-list{
  align-content:start;
  grid-auto-rows:max-content;
  min-height:0;
}

@media (min-width:640px){
  #modal-root .modal.hk-qa-modal{
    height:auto!important;
    min-height:0!important;
    max-height:calc(100dvh - 32px);
    overflow:hidden;
    align-self:center;
  }
  #modal-root .modal.wide.hk-qa-modal{
    height:auto!important;
    min-height:0!important;
    max-height:calc(100dvh - 32px);
    overflow:hidden;
    align-self:center;
  }

  #modal-root .hk-qa-modal .modal-head{
    flex:0 0 auto;
  }

  #modal-root .hk-qa-modal .modal-body{
    flex:0 1 auto!important;
    min-height:0!important;
    height:auto!important;
    max-height:calc(100dvh - 154px);
    overflow-y:auto;
    overflow-x:hidden;
    padding-bottom:18px;
    overscroll-behavior:contain;
  }

  #modal-root .hk-qa-modal .modal-actions{
    position:relative!important;
    inset:auto!important;
    flex:0 0 auto;
    min-height:0;
    margin:0!important;
    padding-top:12px;
    padding-bottom:14px;
    align-self:stretch;
  }

  #modal-root .hk-qa-modal .hk-qa-row{
    align-items:center;
  }
}

/* assets/ui-reservation-hf43.css */
/* HF43: Reservation drawer detail-panel repair.
 * Loaded last to neutralize legacy/cumulative rules that can collapse the
 * detail sections into empty horizontal bars at narrow CSS viewports/zoom. */
.reservation-drawer-rc26 .reservation-detail-scroll{
  align-content:start;
  grid-auto-rows:max-content;
}
.reservation-drawer-rc26 .reservation-detail-scroll > .subpanel{
  display:block!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  padding:14px 16px!important;
  overflow:hidden!important;
  color:var(--text-primary,var(--ds-ink))!important;
}
.reservation-drawer-rc26 .reservation-detail-scroll > .subpanel > h3{
  display:block!important;
  margin:0 0 10px!important;
  color:var(--text-primary,var(--ds-ink))!important;
  font-size:14px!important;
  line-height:1.3!important;
}
.reservation-drawer-rc26 .reservation-detail-scroll > .subpanel > .section-head{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:-14px -16px 12px!important;
  padding:12px 16px!important;
}
.reservation-drawer-rc26 .reservation-detail-scroll > .subpanel > .section-head :is(h3,p,strong,span){
  visibility:visible!important;
  opacity:1!important;
}
.reservation-drawer-rc26 .reservation-detail-scroll > .subpanel > :is(p,.empty,.reservation-detail-row){
  visibility:visible!important;
  opacity:1!important;
}
.reservation-drawer-rc26 .financial-truth-grid :is(span,strong){
  visibility:visible!important;
  opacity:1!important;
}
.reservation-drawer-rc26 .reservation-detail-scroll > .subpanel > .reservation-detail-row{
  display:flex!important;
  height:auto!important;
  min-height:42px!important;
  padding:9px 0!important;
}
.reservation-drawer-rc26 .reservation-detail-scroll > .subpanel > .empty.compact{
  display:block!important;
  min-height:0!important;
  height:auto!important;
  padding:10px 0!important;
  color:var(--text-muted,var(--ds-muted))!important;
}
.reservation-drawer-rc26 .reservation-financial-truth{
  border-left:3px solid var(--success,var(--ds-success))!important;
}
.reservation-drawer-rc26 .reservation-financial-truth .financial-truth-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr))!important;
  gap:8px!important;
  margin-top:0!important;
  height:auto!important;
  min-height:0!important;
}
.reservation-drawer-rc26 .reservation-financial-truth .financial-truth-grid > div{
  display:grid!important;
  gap:3px!important;
  height:auto!important;
  min-height:58px!important;
  padding:9px 10px!important;
}
@media(max-width:639px){
  .reservation-drawer-rc26 .reservation-detail-scroll > .subpanel{padding:12px!important;}
  .reservation-drawer-rc26 .reservation-detail-scroll > .subpanel > .section-head{margin:-12px -12px 10px!important;padding:11px 12px!important;}
  .reservation-drawer-rc26 .reservation-financial-truth .financial-truth-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .reservation-drawer-rc26 .reservation-financial-truth .financial-truth-grid .financial-truth-due{grid-column:1/-1;}
}

/* assets/ui-qa-hf44.css */
/* HF44 — QA selection-state geometry stabilization.
 * Fixes the desktop modal jump/dead-space that can appear after choosing
 * OK / Problem / N/A. The native radio remains accessible but is constrained
 * to its visible choice label instead of inheriting global input geometry. */

.hk-qa-modal .hk-qa-choices label{
  position:relative;
  display:inline-flex;
  align-items:stretch;
  margin:0;
  min-width:0;
}

.hk-qa-modal .hk-qa-choices input[type="radio"]{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:inherit;
  opacity:0;
  cursor:pointer;
  pointer-events:auto;
  z-index:2;
}

.hk-qa-modal .hk-qa-choices span{
  position:relative;
  z-index:1;
  pointer-events:none;
}

.hk-qa-modal .hk-qa-choices input[type="radio"]:focus-visible + span{
  outline:2px solid var(--ds-primary);
  outline-offset:3px;
}

@media (min-width:640px){
  /* Use content-sized grid rows instead of a flexible body row. This prevents
     a focused/checked radio from leaving the form at viewport height after a
     browser scroll/focus reflow. */
  #modal-root .modal.hk-qa-modal{
    display:grid!important;
    grid-template-rows:auto minmax(0,auto) auto;
    align-content:start;
    height:auto!important;
    min-height:0!important;
    max-height:calc(100dvh - 32px)!important;
    overflow:hidden;
  }
  #modal-root .modal.wide.hk-qa-modal{
    display:grid!important;
    grid-template-rows:auto minmax(0,auto) auto;
    align-content:start;
    height:auto!important;
    min-height:0!important;
    max-height:calc(100dvh - 32px)!important;
    overflow:hidden;
  }

  #modal-root .hk-qa-modal .modal-body{
    display:block;
    flex:none!important;
    height:auto!important;
    min-height:0!important;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
  }

  #modal-root .hk-qa-modal .modal-actions{
    position:relative!important;
    inset:auto!important;
    align-self:auto!important;
    margin:0!important;
  }

  #modal-root .hk-qa-modal .hk-qa-row{
    min-height:0!important;
    height:auto!important;
    align-content:start;
  }
  #modal-root .hk-qa-modal .hk-qa-list{
    min-height:0!important;
    height:auto!important;
    align-content:start;
  }
  #modal-root .hk-qa-modal .hk-qa-sheet{
    min-height:0!important;
    height:auto!important;
    align-content:start;
  }
}

/* assets/ui-stay-completion-hf46.css */
/* HF46 — Unified Stay Completion. Strictly scoped to the checkout workflow. */
.stay-completion-modal{
  width:min(900px,calc(100vw - 32px));
  max-width:900px;
  height:auto;
  max-height:calc(100dvh - 32px);
  grid-template-rows:auto minmax(0,auto) auto;
}
.stay-completion-modal .modal-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding-block:16px}
.stay-completion-modal .modal-actions{gap:10px}
.stay-completion-shell{display:grid;gap:10px}
.stay-completion-context{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:2px 2px 8px}
.stay-completion-context strong{color:var(--text-primary);font-size:16px}
.stay-completion-context span{color:var(--text-muted);font-size:13px;text-align:right}
.stay-completion-section{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-1);overflow:hidden}
.stay-completion-section>header{display:flex;align-items:flex-start;gap:10px;padding:12px 14px}
.stay-completion-section>header>div{min-width:0;flex:1}
.stay-completion-section h3{margin:0;color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.25}
.stay-completion-section header p{margin:2px 0 0;color:var(--text-muted);font-size:12px;line-height:1.35}
.stay-completion-state{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;font-size:13px;font-weight:800}
.stay-completion-section.ok .stay-completion-state{background:var(--success-soft);color:var(--success)}
.stay-completion-section.needs-action{border-color:color-mix(in srgb,var(--warning) 30%,var(--border))}
.stay-completion-section.needs-action .stay-completion-state{background:var(--warning-soft);color:var(--warning)}
.stay-completion-section-body{display:grid;gap:10px;padding:0 14px 14px;border-top:1px solid var(--divider)}
.stay-completion-section-body>:first-child{margin-top:12px}
.stay-completion-blocker{border-radius:var(--radius-menu);background:var(--warning-soft);color:var(--text-primary);padding:9px 11px;font-size:13px}
.stay-completion-missing{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stay-completion-document{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stay-completion-room-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stay-completion-payment-recovery{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.stay-completion-missing span{min-width:0}.stay-completion-payment-recovery{min-width:0}
.stay-completion-missing small{color:var(--text-muted);font-size:12px}.stay-completion-payment-recovery span{color:var(--text-muted);font-size:12px}.stay-completion-room-summary span{color:var(--text-muted);font-size:12px}.stay-completion-document span{color:var(--text-muted);font-size:12px}
.stay-completion-missing span{display:grid;gap:2px}
.stay-completion-payment-recovery{align-items:flex-start;border:1px solid var(--primary-border);border-radius:var(--radius-menu);background:var(--primary-soft-2);padding:12px}
.stay-completion-payment-recovery strong{display:block;flex:1 1 100%}.stay-completion-payment-recovery span{display:block;flex:1 1 100%}
.stay-completion-money{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.stay-completion-money>div{display:grid;gap:2px;border-radius:var(--radius-menu);background:var(--surface-2);padding:10px 12px}
.stay-completion-money span{color:var(--text-muted);font-size:11px}
.stay-completion-money strong{color:var(--text-primary);font-size:15px}
.stay-completion-payform{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(150px,.8fr) minmax(200px,1.2fr) auto;align-items:end;gap:10px}
.stay-completion-payform label{display:grid;min-width:0}
.stay-completion-payform .wide{min-width:0}
.stay-completion-inline-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.stay-completion-room-summary .warning{flex-basis:100%;color:var(--warning);font-weight:650}
.stay-completion-charge-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.stay-completion-choice{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--border);border-radius:var(--radius-menu);background:var(--surface-2);padding:10px 12px;cursor:pointer}
.stay-completion-choice:has(input:checked){border-color:var(--primary);background:var(--primary-soft-2)}
.stay-completion-choice input{min-height:auto;margin:3px 0 0;padding:0}
.stay-completion-choice span{display:grid;gap:2px}
.stay-completion-choice small{color:var(--text-muted);font-weight:500}
.stay-completion-reason{display:grid}
.stay-completion-details{border:1px dashed var(--border-strong);border-radius:var(--radius-menu);background:var(--surface-2);padding:9px 12px;color:var(--text-secondary)}
.stay-completion-details summary{cursor:pointer;font-weight:650}
.stay-completion-details p{margin:8px 0 0;font-size:12px}
.stay-completion-okline{color:var(--success);font-weight:650}
.stay-completion-modal .stay-completion-finalize{min-width:180px}

@media (max-width:760px){
  .stay-completion-payform{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stay-completion-payform .wide{grid-column:1/-1}.stay-completion-payform .stay-completion-pay{grid-column:1/-1}
}
@media (max-width:639px){
  .stay-completion-modal{width:100vw;max-width:none;height:100dvh;max-height:100dvh;border-radius:0}
  .stay-completion-modal .modal-head{padding:14px 16px 10px}
  .stay-completion-modal .modal-body{padding:10px 12px 14px}
  .stay-completion-modal .modal-actions{position:sticky;bottom:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--surface-1);z-index:2}
  .stay-completion-shell{gap:8px}
  .stay-completion-context{display:grid;gap:3px;padding:0 2px 6px}
  .stay-completion-context span{text-align:left}
  .stay-completion-section>header{padding:11px 12px}
  .stay-completion-section-body{padding:0 12px 12px}
  .stay-completion-money{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .stay-completion-money>div{padding:8px}
  .stay-completion-payform{grid-template-columns:1fr}.stay-completion-charge-options{grid-template-columns:1fr}
  .stay-completion-payform .wide{grid-column:auto}.stay-completion-payform .stay-completion-pay{grid-column:auto}
  .stay-completion-missing{align-items:stretch}.stay-completion-document{align-items:stretch}.stay-completion-room-summary{align-items:stretch}
  .stay-completion-modal button{min-height:44px}.stay-completion-modal input{min-height:44px}.stay-completion-modal select{min-height:44px}
  .stay-completion-modal .stay-completion-finalize{min-width:0;flex:1}
}

/* assets/ui-hospitality.css */
/* Hospitality design system. Legacy geometry remains in its source stylesheets.
   Important declarations below are limited to properties pinned by legacy UI rules. */
:root{
 --bg-app:#FAF7F2;--bg-sidebar:#003D38;--surface-1:#FFFDFA;--surface-2:#F5F1EA;
 --surface-3:#EEEAE1;--surface-hover:#F0EEE5;--surface-active:#E4ECE1;
 --text-primary:#173B36;--text-secondary:#52665E;--text-muted:#63746B;--text-disabled:#818C83;
 --border:#DEDed3;--border-strong:#C3CEC3;--divider:#E7E5DB;
 --primary:#1E5B4E;--primary-hover:#164B40;--primary-active:#103F35;
 --primary-soft:#E2ECE2;--primary-soft-2:#EFF3EA;--primary-border:#B8CEC0;
 --success:#23694C;--success-soft:#DEECDF;--warning:#805D13;--warning-soft:#F2E6C7;
 --info:#215F7A;--info-soft:#E0EBF0;--danger:#A23D3A;--danger-hover:#8A302E;--danger-soft:#F4DDDA;
 --neutral:#63746B;--neutral-soft:#EAEDE6;
 --brand-sidebar:#003D38;--brand-sidebar-2:#07342F;--brand-sidebar-hover:#164B41;
 --brand-sidebar-active:#205348;--brand-sidebar-border:#326052;--brand-sidebar-text:#FAF7F2;
 --brand-sidebar-muted:#B9CEC0;--brand-gold:#D2B879;
 --accent-coral:#AF5149;--accent-coral-hover:#99453F;--accent-coral-soft:#F4E1DA;--accent-ink:#FFFDF7;
 --font-display:Georgia,"Times New Roman",serif;
 --font-ui:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
 --radius-sm:6px;--radius-control:8px;--radius-menu:12px;--radius-card:14px;
 --radius-panel:14px;--radius-modal:18px;--radius-floating:18px;
 --shadow-xs:0 1px 2px rgb(20 45 34 / .025);--shadow-sm:0 4px 18px rgb(20 45 34 / .045);
 --shadow-md:0 12px 36px rgb(20 45 34 / .12);--shadow-lg:0 24px 70px rgb(15 35 27 / .18);
 --focus-ring:0 0 0 3px rgb(30 91 78 / .22);
 --type-body:.875rem;--type-display:3rem;--type-title:1.35rem;
 --sidebar-expanded:208px;--sidebar-collapsed:72px;--topbar-min-height:76px;
 --motion-fast:140ms;--motion-normal:200ms;--motion-slow:260ms;
 --ds-canvas-strong:#F0ECE3;--ds-border-emphasis:#AFBDB1;--ds-primary-soft-strong:#D2E4D4;
 --ds-brass-hover:#967339;--ds-brass-soft:#F1E6CE;
 --cal-grid:var(--border);--cal-bg:var(--surface-1);--cal-ink:var(--text-primary);
 --stay-confirmed:#DDEAF0;--stay-confirmed-ink:#184B61;
 --stay-inhouse:#D6E8D7;--stay-inhouse-ink:#184B35;
 --stay-tentative:#F0E2BE;--stay-tentative-ink:#634A18;
 --stay-completed:#E6E8E3;--stay-completed-ink:#526057;
 --stay-cancelled:#F2D9D6;--stay-cancelled-ink:#823C3A;
 --today-surface:#F6EFDD;--today-header:#ECDBAD;
}
[data-theme="dark"]{
 --bg-app:#071F1D;--bg-sidebar:#031915;--surface-1:#102D29;--surface-2:#15352F;
 --surface-3:#1C3C35;--surface-hover:#21473E;--surface-active:#284C3E;
 --text-primary:#F4EFE5;--text-secondary:#C0CEC3;--text-muted:#A6BAAE;--text-disabled:#81998C;
 --border:#34514B;--border-strong:#537065;--divider:#29483F;
 --primary:#A9CDB7;--primary-hover:#BDDDC7;--primary-active:#D1E6D6;
 --primary-soft:#244E3D;--primary-soft-2:#1B3D30;--primary-border:#53745F;
 --success:#A1D5B2;--success-soft:#214B38;--warning:#E6CB83;--warning-soft:#4B4524;
 --info:#A9D4E5;--info-soft:#19485A;--danger:#F0ABA4;--danger-hover:#F5C1B9;--danger-soft:#57302F;
 --neutral:#B5C8BC;--neutral-soft:#28443B;
 --brand-sidebar:#031915;--brand-sidebar-2:#0A2720;--brand-sidebar-hover:#153D30;
 --brand-sidebar-active:#214B3B;--brand-sidebar-border:#2C4E40;--brand-sidebar-text:#F4EFE5;
 --brand-sidebar-muted:#A7BDAE;--brand-gold:#DCC58C;
 --accent-coral:#E49A8E;--accent-coral-hover:#F2AFA2;--accent-coral-soft:#50342F;--accent-ink:#271E19;
 --shadow-xs:0 1px 2px rgb(0 0 0 / .08);--shadow-sm:0 4px 18px rgb(0 0 0 / .1);
 --shadow-md:0 12px 36px rgb(0 0 0 / .22);--shadow-lg:0 24px 70px rgb(0 0 0 / .3);
 --focus-ring:0 0 0 3px rgb(169 205 183 / .3);
 --ds-canvas-strong:#0A2721;--ds-border-emphasis:#6B8576;--ds-primary-soft-strong:#315D46;
 --ds-brass-hover:#E7D49F;--ds-brass-soft:#423E24;
 --stay-confirmed:#19485A;--stay-confirmed-ink:#DAEBF1;
 --stay-inhouse:#28583F;--stay-inhouse-ink:#E7F3E8;
 --stay-tentative:#4B4C29;--stay-tentative-ink:#F3E9BE;
 --stay-completed:#2B443A;--stay-completed-ink:#C3D1C7;
 --stay-cancelled:#5D3032;--stay-cancelled-ink:#F6DEDA;
 --today-surface:#253D2C;--today-header:#49472A;
}
body.hospitality-ui{background:var(--bg-app);color:var(--text-primary);font:400 14px/1.5 var(--font-ui);text-rendering:optimizeLegibility}
body.hospitality-ui *{box-sizing:border-box}
body.hospitality-ui :is(button,input,select,textarea){font-family:var(--font-ui)}
body.hospitality-ui :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--primary);outline-offset:3px;box-shadow:var(--focus-ring)}
body.hospitality-ui .app-shell.hospitality-shell{--sidebar-expanded:172px;--sidebar-collapsed:72px;display:grid;grid-template-columns:172px minmax(0,1fr);min-height:100dvh;background:var(--bg-app)}
body.hospitality-ui .hospitality-shell .main{grid-column:2;min-width:0;width:100%;margin:0;padding:0;background:var(--bg-app)}
body.hospitality-ui .hospitality-shell .sidebar{position:sticky;top:0;align-self:start;grid-column:1;grid-row:1;width:208px;min-width:0;height:100dvh;transform:none;box-shadow:none;border-right:1px solid var(--brand-sidebar-border);background:var(--brand-sidebar);color:var(--brand-sidebar-text);overflow:hidden}
body.hospitality-ui .hospitality-shell .sidebar:hover{position:sticky;top:0;align-self:start;grid-column:1;grid-row:1;width:208px;min-width:0;height:100dvh;transform:none;box-shadow:none;border-right:1px solid var(--brand-sidebar-border);background:var(--brand-sidebar);color:var(--brand-sidebar-text);overflow:hidden}
body.hospitality-ui .hospitality-shell .sidebar.keyboard-expanded{position:sticky;top:0;align-self:start;grid-column:1;grid-row:1;width:208px;min-width:0;height:100dvh;transform:none;box-shadow:none;border-right:1px solid var(--brand-sidebar-border);background:var(--brand-sidebar);color:var(--brand-sidebar-text);overflow:hidden}
body.hospitality-ui .hospitality-shell .sidebar::after{content:"";position:absolute;inset:auto 0 0;height:65%;background:url("ui/sidebar-contours.png") center bottom/cover no-repeat;opacity:.85;pointer-events:none;z-index:0}
body.hospitality-ui .hospitality-shell .sidebar :is(.brand,.nav,.sidebar-hotel-context){position:relative;z-index:1}
body.hospitality-ui .hospitality-shell .sidebar .brand{display:flex;align-items:center;gap:10px;padding:22px 18px;height:106px;min-height:106px;flex:0 0 106px;overflow:visible;border-bottom:1px solid var(--brand-sidebar-border)}
body.hospitality-ui .hospitality-shell .sidebar-dismiss{display:none}
body.hospitality-ui .hospitality-shell .brand-mark{position:static;inset:auto;width:42px;height:42px;min-width:42px;background:none;border:0;box-shadow:none;transform:none}
body.hospitality-ui .hospitality-shell .brand-copy{position:static;inset:auto;display:flex;flex-direction:column;gap:4px;opacity:1!important;visibility:visible!important;transform:none!important;min-width:0;white-space:normal}
body.hospitality-ui .hospitality-shell .brand-copy strong{font-family:var(--font-display);font-size:19px!important;font-weight:400!important;line-height:1.15!important;letter-spacing:-.04em!important;color:var(--brand-sidebar-text)}
body.hospitality-ui .hospitality-shell .brand-copy strong span{color:var(--brand-sidebar-text)}
body.hospitality-ui .hospitality-shell .brand-copy small{font-size:9px!important;letter-spacing:.18em!important;color:var(--brand-sidebar-muted);line-height:1.3!important}
body.hospitality-ui .hospitality-shell .nav{flex:1;min-height:0;padding:18px 10px 24px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--brand-sidebar-border) transparent}
body.hospitality-ui .hospitality-shell .nav-group{margin:0 0 22px}
body.hospitality-ui .hospitality-shell .nav-group-secondary{margin-top:10px;padding-top:18px;border-top:1px solid var(--brand-sidebar-border)}
body.hospitality-ui .hospitality-shell .nav-group-title{display:block;max-height:none;height:auto;margin:0 12px 10px;padding:0;opacity:1;visibility:visible;font-size:9px;line-height:1.5;letter-spacing:.17em;color:var(--brand-sidebar-muted)}
body.hospitality-ui .hospitality-shell .sidebar:hover .nav-group-title{display:block;max-height:none;height:auto;margin:0 12px 10px;padding:0;opacity:1;visibility:visible;font-size:9px;line-height:1.5;letter-spacing:.17em;color:var(--brand-sidebar-muted)}
body.hospitality-ui .hospitality-shell .nav button{position:relative;display:flex;align-items:center;gap:12px;width:100%;height:auto;min-height:44px;margin:3px 0;padding:10px 12px;border:0;border-radius:7px;background:transparent;color:var(--brand-sidebar-text);text-align:left;overflow:visible;transition:background-color 160ms ease,color 160ms ease}
body.hospitality-ui .hospitality-shell .nav button:hover{background:var(--brand-sidebar-hover)}
body.hospitality-ui .hospitality-shell .nav button.active{background:var(--brand-sidebar-active);color:var(--brand-sidebar-text)}
body.hospitality-ui .hospitality-shell .nav button.active::before{content:"";position:absolute;left:-10px;top:9px;bottom:9px;width:3px;background:var(--brand-gold);border-radius:0}
body.hospitality-ui .hospitality-shell .nav button>.nav-icon{position:static;inset:auto;display:flex;flex:0 0 20px;width:20px;height:20px;background:none;color:inherit;opacity:1;transform:none}
body.hospitality-ui .hospitality-shell .nav button>.nav-label{position:static;inset:auto;display:block;white-space:normal;opacity:1!important;visibility:visible!important;transform:none!important;line-height:1.35;font-size:12px;font-weight:450;max-width:145px}
body.hospitality-ui .hospitality-shell .nav button.active>.nav-icon{color:var(--brand-gold)}
body.hospitality-ui .hospitality-shell .sidebar-hotel-context{height:auto!important;min-height:0!important;flex:0 0 auto!important;margin:0!important;padding:14px 18px!important;border-bottom:1px solid var(--brand-sidebar-border)!important;opacity:1!important;visibility:visible!important}
body.hospitality-ui .hospitality-shell .topbar{display:flex;position:sticky;top:0;align-items:center;flex-wrap:wrap;gap:12px;min-height:76px;height:auto;padding:14px 28px;background:var(--bg-app);border-bottom:1px solid var(--border);box-shadow:none;z-index:40}
body.hospitality-ui .hospitality-shell .top-left{display:flex;align-items:center;min-width:0;gap:12px;flex:1 1 280px}
body.hospitality-ui .hospitality-shell .top-divider{display:none}
body.hospitality-ui .hospitality-shell .top-actions{position:static;display:flex;align-items:center;gap:10px;min-width:0;pointer-events:auto}
body.hospitality-ui .hospitality-shell .hotel-switch{max-width:240px;min-width:140px}
body.hospitality-ui .hospitality-shell .hotel-switch :is(select,.yotta-select-trigger){border:0;background:transparent;font-family:var(--font-display);font-size:17px;font-weight:400;box-shadow:none;min-height:40px}
body.hospitality-ui .hospitality-shell .business-date{padding-left:14px;border-left:1px solid var(--border);font-size:11px;color:var(--text-secondary);background:transparent;border-radius:0;white-space:normal}
body.hospitality-ui .hospitality-shell .top-search-trigger{max-width:200px;min-width:40px;width:auto;flex:0 1 180px;border:1px solid var(--border);background:transparent;border-radius:999px;height:38px;font-size:12px;box-shadow:none}
body.hospitality-ui .hospitality-shell .top-user{padding:3px 0 3px 12px;border:0;border-left:1px solid var(--border);border-radius:0;gap:10px;background:transparent;box-shadow:none;max-width:220px}
body.hospitality-ui .hospitality-shell .top-avatar{width:36px;height:36px;min-width:36px;background:var(--primary-soft);color:var(--text-primary);font-size:12px}
body.hospitality-ui .hospitality-shell .top-user-text strong{font-size:12px;font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis}
body.hospitality-ui .hospitality-shell .top-user-text small{font-size:11px;color:var(--text-secondary)}
body.hospitality-ui .hospitality-shell .cashier-chip{font-size:10px;padding:6px 8px;border:0;background:var(--surface-2);color:var(--text-secondary)}
body.hospitality-ui .workspace-theme{display:flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:999px;flex-shrink:0}
body.hospitality-ui .workspace-theme button{border:0;border-radius:999px;padding:6px 9px;background:transparent;font-size:10px;color:var(--text-secondary);white-space:nowrap;cursor:pointer;min-height:30px}
body.hospitality-ui .workspace-theme button[aria-pressed="true"]{background:var(--primary-soft);color:var(--text-primary);font-weight:600}
body.hospitality-ui .hospitality-shell .content{padding:30px 28px 36px;min-width:0;max-width:100%;background:var(--bg-app)}
body.hospitality-ui .content :is(.page-head,.calendar-reference-head){display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;margin:0 0 26px;padding:0;min-height:0;background:transparent;border:0;box-shadow:none}
body.hospitality-ui .content :is(.page-head h1,.calendar-reference-head h1){font:400 clamp(34px,3.7vw,52px)/1.06 var(--font-display)!important;letter-spacing:-.045em!important;color:var(--text-primary);margin:0;overflow-wrap:anywhere}
body.hospitality-ui .content :is(.page-head p,.section-head p){font-size:13px;line-height:1.6;color:var(--text-secondary);margin:8px 0 0;max-width:65ch}
body.hospitality-ui .eyebrow{font-size:10px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px}
body.hospitality-ui :is(.panel,.ui-card){background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:none;padding:22px;color:var(--text-primary)}
body.hospitality-ui .section-head{gap:16px;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--divider)}
body.hospitality-ui :is(.section-head h2,.panel>h2,.panel>h3){font:400 24px/1.25 var(--font-display);letter-spacing:-.025em;color:var(--text-primary)}
body.hospitality-ui .btn:active:not(:disabled){transform:translateY(1px)!important}
body.hospitality-ui .btn.icon-only{width:40px;min-width:40px}
body.hospitality-ui :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,.yotta-select-trigger){background:var(--field-surface);color:var(--field-text);border:1px solid var(--border);border-radius:8px;min-height:42px;padding:10px 12px;font-size:14px;box-shadow:none}
body.hospitality-ui :is(input,textarea)::placeholder{color:var(--text-muted);opacity:1}
body.hospitality-ui :is(input,select,textarea,.yotta-select-trigger):disabled{color:var(--text-disabled);background:var(--surface-2);opacity:1}
body.hospitality-ui label{font-size:12px;font-weight:550;color:var(--text-secondary);line-height:1.5;gap:7px}
body.hospitality-ui .form-grid{gap:18px 20px}
body.hospitality-ui .badge{padding:5px 10px;min-height:24px;border:0;border-radius:999px;font-size:11px;font-weight:500;line-height:1.3;box-shadow:none}
body.hospitality-ui :is(.badge.green,.badge.success){background:var(--success-soft);color:var(--success)}
body.hospitality-ui :is(.badge.blue,.badge.info){background:var(--info-soft);color:var(--info)}
body.hospitality-ui :is(.badge.amber,.badge.bronze,.badge.warning){background:var(--warning-soft);color:var(--warning)}
body.hospitality-ui :is(.badge.red,.badge.danger){background:var(--danger-soft);color:var(--danger)}
body.hospitality-ui .badge.neutral{background:var(--neutral-soft);color:var(--text-secondary)}
body.hospitality-ui .table-wrap{border:1px solid var(--border);border-radius:10px;background:var(--surface-1);box-shadow:none;max-width:100%;overflow:auto}
body.hospitality-ui .table{font-size:13px;font-variant-numeric:tabular-nums;background:var(--surface-1);color:var(--text-primary)}
body.hospitality-ui .table thead th{background:var(--surface-2);color:var(--text-secondary);font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;border-bottom:1px solid var(--border);padding:14px 15px;white-space:nowrap}
body.hospitality-ui .table td{padding:15px;border-bottom:1px solid var(--divider);vertical-align:middle}
body.hospitality-ui .table tbody tr:hover{background:var(--surface-hover)}
body.hospitality-ui :is(.toolbar,.report-controls,.guest-workspace-toolbar,.reservation-registry-filters){gap:10px}
body.hospitality-ui :is(.filter-tabs,.frontdesk-filter-tabs,.tabs){gap:6px;border-bottom-color:var(--border)}
body.hospitality-ui :is(.filter-tabs button,.frontdesk-filter-tabs button,.tabs button){border-radius:999px;transition:background-color 160ms,color 160ms;min-height:38px}
body.hospitality-ui :is(.filter-tabs button.active,.frontdesk-filter-tabs button.active,.tabs button.active){background:var(--primary-soft);color:var(--text-primary);box-shadow:none;border-color:var(--primary-border)}
body.hospitality-ui :is(.modal,.ui-drawer){border:1px solid var(--border);background:var(--surface-1);color:var(--text-primary);box-shadow:var(--shadow-lg)}
body.hospitality-ui :is(.modal-head,.modal-actions,.modal-footer){background:var(--surface-1);border-color:var(--border);padding:20px 24px}
body.hospitality-ui .modal-head h2{font:400 28px/1.2 var(--font-display);letter-spacing:-.025em}
body.hospitality-ui .modal-body{padding:24px}
body.hospitality-ui :is(.split-note,.warning-panel,.login-note){border-color:var(--border);background:var(--surface-2);color:var(--text-secondary);box-shadow:none;border-radius:8px}
body.hospitality-ui :is(.dashboard-ops-strip,.cards,.dashboard-next-grid,.dashboard-support-grid,.grid.equal){gap:20px}
body.hospitality-ui .dashboard-ops-strip{border:1px solid var(--border);background:var(--surface-1);border-radius:12px;padding:6px;margin:24px 0}
body.hospitality-ui .dashboard-counter{background:transparent;border:0;border-right:1px solid var(--divider);border-radius:0;padding:18px 22px;box-shadow:none}
body.hospitality-ui .dashboard-counter:last-child{border-right:0}
body.hospitality-ui :is(.dashboard-counter strong,.metric strong,.report-kpi strong){font-variant-numeric:tabular-nums}
body.hospitality-ui .dashboard-counter strong{font-size:40px;line-height:1.2}
body.hospitality-ui .dashboard-ops-row{padding:14px 0;border-bottom:1px solid var(--divider);border-radius:0;background:transparent}
body.hospitality-ui .dashboard-attention-card{border-color:var(--border);background:var(--surface-2);box-shadow:none}
body.hospitality-ui :is(.room-board-card,.hk-task-card,.guest-card,.platform-hotel-card){border-color:var(--border);background:var(--surface-1);box-shadow:none;border-radius:12px;transition:border-color 160ms ease,background-color 160ms ease}
body.hospitality-ui :is(.room-board-card:hover,.hk-task-card:hover,.platform-hotel-card:hover){border-color:var(--primary-border);background:var(--surface-2)}
body.hospitality-ui :is(.assistant-card,.assistant-context-drawer,.assistant-command-center){border-color:var(--border);background:var(--surface-1);box-shadow:none}
body.hospitality-ui :is(.report-kpi,.metric,.assistant-finance-kpi){background:var(--surface-1);border-color:var(--border);padding:20px}
body.hospitality-ui :is(.login-art,.hotel-login-aside){background:var(--brand-sidebar) url("ui/sidebar-contours.png") center bottom/cover;color:var(--brand-sidebar-text)}
body.hospitality-ui :is(.login-art h1,.hotel-login-aside h1){font:400 clamp(40px,5vw,76px)/1.04 var(--font-display);letter-spacing:-.045em}
body.hospitality-ui :is(.login-panel,.hotel-login-main,.auth-wrap){background:var(--bg-app)}
body.hospitality-ui :is(.login-card,.hotel-login-card,.auth-card){background:var(--surface-1);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-sm);padding:36px}
body.hospitality-ui :is(.login-card h2,.hotel-login-card h2,.auth-card h1){font:400 32px/1.2 var(--font-display);letter-spacing:-.03em}
/* Calendar composition. Preserve grid column/span and pointer geometry. */
body.hospitality-ui .calendar-hospitality{--calendar-room-rail:150px;--cal-grid:var(--border);--cal-bg:var(--surface-1);display:block!important;width:100%;min-width:0;background:transparent;border:0;box-shadow:none}
body.hospitality-ui .calendar-hospitality .calendar-reference-head{margin-bottom:22px!important}
body.hospitality-ui .calendar-hospitality .calendar-reference-head h1{font-size:clamp(40px,4.4vw,64px)!important}
body.hospitality-ui .calendar-hospitality .calendar-reference-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
body.hospitality-ui .calendar-hospitality .calendar-reference-hints{font-size:10px;min-height:16px;margin-top:8px;color:var(--text-secondary)}
body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar{display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-start;flex-wrap:wrap;min-height:0;height:auto;gap:12px;padding:0 0 20px!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body.hospitality-ui .calendar-hospitality .calendar-reference-nav{gap:6px}
body.hospitality-ui .calendar-period-navigation{display:flex;align-items:center;flex-wrap:wrap;gap:12px;width:100%;min-width:0}
body.hospitality-ui .calendar-hospitality :is(.calendar-reference-nav-btn,.calendar-reference-focus){height:40px;min-height:40px;border-radius:8px;border-color:var(--border);background:transparent;color:var(--text-primary);box-shadow:none}
body.hospitality-ui .calendar-hospitality .calendar-reference-range{order:-1;background:transparent;border:0;min-width:200px;padding:0;box-shadow:none;max-width:280px}
body.hospitality-ui .calendar-hospitality .calendar-reference-range-copy strong{font:400 18px var(--font-display)}
body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar-right{display:flex;flex-direction:row!important;align-items:center;flex-wrap:wrap;gap:10px;min-width:0;width:100%;flex:1 1 100%;justify-content:flex-start}
body.hospitality-ui .calendar-hospitality :is(.calendar-period-switch,.calendar-toolbar-zoom){border:1px solid var(--border);background:transparent;border-radius:8px;padding:3px;box-shadow:none}
body.hospitality-ui .calendar-hospitality :is(.calendar-period-btn,.calendar-toolbar-zoom button){background:transparent;color:var(--text-secondary);border-radius:5px;min-height:30px}
body.hospitality-ui .calendar-hospitality .calendar-period-switch{display:flex;flex:0 0 auto;width:auto;min-width:0}
body.hospitality-ui .calendar-hospitality .calendar-period-btn{min-width:42px;padding:6px 10px;font-size:11px;white-space:nowrap}
body.hospitality-ui .calendar-hospitality .calendar-period-btn.active{background:var(--primary-soft);color:var(--text-primary)}
body.hospitality-ui .calendar-hospitality .calendar-reference-search{display:flex;flex:1 1 160px;min-width:160px;max-width:none;border:1px solid var(--border);border-radius:8px;background:transparent}
body.hospitality-ui .calendar-hospitality .calendar-reference-search input{min-height:38px;font-size:12px;background:transparent;border:0;min-width:0;padding:8px}
body.hospitality-ui .calendar-hospitality .calendar-reference-settings-btn{background:transparent;color:var(--text-primary);border-color:var(--border)!important;border-radius:8px!important}
body.hospitality-ui .calendar-hospitality .classic-calendar-settings-pop{background:var(--surface-1);border-color:var(--border);box-shadow:var(--shadow-md);border-radius:12px;z-index:70}
body.hospitality-ui .calendar-hospitality .calendar-workspace{display:grid!important;grid-template-columns:minmax(0,1fr) 276px!important;align-items:start;gap:24px;overflow:visible!important;isolation:auto}
body.hospitality-ui .calendar-hospitality :is(.calendar-panel,.classic-calendar-panel){padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:var(--surface-1)!important;min-width:0;min-height:260px!important;height:auto!important;max-height:none!important;box-shadow:none!important;overflow:hidden}
body.hospitality-ui .calendar-hospitality .classic-calendar-scroll{background:var(--surface-1)!important;border:1px solid var(--border);border-radius:8px;min-height:260px!important;height:var(--calendar-content-height)!important;max-height:calc(100dvh - 320px)!important;overflow:auto;overscroll-behavior:contain;scrollbar-color:var(--border-strong) var(--surface-2)}
body.hospitality-ui .calendar-hospitality .classic-calendar-axis{grid-template-columns:var(--calendar-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min),1fr))!important;min-width:calc(var(--calendar-room-rail) + var(--calendar-days)*var(--calendar-cell-min))!important}
body.hospitality-ui .calendar-hospitality .calendar-row{grid-template-columns:var(--calendar-room-rail) repeat(var(--calendar-days),minmax(var(--calendar-cell-min),1fr))!important;min-width:calc(var(--calendar-room-rail) + var(--calendar-days)*var(--calendar-cell-min))!important}
body.hospitality-ui .calendar-hospitality .classic-calendar-month-axis{display:none!important}
body.hospitality-ui .calendar-hospitality .classic-calendar-month{color:var(--text-muted);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;background:var(--surface-2);border-color:var(--border)}
body.hospitality-ui .calendar-hospitality .classic-calendar-day-axis{height:58px!important;min-height:58px!important;background:var(--surface-1)!important;top:0!important;z-index:25}
body.hospitality-ui .calendar-hospitality :is(.classic-calendar-room-axis,.classic-calendar-day){background:var(--surface-1)!important;border-color:var(--border)!important;color:var(--text-primary)!important;box-shadow:none!important}
body.hospitality-ui .calendar-hospitality .classic-calendar-day{gap:3px;font-variant-numeric:tabular-nums}
body.hospitality-ui .calendar-hospitality .classic-calendar-day strong{font-size:16px!important;font-weight:500}
body.hospitality-ui .calendar-hospitality .classic-calendar-day small{font-size:11px!important;font-weight:400;color:var(--text-secondary)}
body.hospitality-ui .calendar-hospitality .classic-calendar-day.today{background:var(--today-header)!important;color:var(--text-primary)!important;border-color:var(--border)!important}
body.hospitality-ui .calendar-hospitality .calendar-row{min-height:64px!important;height:64px!important;border-color:var(--border)!important;background:var(--surface-1)!important}
body.hospitality-ui .calendar-hospitality.calendar-density-compact .calendar-row{height:52px!important;min-height:52px!important}
body.hospitality-ui .calendar-hospitality .calendar-cell{height:100%!important;min-height:0!important;border-color:var(--border)!important;background:var(--surface-1)!important}
body.hospitality-ui .calendar-hospitality .calendar-cell.today{background:var(--today-surface)!important}
body.hospitality-ui .calendar-hospitality .calendar-room{width:var(--calendar-room-rail)!important;min-width:var(--calendar-room-rail)!important;position:sticky;left:0;height:100%;background:var(--surface-1)!important;color:var(--text-primary)!important;border-color:var(--border)!important;display:flex;flex-direction:row!important;align-items:center;justify-content:space-between;padding:7px 12px!important;z-index:12;box-shadow:none!important}
body.hospitality-ui .calendar-hospitality .calendar-room-identity{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-width:0;flex:1;width:auto!important;height:auto}
body.hospitality-ui .calendar-hospitality .calendar-room-number{font-size:17px!important;line-height:20px;font-weight:600;color:var(--text-primary);flex-shrink:0}
body.hospitality-ui .calendar-hospitality .calendar-room-meta{display:flex;flex-direction:column;flex-shrink:0;gap:1px;font-size:10px;line-height:12px;color:var(--text-secondary);min-width:0;max-width:100%;overflow:hidden}
body.hospitality-ui .calendar-hospitality .calendar-room-meta strong{font-size:12px!important;line-height:14px;flex-shrink:0;font-weight:400;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:122px}
body.hospitality-ui .calendar-hospitality .calendar-room-meta small{font-size:10px!important;line-height:12px;flex-shrink:0}
body.hospitality-ui .calendar-hospitality.calendar-density-compact .calendar-room-meta small{display:none}
body.hospitality-ui .calendar-hospitality .calendar-room-status{font-size:0!important;padding:0!important;min-width:8px;width:8px;background:none!important;border:0!important}
body.hospitality-ui .calendar-hospitality .calendar-room-status i{width:6px;height:6px;display:block}
body.hospitality-ui .calendar-hospitality .calendar-res{align-self:center;height:46px!important;min-height:0!important;padding:6px 10px!important;border:1px solid transparent!important;border-radius:6px!important;background:var(--stay-confirmed)!important;color:var(--stay-confirmed-ink)!important;box-shadow:none!important;overflow:hidden;display:flex;gap:8px;align-items:center;transition:box-shadow 140ms ease,border-color 140ms ease,filter 140ms ease}
body.hospitality-ui .calendar-hospitality .calendar-res.checked_in{background:var(--stay-inhouse)!important;color:var(--stay-inhouse-ink)!important}
body.hospitality-ui .calendar-hospitality .calendar-res.tentative{background:var(--stay-tentative)!important;color:var(--stay-tentative-ink)!important}
body.hospitality-ui .calendar-hospitality :is(.calendar-res.checked_out,.calendar-res.calendar-history-segment){background:var(--stay-completed)!important;color:var(--stay-completed-ink)!important}
body.hospitality-ui .calendar-hospitality .calendar-res.calendar-overstay-segment{background:var(--danger-soft)!important;color:var(--danger)!important}
body.hospitality-ui .calendar-hospitality .calendar-res.released-tail{opacity:.48!important}
body.hospitality-ui .calendar-hospitality .calendar-res.is-selected{border-color:var(--warning)!important;box-shadow:0 0 0 1px var(--warning)!important}
body.hospitality-ui .calendar-hospitality .calendar-res:hover{filter:brightness(.97);box-shadow:0 2px 7px rgb(10 40 30 / .1)!important}
body.hospitality-ui .calendar-hospitality .calendar-res-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
body.hospitality-ui .calendar-hospitality .calendar-res-copy strong{font-size:14px!important;font-weight:550;line-height:1.25;color:inherit;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
body.hospitality-ui .calendar-hospitality .calendar-res-copy small{font-size:11px!important;line-height:1.2;color:inherit;opacity:.8;white-space:nowrap}
body.hospitality-ui .calendar-hospitality .calendar-res-status{font-size:10px!important;font-weight:400;color:inherit;background:transparent!important;padding:0!important;max-width:100px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
body.hospitality-ui .calendar-hospitality .calendar-res-icon{display:none!important}
body.hospitality-ui .calendar-hospitality .calendar-res-short .calendar-res-status{display:none!important}
body.hospitality-ui .calendar-hospitality .calendar-res-short{padding:6px!important}
body.hospitality-ui .calendar-hospitality .calendar-bottom-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;border:0;background:transparent;padding:18px 0;color:var(--text-secondary);font-size:10px}
body.hospitality-ui .calendar-hospitality .calendar-bottom-legend{display:flex;flex-wrap:wrap;gap:12px}
body.hospitality-ui .calendar-hospitality .calendar-stay-tooltip{background:var(--surface-1);color:var(--text-primary)}
body.hospitality-ui .calendar-inspector{min-width:0;border:0!important;border-left:1px solid var(--border)!important;border-radius:0!important;box-shadow:none!important;padding:0 0 24px 24px;color:var(--text-primary);background:var(--bg-app);position:sticky;top:106px;max-height:calc(100dvh - 130px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}
body.hospitality-ui .inspector-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--border)}
body.hospitality-ui .inspector-heading .eyebrow{margin:0;font-size:9px}
body.hospitality-ui .inspector-close{border:0!important;min-width:32px!important;width:32px!important;min-height:32px!important;padding:6px!important}
body.hospitality-ui .calendar-inspector h2{font:400 28px/1.15 var(--font-display);letter-spacing:-.035em;margin:0 0 8px;color:var(--text-primary);overflow-wrap:anywhere}
body.hospitality-ui .inspector-code{font-size:11px;color:var(--text-muted);margin:0 0 12px}
body.hospitality-ui .inspector-status{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:var(--stay-confirmed);color:var(--stay-confirmed-ink);font-size:11px;max-width:100%}
body.hospitality-ui .inspector-status.status-checked_in{background:var(--stay-inhouse);color:var(--stay-inhouse-ink)}
body.hospitality-ui .inspector-status.status-tentative{background:var(--stay-tentative);color:var(--stay-tentative-ink)}
body.hospitality-ui .inspector-status:is(.status-cancelled,.status-no_show){background:var(--stay-cancelled);color:var(--stay-cancelled-ink)}
body.hospitality-ui .inspector-facts{margin:24px 0;display:flex;flex-direction:column;gap:22px}
body.hospitality-ui .inspector-facts>div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px}
body.hospitality-ui .inspector-facts dt{font-size:10px;color:var(--text-secondary)}
body.hospitality-ui .inspector-facts dd{margin:0;line-height:1.5;font-size:12px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
body.hospitality-ui .inspector-facts dd small{display:block;margin-top:5px;color:var(--text-secondary);font-size:11px}
body.hospitality-ui .inspector-note{border-top:1px solid var(--border);padding-top:16px;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}
body.hospitality-ui .inspector-actions{display:grid;gap:10px;border-top:1px solid var(--border);padding-top:20px;margin-top:26px}
body.hospitality-ui .inspector-actions .btn{width:100%}
body.hospitality-ui .inspector-empty{padding-top:16px}
body.hospitality-ui .inspector-empty h2{margin-top:25px}
body.hospitality-ui .inspector-empty p{font-size:13px;color:var(--text-secondary);line-height:1.7}
body.hospitality-ui .inspector-empty-hint{display:block;margin-top:26px;padding-top:18px;border-top:1px solid var(--border);font-size:11px;color:var(--text-muted)}
body.hospitality-ui .inspector-backdrop{position:fixed;inset:0;background:rgb(0 24 19 / .5);z-index:90;border:0;padding:0}
body.hospitality-ui .inspector-backdrop[hidden]{display:none}
@keyframes hospitality-enter{from{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:none}}
body.hospitality-ui .content>:not(.license-banner){animation:hospitality-enter 220ms ease backwards!important}
body.hospitality-ui .calendar-inspector.is-open{animation:hospitality-enter 180ms ease backwards!important}
body.hospitality-ui [hidden]{display:none!important}
@media(min-width:1600px){body.hospitality-ui .hospitality-shell .content{padding:36px 40px 44px}body.hospitality-ui .calendar-hospitality .calendar-workspace{grid-template-columns:minmax(0,1fr) 300px!important;gap:32px}body.hospitality-ui .calendar-hospitality{--calendar-room-rail:170px}}
@media(max-width:1399px) and (min-width:1200px){body.hospitality-ui .hospitality-shell .topbar{gap:8px;padding-inline:22px}body.hospitality-ui .hospitality-shell .cashier-chip{display:none}body.hospitality-ui .hospitality-shell .top-search-trigger{flex:0 0 38px;width:38px;padding:9px}body.hospitality-ui .hospitality-shell .top-search-trigger :is(span:not(.nav-icon),kbd){display:none}body.hospitality-ui .hospitality-shell .business-date{font-size:10px}body.hospitality-ui .hospitality-shell .top-left{flex-basis:220px}body.hospitality-ui .hospitality-shell .content{padding:26px 22px}body.hospitality-ui .calendar-hospitality .calendar-workspace{grid-template-columns:minmax(0,1fr) 246px!important;gap:18px}body.hospitality-ui .calendar-inspector{padding-left:18px}}
@media(max-width:1199px){
 body.hospitality-ui .app-shell.hospitality-shell{grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui .hospitality-shell .main{grid-column:1}
 body.hospitality-ui .hospitality-shell .sidebar{position:fixed;inset:0 auto 0 0;width:min(300px,88vw);max-width:300px;z-index:100;transform:translateX(-101%);visibility:hidden;transition:transform 220ms ease,visibility 220ms}
 body.hospitality-ui .hospitality-shell .sidebar:hover{position:fixed;inset:0 auto 0 0;width:min(300px,88vw);max-width:300px;z-index:100;transform:translateX(-101%);visibility:hidden;transition:transform 220ms ease,visibility 220ms}
 body.hospitality-ui .hospitality-shell .sidebar.keyboard-expanded{position:fixed;inset:0 auto 0 0;width:min(300px,88vw);max-width:300px;z-index:100;transform:translateX(-101%);visibility:hidden;transition:transform 220ms ease,visibility 220ms}
 body.hospitality-ui .hospitality-shell .sidebar.open{transform:none;visibility:visible}
 body.hospitality-ui .hospitality-shell .sidebar .brand{height:96px;min-height:96px;flex-basis:96px}
 body.hospitality-ui .hospitality-shell .sidebar-dismiss{display:inline-flex;position:absolute;right:10px;top:8px;color:var(--brand-sidebar-text);border:0}
 body.hospitality-ui .hospitality-shell .nav button>.nav-label{max-width:none;font-size:14px}
 body.hospitality-ui .hospitality-shell .mobile-menu{display:inline-flex}
 body.hospitality-ui .hospitality-shell .sidebar-backdrop{z-index:99;transition:opacity 180ms ease}
 body.hospitality-ui .hospitality-shell .topbar{padding:12px 22px;min-height:72px;gap:10px}
 body.hospitality-ui .hospitality-shell .top-left{flex:1 1 240px}
 body.hospitality-ui .hospitality-shell .content{padding:26px 22px}
 body.hospitality-ui .hospitality-shell .business-date{font-size:10px}
 body.hospitality-ui .hospitality-shell .cashier-chip{display:none}
 body.hospitality-ui .calendar-hospitality .calendar-workspace{grid-template-columns:minmax(0,1fr)!important}
 body.hospitality-ui .calendar-hospitality .classic-calendar-scroll{max-height:calc(100dvh - 300px)!important}
 body.hospitality-ui .calendar-inspector{display:none;position:fixed;inset:0 0 0 auto;top:0;width:min(400px,90vw);height:100dvh;max-height:none;z-index:91;border:0;padding:30px;background:var(--surface-1);box-shadow:var(--shadow-lg);overscroll-behavior:contain}
 body.hospitality-ui .calendar-inspector.is-open{display:block}
 body.hospitality-ui .calendar-inspector h2{font-size:32px}
 body.hospitality-ui .inspector-facts{gap:26px;margin:32px 0}
 body.hospitality-ui .inspector-facts dd{font-size:14px}
 body.hospitality-ui .hospitality-shell .top-search-trigger{flex:0 0 38px;width:38px;padding:9px}
 body.hospitality-ui .hospitality-shell .top-search-trigger :is(span:not(.nav-icon),kbd){display:none}
}
@media(max-width:767px){
 body.hospitality-ui .hospitality-shell .topbar{position:relative;padding:12px 16px;gap:8px}
 body.hospitality-ui .hospitality-shell .top-left{flex:1 1 170px;gap:8px}
 body.hospitality-ui .hospitality-shell .hotel-switch{min-width:0;max-width:180px}
 body.hospitality-ui .hospitality-shell .hotel-switch :is(select,.yotta-select-trigger){font-size:16px}
 body.hospitality-ui .hospitality-shell .top-actions{gap:6px}
 body.hospitality-ui .hospitality-shell .top-user{border:0;padding:0;min-width:36px}
 body.hospitality-ui .hospitality-shell .top-user-text{display:none}body.hospitality-ui .hospitality-shell .top-user-caret{display:none}
 body.hospitality-ui .hospitality-shell .business-date{display:none}
 body.hospitality-ui .hospitality-shell .workspace-theme{display:none}
 body.hospitality-ui .hospitality-shell .top-search-trigger{order:0;flex:0 0 38px}
 body.hospitality-ui .hospitality-shell .content{padding:22px 16px 28px}
 body.hospitality-ui .content :is(.page-head,.calendar-reference-head){align-items:flex-start;margin-bottom:20px;gap:14px}
 body.hospitality-ui .content :is(.page-head h1,.calendar-reference-head h1){font-size:36px!important}
 body.hospitality-ui :is(.panel,.ui-card){padding:18px;border-radius:12px}
 body.hospitality-ui :is(.grid.equal,.dashboard-next-grid,.dashboard-support-grid,.guest-profile-grid,.report-kpi-grid){grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui .dashboard-ops-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
 body.hospitality-ui .dashboard-counter{padding:16px;border-bottom:1px solid var(--divider)}
 body.hospitality-ui .dashboard-counter:nth-child(2n){border-right:0}
 body.hospitality-ui .dashboard-counter strong{font-size:34px}
 body.hospitality-ui .form-grid{grid-template-columns:minmax(0,1fr);gap:16px}
 body.hospitality-ui .form-grid>*{grid-column:1/-1;min-width:0}
 body.hospitality-ui .table{min-width:640px}
 body.hospitality-ui .table td{padding:12px}
 body.hospitality-ui .calendar-hospitality{--calendar-room-rail:112px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar{gap:10px;padding-bottom:16px!important}
 body.hospitality-ui .calendar-hospitality .calendar-reference-range{flex:1 1 170px;min-width:150px;max-width:none}
 body.hospitality-ui .calendar-hospitality .calendar-reference-range-copy strong{font-size:16px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-range-copy{min-width:0;padding-inline:0;overflow:visible;flex:1}
 body.hospitality-ui .calendar-hospitality .calendar-reference-range-copy strong{font-size:12px;line-height:1.25;white-space:normal;overflow:visible;text-overflow:clip}
 body.hospitality-ui .calendar-hospitality .calendar-reference-nav{margin-left:auto;flex:0 0 auto;width:auto!important}
 body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar-right{flex:1 1 100%;justify-content:flex-start;gap:8px}
 body.hospitality-ui .calendar-hospitality .calendar-period-switch{flex:1 1 180px}
 body.hospitality-ui .calendar-hospitality .calendar-period-btn{padding:5px 9px;font-size:11px}
 body.hospitality-ui .calendar-hospitality .calendar-toolbar-zoom{flex:0 0 auto}
 body.hospitality-ui .calendar-hospitality .calendar-reference-search{flex:1 1 170px;max-width:none}
 body.hospitality-ui .calendar-hospitality .calendar-reference-head-actions{width:100%;gap:8px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-head-actions .btn.primary{margin-left:auto}
 body.hospitality-ui .calendar-hospitality .classic-calendar-scroll{height:var(--calendar-content-height)!important;max-height:65dvh!important;min-height:260px!important}
 body.hospitality-ui .calendar-hospitality .calendar-room{padding:8px!important}
 body.hospitality-ui .calendar-hospitality .calendar-room-meta strong{max-width:92px}
 body.hospitality-ui .calendar-hospitality .calendar-room-status{display:none!important}
 body.hospitality-ui .calendar-inspector{inset:0;width:100%;padding:24px 20px max(28px,env(safe-area-inset-bottom));height:100dvh}
 body.hospitality-ui .calendar-hospitality .calendar-bottom-stats{display:flex;flex-wrap:wrap;gap:8px}
 body.hospitality-ui :is(.login-card,.hotel-login-card,.auth-card){padding:24px;max-width:100%}
 body.hospitality-ui .modal{width:100%;max-width:100%;max-height:100dvh;border-radius:16px 16px 0 0;margin:0}
 body.hospitality-ui :is(.modal-head,.modal-actions,.modal-footer){padding:16px}
 body.hospitality-ui .modal-body{padding:18px 16px}
 body.hospitality-ui .modal-backdrop{padding:0;align-items:flex-end}
 body.hospitality-ui .modal-actions{position:sticky;bottom:0;padding-bottom:max(16px,env(safe-area-inset-bottom))}
 body.hospitality-ui :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,.yotta-select-trigger){font-size:16px}
}
@media(pointer:coarse){
 body.hospitality-ui :is(.btn,.workspace-theme button,.nav button,.theme-choice button,.calendar-period-btn,.calendar-toolbar-zoom button,.calendar-reference-nav-btn,.calendar-reference-focus){min-height:44px}
 body.hospitality-ui .calendar-hospitality .calendar-res{touch-action:pan-x pan-y}
 body.hospitality-ui .inspector-close{min-width:44px!important;width:44px!important;min-height:44px!important}
}
@media(prefers-reduced-motion:reduce){
 body.hospitality-ui.hospitality-ui.hospitality-ui *{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.hospitality-ui.hospitality-ui.hospitality-ui *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.hospitality-ui.hospitality-ui.hospitality-ui *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{body.hospitality-ui .calendar-inspector{display:none}body.hospitality-ui .calendar-hospitality .calendar-workspace{display:block!important}body.hospitality-ui .workspace-theme{display:none}}

/* Selected reference, revision 2: compact navigation and a continuous calendar canvas. */
:root{--sidebar-expanded:172px;--accent-coral:#D9695D;--accent-coral-hover:#C65A50;--accent-ink:#FFFCF5}
[data-theme="dark"]{--bg-app:#032622;--bg-sidebar:#001D18;--surface-1:#0A302A;--surface-2:#10392F;--border:#2B5147;--divider:#254B40;--brand-sidebar:#001D18;--brand-sidebar-active:#1B4536;--accent-coral:#E97565;--accent-coral-hover:#F08271;--accent-ink:#FFFDF5;--brand-gold:#E5BE68;--warning:#EBBB4A;--stay-tentative:#4A4D27;--today-header:#514B24;--today-surface:#253A25}
body.hospitality-ui .hospitality-shell .sidebar{width:172px;max-width:172px}
body.hospitality-ui .hospitality-shell .sidebar:hover{width:172px;max-width:172px}
body.hospitality-ui .hospitality-shell .sidebar.keyboard-expanded{width:172px;max-width:172px}
body.hospitality-ui .hospitality-shell .sidebar .brand{height:150px;min-height:150px;flex-basis:150px;justify-content:center;padding:16px 12px 8px;border-bottom:0}
body.hospitality-ui .vestnas-lockup{display:block;width:144px;height:128px;object-fit:contain}
body.hospitality-ui .hospitality-shell .nav{padding:10px 6px 24px 0;overflow-x:hidden;overflow-y:auto}
body.hospitality-ui .hospitality-shell .nav-group{margin:0}
body.hospitality-ui .hospitality-shell .nav-group-title{display:none}
body.hospitality-ui .hospitality-shell .sidebar:hover .nav-group-title{display:none}
body.hospitality-ui .hospitality-shell .nav button{height:58px;min-height:58px;margin:0 0 7px;padding:12px 22px;gap:18px;border-radius:0 7px 7px 0}
body.hospitality-ui .hospitality-shell .nav button>.nav-icon{width:24px;height:24px;flex-basis:24px}
body.hospitality-ui .hospitality-shell .nav button>.nav-icon svg{width:24px;height:24px;stroke-width:1.5}
body.hospitality-ui .hospitality-shell .nav button>.nav-label{font-size:14px;white-space:nowrap;max-width:none}
body.hospitality-ui .hospitality-shell .nav button.active::before{left:0;top:0;bottom:0;width:4px;background:var(--brand-gold)}
body.hospitality-ui .hospitality-shell .topbar{height:80px;min-height:80px;flex-wrap:nowrap;padding:12px 26px;gap:24px}
body.hospitality-ui .hospitality-shell .top-left{flex:1 1 auto;gap:28px}
body.hospitality-ui .hospitality-shell .hotel-switch{display:flex;flex-direction:column;gap:1px;min-width:148px;max-width:230px}
body.hospitality-ui .top-context-label{display:block;color:var(--text-primary);font:400 10px/16px var(--font-ui);letter-spacing:.17em;text-transform:uppercase}
body.hospitality-ui .hospitality-shell .hotel-switch :is(select,.yotta-select-trigger){font:400 20px/26px var(--font-display)!important;min-height:28px!important;height:28px!important;padding:0 22px 0 0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
body.hospitality-ui .workspace-season{display:flex;flex-direction:column;gap:1px;padding-left:28px;border-left:1px solid var(--border);min-width:175px}
body.hospitality-ui .workspace-season :is(select,.yotta-select-trigger){font:400 20px/26px var(--font-display)!important;min-height:28px!important;height:28px!important;padding:0 22px 0 0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
body.hospitality-ui .workspace-season .yotta-select{min-width:0;width:100%}
body.hospitality-ui .hospitality-shell .cashier-chip{display:none!important}body.hospitality-ui .hospitality-shell #quick-res{display:none!important}
body.hospitality-ui .hospitality-shell .top-actions{gap:24px;flex:0 0 auto}
body.hospitality-ui .workspace-theme-cycle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;border:0;border-right:1px solid var(--border);padding:0 18px 0 0;box-sizing:content-box;background:transparent;color:var(--text-primary);cursor:pointer}
body.hospitality-ui .workspace-theme{border-radius:6px;padding:3px;gap:0}
body.hospitality-ui .workspace-theme button{min-height:30px;padding:6px 16px;font-size:12px}
body.hospitality-ui .hospitality-shell .top-user{display:flex;gap:18px;padding:0 0 0 30px;min-width:218px;max-width:270px}
body.hospitality-ui .hospitality-shell .top-avatar{width:44px;height:44px;min-width:44px;font-size:14px}
body.hospitality-ui .hospitality-shell .top-user-text{display:flex!important;flex-direction:column;align-items:flex-start;gap:3px;max-width:150px}
body.hospitality-ui .hospitality-shell .top-user-text strong{font-size:14px;line-height:18px}
body.hospitality-ui .hospitality-shell .top-user-text small{font-size:13px;line-height:17px}
body.hospitality-ui .hospitality-shell .top-user-caret{display:block!important}
body.hospitality-ui .hospitality-shell .content:has(.calendar-hospitality){padding:22px 0 20px}
body.hospitality-ui .calendar-hospitality{--calendar-room-rail:200px;display:grid!important;grid-template-columns:minmax(0,1fr) 325px!important;grid-template-rows:84px 60px 58px auto auto!important;min-height:0!important;align-content:start;column-gap:0;row-gap:0}
body.hospitality-ui .calendar-hospitality .calendar-reference-head{grid-column:1/-1;grid-row:1;min-height:70px;height:70px;margin:0 26px 14px!important;flex-wrap:nowrap;align-items:center}
body.hospitality-ui .calendar-hospitality .calendar-reference-head h1{font-size:68px!important;line-height:1.03!important;letter-spacing:-.045em!important}
body.hospitality-ui .calendar-hospitality .calendar-reference-hints{position:absolute;height:0;min-height:0;margin:0;overflow:visible}
body.hospitality-ui .calendar-hospitality .calendar-reference-hints:has(.calendar-inline-notice:empty){display:none}
body.hospitality-ui .calendar-hospitality #cal-new{min-height:52px;padding:12px 30px;font-size:18px;font-weight:400;border-radius:8px;gap:14px}
body.hospitality-ui .calendar-hospitality #cal-new svg{width:24px;height:24px}
body.hospitality-ui .calendar-period-navigation{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:nowrap;gap:14px;width:auto;margin:0 26px 16px;min-height:44px}
body.hospitality-ui .calendar-hospitality :is(.calendar-reference-nav-btn,.calendar-reference-focus){height:44px;min-height:44px;border:1px solid var(--border);border-radius:6px;padding:10px 14px;font-size:14px}
body.hospitality-ui .calendar-hospitality .calendar-reference-focus{margin-left:2px;padding-inline:22px}
body.hospitality-ui .calendar-hospitality .calendar-reference-range{position:relative;order:0;min-width:0;width:248px;max-width:320px;margin:0;background:transparent!important;border:0!important;display:flex;align-items:center;padding:0 3px;height:44px}
body.hospitality-ui .calendar-hospitality .calendar-reference-range-copy{display:flex;align-items:center;gap:12px;white-space:nowrap;padding:0}
body.hospitality-ui .calendar-hospitality .calendar-reference-range:focus-within{outline:2px solid var(--primary);outline-offset:3px}
body.hospitality-ui .calendar-hospitality .calendar-reference-range-copy strong{font:400 20px/1.3 var(--font-display);letter-spacing:-.02em}
body.hospitality-ui .calendar-hospitality .calendar-reference-date{position:absolute;inset:0;opacity:0;min-width:0;width:100%;height:100%}
body.hospitality-ui .calendar-hospitality .calendar-reference-date :is(.localized-date-control,.localized-date-wrap,.date-control){width:100%;height:44px}
body.hospitality-ui .calendar-hospitality .calendar-reference-date :is(input,button){height:44px;width:100%;cursor:pointer}
body.hospitality-ui .calendar-hospitality .calendar-reference-settings{margin-left:8px}
body.hospitality-ui .calendar-hospitality .calendar-reference-settings summary{width:40px;min-width:40px;padding:10px;border-color:transparent!important}
body.hospitality-ui .calendar-hospitality .calendar-reference-settings summary>span{display:none}
body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar{grid-column:1;grid-row:3;display:grid!important;grid-template-columns:180px 192px 196px minmax(180px,1fr);gap:14px;height:42px;min-height:42px;margin:0 14px 16px 26px!important;padding:0!important;align-items:stretch}
body.hospitality-ui .calendar-visible-filter{display:block;min-width:0;margin:0!important}
body.hospitality-ui .calendar-visible-filter :is(select,.yotta-select-trigger){height:42px;min-height:42px;width:100%;font:400 14px/1.3 var(--font-ui);padding:10px 16px;background:transparent!important;border-color:var(--border)!important;border-radius:6px}
body.hospitality-ui .calendar-hospitality .calendar-reference-search{grid-column:auto;grid-row:auto;order:0;min-width:0;width:auto;flex:none;gap:10px;border-radius:6px;height:42px;padding:0 12px;margin:0}
body.hospitality-ui .calendar-hospitality .calendar-reference-search input{min-height:40px;height:40px;font-size:14px!important;padding:8px 0!important}
body.hospitality-ui .calendar-hospitality .calendar-workspace{display:contents!important}
body.hospitality-ui .calendar-hospitality .calendar-panel{grid-column:1;grid-row:4;overflow:hidden;background:transparent!important}
body.hospitality-ui .calendar-hospitality .classic-calendar-scroll{height:var(--calendar-content-height)!important;max-height:calc(100dvh - 318px)!important;border-radius:0;border-left:0;border-right:0;min-height:200px!important;background:transparent!important}
body.hospitality-ui .calendar-hospitality .classic-calendar-day-axis{height:64px!important;min-height:64px!important;background:transparent!important}
body.hospitality-ui .calendar-hospitality :is(.classic-calendar-room-axis,.classic-calendar-day){background:var(--bg-app)!important}
body.hospitality-ui .calendar-hospitality .classic-calendar-room-axis{display:flex;align-items:center;justify-content:space-between;padding:0 26px;font-size:12px;font-weight:550;letter-spacing:.13em;text-transform:uppercase}
body.hospitality-ui .calendar-hospitality .classic-calendar-day{gap:5px}
body.hospitality-ui .calendar-hospitality .classic-calendar-day small{font-size:14px!important;text-transform:none!important;line-height:18px}
body.hospitality-ui .calendar-hospitality .classic-calendar-day small::first-letter{text-transform:uppercase}
body.hospitality-ui .calendar-hospitality .classic-calendar-day strong{font-size:16px!important;line-height:20px;font-weight:500}
body.hospitality-ui .calendar-hospitality .calendar-row{height:68px!important;min-height:68px!important;background:var(--surface-1)!important}
body.hospitality-ui .calendar-hospitality.calendar-density-compact .calendar-row{height:52px!important;min-height:52px!important}
body.hospitality-ui .calendar-hospitality .calendar-cell{background:transparent!important;border-color:var(--border)!important}
body.hospitality-ui .calendar-hospitality .calendar-cell.today{background:var(--today-surface)!important}
body.hospitality-ui .calendar-hospitality .calendar-cell.calendar-turnover-open::after{display:none}
body.hospitality-ui .calendar-hospitality .calendar-room{padding:8px 22px 8px 26px!important;background:var(--surface-1)!important}
body.hospitality-ui .calendar-hospitality .calendar-room-identity{display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:4px 6px;width:100%}
body.hospitality-ui .calendar-hospitality .calendar-room-number{grid-column:1/-1;font-size:18px!important;line-height:22px}
body.hospitality-ui .calendar-hospitality .calendar-room-meta{grid-column:1;grid-row:2;min-width:0}
body.hospitality-ui .calendar-hospitality .calendar-room-meta strong{font-size:13px!important;line-height:17px;max-width:100%;text-overflow:ellipsis;white-space:nowrap}
body.hospitality-ui .calendar-hospitality .calendar-room-meta small{display:none!important}
body.hospitality-ui .calendar-room-capacity{grid-column:2;grid-row:2;display:flex;align-items:center;gap:4px;color:var(--text-primary);font:400 12px/16px var(--font-ui)}
body.hospitality-ui .calendar-room-capacity svg:last-child{margin-left:8px}
body.hospitality-ui .calendar-hospitality .calendar-room-status{display:none!important}
body.hospitality-ui .calendar-hospitality .calendar-res{height:50px!important;min-height:0!important;display:flex;align-items:center;gap:10px;padding:6px 12px!important;border-left:1px solid transparent!important;border-radius:6px!important}
body.hospitality-ui .calendar-hospitality .calendar-res.is-selected{border:1px solid var(--warning)!important;box-shadow:none!important}
body.hospitality-ui .calendar-hospitality .calendar-res.confirmed{color:var(--stay-confirmed-ink)!important}
body.hospitality-ui .calendar-hospitality .calendar-res::before{display:none!important}
body.hospitality-ui .calendar-hospitality .calendar-res-copy{gap:4px}
body.hospitality-ui .calendar-hospitality .calendar-res-copy strong{font:500 14px/18px var(--font-ui)!important}
body.hospitality-ui .calendar-hospitality .calendar-res-copy small{display:flex!important;align-items:center;gap:7px;font:400 13px/16px var(--font-ui)!important;opacity:1;color:inherit}
body.hospitality-ui .calendar-stay-state i{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;background:#47B9E9}body.hospitality-ui .inspector-status i{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;background:#47B9E9}
body.hospitality-ui .calendar-res.checked_in .calendar-stay-state i{background:#37D19A}body.hospitality-ui .inspector-status.status-checked_in i{background:#37D19A}
body.hospitality-ui .calendar-res.tentative .calendar-stay-state i{background:#F3B73D}body.hospitality-ui .inspector-status.status-tentative i{background:#F3B73D}
body.hospitality-ui .calendar-res.calendar-overstay-segment .calendar-stay-state i{background:#FF837D}body.hospitality-ui .inspector-status.status-cancelled i{background:#FF837D}
body.hospitality-ui .calendar-hospitality .calendar-res-status{display:none!important}
body.hospitality-ui .calendar-hospitality .calendar-res-short{padding:5px!important}
body.hospitality-ui .calendar-hospitality .calendar-res-short .calendar-stay-state{font-size:10px!important;gap:4px}
body.hospitality-ui .calendar-hospitality .calendar-res-short .calendar-stay-state i{width:6px;height:6px}
body.hospitality-ui .calendar-hospitality .calendar-bottom-bar{grid-column:1;grid-row:5;padding:18px 26px}
body.hospitality-ui .calendar-inspector{grid-column:2;grid-row:3/span 2;position:sticky;top:104px;margin:0;padding:0 26px 24px 24px;max-height:calc(100dvh - 116px);background:transparent;border-left:1px solid var(--border)!important;overflow:auto}
body.hospitality-ui .inspector-heading{height:38px;margin:0 0 18px;padding:0 0 12px;gap:6px}
body.hospitality-ui .inspector-heading .eyebrow{font-size:12px;font-weight:400;letter-spacing:.18em;white-space:nowrap}
body.hospitality-ui .inspector-close{padding:4px!important;background:transparent!important;color:var(--text-secondary)}
body.hospitality-ui .calendar-inspector h2{font:400 32px/1.16 var(--font-display);letter-spacing:-.035em;margin:0 0 10px}
body.hospitality-ui .inspector-title-action{font:inherit;letter-spacing:inherit;color:inherit;background:transparent;border:0;padding:0;text-align:left;cursor:pointer}
body.hospitality-ui .inspector-title-action:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
body.hospitality-ui .inspector-status{display:inline-flex;align-items:center;gap:8px;font-size:14px;line-height:20px;padding:6px 14px}
body.hospitality-ui .inspector-facts{margin:34px 0 28px;gap:28px}
body.hospitality-ui .inspector-facts>div{grid-template-columns:64px minmax(0,1fr);gap:10px}
body.hospitality-ui .inspector-facts dt{text-transform:uppercase;font-size:10px;line-height:22px;letter-spacing:.12em;color:var(--text-primary)}
body.hospitality-ui .inspector-facts dd{font-size:14px;line-height:22px;overflow-wrap:normal}
body.hospitality-ui .inspector-facts dd small{font-size:14px;line-height:22px;margin-top:2px}
body.hospitality-ui .inspector-facts .inspector-status{padding:0;background:transparent;color:var(--text-primary);font-size:14px;line-height:22px;white-space:normal}
body.hospitality-ui .inspector-notes{white-space:pre-wrap;overflow-wrap:anywhere!important}
body.hospitality-ui .inspector-actions{padding-top:20px;margin-top:0}
@media(min-width:1200px) and (max-width:1399px){
 body.hospitality-ui .hospitality-shell .topbar{gap:16px;padding-inline:22px}
 body.hospitality-ui .hospitality-shell .top-actions{gap:14px}
 body.hospitality-ui .workspace-theme button{padding-inline:10px}
 body.hospitality-ui .hospitality-shell .top-user{min-width:190px;padding-left:18px;gap:12px}
 body.hospitality-ui .calendar-hospitality{grid-template-columns:minmax(0,1fr) 300px!important;--calendar-room-rail:176px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(180px,1.4fr);gap:10px}
 body.hospitality-ui .calendar-hospitality .calendar-room{padding-inline:18px!important}
 body.hospitality-ui .calendar-room-capacity svg:last-child{display:none}
}
@media(max-width:1199px){
 body.hospitality-ui .hospitality-shell .sidebar{width:min(280px,88vw);max-width:280px}body.hospitality-ui .hospitality-shell .sidebar:hover{width:min(280px,88vw);max-width:280px}body.hospitality-ui .hospitality-shell .sidebar.keyboard-expanded{width:min(280px,88vw);max-width:280px}
 body.hospitality-ui .hospitality-shell .sidebar .brand{height:150px;min-height:150px;flex-basis:150px}
 body.hospitality-ui .hospitality-shell .topbar{height:auto;min-height:76px;padding:12px 20px;gap:16px}
 body.hospitality-ui .hospitality-shell .top-left{gap:16px;flex:1 1 auto}
 body.hospitality-ui .hospitality-shell .top-actions{gap:12px}
 body.hospitality-ui .workspace-season{padding-left:16px;min-width:140px}
 body.hospitality-ui .workspace-theme button{padding-inline:10px}
 body.hospitality-ui .workspace-theme-cycle{display:none}
 body.hospitality-ui .hospitality-shell .top-user{min-width:0;padding-left:14px;gap:10px}
 body.hospitality-ui .hospitality-shell .top-user-text{display:none!important}
 body.hospitality-ui .hospitality-shell .content:has(.calendar-hospitality){padding:22px 0 20px}
 body.hospitality-ui .calendar-hospitality{grid-template-columns:minmax(0,1fr)!important;--calendar-room-rail:180px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-head{margin-inline:22px!important}
 body.hospitality-ui .calendar-hospitality .calendar-reference-head h1{font-size:56px!important}
 body.hospitality-ui .calendar-period-navigation{margin-inline:22px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(190px,1.5fr);margin-inline:22px!important}
 body.hospitality-ui .calendar-inspector{grid-column:auto;grid-row:auto;position:fixed;inset:0 0 0 auto;top:0;width:min(420px,94vw);height:100dvh;max-height:100dvh;padding:28px;background:var(--bg-app);z-index:91}
 body.hospitality-ui .calendar-hospitality .calendar-panel{grid-row:4}
 body.hospitality-ui .calendar-hospitality .classic-calendar-scroll{max-height:calc(100dvh - 314px)!important}
}
@media(max-width:767px){
 body.hospitality-ui .hospitality-shell .topbar{padding:10px 16px;gap:8px;min-height:68px;flex-wrap:nowrap}
 body.hospitality-ui .hospitality-shell .top-left{gap:10px;min-width:0;flex:1}
 body.hospitality-ui .workspace-season{display:none}
 body.hospitality-ui .hospitality-shell .hotel-switch{min-width:0;max-width:180px}
 body.hospitality-ui .hospitality-shell .hotel-switch :is(select,.yotta-select-trigger){font-size:17px!important}
 body.hospitality-ui .hospitality-shell .top-user{padding:0;border:0;gap:0;min-width:36px}
 body.hospitality-ui .hospitality-shell .top-avatar{width:36px;height:36px;min-width:36px}
 body.hospitality-ui .hospitality-shell .top-user-caret{display:none!important}
 body.hospitality-ui .calendar-hospitality{--calendar-room-rail:138px;grid-template-rows:auto auto auto auto auto!important}
 body.hospitality-ui .hospitality-shell .content:has(.calendar-hospitality){padding-top:20px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-head{display:grid!important;grid-template-columns:minmax(0,1fr);height:auto;min-height:48px;gap:12px;margin:0 16px 16px!important;align-items:center}
 body.hospitality-ui .calendar-hospitality .calendar-reference-copy{width:100%;min-width:0;max-width:none;flex:none}
 body.hospitality-ui .calendar-hospitality .calendar-reference-head h1{font-size:40px!important}
 body.hospitality-ui .calendar-hospitality #cal-new{font-size:12px;min-height:42px;padding:9px 10px;gap:5px}
 body.hospitality-ui .calendar-hospitality #cal-new svg{width:16px;height:16px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-head-actions{width:100%;gap:8px;flex-direction:row;justify-content:space-between;align-items:center}
 body.hospitality-ui .calendar-hospitality .calendar-decision-trigger{font-size:10px;padding:4px 8px;min-height:26px}
 body.hospitality-ui .calendar-period-navigation{margin:0 16px 14px;gap:6px;flex-wrap:wrap}
 body.hospitality-ui .calendar-hospitality .calendar-reference-range{width:auto;max-width:none;flex:1 1 auto;min-width:150px;padding:0}
 body.hospitality-ui .calendar-hospitality .calendar-reference-range-copy{gap:4px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-range-copy strong{font-size:16px;white-space:normal}
 body.hospitality-ui .calendar-hospitality .calendar-reference-focus{padding-inline:12px;flex:0 0 76px;width:76px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-settings{margin:0}
 body.hospitality-ui .calendar-hospitality .calendar-reference-settings .classic-calendar-settings-pop{position:fixed;inset:144px 12px auto;max-height:calc(100dvh - 160px);width:auto;overflow:auto}
 body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));height:auto;gap:8px;margin:0 16px 14px!important}
 body.hospitality-ui .calendar-hospitality .calendar-reference-search{grid-column:auto}
 body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar>*{order:0!important}
 body.hospitality-ui .calendar-visible-filter :is(select,.yotta-select-trigger){font-size:13px!important;padding:10px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-search input{font-size:16px!important}
 body.hospitality-ui .calendar-hospitality .calendar-room{padding:8px 12px!important}
 body.hospitality-ui .calendar-hospitality .calendar-room-meta strong{font-size:11px!important}
 body.hospitality-ui .calendar-room-capacity{font-size:11px;gap:3px}
 body.hospitality-ui .calendar-room-capacity svg:last-child{display:none}
 body.hospitality-ui .calendar-hospitality .calendar-room-identity{gap:3px}
 body.hospitality-ui .calendar-hospitality .classic-calendar-room-axis{padding-inline:12px}
 body.hospitality-ui .calendar-hospitality .classic-calendar-scroll{max-height:calc(100dvh - 370px)!important;min-height:240px!important}
 body.hospitality-ui .calendar-inspector{inset:0;top:0;width:100%;height:100dvh;max-height:100dvh;padding:24px 22px}
 body.hospitality-ui .calendar-inspector h2{font-size:32px}
 body.hospitality-ui .calendar-hospitality .calendar-bottom-bar{padding-inline:16px}
}
@media(prefers-reduced-motion:reduce){body.hospitality-ui *{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.hospitality-ui *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.hospitality-ui *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

body.hospitality-ui .calendar-hospitality .classic-calendar-settings-pop{max-height:min(620px,calc(100dvh - 260px));overflow-y:auto}

/* assets/ui-workspaces.css */
/* Whole application composition. This sheet is last; geometry and server actions stay authoritative. */
body.hospitality-ui [hidden]{display:none!important}
body.hospitality-ui{--sidebar-expanded:232px;--workspace-gap:22px}
body.hospitality-ui .app-shell.hospitality-shell{--sidebar-expanded:232px;grid-template-columns:232px minmax(0,1fr)}
body.hospitality-ui .hospitality-shell .sidebar{width:232px;max-width:232px}
body.hospitality-ui .hospitality-shell .sidebar:hover{width:232px;max-width:232px}
body.hospitality-ui .hospitality-shell .sidebar.keyboard-expanded{width:232px;max-width:232px}
body.hospitality-ui .hospitality-shell .sidebar .brand{height:92px;min-height:92px;flex-basis:92px;display:flex;justify-content:flex-start;gap:10px;padding:18px;border-bottom:1px solid var(--brand-sidebar-border)}
body.hospitality-ui .hospitality-shell .brand-mark{width:42px;height:42px;min-width:42px;display:block}
body.hospitality-ui .hospitality-shell .brand-copy strong{font-size:20px!important}
body.hospitality-ui .hospitality-shell .brand-copy small{font-size:8px!important;letter-spacing:.12em!important}
body.hospitality-ui .sidebar-module-search{display:flex;align-items:center;flex-shrink:0;gap:8px;margin:14px 14px 4px;padding:0 10px;border:1px solid var(--brand-sidebar-border);border-radius:7px;color:var(--brand-sidebar-muted)}
body.hospitality-ui .sidebar-module-search input{width:100%;min-width:0;min-height:38px!important;padding:8px 0!important;background:transparent!important;color:var(--brand-sidebar-text)!important;border:0!important;font-size:12px!important}
body.hospitality-ui .sidebar-module-search input::placeholder{color:var(--brand-sidebar-muted)}
body.hospitality-ui .hospitality-shell .nav{padding:12px 10px 24px;overscroll-behavior:contain;scrollbar-width:thin}
body.hospitality-ui .hospitality-shell .nav-group{margin:0 0 18px}
body.hospitality-ui .hospitality-shell .nav-group-title{display:block;margin:0 10px 6px;font-size:10px;font-weight:500;letter-spacing:.12em;line-height:20px;color:var(--brand-sidebar-muted)}body.hospitality-ui .hospitality-shell .sidebar:hover .nav-group-title{display:block;margin:0 10px 6px;font-size:10px;font-weight:500;letter-spacing:.12em;line-height:20px;color:var(--brand-sidebar-muted)}
body.hospitality-ui .hospitality-shell .nav button{height:auto;min-height:40px;margin:1px 0;padding:9px 10px;gap:10px;border-radius:7px}
body.hospitality-ui .hospitality-shell .nav button>.nav-label{white-space:normal;font-size:13px;font-weight:450;line-height:19px;max-width:none}
body.hospitality-ui .hospitality-shell .nav button>.nav-icon{width:19px;height:19px;flex-basis:19px}
body.hospitality-ui .hospitality-shell .nav button>.nav-icon svg{width:19px;height:19px}
body.hospitality-ui .hospitality-shell .nav button.active::before{left:-10px;top:7px;bottom:7px;width:3px}
body.hospitality-ui .hospitality-shell .sidebar::after{height:45%;opacity:.35}
body.hospitality-ui .hospitality-shell .topbar{height:76px;min-height:76px;padding:12px 28px;gap:18px}
body.hospitality-ui .hospitality-shell .top-left{gap:22px}
body.hospitality-ui .hospitality-shell .hotel-switch :is(select,.yotta-select-trigger){font-size:18px!important}
body.hospitality-ui .hospitality-shell .business-date.app-date{display:flex!important;align-items:center;gap:8px;font-size:12px;white-space:nowrap}
body.hospitality-ui .hospitality-shell .top-search-trigger{display:flex!important;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;min-width:38px;padding:9px;border-radius:7px}
body.hospitality-ui .hospitality-shell .top-search-trigger :is(span:not(.nav-icon),kbd){display:none}
body.hospitality-ui .hospitality-shell .workspace-theme-cycle{display:none}
body.hospitality-ui .hospitality-shell .top-actions{gap:16px}
body.hospitality-ui .hospitality-shell .top-user{min-width:190px;padding-left:18px;gap:12px}
body.hospitality-ui .hospitality-shell .content{padding:28px 28px 40px;max-width:1600px;margin:0 auto}
body.hospitality-ui .workspace-route>.page-head{margin-bottom:24px;align-items:flex-start;gap:16px;flex-wrap:wrap}body.hospitality-ui .workspace-route :is(.page-head,.calendar-reference-head){margin-bottom:24px;align-items:flex-start;gap:16px;flex-wrap:wrap}
body.hospitality-ui .workspace-route :is(.page-head h1,.calendar-reference-head h1){font:400 clamp(30px,3.1vw,44px)/1.12 var(--font-display)!important;letter-spacing:-.035em!important;max-width:24ch;overflow-wrap:normal}
body.hospitality-ui .workspace-route .page-head>div:first-child{flex:1 1 300px;min-width:0}
body.hospitality-ui .workspace-route .page-head .toolbar{flex:0 1 auto;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:3px 0}
body.hospitality-ui .workspace-route .page-head :is(p,.muted){font-size:13px;line-height:1.65;max-width:70ch}
body.hospitality-ui .workspace-route .eyebrow{font-size:10px;line-height:18px;letter-spacing:.15em}
body.hospitality-ui .workspace-route :is(.panel,.ui-card){padding:22px;border-radius:12px;background:var(--surface-1);border:1px solid var(--border);min-width:0;box-shadow:none}
body.hospitality-ui .workspace-route :is(.section-head h2,.panel>h2,.panel>h3){font:400 24px/1.25 var(--font-display);letter-spacing:-.02em}
body.hospitality-ui .workspace-route .section-head{align-items:flex-start;gap:14px;margin-bottom:18px;padding-bottom:16px;flex-wrap:wrap}
body.hospitality-ui .workspace-route .section-head p{font-size:12px;line-height:1.65;margin:6px 0 0}
body.hospitality-ui .workspace-route .toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0}
body.hospitality-ui .workspace-route .badge{font-size:12px;line-height:18px;min-height:24px;padding:3px 9px;max-width:none;white-space:nowrap!important;overflow-wrap:normal!important;word-break:normal!important}
body.hospitality-ui .workspace-route :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,.yotta-select-trigger){font-size:14px;min-height:42px;line-height:20px}
body.hospitality-ui .workspace-route label{font-size:12px;line-height:20px;font-weight:500}
body.hospitality-ui .workspace-route .form-grid{gap:18px 20px}
body.hospitality-ui .workspace-route .form-grid :is(input,textarea,.yotta-select,.yotta-select-trigger){max-width:100%}
body.hospitality-ui .workspace-route .table-wrap{max-width:100%;min-width:0;overflow:auto;border:1px solid var(--border);border-radius:9px;scrollbar-color:var(--border-strong) transparent;overscroll-behavior:contain}
body.hospitality-ui .workspace-route .table{font-size:13px;line-height:20px;width:100%;border-collapse:collapse;color:var(--text-primary);background:var(--surface-1)}
body.hospitality-ui .workspace-route .table th{font-size:11px;line-height:18px;font-weight:600;letter-spacing:.035em;color:var(--text-secondary);background:var(--surface-2);text-transform:none;padding:12px 14px;border-bottom:1px solid var(--border);white-space:nowrap}
body.hospitality-ui .workspace-route .table td{font-size:13px;line-height:20px;padding:13px 14px;border-bottom:1px solid var(--divider);vertical-align:middle;color:var(--text-primary)}
body.hospitality-ui .workspace-route .table :is(td,th):first-child{padding-left:18px}
body.hospitality-ui .workspace-route .table td small{font-size:11px;line-height:18px;color:var(--text-secondary)}
body.hospitality-ui .workspace-route .table td{overflow-wrap:normal!important;word-break:normal!important}
body.hospitality-ui .workspace-route .table tr:hover td{background:var(--surface-hover)}
body.hospitality-ui .workspace-route .empty{padding:28px 18px;line-height:1.7;color:var(--text-secondary);font-size:13px;border-radius:8px;background:var(--surface-2)}
body.hospitality-ui .workspace-route .empty strong{display:block;font-size:14px;color:var(--text-primary);font-weight:550;margin-bottom:6px}
body.hospitality-ui .workspace-route .empty.compact{padding:18px}
body.hospitality-ui .workspace-route .metric :is(strong,b){font-variant-numeric:tabular-nums}body.hospitality-ui .workspace-route :is(.night-kpi strong,.health-kpi strong,.report-kpi strong){font-size:30px;line-height:1.2;font-weight:500;font-variant-numeric:tabular-nums}
body.hospitality-ui .workspace-route .metric :is(label,small){color:var(--text-secondary)}
body.hospitality-ui .workspace-route :is(.report-tabs,.yotta-billing-tabs,.invoice-tabs,.compliance-tabs){display:flex;gap:6px;max-width:100%;overflow-x:auto;flex-wrap:nowrap;padding:3px 0 10px;scrollbar-width:thin}
body.hospitality-ui .workspace-route :is(.report-tabs,.yotta-billing-tabs,.invoice-tabs,.compliance-tabs) button{flex:0 0 auto;min-height:40px;font-size:13px;padding:9px 14px;border-radius:7px}
body.hospitality-ui .workspace-route .yotta-billing-tabs{flex-wrap:wrap;overflow:visible;gap:6px;padding:8px}
/* Home: operational data and module directory are separate explicit tabs. */
body.hospitality-ui .dashboard-workspace-tabs{display:flex;gap:24px;border-bottom:1px solid var(--border);margin-bottom:24px}
body.hospitality-ui .dashboard-workspace-tabs button{display:flex;align-items:center;gap:10px;background:transparent;color:var(--text-secondary);border:0;border-bottom:2px solid transparent;padding:12px 0;font-size:14px;cursor:pointer}
body.hospitality-ui .dashboard-workspace-tabs button[aria-selected=true]{border-bottom-color:var(--primary);color:var(--text-primary);font-weight:600}
body.hospitality-ui .dashboard-workspace-tabs button span{font-size:11px;padding:2px 7px;border-radius:20px;background:var(--primary-soft)}
body.hospitality-ui .dashboard-operations{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
body.hospitality-ui .dashboard-operations .dashboard-operational-counters{grid-column:1/-1;margin:0;border:1px solid var(--border);border-radius:12px;background:var(--surface-1)}
body.hospitality-ui .dashboard-counter{min-width:0;padding:20px 18px;text-align:left}
body.hospitality-ui .dashboard-counter>span{font-size:12px;line-height:19px}
body.hospitality-ui .dashboard-counter strong{font-size:34px;line-height:1.3;margin:8px 0}
body.hospitality-ui .dashboard-counter small{font-size:11px}
body.hospitality-ui .dashboard-operations .dashboard-attention{grid-column:1;align-self:start;margin:0;max-height:560px;overflow:auto}
body.hospitality-ui .dashboard-next-grid{grid-column:2;display:grid;grid-template-columns:minmax(0,1fr);gap:22px;margin:0}
body.hospitality-ui .dashboard-next-grid .panel{margin:0}
body.hospitality-ui .dashboard-support-grid{grid-column:1/-1;margin:0;gap:22px}
body.hospitality-ui .dashboard-operations>:is(.dashboard-management-kpis,.team-operations,.panel:not(.dashboard-attention)){grid-column:1/-1}
body.hospitality-ui .dashboard-ops-row{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:16px 0}
body.hospitality-ui .dashboard-ops-row .toolbar{justify-content:flex-start;gap:8px}
body.hospitality-ui .directory-intro{margin-bottom:26px}
body.hospitality-ui .directory-intro h2{font:400 28px/1.25 var(--font-display);margin:0 0 8px}
body.hospitality-ui .directory-intro p{margin:0;color:var(--text-secondary);font-size:13px}
body.hospitality-ui .dashboard-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
body.hospitality-ui .directory-intro{grid-column:1/-1}
body.hospitality-ui .directory-group{padding:22px;background:var(--surface-1);border:1px solid var(--border);border-radius:12px}
body.hospitality-ui .directory-group h3{margin:0 0 16px;color:var(--text-secondary);font-size:11px;text-transform:uppercase;letter-spacing:.12em}
body.hospitality-ui .directory-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
body.hospitality-ui .directory-links button{display:flex;gap:10px;align-items:center;background:transparent;color:var(--text-primary);border:1px solid var(--divider);padding:12px;min-height:54px;border-radius:7px;text-align:left;font-size:13px;line-height:19px;cursor:pointer}
body.hospitality-ui .directory-links button:hover{background:var(--surface-hover);border-color:var(--border-strong)}
body.hospitality-ui .directory-icon{display:flex;align-items:center;justify-content:center;flex:0 0 22px;color:var(--primary)}
body.hospitality-ui .directory-icon svg{width:21px;height:21px}
/* Calendar scope and history are always visible rather than buried in a settings popover. */
body.hospitality-ui .hospitality-shell .content:has(.calendar-hospitality){max-width:none;padding:24px 0 24px}
body.hospitality-ui .calendar-hospitality{grid-template-columns:minmax(0,1fr) 290px!important;grid-template-rows:auto auto auto auto auto auto auto!important;--calendar-room-rail:170px}
body.hospitality-ui .calendar-hospitality .calendar-reference-head{height:auto;min-height:58px;margin:0 26px 18px!important}
body.hospitality-ui .calendar-hospitality .calendar-reference-head h1{font-size:52px!important}
body.hospitality-ui .calendar-hospitality #cal-new{font-size:14px;min-height:44px;padding:10px 18px}
body.hospitality-ui .calendar-hospitality .calendar-reference-head-actions{gap:8px}
body.hospitality-ui .calendar-hospitality #cal-find{min-height:44px;font-size:13px}
body.hospitality-ui .calendar-hospitality .calendar-period-navigation{grid-row:2;flex-wrap:wrap;margin-bottom:14px}
body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar{grid-row:3;height:auto;min-height:42px;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(160px,1.6fr);margin-bottom:12px!important;gap:10px}
body.hospitality-ui .calendar-visibility-state{grid-column:1;grid-row:4;display:flex;align-items:center;align-self:start;gap:10px 18px;flex-wrap:wrap;padding:10px 26px 14px;color:var(--text-secondary);font-size:12px;line-height:20px}
body.hospitality-ui .calendar-visibility-state label{display:flex;align-items:center;gap:10px;font-size:12px;white-space:nowrap}
body.hospitality-ui .calendar-visibility-state .yotta-select{width:100px}
body.hospitality-ui .calendar-visibility-state :is(select,.yotta-select-trigger){min-height:34px!important;padding:5px 10px!important;font-size:12px!important}
body.hospitality-ui .calendar-applied-filters{display:flex;gap:6px;flex-wrap:wrap}
body.hospitality-ui .calendar-filter-pill{border:1px solid var(--primary-border);background:var(--primary-soft);padding:3px 8px;border-radius:5px;font-size:11px;color:var(--text-primary)}
body.hospitality-ui .calendar-hospitality .calendar-panel{grid-row:5;grid-column:1}
body.hospitality-ui .calendar-hospitality .calendar-inspector{grid-column:2;grid-row:3/span 3;top:100px;padding:0 22px 22px;align-self:start;min-height:0;height:calc(100dvh - 230px);max-height:calc(100dvh - 116px)}
body.hospitality-ui .calendar-hospitality .classic-calendar-scroll{max-height:calc(100dvh - 370px)!important;min-height:280px!important}
body.hospitality-ui .calendar-hospitality .calendar-bottom-bar{grid-row:6}
body.hospitality-ui .calendar-hospitality .calendar-room{padding:8px 16px!important}
body.hospitality-ui .calendar-hospitality .calendar-room-meta strong{max-width:105px}
body.hospitality-ui .calendar-hospitality .calendar-room-number{font-size:17px!important}
body.hospitality-ui .calendar-hospitality .calendar-res.checked_out{opacity:1!important;background:var(--stay-completed)!important;color:var(--text-primary)!important;border:1px solid var(--border-strong)!important}body.hospitality-ui .calendar-hospitality .calendar-res.calendar-history-segment{opacity:1!important;background:var(--stay-completed)!important;color:var(--text-primary)!important;border:1px solid var(--border-strong)!important}body.hospitality-ui .calendar-hospitality .calendar-res.calendar-completed-history{opacity:1!important;background:var(--stay-completed)!important;color:var(--text-primary)!important;border:1px solid var(--border-strong)!important}
body.hospitality-ui .calendar-hospitality .calendar-res.checked_out .calendar-stay-state i{background:var(--text-muted)}
body.hospitality-ui .calendar-hospitality .calendar-row.calendar-archived-row .calendar-room{background:var(--surface-2)!important;color:var(--text-secondary)!important}
body.hospitality-ui .calendar-archived-label{font-size:10px;color:var(--text-secondary);font-style:normal}
body.hospitality-ui .calendar-unassigned-lane{grid-column:1/-1;grid-row:7;margin:4px 26px 0;padding:20px;border:1px solid var(--warning);border-radius:10px;background:var(--surface-1)}
body.hospitality-ui .calendar-unassigned-lane .section-head{margin-bottom:14px}
body.hospitality-ui .calendar-unassigned-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
body.hospitality-ui .calendar-unassigned-cards article{min-width:0;border:1px solid var(--border);border-radius:7px;padding:12px}
body.hospitality-ui .calendar-unassigned-cards .calendar-unassigned-main{display:flex;flex-direction:column;align-items:flex-start;width:100%;gap:5px;background:transparent;border:0;color:var(--text-primary);text-align:left}
body.hospitality-ui .calendar-unassigned-cards .calendar-unassigned-main strong{font-size:14px}
body.hospitality-ui .calendar-unassigned-cards .calendar-unassigned-main :is(span,small){font-size:12px;color:var(--text-secondary)}
body.hospitality-ui .calendar-unassigned-cards .calendar-unassigned-assign{margin-top:10px;min-height:34px;border:1px solid var(--border-strong);border-radius:6px;background:transparent;color:var(--text-primary);padding:6px 12px}
body.hospitality-ui .reservation-lookup-card{margin-top:18px;padding:18px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}
body.hospitality-ui .reservation-lookup-card h3{font:400 26px/1.2 var(--font-display);margin:8px 0}
body.hospitality-ui .reservation-lookup-card .toolbar{margin-top:18px}
/* Reception: keep one count/filter surface, with readable task and guest panels. */
body.hospitality-ui .frontdesk-queue-summary{display:none!important}
body.hospitality-ui .frontdesk-three-zone{display:grid;grid-template-columns:270px minmax(0,1fr);gap:18px;align-items:start}
body.hospitality-ui .frontdesk-workspace-zone{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;min-width:0}
body.hospitality-ui .frontdesk-filter-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:14px 0}
body.hospitality-ui .frontdesk-filter-tabs button{display:flex;flex-direction:column;gap:5px;align-items:flex-start;padding:10px;min-height:65px;font-size:12px;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--text-secondary)}
body.hospitality-ui .frontdesk-filter-tabs button span{font-size:22px;line-height:26px;font-weight:500}
body.hospitality-ui .frontdesk-filter-tabs button.active{border-color:var(--primary-border);background:var(--primary-soft);color:var(--text-primary)}
body.hospitality-ui .frontdesk-queue-zone{padding:16px!important}
body.hospitality-ui .frontdesk-queue-list{max-height:620px;overflow:auto}
body.hospitality-ui .frontdesk-detail-zone{min-width:0}body.hospitality-ui .frontdesk-actions-zone{min-width:0}
/* Registries, room boards, pricing and support pages. */
body.hospitality-ui .workspace-route[data-workspace=reservations] .reservation-registry-filters{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;padding:18px;background:var(--surface-1);border:1px solid var(--border);border-radius:10px;margin-bottom:20px}
body.hospitality-ui .workspace-route[data-workspace=reservations] .reservation-registry-table{min-width:1050px}
body.hospitality-ui .workspace-route[data-workspace=reservations] .reservation-registry-panel{padding:0!important;background:transparent!important;border:0!important}
body.hospitality-ui .workspace-route[data-workspace=reservations] .reservation-registry-content{padding:0!important}
body.hospitality-ui .workspace-route[data-workspace=reservations] .reservation-list-layout{display:block!important}
body.hospitality-ui .workspace-route[data-workspace=reservations] .reservation-right-rail{display:none!important}
body.hospitality-ui .workspace-route[data-workspace=reservations] .reservation-list-main{width:100%;min-width:0}
body.hospitality-ui .workspace-route[data-workspace=reservations] .reservation-view-more{margin:0 0 16px;background:transparent;border:1px solid var(--border);border-radius:7px}
body.hospitality-ui .frontdesk-filter-tabs button span{background:transparent!important;color:inherit!important;border:0!important;border-radius:0!important;min-width:0;width:auto;max-width:none;padding:0;position:static}
body.hospitality-ui .frontdesk-queue-item{display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;gap:6px 10px;padding:14px}
body.hospitality-ui .frontdesk-queue-item .top-avatar{grid-column:1;grid-row:1;width:32px;height:32px;min-width:32px}
body.hospitality-ui .frontdesk-queue-copy{grid-column:2;grid-row:1;min-width:0}
body.hospitality-ui .frontdesk-queue-copy strong{display:block;white-space:normal;overflow:visible;text-overflow:clip;font-size:13px;line-height:19px}
body.hospitality-ui .frontdesk-queue-copy small{display:block;white-space:normal;overflow-wrap:anywhere;font-size:11px;line-height:17px;margin-top:4px}
body.hospitality-ui .frontdesk-queue-item>.badge{grid-column:2;grid-row:2;justify-self:start;font-size:11px;padding:3px 7px}
body.hospitality-ui .room-truth-summary{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin-bottom:22px}
body.hospitality-ui .room-truth-summary .metric{padding:14px 12px;min-height:92px}
body.hospitality-ui .room-truth-summary .metric label{min-height:34px}
body.hospitality-ui .workspace-route :is(.guest-workspace-toolbar,.room-workspace-toolbar,.report-controls){gap:12px;padding:16px;background:var(--surface-1);border:1px solid var(--border);border-radius:10px;margin-bottom:20px;max-width:100%}
body.hospitality-ui .workspace-route :is(.room-board,.room-board-grid,.rooms-grid){gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
body.hospitality-ui .workspace-route :is(.room-card,.hk-task-card,.maintenance-task,.guest-card){padding:18px;border:1px solid var(--border);border-radius:10px;background:var(--surface-1);box-shadow:none}
body.hospitality-ui .workspace-route :is(.room-card h3,.hk-task-card h3,.maintenance-task h3){font-size:18px;line-height:24px;margin-bottom:10px}
body.hospitality-ui .workspace-route[data-workspace=rates] .table td{min-width:82px}
body.hospitality-ui .workspace-route :is(.common-doc-grid,.feedback-board,.health-columns,.health-readiness){gap:20px}
body.hospitality-ui .workspace-route .common-doc-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
body.hospitality-ui .workspace-route .common-doc-grid .panel{padding:24px}
body.hospitality-ui .workspace-route[data-workspace=settings] .form-grid{gap:20px}body.hospitality-ui .workspace-route[data-workspace=account] .form-grid{gap:20px}
body.hospitality-ui .workspace-route :is(.assistant-shell,.compliance-workspace-rc50,.admin-rc26,.platform-rc26){min-width:0;max-width:100%;gap:20px}
body.hospitality-ui .workspace-route .assistant-shell{margin:0;max-width:none}
body.hospitality-ui .workspace-route .assistant-shell h1{font:400 42px/1.15 var(--font-display)!important}
body.hospitality-ui .workspace-route :is(.assistant-card,.assistant-command-center,.assistant-conversation){border:1px solid var(--border);border-radius:12px;background:var(--surface-1)}
body.hospitality-ui .workspace-route .assistant-message{font-size:14px;line-height:1.65}
body.hospitality-ui .workspace-route .report-controls :is(input,select,.yotta-select){min-width:0;max-width:100%}
body.hospitality-ui .workspace-route :is(.report-kpis,.health-kpis,.night-kpis){gap:16px}
body.hospitality-ui .workspace-route :is(.report-kpi,.health-kpi,.night-kpi){border:1px solid var(--border);background:var(--surface-1);border-radius:10px;padding:20px}
body.hospitality-ui .workspace-route :is(.health-list,.health-events){font-size:13px;line-height:1.6}
body.hospitality-ui .workspace-route .form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:20px;margin-top:20px;border-top:1px solid var(--divider)}
body.hospitality-ui .settings-invoice-entry{display:flex;align-items:center;justify-content:space-between;gap:18px}
body.hospitality-ui .settings-invoice-entry h2{font:400 25px/1.25 var(--font-display);margin:5px 0}
body.hospitality-ui .settings-invoice-entry p{font-size:13px;line-height:1.6;margin:8px 0 0}
body.hospitality-ui .settings-invoice-advanced{border:1px solid var(--border);border-radius:10px;padding:18px;margin-top:20px}
body.hospitality-ui .settings-invoice-advanced>summary{font-size:14px;line-height:22px;color:var(--text-primary);cursor:pointer}
body.hospitality-ui .settings-invoice-advanced[open]>summary{padding-bottom:18px;border-bottom:1px solid var(--divider);margin-bottom:18px}
body.hospitality-ui .settings-invoice-advanced>.panel{margin-top:18px}
@media(min-width:1200px) and (max-width:1450px){
 body.hospitality-ui .hospitality-shell .top-left{gap:12px}
 body.hospitality-ui .hospitality-shell .top-actions{gap:10px}
 body.hospitality-ui .hospitality-shell .business-date.app-date{font-size:11px;padding-left:12px}
 body.hospitality-ui .hospitality-shell .top-user{min-width:0}
 body.hospitality-ui .hospitality-shell .top-user-text{display:none!important}
 body.hospitality-ui .frontdesk-workspace-zone{grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui .frontdesk-actions-zone{grid-column:1}
 body.hospitality-ui .calendar-hospitality{grid-template-columns:minmax(0,1fr) 264px!important;--calendar-room-rail:150px}
 body.hospitality-ui .calendar-inspector h2{font-size:26px}
 body.hospitality-ui .calendar-hospitality .calendar-inspector{padding-inline:18px}
 body.hospitality-ui .inspector-facts>div{grid-template-columns:54px minmax(0,1fr)}
 body.hospitality-ui .inspector-facts dd{font-size:13px}body.hospitality-ui .inspector-facts dd small{font-size:13px}
}
@media(max-width:1199px){
 body.hospitality-ui .room-truth-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
 body.hospitality-ui .app-shell.hospitality-shell{grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui .hospitality-shell .sidebar{width:min(300px,88vw);max-width:300px}body.hospitality-ui .hospitality-shell .sidebar:hover{width:min(300px,88vw);max-width:300px}body.hospitality-ui .hospitality-shell .sidebar.keyboard-expanded{width:min(300px,88vw);max-width:300px}
 body.hospitality-ui .hospitality-shell .topbar{padding:12px 22px;min-height:72px;height:auto}
 body.hospitality-ui .hospitality-shell .top-user{min-width:0;padding-left:12px}
 body.hospitality-ui .hospitality-shell .top-user-text{display:none!important}
 body.hospitality-ui .hospitality-shell .content{padding:26px 22px}
 body.hospitality-ui .calendar-hospitality{grid-template-columns:minmax(0,1fr)!important}
 body.hospitality-ui .calendar-hospitality .calendar-inspector{grid-row:auto;grid-column:auto;position:fixed;inset:0 0 0 auto;top:0;width:min(420px,94vw);height:100dvh;max-height:100dvh;padding:28px;background:var(--bg-app)}
 body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar{grid-column:1/-1}
 body.hospitality-ui .calendar-hospitality .classic-calendar-scroll{max-height:calc(100dvh - 360px)!important}
 body.hospitality-ui .frontdesk-workspace-zone{grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui .frontdesk-three-zone{grid-template-columns:250px minmax(0,1fr)}
 body.hospitality-ui .workspace-route[data-workspace=reservations] .reservation-registry-filters{grid-template-columns:repeat(3,minmax(120px,1fr))}
}
@media(max-width:767px){
 body.hospitality-ui .settings-invoice-entry{flex-direction:column;align-items:flex-start}
 body.hospitality-ui .room-truth-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.hospitality-ui .hospitality-shell .topbar{padding:10px 16px;min-height:68px;gap:8px}
 body.hospitality-ui .hospitality-shell .business-date.app-date{display:none!important}
 body.hospitality-ui .hospitality-shell .top-actions{gap:0}
 body.hospitality-ui .hospitality-shell .top-user{padding:0;border:0}
 body.hospitality-ui .hospitality-shell .top-search-trigger{display:flex!important;flex:0 0 34px;width:34px;height:34px;min-width:34px}
 body.hospitality-ui .hospitality-shell .top-left{gap:8px}
 body.hospitality-ui .hospitality-shell .content{padding:22px 16px 32px}
 body.hospitality-ui .workspace-route :is(.page-head h1,.calendar-reference-head h1){font-size:32px!important;max-width:100%}
 body.hospitality-ui .workspace-route .page-head .toolbar{justify-content:flex-start;width:100%}
 body.hospitality-ui .workspace-route .panel{padding:18px}
 body.hospitality-ui .workspace-route .form-grid{grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui .workspace-route .form-grid>*{grid-column:1/-1;min-width:0}
 body.hospitality-ui .workspace-route .table{min-width:620px}
 body.hospitality-ui .workspace-route .table td{padding:12px}
 body.hospitality-ui .workspace-route :is(input:not([type=checkbox]):not([type=radio]),select,textarea,.yotta-select-trigger){font-size:16px}
 body.hospitality-ui .dashboard-operations{grid-template-columns:minmax(0,1fr);gap:18px}
 body.hospitality-ui .dashboard-operations>:is(.dashboard-attention,.dashboard-next-grid,.dashboard-support-grid){grid-column:1}
 body.hospitality-ui .dashboard-operations .dashboard-attention{max-height:420px}
 body.hospitality-ui .dashboard-support-grid{grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui .dashboard-counter{padding:16px}
 body.hospitality-ui .dashboard-directory{grid-template-columns:minmax(0,1fr);gap:16px}
 body.hospitality-ui .directory-group{padding:18px}
 body.hospitality-ui .directory-links{grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui .dashboard-workspace-tabs{gap:20px}
 body.hospitality-ui .dashboard-workspace-tabs button{font-size:13px}
 body.hospitality-ui .frontdesk-three-zone{grid-template-columns:minmax(0,1fr)}.hospitality-ui .frontdesk-workspace-zone{grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui .frontdesk-queue-list{max-height:320px}
 body.hospitality-ui .workspace-route[data-workspace=reservations] .reservation-registry-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px;gap:10px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-head{display:grid!important;grid-template-columns:minmax(0,1fr);margin:0 16px 16px!important}
 body.hospitality-ui .calendar-hospitality .calendar-reference-head-actions{justify-content:flex-start;flex-wrap:wrap;gap:6px}
 body.hospitality-ui .calendar-hospitality #cal-new{font-size:12px;padding:8px 10px;min-height:40px}body.hospitality-ui .calendar-hospitality #cal-find{font-size:12px;padding:8px 10px;min-height:40px}
 body.hospitality-ui .calendar-hospitality .calendar-reference-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:16px!important}
 body.hospitality-ui .calendar-visibility-state{padding:8px 16px 14px;gap:8px 14px}
 body.hospitality-ui .calendar-hospitality .classic-calendar-scroll{max-height:calc(100dvh - 450px)!important;min-height:260px!important}
 body.hospitality-ui .calendar-hospitality .calendar-inspector{inset:0;width:100%;height:100dvh;max-height:100dvh;padding:24px 22px}
 body.hospitality-ui .calendar-unassigned-lane{margin-inline:16px;padding:16px}
 body.hospitality-ui .calendar-unassigned-cards{grid-template-columns:minmax(0,1fr)}
}
@media(pointer:coarse){}
@media(prefers-reduced-motion:reduce){body.hospitality-ui *{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.hospitality-ui *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.hospitality-ui *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* A vertical flex header must not retain the desktop 300px flex basis. */
body.hospitality-ui .workspace-route .metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:24px}
@media(max-width:1199px){body.hospitality-ui .workspace-route .metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767px){body.hospitality-ui .workspace-route .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){body.hospitality-ui .workspace-route .page-head>div:first-child{flex:0 1 auto;width:100%}body.hospitality-ui .workspace-route .page-head{height:auto;gap:16px}}

/* assets/ui-application.css */
/* REDESIGN 4 — application workspaces, complete calendar and loaded-data tooling. */
:root{--bg-app:#f1f1e9;--surface-1:#fffef9;--surface-2:#eaece3;--surface-3:#e1e6db;--text-primary:#193b32;--text-secondary:#526257;--border:#d4dcd0;--primary:#285b43;--primary-soft:#e3ebdc;--accent-coral:#ad5948;--accent-coral-hover:#944433;--application-shadow:0 8px 32px #1a392709;--application-hero:#173e32}
[data-theme=dark]{--bg-app:#101e1a;--surface-1:#192b24;--surface-2:#20362c;--surface-3:#2b4438;--surface-hover:#2a4437;--text-primary:#f1f2e7;--text-secondary:#bac9bb;--text-muted:#9aac9e;--border:#354a3d;--primary:#9cbe98;--primary-soft:#2b4635;--primary-border:#526f51;--application-shadow:0 8px 32px #0000000c;--application-hero:#1c3e2b}
body.application-v4{background:var(--bg-app);font-size:14px}
body.application-v4 .app-shell.hospitality-shell{grid-template-columns:248px minmax(0,1fr);--sidebar-expanded:248px}
body.application-v4 .hospitality-shell :is(.sidebar,.sidebar:hover,.sidebar.keyboard-expanded){width:248px;background:#123b30;border-color:#325746}
body.application-v4 .hospitality-shell .sidebar .brand{height:104px;min-height:104px;padding:23px 20px;gap:12px}
body.application-v4 .hospitality-shell .brand-copy strong{font-size:22px!important}
body.application-v4 .hospitality-shell .brand-copy small{font-size:9px!important;letter-spacing:.13em!important}
body.application-v4 .hospitality-shell .nav{padding:14px 12px 26px}
body.application-v4 .hospitality-shell .nav .nav-section{margin-top:22px;padding-left:12px;color:#b7ccba;font-size:10px;letter-spacing:.13em}
body.application-v4 .hospitality-shell .nav button{min-height:42px;padding:9px 12px;font-size:13px;line-height:18px;margin:2px 0;border-radius:7px;gap:12px}
body.application-v4 .hospitality-shell .nav button.active{background:#365b43;color:#fcf8df}
body.application-v4 .hospitality-shell .nav button.active::before{background:#d8bc79;left:-12px;top:10px;bottom:10px;width:3px}
body.application-v4 .hospitality-shell .sidebar-module-search{padding-inline:16px;margin:0}
body.application-v4 .hospitality-shell .sidebar-module-search input{height:40px;border-color:#3c5f4e;background:#214938;color:#f1f2e7;border-radius:7px}
body.application-v4 .hospitality-shell .sidebar::after{opacity:.14;height:60%}
body.application-v4 .hospitality-shell .topbar{height:72px;min-height:72px;padding:10px 28px;background:var(--surface-1);border-bottom:1px solid var(--border)}
body.application-v4 .hospitality-shell .top-user{min-width:58px;border:0;padding-left:12px}
body.application-v4 .hospitality-shell .hotel-switch :is(select,.yotta-select-trigger){font-size:17px!important}
body.application-v4 .hospitality-shell .content{max-width:1800px;padding:24px 28px 48px;width:100%}
body.application-v4 .hospitality-shell .content:has(.calendar-application){padding:20px 24px 40px;max-width:none}
body.application-v4 .application-breadcrumb i{opacity:.4;font-style:normal}
body.application-v4 .workspace-route :is(.page-head,.calendar-reference-head){margin:0 0 24px!important;gap:16px;align-items:center;min-height:0;height:auto;flex-wrap:wrap}
body.application-v4 .workspace-route :is(.page-head h1,.calendar-reference-head h1){font:400 clamp(28px,2.6vw,40px)/1.13 var(--font-display)!important;letter-spacing:-.035em!important;max-width:32ch;margin:2px 0 0!important}
body.application-v4 .workspace-route .page-head>div:first-child{flex:1 1 280px}
body.application-v4 .workspace-route .page-head .eyebrow{font-size:10px;color:var(--text-muted);letter-spacing:.12em}
body.application-v4 .workspace-route .panel{background:var(--surface-1);border:1px solid var(--border);border-radius:14px;padding:24px;box-shadow:var(--application-shadow)}
body.application-v4 .workspace-route :is(.section-head h2,.panel>h2,.panel>h3){font:600 18px/1.4 var(--font-ui);letter-spacing:-.025em}
body.application-v4 .workspace-route .section-head{border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:18px}
body.application-v4 .workspace-route .section-head p{font-size:13px;line-height:1.6}
body.application-v4 .workspace-route .form-grid{gap:20px}
body.application-v4 .workspace-route .metric-grid.room-truth-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
body.application-v4 .workspace-route .form-grid>label{font-size:12px;font-weight:600;letter-spacing:.01em}
body.application-v4 .workspace-route :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,.yotta-select-trigger){border-radius:7px;font-weight:400}
body.application-v4 .workspace-route :is(.btn,.application-sections button){border-radius:7px;font-weight:500;letter-spacing:0;min-height:40px}
body.application-v4 .application-sections{display:flex;gap:6px;overflow:auto;scrollbar-width:thin;margin:0 0 22px;padding:0 0 10px;max-width:100%;border-bottom:1px solid var(--border)}
body.application-v4 .application-sections button{flex:0 0 auto;white-space:nowrap;background:var(--surface-1);border:1px solid var(--border);padding:8px 14px;color:var(--text-secondary);font-size:12px}
body.application-v4 .application-sections button:hover{background:var(--primary-soft);color:var(--text-primary)}
body.application-v4 [id^=workspace-section-]{scroll-margin-top:100px}
body.application-v4 .workspace-route .dashboard-page-head{background:var(--application-hero)!important;padding:30px 32px!important;border-radius:16px;color:#f7f4e5;position:relative;overflow:hidden}
body.application-v4 .dashboard-page-head::after{content:"";width:270px;height:270px;border:1px solid #c8d3a52b;border-radius:50%;position:absolute;right:90px;top:-140px;box-shadow:0 0 0 35px #c8d3a508,0 0 0 72px #c8d3a508;pointer-events:none}
body.application-v4 .dashboard-page-head :is(h1,p,.eyebrow){color:#f7f4e5!important}
body.application-v4 .dashboard-page-head p{opacity:.8;font-size:13px}
body.application-v4 .dashboard-page-head .toolbar{position:relative;z-index:1}
body.application-v4 .dashboard-workspace-tabs{margin-top:0;margin-bottom:24px}
body.application-v4 .workspace-route .dashboard-operational-counters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;background:none;border:0;box-shadow:none;overflow:visible;margin-bottom:6px}
body.application-v4 .dashboard-counter{border:1px solid var(--border)!important;border-radius:12px;background:var(--surface-1);min-height:132px;padding:18px 20px}
body.application-v4 .dashboard-counter strong{font:400 34px/1.2 var(--font-display);margin:8px 0}
body.application-v4 .dashboard-counter>span{font-size:12px;font-weight:600}
body.application-v4 .dashboard-counter:hover{border-color:var(--primary-border)!important;background:var(--primary-soft)}
body.application-v4 .directory-group{background:var(--surface-1);border-radius:12px;padding:24px;border:1px solid var(--border)}
body.application-v4 .directory-group h3{font-size:12px;letter-spacing:.1em}
body.application-v4 .directory-links button{background:var(--surface-2);border:0;border-radius:8px;padding:15px;min-height:62px}
body.application-v4 .directory-links button:hover{background:var(--primary-soft)}
body.application-v4 .workspace-route .table-wrap{border:1px solid var(--border);border-radius:9px;background:var(--surface-1)}
body.application-v4 .workspace-route .table{border-collapse:collapse;width:100%}
body.application-v4 .workspace-route .table thead th{background:var(--surface-2);padding:12px 14px;font-size:11px;text-transform:none;letter-spacing:.015em;color:var(--text-secondary);font-weight:600;vertical-align:middle}
body.application-v4 .workspace-route .table td{padding:15px 14px;border-bottom:1px solid var(--border);font-size:13px;line-height:20px;vertical-align:middle}
body.application-v4 .workspace-route .table tbody tr:last-child td{border-bottom:0}
body.application-v4 .workspace-route .table tbody tr:hover{background:var(--surface-hover)}
body.application-v4 .workspace-route .table td>small{display:block;color:var(--text-muted);font-size:12px;margin-top:3px}
body.application-v4 .application-table-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;min-width:0}
body.application-v4 .application-table-tools label{display:flex;align-items:center;gap:12px;margin:0;min-width:0;font-size:11px;color:var(--text-muted)}
body.application-v4 .application-table-tools input{max-width:280px;width:240px;min-height:36px!important;height:36px;font-size:12px!important}
body.application-v4 .application-table-tools [role=status]{font-size:11px;white-space:nowrap;margin-left:auto;color:var(--text-muted)}
body.application-v4 .application-sort{border:0;background:none;color:inherit;font:inherit;text-align:left;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;padding:0;width:24px;min-width:24px;margin-left:5px;cursor:pointer;min-height:28px}
body.application-v4 .application-sort::after{content:"↕";font-size:12px;opacity:.45;margin-left:auto}
body.application-v4 th[aria-sort=ascending] .application-sort::after{content:"↑";opacity:1;color:var(--primary)}
body.application-v4 th[aria-sort=descending] .application-sort::after{content:"↓";opacity:1;color:var(--primary)}
body.application-v4 .calendar-application{display:block!important;max-width:100%;min-width:0;--calendar-room-rail:170px}
body.application-v4 .calendar-application .calendar-reference-head{display:flex!important;min-height:54px;margin:0 0 18px!important;padding:0!important;height:auto;align-items:center;flex-wrap:wrap}
body.application-v4 .calendar-application .calendar-reference-head-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
body.application-v4 .calendar-application .calendar-reference-hints{position:static;height:auto}
body.application-v4 .calendar-application .calendar-period-navigation{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 16px!important;width:auto;min-height:40px}
body.application-v4 .calendar-application .calendar-reference-range{width:260px;max-width:100%;padding-inline:10px;height:40px}
body.application-v4 .calendar-application .calendar-reference-range-copy strong{font:500 16px/1.3 var(--font-ui)}
body.application-v4 .calendar-application :is(.calendar-reference-nav-btn,.calendar-reference-focus){height:40px;min-height:40px;padding:8px 12px}
body.application-v4 .calendar-application .calendar-reference-settings{margin-left:auto}
body.application-v4 .calendar-application .calendar-reference-settings summary{width:auto;min-width:70px;padding:8px 12px;background:var(--surface-1);border:1px solid var(--border)!important}
body.application-v4 .calendar-application .calendar-reference-settings summary>span{display:inline!important;font-size:12px}
body.application-v4 .calendar-application .calendar-reference-settings-pop{right:0;left:auto;width:300px;z-index:50}
body.application-v4 .calendar-tools-deck{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;justify-content:space-between;margin:0 0 14px;padding:12px;background:var(--surface-1);border:1px solid var(--border);border-radius:12px}
body.application-v4 .calendar-tools-primary{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;min-width:0}
body.application-v4 .calendar-tools-primary>label{display:grid;gap:5px;margin:0;min-width:130px;max-width:190px;flex:0 1 auto;color:var(--text-muted);font-size:11px}
body.application-v4 .calendar-tools-primary>.calendar-setting-toggle{display:flex;align-items:center;min-width:0;align-self:center;color:var(--text-secondary);gap:6px}
body.application-v4 .calendar-tools-primary input[type=checkbox]{width:16px;height:16px;min-width:16px;min-height:16px;flex:0 0 16px;padding:0;margin:0;accent-color:var(--primary)}
body.application-v4 .calendar-tools-primary :is(select,.yotta-select-trigger){min-height:36px!important;height:36px;font-size:12px!important;background:var(--surface-2)}
body.application-v4 .calendar-tools-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
body.application-v4 .calendar-zoom-control{display:grid;gap:5px;font-size:11px;color:var(--text-muted)}
body.application-v4 .calendar-tools-deck .calendar-toolbar-zoom{display:flex!important;gap:4px;align-items:center;padding:0;height:36px;border:0;background:none}
body.application-v4 .calendar-toolbar-zoom :is(button,output){display:grid;place-items:center;border:1px solid var(--border);background:var(--surface-2);height:36px;min-height:36px;border-radius:6px;color:var(--text-primary);width:36px;font-size:12px}
body.application-v4 .calendar-toolbar-zoom output{width:54px}
body.application-v4 .calendar-tools-legend{position:relative;font-size:12px}
body.application-v4 .calendar-tools-legend>summary{cursor:pointer;padding:9px;border:1px solid var(--border);border-radius:6px}
body.application-v4 .calendar-tools-legend[open] .calendar-reference-settings-legend{position:absolute;top:44px;right:0;width:260px;background:var(--surface-1);padding:16px;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);z-index:50}
body.application-v4 .calendar-application .calendar-reference-toolbar{display:grid!important;grid-template-columns:repeat(3,minmax(130px,1fr)) minmax(200px,1.6fr);height:auto;min-height:42px;margin:0 0 16px!important;padding:0!important;gap:10px}
body.application-v4 .calendar-application .calendar-reference-search{margin:0!important;height:42px;background:var(--surface-1)!important}
body.application-v4 .calendar-view-tabs{display:flex;gap:24px;border-bottom:1px solid var(--border);margin:0 0 12px}
body.application-v4 .calendar-view-tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--text-muted);font-size:13px;font-weight:600;padding:12px 0;min-height:44px}
body.application-v4 .calendar-view-tabs button[aria-selected=true]{border-color:var(--primary);color:var(--text-primary)}
body.application-v4 .calendar-visibility-state{display:flex;align-content:flex-start;align-items:center;padding:8px 0 14px;gap:8px 16px;min-height:0;height:auto;margin:0;font-size:12px}
body.application-v4 .calendar-visibility-state label{margin:0!important;min-height:34px;gap:8px}
body.application-v4 .calendar-visibility-state .calendar-applied-filters:empty{display:none}
body.application-v4 .calendar-visibility-state #cal-show-all{margin-left:auto;min-height:34px;padding:6px 12px;font-size:11px}
body.application-v4 .calendar-application .calendar-workspace{display:grid!important;grid-template-columns:minmax(0,1fr) 280px!important;gap:18px;align-items:start;min-width:0;max-width:100%;margin:0}
body.application-v4 .calendar-application .calendar-panel{grid-row:auto;grid-column:auto;min-width:0;padding:0!important;overflow:hidden;border:1px solid var(--border)!important;border-radius:12px;background:var(--surface-1)!important}
body.application-v4 .calendar-application .classic-calendar-scroll{height:clamp(380px,calc(100dvh - 430px),740px)!important;min-height:380px!important;max-height:none!important;border:0!important;background:var(--surface-1)!important;border-radius:0}
body.application-v4 .calendar-application .classic-calendar-month-axis{display:grid!important;height:28px!important;min-height:28px;visibility:visible!important;position:sticky;top:0;z-index:9;background:var(--surface-2)}
body.application-v4 .calendar-application .classic-calendar-month{font-size:11px;color:var(--text-secondary);padding:5px 12px;text-transform:capitalize;border-bottom:1px solid var(--border);background:var(--surface-2)}
body.application-v4 .calendar-application .classic-calendar-day-axis{top:28px!important;height:58px!important;min-height:58px!important}
body.application-v4 .calendar-application :is(.calendar-today-time-line,.classic-calendar-hover-column){top:var(--calendar-axis-height,86px)!important}
/* Time stays below both sticky axes. Its height must not grow its own scroller. */
#app #calendar-scroll .calendar-today-time-line{z-index:2!important;min-height:0!important;transition:none!important}
body.application-v4 .calendar-application .classic-calendar-day small{font-size:11px!important}
body.application-v4 .calendar-application .classic-calendar-day strong{font-size:14px!important}
body.application-v4 .calendar-application :is(.classic-calendar-room-axis,.classic-calendar-day){background:var(--surface-1)!important}
body.application-v4 .calendar-application .calendar-row{height:76px!important;min-height:76px!important;background:var(--surface-1)!important}
body.application-v4 .calendar-application .calendar-room{padding:8px 12px!important;align-items:center;background:var(--surface-1)!important}
body.application-v4 .calendar-application .calendar-room-number{font-size:17px!important}
body.application-v4 .calendar-application .calendar-room-meta strong{font-size:11px!important;line-height:16px;max-width:130px}
body.application-v4 .calendar-application .calendar-room-status{display:block!important;font-size:10px;line-height:16px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted)}
body.application-v4 .calendar-application .calendar-res{height:53px!important;min-height:53px!important;border-radius:6px!important;font-size:12px!important;box-shadow:none!important}
body.application-v4 .calendar-application .calendar-res-copy strong{font-size:12px!important;font-weight:600!important}
body.application-v4 .calendar-application .calendar-stay-state{font-size:11px!important}
body.application-v4 .calendar-application .calendar-inspector{display:block;grid-column:auto;grid-row:auto;position:sticky;top:92px;align-self:start;min-height:280px;height:auto;width:auto;max-height:calc(100dvh - 110px);padding:20px;background:var(--surface-1);border:1px solid var(--border)!important;border-radius:12px;overflow:auto}
body.application-v4 .calendar-inspector h2{font-size:25px;line-height:1.15}
body.application-v4 .calendar-inspector .inspector-facts>div{display:block;padding:13px 0;border-bottom:1px solid var(--border)}
body.application-v4 .calendar-inspector .inspector-facts dt{margin-bottom:6px;font-size:10px;letter-spacing:.1em}
body.application-v4 .calendar-inspector .inspector-facts dd{font-size:13px;line-height:1.6}
body.application-v4 .calendar-inspector .inspector-actions .btn{width:100%}
body.application-v4 .calendar-application .calendar-bottom-bar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 0;margin:0}
body.application-v4 .calendar-application .calendar-unassigned-lane{margin:18px 0 0;padding:20px;border-radius:12px;background:var(--surface-1);border:1px solid var(--border)}
body.application-v4 .calendar-register-panel{background:var(--surface-1);border:1px solid var(--border);padding:24px;border-radius:12px}
body.application-v4 .calendar-register-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}
body.application-v4 .calendar-register-intro h2{font:400 29px/1.2 var(--font-display);margin:6px 0 8px}
body.application-v4 .calendar-register-intro p{font-size:13px;color:var(--text-muted);max-width:65ch}
body.application-v4 .register-total{text-align:right;font:400 32px var(--font-display);color:var(--primary);flex:0 0 auto}
body.application-v4 .register-total small{display:block;font:11px var(--font-ui);color:var(--text-muted);margin-top:5px}
body.application-v4 .calendar-register-filters{display:grid;grid-template-columns:minmax(200px,1fr) 240px auto;align-items:end;gap:16px;background:var(--surface-2);padding:16px;border-radius:9px;margin-bottom:18px}
body.application-v4 .calendar-register-filters label{display:grid;gap:7px;margin:0;font-size:12px;color:var(--text-secondary)}
body.application-v4 #calendar-register-count{font-size:12px;white-space:nowrap;padding-bottom:12px;color:var(--text-muted)}
body.application-v4 .calendar-data-note{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;margin-top:18px;padding:16px;border:1px solid var(--border);border-left:3px solid var(--primary-border);border-radius:7px}
body.application-v4 .calendar-data-note strong{font-size:13px}
body.application-v4 .calendar-data-note>span{font-size:12px;line-height:1.7;color:var(--text-muted);flex:1 1 300px}
body.application-v4 .application-status{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;padding:5px 9px;border-radius:6px;background:var(--surface-2);color:var(--text-primary)}
body.application-v4 .application-status::before{content:"";display:inline-block;width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:var(--text-muted)}
body.application-v4 .application-status.is-confirmed::before{background:#4f9fc4}
body.application-v4 .application-status.is-checked_in::before{background:#4caa7c}
body.application-v4 .application-status.is-tentative::before{background:#d4ac4b}
body.application-v4 .application-status:is(.is-cancelled,.is-no_show)::before{background:#ce796c}
body.application-v4 .application-empty{text-align:center;padding:50px 24px;background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:9px}
body.application-v4 .application-empty p{color:var(--text-muted);font-size:13px;margin:10px auto 0;max-width:60ch}
@media(min-width:1200px){body.application-v4 .calendar-application .calendar-reference-toolbar{grid-template-columns:repeat(3,minmax(110px,1fr)) minmax(200px,1.6fr)}}
@media(max-width:1399px){body.application-v4 .hospitality-shell .content{padding-inline:22px}body.application-v4 .calendar-application .calendar-workspace{grid-template-columns:minmax(0,1fr) 250px!important}body.application-v4 .calendar-tools-deck{gap:12px}body.application-v4 .calendar-tools-primary{gap:10px}}
@media(max-width:1199px){
 body.application-v4 .app-shell.hospitality-shell{grid-template-columns:minmax(0,1fr)}
 body.application-v4 .hospitality-shell .main{grid-column:1}
 body.application-v4 .hospitality-shell :is(.sidebar,.sidebar:hover,.sidebar.keyboard-expanded){position:fixed;top:0;left:0;width:300px;height:100dvh;transform:translateX(-100%);z-index:100}
 body.application-v4 .hospitality-shell .sidebar.open{transform:translateX(0)}
 body.application-v4 .hospitality-shell .sidebar-dismiss{display:grid}
 body.application-v4 .calendar-application .calendar-workspace{grid-template-columns:minmax(0,1fr)!important}
 body.application-v4 .calendar-application .calendar-inspector{display:none;position:fixed;inset:0 0 0 auto;top:0;width:min(420px,94vw);height:100dvh;max-height:100dvh;min-height:0;padding:28px;z-index:91;border-radius:0}
 body.application-v4 .calendar-application .calendar-inspector.is-open{display:block}
 body.application-v4 .workspace-route .dashboard-operational-counters{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:767px){
 body.application-v4 .workspace-route .metric-grid.room-truth-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.application-v4 .hospitality-shell .content{padding:18px 16px 32px}body.application-v4 .hospitality-shell .content:has(.calendar-application){padding:18px 16px 32px}
 body.application-v4 .hospitality-shell .topbar{height:66px;min-height:66px;padding:9px 16px}
 body.application-v4 .hospitality-shell .top-user{padding-left:0;min-width:36px}
 body.application-v4 .workspace-route .page-head>div:first-child{flex:0 1 auto;width:100%}
 body.application-v4 .workspace-route :is(.page-head h1,.calendar-reference-head h1){font-size:30px!important;overflow-wrap:normal}
 body.application-v4 .workspace-route .panel{padding:18px;border-radius:11px}
 body.application-v4 .workspace-route .page-head .toolbar{margin:0;gap:7px}
 body.application-v4 .workspace-route .dashboard-page-head{padding:24px!important;gap:16px}
 body.application-v4 .dashboard-page-head::after{right:-100px}
 body.application-v4 .workspace-route .dashboard-operational-counters{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 body.application-v4 .dashboard-counter{min-height:126px;padding:16px}
 body.application-v4 .dashboard-counter strong{font-size:30px}
 body.application-v4 .dashboard-counter:last-child{grid-column:1/-1;min-height:104px}
 body.application-v4 .application-table-tools{flex-wrap:wrap;gap:8px}
 body.application-v4 .application-table-tools label{display:grid;gap:5px;flex:1 1 220px}
 body.application-v4 .application-table-tools input{width:100%;max-width:none;min-height:40px!important;font-size:16px!important}
 body.application-v4 .application-table-tools [role=status]{margin:0 auto 0 0}
 body.application-v4 .calendar-application .calendar-reference-head{display:flex!important;gap:14px;margin-bottom:20px!important}
 body.application-v4 .calendar-application .calendar-reference-head h1{width:100%;font-size:34px!important}
 body.application-v4 .calendar-application .calendar-reference-head-actions{justify-content:flex-start;gap:7px}
 body.application-v4 .calendar-application :is(#cal-new,#cal-find,#cal-decisions){min-height:40px;font-size:12px;padding:8px 10px}
 body.application-v4 .calendar-application .calendar-period-navigation{gap:7px;margin-bottom:14px!important}
 body.application-v4 .calendar-application .calendar-reference-range{width:calc(100% - 96px);height:40px;padding:0 7px;max-width:none}
 body.application-v4 .calendar-application .calendar-reference-nav-btn{width:38px;min-width:38px;flex:0 0 38px;padding-inline:9px}
 body.application-v4 .calendar-application .calendar-reference-range-copy strong{font-size:14px;white-space:normal}
 body.application-v4 .calendar-application .calendar-reference-settings{margin-left:auto}
 body.application-v4 .calendar-tools-deck{display:block;padding:12px;margin-bottom:16px;overflow:visible}
 body.application-v4 .calendar-tools-primary{flex-wrap:nowrap;overflow:auto;max-width:100%;padding-bottom:8px;scrollbar-width:thin;align-items:flex-end}
 body.application-v4 .calendar-tools-primary>label{flex:0 0 150px;min-width:150px}
 body.application-v4 .calendar-tools-primary>.calendar-setting-toggle{flex-basis:115px;min-width:115px;max-width:115px;font-size:11px}
 body.application-v4 .calendar-zoom-control{flex:0 0 134px}
 body.application-v4 .calendar-tools-actions{padding-top:10px;gap:6px;border-top:1px solid var(--border)}
 body.application-v4 .calendar-tools-legend{font-size:11px;margin-left:auto}
 body.application-v4 .calendar-application .calendar-reference-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 12px!important}
 body.application-v4 .calendar-application .calendar-reference-toolbar .yotta-select-trigger{padding:9px!important;font-size:12px!important}
 body.application-v4 .calendar-application .calendar-reference-search{padding-inline:8px;height:42px;min-width:0}
 body.application-v4 .calendar-application .calendar-reference-search input{font-size:14px!important}
 body.application-v4 .calendar-view-tabs{gap:20px}
 body.application-v4 .calendar-view-tabs button{font-size:12px;padding:10px 0;min-height:42px}
 body.application-v4 .calendar-visibility-state{padding:4px 0 14px;gap:8px 12px;font-size:11px}
 body.application-v4 .calendar-visibility-state label{font-size:11px;min-height:32px}
 body.application-v4 .calendar-visibility-state .yotta-select{width:92px}
 body.application-v4 .calendar-visibility-state #cal-show-all{margin-left:0;font-size:10px}
 body.application-v4 .calendar-application{--calendar-room-rail:130px}
 body.application-v4 .calendar-application .classic-calendar-scroll{height:440px!important;min-height:340px!important}
 body.application-v4 .calendar-application .calendar-room{padding:8px 10px!important}
 body.application-v4 .calendar-application .calendar-room-meta strong{max-width:100px;font-size:10px!important}
 body.application-v4 .calendar-application .calendar-inspector{inset:0;width:100%;padding:24px;max-height:100dvh}
 body.application-v4 .calendar-register-panel{padding:16px}
 body.application-v4 .calendar-register-intro{display:block}
 body.application-v4 .calendar-register-intro h2{font-size:26px}
 body.application-v4 .register-total{display:flex;align-items:baseline;gap:8px;text-align:left;font-size:24px;margin-top:14px}
 body.application-v4 .calendar-register-filters{grid-template-columns:minmax(0,1fr);padding:12px;gap:12px}
 body.application-v4 #calendar-register-count{padding-bottom:0}
 body.application-v4 .calendar-data-note{padding:14px;gap:10px}
}
@media(prefers-reduced-motion:no-preference){body.application-v4 .calendar-register-panel{animation:application-appear 180ms ease both}@keyframes application-appear{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}}
@media(prefers-reduced-motion:reduce){body.application-v4 *{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.application-v4 *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.application-v4 *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body.application-v4 :is(.application-sections,.application-table-tools,.calendar-tools-deck,.calendar-view-tabs,.calendar-reference-toolbar,.calendar-period-navigation){display:none!important}}

/* Search owns one bounded results scroller; generic dialog rules must not
   introduce another scroll surface or a second input focus outline. */
#modal-root .modal-backdrop:has(.command-palette-modal){display:flex;align-items:center!important;justify-content:center;padding:12px!important;overflow:hidden}
#modal-root form.command-palette-modal{display:flex;flex-direction:column;width:min(640px,calc(100vw - 32px));max-width:640px;height:min(620px,calc(100dvh - 40px));max-height:calc(100dvh - 40px);min-height:0;margin:0;padding:0;overflow:hidden;border-radius:12px!important}
#modal-root .command-palette-modal .modal-head{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;min-height:64px;margin:0;padding:12px 20px;border-bottom:1px solid var(--border)}
#modal-root .command-palette-modal .modal-head h2{margin:0;font:600 18px/24px var(--font-ui)!important;text-transform:none;letter-spacing:0;color:var(--text-primary)}
#modal-root .command-palette-modal .modal-close-x{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;min-height:36px;margin:0;padding:8px;border-radius:8px!important}
#modal-root .command-palette-modal .modal-body{display:flex;flex:1 1 0;min-height:0;margin:0;padding:18px 20px;overflow:hidden!important}
#modal-root .command-palette-modal .modal-actions{display:none!important}
#modal-root .command-palette{display:flex;flex-direction:column;flex:1 1 0;gap:12px;min-width:0;min-height:0;max-width:100%;overflow:hidden}
#modal-root .command-palette-search{display:flex;align-items:center;flex:0 0 48px;gap:10px;width:100%;height:48px;min-height:48px;margin:0;padding:0 12px;border:1px solid var(--border-strong);border-radius:8px!important;background:var(--surface-2);box-shadow:none!important;outline:0}
#modal-root .command-palette-search:focus-within{outline:2px solid var(--primary);outline-offset:-2px}
#modal-root .command-palette-search #quick-search-query{flex:1 1 0;min-width:0;width:0;height:44px!important;min-height:0!important;margin:0;padding:0!important;border:0!important;border-radius:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;font:400 16px/24px var(--font-ui)!important}
#modal-root .command-palette-caption{flex:0 0 auto;margin:0;padding:0 2px;font:600 10px/16px var(--font-ui);letter-spacing:.08em}
#modal-root .command-palette-results{display:flex;flex-direction:column;flex:1 1 0;gap:4px;min-height:0;max-height:none;min-width:0;margin:0;padding:2px 4px 2px 2px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
#modal-root .command-palette-result{flex:0 0 auto;min-height:56px;margin:0;padding:8px 10px;border-radius:8px!important}
#modal-root .command-palette-result-copy strong{font:600 14px/20px var(--font-ui)}
#modal-root .command-palette-result-copy small{font:400 12px/18px var(--font-ui)}
#modal-root .command-palette-help{flex:0 0 auto;margin:0;padding:0 2px;font:400 11px/16px var(--font-ui)}
@media(max-width:560px){
 #modal-root form.command-palette-modal{width:calc(100vw - 24px);height:min(620px,calc(100dvh - 24px));max-height:calc(100dvh - 24px)}
 #modal-root .command-palette-modal .modal-head{min-height:56px;padding:10px 14px}
 #modal-root .command-palette-modal .modal-body{padding:14px}
 #modal-root .command-palette-search kbd{display:none}
 #modal-root .command-palette-help{gap:10px;font-size:10px}
}

/* Canonical shell ownership. Fixed navigation replaces legacy hover geometry.
   IDs are confined to structural owners so older route styles cannot resize them. */
body.application-v4{--ui-control-radius:8px;--ui-panel-radius:12px;--ui-control-height:40px;--ui-sidebar-width:248px}
body.application-v4 :is(button,input,select,textarea){font-family:var(--font-ui)}
#app .hospitality-shell{display:grid;grid-template-columns:var(--ui-sidebar-width) minmax(0,1fr);gap:0;max-width:100%;min-width:0}
#app .hospitality-shell .main{grid-column:2;min-width:0;width:100%;max-width:100%;margin:0}
#app .hospitality-shell #sidebar{display:flex;flex-direction:column;position:sticky;inset:0 auto auto 0;top:0;align-self:start;width:var(--ui-sidebar-width);min-width:0;max-width:var(--ui-sidebar-width);height:100dvh;max-height:100dvh;margin:0;padding:0;transform:none;visibility:visible;overflow:hidden;transition:none;background:#123b30;z-index:50}
#app .hospitality-shell #sidebar::after{display:none}
#app .hospitality-shell #sidebar .brand{position:relative;inset:auto;display:flex;align-items:center;justify-content:flex-start;flex:0 0 96px;width:100%;height:96px;min-height:96px;max-height:96px;margin:0;padding:20px;gap:12px;transform:none}
#app .hospitality-shell #sidebar .brand-mark{position:static;inset:auto;flex:0 0 40px;width:40px;height:40px;min-width:40px;margin:0;transform:none}
#app .hospitality-shell #sidebar .brand-copy{position:static;display:flex;opacity:1!important;visibility:visible!important;transform:none!important;min-width:0}
#app .hospitality-shell #sidebar .brand-copy strong{font-size:21px!important}
#app .hospitality-shell #sidebar .sidebar-hotel-context{position:relative;inset:auto;left:0;flex:0 0 auto;width:100%;height:auto!important;min-height:62px!important;max-height:none;margin:0!important;padding:12px 20px!important;transform:none;opacity:1;visibility:visible;overflow:hidden;border-bottom:1px solid #325746!important}
#app .hospitality-shell #sidebar .sidebar-hotel-name{font:600 12px/1.5 var(--font-ui);overflow-wrap:anywhere;white-space:normal;margin:0}
#app .hospitality-shell #sidebar .sidebar-hotel-status{font:500 10px/1.5 var(--font-ui);margin:3px 0 0;letter-spacing:.04em}
#app .hospitality-shell #sidebar .sidebar-module-search{position:relative;z-index:1;display:flex;align-items:center;flex:0 0 40px;min-height:40px;height:40px;width:calc(100% - 28px);min-width:0;max-width:calc(100% - 28px);margin:12px 14px 4px;padding:0 10px;border:1px solid #3c5f4e;border-radius:var(--ui-control-radius);background:transparent;box-shadow:none;transform:none}
#app .hospitality-shell #sidebar .sidebar-module-search input{flex:1 1 0;min-width:0;width:0;height:38px;min-height:38px!important;max-height:38px;margin:0;padding:8px 0!important;outline:0!important;box-shadow:none!important;background:transparent!important;border:0!important;border-radius:0!important;font:400 12px/20px var(--font-ui)}
#app .hospitality-shell #sidebar .sidebar-module-search:focus-within{outline:2px solid #b3c59e;outline-offset:2px}
#app .hospitality-shell #sidebar .nav{position:relative;inset:auto;display:block;flex:1 1 0;min-height:0;min-width:0;width:100%;max-width:100%;margin:0;padding:12px 12px 24px;overflow-x:hidden;overflow-y:auto;transform:none;scrollbar-gutter:stable;overscroll-behavior:contain}
#app .hospitality-shell #sidebar .nav-group-title{max-height:none;margin:18px 0 8px;padding:0 10px;font:600 10px/16px var(--font-ui);letter-spacing:.12em;opacity:1;visibility:visible;transform:none;color:#b7ccba}
#app .hospitality-shell #sidebar .nav-group:first-child .nav-group-title{margin-top:4px}
#app .hospitality-shell #sidebar .nav button{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-width:0;min-height:42px;height:auto;margin:2px 0;padding:10px;border-radius:var(--ui-control-radius);font:500 13px/18px var(--font-ui);transform:none;transition:background-color 140ms ease}
#app .hospitality-shell #sidebar .nav button .nav-icon{position:static;inset:auto;display:flex;flex:0 0 19px;width:19px;height:19px;transform:none}
#app .hospitality-shell #sidebar .nav button .nav-label{position:static;display:block;flex:1;min-width:0;font:inherit;white-space:normal;opacity:1;visibility:visible;transform:none}
#app .hospitality-shell #sidebar .nav button.active{background:#365b43;color:#fcf8df}
#app .hospitality-shell #sidebar .nav button.active::before{left:-12px;top:10px;bottom:10px}
#app .hospitality-shell .topbar{display:grid;grid-template-columns:minmax(0,1fr) 40px auto;align-items:center;gap:12px;position:sticky;top:0;min-width:0;width:100%;max-width:100%;height:72px;min-height:72px;margin:0;padding:12px 24px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:var(--surface-1);box-shadow:none;z-index:60;transform:none}
#app .hospitality-shell .top-left{display:flex;align-items:center;flex-wrap:nowrap;gap:12px;min-width:0;max-width:100%;width:auto;margin:0;grid-column:1;grid-row:1}
#app .hospitality-shell .top-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto;min-width:0;margin:0;padding:0;grid-column:3;grid-row:1;justify-self:end}
#app .hospitality-shell #top-search{grid-column:2;grid-row:1}
#app .hospitality-shell .topbar:not(:has(#top-search)) .top-actions{grid-column:2}
#app .hospitality-shell .topbar{grid-template-rows:minmax(0,1fr)}
#app .hospitality-shell .hotel-switch{display:flex;align-items:center;height:40px;min-height:40px;margin:0;padding:0}
#app .hospitality-shell .hotel-switch>.top-context-label{display:none}
#app .hospitality-shell .hotel-switch>.yotta-select{display:block;width:100%;min-width:0;margin:0}
#app .hospitality-shell .hotel-switch .yotta-select-trigger{width:100%;max-width:100%;height:40px!important;min-height:40px!important;margin:0;padding:8px 12px!important;border:1px solid var(--border)!important;background:var(--surface-2)!important;box-shadow:none!important}
#app .hospitality-shell :is(#top-search,#top-user-menu){height:40px!important;min-height:40px!important}
#app .hospitality-shell #top-search{width:40px!important;min-width:40px!important}
#app .hospitality-shell .topbar:not(:has(#top-search)){grid-template-columns:minmax(0,1fr) auto}
#app .hospitality-shell .platform-hotel-context{display:flex;align-items:center;gap:10px;flex:1 1 260px;min-width:0;max-width:360px;height:40px!important;min-height:40px!important;margin:0;padding:0 10px;border:1px solid var(--border);border-radius:var(--ui-control-radius);background:var(--surface-2);overflow:hidden;font:400 13px/18px var(--font-ui)}
#app .hospitality-shell .platform-hotel-context>.nav-icon{flex:0 0 18px;width:18px;height:18px}
#app .hospitality-shell .platform-hotel-context>div{flex:1 1 0;min-width:0;overflow:hidden}
#app .hospitality-shell .platform-hotel-context :is(small,strong){display:block;max-width:100%;font-family:var(--font-ui);line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app .hospitality-shell .platform-hotel-context small{font-size:9px;color:var(--text-muted);letter-spacing:.04em}
#app .hospitality-shell .platform-hotel-context strong{font-size:12px;font-weight:600;color:var(--text-primary)}
#app .hospitality-shell #leave-hotel-context{flex:0 0 auto;height:30px;min-height:30px;padding:5px 9px;margin:0;border-radius:var(--ui-control-radius);font:500 11px/18px var(--font-ui);background:var(--surface-1);white-space:nowrap}
#app .hospitality-shell .hotel-switch{flex:1 1 200px;max-width:300px;min-width:0}
#app .hospitality-shell .hotel-switch :is(select,.yotta-select-trigger){font:600 14px/20px var(--font-ui)!important}
#app .hospitality-shell .business-date.app-date{display:flex;flex:0 0 auto;align-items:center;gap:8px;height:40px;min-height:40px;margin:0;padding:8px 12px;border:1px solid var(--border);border-radius:var(--ui-control-radius);background:var(--surface-2);font:500 12px/20px var(--font-ui);white-space:nowrap}
#app .hospitality-shell #top-search{display:grid!important;place-items:center;flex:none;width:40px;height:40px;min-width:40px;min-height:40px;margin:0;padding:9px;border:1px solid var(--border);border-radius:var(--ui-control-radius);background:var(--surface-2);box-shadow:none}
#app .hospitality-shell .workspace-theme{display:flex;align-items:center;gap:3px;min-height:40px;height:40px;padding:3px;border:1px solid var(--border);border-radius:var(--ui-control-radius);background:var(--surface-2)}
#app .hospitality-shell .workspace-theme button{min-height:32px;height:32px;padding:6px 11px;border:0;border-radius:var(--ui-control-radius);background:transparent;color:var(--text-secondary);font:500 12px/20px var(--font-ui);white-space:nowrap}
#app .hospitality-shell .workspace-theme button[aria-pressed=true]{background:var(--primary-soft);color:var(--text-primary)}
#app .hospitality-shell .top-user-theme{display:none}
#app .hospitality-shell #top-user-menu{display:flex;align-items:center;gap:7px;min-width:54px;width:auto;max-width:76px;height:40px;min-height:40px;margin:0;padding:4px 7px;border:1px solid var(--border);border-radius:var(--ui-control-radius);background:var(--surface-2);font-family:var(--font-ui)}
#app .hospitality-shell #top-user-menu .top-avatar{width:30px;min-width:30px;height:30px;border-radius:50%;font:600 12px/20px var(--font-ui)}
#app .hospitality-shell #top-user-menu .top-user-text{display:none!important}
#app .hospitality-shell #top-user-menu .top-user-caret{display:block!important}
#app .hospitality-shell .top-divider{display:none}
#app .hospitality-shell .topbar .workspace-theme-cycle{display:none!important}
#app .hospitality-shell .topbar :is(button,.platform-hotel-context,.business-date,.workspace-theme){border-radius:var(--ui-control-radius)!important}
#app .hospitality-shell #sidebar .sidebar-hotel-context{border-radius:0!important;background:transparent!important;box-shadow:none!important}
#app .panel{border-radius:var(--ui-panel-radius,12px)!important}#modal-root :is(.modal,.ui-modal,.ui-drawer){border-radius:var(--ui-panel-radius,12px)!important}
#app .hospitality-shell #content{min-width:0;max-width:100%;box-sizing:border-box}
body.application-v4 :is(.btn,.badge,.yotta-select-trigger,.application-status,.application-sections button,.theme-choice button,input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){border-radius:var(--ui-control-radius)!important}
body.application-v4 .page-state-loading{display:flex;align-items:center;gap:12px;width:100%;min-height:74px;margin:0;padding:18px 20px;box-shadow:none;background:var(--surface-1)}
body.application-v4 .page-state-loading>div{display:grid;gap:4px;min-width:0}
body.application-v4 .page-state-loading strong{font:600 13px/20px var(--font-ui)}
body.application-v4 .page-state-loading small{font:400 12px/18px var(--font-ui);color:var(--text-muted)}
body.application-v4 .page-state-loading .page-state-spinner{width:18px;height:18px;flex:0 0 18px;border-width:2px;background:none}
body.application-v4 .page-state-skeleton{display:none}
#app .calendar-application .calendar-workspace{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:0;align-items:start;min-width:0;width:100%;max-width:100%;margin:0;border:0;border-radius:0;background:transparent;overflow:visible}
#app .calendar-application .calendar-panel{display:block;flex:none;grid-column:auto;grid-row:auto;width:100%;min-width:0;max-width:100%;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;border:1px solid var(--border)!important;border-radius:var(--ui-panel-radius)!important;overflow:hidden;background:var(--surface-1)!important}
#app #calendar-scroll{display:block;position:relative;flex:none;width:100%;min-width:0;max-width:100%;height:clamp(340px,calc(100dvh - 300px),600px)!important;min-height:0!important;max-height:600px!important;border:0!important;border-radius:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
#app #calendar-inspector{grid-column:auto;grid-row:auto;position:sticky;top:88px;min-width:0;width:100%;max-width:100%;height:auto;min-height:220px;max-height:calc(100dvh - 110px);margin:0;padding:20px;overflow:auto;border:1px solid var(--border)!important;border-radius:var(--ui-panel-radius)!important;background:var(--surface-1);box-shadow:none!important;overflow-wrap:anywhere}
#app #calendar-inspector .inspector-empty h2{font:400 25px/1.2 var(--font-display)}
#app .calendar-application .calendar-res{overflow:hidden}
/* Planning tools are a disclosure; closed settings reserve no calendar space. */
#app .calendar-application .calendar-reference-settings{position:relative;overflow:visible}
#app .calendar-application .calendar-reference-settings>.classic-calendar-settings-pop{position:absolute;inset:calc(100% + 8px) 0 auto auto;width:min(600px,calc(100vw - 40px));max-height:min(70dvh,650px);overflow:auto;z-index:60;padding:16px;box-sizing:border-box;box-shadow:var(--shadow-md);border:1px solid var(--border);border-radius:var(--ui-panel-radius);background:var(--surface-1)}
#app .calendar-application .calendar-reference-settings:not([open])>.classic-calendar-settings-pop{display:none!important}
#app .calendar-application .calendar-reference-settings[open]>.classic-calendar-settings-pop{display:grid;gap:14px}
#app .calendar-reference-settings .calendar-tools-deck{display:grid;gap:14px;margin:0;padding:0;border:0;background:transparent}
#app .calendar-reference-settings .calendar-tools-primary{display:flex;flex-wrap:wrap;gap:12px}
#app .calendar-reference-settings .calendar-tools-primary>label{flex:1 1 180px;max-width:none}
#app .calendar-reference-settings .calendar-tools-legend[open] .calendar-reference-settings-legend{position:static;width:100%;box-sizing:border-box;box-shadow:none;margin-top:8px}
#app .calendar-reference-settings .calendar-reference-settings-btn{gap:7px}
#app .calendar-settings-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}
#app .calendar-settings-head>.btn{display:grid;place-items:center;min-width:34px;width:34px}
/* Audit: canvas is a background token, never the document-card text colour. */
body.application-v4 .common-doc-card{border-radius:var(--ui-panel-radius,12px)}
body.application-v4 .common-doc-card{color:var(--text-primary)}body.application-v4 .common-doc-card strong{color:var(--text-primary)}
body.application-v4 .common-doc-card small{color:var(--text-secondary)}
/* A grid's implicit min-content track was making guest search as wide as the table. */
#app .guests-rc43 .guest-registry-panel{grid-template-columns:minmax(0,1fr);min-width:0}
#app .guests-rc43 .guest-registry-panel>*{min-width:0;max-width:100%}#app .guests-rc43 #guest-list{min-width:0;max-width:100%}
#app .guests-rc43 .guest-workspace-toolbar{box-sizing:border-box;width:100%}
#app .hospitality-shell #mobile-menu .ui-icon{color:var(--text-primary)}
#modal-root :is(input[type=checkbox],input[type=radio]){width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px;flex:0 0 18px;padding:0;accent-color:var(--primary)}
#modal-root .modal-close-x{display:grid;place-items:center;flex:0 0 40px;width:40px;min-width:40px;height:40px;min-height:40px;padding:0!important}
#modal-root .modal-close-x .ui-icon{flex:none;width:18px;height:18px;min-width:18px}
@media(max-width:639px){
 #app #content :is(.cards,.crm-kpis,.compliance-kpis,.health-kpis){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 #app #content :is(.cards,.crm-kpis,.compliance-kpis,.health-kpis)>.metric{min-width:0;min-height:112px;padding:14px}
 #app #content :is(.cards,.crm-kpis,.compliance-kpis,.health-kpis)>.metric strong{overflow-wrap:anywhere}
 #app .workspace-route .section-head{flex-wrap:wrap;gap:10px;align-items:flex-start}
 #app .workspace-route .section-head>div:first-child{min-width:0;flex:1 1 100%}
 #app .workspace-route .section-head>.badge{max-width:100%;white-space:normal}
}
@media(max-width:767px){#app .calendar-application .calendar-reference-settings>.classic-calendar-settings-pop{position:fixed;inset:82px 14px auto;width:auto;max-height:calc(100dvh - 100px)}}
@media(max-width:1199px){
 #app .hospitality-shell{grid-template-columns:minmax(0,1fr)}
 #app .hospitality-shell .main{grid-column:1}
 #app .hospitality-shell #sidebar{position:fixed;inset:0 auto 0 0;top:0;width:min(300px,88vw);max-width:300px;height:100dvh;transform:translateX(-101%);visibility:hidden;z-index:100}
 #app .hospitality-shell #sidebar.open{transform:translateX(0);visibility:visible}
 #app .calendar-application .calendar-workspace{grid-template-columns:minmax(0,1fr)!important}
 #app #calendar-inspector{display:none;position:fixed;inset:0 0 0 auto;top:0;width:min(420px,94vw);max-width:100%;height:100dvh;max-height:100dvh;min-height:0;padding:24px;border-radius:0!important;z-index:91}
 #app #calendar-inspector.is-open{display:block}
}
@media(max-width:999px){#app .hospitality-shell .business-date.app-date{display:none!important}}
@media(max-width:767px){
 #app .hospitality-shell .topbar{grid-template-columns:minmax(0,1fr) 36px 40px;gap:8px;height:64px;min-height:64px;padding:10px 14px}
 #app .hospitality-shell .top-left{gap:8px;min-width:0}
 #app .hospitality-shell .mobile-menu{flex:0 0 36px;width:36px;height:36px;min-height:36px;padding:8px}
 #app .hospitality-shell .platform-hotel-context{flex:1 1 0;width:auto;max-width:100%;gap:6px;height:36px!important;min-height:36px!important;padding:0 7px}
 #app .hospitality-shell .platform-hotel-context>.nav-icon{display:none}#app .hospitality-shell .platform-hotel-context small{display:none}
 #app .hospitality-shell .platform-hotel-context strong{font-size:11px;line-height:18px}
 #app .hospitality-shell #leave-hotel-context{display:flex!important;align-items:center;justify-content:center;width:26px;max-width:26px;height:26px;min-height:26px;padding:3px;font-size:0}
 #app .hospitality-shell #leave-hotel-context::after{content:"↔";font:500 16px/18px var(--font-ui)}
 #app .hospitality-shell .hotel-switch{flex:1 1 0;max-width:none}
 #app .hospitality-shell .hotel-switch{height:36px!important;min-height:36px!important}#app .hospitality-shell .hotel-switch .yotta-select-trigger{height:36px!important;min-height:36px!important}
 #app .hospitality-shell .hotel-switch :is(select,.yotta-select-trigger){font-size:13px!important}
 #app .hospitality-shell .workspace-theme{display:none}
 #app .hospitality-shell .top-user-theme{display:block}
 #app .hospitality-shell .top-actions{gap:0;grid-column:3!important;grid-row:1}
 #app .hospitality-shell .top-left{height:36px;min-height:36px}
 #app .hospitality-shell #top-search{width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;padding:8px}
 #app .hospitality-shell #top-user-menu{min-width:36px!important;width:36px!important;max-width:36px!important;height:36px!important;min-height:36px!important;padding:2px}
 #app .hospitality-shell .topbar:not(:has(#top-search)){grid-template-columns:minmax(0,1fr) 40px}
 #app .hospitality-shell .topbar:not(:has(#top-search)) .top-actions{grid-column:2!important}
 #app .hospitality-shell #top-user-menu .top-user-caret{display:none!important}
 #app #calendar-scroll{height:400px!important;max-height:400px!important;min-height:0!important}
 #app #calendar-inspector{inset:0;width:100%;border-radius:0!important}
}

/* Reservation workspace: a fixed frame with one independently scrolling body. */
body.application-v4 .reservation-detail-backdrop:has(.reservation-workspace-drawer){display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}
body.application-v4 .reservation-detail-drawer.reservation-workspace-drawer{--rd-space:24px;--rd-radius:16px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);width:min(1180px,100%);max-width:100%;height:min(900px,100%);max-height:100%;min-height:0;overflow:visible;border-radius:var(--rd-radius)!important;border:1px solid var(--border);background:var(--surface-1);color:var(--text-primary);font:400 14px/1.5 var(--font-ui)}
.reservation-workspace-drawer .reservation-detail-head{border-radius:var(--rd-radius) var(--rd-radius) 0 0}
.reservation-workspace-drawer .reservation-detail-scroll{border-radius:0 0 var(--rd-radius) var(--rd-radius)}
.reservation-workspace-drawer .reservation-detail-head{position:relative;top:auto;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0;padding:18px var(--rd-space) 16px;border-bottom:1px solid var(--border);background:var(--surface-1);min-width:0}
.reservation-workspace-drawer .reservation-drawer-title{min-width:0;display:grid;gap:5px}
.reservation-workspace-drawer .eyebrow{margin:0;color:var(--text-secondary);font:600 11px/1.5 var(--font-ui);letter-spacing:.09em}
.reservation-workspace-drawer .reservation-detail-head h2{margin:0;font:600 24px/1.25 var(--font-ui);overflow-wrap:anywhere;color:var(--text-primary)}
.reservation-workspace-drawer .reservation-detail-head p{margin:0;color:var(--text-secondary);font:400 13px/1.5 var(--font-ui)}
.reservation-workspace-drawer .reservation-detail-close{display:flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;min-height:40px;padding:10px;border:1px solid var(--border);border-radius:var(--ui-control-radius);background:var(--surface-2);color:var(--text-primary)}
.reservation-workspace-drawer .reservation-detail-close svg{flex:none;width:18px;height:18px}
.reservation-workspace-drawer .reservation-detail-actions{position:relative;top:auto;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding:12px var(--rd-space);background:var(--surface-1);border:0;border-bottom:1px solid var(--border)}
.reservation-workspace-drawer :is(.reservation-detail-primary-actions,.reservation-detail-secondary-actions){display:flex;flex:0 1 auto;gap:8px;width:auto;min-width:0}
/* Dedicated grid row: shortcuts remain in view while the content scrolls. */
body.application-v4 .reservation-workspace-drawer:has(>.reservation-detail-quick-actions){grid-template-rows:auto auto auto auto minmax(0,1fr);grid-template-areas:"head" "actions" "quick" "tabs" "content"}
.reservation-workspace-drawer:has(>.reservation-detail-quick-actions)>.reservation-detail-head{grid-area:head}
.reservation-workspace-drawer:has(>.reservation-detail-quick-actions)>.reservation-detail-actions{grid-area:actions}
.reservation-workspace-drawer:has(>.reservation-detail-quick-actions)>.reservation-workspace-tabs{grid-area:tabs}
.reservation-workspace-drawer:has(>.reservation-detail-quick-actions)>.reservation-detail-scroll{grid-area:content}
.reservation-workspace-drawer .reservation-detail-quick-actions{grid-area:quick;display:flex;justify-content:flex-start;gap:4px;width:100%;min-width:0;margin:0;padding:8px var(--rd-space);border-bottom:1px solid var(--border);background:var(--surface-1);box-sizing:border-box}
.reservation-workspace-drawer .reservation-detail-quick-actions>.btn{display:flex;flex:0 0 auto;align-items:center;justify-content:center;gap:8px;min-width:0;white-space:normal;text-align:center}
.reservation-workspace-drawer .reservation-detail-quick-actions>.reservation-detail-move:not(:first-child){margin-left:12px}
.reservation-workspace-drawer .reservation-detail-quick-actions>.btn>span:first-child{display:flex;align-items:center;flex:0 0 18px}
.reservation-workspace-drawer .reservation-detail-quick-actions svg{flex:none;width:18px;height:18px}
.reservation-workspace-drawer .reservation-action-label-short{display:none}
.reservation-workspace-drawer :is(.btn,.reservation-more-actions>summary){min-height:40px;height:auto;max-width:100%;padding:9px 14px;border-radius:var(--ui-control-radius);font:600 13px/20px var(--font-ui);white-space:normal;overflow-wrap:anywhere}
.reservation-workspace-drawer .reservation-detail-head .reservation-detail-close{width:40px;height:40px;min-height:40px;padding:10px}
.reservation-workspace-drawer .reservation-more-actions{position:relative;flex:0 0 auto;width:auto;max-width:none;margin-left:auto}
.reservation-workspace-drawer .reservation-more-actions>summary{display:flex;align-items:center;justify-content:center;width:auto;min-width:64px;cursor:pointer;list-style:none}
.reservation-workspace-drawer .reservation-more-actions>summary::-webkit-details-marker{display:none}
.reservation-workspace-drawer .reservation-more-actions-menu{position:absolute;top:calc(100% + 8px);right:0;bottom:auto;left:auto;width:260px;max-width:calc(100vw - 32px);max-height:min(55dvh,420px);overflow:auto;padding:8px;gap:4px;border:1px solid var(--border);border-radius:var(--ui-panel-radius);background:var(--surface-1);box-shadow:var(--application-shadow);z-index:10}
.reservation-workspace-drawer .reservation-more-actions-menu .btn{width:100%;justify-content:flex-start;text-align:left}
.reservation-workspace-drawer .reservation-more-actions-menu{width:420px;max-height:min(620px,calc(100dvh - 240px));padding:12px;gap:0}
.reservation-workspace-drawer .reservation-more-actions[open]>.reservation-more-actions-menu{display:grid!important;grid-template-columns:minmax(0,1fr);align-content:start}
.reservation-workspace-drawer .reservation-action-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;width:100%;padding:10px 0}
.reservation-workspace-drawer .reservation-action-group+.reservation-action-group{border-top:1px solid var(--border)}
.reservation-workspace-drawer .reservation-action-group-label{grid-column:1/-1;margin:0;padding:0 2px 2px;color:var(--text-secondary);font:600 10px/16px var(--font-ui);letter-spacing:.06em;text-transform:uppercase}
.reservation-workspace-drawer .reservation-more-actions-menu .btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:0;text-align:center;overflow-wrap:anywhere}
.reservation-action-icon{display:flex;flex:0 0 24px;align-items:center;justify-content:center;width:24px;height:24px;color:var(--text-secondary)}
.reservation-action-icon svg{width:22px;height:22px;flex:none}
.reservation-workspace-drawer .reservation-billing-actions{display:grid;gap:10px;padding-top:16px;border-top:1px solid var(--border)}
.reservation-workspace-drawer .reservation-billing-actions .reservation-inhouse-actions{padding:0;gap:8px}
.reservation-workspace-drawer .reservation-invoice-actions{min-width:0}
.reservation-workspace-drawer .reservation-invoice-actions>summary{display:flex;align-items:center;gap:8px;min-height:40px;width:fit-content;max-width:100%;padding:8px 10px;border-radius:var(--ui-control-radius);color:var(--text-primary);font:600 13px/20px var(--font-ui);cursor:pointer;list-style:none}
.reservation-workspace-drawer .reservation-invoice-actions>summary::-webkit-details-marker{display:none}
.reservation-workspace-drawer .reservation-invoice-actions>summary:hover{background:var(--surface-hover)}
.reservation-workspace-drawer .reservation-invoice-actions[open]>summary>svg:last-child{transform:rotate(180deg)}
.reservation-workspace-drawer .reservation-invoice-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:8px}
.reservation-workspace-drawer .reservation-invoice-options>.btn{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;text-align:left}
.reservation-workspace-drawer .reservation-invoice-options small{color:var(--text-secondary);font:400 12px/18px var(--font-ui)}
.reservation-workspace-tabs{display:flex;align-items:stretch;gap:4px;min-width:0;margin:0;padding:0 var(--rd-space);border-bottom:1px solid var(--border);background:var(--surface-1)}
.reservation-workspace-tabs button{position:relative;flex:1 1 0;min-width:0;min-height:46px;padding:10px 8px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--text-secondary);font:600 13px/22px var(--font-ui);cursor:pointer}
.reservation-workspace-tabs button[aria-selected=true]{border-bottom-color:var(--primary);color:var(--text-primary);background:var(--primary-soft)}
.reservation-workspace-drawer :is(button,summary,[role=tabpanel]):focus-visible{outline:2px solid var(--primary);outline-offset:-3px}
.reservation-workspace-drawer .reservation-detail-scroll{display:block;position:relative;min-width:0;min-height:0;height:auto;max-height:none;overflow:auto;overscroll-behavior:contain;margin:0;padding:20px var(--rd-space) max(24px,env(safe-area-inset-bottom));background:var(--bg-app);scrollbar-gutter:stable}
.reservation-workspace-panel{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:16px;min-width:0;outline:none}
.reservation-workspace-panel[hidden]{display:none!important}
.reservation-workspace-drawer .reservation-detail-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}
.reservation-workspace-drawer .reservation-detail-summary>div{display:grid;align-content:start;gap:5px;min-width:0;min-height:96px;margin:0;padding:16px;border:1px solid var(--border);border-radius:var(--ui-panel-radius);background:var(--surface-1);box-shadow:none;overflow-wrap:anywhere}
.reservation-workspace-drawer .reservation-detail-summary small{color:var(--text-secondary);font:500 12px/18px var(--font-ui)}
.reservation-workspace-drawer .reservation-detail-summary strong{font:600 18px/24px var(--font-ui);color:var(--text-primary)}
.reservation-workspace-drawer .reservation-detail-summary span{color:var(--text-secondary);font:400 12px/18px var(--font-ui)}
.reservation-workspace-drawer .subpanel{display:grid!important;align-content:start;gap:14px;min-width:0;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:20px!important;overflow:visible!important;border:1px solid var(--border);border-radius:var(--ui-panel-radius);background:var(--surface-1)!important;color:var(--text-primary)!important;box-shadow:none}
.reservation-workspace-drawer .subpanel :is(h3,h4){margin:0!important;padding:0;font:600 16px/24px var(--font-ui)!important;color:var(--text-primary)!important}
.reservation-workspace-drawer .subpanel p{margin:0;color:var(--text-secondary);font:400 13px/20px var(--font-ui)}
.reservation-workspace-drawer .section-head{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;margin:0!important;padding:0!important;min-width:0;border:0;background:transparent}
.reservation-workspace-drawer .section-head>div{display:grid;gap:5px;min-width:0;flex:1 1 240px}
.reservation-workspace-drawer .reservation-detail-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;width:100%;margin:0;padding:12px 0;border-bottom:1px solid var(--border);font:400 14px/22px var(--font-ui)}
.reservation-workspace-drawer .reservation-detail-row>span:first-child{flex:1;min-width:0;overflow-wrap:anywhere}
.reservation-workspace-drawer .reservation-detail-row small{font:400 12px/18px var(--font-ui);color:var(--text-secondary)}
.reservation-workspace-drawer .reservation-detail-row>strong{flex:none;white-space:nowrap}
.reservation-workspace-drawer .empty.compact{display:block;min-height:0;margin:0;padding:12px 14px;border:1px dashed var(--border);border-radius:var(--ui-control-radius);background:var(--surface-2);color:var(--text-secondary);font:400 13px/20px var(--font-ui);text-align:left}
.reservation-workspace-drawer :is(.financial-truth-grid,.reservation-inhouse-kpis){display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))!important;gap:12px!important;margin:0!important;min-width:0}
.reservation-workspace-drawer :is(.financial-truth-grid,.reservation-inhouse-kpis)>div{display:grid;align-content:space-between;gap:8px;min-width:0;min-height:92px;padding:12px;border:1px solid var(--border);border-radius:var(--ui-control-radius);background:var(--surface-2);color:var(--text-primary)}
.reservation-workspace-drawer :is(.financial-truth-grid span,.reservation-inhouse-kpis small){font:500 12px/18px var(--font-ui);color:var(--text-secondary)}
.reservation-workspace-drawer :is(.financial-truth-grid strong,.reservation-inhouse-kpis strong){font:600 18px/24px var(--font-ui);color:var(--text-primary);white-space:nowrap;overflow-wrap:normal}
.reservation-workspace-drawer :is(.financial-truth-due,.reservation-inhouse-kpis .due){grid-column:1/-1;background:var(--warning-soft);border-color:var(--warning)}
.reservation-workspace-drawer .reservation-financial-truth{border-left:1px solid var(--border)!important}
.reservation-workspace-drawer .reservation-inhouse-head{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}
.reservation-workspace-drawer .reservation-inhouse-head>div{display:grid;gap:6px;flex:1 1 260px;min-width:0}
.reservation-workspace-drawer .reservation-inhouse-head .badge{flex:none}
.reservation-workspace-drawer :is(.reservation-inhouse-folios,.reservation-inhouse-quick-services,.reservation-inhouse-recent){display:grid;gap:10px;min-width:0;padding:16px 0 0;border:0;border-top:1px solid var(--border)}
.reservation-workspace-drawer .reservation-inhouse-section-label{margin:0;font:600 11px/18px var(--font-ui);color:var(--text-secondary);letter-spacing:.05em}
.reservation-workspace-drawer .reservation-inhouse-folio-target{padding:14px;border:1px solid var(--border);background:var(--surface-2);border-radius:var(--ui-control-radius);color:var(--text-primary)}
.reservation-workspace-drawer .reservation-inhouse-folio-target small{white-space:normal;overflow-wrap:anywhere;color:var(--text-secondary);font-size:12px}
.reservation-workspace-drawer .reservation-inhouse-quick-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.reservation-workspace-drawer .reservation-inhouse-quick-charge{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 8px;min-height:68px;text-align:center;background:var(--surface-2);color:var(--text-primary)}
.reservation-workspace-drawer .reservation-inhouse-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}
.reservation-workspace-drawer .reservation-inhouse-recent .section-head span{color:var(--text-secondary);font-size:12px}
.reservation-workspace-drawer .reservation-financial-breakdown{padding:16px;border:1px solid var(--border);border-radius:var(--ui-panel-radius);background:var(--surface-1)}
.reservation-workspace-drawer .reservation-financial-breakdown>summary{cursor:pointer;font-weight:600;color:var(--text-primary)}
.reservation-workspace-drawer .reservation-financial-breakdown>.subpanel{margin-top:16px!important;padding:0!important;border:0}
.reservation-workspace-drawer .financial-truth-note{flex-wrap:wrap;gap:6px;margin:0;padding:12px;background:var(--surface-2);border-color:var(--border);color:var(--text-primary)}
.reservation-workspace-drawer .financial-truth-note span{font-size:12px;color:var(--text-secondary);text-align:left}
.reservation-workspace-drawer .reservation-detail-no-ops{min-width:0;margin:0;padding:8px 12px;background:var(--surface-2);border-color:var(--border);color:var(--text-secondary);font-size:12px}
.reservation-workspace-drawer .reservation-detail-loading{grid-column:1;grid-row:1/-1;align-self:center;justify-self:center;padding:24px;color:var(--text-secondary)}
/* Desktop reservation toolbar: compact, bounded controls with a clear hierarchy. */
@media(min-width:768px){
 .reservation-workspace-drawer .reservation-detail-head{padding-top:16px;padding-bottom:14px;align-items:center}
 .reservation-workspace-drawer .reservation-drawer-title{grid-template-columns:auto minmax(0,1fr);column-gap:18px;row-gap:8px;align-items:baseline}
 .reservation-workspace-drawer .reservation-drawer-title>.eyebrow{grid-column:1/-1}
 .reservation-workspace-drawer .reservation-drawer-title>h2{font-size:23px;letter-spacing:-.025em}
 .reservation-workspace-drawer .reservation-drawer-title>p{padding-left:18px;border-left:1px solid var(--border)}
 .reservation-workspace-drawer .reservation-detail-actions{border-bottom:0;padding-top:14px;padding-bottom:6px}
 body.application-v4 .reservation-workspace-drawer .reservation-detail-quick-actions{gap:0;padding-top:6px;padding-bottom:14px}
 body.application-v4 .reservation-workspace-drawer .reservation-detail-quick-actions>.btn{overflow-wrap:normal}
 body.application-v4 .reservation-workspace-drawer .reservation-detail-quick-actions>.btn+.btn{margin-left:-1px}
 body.application-v4 .reservation-workspace-drawer .reservation-detail-quick-actions>.reservation-detail-move:not(:first-child){margin-left:12px;border-radius:8px 0 0 8px!important}
 body.application-v4 .reservation-workspace-drawer .reservation-detail-quick-actions>.btn:hover{position:relative}
 body.application-v4 .reservation-workspace-drawer .reservation-detail-quick-actions svg{width:17px;height:17px;color:var(--text-secondary)}
 .reservation-workspace-drawer .reservation-workspace-tabs{gap:20px;padding-top:0}
 .reservation-workspace-drawer .reservation-workspace-tabs>button{flex:0 1 auto;min-width:88px;min-height:42px;padding:9px 12px;font-weight:500}
 .reservation-workspace-drawer .reservation-workspace-tabs>button[aria-selected=true]{background:transparent;color:var(--text-primary);font-weight:600}
}
@media(min-width:1100px){
 .reservation-workspace-drawer .reservation-detail-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
 .reservation-workspace-drawer .reservation-detail-summary>div{min-height:110px;padding:16px;gap:6px}
}
@media(max-width:767px),(max-height:560px){
 body.application-v4 .reservation-detail-backdrop:has(.reservation-workspace-drawer){padding:0}
 body.application-v4 .reservation-detail-drawer.reservation-workspace-drawer{--rd-radius:0px;width:100%;height:100dvh;max-height:100dvh;border:0}
}
@media(max-width:767px){
 body.application-v4 .reservation-workspace-drawer:has(>.reservation-detail-quick-actions){grid-template-rows:auto auto auto minmax(0,1fr) auto;grid-template-areas:"head" "actions" "tabs" "content" "quick"}
 .reservation-workspace-drawer .reservation-detail-quick-actions{position:relative;z-index:2;display:grid;grid-template-columns:repeat(var(--reservation-action-count,4),minmax(0,1fr));gap:0;padding:8px 10px max(12px,env(safe-area-inset-bottom));border:0;border-top:1px solid var(--border);box-shadow:0 -12px 24px rgb(0 0 0 / .08)}
 .reservation-workspace-drawer .reservation-detail-quick-actions>.btn{min-width:0;margin:0;flex-direction:column;gap:5px}
 .reservation-workspace-drawer .reservation-detail-quick-actions>.reservation-detail-move:not(:first-child){margin:0;padding:4px;border:0!important;border-radius:8px}
 .reservation-workspace-drawer .reservation-detail-quick-actions>.btn>span:first-child{flex:0 0 22px}
 .reservation-workspace-drawer .reservation-detail-quick-actions svg{width:22px;height:22px}
 .reservation-workspace-drawer .reservation-action-label-full{display:none}
 .reservation-workspace-drawer .reservation-action-label-short{display:inline}
}
.reservation-workspace-drawer:not(:has(.reservation-workspace-tabs)){grid-template-rows:auto minmax(0,1fr)}
.reservation-workspace-drawer .warning-panel{display:grid;align-content:start;gap:8px;min-width:0;padding:14px;border:1px solid var(--border);border-radius:var(--ui-control-radius);background:var(--surface-2);color:var(--text-primary)}
@media(max-width:639px){
 body.application-v4 .reservation-detail-drawer.reservation-workspace-drawer{--rd-space:16px;width:100%;border-left:0}
 .reservation-workspace-drawer .reservation-detail-head{padding:18px var(--rd-space) 16px;gap:12px}
 .reservation-workspace-drawer .reservation-detail-head h2{font-size:22px}
 .reservation-workspace-drawer .reservation-detail-actions{padding:10px var(--rd-space);gap:8px;flex-wrap:wrap}
 .reservation-workspace-drawer :is(.reservation-detail-primary-actions,.reservation-detail-secondary-actions){flex:1 1 90px;width:auto}
 .reservation-workspace-drawer .reservation-detail-primary-actions>.btn{width:100%;min-width:0}.reservation-workspace-drawer .reservation-detail-secondary-actions>.btn{width:100%;min-width:0}
 .reservation-workspace-drawer .reservation-detail-primary-op{min-width:0}
 .reservation-workspace-drawer .reservation-more-actions{margin-left:0;min-width:54px}
 .reservation-workspace-drawer .reservation-more-actions>summary{min-width:54px;min-height:44px;padding:8px}
 .reservation-workspace-tabs{gap:0;padding:0 8px}
 .reservation-workspace-tabs button{padding:10px 4px;font-size:12px;min-height:44px}
 .reservation-workspace-drawer .reservation-detail-scroll{padding:16px var(--rd-space) max(20px,env(safe-area-inset-bottom))}
 .reservation-workspace-drawer .reservation-detail-summary{gap:8px}
 .reservation-workspace-drawer .reservation-detail-summary>div{padding:12px;min-height:94px}
 .reservation-workspace-drawer .reservation-detail-summary strong{font-size:16px}
 .reservation-workspace-drawer .subpanel{padding:16px!important;gap:12px}
 .reservation-workspace-drawer :is(.financial-truth-grid,.reservation-inhouse-kpis){grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))!important}
 .reservation-workspace-drawer :is(.financial-truth-due,.reservation-inhouse-kpis .due){grid-column:1/-1!important}
 .reservation-workspace-drawer .reservation-inhouse-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .reservation-workspace-drawer .reservation-inhouse-quick-charge{min-height:44px;flex-direction:row;justify-content:flex-start;padding:10px}
 .reservation-workspace-drawer .reservation-inhouse-actions>.btn{flex:1 1 120px}
 .reservation-workspace-drawer .reservation-inhouse-folio-target{flex-wrap:wrap;gap:8px}
 .reservation-workspace-drawer .reservation-billing-actions .reservation-inhouse-pay{flex-basis:100%;min-height:44px}
 .reservation-workspace-drawer .reservation-invoice-options{grid-template-columns:minmax(0,1fr)}
}

/* Atelier icon family: consistent optical weight across legacy workspace layers.
   currentColor keeps selected, disabled and light/dark colors in the host control. */
body.hospitality-ui svg.ui-icon{stroke-width:1.75!important;flex-shrink:0;vertical-align:middle;pointer-events:none}
body.hospitality-ui .btn .nav-icon{color:inherit}
body.hospitality-ui .ui-icon g[fill-opacity]{fill:currentColor}
.frontdesk-guest-account-quick>.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.reservation-v112-icon>.ui-icon{width:22px;height:22px;display:block}
.hk-qa-choices label>span{display:inline-flex;align-items:center;gap:6px}

body.hospitality-ui .yotta-select-caret:has(.ui-icon){border:0!important;transform:none!important;width:16px;height:16px;flex:0 0 16px;display:flex;align-items:center;justify-content:center}
body.hospitality-ui [aria-expanded="true"]>.yotta-select-caret:has(.ui-icon){transform:rotate(180deg)!important}
body.hospitality-ui .application-sort:has(.ui-icon)::after{content:none}
body.hospitality-ui .application-sort:has(.ui-icon){display:inline-flex;align-items:center;justify-content:center}

/* Reservation workspace, selected concierge concept. Existing business controls
   are moved into their context; selectors and permission decisions stay intact. */
body.application-v4 .reservation-detail-drawer.reservation-concierge{
 --cq-accent:#8b692c;--cq-sidebar:#f3f3eb;--rd-space:32px;--rd-radius:12px;
 display:grid;grid-template-columns:240px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);
 grid-template-areas:"tabs head" "tabs content";width:min(1370px,100%);height:min(920px,100%);
 overflow:hidden;background:var(--surface-1);font:400 14px/1.5 var(--font-ui);
}
[data-theme="dark"] body.application-v4 .reservation-detail-drawer.reservation-concierge{
 --cq-accent:#e5be73;--cq-sidebar:#10251e;--surface-1:#152d24;--surface-2:#1c352a;
 --surface-hover:#203c30;--bg-app:#152d24;--border:#33493c;--text-primary:#f6f4e9;--text-secondary:#bfccbf;
}
body.application-v4 .reservation-concierge>.reservation-detail-head{
 grid-area:head;display:flex;align-items:flex-start;gap:18px;padding:34px var(--rd-space) 24px;
 border:0;border-radius:0;background:transparent;min-width:0;
}
body.application-v4 .reservation-concierge .reservation-drawer-title{display:flex;flex:1;flex-direction:column;gap:10px;min-width:0}
body.application-v4 .reservation-concierge .concierge-heading-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
body.application-v4 .reservation-concierge .reservation-detail-head h2{font:600 34px/1.25 var(--font-ui);letter-spacing:-.025em;margin:0}
body.application-v4 .reservation-concierge .reservation-drawer-title>p{margin:0;padding:0;border:0;font:400 16px/24px var(--font-ui)}
body.application-v4 .reservation-concierge .concierge-status{display:inline-flex;align-items:center;min-height:28px;padding:3px 10px;border:1px solid var(--border);border-radius:6px;color:var(--cq-accent);font-size:13px;white-space:nowrap}
body.application-v4 .reservation-concierge .concierge-mobile-code{display:none}
body.application-v4 .reservation-concierge .reservation-concierge-primary{flex:0 1 auto;max-width:34%;padding-top:0}
body.application-v4 .reservation-concierge .reservation-concierge-primary:empty{display:none}
body.application-v4 .reservation-concierge .reservation-concierge-primary>.btn{white-space:normal}
body.application-v4 .reservation-concierge .reservation-detail-no-ops{font-size:11px;line-height:17px;display:grid;gap:4px;color:var(--text-secondary)}
body.application-v4 .reservation-concierge .reservation-detail-close{flex:0 0 32px;width:32px;height:36px;min-height:36px;border:0;background:transparent;padding:7px;color:var(--text-secondary)}
body.application-v4 .reservation-concierge>.reservation-workspace-tabs{
 grid-area:tabs;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;
 margin:0;padding:28px 10px 24px 0;min-width:0;overflow:auto;border:0;border-right:1px solid var(--border);background:var(--cq-sidebar);
}
body.application-v4 .reservation-concierge .concierge-sidebar-heading{display:grid;gap:4px;padding:0 20px 28px 28px;overflow-wrap:anywhere}
body.application-v4 .reservation-concierge .concierge-sidebar-heading>span{font-size:12px;letter-spacing:.08em;color:var(--text-secondary)}
body.application-v4 .reservation-concierge .concierge-sidebar-heading>small{color:var(--cq-accent);font-size:12px}
body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button{
 display:flex;flex:0 0 auto;justify-content:flex-start;align-items:center;gap:16px;min-width:0;min-height:64px;margin:0;padding:14px 20px 14px 28px;
 border:0;border-left:3px solid transparent;border-radius:0 7px 7px 0!important;background:transparent;color:var(--text-secondary);font:400 16px/24px var(--font-ui);text-align:left;
}
body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button>span:first-child{display:flex;align-items:center;flex:none}
body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button[aria-selected="true"]{background:var(--primary-soft);border-left-color:var(--cq-accent);color:var(--text-primary);font-weight:600}
[data-theme="dark"] body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button[aria-selected="true"]{background:#203c2e}
body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button[aria-selected="true"] svg{color:var(--cq-accent)}
body.application-v4 .reservation-concierge>.reservation-detail-scroll{
 grid-area:content;min-width:0;min-height:0;overflow:auto;padding:0 var(--rd-space) 28px;background:transparent;border-radius:0;scrollbar-width:thin;scrollbar-gutter:stable;
}
body.application-v4 .reservation-concierge .reservation-concierge-overview{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:24px 30px;align-items:start;margin:0 0 24px}
body.application-v4 .reservation-concierge .reservation-concierge-itinerary{display:grid;grid-template-columns:1fr .8fr 1fr;min-width:0;padding:20px 0 10px}
body.application-v4 .reservation-concierge .reservation-concierge-itinerary>div{display:flex;flex-direction:column;justify-content:center;gap:9px;min-width:0;padding:0 18px;border-left:1px solid var(--border)}
body.application-v4 .reservation-concierge .reservation-concierge-itinerary>div:first-child{border:0;padding-left:0}
body.application-v4 .reservation-concierge .reservation-concierge-itinerary>div:last-child{padding-right:0}
body.application-v4 .reservation-concierge .reservation-concierge-itinerary small{display:flex;align-items:center;gap:9px;font:400 13px/20px var(--font-ui);color:var(--text-secondary)}
body.application-v4 .reservation-concierge .reservation-concierge-itinerary small>span{display:flex;flex:none}
body.application-v4 .reservation-concierge .reservation-concierge-itinerary strong{font:600 23px/30px var(--font-ui);color:var(--text-primary);overflow-wrap:anywhere}
body.application-v4 .reservation-concierge .reservation-concierge-itinerary span{font-size:12px;line-height:20px;color:var(--text-secondary)}
body.application-v4 .reservation-concierge .concierge-nights{align-items:center;text-align:center}
body.application-v4 .reservation-concierge .concierge-nights>span{display:flex;align-items:center;color:var(--cq-accent)}
body.application-v4 .reservation-concierge .reservation-concierge-actions-slot{min-width:0}
body.application-v4 .reservation-concierge .reservation-concierge-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;width:100%;padding:0;flex:none}
body.application-v4 .reservation-concierge .reservation-concierge-tiles>.btn{
 display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;min-width:0;margin:0;text-align:left;overflow-wrap:normal;
}
body.application-v4 .reservation-concierge .concierge-action-icon{display:flex;flex:none;align-items:center;color:var(--cq-accent)}
body.application-v4 .reservation-concierge .reservation-concierge-tiles>.btn .concierge-action-icon svg{width:24px;height:24px}
body.application-v4 .reservation-concierge .concierge-action-arrow{display:flex;flex:none;margin-left:auto;color:var(--text-secondary)}
body.application-v4 .reservation-concierge .reservation-action-label-full{display:inline}
body.application-v4 .reservation-concierge .reservation-action-label-short{display:none}
body.application-v4 .reservation-concierge .reservation-concierge-room-row{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:18px;min-width:0;padding:22px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
body.application-v4 .reservation-concierge .reservation-concierge-room{display:flex;flex:1 1 300px;align-items:center;flex-wrap:wrap;gap:16px;min-width:0}
body.application-v4 .reservation-concierge .reservation-concierge-room>span{display:flex;align-items:center;flex:none;color:var(--text-secondary)}.reservation-concierge-guests>span{display:flex;align-items:center;flex:none;color:var(--text-secondary)}
body.application-v4 .reservation-concierge .reservation-concierge-room>div:nth-child(2){min-width:0;flex:0 1 auto}
body.application-v4 .reservation-concierge .reservation-concierge-room small{display:block;font:400 13px/20px var(--font-ui);color:var(--text-secondary);margin-bottom:3px}.reservation-concierge-guests small{display:block;font:400 13px/20px var(--font-ui);color:var(--text-secondary);margin-bottom:3px}
body.application-v4 .reservation-concierge .concierge-room-identity{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;overflow-wrap:anywhere}
body.application-v4 .reservation-concierge .concierge-room-identity strong{font:600 23px/30px var(--font-ui)}
body.application-v4 .reservation-concierge .concierge-room-identity>span{font-size:13px;color:var(--text-secondary)}
body.application-v4 .reservation-concierge .reservation-concierge-room-action:empty{display:none}
body.application-v4 .reservation-concierge .reservation-concierge-room-action>.btn{display:flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap}
body.application-v4 .reservation-concierge .reservation-concierge-room-action .concierge-action-icon{color:var(--cq-accent)}
body.application-v4 .reservation-concierge .reservation-concierge-room-action .concierge-action-icon svg{width:18px;height:18px}
body.application-v4 .reservation-concierge .reservation-concierge-room-action .concierge-action-arrow{display:none}
body.application-v4 .reservation-concierge .reservation-concierge-guests{display:flex;flex:1 1 160px;align-items:center;gap:14px;padding-left:20px;border-left:1px solid var(--border);font-size:13px}
body.application-v4 .reservation-concierge .reservation-more-actions{margin-left:auto;flex:none}
body.application-v4 .reservation-concierge .reservation-more-actions>summary{display:flex;align-items:center;gap:8px;min-height:36px;min-width:0;padding:7px 4px;border:0;background:transparent;color:var(--text-secondary);font-weight:400}
body.application-v4 .reservation-concierge .reservation-concierge-ledger-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);grid-template-areas:"tariff notes" "payments notes";gap:22px 0}
body.application-v4 .reservation-concierge .reservation-concierge-ledger-layout>section{min-width:0;align-self:start}
body.application-v4 .reservation-concierge .reservation-concierge-tariff{grid-area:tariff;padding-right:32px;box-sizing:border-box}
body.application-v4 .reservation-concierge .reservation-concierge-payments{grid-area:payments;padding-right:32px;box-sizing:border-box}
body.application-v4 .reservation-concierge .reservation-concierge-notes{grid-area:notes;padding-left:28px;margin-left:0;border-left:1px solid var(--border)}
body.application-v4 .reservation-concierge .reservation-concierge-ledger-layout h3{display:flex;align-items:center;gap:14px;margin:0 0 14px;font:600 19px/28px var(--font-ui);color:var(--text-primary)}
body.application-v4 .reservation-concierge .reservation-concierge-ledger-layout h3>span{display:flex;align-items:center;flex:none;color:var(--cq-accent)}
body.application-v4 .reservation-concierge .reservation-concierge-tariff>.reservation-detail-row{padding:12px 0;margin-left:36px;width:calc(100% - 36px);border-top:1px solid var(--border);font-size:13px}
body.application-v4 .reservation-concierge .reservation-concierge-tariff .reservation-detail-row strong{font-size:15px;font-weight:500}
body.application-v4 .reservation-concierge .concierge-channel{display:flex;flex-wrap:wrap;gap:7px 20px;padding:8px 0 0 36px;color:var(--text-secondary);font-size:13px}
body.application-v4 .reservation-concierge .reservation-concierge-tariff>.empty{margin:8px 0 0 36px;padding:0;border:0;background:transparent;font-size:12px}
body.application-v4 .reservation-concierge .reservation-concierge-payments dl{margin:0 0 0 36px}
body.application-v4 .reservation-concierge .reservation-concierge-payments dl>div{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 16px;padding:7px 0;font:400 15px/25px var(--font-ui)}
body.application-v4 .reservation-concierge .reservation-concierge-payments dt{flex:1 1 145px;min-width:0;overflow-wrap:anywhere;color:var(--text-secondary)}
body.application-v4 .reservation-concierge .reservation-concierge-payments dd{margin:0 0 0 auto;flex:0 0 auto;max-width:100%;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-primary)}
body.application-v4 .reservation-concierge .reservation-concierge-payments dl>.concierge-ledger-due{margin-top:8px;padding-top:15px;border-top:1px solid var(--border);font-weight:600;font-size:17px}
body.application-v4 .reservation-concierge .concierge-ledger-due :is(dt,dd){color:var(--cq-accent)}
body.application-v4 .reservation-concierge .concierge-note-content{min-width:0;padding:16px 18px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);font:400 15px/25px var(--font-ui);overflow-wrap:anywhere;white-space:pre-wrap}
body.application-v4 .reservation-concierge .concierge-note-content p{margin:0;color:var(--text-primary)}
body.application-v4 .reservation-concierge .concierge-note-content p+p{margin-top:12px}
body.application-v4 .reservation-concierge :is(button,summary,[role="tabpanel"]):focus-visible{outline:2px solid var(--cq-accent);outline-offset:-3px}
@media(min-width:768px) and (max-width:1199px){
 body.application-v4 .reservation-detail-drawer.reservation-concierge{grid-template-columns:155px minmax(0,1fr);--rd-space:24px}
 body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button{gap:10px;padding-left:16px;padding-right:10px;font-size:13px}
 body.application-v4 .reservation-concierge .concierge-sidebar-heading{padding-left:19px}
 body.application-v4 .reservation-concierge .reservation-detail-head h2{font-size:24px}
 body.application-v4 .reservation-concierge .reservation-concierge-overview{grid-template-columns:minmax(0,1fr);gap:18px}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary{padding-top:4px}
 body.application-v4 .reservation-concierge .reservation-concierge-tiles{grid-template-columns:repeat(var(--reservation-action-count,4),minmax(0,1fr))}
 body.application-v4 .reservation-concierge .reservation-concierge-tiles>.btn{flex-direction:column;gap:6px;text-align:center}
 body.application-v4 .reservation-concierge .reservation-concierge-tiles .concierge-action-arrow{display:none}
 body.application-v4 .reservation-concierge .reservation-concierge-ledger-layout{column-gap:0}
 body.application-v4 .reservation-concierge .reservation-concierge-notes{padding-left:20px}
}
@media(max-width:767px){
 body.application-v4 .reservation-detail-drawer.reservation-concierge{--rd-space:16px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"head" "tabs" "content" "quick";width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0!important}
 body.application-v4 .reservation-concierge>.reservation-detail-head{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:12px;padding:16px 16px 12px}
 body.application-v4 .reservation-concierge .reservation-drawer-title{grid-column:1;grid-row:1;gap:5px}
 body.application-v4 .reservation-concierge .concierge-mobile-code{display:block;font:500 10px/16px var(--font-ui);letter-spacing:.07em;color:var(--text-secondary)}
 body.application-v4 .reservation-concierge .concierge-heading-row{gap:7px}
 body.application-v4 .reservation-concierge .reservation-detail-head h2{font-size:21px}
 body.application-v4 .reservation-concierge .concierge-status{font-size:10px;min-height:22px;padding:1px 6px}
 body.application-v4 .reservation-concierge .reservation-drawer-title>p{font-size:11px;line-height:18px}
 body.application-v4 .reservation-concierge .reservation-detail-close{grid-column:2;grid-row:1;min-height:40px;width:36px;height:40px}
 body.application-v4 .reservation-concierge .reservation-concierge-primary{grid-column:1/-1;grid-row:2;max-width:none;width:100%}
 body.application-v4 .reservation-concierge .reservation-concierge-primary>.btn{width:100%}
 body.application-v4 .reservation-concierge .reservation-detail-no-ops{font-size:10px;line-height:15px}
 body.application-v4 .reservation-concierge>.reservation-workspace-tabs{display:flex;flex-direction:row;gap:0;margin:0;padding:0 8px;border:0;border-bottom:1px solid var(--border);background:transparent;overflow:visible}
 body.application-v4 .reservation-concierge .concierge-sidebar-heading{display:none}
 body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button{flex:1 1 0;justify-content:center;gap:6px;min-width:0;min-height:44px;padding:10px 4px;border:0;border-bottom:2px solid transparent;border-radius:0!important;font-size:11px;line-height:18px;text-align:center}
 body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button svg{width:16px;height:16px}
 body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button[aria-selected="true"]{border-bottom-color:var(--cq-accent);background:transparent}
 body.application-v4 .reservation-concierge>.reservation-detail-scroll{padding:16px 16px 24px;scrollbar-gutter:auto}
 body.application-v4 .reservation-concierge .reservation-concierge-overview{display:block;margin-bottom:20px}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary{grid-template-columns:1fr .75fr 1fr;padding:0 0 18px}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary>div{padding:0 9px;gap:6px}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary small{gap:4px;font-size:10px}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary small svg{width:14px;height:14px}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary strong{font-size:14px;line-height:20px}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary span{font-size:10px;line-height:16px}
 body.application-v4 .reservation-concierge .reservation-concierge-actions-slot:empty{display:none}
 body.application-v4 .reservation-concierge>.reservation-concierge-tiles{grid-area:quick;grid-template-columns:repeat(var(--reservation-action-count,4),minmax(0,1fr));gap:0;padding:7px 8px max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface-1)}
 body.application-v4 .reservation-concierge>.reservation-concierge-tiles>.btn{flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center}
 body.application-v4 .reservation-concierge>.reservation-concierge-tiles>.btn .concierge-action-icon svg{width:21px;height:21px}
 body.application-v4 .reservation-concierge>.reservation-concierge-tiles>.btn .reservation-action-label-full{display:none}
 body.application-v4 .reservation-concierge>.reservation-concierge-tiles>.btn .reservation-action-label-short{display:inline}
 body.application-v4 .reservation-concierge>.reservation-concierge-tiles>.btn .concierge-action-arrow{display:none}
 body.application-v4 .reservation-concierge .reservation-concierge-room-row{gap:12px;padding:14px 0}
 body.application-v4 .reservation-concierge .reservation-concierge-room{gap:10px;flex:1 1 100%;flex-wrap:nowrap}
 body.application-v4 .reservation-concierge .reservation-concierge-room>span{display:none}
 body.application-v4 .reservation-concierge .reservation-concierge-room small{font-size:11px}
 body.application-v4 .reservation-concierge .concierge-room-identity{gap:3px 8px}
 body.application-v4 .reservation-concierge .concierge-room-identity strong{font-size:19px;line-height:24px}
 body.application-v4 .reservation-concierge .concierge-room-identity>span{font-size:11px}
 body.application-v4 .reservation-concierge .reservation-concierge-room-action>.btn{gap:6px}
 body.application-v4 .reservation-concierge .reservation-concierge-guests{padding:0;border:0;gap:8px;font-size:11px}
 body.application-v4 .reservation-concierge .reservation-concierge-guests small{display:none}
 body.application-v4 .reservation-concierge .reservation-concierge-guests svg{width:19px;height:19px}
 body.application-v4 .reservation-concierge .reservation-more-actions>summary{min-height:44px;font-size:12px;padding:4px}
 body.application-v4 .reservation-concierge .reservation-more-actions-menu{position:fixed;inset:auto 16px calc(88px + env(safe-area-inset-bottom));width:auto;max-width:none;max-height:min(58dvh,440px)}
 body.application-v4 .reservation-concierge .reservation-concierge-ledger-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"tariff" "payments" "notes";gap:24px}
 body.application-v4 .reservation-concierge .reservation-concierge-notes{padding-left:0;border:0}
 body.application-v4 .reservation-concierge .reservation-concierge-ledger-layout h3{font-size:16px;gap:10px;margin-bottom:12px}
 body.application-v4 .reservation-concierge .reservation-concierge-tariff>.reservation-detail-row{margin-left:0;width:100%}
 body.application-v4 .reservation-concierge .concierge-channel{padding-left:0}
 body.application-v4 .reservation-concierge .reservation-concierge-tariff>.empty{margin-left:0}
 body.application-v4 .reservation-concierge .reservation-concierge-payments dl{margin-left:0}
 body.application-v4 .reservation-concierge .reservation-concierge-payments dl>div{font-size:12px;gap:10px}
}
/* Content-safe reservation rows. Space belongs to columns, never negative offsets. */
body.application-v4 .reservation-concierge .reservation-detail-row{flex-wrap:wrap;align-items:flex-start;gap:8px 16px}
body.application-v4 .reservation-concierge .reservation-detail-row>span:first-child{flex:1 1 150px}
body.application-v4 .reservation-concierge .reservation-detail-row>strong{margin-left:auto;max-width:100%;font-variant-numeric:tabular-nums;white-space:nowrap}
body.application-v4 .reservation-concierge .concierge-room-identity strong{min-width:0;overflow-wrap:anywhere}
body.application-v4 .reservation-concierge .reservation-concierge-room-action{flex:none;max-width:100%}
body.application-v4 .reservation-concierge .reservation-concierge-guests{min-width:0;overflow-wrap:anywhere}
body.application-v4 .reservation-concierge .reservation-more-actions-menu .btn{white-space:normal;overflow-wrap:anywhere}
body.application-v4 .reservation-concierge .concierge-notes-heading h3{min-width:0}
body.application-v4 .reservation-concierge .reservation-concierge-edit-notes{flex:none}
@media(min-width:1200px){
 #app .hospitality-shell #sidebar .nav button{height:44px;min-height:44px}
 #app .hospitality-shell #sidebar .nav button .nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 body.application-v4 .reservation-concierge :is(.reservation-concierge-tariff,.reservation-concierge-payments){padding-right:40px}
}
@media(max-width:1099px){
 body.application-v4 .reservation-concierge .reservation-concierge-ledger-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"tariff" "payments" "notes";gap:24px}
 body.application-v4 .reservation-concierge :is(.reservation-concierge-tariff,.reservation-concierge-payments){padding-right:0}
 body.application-v4 .reservation-concierge .reservation-concierge-notes{margin-left:0;padding:24px 0 0;border-left:0;border-top:1px solid var(--border);min-height:0}
}
/* The expanded financial breakdown also has legacy !important grid rules. */
body.application-v4 .reservation-concierge .reservation-financial-truth .financial-truth-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))!important;gap:12px!important}
body.application-v4 .reservation-concierge .reservation-financial-truth .financial-truth-grid>div{padding:12px!important;gap:8px!important;min-height:92px!important}
body.application-v4 .reservation-concierge .reservation-financial-truth .financial-truth-grid .financial-truth-due{grid-column:1/-1}


/* Reference restoration 5.15: original flat surfaces and Atelier icons; density only. */
html:has(body.application-v4 .reservation-concierge){overflow:hidden;scrollbar-gutter:auto}
body.application-v4:has(.reservation-concierge){overflow:hidden}
body.application-v4 .reservation-concierge .concierge-notes-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
body.application-v4 .reservation-concierge .concierge-notes-heading h3{margin:0}
body.application-v4 .reservation-concierge .reservation-concierge-edit-notes{display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 12px;font-size:14px}
body.application-v4 .reservation-concierge .reservation-detail-close{min-width:40px;min-height:40px;background:var(--surface-2);border:0;border-radius:8px!important}
body.application-v4 .reservation-concierge .reservation-more-actions>summary{background:var(--surface-2);border:0}
@media(min-width:768px){
 body.application-v4 .reservation-detail-drawer.reservation-concierge{--rd-space:24px;width:min(1403px,100%);height:min(879px,100%);grid-template-columns:196px minmax(0,1fr)}
 body.application-v4 .reservation-concierge>.reservation-detail-head{padding:24px var(--rd-space) 20px;gap:16px;min-height:112px;box-sizing:border-box}
 body.application-v4 .reservation-concierge .reservation-drawer-title{gap:8px}
 body.application-v4 .reservation-concierge .reservation-detail-head h2{font-size:28px;line-height:36px}
 body.application-v4 .reservation-concierge .reservation-drawer-title>p{font-size:15px;line-height:22px}
 body.application-v4 .reservation-concierge .reservation-concierge-primary{flex:0 1 auto;max-width:34%}
 body.application-v4 .reservation-concierge .reservation-concierge-primary>.btn{width:auto;min-width:120px}
 body.application-v4 .reservation-concierge .reservation-detail-close{width:40px;height:40px;flex-basis:40px;padding:10px}
 body.application-v4 .reservation-concierge>.reservation-workspace-tabs{padding:24px 8px 20px 0;gap:6px}
 body.application-v4 .reservation-concierge .concierge-sidebar-heading{padding:0 16px 22px 22px;gap:4px}
 body.application-v4 .reservation-concierge .concierge-sidebar-heading>span{font-size:12px;letter-spacing:.08em}
 body.application-v4 .reservation-concierge .concierge-sidebar-heading>small{font-size:12px}
 body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button{min-height:56px;padding:12px 16px 12px 22px;gap:16px;font-size:15px;line-height:24px}
 body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button svg{width:22px;height:22px}
 body.application-v4 .reservation-concierge .reservation-concierge-overview{margin-bottom:20px;gap:18px 24px}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary{padding:14px 0 10px}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary>div{gap:7px;padding-left:18px;padding-right:18px}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary>div:first-child{padding-left:0}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary>div:last-child{padding-right:0}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary strong{font-size:21px;line-height:28px}
 body.application-v4 .reservation-concierge .reservation-concierge-itinerary .concierge-nights>span:last-child{display:none}
 body.application-v4 .reservation-concierge .reservation-concierge-tiles>.btn{gap:10px}
 body.application-v4 .reservation-concierge .reservation-concierge-tiles>.btn .concierge-action-icon svg{width:22px;height:22px}
 body.application-v4 .reservation-concierge .reservation-concierge-room-row{padding:16px 0;gap:18px}
 body.application-v4 .reservation-concierge .reservation-concierge-room{flex-basis:300px;gap:16px}
 body.application-v4 .reservation-concierge .reservation-concierge-guests{font-size:14px;gap:14px}
 body.application-v4 .reservation-concierge .reservation-concierge-ledger-layout{column-gap:0;row-gap:18px}
 body.application-v4 .reservation-concierge .reservation-concierge-ledger-layout h3{font-size:18px;line-height:26px;margin-bottom:12px}
 body.application-v4 .reservation-concierge .reservation-concierge-notes{margin-left:0;padding-left:24px;min-height:0}
 body.application-v4 .reservation-concierge .concierge-note-content{font-size:14px;line-height:23px}
}
@media(min-width:768px) and (max-width:1199px){
 body.application-v4 .reservation-detail-drawer.reservation-concierge{grid-template-columns:155px minmax(0,1fr);--rd-space:20px}
 body.application-v4 .reservation-concierge .reservation-detail-head h2{font-size:24px;line-height:32px}
 body.application-v4 .reservation-concierge>.reservation-workspace-tabs>button{font-size:13px;padding-left:16px;gap:10px}
 body.application-v4 .reservation-concierge .reservation-concierge-primary>.btn{min-width:100px}
 body.application-v4 .reservation-concierge .reservation-concierge-tiles>.btn{gap:6px}
}
@media(max-width:1099px){
 body.application-v4 .reservation-concierge .reservation-concierge-notes{padding:20px 0 0}
}

/* Flagged stays: compact notice in the persistent reservation heading. */
body.application-v4 .reservation-concierge .reservation-attention-inline{display:flex;align-items:flex-start;gap:10px;width:100%;max-width:480px;min-width:0;box-sizing:border-box;margin:4px 0 0;padding:10px 12px;border:1px solid var(--border);border-left:3px solid var(--cq-accent);border-radius:7px;background:var(--surface-2);font:400 13px/19px var(--font-ui)}
body.application-v4 .reservation-concierge .reservation-attention-inline>span{display:flex;flex:none;padding-top:1px;color:var(--cq-accent)}
body.application-v4 .reservation-concierge .reservation-attention-inline>div{min-width:0}
body.application-v4 .reservation-concierge .reservation-attention-inline strong{display:block;font-size:13px;line-height:19px;color:var(--cq-accent)}
body.application-v4 .reservation-concierge .reservation-attention-inline p{margin:2px 0 0;max-height:76px;overflow-y:auto;scrollbar-width:thin;font-size:13px;line-height:19px;color:var(--text-secondary);overflow-wrap:anywhere;white-space:pre-wrap}
@media(max-width:767px){body.application-v4 .reservation-concierge .reservation-attention-inline{padding:8px 10px;gap:8px}}

/* Consistent quick actions and a bounded More tile menu. */
body.application-v4 .reservation-concierge .reservation-concierge-tiles{align-items:stretch;grid-auto-rows:1fr}
body.application-v4 .reservation-concierge .reservation-concierge-tiles>.btn{align-self:stretch;box-sizing:border-box}
body.application-v4 .reservation-concierge .reservation-concierge-tiles .reservation-action-label-full{min-width:0}
body.application-v4 .reservation-concierge .reservation-more-actions>summary{min-height:44px;padding:10px 14px;gap:8px;border:1px solid var(--border);border-radius:8px;box-sizing:border-box;font-size:13px;line-height:20px;color:var(--text-primary)}
body.application-v4 .reservation-concierge .reservation-more-actions>summary:hover{border-color:var(--cq-accent);background:var(--surface-hover);color:var(--cq-accent)}
body.application-v4 .reservation-concierge .reservation-more-actions[open]>summary{border-color:var(--cq-accent);background:var(--surface-hover);color:var(--cq-accent)}
body.application-v4 .reservation-concierge .reservation-more-actions-menu{position:absolute;left:auto;right:0;box-sizing:border-box;width:360px;margin:0;padding:10px;overscroll-behavior:contain}
body.application-v4 .reservation-concierge .reservation-action-group{gap:8px;padding:8px 0}
body.application-v4 .reservation-concierge .reservation-more-actions-menu .btn{gap:6px}
body.application-v4 .reservation-concierge .reservation-more-actions-menu .reservation-action-icon{width:20px;height:20px;flex-basis:20px}
body.application-v4 .reservation-concierge .reservation-more-actions-menu .reservation-action-icon svg{width:20px;height:20px}
@media(min-width:768px) and (max-width:1199px){
 body.application-v4 .reservation-concierge .reservation-concierge-tiles>.btn{gap:4px}
 body.application-v4 .reservation-concierge .reservation-concierge-tiles>.btn .concierge-action-icon svg{width:20px;height:20px}
}

/* Billing opens directly on the account; stay-only context stays in Stay. */
body.application-v4 .reservation-concierge:has([data-reservation-tab="stay"][aria-selected="false"]) .reservation-concierge-overview{display:none}
body.application-v4 .reservation-concierge:has([data-reservation-tab="stay"][aria-selected="false"])>.reservation-concierge-tiles{display:none}
body.application-v4 .reservation-concierge .reservation-account-actions-slot:empty{display:none}
body.application-v4 .reservation-concierge .reservation-account-actions-slot:not(:empty){display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
body.application-v4 .reservation-concierge #reservation-panel-account .reservation-detail-add-charge{display:inline-flex;align-items:center;gap:8px;width:auto;min-height:40px;padding:9px 14px;box-sizing:border-box;font-size:13px;line-height:20px}
body.application-v4 .reservation-concierge #reservation-panel-account .reservation-detail-add-charge .reservation-action-label-full{display:inline}
body.application-v4 .reservation-concierge #reservation-panel-account .reservation-detail-add-charge :is(.reservation-action-label-short,.concierge-action-arrow){display:none}
body.application-v4 .reservation-concierge:has([data-reservation-tab="account"][aria-selected="true"]) .reservation-inhouse-head .eyebrow{display:none}
body.application-v4 .reservation-concierge:has([data-reservation-tab="account"][aria-selected="true"]) .reservation-inhouse-head p{display:none}
body.application-v4 .reservation-concierge #reservation-panel-account .reservation-inhouse-head h3{margin:0}
body.application-v4 .reservation-concierge #reservation-panel-account .reservation-inhouse-head{margin-bottom:16px}

/* Each reservation tab starts with its own content and eligible actions. */
body.application-v4 .reservation-concierge .reservation-section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}
body.application-v4 .reservation-concierge .reservation-section-heading h3{margin:0}
body.application-v4 .reservation-concierge :is(.reservation-document-actions,.reservation-guest-actions){display:flex;flex-wrap:wrap;gap:8px;min-width:0}
body.application-v4 .reservation-concierge :is(.reservation-document-actions,.reservation-guest-actions):empty{display:none}
body.application-v4 .reservation-concierge :is(.reservation-document-actions,.reservation-guest-actions)>.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;box-sizing:border-box}
body.application-v4 .reservation-concierge .reservation-document-actions :is(.reservation-action-label-short,.concierge-action-arrow){display:none}
body.application-v4 .reservation-concierge .reservation-document-actions .reservation-action-label-full{display:inline}
body.application-v4 .reservation-concierge .reservation-document-open{display:flex;width:100%;box-sizing:border-box;align-items:center;text-align:left;gap:12px;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text-primary);margin:8px 0 0}
body.application-v4 .reservation-concierge .reservation-document-open:hover{border-color:var(--cq-accent);background:var(--surface-hover)}
body.application-v4 .reservation-concierge .reservation-document-open-label{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:12px;color:var(--cq-accent)}
@media(max-width:767px){
 body.application-v4 .reservation-concierge .reservation-section-heading{align-items:flex-start}
 body.application-v4 .reservation-concierge :is(.reservation-document-actions,.reservation-guest-actions){width:100%}
 body.application-v4 .reservation-concierge :is(.reservation-document-actions,.reservation-guest-actions)>.btn{flex:1 1 auto}
}

/* One close target in every reservation state; keyboard focus stays visible. */
body.application-v4 .reservation-workspace-drawer .reservation-detail-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;max-width:44px;box-sizing:border-box;padding:11px;border:1px solid var(--border);border-radius:8px!important;background:var(--surface-2);color:var(--text-secondary);line-height:1;cursor:pointer;touch-action:manipulation}
body.application-v4 .reservation-workspace-drawer .reservation-detail-close svg{display:block;flex:none;width:20px;height:20px;pointer-events:none}
body.application-v4 .reservation-workspace-drawer .reservation-detail-close:hover{background:var(--surface-hover);border-color:var(--cq-accent,var(--border));color:var(--text-primary)}
body.application-v4 .reservation-workspace-drawer .reservation-detail-close:focus-visible{outline:2px solid var(--cq-accent,var(--primary));outline-offset:3px;box-shadow:none}
body.application-v4 .reservation-workspace-drawer .reservation-detail-loading-close{position:absolute;top:16px;right:16px;z-index:4}
@media(max-width:767px){body.application-v4 .reservation-concierge>.reservation-detail-head{grid-template-columns:minmax(0,1fr) 44px}}

/* 5.79: the page owns room scrolling; day navigation remains within the calendar. */
#app #calendar-scroll{height:auto!important;min-height:0!important;max-height:none!important;overflow-x:auto;overflow-y:hidden;overscroll-behavior:auto;scrollbar-gutter:auto;scrollbar-width:none;padding-bottom:16px}
#app #calendar-scroll::-webkit-scrollbar{height:0}
#app .calendar-scroll-heading{position:fixed;z-index:45;overflow:hidden;background:var(--surface-1);border-bottom:1px solid var(--border);box-shadow:0 4px 12px #00000012;pointer-events:auto;scrollbar-width:none}
#app .calendar-scroll-heading>.classic-calendar-axis{position:static!important}
#app .calendar-scroll-heading .classic-calendar-room-axis{z-index:2;background:var(--surface-1)}
#app .calendar-day-scroll{position:fixed;z-index:44;height:16px;overflow-x:auto;overflow-y:hidden;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--border-strong) var(--surface-2);touch-action:pan-x}
#app .calendar-day-scroll>div{height:1px;pointer-events:none}
#app .calendar-day-scroll::-webkit-scrollbar{height:12px}
#app .calendar-day-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid var(--surface-2);border-radius:10px}
#app .calendar-day-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#app .calendar-scroll-heading[hidden]{display:none!important}#app .calendar-day-scroll[hidden]{display:none!important}
@media print{#app .calendar-scroll-heading{display:none!important}#app .calendar-day-scroll{display:none!important}}

/* assets/ui-navigation.css */
/* Two compact navigation views; panels overlay the workspace at a fixed rail width. */
.navigation-v2{--navigation-accent:#eac166;--navigation-border:var(--border,#355346);--navigation-surface:var(--panel,#172d24);--nav-icon-base:var(--text-secondary,#b5cabb);--nav-icon-accent:var(--warning,#b18a34)}
/* The rail has one width; never animate from the historical expanded grid. */
#app .hospitality-shell.navigation-v2{transition:none!important}
.navigation-v2 #sidebar{--nav-icon-base:#bad0c3;--nav-icon-accent:#eac166}
.ui-icon-navigation{flex-shrink:0}
.ui-icon-navigation .nav-glyph-base{stroke:var(--nav-icon-base,currentColor);color:var(--nav-icon-base,currentColor)}
.ui-icon-navigation .nav-glyph-accent{stroke:var(--nav-icon-accent,currentColor);color:var(--nav-icon-accent,currentColor)}
.nav-icon-tile{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border:1px solid var(--navigation-border);border-radius:9px;background:rgba(133,166,141,.07)}
.nav-directory-row>button.active .nav-icon-tile{background:rgba(176,151,86,.1);border-color:rgba(176,151,86,.3)}
.navigation-v2 .sidebar-hotel-context{display:none!important}
.navigation-rail{display:none}
.navigation-flyout[hidden]{display:none!important}.navigation-flyout [hidden]{display:none!important}
.navigation-flyout{position:fixed;left:72px;top:12px;bottom:12px;z-index:160;width:292px;max-width:calc(100vw - 84px);display:flex;flex-direction:column;background:var(--navigation-surface);color:var(--text,#f2f1e6);border:1px solid var(--navigation-border);border-radius:16px;box-shadow:12px 12px 35px #0004;overflow:hidden;text-align:left}
.navigation-flyout.all-modules{width:360px}
.navigation-v2 .navigation-flyout{--navigation-accent:var(--warning,#b18a34)}
.navigation-flyout:not(.all-modules){bottom:auto;max-height:calc(100dvh - 24px)}
.navigation-flyout:not(.all-modules) .nav-directory-list{flex:0 1 auto}
.navigation-mobile-favorites{display:none}
.navigation-v2[data-navigation-layout=areas] .navigation-mobile-favorites{display:none!important}.navigation-mobile-favorites[hidden]{display:none!important}
.navigation-flyout header{display:flex;align-items:center;justify-content:space-between;padding:22px 20px 16px;gap:12px}
.nav-eyebrow{display:block;font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:var(--muted,#adc0b2);margin-bottom:5px}
.navigation-flyout h2{font-family:inherit;font-size:20px;line-height:1.3;margin:0;font-weight:650}
.navigation-flyout button{font:inherit;cursor:pointer;color:inherit;background:transparent;border:0;border-radius:8px}
.navigation-flyout header button{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0}
.navigation-flyout button:hover{background:rgba(146,182,151,.12)}
.nav-directory-search{display:flex!important;align-items:center;gap:9px;margin:0 16px 14px;padding:9px 12px!important;height:44px!important;min-height:44px;box-sizing:border-box;border:1px solid var(--navigation-border);border-radius:9px;flex-shrink:0}
.nav-directory-search input{min-width:0;width:100%;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;color:inherit;font:inherit;font-size:14px;height:24px!important}
.nav-directory-search:focus-within{outline:2px solid var(--nav-icon-accent);outline-offset:2px}
.navigation-v2 .nav-directory-search input:focus-visible{outline:none!important}
.nav-directory-search svg{width:18px;height:18px;flex-shrink:0;color:var(--muted)}
.nav-directory-list{overflow:auto;overscroll-behavior:contain;flex:1;padding:0 12px 12px;scrollbar-width:thin;min-height:0}
.nav-directory-list section+section{margin-top:16px}
.nav-directory-list h3{font-family:inherit;font-weight:600;line-height:1.4;letter-spacing:1px;text-transform:uppercase;color:var(--muted,#adc0b2);margin:12px 10px 7px;font-size:11px}
.nav-directory-row{display:flex;align-items:center;gap:3px;margin:2px 0}
.nav-directory-row>button:first-child{display:flex;align-items:center;text-align:left;gap:12px;padding:11px 10px;flex:1;min-width:0;font-size:14px;line-height:1.4;min-height:44px}
.nav-directory-row svg{width:20px;height:20px;flex-shrink:0}
.nav-directory-row span{overflow-wrap:anywhere}
.nav-directory-row>button.active{background:rgba(146,182,151,.17);font-weight:650}
.nav-directory-row>button.active>svg{color:var(--navigation-accent)}
.navigation-flyout .nav-star{display:grid;place-items:center;width:38px;min-height:42px;flex-shrink:0;color:var(--muted,#adc0b2)}
.navigation-flyout .nav-star.selected{color:var(--navigation-accent)}
.navigation-flyout .nav-star{--nav-icon-base:var(--text-secondary);--nav-icon-accent:var(--text-secondary)}
.navigation-flyout .nav-star.selected{--nav-icon-base:var(--navigation-accent);--nav-icon-accent:var(--navigation-accent)}
.navigation-flyout:not(.quick-access-panel) .nav-star{display:none}.navigation-flyout:not(.quick-access-panel) .nav-pin-count{display:none}
.navigation-settings [hidden]{display:none!important}
.navigation-flyout footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--navigation-border);padding:13px 16px;gap:10px;font-size:12px;color:var(--muted)}
.navigation-flyout footer button{padding:8px;color:var(--text);font-weight:600}
.nav-panel-status:empty{display:none}
.nav-panel-status{font-size:12px;padding:0 16px 12px;margin:0;color:var(--navigation-accent)}
.nav-search-empty{padding:20px 10px;font-size:14px;color:var(--muted)}
.navigation-settings{padding:24px!important;--nav-icon-base:var(--text-secondary);--nav-icon-accent:var(--warning)}
.navigation-settings h2{margin:0 0 8px}
.navigation-settings h3{font-family:inherit;font-size:16px;margin:20px 0 12px}
.navigation-settings p{font-size:13px;line-height:1.6}
.nav-layout-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:0;padding:0;margin:14px 0 20px;min-width:0}
.nav-layout-options legend{font-size:13px;font-weight:600;margin:0 0 10px}
.nav-layout-options label{display:flex;align-items:flex-start;gap:10px;padding:16px;border:1px solid var(--border,#355346);border-radius:12px;cursor:pointer;background:transparent;min-width:0}
.nav-layout-options label:has(input:checked){border-color:#c3a359;background:rgba(190,166,98,.08)}
.nav-layout-options input{width:17px!important;height:17px!important;min-width:17px;accent-color:#9fbd9a;margin:3px 0 0;padding:0!important}.nav-favorite-choices input{width:17px!important;height:17px!important;min-width:17px;accent-color:#9fbd9a;margin:3px 0 0;padding:0!important}
.nav-layout-options strong{display:block;font-size:14px;margin-bottom:5px}
.nav-layout-options small{display:block;font-size:12px;line-height:1.6;color:var(--muted,#adc0b2)}
.nav-favorites-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border,#355346);padding-top:12px}
.nav-favorites-heading small{color:var(--muted);font-weight:400;margin-left:6px}
.nav-favorite-order{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 20px}
.nav-favorite-order>div{display:flex;align-items:center;gap:5px;padding:6px 8px 6px 12px;border:1px solid var(--border,#355346);border-radius:9px;min-width:0}
.nav-favorite-order span{display:flex;align-items:center;gap:9px;flex:1;font-size:13px;min-width:0}
.nav-favorite-order svg{width:17px;height:17px;flex-shrink:0}
.nav-favorite-order button{display:grid;place-items:center;width:32px;height:32px;min-width:32px;background:transparent;color:inherit;border:0;border-radius:6px;cursor:pointer}
.nav-favorite-order button:hover{background:rgba(146,182,151,.15)}
.navigation-settings button:disabled{opacity:.35;cursor:default}
.nav-favorite-choices{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.nav-favorite-choices fieldset{border:0;border-top:1px solid var(--border,#355346);padding:8px 0;margin:0;min-width:0}
.nav-favorite-choices legend{font-size:11px;text-transform:uppercase;letter-spacing:.6px;font-weight:600;padding:0 8px 0 0;color:var(--muted)}
.nav-favorite-choices label{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:13px;cursor:pointer;min-height:36px}
.nav-save-status{margin-bottom:0;color:var(--muted)}
.navigation-settings .nav-save-status{margin:12px 0;padding:9px 12px;background:rgba(133,166,141,.07);border-radius:8px;font-size:12px}
.navigation-settings .nav-save-status:empty{display:none}
.nav-save-status.error{color:var(--danger,#b42323);border-left:3px solid var(--danger,#b42323)}
.navigation-settings [data-nav-reload]{margin-top:12px}
.navigation-v2 button:focus-visible{outline:2px solid var(--navigation-accent,#bf9a45)!important;outline-offset:3px}.navigation-settings button:focus-visible{outline:2px solid var(--navigation-accent,#bf9a45)!important;outline-offset:3px}.navigation-settings input:focus-visible{outline:2px solid var(--navigation-accent,#bf9a45)!important;outline-offset:3px}
@media(min-width:1200px){
 #app .navigation-v2.sidebar-rail{grid-template-columns:72px minmax(0,1fr)!important}
 #app .navigation-v2.sidebar-rail #sidebar{width:72px!important;overflow:visible!important}
 #app .navigation-v2.sidebar-rail #sidebar .brand-copy{display:none!important}
 #app .navigation-v2{--navigation-header-height:72px}
 #app .navigation-v2.sidebar-rail #sidebar .brand{box-sizing:border-box;height:var(--navigation-header-height);min-height:var(--navigation-header-height);max-height:var(--navigation-header-height);flex:0 0 var(--navigation-header-height);padding:16px!important;justify-content:center;border-bottom:1px solid var(--border)}
 #app .navigation-v2 .topbar{height:var(--navigation-header-height);min-height:var(--navigation-header-height)}
 #app .navigation-v2.sidebar-rail #sidebar .brand-mark{width:40px;height:40px;min-width:40px}
 #app .navigation-v2.sidebar-rail #sidebar>.nav{display:none!important}#app .navigation-v2.sidebar-rail #sidebar>.sidebar-module-search{display:none!important}
 #app .navigation-v2.sidebar-rail .navigation-rail{display:flex;flex-direction:column;gap:var(--rail-outerGap,4px);flex:1;min-height:0;overflow:hidden;padding:var(--rail-padding,6px) 7px}
 .rail-section{display:flex;flex-direction:column;justify-content:center;justify-content:safe center;gap:var(--rail-gap,6px);flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}
 .rail-section>.rail-area{flex-shrink:0}
 .navigation-rail button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:56px;height:var(--rail-button,51px);min-height:var(--rail-button,51px);max-height:var(--rail-button,51px);padding:4px 2px;border:1px solid transparent;border-radius:10px;background:transparent;color:inherit;font:inherit;cursor:pointer;position:relative;box-sizing:border-box;flex-shrink:0}
 .navigation-rail>button{flex-shrink:0}.navigation-rail>div{flex-shrink:0}
 .navigation-rail button svg{width:var(--rail-icon,24px);height:var(--rail-icon,24px);flex-shrink:0;transform-origin:center;transition:transform 160ms cubic-bezier(.2,.8,.2,1),filter 160ms ease}
 .navigation-rail button span:not(.sr-only){font-size:10px;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis}
 .navigation-rail button:hover{background:rgba(146,182,151,.13);border-color:var(--navigation-border)}.navigation-rail button[aria-expanded=true]{background:rgba(146,182,151,.13);border-color:var(--navigation-border)}
 .navigation-rail button.active{background:rgba(146,182,151,.2);color:var(--navigation-accent)}.rail-area.current-area>button{background:rgba(146,182,151,.2);color:var(--navigation-accent)}
 .navigation-v2 .navigation-rail button:focus-visible{outline-offset:-2px!important}
 .navigation-rail button.active .nav-glyph-base{stroke:#f0e8d4;color:#f0e8d4}.rail-area.current-area .nav-glyph-base{stroke:#f0e8d4;color:#f0e8d4}
 .navigation-rail button{transition:background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease}
 .navigation-rail button:hover{background-color:rgba(146,182,151,.16);box-shadow:inset 0 1px 0 rgba(220,240,216,.06)}
 .navigation-rail button:hover svg{transform:translateY(-1px) scale(1.08)}.navigation-rail button:focus-visible svg{transform:translateY(-1px) scale(1.08)}
 .navigation-rail button:active svg{transform:scale(.9);transition-duration:80ms}
 .rail-favorites{display:flex;flex-direction:column;gap:var(--rail-gap,6px);flex-shrink:0}
 .rail-directory{padding-top:calc(var(--rail-divider,5px) - 1px);border-top:1px solid var(--navigation-border)}
 .rail-directory button{height:var(--rail-directory,48px);min-height:var(--rail-directory,48px);max-height:var(--rail-directory,48px)}
 .navigation-rail[data-short-labels=hidden] .rail-area button span{display:none}.navigation-rail[data-directory-label=hidden] .rail-directory button span{display:none}
 .rail-empty{display:grid;place-items:center;padding:16px;color:var(--muted)}
 .navigation-v2 .rail-selection{display:block;position:absolute;left:0;top:0;width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--navigation-accent);pointer-events:none;z-index:2;transition:transform 220ms cubic-bezier(.2,.8,.2,1)}
 .navigation-v2 .rail-tooltip{display:block;position:fixed;z-index:170;max-width:240px;padding:8px 11px;border:1px solid var(--navigation-border);border-radius:9px;background:var(--surface-2);color:var(--text-primary);font:500 13px/18px var(--font-ui);box-shadow:0 4px 14px #0002;pointer-events:none;opacity:0;transform:translateX(-5px);transition:opacity 140ms ease,transform 140ms cubic-bezier(.2,.8,.2,1)}
 .navigation-v2 .rail-tooltip.visible{opacity:1;transform:translateX(0)}
}
.rail-selection{display:none}.rail-tooltip{display:none}
.navigation-v2 .rail-selection[hidden]{display:none!important}
@media(max-width:600px){.navigation-settings{padding:16px!important}.nav-layout-options{grid-template-columns:1fr}.nav-favorite-order{grid-template-columns:1fr}.nav-favorite-choices{grid-template-columns:1fr}.nav-layout-options label{padding:13px}.navigation-settings .section-head p{margin:8px 0}.nav-favorite-choices{gap:10px}}
@media(prefers-reduced-motion:reduce){.navigation-v2 *{scroll-behavior:auto!important}.navigation-v2 :is(.navigation-rail button,.navigation-rail button svg,.rail-selection,.rail-tooltip){transition:none!important}.navigation-v2 .navigation-rail button:is(:hover,:active,:focus-visible) svg{transform:none!important}}

@media(max-width:1199px){.navigation-mobile-favorites{display:block;border-bottom:1px solid var(--navigation-border);padding-bottom:14px}.navigation-flyout{display:none!important}.navigation-v2 #sidebar>.nav{min-height:0}}

/* Personal navigation controls must not inherit oversized document-dialog styles. */
body.application-v4 .navigation-settings{--navigation-accent:var(--warning,#bf9a45);font:400 13px/1.45 var(--font-ui);padding:18px!important}
body.application-v4 .navigation-settings .section-head{display:block;margin:0 0 12px;padding:0;border:0}
body.application-v4 .navigation-settings .section-head p{margin:6px 0 0;font-size:13px;font-weight:400;line-height:1.45}
body.application-v4 .navigation-settings h2{font:600 18px/1.3 var(--font-ui)!important;margin:0 0 6px;letter-spacing:0}
body.application-v4 .navigation-settings h3{font:600 14px/1.4 var(--font-ui)!important;margin:14px 0 8px;letter-spacing:0}
body.application-v4 .navigation-settings>.nav-layout-options{margin:10px 0 14px;gap:10px}
body.application-v4 .navigation-settings .nav-layout-options legend{font:600 13px/1.4 var(--font-ui);margin:0 0 8px}
body.application-v4 .navigation-settings .nav-layout-options label{gap:10px;padding:12px;align-items:flex-start;border-radius:10px;font-weight:400}
body.application-v4 .navigation-settings .nav-layout-options strong{font:600 13px/1.4 var(--font-ui);margin:0 0 4px}
body.application-v4 .navigation-settings .nav-layout-options small{font:400 12px/1.45 var(--font-ui)}
:is(#app,#modal-root) .navigation-settings input:is([type=radio],[type=checkbox]){appearance:none!important;-webkit-appearance:none!important;display:inline-block;box-sizing:border-box;flex:0 0 16px!important;width:16px!important;min-width:16px!important;max-width:16px!important;height:16px!important;min-height:16px!important;max-height:16px!important;padding:0!important;margin:2px 0 0!important;border:1.5px solid var(--text-secondary)!important;background:transparent!important;box-shadow:none!important;cursor:pointer}
:is(#app,#modal-root) .navigation-settings input[type=radio]{border-radius:50%!important}
:is(#app,#modal-root) .navigation-settings input[type=radio]:checked{border-color:var(--navigation-accent)!important;background:radial-gradient(circle,var(--navigation-accent) 0 3.5px,transparent 4px)!important}
body.application-v4 .navigation-settings .nav-layout-options label:has(input:checked){border-color:var(--navigation-accent);background:color-mix(in srgb,var(--navigation-accent) 7%,transparent)}
body.application-v4 .navigation-settings .nav-layout-options label:has(input:focus-visible){outline:2px solid var(--navigation-accent);outline-offset:2px}
body.application-v4 .navigation-settings .nav-layout-options input:focus-visible{outline:none!important}
:is(#app,#modal-root) .navigation-settings input[type=checkbox]{border-radius:4px!important}
:is(#app,#modal-root) .navigation-settings input[type=checkbox]:checked{border-color:var(--primary)!important;background:var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8 3 3 7-7' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat!important}
:is(#app,#modal-root) .navigation-settings input[type=checkbox]:checked{position:relative;background:var(--primary)!important}
:is(#app,#modal-root) .navigation-settings input[type=checkbox]:checked::after{content:'';display:block;width:4px;height:7px;border:solid var(--surface-1);border-width:0 2px 2px 0;transform:rotate(45deg);margin:1px auto 0}
body.application-v4 .navigation-settings .nav-save-status{font:400 12px/1.4 var(--font-ui);margin:10px 0;padding:7px 10px}
body.application-v4 .navigation-settings .nav-favorite-choices label{padding:4px 0;min-height:32px;font:400 13px/1.4 var(--font-ui)}
body.application-v4 .navigation-settings .nav-favorite-order{gap:6px;margin:8px 0 14px}
body.application-v4 .navigation-settings .nav-favorite-order>div{padding:4px 6px 4px 10px}
body.application-v4 .navigation-settings .nav-available{margin-top:10px;border-top:1px solid var(--border);padding-top:10px}
body.application-v4 .navigation-settings .nav-available summary{cursor:pointer;font:600 13px/1.4 var(--font-ui);padding:8px 0;color:var(--text-primary)}
body.application-v4 .navigation-settings .nav-available summary:focus-visible{outline:2px solid var(--navigation-accent);outline-offset:2px;border-radius:4px}
body.application-v4 .navigation-settings .nav-available .nav-favorite-choices{margin-top:10px}
#modal-root .modal:has(.navigation-settings){width:640px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px)}
#modal-root .modal:has(.navigation-settings) .modal-head{padding:16px 20px;min-height:0}
#modal-root .modal:has(.navigation-settings) .modal-head h2{font:600 20px/1.3 var(--font-ui)!important;letter-spacing:0;margin:0}
#modal-root .modal:has(.navigation-settings) .modal-body{padding:0 20px 16px}
#modal-root .modal:has(.navigation-settings) .navigation-settings{border:0;border-radius:0;background:transparent;box-shadow:none;padding:0!important;margin:0}
#modal-root .modal:has(.navigation-settings) .navigation-settings .section-head :is(.nav-eyebrow,h2){display:none}#modal-root .modal:has(.navigation-settings) .navigation-settings>h3{display:none}
#modal-root .modal:has(.navigation-settings) .modal-actions{padding:12px 20px;gap:8px}
@media(max-width:600px){#modal-root .modal:has(.navigation-settings){max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:14px}#modal-root .modal:has(.navigation-settings) :is(.modal-head,.modal-actions){padding:12px 14px}#modal-root .modal:has(.navigation-settings) .modal-body{padding:0 14px 14px}body.application-v4 .navigation-settings .nav-layout-options{grid-template-columns:1fr}}
/* 5.34: contextual menus, sized to their actual contents beside the rail. */
#app .navigation-flyout{width:264px;bottom:auto;max-width:calc(100vw - 96px);border-radius:14px;box-shadow:0 12px 36px #0003,0 2px 6px #0002;transform-origin:left center}
#app .navigation-flyout.all-modules{width:320px}
#app .navigation-flyout header{padding:12px 12px 9px;margin:0 8px 4px;border-bottom:1px solid var(--navigation-border);gap:8px}
#app .navigation-flyout .nav-eyebrow{display:none}
#app .navigation-flyout h2{font-family:inherit;font-size:14px;line-height:22px;font-weight:650;margin:0}
#app .navigation-flyout header button{width:28px;height:28px;min-width:28px;min-height:28px;padding:5px;border-radius:7px}
#app .navigation-flyout header button svg{width:16px;height:16px}
#app .navigation-flyout .nav-directory-list{padding:0 8px 8px;flex:0 1 auto;min-height:0}
#app .navigation-flyout .nav-directory-row{margin:2px 0;border-radius:8px}
#app .navigation-flyout .nav-directory-row>button:first-child{min-height:38px;padding:8px 10px;gap:10px;font-size:14px;line-height:20px;border-radius:8px;transition:background .14s ease,color .14s ease}
#app .navigation-flyout .nav-icon-tile{width:20px;height:20px;min-width:20px;border:0;background:transparent;border-radius:0;padding:0}
#app .navigation-flyout .nav-icon-tile svg{width:19px;height:19px}
#app .navigation-flyout .nav-directory-search{margin:6px 12px 8px;min-height:38px;height:38px;padding:7px 9px;border-radius:8px}
#app .navigation-flyout .nav-directory-search input{font-size:13px}
#app .navigation-flyout section+section{margin-top:8px;padding-top:6px;border-top:1px solid var(--navigation-border)}
#app .navigation-flyout h3{font-size:10px;letter-spacing:.7px;padding:5px 10px;margin:0}
#app .navigation-flyout .nav-star{width:32px;min-height:36px;padding:7px}
#app .navigation-flyout footer{padding:9px 12px;min-height:38px;font-size:11px;gap:8px}
#app .navigation-flyout .nav-panel-status:empty{display:none}
#app .navigation-flyout .nav-panel-status:not(:empty){margin:0;padding:8px 12px;font-size:12px}
#app [data-motion-state="closing"]{pointer-events:none}
@media(prefers-reduced-motion:reduce){#app .navigation-flyout *{transition:none!important}}

/* Logo returns to the permitted home workspace without changing hotel context. */
#app #sidebar .brand-home{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;padding:0;border:0;border-radius:9px;text-decoration:none;cursor:pointer}
#app #sidebar .brand-home:focus-visible{outline:2px solid var(--navigation-accent,var(--accent));outline-offset:4px}

/* assets/ui-topbar.css */
/* Compact hotel/date/clock header 5.31 */
#app .hospitality-shell .topbar .top-left{gap:16px}
#app .hospitality-shell .topbar .hotel-switch{gap:8px;flex:0 1 300px;max-width:300px;min-width:100px}
#app .topbar .hotel-switch>svg{width:20px;height:20px;flex-shrink:0}
#app .hospitality-shell .topbar .hotel-switch .yotta-select-trigger{border-color:transparent;background:transparent!important}
#app .hospitality-shell .topbar .platform-hotel-context{flex:0 1 300px;max-width:300px;padding:0 10px;gap:10px;font:inherit;color:var(--text);cursor:pointer}
#app .topbar .platform-hotel-context>strong{font-size:14px;flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#app .topbar .platform-hotel-context>svg{width:20px;height:20px;flex-shrink:0}
#app .topbar .platform-hotel-context>svg:last-child{width:14px}
.header-date-wrap{display:flex;align-items:center;gap:14px;flex-shrink:0}
#app .topbar .header-date{display:flex;align-items:center;gap:8px;height:40px;padding:0 8px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:13px;white-space:nowrap;cursor:pointer}
.header-date>svg{width:18px;height:18px}.header-date>svg:last-child{width:12px}
#header-clock{border-left:1px solid var(--border);padding-left:14px;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-muted)}
#app .topbar .header-icon{display:grid;place-items:center;width:40px;height:40px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);cursor:pointer}
.header-icon svg{width:20px;height:20px}.header-theme-wrap{display:flex}
#app .header-popup{position:fixed;z-index:180;width:280px;max-width:calc(100vw - 16px);padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-1);color:var(--text);box-shadow:0 12px 32px #0003}
#app .header-popup[hidden]{display:none!important}
#app #header-calendar .month-head{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:8px;margin-bottom:12px}
#app #header-calendar .month-head strong{min-width:0;text-align:center;font:inherit;font-size:14px;font-weight:650;line-height:20px;text-transform:capitalize}
#app #header-calendar .month-head button{display:grid;place-items:center;box-sizing:border-box;width:32px;min-width:32px;max-width:32px;height:32px;min-height:32px;max-height:32px;padding:0;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--text-muted);font:inherit;line-height:1;cursor:pointer}
#app #header-calendar .month-head button svg{display:block;width:16px;height:16px;margin:0;flex:none;pointer-events:none}
.month-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:3px}.month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:3px}.month-weekdays{font-size:11px;color:var(--text-muted);margin-bottom:6px}
.month-day{display:grid;place-items:center;height:30px;font-size:13px;border-radius:8px;font-variant-numeric:tabular-nums}.month-day.other-month{opacity:.4}.month-day[aria-current="date"]{background:#e8bc62;color:#132c23;font-weight:700}
#app #header-calendar .month-today{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:max-content;max-width:100%;height:32px;min-height:32px;margin:12px auto 0;padding:0 14px;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--text);font:inherit;font-size:12px;line-height:18px;cursor:pointer}
#app #header-calendar button{transition:background-color .15s ease,color .15s ease,border-color .15s ease}
#app #header-calendar button:hover{background:var(--surface-2);color:var(--text);border-color:var(--text-muted)}
#app #header-calendar button:active{background:var(--surface-2);border-color:var(--navigation-accent,var(--accent))}
#app #header-calendar button:focus-visible{outline:2px solid var(--navigation-accent,var(--accent));outline-offset:2px}
@media(prefers-reduced-motion:reduce){#app #header-calendar button{transition:none}}
#app .header-theme-options{width:190px;padding:6px}#app .header-theme-options button{display:flex;align-items:center;gap:10px;width:100%;height:40px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;font-size:13px;cursor:pointer}.header-theme-options svg{width:18px;height:18px}.theme-check{margin-left:auto;visibility:hidden;color:#e8bc62}[aria-pressed="true"]>.theme-check{visibility:visible}
#app .header-theme-options button:hover{background:var(--surface-2)}#app .topbar .header-date:hover{background:var(--surface-2)}
@media(max-width:1199px){#app .hospitality-shell .topbar .top-left{gap:8px}#app .hospitality-shell .topbar .top-actions{gap:8px}#app .hospitality-shell .topbar .hotel-switch{flex:1 1 160px;max-width:240px}.header-date-wrap{gap:8px}#header-clock{padding-left:8px}}
@media(max-width:700px){#app .hospitality-shell .topbar{grid-template-columns:minmax(0,1fr) 36px auto!important;gap:6px!important;padding-inline:10px!important}#app .hospitality-shell .topbar .top-actions{gap:6px}#app .hospitality-shell .topbar .top-left{gap:4px;flex-wrap:wrap;align-content:center;position:relative;padding-bottom:17px}#app .hospitality-shell .topbar .hotel-switch{height:30px!important;min-height:30px!important;flex:1;max-width:none;min-width:0;padding:0;gap:4px}#app .hospitality-shell .topbar .platform-hotel-context{height:30px!important;min-height:30px!important;flex:1;max-width:none;min-width:0;padding:0;gap:4px}#app .hospitality-shell .topbar .hotel-switch .yotta-select-trigger{height:30px!important;min-height:30px!important;padding:0 4px;font-size:12px!important}#app .hospitality-shell .topbar .platform-hotel-context>strong{font-size:12px}.header-date-wrap{position:absolute;bottom:-1px;left:38px;gap:8px}#app .topbar .header-date{height:20px;padding:0;font-size:10px;gap:4px}.header-date>svg{width:12px;height:12px}.header-date>svg:last-child{display:none}#header-clock{font-size:10px;padding-left:8px}#app .topbar .header-icon{width:34px;height:36px;padding:8px}#app .hospitality-shell .topbar .platform-hotel-context>svg{display:none}#app .hospitality-shell .topbar .hotel-switch>svg{display:none}#app .hospitality-shell .topbar .top-user-caret{display:none}#app .hospitality-shell .topbar #top-user-menu{min-width:36px;width:36px;padding:2px}#app .hospitality-shell .topbar .mobile-menu{width:30px;min-width:30px;padding:4px}}
#app .hospitality-shell .topbar .hotel-switch{flex-direction:row}
/* Header5.32: compact context and quiet, useful controls. */
#app .hospitality-shell .topbar .top-left{gap:18px}
#app .hospitality-shell .topbar .hotel-switch{flex:0 1 250px;max-width:250px;border-color:transparent;background:transparent!important}#app .hospitality-shell .topbar .platform-hotel-context{flex:0 1 250px;max-width:250px;border-color:transparent;background:transparent!important}
#app .hospitality-shell .topbar .hotel-switch .yotta-select-trigger{border:0!important;box-shadow:none!important;font-size:14px!important;padding-inline:6px!important}
.header-context-tools{display:flex;align-items:center;gap:16px;min-width:0}
.header-date-wrap{gap:10px}
#app .topbar .header-date{gap:7px;padding-inline:4px;font-size:13px}
#header-clock{font-size:14px;font-weight:600;padding-left:10px}
.header-weather-wrap{display:flex;align-items:center;border-left:1px solid var(--border);padding-left:10px}
#app #header-weather{display:flex;align-items:center;justify-content:center;gap:7px;width:76px;height:40px;padding:0 6px;border:0;border-radius:10px;background:transparent;color:var(--text);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .16s ease,transform .16s ease}
.weather-symbol{display:block;width:26px;height:26px;flex-shrink:0;transition:transform .2s ease}
#app #header-weather:hover{background:var(--surface-2)}#header-weather:hover .weather-symbol{transform:rotate(-7deg) scale(1.08)}#app #header-weather:active{transform:scale(.96)}
#app .weather-panel{width:304px;padding:18px}
.weather-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.weather-heading small{color:var(--text-muted);font-size:10px;letter-spacing:.08em}.weather-heading h3{margin:4px 0 0;font-family:inherit;font-weight:600;font-size:20px;line-height:1.3}.weather-heading>.weather-symbol{width:48px;height:48px}
.weather-current{display:flex;align-items:center;gap:18px;margin:12px 0 18px}.weather-current>strong{font-size:40px;font-weight:600;line-height:1.1;letter-spacing:-1px}.weather-current>strong small{font-size:18px;font-weight:400;vertical-align:top;letter-spacing:0}.weather-current>div{font-size:13px;line-height:1.6}.weather-current>div>span{display:block;color:var(--text-muted);font-size:11px}
.weather-hours{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;border-block:1px solid var(--border);padding:12px 0}.weather-hours>div{display:flex;flex-direction:column;align-items:center;gap:8px}.weather-hours small{font-size:11px;color:var(--text-muted)}.weather-hours strong{font-size:13px}.weather-hours .weather-symbol{width:24px;height:24px}
.weather-location{font-size:11px;line-height:1.5;color:var(--text-muted);margin:12px 0;overflow-wrap:anywhere}.weather-footer{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--text-muted)}
#app .weather-footer button{border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:11px;padding:8px;cursor:pointer}#app .weather-retry{border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:11px;padding:8px;cursor:pointer}#app .weather-settings{border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:11px;padding:8px;cursor:pointer}#app .weather-settings{display:block;width:100%;margin-top:8px;background:var(--surface-2);text-align:center;font-size:12px;min-height:36px}#app .weather-retry{background:var(--surface-2)}.weather-empty{font-size:13px;line-height:1.6;color:var(--text-muted)}.weather-credit{margin-top:14px;font-size:9px;color:var(--text-muted)}.weather-credit a{color:inherit;text-decoration:none}.weather-credit a:hover{text-decoration:underline}.weather-stale{padding:8px;border-radius:7px;background:var(--surface-2);font-size:11px;color:var(--text-muted)}
#app .header-popup:not([hidden]){animation:header-reveal .16s ease-out;transform-origin:top center}#app .topbar :is(.header-icon,.header-date,#top-search,#top-user-menu){transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}#app .topbar :is(.header-icon,.header-date,#top-search,#top-user-menu):hover{background:var(--surface-2)}
@keyframes header-reveal{from{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:none}}
@media(min-width:1200px){#app .hospitality-shell .topbar{grid-template-columns:minmax(0,1fr) 220px auto}#app .hospitality-shell #top-search{display:flex!important;gap:8px;justify-content:flex-start;width:220px!important;padding:0 12px!important;color:var(--text-muted)}#app .hospitality-shell #top-search>span:not(.nav-icon){display:inline!important;font-size:12px}#app .hospitality-shell #top-search kbd{display:inline!important;margin-left:auto;font-size:10px;opacity:.65}}
@media(min-width:701px) and (max-width:1000px){#app .hospitality-shell .topbar .hotel-switch{flex:0 1 210px;max-width:210px}#app .hospitality-shell .topbar .platform-hotel-context{flex:0 1 210px;max-width:210px}.header-context-tools{gap:8px}.header-weather-wrap{padding-left:6px}#app .hospitality-shell .topbar .top-left{gap:10px}}
@media(max-width:700px){
 #app .hospitality-shell .topbar{height:88px!important;min-height:88px!important;grid-template-columns:40px minmax(0,1fr) 40px 40px 40px!important;grid-template-rows:40px 30px!important;padding:6px 10px!important;gap:4px 4px!important;align-content:center}
 #app .hospitality-shell .topbar .top-left{display:contents!important}#app .hospitality-shell .topbar .top-actions{display:contents!important}
 #app .hospitality-shell .topbar .mobile-menu{grid-column:1;grid-row:1;width:40px;min-width:40px;height:40px;padding:9px}
 #app .hospitality-shell .topbar .hotel-switch{grid-column:2;grid-row:1;width:100%;max-width:100%;height:40px!important;min-height:40px!important;min-width:0}#app .hospitality-shell .topbar .platform-hotel-context{grid-column:2;grid-row:1;width:100%;max-width:100%;height:40px!important;min-height:40px!important;min-width:0}
 #app .hospitality-shell .topbar .hotel-switch .yotta-select-trigger{height:40px!important;min-height:40px!important;font-size:12px!important}
 #app .hospitality-shell .topbar #top-search{grid-column:3;grid-row:1;width:40px!important;min-width:40px!important;height:40px!important;padding:10px}
 .header-theme-wrap{grid-column:4;grid-row:1}.top-user-menu{grid-column:5;grid-row:1}
 #app .topbar .header-icon{width:40px;height:40px!important;min-width:40px;padding:6px}#app .hospitality-shell .topbar #top-user-menu{width:40px;height:40px!important;min-width:40px;padding:6px}
 .header-context-tools{grid-column:1/-1;grid-row:2;justify-content:center;gap:16px;border-top:1px solid var(--border);padding-top:2px}
 .header-date-wrap{position:static;gap:12px}#app .topbar .header-date{height:30px;padding:0 4px;font-size:12px;gap:6px}.header-date>svg{width:15px;height:15px}#header-clock{font-size:12px;padding-left:12px}#app #header-weather{height:30px;font-size:12px;width:68px}.weather-symbol{width:24px;height:24px}.header-weather-wrap{padding-left:12px}
 #app .topbar .business-date-recovery{display:none}
}
@media(prefers-reduced-motion:reduce){#app .header-popup:not([hidden]){animation:none}#app .topbar *{transition:none!important;animation:none!important}#header-weather .weather-symbol{transition:none!important;animation:none!important}#header-weather:hover .weather-symbol{transform:none}}
@media(max-width:700px){#app .hospitality-shell .topbar #top-search{grid-column:3!important;grid-row:1!important}#app .hospitality-shell .topbar:not(:has(#header-weather)){height:64px!important;min-height:64px!important;grid-template-rows:40px!important}#app .topbar:not(:has(#header-weather)) .header-context-tools{display:none}}
@media(min-width:701px){#app .hospitality-shell .topbar .top-actions{display:flex!important;flex-flow:row nowrap!important;width:auto!important;max-width:none!important;min-width:0;gap:8px}#app .hospitality-shell .topbar{grid-template-columns:minmax(0,1fr) 40px auto!important}#app .hospitality-shell .topbar #top-search{width:40px!important;min-width:40px!important;max-width:none!important}}
@media(min-width:1200px){#app .hospitality-shell .topbar{grid-template-columns:minmax(0,1fr) 220px auto!important}#app .hospitality-shell .topbar #top-search{width:220px!important;max-width:none!important}}
@media(min-width:701px){#app .hospitality-shell .topbar:not(:has(#top-search)){grid-template-columns:minmax(0,1fr) auto!important}}
@media(max-width:700px){#app .hospitality-shell .topbar:not(:has(#header-weather)){grid-template-columns:40px minmax(0,1fr) 40px 40px!important}#app .topbar:not(:has(#header-weather)) .header-theme-wrap{grid-column:3}#app .topbar:not(:has(#header-weather)) .top-user-menu{grid-column:4}}

#header-weather[data-state="stale"] [data-weather-temperature]{text-decoration:underline dotted #e8bc62;text-underline-offset:4px}
/*5.33: centered desktop context, small search, essential mobile toolbar. */
#app .hospitality-shell .topbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
#app .hospitality-shell .topbar .top-left{position:static!important;grid-column:1;grid-row:1;max-width:calc(100% - 140px);min-width:0}
#app .hospitality-shell .topbar .hotel-switch{flex:1 1 200px;min-width:0}#app .hospitality-shell .topbar .platform-hotel-context{flex:1 1 200px;min-width:0}
#app .hospitality-shell .topbar .header-context-tools{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap}
#app .hospitality-shell .topbar .top-actions{display:flex!important;grid-column:2!important;grid-row:1;justify-self:end;gap:8px;flex-flow:row nowrap!important;width:auto!important}
#app .hospitality-shell .topbar #top-search{width:40px!important;min-width:40px!important;max-width:40px!important;height:40px!important;min-height:40px!important;display:grid!important;place-items:center;padding:9px!important}
#app .hospitality-shell #top-search>span:not(.nav-icon){display:none!important}#app .hospitality-shell #top-search>kbd{display:none!important}
@media(min-width:1200px){#app .hospitality-shell.navigation-v2 .topbar .header-context-tools{left:calc(50% - 36px)}}
@media(max-width:700px){
 #app .hospitality-shell .topbar{height:64px!important;min-height:64px!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:40px!important;padding:10px 12px!important;gap:8px!important}#app .hospitality-shell .topbar:not(:has(#header-weather)){height:64px!important;min-height:64px!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:40px!important;padding:10px 12px!important;gap:8px!important}
 #app .hospitality-shell .topbar .header-context-tools{display:none!important}
 #app .hospitality-shell .topbar .top-left{display:flex!important;flex-wrap:nowrap!important;align-items:center;max-width:none!important;padding:0!important;gap:6px!important}
 #app .hospitality-shell .topbar .top-actions{gap:4px!important;display:flex!important;grid-column:2!important}
 #app .hospitality-shell .topbar .hotel-switch{width:auto;flex:1;max-width:none}#app .hospitality-shell .topbar .platform-hotel-context{width:auto;flex:1;max-width:none}
}
#app .weather-panel{width:350px}
.weather-days{border-block:1px solid var(--border);padding:4px 0}
.weather-day{display:grid;grid-template-columns:54px 28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 0}
.weather-day>span:first-child{display:flex;flex-direction:column;gap:3px}.weather-day>span:first-child strong{font-size:12px;text-transform:capitalize}.weather-day>span:first-child small{font-size:10px;color:var(--text-muted)}
.weather-day-condition{font-size:11px;color:var(--text-muted)}.weather-day-range{display:flex;gap:8px;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.weather-day-range small{font:inherit;color:var(--text-muted)}
.weather-daily-note{font-size:10px;line-height:1.5;color:var(--text-muted);margin:10px 0}
#modal-root .header-search-layer{display:block!important;background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#modal-root .header-search-layer .modal{position:fixed!important;inset:auto;min-width:0!important;max-width:calc(100vw - 24px)!important;min-height:0!important;margin:0!important;padding:0!important;border:1px solid var(--border);border-radius:16px!important;background:var(--surface-1);box-shadow:0 18px 48px #0004;overflow:hidden;display:flex;flex-direction:column}
#modal-root .header-search-layer .modal-head{display:none!important}#modal-root .header-search-layer .modal-actions{display:none!important}
#modal-root .header-search-layer .modal-body{padding:12px!important;min-height:0!important;overflow:auto!important}
#modal-root .header-search-layer .command-palette-search{display:flex;align-items:center;gap:8px;margin:0;padding:0 8px!important;height:44px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
#modal-root .header-search-layer .command-palette-search input{font-size:14px!important;background:transparent!important;padding:0!important;min-height:0!important;height:40px;border:0!important;box-shadow:none!important;flex:1;min-width:0}
#modal-root [data-search-dismiss]{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0}
#modal-root .header-search-layer .command-palette-caption{margin:12px 6px 6px;font-size:10px;letter-spacing:.07em;color:var(--text-muted)}
#modal-root .header-search-layer .command-palette-results{max-height:300px!important;overflow-y:auto!important;display:grid;gap:3px}
#modal-root .header-search-layer .command-palette-result{padding:8px!important;min-height:44px!important;border:0!important;border-radius:9px!important;box-shadow:none!important;background:transparent;text-align:left}
#modal-root .header-search-layer .command-palette-result:is(:hover,.is-active){background:var(--surface-2)!important}
#modal-root .header-search-layer .command-palette-result-icon{width:30px;height:30px;border:0!important;background:transparent!important}
#modal-root .header-search-layer .command-palette-result-copy strong{font-size:13px!important}#modal-root .header-search-layer .command-palette-result-copy small{display:none}
#modal-root .header-search-layer .command-palette-help{margin:10px 6px 0;padding:8px 0 0;border-top:1px solid var(--border);font-size:10px;color:var(--text-muted)}
@media(max-width:700px){#modal-root .header-search-layer .command-palette-help{display:none}}
/* Center with flex rather than a transformed ancestor: fixed popovers stay in viewport coordinates. */
#app .hospitality-shell .topbar .header-context-tools{left:0!important;right:0;top:0;bottom:0;transform:none!important;justify-content:center;pointer-events:none;padding:0}
#app .hospitality-shell .topbar .header-context-tools>.header-date-wrap{pointer-events:auto}#app .hospitality-shell .topbar .header-context-tools>.header-weather-wrap{pointer-events:auto}#app .hospitality-shell .topbar .header-popup{pointer-events:auto}
@media(min-width:1200px){#app .hospitality-shell.navigation-v2 .topbar .header-context-tools{padding-right:72px}}
#modal-root .header-search-layer .modal{height:auto!important}
#app .topbar .header-popup{white-space:normal}
#modal-root .header-search-layer .modal-body{flex:0 1 auto!important;height:auto!important}#modal-root .header-search-layer .command-palette{flex:0 1 auto!important;height:auto!important}
#modal-root .header-search-layer .modal-body{max-height:calc(100dvh - 110px)!important}
#modal-root .header-search-layer .command-palette-results{flex:0 1 auto!important}
#modal-root .header-search-layer .modal-body{display:block!important}
#modal-root .header-search-layer .command-palette{width:100%!important;min-width:0!important;max-width:none!important}
/* 5.34: one icon language and reversible motion shared with contextual menus. */
#app .header-popup:not([hidden]){animation:none;transform-origin:top right}#app .top-user-popover:not([hidden]){animation:none;transform-origin:top right}
#app .topbar :is(.header-icon,#top-search) svg{width:19px;height:19px;stroke-width:1.7;transition:transform .18s cubic-bezier(.2,.8,.2,1),color .18s ease}
#app .topbar :is(.header-icon,#top-search):hover svg{transform:translateY(-1px);color:var(--navigation-accent,var(--accent))}
#app .topbar [aria-expanded="true"]:is(.header-icon,#top-search){background:var(--surface-2)}
#app #top-user-menu .top-user-caret{transition:transform .18s ease}
#app #top-user-menu[aria-expanded="true"] .top-user-caret{transform:rotate(180deg)}
#app .top-user-popover{padding:6px;border-radius:14px;min-width:240px;box-shadow:0 12px 36px #0003,0 2px 6px #0002}
#app .top-user-popover>button{min-height:38px;padding:8px 10px;gap:10px;border-radius:8px;font-size:14px;line-height:20px}
#app .top-user-popover .nav-icon{width:20px;height:20px;min-width:20px;background:transparent;border:0;padding:0}
#app .top-user-popover .nav-icon svg{width:19px;height:19px;stroke-width:1.7}
#app .top-user-popover>[data-user-action="logout"]{margin-top:5px;border-top:1px solid var(--border);border-radius:0 0 8px 8px;padding-top:11px}
@media(prefers-reduced-motion:reduce){#app .topbar svg{transition:none!important}#app #top-user-menu .top-user-caret{transition:none!important}}
/* 5.40: one mobile control geometry; the avatar must fit inside its button. */
@media(max-width:700px){
 #app .hospitality-shell .topbar .top-left{min-width:0!important}
 #app .hospitality-shell .topbar .top-actions{align-items:center!important;gap:6px!important;flex-shrink:0}
 #app .hospitality-shell .topbar :is(#top-search,#header-theme,#top-user-menu,#mobile-menu){display:grid!important;place-items:center;box-sizing:border-box;flex:0 0 40px!important;width:40px!important;min-width:40px!important;max-width:40px!important;height:40px!important;min-height:40px!important;max-height:40px!important;padding:0!important;margin:0!important;border:1px solid var(--border)!important;border-radius:10px!important;background:var(--surface-2)!important;line-height:1!important}
 #app .hospitality-shell .topbar :is(.header-theme-wrap,.top-user-menu){display:flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;min-width:40px;height:40px;margin:0;padding:0}
 #app .hospitality-shell .topbar :is(#top-search,#mobile-menu)>.nav-icon{display:grid;place-items:center;width:20px;min-width:20px;height:20px;margin:0;padding:0;background:transparent;border:0}
 #app .hospitality-shell .topbar :is(#top-search,#header-theme,#mobile-menu) svg{display:block;width:20px!important;height:20px!important;flex:none;margin:0;transform:none!important}
 #app .hospitality-shell .topbar #top-user-menu .top-avatar{display:grid;place-items:center;box-sizing:border-box;flex:none;width:28px!important;min-width:28px!important;max-width:28px!important;height:28px!important;min-height:28px!important;max-height:28px!important;margin:0;padding:0;border-radius:50%;font-size:11px;line-height:1}
 #app .hospitality-shell .topbar #top-user-menu :is(.top-user-text,.top-user-caret){display:none!important}
}

/* assets/ui-scrollbars.css */
/* Shared scrollbar finish, including body-mounted selects and dialog layers. */
:root{--scroll-thumb:#82978b;--scroll-thumb-hover:#577b67;--scroll-thumb-active:#8a713d}
:root[data-theme="dark"]{--scroll-thumb:#4f7161;--scroll-thumb-hover:#7d9e88;--scroll-thumb-active:#c2a15e}
html{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent!important}body{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent!important}body *{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent!important}
/* Chromium/Safari need native color/width reset before custom geometry applies. */
@supports selector(::-webkit-scrollbar){
 html{scrollbar-width:auto!important;scrollbar-color:auto!important}body{scrollbar-width:auto!important;scrollbar-color:auto!important}body *{scrollbar-width:auto!important;scrollbar-color:auto!important}
 ::-webkit-scrollbar{width:9px!important;height:9px!important;background:transparent!important}#app *::-webkit-scrollbar{width:9px!important;height:9px!important;background:transparent!important}#modal-root *::-webkit-scrollbar{width:9px!important;height:9px!important;background:transparent!important}
 ::-webkit-scrollbar-track{background:transparent!important;border:0!important}#app *::-webkit-scrollbar-track{background:transparent!important;border:0!important}#modal-root *::-webkit-scrollbar-track{background:transparent!important;border:0!important}
 ::-webkit-scrollbar-track:vertical{margin-block:8px}
 ::-webkit-scrollbar-track:horizontal{margin-inline:8px}
 ::-webkit-scrollbar-thumb{min-height:28px;min-width:28px;border:2px solid transparent!important;border-radius:999px!important;background:var(--scroll-thumb)!important;background-clip:padding-box!important;box-shadow:none!important}#app *::-webkit-scrollbar-thumb{min-height:28px;min-width:28px;border:2px solid transparent!important;border-radius:999px!important;background:var(--scroll-thumb)!important;background-clip:padding-box!important;box-shadow:none!important}#modal-root *::-webkit-scrollbar-thumb{min-height:28px;min-width:28px;border:2px solid transparent!important;border-radius:999px!important;background:var(--scroll-thumb)!important;background-clip:padding-box!important;box-shadow:none!important}
 ::-webkit-scrollbar-thumb:hover{background-color:var(--scroll-thumb-hover)!important}#app *::-webkit-scrollbar-thumb:hover{background-color:var(--scroll-thumb-hover)!important}#modal-root *::-webkit-scrollbar-thumb:hover{background-color:var(--scroll-thumb-hover)!important}
 ::-webkit-scrollbar-thumb:active{background-color:var(--scroll-thumb-active)!important}#app *::-webkit-scrollbar-thumb:active{background-color:var(--scroll-thumb-active)!important}#modal-root *::-webkit-scrollbar-thumb:active{background-color:var(--scroll-thumb-active)!important}
 ::-webkit-scrollbar-corner{background:transparent!important}
 ::-webkit-scrollbar-button{display:none!important;width:0!important;height:0!important}
 /* This compact status strip intentionally exposes no separate scroll rail. */
 .calendar-statusbar{scrollbar-width:none!important}
 .calendar-statusbar::-webkit-scrollbar{display:none!important}
}
/* Keep platform high-contrast scroll controls and their larger interaction area. */
@media(forced-colors:active){
 html{scrollbar-width:auto!important;scrollbar-color:auto!important;forced-color-adjust:auto}body{scrollbar-width:auto!important;scrollbar-color:auto!important;forced-color-adjust:auto}body *{scrollbar-width:auto!important;scrollbar-color:auto!important;forced-color-adjust:auto}
 ::-webkit-scrollbar{width:14px!important;height:14px!important}#app *::-webkit-scrollbar{width:14px!important;height:14px!important}#modal-root *::-webkit-scrollbar{width:14px!important;height:14px!important}
 ::-webkit-scrollbar-thumb{background:ButtonText!important;background-clip:padding-box!important}#app *::-webkit-scrollbar-thumb{background:ButtonText!important;background-clip:padding-box!important}#modal-root *::-webkit-scrollbar-thumb{background:ButtonText!important;background-clip:padding-box!important}
 ::-webkit-scrollbar-track{background:Canvas!important}#app *::-webkit-scrollbar-track{background:Canvas!important}#modal-root *::-webkit-scrollbar-track{background:Canvas!important}
}

/* assets/ui-housekeeping.css */
/* 5.41: daily work first, compact room list and touch-friendly room cards. */
.hospitality-ui .hk-daily{max-width:1600px;margin:auto;display:block}
.hospitality-ui.application-v4 .hk-daily .hk-page-head{margin-bottom:14px!important}
.hospitality-ui.application-v4 .hk-daily .hk-daily-panel>.section-head{margin-bottom:12px!important;padding:0!important;min-height:0}
.hospitality-ui .hk-worker #hk-work-list>.section-head{display:none}
.hospitality-ui .hk-daily .hk-page-head{margin:0 0 16px;align-items:center;gap:12px}
.hospitality-ui .hk-daily .hk-page-head h1{font-size:clamp(24px,2.2vw,32px);margin:4px 0;line-height:1.2}
.hospitality-ui .hk-daily .hk-page-head p{display:none}.hk-daily .hk-workflow{display:none}
.hospitality-ui .hk-daily .btn{white-space:normal}
.hospitality-ui .hk-daily-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.hospitality-ui .hk-daily-tabs [aria-pressed=true]{background:var(--surface-active);border-color:var(--brand-gold);color:var(--text-primary)}.hospitality-ui .hk-stage-filters [aria-pressed=true]{background:var(--surface-active);border-color:var(--brand-gold);color:var(--text-primary)}
.hospitality-ui .hk-daily .hk-daily-panel{padding:18px;margin:0 0 16px;border-radius:14px}
.hospitality-ui .hk-daily h2{font:600 18px/1.3 var(--font-ui,Arial,sans-serif);margin:0 0 12px}
.hospitality-ui .hk-find{display:flex;gap:10px;margin-bottom:12px;max-width:600px}
.hospitality-ui .hk-find label{flex:1;min-width:0;margin:0}
.hospitality-ui .hk-find input{width:100%;height:42px;min-width:0;font-size:14px;padding:8px 12px}.hospitality-ui .hk-find select{width:100%;height:42px;min-width:0;font-size:14px;padding:8px 12px}
.hospitality-ui .hk-stage-filters{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}
.hospitality-ui .hk-stage-filters .btn{display:inline-flex;align-items:center;gap:7px}
.hospitality-ui .hk-stage-filters span{font-variant-numeric:tabular-nums;opacity:.75}
.hospitality-ui .hk-job-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.hospitality-ui .hk-job{padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);min-width:0;display:flex;flex-direction:column;gap:12px}
.hospitality-ui .hk-job-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.hospitality-ui .hk-room-number{font-size:24px;line-height:1.2;display:block;font-variant-numeric:tabular-nums}
.hospitality-ui .hk-job-description{display:grid;gap:6px;font-size:14px;overflow-wrap:anywhere}
.hospitality-ui .hk-job small{display:block;color:var(--text-secondary);font-size:12px;line-height:1.5}.hospitality-ui .hk-room-row small{display:block;color:var(--text-secondary);font-size:12px;line-height:1.5}
.hospitality-ui .hk-job-description p{margin:0;font-size:13px}
.hospitality-ui .hk-safety{color:var(--warning);font-weight:600}
.hospitality-ui .hk-job-actions{margin-top:auto}
.hospitality-ui .hk-job-actions>.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.hospitality-ui .hk-job-actions .primary{flex:1;min-height:44px}
.hospitality-ui .hk-job-more{width:100%;border-top:1px solid var(--border);padding-top:8px}
.hospitality-ui .hk-job-more summary{cursor:pointer;font-size:13px;padding:5px 0;color:var(--text-secondary)}
.hospitality-ui .hk-job-more .toolbar{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}
.hospitality-ui .hk-room-row{display:grid;grid-template-columns:minmax(90px,1fr) minmax(110px,1fr) minmax(110px,1fr) auto;gap:16px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--border);min-width:0}
.hospitality-ui .hk-room-row .hk-room-number{font-size:20px}
.hospitality-ui .hk-room-row .badge{justify-self:start}
.hospitality-ui .hk-room-context{font-size:13px}
.hospitality-ui .hk-result-count{display:block;margin-top:14px;color:var(--text-muted)}
.hospitality-ui .hk-secondary{border:1px solid var(--border);border-radius:12px;margin:12px 0;background:var(--surface-1)}
.hospitality-ui .hk-secondary>summary{padding:14px 16px;font-size:14px;font-weight:600;cursor:pointer}
.hospitality-ui .hk-secondary>.panel{margin:0;border:0;border-radius:0;padding:16px}
.hospitality-ui .hk-secondary>.btn{margin:0 16px 12px}
.hospitality-ui .hk-daily .hk-qa-command-panel{padding:18px}
.hospitality-ui .hk-daily .hk-qa-command-panel .eyebrow{display:none}.hospitality-ui .hk-daily .hk-qa-command-panel .section-head p{display:none}
.hospitality-ui .hk-daily .hk-qa-command-card{padding:14px;min-height:0;gap:10px}
.hospitality-ui .hk-finish-modal .modal-head h2{font-size:23px}
.hospitality-ui .hk-finish-modal .hk-cleaning-summary{padding:0;min-height:0}
.hospitality-ui .hk-finish-modal .hk-completion-hint{font-size:13px;line-height:1.5;color:var(--text-secondary);margin:8px 0 16px}
.hospitality-ui .hk-finish-modal .hk-equipment-checklist{padding:0;border:0}
.hospitality-ui .hk-finish-modal .equipment-check-row{padding:12px}
.hospitality-ui .hk-finish-modal .equipment-check-row:has(input[value=ok]:checked) label:has(textarea){display:none}
.hospitality-ui .hk-daily [hidden]{display:none!important}
@media(min-width:1050px){.hospitality-ui .hk-reception .hk-job-list{grid-template-columns:1fr}.hospitality-ui .hk-reception .hk-job{display:grid;grid-template-columns:180px minmax(160px,1fr) minmax(240px,1fr);align-items:center;gap:16px}.hospitality-ui .hk-reception .hk-job-actions{margin:0}}
@media(max-width:700px){.hospitality-ui .hk-daily .hk-page-head{align-items:flex-start}.hospitality-ui .hk-daily .hk-head-actions{gap:6px;justify-content:flex-start;flex-wrap:wrap}.hospitality-ui .hk-daily .hk-daily-panel{padding:12px}.hospitality-ui .hk-daily .hk-stage-filters{gap:5px}.hospitality-ui .hk-job-list{grid-template-columns:1fr}.hospitality-ui .hk-room-row{grid-template-columns:1fr 1fr;gap:8px 12px;padding:12px 0}.hospitality-ui .hk-room-row>.toolbar{justify-content:flex-end;flex-wrap:wrap}.hospitality-ui .hk-find{gap:8px}.hospitality-ui .hk-find input{font-size:16px}.hospitality-ui .hk-find select{font-size:16px}.hospitality-ui .hk-finish-modal .hk-equipment-status{display:grid;grid-template-columns:1fr 1fr}.hospitality-ui .hk-finish-modal .equipment-check-row .toolbar{flex-wrap:wrap}}

.hospitality-ui .hk-finish-modal .equipment-check-row:not(:has(input[value=note]:checked,input[value=damaged]:checked,input[value=missing]:checked)) .hk-equipment-note{display:none}
.hospitality-ui .hk-finish-modal .hk-equipment-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
@media(max-width:700px){.hospitality-ui .hk-finish-modal .hk-equipment-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}

.hospitality-ui .hk-room-more summary{cursor:pointer;padding:10px;font-size:13px;border:1px solid var(--border);border-radius:10px}
.hospitality-ui .hk-room-more[open]{grid-column:1/-1}.hospitality-ui .hk-room-more .toolbar{display:flex;gap:6px;flex-wrap:wrap;padding-top:8px}

/* 5.42 exception-based workflow and compact administrative dialogs. */
.hospitality-ui .hk-v542 .hk-head-actions{display:flex;gap:6px;flex-wrap:wrap}
.hospitality-ui .hk-v542 .hk-daily-tabs [aria-pressed=true]{border-color:var(--brand-gold);box-shadow:inset 0 -2px 0 var(--brand-gold)}
.hospitality-ui .hk-v542.hk-worker [data-hk-list=tasks]>.section-head{display:none}
.hospitality-ui .hk-v542 .hkw-issues{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}
.hospitality-ui .hkw-issue{display:flex;flex-direction:column;gap:9px;border:1px solid var(--border);border-radius:12px;padding:16px;background:var(--surface-2);min-width:0;overflow-wrap:anywhere}
.hospitality-ui .hkw-issue p{font-size:14px;line-height:1.5;margin:0}
.hospitality-ui .hkw-issue small{font-size:12px;color:var(--text-secondary)}
.hospitality-ui .hkw-issue>.primary{margin-top:auto}
.hospitality-ui .hkw-decision-note{padding:8px 10px;border-left:2px solid var(--brand-gold);background:var(--surface-3)}
.hospitality-ui .hkw-shift{padding:0 16px 16px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.hospitality-ui .hkw-tools{padding:0 16px 16px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.hospitality-ui .hkw-pagination{margin-top:14px;justify-content:center}
.hospitality-ui .hkw-modal{width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 32px)}
.hospitality-ui .hkw-modal.wide{width:min(960px,calc(100vw - 24px))}
.hospitality-ui .hkw-modal .modal-head{padding:18px 20px}
.hospitality-ui .hkw-modal .modal-head h2{font-size:23px;line-height:1.25;margin:0}
.hospitality-ui .hkw-modal .modal-body{padding:18px 20px;font-size:14px}
.hospitality-ui .hkw-modal .modal-actions{padding:12px 20px}
.hospitality-ui .hkw-modal p{font-size:14px;line-height:1.5}
.hospitality-ui .hkw-modal .btn{white-space:normal}
.hospitality-ui .hkw-modal label{font-size:13px;gap:6px}
.hospitality-ui .hkw-modal input{font-size:14px;min-width:0}.hospitality-ui .hkw-modal select{font-size:14px;min-width:0}.hospitality-ui .hkw-modal textarea{font-size:14px;min-width:0}
.hospitality-ui .hkw-modal small{font-size:12px;line-height:1.5;color:var(--text-secondary)}
.hospitality-ui .hkw-modal [hidden]{display:none!important}
.hospitality-ui .hkw-check-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}
.hospitality-ui .hkw-check-row label{display:flex;flex-direction:row;align-items:center;gap:10px;margin:0;color:var(--text-primary)}
.hospitality-ui .hkw-check-row input{width:18px;height:18px;opacity:1;accent-color:var(--primary)}
.hospitality-ui .hkw-checkmark{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:7px;background:var(--success-soft);color:var(--success);font-size:15px;font-weight:700;flex:none}
.hospitality-ui .hkw-known-issues{margin:14px 0;padding:12px;border:1px solid var(--border);border-left:3px solid var(--brand-gold);border-radius:10px;background:var(--surface-2)}
.hospitality-ui .hkw-presets{display:flex;gap:6px;flex-wrap:wrap}
.hospitality-ui .hkw-history-row{display:grid;grid-template-columns:145px 85px minmax(0,1fr);gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--border);font-size:13px;overflow-wrap:anywhere}
.hospitality-ui .hkw-history-row small{display:block;margin-top:3px}
.hospitality-ui .hkw-history-row time{font-variant-numeric:tabular-nums;color:var(--text-secondary)}
.hospitality-ui .hkw-history-tools{margin:14px 0;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.hospitality-ui .hkw-rule-list{margin-top:18px}
.hospitality-ui .hkw-rule-list h3{font-size:16px}
.hospitality-ui .hkw-rule-list article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.hospitality-ui .hkw-rule-list small{display:block}
.hospitality-ui .hkw-issue-photo{display:block;width:100%;height:auto;max-height:65vh;object-fit:contain}
@media(max-width:700px){.hospitality-ui .hkw-modal .modal-head{padding:14px}.hospitality-ui .hkw-modal .modal-body{padding:14px}.hospitality-ui .hkw-modal .modal-actions{padding:12px 14px}.hospitality-ui .hkw-modal input{font-size:16px}.hospitality-ui .hkw-modal select{font-size:16px}.hospitality-ui .hkw-modal textarea{font-size:16px}.hospitality-ui .hkw-modal .form-grid{grid-template-columns:1fr 1fr;gap:12px}.hospitality-ui .hkw-modal .form-grid>label{min-width:0}.hospitality-ui .hkw-history-row{grid-template-columns:1fr 1fr;gap:6px}.hospitality-ui .hkw-history-row>div{grid-column:1/-1}.hospitality-ui .hkw-modal .modal-head h2{font-size:21px}.hospitality-ui .hk-v542 .hk-page-head{flex-direction:column;align-items:flex-start}}
@media(max-width:380px){.hospitality-ui .hkw-modal .form-grid{grid-template-columns:1fr}}

.hospitality-ui .hkw-checkmark[data-selfcheck-default="issue"]{background:var(--surface-2);color:var(--brand-gold);border:1px solid currentColor}
.hospitality-ui .hkw-discrepancy{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px}.hospitality-ui .hkw-discrepancy .btn{margin-left:auto}
.hospitality-ui .hk-v542 .hkw-issues{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}.hospitality-ui .hkw-issue>.btn{align-self:flex-end}.hospitality-ui .hk-v542.hk-worker .hk-job-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}

.hospitality-ui .hkw-modal input[type=file]::file-selector-button{font:inherit;color:var(--text-primary);background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:8px 10px;margin-right:10px;cursor:pointer}

/* 5.44: compact operational workspace, using the application's existing palette. */
.hospitality-ui .hk-v544{max-width:1480px;padding-bottom:24px;--hk-gap:16px}
.hospitality-ui.application-v4 .hk-v544 .hk-page-head{margin:0 0 22px!important;align-items:center;gap:20px}
.hospitality-ui .hk-v544 .hk-page-head h1{font-size:clamp(26px,2.2vw,34px);letter-spacing:-.025em;line-height:1.18;margin:0}
.hospitality-ui .hk-v544 .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.hospitality-ui .hk-v544 .ui-icon{flex-shrink:0}
.hospitality-ui .hk-v544 .hk-head-actions{gap:7px;align-items:center}
.hospitality-ui .hk-v544 .hk-daily-tabs{display:flex;align-items:center;gap:4px;margin:0;border-bottom:1px solid var(--border);padding:0 0 10px}
.hospitality-ui .hk-v544 .hk-daily-tabs [aria-pressed=true]{background:var(--surface-active);color:var(--text-primary);box-shadow:none;border:1px solid var(--border)}
.hospitality-ui .hk-v544 .hk-daily-tabs [aria-pressed=true] .ui-icon{color:var(--brand-gold)}
.hospitality-ui .hk-v544 .hkw-overview{display:flex;align-items:center;flex-wrap:wrap;gap:0;margin:0 0 18px;padding:13px 0;border-bottom:1px solid var(--border)}
.hospitality-ui .hk-v544 .hkw-overview>div{display:flex;gap:9px;align-items:baseline;padding:0 24px;border-right:1px solid var(--border);min-width:130px}
.hospitality-ui .hk-v544 .hkw-overview>div:first-child{padding-left:0}
.hospitality-ui .hk-v544 .hkw-overview>div:last-child{border:0}
.hospitality-ui .hk-v544 .hkw-overview strong{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}
.hospitality-ui .hk-v544 .hkw-overview span{font-size:13px;color:var(--text-secondary)}
.hospitality-ui .hk-v544 .hk-daily-panel{padding:20px;margin-bottom:16px;background:var(--surface-1);border:1px solid var(--border);border-radius:14px;box-shadow:none}
.hospitality-ui .hk-v544 .hk-daily-panel>h2{font-size:16px;font-weight:600;margin:0 0 16px}.hospitality-ui .hk-v544 .hk-daily-panel>.section-head h2{font-size:16px;font-weight:600;margin:0 0 16px}
.hospitality-ui .hk-v544 .hkw-filterbar{display:flex;gap:12px 18px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 18px}
.hospitality-ui .hk-v544 .hkw-filterbar .hk-find{flex:1 1 390px;max-width:560px;gap:10px;margin:0}
.hospitality-ui .hk-v544 .hk-find label:first-child{flex:1.3}
.hospitality-ui .hk-v544 .hk-find label:last-child{flex:.8}
.hospitality-ui .hk-v544 .hk-find input{height:40px;min-height:40px;font-size:14px}.hospitality-ui .hk-v544 .hk-find .yotta-select-trigger{height:40px;min-height:40px;font-size:14px}
.hospitality-ui .hk-v544 .hk-stage-filters{margin:0;display:flex;gap:5px;flex-wrap:wrap}
.hospitality-ui .hk-v544 .hk-stage-filters [aria-pressed=true]{background:var(--surface-2);border-color:var(--border);color:var(--text-primary)}
.hospitality-ui .hk-v544 .hk-job-list{display:grid;grid-template-columns:1fr;gap:10px}
.hospitality-ui .hk-v544 .hk-job{display:grid;grid-template-columns:76px minmax(160px,1fr) minmax(125px,170px) 368px;gap:20px;align-items:center;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-1);position:relative;transition:background-color .16s ease,border-color .16s ease}
.hospitality-ui .hk-v544 .hk-job:hover{border-color:var(--text-muted);background:var(--surface-2)}
.hospitality-ui .hk-v544 .hk-job[data-stage=working]{border-left:3px solid var(--brand-gold);padding-left:14px}
.hospitality-ui .hk-v544 .hk-job-room{display:flex;flex-direction:column;gap:4px;padding-right:14px;border-right:1px solid var(--border)}
.hospitality-ui .hk-v544 .hk-job-room>small:first-child{font-size:10px;letter-spacing:.12em;color:var(--text-muted)}
.hospitality-ui .hk-v544 .hk-room-number{font-size:26px;line-height:1.1;letter-spacing:-.02em}
.hospitality-ui .hk-v544 .hk-job-description{display:flex;flex-direction:column;gap:7px;min-width:0}
.hospitality-ui .hk-v544 .hk-job-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.hospitality-ui .hk-v544 .hk-job-title>strong{font-size:14px;line-height:1.4;font-weight:600}
.hospitality-ui .hk-v544 .badge{font-size:11px;line-height:1.4;border-radius:6px;padding:3px 7px;display:inline-flex;width:fit-content;white-space:normal;font-weight:600}
.hospitality-ui .hk-v544 .hk-job-description p{font-size:13px;line-height:1.5;margin:0;color:var(--text-secondary)}
.hospitality-ui .hk-v544 .hk-job-description p.hk-safety{color:var(--brand-gold);font-size:12px}
.hospitality-ui .hk-v544 .hk-job-meta{display:flex;gap:7px 12px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--text-secondary)}
.hospitality-ui .hk-v544 .hk-job-meta:empty{display:none}
.hospitality-ui .hk-v544 .hk-job-meta>span{display:inline-flex;align-items:center;gap:5px}
.hospitality-ui .hk-v544 .hk-job-meta .ui-icon{width:14px;height:14px}
.hospitality-ui .hk-v544 .hk-priority{color:var(--brand-gold)}
.hospitality-ui .hk-v544 .hk-job-assignee{display:flex;align-items:center;gap:8px;color:var(--text-secondary);min-width:0}
.hospitality-ui .hk-v544 .hk-job-assignee .ui-icon{width:17px;height:17px;opacity:.75}
.hospitality-ui .hk-v544 .hk-job-assignee strong{font-size:13px;font-weight:500;line-height:1.4;overflow-wrap:anywhere}
.hospitality-ui .hk-v544 .hk-job-assignee small{font-size:11px;margin-top:3px}
.hospitality-ui .hk-v544 .hk-job-actions{margin:0;min-width:0}
.hospitality-ui .hk-v544 .hk-job-actions>.toolbar{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.hospitality-ui .hk-v544 .hk-job-actions .primary{flex:0 1 auto;min-height:40px}
.hospitality-ui .hk-v544 .hk-job-more{position:relative;width:auto;border:0;padding:0;grid-column:auto}.hospitality-ui .hk-v544 .hk-room-more{position:relative;width:auto;border:0;padding:0;grid-column:auto}
.hospitality-ui .hk-v544 .hk-job-more summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;margin:0;padding:8px 10px;border:1px solid var(--border);border-radius:9px;font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer}.hospitality-ui .hk-v544 .hk-room-more summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;margin:0;padding:8px 10px;border:1px solid var(--border);border-radius:9px;font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer}
.hospitality-ui .hk-v544 details>summary::-webkit-details-marker{display:none}
.hospitality-ui .hk-v544 .hk-job-more summary::marker{content:''}.hospitality-ui .hk-v544 .hk-room-more summary::marker{content:''}
.hospitality-ui .hk-v544 .hk-job-more[open]>summary{background:var(--surface-active);color:var(--text-primary)}.hospitality-ui .hk-v544 .hk-room-more[open]>summary{background:var(--surface-active);color:var(--text-primary)}
.hospitality-ui .hk-v544 .hk-job-more>.toolbar{position:absolute;z-index:30;top:calc(100% + 7px);right:0;width:250px;max-width:calc(100vw - 40px);display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:7px;margin:0;border:1px solid var(--border);border-radius:12px;background:var(--surface-1);box-shadow:0 12px 32px #0003;animation:hkw-menu-in .14s ease-out}.hospitality-ui .hk-v544 .hk-room-more>.toolbar{position:absolute;z-index:30;top:calc(100% + 7px);right:0;width:250px;max-width:calc(100vw - 40px);display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:7px;margin:0;border:1px solid var(--border);border-radius:12px;background:var(--surface-1);box-shadow:0 12px 32px #0003;animation:hkw-menu-in .14s ease-out}
.hospitality-ui .hk-v544 .hk-job-more.opens-up>.toolbar{top:auto;bottom:calc(100% + 7px)}.hospitality-ui .hk-v544 .hk-room-more.opens-up>.toolbar{top:auto;bottom:calc(100% + 7px)}
.hospitality-ui .hk-v544 .hk-job-more>.toolbar .btn{justify-content:flex-start;text-align:left}.hospitality-ui .hk-v544 .hk-room-more>.toolbar .btn{justify-content:flex-start;text-align:left}
.hospitality-ui .hk-v544 .hk-job-more>.toolbar .ui-icon{color:var(--text-secondary)}
.hospitality-ui .hk-v544 .hk-room-row{grid-template-columns:minmax(70px,.5fr) minmax(95px,.7fr) minmax(120px,1fr) auto;padding:14px 5px;gap:18px}
.hospitality-ui .hk-v544 .hk-room-row:last-child{border-bottom:0}
.hospitality-ui .hk-v544 .hk-room-row>.toolbar{gap:6px;justify-content:flex-end;flex-wrap:wrap}
.hospitality-ui .hk-v544 .hk-room-row .hk-room-number{font-size:23px}
.hospitality-ui .hk-v544 .hk-result-count{margin-top:15px;font-size:12px}
.hospitality-ui .hk-v544 .hk-secondary{background:transparent;box-shadow:none;border-radius:11px}
.hospitality-ui .hk-v544 .hk-secondary>summary{font-size:13px;font-weight:500;padding:13px 16px;color:var(--text-secondary)}
.hospitality-ui .hk-v544 .hkw-issues{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:14px}
.hospitality-ui .hk-v544 .hkw-issue{background:var(--surface-1);padding:18px;border-radius:12px;gap:12px}
.hospitality-ui .hk-v544 .hkw-issue .hk-job-top>strong{font-size:20px}
.hospitality-ui .hk-v544 .hkw-issue>strong{font-size:14px}
.hospitality-ui .hk-v544 .hkw-issue>.primary{align-self:flex-start;margin-top:8px}
.hospitality-ui .hkw-modal .form-grid{gap:16px;margin:0}
.hospitality-ui .hkw-modal .form-grid>label{margin:0;min-width:0;display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500}
.hospitality-ui .hkw-modal .modal-head h2{font-size:24px;letter-spacing:-.02em}
.hospitality-ui .hkw-modal .modal-body{line-height:1.5}
.hospitality-ui .hkw-modal textarea{resize:vertical;line-height:1.5}
.hospitality-ui .hkw-modal .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.hospitality-ui .hkw-modal .hkw-check-row{gap:16px;padding:13px 0}
.hospitality-ui .hkw-modal .hkw-check-row .btn{min-width:80px}
.hospitality-ui .hkw-modal .hkw-rule-list article{gap:12px;padding:13px 0;align-items:center;flex-wrap:wrap}
.hospitality-ui .hkw-modal .hkw-rule-list .toolbar{display:flex;gap:5px;flex-wrap:wrap}
.hospitality-ui .hkw-modal .hkw-history-row{grid-template-columns:125px 80px minmax(0,1fr);gap:14px;padding:13px 0}
.hospitality-ui .hkw-modal .hkw-known-issues{background:var(--surface-2);padding:13px;border-radius:10px}
.hospitality-ui .hkw-modal.hkw-task-modal .hk-task-modal-header{display:none}.hospitality-ui .hkw-modal.hkw-task-modal .hk-task-guidance{display:none}
.hospitality-ui .hkw-modal.hkw-task-modal .hk-task-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0}
.hospitality-ui .hkw-modal.hkw-task-modal .hk-field{margin:0;padding:0;min-width:0}
.hospitality-ui .hkw-modal.hkw-task-modal .hk-task-modal-side{display:grid;grid-template-columns:1fr 1fr;gap:12px;grid-column:1/-1}
.hospitality-ui .hkw-modal.hkw-task-modal .hk-task-flags-panel{grid-column:1/-1;padding:0;margin:0}.hospitality-ui .hkw-modal.hkw-task-modal .hk-field-notes{grid-column:1/-1;padding:0;margin:0}
.hospitality-ui .hkw-modal.hkw-task-modal .hk-task-flags-panel>summary{font-size:13px;padding:10px 0;cursor:pointer;color:var(--text-secondary)}
.hospitality-ui .hkw-modal.hkw-task-modal .hk-task-section-head{display:none}
.hospitality-ui .hkw-modal.hkw-task-modal .hk-task-flags{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 0}
@keyframes hkw-menu-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.hospitality-ui .hk-v544 .hk-page-head{align-items:flex-start;flex-direction:column;gap:16px}.hospitality-ui .hk-v544 .hk-job{grid-template-columns:68px minmax(160px,1fr) auto;gap:14px}.hospitality-ui .hk-v544 .hk-job-assignee{grid-column:2;grid-row:2}.hospitality-ui .hk-v544 .hk-job-room{grid-row:1/3}.hospitality-ui .hk-v544 .hk-job-actions{grid-column:3;grid-row:1/3}}
@media(max-width:700px){
 .hospitality-ui .hk-v544 .hk-head-actions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.hospitality-ui .hk-v544 .hk-head-actions>.primary{grid-column:1/-1;min-height:44px}.hospitality-ui .hk-v544 .hk-head-actions .ui-icon{width:16px;height:16px}
 .hospitality-ui .hk-v544 .hk-daily-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding-bottom:10px}.hospitality-ui .hk-v544 .hk-daily-tabs .btn{gap:5px}.hospitality-ui .hk-v544 .hk-daily-tabs .ui-icon{width:16px;height:16px}
 .hospitality-ui .hk-v544 .hkw-overview{display:grid;grid-template-columns:1fr 1fr;gap:10px 0;padding:12px 0;margin-bottom:14px}.hospitality-ui .hk-v544 .hkw-overview>div{padding:0 12px;min-width:0}.hospitality-ui .hk-v544 .hkw-overview>div:nth-child(odd){padding-left:0}.hospitality-ui .hk-v544 .hkw-overview>div:nth-child(even){border-right:0}.hospitality-ui .hk-v544 .hkw-overview strong{font-size:20px}.hospitality-ui .hk-v544 .hkw-overview span{font-size:12px}
 .hospitality-ui .hk-v544 .hk-daily-panel{padding:14px}.hospitality-ui .hk-v544 .hkw-filterbar{gap:12px;margin-bottom:14px}.hospitality-ui .hk-v544 .hkw-filterbar .hk-find{flex-basis:100%;max-width:none}.hospitality-ui .hk-v544 .hk-stage-filters{gap:3px}
 .hospitality-ui .hk-v544 .hk-job{display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;padding:14px}.hospitality-ui .hk-v544 .hk-job-room{grid-column:1;grid-row:1;padding-right:9px;align-self:start}.hospitality-ui .hk-v544 .hk-job-description{grid-column:2;grid-row:1}.hospitality-ui .hk-v544 .hk-job-title{align-items:flex-start;gap:6px}.hospitality-ui .hk-v544 .hk-job-title>strong{font-size:14px}.hospitality-ui .hk-v544 .hk-job-assignee{grid-column:1/-1;grid-row:2;padding-top:11px;border-top:1px solid var(--border)}.hospitality-ui .hk-v544 .hk-job-actions{grid-column:1/-1;grid-row:3}.hospitality-ui .hk-v544 .hk-job-actions>.toolbar{justify-content:flex-start;flex-wrap:wrap}.hospitality-ui .hk-v544 .hk-job-actions .primary{flex:1 1 145px;min-height:44px}.hospitality-ui .hk-v544 .hk-job-more{margin-left:auto}.hospitality-ui .hk-v544 .hk-job-more>summary{min-height:44px}.hospitality-ui .hk-v544 .hk-job-meta{font-size:11px}.hospitality-ui .hk-v544 .hk-job-description p{font-size:12px}.hospitality-ui .hk-v544 .hk-job-description p.hk-safety{font-size:12px}.hospitality-ui .hk-v544 .hk-job[data-stage=working]{padding-left:12px}
 .hospitality-ui .hk-v544 .hk-room-row{grid-template-columns:1fr auto;gap:10px}.hospitality-ui .hk-v544 .hk-room-row .hk-room-context{grid-column:1}.hospitality-ui .hk-v544 .hk-room-row>.toolbar{grid-column:2;grid-row:2}
 .hospitality-ui .hkw-modal .hkw-history-row{grid-template-columns:1fr auto;gap:7px}.hospitality-ui .hkw-modal .hkw-history-row>div{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){.hospitality-ui .hk-v544 .hk-job{transition:none}.hospitality-ui .hk-v544 .hk-job-more>.toolbar{animation:none}.hospitality-ui .hk-v544 .hk-room-more>.toolbar{animation:none}}
.hospitality-ui.application-v4 .hk-v544 .hk-daily-panel>.section-head{border:0;padding:0;margin-bottom:14px!important}.hospitality-ui .hk-v544 .hk-job{padding-top:12px;padding-bottom:12px}.hospitality-ui .hk-v544 .hk-job-room>small{font-size:12px;letter-spacing:0}.hospitality-ui .hk-v544 .hk-job-description .badge{font-size:11px}

.hospitality-ui .hkw-modal.hkw-task-modal.wide{width:min(720px,calc(100vw - 24px))}
.hospitality-ui .hkw-task-modal .hk-task-modal-intro{background:transparent;border:0;padding:0;margin:0 0 14px}
.hospitality-ui .hkw-task-modal .hk-task-modal-intro:empty{display:none}
.hospitality-ui .hkw-task-modal .hk-task-presets{display:flex;flex-wrap:wrap;gap:6px}
@media(max-width:700px){.hospitality-ui .hk-v544 .hk-find label:first-child{flex:1}.hospitality-ui .hk-v544 .hk-find label:last-child{flex:1}.hospitality-ui .hk-v544 .hk-find input{font-size:16px}.hospitality-ui .hk-v544 .hk-find .yotta-select-trigger{font-size:16px}}

/* 5.45: visible room totals, a focused worker summary and compact mobile actions. */
.hospitality-ui .hk-v545 .hkw-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;padding:0 6px;border-radius:7px;background:var(--surface-2);color:var(--text-secondary);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.hospitality-ui .hk-v545 [data-hkw-view="pool"] .hkw-tab-count{background:var(--brand-gold);color:#17281f}
.hospitality-ui .hk-v545 .hkw-overview:empty{display:none}
.hospitality-ui .hk-v545 .hkw-period{margin:0 0 14px;color:var(--text-secondary);font-size:12px}
.hospitality-ui .hk-v545 [data-hkw-empty-pool]{display:block;width:fit-content;margin:12px auto 0}
.hospitality-ui .hk-v545 .hk-daily-tabs .btn{white-space:normal}
@media(max-width:700px){
 .hospitality-ui .hk-v545.hk-worker .hk-daily-tabs .btn{gap:4px}
 .hospitality-ui .hk-v545.hk-worker .hk-daily-tabs .ui-icon{display:none}
 .hospitality-ui .hk-v545.hk-worker .hkw-tab-count{min-width:20px;height:20px;font-size:11px;padding:0 4px}
 .hospitality-ui .hk-v545.hk-worker .hkw-overview{display:flex;gap:0}
 .hospitality-ui .hk-v545.hk-worker .hkw-overview>div{flex:1}
 .hospitality-ui .hk-v545 .hk-job-actions>.toolbar{display:flex;flex-wrap:nowrap;gap:6px;align-items:stretch}
 .hospitality-ui .hk-v545 .hk-job-actions .primary{flex:1 1 0;min-width:0;padding:8px;font-size:12px}
 .hospitality-ui .hk-v545 .hk-job-actions .primary .ui-icon{display:none}
 .hospitality-ui .hk-v545 .hk-job-more{margin:0;flex:0 0 44px}
 .hospitality-ui .hk-v545 .hk-job-more>summary{width:44px;height:100%;min-height:44px;padding:8px}
 .hospitality-ui .hk-v545 .hkw-more-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}

@media(max-width:700px){.hospitality-ui .hk-v545 .hk-self-assignee{padding:0;border:0}.hospitality-ui .hk-v545 .hk-self-assignee:empty{display:none}.hospitality-ui .hk-v545 .hk-job-actions{grid-row:auto}}

.hospitality-ui .hk-v545.hk-worker .hkw-overview:empty{display:none}
.hospitality-ui .hk-v545.hk-worker .hk-job-list{grid-template-columns:minmax(0,1fr)}
:root[data-theme="light"] .hospitality-ui .hk-v545 .hk-priority{color:#80600f}:root[data-theme="light"] .hospitality-ui .hk-v545 .hk-job-description p.hk-safety{color:#80600f}
/* 5.46 selected floor matrix: whole surfaces convey status, never colored side stripes. */
.hospitality-ui .hk-v546{--hkr-dirty:#493137;--hkr-working:#24434b;--hkr-ready:#294b3b;--hkr-waiting:#3c394b;--hkr-card-text:#f3f0e9;--hkr-card-muted:#d3d8d2;max-width:1600px}
:root[data-theme="light"] .hospitality-ui .hk-v546{--hkr-dirty:#f1dfe2;--hkr-working:#dae9ef;--hkr-ready:#dceddf;--hkr-waiting:#e5e2ed;--hkr-card-text:#1c3028;--hkr-card-muted:#45554f}
.hospitality-ui .hk-v546 [data-hkr-tone=dirty]{--hkr-tone:var(--hkr-dirty)}
.hospitality-ui .hk-v546 [data-hkr-tone=working]{--hkr-tone:var(--hkr-working)}
.hospitality-ui .hk-v546 [data-hkr-tone=ready]{--hkr-tone:var(--hkr-ready)}
.hospitality-ui .hk-v546 [data-hkr-tone=waiting]{--hkr-tone:var(--hkr-waiting)}
.hospitality-ui .hk-v546 .hk-daily-tabs{border-bottom:1px solid var(--border);padding-bottom:12px;gap:8px}
.hospitality-ui .hk-v546 .hk-daily-tabs [aria-pressed=true]{box-shadow:none;border-color:var(--border);background:var(--surface-active)}
.hospitality-ui .hk-v546 .hkr-pool-link{margin-left:18px;background:transparent;border-color:transparent;font-weight:500}
.hospitality-ui .hk-v546 .hkr-pool-link .hkw-tab-count{background:transparent;color:var(--brand-gold);font-size:15px}
.hospitality-ui .hk-v546 .hkr-controls{display:flex;align-items:center;gap:20px;justify-content:space-between;margin:0 0 24px;min-width:0}
.hospitality-ui .hk-v546 .hkr-find{display:grid;grid-template-columns:minmax(160px,1.3fr) minmax(150px,1fr);gap:12px;flex:1;max-width:510px}
.hospitality-ui .hk-v546 .hkr-find label{margin:0;min-width:0}
.hospitality-ui .hk-v546 .hkr-find input{height:42px;min-height:42px;width:100%;font-size:14px;background:var(--surface-1)}.hospitality-ui .hk-v546 .hkr-find .yotta-select-trigger{height:42px;min-height:42px;width:100%;font-size:14px;background:var(--surface-1)}
.hospitality-ui .hk-v546 .hkr-legend{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.hospitality-ui .hk-v546 .hkr-legend button{display:flex;align-items:center;gap:7px;color:var(--text-secondary);font:500 12px/1.3 var(--font-ui,Arial,sans-serif);border:1px solid transparent;background:transparent;padding:7px 3px;min-height:36px;cursor:pointer;border-radius:7px}
.hospitality-ui .hk-v546 .hkr-legend button[aria-pressed=true]{color:var(--text-primary);border-color:var(--border);padding:7px}
.hospitality-ui .hk-v546 .hkr-legend [data-hkr-tone]{display:inline-block;width:22px;height:22px;flex:none;background:var(--hkr-tone);border:1px solid #ffffff12;border-radius:5px}
.hospitality-ui .hk-v546 .hkr-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}
.hospitality-ui .hk-v546 .hkr-floors{min-width:0}
.hospitality-ui .hk-v546 .hkr-floor{margin:0 0 24px}
.hospitality-ui .hk-v546 .hkr-floor h2{font:600 15px/1.4 var(--font-ui,Arial,sans-serif);letter-spacing:.025em;margin:0 0 12px;color:var(--text-primary)}
.hospitality-ui .hk-v546 .hkr-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.hospitality-ui .hk-v546 .hkr-room{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;min-height:168px;padding:14px 12px;border:1px solid #ffffff13;border-radius:10px;background:var(--hkr-tone);color:var(--hkr-card-text);font:500 13px/1.4 var(--font-ui,Arial,sans-serif);text-align:left;cursor:pointer;box-shadow:none;transition:filter .14s ease,outline-color .14s ease}
.hospitality-ui .hk-v546 .hkr-room:hover{filter:brightness(1.08)}
.hospitality-ui .hk-v546 .hkr-room[aria-pressed=true]{outline:2px solid var(--text-primary);outline-offset:1px}
.hospitality-ui .hk-v546 .hkr-room:focus-visible{outline:3px solid var(--text-primary);outline-offset:3px}
.hospitality-ui .hk-v546 .hkr-room .ui-icon{width:16px;height:16px;color:inherit;flex:none}
.hospitality-ui .hk-v546 .hkr-room-number{font-size:25px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.hospitality-ui .hk-v546 .hkr-room-state{display:flex;align-items:flex-start;gap:6px;font-size:13px;font-weight:600;overflow-wrap:anywhere;min-height:36px}
.hospitality-ui .hk-v546 .hkr-room-occupancy{display:flex;align-items:center;gap:7px;margin-top:auto;color:var(--hkr-card-muted);font-size:12px}
.hospitality-ui .hk-v546 .hkr-room-assignee{display:flex;align-items:center;gap:6px;color:var(--hkr-card-muted);font-size:11px;line-height:1.3;min-height:23px;min-width:0;max-width:100%}
.hospitality-ui .hk-v546 .hkr-room-assignee>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hospitality-ui .hk-v546 .hkr-initials{display:inline-flex;align-items:center;justify-content:center;flex:none;width:26px;height:26px;border-radius:50%;background:#ffffff13;color:var(--hkr-card-text);font-size:11px}
.hospitality-ui .hk-v546 .hkr-count{font-size:12px;color:var(--text-secondary)}
.hospitality-ui .hk-v546 .hkr-inspector{border-left:1px solid var(--border);padding:14px 0 0 24px;min-width:0;position:sticky;top:16px;overflow-wrap:anywhere}
.hospitality-ui .hk-v546 .hkr-inspector h2{font-size:30px;font-family:var(--font-display,Georgia,serif);line-height:1.2;margin:0 0 7px;font-weight:500}
.hospitality-ui .hk-v546 .hkr-inspector header p{font-size:13px;color:var(--text-secondary);margin:0 0 22px}
.hospitality-ui .hk-v546 .hkr-state-banner{display:flex;align-items:center;gap:12px;padding:17px 18px;background:var(--hkr-tone);color:var(--hkr-card-text);border-radius:9px;border:1px solid #ffffff13;margin-bottom:24px;font-size:17px}
.hospitality-ui .hk-v546 .hkr-state-banner .ui-icon{width:22px;height:22px;color:inherit}
.hospitality-ui .hk-v546 .hkr-facts{display:flex;flex-direction:column;gap:17px;margin:0 0 22px;font-size:13px}
.hospitality-ui .hk-v546 .hkr-facts>div{display:grid;grid-template-columns:98px minmax(0,1fr);gap:10px}
.hospitality-ui .hk-v546 .hkr-facts dt{color:var(--text-secondary)}
.hospitality-ui .hk-v546 .hkr-facts dd{margin:0;color:var(--text-primary)}
.hospitality-ui .hk-v546 .hkr-note{border-top:1px solid var(--border);padding-top:18px;margin-bottom:20px}
.hospitality-ui .hk-v546 .hkr-inspector h3{font:600 13px/1.5 var(--font-ui,Arial,sans-serif);margin:0 0 8px}
.hospitality-ui .hk-v546 .hkr-note p{font-size:14px;line-height:1.6;margin:0}
.hospitality-ui .hk-v546 .hkr-restriction{font-size:13px;line-height:1.5;padding:12px;border:1px solid var(--border);background:var(--surface-2);border-radius:8px;display:flex;gap:8px}
.hospitality-ui .hk-v546 .hkr-restriction .ui-icon{flex:none;width:17px;height:17px}
.hospitality-ui .hk-v546 .hkr-duty{margin-bottom:16px}
.hospitality-ui .hk-v546 .hkr-duty-heading{display:flex;flex-direction:column;gap:4px;margin-bottom:9px;font-size:13px}
.hospitality-ui .hk-v546 .hkr-duty-heading small{color:var(--text-secondary)}
.hospitality-ui .hk-v546 .hkr-duty:only-child .hkr-duty-heading{display:none}
.hospitality-ui .hk-v546 .hkr-duty>.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.hospitality-ui .hk-v546 .hkr-duty .btn{justify-content:center}
.hospitality-ui .hk-v546 .hkr-duty .btn.primary{width:100%;flex:1 1 100%}
.hospitality-ui .hk-v546 .hkr-duty .btn:not(.primary){flex:1 1 150px}
.hospitality-ui .hk-v546 .hkr-duty .hk-job-more{margin-left:auto}
.hospitality-ui .hk-v546 .hkr-room-tools{display:flex;gap:8px;align-items:center;justify-content:space-between;margin:16px 0}
.hospitality-ui .hk-v546 .hkr-activity{padding-top:20px;margin-top:22px;border-top:1px solid var(--border)}
.hospitality-ui .hk-v546 .hkr-activity-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}
.hospitality-ui .hk-v546 .hkr-link{background:none;border:0;padding:0;font-size:11px;color:var(--text-secondary);cursor:pointer}
.hospitality-ui .hk-v546 .hkr-activity-row{display:flex;gap:10px;margin:0 0 16px;font-size:12px}
.hospitality-ui .hk-v546 .hkr-activity-row .ui-icon{width:15px;height:15px;color:var(--text-secondary)}
.hospitality-ui .hk-v546 .hkr-activity-row strong{font-weight:500}
.hospitality-ui .hk-v546 .hkr-activity-row time{display:block;color:var(--text-secondary);font-size:11px;margin-top:5px}
.hospitality-ui .hk-v546 .hk-job[data-hkr-tone]{background:var(--hkr-tone);color:var(--hkr-card-text);border:1px solid #ffffff14;padding-left:16px}
.hospitality-ui .hk-v546 .hk-job[data-hkr-tone] p{color:var(--hkr-card-muted)}.hospitality-ui .hk-v546 .hk-job[data-hkr-tone] small{color:var(--hkr-card-muted)}.hospitality-ui .hk-v546 .hk-job[data-hkr-tone] .hk-job-meta{color:var(--hkr-card-muted)}.hospitality-ui .hk-v546 .hk-job[data-hkr-tone] .hk-job-assignee{color:var(--hkr-card-muted)}
.hospitality-ui .hk-v546 .hk-job[data-stage=working]{border-left:1px solid #ffffff14;padding-left:16px}
.hospitality-ui .hk-v546 .hk-job[data-hkr-tone] .hk-safety{color:var(--hkr-card-text)}
.hospitality-ui .hk-v546 .hk-stage-filters [aria-pressed=true]{border-color:var(--border);box-shadow:none}
@media(max-width:1350px){.hospitality-ui .hk-v546 .hkr-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hospitality-ui .hk-v546 .hkr-layout{grid-template-columns:minmax(0,1fr) 280px;gap:18px}.hospitality-ui .hk-v546 .hkr-inspector{padding-left:18px}.hospitality-ui .hk-v546 .hkr-controls{flex-wrap:wrap}.hospitality-ui .hk-v546 .hkr-find{max-width:none}.hospitality-ui .hk-v546 .hkr-legend{justify-content:flex-start}}
@media(max-width:1100px){.hospitality-ui .hk-v546 .hkr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hospitality-ui .hk-v546 .hk-head-actions{align-self:stretch}.hospitality-ui .hk-v546 .hkr-room{min-height:154px}}
@media(max-width:900px){.hospitality-ui .hk-v546 .hkr-layout{grid-template-columns:minmax(0,1fr)}.hospitality-ui .hk-v546 .hkr-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hospitality-ui .hk-v546 .hkr-inspector{border-left:0;border-top:1px solid var(--border);padding:22px 0;position:static;scroll-margin-top:90px}.hospitality-ui .hk-v546 .hkr-facts{max-width:520px}.hospitality-ui .hk-v546 .hkr-controls{gap:12px}}
@media(max-width:600px){.hospitality-ui .hk-v546 .hkr-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hospitality-ui .hk-v546 .hkr-find{grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;flex-basis:100%}.hospitality-ui .hk-v546 .hkr-find input{font-size:16px;height:44px}.hospitality-ui .hk-v546 .hkr-find .yotta-select-trigger{font-size:16px;height:44px}.hospitality-ui .hk-v546 .hkr-legend{gap:5px}.hospitality-ui .hk-v546 .hkr-legend button{font-size:11px;min-height:40px}.hospitality-ui .hk-v546 .hkr-legend [data-hkr-tone]{width:16px;height:16px}.hospitality-ui .hk-v546 .hkr-room{min-height:150px;padding:13px}.hospitality-ui .hk-v546 .hkr-room-number{font-size:25px}.hospitality-ui .hk-v546 .hkr-room-state{font-size:14px}.hospitality-ui .hk-v546 .hkr-room-assignee{font-size:12px}.hospitality-ui .hk-v546 .hkr-pool-link{margin-left:0}}
@media(prefers-reduced-motion:reduce){.hospitality-ui .hk-v546 .hkr-room{transition:none}}.hospitality-ui .hk-v546 .hkr-room-state{font-size:14px}.hospitality-ui .hk-v546 .hkr-room-assignee{font-size:12px}

/* Pending reads give immediate feedback and cannot be submitted twice. */
.hospitality-ui .hk-v546 .btn[aria-busy="true"]{cursor:progress;opacity:.75}
.hospitality-ui .hk-v546 .btn[aria-busy="true"]::after{content:"";display:inline-block;flex:none;width:12px;border-right-color:transparent;animation:hkw-request-spin .7s linear infinite}
@keyframes hkw-request-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.hospitality-ui .hk-v546 .btn[aria-busy="true"]::after{animation:none}}

/* Multi-room allocation: compact native checkboxes, scoped to housekeeping. */
.hkw-allocation-modal .hkw-room-picker{border:1px solid var(--border);border-radius:12px;padding:14px;margin:16px 0;min-width:0}
.hkw-allocation-modal .hkw-room-picker legend{padding:0 6px;font-weight:600}
.hkw-allocation-modal [data-hkw-picked-count]{font-size:.85em;color:var(--muted);margin-left:8px}
.hkw-allocation-modal .hkw-room-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:8px;max-height:240px;overflow:auto;margin-top:12px;padding:2px}
.hkw-allocation-modal .hkw-room-choices label{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:9px;cursor:pointer;background:var(--surface)}
.hkw-allocation-modal .hkw-room-choices label:has(input:checked){background:color-mix(in srgb,var(--primary) 12%,var(--surface));border-color:var(--primary)}
.hkw-allocation-modal .hkw-room-choices label[hidden]{display:none}
.hkw-allocation-modal .hkw-room-choices input{width:18px;height:18px;flex:0 0 18px;accent-color:var(--primary);margin:0}
.hkw-allocation-modal .hkw-room-choices small{display:block;color:var(--muted)}
.hkw-allocation-modal .hkw-allocation-hint{font-size:.9em;color:var(--muted);line-height:1.5}
.hkw-allocation-modal .hkw-room-picker .toolbar>*{min-width:0}
@media(max-width:600px){.hkw-allocation-modal .hkw-room-picker .toolbar{display:grid;grid-template-columns:1fr 1fr}.hkw-allocation-modal .hkw-room-picker .toolbar label:first-child{grid-column:1/-1}}

/* assets/ui-housekeeping-polish.css */
/* 5.50 · Housekeeping work surfaces, using the application's approved colors. */
.hospitality-ui .hk-v550{max-width:1760px;--hkr-room-min:118px}
.hospitality-ui.application-v4 .hk-v550 .hk-page-head{gap:16px;margin:0 0 16px!important}
.hospitality-ui .hk-v550 .hk-page-head h1{font-size:clamp(25px,2.2vw,32px);letter-spacing:-.025em;margin:0;line-height:1.2}
.hospitality-ui .hk-v550 .hk-head-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.hospitality-ui .hk-v550 .hk-head-actions .btn{gap:7px}
.hospitality-ui .hk-v550 .hk-head-actions .btn.primary{margin-left:4px}
.hospitality-ui .hk-v550 .hk-daily-tabs{align-items:center;gap:6px;padding-bottom:12px;margin-bottom:16px}
.hospitality-ui .hk-v550 .hk-daily-tabs>.btn{gap:8px}
.hospitality-ui .hk-v550 .hkw-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;font-size:11px;background:var(--surface-3);color:var(--text-primary);border-radius:6px;font-variant-numeric:tabular-nums}
.hospitality-ui .hk-v550 .hkr-pool-link{margin-left:auto!important}
.hospitality-ui .hk-v550 .hkr-controls{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-1);gap:14px;margin-bottom:20px;align-items:center}
.hospitality-ui .hk-v550 .hkr-find{flex:0 1 365px;max-width:365px;grid-template-columns:minmax(135px,1.2fr) minmax(125px,1fr);gap:8px}
.hospitality-ui .hk-v550 .hkr-find input{height:38px;min-height:38px;font-size:13px;background:var(--surface-2);border-radius:8px}.hospitality-ui .hk-v550 .hkr-find .yotta-select-trigger{height:38px;min-height:38px;font-size:13px;background:var(--surface-2);border-radius:8px}
.hospitality-ui .hk-v550 .hkr-legend{gap:3px;flex:1;justify-content:flex-end}
.hospitality-ui .hk-v550 .hkr-legend button{padding:7px 8px;gap:6px;font-size:11px;min-height:36px;white-space:nowrap}
.hospitality-ui .hk-v550 .hkr-legend button[aria-pressed=true]{padding:7px 8px;background:var(--surface-2);border-color:var(--border)}
.hospitality-ui .hk-v550 .hkr-legend [data-hkr-tone]{width:11px;height:11px;border-radius:4px}
.hospitality-ui .hk-v550 [data-hkr-count-tone]{font-size:10px;font-variant-numeric:tabular-nums;opacity:.75;min-width:12px;text-align:right}
.hospitality-ui .hk-v550 .hkr-layout{grid-template-columns:minmax(0,1fr) 296px;gap:20px}
.hospitality-ui .hk-v550 .hkr-grid{grid-template-columns:repeat(auto-fill,minmax(var(--hkr-room-min),1fr));gap:9px}
.hospitality-ui .hk-v550 .hkr-floor{margin:0 0 20px}
.hospitality-ui .hk-v550 .hkr-floor h2{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:10px}
.hospitality-ui .hk-v550 [data-hkr-floor-count]{font-size:10px;letter-spacing:0;font-weight:500;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary)}
.hospitality-ui .hk-v550 .hkr-room{min-height:134px;padding:12px;gap:7px;border-radius:11px;border:1px solid #ffffff14;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease;position:relative}
.hospitality-ui .hk-v550 .hkr-room:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 5px 12px #00000015}
.hospitality-ui .hk-v550 .hkr-room[aria-pressed=true]{outline:2px solid var(--text-primary);outline-offset:2px}
.hospitality-ui .hk-v550 .hkr-room-top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px}
.hospitality-ui .hk-v550 .hkr-room-number{font-size:25px;letter-spacing:-.025em}
.hospitality-ui .hk-v550 .hkr-selected-mark{opacity:0;display:inline-flex;align-items:center;flex:none}
.hospitality-ui .hk-v550 .hkr-selected-mark .ui-icon{width:17px;height:17px}
.hospitality-ui .hk-v550 .hkr-room[aria-pressed=true] .hkr-selected-mark{opacity:.85}
.hospitality-ui .hk-v550 .hkr-room-state{font-size:12px;min-height:30px;line-height:1.3;font-weight:600}
.hospitality-ui .hk-v550 .hkr-room-occupancy{font-size:11px;gap:6px}
.hospitality-ui .hk-v550 .hkr-room-assignee{font-size:11px;min-height:20px;gap:5px}
.hospitality-ui .hk-v550 .hkr-room .hkr-initials{width:20px;height:20px;font-size:9px;background:#ffffff0c}
.hospitality-ui .hk-v550 .hkr-room .hkr-room-occupancy .ui-icon{width:13px;height:13px}
.hospitality-ui .hk-v550 .hkr-count{display:block;margin:0 0 6px;font-size:11px}
.hospitality-ui .hk-v550 .hkr-inspector{padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface-1);position:sticky;top:16px;scroll-margin-top:86px;max-height:calc(100dvh - 100px);overflow:auto;scrollbar-gutter:stable}
.hospitality-ui .hk-v550 .hkr-inspector[hidden]{display:none}
.hospitality-ui .hk-v550 .hkr-inspector header{margin-bottom:14px}
.hospitality-ui .hk-v550 .hkr-inspector h2{font-size:27px;margin:0 0 4px;letter-spacing:-.02em}
.hospitality-ui .hk-v550 .hkr-inspector h2:focus{outline:none}
.hospitality-ui .hk-v550 .hkr-inspector header p{font-size:11px;margin:0;color:var(--text-secondary)}
.hospitality-ui .hk-v550 .hkr-state-banner{padding:10px 12px;border-radius:8px;gap:9px;font-size:13px;margin-bottom:16px}
.hospitality-ui .hk-v550 .hkr-state-banner .ui-icon{width:18px;height:18px}
.hospitality-ui .hk-v550 .hkr-facts{display:grid;grid-template-columns:1fr 1fr;gap:13px 14px;margin-bottom:16px}
.hospitality-ui .hk-v550 .hkr-facts>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.hospitality-ui .hk-v550 .hkr-facts dt{font-size:11px}
.hospitality-ui .hk-v550 .hkr-facts dd{font-size:12px;line-height:1.4}
.hospitality-ui .hk-v550 .hkr-duty{padding-top:12px;margin-bottom:12px;border-top:1px solid var(--border)}
.hospitality-ui .hk-v550 .hkr-duty:only-child{padding-top:0;border-top:0}
.hospitality-ui .hk-v550 .hkr-duty .btn:not(.primary){flex:1 1 100px}
.hospitality-ui .hk-v550 .hkr-duty .toolbar{gap:7px}
.hospitality-ui .hk-v550 .hkr-duty-heading{font-size:12px}
.hospitality-ui .hk-v550 .hkr-note{padding-top:12px;margin:12px 0}
.hospitality-ui .hk-v550 .hkr-note p{font-size:12px;line-height:1.5;color:var(--text-secondary)}
.hospitality-ui .hk-v550 .hkr-restriction{font-size:12px;padding:10px;line-height:1.5}
.hospitality-ui .hk-v550 .hkr-room-tools{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--border)}
.hospitality-ui .hk-v550 .hkr-activity{margin-top:14px;padding-top:14px}
.hospitality-ui .hk-v550 .hkr-activity-head{gap:8px;margin-bottom:10px}
.hospitality-ui .hk-v550 .hkr-inspector h3{font-size:11px}
.hospitality-ui .hk-v550 .hkr-activity-row{font-size:11px;margin-bottom:10px}
.hospitality-ui .hk-v550 .hkr-activity-row time{font-size:10px}
.hospitality-ui .hk-v550 .hkr-back{display:none}
.hospitality-ui .hk-v550 .hk-daily-panel{padding:16px;border-radius:12px}
.hospitality-ui .hk-v550 .hk-daily-panel h2{font-size:16px}
.hospitality-ui .hk-v550 .hkw-overview{gap:0;margin-bottom:16px;border:1px solid var(--border);border-radius:10px;background:var(--surface-1);padding:12px}
.hospitality-ui .hk-v550 .hkw-overview>div{padding:0 18px}
.hospitality-ui .hk-v550 .hkw-overview strong{font-size:22px}
.hospitality-ui .hk-v550 .hkw-overview span{font-size:11px}
.hospitality-ui .hk-v550 .hk-job-list{display:flex;flex-direction:column;gap:8px}
.hospitality-ui .hk-v550 .hk-job{display:grid;grid-template-columns:68px minmax(0,1fr) 140px minmax(190px,auto);align-items:center;gap:14px;padding:13px 14px!important;border-radius:10px}
.hospitality-ui .hk-v550 .hk-job .hk-room-number{font-size:23px}
.hospitality-ui .hk-v550 .hk-job-title{gap:8px;display:flex;flex-wrap:wrap;align-items:center}
.hospitality-ui .hk-v550 .hk-job-title>strong{font-size:13px}
.hospitality-ui .hk-v550 .hk-job-description{gap:5px}
.hospitality-ui .hk-v550 .hk-job-description p{font-size:12px;line-height:1.5}
.hospitality-ui .hk-v550 .hk-job .badge{font-size:10px;padding:3px 7px}
.hospitality-ui .hk-v550 .hk-job-assignee{font-size:11px;gap:8px}
.hospitality-ui .hk-v550 .hk-job-actions{margin:0}
.hospitality-ui .hk-v550 .hk-job-actions .primary{min-height:38px}
.hospitality-ui .hk-v550 .hk-find{margin-bottom:12px;gap:8px;max-width:520px}
.hospitality-ui .hk-v550 .hk-stage-filters{margin-bottom:12px;gap:5px}
.hospitality-ui .hk-v550 .hkw-issues{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}
.hospitality-ui .hk-v550 .hkw-issue{padding:17px;gap:10px;background:var(--surface-2);border-radius:12px}
.hospitality-ui .hk-v550 .hkw-issue-room{display:inline-flex;gap:8px;align-items:center;font-size:16px}
.hospitality-ui .hk-v550 .hkw-issue-room .ui-icon{width:18px;height:18px;color:var(--text-secondary)}
.hospitality-ui .hk-v550 .hkw-issue .badge{font-size:10px;max-width:55%;white-space:normal;text-align:center}
.hospitality-ui .hk-v550 .hkw-issue-title{font-size:13px}
.hospitality-ui .hk-v550 .hkw-issue p{font-size:13px}
.hospitality-ui .hk-v550 .hkw-issue small{font-size:11px;line-height:1.5}
.hospitality-ui .hk-v550 .hkw-issue .btn{align-self:flex-start}
.hospitality-ui .hk-v550 .hkw-severity{display:inline-flex;align-items:center;gap:6px;color:var(--danger,var(--red));font-size:11px;font-weight:600}
.hospitality-ui .hk-v550 .hkw-severity .ui-icon{width:14px;height:14px}
.hospitality-ui .hk-v550 .hkw-decision-note{border-left:0;border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--surface-1)}
.hospitality-ui .hk-v550 .hk-secondary{border-radius:10px;margin-top:16px;background:var(--surface-1)}
.hospitality-ui .hk-v550 .hk-secondary>summary{font-size:12px;padding:12px 14px;min-height:42px}
.hospitality-ui .hk-v550 .hkw-pagination{font-size:12px;gap:14px}
/* Dialog family. Keep labels visible and primary footer within the dialog frame. */
.hospitality-ui .hkw-modal{border-radius:16px;border:1px solid var(--border);background:var(--surface-1)}
.hospitality-ui .hkw-modal .modal-head{padding:17px 20px;border-bottom:1px solid var(--border)}
.hospitality-ui .hkw-modal .modal-head h2{font-size:24px;letter-spacing:-.025em;line-height:1.2}
.hospitality-ui .hkw-modal .modal-body{padding:20px}
.hospitality-ui .hkw-modal .modal-actions{padding:13px 20px;border-top:1px solid var(--border);background:var(--surface-1);gap:8px}
.hospitality-ui .hkw-modal .form-grid{gap:14px 16px}
.hospitality-ui .hkw-modal input:not([type=checkbox]):not([type=file]){height:40px;min-height:40px;border-radius:8px;background:var(--surface-2)}.hospitality-ui .hkw-modal .yotta-select-trigger{height:40px;min-height:40px;border-radius:8px;background:var(--surface-2)}
.hospitality-ui .hkw-modal textarea{border-radius:8px;min-height:80px;background:var(--surface-2);resize:vertical}
.hospitality-ui .hkw-modal .modal-body label{font-size:12px}
.hospitality-ui .hkw-modal input[type=checkbox]{accent-color:var(--primary);width:18px;height:18px;flex:none}
.hospitality-ui .hkw-allocation-modal{width:min(980px,calc(100vw - 32px));max-height:calc(100dvh - 40px)}
.hospitality-ui .hkw-allocation-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.85fr);gap:24px;align-items:start}
.hospitality-ui .hkw-allocation-editor{min-width:0}
.hospitality-ui .hkw-allocation-modal .hkw-room-picker{padding:13px;margin:16px 0 0;border-radius:10px;background:var(--surface-2)}
.hospitality-ui .hkw-allocation-modal .hkw-room-picker legend{font-size:12px}
.hospitality-ui .hkw-allocation-modal .hkw-room-picker>.toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.hospitality-ui .hkw-allocation-modal .hkw-room-picker>.toolbar>label{margin:0;grid-column:auto}
.hospitality-ui .hkw-allocation-modal .hkw-room-choices{max-height:225px;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:7px;padding:2px;margin-top:12px}
.hospitality-ui .hkw-allocation-modal .hkw-room-choices label{padding:9px;gap:8px;border-radius:8px;background:var(--surface-1)}
.hospitality-ui .hkw-allocation-modal .hkw-room-choices strong{font-size:14px}
.hospitality-ui .hkw-allocation-modal .hkw-room-choices small{font-size:10px}
.hospitality-ui .hkw-allocation-modal .hkw-room-choices input{width:16px;height:16px;flex:0 0 16px}
.hospitality-ui .hkw-allocation-modal .hkw-room-choices label:has(input:checked){background:var(--primary-soft);border-color:var(--primary)}
.hospitality-ui .hkw-allocation-modal .hkw-allocation-hint{font-size:11px;line-height:1.5;margin:12px 0 0;color:var(--text-secondary)}
.hospitality-ui .hkw-allocation-modal .hkw-rule-list{margin:0;border-left:1px solid var(--border);padding-left:24px;min-width:0}
.hospitality-ui .hkw-allocation-modal .hkw-rule-list .section-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.hospitality-ui .hkw-allocation-modal .hkw-rule-list h3{font:600 14px/1.4 var(--font-ui,Arial);margin:0}
.hospitality-ui .hkw-allocation-modal .hkw-rule-list .section-head .btn{margin-left:auto}
.hospitality-ui .hkw-allocation-modal .hkw-rule-list>.toolbar{align-items:flex-end;margin-bottom:10px;gap:8px}
.hospitality-ui .hkw-allocation-modal .hkw-rule-list>.toolbar>label{flex:1;margin:0;min-width:0}
.hospitality-ui .hkw-allocation-modal .hkw-rule-list article{gap:8px;padding:12px 0;align-items:flex-start}
.hospitality-ui .hkw-allocation-modal .hkw-rule-list article>div:first-child{min-width:0;flex:1}
.hospitality-ui .hkw-allocation-modal .hkw-rule-list article strong{font-size:12px}
.hospitality-ui .hkw-allocation-modal .hkw-rule-list article small{font-size:11px;margin-top:4px}
.hospitality-ui .hkw-allocation-modal .hkw-rule-list article .toolbar{gap:4px;flex-direction:column}
.hospitality-ui .hkw-settings-group{border:1px solid var(--border);border-radius:11px;background:var(--surface-2);padding:15px;margin-bottom:14px}
.hospitality-ui .hkw-settings-group h3{display:flex;align-items:center;gap:8px;font:600 14px/1.4 var(--font-ui,Arial);margin:0 0 14px}
.hospitality-ui .hkw-settings-group h3 .ui-icon{width:17px;height:17px;color:var(--primary)}
.hospitality-ui .hkw-settings-group input{background:var(--surface-1)!important}.hospitality-ui .hkw-settings-group .yotta-select-trigger{background:var(--surface-1)!important}
.hospitality-ui.application-v4 .hkw-history-modal .form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.hospitality-ui .hkw-history-tools{border-bottom:1px solid var(--border);padding-bottom:14px;margin:14px 0 0;gap:8px}
.hospitality-ui .hkw-history-row{grid-template-columns:132px 72px minmax(0,1fr);gap:16px;padding:14px 0}
.hospitality-ui .hkw-history-row>strong{color:var(--primary)}
.hospitality-ui .hkw-known-issues{border-left:1px solid var(--border);border-radius:10px;background:var(--surface-2);padding:13px}
.hospitality-ui .hkw-check-row{padding:13px 0;gap:12px}
.hospitality-ui .hkw-checkmark{background:var(--primary-soft);color:var(--primary);width:26px;height:26px;border-radius:50%}
.hospitality-ui .hkw-presets{gap:7px;margin:10px 0}
.hospitality-ui .hkw-task-modal .hk-task-modal-grid{gap:14px 16px}
.hospitality-ui .hkw-task-modal .hk-task-presets{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}
.hospitality-ui .hkw-task-modal .hk-task-guidance{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:11px 13px}
.hospitality-ui .hkw-task-modal .hk-task-guidance strong{font-size:11px}
.hospitality-ui .hkw-task-modal .hk-task-guidance p{font-size:11px;margin:4px 0 0;color:var(--text-secondary)}
.hospitality-ui .hkw-task-modal .hk-task-flags-panel{border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}
.hospitality-ui .hkw-task-modal .hk-task-flags-panel summary{font-size:12px;padding:12px}
.hospitality-ui .hkw-task-modal .hk-task-flags-panel .hk-task-section-head{display:none}
.hospitality-ui .hkw-task-modal .hk-flag-chip{border-radius:8px;padding:9px}
@media(min-width:1500px){.hospitality-ui .hk-v550{--hkr-room-min:138px}.hospitality-ui .hk-v550 .hkr-layout{grid-template-columns:minmax(0,1fr) 320px;gap:24px}.hospitality-ui .hk-v550 .hkr-room{min-height:146px;padding:14px}.hospitality-ui .hk-v550 .hkr-room-state{font-size:13px}.hospitality-ui .hk-v550 .hkr-room-assignee{font-size:11px}}
@media(max-width:1150px){.hospitality-ui .hk-v550 .hkr-controls{flex-wrap:wrap;gap:8px}.hospitality-ui .hk-v550 .hkr-find{max-width:none;flex:1}.hospitality-ui .hk-v550 .hkr-legend{justify-content:flex-start}.hospitality-ui .hk-v550 .hk-job{grid-template-columns:58px minmax(0,1fr) 190px}.hospitality-ui .hk-v550 .hk-job-assignee{grid-column:2;grid-row:2}.hospitality-ui .hk-v550 .hk-job-actions{grid-column:3;grid-row:1/3}}
@media(max-width:900px){.hospitality-ui .hk-v550 .hkr-layout{grid-template-columns:minmax(0,1fr)}.hospitality-ui .hk-v550 .hkr-inspector{position:static;max-height:none;overflow:visible;scrollbar-gutter:auto;padding:20px;scroll-margin-top:86px}.hospitality-ui .hk-v550 .hkr-facts{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.hospitality-ui .hk-v550 .hkr-back{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:0 0 8px;background:none;border:0;color:var(--text-secondary);font:500 12px/1.4 var(--font-ui,Arial);cursor:pointer}.hospitality-ui .hk-v550 .hkr-back .ui-icon{width:16px;height:16px}.hospitality-ui .hk-v550 .hkr-activity{display:none}.hospitality-ui .hkw-allocation-layout{grid-template-columns:minmax(0,1fr)}.hospitality-ui .hkw-allocation-modal{width:min(640px,calc(100vw - 24px))}.hospitality-ui .hkw-allocation-modal .hkw-rule-list{border-left:0;border-top:1px solid var(--border);padding:18px 0 0}}
@media(max-width:700px){.hospitality-ui.application-v4 .hk-v550 .hk-page-head{align-items:flex-start!important;gap:12px;margin-bottom:12px!important}.hospitality-ui .hk-v550 .hk-head-actions{width:100%;gap:4px}.hospitality-ui .hk-v550 .hk-head-actions .btn.primary{margin-left:auto}.hospitality-ui .hk-v550 .hkr-controls{padding:10px;margin-bottom:16px}.hospitality-ui .hk-v550 .hkr-find{flex-basis:100%;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.hospitality-ui .hk-v550 .hkr-find input{font-size:16px;min-height:44px;height:44px}.hospitality-ui .hk-v550 .hkr-find .yotta-select-trigger{font-size:16px;min-height:44px;height:44px}.hospitality-ui .hk-v550 .hkr-legend{gap:2px;justify-content:flex-start;flex-basis:100%}.hospitality-ui .hk-v550 .hkr-legend button{min-height:40px;font-size:10px;padding:6px}.hospitality-ui .hk-v550 .hkr-legend button[aria-pressed=true]{padding:6px}.hospitality-ui .hk-v550 .hkr-legend [data-hkr-tone]{width:9px;height:9px}.hospitality-ui .hk-v550 .hk-daily-tabs{gap:4px;margin-bottom:12px}.hospitality-ui .hk-v550 .hk-daily-tabs>.btn{gap:5px}.hospitality-ui .hk-v550 .hkr-pool-link{margin-left:0!important}.hospitality-ui .hk-v550 .hkr-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hospitality-ui .hk-v550 .hkr-room{min-height:138px;padding:13px}.hospitality-ui .hk-v550 .hkr-room-state{font-size:13px}.hospitality-ui .hk-v550 .hkr-room-assignee{font-size:11px}.hospitality-ui .hk-v550 .hkr-inspector{padding:18px}.hospitality-ui .hk-v550 .hkr-inspector h2{font-size:28px}.hospitality-ui .hk-v550 .hkr-facts dt{font-size:11px}.hospitality-ui .hk-v550 .hkr-facts dd{font-size:13px}.hospitality-ui .hk-v550 .hk-job{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:14px!important}.hospitality-ui .hk-v550 .hk-job-assignee{grid-column:2;grid-row:auto}.hospitality-ui .hk-v550 .hk-job-actions{grid-column:1/-1;grid-row:auto}.hospitality-ui .hk-v550 .hkw-overview{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hospitality-ui .hk-v550 .hkw-overview>div{padding:0;border:0}.hospitality-ui .hkw-modal .modal-body{padding:16px}.hospitality-ui .hkw-modal .modal-head{padding:16px}.hospitality-ui .hkw-modal .modal-head h2{font-size:22px}.hospitality-ui .hkw-modal .modal-actions{padding:12px 16px}.hospitality-ui .hkw-modal input:not([type=checkbox]):not([type=file]){min-height:44px;height:44px;font-size:16px}.hospitality-ui .hkw-modal .yotta-select-trigger{min-height:44px;height:44px;font-size:16px}.hospitality-ui.application-v4 .hkw-history-modal .form-grid{grid-template-columns:1fr 1fr}.hospitality-ui .hkw-history-row{grid-template-columns:1fr 1fr;gap:6px}.hospitality-ui .hkw-history-row>div{grid-column:1/-1}.hospitality-ui .hkw-allocation-modal .hkw-room-choices{grid-template-columns:repeat(auto-fill,minmax(94px,1fr))}.hospitality-ui .hkw-allocation-modal .hkw-room-choices label{min-height:48px}}
@media(prefers-reduced-motion:reduce){.hospitality-ui .hk-v550 .hkr-room{transition:none}.hospitality-ui .hk-v550 .hkr-room:hover{transform:none}}

.hospitality-ui .hkw-allocation-modal .hkw-room-choices{align-content:start;grid-auto-rows:min-content;row-gap:7px}
.hospitality-ui .hkw-allocation-modal .hkw-room-choices label{margin:0!important;min-height:50px;align-self:start}
.hospitality-ui .hkw-task-modal .hk-task-modal{gap:14px}
.hospitality-ui .hkw-task-modal .hk-task-modal-intro{margin:0}
.hospitality-ui .hkw-task-modal .hk-task-presets{margin:0}
.hospitality-ui .hkw-task-modal .hk-field-assignee{grid-column:1/-1}
.hospitality-ui .hkw-modal.hkw-task-modal .hk-task-flags-panel{display:block}
.hospitality-ui .hkw-modal.hkw-task-modal .hk-task-flags-panel>summary{padding:10px 12px}
.hospitality-ui .hkw-dispatch-modal .warning-panel{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:14px}
.hospitality-ui .hkw-dispatch-modal .warning-panel p{font-size:12px;color:var(--text-secondary);margin:6px 0 0}
.hospitality-ui .hkw-dispatch-modal .hk-dispatch-summary{font-size:12px;padding:12px 0}
.hospitality-ui .hkw-dispatch-modal table{font-size:12px}
.hospitality-ui .hkw-dispatch-modal .hk-dispatch-blocked{border:1px solid var(--border);border-radius:9px;padding:12px;margin-top:12px}
.hospitality-ui .hkw-dispatch-modal .hk-dispatch-blocked summary{font-size:12px;cursor:pointer}
.hospitality-ui .hkw-dispatch-modal .hk-dispatch-blocked p{font-size:12px;line-height:1.5}
@media(max-width:700px){.hospitality-ui .hk-v550 .hkr-back{min-height:44px}.hospitality-ui .hk-v550 .hkr-activity{display:block}}
@media(min-width:1500px){.hospitality-ui .hk-v550 .hkr-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
.hospitality-ui .hkw-modal label:has(>input[name=enabled]){grid-column:1/-1;display:flex;flex-direction:row;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);background:var(--surface-2);border-radius:9px}

@keyframes hkw-panel-in{from{opacity:.7;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
.hospitality-ui .hk-v550 .hkr-inspector{animation:hkw-panel-in .14s ease-out}
@media(prefers-reduced-motion:reduce){.hospitality-ui .hk-v550 .hkr-inspector{animation:none}}
/* 5.51: compact daily recommendation and team workload. */
.hk-v550 .hko-livebar{display:flex;align-items:center;gap:12px;margin:0 0 16px}.hko-livebar>[data-hko-next-slot]{flex:1;min-width:0}.hko-refresh{margin-left:auto;flex:none}.hko-next{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.hko-next>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.hko-next small{color:var(--muted);font-size:12px}.hko-next strong{font-size:16px}.hko-next span{color:var(--muted);font-size:13px}.hko-room-priority{font-size:10px;line-height:1.3;opacity:.9;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hko-room-focus{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-weight:600}.hk-v550 .hko-team{padding:20px}.hko-team .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.hko-team h2{font-family:inherit;font-size:19px;margin:0}.hko-team small{color:var(--muted);font-size:12px}.hko-team-head{display:grid;grid-template-columns:minmax(130px,1.3fr) repeat(4,minmax(65px,.6fr)) minmax(190px,1.5fr);align-items:center;gap:12px}.hko-person{display:grid;grid-template-columns:minmax(130px,1.3fr) repeat(4,minmax(65px,.6fr)) minmax(190px,1.5fr);align-items:center;gap:12px}.hko-team-head{font-size:12px;color:var(--muted);padding:0 12px 10px}.hko-team-head>span:not(:first-child){text-align:center}.hko-person{padding:14px 12px;border-top:1px solid var(--border);min-width:0}.hko-person-name{display:flex;flex-direction:column;gap:4px;overflow-wrap:anywhere}.hko-person-count{text-align:center}.hko-person-count>span{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.hko-person-count small{display:none}.hko-person-action{text-align:right}.hko-transfer-rooms{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;border:1px solid var(--border);border-radius:12px;margin-top:16px;max-height:280px;overflow:auto;padding:12px}.hko-transfer-rooms label{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;background:var(--surface)}.hko-transfer-rooms input{width:18px;height:18px;flex:none}.hko-transfer-rooms small{display:block;color:var(--muted);font-size:11px}
@media(max-width:900px){.hko-team-head{display:none}.hko-person{grid-template-columns:repeat(4,1fr);gap:12px}.hko-person-name{grid-column:1/-1;text-align:left}.hko-person-action{grid-column:1/-1;text-align:left}.hko-person-count small{display:block}.hko-team .section-head{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.hk-v550 .hko-livebar{gap:8px;align-items:flex-start}.hko-next{align-items:flex-start;flex-direction:column;gap:10px;padding:12px}.hko-next>div{gap:4px 10px}.hko-next small{width:100%}.hko-next .btn{width:100%}.hko-refresh{font-size:11px!important;padding:8px!important;min-height:36px!important}.hk-v550 .hko-team{padding:14px}.hko-person-count>span{font-size:20px}.hko-person-count small{font-size:10px}}
.hkw-modal .push-choice{display:flex;align-items:center;gap:12px;padding:10px 0;font-size:14px}.hkw-modal .push-choice input{width:18px;height:18px;flex:none}.hkw-modal [data-push-status]{font-size:14px;line-height:1.6}.hkw-modal [data-push-enable]{min-height:40px}.hkw-modal [data-push-disable]{min-height:40px}.hkw-modal [data-push-test]{min-height:40px}
.push-diagnostics{margin:14px 0;padding:12px;border:1px solid var(--border);border-radius:12px;font-size:13px}.push-diagnostics summary{cursor:pointer;font-weight:600}.push-diagnostics>small{display:block;margin-top:12px;color:var(--muted);line-height:1.5}.push-device-facts{margin:12px 0;display:grid;gap:8px}.push-device-facts>div{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr);gap:10px;padding:7px 0;border-bottom:1px solid var(--border)}.push-device-facts dt{color:var(--muted)}.push-device-facts dd{margin:0;overflow-wrap:anywhere}.push-device-facts small{display:block;color:var(--muted);font-size:11px;margin-top:4px}@media(max-width:560px){.push-device-facts>div{grid-template-columns:1fr;gap:4px}}

/* 5.78: natural-height room card; one page scroll, no nested scroll region. */
.hospitality-ui .hk-v550 .hkr-layout{grid-template-columns:minmax(0,1fr) clamp(296px,28vw,360px);align-items:start}
.hospitality-ui .hk-v550 .hkr-inspector{display:block;position:static;max-height:none;height:auto;overflow:visible;padding:18px;scrollbar-gutter:auto}
.hospitality-ui .hk-v550 .hkr-inspector>header{margin:0;padding:0}
.hospitality-ui .hk-v550 .hkr-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.hospitality-ui .hk-v550 .hkr-inspector>header h2{margin:0;font-size:25px;line-height:1.2}
.hospitality-ui .hk-v550 .hkr-status-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:8px;font-size:11px;font-weight:600;line-height:1.3;max-width:100%}
.hospitality-ui .hk-v550 .hkr-status-pill .ui-icon{width:14px;height:14px;flex:none}
.hospitality-ui .hk-v550 .hkr-status-pill{background:var(--hkr-tone);color:var(--hkr-card-text)}
.hospitality-ui .hk-v550 .hkr-inspector>header .hkr-room-meta{margin:9px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12px;line-height:1.5;color:var(--text-secondary)}
.hospitality-ui .hk-v550 .hkr-room-meta>span{display:inline-flex;align-items:center;gap:5px}
.hospitality-ui .hk-v550 .hkr-room-meta .ui-icon{width:14px;height:14px}
.hospitality-ui .hk-v550 .hkr-admin-clean{width:100%;min-height:42px;justify-content:center;font-size:13px;margin-top:15px}
.hospitality-ui .hk-v550 .hkr-admin-hint{display:block;margin-top:6px;font-size:11px;text-align:center;color:var(--text-secondary);line-height:1.4}
.hospitality-ui .hk-v550 .hkr-inspector-content{overflow:visible;max-height:none;padding:0}
.hospitality-ui .hk-v550 .hkr-facts{margin:16px 0 14px;gap:10px}
.hospitality-ui .hk-v550 .hkr-facts dd{font-size:13px;overflow-wrap:anywhere}
.hospitality-ui .hk-v550 .hkr-duties:empty{display:none}
.hospitality-ui .hk-v550 .hkr-inspector-actions{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}
.hospitality-ui .hk-v550 .hkr-room-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;border:0}
.hospitality-ui .hk-v550 .hkr-room-tools:empty{display:none}.hospitality-ui .hk-v550 .hkr-inspector-actions:has(>.hkr-room-tools:empty){display:none}
.hospitality-ui .hk-v550 .hkr-room-tools .btn{min-width:0;width:100%;justify-content:center}
.hospitality-ui .hk-v550 .hkr-secondary{border-top:1px solid var(--border);margin-top:14px;padding-top:4px}
.hospitality-ui .hk-v550 .hkr-secondary>summary{display:flex;align-items:center;gap:6px;list-style:none;cursor:pointer;padding:10px 0;font-size:12px;color:var(--text-secondary);min-height:40px}
.hospitality-ui .hk-v550 .hkr-secondary>summary::-webkit-details-marker{display:none}
.hospitality-ui .hk-v550 .hkr-secondary>summary .ui-icon{width:15px;height:15px;transition:transform .15s ease}
.hospitality-ui .hk-v550 .hkr-secondary[open]>summary .ui-icon{transform:rotate(180deg)}
.hospitality-ui .hk-v550 .hkr-secondary .hkr-activity{display:block}
.hospitality-ui .hk-v550 .hkr-inspector .hk-job-more>.toolbar{position:static;width:100%;min-width:0;box-shadow:none;margin-top:8px;flex-wrap:wrap}
@media(max-width:900px){.hospitality-ui .hk-v550 .hkr-layout{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.hospitality-ui .hk-v550 .hkr-secondary>summary .ui-icon{transition:none}}
/* 5.84: stable tile rows and a detail panel aligned to the first room row. */
.hospitality-ui .hk-v550 .hkr-floor h2{height:20px;min-height:20px;margin:0 0 10px;box-sizing:border-box}
.hospitality-ui .hk-v550 .hkr-grid{align-items:stretch;grid-auto-rows:minmax(164px,auto)}
.hospitality-ui .hk-v550 .hkr-room{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:28px 32px minmax(16px,1fr) 20px 24px;gap:4px;align-items:center;min-height:164px;box-sizing:border-box}
.hospitality-ui .hk-v550 .hkr-room-top{grid-row:1;align-self:start}
.hospitality-ui .hk-v550 .hkr-room-state{grid-row:2;min-height:0;align-self:start;margin:0;line-height:1.3}
.hospitality-ui .hk-v550 .hkr-room>.hko-room-priority{grid-row:3;align-self:center;margin:0}
.hospitality-ui .hk-v550 .hkr-room-occupancy{grid-row:4;align-self:center;min-height:20px;margin:0}
.hospitality-ui .hk-v550 .hkr-room-assignee{grid-row:5;align-self:center;height:24px;min-height:24px;margin:0;line-height:1.3}
.hospitality-ui .hk-v550 .hkr-room-assignee .hkr-initials{display:inline-flex;align-items:center;justify-content:center;flex:none}
@media(min-width:901px){.hospitality-ui .hk-v550 .hkr-inspector{margin-top:30px}}
@media(max-width:900px){.hospitality-ui .hk-v550 .hkr-inspector{margin-top:0}}

/* assets/ui-housekeeping-display.css */
/* 5.85: unified Housekeeping display. Business statuses and permissions are unchanged. */
body.hospitality-ui.application-v4 .hk-v550{max-width:none;min-width:0;--hkr-room-min:158px}
body.hospitality-ui.application-v4 .hk-v550 .hk-page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 18px!important;flex-wrap:wrap}
body.hospitality-ui.application-v4 .hk-v550 .hk-page-head>div:first-child{flex:1 1 330px;min-width:0;width:auto}
body.hospitality-ui.application-v4 .hk-v550 .hk-page-head h1{font-size:clamp(26px,2.2vw,34px)!important;line-height:1.15!important;margin:0!important;max-width:none}
body.hospitality-ui.application-v4 .hk-v550 .hk-head-actions{flex:0 1 auto;gap:6px;justify-content:flex-end}
body.hospitality-ui.application-v4 .hk-v550 .hk-head-actions .btn .ui-icon{width:16px;height:16px}
body.hospitality-ui.application-v4 .hk-v550 .hk-daily-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 0 12px;margin:0 0 16px;border-bottom:1px solid var(--border)}
body.hospitality-ui.application-v4 .hk-v550 .hkr-pool-link{border-color:var(--border);background:var(--surface-1)}
body.hospitality-ui.application-v4 .hk-v550 .hkw-tab-count{min-width:23px;height:23px;border-radius:7px;background:var(--surface-3);font-size:11px}
/* Keep the recommendation slot for workers; don't reserve a blank row for managers. */
body.hospitality-ui.application-v4 .hk-v550 .hko-livebar:has(>[data-hko-next-slot]:empty):not(:has([data-hko-refresh])){display:none}
body.hospitality-ui.application-v4 .hk-v550 .hkr-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:13px 16px;align-items:center;padding:15px;margin:0 0 22px;border-radius:13px;border:1px solid var(--border);background:var(--surface-1)}
body.hospitality-ui.application-v4 .hk-v550 .hkr-find{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(150px,1fr);max-width:580px;width:100%;gap:10px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-find label{display:block;min-width:0;margin:0}
body.hospitality-ui.application-v4 .hk-v550 .hkr-find input{margin:0;height:40px;min-height:40px;font-size:13px;width:100%;background:var(--surface-2);border-radius:9px}body.hospitality-ui.application-v4 .hk-v550 .hkr-find .yotta-select-trigger{margin:0;height:40px;min-height:40px;font-size:13px;width:100%;background:var(--surface-2);border-radius:9px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;grid-column:2;grid-row:1}
body.hospitality-ui.application-v4 .hk-v550 .hkr-toolbar-actions .btn{margin:0}
body.hospitality-ui.application-v4 .hk-v550 .hkr-legend{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-start;align-items:center;border-top:1px solid var(--border);padding-top:12px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-legend button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:7px 11px;font-size:12px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text-secondary)}
body.hospitality-ui.application-v4 .hk-v550 .hkr-legend button[aria-pressed=true]{border-color:var(--primary-border);background:var(--primary-soft);color:var(--text-primary)}
body.hospitality-ui.application-v4 .hk-v550 .hkr-legend [data-hkr-count-tone]{font-size:11px;opacity:1;min-width:15px;color:var(--text-primary);font-weight:600}
body.hospitality-ui.application-v4 .hk-v550 .hkr-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,27vw,360px);gap:22px;align-items:start}
body.hospitality-ui.application-v4 .hk-v550 .hkr-floor{margin:0 0 24px;padding:0 0 20px;border-bottom:1px solid var(--border)}
body.hospitality-ui.application-v4 .hk-v550 .hkr-floor:last-of-type{padding-bottom:0;border-bottom:0}
body.hospitality-ui.application-v4 .hk-v550 .hkr-floor h2{height:20px;min-height:20px;display:flex;align-items:center;gap:9px;font-family:var(--font-ui,Arial,sans-serif);font-size:12px;font-weight:650;color:var(--text-secondary);margin:0 0 10px;line-height:20px;letter-spacing:.06em}
body.hospitality-ui.application-v4 .hk-v550 [data-hkr-floor-count]{height:21px;min-width:23px;border-radius:6px;font-size:11px;padding:0 6px;background:var(--surface-1);color:var(--text-primary)}
body.hospitality-ui.application-v4 .hk-v550 .hkr-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(158px,auto);gap:12px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-room{min-height:158px;padding:13px;grid-template-rows:28px 32px minmax(12px,1fr) 20px 24px;gap:4px;border-radius:12px;border:1px solid #ffffff1f;box-shadow:none;transition:filter 150ms,border-color 150ms,outline-color 150ms}
body.hospitality-ui.application-v4 .hk-v550 .hkr-room:hover{transform:none;box-shadow:none;filter:brightness(1.06)}
body.hospitality-ui.application-v4 .hk-v550 .hkr-room[aria-pressed=true]{outline:2px solid var(--brand-gold);outline-offset:2px;border-color:var(--brand-gold)}
body.hospitality-ui.application-v4 .hk-v550 .hkr-room:focus-visible{outline:3px solid var(--brand-gold);outline-offset:3px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-room-number{font-size:26px;font-weight:700;letter-spacing:-.025em;line-height:28px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-room-state{font-size:12px;line-height:1.3;font-weight:600;min-height:0}
body.hospitality-ui.application-v4 .hk-v550 .hkr-room-occupancy{font-size:11px;line-height:20px;gap:6px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-room-assignee{height:24px;min-height:24px;font-size:11px;gap:6px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-room .hkr-initials{width:21px;height:21px;font-size:9px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-count{font-size:12px;color:var(--text-secondary);margin:0 0 12px}
/* Natural-height detail panel: the page remains the only vertical scroll region. */
body.hospitality-ui.application-v4 .hk-v550 .hkr-inspector{margin-top:30px;border-radius:14px;padding:20px;background:var(--surface-1);border:1px solid var(--border);box-shadow:none;max-height:none;overflow:visible}
body.hospitality-ui.application-v4 .hk-v550 .hkr-title-row{gap:10px;align-items:center}
body.hospitality-ui.application-v4 .hk-v550 .hkr-inspector>header h2{font-size:27px;line-height:1.15}
body.hospitality-ui.application-v4 .hk-v550 .hkr-status-pill{font-size:11px;padding:7px 9px;border:1px solid #ffffff12}
body.hospitality-ui.application-v4 .hk-v550 .hkr-room-meta{font-size:12px;gap:6px 10px;margin-top:10px;line-height:1.5}
body.hospitality-ui.application-v4 .hk-v550 .hkr-facts{grid-template-columns:1fr 1fr;gap:10px;margin:16px 0;padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-facts dt{font-size:11px;color:var(--text-secondary)}
body.hospitality-ui.application-v4 .hk-v550 .hkr-facts dd{margin:3px 0 0;font-size:13px;font-weight:600}
body.hospitality-ui.application-v4 .hk-v550 .hkr-duty{padding-top:13px;margin-bottom:14px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-duty-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:5px;margin-bottom:8px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-duty-heading strong{font-size:13px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-duty-heading small{font-size:11px;color:var(--text-secondary)}
body.hospitality-ui.application-v4 .hk-v550 .hkr-duty .toolbar{gap:7px;align-items:stretch}
body.hospitality-ui.application-v4 .hk-v550 .hkr-admin-clean{min-height:42px;font-size:12px;margin-top:16px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-room-tools{gap:8px}
body.hospitality-ui.application-v4 .hk-v550 .hkr-secondary{margin-top:14px;padding-top:4px}
body.hospitality-ui.application-v4 .hk-v550>.hk-secondary{padding:12px 15px;border:1px solid var(--border);border-radius:10px;background:var(--surface-1);margin:16px 0 0}
body.hospitality-ui.application-v4 .hk-v550>.hk-secondary>summary{font-size:12px;cursor:pointer}
@media(min-width:1200px){body.hospitality-ui.application-v4 .hk-v550 .hkr-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:1600px){body.hospitality-ui.application-v4 .hk-v550 .hkr-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1000px) and (min-width:901px){body.hospitality-ui.application-v4 .hk-v550 .hkr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){body.hospitality-ui.application-v4 .hk-v550 .hkr-layout{grid-template-columns:minmax(0,1fr)}body.hospitality-ui.application-v4 .hk-v550 .hkr-inspector{margin-top:0}body.hospitality-ui.application-v4 .hk-v550 .hkr-grid{grid-template-columns:repeat(4,minmax(0,1fr))}body.hospitality-ui.application-v4 .hk-v550 .hkr-controls{gap:12px}body.hospitality-ui.application-v4 .hk-v550 .hkr-find{max-width:none;grid-template-columns:minmax(135px,1fr) minmax(125px,1fr)}}
@media(max-width:700px){
 body.hospitality-ui.application-v4 .hk-v550 .hk-page-head{margin:0 0 14px!important;gap:12px;align-items:flex-start}
 body.hospitality-ui.application-v4 .hk-v550 .hk-page-head>div:first-child{flex:1 1 100%;width:100%}
 body.hospitality-ui.application-v4 .hk-v550 .hk-page-head h1{font-size:27px!important}
 body.hospitality-ui.application-v4 .hk-v550 .hk-head-actions{width:100%;justify-content:flex-start;gap:5px}
 body.hospitality-ui.application-v4 .hk-v550 .hk-daily-tabs{gap:4px;padding-bottom:10px;margin-bottom:12px}
 body.hospitality-ui.application-v4 .hk-v550 .hk-daily-tabs>.btn{gap:5px}
 body.hospitality-ui.application-v4 .hk-v550 .hk-daily-tabs .hkr-pool-link{margin-left:0!important}
 body.hospitality-ui.application-v4 .hk-v550 .hkr-controls{grid-template-columns:minmax(0,1fr);padding:12px;gap:10px;margin-bottom:18px}
 body.hospitality-ui.application-v4 .hk-v550 .hkr-find{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
 body.hospitality-ui.application-v4 .hk-v550 .hkr-find input{font-size:16px;height:44px;min-height:44px}body.hospitality-ui.application-v4 .hk-v550 .hkr-find .yotta-select-trigger{font-size:16px;height:44px;min-height:44px}
 body.hospitality-ui.application-v4 .hk-v550 .hkr-toolbar-actions{grid-column:1;grid-row:2;justify-content:flex-end}
 body.hospitality-ui.application-v4 .hk-v550 .hkr-legend{grid-column:1;grid-row:3;gap:4px;padding-top:10px}
 body.hospitality-ui.application-v4 .hk-v550 .hkr-legend button{min-height:40px;font-size:11px;padding:7px 8px;gap:5px}
 body.hospitality-ui.application-v4 .hk-v550 .hkr-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 body.hospitality-ui.application-v4 .hk-v550 .hkr-room{min-height:158px;padding:13px}
 body.hospitality-ui.application-v4 .hk-v550 .hkr-inspector{padding:17px}
 body.hospitality-ui.application-v4 .hk-v550 .hkr-back{min-height:42px;margin-bottom:8px}
}
@media(prefers-reduced-motion:reduce){body.hospitality-ui.application-v4 .hk-v550 .hkr-room{transition:none}}

/* assets/ui-checkout-settlement.css */
.checkout-wizard{display:grid;gap:20px;min-width:0}.checkout-wizard-context{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.checkout-wizard-context span{color:var(--text-muted,#a7bbb1)}.checkout-wizard small{color:var(--text-muted,#a7bbb1)}.checkout-wizard-steps{display:flex;list-style:none;gap:10px;padding:0;margin:0}.checkout-wizard-steps li{flex:1;display:flex;align-items:center;gap:8px;padding:12px;border-bottom:2px solid var(--border,#345043);color:var(--text-muted,#a7bbb1)}.checkout-wizard-steps b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--surface-2,#203c30)}.checkout-wizard-steps .active{color:var(--text-primary,#edf1e6);border-color:var(--accent,#e8be63)}.checkout-document-modes{border:0;padding:0;display:flex;gap:10px;flex-wrap:wrap}.checkout-document-modes legend{margin-bottom:12px;font-weight:600}.checkout-document-modes label{flex:1;min-width:145px;position:relative;display:flex;gap:8px;padding:14px;border:1px solid var(--border,#345043);border-radius:12px;cursor:pointer;transition:background .16s,border-color .16s}.checkout-document-modes label:has(input:checked){background:var(--surface-2,#203c30);border-color:var(--accent,#e8be63)}.checkout-wizard input[type=radio]{width:18px!important;height:18px!important;min-height:0!important;flex-shrink:0;accent-color:var(--accent,#e8be63);margin:0}.checkout-wizard input[type=checkbox]{width:18px!important;height:18px!important;min-height:0!important;flex-shrink:0;accent-color:var(--accent,#e8be63);margin:0}.checkout-draft-note{background:var(--surface-2,#203c30);border:1px solid var(--border,#345043);padding:14px 16px;border-radius:12px;font-size:14px;line-height:1.5}.checkout-line-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.checkout-line{display:flex;justify-content:space-between;align-items:center;gap:12px}.checkout-payment-part header{display:flex;justify-content:space-between;align-items:center;gap:12px}.checkout-review-total{display:flex;justify-content:space-between;align-items:center;gap:12px}.checkout-review-lines>div{display:flex;justify-content:space-between;align-items:center;gap:12px}.checkout-line-list{border:1px solid var(--border,#345043);border-radius:12px;overflow:hidden}.checkout-line{padding:14px;border-bottom:1px solid var(--border,#345043);cursor:pointer}.checkout-line:last-child{border:0}.checkout-line span{flex:1}.checkout-line small{display:block;margin-top:4px}.checkout-review-total small{display:block;margin-top:4px}.checkout-advance{display:grid;gap:8px;max-width:400px}.checkout-money-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.checkout-money-summary>div{display:grid;gap:6px;padding:14px;background:var(--surface-2,#203c30);border-radius:12px}.checkout-money-summary strong{font-size:23px}.checkout-money-summary span{font-size:13px;color:var(--text-muted,#a7bbb1)}.checkout-payment-parts{display:grid;gap:14px}.checkout-payment-part{border:1px solid var(--border,#345043);border-radius:14px;padding:18px;display:grid;gap:16px}.checkout-review-layout>section{border:1px solid var(--border,#345043);border-radius:14px;padding:18px;display:grid;gap:16px}.checkout-joint{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px}.checkout-confirm-money{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px}.checkout-review-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.checkout-review-layout>section{align-content:start}.checkout-review-layout h3{margin:0;font-size:18px}.checkout-review-total{border-top:1px solid var(--border,#345043);padding-top:12px}.checkout-review-lines{display:grid;gap:10px}.checkout-advanced{justify-self:start;background:none;border:0;color:var(--text-muted,#a7bbb1);text-decoration:underline;padding:0;cursor:pointer}.checkout-inline-error{color:var(--danger,#f1a797)}.checkout-inline-error:empty{display:none}.checkout-wizard-form .checkout-back{justify-self:start}@media(max-width:640px){.checkout-review-layout{grid-template-columns:1fr}.checkout-wizard-steps li{font-size:13px;padding:8px 0;gap:5px}.checkout-money-summary{gap:6px}.checkout-money-summary>div{padding:10px}.checkout-money-summary strong{font-size:19px}.checkout-document-modes label{min-width:100%;padding:12px}.checkout-payment-part{padding:14px}.checkout-wizard-context{display:grid}}

.checkout-wizard-form.modal.wide{width:min(940px,calc(100vw - 32px))}.checkout-wizard{gap:14px}.checkout-wizard .form-grid{margin:0;gap:12px}.checkout-wizard .form-grid label{margin:0;gap:6px}.checkout-wizard .checkout-line{padding:10px 14px}.checkout-wizard .checkout-line-heading{margin:0}@media(max-width:640px){.checkout-wizard-form.modal.wide{width:100%;max-width:100%}}

.checkout-existing-documents{border:1px solid var(--border);border-radius:12px;padding:14px 16px;background:var(--surface-2);display:grid;gap:10px}.checkout-existing-documents h3{font-size:15px;margin:0}.checkout-existing-documents p{font-size:13px;margin:0;color:var(--text-muted)}.checkout-existing-documents>div{display:flex;justify-content:space-between;gap:12px;padding-top:10px;border-top:1px solid var(--border)}.checkout-existing-documents>div>span:last-child{text-align:right}.checkout-existing-documents small{display:block;margin-top:3px}.checkout-new-doc{display:grid!important;gap:7px;border-bottom:1px solid var(--border);padding-bottom:10px}

.checkout-registration-list{display:grid;gap:12px}.checkout-registration-list>section{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.checkout-registration-list p{margin:6px 0 0;color:var(--text-muted);font-size:14px;line-height:1.5}.checkout-registration-list .btn{flex-shrink:0}@media(max-width:540px){.checkout-registration-list>section{align-items:stretch;flex-direction:column}}

.checkout-recipient-section{display:grid;gap:12px}.checkout-recipient-section h3{font-size:16px;margin:0}.checkout-wizard .form-grid label.checkout-vat-registration{display:flex;align-items:center;gap:10px;align-self:center;cursor:pointer;font-size:14px}.checkout-issuer{padding:12px 14px;border:1px solid var(--border);border-radius:12px;display:grid;gap:5px}.checkout-issuer strong{font-size:13px}.checkout-vat-summary{display:grid;gap:10px;border-top:1px solid var(--border);padding-top:12px}.checkout-vat-summary h4{margin:0;font-size:14px}.checkout-vat-summary>div{display:grid;grid-template-columns:auto 1fr auto;gap:8px;font-size:13px}.checkout-vat-summary span{color:var(--text-muted)}@media(max-width:640px){.checkout-vat-summary>div{grid-template-columns:1fr auto}.checkout-vat-summary span{grid-column:1/-1;grid-row:2}}

/* assets/ui-controls-polish.css */
/* Shared selection controls: text-field sizing must never apply to checkboxes/radios. */
body :is(input[type="checkbox"],input[type="radio"]){-webkit-appearance:none;appearance:none;box-sizing:border-box;display:inline-block;vertical-align:middle;width:18px!important;min-width:18px!important;max-width:18px!important;height:18px!important;min-height:18px!important;max-height:18px!important;flex:0 0 18px!important;padding:0!important;margin:0;border:1.5px solid var(--text-secondary,#7d978a);background-color:var(--surface-1,#172e25);color:var(--primary,#5f9d7b);box-shadow:none;cursor:pointer;transition:background-color 140ms ease,border-color 140ms ease,box-shadow 140ms ease}
body input[type="checkbox"]{border-radius:5px}
body input[type="radio"]{border-radius:50%}
body input[type="checkbox"]:checked{border-color:var(--primary,#287a57);background:var(--primary,#287a57) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='m4 9 3.2 3.2L14 5.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px 16px no-repeat}
body input[type="checkbox"]:indeterminate{border-color:var(--primary,#287a57);background:var(--primary,#287a57) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4.5 9h9' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/16px 16px no-repeat}
body input[type="radio"]:checked{border-color:var(--primary,#287a57);background:radial-gradient(circle,var(--primary,#287a57) 0 4px,transparent 4.5px) var(--surface-1,#172e25)}
body :is(input[type="checkbox"],input[type="radio"]):hover:not(:disabled){border-color:var(--primary,#287a57)}
body :is(input[type="checkbox"],input[type="radio"]):focus-visible{outline:2px solid var(--primary,#287a57);outline-offset:3px;box-shadow:none}
body :is(input[type="checkbox"],input[type="radio"]):disabled{opacity:.45;cursor:not-allowed}
/* Shared simple label rows; composite option cards retain their own layout. */
body :is(.device-session-choice,.push-choice,.checkline,.check,.checkin-permanent,.assistant-mode-toggle){display:flex;flex-direction:row;align-items:center;gap:10px;min-width:0;line-height:1.45;text-align:left}
body .device-session-choice{width:fit-content;max-width:100%;min-height:40px;padding:7px 2px;margin:4px 0 8px;border:0;background:transparent;box-shadow:none;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer}
body .device-session-choice span{min-width:0;color:inherit}
body .device-session-choice:has(input:checked){color:var(--text-primary)}
body :is(.push-choice,.checkline,.check):has(>input:disabled){cursor:not-allowed}
body :is(.push-choice,.checkline,.check)>span{min-width:0}
/* Dashboard attention: one compact list, followed by hotel-wide counters. */
body.hospitality-ui .dashboard-attention{padding:18px 20px;background:var(--surface-1);border:1px solid var(--border);border-radius:16px}
body.hospitality-ui .dashboard-attention>.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px;padding:0 0 12px;border-bottom:1px solid var(--border)}
.dashboard-attention-heading{display:flex;align-items:center;gap:10px;min-width:0}.dashboard-attention-heading>svg{width:18px;height:18px;color:var(--text-secondary)}
body.hospitality-ui .dashboard-attention>.section-head h2{margin:0;font-family:var(--font-ui);font-size:16px;font-weight:650;line-height:1.35}
.dashboard-attention-scope{font-size:12px;color:var(--text-muted);white-space:nowrap}
body.hospitality-ui .dashboard-attention-card{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;background:transparent;border:0;border-bottom:1px solid var(--border);border-radius:0;box-shadow:none}
body.hospitality-ui .dashboard-attention-card:last-of-type{border-bottom:0}
.dashboard-attention-case-icon{display:grid;place-items:center;width:36px;height:36px;background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border);border-radius:10px}.dashboard-attention-case-icon svg{width:19px;height:19px}
.dashboard-attention-case-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
body.hospitality-ui .dashboard-attention-case-head strong{font-size:14px;font-weight:650;color:var(--text-primary);line-height:1.4}
.dashboard-attention-status{display:inline-flex;align-items:center;min-height:23px;padding:3px 7px;border-radius:6px;background:var(--warning-soft);color:var(--warning);font-size:11px;font-weight:600;line-height:1.25;letter-spacing:0;text-transform:none}
body.hospitality-ui .dashboard-attention-card p{margin:5px 0 0;font-size:12px;color:var(--text-muted);line-height:1.45}
body.hospitality-ui .dashboard-attention-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
body.hospitality-ui .dashboard-attention-actions .btn{white-space:normal}
body.hospitality-ui .dashboard-attention-actions .dashboard-res-open{background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border)}
body.hospitality-ui .dashboard-attention-actions .dashboard-res-open:hover{border-color:var(--primary);background:var(--surface-hover)}
body.hospitality-ui .dashboard-attention-summary-grid{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
body.hospitality-ui .dashboard-attention-summary{display:flex;align-items:center;gap:9px;flex:1 1 180px;min-width:0;min-height:44px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;transition:background-color 140ms ease,border-color 140ms ease}
body.hospitality-ui .dashboard-attention-summary:hover{background:var(--surface-hover);border-color:var(--primary)}
body.hospitality-ui .dashboard-attention-summary svg{width:17px;height:17px;flex:0 0 17px;color:var(--text-secondary)}
body.hospitality-ui .dashboard-attention-summary>span{min-width:0;flex:1;font-size:12px;line-height:1.35;color:var(--text-secondary)}
body.hospitality-ui .dashboard-attention-summary strong{flex:none;display:grid;place-items:center;min-width:24px;min-height:24px;padding:2px 6px;background:var(--surface-1);border-radius:6px;font-size:13px;color:var(--text-primary)}
@media(max-width:640px){body.hospitality-ui .dashboard-attention{padding:16px}.dashboard-attention-scope{font-size:11px}body.hospitality-ui .dashboard-attention-card{grid-template-columns:32px minmax(0,1fr);gap:10px}.dashboard-attention-case-icon{width:32px;height:32px}body.hospitality-ui .dashboard-attention-actions{grid-column:2;justify-content:flex-start}body.hospitality-ui .dashboard-attention-summary{flex-basis:100%;min-height:44px}}
@media(prefers-reduced-motion:reduce){body :is(input[type="checkbox"],input[type="radio"]){transition:none}body.hospitality-ui .dashboard-attention-summary{transition:none}}
@media(forced-colors:active){body :is(input[type="checkbox"],input[type="radio"]){-webkit-appearance:auto!important;appearance:auto!important;forced-color-adjust:auto;background:revert!important;border:revert!important;box-shadow:none!important}}

/* The mark contrasts with the selected surface in both themes. */
body input[type="checkbox"]{position:relative}
body input[type="checkbox"]:is(:checked,:indeterminate){background-image:none}
body input[type="checkbox"]:is(:checked,:indeterminate)::after{content:"";position:absolute;inset:1px;background:var(--surface-1);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='m4 9 3.2 3.2L14 5.5' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='m4 9 3.2 3.2L14 5.5' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
body input[type="checkbox"]:indeterminate::after{-webkit-mask:none;mask:none;inset:6px 3px;border-radius:1px}
@media(forced-colors:active){body input[type="checkbox"]::after{display:none!important}body :is(#app,#modal-root) .navigation-settings input:is([type=checkbox],[type=radio]){appearance:auto!important;-webkit-appearance:auto!important;background:revert!important;border:revert!important}}

/* assets/ui-invoice-detail.css */
/* Invoice detail uses the application palette; technical checks remain accessible. */
body .invoice-document-modal.modal.wide{width:min(1040px,calc(100vw - 32px))}
.invoice-document-modal .yotta-document-detail{display:grid;gap:16px;min-width:0}
.invoice-document-modal .yotta-doc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin:0}
.invoice-document-modal .yotta-doc-head h2{font-family:inherit;font-size:22px;line-height:1.25;margin:0 0 6px}
.invoice-document-modal .yotta-doc-head p{margin:0;color:var(--text-muted);font-size:13px}
.invoice-document-modal .yotta-checks-overview{display:flex;gap:8px 16px;flex-wrap:wrap;color:var(--text-secondary);font-size:13px}
.invoice-document-modal .yotta-checks-overview>span{display:inline-flex;align-items:center;gap:6px}
.invoice-document-modal .yotta-checks-overview.needs-review{padding:12px;border:1px solid var(--danger);border-radius:10px;color:var(--danger);font-weight:600}
.invoice-document-modal :is(.yotta-document-checks,.yotta-timeline){border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin:0;background:var(--surface-2)}
.invoice-document-modal summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--text-secondary)}
.invoice-document-modal summary:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:3px}
.invoice-document-modal :is(.yotta-integrity-card,.yotta-reconciliation-card){display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-1);color:var(--text-primary)}
.invoice-document-modal :is(.yotta-integrity-card,.yotta-reconciliation-card) small{display:block;margin-top:5px;color:var(--text-muted);overflow-wrap:anywhere}
.invoice-document-modal :is(.yotta-integrity-card,.yotta-reconciliation-card).mismatch{border-color:var(--danger);color:var(--danger)}
.invoice-document-modal :is(.yotta-integrity-card,.yotta-reconciliation-card) code{background:var(--surface-2);border:1px solid var(--border);color:var(--text-secondary);padding:6px;border-radius:6px;overflow-wrap:anywhere}
.invoice-document-modal .yotta-settlement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
.invoice-document-modal .yotta-settlement-grid>div{padding:14px 16px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;min-width:0}
.invoice-document-modal .yotta-settlement-grid span{display:block;font-size:12px;color:var(--text-muted)}
.invoice-document-modal .yotta-settlement-grid strong{display:block;font-size:22px;margin-top:6px;overflow-wrap:anywhere}
.invoice-document-modal .yotta-settlement-grid .is-total{border-color:var(--primary);background:var(--primary-soft)}
.invoice-document-modal .yotta-settlement-grid .is-warning{border-color:var(--danger)}
.invoice-document-modal .yotta-lifecycle-card{margin:0;padding:12px 16px;border:1px solid var(--border);background:var(--surface-2);border-radius:10px}
.invoice-document-modal .yotta-two-col{display:flex;gap:16px;margin:0;flex-wrap:wrap}
.invoice-document-modal .yotta-two-col>section{flex:1;min-width:230px}
.invoice-document-modal .yotta-document-detail h3{font-size:15px;margin:0}
.invoice-document-modal .yotta-history-row{margin-top:10px;padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px}
.invoice-document-modal .yotta-actions{gap:8px;margin:0;padding-top:12px;border-top:1px solid var(--border);flex-wrap:wrap}
@media(max-width:640px){body .invoice-document-modal.modal.wide{width:100%;max-width:100%}.invoice-document-modal .yotta-settlement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-document-modal .yotta-settlement-grid strong{font-size:19px}.invoice-document-modal :is(.yotta-integrity-card,.yotta-reconciliation-card){align-items:flex-start;flex-direction:column}.invoice-document-modal .yotta-doc-head h2{font-size:19px}}
@media(forced-colors:active){.invoice-document-modal .yotta-checks-overview.needs-review{border:1px solid CanvasText}.invoice-document-modal .yotta-settlement-grid>div{border:1px solid CanvasText}}

/* assets/ui-page-flow.css */
/* Stable application chrome; only the prepared workspace participates in page motion. */
html:has(body.application-v4){scrollbar-gutter:stable}
#app #content.page-flow-running{pointer-events:none}
body.hospitality-ui .content.page-flow-managed>:not(.license-banner){animation:none!important}
::view-transition{pointer-events:none;clip-path:inset(var(--page-flow-clip-top,0px) 0 0 var(--page-flow-clip-left,0px))}
::view-transition-group(yotta-workspace){animation:none}
::view-transition-old(yotta-workspace){animation:yotta-workspace-out 180ms cubic-bezier(.2,.8,.2,1) both;mix-blend-mode:normal}
::view-transition-new(yotta-workspace){animation:yotta-workspace-in 180ms cubic-bezier(.2,.8,.2,1) both;mix-blend-mode:normal}
@keyframes yotta-workspace-out{to{opacity:0}}
@keyframes yotta-workspace-in{from{opacity:0}to{opacity:1}}
.page-flow-status{position:fixed;z-index:50;display:flex;align-items:center;gap:10px;max-width:min(340px,calc(100vw - 32px));padding:9px 14px 9px 9px;border:1px solid var(--border);border-radius:14px;background:var(--surface-1);color:var(--text-primary);box-shadow:0 6px 24px rgba(0,0,0,.12);transform:translateX(-50%);font:500 13px/1.4 var(--font-ui);pointer-events:none;animation:page-flow-status-in 140ms ease-out}
.page-flow-brand{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:8px;animation:page-flow-brand-breathe 1400ms ease-in-out infinite}
.page-flow-brand img{display:block;width:28px;height:28px;object-fit:contain}
@keyframes page-flow-status-in{from{opacity:0}to{opacity:1}}
@keyframes page-flow-brand-breathe{0%,100%{opacity:.55}50%{opacity:1}}
.frontdesk-zone-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:130px;color:var(--text-secondary);font:400 13px/1.5 var(--font-ui)}
.frontdesk-zone-loading:before{content:'';width:8px;height:8px;flex:0 0 8px;background:var(--accent-gold,var(--text-secondary));border-radius:50%;animation:page-flow-brand-breathe 1400ms ease-in-out infinite}
@media(prefers-reduced-motion:reduce){::view-transition-old(yotta-workspace){animation:none!important}::view-transition-new(yotta-workspace){animation:none!important}.page-flow-status{animation:none!important}.page-flow-brand{animation:none!important}.frontdesk-zone-loading:before{animation:none!important}}
/* Preserve compact headers when the base900px layout changes flex direction. */
@media(max-width:900px){body.application-v4 .workspace-route.page-flow-managed .page-head{align-items:stretch;flex-wrap:nowrap}body.application-v4 .workspace-route.page-flow-managed .page-head>div:first-child{flex:0 1 auto;width:100%;max-width:100%}body.application-v4 .workspace-route.page-flow-managed .page-head>.toolbar{flex:0 0 auto;width:100%;justify-content:flex-start}}

/* assets/ui-reception-flow.css */
/* Keep the current reservation's primary actions in reach on standard desktop widths. */
body.hospitality-ui .frontdesk-workspace-zone>#frontdesk-detail-zone{grid-column:1;grid-row:1}
body.hospitality-ui .frontdesk-workspace-zone>#frontdesk-actions-zone{grid-column:2;grid-row:1}
@media(max-width:1450px){
 body.hospitality-ui .frontdesk-workspace-zone{grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui .frontdesk-workspace-zone>#frontdesk-actions-zone{grid-column:1;grid-row:1;padding:16px!important}
 body.hospitality-ui .frontdesk-workspace-zone>#frontdesk-detail-zone{grid-column:1;grid-row:2}
 body.hospitality-ui .frontdesk-workspace-zone:has(>#frontdesk-actions-zone[hidden])>#frontdesk-detail-zone{grid-row:1}
 body.hospitality-ui .frontdesk-action-head{margin:0 0 10px;padding:0;border:0}
 body.hospitality-ui .frontdesk-action-head h3{font-size:16px;margin:2px 0}
 body.hospitality-ui .frontdesk-action-head .eyebrow{font-size:10px}
 body.hospitality-ui .frontdesk-action-stack{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}
 body.hospitality-ui .frontdesk-action-stack>*{min-width:0;max-width:100%}
 body.hospitality-ui .frontdesk-action-stack>.btn{flex:1 1 160px;width:auto}
 body.hospitality-ui .frontdesk-action-stack>:is(details[open],.frontdesk-room-picker){flex:1 0 100%}
 body.hospitality-ui .frontdesk-action-stack>details{margin:0}
}

/* assets/ui-rooms-workspace.css */
/* Rooms workspace 5.82: scoped to Rooms; shared housekeeping/calendar cards stay unchanged. */
body.hospitality-ui .rooms-workspace-582{display:block;min-width:0;--rooms-tone:var(--primary);--rooms-fill:24%;--rooms-hover:25%}
body.hospitality-ui .rooms-workspace-582 .page-head{margin-bottom:20px;align-items:center;gap:16px}
body.hospitality-ui .rooms-workspace-582 .page-head h1{font-size:clamp(25px,2.4vw,34px);margin:3px 0 0}
body.hospitality-ui .rooms-workspace-582 .page-head .eyebrow{font-size:10px}
body.hospitality-ui .rooms-workspace-582 .metric-grid.room-truth-summary{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin:0 0 20px}
body.hospitality-ui .rooms-workspace-582 .room-truth-summary .metric{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;min-height:70px;margin:0;padding:12px;background:var(--surface-1);border:1px solid var(--border);text-align:left;cursor:pointer;transition:background-color 150ms,border-color 150ms}
body.hospitality-ui .rooms-workspace-582 .metric:before{display:none}.rooms-workspace-582 .metric:after{display:none}
body.hospitality-ui .rooms-workspace-582 .metric span{color:var(--text-secondary)}
body.hospitality-ui .rooms-workspace-582 .metric strong{color:var(--text-primary)}
body.hospitality-ui .rooms-workspace-582 .metric:hover{background:var(--surface-2)}
body.hospitality-ui .rooms-workspace-582 .metric[aria-pressed=true]{background:var(--primary-soft);border-color:var(--primary)}
body.hospitality-ui .rooms-workspace-582 :is(button,summary,input,select):focus-visible{outline:2px solid var(--primary);outline-offset:3px}
body.hospitality-ui .rooms-workspace-582 .rooms-workspace-tabs{display:flex;gap:6px;margin-bottom:16px;border-bottom:1px solid var(--border);padding-bottom:8px}
body.hospitality-ui .rooms-workspace-582 [data-rooms-tab]{border:0;border-radius:8px;padding:10px 15px;background:transparent;color:var(--text-secondary);font-family:inherit;font-size:13px;font-weight:600;line-height:1.3;cursor:pointer;min-height:40px}
body.hospitality-ui .rooms-workspace-582 [data-rooms-tab][aria-selected=true]{background:var(--primary-soft);color:var(--text-primary)}
body.hospitality-ui .rooms-workspace-582 .rooms-board-panel{padding:18px;border-radius:14px;min-width:0}
body.hospitality-ui .rooms-workspace-582 .rooms-board-panel>.section-head{margin:0 0 14px;padding:0;border:0;align-items:center}
body.hospitality-ui .rooms-workspace-582 .rooms-board-panel h2{font-size:16px;margin:0}
body.hospitality-ui .rooms-workspace-582 .room-board-filters{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(150px,1fr) minmax(120px,.75fr) auto;gap:12px;align-items:end;margin:0 0 18px;padding:0;border:0;background:none}
body.hospitality-ui .rooms-workspace-582 .room-board-filters label{font-size:11px;gap:6px;min-width:0}
body.hospitality-ui .rooms-workspace-582 .room-board-filters :is(input,select){height:42px;min-height:42px;padding:8px 10px;font-size:13px}
body.hospitality-ui .rooms-workspace-582 .room-board-count{padding:0 0 12px;font-size:12px}
body.hospitality-ui .rooms-workspace-582 .room-board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,235px),1fr));gap:12px;align-items:start}
body.hospitality-ui .rooms-workspace-582 .room-board-card{padding:15px;gap:0;border:1px solid color-mix(in srgb,var(--rooms-tone) 65%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--rooms-tone) var(--rooms-fill),var(--surface-1));box-shadow:none;overflow:visible;min-width:0}
body.hospitality-ui .rooms-workspace-582 .room-board-card:hover{background:color-mix(in srgb,var(--rooms-tone) var(--rooms-hover),var(--surface-1));border-color:color-mix(in srgb,var(--rooms-tone) 80%,var(--border))}
body.hospitality-ui .rooms-workspace-582 .room-board-card:before{display:none}
body.hospitality-ui .rooms-workspace-582 .room-state-ready{--rooms-tone:#238755}
body.hospitality-ui .rooms-workspace-582 .room-state-occupied{--rooms-tone:#287BC1}
body.hospitality-ui .rooms-workspace-582 :is(.room-state-dirty,.room-state-linen_pending){--rooms-tone:#BE8525}
body.hospitality-ui .rooms-workspace-582 .room-state-cleaning{--rooms-tone:#168D9C}
body.hospitality-ui .rooms-workspace-582 .room-state-inspection{--rooms-tone:#8863BF}
body.hospitality-ui .rooms-workspace-582 :is(.room-state-housekeeping_issue,.room-state-equipment_issue,.room-state-out_of_order,.room-state-out_of_service,.room-state-discrepancy){--rooms-tone:#C14B52}
body.hospitality-ui .rooms-workspace-582 .room-state-inactive{--rooms-tone:#64716B}
body.hospitality-ui .rooms-workspace-582 .room-board-head{padding:0;border:0;align-items:center;gap:8px}
body.hospitality-ui .rooms-workspace-582 .room-board-number{font-size:25px;line-height:1.15;font-variant-numeric:tabular-nums}
body.hospitality-ui .rooms-workspace-582 .room-board-state{max-width:68%;min-height:24px;padding:4px 7px;font-size:10px;line-height:1.3;color:var(--text-primary);border-color:color-mix(in srgb,var(--rooms-tone) 30%,var(--border));background:color-mix(in srgb,var(--rooms-tone) 15%,var(--surface-1))}
body.hospitality-ui .rooms-workspace-582 .rooms-room-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 8px;color:var(--text-secondary);font-size:11px;line-height:1.5;margin:9px 0}
body.hospitality-ui .rooms-workspace-582 .room-board-guest{display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:38px;padding:0;border:0;background:none;margin:0 0 10px}
body.hospitality-ui .rooms-workspace-582 .room-board-guest strong{font-size:13px}
body.hospitality-ui .rooms-workspace-582 .room-board-guest span{font-size:12px}
body.hospitality-ui .rooms-workspace-582 .room-board-alerts{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 10px}
body.hospitality-ui .rooms-workspace-582 .room-board-alerts>span{font-size:10px;line-height:1.5;color:var(--text-primary);border-radius:5px;padding:3px 6px;background:color-mix(in srgb,var(--rooms-tone) 12%,var(--surface-1));overflow-wrap:anywhere}
body.hospitality-ui .rooms-workspace-582 .rooms-room-details{border-top:1px solid color-mix(in srgb,var(--rooms-tone) 20%,var(--border));margin:0;padding:0}
body.hospitality-ui .rooms-workspace-582 .rooms-room-details summary{display:flex;align-items:center;justify-content:space-between;min-height:36px;padding:8px 0;cursor:pointer;list-style:none;font-size:12px;font-weight:600;color:var(--text-primary)}
body.hospitality-ui .rooms-workspace-582 .rooms-room-details summary::-webkit-details-marker{display:none}
body.hospitality-ui .rooms-workspace-582 .rooms-room-details summary svg{width:16px;height:16px;transition:transform 160ms}
body.hospitality-ui .rooms-workspace-582 .rooms-room-details[open] summary svg{transform:rotate(180deg)}
body.hospitality-ui .rooms-workspace-582 .room-board-dimensions{gap:8px;padding:8px 0 12px;margin:0}
body.hospitality-ui .rooms-workspace-582 .room-board-dimensions>div{display:flex;justify-content:space-between;gap:8px}
body.hospitality-ui .rooms-workspace-582 .room-board-dimensions dt{min-width:0;font-size:11px}
body.hospitality-ui .rooms-workspace-582 .room-board-dimensions dd{font-size:11px}
body.hospitality-ui .rooms-workspace-582 .room-board-actions{margin:0;padding:0 0 10px;border:0;gap:6px;display:flex;flex-wrap:wrap}
body.hospitality-ui .rooms-workspace-582 .room-board-actions .btn{flex:1 1 auto}
body.hospitality-ui .rooms-workspace-582 .rooms-card-links{display:flex;gap:7px;border-top:1px solid color-mix(in srgb,var(--rooms-tone) 20%,var(--border));padding-top:10px}
body.hospitality-ui .rooms-workspace-582 .rooms-card-links .btn{flex:1}
body.hospitality-ui .rooms-workspace-582 [hidden]{display:none!important}
@media(max-width:1100px){body.hospitality-ui .rooms-workspace-582 .metric-grid.room-truth-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){body.hospitality-ui .rooms-workspace-582 .page-head{align-items:flex-start;margin-bottom:16px}body.hospitality-ui .rooms-workspace-582 .page-head .toolbar{flex-wrap:wrap}body.hospitality-ui .rooms-workspace-582 .metric-grid.room-truth-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}body.hospitality-ui .rooms-workspace-582 .room-truth-summary .metric{padding:9px;min-height:65px}body.hospitality-ui .rooms-workspace-582 .room-board-filters{grid-template-columns:1fr 1fr;gap:10px}body.hospitality-ui .rooms-workspace-582 .room-board-filters label:first-child{grid-column:1/-1}body.hospitality-ui .rooms-workspace-582 .room-board-count{grid-column:1/-1;padding:0}body.hospitality-ui .rooms-workspace-582 .rooms-board-panel{padding:13px}body.hospitality-ui .rooms-workspace-582 .rooms-board-panel>.section-head{gap:8px;flex-wrap:wrap}body.hospitality-ui .rooms-workspace-582 .room-board-filters :is(input,select){font-size:16px;min-height:44px;height:44px}body.hospitality-ui .rooms-workspace-582 .rooms-room-details summary{min-height:44px}}
@media(prefers-reduced-motion:reduce){body.hospitality-ui .rooms-workspace-582 *{transition:none!important}}

/* Keep the working inventory within the first desktop viewport. */
body.hospitality-ui .rooms-workspace-582 .page-head .eyebrow{display:none}
body.hospitality-ui .rooms-workspace-582 .room-truth-summary .metric{flex-direction:row;align-items:center;justify-content:space-between;min-height:52px;gap:8px}
body.hospitality-ui .rooms-workspace-582 .room-truth-summary .metric strong{flex-shrink:0}
body.hospitality-ui .rooms-workspace-582 .rooms-board-panel>.section-head{margin-bottom:10px}
body.hospitality-ui .rooms-workspace-582 .rooms-board-panel>.section-head h2{font-size:14px}
@media(max-width:700px){body.hospitality-ui .rooms-workspace-582 .room-truth-summary .metric{flex-direction:column;align-items:flex-start;justify-content:center;min-height:65px;gap:4px}}
/* Room editor: smaller frame and spacing, with one body scroll only when content truly needs it. */
body.hospitality-ui #modal-root .modal:has(.room-equipment-editor){width:min(860px,calc(100vw - 32px))}
body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .modal-head{padding:16px 20px}
body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .modal-head h2{font-size:25px}
body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .modal-body{padding:18px 20px;gap:16px}
body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .form-grid{gap:14px 16px;margin:0 0 16px}
body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .form-grid label{gap:6px}
body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .room-equipment-editor{padding:14px;margin:0;border-radius:10px}
body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .room-equipment-editor>.section-head{margin:0 0 10px;padding:0 0 10px}
body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .room-equipment-editor>.section-head p{display:none}
body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .room-equipment-selected .empty{padding:12px;min-height:0}
body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .modal-actions{padding:14px 20px}
@media(max-width:700px){body.hospitality-ui #modal-root .modal:has(.room-equipment-editor){width:calc(100vw - 20px)}body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .modal-head h2{font-size:22px}body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .modal-body{padding:14px}body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) :is(input,select){font-size:16px;min-height:44px}body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .room-equipment-editor{padding:12px}body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .room-equipment-toolbar{flex-wrap:wrap}body.hospitality-ui #modal-root .modal:has(.room-equipment-editor) .room-equipment-toolbar>label{flex-basis:100%}}

body.hospitality-ui .rooms-workspace-582 .room-truth-summary .metric{box-sizing:border-box}
@media(max-width:700px){
 body.hospitality-ui .rooms-workspace-582 .page-head{flex-direction:row;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}
 body.hospitality-ui .rooms-workspace-582 .page-head h1{font-size:25px}
 body.hospitality-ui .rooms-workspace-582 .page-head .toolbar{flex-shrink:0;margin:0;width:auto}
 body.hospitality-ui .rooms-workspace-582 .room-truth-summary{margin-bottom:14px}
 body.hospitality-ui .rooms-workspace-582 .room-truth-summary .metric{min-height:58px;padding:8px;gap:3px}
 body.hospitality-ui .rooms-workspace-582 .rooms-board-panel>.section-head h2{display:none}
 body.hospitality-ui .rooms-workspace-582 .rooms-board-panel>.section-head .toolbar{gap:6px;margin:0}
 body.hospitality-ui .rooms-workspace-582 .rooms-board-panel>.section-head{margin-bottom:10px}
}
/* Override legacy generic page headers that reserve full-width toolbars on mobile. */
@media(max-width:700px){
 body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582>.page-head{display:flex;flex-wrap:nowrap;align-items:center;margin:0 0 14px!important;padding:0;gap:10px}
 body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582>.page-head>div:first-child{flex:1 1 auto;width:auto;min-width:0}
 body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582>.page-head>.toolbar{flex:0 0 auto;width:auto;min-width:0;padding:0}
 body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582>.page-head h1{font-size:25px!important;line-height:1.15!important}
 body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582 .metric-grid.room-truth-summary .metric{height:66px;min-height:66px;padding:7px 8px;gap:2px;justify-content:center}
 body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582 .room-truth-summary .metric span{min-height:0;margin:0;flex:0 0 auto}
 body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582 .room-truth-summary .metric strong{min-height:0;margin:0;flex:0 0 auto}
}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-filters label{display:flex;flex-direction:column;margin:0;gap:5px}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-filters :is(input,select){margin:0}

body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582>.page-head>div:first-child{flex:1 1 auto;width:auto;min-width:0}
body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582>.page-head>.toolbar{flex:0 0 auto;width:auto;min-width:0}

/* 5.83: distinct full-card state colors, with stronger fills in dark mode. */
html[data-theme="dark"] body.hospitality-ui .rooms-workspace-582{--rooms-fill:38%;--rooms-hover:40%}

/* assets/ui-rooms-display.css */
/* 5.86 Rooms and readiness: aligned floor inventory, application colors. */
body.hospitality-ui.application-v4 .rooms-workspace-582{display:flex;flex-direction:column;gap:0;min-width:0}
body.hospitality-ui.application-v4 .rooms-workspace-582>.page-head{order:1;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px!important}
body.hospitality-ui.application-v4 .rooms-workspace-582>.page-head h1{font-size:clamp(26px,2.2vw,34px)!important;line-height:1.15!important;margin:0}
body.hospitality-ui.application-v4 .rooms-workspace-582>.rooms-workspace-tabs{order:3;margin:0 0 16px;padding:0 0 12px;gap:6px}
body.hospitality-ui.application-v4 .rooms-workspace-582 [data-rooms-tab]{min-height:40px;border:1px solid transparent;border-radius:10px;padding:9px 13px}
body.hospitality-ui.application-v4 .rooms-workspace-582 [data-rooms-tab][aria-selected=true]{border-color:var(--primary-border)}
body.hospitality-ui.application-v4 .rooms-workspace-582>.room-truth-summary{order:2;margin:0 0 16px;gap:8px}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric{min-height:62px;height:auto;padding:10px 12px;gap:7px;align-items:center;flex-direction:row;--metric-tone:var(--primary)}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric span{color:var(--text-primary);min-width:0}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric strong{color:var(--text-primary)}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric[data-room-filter=occupied]{--metric-tone:#287BC1}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric[data-room-filter=ready]{--metric-tone:#238755}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric:is([data-room-filter=dirty],[data-room-filter=linen_pending]){--metric-tone:#BE8525}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric[data-room-filter=cleaning]{--metric-tone:#168D9C}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric[data-room-filter=inspection]{--metric-tone:#8863BF}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric[data-room-filter=blocked]{--metric-tone:#C14B52}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric{background:color-mix(in srgb,var(--metric-tone) 10%,var(--surface-1));border-color:color-mix(in srgb,var(--metric-tone) 35%,var(--border))}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric[aria-pressed=true]{background:color-mix(in srgb,var(--metric-tone) 23%,var(--surface-1));border-color:var(--brand-gold)}
body.hospitality-ui.application-v4 .rooms-workspace-582>.rooms-board-panel{order:4;border:0;background:transparent;padding:0;border-radius:0;box-shadow:none}
body.hospitality-ui.application-v4 .rooms-workspace-582>.rooms-types-panel{order:5}
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-board-panel>.section-head{margin:0;padding:12px 15px 0;background:var(--surface-1);border:1px solid var(--border);border-bottom:0;border-radius:13px 13px 0 0}
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-board-panel>.section-head h2{font-size:13px;color:var(--text-secondary);font-weight:600}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-filters{padding:12px 15px 15px;margin:0 0 22px;gap:12px;background:var(--surface-1);border:1px solid var(--border);border-top:0;border-radius:0 0 13px 13px}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-filters label{font-size:12px}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-filters :is(input,select){height:40px;min-height:40px;border-radius:9px;background:var(--surface-2)}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-count{font-size:12px;margin:0;padding:0 0 12px;white-space:nowrap}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-grid{display:block}
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-floor{margin:0 0 24px;padding:0 0 20px;border-bottom:1px solid var(--border)}
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-floor:last-child{border-bottom:0}
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-floor>h3{display:flex;align-items:center;gap:9px;font-family:var(--font-ui,Arial,sans-serif);font-size:12px;line-height:20px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin:0 0 10px}
body.hospitality-ui.application-v4 .rooms-workspace-582 [data-rooms-floor-count]{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:21px;padding:0 6px;border-radius:6px;background:var(--surface-1);border:1px solid var(--border);font-size:11px;color:var(--text-primary)}
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-floor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,225px),1fr));gap:12px;align-items:start}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-card{display:flex;flex-direction:column;min-height:240px;padding:14px;border-radius:12px;box-sizing:border-box}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-head{height:34px;min-height:34px;gap:8px}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-number{font-size:28px;line-height:32px}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-state{font-size:11px;max-width:68%;padding:5px 7px;line-height:1.3}
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-room-meta{font-size:12px;line-height:18px;min-height:18px;margin:7px 0}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-guest{height:42px;min-height:42px;margin:0 0 10px;overflow-wrap:anywhere}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-guest small{font-size:11px}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-alerts{margin:0 0 10px}
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-room-details{margin-top:auto}
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-room-details summary{min-height:38px;font-size:12px;padding:8px 0}
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-card-links{gap:7px;padding-top:9px}
@media(max-width:1100px){body.hospitality-ui.application-v4 .rooms-workspace-582>.room-truth-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){
 body.hospitality-ui.application-v4 .rooms-workspace-582>.room-truth-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
 body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582>.page-head{margin-bottom:14px!important}
 body.hospitality-ui.application-v4 .rooms-workspace-582>.rooms-workspace-tabs{margin-bottom:12px;padding-bottom:10px}
 body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric{height:64px;min-height:64px;flex-direction:column;align-items:flex-start;justify-content:center;padding:8px;gap:4px}
 body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-board-panel>.section-head{padding:10px 12px 0}
 body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-filters{padding:10px 12px 12px;gap:9px;margin-bottom:18px}
 body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-filters :is(input,select){font-size:16px;height:44px;min-height:44px}
 body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-count{padding:0;font-size:11px}
 body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-floor-grid{grid-template-columns:minmax(0,1fr);gap:10px}
 body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-card{min-height:0;padding:14px}
 body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-head{height:auto;min-height:34px}
 body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-room-details summary{min-height:44px}
}

/* 5.87: warnings increase the shared row height, not only their own card. */
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-floor-grid{align-items:stretch}
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-board-card{align-self:stretch}
/* Expanded details use their natural height without stretching closed neighbours. */
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-floor-grid:has(.rooms-room-details[open]){align-items:start}
body.hospitality-ui.application-v4 .rooms-workspace-582 .rooms-floor-grid:has(.rooms-room-details[open]) .room-board-card{align-self:start}

/* 5.88: centered counter values, independent of label length. */
body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582 .metric-grid.room-truth-summary .metric{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;min-height:76px;height:auto}
body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582 .room-truth-summary .metric span{width:100%;text-align:center;min-height:0;margin:0}
body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582 .room-truth-summary .metric strong{width:100%;text-align:center;margin:0;font-variant-numeric:tabular-nums}
@media(max-width:700px){body.hospitality-ui.application-v4 .workspace-route .rooms-workspace-582 .metric-grid.room-truth-summary .metric{min-height:66px;height:66px;gap:4px}}

/* 5.88: remove inherited KPI top spacing from inline Rooms counters. */
body.hospitality-ui.application-v4 .rooms-workspace-582 .room-truth-summary .metric strong{margin:0;display:flex;align-items:center;justify-content:center}

/* assets/ui-auth-compact.css */
/* Compact access forms; scope avoids changing operational workspaces. */
:is(.auth-public,.hotel-login,.login-wrap){min-width:0;min-height:100svh}
.auth-public{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.hotel-login{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
:is(.auth-public-main,.hotel-login-main,.login-panel){min-width:0;padding:20px;align-items:safe center}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card){box-sizing:border-box;width:min(490px,100%);max-width:100%;padding:24px}
:is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-lockup{gap:5px;margin-bottom:16px}
:is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-icon{width:96px;max-width:36%;filter:none}
:is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-wordmark{font-size:30px}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) h2{font-size:25px;line-height:1.2;margin:6px 0 8px}
:is(.auth-public-card,.hotel-login-card,.login-card) p{font-size:14px;line-height:1.5;margin:8px 0 14px}
:is(.auth-public-card,.hotel-login-card,.login-card) .eyebrow{margin:0 0 6px;font-size:10px}
:is(.auth-public-card,.hotel-login-card,.login-card) form{gap:10px}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) label{gap:5px;margin:0;font-size:13px}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) input:not([type=checkbox]):not([type=radio]){min-height:42px;padding:9px 12px}
:is(.auth-public-card,.hotel-login-card,.login-card) :is(.hotel-login-tabs,.auth-tabs){gap:8px;margin:12px 0}
:is(.auth-public-card,.hotel-login-card,.login-card) :is(.auth-links,.minor-links){margin-top:12px;gap:10px;flex-wrap:wrap}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) label.device-session-choice{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;width:max-content;max-width:100%;min-height:32px;gap:8px;padding:0 2px;margin:0;border:0;background:none;box-shadow:none;font-size:13px;cursor:pointer}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .device-session-choice input[type=checkbox]{box-sizing:border-box;width:18px!important;min-width:18px!important;max-width:18px!important;height:18px!important;min-height:18px!important;max-height:18px!important;flex:0 0 18px!important;padding:0!important;margin:0}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .device-session-choice span{display:inline;min-width:0}
@media(max-height:800px){
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card){padding:20px 24px}
 :is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-icon{width:68px}
 :is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-wordmark{font-size:26px}
 :is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-lockup{margin-bottom:12px}
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) h2{font-size:23px}
 :is(.auth-public-aside,.hotel-login-aside){padding:32px clamp(24px,4vw,64px)}
 :is(.auth-public-aside,.hotel-login-aside) h1{font-size:clamp(30px,3vw,48px);line-height:1.1;margin:12px 0}
}
@media(max-width:900px){.auth-public{grid-template-columns:minmax(0,1fr)}.hotel-login{grid-template-columns:minmax(0,1fr)}.auth-public-aside{display:none}.hotel-login-aside{display:none}}
@media(max-width:600px){
 :is(.auth-public-main,.hotel-login-main,.login-panel){padding:14px}
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card){padding:20px}
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) input:not([type=checkbox]):not([type=radio]){font-size:16px;min-height:44px}
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) label.device-session-choice{min-height:40px}
}

/* 5.67: central sign-in uses .login-art, not the public account aside. */
body.hospitality-ui .login-wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
body.hospitality-ui :is(.login-art,.auth-public-aside,.hotel-login-aside){min-width:0;padding:clamp(24px,5svh,60px) clamp(24px,4vw,76px);gap:clamp(16px,4svh,40px)}
body.hospitality-ui :is(.login-art,.auth-public-aside,.hotel-login-aside) h1{font-size:clamp(30px,min(4vw,6svh),58px);line-height:1.08;margin:12px 0 16px;max-width:18ch}
body.hospitality-ui :is(.login-art,.auth-public-aside,.hotel-login-aside) p{font-size:14px;line-height:1.5;margin:12px 0 0;max-width:52ch}
body.hospitality-ui .login-art{justify-content:center}
body.hospitality-ui .login-art>.brand{margin-bottom:auto}
body.hospitality-ui .login-art>div:last-child{margin-block:auto}
body.hospitality-ui #login-fields{display:grid;gap:10px;min-width:0}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) :is(form,label,input){min-width:0}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) input:not([type=checkbox]):not([type=radio]){width:100%;height:42px}
/* Longer registration fits in three rows on desktop; DOM/tab order is unchanged. */
body.hospitality-ui .auth-public-card:has(:is(#su,#js)){width:min(600px,100%)}
body.hospitality-ui .auth-public-card:has(:is(#su,#js)) .login-brand-lockup{flex-direction:row;justify-content:flex-start;gap:10px;margin-bottom:12px}
body.hospitality-ui .auth-public-card:has(:is(#su,#js)) .login-brand-icon{width:42px;flex:0 0 42px}
body.hospitality-ui .auth-public-card:has(:is(#su,#js)) .login-brand-wordmark{font-size:24px}
body.hospitality-ui :is(#su,#js){grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px}
body.hospitality-ui :is(#su,#js)>:is(label:first-child,button,div){grid-column:1/-1}
@media(max-height:650px){
 body.hospitality-ui :is(.auth-public-main,.hotel-login-main,.login-panel){padding-block:12px}
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card){padding:18px 22px}
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-lockup{flex-direction:row;justify-content:center;gap:10px;margin-bottom:10px}
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-icon{width:42px;flex:0 0 42px}
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-wordmark{font-size:24px}
 body.hospitality-ui :is(.login-art,.auth-public-aside,.hotel-login-aside){padding-block:24px;gap:16px}
}
@media(max-width:900px){
 body.hospitality-ui .login-wrap{grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui .login-art{display:none}
}
@media(max-width:600px){
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) input:not([type=checkbox]):not([type=radio]){height:44px}
 body.hospitality-ui :is(#su,#js){grid-template-columns:minmax(0,1fr)}
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card):has(:is(#su,#js)) p{font-size:13px;line-height:1.4;margin-bottom:10px}
}

@media(max-width:600px){
 body.hospitality-ui .auth-public-card:has(:is(#su,#js)){padding:14px}
 body.hospitality-ui :is(#su,#js){gap:8px}
 body.hospitality-ui .auth-public-card:has(:is(#su,#js))>.auth-links{margin-top:8px}
}

/* Center the introductory copy while keeping the brand at the top. */
@media(min-width:901px){
 body.hospitality-ui :is(.login-art,.auth-public-aside,.hotel-login-aside){display:grid;grid-template-rows:minmax(0,1fr) auto minmax(0,1fr)}
 body.hospitality-ui :is(.login-art,.auth-public-aside,.hotel-login-aside)>.brand{align-self:start;margin:0}
 body.hospitality-ui :is(.login-art,.auth-public-aside,.hotel-login-aside)>div:not(.brand){grid-row:2;text-align:center;margin:0;width:100%}
 body.hospitality-ui :is(.login-art,.auth-public-aside,.hotel-login-aside)>div:not(.brand) :is(h1,p){margin-inline:auto}
 body.hospitality-ui :is(.login-art,.auth-public-aside,.hotel-login-aside)>small{align-self:end}
}

/* Access controls: scoped to access cards, never operational forms. */
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .access-password{position:relative;display:block;width:100%;min-width:0}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .access-password input{padding-right:48px!important}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .access-password-toggle{display:grid;place-items:center;position:absolute;right:1px;top:1px;width:42px;height:40px;min-height:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .access-password-toggle:hover{background:var(--surface-2);color:var(--text-primary)}
.access-password-toggle svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.access-password-toggle .eye-slash{display:none}.access-password-toggle[aria-pressed=true] .eye-slash{display:block}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .access-field-error{font-size:12px;font-weight:400;line-height:1.4;color:var(--danger);letter-spacing:normal}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) form button[type=submit]{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:44px}
body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) form[aria-busy=true] button[type=submit]::before{content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:access-spin .8s linear infinite}
@keyframes access-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) form[aria-busy=true] button[type=submit]::before{animation:none}}
@media(min-width:901px){body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-lockup{display:none}}
@media(max-width:900px){
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-lockup{flex-direction:row;justify-content:center;gap:9px;margin-bottom:14px}
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-icon{width:42px;flex:0 0 42px}
 body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .login-brand-wordmark{font-size:24px}
}
@media(max-width:600px){body.hospitality-ui :is(.auth-public-card,.hotel-login-card,.login-card) .access-password-toggle{height:42px}}

@media(max-width:600px){body.hospitality-ui .auth-public-card:has(:is(#su,#js)) .login-brand-lockup{margin-bottom:10px}}

/* 5.80: safe access layout in home-screen mode, including the home indicator. */
@media(display-mode:standalone){
 :is(.login-wrap,.hotel-login,.auth-public){min-height:100svh;min-height:100dvh}
 :is(.login-panel,.hotel-login-main,.auth-public-main){padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
}

/* assets/ui-address-cards.css */
.address-workspace{min-width:0}.address-toolbar .toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:12px}.address-toolbar label{min-width:130px}.address-toolbar #cards-period{display:flex;gap:10px}.address-toolbar #cards-period[hidden]{display:none}.address-toolbar small{color:var(--muted)}.address-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0}.address-actions>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.address-guest{padding:18px;margin:12px 0;border:1px solid var(--border);border-radius:14px;background:var(--surface-1)}.address-guest header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.address-guest header>span{color:var(--muted);font-size:12px}.address-guest header>b{font-size:12px;color:var(--text-primary)}.address-guest.is-ready{border-color:color-mix(in srgb,#238755 55%,var(--border))}.address-guest.is-missing{border-color:color-mix(in srgb,var(--brass,#c59a52) 45%,var(--border))}.address-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}.address-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;min-width:0}.address-fields :is(input,select){min-width:0;width:100%;height:40px;padding:8px;font-size:13px}.address-pick{display:flex;flex-direction:row;align-items:center;gap:8px}.address-fields .address-check{display:flex;flex-direction:row;align-items:center;gap:8px}.address-workspace input[type=checkbox]{width:18px!important;height:18px!important;min-height:18px!important;padding:0;flex:0 0 18px;accent-color:var(--primary)}.address-missing{font-size:12px;color:var(--brass,#c59a52);margin:8px 0}.address-row-error{color:var(--danger,#dc7772)}.address-workspace .is-error{color:var(--danger,#dc7772)}.address-paging{display:flex;justify-content:center;gap:16px;align-items:center;margin:20px 0}.address-workspace details summary{font-size:12px;cursor:pointer}.egn-auto-note{font-size:11px;line-height:1.4;color:var(--muted)}#cards-downloads{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:900px){.address-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.address-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.address-guest{padding:12px}.address-actions>div{width:100%}.address-toolbar label{max-width:100%}.address-fields label:has([data-card-field=full_name_snapshot]){grid-column:1/-1}}

body.hospitality-ui .address-workspace .address-toolbar{padding:14px}body.hospitality-ui .address-workspace :is(.address-toolbar,.address-fields) label{margin:0;gap:6px}body.hospitality-ui .address-workspace .address-toolbar small{display:block;margin:0;font-size:11px}body.hospitality-ui .address-workspace .address-fields input{margin:0;min-height:40px;padding:8px;font-size:13px}body.hospitality-ui .address-workspace .address-fields select{margin:0;min-height:40px;padding:8px;font-size:13px}body.hospitality-ui .address-workspace .address-guest header{padding:0;border:0}
.address-view-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px;padding:0 0 12px;border-bottom:1px solid var(--border)}
.address-workspace [hidden]{display:none!important}
.address-access-note{padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text-secondary);font-size:13px}
.address-workspace .address-archive{padding:16px;min-width:0}
.address-archive>.toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.address-archive>.toolbar label{display:grid;gap:6px;margin:0;min-width:0;width:min(320px,100%);font-size:12px}
.address-archive input{margin:0!important;width:100%;min-width:0}
.address-manual-templates{margin:20px 0;padding:14px;border:1px solid var(--border);border-radius:12px}
.address-manual-templates>summary{cursor:pointer;font-size:13px;color:var(--text-secondary)}
.address-manual-templates[open]>.common-doc-grid{margin-top:14px}

/* Keep labelled filter fields and their action on one baseline, above the generic workspace toolbar. */
body.hospitality-ui .workspace-route .address-workspace :is(.address-filters,.address-archive-filters){align-items:flex-end;gap:10px}
body.hospitality-ui .address-workspace :is(.address-filters,.address-archive-filters) label{display:grid;gap:6px;margin:0;min-width:0;max-width:100%}
body.hospitality-ui .address-workspace #cards-period{align-items:flex-end;flex-wrap:wrap;min-width:0}
body.hospitality-ui .address-workspace :is(.address-filters,.address-archive-filters) input{height:var(--ui-control-height,40px);margin:0;max-width:100%}
body.hospitality-ui .address-workspace :is(.address-filters,.address-archive-filters)>.btn{align-self:flex-end}
@media(max-width:600px){body.hospitality-ui .address-workspace #cards-period{width:100%}body.hospitality-ui .address-workspace #cards-period>label{flex:1 1 120px}body.hospitality-ui .address-workspace .address-filters>label{flex:1 1 180px}body.hospitality-ui .address-workspace :is(.address-filters,.address-archive-filters) input{width:100%}}

}
