/* Generated by scripts/build-styles.mjs; edit the source stylesheets. */

/* Source: daylight-foundation.css */
/* The catalog owns daylight color; materials and saved user paint retain their
   own controls. This layer precedes authored !important night treatments. */
@layer daylight-foundation;
@media screen {
 :root[data-world][data-mode='light']:not([data-studio-theme]) {color-scheme:light;}
 @layer daylight-foundation {
  :root[data-world][data-mode='light']:not([data-studio-theme]) {
   color-scheme:light;
   --bg:var(--world-background);--panel:var(--world-surface);
   --surface:var(--world-elevated);--surface-2:var(--world-elevated);
   --text:var(--world-text);--muted:var(--world-secondary);--faint:var(--world-secondary);
   --border:var(--world-border);--accent:var(--world-accent);
  }
  :root[data-world][data-mode='light']:not([data-studio-theme]) body {color:var(--world-text)!important;}
  :root[data-world][data-mode='light']:not([data-studio-theme]) :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet) {
   background:var(--surface-user-paint,var(--daylight-sidebar))!important;
   color:var(--world-text)!important;border-color:var(--surface-edge)!important;
   box-shadow:var(--surface-shadow)!important;
  }
  :root[data-world][data-mode='light']:not([data-studio-theme]) :is(.sidebar,.topbar) :is(h1,h2,.brand-name,.brand-subtitle) {color:var(--world-text)!important;text-shadow:none!important;}
  :root[data-world='neon-fracture'][data-mode='light']:not([data-studio-theme]):not(.has-photo-background) :is(body,.workspace) {
   background:var(--le-base,linear-gradient(135deg,var(--world-background),var(--world-deep)))!important;
  }
  :root[data-world='neon-fracture'][data-mode='light']:not([data-studio-theme]) .nf-card :is(h2,h3,h4,.panel-title,.metric-label,.metric-value) {color:var(--world-text)!important;text-shadow:none!important;}
  :root[data-world='neon-fracture'][data-mode='light']:not([data-studio-theme]) .nf-card :is(.muted,.secondary,.eyebrow,small,.metric-detail,.metric-note) {color:var(--world-secondary)!important;text-shadow:none!important;}
  :root[data-world='neon-fracture'][data-mode='light']:not([data-studio-theme]) :is(button,.button,input,select,textarea):not(.primary,.danger,.success,.nav-item,.world-choice) {background:var(--surface-control)!important;color:var(--world-text)!important;border-color:var(--world-border)!important;}
  :root[data-world='neon-fracture'][data-mode='light']:not([data-studio-theme]) :is(button,.button).primary {background:var(--world-accent)!important;color:var(--world-on-accent)!important;}
  :root[data-world='neon-fracture'][data-mode='light']:not([data-studio-theme]) :is(input,textarea)::placeholder {color:var(--world-secondary)!important;}
  :root[data-world='midnight-reverie'][data-mode='light']:not([data-studio-theme]) :is(button,.button,.nav-item,input,select,textarea):not(.primary,.danger,.success,.world-choice) {background:var(--surface-control)!important;color:var(--world-text)!important;border-color:var(--world-border)!important;}
  :root[data-world='midnight-reverie'][data-mode='light']:not([data-studio-theme]) :is(.reverie-card,.sidebar,.topbar) :is(h1,h2,h3,h4,p,label,summary,.panel-head,.panel-title,.metric-label,.metric-value,.nav-item,.brand span,.brand strong) {color:var(--world-text)!important;text-shadow:none!important;}
  :root[data-world='midnight-reverie'][data-mode='light']:not([data-studio-theme]) :is(.reverie-card,.sidebar,.topbar) :is(.muted,.secondary,.eyebrow,small) {color:var(--world-secondary)!important;text-shadow:none!important;}
  :root[data-world='midnight-reverie'][data-mode='light']:not([data-studio-theme]) :is(button,.button).primary {background:var(--world-accent)!important;color:var(--world-on-accent)!important;}
  /* The glass reflection must remain behind collapsed-card headings. */
  :root[data-world='midnight-reverie'][data-mode='light']:not([data-studio-theme]) .panel > :is(.panel-head,.panel-body) {position:relative;z-index:2;}
  :root[data-world='midnight-reverie'][data-mode='light']:not([data-studio-theme]) :is(dialog,.modal-card,.modal-content,.drawer-content) {background:var(--surface-modal)!important;color:var(--surface-ink)!important;}
  :root[data-world][data-mode='light']:not([data-studio-theme]) .reverie-card {
   background:var(--surface-user-paint,var(--surface-card))!important;
   color:var(--surface-ink)!important;box-shadow:var(--surface-shadow)!important;border-color:var(--surface-edge)!important;
  }
 }
 :root[data-world][data-mode='light']:not([data-studio-theme]):not([data-theme='the-fuckening']) .brand-mark-img {
  border:1px solid var(--world-border);border-radius:var(--world-icon);
  background:var(--world-elevated);box-shadow:0 3px 10px var(--daylight-glow);
 }
 /* Preserve authored scene geometry. These two worlds previously used night
    paints for both modes, so their daylight sky/ground need explicit tokens. */
 :root[data-world='midnight-reverie'][data-mode='light']:not([data-studio-theme]) #midnight-reverie-scene {background:var(--world-background);}
 :root[data-world='midnight-reverie'][data-mode='light']:not([data-studio-theme]) .reverie-sky {background:radial-gradient(ellipse at 66% 42%,#c6c3ee,transparent 52%),linear-gradient(#d9dff5,#eee7f7 61%,#dec9e9 72%,#b4bedb 73%,#dde2f5);}
 :root[data-world='midnight-reverie'][data-mode='light']:not([data-studio-theme]) .reverie-ground {background:linear-gradient(#bdc9e2,#e5e8f6);}
 :root[data-world='midnight-reverie'][data-mode='light']:not([data-studio-theme]) .reverie-vignette {box-shadow:inset 0 0 100px #7a72ac26;background:transparent;}
}


/* Source: status-badges.css */
/* Semantic colors belong to statuses; themed silhouettes remain theme-owned. */
:root{--badge-ready-ink:#ffe08a;--badge-ready-fill:#392e15;--badge-ready-line:#b38a37;--badge-success-ink:#a5f1c0;--badge-success-fill:#173c2a;--badge-success-line:#4caa76;--badge-info-ink:#b5ddff;--badge-info-fill:#19364f;--badge-info-line:#5b9dc9;--badge-progress-ink:#e3c4ff;--badge-progress-fill:#382347;--badge-progress-line:#ac7acb;--badge-stripped-ink:#ffd1ad;--badge-stripped-fill:#472c19;--badge-stripped-line:#c28c56;--badge-danger-ink:#ffbfc4;--badge-danger-fill:#4b222b;--badge-danger-line:#d37c8a;--badge-neutral-ink:#dae1e9;--badge-neutral-fill:#2b3340;--badge-neutral-line:#788597;--badge-out-ink:#d9cfe9;--badge-out-fill:#332d40;--badge-out-line:#9c8bb1;--badge-warning-ink:#ffe0a3;--badge-warning-fill:#42351d;--badge-warning-line:#c39b50;--badge-king-ink:#bff2cf;--badge-king-fill:#173b26;--badge-king-line:#5ac980;--badge-queen-ink:#cceaff;--badge-queen-fill:#19364f;--badge-queen-line:#56b8ff}
html[data-mode=light]{--badge-ready-ink:#704900;--badge-ready-fill:#fff3cc;--badge-ready-line:#a67412;--badge-success-ink:#175333;--badge-success-fill:#e1f4e7;--badge-success-line:#388354;--badge-info-ink:#194e78;--badge-info-fill:#e4f1ff;--badge-info-line:#3f80b2;--badge-progress-ink:#663384;--badge-progress-fill:#f3e8ff;--badge-progress-line:#9963b5;--badge-stripped-ink:#783d13;--badge-stripped-fill:#fff0e3;--badge-stripped-line:#af6b31;--badge-danger-ink:#912c3b;--badge-danger-fill:#ffe9ed;--badge-danger-line:#b45365;--badge-neutral-ink:#465160;--badge-neutral-fill:#eef1f5;--badge-neutral-line:#7e8a98;--badge-out-ink:#5c496d;--badge-out-fill:#eee8f5;--badge-out-line:#9680aa;--badge-warning-ink:#735112;--badge-warning-fill:#fff1d4;--badge-warning-line:#a77c2b;--badge-king-ink:#104b28;--badge-king-fill:#bff2cf;--badge-king-line:#218647;--badge-queen-ink:#123e68;--badge-queen-fill:#cceaff;--badge-queen-line:#247fbc}
[data-badge-tone=ready]{--badge-ink:var(--badge-ready-ink);--badge-fill:var(--badge-ready-fill);--badge-line:var(--badge-ready-line)}
[data-badge-tone=success]{--badge-ink:var(--badge-success-ink);--badge-fill:var(--badge-success-fill);--badge-line:var(--badge-success-line)}
[data-badge-tone=info]{--badge-ink:var(--badge-info-ink);--badge-fill:var(--badge-info-fill);--badge-line:var(--badge-info-line)}
[data-badge-tone=progress]{--badge-ink:var(--badge-progress-ink);--badge-fill:var(--badge-progress-fill);--badge-line:var(--badge-progress-line)}
[data-badge-tone=stripped]{--badge-ink:var(--badge-stripped-ink);--badge-fill:var(--badge-stripped-fill);--badge-line:var(--badge-stripped-line)}
[data-badge-tone=danger]{--badge-ink:var(--badge-danger-ink);--badge-fill:var(--badge-danger-fill);--badge-line:var(--badge-danger-line)}
[data-badge-tone=out]{--badge-ink:var(--badge-out-ink);--badge-fill:var(--badge-out-fill);--badge-line:var(--badge-out-line)}
[data-badge-tone=warning]{--badge-ink:var(--badge-warning-ink);--badge-fill:var(--badge-warning-fill);--badge-line:var(--badge-warning-line)}
[data-badge-tone=king]{--badge-ink:var(--badge-king-ink);--badge-fill:var(--badge-king-fill);--badge-line:var(--badge-king-line)}
[data-badge-tone=queen]{--badge-ink:var(--badge-queen-ink);--badge-fill:var(--badge-queen-fill);--badge-line:var(--badge-queen-line)}
/* First in the stylesheet bundle, so old !important rules
   cannot relabel a Ready badge's colors or reintroduce pseudo-element dots. */
@layer sisyphus-badges{
 html body .ui-badge{display:inline-flex!important;align-items:center!important;justify-content:center;gap:5px!important;box-sizing:border-box!important;min-width:0;max-width:100%;min-height:24px!important;height:auto!important;padding:3px 7px!important;border-width:1px!important;border-style:solid!important;border-radius:var(--theme-badge-radius,6px)!important;clip-path:var(--theme-badge-clip,none);font-family:inherit!important;font-size:.75rem!important;font-weight:650!important;line-height:1.35!important;letter-spacing:.01em!important;text-transform:none!important;white-space:normal!important;overflow-wrap:anywhere!important;text-align:center!important;vertical-align:middle;margin:0;transform:none!important;animation:none!important;transition:none!important;align-self:center;text-shadow:none!important;box-shadow:var(--lit-edge,none)!important}
 html body .ui-badge:not([data-badge-custom]){color:var(--badge-ink,var(--badge-neutral-ink))!important;background:var(--badge-fill,var(--badge-neutral-fill))!important;border-color:var(--badge-line,var(--badge-neutral-line))!important}
 html body .ui-badge::before,html body .ui-badge::after{content:none!important;display:none!important}
 html body .ui-badge[data-badge-size=standard]{min-height:28px!important;padding:4px 9px!important;font-size:.8rem!important}
 html body button.ui-badge{min-height:40px!important;cursor:pointer}
 html body .ui-badge[data-badge-status=king],html body .ui-badge[data-badge-status=queen]{width:28px!important;min-width:28px!important;height:28px!important;min-height:28px!important;flex:0 0 28px;padding:0!important;border-width:2px!important;border-radius:6px!important;clip-path:none!important;font-size:1rem!important;font-weight:800!important;line-height:1!important}
 html body .ui-badge>i:empty{display:none!important}
 html body .ui-badge>svg{width:14px;height:14px;flex:0 0 14px}
 html body .ui-badge[hidden]{display:none!important}
 .ui-badge-indicator{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:currentColor}
 button.ui-badge:focus-visible{outline:2px solid var(--accent)!important;outline-offset:3px}
 @media(max-width:640px){html body button.ui-badge{min-height:44px!important}}
 @media print{html body .ui-badge{color:#111!important;background:#fff!important;border-color:#777!important;box-shadow:none!important;clip-path:none!important}}
}


/* Source: arrival-presentation.css */
/* Important semantic rules in this layer outrank legacy world-specific badge overrides. */
@layer sisyphus-arrivals {
/* Shared arrival semantics sit above world accents, without replacing any
   world's card materials, typography, animation or operational status colors. */
:root {
  --arrival-regular-edge:#26d9d0; --arrival-regular-fill:#9af5ed; --arrival-regular-ink:#073e43;
  --arrival-early-edge:#efb449; --arrival-early-fill:#ffe0a3; --arrival-early-ink:#533406;
  --arrival-canceled-edge:#9aa5af; --arrival-canceled-fill:#dce1e5; --arrival-canceled-ink:#3b444d;
}
[data-arrival="regular"], [data-arrival-number="regular"], .arrival-highlight.arrival-tier {
  --arrival-edge:var(--arrival-regular-edge); --arrival-fill:var(--arrival-regular-fill); --arrival-ink:var(--arrival-regular-ink);
}
[data-arrival="early"], [data-arrival-number="early"], .arrival-highlight.early-tier {
  --arrival-edge:var(--arrival-early-edge); --arrival-fill:var(--arrival-early-fill); --arrival-ink:var(--arrival-early-ink);
}
[data-arrival="canceled"] {
  --arrival-edge:var(--arrival-canceled-edge); --arrival-fill:var(--arrival-canceled-fill); --arrival-ink:var(--arrival-canceled-ink);
}
body .arrival-indicator[data-arrival] {
  display:inline-flex!important; align-items:center; justify-content:center; flex:0 0 auto;
  width:auto!important; min-width:0!important; height:auto!important; max-width:100%;
  padding:.16em .5em!important; margin:0!important; border:1px solid var(--arrival-edge)!important;
  border-radius:.55em!important; background:var(--arrival-fill)!important; color:var(--arrival-ink)!important;
  font:inherit!important; font-size:.69rem!important; font-weight:800!important; line-height:1.35!important;
  letter-spacing:.035em!important; white-space:nowrap!important; text-transform:none!important;
  text-shadow:none!important; opacity:1!important; filter:none!important;
  box-shadow:0 0 .65rem color-mix(in srgb,var(--arrival-edge) 24%,transparent)!important;
  vertical-align:middle;
}
body .arrival-indicator::before, body .arrival-indicator::after { content:none!important; }
body .arrival-indicator[data-arrival="canceled"] {box-shadow:none!important;}
/* Number/chip accents stay independent of status, selection and theme surfaces. */
body [data-arrival-number]:is([data-arrival-number="regular"],[data-arrival-number="early"]),
body .messaged-room-chip.arrival-highlight {
  border:1px solid var(--arrival-edge)!important;
  box-shadow:0 0 .7rem color-mix(in srgb,var(--arrival-edge) 22%,transparent)!important;
}
body [data-arrival-number]:is([data-arrival-number="regular"],[data-arrival-number="early"]) {
  border-radius:.45rem; padding:.1em .25em;
}
body .arrival-highlight:is(.room-card,.summary-room-row,.room-list-row,.inspected-room) {
  border-inline-start-color:var(--arrival-edge)!important;
}
body :is(.mm-expand,.room-list-head,.summary-room-main,.room-card-head,.strip-room-number,.inspected-room>div,.ab-room-identity):has(.arrival-indicator[data-arrival="regular"]) {--arrival-edge:var(--arrival-regular-edge);}
body :is(.mm-expand,.room-list-head,.summary-room-main,.room-card-head,.strip-room-number,.inspected-room>div,.ab-room-identity):has(.arrival-indicator[data-arrival="early"]) {--arrival-edge:var(--arrival-early-edge);}
body :is(.mm-expand,.room-list-head,.summary-room-main,.room-card-head,.strip-room-number,.inspected-room>div):has(.arrival-indicator) :is(.room-number,.summary-room-number,.room-number-text),
body .mm-expand:has(.arrival-indicator)>strong, body .inspected-room>div:has(.arrival-indicator)>strong {
  border-inline-start:2px solid var(--arrival-edge); padding-inline-start:.35em;
}
body .messaged-room-chip {display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap;max-width:100%;}
body .im-queue [data-im="choose"], body .im-inline-controls {gap:.4rem;}
@media (prefers-reduced-motion:reduce) {body .arrival-indicator {animation:none!important;transition:none!important;}}
@media (forced-colors:active) {body .arrival-indicator[data-arrival] {border:1px solid CanvasText!important;box-shadow:none!important;}}

}

/* One compact carryover treatment shared by every room view. */
.carryover-badge{font-size:.66rem!important;line-height:1.2;padding:2px 6px!important;white-space:nowrap;border:1px solid color-mix(in srgb,var(--warning,#dcaa47) 70%,transparent)!important;background:color-mix(in srgb,var(--warning,#dcaa47) 18%,var(--panel-bg,transparent))!important;color:var(--text)!important;box-shadow:0 0 6px color-mix(in srgb,var(--warning,#dcaa47) 12%,transparent);border-radius:999px;vertical-align:middle}.carryover-review-badge{font-size:.62rem!important;padding:2px 5px!important;border-color:var(--warning,#dcaa47);color:var(--text);white-space:normal;max-width:100%}.room-badges{flex-wrap:wrap;min-width:0}

.carryover-badge::before{background:var(--warning,#dcaa47)!important;box-shadow:0 0 4px color-mix(in srgb,var(--warning,#dcaa47) 35%,transparent)!important}.carryover-review-badge::before{display:none!important}


/* Source: theme-studio.css */
/* Explicit important-layer priority. Only custom themes opt in; built-ins keep
   their own geometry, material, artwork and environmental lifecycle. */
@layer theme-studio, surface-material;
@media screen {
 @layer theme-studio {
  #theme-studio-view :is(input,select,textarea,option) {background:#fff!important;color:#172539!important;border-color:#adbacc!important;text-shadow:none!important;}
  #theme-studio-view .ts-preview-tools select {width:auto!important;flex:1 1 140px;min-width:0!important;}
  html[data-studio-theme] body {background:var(--bg)!important;color:var(--text)!important;font-family:var(--ts-body-font)!important;font-weight:var(--ts-weight)!important;letter-spacing:var(--ts-tracking)!important;}
  html[data-studio-theme] :is(.workspace,#app-view,.view) {background:transparent!important;}
  html[data-studio-theme] .workspace {position:relative;z-index:1;}
  html[data-studio-theme] .workspace > :is(.topbar,.view,#management-section-navigation,.mobile-nav-bar) {z-index:1;}
  html[data-studio-theme] :is(.panel-head h2,.panel-head h3,.topbar h1,.housekeeper-greeting) {font-family:var(--ts-heading-font)!important;color:var(--text)!important;}
  html[data-studio-theme] .view:not(#theme-studio-view) {font-size:calc(1rem * var(--ts-scale))!important;}
  html[data-studio-theme] :is(.room-number,.arc-number,.pr-number,.ab-number,.metric-value,.stat-value) {font-family:var(--ts-number-font)!important;font-variant-numeric:tabular-nums!important;letter-spacing:0!important;}
  html[data-studio-theme] :is(.panel-head h3,.panel-head h2) {font-size:calc(1.15rem * var(--ts-heading-scale))!important;}
  html[data-studio-theme] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel) {background:var(--ts-nav)!important;color:var(--text)!important;backdrop-filter:blur(var(--ts-nav-blur))!important;border-color:var(--ts-nav-divider)!important;}
  html[data-studio-theme] :is(.nav-item,.mobile-nav-sheet-item,.sidebar .brand,.sidebar label,.mobile-nav-bar label) {color:var(--text)!important;opacity:1!important;}
  html[data-studio-theme] :is(.nav-item.active,.mobile-nav-sheet-item.active) {background:color-mix(in srgb,var(--ts-nav-selected) 15%,transparent)!important;border-color:var(--ts-nav-selected)!important;color:var(--text)!important;}
  html[data-studio-theme] :is(.nav-item,.mobile-nav-sheet-item):hover {background:color-mix(in srgb,var(--ts-nav-hover) 15%,transparent)!important;}
  html[data-studio-theme] :is(.button,button):not(:where(#theme-studio-view *,#ts-draft-banner *)) {border-radius:var(--ts-button-radius)!important;border-style:var(--ts-button-border)!important;font-weight:var(--ts-button-weight)!important;}
  html[data-studio-theme] :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=color]):not(:where(#theme-studio-view *)) {color:var(--text)!important;background:var(--panel)!important;}
  html[data-studio-theme] option:not(:where(#theme-studio-view *)) {color:var(--text)!important;background:var(--panel)!important;}
  html[data-studio-theme] .button.primary {background:var(--accent)!important;color:var(--on-accent)!important;}
  html[data-studio-theme] .button.danger {background:var(--danger)!important;color:var(--ts-late-checkout-ink)!important;border-color:var(--danger)!important;}
  html[data-studio-theme][data-studio-button-fill=solid] .button:not(.primary):not(.danger):not(.success):not(.warning):not(:where(#theme-studio-view *)) {background:var(--panel)!important;}
  html[data-studio-theme][data-studio-button-fill=outline] .button:not(.primary):not(.danger):not(.success):not(.warning):not(:where(#theme-studio-view *)) {background:transparent!important;}
  html[data-studio-theme][data-studio-icons=accent] .nav-item > span {color:var(--accent)!important;}
  html[data-studio-theme][data-studio-icons=muted] .nav-item > span {color:var(--muted)!important;}
  html[data-studio-theme][data-studio-shape=custom] :is(.panel,.room-card,.metric,.room-list-row,.pr-room,.ab-room):not(:where(#theme-studio-view *)) {border-radius:var(--ts-radius)!important;clip-path:none!important;}
  html[data-studio-theme] :is(.panel-body,.room-card-body) {padding:var(--ts-padding)!important;}
  html[data-studio-theme] :is(.today-cards,.room-list,.room-grid) {gap:var(--ts-spacing)!important;}
  html[data-studio-theme] :is(.muted,.empty-state,.todo-meta) {color:var(--ts-muted)!important;opacity:1!important;}
  html[data-studio-theme] :is(dialog,[role=dialog]) {color:var(--text)!important;background:var(--surface-modal)!important;}
  html[data-studio-theme] :is(.badge,.arc-status,.ops-primary-status,.hk-current) {font-weight:var(--ts-badge-weight)!important;box-shadow:0 0 var(--ts-badge-glow) color-mix(in srgb,currentColor 15%,transparent)!important;}
  html[data-studio-theme] :is(.badge,.arc-status,.ops-primary-status,.hk-current) {border:1px solid color-mix(in srgb,currentColor var(--ts-badge-border),transparent)!important;}
  html[data-studio-theme] .adaptive-room-card[data-state=ready] .arc-status {--ts-signal:var(--ts-ready);--ts-signal-ink:var(--ts-ready-ink);}
  html[data-studio-theme] .adaptive-room-card:is([data-state=finished],[data-state=reinspection]) .arc-status {--ts-signal:var(--ts-finished);--ts-signal-ink:var(--ts-finished-ink);}
  html[data-studio-theme] .adaptive-room-card[data-state=out] .arc-status {--ts-signal:var(--ts-out);--ts-signal-ink:var(--ts-out-ink);}
  html[data-studio-theme] .adaptive-room-card:is([data-state=waiting],[data-state=occupied]) .arc-status {--ts-signal:var(--ts-waiting);--ts-signal-ink:var(--ts-waiting-ink);}
  html[data-studio-theme] .adaptive-room-card[data-state=sent-back] .arc-status {--ts-signal:var(--ts-late-checkout);--ts-signal-ink:var(--ts-late-checkout-ink);}
  html[data-studio-theme][data-studio-badge-fill=solid] .arc-status {background:var(--ts-signal,var(--panel))!important;color:var(--ts-signal-ink,var(--text))!important;}
  html[data-studio-theme][data-studio-badge-fill=tinted] .arc-status {background:color-mix(in srgb,var(--ts-signal,var(--accent)) 12%,var(--panel))!important;color:var(--text)!important;}
  html[data-studio-theme][data-studio-badges=pill] :is(.badge,.arc-status,.ops-primary-status,.hk-current) {border-radius:999px!important;}
  html[data-studio-theme][data-studio-badges=soft] :is(.badge,.arc-status,.ops-primary-status,.hk-current) {border-radius:8px!important;}
  html[data-studio-theme][data-studio-badges=square] :is(.badge,.arc-status,.ops-primary-status,.hk-current) {border-radius:2px!important;}
  html[data-studio-theme] :is(.arrival-badge,.badge.arrival,.hk-arrival) {background:var(--ts-arrival)!important;color:var(--ts-arrival-ink)!important;}
  html[data-studio-theme] :is(.badge.success,.badge.ready,.hk-ready) {background:var(--ts-ready)!important;color:var(--ts-ready-ink)!important;}
  html[data-studio-theme] :is(.badge.warning,.badge.waiting,.hk-waiting) {background:var(--ts-waiting)!important;color:var(--ts-waiting-ink)!important;}
  html[data-studio-theme] :is(.badge.danger,.hk-late-checkout) {background:var(--ts-late-checkout)!important;color:var(--ts-late-checkout-ink)!important;}
  html[data-studio-theme] th {color:var(--text)!important;background:var(--surface)!important;}
  html[data-studio-theme][data-studio-overrides~=cards] :is(.panel,.metric,.room-card):not(:where(#theme-studio-view *)) {border-radius:var(--ts-cards-radius)!important;padding:var(--ts-cards-padding)!important;border-color:color-mix(in srgb,var(--border) var(--ts-cards-border),transparent)!important;box-shadow:0 12px 24px -15px color-mix(in srgb,#000 var(--ts-cards-shadow),transparent)!important;}
  html[data-studio-theme][data-studio-overrides~=roomRows] :is(.room-list-row,.summary-room-row,.strip-room-row):not(:where(#theme-studio-view *)) {border-radius:var(--ts-roomRows-radius)!important;padding:var(--ts-roomRows-padding)!important;border-color:color-mix(in srgb,var(--border) var(--ts-roomRows-border),transparent)!important;box-shadow:0 12px 24px -15px color-mix(in srgb,#000 var(--ts-roomRows-shadow),transparent)!important;}
  html[data-studio-theme][data-studio-overrides~=tables] :is(table):not(:where(#theme-studio-view *)) {border-radius:var(--ts-tables-radius)!important;padding:var(--ts-tables-padding)!important;border-color:color-mix(in srgb,var(--border) var(--ts-tables-border),transparent)!important;box-shadow:0 12px 24px -15px color-mix(in srgb,#000 var(--ts-tables-shadow),transparent)!important;}
  html[data-studio-theme][data-studio-overrides~=buttons] :is(.button):not(:where(#theme-studio-view *)) {border-radius:var(--ts-buttons-radius)!important;padding:var(--ts-buttons-padding)!important;border-color:color-mix(in srgb,var(--border) var(--ts-buttons-border),transparent)!important;box-shadow:0 12px 24px -15px color-mix(in srgb,#000 var(--ts-buttons-shadow),transparent)!important;}
  html[data-studio-theme][data-studio-overrides~=badges] :is(.badge,.arc-status,.ops-primary-status):not(:where(#theme-studio-view *)) {border-radius:var(--ts-badges-radius)!important;padding:var(--ts-badges-padding)!important;border-color:color-mix(in srgb,var(--border) var(--ts-badges-border),transparent)!important;box-shadow:0 12px 24px -15px color-mix(in srgb,#000 var(--ts-badges-shadow),transparent)!important;}
  html[data-studio-theme][data-studio-overrides~=inputs] :is(input,select,textarea):not(:where(#theme-studio-view *)) {border-radius:var(--ts-inputs-radius)!important;padding:var(--ts-inputs-padding)!important;border-color:color-mix(in srgb,var(--border) var(--ts-inputs-border),transparent)!important;box-shadow:0 12px 24px -15px color-mix(in srgb,#000 var(--ts-inputs-shadow),transparent)!important;}
  html[data-studio-theme][data-studio-overrides~=navigation] :is(.nav-item,.mobile-nav-sheet-item):not(:where(#theme-studio-view *)) {border-radius:var(--ts-navigation-radius)!important;padding:var(--ts-navigation-padding)!important;border-color:color-mix(in srgb,var(--border) var(--ts-navigation-border),transparent)!important;box-shadow:0 12px 24px -15px color-mix(in srgb,#000 var(--ts-navigation-shadow),transparent)!important;}
  html[data-studio-theme][data-studio-overrides~=modals] :is(dialog):not(:where(#theme-studio-view *)) {border-radius:var(--ts-modals-radius)!important;padding:var(--ts-modals-padding)!important;border-color:color-mix(in srgb,var(--border) var(--ts-modals-border),transparent)!important;box-shadow:0 12px 24px -15px color-mix(in srgb,#000 var(--ts-modals-shadow),transparent)!important;}
  html[data-studio-theme][data-studio-overrides~=inspection] :is(.inspection-mode):not(:where(#theme-studio-view *)) {border-radius:var(--ts-inspection-radius)!important;padding:var(--ts-inspection-padding)!important;border-color:color-mix(in srgb,var(--border) var(--ts-inspection-border),transparent)!important;box-shadow:0 12px 24px -15px color-mix(in srgb,#000 var(--ts-inspection-shadow),transparent)!important;}
  html[data-studio-theme][data-studio-overrides~=inventory] :is(#inventory-view .panel):not(:where(#theme-studio-view *)) {border-radius:var(--ts-inventory-radius)!important;padding:var(--ts-inventory-padding)!important;border-color:color-mix(in srgb,var(--border) var(--ts-inventory-border),transparent)!important;box-shadow:0 12px 24px -15px color-mix(in srgb,#000 var(--ts-inventory-shadow),transparent)!important;}
  html[data-studio-theme][data-studio-overrides~=progress] :is(progress,.progress-bar):not(:where(#theme-studio-view *)) {border-radius:var(--ts-progress-radius)!important;padding:var(--ts-progress-padding)!important;border-color:color-mix(in srgb,var(--border) var(--ts-progress-border),transparent)!important;box-shadow:0 12px 24px -15px color-mix(in srgb,#000 var(--ts-progress-shadow),transparent)!important;}
  html[data-studio-theme]:not([data-studio-overrides~=cards]) :is(.panel,.room-card,.metric):not(:where(#theme-studio-view *)) {box-shadow:var(--surface-shadow),0 16px 35px -24px color-mix(in srgb,#000 var(--ts-depth-shadow),transparent),inset 0 1px 0 color-mix(in srgb,#fff var(--ts-highlight),transparent),0 0 var(--ts-edge) color-mix(in srgb,var(--accent) 15%,transparent)!important;}
  html[data-studio-theme][data-studio-hover=lift]:not([data-studio-motion=off]) .button:hover {transform:translateY(-2px)!important;}
  html[data-studio-theme][data-studio-hover=glow] .button:hover {box-shadow:0 0 10px color-mix(in srgb,var(--accent) 20%,transparent)!important;}
 }
 .ts-environment {position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict;background:transparent;}
 .ts-environment[data-native-scene='true'] {z-index:1;}
 html[data-studio-theme] .workspace > :is(.topbar,.view,#management-section-navigation,.mobile-nav-bar) {z-index:2;}
 html[data-environment-stage] .ts-effect-fireflies {opacity:calc(var(--layer-opacity) * var(--ts-stage-fireflies,1));}
 html[data-environment-stage] :is(.ts-effect-fog,.ts-effect-mist) {opacity:calc(var(--layer-opacity) * var(--ts-stage-fog,1));}
 .ts-backdrop,.ts-background-overlay,.ts-effect,.ts-light {position:absolute;inset:-14px;pointer-events:none;}
 .ts-backdrop {transform:translate(var(--ts-x,0),var(--ts-y,0));}
 .ts-stage-shade,.ts-stage-tint,.ts-stage-river,.ts-stage-warmth {position:absolute;inset:0;pointer-events:none;opacity:0;}
 html[data-environment-stage] .ts-stage-shade {background:linear-gradient(#101b2b,transparent 80%);opacity:var(--ts-stage-shade,0);mix-blend-mode:multiply;}
 html[data-environment-stage] .ts-stage-tint {background:linear-gradient(var(--ts-stage-tint),transparent 80%);opacity:calc(var(--ts-stage-shade,0)*.5);mix-blend-mode:color;}
 html[data-environment-stage] .ts-stage-river {background:radial-gradient(ellipse 16% 60% at 55% 60%,var(--ts-stage-river),transparent 90%);opacity:var(--ts-stage-river-glow,0);mix-blend-mode:screen;}
 html[data-environment-stage] .ts-stage-warmth {background:radial-gradient(at 75% 10%,#e9c082,transparent 75%);opacity:var(--ts-stage-warmth,0);mix-blend-mode:soft-light;}
 html[data-environment-stage] :is(.ts-effect-fog,.ts-effect-mist) {--layer-color:var(--ts-stage-fog-color);}
 html[data-environment-stage] .ts-effect-fireflies i {box-shadow:0 0 calc(var(--glow) + var(--ts-stage-glow,0px)) currentColor;}
 .ts-backdrop video {width:100%;height:100%;object-fit:cover;}
 .ts-texture {position:absolute;inset:0;background-repeat:repeat;background-size:320px;pointer-events:none;}
 .ts-effect {opacity:var(--layer-opacity);color:var(--layer-color);transform:translate(calc(var(--ts-x,0px) * .5),calc(var(--ts-y,0px) * .5));}
 .ts-effect[data-plane=front] {transform:translate(calc(var(--ts-x,0px) * -1),calc(var(--ts-y,0px) * -1));}
 .ts-effect[data-plane=far] {transform:translate(calc(var(--ts-x,0px) * .2),calc(var(--ts-y,0px) * .2));}
 html[data-studio-motion=off] .ts-light {transition:none!important;}
 .ts-effect i {position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:currentColor;border-radius:50%;box-shadow:0 0 var(--glow) currentColor;animation:ts-drift var(--duration) linear var(--delay) infinite;}
 .ts-effect-leaves i,.ts-effect-petals i,.ts-effect-papers i,.ts-effect-sparkles i {background:none;border-radius:0;font-style:normal;font-size:var(--size);width:auto;height:auto;box-shadow:none;}
 .ts-effect-snow i,.ts-effect-leaves i,.ts-effect-petals i,.ts-effect-papers i {animation-name:ts-fall;}
 .ts-effect-rain i {width:1px;height:22px;border-radius:0;transform:rotate(var(--layer-angle));animation-name:ts-rain;}
 .ts-effect-fireflies i,.ts-effect-stars i,.ts-effect-sparkles i {animation-name:ts-flutter;}
 .ts-effect-bubbles i {background:transparent;border:1px solid currentColor;animation-name:ts-rise;}
 .ts-effect-embers i,.ts-effect-underwater i {animation-name:ts-rise;}
 .ts-effect-fog,.ts-effect-mist {background:radial-gradient(ellipse at 20% 60%,var(--layer-color),transparent 60%),radial-gradient(ellipse at 85% 80%,var(--layer-color),transparent 55%);filter:blur(20px);animation:ts-fog var(--layer-duration) ease-in-out infinite alternate;}
 .ts-effect-rays {background:repeating-conic-gradient(from var(--layer-angle) at 50% -20%,transparent 0deg 9deg,var(--layer-color) 10deg 13deg,transparent 14deg 30deg);mask-image:linear-gradient(#000,transparent 85%);animation:ts-rays var(--layer-duration) ease-in-out infinite alternate;}
 .ts-effect-clouds {background:radial-gradient(ellipse at 10% 10%,var(--layer-color),transparent 45%),radial-gradient(ellipse at 80% 20%,var(--layer-color),transparent 50%);filter:blur(24px);animation:ts-fog var(--layer-duration) ease-in-out infinite alternate;}
 .ts-effect-firelight {background:radial-gradient(at 10% 90%,var(--layer-color),transparent 55%);animation:ts-firelight calc(var(--layer-duration) * .2) ease-in-out infinite alternate;}
 .ts-light {background:radial-gradient(at 12% 10%,var(--ts-light-color),transparent 80%);opacity:var(--ts-light-opacity);mix-blend-mode:screen;transition:opacity 30s,background-color 30s;}
 .ts-environment::before {content:'';position:absolute;inset:0;background:#000;opacity:var(--ts-light-shadow,0);pointer-events:none;z-index:1;}
 .ts-light-sunlight,.ts-light-clouds {animation:ts-rays 24s ease-in-out infinite alternate;}
 .ts-light-moonlight {background:radial-gradient(at 80% 10%,#abcfff,transparent 80%);}
 .ts-light-firelight {animation:ts-firelight 3.2s ease-in-out infinite alternate;}
 .ts-light-caustics {background:repeating-radial-gradient(ellipse at 10% 10%,transparent 0 18%,#c3ffff 19% 20%,transparent 22% 30%);animation:ts-rays 17s ease-in-out infinite alternate;}
 .ts-light-storm {animation:ts-storm 21s linear infinite;}
 .ts-paused *,html[data-studio-motion=off] .ts-environment * {animation-play-state:paused!important;}
 .ts-react-complete::after,.ts-react-warning::after {content:'';position:absolute;inset:0;box-shadow:inset 0 0 90px #edc97670;animation:ts-reaction .8s ease-out both;}
 .ts-react-warning::after {box-shadow:inset 0 0 60px #ff995440;}
 @keyframes ts-drift {to{transform:translate(var(--layer-drift),-90px);opacity:.2;}}
 @keyframes ts-fall {from{transform:translateY(-100vh) rotate(0);}to{transform:translate(var(--layer-drift),100vh) rotate(var(--layer-rotation));}}
 @keyframes ts-rain {to{translate:var(--rain-x,8px) 100vh;}}
 @keyframes ts-rise {to{transform:translate(var(--layer-drift),-100vh);}}
 @keyframes ts-flutter {50%{transform:translate(var(--layer-drift),-35px);opacity:.25;}to{transform:translate(0,0);}}
 @keyframes ts-fog {to{transform:translateX(45px) scale(1.12);opacity:calc(var(--layer-opacity) * .65);}}
 @keyframes ts-rays {to{transform:translateX(15px) rotate(2deg);opacity:.12;}}
 @keyframes ts-firelight {50%{opacity:.05;}to{opacity:.14;}}
 @keyframes ts-storm {0%,93%,97%,100%{opacity:.03;}94%,96%{opacity:.12;}}
 @keyframes ts-reaction {from{opacity:.7;}to{opacity:0;}}
 @media(prefers-reduced-motion:reduce) {.ts-environment * {animation:none!important;}.ts-light{transition:none!important;}}
 @media(prefers-reduced-transparency:reduce) {html[data-studio-theme]{--surface-card-opacity:100%!important;--surface-panel-opacity:100%!important;--surface-blur:0px!important;}}
}
/* Studio chrome is intentionally neutral: a draft only paints the preview. */
#theme-studio-view {--ts-ui-bg:#eef1f5;--ts-ui-surface:#fff;--ts-ui-ink:#172539;--ts-ui-muted:#516276;--ts-ui-line:#cad3df;color:var(--ts-ui-ink);}
#theme-studio-view .ts-shell {background:var(--ts-ui-bg);border:1px solid var(--ts-ui-line);border-radius:20px;padding:24px;min-width:0;}
#theme-studio-view :is(h2,h3,h4,p,label,summary,button,input,select,textarea) {font-family:system-ui,sans-serif;letter-spacing:normal;text-shadow:none;color:var(--ts-ui-ink);}
#theme-studio-view :is(h2,h3,h4) {margin:0 0 12px;}
#theme-studio-view :is(input,select,textarea) {background:#fff!important;color:#172539!important;border:1px solid #adbacc!important;border-radius:8px!important;max-width:100%;min-width:0;font-size:14px;padding:9px;}
#theme-studio-view button {background:#fff!important;color:#172539!important;border:1px solid #b5c2d2!important;border-radius:9px!important;padding:9px 12px;box-shadow:none!important;font-size:13px;min-height:36px;cursor:pointer;}
#theme-studio-view button.ts-primary {background:#204e72!important;color:#fff!important;border-color:#204e72!important;}
#theme-studio-view button:disabled {opacity:.5;cursor:default;}
#theme-studio-view button:focus-visible,#theme-studio-view input:focus-visible {outline:3px solid #568fe6;outline-offset:2px;}
.ts-head,.ts-toolbar,.ts-actions,.ts-preview-tools {display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.ts-head {justify-content:space-between;margin-bottom:20px;}.ts-head p,.ts-caption {font-size:13px;color:#516276!important;margin:5px 0 10px;}
.ts-tabs {display:flex;gap:8px;margin:16px 0;flex-wrap:wrap;}
.ts-tabs button[aria-selected=true] {border-color:#204e72!important;background:#e3edf7!important;}
.ts-library {display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:16px;}
.ts-tile {background:#fff;border:1px solid #cad3df;border-radius:14px;padding:14px;overflow:hidden;}
.ts-thumbnail {height:124px;border-radius:9px;display:grid;place-items:center;margin-bottom:14px;background:linear-gradient(135deg,var(--thumb-bg),var(--thumb-accent));}
.ts-thumbnail span {border-radius:12px;padding:15px 24px;background:var(--thumb-card);color:var(--thumb-text);font-size:20px;box-shadow:0 8px 25px #0002;}
.ts-tile h3 {font-size:16px;}.ts-tile .ts-actions button{padding:6px 8px;font-size:12px;}.ts-tile p{min-height:36px;}
.ts-editor {display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:18px;align-items:start;}
.ts-controls {min-width:0;max-height:calc(100dvh - 180px);overflow:auto;overscroll-behavior:contain;padding-right:7px;}
.ts-controls details {background:#fff;border:1px solid #cad3df;border-radius:12px;margin:0 0 12px;padding:13px;}
.ts-controls summary {font-weight:650;cursor:pointer;margin-bottom:12px;}
.ts-field {display:grid;grid-template-columns:1fr minmax(90px,45%);gap:8px;align-items:center;font-size:13px;margin:10px 0;}
.ts-field label {font-size:13px;}.ts-field input[type=range] {width:100%;padding:0;}.ts-field output{font-variant-numeric:tabular-nums;color:#516276;}
.ts-color {display:grid;grid-template-columns:1fr 46px 72px;align-items:center;gap:6px;margin:8px 0;font-size:13px;}.ts-color input[type=color]{width:46px;height:34px;padding:2px!important;}.ts-color label{font-size:13px;}
.ts-preview {position:sticky;top:12px;min-width:0;background:#dae1ea;border-radius:12px;padding:12px;overflow:hidden;}
.ts-preview-window {height:620px;max-height:72dvh;width:100%;overflow:auto;margin-top:10px;border:1px solid #8293aa;border-radius:10px;background:#fff;}
.ts-preview-window iframe {border:0;width:1200px;height:800px;display:block;transform-origin:top left;background:#fff;}
.ts-preview-window[data-device=phone] {max-width:410px;margin-inline:auto;}.ts-preview-window[data-device=tablet] {max-width:810px;margin-inline:auto;}
.ts-status {padding:10px 12px;background:#e0edf6;color:#153c59!important;border-radius:9px;font-size:13px;min-height:38px;}
.ts-error {background:#ffe7e7;color:#782d37!important;}
.ts-layer {border:1px solid #d4dde7;border-radius:9px;padding:10px;margin:10px 0;}.ts-layer-head{display:flex;justify-content:space-between;gap:8px;align-items:center;}
.ts-warning {font-size:13px;padding:8px;border-left:3px solid #d6a329;background:#fff6de;margin:6px 0;}
.ts-warning[data-severity=error]{border-color:#ba3d42;background:#fff0f0;}
.ts-asset {display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #d8e0ea;padding:9px 0;font-size:12px;}
#ts-draft-banner {position:fixed;top:12px;left:50%;translate:-50% 0;z-index:20000;max-width:calc(100vw - 24px);background:#152e47;color:#fff;border:1px solid #a8c5df;border-radius:12px;padding:10px 14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;box-shadow:0 6px 24px #0004;font:13px system-ui;}
#ts-draft-banner button {background:#e7f0fa;color:#12324e;border:0;border-radius:7px;padding:7px 10px;font:12px system-ui;cursor:pointer;}
html[data-studio-frame] #theme-studio-view,html[data-studio-frame] #theme-studio-section-button {display:none!important;}
html[data-studio-frame] #preview-banner {font-size:12px;}
@media(max-width:1000px){.ts-editor{grid-template-columns:1fr;}.ts-controls{max-height:none;overflow:visible;}.ts-preview{position:relative;top:auto;grid-row:1;}.ts-preview-window{height:420px;}.ts-head{align-items:flex-start;}}
@media(max-width:600px){#theme-studio-view .ts-shell{padding:12px;}.ts-library{grid-template-columns:1fr;}.ts-preview{padding:8px;}.ts-color{grid-template-columns:1fr 42px 66px;}.ts-preview-tools{gap:4px;}}
@media print{.ts-environment,#ts-draft-banner,#theme-studio-view{display:none!important;}}


/* Source: control-center.css */
#control-center-view { min-width: 0; }
#control-center-view .cc-header { display:flex; gap:1rem; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; margin-bottom:1rem; }
#control-center-view h1 { font-size:clamp(1.5rem,4vw,2rem); margin:.25rem 0; }
#control-center-view .cc-nav, #control-center-view .cc-toolbar { display:flex; gap:.5rem; flex-wrap:wrap; margin:.75rem 0; }
#control-center-view .cc-nav .button[aria-current="page"] { outline:2px solid var(--accent); outline-offset:2px; }
#control-center-view .button { width:auto; min-height:44px; margin:0; white-space:normal; }
#control-center-view .cc-tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:1rem; }
#control-center-view .cc-tile { background:var(--surface); color:var(--text); padding:1.25rem; border:1px solid var(--border); border-radius:16px; display:flex; flex-direction:column; gap:.5rem; min-width:0; }
#control-center-view .cc-tile h3, #control-center-view .cc-tile p { margin:0; }
#control-center-view .cc-tile .button { align-self:flex-start; margin-top:auto; }
#control-center-view .cc-compact .cc-tile { padding:.75rem; gap:.35rem; }
#control-center-view .cc-version, #control-center-view .cc-phase { color:var(--muted); font-size:.9rem; }
#control-center-view .cc-fields { display:grid; gap:.75rem; margin:1rem 0; }
#control-center-view label { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; }
#control-center-view label:first-child { align-items:flex-start; }
#control-center-view input[type="checkbox"] { width:22px; height:22px; flex:none; }
#control-center-view select { max-width:100%; min-width:0; }
#control-center-view .cc-notice:not(:empty) { border:1px solid var(--accent); padding:.8rem; margin:.8rem 0; background:var(--surface); }
#control-center-view .cc-error { color:var(--text); border-left:5px solid #d64045; }
#control-center-view .cc-history { border-top:1px solid var(--border); padding:1rem 0; }
#control-center-view .cc-history h3 { text-transform:capitalize; }
#control-center-view .cc-comparison { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
#control-center-view dl > div { display:flex; gap:.5rem; justify-content:space-between; padding:.4rem 0; }
#control-center-view dd { margin:0; }
#control-center-view .cc-package dd { text-align:right; overflow-wrap:anywhere; min-width:0; }
#control-center-view .cc-package dt { flex:0 0 35%; }
#control-center-view input[type="file"] { max-width:100%; min-width:0; }
#control-center-view .cc-import-preview li { margin:.5rem 0; }
#control-center-view .cc-sandbox { border:2px dashed var(--accent); }
#control-center-view .cc-sample { pointer-events:none; border:1px dashed var(--border); padding:1rem; }
#control-center-view .cc-roadmap { color:var(--muted); }
#control-center-view .cc-notes-label { display:block; }
#control-center-view .cc-notes-label textarea { display:block; width:100%; max-width:100%; min-height:100px; margin-top:.5rem; resize:vertical; box-sizing:border-box; }
#control-center-view .cc-note-value { flex-direction:column; }
#control-center-view .cc-note-value dd { white-space:pre-wrap; overflow-wrap:anywhere; text-align:left; }
#control-center-view .cc-snapshot-name { display:block; margin-bottom:.75rem; }
#control-center-view .cc-snapshot-name input { display:block; width:100%; box-sizing:border-box; max-width:100%; margin-top:.5rem; }
#control-center-view .cc-snapshot-review { border-top:2px solid var(--border); margin-top:1rem; padding-top:1rem; }
#control-center-view .cc-snapshot-review h3, #control-center-view .cc-snapshot-list h3 { overflow-wrap:anywhere; }
@media(max-width:600px) { #control-center-view .cc-comparison { grid-template-columns:1fr; } #control-center-view .cc-toolbar .button { flex:1 1 140px; } #control-center-view .cc-nav .button { flex:1 1 110px; } }
/* Real component layout editor. Preview uses isolated memory storage and no writes. */
.le-panel { padding:24px; min-width:0; }
.le-workspace { display:grid; grid-template-columns:minmax(260px,360px) minmax(0,1fr); gap:24px; }
/* Neither editor container owns scrolling. Theme clipping on the outer
   panel also creates a false sticky scroll owner (including in Embermist). */
#control-center-view :is(.le-panel,.le-workspace) { overflow:visible!important; }
.le-controls { min-width:0; }
.le-card-list { list-style:none; padding:0; display:grid; gap:8px; }
.le-card-list li,.le-block { border:1px solid var(--border,#87979c); padding:10px; border-radius:10px; }
.le-card-list small { display:block; opacity:.8; }
.le-controls select,.le-controls input:not([type=checkbox]) { max-width:100%; }
.le-block { display:flex; align-items:center; gap:6px; margin-bottom:6px; }
.le-block label { flex:1; }
#control-center-view .le-preview { overflow:auto; min-width:0; border:1px solid var(--border,#87979c); border-radius:12px; align-self:start; position:sticky; top:12px; max-height:calc(100dvh - 24px); box-sizing:border-box; }
.le-preview h3 { padding:12px; }
.le-preview iframe { display:block; max-width:none; height:min(900px,calc(100dvh - 140px)); min-height:240px; border:0; }
.le-status { min-height:1.5em; }
html[data-layout-preview-context="room"] #dashboard-view > :not(.layout-room-preview) { display:none!important; }
.layout-room-preview { padding:20px; order:0!important; }
#dashboard-view.management-layout-active:not([hidden]) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
#dashboard-view.management-layout-active > * { grid-column:1/-1; min-width:0; order:1; }
#dashboard-view.management-layout-active:not([hidden]) > [data-management-size="half"] { grid-column:span 1; }
#dashboard-view.management-layout-active > .today-manager-tools { order:100; }
#dashboard-view.management-layout-active > .card-order-toolbar { order:101; }
.management-block-hidden,[data-management-card][hidden] { display:none!important; }
html[data-management-safe="true"] .ts-environment,html[data-management-safe="true"] .ts-material,html[data-management-safe="true"] #ts-runtime-styles { display:none!important; }
@media(max-width:900px) { .le-workspace { grid-template-columns:minmax(0,1fr); } #control-center-view .le-preview { position:static; max-height:none; } }
@media(max-width:700px) { #dashboard-view.management-layout-active:not([hidden]) { grid-template-columns:minmax(0,1fr);gap:14px; } #dashboard-view.management-layout-active:not([hidden]) > [data-management-size="half"] { grid-column:1/-1; } .le-panel { padding:12px; } }


/* Source: custom-card-builder.css */
/* Only the new builder. Existing Cards, hotel themes and Today stay untouched. */
/* Release cache generation: 4A-r1. */
#control-center-view .ccb-header { display:flex;gap:1rem;justify-content:space-between;align-items:start;flex-wrap:wrap; }
#control-center-view .ccb-header h2 { margin:.25rem 0; }
#control-center-view .ccb-host,#control-center-view .ccb-workspace { min-width:0;overflow:visible!important; }
#control-center-view .ccb-host { padding:22px;box-sizing:border-box; }
/* The editor shell cannot clip a sticky child. Keep decorative shell rails
   from extending its scroll width; the preview card retains theme geometry. */
#control-center-view .ccb-host::before,#control-center-view .ccb-host::after { display:none!important; }
#control-center-view .ccb-workspace { display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:1.5rem;align-items:start; }
#control-center-view .ccb-controls,#control-center-view .ccb-preview { min-width:0; }
#control-center-view .ccb-preview { position:sticky;top:12px;max-height:calc(100dvh - 24px);overflow:auto; }
#control-center-view .ccb-preview > h3 { margin:.25rem 0; }
#control-center-view .ccb-fields { display:grid;gap:.75rem; }
#control-center-view .ccb-fields h4 { margin:.5rem 0 0; }
#control-center-view .ccb-fields > label { display:grid;gap:.35rem;min-width:0; }
#control-center-view .ccb-fields :is(input:not([type=checkbox]),select) { width:100%;min-width:0;max-width:100%;box-sizing:border-box; }
#control-center-view .ccb-types { display:grid;gap:.5rem;padding:.75rem;min-width:0;border:1px solid var(--border); }
#control-center-view .ccb-types label { flex-wrap:nowrap;border:1px solid var(--border);padding:.75rem;cursor:pointer; }
#control-center-view .ccb-types label:has(:checked) { outline:2px solid var(--accent);outline-offset:1px; }
#control-center-view .ccb-types input { width:20px;height:20px;flex:none; }
#control-center-view .ccb-types small { display:block;color:var(--muted); }
#control-center-view .ccb-fields .ccb-check { display:flex; }
#control-center-view .ccb-notice { min-height:1.5em; }
#control-center-view .ccb-drafts { margin-top:1.5rem; }
#control-center-view .ccb-drafts ul { list-style:none;padding:0;display:grid;gap:.5rem; }
#control-center-view .ccb-drafts li { display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.75rem;border:1px solid var(--border); }
#control-center-view .ccb-drafts small { display:block;color:var(--muted); }
#control-center-view .ccb-host :is(button,input,select):focus-visible { outline:3px solid var(--accent);outline-offset:3px; }
.ccb-card { min-width:0;box-sizing:border-box; }
.ccb-card .panel-head { cursor:default!important; }
.ccb-card .panel-head h3::after { content:none!important; }
.ccb-card[data-custom-card-size=half] { width:50%;min-width:min(100%,240px); }
.ccb-card :is(h3,.ccb-subtitle,.ccb-room-detail,.ra-badge) { overflow-wrap:anywhere; }
.ccb-card .panel-body { display:grid;gap:.5rem;min-width:0; }
.ccb-card .ccb-number { display:block;font-size:clamp(2rem,6vw,3.5rem);line-height:1.15; }
.ccb-card .ccb-fraction { display:block;font-size:clamp(1.25rem,3vw,2rem); }
.ccb-card progress { display:block;width:100%;height:1rem;accent-color:var(--accent); }
.ccb-card .ccb-rooms { margin:0;padding:0;list-style:none;display:grid;gap:.5rem; }
.ccb-card .ccb-rooms li { padding:.5rem 0;border-bottom:1px solid var(--border);min-width:0; }
.ccb-card .ccb-room-identity { display:flex;align-items:center;gap:.5rem;flex-wrap:wrap; }
.ccb-card .ccb-room-detail { display:block;font-size:.9rem;color:var(--muted); }
.ccb-card .ccb-more { margin:0; }
@media(max-width:900px) { #control-center-view .ccb-workspace { grid-template-columns:minmax(0,1fr); } #control-center-view .ccb-preview { position:static;max-height:none; } }
@media(max-width:700px) { #control-center-view .ccb-host { padding:12px; } .ccb-card[data-custom-card-size=half] { width:100%; } }


/* Source: styles.css */
/* Reserve material precedence before legacy named layers. Important layer
   precedence is reversed, so this must precede the theme layer declarations. */
@layer theme-tuner-overrides, surface-material;

/* =========================================================================
   PHENIX MORNING DASHBOARD — visual system "dawn-shift console"
   -------------------------------------------------------------------------
   Identity motifs (see DESIGN.md):
   1. DAWN SEAM     — warm light hairline across the top of brand/topbar/panels/dialogs
   2. STUB CORNERS  — panels & plates clip the top-right corner sharp + punch a
                      ticket hole (accent dot) beside it
   3. ROOM KEY TAGS — room numbers as angular monospace plaques with a notch
   4. INDICATOR LAMPS — statuses as control-panel lamp plates (dot + glow)
   Every original selector is preserved so all functionality, markup, ids and
   data-view hooks behave exactly as before — only the skin changed.
   ========================================================================= */

/* ------------------------------------------------------------------ */
/* 1. THEME TOKENS                                                     */
/* ------------------------------------------------------------------ */

:root {
  /* structure */
  --bg: #08090a;
  --panel: #0f1011;
  --surface: #17181a;
  --surface-2: #202125;
  --border: rgba(255, 255, 255, .08);
  --border-soft: rgba(255, 255, 255, .05);
  /* ink */
  --text: #f7f8f8;
  --secondary: #d0d6e0;
  --muted: #8a8f98;
  --faint: #62666d;
  /* accents (vary per theme) */
  --accent: #5e6ad2;
  --accent-hover: #7170ff;
  /* semantic status colors — unchanged meaning */
  --green: #30b77b;
  --amber: #e2ad4c;
  --pink: #db6e9f;
  --purple: #9c82e6;
  --red: #ef6b73;
  /* selection / priority signal (existing convention, formalized) */
  --signal: color-mix(in srgb, var(--accent) 58%, #ffffff);
  --signal-soft: color-mix(in srgb, var(--accent) 24%, transparent);
  /* motion & corners */
  --radius: 12px;
  --radius-s: 4px;
  --radius-m: 14px;
  --radius-l: 20px;
  --sidebar: 224px;
  --motion: 140ms;
  --motion-slow: 240ms;
  /* Card movement is deliberately separate from ambient animation: it should
     feel like a physical panel settling into the dashboard, not a page effect. */
  --card-motion: 260ms;
  --card-motion-distance: 5px;
  --card-motion-ease: cubic-bezier(.2, .75, .25, 1);
  --card-content-max: 5000px;

  /* ======= derived system tokens (adapt to every theme) =========== */
  /* recessed well for inputs / recessed slots */
  --well: rgba(0, 0, 0, .28);
  --well-border: var(--border);
  /* raised hover tint */
  --raise: rgba(255, 255, 255, .06);
  /* soft accent fill (adapts to custom colors via color-mix) */
  --accent-soft: color-mix(in srgb, var(--accent) 13%, transparent);
  --accent-soft-2: color-mix(in srgb, var(--accent) 24%, transparent);
  /* accent-lit ink (readable accent text) */
  --accent-ink: color-mix(in srgb, var(--accent) 58%, #ffffff);
  /* tab-sheet ink stays readable on the dark mobile sheet */
  --sheet-ink: #ffffff;

  --on-accent: #ffffff;
  /* punch-hole + seam gradient: warm light rising off the accent */
  --seam: linear-gradient(90deg, rgba(255, 199, 135, .0), rgba(255, 199, 135, .55) 8%, var(--accent-soft-2) 46%, transparent 78%);
  --seam-strong: linear-gradient(90deg, color-mix(in srgb, var(--accent) 55%, #ffd9a0) 0%, var(--accent) 55%, transparent 85%);
  /* focus ring */
  --ring: color-mix(in srgb, var(--accent) 38%, transparent);
  /* ambient dawn glow (cherry-picked warm fade into theme glow) */
  --dawn-glow-a: rgba(255, 166, 92, .05);
  --dawn-glow-b: rgba(255, 92, 92, .028);
  /* elevation */
  --shadow-1: 0 1px 2px rgba(0, 0, 0, .45), 0 12px 28px -14px rgba(0, 0, 0, .5);
  --shadow-2: 0 2px 4px rgba(0, 0, 0, .5), 0 24px 64px -20px rgba(0, 0, 0, .62);
  --shadow-pop: 0 1px 0 rgba(255, 255, 255, .05), 0 32px 90px rgba(0, 0, 0, .6);
  /* interior top highlight (catches light) */
  --lit-edge: inset 0 1px 0 rgba(255, 255, 255, .065);
}

html[data-theme="midnight"] { --glow: rgba(94, 106, 210, .14); }

html[data-theme="teal"] {
  --bg: #0a1e1c; --panel: #0e2724; --surface: #14332e; --surface-2: #1c413a;
  --accent: #2ec9b4; --accent-hover: #47e0d4;
  --border: rgba(200, 232, 220, .14); --border-soft: rgba(200, 232, 220, .08);
  --muted: #b5b39e; --faint: #837f67; --glow: rgba(46, 201, 185, .16);
  --accent-soft: rgba(46, 201, 185, .14); --accent-ink: #a9f1e5;
  --ring: rgba(46, 201, 185, .40);
  --well: rgba(0, 0, 0, .30);
  --on-accent: #0a2b25;
  --text: #f6f0de; --secondary: #e8e0c8;
}
html[data-theme="forest"] {
  --bg: #071007; --panel: #0c140b; --surface: #111f10; --surface-2: #1a2c18;
  --accent: #4fae4f; --accent-hover: #6cc86c;
  --border: rgba(140, 214, 132, .12); --border-soft: rgba(140, 214, 132, .07);
  --muted: #93b58e; --faint: #5f7f5b; --glow: rgba(79, 174, 79, .16);
  --accent-soft: rgba(79, 174, 79, .13); --accent-ink: #a5dfa5;
  --ring: rgba(79, 174, 79, .36);
}
html[data-theme="royal"] {
  --bg: #0b0910; --panel: #0f0d16; --surface: #171326; --surface-2: #211b33;
  --accent: #8a5fd6; --accent-hover: #a37cf0;
  --border: rgba(184, 151, 230, .12); --border-soft: rgba(184, 151, 230, .07);
  --muted: #a292c4; --faint: #6b5f82; --glow: rgba(138, 95, 214, .17);
  --accent-soft: rgba(138, 95, 214, .14); --accent-ink: #c5a8f5;
  --ring: rgba(138, 95, 214, .38);
}
html[data-theme="rose"] {
  --bg: #100809; --panel: #150c0d; --surface: #211215; --surface-2: #2f1a1e;
  --accent: #d65f7f; --accent-hover: #ee7f9c;
  --border: rgba(230, 151, 170, .12); --border-soft: rgba(230, 151, 170, .07);
  --muted: #c09aa6; --faint: #82606b; --glow: rgba(214, 95, 127, .17);
  --accent-soft: rgba(214, 95, 127, .13); --accent-ink: #f4a8bc;
  --ring: rgba(214, 95, 127, .36);
}
html[data-theme="gold"] {
  --bg: #0f0c06; --panel: #151106; --surface: #211b0c; --surface-2: #302715;
  --accent: #d0a345; --accent-hover: #e8be63;
  --border: rgba(230, 197, 128, .12); --border-soft: rgba(230, 197, 128, .07);
  --muted: #b8a079; --faint: #7d6c4c; --glow: rgba(208, 163, 69, .16);
  --accent-soft: rgba(208, 163, 69, .14); --accent-ink: #ffdf9e;
  --ring: rgba(208, 163, 69, .36);
}
html[data-theme="ocean"] {
  --accent: #1687e8; --accent-hover: #48a2f3; --glow: rgba(22, 135, 232, .17);
  --accent-soft: rgba(22, 135, 232, .13); --accent-ink: #9cd2ff;
  --ring: rgba(22, 135, 232, .36);
}
html[data-theme="coral"] {
  --accent: #e56d5a; --accent-hover: #ef927f; --glow: rgba(229, 109, 90, .17);
  --accent-soft: rgba(229, 109, 90, .13); --accent-ink: #ffb9ab;
  --ring: rgba(229, 109, 90, .36);
}
html[data-theme="lavender"] {
  --accent: #9b7be6; --accent-hover: #b19af0; --glow: rgba(155, 123, 230, .18);
  --accent-soft: rgba(155, 123, 230, .14); --accent-ink: #cdb8ff;
  --ring: rgba(155, 123, 230, .38);
}
html[data-theme="ember"] {
  --accent: #df8a31; --accent-hover: #eca653; --glow: rgba(223, 138, 49, .18);
  --accent-soft: rgba(223, 138, 49, .14); --accent-ink: #ffc98a;
  --ring: rgba(223, 138, 49, .38);
}

/* Retro-modern hotel themes. Each keeps the operational color semantics but
   gives the dashboard a distinct boutique-hotel silhouette and finish. */
html[data-theme="atelier"] { --bg:#102824; --panel:#173830; --surface:#214940; --surface-2:#2d5b50; --accent:#d0a45b; --accent-hover:#e5be7c; --muted:#b9c8b7; --faint:#789389; --glow:rgba(208,164,91,.16); --accent-soft:rgba(208,164,91,.14); --accent-ink:#f5dca7; --ring:rgba(208,164,91,.4); --text:#f4eddd; --secondary:#e8ddc6; }
html[data-theme="command"] { --bg:#101619; --panel:#172126; --surface:#1a2a2e; --surface-2:#274044; --accent:#62d0a0; --accent-hover:#8be6bc; --muted:#91a59e; --faint:#667d78; --glow:rgba(98,208,160,.16); --accent-soft:rgba(98,208,160,.14); --accent-ink:#baffd8; --ring:rgba(98,208,160,.4); }
html[data-theme="floorplan"] { --bg:#182538; --panel:#223653; --surface:#2d4668; --surface-2:#3d5d84; --accent:#ff836d; --accent-hover:#ffad9d; --muted:#b9c7d5; --faint:#7d91aa; --glow:rgba(255,131,109,.16); --accent-soft:rgba(255,131,109,.14); --accent-ink:#ffd0c7; --ring:rgba(255,131,109,.38); }
html[data-theme="deco"] { --bg:#211b1d; --panel:#2c2225; --surface:#392a2f; --surface-2:#4a353a; --accent:#c49a50; --accent-hover:#e0bb70; --muted:#c9aa9b; --faint:#8b6c67; --glow:rgba(196,154,80,.17); --accent-soft:rgba(196,154,80,.14); --accent-ink:#f3d58c; --ring:rgba(196,154,80,.4); --text:#f7ead5; --secondary:#ead8c1; }
html[data-theme="palm"] { --bg:#173e3a; --panel:#20524b; --surface:#2b655b; --surface-2:#3e7a6d; --accent:#f2aa77; --accent-hover:#ffc39c; --muted:#c5e2d8; --faint:#87aaa0; --glow:rgba(242,170,119,.17); --accent-soft:rgba(242,170,119,.14); --accent-ink:#ffe0c3; --ring:rgba(242,170,119,.4); --text:#fff8ea; --secondary:#f6e7d2; }
html[data-theme="ledger"] { --bg:#2f302b; --panel:#3b3b33; --surface:#4b493d; --surface-2:#5d5949; --accent:#c06a58; --accent-hover:#d98b75; --muted:#c7c1ae; --faint:#96917f; --glow:rgba(192,106,88,.16); --accent-soft:rgba(192,106,88,.14); --accent-ink:#f2b09b; --ring:rgba(192,106,88,.38); --text:#f8f0df; --secondary:#e6dcc6; }
html[data-theme="riviera"] { --bg:#173c3c; --panel:#205550; --surface:#2f6b63; --surface-2:#47857a; --accent:#e88b76; --accent-hover:#f4aa95; --muted:#bfddd3; --faint:#82aba1; --glow:rgba(232,139,118,.17); --accent-soft:rgba(232,139,118,.14); --accent-ink:#ffd1c5; --ring:rgba(232,139,118,.4); --text:#fff9ee; --secondary:#f8e8d6; }
html[data-theme="veranda"] { --bg:#173d38; --panel:#234d45; --surface:#2e6156; --surface-2:#467668; --accent:#c49b4f; --accent-hover:#e0bf79; --muted:#bfd3c7; --faint:#7d9e90; --glow:rgba(196,155,79,.16); --accent-soft:rgba(196,155,79,.14); --accent-ink:#f1d796; --ring:rgba(196,155,79,.4); --text:#fff4df; --secondary:#eadcc2; }
html[data-theme="lounge"] { --bg:#172238; --panel:#222e48; --surface:#2d3a57; --surface-2:#40516e; --accent:#b4685d; --accent-hover:#d18c7e; --muted:#b8c4d1; --faint:#7d8da2; --glow:rgba(180,104,93,.16); --accent-soft:rgba(180,104,93,.14); --accent-ink:#efb0a0; --ring:rgba(180,104,93,.38); --text:#f6efdf; --secondary:#e4d9c4; }
html[data-theme="noir"] { --bg:#0d0d0e; --panel:#171617; --surface:#242021; --surface-2:#332a28; --accent:#c9a15a; --accent-hover:#e6c57e; --muted:#aa9b8a; --faint:#71645a; --glow:rgba(201,161,90,.18); --accent-soft:rgba(201,161,90,.14); --accent-ink:#f5d896; --ring:rgba(201,161,90,.42); --text:#f2e8d5; --secondary:#e5d4b8; }
html[data-theme="continental"] { --bg:#262628; --panel:#312d30; --surface:#393236; --surface-2:#4a3c42; --accent:#d0ab66; --accent-hover:#e6c889; --muted:#ad9f93; --faint:#776b68; --glow:rgba(116,53,63,.2); --accent-soft:rgba(116,53,63,.2); --accent-ink:#f0d49a; --ring:rgba(208,171,102,.4); --text:#f1e5d0; --secondary:#e4d3b9; }
html[data-theme="concierge"] { --bg:#111a2a; --panel:#1b2739; --surface:#223148; --surface-2:#31445d; --accent:#d4b477; --accent-hover:#ebd39b; --muted:#9eabb9; --faint:#697b91; --glow:rgba(108,155,193,.18); --accent-soft:rgba(108,155,193,.15); --accent-ink:#f0d69d; --ring:rgba(212,180,119,.4); --text:#f4ecdc; --secondary:#d9d6ca; }
html[data-theme="future"] { --bg:#07111f; --panel:#0d1e31; --surface:#122b43; --surface-2:#1c4461; --accent:#6de5ff; --accent-hover:#a3f1ff; --muted:#9cb8c8; --faint:#668498; --glow:rgba(109,229,255,.2); --accent-soft:rgba(109,229,255,.14); --accent-ink:#baf7ff; --ring:rgba(109,229,255,.45); --text:#ecfbff; --secondary:#c6dce5; }
html[data-theme="cyberpunk"] { --bg:#12051b; --panel:#200b2b; --surface:#32103d; --surface-2:#51164e; --accent:#f5ed3a; --accent-hover:#fff77a; --muted:#d0a8d4; --faint:#96659f; --glow:rgba(255,35,179,.22); --accent-soft:rgba(255,35,179,.16); --accent-ink:#fff77a; --ring:rgba(255,35,179,.45); --text:#fff3ff; --secondary:#f0c9eb; }
html[data-theme="anime"] { --bg:#10162b; --panel:#172343; --surface:#20315a; --surface-2:#30477b; --accent:#ff7fb8; --accent-hover:#ffa8d0; --muted:#b7c5e4; --faint:#7d91bb; --glow:rgba(127,220,255,.2); --accent-soft:rgba(255,127,184,.15); --accent-ink:#ffd0e5; --ring:rgba(255,127,184,.42); --text:#fff7fb; --secondary:#d7e4ff; }
html[data-theme="cozy"] { --bg:#211a17; --panel:#30231e; --surface:#463127; --surface-2:#604538; --accent:#e5a86b; --accent-hover:#f4c58d; --muted:#d0b9a5; --faint:#9e826f; --glow:rgba(229,168,107,.18); --accent-soft:rgba(229,168,107,.15); --accent-ink:#ffe1b9; --ring:rgba(229,168,107,.4); --text:#fff6eb; --secondary:#f0dcc8; }
html[data-theme="library"] { --bg:#17151d; --panel:#25202b; --surface:#342b3c; --surface-2:#4a3b52; --accent:#d3a85f; --accent-hover:#e8c984; --muted:#c8bbca; --faint:#90819a; --glow:rgba(211,168,95,.17); --accent-soft:rgba(211,168,95,.14); --accent-ink:#f5d99a; --ring:rgba(211,168,95,.4); --text:#f8f1e8; --secondary:#e8d9c8; }
html[data-theme="plants"] { --bg:#10221b; --panel:#183127; --surface:#244638; --surface-2:#35624c; --accent:#8dd18a; --accent-hover:#b0e7a8; --muted:#b9d4bf; --faint:#789d82; --glow:rgba(141,209,138,.18); --accent-soft:rgba(141,209,138,.14); --accent-ink:#c9f2c1; --ring:rgba(141,209,138,.4); --text:#eff9ed; --secondary:#d8eed8; }
html[data-theme="zen"] { --bg:#1b2221; --panel:#27302d; --surface:#37403b; --surface-2:#4a554e; --accent:#b8c6a5; --accent-hover:#d4dfc4; --muted:#c0cbc1; --faint:#85938a; --glow:rgba(184,198,165,.14); --accent-soft:rgba(184,198,165,.12); --accent-ink:#e0ebd2; --ring:rgba(184,198,165,.36); --text:#eef2eb; --secondary:#dce5db; }
html[data-theme="sunset"] { --bg:#2a1715; --panel:#3b211d; --surface:#552c25; --surface-2:#704137; --accent:#f0a06b; --accent-hover:#ffc08f; --muted:#d7b3a2; --faint:#a27a6e; --glow:rgba(240,160,107,.18); --accent-soft:rgba(240,160,107,.15); --accent-ink:#ffe0c6; --ring:rgba(240,160,107,.4); --text:#fff4ec; --secondary:#f3d7c7; }
html[data-theme="conservatory"] { --bg:#0d1b1b; --panel:#142929; --surface:#1d3a37; --surface-2:#2c5550; --accent:#c39ad9; --accent-hover:#dfb9ef; --muted:#b5ccc3; --faint:#71958b; --glow:rgba(130,214,190,.18); --accent-soft:rgba(195,154,217,.14); --accent-ink:#e8cbf2; --ring:rgba(195,154,217,.4); --text:#eff9f3; --secondary:#d7eee4; }
html[data-theme="rain"] { --bg:#111a29; --panel:#1a293c; --surface:#243b55; --surface-2:#365675; --accent:#82c7e8; --accent-hover:#a9def2; --muted:#b6cbe0; --faint:#718ca7; --glow:rgba(130,199,232,.18); --accent-soft:rgba(130,199,232,.14); --accent-ink:#cceeff; --ring:rgba(130,199,232,.4); --text:#eef7ff; --secondary:#d7e6f3; }
html[data-theme="porcelain"] { --bg:#11151d; --panel:#202735; --surface:#2b3547; --surface-2:#3d4d67; --accent:#78a9e8; --accent-hover:#a4c7f3; --muted:#b8c7dc; --faint:#778aa7; --glow:rgba(120,169,232,.18); --accent-soft:rgba(120,169,232,.14); --accent-ink:#c9ddff; --ring:rgba(120,169,232,.4); --text:#f3f7ff; --secondary:#dbe5f5; }
html[data-theme="citrus"] { --bg:#182019; --panel:#27321f; --surface:#3b4726; --surface-2:#566238; --accent:#e3d36b; --accent-hover:#f3e493; --muted:#cbd0a9; --faint:#909868; --glow:rgba(227,211,107,.17); --accent-soft:rgba(227,211,107,.14); --accent-ink:#fff2a8; --ring:rgba(227,211,107,.4); --text:#f8fae9; --secondary:#e7ebc9; }

html[data-theme="atelier"] .room-card, html[data-theme="palm"] .room-card, html[data-theme="riviera"] .room-card { border-radius: 22px 8px 22px 8px; }
html[data-theme="deco"] .room-card, html[data-theme="noir"] .room-card { border-radius: 3px 20px 3px 3px; }
html[data-theme="ledger"] .room-card, html[data-theme="lounge"] .room-card { border-radius: 3px; }
html[data-theme="veranda"] .room-card, html[data-theme="concierge"] .room-card { border-radius: 5px 5px 22px 5px; }
html[data-theme="continental"] .room-card { border-radius: 14px 4px 14px 4px; }
html[data-theme="floorplan"] .room-card { border-radius: 18px 18px 4px 18px; }
html[data-theme="command"] .room-card { border-radius: 4px; }
html[data-theme="atelier"] .panel, html[data-theme="palm"] .panel, html[data-theme="riviera"] .panel { border-radius: 20px; }
html[data-theme="deco"] .panel, html[data-theme="noir"] .panel, html[data-theme="ledger"] .panel { border-radius: 3px; }
html[data-theme="continental"] .panel { border-radius: 12px; }
html[data-theme="concierge"] .panel { border-radius: 5px; }

html[data-theme="scallop"] { --bg:#24111f; --panel:#35192d; --surface:#48213c; --surface-2:#63304f; --accent:#f09ac2; --accent-hover:#ffc0df; --muted:#d6b0c8; --faint:#a27496; --glow:rgba(240,154,194,.2); --accent-soft:rgba(240,154,194,.15); --accent-ink:#ffd8ea; --ring:rgba(240,154,194,.42); --text:#fff3f8; --secondary:#f3d9e7; }
html[data-theme="archival"] { --bg:#172421; --panel:#243832; --surface:#315047; --surface-2:#42675a; --accent:#d7c27c; --accent-hover:#f1dfa0; --muted:#bfd0c3; --faint:#819c8e; --glow:rgba(215,194,124,.18); --accent-soft:rgba(215,194,124,.14); --accent-ink:#f8eab4; --ring:rgba(215,194,124,.4); --text:#f5f0df; --secondary:#e1dcc4; }
/* Silhouettes adapted from Stephanie's label reference: lobes, ticket cuts, facets, and arch notches. */
html[data-theme="scallop"] .panel, html[data-theme="scallop"] .room-card, html[data-theme="scallop"] .metric { border-radius: 28px; }
html[data-theme="ticket"] .panel, html[data-theme="ticket"] .room-card, html[data-theme="ticket"] .metric { border-radius: 16px; clip-path: polygon(0 9%, 4% 9%, 5% 0, 95% 0, 96% 9%, 100% 9%, 100% 91%, 96% 91%, 95% 100%, 5% 100%, 4% 91%, 0 91%); }
html[data-theme="sunburst"] .panel, html[data-theme="sunburst"] .room-card, html[data-theme="sunburst"] .metric { border-radius: 18px; clip-path: polygon(50% 0, 58% 5%, 68% 2%, 75% 9%, 86% 8%, 91% 18%, 99% 25%, 95% 36%, 100% 50%, 95% 63%, 99% 75%, 91% 82%, 86% 92%, 75% 91%, 68% 98%, 58% 95%, 50% 100%, 42% 95%, 32% 98%, 25% 91%, 14% 92%, 9% 82%, 1% 75%, 5% 63%, 0 50%, 5% 36%, 1% 25%, 9% 18%, 14% 8%, 25% 9%, 32% 2%, 42% 5%); }
html[data-theme="archival"] .panel, html[data-theme="archival"] .room-card, html[data-theme="archival"] .metric { border-radius: 22px 22px 6px 6px; }
html[data-theme="archival"] .panel::before, html[data-theme="archival"] .room-card::before { border-radius: 50% 50% 0 0; }
html[data-theme="cozy"] .panel, html[data-theme="cozy"] .room-card, html[data-theme="cozy"] .metric { border-radius: 22px 10px 22px 10px; }
html[data-theme="library"] .panel, html[data-theme="library"] .room-card, html[data-theme="library"] .metric { border-radius: 5px 16px 5px 5px; }
html[data-theme="plants"] .panel, html[data-theme="plants"] .room-card, html[data-theme="plants"] .metric { border-radius: 18px 6px 18px 6px; }
html[data-theme="zen"] .panel, html[data-theme="zen"] .room-card, html[data-theme="zen"] .metric { border-radius: 14px; }

/* Three deliberately different studio directions. */
html[data-theme="bauhaus"] {
  --bg: #17191d; --panel: #22262c; --surface: #f2eee5; --surface-2: #d9d4c8;
  --accent: #e44b35; --accent-hover: #ff654c; --muted: #b9b5ad; --faint: #777a7f;
  --glow: rgba(228, 75, 53, .18); --accent-soft: rgba(228, 75, 53, .14); --accent-ink: #ffb2a1;
  --ring: rgba(228, 75, 53, .42); --text: #f7f4ec; --secondary: #ded9ce;
}
html[data-theme="terracotta"] {
  --bg: #211512; --panel: #32201b; --surface: #492b21; --surface-2: #674033;
  --accent: #e4895c; --accent-hover: #f4aa79; --muted: #d5b3a2; --faint: #9d7464;
  --glow: rgba(228, 137, 92, .2); --accent-soft: rgba(228, 137, 92, .15); --accent-ink: #ffd0b5;
  --ring: rgba(228, 137, 92, .4); --text: #fff2e8; --secondary: #ecd4c5;
}
html[data-theme="alpine"] {
  --bg: #101820; --panel: #192731; --surface: #223744; --surface-2: #355565;
  --accent: #a7e4e8; --accent-hover: #d0f5f5; --muted: #afc6cf; --faint: #708a96;
  --glow: rgba(167, 228, 232, .18); --accent-soft: rgba(167, 228, 232, .14); --accent-ink: #d2fbfb;
  --ring: rgba(167, 228, 232, .42); --text: #effbfc; --secondary: #d0e3e6;
}
html[data-theme="bauhaus"] :is(.panel, .metric, .room-card) { border-radius: 2px; border-width: 2px; box-shadow: 5px 5px 0 rgba(13, 16, 20, .7), var(--lit-edge); }
html[data-theme="terracotta"] :is(.panel, .metric, .room-card) { border-radius: 4px 18px 4px 18px; }
html[data-theme="alpine"] :is(.panel, .metric, .room-card) { border-radius: 18px; box-shadow: 0 10px 28px rgba(4, 16, 24, .3), var(--lit-edge); }
html[data-theme="bauhaus"], html[data-theme="bauhaus"] button, html[data-theme="bauhaus"] input, html[data-theme="bauhaus"] select, html[data-theme="bauhaus"] textarea { font-family: "Space Mono", ui-monospace, monospace; }
html[data-theme="bauhaus"] h1, html[data-theme="bauhaus"] h2, html[data-theme="bauhaus"] h3, html[data-theme="bauhaus"] h4 { text-transform: uppercase; letter-spacing: .06em; }
html[data-theme="terracotta"] h1, html[data-theme="terracotta"] h2, html[data-theme="terracotta"] h3, html[data-theme="terracotta"] h4 { font-family: "Sentient", Georgia, serif; font-weight: 500; }
html[data-theme="alpine"] h1, html[data-theme="alpine"] h2, html[data-theme="alpine"] h3, html[data-theme="alpine"] h4 { font-weight: 400; letter-spacing: .015em; }

/* daylight registers for the three new directions */
html[data-mode="light"][data-theme="bauhaus"] { --bg:#eee9de; --panel:#faf8f1; --surface:#fffdf7; --surface-2:#d7e0ec; --accent:#c9362c; --accent-hover:#e04d3d; --text:#20242a; --secondary:#4e5660; --muted:#69717a; --faint:#83878b; --border:#c6c0b4; --border-soft:#ded9cf; --accent-soft:rgba(201,54,44,.12); --ring:rgba(201,54,44,.3); --on-accent:#fffaf1; }
html[data-mode="light"][data-theme="terracotta"] { --bg:#f0dfd0; --panel:#fff7ef; --surface:#fffaf4; --surface-2:#e9c5ad; --accent:#a84d31; --accent-hover:#c46643; --text:#3c251f; --secondary:#704c41; --muted:#846a60; --faint:#9e8174; --border:#d8b9a5; --border-soft:#ecd8ca; --accent-soft:rgba(168,77,49,.12); --ring:rgba(168,77,49,.3); --on-accent:#fffaf1; }
html[data-mode="light"][data-theme="alpine"] { --bg:#e8f1f3; --panel:#f8fcfc; --surface:#ffffff; --surface-2:#d7e8eb; --accent:#287d88; --accent-hover:#3699a4; --text:#1b3038; --secondary:#48636c; --muted:#627c84; --faint:#7f969c; --border:#b9d1d5; --border-soft:#d9e7e9; --accent-soft:rgba(40,125,136,.12); --ring:rgba(40,125,136,.3); --on-accent:#f5ffff; }
html[data-mode="light"][data-theme="cozy"] { --bg:#f6eee7; --panel:#fffaf5; --surface:#f3dfcd; --surface-2:#e8c4a7; --accent:#a85e2d; --accent-hover:#87451f; --muted:#745d50; --faint:#a18473; --text:#34251e; --secondary:#5a4032; --border:rgba(123,70,38,.2); }
html[data-mode="light"][data-theme="library"] { --bg:#f0edf3; --panel:#fcfaff; --surface:#e5ddec; --surface-2:#d0c1dc; --accent:#80572c; --accent-hover:#65411f; --muted:#675a70; --faint:#91839b; --text:#2a2330; --secondary:#514455; --border:rgba(91,63,111,.2); }
html[data-mode="light"][data-theme="plants"] { --bg:#edf6ee; --panel:#fbfffb; --surface:#dceede; --surface-2:#c0dfc2; --accent:#317344; --accent-hover:#245b34; --muted:#55725c; --faint:#78947d; --text:#1f3325; --secondary:#3c5843; --border:rgba(49,115,68,.2); }
html[data-mode="light"][data-theme="zen"] { --bg:#eef1ed; --panel:#fbfcfa; --surface:#e1e8e0; --surface-2:#cad8cc; --accent:#657b65; --accent-hover:#4f654f; --muted:#5f6e63; --faint:#849188; --text:#26332b; --secondary:#435347; --border:rgba(76,101,80,.2); }
html[data-mode="light"][data-theme="conservatory"] { --bg:#eaf4ef; --panel:#f9fffb; --surface:#d9eee5; --surface-2:#bddbce; --accent:#7a5290; --accent-hover:#613b78; --muted:#587267; --faint:#7d998d; --text:#20352d; --secondary:#3d5a4c; --border:rgba(70,111,91,.2); }
html[data-mode="light"][data-theme="rain"] { --bg:#eaf2f8; --panel:#f9fcff; --surface:#dcebf5; --surface-2:#c4ddec; --accent:#317ca2; --accent-hover:#24617f; --muted:#587184; --faint:#7a92a4; --text:#20303b; --secondary:#40586a; --border:rgba(49,103,135,.2); }
html[data-mode="light"][data-theme="porcelain"] { --bg:#eef2f8; --panel:#fbfdff; --surface:#dfe8f5; --surface-2:#c7d7ec; --accent:#3568a3; --accent-hover:#285486; --muted:#5d6f88; --faint:#7e91aa; --text:#202b3a; --secondary:#41536d; --border:rgba(53,104,163,.2); }
html[data-mode="light"][data-theme="citrus"] { --bg:#f3f5e7; --panel:#fcfff4; --surface:#e8edc5; --surface-2:#d6dfa0; --accent:#6d741f; --accent-hover:#565d16; --muted:#6d7548; --faint:#929966; --text:#30351b; --secondary:#50582f; --border:rgba(109,116,31,.2); }
html[data-mode="light"][data-theme="sunset"] { --bg:#fff0e7; --panel:#fffaf6; --surface:#f7dcca; --surface-2:#edbca3; --accent:#b5532f; --accent-hover:#913e23; --muted:#785d52; --faint:#a17c6e; --text:#3b281f; --secondary:#624238; --border:rgba(181,83,47,.2); }

html[data-mode="light"][data-theme="cozy"] .panel, html[data-mode="light"][data-theme="cozy"] .room-card, html[data-mode="light"][data-theme="cozy"] .metric { border-radius:22px 10px 22px 10px; }
html[data-mode="light"][data-theme="library"] .panel, html[data-mode="light"][data-theme="library"] .room-card, html[data-mode="light"][data-theme="library"] .metric { border-radius:5px 16px 5px 5px; }
html[data-mode="light"][data-theme="plants"] .panel, html[data-mode="light"][data-theme="plants"] .room-card, html[data-mode="light"][data-theme="plants"] .metric { border-radius:18px 6px 18px 6px; }
html[data-mode="light"][data-theme="zen"] .panel, html[data-mode="light"][data-theme="zen"] .room-card, html[data-mode="light"][data-theme="zen"] .metric { border-radius:14px; }
html[data-mode="light"][data-theme="conservatory"] .panel, html[data-mode="light"][data-theme="conservatory"] .room-card, html[data-mode="light"][data-theme="conservatory"] .metric { border-radius: 24px 8px 24px 8px; }
html[data-mode="light"][data-theme="rain"] .panel, html[data-mode="light"][data-theme="rain"] .room-card, html[data-mode="light"][data-theme="rain"] .metric { border-radius: 18px 4px 18px 4px; }
html[data-mode="light"][data-theme="porcelain"] .panel, html[data-mode="light"][data-theme="porcelain"] .room-card, html[data-mode="light"][data-theme="porcelain"] .metric { border-radius: 4px; }
html[data-mode="light"][data-theme="citrus"] .panel, html[data-mode="light"][data-theme="citrus"] .room-card, html[data-mode="light"][data-theme="citrus"] .metric { border-radius: 20px 7px 20px 7px; }
html[data-mode="light"][data-theme="sunset"] .panel, html[data-mode="light"][data-theme="sunset"] .room-card, html[data-mode="light"][data-theme="sunset"] .metric { border-radius: 22px 9px 22px 9px; }
html[data-mode="light"][data-theme="scallop"] { --bg:#f6e8ef; --panel:#fff8fb; --surface:#f8dce9; --surface-2:#efbfd5; --accent:#ae477b; --accent-hover:#8e3564; --muted:#6f5362; --faint:#967584; --text:#38222d; --secondary:#573e4b; --border:rgba(122,54,91,.2); }
html[data-mode="light"][data-theme="ticket"] { --bg:#eaf1f7; --panel:#f9fcff; --surface:#dceaf5; --surface-2:#c2d9e9; --accent:#17638e; --accent-hover:#0e4d72; --muted:#536b7d; --faint:#71899b; --text:#1b2d3b; --secondary:#385267; --border:rgba(29,83,119,.2); }
html[data-mode="light"][data-theme="sunburst"] { --bg:#fff1df; --panel:#fffaf3; --surface:#ffe1bd; --surface-2:#f5c68d; --accent:#b94c16; --accent-hover:#963b0e; --muted:#765d4c; --faint:#a27c60; --text:#392418; --secondary:#5f4332; --border:rgba(146,67,19,.2); }
html[data-mode="light"][data-theme="archival"] { --bg:#edf2e9; --panel:#fbfdf8; --surface:#e0ebdf; --surface-2:#c8dcc9; --accent:#587a57; --accent-hover:#426443; --muted:#5c7060; --faint:#819485; --text:#23352a; --secondary:#405645; --border:rgba(63,99,68,.2); }
html[data-mode="light"][data-theme="scallop"] .panel, html[data-mode="light"][data-theme="scallop"] .room-card, html[data-mode="light"][data-theme="scallop"] .metric { border-radius:28px; }
html[data-mode="light"][data-theme="ticket"] .panel, html[data-mode="light"][data-theme="ticket"] .room-card, html[data-mode="light"][data-theme="ticket"] .metric { border-radius:16px; }
html[data-mode="light"][data-theme="sunburst"] .panel, html[data-mode="light"][data-theme="sunburst"] .room-card, html[data-mode="light"][data-theme="sunburst"] .metric { border-radius:18px; }
html[data-mode="light"][data-theme="archival"] .panel, html[data-mode="light"][data-theme="archival"] .room-card, html[data-mode="light"][data-theme="archival"] .metric { border-radius:22px 22px 6px 6px; }

/* Card motion follows the selected visual language: softer themes breathe,
   editorial themes settle, and console themes snap with a shorter travel. */
html[data-theme="atelier"], html[data-theme="palm"], html[data-theme="riviera"],
html[data-theme="scallop"], html[data-theme="cozy"], html[data-theme="plants"],
html[data-theme="zen"], html[data-theme="conservatory"], html[data-theme="veranda"] {
  --card-motion: 320ms;
  --card-motion-distance: 3px;
  --card-motion-ease: cubic-bezier(.16, 1, .3, 1);
}
html[data-theme="command"], html[data-theme="future"], html[data-theme="cyberpunk"],
html[data-theme="anime"], html[data-theme="arcade"], html[data-theme="solar"] {
  --card-motion: 190ms;
  --card-motion-distance: 2px;
  --card-motion-ease: cubic-bezier(.2, .85, .3, 1);
}
html[data-theme="library"], html[data-theme="archival"], html[data-theme="ledger"],
html[data-theme="noir"], html[data-theme="deco"], html[data-theme="continental"],
html[data-theme="concierge"] {
  --card-motion: 280ms;
  --card-motion-distance: 4px;
  --card-motion-ease: cubic-bezier(.22, .72, .28, 1);
}
html[data-theme="bauhaus"] {
  --card-motion: 180ms;
  --card-motion-distance: 1px;
  --card-motion-ease: cubic-bezier(.2, .9, .25, 1);
}
html[data-theme="terracotta"] {
  --card-motion: 300ms;
  --card-motion-distance: 4px;
  --card-motion-ease: cubic-bezier(.16, 1, .3, 1);
}
html[data-theme="alpine"] {
  --card-motion: 360ms;
  --card-motion-distance: 2px;
  --card-motion-ease: cubic-bezier(.22, .8, .28, 1);
}

/* dilute-token fallbacks for browsers without color-mix (older phones) */
@supports not (color: color-mix(in srgb, red, blue)) {
  :root {
    --accent-soft: rgba(94, 106, 210, .13);
    --accent-soft-2: rgba(94, 106, 210, .22);
    --accent-ink: #aab3ff;
    --ring: rgba(94, 106, 210, .36);
    --seam: linear-gradient(90deg, transparent, rgba(94, 106, 210, .22) 46%, transparent 78%);
    --signal: #aab3ff;
    --signal-soft: rgba(94, 106, 210, .22);
  }
}

/* ------------------------------------------------------------------ */
/* 2. BASE + BOARD TEXTURE                                             */
/* ------------------------------------------------------------------ */

* { box-sizing: border-box; }

html {
  background: var(--bg);
  color-scheme: dark;
  font-family: "Space Grotesk", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-feature-settings: "cv01", "ss03";
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  font-size: 15px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: tabular-nums;
}

/* thin, quiet scrollbars with accent-tinted thumb */
* { scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .18) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, .14);
  border-radius: 8px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover { background: var(--accent-soft-2); background-clip: padding-box; }
::-webkit-scrollbar-track { background: transparent; }

/* ambient light layer — theme glow + board texture + first light (was .ambient) */
.ambient {
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    /* warm first light falling from the top-left */
    radial-gradient(920px 480px at 18% -8%, var(--dawn-glow-b), transparent 62%),
    radial-gradient(680px 420px at 108% -12%, var(--dawn-glow-a), transparent 60%),
    /* accent-lit glow per theme */
    radial-gradient(820px 420px at 82% -10%, var(--glow, rgba(94, 106, 210, .14)), transparent 68%);
  z-index: 0;
}
.app-shell { position: relative; z-index: 2; }

/* Keep the HTML hidden contract stronger than component display rules such as
   .button { display: inline-flex; }. Without this, manager-only buttons can
   remain visible to non-managers after showApp() sets hidden=true. */
[hidden] { display: none !important; }

/* phone nav is a dropdown menu — hidden on desktop, shown in the mobile query */
#mobile-nav-select{display:none}

button, input, select, textarea { font: inherit; }
button, input, select, textarea { min-height: 44px; }
button { cursor: pointer; }
:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
  border-radius: 6px;
}

/* ------------------------------------------------------------------ */
/* 3. TYPOGRAPHY & TEXT UTILITIES                                      */
/* ------------------------------------------------------------------ */

/* console-ticker eyebrow: a tiny punched flag precedes the label */
.eyebrow {
  font-size: 10px;
  letter-spacing: .16em;
  color: var(--faint);
  font-weight: 620;
  margin: 18px 0 7px;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 8px;
}
.eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  background: var(--accent);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 62% 100%, 38% 42%, 0 42%);
  box-shadow: 0 0 10px var(--accent-soft-2);
}

.auth-card h1, .topbar h1 {
  font-size: 28px;
  letter-spacing: -.6px;
  font-weight: 540;
  margin: 0;
  font-variant-numeric: normal;
}

.muted { color: var(--muted); }

h1, h2, h3, h4 { font-variant-numeric: normal; }

/* Theme typography and highlight language. The operational UI stays readable,
   while headings and active controls carry each room's personality. */
html[data-theme="cozy"], html[data-theme="cozy"] button, html[data-theme="cozy"] input, html[data-theme="cozy"] select, html[data-theme="cozy"] textarea { font-family: "Space Grotesk", "Trebuchet MS", sans-serif; }
html[data-theme="library"] , html[data-theme="library"] button, html[data-theme="library"] input, html[data-theme="library"] select, html[data-theme="library"] textarea { font-family: "Avenir Next", "Helvetica Neue", sans-serif; }
html[data-theme="plants"], html[data-theme="plants"] button, html[data-theme="plants"] input, html[data-theme="plants"] select, html[data-theme="plants"] textarea { font-family: "Trebuchet MS", "Space Grotesk", sans-serif; }
html[data-theme="zen"], html[data-theme="zen"] button, html[data-theme="zen"] input, html[data-theme="zen"] select, html[data-theme="zen"] textarea { font-family: "Avenir Next", "Helvetica Neue", sans-serif; }
html[data-theme="conservatory"], html[data-theme="conservatory"] button, html[data-theme="conservatory"] input, html[data-theme="conservatory"] select, html[data-theme="conservatory"] textarea { font-family: "Avenir Next", "Helvetica Neue", sans-serif; }
html[data-theme="rain"], html[data-theme="rain"] button, html[data-theme="rain"] input, html[data-theme="rain"] select, html[data-theme="rain"] textarea { font-family: "Space Grotesk", "Helvetica Neue", sans-serif; }
html[data-theme="porcelain"], html[data-theme="porcelain"] button, html[data-theme="porcelain"] input, html[data-theme="porcelain"] select, html[data-theme="porcelain"] textarea { font-family: "Space Grotesk", "Helvetica Neue", sans-serif; }
html[data-theme="citrus"], html[data-theme="citrus"] button, html[data-theme="citrus"] input, html[data-theme="citrus"] select, html[data-theme="citrus"] textarea { font-family: "Space Grotesk", "Trebuchet MS", sans-serif; }
html[data-theme="sunset"], html[data-theme="sunset"] button, html[data-theme="sunset"] input, html[data-theme="sunset"] select, html[data-theme="sunset"] textarea { font-family: "Avenir Next", "Helvetica Neue", sans-serif; }
html[data-theme="cozy"] h1, html[data-theme="cozy"] h2, html[data-theme="cozy"] h3, html[data-theme="cozy"] h4,
html[data-theme="library"] h1, html[data-theme="library"] h2, html[data-theme="library"] h3, html[data-theme="library"] h4,
html[data-theme="conservatory"] h1, html[data-theme="conservatory"] h2, html[data-theme="conservatory"] h3, html[data-theme="conservatory"] h4,
html[data-theme="sunset"] h1, html[data-theme="sunset"] h2, html[data-theme="sunset"] h3, html[data-theme="sunset"] h4 { font-family: "Sentient", Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing: -.02em; }
html[data-theme="plants"] h1, html[data-theme="plants"] h2, html[data-theme="plants"] h3, html[data-theme="plants"] h4 { font-weight: 600; letter-spacing: -.015em; }
html[data-theme="zen"] h1, html[data-theme="zen"] h2, html[data-theme="zen"] h3, html[data-theme="zen"] h4 { font-weight: 400; letter-spacing: .01em; }
html[data-theme="porcelain"] h1, html[data-theme="porcelain"] h2, html[data-theme="porcelain"] h3, html[data-theme="porcelain"] h4 { font-family: "Space Grotesk", "Helvetica Neue", sans-serif; font-weight: 600; letter-spacing: .015em; }
html[data-theme="citrus"] h1, html[data-theme="citrus"] h2, html[data-theme="citrus"] h3, html[data-theme="citrus"] h4 { font-weight: 650; letter-spacing: -.025em; }

html[data-theme="cozy"] .nav-item.active, html[data-theme="cozy"] .mobile-nav-sheet-item.active { border-radius: 18px 8px 18px 8px; box-shadow: 0 0 22px color-mix(in srgb, var(--accent) 22%, transparent), inset 0 1px 0 rgba(255,255,255,.16); }
html[data-theme="library"] .nav-item.active, html[data-theme="library"] .mobile-nav-sheet-item.active { border-radius: 4px 12px 4px 4px; box-shadow: 0 0 18px color-mix(in srgb, var(--accent) 18%, transparent), inset 0 1px 0 rgba(255,255,255,.14); }
html[data-theme="plants"] .nav-item.active, html[data-theme="plants"] .mobile-nav-sheet-item.active { border-radius: 14px 5px 14px 5px; box-shadow: 0 0 20px color-mix(in srgb, var(--accent) 20%, transparent), inset 0 1px 0 rgba(255,255,255,.14); }
html[data-theme="zen"] .nav-item.active, html[data-theme="zen"] .mobile-nav-sheet-item.active { border-radius: 10px; box-shadow: 0 0 14px color-mix(in srgb, var(--accent) 14%, transparent), inset 0 1px 0 rgba(255,255,255,.1); }
html[data-theme="conservatory"] .nav-item.active, html[data-theme="conservatory"] .mobile-nav-sheet-item.active { border-radius: 18px 6px 18px 6px; box-shadow: 0 0 24px color-mix(in srgb, var(--accent) 24%, transparent), inset 0 1px 0 rgba(255,255,255,.16); }
html[data-theme="rain"] .nav-item.active, html[data-theme="rain"] .mobile-nav-sheet-item.active { border-radius: 12px 4px 12px 4px; box-shadow: 0 0 18px color-mix(in srgb, var(--accent) 22%, transparent), inset 0 1px 0 rgba(255,255,255,.14); }
html[data-theme="porcelain"] .nav-item.active, html[data-theme="porcelain"] .mobile-nav-sheet-item.active { border-radius: 3px; box-shadow: 0 0 12px color-mix(in srgb, var(--accent) 18%, transparent), inset 0 1px 0 rgba(255,255,255,.18); }
html[data-theme="citrus"] .nav-item.active, html[data-theme="citrus"] .mobile-nav-sheet-item.active { border-radius: 16px 5px 16px 5px; box-shadow: 0 0 20px color-mix(in srgb, var(--accent) 20%, transparent), inset 0 1px 0 rgba(255,255,255,.15); }
html[data-theme="sunset"] .nav-item.active, html[data-theme="sunset"] .mobile-nav-sheet-item.active { border-radius: 18px 7px 18px 7px; box-shadow: 0 0 22px color-mix(in srgb, var(--accent) 23%, transparent), inset 0 1px 0 rgba(255,255,255,.16); }
html[data-theme="cozy"] ::selection, html[data-theme="library"] ::selection, html[data-theme="plants"] ::selection, html[data-theme="zen"] ::selection, html[data-theme="conservatory"] ::selection, html[data-theme="rain"] ::selection, html[data-theme="porcelain"] ::selection, html[data-theme="citrus"] ::selection, html[data-theme="sunset"] ::selection { background: var(--accent); color: var(--on-accent); }

/* monospace data — room numbers, clocks, counts */
.ui-mono, .room-number, .vacant-room, .checkin-countdown, .sync-meta,
.summary-room-number, .arrival-room, .maintenance-room, .need-list-room,
.vacant-picker-room, .checkout-picker-room {
  font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-variant-numeric: tabular-nums;
}

/* Bed marker shown beside every room number: K = king, Q = queen. */
.room-bed-marker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55em;
  height: 1.55em;
  min-width: 26px;
  min-height: 26px;
  flex-shrink: 0;
  margin-left: 7px;
  border-radius: 5px;
  font: 800 clamp(16px, .78em, 22px)/1 "Space Mono", ui-monospace, monospace;
  vertical-align: .12em;
  letter-spacing: 0;
}
.room-bed-marker.bed-k {
  color: #d8ffe4;
  border: 2px solid #34f56b;
  background: #125731;
  box-shadow: inset 0 1px 0 #ffffff26;
}
.room-bed-marker.bed-q {
  color: #e1f2ff;
  border: 2px solid #2ca9ff;
  background: #124d79;
  box-shadow: inset 0 1px 0 #ffffff26;
}
html[data-mode="light"] .room-bed-marker.bed-k { color: #104b28; background: #bff2cf; border-color: #218647; }
html[data-mode="light"] .room-bed-marker.bed-q { color: #123e68; background: #cceaff; border-color: #247fbc; }

/* September 2026 operational layout cleanup. */
.plastic-scoop-card .panel-head { align-items: end; gap: 14px; }
.plastic-scoop-form { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.plastic-scoop-form select { min-width: 108px; }
.plastic-scoop-form input[type="hidden"] { display: none; }
.plastic-room-list { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 16px 16px; }
.plastic-room-chip { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 5px 8px 5px 12px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); }
.plastic-room-remove { width: 24px; height: 24px; padding: 0; border: 0; border-radius: 50%; background: color-mix(in srgb, var(--accent) 12%, transparent); color: var(--accent-ink); cursor: pointer; }
.plastic-room-imported { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }

.common-area-assignment-cards { display: grid; gap: 9px; padding: 0 16px 16px; }
.common-area-person-card { border: 1px solid var(--border-soft); border-radius: 12px; overflow: hidden; background: color-mix(in srgb, var(--surface) 94%, var(--accent) 6%); }
.common-area-person-card > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; cursor: pointer; font-weight: 700; list-style: none; }
.common-area-person-card > summary::-webkit-details-marker { display: none; }
.common-area-person-card > summary::after { content: "▾"; color: var(--muted); transition: transform var(--motion) ease; }
.common-area-person-card[open] > summary::after { transform: rotate(180deg); }
.common-area-person-count { margin-left: auto; color: var(--muted); font-size: 12px; font-weight: 500; }
.common-area-person-body { display: grid; gap: 12px; padding: 0 14px 14px; border-top: 1px solid var(--border-soft); }
.common-area-task-choices { display: grid; gap: 7px; padding-top: 12px; }
.common-area-task-choice { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 9px; padding: 8px 10px; border: 1px solid var(--border-soft); border-radius: 9px; cursor: pointer; }
.common-area-task-choice input { margin-top: 3px; }
.common-area-task-choice span { display: grid; gap: 2px; min-width: 0; }
.common-area-task-choice small { color: var(--muted); }
.common-area-bulk-assign { justify-self: start; }
.common-area-person-empty { padding: 14px 0 2px; }
.common-area-direct-assign-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, .45fr) auto; gap: 8px; padding-top: 12px; border-top: 1px solid var(--border-soft); }
.common-area-direct-assign-form label { grid-column: 1 / -1; color: var(--text); font-size: 12px; font-weight: 700; }
.common-area-direct-assign-form input { width: 100%; min-width: 0; box-sizing: border-box; }
.common-area-direct-assign-form .button { white-space: nowrap; }
.common-area-schedule { color: var(--accent-ink); font-weight: 700; }

.late-add-body { padding-top: 4px; }
.late-entry-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.late-entry-form label { display: grid; gap: 5px; min-width: 0; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.late-entry-form :is(input, select) { width: 100%; min-width: 0; box-sizing: border-box; }
.late-reason-field { grid-column: 1 / span 2; }
.late-add-submit { align-self: end; min-height: 42px; white-space: nowrap; }
.late-archive-card { margin-top: 16px; overflow: hidden; }
.late-archive-card > summary { cursor: pointer; list-style: none; }
.late-archive-card > summary::-webkit-details-marker { display: none; }
.late-archive-card > summary::after { content: "▾"; margin-left: auto; color: var(--muted); }
.late-archive-card[open] > summary::after { transform: rotate(180deg); }
.late-archive-list { display: grid; padding: 0 16px 14px; }
.late-archive-row { display: grid; grid-template-columns: minmax(110px, .8fr) auto auto minmax(160px, 1.4fr); align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--border-soft); }

.lf-photo-add { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); pointer-events: none; }
.lf-row-photo-button { flex: 0 0 auto; cursor: pointer; }

.maintenance-log-button { min-width: 92px; white-space: nowrap; }
.maintenance-list .maintenance-item { display: grid; grid-template-columns: minmax(70px, auto) 56px minmax(0, 1fr) auto; grid-template-areas: "room photo text actions"; align-items: center; gap: 10px; }
.maintenance-list .maintenance-room { grid-area: room; min-width: 0; max-width: 116px; text-align: left; overflow-wrap: anywhere; }
.maintenance-photo-slot { grid-area: photo; display: flex; align-items: center; justify-content: center; min-width: 34px; min-height: 34px; }
.maintenance-list .maintenance-text { grid-area: text; line-height: 1.45; }
.maintenance-row-actions { grid-area: actions; display: flex; align-items: center; justify-content: flex-end; gap: 7px; min-width: 0; }
.maintenance-row-actions .maintenance-fixer-select { width: 118px; max-width: 118px; }

/* The single personal theme gets a more intentional visual language while
   continuing to use the account's color picker and private photo background. */
html[data-theme="custom"] :is(.panel, .metric, .room-card, .employee-bubble, .note) {
  border-color: color-mix(in srgb, var(--accent) 30%, var(--border));
  box-shadow: 0 8px 24px color-mix(in srgb, var(--accent) 9%, transparent), inset 0 1px 0 color-mix(in srgb, white 22%, transparent);
}
html[data-theme="custom"] .button.primary { background: linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 72%, white)); box-shadow: 0 5px 16px color-mix(in srgb, var(--accent) 24%, transparent); }
html[data-theme="custom"] .nav-item.active { background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 24%, transparent), color-mix(in srgb, var(--accent) 7%, transparent)); box-shadow: inset 3px 0 0 var(--accent); }
html[data-theme="custom"] :is(.metric, .room-card, .prod-score-card) { transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease; }
html[data-theme="custom"] :is(.metric, .room-card, .prod-score-card):hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--accent) 55%, var(--border)); }

/* Maintenance Today: one filterable operational board for every hotel room. */
.maintenance-room-status-card > .panel-head { align-items: end; gap: 14px; }
#dashboard-view .maintenance-room-status-card.is-collapsed .maintenance-room-filter { display: none; }
.maintenance-room-collapse-toggle { display: inline-grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; padding: 0; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); color: var(--accent); font: inherit; font-weight: 800; cursor: pointer; }
.maintenance-room-filter { display: grid; gap: 5px; min-width: 180px; color: var(--muted); font-size: 12px; font-weight: 700; }
.maintenance-room-filter select { width: 100%; min-width: 0; }
.maintenance-room-status-grid { display: grid; gap: 18px; padding: 14px 16px 16px; }
.maintenance-room-floor-group { display: grid; gap: 10px; min-width: 0; }
.maintenance-room-floor-group + .maintenance-room-floor-group { padding-top: 18px; border-top: 2px solid color-mix(in srgb, var(--accent) 30%, var(--border)); }
.maintenance-room-floor-divider { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.maintenance-room-floor-divider::after { height: 1px; flex: 1; background: var(--border-soft); content: ''; }
.maintenance-room-floor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.strip-room-column-labels { display: grid; grid-template-columns: minmax(64px, .45fr) minmax(130px, .8fr) minmax(280px, 320px); gap: 16px; padding: 12px 20px 8px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.strip-room-list { display: grid; padding: 0 16px 12px; }
.strip-room-row { display: grid; grid-template-columns: minmax(64px, .45fr) minmax(130px, .8fr) minmax(280px, 320px); align-items: center; gap: 16px; min-height: 58px; padding: 10px 4px; border-bottom: 1px solid var(--border-soft); }
.strip-room-row:last-child { border-bottom: 0; }
.strip-room-number { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 7px; min-width: 0; font-family: var(--font-mono); font-size: 1rem; }
.strip-room-number > strong { white-space: nowrap; }
.strip-room-arrivals { display: flex; flex: 0 1 auto; flex-wrap: wrap; gap: 4px; min-width: 0; }
#strip-rooms-view .strip-room-arrivals .badge.arrival-badge {
  min-height: 30px;
  padding: 6px 11px;
  border: 2px solid color-mix(in srgb, var(--purple) 72%, #fff);
  color: #fff;
  font-size: .78rem;
  font-weight: 850;
  line-height: 1;
  letter-spacing: .075em;
  text-transform: uppercase;
  background: linear-gradient(135deg, color-mix(in srgb, var(--purple) 68%, #180b35), color-mix(in srgb, var(--purple) 68%, #301455));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--purple) 22%, transparent), 0 0 17px color-mix(in srgb, var(--purple) 58%, transparent), var(--lit-edge);
}
#strip-rooms-view .strip-room-arrivals .badge.arrival-badge::before {
  width: 8px;
  height: 8px;
  background: #fff;
  box-shadow: 0 0 9px 2px color-mix(in srgb, #fff 75%, var(--purple));
}
#strip-rooms-view .strip-room-arrivals .badge.early-badge {
  min-height: 30px;
  padding: 6px 11px;
  border-width: 2px;
  font-size: .78rem;
  font-weight: 850;
  line-height: 1;
  letter-spacing: .055em;
  text-transform: uppercase;
  background: color-mix(in srgb, #ff2fb4 16%, var(--surface));
}
#strip-rooms-view .strip-room-arrivals .badge.early-badge::before {
  width: 8px;
  height: 8px;
  background: #ff2fb4;
  box-shadow: 0 0 10px 2px color-mix(in srgb, #ff2fb4 78%, transparent);
}
#strip-rooms-view .strip-room-arrivals .status-badge.late-checkout {
  min-height: 30px;
  padding: 6px 11px;
  border-width: 2px;
  font-size: .78rem;
  font-weight: 850;
  line-height: 1;
  letter-spacing: .055em;
  text-transform: uppercase;
}
#strip-rooms-view .strip-room-arrivals .status-badge.late-checkout::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.strip-room-status { justify-self: start; min-width: 108px; padding: 5px 10px; border-radius: 999px; font-size: .75rem; font-weight: 700; text-align: center; text-transform: capitalize; background: color-mix(in srgb, var(--accent) 14%, transparent); }
.strip-room-status-placeholder { display: block; min-width: 108px; min-height: 28px; }
.strip-room-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; justify-self: end; gap: 8px; width: 100%; min-width: 0; }
.strip-room-actions :is(.button, .badge) { width: 100%; min-width: 0; box-sizing: border-box; justify-content: center; white-space: nowrap; }
.checkout-turnover-status { display: flex; margin: 8px 0 2px; }
.checkout-turnover-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 8px; border: 1px solid var(--border-soft); border-radius: 999px; color: var(--muted); font-size: 11px; font-weight: 700; line-height: 1.2; }
.checkout-turnover-badge.complete { border-color: color-mix(in srgb, var(--green) 45%, var(--border)); background: color-mix(in srgb, var(--green) 12%, transparent); color: var(--text); }
.checkout-turnover-badge.pending { background: color-mix(in srgb, var(--muted) 7%, transparent); }
.checkout-turnover-badge.stripped,
.checkout-turnover-badge.bed-made {
  min-height: 28px;
  padding: 5px 11px;
  border-width: 2px;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .02em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .55);
}
.checkout-turnover-badge.clean-needs-bed {
  min-height: 28px;
  padding: 5px 11px;
  border: 2px solid #e1a72f;
  background: linear-gradient(135deg, #fff1c2, #f4c75f);
  color: #6a4300;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .02em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .65);
  box-shadow: 0 0 0 2px rgba(225, 167, 47, .2), 0 0 16px rgba(225, 167, 47, .52), inset 0 1px 0 rgba(255, 255, 255, .78);
}
.checkout-turnover-badge.stripped {
  border-color: #ff72c4;
  background: linear-gradient(135deg, #ffe0f3, #f5a8d6);
  color: #6f164f;
  box-shadow: 0 0 0 2px rgba(255, 114, 196, .2), 0 0 16px rgba(255, 114, 196, .58), inset 0 1px 0 rgba(255, 255, 255, .75);
}
.checkout-turnover-badge.bed-made {
  border-color: #55d8e4;
  background: linear-gradient(135deg, #d9fbff, #8ddfe8);
  color: #104c58;
  box-shadow: 0 0 0 2px rgba(85, 216, 228, .2), 0 0 16px rgba(85, 216, 228, .62), inset 0 1px 0 rgba(255, 255, 255, .75);
}
.checkout-turnover-badge.stripped::before,
.checkout-turnover-badge.bed-made::before {
  content: '✓';
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  color: #fff;
  font-size: 12px;
  line-height: 1;
}
.checkout-turnover-badge.clean-needs-bed::before {
  content: '!';
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #b87900;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 0 8px rgba(184, 121, 0, .65);
}
.checkout-turnover-badge.stripped::before {
  background: #bd327f;
  box-shadow: 0 0 8px rgba(189, 50, 127, .65);
}
.checkout-turnover-badge.bed-made::before {
  background: #137b8a;
  box-shadow: 0 0 8px rgba(19, 123, 138, .65);
}
.checkout-turnover-badge.finished {
  min-height: 28px;
  padding: 5px 11px;
  border: 2px solid #35d17a;
  background: linear-gradient(135deg, #d9ffe7, #91eeb5);
  color: #0d4b2c;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .02em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .65);
  box-shadow: 0 0 0 2px rgba(53, 209, 122, .22), 0 0 16px rgba(53, 209, 122, .62), inset 0 1px 0 rgba(255, 255, 255, .72);
}
.checkout-turnover-badge.finished::before {
  content: '✓';
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #187747;
  color: #fff;
  font-size: 12px;
  line-height: 1;
  box-shadow: 0 0 8px rgba(24, 119, 71, .65);
}

/* Every room card has one current-status badge in the header. These use the
   same prominent milestone treatment as the legacy turnover badges. */
.room-card .status-badge.stripped,
.room-card .status-badge.bed-made,
.room-card .status-badge.clean-needs-bed,
.room-card .status-badge.finished {
  min-height: 28px;
  padding: 5px 11px;
  border-width: 2px;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .02em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .55);
}
.room-card .status-badge.stripped {
  color: #6f164f;
  border-color: #ff72c4;
  background: linear-gradient(135deg, #ffe0f3, #f5a8d6);
  box-shadow: 0 0 0 2px rgba(255, 114, 196, .2), 0 0 16px rgba(255, 114, 196, .58), inset 0 1px 0 rgba(255, 255, 255, .75);
}
.room-card .status-badge.bed-made {
  color: #104c58;
  border-color: #55d8e4;
  background: linear-gradient(135deg, #d9fbff, #8ddfe8);
  box-shadow: 0 0 0 2px rgba(85, 216, 228, .2), 0 0 16px rgba(85, 216, 228, .62), inset 0 1px 0 rgba(255, 255, 255, .75);
}
.room-card .status-badge.clean-needs-bed {
  color: #6a4300;
  border-color: #e1a72f;
  background: linear-gradient(135deg, #fff1c2, #f4c75f);
  box-shadow: 0 0 0 2px rgba(225, 167, 47, .2), 0 0 16px rgba(225, 167, 47, .52), inset 0 1px 0 rgba(255, 255, 255, .78);
}
.room-card .status-badge.stripped::before,
.room-card .status-badge.bed-made::before,
.room-card .status-badge.clean-needs-bed::before,
.room-card .status-badge.finished::before {
  width: 18px;
  height: 18px;
  font-size: 12px;
  font-weight: 900;
}
.room-card .status-badge.stripped::before { content: '✓'; background: #bd327f; box-shadow: 0 0 8px rgba(189, 50, 127, .65); }
.room-card .status-badge.bed-made::before { content: '✓'; background: #137b8a; box-shadow: 0 0 8px rgba(19, 123, 138, .65); }
.room-card .status-badge.clean-needs-bed::before { content: '!'; background: #b87900; box-shadow: 0 0 8px rgba(184, 121, 0, .65); }
.maintenance-room-overview { display: grid; align-content: start; gap: 13px; min-width: 0; padding: 15px; border: 1px solid color-mix(in srgb, var(--accent) 26%, var(--border)); border-radius: var(--radius-m); background: radial-gradient(circle at 94% 5%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 35%), var(--surface); box-shadow: inset 0 1px 0 color-mix(in srgb, white 18%, transparent), 0 14px 28px -24px color-mix(in srgb, var(--accent) 55%, #000); }
.maintenance-room-overview-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; }
.maintenance-room-overview-head .room-number { font-size: 24px; }
.maintenance-room-category { text-transform: capitalize; }
.maintenance-room-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.maintenance-room-facts > span { display: flex; min-width: 0; min-height: 55px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 5px; padding: 8px 10px; border-radius: 10px; background: color-mix(in srgb, var(--accent) 6%, transparent); overflow-wrap: anywhere; }
.maintenance-room-facts strong, .maintenance-room-open-items > strong { color: var(--muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.maintenance-no-arrival { font-size: 12px; }
.maintenance-room-open-items { display: grid; gap: 8px; min-width: 0; }
.maintenance-room-open-items > .muted { font-size: 12px; }
.maintenance-room-open-items ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.maintenance-room-open-items li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(108px, 132px); align-items: center; gap: 8px; min-width: 0; padding-top: 8px; border-top: 1px solid var(--border-soft); }
.maintenance-room-open-items li > span { min-width: 0; overflow-wrap: anywhere; }
.maintenance-room-open-items .maintenance-fixer-select { width: 100%; min-width: 0; }
.maintenance-room-item-form.today-quick-form { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 0; }
.maintenance-room-item-form input { width: 100%; min-width: 0; box-sizing: border-box; }
.maintenance-room-item-form .button { white-space: nowrap; }
.personal-todo-card .panel-head { align-items: end; }
.personal-todo-add-form { display: grid; grid-template-columns: minmax(180px, 1fr) auto; gap: 8px; width: min(100%, 460px); }
.personal-todo-actions { display: flex; align-items: center; gap: 7px; }
.personal-todo-done { border-top: 1px solid var(--border-soft); }
.personal-todo-done summary { padding: 12px 0; color: var(--muted); font-size: 12px; font-weight: 800; cursor: pointer; }

@media (max-width: 700px) {
  .common-area-direct-assign-form { grid-template-columns: minmax(0, 1fr); }
  .maintenance-room-status-card > .panel-head { align-items: stretch; }
  .maintenance-room-filter { width: 100%; min-width: 0; }
  .maintenance-room-status-grid { padding: 12px; }
  .maintenance-room-floor-grid { grid-template-columns: minmax(0, 1fr); }
  .strip-room-column-labels { display: none; }
  .strip-room-list { padding: 0 12px 10px; }
  .strip-room-row { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "room status" "actions actions"; gap: 7px 10px; min-height: 0; padding: 12px 4px; }
  .strip-room-number { grid-area: room; }
  #strip-rooms-view .strip-room-arrivals { margin-top: 2px; }
  #strip-rooms-view .strip-room-arrivals .badge.arrival-badge { min-height: 28px; padding: 5px 9px; font-size: .74rem; }
  #strip-rooms-view .strip-room-arrivals .badge.early-badge { min-height: 28px; padding: 5px 9px; font-size: .74rem; }
  #strip-rooms-view .strip-room-arrivals .status-badge.late-checkout { min-height: 28px; padding: 5px 9px; font-size: .74rem; }
  .strip-room-status { grid-area: status; min-width: 0; justify-self: end; padding: 4px 8px; font-size: .7rem; }
  .strip-room-status-placeholder { grid-area: status; min-width: 0; min-height: 28px; }
  .strip-room-actions { display: flex; grid-area: actions; grid-row: auto; flex-direction: row; justify-content: flex-start; flex-wrap: wrap; gap: 7px; }
  .strip-room-actions :is(.button, .badge) { width: auto; min-width: 0; flex: 1 1 120px; }
  .maintenance-room-overview { padding: 13px; }
  .personal-todo-card .panel-head { align-items: stretch; }
  .personal-todo-add-form { width: 100%; grid-template-columns: minmax(0, 1fr) auto; }
  .personal-todo-item { align-items: flex-start; }
  .personal-todo-actions { flex-wrap: wrap; justify-content: flex-end; }
  .maintenance-room-open-items li { grid-template-columns: minmax(0, 1fr); }
  .maintenance-room-open-items .maintenance-fixer-select { width: min(100%, 160px); }
  .plastic-scoop-card .panel-head { align-items: stretch; }
  .plastic-scoop-form { width: 100%; margin-left: 0; }
  .plastic-scoop-form select { flex: 1 1 auto; min-width: 0; }
  .late-entry-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .late-reason-field { grid-column: 1 / -1; }
  .late-add-submit { grid-column: 1 / -1; width: 100%; }
  .late-archive-row { grid-template-columns: minmax(0, 1fr) auto; }
  .late-archive-row > :nth-child(3), .late-archive-row > :nth-child(4) { grid-column: 1 / -1; }
  .maintenance-list .maintenance-item {
    grid-template-columns: minmax(76px, 92px) minmax(0, 1fr);
    grid-template-areas: "room text" "photo text" ". actions";
    align-items: start;
    row-gap: 7px;
    padding: 13px 0;
  }
  .maintenance-list .maintenance-room { max-width: 92px; padding-top: 2px; }
  .maintenance-photo-slot { justify-content: flex-start; }
  .maintenance-row-actions { justify-content: flex-start; flex-wrap: wrap; width: 100%; }
  .maintenance-row-actions .maintenance-fixer-select { width: min(100%, 150px); max-width: 150px; }
  .maintenance-list .maintenance-logged-by { width: auto; padding: 0; border: 0; border-radius: 0; line-height: 1.35; }
  .lost-found-list .lost-found-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 68px; column-gap: 12px; row-gap: 8px; grid-template-areas: "main meta photo" "controls controls controls"; align-items: start; }
  .lost-found-list .lost-found-photo-slot { grid-area: photo; justify-self: end; }
  .lost-found-list .lost-found-main { grid-area: main; }
  .lost-found-list .lost-found-meta { grid-area: meta; }
  .lost-found-list .lost-found-controls { grid-area: controls; }
}

@media (max-width: 430px) {
  .maintenance-room-facts { grid-template-columns: minmax(0, 1fr); }
  .maintenance-room-item-form.today-quick-form { grid-template-columns: minmax(0, 1fr); }
  .maintenance-room-item-form .button { width: 100%; }
  .late-entry-form { grid-template-columns: 1fr; }
  .late-reason-field, .late-add-submit { grid-column: 1; }
  .common-area-bulk-assign { width: 100%; }
  .lost-found-list .lost-found-row { grid-template-columns: minmax(0, 1fr) 68px; grid-template-areas: "main photo" "meta photo" "controls controls"; }
  .lost-found-list .lost-found-meta { align-items: flex-start; margin-left: 0; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme="custom"] :is(.metric, .room-card, .prod-score-card) { transition: none; transform: none; }
}

/* Room reservation calendar. Loaded only when opened so it stays out of the
   frequently refreshed Today payload. */
.room-calendar-panel { padding: 18px; overflow: hidden; }
.room-calendar-toolbar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; margin-bottom: 14px; text-align: center; }
.room-calendar-toolbar h2 { margin: 2px 0 0; font-size: clamp(24px, 4vw, 36px); }
.room-calendar-toolbar .button { width: 44px; min-width: 44px; height: 44px; padding: 0; font-size: 20px; }
.room-calendar-upload-form { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: 10px; margin: 0 0 14px; padding: 11px 13px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--panel) 88%, var(--accent) 12%); }
.room-calendar-upload-form > div { display: grid; gap: 2px; }
.room-calendar-upload-form strong { font-size: 13px; }
.room-calendar-file-picker { position: relative; overflow: hidden; cursor: pointer; }
.room-calendar-file-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.room-calendar-upload-status { min-width: 72px; font-size: 12px; }
.room-calendar-summary { display: grid; grid-template-columns: repeat(2, minmax(110px, 160px)) minmax(0, 1fr); gap: 10px; align-items: stretch; margin-bottom: 14px; }
.room-calendar-summary > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 13px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--panel) 86%, var(--accent) 14%); }
.room-calendar-summary span { color: var(--muted); font-size: 13px; font-weight: 700; }
.room-calendar-summary strong { font-size: 24px; }
.room-calendar-summary p { align-self: center; margin: 0; color: var(--muted); text-align: right; }
.room-calendar-weekdays, .room-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 7px; }
.room-calendar-weekdays { margin-bottom: 7px; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.room-calendar-day, .room-calendar-spacer { min-width: 0; min-height: 128px; }
.room-calendar-day { padding: 9px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--panel) 94%, transparent); }
.room-calendar-day.has-events { border-color: color-mix(in srgb, var(--accent) 42%, var(--border)); box-shadow: inset 0 1px 0 color-mix(in srgb, white 28%, transparent); }
.room-calendar-day.today { outline: 2px solid var(--accent); outline-offset: -2px; }
.room-calendar-day > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; margin-bottom: 8px; }
.room-calendar-date { display: grid; justify-items: start; gap: 2px; }
.room-calendar-weekday { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .06em; line-height: 1; text-transform: uppercase; }
.room-calendar-day > header > strong { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; font-size: 15px; }
.room-calendar-day.today .room-calendar-date > strong { background: var(--accent); color: var(--on-accent, white); }
.room-calendar-day > header > span { color: var(--accent); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.room-calendar-day-events { display: grid; gap: 6px; }
.room-calendar-events { min-width: 0; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); overflow: hidden; }
.room-calendar-events.arrivals { border-left: 4px solid var(--green, #4f8a68); }
.room-calendar-events.checkouts { border-left: 4px solid var(--amber, #c8782d); }
.room-calendar-events summary { display: flex; align-items: center; justify-content: space-between; gap: 5px; padding: 7px 8px; cursor: pointer; font-size: 11px; font-weight: 750; list-style: none; }
.room-calendar-events summary::-webkit-details-marker { display: none; }
.room-calendar-events summary strong { display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 999px; background: color-mix(in srgb, var(--accent) 16%, transparent); font-size: 11px; }
.room-calendar-room-list { display: flex; flex-wrap: wrap; gap: 4px; max-height: 120px; padding: 0 7px 8px; overflow-y: auto; }
.room-calendar-room { display: inline-flex; align-items: center; gap: 4px; padding: 3px 6px; border-radius: 7px; background: color-mix(in srgb, var(--accent) 10%, var(--panel)); font: 700 11px/1.2 var(--mono, monospace); }
.room-calendar-arrival-badge { color: var(--purple); font: 800 8px/1 var(--font-sans, system-ui); letter-spacing: .04em; }
.room-calendar-source-badge, .room-calendar-cancellation-badge { color: var(--muted); font: 750 8px/1.1 var(--font-sans, system-ui); }
.room-calendar-cancellation-badge { color: var(--amber, #bd8737); }
.room-calendar-reservation-edit, .room-calendar-reservation-restore { padding: 2px 4px; border: 0; border-radius: 5px; background: color-mix(in srgb, var(--accent) 12%, var(--panel)); color: var(--text); font: 700 8px/1.2 var(--font-sans, system-ui); cursor: pointer; }
.room-calendar-reservation-restore { color: var(--accent); }
.hospitable-edit-dialog { width: min(94vw, 480px); max-height: min(88vh, 680px); padding: 0; border: 1px solid var(--border); border-radius: 20px; background: var(--panel); color: var(--text); box-shadow: 0 24px 80px #0007; }
.hospitable-edit-dialog::backdrop { background: #10152288; backdrop-filter: blur(3px); }
.hospitable-edit-dialog form { padding: 20px; }
.hospitable-edit-dialog header, .hospitable-edit-dialog footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.hospitable-edit-dialog h3 { margin: 0 0 7px; }
.hospitable-edit-dialog p { margin: 0 0 12px; }
.hospitable-edit-dialog footer { justify-content: flex-end; }
.room-calendar-pet { font-family: system-ui, sans-serif; font-size: 14px; line-height: 1; }
.room-calendar-none { display: block; padding: 7px 3px; color: var(--muted); font-size: 11px; text-align: center; opacity: .72; }

.hospitable-settings-panel .panel-body { display: grid; gap: 12px; }
.hospitable-top-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.hospitable-sync-summary { margin: 0; color: var(--muted); }
.hospitable-feed-search { display: grid; grid-template-columns: minmax(0, 1fr); gap: 5px; max-width: 420px; }
.hospitable-feed-list { display: grid; gap: 6px; max-height: 560px; overflow: auto; }
.hospitable-feed-row { display: grid; grid-template-columns: minmax(75px, .35fr) minmax(150px, .7fr) minmax(220px, 1.5fr) auto auto auto; align-items: center; gap: 8px; padding: 8px; border: 1px solid var(--border); border-radius: 12px; background: color-mix(in srgb, var(--panel) 93%, var(--accent) 7%); }
.hospitable-feed-row[hidden] { display: none; }
.hospitable-feed-status { color: var(--muted); font-size: 12px; }
.hospitable-feed-url-label { min-width: 0; }
.hospitable-feed-url-label input { width: 100%; min-width: 0; }
.hospitable-conflict-center { display: grid; gap: 8px; padding-top: 12px; border-top: 1px solid var(--border); }
.hospitable-conflict-center > header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.hospitable-conflict-center h4 { margin: 0; }
.hospitable-conflict-center > header > div, .hospitable-conflict-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.hospitable-conflict { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid color-mix(in srgb, var(--amber, #bd8737) 55%, var(--border)); border-radius: 12px; background: color-mix(in srgb, var(--amber, #bd8737) 8%, var(--panel)); }
.hospitable-conflict p { margin: 3px 0; }
.hospitable-conflict small { display: block; }
.hospitable-bulk-dialog { width: min(96vw, 900px); max-height: min(90vh, 900px); padding: 0; overflow: auto; border: 1px solid var(--border); border-radius: 20px; background: var(--panel); color: var(--text); box-shadow: 0 24px 80px #0007; }
.hospitable-bulk-dialog::backdrop { background: #10152288; backdrop-filter: blur(3px); }
.hospitable-bulk-input, .hospitable-bulk-review { display: grid; gap: 12px; padding: 20px; }
.hospitable-bulk-input header, .hospitable-bulk-review header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.hospitable-bulk-input h3, .hospitable-bulk-review h3 { margin: 0 0 5px; }
.hospitable-bulk-input p, .hospitable-bulk-review p { margin: 0; }
.hospitable-bulk-input textarea { width: 100%; min-height: 210px; resize: vertical; font: 13px/1.5 var(--mono, monospace); }
.hospitable-bulk-input footer, .hospitable-bulk-review footer { display: flex; justify-content: flex-end; gap: 8px; }
#hospitable-conflict-dialog .hospitable-bulk-review { max-height: min(90vh, 900px); grid-template-rows: auto auto minmax(0, 1fr) auto; }
#hospitable-conflict-dialog .hospitable-bulk-review-list { grid-row: 3; min-height: 0; }
#hospitable-conflict-dialog footer { grid-row: 4; flex-wrap: wrap; }
[data-hospitable-conflict-status] { overflow-wrap: anywhere; }
[data-hospitable-conflict-status][role="alert"] { color: var(--danger, #b24343); }
.hospitable-bulk-error { min-height: 1em; color: var(--danger, #b24343); }
.hospitable-bulk-review-list { display: grid; gap: 8px; max-height: 58vh; overflow: auto; }
.hospitable-bulk-feed { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(190px, .7fr) minmax(0, 1fr); align-items: center; gap: 8px 12px; padding: 11px; border: 1px solid var(--border); border-radius: 12px; background: color-mix(in srgb, var(--panel) 92%, var(--accent) 8%); }
.hospitable-bulk-feed-title { display: grid; gap: 4px; }
.hospitable-bulk-feed-title span { color: var(--muted); font-size: 12px; }
.hospitable-check { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; }
.hospitable-check input { width: auto; }
.hospitable-check[hidden], .hospitable-bulk-feed > label[hidden] { display: none; }

@media (max-width: 700px) {
  .room-calendar-panel { padding: 13px; }
  .room-calendar-upload-form { grid-template-columns: 1fr 1fr; }
  .room-calendar-upload-form > div, .room-calendar-upload-status { grid-column: 1 / -1; }
  .room-calendar-upload-form .room-calendar-file-picker, .room-calendar-upload-form button { width: 100%; }
  .room-calendar-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .room-calendar-summary p { grid-column: 1 / -1; text-align: center; }
  .room-calendar-weekdays, .room-calendar-spacer, .room-calendar-day.empty { display: none; }
  .room-calendar-grid { grid-template-columns: 1fr; }
  .room-calendar-day { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 10px; min-height: 0; padding: 11px; }
  .room-calendar-day > header { align-content: start; margin: 0; }
  .room-calendar-date { justify-items: center; }
  .room-calendar-day > header > span { display: none; }
  .room-calendar-events summary { font-size: 13px; }
  .room-calendar-room { padding: 5px 8px; font-size: 12px; }
  .hospitable-top-actions { width: 100%; }
  .hospitable-top-actions .button { flex: 1 1 auto; }
  .hospitable-bulk-feed { grid-template-columns: 1fr; }
  .hospitable-feed-row { grid-template-columns: minmax(0, 1fr) auto auto; }
  .hospitable-feed-row > strong, .hospitable-feed-status, .hospitable-feed-url-label { grid-column: 1 / -1; }
  .hospitable-feed-row > button { width: 100%; }
  .hospitable-conflict { grid-template-columns: 1fr; }
}

/* Weekly Reference quizzes */
.weekly-quiz-card, .manager-weekly-quiz-card { overflow: hidden; border-color: color-mix(in srgb, var(--accent) 48%, var(--border)); }
.weekly-quiz-ready { box-shadow: 0 12px 34px color-mix(in srgb, var(--accent) 16%, transparent), inset 4px 0 0 var(--accent); }
.weekly-quiz-card .panel-head, .manager-weekly-quiz-card .panel-head { align-items: center; padding: 20px 22px; }
.weekly-quiz-eyebrow { margin: 0 0 5px; color: var(--accent); font-size: .75rem; font-weight: 850; letter-spacing: .14em; }
.weekly-quiz-ready-badge, .weekly-quiz-score { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 6px 12px; border-radius: 999px; background: color-mix(in srgb, var(--accent) 16%, var(--surface)); color: var(--text); font-weight: 800; white-space: nowrap; }
.weekly-quiz-questions { display: grid; gap: 14px; padding: 0 22px 20px; }
.weekly-quiz-question { min-width: 0; margin: 0; padding: 16px; border: 1px solid var(--border); border-radius: 16px; background: color-mix(in srgb, var(--surface) 84%, transparent); }
.weekly-quiz-question legend { display: flex; align-items: flex-start; gap: 10px; max-width: 100%; padding: 0 5px; color: var(--text); font-weight: 750; line-height: 1.42; }
.weekly-quiz-question legend > span { display: inline-flex; flex: 0 0 26px; width: 26px; height: 26px; align-items: center; justify-content: center; border-radius: 50%; background: var(--accent); color: var(--on-accent, #fff); font-size: .78rem; }
.weekly-quiz-choices { display: grid; gap: 8px; margin-top: 12px; }
.weekly-quiz-choices label { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: 9px; padding: 11px 12px; border: 1px solid color-mix(in srgb, var(--border) 82%, transparent); border-radius: 12px; cursor: pointer; line-height: 1.4; }
.weekly-quiz-choices label:has(input:checked) { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, var(--surface)); box-shadow: inset 3px 0 0 var(--accent); }
.weekly-quiz-choices input { margin-top: 3px; accent-color: var(--accent); }
.weekly-quiz-submit { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 17px 22px; border-top: 1px solid var(--border); background: color-mix(in srgb, var(--surface) 76%, var(--accent) 4%); }
.weekly-quiz-complete { padding: 18px 22px; }
.weekly-quiz-complete-summary { display: flex; align-items: center; gap: 16px; }
.weekly-quiz-complete h3 { margin: 2px 0 3px; }
.weekly-quiz-complete-mark { display: flex; flex: 0 0 44px; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 50%; background: color-mix(in srgb, #168b58 18%, var(--surface)); color: #168b58; font-size: 1.4rem; font-weight: 900; }
.weekly-quiz-missed { display: grid; gap: 10px; margin-top: 17px; padding-top: 16px; border-top: 1px dashed var(--border); }
.weekly-quiz-missed h4 { margin: 0; color: var(--text); }
.weekly-quiz-missed-answer { display: grid; gap: 6px; padding: 13px 14px; border-left: 4px solid #b6482b; border-radius: 12px; background: color-mix(in srgb, #b6482b 8%, var(--surface)); line-height: 1.42; }
.weekly-quiz-missed-answer > span { color: var(--muted); }
.weekly-quiz-missed-answer .weekly-quiz-correct-answer { color: color-mix(in srgb, #168b58 78%, var(--text)); }
.weekly-quiz-perfect { margin-top: 15px; padding: 11px 13px; border-radius: 12px; background: color-mix(in srgb, #168b58 10%, var(--surface)); color: #168b58; font-weight: 800; }
.manager-quiz-list { display: grid; gap: 10px; padding: 0 22px 22px; }
.manager-quiz-person { padding: 14px 15px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--surface) 88%, transparent); }
.manager-quiz-person-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.manager-quiz-person-head > div { display: grid; gap: 3px; }
.manager-quiz-history { margin-top: 10px; border-top: 1px solid var(--border-soft); }
.manager-quiz-history summary { padding: 10px 0; color: var(--muted); font-size: 12px; font-weight: 800; cursor: pointer; }
.manager-quiz-history > div { display: grid; gap: 6px; padding-bottom: 2px; }
.manager-quiz-history-row { display: grid; grid-template-columns: minmax(88px, 1fr) auto minmax(130px, 1.25fr); gap: 10px; align-items: center; padding: 7px 0; border-top: 1px solid var(--border-soft); font-size: 12px; }
.weekly-quiz-pending { white-space: nowrap; }
.manager-quiz-review { margin-top: 12px; border-top: 1px dashed var(--border); padding-top: 10px; }
.manager-quiz-review summary { color: var(--accent); font-weight: 750; cursor: pointer; }
.manager-quiz-answer { display: grid; gap: 5px; margin-top: 10px; padding: 12px 13px; border-radius: 12px; border-left: 4px solid #168b58; background: color-mix(in srgb, #168b58 8%, var(--surface)); line-height: 1.4; }
.manager-quiz-answer.incorrect { border-left-color: #b6482b; background: color-mix(in srgb, #b6482b 8%, var(--surface)); }
.manager-quiz-result { color: var(--muted); font-weight: 700; }

@media (max-width: 700px) {
  .weekly-quiz-card .panel-head, .manager-weekly-quiz-card .panel-head { align-items: flex-start; padding: 17px 16px; }
  .weekly-quiz-questions, .manager-quiz-list { padding-left: 14px; padding-right: 14px; }
  .weekly-quiz-question { padding: 13px 11px; }
  .weekly-quiz-submit { align-items: stretch; flex-direction: column; padding: 14px 16px 17px; }
  .weekly-quiz-submit .button { width: 100%; }
  .manager-quiz-person-head { align-items: flex-start; }
  .weekly-quiz-complete { padding: 16px; }
}

/* Theme-aware navigation uses recognizable objects instead of the old Greek
   placeholders. Emoji rendering stays aligned and does not change label width. */
.nav-item[data-view] > span:first-child {
  width: 26px;
  font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
  font-size: 16px;
  line-height: 1;
  filter: saturate(.92);
}

/* Lost & Found and Maintenance share one exact quick-log grid on Today. */
#dashboard-view .today-ops-quick-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  flex: 0 1 460px;
  width: min(100%, 460px);
  margin-left: auto;
  padding: 0;
}
#dashboard-view .today-ops-quick-form .quick-add-input-row {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 8px;
}
#dashboard-view .today-ops-quick-form .quick-add-action-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
#dashboard-view .combined-room-quick-form .quick-add-action-row {
  grid-template-columns: minmax(140px, .9fr) minmax(0, 1fr) minmax(0, 1fr);
}
#dashboard-view .combined-room-quick-form .combined-quick-category {
  width: 100%;
  min-width: 0;
  min-height: 40px;
}
#dashboard-view .combined-room-quick-form.is-common-area .quick-add-input-row {
  grid-template-columns: minmax(0, 1fr);
}
#dashboard-view .combined-room-quick-form.is-common-area .quick-add-action-row {
  grid-template-columns: minmax(140px, .9fr) minmax(0, 1fr) minmax(0, 1fr);
}
#dashboard-view .today-ops-quick-form .today-ops-photo,
#dashboard-view .today-ops-quick-form .today-ops-submit {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  box-sizing: border-box;
  justify-content: center;
  white-space: nowrap;
}
#dashboard-view .today-ops-quick-form .lf-photo-preview,
#dashboard-view .today-ops-quick-form .lf-photo-cancel {
  grid-column: 1 / -1;
}
.combined-quick-lists { display: grid; gap: 16px; }
.combined-quick-group { min-width: 0; }
.combined-quick-group + .combined-quick-group {
  padding-top: 14px;
  border-top: 1px solid var(--border);
}
.combined-quick-group h4 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
}

/* Quick to-do stays open and uses a single compact input row. */
#dashboard-view .quick-todo-panel .panel-head { padding: 10px 14px 8px; }
#dashboard-view .quick-todo-panel .panel-body { padding: 0 14px 12px; }
#dashboard-view .quick-todo-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}
#dashboard-view .quick-todo-form input { min-width: 0; height: 38px; box-sizing: border-box; }
#dashboard-view .quick-todo-form .button { width: auto; min-height: 38px; padding: 7px 14px; }

@media (max-width: 700px) {
  .linen-load-form.panel-body { padding: 12px; }
  .linen-load-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .linen-load-row { grid-template-columns: minmax(0, 1fr) 72px; }
  .linen-load-qty { width: 72px; min-width: 72px; }
  .linen-load-actions { grid-template-columns: minmax(0, 1fr) auto; }

  #dashboard-view .today-ops-quick-form { flex-basis: 100%; width: 100%; margin-left: 0; }
  #dashboard-view .today-ops-quick-form .quick-add-input-row { grid-template-columns: minmax(0, 1fr); }
  #dashboard-view .today-ops-quick-form .quick-add-action-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #dashboard-view .combined-room-quick-form .combined-quick-category { grid-column: 1 / -1; }
}


.button {
  position: relative;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 9px 15px;
  color: var(--secondary);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .018)),
    rgba(255, 255, 255, .035);
  font-weight: 540;
  letter-spacing: .01em;
  transition: background var(--motion) ease, border-color var(--motion) ease,
    color var(--motion) ease, box-shadow var(--motion) ease, transform var(--motion) ease;
  box-shadow: var(--lit-edge), 0 2px 0 -1px rgba(0, 0, 0, .45);
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  white-space: nowrap;
}
.button:hover {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .085), rgba(255, 255, 255, .03)),
    rgba(255, 255, 255, .05);
  color: var(--text);
  border-color: rgba(255, 255, 255, .16);
  transform: translateY(-1px);
}
.button:active {
  transform: translateY(1px);
  box-shadow: var(--lit-edge), 0 0 0 rgba(0, 0, 0, .45);
  transition-duration: 60ms;
}
.button.primary {
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--accent) 62%, #ffffff) 0%, color-mix(in srgb, var(--accent) 24%, #ffffff) 7%, var(--accent) 70%),
    linear-gradient(180deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, 0) 42%),
    var(--accent);
  border-color: color-mix(in srgb, var(--accent) 38%, #ffffff);
  color: var(--on-accent);
  text-shadow: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 2px 0 -1px rgba(0, 0, 0, .5);
}
.button.primary:hover {
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--accent) 72%, #ffffff) 0%, color-mix(in srgb, var(--accent) 40%, #ffffff) 8%, var(--accent-hover) 72%),
    linear-gradient(180deg, rgba(255, 255, 255, .26), rgba(255, 255, 255, 0) 45%),
    var(--accent-hover);
  border-color: color-mix(in srgb, var(--accent-hover) 50%, #ffffff);
}
.button.primary:active {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), inset 0 2px 6px rgba(0, 0, 0, .25);
}
.button.danger {
  color: #ffd7da;
  border-color: rgba(239, 107, 115, .38);
  background: linear-gradient(180deg, rgba(239, 107, 115, .06), rgba(239, 107, 115, .02));
  box-shadow: var(--lit-edge), 0 2px 0 -1px rgba(0, 0, 0, .45);
}
.button.danger:hover {
  background: rgba(239, 107, 115, .14);
  border-color: rgba(239, 107, 115, .55);
  color: #ffe3e5;
}
.button.ghost {
  background: transparent;
  box-shadow: none;
}
.button.ghost:hover {
  background: rgba(255, 255, 255, .045);
  box-shadow: var(--lit-edge);
}
.button.full { width: 100%; }
.button.small {
  min-height: 30px;
  padding: 4px 10px;
  font-size: 12px;
  border-radius: 7px;
}
/* Mark finished / Mark replaced / Mark complete — compact, sized to the
   label ("just big enough for the words, no bigger", Stephanie 2026-08-22).
   NOTE: these selectors repeat .button.small so they OUT-SPECIFICITY the
   .button.small rule (0,3,1 > 0,2,0) — the old `button.<class>` form lost
   the cascade and the buttons rendered at .button.small size (30px/12px). */
button.button.small.finish-task,
button.button.small.inv-replaced-button,
button.button.small.quick-add-done-button,
button.button.small.room-item-finish {
  min-height: 22px;
  padding: 3px 9px;
  font-size: 11px;
  line-height: 1.2;
  border-radius: 7px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--accent) 62%, #ffffff) 0%, color-mix(in srgb, var(--accent) 24%, #ffffff) 7%, var(--accent) 70%),
    linear-gradient(180deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, 0) 42%),
    var(--accent);
  border-color: color-mix(in srgb, var(--accent) 38%, #ffffff);
  color: var(--on-accent);
  text-shadow: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 2px 0 -1px rgba(0, 0, 0, .5);
}
.button:disabled {
  opacity: .48;
  cursor: not-allowed;
  transform: none;
  box-shadow: var(--lit-edge), 0 2px 0 -1px rgba(0, 0, 0, .4);
  filter: saturate(.7);
}
.button.primary:disabled { filter: saturate(.6) brightness(.9); }

/* done-state buttons (Stripped / Bed made / Finished timestamps) read as
   quiet punched tickets, not disabled rubble */
.button.stripped-button:disabled,
.button.bedmade-button:disabled,
.button.finished-button:disabled,
.button.messaged-button:disabled {
  opacity: 1;
  background: rgba(48, 183, 123, .07);
  border-color: rgba(48, 183, 123, .28);
  color: var(--muted);
  filter: none;
  box-shadow: none;
  font-weight: 540;
}

/* ------------------------------------------------------------------ */
/* 5. FORMS — recessed keywells                                        */
/* ------------------------------------------------------------------ */

.form-stack { display: grid; gap: 15px; margin-top: 24px; }
.form-stack.compact { margin-top: 4px; }
.settings-preferences-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 15px; align-items: start; }
.settings-mode-field, .settings-animation-field { display: grid; gap: 7px; min-width: 0; }
.settings-field-label { color: var(--secondary); font-size: 13px; font-weight: 540; }
.settings-preferences-row .settings-mode-options { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.settings-mode-options button { flex: 1 1 0; min-width: 0; }
@media (max-width: 520px) {
  .settings-preferences-row { gap: 12px; }
  .settings-mode-options button { padding-inline: 7px; font-size: 11px; }
}
.form-stack label {
  display: grid;
  gap: 7px;
  color: var(--secondary);
  font-size: 13px;
  font-weight: 540;
}

input, select, textarea { border-radius: 8px; }

.form-stack input, .form-stack select, textarea, select,
.task-form input, .task-form select,
.schedule-name-input, .schedule-shift-input, .schedule-checkout-input,
.timeoff-date, .timeoff-details,
.fix-add-form input, .need-add-form input,
.manager-room-card .fix-add-form input,
.linen-entry-form input,
.linen-stock-input,
.message-compose-form select, .message-compose-form textarea,
.employee-message-form textarea,
.edit-field input,
.checkout-history-bar input[type=date] {
  width: 100%;
  border: 1px solid var(--well-border);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .22), rgba(0, 0, 0, 0) 55%),
    rgba(255, 255, 255, .024);
  color: var(--text);
  padding: 10px 12px;
  outline: none;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, .32), inset 0 -1px 0 rgba(255, 255, 255, .03);
  transition: border-color var(--motion) ease, box-shadow var(--motion) ease, background var(--motion) ease;
}
.form-stack input:focus, .form-stack select:focus, textarea:focus, select:focus,
.task-form input:focus, .task-form select:focus, .schedule-name-input:focus,
.schedule-shift-input:focus, .schedule-checkout-input:focus, .timeoff-date:focus,
.timeoff-details:focus, .fix-add-form input:focus, .need-add-form input:focus,
.linen-entry-form input:focus, .linen-stock-input:focus, .message-compose-form select:focus,
.message-compose-form textarea:focus, .employee-message-form textarea:focus,
.edit-field input:focus, .checkout-history-bar input[type=date]:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--ring), inset 0 1px 2px rgba(0, 0, 0, .3);
}
input::placeholder, textarea::placeholder { color: var(--faint); }
/* Schedule shift placeholders ("OFF") read brighter (Stephanie, 2026-08-27). */
.schedule-shift-input::placeholder { color: var(--secondary); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
textarea { resize: vertical; min-height: 96px; }
input[type=checkbox] { accent-color: var(--accent); }
input[type=date] { color-scheme: dark; }

.form-message { min-height: 20px; color: var(--red); font-size: 13px; }
.security-note {
  text-align: center;
  color: var(--faint);
  font-size: 12px;
  margin: 20px 0 0;
  letter-spacing: .02em;
}
.security-note::before { content: "◈ "; color: var(--accent); }

/* ------------------------------------------------------------------ */
/* 6. AUTH — bright, theme-independent staff sign-in                   */
/* ------------------------------------------------------------------ */

.auth-shell {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: clamp(20px, 5vw, 56px);
  isolation: isolate;
  color: #24352f;
  background:
    radial-gradient(circle at 12% 10%, rgba(212, 155, 88, .17), transparent 30%),
    radial-gradient(circle at 88% 88%, rgba(78, 116, 97, .12), transparent 32%),
    linear-gradient(145deg, #fbf8f2 0%, #f3ede3 52%, #edf2ed 100%);
}

.auth-shell::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  opacity: .44;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(83, 103, 91, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(83, 103, 91, .045) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: linear-gradient(to bottom, #000, transparent 88%);
  mask-image: linear-gradient(to bottom, #000, transparent 88%);
}

.auth-card {
  position: relative;
  width: min(480px, 100%);
  padding: clamp(28px, 5vw, 44px);
  overflow: hidden;
  color: #24352f;
  background: rgba(255, 253, 249, .97);
  border: 1px solid rgba(59, 82, 70, .16);
  border-radius: 24px;
  box-shadow: 0 1px 1px rgba(25, 45, 36, .06), 0 24px 64px rgba(42, 60, 51, .16);
}

.auth-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, #9c5f2d, #c98e4a 52%, #496f5c);
}

.auth-card::after { content: none; }

.auth-brand {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-bottom: 24px;
  border-bottom: 1px solid #e4ddd1;
}

.auth-brand-copy { display: grid; gap: 3px; line-height: 1.2; }
.auth-brand-copy span {
  color: #263b32;
  font-family: var(--font-display);
  font-size: 23px;
  font-weight: 600;
  letter-spacing: -.02em;
}
.auth-brand-copy strong {
  color: #6b766f;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.auth-intro { padding-top: 30px; }
#auth-view .auth-card .eyebrow {
  margin: 0 0 9px;
  color: #865127;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
}
#auth-view .auth-card .eyebrow::before { background: #b5753c; }
#auth-view .auth-card h1 {
  margin: 0;
  color: #1f3129;
  font-size: clamp(30px, 7vw, 39px);
  line-height: 1.12;
  letter-spacing: -.035em;
}
#auth-view .auth-card #auth-copy {
  max-width: 37ch;
  margin: 10px 0 0;
  color: #59665f;
  font-size: 15px;
  line-height: 1.55;
}
#auth-view .auth-card .form-stack { gap: 18px; margin-top: 28px; }
#auth-view .auth-card .form-stack label {
  gap: 8px;
  color: #2b3c34;
  font-size: 14px;
  font-weight: 650;
}
#auth-view .auth-card .form-stack input {
  min-height: 54px;
  padding: 13px 15px;
  color: #1f3129;
  font-size: 16px;
  background: #fff;
  border: 1px solid #b9c2bc;
  border-radius: 10px;
  box-shadow: inset 0 1px 2px rgba(31, 49, 41, .05);
}
#auth-view .auth-card .form-stack input::placeholder { color: #7c8881; }
#auth-view .auth-card .form-stack input:focus {
  background: #fff;
  border-color: #496f5c;
  box-shadow: 0 0 0 4px rgba(73, 111, 92, .16);
}
#auth-view .auth-card .button.primary {
  min-height: 54px;
  margin-top: 2px;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  background: linear-gradient(180deg, #527a66, #365a48);
  border: 1px solid #31513f;
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(49, 81, 63, .19);
}
#auth-view .auth-card .button.primary:hover {
  color: #fff;
  background: linear-gradient(180deg, #5e8973, #3d6651);
  border-color: #31513f;
}
#auth-view .auth-card .button.primary:focus-visible {
  outline: 3px solid rgba(73, 111, 92, .26);
  outline-offset: 3px;
}
#auth-view .auth-card .form-message {
  margin: 10px 0 0;
  color: #a33c3c;
  font-weight: 600;
}
#auth-view .auth-card .security-note {
  margin-top: 18px;
  color: #66736c;
  font-size: 12px;
  font-weight: 550;
}
#auth-view .auth-card .security-note::before { color: #496f5c; }

/* flame-cut brand mark: a sharp-cut plate holding the P */
.brand-mark {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-m) 6px 6px var(--radius-m);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .35) 0%, rgba(255, 255, 255, 0) 34%),
    linear-gradient(155deg, color-mix(in srgb, var(--accent) 70%, #ffffff), var(--accent) 55%, color-mix(in srgb, var(--accent) 30%, #101018) 140%);
  color: white;
  font-size: 22px;
  font-weight: 640;
  line-height: 1;
  box-shadow: inset 0 1px rgba(255, 255, 255, .35), 0 8px 22px -8px var(--accent-soft-2);
  letter-spacing: -.02em;
}
.brand-mark.small {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-m) 5px 5px var(--radius-m);
  font-size: 16px;
}

/* login card: the Sisyphus icon (rounded plaque is baked into the artwork) */
.brand-mark-img {
  background: none;
  box-shadow: none;
  border-radius: 9px;
  object-fit: cover;
  display: block;
}

.auth-brand-mark {
  display: block;
  flex: 0 0 auto;
  width: 72px;
  height: 72px;
  border-radius: 18px;
  box-shadow: 0 8px 20px rgba(55, 71, 62, .18);
}

/* ------------------------------------------------------------------ */
/* 7. SHELL — sidebar rail + topbar                                    */
/* ------------------------------------------------------------------ */

.app-shell { min-height: 100vh; }

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--sidebar);
  padding: 20px 14px;
  border-right: 1px solid var(--border-soft);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .016), rgba(255, 255, 255, 0) 34%),
    #0b0c0d;
  display: flex;
  flex-direction: column;
  z-index: 3;
  overflow: hidden;
}

/* 20 tabs + brand + foot no longer fit most desktop windows (Stephanie,
   2026-09-05: "all sidebar items arent visible and theres no way to scroll").
   The nav becomes the flex-growing, scrollable middle; brand and foot stay
   pinned so sign-out is always reachable. */
.sidebar nav {
  grid-auto-rows: max-content;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, .18) transparent;
  padding-right: 2px;
}
.sidebar nav::-webkit-scrollbar { width: 6px; }
.sidebar nav::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .18); border-radius: 3px; }
.sidebar nav::-webkit-scrollbar-track { background: transparent; }

.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 2px 6px 22px;
  position: relative;
}
/* dawn seam under the brand block */
.brand::after {
  content: "";
  position: absolute;
  left: 6px; right: 6px; bottom: 12px;
  height: 1px;
  background: var(--seam);
  opacity: .75;
}
.brand > div:last-child { display: grid; }
.brand strong { font-size: 14px; font-weight: 620; letter-spacing: .02em; }
.brand span:last-child { font-size: 11px; color: var(--faint); letter-spacing: .14em; text-transform: uppercase; }

nav { display: grid; gap: 3px; }
.mobile-nav-dock-tools { display: contents; }
.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; }
.nav-room-search { display: flex; align-items: center; gap: 6px; margin: 0 2px 8px; padding: 4px; border: 1px solid color-mix(in srgb, var(--border) 72%, transparent); border-radius: 9px; background: rgba(255, 255, 255, .035); }
.nav-room-search input { min-width: 0; flex: 1; border: 0; outline: 0; padding: 6px 7px; background: transparent; color: var(--text); font: 500 12px/1.2 inherit; }
.nav-room-search input::placeholder { color: var(--faint); }
.nav-room-search button { flex: 0 0 auto; width: 26px; height: 26px; padding: 0; border: 0; border-radius: 6px; background: var(--accent-soft); color: var(--accent-ink); font-size: 20px; line-height: 1; cursor: pointer; }
.nav-room-search:focus-within { border-color: var(--accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent); }
.mobile-nav-sheet .nav-room-search { margin: 0 14px 8px; }
.room-work-search-dialog { width: min(92vw, 640px); max-height: min(82vh, 760px); padding: 18px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); color: var(--text); box-shadow: 0 26px 80px rgba(0, 0, 0, .48); }
.room-work-search-dialog::backdrop { background: rgba(4, 7, 12, .7); backdrop-filter: blur(3px); }
.room-work-search-head { display: flex; align-items: start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.room-work-search-head h3 { margin: 3px 0 4px; font-size: 20px; }
.room-work-search-head .muted { margin: 0; }
.room-work-search-list { display: grid; gap: 8px; max-height: min(58vh, 540px); overflow: auto; padding-right: 2px; }
.room-work-search-result { display: flex; align-items: start; gap: 14px; width: 100%; padding: 12px; border: 1px solid var(--border); border-radius: 10px; background: color-mix(in srgb, var(--surface) 80%, var(--accent) 4%); color: var(--text); text-align: left; cursor: pointer; }
.room-work-search-result:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, var(--surface)); }
.room-work-search-result > strong { flex: 0 0 76px; }
.room-work-search-result > span { display: grid; gap: 3px; min-width: 0; }
.room-work-search-result small { color: var(--muted); font-size: 12px; }
.room-work-search-result small b { color: var(--accent-ink); }
.room-search-target { animation: room-search-pulse 1.5s ease-in-out 2; }
@keyframes room-search-pulse { 50% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 45%, transparent), 0 0 24px color-mix(in srgb, var(--accent) 30%, transparent); } }

/* rail navigation: flat console keys, active = lit tick */
.nav-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 11px;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 10px 10px 10px 13px;
  min-height: 40px;
  background: transparent;
  color: var(--muted);
  text-align: left;
  font-weight: 520;
  letter-spacing: .01em;
  transition: background var(--motion) ease, color var(--motion) ease, box-shadow var(--motion) ease;
  box-shadow: none;
}
.nav-item::before {
  /* left tick — lights on hover, filled when active */
  content: "";
  position: absolute;
  left: 2px; top: 50%;
  width: 3px; height: 16px;
  transform: translateY(-50%) scaleY(.35);
  border-radius: 2px;
  background: var(--accent);
  opacity: 0;
  transition: opacity var(--motion) ease, transform var(--motion) ease, box-shadow var(--motion) ease;
}
.nav-item:hover {
  /* Hover highlight follows the theme accent (not a fixed pink/white) —
     a soft accent-tinted wash plus a dimmed label (Stephanie, 2026-08-27).
     The first background line is the fallback for browsers without
     color-mix() (older phones); the color-mix gradient overrides it where
     supported. */
  background: var(--accent-soft);
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 13%, transparent), color-mix(in srgb, var(--accent) 5%, transparent));
  color: var(--text);
}
/* Kill the phone browser's default tap-highlight (a pink/purple ripple that
   never follows the theme) app-wide — our own accent states show feedback
   instead (Stephanie, 2026-08-27: "hover highlight is still bright pink and
   doesnt change with the theme"). */
html {
  -webkit-tap-highlight-color: transparent;
}
.nav-item, #mobile-nav-select, button, a {
  -webkit-tap-highlight-color: transparent;
}
.nav-item:hover::before { opacity: .4; transform: translateY(-50%) scaleY(.85); }
.nav-item.active {
  /* Active tab: vivid accent, but TRANSLUCENT like the header (Stephanie,
     2026-08-27 — "color looks good but now it's more opaque than the header").
     The accent is blended with transparent (not a solid base), so the tab
     reads at the header's translucency while the stronger percentage keeps
     the saturated color. */
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 34%, transparent), color-mix(in srgb, var(--accent) 16%, transparent));
  -webkit-backdrop-filter: blur(30px) saturate(1.6);
  backdrop-filter: blur(30px) saturate(1.6);
  color: var(--text);
  border: 1px solid color-mix(in srgb, var(--accent) 60%, transparent);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}
.nav-item.active::before {
  opacity: 1;
  transform: translateY(-50%) scaleY(1);
  box-shadow: 0 0 10px var(--accent-soft-2);
}
.nav-item > span:first-child { color: var(--faint); width: 26px; text-align: center; font-size: 16px; line-height: 1; }
.nav-item.active > span:first-child { color: var(--accent-ink); }
/* No gray focus ring on the tab selector — the active state already shows
   the current tab clearly (Stephanie, 2026-08-27, "grayish bubble around the
   tab selector"). */
.nav-item:focus, .nav-item:focus-visible,
#mobile-nav-select:focus, #mobile-nav-select:focus-visible { outline: none; box-shadow: none; }

/* drag-sort states (existing behavior, better visuals) */
.nav-item.dragging { opacity: .45; box-shadow: 0 0 0 2px var(--ring); border-radius: 8px; }
.nav-item.drag-over { box-shadow: 0 0 0 2px var(--ring); }
body:not(.tab-order-editing) .sidebar .nav-item { cursor: pointer; }
body.tab-order-editing .sidebar .nav-item[data-view] { cursor: grab; }
body.tab-order-editing .sidebar .nav-item.active { box-shadow: 0 0 0 2px var(--ring), inset 0 1px 0 rgba(255,255,255,.12); }

/* Tab reorder control (desktop + mobile). Arrow buttons move the active tab. */
.nav-reorder {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 2px 0 10px;
  padding: 3px 4px;
}
.nav-order-edit { width: 100%; }
.nav-order-actions { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.nav-order-actions[hidden] { display: none; }
.nav-order-actions .button { min-height: 28px; padding: 5px 8px; }
.nav-reorder-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.018)), rgba(255,255,255,.035);
  color: var(--text);
  font-size: 11px;
  line-height: 1;
  cursor: pointer;
  box-shadow: var(--lit-edge);
  transition: background var(--motion) ease, border-color var(--motion) ease, color var(--motion) ease;
}
.nav-reorder-btn:hover { background: linear-gradient(180deg, rgba(255,255,255,.085), rgba(255,255,255,.03)), rgba(255,255,255,.05); color: var(--accent); border-color: rgba(255,255,255,.16); }
.nav-reorder-hint { font-size: 10px; color: var(--muted); letter-spacing: .02em; }

.sidebar-foot { margin-top: auto; }
.user-chip {
  padding: 12px 8px;
  margin-bottom: 6px;
  display: grid;
  border-top: 1px solid var(--border-soft);
  margin-top: 8px;
}
.user-chip strong { font-size: 13px; }
.user-chip span { font-size: 11px; color: var(--muted); text-transform: capitalize; }

@media (min-width: 701px) {
  .sidebar-foot .user-chip { display: none; }
}

.workspace {
  margin-left: var(--sidebar);
  min-height: 100vh;
  padding: 0 34px 72px;
  box-shadow: inset 5px 0 12px -10px rgba(0, 0, 0, .7);
}

/* Desktop workspaces should use the window as an operations board instead of
   leaving an unused strip beside the active tab. Keep this scoped above the
   phone breakpoint so the mobile dock and its compact content widths stay
   exactly as designed. */
@media (min-width: 1001px) {
  .workspace {
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
    padding-inline: 24px;
    padding-bottom: 32px;
  }

  .workspace > :is(.topbar, .global-message, .view) {
    width: 100%;
    max-width: none;
  }

  .workspace > .view {
    flex: 1 1 auto;
    min-height: calc(100dvh - 120px);
  }

  .workspace > .view > .panel {
    width: 100%;
    max-width: none;
  }
}

.topbar {
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 18px;
  /* Header color + translucence match the active tab selector exactly — the
     same accent-tinted glass recipe as .nav-item.active (34% → 16%,
     translucent, accent 60% border) so both read identically (Stephanie,
     2026-08-27 — she prefers the tab selector look). */
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 34%, transparent), color-mix(in srgb, var(--accent) 16%, transparent));
  border: 1px solid color-mix(in srgb, var(--accent) 60%, transparent);
  border-radius: var(--radius-m);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
  -webkit-backdrop-filter: blur(30px) saturate(1.6);
  backdrop-filter: blur(30px) saturate(1.6);
  position: sticky;
  top: 0;
  z-index: 2;
}
/* the roof line — dawn seam along the top of the board */
.topbar::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 1px;
  background: var(--seam);
  opacity: .55;
  z-index: 1;
}
.topbar .eyebrow { margin: 0 0 5px; }
.topbar h1 { font-size: 22px; }
.top-actions { display: flex; align-items: center; gap: 10px; }
/* Header controls share one quiet instrument-panel treatment. Individual
   actions still communicate through their labels/tooltips, not loud colors. */
.top-actions > .button,
.top-actions .notification-button {
  height: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, 0)),
    var(--surface);
  border-color: var(--border);
  color: var(--secondary);
  box-shadow: var(--lit-edge), 0 2px 0 -1px rgba(0, 0, 0, .45);
}
.top-actions > .button:hover,
.top-actions .notification-button:hover {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .075), rgba(255, 255, 255, 0)),
    var(--surface-2);
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
  color: var(--text);
}
/* Chat top-bar controls (Stephanie, 2026-09-05): compact sizing lives here
   instead of inline styles so the phone layout's font-size:0 + ::first-letter
   collapse can override it — inline styles beat this sheet and left the full
   button text overflowing (and pushing Upload/Pause off) the phone top bar. */
#chat-scan-button,
#chat-sync-toggle,
#chat-upload-button {
  font-size: 12px;
  padding: 4px 10px;
}

/* gate clock — the check-in countdown as a departure-board plate */
.checkin-countdown {
  font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-variant-numeric: tabular-nums;
  font-size: 17px;
  font-weight: 680;
  color: var(--accent-ink);
  letter-spacing: .02em;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, 0)),
    var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 6px 12px;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}
.checkin-countdown::before {
  content: "CHECK-IN";
  font-size: 9px;
  letter-spacing: .14em;
  color: var(--faint);
  margin-right: 9px;
  font-weight: 590;
  font-family: "Space Grotesk", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.theme-select {
  min-height: 34px;
  padding: 5px 9px 5px 11px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  color: var(--secondary);
  font-size: 12px;
  font-weight: 540;
  cursor: pointer;
  box-shadow: var(--lit-edge);
}
.theme-select:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }

/* ------------------------------------------------------------------ */
/* 8. STATUS STRIP / SECTION HEADINGS                                  */
/* ------------------------------------------------------------------ */

.view { padding-top: 24px; animation: view-rise var(--motion-slow) cubic-bezier(.2, .7, .25, 1); }
#quiz-view .quiz-tab-stack { display: grid; gap: var(--today-card-gap, 18px); }
@keyframes view-rise {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: none; }
}

.status-strip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin-bottom: 18px;
}
.status-strip h2, .section-heading h2 {
  font-size: 22px;
  font-weight: 560;
  letter-spacing: -.4px;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 11px;
}
/* punched room-stamp beside page headings */
.status-strip h2::before, .section-heading h2::before {
  content: "";
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  background: var(--accent);
  border-radius: var(--radius-s) var(--radius-s) var(--radius-s) 2px;
  box-shadow: 0 0 12px var(--accent-soft-2);
}
.status-strip p { margin: 4px 0 0; }
.sync-meta {
  font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--faint);
  font-size: 11px;
}

.mode-banner {
  padding: 11px 14px;
  border-radius: 8px;
  border: 1px solid rgba(226, 173, 76, .26);
  background: linear-gradient(90deg, rgba(226, 173, 76, .08), rgba(226, 173, 76, .02));
  color: #e7c98d;
  margin-bottom: 18px;
  font-size: 13px;
  box-shadow: var(--lit-edge);
}
.mode-banner.live {
  border-color: rgba(48, 183, 123, .32);
  background: linear-gradient(90deg, rgba(48, 183, 123, .08), rgba(48, 183, 123, .02));
  color: #9be0bf;
}

.section-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }

/* Housekeeper/bedmaker Today greeting (2026-08-28, Stephanie): centered,
   warm Sentient serif across the WHOLE line. */
.housekeeper-greeting {
  font-family: "Sentient", Georgia, "Times New Roman", serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: -.2px;
  text-align: center;
  margin: 2px 0 18px;
  color: var(--accent);
  /* WHOLE LINE one theme color (Stephanie, 2026-08-29: "make the whole good
     morning name one color, a bit brighter") — the greeting reads as a single
     accent-colored line instead of text+colored-name. */
  text-shadow: 0 1px 0 rgba(0, 0, 0, .25);
}
.housekeeper-greeting em {
  font-style: italic;
  font-weight: 700;
  font-size: 34px;
  color: var(--accent-hover, var(--accent));
  /* Brighter name tint + a NOTICEABLE glow (Stephanie, 2026-08-29): a wider,
     double-layer halo in the accent color so the name visibly lights up. */
  text-shadow:
    0 0 14px color-mix(in srgb, var(--accent) 70%, transparent),
    0 0 34px color-mix(in srgb, var(--accent) 45%, transparent),
    0 1px 0 rgba(0, 0, 0, .25);
  /* SUBTLE PULSE (Stephanie, 2026-08-29): the halo breathes — the glow eases
     between the base strength and a slightly wider bloom on a slow, gentle
     rhythm. Color and text never change, only the glow's reach. */
  animation: greeting-glow-pulse 3.2s ease-in-out infinite;
}
@keyframes greeting-glow-pulse {
  0%, 100% {
    text-shadow:
      0 0 14px color-mix(in srgb, var(--accent) 70%, transparent),
      0 0 34px color-mix(in srgb, var(--accent) 45%, transparent),
      0 1px 0 rgba(0, 0, 0, .25);
  }
  50% {
    text-shadow:
      0 0 20px color-mix(in srgb, var(--accent) 85%, transparent),
      0 0 52px color-mix(in srgb, var(--accent) 60%, transparent),
      0 1px 0 rgba(0, 0, 0, .25);
  }
}
@media (prefers-reduced-motion: reduce) {
  .housekeeper-greeting em { animation: none; }
}
.section-heading .eyebrow { margin: 0 0 4px; }
.section-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* Reference tab: permanent standards first, then live room-specific work. */
.reference-guide-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.reference-manager-panel { margin-bottom: 16px; }
.reference-manager-tools { display: grid; gap: 0; }
.reference-card-form { display: grid; grid-template-columns: minmax(240px, 1fr) auto; gap: 12px; padding: 14px; align-items: end; border-bottom: 1px solid var(--border-soft); background: color-mix(in srgb, var(--accent) 5%, transparent); }
.reference-add-form { display: grid; grid-template-columns: minmax(170px, .7fr) minmax(220px, 1fr) minmax(300px, 1.6fr) auto; gap: 12px; padding: 14px; align-items: end; }
.reference-card-form label,
.reference-add-form label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.reference-card-form input,
.reference-add-form :is(input, select, textarea),
.reference-edit-form :is(input, select, textarea) { width: 100%; }
.reference-guide-section { overflow: hidden; break-inside: avoid; }
.reference-guide-section .panel-head { align-items: center; }
.reference-count { color: var(--muted); font-size: 12px; white-space: nowrap; }
.reference-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 0 14px 12px; }
.reference-photo { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--border-soft); border-radius: 12px; background: var(--panel-soft); }
.reference-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.reference-photo figcaption { padding: 8px 10px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.reference-photo .reference-photo-delete { position: absolute; top: 7px; right: 7px; backdrop-filter: blur(8px); }
.reference-photo-form { display: grid; grid-template-columns: auto minmax(140px, 1fr) auto; gap: 8px; padding: 0 14px 12px; align-items: center; }
.reference-photo-picker { position: relative; overflow: hidden; cursor: pointer; }
.reference-photo-picker input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
.reference-guide-list { margin: 0; padding: 4px 18px 12px 36px; }
.reference-guide-item { display: list-item; padding: 10px 0 10px 2px; border-bottom: 1px solid var(--border-soft); }
.reference-guide-item::marker { color: var(--accent); font-size: 1.15em; }
.reference-guide-item:last-child { border-bottom: 0; }
.reference-guide-item-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.reference-guide-empty { list-style: none; margin-left: -18px; }
.reference-guide-copy { min-width: 0; }
.reference-guide-copy strong { display: block; color: var(--text); font-size: 14px; }
.reference-guide-copy p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.reference-item-actions { display: flex; align-items: center; gap: 5px; flex: 0 0 auto; }
.reference-item-actions .button { min-width: 32px; padding-inline: 8px; }
.reference-edit-form { display: grid; grid-template-columns: minmax(140px, .55fr) minmax(180px, 1fr) minmax(250px, 1.6fr) auto; gap: 8px; align-items: end; }
.reference-edit-actions { display: flex; gap: 6px; }
@media (max-width: 900px) {
  .reference-guide-grid { grid-template-columns: 1fr; }
  .reference-card-form, .reference-add-form, .reference-edit-form { grid-template-columns: 1fr; }
  .reference-photo-form { grid-template-columns: 1fr; }
  .reference-guide-item-row { flex-direction: column; }
  .reference-item-actions { flex-wrap: wrap; }
}

/* ------------------------------------------------------------------ */
/* 9. METRICS — arrival-board numerals                                 */
/* ------------------------------------------------------------------ */

.summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.metric {
  position: relative;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, 0) 30%),
    rgba(255, 255, 255, .018);
  border: 1px solid var(--border);
  border-radius: var(--radius-m);
  padding: 16px 17px 15px;
  overflow: hidden;
  box-shadow: var(--lit-edge), 0 10px 26px -22px rgba(0, 0, 0, .6);
  transition: border-color var(--motion) ease, transform var(--motion) ease;
}
.metric::before {
  /* punched ticket hole */
  content: "";
  position: absolute;
  top: 9px; right: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(0, 0, 0, .4);
  box-shadow: 0 0 0 1.5px var(--accent), 0 0 7px var(--accent-soft-2);
}
.metric::after {
  /* dawn seam */
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 1px;
  background: var(--seam);
  opacity: .6;
}
/* Keep wrapping labels from shifting the numbers in Today summary tiles. */
.summary-grid .metric { display: flex; flex-direction: column; align-items: flex-start; }
.summary-grid .metric > span:first-child { min-block-size: 2lh; }
.metric span { display: block; color: var(--muted); font-size: 11px; margin-bottom: 8px; letter-spacing: .03em; }
.metric strong {
  font-size: 28px;
  letter-spacing: -.8px;
  font-weight: 560;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.metric small { display: block; color: var(--faint); font-size: 10px; margin-top: 6px; }
.checkout-summary-metric .checkout-bed-breakdown {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  color: var(--text);
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .02em;
}
.checkout-bed-breakdown em {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 4px;
  border: 1px solid var(--accent);
  border-radius: 6px;
  color: var(--accent);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}
.checkout-bed-breakdown i {
  color: var(--faint);
  font-style: normal;
}
.checkout-bed-breakdown b {
  margin-left: 4px;
  color: var(--faint);
  font-size: 10px;
  font-weight: 500;
}
.rooms-out-tracker-card {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 54px;
  padding: 10px 16px;
}
.rooms-out-tracker-label h3 { margin: 0; font-size: 16px; }
.rooms-out-tracker-count { display: flex; align-items: baseline; gap: 8px; margin-left: auto; }
.rooms-out-tracker-count strong { color: var(--accent-ink); font-size: 26px; font-variant-numeric: tabular-nums; }
.rooms-out-tracker-count span { color: var(--muted); font-size: 12px; }
/* ------------------------------------------------------------------ */
/* 10. PANELS — ticket-stub plates                                     */
/* ------------------------------------------------------------------ */

.ops-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr); gap: 14px; }
/* Even vertical rhythm for the assignments grid (matches the 18px card gap
   used everywhere else) — top/bottom margins + row gap all 18px. */
#checkout-view .ops-grid { margin: 18px 0; row-gap: 18px; }

.panel {
  position: relative;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .026), rgba(255, 255, 255, 0) 22%),
    rgba(255, 255, 255, .018);
  border: 1px solid var(--border);
  border-radius: var(--radius-m);
  overflow: hidden;
  box-shadow: var(--lit-edge), 0 14px 34px -26px rgba(0, 0, 0, .7);
  transition: border-color var(--motion) ease, box-shadow var(--motion) ease;
}
.panel::before {
  /* dawn seam */
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 1px;
  background: var(--seam);
  opacity: .55;
  z-index: 1;
}
.panel::after {
  /* punched ticket hole */
  content: "";
  position: absolute;
  top: 9px; right: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(0, 0, 0, .4);
  box-shadow: 0 0 0 1.5px var(--accent), 0 0 7px var(--accent-soft-2);
  z-index: 1;
}
.panel + .panel { margin-top: 18px; }
@media (hover: hover) {
  .panel:hover {
    border-color: rgba(255, 255, 255, .14);
    box-shadow: var(--lit-edge), 0 20px 44px -28px rgba(0, 0, 0, .8);
  }
}

.panel-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 17px 13px;
  border-bottom: 1px solid var(--border-soft);
}
.panel-head h3 {
  font-size: 14px;
  font-weight: 620;
  margin: 0;
  letter-spacing: .012em;
}
.panel-head .muted,
.room-card-head > div > p { display: none !important; }
.panel-head h3::before {
  content: "▸ ";
  color: var(--accent);
  font-size: 11px;
  vertical-align: 1px;
}
.panel-body { padding: 14px 17px; }
.panel-head-actions { display: flex; align-items: center; gap: 8px; }

/* ------------------------------------------------------------------ */
/* 11. TABLES                                                           */
/* ------------------------------------------------------------------ */

.room-table { width: 100%; border-collapse: collapse; }
.room-table th {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--faint);
  font-weight: 620;
  text-align: left;
  padding: 9px 12px;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255, 255, 255, .025), transparent);
}
.room-table th:first-child, .room-table td:first-child { padding-left: 17px; }
.room-table th:last-child, .room-table td:last-child { padding-right: 17px; }
.room-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--border-soft);
  vertical-align: middle;
}
.room-table tr:last-child td { border-bottom: 0; }
.room-table tbody tr { transition: background var(--motion) ease, box-shadow var(--motion) ease; }
.room-table tbody tr:hover td {
  background: linear-gradient(90deg, var(--accent-soft), transparent 75%);
  box-shadow: inset 2px 0 0 var(--accent);
}

/* Fix items under each Today's Remaining Checkouts row (2026-08-25) */
.today-fix-row td {
  padding: 0 17px 12px 17px;
  border-bottom: 1px solid var(--border-soft);
  background: transparent;
}
.today-fix-row:hover td { background: transparent; box-shadow: none; }
.today-fix-block { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.today-fix-block .fix-list { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; }
.today-fix-block .fix-item { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border-radius: 7px; background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.018)), rgba(255,255,255,.035); border: 1px solid var(--border); }
.today-assign-list { display: grid; gap: 6px; }
.today-assign-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 9px; background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015)), rgba(255,255,255,.03); border: 1px solid var(--border); }
.today-assign-person { flex: 1 1 auto; min-height: 34px; text-align: left; border: 0; background: transparent; color: var(--text); font-weight: 600; cursor: pointer; padding: 0; border-radius: 7px; }
.today-assign-person:hover { color: var(--accent-ink); }
.today-assign-count { margin-left: 6px; }
.assignments-today-head { align-items: flex-start; }
.today-assignment-tally { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
.today-assignment-tally-item { display: inline-flex; align-items: center; gap: 6px; padding: 4px 7px; border: 1px solid var(--border-soft); border-radius: 999px; background: color-mix(in srgb, var(--accent) 7%, transparent); color: var(--text); font-size: 12px; line-height: 1.2; }
.today-assignment-tally-item strong { color: var(--accent-ink); font-variant-numeric: tabular-nums; }
.today-checkout-assignment-list { display: grid; gap: 7px; }
.assignments-today-card .today-checkout-assignment-list { max-height: min(56vh, 520px); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding-right: 4px; }
.today-checkout-assignment-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, .8fr); align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 9px; background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015)), rgba(255,255,255,.03); }
.today-checkout-assignment-room { display: grid; gap: 3px; min-width: 0; }
.today-checkout-assignment-room > span { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; min-width: 0; color: var(--muted); font-size: 11px; }
.today-checkout-assignment-row .assignee-select { width: 100%; min-width: 0; }
@media (max-width: 700px) {
  .today-checkout-assignment-row { grid-template-columns: minmax(0, 1fr) minmax(118px, .85fr); gap: 7px; padding: 7px 8px; }
  .today-checkout-assignment-row .assignee-select { font-size: 12px; padding-inline: 7px; }
}
.hk-assign-body { display: grid; gap: 7px; margin-top: 14px; max-height: 60vh; overflow: auto; overscroll-behavior: contain; padding-right: 4px; }
.hk-assign-room { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 9px; background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015)), rgba(255,255,255,.03); border: 1px solid var(--border); cursor: pointer; flex-wrap: wrap; }
.hk-assign-room.checked { border-color: color-mix(in srgb, var(--accent) 55%, transparent); background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 16%, transparent), rgba(255,255,255,.02)); }
.hk-assign-room input[type="checkbox"] { accent-color: var(--accent); width: 17px; height: 17px; flex: 0 0 auto; }
.hk-room-no { font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 700; min-width: 40px; }
.hk-room-kind { color: var(--muted); font-size: 12px; }
.hk-assign-owner { margin-left: auto; font-size: 12px; color: var(--muted); white-space: nowrap; }
.hk-assign-dialog { width: min(560px, calc(100vw - 28px)); }
.hk-assign-common-wrap { margin-top: 14px; border-top: 1px dashed var(--border); padding-top: 10px; }
.hk-assign-common-head { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.hk-assign-common-list { display: grid; gap: 7px; max-height: 30vh; overflow: auto; overscroll-behavior: contain; padding-right: 4px; }
.hk-assign-common { display: flex; align-items: baseline; gap: 8px; padding: 8px 11px; border-radius: 9px; background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015)), rgba(255,255,255,.03); border: 1px solid var(--border); font-size: 13px; }
.hk-assign-common::before { content: '🧹'; font-size: 12px; flex: 0 0 auto; }
.hk-assign-common-head.muted { font-weight: 500; letter-spacing: 0; text-transform: none; }
.today-fix-add-form { display: inline-flex; gap: 6px; align-items: center; margin: 0; }
.today-fix-add-form input { width: 170px; padding: 5px 9px; border: 1px solid var(--well-border); border-radius: 8px; background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.018)), rgba(255,255,255,.035); color: var(--text); min-height: 30px; }
.today-fix-add-form .button { min-height: 30px; padding: 4px 10px; font-size: 12px; }

/* room key tag — the app's signature data artifact */
.room-number {
  font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 640;
  letter-spacing: .01em;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}
.room-number::before {
  content: "";
  width: 7px; height: 7px;
  flex: 0 0 auto;
  background: var(--accent);
  opacity: .8;
  clip-path: polygon(0 0, 100% 22%, 100% 78%, 0 100%, 38% 50%);
}

.status-badge { padding: 3px 8px; }

/* ------------------------------------------------------------------ */
/* 12. ROOM CARDS & ARRIVAL TIERS                                      */
/* ------------------------------------------------------------------ */

.housekeeper-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.room-card {
  position: relative;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-m);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .032), rgba(255, 255, 255, 0) 30%),
    rgba(255, 255, 255, .02);
  overflow: hidden;
  box-shadow: var(--lit-edge), 0 14px 30px -24px rgba(0, 0, 0, .7);
  transition: border-color var(--motion) ease, transform var(--motion) ease, box-shadow var(--motion) ease;
}
.room-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 1px;
  background: var(--seam);
  opacity: .55;
}
.room-card::after {
  content: "";
  position: absolute;
  top: 9px; right: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(0, 0, 0, .4);
  box-shadow: 0 0 0 1.5px var(--accent), 0 0 7px var(--accent-soft-2);
}
@media (hover: hover) {
  .room-card:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 255, 255, .16);
    box-shadow: var(--lit-edge), 0 22px 46px -26px rgba(0, 0, 0, .85);
  }
}
.room-card-head { display: flex; justify-content: space-between; align-items: start; margin-bottom: 20px; }
.room-card .room-number { font-size: 27px; font-weight: 680; }
.room-card .room-number::before {
  width: 10px; height: 10px;
  background: var(--accent);
  opacity: .85;
  clip-path: polygon(0 0, 100% 22%, 100% 78%, 0 100%, 38% 50%);
}
.room-card p { color: var(--muted); font-size: 12px; margin: 5px 0; }
.room-card .button { width: 100%; }
/* Completion is represented by the shared badge; themed card frames remain independent. */

/* Housekeeper room cards — a little more boutique-hotel, while keeping the
   operational information calm and readable. */
.housekeeper-grid .room-card {
  isolation: isolate;
  border-color: color-mix(in srgb, var(--accent) 24%, var(--border));
  background:
    radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 32%),
    linear-gradient(145deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 48%),
    linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .09),
    inset 0 -18px 34px rgba(0, 0, 0, .12),
    0 16px 34px -25px color-mix(in srgb, var(--accent) 46%, #000);
}
.housekeeper-grid .room-card::before {
  left: 12px;
  right: 12px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 82%, #fff), transparent);
  box-shadow: 0 0 13px color-mix(in srgb, var(--accent) 50%, transparent);
  opacity: .9;
}
.housekeeper-grid .room-card::after {
  top: 13px;
  right: 13px;
  width: 7px;
  height: 7px;
  background: var(--accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent), 0 0 12px color-mix(in srgb, var(--accent) 78%, transparent);
}
.housekeeper-grid .room-card-head {
  position: relative;
  padding-bottom: 12px;
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
}
.housekeeper-grid .room-card .room-number {
  text-shadow: 0 0 18px color-mix(in srgb, var(--accent) 32%, transparent);
}
.housekeeper-grid .room-card:not(.finished).arrival-tier {
  border-color: color-mix(in srgb, var(--purple) 58%, var(--border));
  background:
    radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--purple) 22%, transparent), transparent 34%),
    linear-gradient(145deg, color-mix(in srgb, var(--purple) 13%, transparent), transparent 55%),
    linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012));
}
.housekeeper-grid .room-card:not(.finished).early-tier {
  border-color: color-mix(in srgb, #ff2fb4 58%, var(--border));
  background:
    radial-gradient(circle at 92% 8%, color-mix(in srgb, #ff2fb4 22%, transparent), transparent 34%),
    linear-gradient(145deg, color-mix(in srgb, #ff2fb4 12%, transparent), transparent 55%),
    linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012));
}
.housekeeper-grid .room-card.finished {
  border-color: color-mix(in srgb, var(--green) 48%, var(--border));
  background:
    radial-gradient(circle at 92% 8%, rgba(48, 183, 123, .18), transparent 34%),
    linear-gradient(145deg, rgba(48, 183, 123, .11), transparent 55%),
    linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .01));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .1),
    inset 0 -18px 34px rgba(0, 0, 0, .1),
    0 16px 34px -25px rgba(48, 183, 123, .64);
}
.housekeeper-floor-separator {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  margin: 5px 2px 1px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.housekeeper-floor-separator::before,
.housekeeper-floor-separator::after {
  height: 1px;
  flex: 1;
  background: color-mix(in srgb, var(--accent) 32%, var(--border));
  content: '';
}
.myrooms-floor-heading { display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0; }
.myrooms-floor-beds { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; text-transform: none; letter-spacing: normal; }
@media (hover: hover) {
  .housekeeper-grid .room-card:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--accent) 62%, var(--border));
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, .12),
      0 20px 40px -24px color-mix(in srgb, var(--accent) 72%, #000);
  }
}
@media (prefers-reduced-motion: reduce) {
  .housekeeper-grid .room-card { transition: none; }
}

/* Manager room cards should feel like the same polished operational surface as
   housekeeper cards. Keep status-specific colors below/above this treatment
   intact by only adding the shared depth, highlight, and motion language. */
.manager-room-card {
  isolation: isolate;
  border-color: color-mix(in srgb, var(--accent) 24%, var(--border));
  background:
    radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 32%),
    linear-gradient(145deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 48%),
    linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .09),
    inset 0 -18px 34px rgba(0, 0, 0, .12),
    0 16px 34px -25px color-mix(in srgb, var(--accent) 46%, #000);
}
.manager-room-card::before {
  left: 12px;
  right: 12px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 82%, #fff), transparent);
  box-shadow: 0 0 13px color-mix(in srgb, var(--accent) 50%, transparent);
  opacity: .9;
}
.manager-room-card::after {
  top: 13px;
  right: 13px;
  width: 7px;
  height: 7px;
  background: var(--accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent), 0 0 12px color-mix(in srgb, var(--accent) 78%, transparent);
}
.manager-room-card .room-card-head {
  position: relative;
  padding-bottom: 12px;
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
}
.manager-room-card .room-number { text-shadow: 0 0 18px color-mix(in srgb, var(--accent) 32%, transparent); }
@media (hover: hover) {
  .manager-room-card:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--accent) 62%, var(--border));
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, .12),
      0 20px 40px -24px color-mix(in srgb, var(--accent) 72%, #000);
  }
}
@media (prefers-reduced-motion: reduce) {
  .manager-room-card { transition: none; }
}

.room-row td { background: transparent; }
.room-card.arrival-tier {
  border-color: color-mix(in srgb, var(--signal) 55%, transparent);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--signal) 30%, transparent), color-mix(in srgb, var(--signal) 8%, transparent)),
    rgba(255, 255, 255, .012);
  box-shadow: inset 3px 0 0 var(--signal);
}
.room-card.early-tier {
  border-color: color-mix(in srgb, var(--signal) 45%, transparent);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--signal) 18%, transparent), color-mix(in srgb, var(--signal) 4%, transparent)),
    rgba(255, 255, 255, .012);
}

/* STAR + PRIORITY REMOVED (Stephanie, 2026-08-29): no more priority stars —
   arrivals show a purple Arrival badge, early arrivals a HOT PINK badge with a
   pulsing glow. Never both on one room (mutually exclusive server-side). */
.badge.early-badge {
  color: #ff2fb4;
  border-color: color-mix(in srgb, #ff2fb4 55%, transparent);
  background: color-mix(in srgb, #ff2fb4 10%, transparent);
  animation: early-pulse 1.6s ease-in-out infinite;
}
#dashboard-view .badge.early-badge {
  color: #ff2fb4;
  border-color: color-mix(in srgb, #ff2fb4 55%, transparent);
  background: color-mix(in srgb, #ff2fb4 12%, transparent);
}
@keyframes early-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 color-mix(in srgb, #ff2fb4 45%, transparent);
    text-shadow: 0 0 6px color-mix(in srgb, #ff2fb4 55%, transparent);
    border-color: color-mix(in srgb, #ff2fb4 55%, transparent);
  }
  50% {
    box-shadow: 0 0 14px 3px color-mix(in srgb, #ff2fb4 60%, transparent);
    text-shadow: 0 0 14px color-mix(in srgb, #ff2fb4 95%, transparent), 0 0 26px color-mix(in srgb, #ff2fb4 55%, transparent);
    border-color: #ff2fb4;
  }
}
@media (prefers-reduced-motion: reduce) {
  .badge.early-badge { animation: none; }
}
/* "Arrival" tag shown next to a room's checkout status (Stephanie, 2026-08-26). */
.badge.arrival-badge {
  min-height: 30px;
  padding: 6px 12px;
  border: 2px solid color-mix(in srgb, var(--purple) 72%, white);
  color: color-mix(in srgb, var(--purple) 82%, var(--text));
  font-size: 13px;
  font-weight: 820;
  letter-spacing: .02em;
  background: color-mix(in srgb, var(--purple) 17%, transparent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--purple) 12%, transparent), 0 0 13px color-mix(in srgb, var(--purple) 28%, transparent), inset 0 1px 0 color-mix(in srgb, white 45%, transparent);
}
#dashboard-view .badge.arrival-badge,
.today-checkout-card .badge.arrival-badge {
  color: color-mix(in srgb, var(--purple) 88%, var(--text));
  border-color: color-mix(in srgb, var(--purple) 78%, white);
  background: color-mix(in srgb, var(--purple) 18%, transparent);
}
.priority-toggle { margin-left: 10px; }

.room-card-actions { display: flex; gap: 8px; margin-top: 12px; }
.room-card-actions .button { flex: 1 1 auto; }

/* Housekeeper room actions: the card-wide button rule above is useful for
   single actions, but makes Stripped / Bed Made / Finished each claim a full
   row. Keep these controls intrinsic-width and let the group wrap as one unit
   when a narrow card cannot hold all three labels. */
.room-card-actions { flex-wrap: wrap; }
.room-card-actions .button {
  width: auto;
  min-width: 0;
  flex: 0 1 auto;
  white-space: nowrap;
  padding: 8px 10px;
  box-sizing: border-box;
}

/* My Rooms keeps every room-status action on the same compact type scale. */
.myrooms-view .room-card-actions .button {
  font-size: 12px;
}

/* My Rooms bed totals stay with the assigned-room cards and drop as rooms
   are marked Finished. Queen is blue; King is green. */
.myrooms-bed-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; margin: 0 0 10px; padding: 8px 10px; border: 1px solid var(--border-soft); border-radius: 12px; background: var(--panel); }
.myrooms-bed-summary-label { color: var(--muted); font-size: 10px; font-weight: 780; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.myrooms-bed-floors { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); flex: 1 1 480px; gap: 6px; }
.myrooms-bed-floors .myrooms-bed-floor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 4px; min-width: 0; min-height: 44px; padding: 5px 6px; border: 1px solid var(--border-soft); border-radius: 10px; background: color-mix(in srgb, var(--surface) 72%, transparent); }
.myrooms-bed-floor strong { grid-column: 1 / -1; color: var(--text); font-size: 11px; line-height: 1.2; letter-spacing: .015em; white-space: nowrap; }
.myrooms-bed-floor .myrooms-bed-count { justify-content: center; min-width: 0; padding: 3px 4px; }
@media (max-width: 600px) {
  .myrooms-bed-floors { grid-template-columns: repeat(2, minmax(0, 1fr)); flex-basis: 100%; }
}
.myrooms-bed-floor { cursor: pointer; font: inherit; color: var(--text); }
.myrooms-bed-floor:hover { border-color: var(--accent); }
.myrooms-bed-floor:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.myrooms-bed-count { display: inline-flex; align-items: center; min-height: 22px; padding: 3px 8px; border: 1px solid var(--border-soft); border-radius: 999px; font-size: 10px; font-weight: 760; letter-spacing: .02em; line-height: 1; white-space: nowrap; }
.myrooms-bed-count.bed-q { color: var(--blue); background: color-mix(in srgb, var(--blue) 12%, var(--panel)); border-color: color-mix(in srgb, var(--blue) 34%, var(--border-soft)); }
.myrooms-bed-count.bed-k { color: var(--green); background: color-mix(in srgb, var(--green) 12%, var(--panel)); border-color: color-mix(in srgb, var(--green) 34%, var(--border-soft)); }

/* ------------------------------------------------------------------ */
/* 13. LISTS & ROWS                                                     */
/* ------------------------------------------------------------------ */

.notes-list { display: grid; gap: 8px; }
.note {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 11px;
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .028), rgba(255, 255, 255, .012));
  border: 1px solid var(--border-soft);
  font-size: 12px;
  color: var(--secondary);
  box-shadow: var(--lit-edge);
}
.note strong { flex: 0 0 auto; }
.note span { min-width: 0; text-align: right; }
.note-replace { align-items: center; }
/* Keep the action button (and "Replaced" badge) at label width instead of
   letting it stretch to fill the flexible column in .notes-list's grid —
   "just big enough for the words, no bigger" (Stephanie 2026-08-22). Higher
   specificity than .notes-list .note, so it wins in every media query. */
.notes-list .note.note-replace { grid-template-columns: minmax(0, 1fr) auto; }
.note-replace .note-main { display: grid; text-align: left; }
.note-replace .note-main span { font-size: 11px; color: var(--muted); }
.notes-list .note { display: grid; grid-template-columns: auto minmax(0, 1fr); justify-content: start; }

/* tasks */
.task-list { display: grid; }
.task-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 12px 17px;
  border-bottom: 1px solid var(--border-soft);
  transition: background var(--motion) ease;
}
.task-row:last-child { border-bottom: 0; }
.task-row:hover { background: rgba(255, 255, 255, .018); }
.task-main { display: grid; gap: 2px; min-width: 0; }
.task-main strong { font-size: 13px; }
.task-main span { font-size: 11px; color: var(--muted); }
.task-main .common-area-task-date { font-weight: 650; }
.task-controls { display: flex; gap: 8px; align-items: center; }
.task-meta { display: flex; align-items: center; }
.task-row.guest-closet-task {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "main meta" "checklist checklist" "controls controls";
  align-items: start;
}
.guest-closet-task > .task-main { grid-area: main; }
.guest-closet-task > .task-meta { grid-area: meta; justify-self: end; }
.guest-closet-task > .task-controls { grid-area: controls; flex-wrap: wrap; min-width: 0; padding-top: 4px; }
.guest-closet-task > .task-controls > * { max-width: 100%; }
.guest-closet-task > .task-controls > select { width: auto; min-width: 0; flex: 0 1 240px; }
.guest-closet-checklist {
  grid-area: checklist;
  min-width: 0;
  container-type: inline-size;
  display: grid;
  gap: 7px;
  margin-top: 0;
  padding: 10px 12px;
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  background: color-mix(in srgb, var(--panel) 82%, var(--accent) 8%);
  color: var(--text);
  text-align: left;
}
.guest-closet-checklist-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px; }
.guest-closet-checklist-head strong { font-size: 12px; }
.guest-closet-checklist-head span { color: var(--accent-ink); font-size: 11px; font-weight: 700; }
.guest-closet-checklist-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 2px; }
.guest-closet-checklist-status { min-height: 1em; color: var(--muted); font-size: 11px; }
.guest-closet-checklist.is-dirty { border-color: var(--accent); }
.guest-closet-save:disabled { cursor: default; opacity: .55; }
.guest-closet-checklist ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px 16px; margin: 0; padding: 0; list-style: none; }
@container (min-width: 460px) { .guest-closet-checklist ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 760px) { .guest-closet-checklist ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.guest-closet-checklist li { min-width: 0; color: var(--text); }
.guest-closet-checklist label span { min-width: 0; font-size: 13px; line-height: 1.4; color: var(--text); }
.guest-closet-checklist label { display: flex; align-items: flex-start; gap: 9px; min-height: 34px; padding: 7px 0; cursor: pointer; }
@media (pointer: coarse), (max-width: 600px) { .guest-closet-checklist label { min-height: 44px; } }
.guest-closet-checklist input { flex: 0 0 18px; width: 18px; height: 18px; min-height: 18px; margin: 0; accent-color: var(--accent); }
.guest-closet-checklist input:checked + span { color: var(--muted); text-decoration: line-through; }

.task-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 10px; padding: 14px 17px; }
.deep-clean-task-form { grid-template-columns: 110px minmax(0, 1fr) auto; }

/* staff */
.staff-list { display: grid; }
.staff-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 16px;
  padding: 13px 17px;
  border-bottom: 1px solid var(--border-soft);
  transition: background var(--motion) ease;
}
/* Name/details block sits leftmost; controls in the middle, buttons right. */
.staff-row .staff-main { order: -1; min-width: 0; }
.staff-row:last-child { border-bottom: 0; }
.staff-row:hover { background: rgba(255, 255, 255, .02); }
.staff-row strong { display: block; font-size: 13px; }
.staff-row span { font-size: 11px; color: var(--muted); text-transform: capitalize; }
.staff-row-actions { display: flex; gap: 6px; }
.staff-row-actions { align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.staff-limit-col { flex: 0 0 auto; }
.staff-info { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.staff-main { min-width: 0; display: grid; justify-items: start; }
.room-limit-field { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--muted); font-weight: 560; }
.room-limit-field .room-limit-input { width: 58px; min-height: 30px; padding: 3px 6px; border-radius: 7px; border: 1px solid var(--border); background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.018)), rgba(255,255,255,.035); color: var(--secondary); font: 500 12px/1 "Space Mono", ui-monospace, Menlo, monospace; text-align: center; box-shadow: var(--lit-edge); }
.room-limit-note { display: block; margin-top: 4px; font-size: 10px; }
.staff-role-field { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--muted); font-weight: 560; }
.staff-role-field .staff-role-select { min-height: 30px; padding: 4px 8px; font-size: 12px; border: 1px solid var(--border); border-radius: 7px; background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.018)), rgba(255,255,255,.035); color: var(--secondary); box-shadow: var(--lit-edge); }
.staff-mentor-col { flex: 0 0 auto; margin-top: 4px; }
.mentor-field { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--muted); font-weight: 560; }
.mentor-field .mentor-select { min-height: 30px; padding: 4px 8px; font-size: 12px; border: 1px solid var(--border); border-radius: 7px; background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.018)), rgba(255,255,255,.035); color: var(--secondary); box-shadow: var(--lit-edge); }
.room-limit-field .room-limit-input:hover, .staff-role-field .staff-role-select:hover, .mentor-field .mentor-select:hover {
  background: linear-gradient(180deg, rgba(255,255,255,.085), rgba(255,255,255,.03)), rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.16);
  color: var(--text);
}
.room-limit-field .room-limit-input:focus, .staff-role-field .staff-role-select:focus, .mentor-field .mentor-select:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--ring), var(--lit-edge);
}
#staff-form .staff-assignment-setting { display: flex; align-items: center; min-height: 44px; font-size: 14px; cursor: pointer; }
#staff-form .staff-assignment-setting input { flex: 0 0 18px; }
.staff-form-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.staff-form-actions .button { flex: 1 1 140px; }
.removal-warning { color: var(--red); font-size: 12px; font-weight: 620; }

/* schedule rows */
.schedule-list { display: grid; }
.schedule-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 17px;
  border-bottom: 1px solid var(--border-soft);
}
.schedule-row:last-child { border-bottom: 0; }
.schedule-name { display: grid; grid-template-columns: 88px minmax(0, 1fr); align-items: baseline; min-width: 0; font-weight: 600; font-size: 14px; }
.schedule-day, .schedule-date { white-space: nowrap; }
.schedule-shift { color: var(--text); font-size: 13px; font-weight: 560; }
.schedule-shift.off { color: var(--secondary); text-transform: uppercase; letter-spacing: .04em; font-weight: 660; }

/* alerts / messages */
.alert-list { display: grid; }
.alert-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 17px;
  border-bottom: 1px solid var(--border-soft);
  transition: background var(--motion) ease;
}
.alert-row:last-child { border-bottom: 0; }
.alert-row:hover { background: rgba(255, 255, 255, .018); }
.alert-row.read { opacity: .6; }
.alert-main { display: grid; gap: 3px; min-width: 0; }
.alert-text { font-size: 13px; }
.alert-meta { font-size: 11px; color: var(--faint); text-transform: capitalize; }

/* needs */
.need-list { display: grid; }
.need-list-row {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 12px 17px;
  border-bottom: 1px solid var(--border-soft);
}
.need-list-row:last-child { border-bottom: 0; }
.need-list-room { font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 660; }
.need-list-item { min-width: 0; font-size: 13px; overflow-wrap: anywhere; }
.need-fixer { min-width: 0; line-height: 1.35; overflow-wrap: anywhere; }
.needs-clear-row { display: flex; justify-content: flex-end; margin: 0 0 12px; }

@media (max-width: 700px) {
  .need-list-row.need-list-done {
    grid-template-columns: 52px minmax(0, 1fr) auto;
    grid-template-areas: "room item item" "room meta action";
    align-items: start;
    column-gap: 10px;
    row-gap: 7px;
  }
  .need-list-done .need-list-room { grid-area: room; align-self: center; }
  .need-list-done .need-list-item { grid-area: item; }
  .need-list-done .need-fixer { grid-area: meta; align-self: center; }
  .need-list-done > .button { grid-area: action; justify-self: end; min-width: 0; }
}

@media (max-width: 430px) {
  .need-list-row.need-list-done {
    grid-template-columns: 44px minmax(0, 1fr);
    grid-template-areas: "room item" ". meta" ". action";
  }
  .need-list-done > .button { justify-self: start; }
  .needs-clear-row .button { width: 100%; }
}

/* vacant */
.vacant-list { display: grid; }
.vacant-item {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 17px;
  border-bottom: 1px solid var(--border-soft);
}
.vacant-item:last-child { border-bottom: 0; }
.vacant-room { font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 17px; font-weight: 700; }
.vacant-time { color: var(--green); font-size: 12px; }
.vacant-button { color: #9be0bf; border-color: rgba(48, 183, 123, .38); }
.vacant-badge { color: #9be0bf; }
.vacant-notes { grid-column: 1/-1; display: flex; flex-wrap: wrap; gap: 6px; }

/* todos */
.todo-list { display: grid; }
.todo-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 17px;
  border-bottom: 1px solid var(--border-soft);
}
.todo-item:last-child { border-bottom: 0; }
.todo-item.done { opacity: .55; }
.todo-item.scheduled { border-style: dashed; opacity: .82; }
.todo-main { display: grid; gap: 2px; min-width: 0; }
.todo-text { font-size: 13px; }
.todo-meta { font-size: 11px; color: var(--muted); }
.todo-add-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: end; }
.todo-add-form label { display: grid; gap: 5px; color: var(--secondary); font-size: 12px; }
.todo-add-form input { min-width: 0; }
/* Translucent entry box + add button, matching the buttons' glass. */
.todo-add-form input {
  border: 1px solid var(--well-border);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .018)),
    rgba(255, 255, 255, .035);
  color: var(--text);
  box-shadow: var(--lit-edge);
}
.todo-add-form .button {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .018)),
    rgba(255, 255, 255, .035);
  border-color: var(--border);
  color: var(--text);
}
.todo-add-form input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--ring), var(--lit-edge);
}
.todo-add-form .button:hover {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .085), rgba(255, 255, 255, .03)),
    rgba(255, 255, 255, .05);
  color: var(--text);
  border-color: rgba(255, 255, 255, .16);
}
.todo-schedule-form { grid-template-columns: minmax(0, 1fr) minmax(130px, .5fr) auto; }

/* timeoff */
.timeoff-panel .panel-head .muted { color: var(--secondary); font-weight: 560; }
.timeoff-form { display: grid; grid-template-columns: minmax(135px, .7fr) minmax(135px, .7fr) minmax(180px, 1fr) auto; gap: 10px; }
.timeoff-form label { display: grid; gap: 5px; font-size: 11px; color: var(--secondary); font-weight: 580; }
.manager-timeoff-entry { padding: 10px 0 14px; border-bottom: 1px solid var(--border-soft); }
.manager-timeoff-form { grid-template-columns: minmax(145px, .8fr) minmax(135px, .65fr) minmax(135px, .65fr) minmax(180px, 1fr) auto; }
.manager-timeoff-form select,
.manager-timeoff-form input { width: 100%; min-width: 0; }
.timeoff-history, .timeoff-approvals { margin-top: 10px; border-top: 1px solid var(--border-soft); padding: 4px 0; }
/* Manager notes list (durable, survives Clear — 2026-08-29) */
.manager-note-form { display: flex; gap: 8px; margin-bottom: 10px; }
.manager-note-form input { flex: 1; min-width: 0; }
.manager-note-row {
  display: flex; align-items: baseline; gap: 10px;
  padding: 7px 0; border-bottom: 1px solid var(--border-soft);
}
.manager-note-row:last-child { border-bottom: none; }
.manager-note-text { flex: 1; min-width: 0; font-size: 13px; color: var(--text); overflow-wrap: anywhere; }
.manager-note-row.done .manager-note-text { text-decoration: line-through; color: var(--muted); }
.manager-note-meta { font-size: 11px; color: var(--muted); white-space: nowrap; }
.manager-note-actions { display: flex; gap: 6px; flex: 0 0 auto; }
.manager-notes-done summary { cursor: pointer; color: var(--muted); font-size: 12px; padding: 6px 0; }
.manager-notes-free { margin-top: 10px; }
.manager-notes-free summary { cursor: pointer; color: var(--muted); font-size: 12px; }
.manager-notes-free textarea { width: 100%; min-height: 70px; margin-top: 6px; }

/* Room Control Board: bulk room selection, then category | status | arrival | assignee. */
.room-board-body { padding: 10px 12px 14px; }
.room-board-bulk {
  position: sticky;
  top: 0;
  z-index: 3;
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr) minmax(220px, 1fr);
  gap: 10px;
  align-items: end;
  margin: 0 0 12px;
  padding: 10px;
  border: 1px solid var(--border-soft, #e5e7eb);
  border-radius: 12px;
  background: color-mix(in srgb, var(--surface, #fff) 92%, transparent);
  backdrop-filter: blur(14px);
}
.room-board-selection, .room-board-bulk-action { display: flex; align-items: center; gap: 7px; }
.room-board-selection { align-self: center; flex-wrap: wrap; }
.room-board-selection strong { white-space: nowrap; font-size: 13px; }
.room-board-bulk-action label { flex: 1; display: grid; gap: 3px; color: var(--muted); font-size: 10px; font-weight: 650; text-transform: uppercase; letter-spacing: .05em; }
.room-board-bulk-action select { width: 100%; min-width: 0; }
.board-floor-group { margin-top: 10px; }
.board-floor-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 8px 5px;
  border-bottom: 1px solid var(--border-soft, #e5e7eb);
  color: var(--secondary);
  font-size: 12px;
  font-weight: 680;
}
.board-floor-head label { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; }
.board-floor-head span { color: var(--muted); font-size: 11px; font-weight: 520; }
.board-head, .board-row {
  display: grid;
  grid-template-columns: 28px 3.2em repeat(6, minmax(92px, 1fr));
  gap: 6px;
  align-items: center;
}
.board-head {
  padding: 4px 6px 8px;
  font-size: 11px;
  font-weight: 620;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted, #667085);
}
.board-row { padding: 5px 6px; border-radius: 10px; }
.board-row:nth-child(odd) { background: color-mix(in srgb, var(--border-soft, #e5e7eb) 40%, transparent); }
.board-room { font-weight: 640; font-variant-numeric: tabular-nums; }
.board-pick { display: grid; place-items: center; cursor: pointer; }
.board-pick input, .board-floor-head input { width: 17px; height: 17px; margin: 0; accent-color: var(--primary); }
.board-field { min-width: 0; }
.board-field > span { display: none; }
.board-row select, .room-board-bulk select {
  width: 100%;
  min-width: 0;
  padding: 6px 8px;
  font-size: 12.5px;
  border: 1px solid var(--border-soft, #e5e7eb);
  border-radius: 9px;
  /* Translucent, theme-matched (Stephanie, 2026-08-29): tints from the active
     theme instead of a solid white box. */
  background: color-mix(in srgb, var(--surface, #fff) 55%, transparent);
  color: var(--text, #111);
}
.board-row.board-vacant { background: linear-gradient(90deg, rgba(43, 190, 137, .15), rgba(43, 190, 137, .04)); border-left: 3px solid #2fbe89; }
.board-row[data-category="vacant-arrival"] { background: linear-gradient(90deg, rgba(139, 92, 246, .18), rgba(139, 92, 246, .05)); border-left: 3px solid #8b5cf6; }
.board-row.board-vacant[data-category="vacant-arrival"] .board-room { color: color-mix(in srgb, #8b5cf6 65%, var(--text)); }
.board-row.board-occupied { background: linear-gradient(90deg, rgba(255, 159, 67, .16), rgba(255, 159, 67, .04)); border-left: 3px solid #ff9f43; }
.board-row.board-finished { background: linear-gradient(90deg, rgba(55, 196, 155, .14), rgba(55, 196, 155, .035)); border-left: 3px solid #37c49b; }
.board-row.board-checkout { background: linear-gradient(90deg, rgba(74, 145, 255, .12), rgba(74, 145, 255, .025)); border-left: 3px solid #4a91ff; }
.board-row.board-blocked { background: linear-gradient(90deg, rgba(239, 94, 117, .14), rgba(239, 94, 117, .035)); border-left: 3px solid #ef5e75; }
.board-row.board-vacant .board-room, .board-row.board-occupied .board-room, .board-row.board-finished .board-room, .board-row.board-checkout .board-room, .board-row.board-blocked .board-room { color: var(--text); }
@media (max-width: 700px) {
  .room-board-body { padding: 8px; }
  .room-board-bulk { position: static; grid-template-columns: 1fr; gap: 8px; padding: 9px; }
  .room-board-bulk-action { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .room-board-selection { justify-content: space-between; }
  .board-head { display: none; }
  .board-row {
    grid-template-columns: 28px 52px minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    gap: 7px;
    padding: 9px 8px 9px 7px;
    margin: 6px 0;
    border: 1px solid var(--border-soft, rgba(255,255,255,.12));
    border-left-width: 4px;
    border-radius: 13px;
    box-shadow: 0 5px 14px rgba(0, 0, 0, .12);
  }
  .board-pick { grid-column: 1; grid-row: 1 / 3; align-self: stretch; }
  .board-room {
    grid-column: 2;
    grid-row: 1 / 4;
    align-self: stretch;
    display: grid;
    place-items: center;
    min-height: 58px;
    padding: 4px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--surface, #fff) 72%, transparent);
    font-size: 17px;
    letter-spacing: -.02em;
  }
  .board-field { display: grid; gap: 3px; }
  .board-field > span { display: block; color: var(--muted); font-size: 9px; font-weight: 680; letter-spacing: .04em; text-transform: uppercase; }
  .board-cat-field { grid-column: 3; grid-row: 1; }
  .board-condition-field { grid-column: 4; grid-row: 1; }
  .board-arrival-field { grid-column: 3; grid-row: 2; }
  .board-assignee-field { grid-column: 4; grid-row: 2; }
  .board-pet-field { grid-column: 3; grid-row: 3; }
  .board-next-day-field { grid-column: 4; grid-row: 3; }
  .board-row .board-status,
  .board-row .board-cat,
  .board-row .board-condition,
  .board-row .board-arrival,
  .board-row .board-assignee,
  .board-row .board-next-day-select,
  .board-row .board-pet-toggle { min-width: 0; width: 100%; padding: 7px 6px; font-size: 11px; }
  .board-row select { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: 9px; }
  .board-row.board-vacant .board-room { color: #168b63; }
  .board-row.board-occupied .board-room { color: #c66b17; }
  .board-row.board-finished .board-room { color: #159a78; }
  .board-row.board-checkout .board-room { color: #3479d5; }
  .board-row.board-blocked .board-room { color: #d54861; }
}
.late-callout-card.static-panel { margin-top: 18px; }
.late-callout-card .timeoff-history { margin-top: 4px; }
#schedule-view #schedule-late-callout-editor { margin-bottom: 18px; }
#schedule-view .timeoff-panel { margin-top: 18px; }
.late-callout-row .late-callout-reason {
  display: block;
  margin-top: 2px;
  color: var(--muted-foreground, #667085);
}
.late-callout-name {
  margin: 10px 0 4px;
  font-size: 0.95em;
}
.timeoff-history-heading {
  font-size: 11px; color: var(--secondary); text-transform: uppercase; letter-spacing: .08em;
  margin: 8px 0 4px; font-weight: 680;
}
/* Submit request button sized to match the Start date / Note boxes beside it
   (Stephanie, 2026-08-27). */
.timeoff-form .timeoff-submit { padding: 7px 14px; font-size: 12px; align-self: end; min-height: 34px; }
.timeoff-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--border-soft); }
.timeoff-row:last-child { border-bottom: 0; }
.timeoff-main { display: grid; gap: 2px; min-width: 0; }
.timeoff-main strong { font-size: 12px; }
.timeoff-main span { font-size: 11px; color: var(--muted); }
.timeoff-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.timeoff-request-details { margin-top: 5px; font-size: 11px; overflow-wrap: anywhere; }
.timeoff-request-details summary { cursor: pointer; color: var(--muted); }
.timeoff-request-details ol { padding-left: 18px; display: grid; gap: 5px; }
.timeoff-schedule-warning { display: block; font-size: 10px; line-height: 1.3; color: var(--muted); white-space: normal; }
.timeoff-schedule-warning.conflict { color: var(--danger); }
@media (max-width: 600px) { .timeoff-row { flex-wrap: wrap; } .timeoff-main { flex: 1 1 210px; } }
.timeoff-row.approval { align-items: center; }
@media (max-width: 700px) {
  .timeoff-form { grid-template-columns: 1fr; }
  .timeoff-form .timeoff-submit { width: 100%; }
}

/* maintenance */
.maintenance-panel { margin-bottom: 14px; }
/* A deliberate visual break on the manager Today page between room needs and maintenance. */
.today-maintenance-gap { margin-bottom: 30px; }
.maintenance-add-form { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 8px; }
/* quick-add cards (Deep Clean / Room inventory) share the maintenance form layout */
.quick-add-form { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 8px; }
.maintenance-list { display: grid; margin-top: 10px; }
.maintenance-item {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border-soft);
  font-size: 13px;
}
.maintenance-item:last-child { border-bottom: 0; }
.maintenance-room { font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 700; }
.maintenance-item.done { opacity: .55; }
.maintenance-done { margin-top: 8px; border-top: 1px dashed var(--border-soft); padding-top: 6px; }
.maintenance-time { display: block; color: var(--faint); font-size: 10px; margin-top: 2px; }
.maintenance-logged-by {
  display: block;
  width: fit-content;
  margin-top: 3px;
  padding: 2px 6px;
  border: 1px solid color-mix(in srgb, var(--accent) 42%, var(--border));
  border-radius: 999px;
  color: var(--accent-ink);
  font-size: 10px;
  line-height: 1.2;
  letter-spacing: .02em;
}

/* employee bubbles (messages view) */
.employee-groups { display: grid; gap: 14px; padding: 14px; }
.employee-groups h4 {
  margin: 0 0 7px; color: var(--muted); font-size: 10px;
  letter-spacing: .1em; text-transform: uppercase; font-weight: 620;
}
.employee-bubbles { display: grid; gap: 7px; }
.employee-bubble {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 11px;
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .03), rgba(255, 255, 255, 0));
  box-shadow: var(--lit-edge);
}
.employee-bubble.scheduled {
  border-color: rgba(48, 183, 123, .38);
  background: linear-gradient(180deg, rgba(48, 183, 123, .07), rgba(48, 183, 123, .02));
}
.employee-bubble > div { display: grid; gap: 2px; min-width: 0; }
.employee-bubble strong { font-size: 13px; }
.employee-bubble span { color: var(--muted); font-size: 11px; }
.employee-message-form {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--accent);
  border-radius: 10px;
  background: linear-gradient(180deg, var(--accent-soft), rgba(255, 255, 255, .01));
  box-shadow: 0 0 0 3px var(--ring);
}
.employee-message-form > div { display: flex; gap: 8px; flex-wrap: wrap; }

/* mixed view helpers */
.approval-box { padding: 15px; }
.approval-box p { margin: 0 0 12px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.approval-actions { display: grid; gap: 8px; }
.chat-archive-actions { display: grid; gap: 7px; margin: 12px 0; padding: 10px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.chat-archive-actions > .muted { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.chat-archive-controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.chat-archive-controls .button { min-height: 34px; width: auto; }
.split-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 14px; }
.split-grid > .panel + .panel { margin-top: 0; }
.ops-grid > * { min-width: 0; }

/* ------------------------------------------------------------------ */
/* 14. BADGES & INDICATOR LAMPS                                        */
/* ------------------------------------------------------------------ */

/* status lamps — control-panel lights, not pills */
.badge, .status-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--secondary);
  padding: 5px 9px;
  font-size: 11px;
  font-weight: 570;
  letter-spacing: .02em;
  background: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, 0));
  box-shadow: var(--lit-edge);
}
.badge::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 8px rgba(48, 183, 123, .55);
}
.badge.dry::before { background: var(--amber); box-shadow: 0 0 8px rgba(226, 173, 76, .5); }

.status-badge.waiting::before, .status-badge.out::before, .status-badge.finished::before,
.status-badge.arrival::before, .status-badge.knock::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--faint);
}
.status-badge.out::before { background: var(--amber); box-shadow: 0 0 8px rgba(226, 173, 76, .5); }
.status-badge.finished::before { background: var(--green); box-shadow: 0 0 8px rgba(48, 183, 123, .55); }
/* Manager Inspected summary badge mirrors Finished, using the manager pink
   accent instead of green. */
.status-badge.inspected-summary {
  color: #ff8dce;
  border-color: color-mix(in srgb, #ff2fb4 55%, transparent);
  background: color-mix(in srgb, #ff2fb4 10%, transparent);
}
.status-badge.inspected-summary::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ff2fb4;
  box-shadow: 0 0 8px rgba(255, 47, 180, .65);
}
.status-badge.occupied::before { background: var(--accent); box-shadow: 0 0 8px rgba(46, 201, 180, .55); }
.status-badge.occupied { color: var(--text); border-color: color-mix(in srgb, var(--accent) 45%, transparent); }
.status-badge.pc-status-badge,
.status-badge.stripped-pest-control { color: #7dc7ff; border-color: color-mix(in srgb, #4ea8ff 58%, transparent); background: color-mix(in srgb, #4ea8ff 12%, transparent); }
.status-badge.pc-status-badge::before,
.status-badge.stripped-pest-control::before { background: #4ea8ff; box-shadow: 0 0 8px rgba(78, 168, 255, .7); }
.badge.pc-badge {
  min-height: 30px;
  padding: 6px 11px;
  border: 2px solid #4ea8ff;
  color: #e7f5ff;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .1em;
  text-shadow: 0 0 8px rgba(231, 245, 255, .8);
  background: linear-gradient(135deg, #145da8, #168bd1 58%, #0b4a8a);
  box-shadow: 0 0 0 2px rgba(78, 168, 255, .2), 0 0 16px rgba(78, 168, 255, .82), inset 0 1px 0 rgba(255, 255, 255, .38);
}
.badge.pc-badge::before { width: 9px; height: 9px; background: #fff; box-shadow: 0 0 5px 2px #fff, 0 0 13px 3px #4ea8ff; }
.status-badge.arrival::before { background: var(--pink); box-shadow: 0 0 8px rgba(219, 110, 159, .55); }
.status-badge.knock::before { background: #f0b23a; box-shadow: 0 0 8px rgba(240, 178, 58, .55); }
.status-badge.knock { color: #f5c76b; border-color: rgba(240, 178, 58, .38); }

/* LATE CHECKOUT — pulsing red so it's noticeable (Stephanie, 2026-08-30).
   Mirrors the early-arrival hot-pink pulse, in red. */
.status-badge.late-checkout {
  color: #ff5a63;
  border-color: color-mix(in srgb, #ff2f3d 55%, transparent);
  background: color-mix(in srgb, #ff2f3d 10%, transparent);
  animation: late-checkout-pulse 1.6s ease-in-out infinite;
}
.status-badge.late-checkout::before { background: #ff2f3d; box-shadow: 0 0 8px rgba(255, 47, 61, .6); }
.status-badge.clean-needs-bed {
  color: #ffd67a;
  border-color: color-mix(in srgb, #f0b23a 58%, transparent);
  background: color-mix(in srgb, #f0b23a 14%, transparent);
}
.status-badge.clean-needs-bed::before { background: #f0b23a; box-shadow: 0 0 8px rgba(240, 178, 58, .7); }
@keyframes late-checkout-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 color-mix(in srgb, #ff2f3d 45%, transparent);
    text-shadow: 0 0 6px color-mix(in srgb, #ff2f3d 55%, transparent);
    border-color: color-mix(in srgb, #ff2f3d 55%, transparent);
  }
  50% {
    box-shadow: 0 0 14px 3px color-mix(in srgb, #ff2f3d 60%, transparent);
    text-shadow: 0 0 14px color-mix(in srgb, #ff2f3d 95%, transparent), 0 0 26px color-mix(in srgb, #ff2f3d 55%, transparent);
    border-color: #ff5a63;
  }
}
@media (prefers-reduced-motion: reduce) {
  .status-badge.late-checkout { animation: none; }
}

.badge.timeoff-pending { color: var(--amber); border-color: rgba(226, 173, 76, .42); }
.badge.timeoff-approved { color: var(--green); border-color: rgba(48, 183, 123, .42); }
.badge.timeoff-denied { color: var(--red); border-color: rgba(239, 107, 115, .42); }

/* room kind / assignee helpers */
.room-kind { color: var(--muted); font-size: 12px; }
.assignee-select { min-height: 36px; padding: 5px 8px; font-size: 12px; min-width: 125px; }
.manager-sort { min-height: 32px; padding: 4px 8px; border: 1px solid var(--border); border-radius: 8px; background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .018)), rgba(255, 255, 255, .035); color: var(--secondary); font-size: 12px; }
.inline-update { color: var(--green); font-size: 10px; font-weight: 700; }

/* fix / need chips — now stub tags with lamps */
.fix-chips { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.fix-chip {
  background: linear-gradient(180deg, rgba(239, 107, 115, .16), rgba(239, 107, 115, .05));
  border: 1px solid rgba(239, 107, 115, .4);
  color: #ffd7da;
  border-radius: 5px;
  padding: 3px 9px;
  font-size: 11px;
  box-shadow: var(--lit-edge);
}
.fix-chip::before {
  content: "";
  display: inline-block;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 6px rgba(239, 107, 115, .6);
  margin-right: 6px;
  vertical-align: 2px;
}
.vacant-notes .fix-chip.deep {
  background: linear-gradient(180deg, rgba(156, 130, 230, .16), rgba(156, 130, 230, .05));
  border-color: rgba(156, 130, 230, .45);
  color: #d8cdff;
}
.vacant-notes .fix-chip.deep::before { background: var(--purple); box-shadow: 0 0 6px rgba(156, 130, 230, .6); }

.need-chips { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: 10px; }
.need-chip {
  background: linear-gradient(180deg, rgba(226, 173, 76, .16), rgba(226, 173, 76, .05));
  border: 1px solid rgba(226, 173, 76, .45);
  color: #f3d9a3;
  border-radius: 5px;
  padding: 3px 9px;
  font-size: 11px;
  box-shadow: var(--lit-edge);
}
.need-chip::before {
  content: "";
  display: inline-block;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--amber);
  box-shadow: 0 0 6px rgba(226, 173, 76, .6);
  margin-right: 6px;
  vertical-align: 2px;
}

.needs-box { margin: 8px 0 2px; }
.needs-heading { font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: var(--amber); font-weight: 620; }
.need-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background: linear-gradient(90deg, rgba(226, 173, 76, .09), rgba(226, 173, 76, .02));
  border-left: 3px solid var(--amber);
  border-radius: 6px;
  padding: 6px 9px;
  font-size: 12px;
}
.need-item.done { background: rgba(48, 183, 123, .08); border-left-color: var(--green); color: var(--muted); }
.fix-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background: linear-gradient(90deg, rgba(239, 107, 115, .1), rgba(239, 107, 115, .02));
  border-left: 3px solid var(--red);
  border-radius: 6px;
  padding: 6px 9px;
  font-size: 12px;
}
.fix-item.done { background: rgba(48, 183, 123, .08); border-left-color: var(--green); color: var(--muted); }
.fix-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.fix-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  margin-left: 6px;
  border-radius: 5px;
  background: var(--red);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 0 5px;
  box-shadow: 0 0 8px rgba(239, 107, 115, .45);
}

/* empty state — an open slot awaiting data */
.empty-state {
  padding: 38px 22px;
  text-align: center;
  color: var(--muted);
  position: relative;
}
.empty-state::before {
  content: "";
  display: block;
  width: 38px;
  height: 38px;
  margin: 0 auto 14px;
  background:
    linear-gradient(135deg, var(--accent-soft-2), transparent 70%);
  clip-path: polygon(0 8%, 38% 0, 100% 20%, 88% 92%, 44% 100%, 0 78%);
  opacity: .8;
}
.empty-state strong { display: block; color: var(--secondary); margin-bottom: 6px; font-weight: 600; }

/* ------------------------------------------------------------------ */
/* 15. OVERLAYS — notification + dialogs                               */
/* ------------------------------------------------------------------ */

.notification-wrap { position: relative; }
.notification-button {
  position: relative;
  min-width: 42px;
  min-height: 38px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, 0)),
    var(--surface);
  color: var(--text);
  font-size: 17px;
  cursor: pointer;
  box-shadow: var(--lit-edge);
  transition: border-color var(--motion) ease, transform var(--motion) ease, box-shadow var(--motion) ease;
}
.notification-button:hover { border-color: rgba(255, 255, 255, .18); transform: translateY(-1px); }
.notification-button:active { transform: translateY(0); }
.notification-count {
  position: absolute;
  top: -7px;
  right: -7px;
  min-width: 18px;
  height: 18px;
  padding: 1px 5px;
  border-radius: 5px;
  background: var(--red);
  color: white;
  font: 700 10px/16px system-ui;
  box-shadow: 0 0 10px rgba(239, 107, 115, .55);
  border: 1px solid rgba(255, 255, 255, .25);
}
#notification-panel {
  /* Theme card treatments must not move this body-level overlay into flow. */
  position: fixed !important;
  z-index: 2147483647 !important;
  overflow: auto !important;
}
.notification-panel {
  /* Portaled to body: viewport positioning is required on desktop too. */
  position: fixed;
  right: 12px;
  top: calc(88px + 8px);
  z-index: 2147483647;
  isolation: isolate;
  width: min(340px, calc(100vw - 24px));
  max-height: min(480px, 65vh, var(--notification-available-height, 65vh));
  overflow: auto;
  border: 1px solid color-mix(in srgb, var(--accent) 58%, var(--border));
  border-radius: var(--radius-m);
  background: color-mix(in srgb, var(--panel) 96%, #000 4%);
  color: var(--text);
  box-shadow: 0 18px 42px rgba(0, 0, 0, .5), 0 0 0 1px color-mix(in srgb, var(--accent) 16%, transparent), inset 0 1px 0 rgba(255, 255, 255, .1);
  -webkit-backdrop-filter: blur(26px) saturate(1.35);
  backdrop-filter: blur(26px) saturate(1.35);
  animation: pop-in var(--motion-slow) cubic-bezier(.2, .9, .3, 1.2);
}
@keyframes pop-in {
  from { opacity: 0; transform: translateY(-4px) scale(.98); }
  to { opacity: 1; transform: none; }
}
.notification-head {
  display: flex;
  position: sticky;
  top: 0;
  z-index: 1;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border-soft);
  font-size: 12px;
  font-weight: 620;
}
.notification-head span { color: var(--muted); font-weight: 500; }
.notification-head-actions { display: inline-flex; align-items: center; gap: 8px; }
.notification-clear { min-height: 26px; padding: 4px 8px; font-size: 11px; }
.notification-row {
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  text-decoration: none;
  background: transparent;
  border: 0;
  cursor: pointer;
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr);
  gap: 10px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--border-soft);
}
.notification-row:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; }
.notification-row > span:last-child { min-width: 0; overflow-wrap: anywhere; }
.notification-row:hover { background: rgba(255, 255, 255, .022); }
.notification-row.unread { background: linear-gradient(90deg, var(--accent-soft), transparent 80%); }
.notification-row.unread:hover { background: linear-gradient(90deg, var(--accent-soft-2), transparent 80%); }
.notification-row strong, .notification-row small { display: block; }
.notification-row strong { font-size: 12px; }
.notification-row small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.notification-kind {
  width: 8px;
  height: 8px;
  margin-top: 4px;
  border-radius: 3px;
  background: var(--accent);
  box-shadow: 0 0 6px var(--accent-soft-2);
}
.notification-kind.finished { background: var(--green); box-shadow: 0 0 6px rgba(48, 183, 123, .5); }
.notification-kind.room-status { background: var(--amber); box-shadow: 0 0 6px rgba(226, 173, 76, .5); }
.notification-kind.message { background: var(--purple); box-shadow: 0 0 6px rgba(156, 130, 230, .5); }
.notification-kind.schedule { background: var(--blue); box-shadow: 0 0 6px color-mix(in srgb, var(--blue) 55%, transparent); }
.notification-kind.maintenance { background: var(--amber); box-shadow: 0 0 6px color-mix(in srgb, var(--amber) 55%, transparent); }
.notification-empty { padding: 16px; color: var(--muted); font-size: 12px; }

/* dialogs — raised translucent plates with the same dawn seam and stub
   corner as the rest of the app's panels */
dialog,
.staff-access-dialog, .vacant-picker-dialog, .today-checkout-dialog, .today-summary-dialog {
  width: min(560px, calc(100vw - 28px));
  max-height: min(760px, calc(100vh - 28px));
  border: 1px solid var(--border);
  border-radius: var(--radius-l);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .026), rgba(255, 255, 255, 0) 22%),
    color-mix(in srgb, var(--panel) 82%, transparent);
  color: var(--text);
  padding: 20px;
  box-shadow: var(--shadow-pop);
  /* Native modal dialogs live in the top layer, but position:relative makes
     them lay out at their DOM location (near the document top) instead of the
     visible viewport. Anchor them to the viewport so they stay in view at any
     scroll position. */
  position: fixed;
  inset: 0;
  margin: auto;
  box-sizing: border-box;
  max-height: min(760px, calc(100dvh - 28px));
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  -webkit-backdrop-filter: blur(24px) saturate(1.25);
  backdrop-filter: blur(24px) saturate(1.25);
}
dialog::before,
.staff-access-dialog::before, .vacant-picker-dialog::before,
.today-checkout-dialog::before, .today-summary-dialog::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 2px;
  background: var(--seam-strong);
  opacity: .7;
}
dialog::after,
.staff-access-dialog::after, .vacant-picker-dialog::after,
.today-checkout-dialog::after, .today-summary-dialog::after {
  content: "";
  position: absolute;
  top: 12px; right: 12px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(0, 0, 0, .45);
  box-shadow: 0 0 0 1.5px var(--accent), 0 0 8px var(--accent-soft-2);
}
dialog::backdrop,
.staff-access-dialog::backdrop, .vacant-picker-dialog::backdrop,
.today-checkout-dialog::backdrop, .today-summary-dialog::backdrop {
  background: color-mix(in srgb, var(--bg) 58%, transparent);
  backdrop-filter: blur(8px) saturate(.9);
  -webkit-backdrop-filter: blur(8px) saturate(.9);
}
.vacant-picker-dialog { width: min(640px, calc(100vw - 28px)); }

.staff-access-form { display: grid; gap: 16px; }
.staff-access-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.staff-access-head .eyebrow { margin: 0 0 6px; }
.staff-access-head h3 { margin: 0; font-size: 20px; }
.staff-access-head p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.access-help {
  margin: 0;
  padding: 10px 12px;
  border-left: 3px solid var(--accent);
  border-radius: 6px;
  background: linear-gradient(90deg, var(--accent-soft), transparent);
  color: var(--secondary);
  font-size: 12px;
  line-height: 1.5;
}
.staff-access-form fieldset { margin: 0; padding: 12px; border: 1px solid var(--border); border-radius: 10px; }
.staff-access-form legend { padding: 0 6px; color: var(--secondary); font-size: 13px; font-weight: 620; }
.access-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.access-option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border-radius: 8px;
  background: var(--surface);
  color: var(--secondary);
  font-size: 12px;
  border: 1px solid transparent;
  transition: border-color var(--motion) ease, background var(--motion) ease;
}
.access-option:hover { border-color: var(--border); }
.access-option input { min-height: 18px; width: 18px; margin: 0; accent-color: var(--accent); }
.staff-access-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }

/* custom job roles (Staff & PINs) */
.custom-roles-wrap { margin-top: 18px; }
.custom-roles-body { padding: 2px 0 0; }
.custom-roles-body .empty-state { margin: 0; }
.custom-roles-heading { margin: 14px 0 4px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.custom-roles-heading:first-child { margin-top: 4px; }
.custom-roles-actions { padding: 10px 0 2px; }
.role-receives-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--surface);
  color: var(--secondary);
  font-size: 12px;
  border: 1px solid var(--well-border);
}
.role-receives-row input { min-height: 18px; width: 18px; margin: 0; accent-color: var(--accent); }

/* today summary */
.today-summary-dialog { width: min(500px, calc(100vw - 28px)); }
/* The room list scrolls INSIDE the popup (Stephanie, 2026-08-30: "the
   finished rooms pop up items dont fit the screen") — the dialog already caps
   its height, but the list could overflow past it. display flex must be
   scoped to [open] (the black-box pitfall: an unscoped display on <dialog>
   renders it while closed). */
.today-summary-dialog[open] { display: flex; flex-direction: column; max-height: min(760px, calc(100vh - 28px)); }
.today-summary-dialog .summary-room-list { overflow-y: auto; min-height: 0; max-height: min(56vh, 520px); overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding-right: 2px; }
/* Keep this popup viewport-anchored; only its room list should consume a
   swipe. The fixed-body lock in app.js also covers Safari backdrop gestures. */
html:has(#today-summary-dialog[open]) { overflow: hidden; overscroll-behavior: none; }
#today-summary-dialog[open] { position: fixed; overflow: hidden; max-height: min(760px, calc(100dvh - 28px)); }
#today-summary-dialog > .today-summary-dialog-head { flex-shrink: 0; }
#today-summary-dialog > .summary-room-list { flex: 1 1 auto; overscroll-behavior: none; touch-action: pan-y; }
.today-summary-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.today-summary-dialog-head h3 { margin: 2px 0 4px; }
.today-summary-dialog-head p { margin: 0; color: var(--muted); font-size: 13px; }
.summary-room-list-button {
  appearance: none;
  width: 100%;
  border: 1px solid var(--border);
  border-radius: var(--radius-m);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, 0) 30%),
    rgba(255, 255, 255, .018);
  color: var(--text);
  text-align: left;
  cursor: pointer;
  box-shadow: var(--lit-edge), 0 10px 26px -22px rgba(0, 0, 0, .6);
  transition: border-color var(--motion) ease, background var(--motion) ease, transform var(--motion) ease;
}
.summary-room-list-button:hover {
  border-color: var(--accent);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .075), rgba(255, 255, 255, 0) 30%),
    rgba(255, 255, 255, .035);
  transform: translateX(2px);
}
.summary-room-list-button:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
.summary-room-list { display: grid; gap: 8px; margin: 16px 0 0; }
.summary-room-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 12px;
  padding: 11px 12px;
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .028), rgba(255, 255, 255, 0));
  box-shadow: var(--lit-edge);
}
.summary-room-main { display: grid; gap: 2px; flex: 1 1 100%; }
/* Row internals: pills wrap instead of overflowing off the dialog edge
   (Stephanie, 2026-08-30 screenshot: "Sent back" cut off at the right). */
.summary-room-row .summary-room-meta { overflow-wrap: anywhere; }
.summary-room-actions { flex-wrap: wrap; max-width: 100%; }
.summary-room-actions .status-badge { max-width: 100%; white-space: normal; text-align: left; }
/* Manager Send Back / I Fixed quick-add (Stephanie, 2026-08-30) */
.manager-send-back-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 8px; }
.manager-send-back-form input[name="item"] {
  grid-column: 1 / -1;
  border: 1px solid var(--border);
  border-radius: var(--radius-m, 10px);
  background: var(--card);
  color: var(--foreground);
  padding: 0.4rem 0.6rem;
  font: inherit;
  font-size: 0.9rem;
}
.manager-send-back-form .send-back-submit,
.manager-send-back-form .ifixed-submit { min-width: 0; padding: 6px 8px; font-size: 11px; }
.manager-send-back-form .manager-fix-photo { min-width: 0; justify-content: center; padding: 6px 8px; font-size: 11px; cursor: pointer; }
.fix-item-copy { min-width: 0; flex: 1 1 auto; overflow-wrap: anywhere; }
.fix-photo-slot { display: inline-flex; flex: 0 0 auto; }
.fix-photo-thumb { width: 44px; height: 44px; object-fit: cover; border: 1px solid var(--border-soft); border-radius: 8px; }
.button.warning { border-color: rgba(226, 173, 76, .55); color: #f5c76b; }
.summary-room-fixbox { flex: 1 1 100%; border-top: 1px dashed var(--border); padding-top: 6px; margin-top: 4px; }
.summary-room-fixbox .fix-list { margin: 0 0 4px; }
.summary-room-open-work { flex: 1 1 100%; display: grid; gap: 5px; padding: 8px 0 2px; border-top: 1px dashed var(--border); }
.summary-room-open-work > strong { color: var(--muted); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.summary-room-open-work > div { display: grid; gap: 4px; }
.summary-room-open-work span { display: flex; gap: 7px; align-items: baseline; min-width: 0; font-size: 12px; color: var(--secondary); overflow-wrap: anywhere; }
.summary-room-open-work b { flex: 0 0 auto; color: var(--accent); font-size: 10px; letter-spacing: .03em; }
.summary-room-number { font: 700 16px "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace; }
.summary-room-meta { font-size: 12px; color: var(--muted); }
.summary-room-actions { display: flex; align-items: center; gap: 8px; flex: 1 1 100%; width: 100%; }
.summary-room-arrival-actions { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.summary-room-arrival-actions .button { min-height: 30px; padding: 5px 8px; font-size: 11px; }
.summary-room-actions .summary-inspect-button { margin-left: auto; flex: 0 0 auto; }

/* today checkout mini-dialog */
.today-checkout-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.today-checkout-dialog-head h3 { margin: 2px 0 4px; font-size: 20px; }
.today-checkout-dialog-head p { margin: 0; color: var(--muted); font-size: 13px; }
.today-checkout-room {
  font: 700 18px "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  min-height: 30px;
  padding: 3px 10px;
  border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
  border-radius: 9px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 30%, transparent), color-mix(in srgb, var(--accent) 10%, transparent));
  color: var(--text);
  cursor: pointer;
  box-shadow: var(--lit-edge);
  transition: border-color var(--motion) ease, background var(--motion) ease, box-shadow var(--motion) ease;
  appearance: none;
}
.today-checkout-room:hover {
  border-color: var(--accent);
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 38%, transparent), color-mix(in srgb, var(--accent) 14%, transparent));
  box-shadow: 0 0 0 2px var(--ring), var(--lit-edge);
}
.today-checkout-assigned { font-size: 13px; color: var(--muted); }
.today-checkout-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* ------------------------------------------------------------------ */
/* 16. ROOM PICKERS — key-tag plates                                   */
/* ------------------------------------------------------------------ */

.vacant-picker-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.vacant-picker-head h3 { margin: 2px 0 4px; font-size: 20px; }
.vacant-picker-head p { margin: 0; color: var(--muted); font-size: 13px; }
.vacant-picker-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin: 18px 0; max-height: 52vh; overflow: auto; padding-right: 3px; }
.vacant-picker-room {
  min-height: 54px;
  border: 1px solid var(--border);
  border-radius: var(--radius-m);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .03), rgba(255, 255, 255, 0)),
    var(--panel);
  color: var(--text);
  font: 700 15px "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  cursor: pointer;
  box-shadow: var(--lit-edge);
  transition: border-color var(--motion) ease, transform var(--motion) ease, box-shadow var(--motion) ease;
}
.vacant-picker-room:hover { border-color: rgba(255, 255, 255, .22); transform: translateY(-1px); }
.vacant-picker-room small { display: block; margin-top: 3px; font: 500 10px/1 system-ui; color: var(--muted); }
.vacant-picker-room.selected {
  border-color: var(--signal);
  background: linear-gradient(180deg, var(--signal-soft), color-mix(in srgb, var(--signal) 6%, transparent));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--signal) 28%, transparent), 0 6px 18px -8px color-mix(in srgb, var(--signal) 60%, transparent);
}
.vacant-picker-room.already-vacant { opacity: .55; cursor: not-allowed; }
.vacant-picker-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 4px; }

.checkout-add-card { margin-bottom: 14px; }
.room-assign-tabs { display: flex; gap: 8px; margin: 0 0 10px; flex-wrap: wrap; }
.room-assign-tab {
  appearance: none;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, .03);
  color: var(--muted);
  border-radius: var(--radius-s);
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color var(--motion) ease, color var(--motion) ease, background var(--motion) ease;
}
.room-assign-tab:hover { border-color: rgba(255, 255, 255, .22); color: var(--text); }
.room-assign-tab.active { border-color: var(--accent); color: var(--text); background: var(--signal-soft); }
.hk-person-card { margin-bottom: 14px; }
.myrooms-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 12px; padding: 0 2px; }
.myrooms-toolbar strong { color: var(--text); font-size: 15px; }
.hk-sort-bar { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 8px 16px 2px; }
.hk-sort-bar .manager-sort { min-width: 120px; }
.room-list-sort-bar { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 0 0 12px; }
.room-list-sort-bar .manager-sort { min-width: 132px; }
.hk-room-chips { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; padding: 6px 17px 16px; }
.hk-room-chip {
  border: 1px solid var(--well-border);
  border-radius: 8px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, .02);
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.hk-room-head { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.hk-room-no { font: 700 13px "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--text); }
.hk-room-sub { font-size: 10px; color: var(--muted); }
.hk-room-chip .status-badge { align-self: flex-start; font-size: 10px; }
.hk-room-chip .fix-list { margin: 2px 0 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.hk-room-chip .fix-item { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 11px; color: var(--muted); }
.hk-room-chip .fix-item.done span:first-child { text-decoration: line-through; opacity: .7; }
.hk-room-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 2px; }
.hk-room-actions .button { font-size: 11px; padding: 4px 9px; }
.hk-fix-add-form { display: flex; gap: 5px; margin-top: 2px; }
.hk-fix-add-form input {
  flex: 1 1 auto;
  min-width: 0;
  border: 1px solid var(--well-border);
  border-radius: 6px;
  background: rgba(255, 255, 255, .04);
  color: var(--text);
  font-size: 11px;
  padding: 5px 8px;
}
.hk-fix-add-form input:focus { border-color: var(--accent); outline: none; }
.hk-fix-add-form .button { font-size: 11px; padding: 5px 9px; white-space: nowrap; }
.checkout-add-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; cursor: pointer; user-select: none; }
.checkout-add-head:focus-visible { outline: 2px solid var(--ring); outline-offset: 3px; border-radius: 8px; }
.checkout-add-head h3 { margin: 0; }
.checkout-add-head .panel-head-actions { flex-wrap: wrap; justify-content: flex-end; }
.uninspect-room-form { display: flex; align-items: center; gap: 8px; }
.uninspect-room-form select { min-height: 34px; min-width: 154px; padding: 5px 8px; font-size: 12px; }
.uninspect-room-form .button { white-space: nowrap; }
.checkout-add-body,
.expected-add-body {
  max-height: var(--card-content-max);
  overflow: hidden;
  opacity: 1;
  transform: translateY(0);
  transition: max-height var(--card-motion) var(--card-motion-ease), opacity var(--card-motion) ease, transform var(--card-motion) var(--card-motion-ease), padding var(--card-motion) var(--card-motion-ease);
}
.checkout-add-body.is-collapsed,
.expected-add-body.is-collapsed {
  max-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  opacity: 0;
  transform: translateY(calc(var(--card-motion-distance) * -1));
  pointer-events: none;
}
.checkout-add-chevron { font-size: 14px; color: var(--muted); transition: transform var(--card-motion) var(--card-motion-ease), color var(--card-motion) ease; }
.checkout-add-chevron.open { transform: rotate(90deg); color: var(--accent); }
.checkout-picker-grid{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
.checkout-picker-room {
  min-height: 50px;
  border: 1px solid var(--border);
  border-radius: var(--radius-m);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .018)),
    rgba(255, 255, 255, .035);
  color: var(--text);
  font: 700 15px "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  cursor: pointer;
  box-shadow: var(--lit-edge);
  transition: border-color var(--motion) ease, transform var(--motion) ease, box-shadow var(--motion) ease;
}
.checkout-picker-room:hover { border-color: rgba(255, 255, 255, .22); transform: translateY(-1px); }
.checkout-picker-room small { display: block; margin-top: 3px; font: 500 10px/1 system-ui; color: var(--muted); }
.checkout-picker-room.selected {
  border-color: var(--signal);
  background: linear-gradient(180deg, var(--signal-soft), color-mix(in srgb, var(--signal) 6%, transparent));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--signal) 28%, transparent), 0 6px 18px -8px color-mix(in srgb, var(--signal) 60%, transparent);
}
.checkout-picker-room.already-planned { opacity: .5; cursor: not-allowed; }
.checkout-picker-room.morning-listed { background: repeating-linear-gradient(45deg, rgba(255,255,255,.02) 0 6px, transparent 6px 12px); border-style: dashed; }
.checkout-picker-room.morning-listed:not(.selected) small { color: var(--faint); }
.checkout-picker-tools { display: flex; gap: 8px; margin: 0 0 10px; flex-wrap: wrap; }
.checkout-picker-actions { display: flex; justify-content: flex-end; gap: 12px; align-items: center; }
.checkout-picker-count { font-size: 12px; color: var(--muted); }

/* Edit Room Status: per-room translucent category buttons (Checkout / Occupied / Vacant). */
.checkout-cat-room { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.checkout-cat-roomno { font: 700 15px "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--text); }
.checkout-cat-group { display: flex; width: 100%; gap: 4px; }
.checkout-cat-select {
  width: 100%;
  min-height: 34px;
  padding: 5px 9px;
  font-size: 13px;
  font-weight: 540;
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: var(--radius-m);
  background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .018)), rgba(255, 255, 255, .035);
  box-shadow: var(--lit-edge);
  cursor: pointer;
  transition: border-color var(--motion) ease, background var(--motion) ease;
}
.checkout-cat-select:hover { border-color: var(--accent); }
.checkout-cat-select:focus-visible { outline: 2px solid var(--ring); outline-offset: 1px; }
.checkout-cat-select option { background: var(--panel); color: var(--text); }

.checkout-history-bar { gap: 10px; align-items: center; }
/* Logs tab controls (2026-08-28, Stephanie): one compact row — small date
   selector, search, buttons side by side. */
#logs-controls { flex-wrap: nowrap; }
#logs-controls input[type="date"] {
  width: auto;
  padding: 5px 8px;
  font-size: 12px;
}
#logs-controls input[type="search"] {
  flex: 1 1 220px;
  min-width: 140px;
  max-width: 320px;
  padding: 5px 8px;
  font-size: 12px;
}
.history-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.history-badges .badge::before { display: none; }

/* ------------------------------------------------------------------ */
/* 17. DRY-RUN / ARRIVAL / PEST / BLOCKED / INSPECTED / LAUNDRY CARDS  */
/* ------------------------------------------------------------------ */

.global-message {
  position: fixed;
  z-index: 2147483646;
  left: 50%;
  bottom: max(16px, env(safe-area-inset-bottom));
  width: min(560px, calc(100vw - 32px));
  margin: 0;
  transform: translateX(-50%);
  padding: 12px 14px;
  background: linear-gradient(90deg, var(--accent-soft), transparent);
  border: 1px solid rgba(94, 106, 210, .3);
  border-radius: 8px;
  color: var(--secondary);
  box-shadow: var(--lit-edge);
}

.arrival-alerts { margin-bottom: 14px; border-color: rgba(48, 183, 123, .34); }
.arrival-alerts .badge { white-space: nowrap; }
.arrival-alert { align-items: center; flex-wrap: wrap; }
.arrival-main { display: flex; align-items: baseline; gap: 10px; }
.arrival-room { font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 15px; font-weight: 700; }
.arrival-time { color: var(--green); font-family: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; font-weight: 600; }
.arrival-note { color: var(--muted); font-size: 11px; min-width: 0; }
.arrival-actions { display: flex; gap: 6px; margin-left: auto; }

.low-stock-card { margin-bottom: 18px; }
.low-stock-card .panel-head > div { display: grid; gap: 3px; }
.low-stock-items { padding: 0 14px 14px; }
.low-stock-items ul { display: flex; flex-wrap: wrap; gap: 7px; list-style: none; padding: 0; margin: 0; }
.low-stock-items li {
  padding: 5px 10px;
  border-radius: 5px;
  background: linear-gradient(180deg, rgba(226, 173, 76, .15), rgba(226, 173, 76, .04));
  border: 1px solid rgba(226, 173, 76, .34);
  font-size: 12px;
  box-shadow: var(--lit-edge);
}
.low-stock-form { display: grid; gap: 12px; padding: 14px; border-top: 1px solid var(--border-soft); }
.low-stock-form fieldset { margin: 0; padding: 0; border: 0; }
.low-stock-form legend { margin-bottom: 9px; color: var(--secondary); font-size: 12px; font-weight: 620; }
.low-stock-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.low-stock-option {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 8px;
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  background: var(--surface);
  font-size: 12px;
  transition: border-color var(--motion) ease, background var(--motion) ease;
}
.low-stock-option:hover { border-color: var(--border); }
.low-stock-option input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent); flex: 0 0 auto; }
.low-stock-option span { min-width: 0; }
.low-stock-option small { margin-left: auto; color: var(--muted); font-size: 9px; }
.low-stock-option.listed { opacity: .55; }
.low-stock-custom { display: grid; gap: 5px; color: var(--secondary); font-size: 12px; }

.pest-control-panel { border-color: rgba(226, 173, 76, .5); }
.pest-control-list { display: grid; padding: 0 14px 14px; }
.pest-control-room { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--border-soft); }
.pest-control-room:last-child { border-bottom: 0; }
.pest-control-room > div { display: grid; gap: 3px; }
.pest-control-room span { color: var(--muted); font-size: 12px; }

.blocked-rooms-panel { border-color: rgba(221, 81, 89, .52); }
.blocked-rooms-list { display: grid; padding: 0 14px 14px; }
.blocked-room { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--border-soft); }
.blocked-room:last-child { border-bottom: 0; }
.blocked-room > div { display: grid; gap: 3px; }
.blocked-room span { color: var(--muted); font-size: 12px; }

.inspected-panel { border-color: rgba(48, 183, 123, .45); }
.inspected-list { display: grid; padding: 0 14px 14px; }
.inspected-room { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--border-soft); }
.inspected-room:last-child { border-bottom: 0; }
.inspected-room > div { display: grid; gap: 3px; }
.inspected-room span { color: var(--muted); font-size: 12px; }

.manager-status-select {
  appearance: auto;
  min-width: 112px;
  border: 1px solid currentColor;
  cursor: pointer;
  font: 650 12px/1.2 system-ui, -apple-system, sans-serif;
  padding: 6px 24px 6px 9px;
  border-radius: 7px;
  background: transparent;
}
.manager-status-select:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
.manager-status-select.late-checkout { color: var(--amber); border-color: rgba(226, 173, 76, .7); }

.manager-room-grid{ display: grid; grid-template-columns: repeat(auto-fit, minmax(232px, max-content)); justify-content: start; gap: 12px; padding: 14px; }
.today-checkout-floor-group { border-top: 1px solid var(--border-soft); }
.today-checkout-floor-group:first-child { border-top: 0; }
.today-checkout-floor-head { display: flex; align-items: end; justify-content: space-between; gap: 14px; padding: 15px 14px 0; }
.today-checkout-floor-head h4 { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--text); font-size: 13px; font-weight: 720; letter-spacing: .01em; }
.today-checkout-floor-head h4 .room-list-count { font-size: 11px; }
.today-checkout-floor-head .muted,
.today-checkout-floor-sort > span,
.today-checkout-sort-all > span { color: var(--muted); font-size: 10px; letter-spacing: .035em; }
.today-checkout-floor-head > div { display: grid; gap: 4px; }
.today-checkout-floor-sort,
.today-checkout-sort-all { display: flex; align-items: center; gap: 8px; }
.today-checkout-floor-sort > span { white-space: nowrap; }
.today-checkout-floor-group .manager-room-grid { padding-top: 11px; }
.today-checkout-sort-all { margin-left: auto; }
@media (max-width: 620px) {
  .today-checkout-floor-head { align-items: start; flex-direction: column; gap: 9px; }
  .today-checkout-floor-sort { width: 100%; justify-content: space-between; }
  .today-checkout-sort-all { align-self: end; }
}
.manager-room-card .manager-assignee { display: grid; gap: 4px; margin-bottom: 10px; font-size: 12px; }
.manager-room-card .manager-assignee label { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; font-weight: 620; }
.manager-room-card .priority-toggle { width: 100%; margin: 10px 0 0; }
.manager-room-card .fix-add-form { display: flex; gap: 8px; margin: 6px 0 0; }
.manager-room-card .fix-add-form input { flex: 1 1 auto; min-width: 0; }
.assignment-room-items { display: grid; gap: 7px; margin: 10px 0; padding: 10px; border: 1px dashed var(--accent-soft); border-radius: 12px; background: color-mix(in srgb, var(--panel) 88%, var(--accent) 12%); }
.assignment-room-items-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.assignment-room-item-list { display: grid; gap: 6px; }
.assignment-room-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 7px 8px; border-radius: 9px; background: color-mix(in srgb, var(--panel) 76%, transparent); }
.assignment-room-item-kind { color: var(--accent); font-size: 10px; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.assignment-room-item-name { min-width: 0; overflow-wrap: anywhere; }

/* Compact star priority-toggle + finished-line, shared by the Today Checkouts
   Remaining cards AND the room cards on the Rooms tab (Assignments by room +
   checkouts remaining) so they all look the same (Stephanie, 2026-08-27). The
   full-width .priority-toggle rule above must NOT stretch the star; it stays a
   small round icon beside the room number. */
.room-card .today-finished-line,
.status-badge.finished,
.checkout-finished-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 100%;
  box-sizing: border-box;
  padding: 7px 12px;
  margin: 0 0 10px;
  border: 2px solid #24945c;
  border-radius: 24px 10px 24px 10px;
  background: linear-gradient(135deg, #d9ffe7, #a8edc2);
  color: #125333;
  box-shadow: inset 0 0 0 2px #effff4, 0 2px 6px rgb(18 83 51 / 14%);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.5;
  letter-spacing: .01em;
  overflow-wrap: anywhere;
}
.room-card .today-finished-line::before,
.status-badge.finished::before,
.checkout-finished-badge::before {
  content: '✓';
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #187747;
  color: #fff;
  font-size: 12px;
  box-shadow: none;
}

/* ------------------------------------------------------------------ */
/* 18. LAUNDRY + LINEN                                                 */
/* ------------------------------------------------------------------ */

.laundry-list { width: 100%; border-collapse: collapse; }
.laundry-list td, .laundry-list th { padding: 8px 12px; border-bottom: 1px solid var(--border-soft); font-size: 12px; text-align: right; }
.laundry-list td:first-child, .laundry-list th:first-child { text-align: left; }
.laundry-list th { color: var(--faint); font-size: 10px; text-transform: uppercase; letter-spacing: .07em; }

.linen-progress-list { display: grid; }
.linen-progress-row {
  display: grid;
  grid-template-columns: minmax(150px, max-content) repeat(6, 58px) minmax(150px, 1fr);
  align-items: center;
  gap: 8px;
  padding: 10px 17px;
  border-bottom: 1px solid var(--border-soft);
}
.linen-progress-row:last-child { border-bottom: 0; }
.linen-progress-row:hover { background: rgba(255, 255, 255, .015); }
.linen-item { display: grid; gap: 3px; }
.linen-item strong { font-size: 12px; }
.linen-item small { color: var(--muted); font-size: 10px; }
.linen-stat { display: grid; grid-template-rows: 44px 18px; gap: 0; text-align: center; }
.linen-stat span { color: var(--faint); font-size: 9px; line-height: 11px; text-transform: uppercase; letter-spacing: .08em; display: block; height: 44px; overflow: hidden; }
.linen-stat strong { font-size: 18px; font-weight: 560; font-variant-numeric: tabular-nums; line-height: 18px; height: 18px; display: block; }
.linen-stat.remaining strong { color: #9be0bf; }
.linen-stat.remaining.arrivals strong { color: #d2fbe7; }
.linen-stat.closet strong { color: var(--amber); }
.linen-stat.stock strong { color: var(--accent); }
.linen-stat small { color: var(--green); font-size: 9px; }
.linen-stock-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px 14px; padding: 14px 17px 0; }
.linen-stock-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.linen-stock-item { font-size: 12px; font-weight: 560; }
.linen-stock-input { width: 78px; text-align: center; font-variant-numeric: tabular-nums; }
.linen-stock-form { padding: 0 17px 14px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.linen-stock-form .linen-stock-grid { padding: 0; width: 100%; }
.linen-entry-form { display: grid; grid-template-columns: minmax(54px, 1fr) auto; gap: 7px; }
.linen-history { border-top: 1px solid var(--border-soft); padding: 14px 17px; }
.linen-history h4 { margin: 0 0 9px; font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; font-weight: 620; }
.linen-history-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--border-soft); }
.linen-history-row:last-child { border-bottom: 0; }
.linen-history-row > div { display: grid; }
.linen-history-row strong { font-size: 12px; }
.linen-history-row span { color: var(--muted); font-size: 10px; }
.linen-history-row.voided { opacity: .55; text-decoration: line-through; }
.linen-cart-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.strip-carts-total { margin: 0 0 2px; }
.strip-carts-total strong { font-size: 28px; line-height: 1; font-variant-numeric: tabular-nums; }
.linen-details { border-top: 1px solid var(--border-soft); }
.linen-details > summary { padding: 12px 17px; cursor: pointer; color: var(--text); font-size: 12px; font-weight: 650; list-style-position: inside; }
.linen-details > summary::marker { color: var(--accent); }
.linen-details[open] > summary { background: color-mix(in srgb, var(--well) 70%, transparent); }
.linen-details-body { padding: 0 17px 14px; }
.linen-details-body > .linen-history { border-top: 0; padding: 8px 0 0; }
.linen-group-body { padding: 0; }
.linen-compact-totals .expected-result-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 7px 0; }
.linen-compact-totals .expected-total { text-align: right; font-size: 15px; }
.linen-subheading { margin: 14px 0 0; font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.linen-entry-history { margin-top: 0; }
.linen-estimate-breakdown .expected-result-row { padding-left: 0; padding-right: 0; }
.expected-add-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; cursor: pointer; user-select: none; }
.expected-add-head:focus-visible { outline: 2px solid var(--ring); outline-offset: 3px; border-radius: 8px; }
.expected-add-head h3 { margin: 0; }
.expected-add-body { display: block; padding: 0 17px 16px; }
.linen-expected-card { margin-top: 0; margin-bottom: 14px; }
.linen-forecast-body { padding: 0 17px 16px; }
.linen-forecast-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(88px, 1fr));
  gap: 8px;
  padding: 14px 0;
  overflow-x: auto;
  scrollbar-width: thin;
}
.linen-forecast-day {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 9px 8px;
  border: 1px solid var(--well-border);
  border-radius: 10px;
  background: var(--well);
  color: var(--text);
  text-align: left;
  cursor: pointer;
  box-shadow: var(--lit-edge);
}
.linen-forecast-day:hover { border-color: var(--accent); }
.linen-forecast-day.active {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent-soft) 45%, var(--well));
  box-shadow: var(--lit-edge), 0 0 0 1px var(--accent-soft-2);
}
.linen-forecast-day.unavailable { opacity: .6; }
.linen-forecast-day span { color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.linen-forecast-day strong { font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.linen-forecast-day small { color: var(--muted); font-size: 9px; white-space: nowrap; }
.linen-forecast-summary { display: flex; justify-content: space-between; gap: 12px; padding: 2px 0 12px; }
.linen-forecast-summary strong, .linen-forecast-summary span { display: block; }
.linen-forecast-summary strong { font-size: 15px; }
.linen-forecast-summary span { margin-top: 3px; color: var(--muted); font-size: 11px; }
.linen-forecast-bed-totals { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.linen-bed-total { display: inline-flex; align-items: center; gap: 5px; }
.linen-bed-total .room-bed-marker { margin-left: 0; min-width: 24px; min-height: 24px; width: 24px; height: 24px; font-size: 13px; }
.linen-bed-total strong { font: 800 18px/1 "Space Mono", ui-monospace, monospace; }
.linen-bed-total small { color: var(--muted); font-size: 10px; font-weight: 700; }
.linen-forecast-arrival-badge { color: var(--purple); border: 1px solid color-mix(in srgb, var(--purple) 48%, transparent); border-radius: 999px; padding: 3px 6px; font-size: 9px !important; font-weight: 800; line-height: 1; text-transform: uppercase; }
.linen-forecast-rooms { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 7px; padding-top: 10px; }
.linen-forecast-room {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  min-width: 0;
  min-height: 34px;
  padding: 5px 9px;
  border: 1px solid var(--well-border);
  border-radius: 9px;
  background: var(--well);
  white-space: nowrap;
}
.linen-forecast-room strong {
  flex: 0 0 3ch;
  text-align: right;
  font: 700 12px "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-variant-numeric: tabular-nums;
}
.linen-forecast-room small { color: var(--pink); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.linen-forecast-room .room-bed-marker { font-size: 16px; }
.linen-forecast-room.pet-checkout { border-color: color-mix(in srgb, var(--pink) 46%, var(--well-border)); }
.linen-forecast-pet { font-family: system-ui, sans-serif; font-size: 15px; line-height: 1; }
.linen-forecast-adjust .expected-picker-grid { padding-top: 10px; }
.linen-estimate-card { margin-top: 0; margin-bottom: 14px; }
.linen-estimate-card .expected-result-row { padding: 6px 17px; }
.linen-estimate-card .expected-result-row:first-child { border-top: 1px solid var(--border-soft); }
.linen-estimate-card .panel-head { border-bottom: 0; }
.expected-picker-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px 12px; padding: 14px 0 4px; }
.expected-room { display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; gap: 7px; min-width: 0; padding: 7px 8px; border: 1px solid var(--well-border); border-radius: 8px; background: rgba(255,255,255,.02); }
.expected-room.muted { opacity: .55; }
.expected-check { display: flex; align-items: center; gap: 6px; font: 600 12px "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace; cursor: pointer; }
.expected-arr { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; color: var(--pink); cursor: pointer; }
.expected-arr.muted { opacity: .5; }
.expected-arr input { accent-color: var(--pink); }
.expected-check input { accent-color: var(--accent); }
.expected-status { display: grid; gap: 2px; min-width: 0; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.expected-status select { width: 100%; min-width: 0; padding: 4px 5px; border: 1px solid var(--border-soft); border-radius: 7px; background: var(--surface); color: var(--text); font: inherit; font-size: 11px; letter-spacing: normal; text-transform: none; }
.expected-results { border-top: 1px solid var(--border-soft); padding: 12px 0 4px; margin-top: 12px; }
.expected-results h4 { margin: 0 0 8px; font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; font-weight: 620; }
.expected-result-row { display: grid; grid-template-columns: minmax(150px, 1fr) 86px 86px 86px 72px; gap: 8px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--border-soft); font-size: 12px; }
.expected-result-row:last-child { border-bottom: 0; }
.expected-item { font-weight: 620; }
.expected-num { color: var(--muted); font-variant-numeric: tabular-nums; }
.expected-total { text-align: right; color: #9be0bf; font-variant-numeric: tabular-nums; }
.expected-actions { display: flex; justify-content: flex-end; gap: 12px; padding: 12px 0 2px; }
@media(max-width:700px){
  .linen-forecast-days { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 104px; }
  .linen-forecast-rooms { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .linen-forecast-room { justify-content: flex-start; }
  .linen-forecast-room small { margin-left: auto; }
  .expected-result-row { grid-template-columns: 1fr; gap: 2px; }
  .expected-total { text-align: left; }
}
/* Totals cards keep ONE line per item on phones too: item name left, count
   right (Stephanie, 2026-08-29 — the two-column totals cards, unlike the
   full estimate breakdown, are short enough to stay on a single row). */
.linen-totals-card .expected-result-row,
.linen-estimate-totals-card .expected-result-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.linen-totals-card .expected-total,
.linen-estimate-totals-card .expected-total { text-align: right; font-size: 15px; }
.linen-totals-card, .linen-estimate-totals-card { margin-top: 0; margin-bottom: 14px; }
.linen-totals-card .expected-result-row, .linen-totals-card .expected-result-row:first-child,
.linen-estimate-totals-card .expected-result-row, .linen-estimate-totals-card .expected-result-row:first-child { padding: 7px 17px; border-top: 0; }

/* ------------------------------------------------------------------ */
/* 19. SCHEDULE BOARD                                                   */
/* ------------------------------------------------------------------ */

.schedule-grid-wrap {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
}
.schedule-grid { display: table; border-collapse: separate; border-spacing: 0; width: 100%; min-width: 540px; }
.schedule-grid th { padding: 7px 4px; font-size: 11px; color: var(--secondary); background: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, 0)); }
.schedule-grid th:first-child, .schedule-grid td:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  text-align: left;
  background: var(--panel);
  background-clip: padding-box;
  box-shadow: 1px 0 0 var(--border);
}
.schedule-grid th:first-child { z-index: 3; }
.schedule-grid th .day-label { display: block; font-size: 10px; font-weight: 660; color: var(--text); }
.schedule-grid th .day-num { display: block; font-size: 10px; color: var(--text); white-space: nowrap; font-weight: 650; }
/* Today's date in the schedule header: highlighted accent instead of the old
   " · today" text (Stephanie, 2026-08-27). */
.schedule-grid th .day-num.today { color: var(--accent); font-weight: 700; }
.schedule-grid td { padding: 8px 4px; font-size: 13px; }
.schedule-grid tr:nth-child(even) { background: rgba(255, 255, 255, .015); }
.schedule-grid tr:hover td { background: rgba(255, 255, 255, .02); }
.schedule-name-cell { display: flex; align-items: center; gap: 5px; min-width: 170px; }
.schedule-name-cell .schedule-name-input { flex: 1 1 auto; min-width: 0; }
.schedule-remove-row { flex: 0 0 30px; width: 30px; min-height: 38px; padding: 0; border: 1px solid var(--border); border-radius: 8px; background: transparent; color: var(--secondary); font: inherit; font-size: 20px; line-height: 1; cursor: pointer; }
.schedule-remove-row:hover, .schedule-remove-row:focus-visible { border-color: var(--danger, #b24343); color: var(--danger, #b24343); background: color-mix(in srgb, var(--danger, #b24343) 10%, transparent); }
.schedule-week-nav { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.schedule-week-nav .button { padding: 7px 12px; font-size: 12px; }
.schedule-calendar-action { min-width: 0; }
.schedule-editor-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.schedule-editor-actions .button { flex: 1 1 auto; min-width: 0; }

@media (max-width: 640px) {
  .schedule-week-nav .schedule-calendar-action {
    flex: 1 1 calc(50% - 4px);
    min-width: 0;
    padding-left: 7px;
    padding-right: 7px;
    white-space: nowrap;
  }
}
.schedule-checkouts-row td { background: rgba(226, 173, 76, .07); }
.schedule-checkouts-row .schedule-checkouts-label { font-weight: 660; font-size: 12px; color: var(--amber); }
.schedule-checkouts-row td:first-child { background: color-mix(in srgb, var(--amber) 7%, var(--panel)); }
.schedule-expected-row td { background: rgba(78, 205, 196, .06); }
.schedule-expected-row .schedule-expected-label { font-weight: 660; font-size: 12px; color: var(--accent); }
.schedule-expected-row td:first-child { background: color-mix(in srgb, var(--accent) 6%, var(--panel)); }
.schedule-expected-arrivals-row td { background: rgba(143, 115, 213, .07); }
.schedule-expected-arrivals-row .schedule-expected-arrivals-label { font-weight: 660; font-size: 12px; color: var(--purple, #8f73d5); }
.schedule-expected-arrivals-row td:first-child { background: color-mix(in srgb, #8f73d5 7%, var(--panel)); }
@media(max-width:700px){
  #schedule-view .schedule-grid-wrap {
    overflow-x: scroll;
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--accent) 55%, transparent) transparent;
  }
  #schedule-view .schedule-grid-wrap::-webkit-scrollbar { height: 7px; }
  #schedule-view .schedule-grid-wrap::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: color-mix(in srgb, var(--accent) 55%, transparent);
  }
  #schedule-view .schedule-grid { min-width: 620px; }
  #schedule-view .schedule-grid-wrap :is(table, thead, tbody, tfoot, tr, th, td, input) {
    touch-action: pan-x pan-y;
  }
}

/* ------------------------------------------------------------------ */
/* 20. MESSAGES                                                        */
/* ------------------------------------------------------------------ */

.message-compose-form { display: grid; gap: 11px; }
.message-compose-form label { display: grid; gap: 5px; font-size: 12px; color: var(--muted); font-weight: 540; }
.message-compose-form .button { justify-self: start; }
.direct-message-list { padding: 0 17px; }
.direct-message-row { padding: 12px 0; border-bottom: 1px solid var(--border-soft); }
.direct-message-row:last-child { border-bottom: 0; }
.direct-message-meta { font-size: 11px; color: var(--muted); margin-bottom: 4px; }
.direct-message-text { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; }

/* ------------------------------------------------------------------ */
/* 21. LOGS                                                            */
/* ------------------------------------------------------------------ */

.table-wrap { overflow-x: auto; }
.log-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.log-table th, .log-table td { padding: 8px 11px; text-align: left; border-bottom: 1px solid var(--border-soft); vertical-align: top; }
.log-table th { color: var(--muted); font-size: 11px; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; font-weight: 620; }
.log-table td { color: var(--text); }
.log-table tbody tr:hover td { background: linear-gradient(90deg, rgba(255, 255, 255, .028), transparent); }
.logs-actions { white-space: nowrap; }
.logs-actions .button { padding: 3px 8px; font-size: 12px; }
.edit-field { display: grid; gap: 4px; font-size: 12px; color: var(--secondary); }
.logs-card-head {
  width: 100%;
  appearance: none;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.logs-card-head:focus-visible { outline: 2px solid var(--ring); outline-offset: -3px; border-radius: 8px; }
.logs-card-head .muted { margin-left: auto; }
.logs-chevron { color: var(--muted); transition: transform var(--card-motion) var(--card-motion-ease), color var(--card-motion) ease; font-size: 12px; line-height: 1; }
.logs-card .table-wrap {
  max-height: var(--card-content-max);
  overflow: hidden;
  opacity: 1;
  transform: translateY(0);
  transition: max-height var(--card-motion) var(--card-motion-ease), opacity var(--card-motion) ease, transform var(--card-motion) var(--card-motion-ease);
}
.logs-card.is-collapsed .logs-chevron { transform: rotate(90deg); color: var(--accent); }
.logs-card.is-collapsed .table-wrap { max-height: 0; opacity: 0; transform: translateY(calc(var(--card-motion-distance) * -1)); pointer-events: none; }
.logs-card.is-collapsed .panel-head .muted { opacity: .65; }
.logs-empty { color: var(--muted); font-size: 13px; padding: 14px 11px; }
.completed-work-table th:nth-child(3), .completed-work-table th:nth-child(4) { min-width: 150px; }
.logs-work-meta { display: block; color: var(--muted); font-size: 12px; margin-top: 3px; }

/* Assignments by room — collapsible header */
.assign-panel-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  cursor: pointer;
  text-align: left;
  font: inherit;
}
.assign-panel-toggle h3 { font-size: inherit; }
.assign-panel-toggle:focus-visible { outline: 2px solid var(--ring); outline-offset: -3px; border-radius: 8px; }
.assign-chevron { color: var(--muted); transition: transform var(--card-motion) var(--card-motion-ease), color var(--card-motion) ease; font-size: 11px; line-height: 1; }
.assign-panel .manager-room-grid,
.assign-panel > .empty-state {
  max-height: var(--card-content-max);
  overflow: hidden;
  opacity: 1;
  transform: translateY(0);
  transition: max-height var(--card-motion) var(--card-motion-ease), opacity var(--card-motion) ease, transform var(--card-motion) var(--card-motion-ease);
}
.assign-panel.is-collapsed .assign-chevron { transform: rotate(90deg); color: var(--accent); }
.assign-panel.is-collapsed .manager-room-grid,
.assign-panel.is-collapsed .empty-state { max-height: 0; opacity: 0; transform: translateY(calc(var(--card-motion-distance) * -1)); pointer-events: none; }

/* Content wells stay in the layout so opening feels like a panel unfolding
   rather than a DOM swap. The accent only appears on the chevron and edge,
   keeping the movement professional in every theme. */
.panel:not(.today-card):not(.logs-card):not(.assign-panel):not(.assignments-card):not(.checkout-add-card) > :not(.panel-head) {
  /* Tall room-list groups on the Rooms tab can exceed 5000px — the cap must
     exceed real content or the panel clips mid-list (Stephanie, 2026-09-06). */
  max-height: 40000px;
  overflow: hidden;
  opacity: 1;
  transform: translateY(0);
  transition: max-height var(--card-motion) var(--card-motion-ease), opacity var(--card-motion) ease, transform var(--card-motion) var(--card-motion-ease);
}
.panel:not(.today-card):not(.logs-card):not(.assign-panel):not(.assignments-card):not(.checkout-add-card).is-collapsed > :not(.panel-head) {
  max-height: 0;
  opacity: 0;
  transform: translateY(calc(var(--card-motion-distance) * -1));
  pointer-events: none;
}
.panel:not(.today-card):not(.logs-card):not(.assign-panel):not(.assignments-card) > .panel-head { cursor: pointer; user-select: none; }
.panel:not(.today-card):not(.logs-card):not(.assign-panel):not(.assignments-card) > .panel-head h3::after {
  content: "▾"; margin-left: 8px; font-size: 10px; color: var(--muted); transition: color var(--card-motion) ease;
}
.panel.is-collapsed:not(.today-card):not(.logs-card):not(.assign-panel):not(.assignments-card) > .panel-head h3::after { content: "▸"; color: var(--accent); }
.panel.is-collapsed:not(.today-card):not(.logs-card):not(.assign-panel):not(.assignments-card) > .panel-head { box-shadow: inset 0 -1px 0 var(--accent-soft); transition: box-shadow var(--card-motion) ease; }
.panel.fit-panel { width: fit-content; max-width: 100%; }
.panel.fit-panel.is-collapsed { width: fit-content; }
.panel.fit-panel .manager-room-grid { padding: 14px; }

/* ------------------------------------------------------------------ */
/* 22. DASHBOARD COLLAPSE + PRESENCE                                   */
/* ------------------------------------------------------------------ */

#dashboard-view .today-card-title { cursor: pointer; }
#dashboard-view .today-card-title:focus-visible { outline: 2px solid var(--ring); outline-offset: 3px; border-radius: 6px; }
#dashboard-view .today-card-title,
.panel:not(.today-card):not(.logs-card):not(.assign-panel):not(.assignments-card):not(.checkout-add-card) > .panel-head,
.logs-card > .logs-card-head,
.assign-panel > .assign-panel-toggle,
.common-area-person-card > summary {
  transition: background var(--card-motion) ease, color var(--card-motion) ease;
}
#dashboard-view .today-card-title:hover,
.panel:not(.today-card):not(.logs-card):not(.assign-panel):not(.assignments-card):not(.checkout-add-card) > .panel-head:hover,
.logs-card > .logs-card-head:hover,
.assign-panel > .assign-panel-toggle:hover,
.common-area-person-card > summary:hover {
  background: color-mix(in srgb, var(--accent) 7%, transparent);
}
#dashboard-view .today-card-title h3::after { content: "▾"; display: inline-block; margin-left: 8px; color: var(--accent); font-size: 12px; font-weight: 800; transition: transform var(--card-motion) ease; }
#dashboard-view .today-card.is-collapsed .today-card-title h3::after { content: "▸"; }
#dashboard-view .today-card.is-collapsed .today-card-title::after,
.panel.is-collapsed:not(.today-card):not(.logs-card):not(.assign-panel):not(.assignments-card):not(.checkout-add-card) > .panel-head::after,
.logs-card.is-collapsed > .logs-card-head::after,
.assign-panel.is-collapsed > .panel-head > .assign-panel-toggle::after,
.assignments-card:not(.open) > .assignments-head::after {
  content: "Click to expand";
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  margin-left: auto;
  padding: 3px 7px;
  border: 1px solid color-mix(in srgb, var(--accent) 48%, var(--border-soft));
  border-radius: 999px;
  color: var(--accent-ink);
  background: color-mix(in srgb, var(--accent) 9%, transparent);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .035em;
  line-height: 1.2;
  white-space: nowrap;
}
#dashboard-view .today-card-title[role="button"],
.panel:not(.today-card):not(.logs-card):not(.assign-panel):not(.assignments-card):not(.checkout-add-card) > .panel-head,
.logs-card > .logs-card-head,
.assign-panel > .assign-panel-toggle,
.common-area-person-card > summary { cursor: pointer; }
#dashboard-view .today-card.panel > :not(.panel-head),
#dashboard-view .today-card.room-card > :not(.room-card-head),
#dashboard-view .today-card.employee-bubble > :not(:first-child) {
  /* Today cards hold up to 17 full room cards (~600px each) — 5000px clipped
     the Checkouts Remaining list mid-card (Stephanie, 2026-09-06: "isnt
     letting me see all of the checkouts"). The cap only anchors the open
     transition; it must exceed the tallest real content. */
  max-height: 40000px;
  overflow: hidden;
  opacity: 1;
  transform: translateY(0);
  transition: max-height var(--card-motion) var(--card-motion-ease), opacity var(--card-motion) ease, transform var(--card-motion) var(--card-motion-ease);
}
#dashboard-view .today-card.is-collapsed.panel > :not(.panel-head),
#dashboard-view .today-card.is-collapsed.room-card > :not(.room-card-head),
#dashboard-view .today-card.is-collapsed.employee-bubble > :not(:first-child) {
  max-height: 0;
  opacity: 0;
  transform: translateY(calc(var(--card-motion-distance) * -1));
  pointer-events: none;
}
#dashboard-view .today-card.is-collapsed.panel .panel-head .muted,
#dashboard-view .today-card.is-collapsed.panel .panel-head-actions,
#dashboard-view .today-card.is-collapsed.panel .panel-head > select,
#dashboard-view .today-card.is-collapsed.panel .panel-head > .button { display: none; }
/* Lost & Found + Maintenance keep their quick-add bar usable while the card
   is collapsed (Stephanie, 2026-09-05): the form lives inside the .quick-head
   header, so exempt it from the collapse hiding. The .muted helper line still
   hides; the room+item inputs and submit buttons stay visible. */
#dashboard-view .today-card.is-collapsed.panel .panel-head .today-quick-form,
#dashboard-view .today-card.is-collapsed.panel .panel-head .lost-found-form { display: grid; }
#dashboard-view .today-card.is-collapsed.panel .panel-head .today-quick-form .muted { display: none; }
.quick-add-expand-indicator { display: inline-block; margin-left: 8px; color: var(--muted); font-size: 11px; transition: transform var(--card-motion) var(--card-motion-ease); }
#dashboard-view .quick-add-panel.is-collapsed .quick-add-expand-indicator { transform: rotate(-90deg); color: var(--accent); }
#dashboard-view .today-card.is-collapsed.room-card .room-card-head p,
#dashboard-view .today-card.is-collapsed.room-card .room-card-head > :not(:first-child) { display: none; }
#dashboard-view .today-card.is-collapsed.employee-bubble > div > span,
#dashboard-view .today-card.is-collapsed.employee-bubble > .employee-message-button,
#dashboard-view .today-card.is-collapsed.employee-bubble > .muted { display: none; }

/* Today's plan — dark teal shell, same theme as every other view (2026-08-22,
   per Stephanie: "the today screen should be the colors as the rest of the
   pages"). The warm-paper sheet skin was removed; panels, cards, inputs, and
   text inside Today now use the exact same global dark tokens as the other
   tabs (--panel, --surface, --text, --muted, --accent, ...). */
#dashboard-view {
  --today-card-gap: 18px;
  display: flex;
  flex-direction: column;
  gap: var(--today-card-gap);
  padding: 20px 18px 28px;
  border-radius: var(--radius-m);
}

#dashboard-view > .panel,
#dashboard-view > .today-section,
#dashboard-view > .today-section > .panel {
  margin-top: 0;
  margin-bottom: 0;
}

/* The Today utility cards stay compact in the normal view too. Larger work
   lists remain full width; the small controls can share a row. */
#dashboard-view:not(.card-order-editing-view) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: var(--today-card-gap);
}
#dashboard-view:not(.card-order-editing-view) > * {
  grid-column: 1 / -1;
}
#dashboard-view:not(.card-order-editing-view) > :is(.personal-todo-card, .assignments-today-card),
#dashboard-view:not(.card-order-editing-view) > .today-section:has(> .assignments-today-card) {
  grid-column: 1 / -1;
  min-width: 0;
}
#dashboard-view:not(.card-order-editing-view) .personal-todo-card .panel-head {
  align-items: center;
}
#dashboard-view:not(.card-order-editing-view) .personal-todo-add-form {
  width: min(100%, 270px);
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
}
#dashboard-view:not(.card-order-editing-view) .personal-todo-add-form .button {
  min-height: 32px;
  padding: 5px 10px;
  font-size: 12px;
}
.today-manager-tools {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: var(--today-card-gap);
  min-width: 0;
  margin-top: 4px;
  padding-top: 18px;
  border-top: 1px solid var(--border-soft);
}
.today-manager-tools-heading {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 0 2px;
}
.today-manager-tools-heading .eyebrow,
.today-manager-tools-heading h2,
.today-manager-tools-heading .muted { margin: 0; }
.today-manager-tools-heading h2 {
  color: var(--text);
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.1;
}
.today-manager-tools .manager-morning-approval-pair,
.today-manager-tools > .today-section { width: 100%; }
.today-calendar-upload {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px 14px;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--border-soft);
  border-radius: var(--card-radius, 14px);
  background: color-mix(in srgb, var(--panel) 92%, var(--accent) 8%);
}
.today-calendar-upload > div { display: grid; gap: 3px; min-width: 0; }
.today-calendar-upload > div strong { font-size: 14px; }
.today-calendar-upload > div .muted,
.today-calendar-upload-status { font-size: 12px; }
.today-calendar-file-picker {
  position: relative;
  overflow: hidden;
  cursor: pointer;
}
.today-calendar-file-picker input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.today-calendar-file-picker:focus-within { outline: 2px solid var(--focus, var(--accent)); outline-offset: 2px; }
.today-calendar-upload-status { grid-column: 1 / -1; min-height: 1em; }
.today-manager-tools .manager-tools-operations {
  width: 100%;
  padding: 0;
  margin: 0;
  color: inherit;
  background: transparent;
  border: 0;
}
.today-manager-tools .manager-tools-operations .ops-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.mark-rooms-out-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
}
.mark-rooms-out-operations,
.mark-rooms-out-operations .ops-actions {
  display: contents;
}
.mark-rooms-out-actions > .button,
.mark-rooms-out-actions .ops-actions > .button {
  flex: 0 1 auto;
  min-width: 0;
  white-space: nowrap;
}
.manager-morning-approval-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 12px;
  min-width: 0;
  grid-column: 1 / -1;
}
.manager-morning-approval-pair > :is(.manual-prepare-panel, .approval-box) {
  min-width: 0;
  margin: 0;
}
.manager-morning-approval-pair .manual-prepare-panel .panel-body,
.manager-morning-approval-pair .approval-box > :not(.panel-head) {
  min-width: 0;
  padding-left: 12px;
  padding-right: 12px;
}
#dashboard-view :is(.approval-box) {
  padding: 0;
  overflow: hidden;
}
#dashboard-view :is(.approval-box) > :not(.panel-head) {
  padding: 12px 14px;
}

/* Keep the card-order editor compact: these are collapsed cards being
   arranged, so a two-column board makes the available order visible without
   turning each card into a full-width spacer. */
#dashboard-view.card-order-editing-view {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 12px;
}
#dashboard-view.card-order-editing-view > :not(.card-order-item):not(.card-order-toolbar) {
  grid-column: 1 / -1;
}
#dashboard-view.card-order-editing-view > .card-order-item {
  min-width: 0;
}
#dashboard-view.card-order-editing-view > .card-order-item > .panel-head,
#dashboard-view.card-order-editing-view > .today-section > .card-order-item > .panel-head {
  min-height: 0;
  padding: 10px 12px;
}
#dashboard-view.card-order-editing-view .card-order-move {
  width: 32px;
  height: 32px;
  font-size: 16px;
}
#dashboard-view.card-order-editing-view .personal-todo-card .panel-head {
  align-items: center;
}
#dashboard-view.card-order-editing-view .personal-todo-add-form {
  width: min(100%, 270px);
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
}
#dashboard-view.card-order-editing-view .personal-todo-add-form .button {
  min-height: 32px;
  padding: 5px 10px;
  font-size: 12px;
}
@media (max-width: 700px) {
  #dashboard-view:not(.card-order-editing-view) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--today-card-gap);
    padding-inline: 10px;
  }
  #dashboard-view:not(.card-order-editing-view) .panel-head {
    padding: 9px 10px;
  }
  #dashboard-view:not(.card-order-editing-view) .panel-head h3 {
    font-size: 13px;
  }
  #dashboard-view:not(.card-order-editing-view) .mark-rooms-out-card > .panel-head {
    align-items: center;
    gap: 8px;
  }
  #dashboard-view:not(.card-order-editing-view) .mark-rooms-out-card > .panel-head > :first-child {
    min-width: 0;
  }
  #dashboard-view:not(.card-order-editing-view) .mark-rooms-out-actions {
    flex: 0 0 auto;
    gap: 6px;
  }
  #dashboard-view:not(.card-order-editing-view) .mark-rooms-out-actions > .button,
  #dashboard-view:not(.card-order-editing-view) .mark-rooms-out-actions .ops-actions > .button {
    min-height: 44px;
    padding-inline: 9px;
    font-size: 11px;
  }
  #dashboard-view.card-order-editing-view {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding-inline: 10px;
  }
  #dashboard-view.card-order-editing-view > .card-order-item > .panel-head,
  #dashboard-view.card-order-editing-view > .today-section > .card-order-item > .panel-head {
    padding: 9px 10px;
  }
  #dashboard-view.card-order-editing-view .panel-head h3 {
    font-size: 13px;
  }
  #dashboard-view.card-order-editing-view .personal-todo-add-form {
    width: 100%;
  }
}

@media (max-width: 700px) {
  #dashboard-view { --today-card-gap: 14px; padding: 14px 12px 22px; }
}

/* Keep Today card spacing owned by the dashboard grid. Several reusable
   cards carry their own tab-level margins, which otherwise stack with the
   grid gap and make adjacent cards look uneven. */
#dashboard-view:not(.card-order-editing-view) > *,
#dashboard-view:not(.card-order-editing-view) .today-section,
#dashboard-view:not(.card-order-editing-view) .today-maintenance-gap {
  margin-block: 0;
}
#dashboard-view:not(.card-order-editing-view) .summary-grid,
#dashboard-view:not(.card-order-editing-view) > .housekeeper-greeting {
  margin-bottom: 0;
}

.signed-in-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  margin: 0 7px 1px 0;
  border-radius: 50%;
  background: #30d27e;
  box-shadow: 0 0 0 3px rgba(48, 210, 126, .15), 0 0 11px rgba(48, 210, 126, .95);
  vertical-align: middle;
}
.signed-in-dot.inactive {
  background: #ef6b73;
  box-shadow: 0 0 0 3px rgba(239, 107, 115, .15), 0 0 11px rgba(239, 107, 115, .95);
}

/* Glowing dot next to a housekeeper in the Today Assignments card who is
   scheduled to work that day (Stephanie, 2026-08-26). */
.sched-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  margin: 0 7px 1px 0;
  border-radius: 50%;
  background: #30d27e;
  box-shadow: 0 0 0 3px rgba(48, 210, 126, .15), 0 0 11px rgba(48, 210, 126, .95);
  vertical-align: middle;
}

/* Green lamp marking the CURRENT DAY's checkout list (Stephanie, 2026-08-22). */
.today-checkout-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  margin: 0 7px 1px 0;
  border-radius: 50%;
  background: #30d27e;
  box-shadow: 0 0 0 3px rgba(48, 210, 126, .15), 0 0 11px rgba(48, 210, 126, .95);
  vertical-align: middle;
}
/* Live count of checkouts still to be inspected (drops as rooms are inspected). */
.today-checkout-count {
  display: inline-block;
  min-width: 22px;
  padding: 1px 8px;
  margin-left: 2px;
  border-radius: 999px;
  font: 600 12px/1.4 "Space Mono", ui-monospace, Menlo, monospace;
  color: #30d27e;
  background: rgba(48, 210, 126, .12);
  border: 1px solid rgba(48, 210, 126, .35);
  vertical-align: middle;
  text-align: center;
}

/* ------------------------------------------------------------------ */
/* 23. COUNTDOWN ALERT STATE                                          */
/* ------------------------------------------------------------------ */

.checkin-countdown.checkin-countdown-urgent {
  color: #ff1f2d !important;
  text-shadow: 0 0 10px rgba(255, 31, 45, .65);
}
/* 2 PM NEON-RED PULSE (Stephanie, 2026-08-29): the countdown text and its
   outline glow pulse bright neon red together, like the early-arrival badge.
   Applied from 2:00 PM until the 3:00 PM check-in. */
@keyframes checkin-countdown-flash {
  0%, 100% {
    color: #ff1f2d;
    text-shadow: 0 0 10px rgba(255, 31, 45, .75), 0 0 24px rgba(255, 31, 45, .35);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 0 0 0 rgba(255, 31, 45, 0);
    border-color: color-mix(in srgb, #ff1f2d 55%, transparent);
  }
  50% {
    color: #ff5a63;
    text-shadow: 0 0 18px rgba(255, 31, 45, 1), 0 0 40px rgba(255, 31, 45, .75), 0 0 44px rgba(255, 31, 45, .35);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 0 24px 5px rgba(255, 31, 45, .75);
    border-color: #ff4752;
  }
}
.checkin-countdown.checkin-countdown-flashing {
  animation: checkin-countdown-flash 0.9s ease-in-out infinite;
  color: #ff1f2d !important;
  border-color: #ff1f2d;
}
@media (prefers-reduced-motion: reduce) {
  .checkin-countdown.checkin-countdown-flashing { animation: none; }
}

/* ------------------------------------------------------------------ */
/* 24. RESPONSIVE                                                      */
/* ------------------------------------------------------------------ */

@media (max-width: 1000px) {
  .summary-grid { grid-template-columns: repeat(2, 1fr); }
  .ops-grid, .split-grid { grid-template-columns: 1fr; }
  .split-grid > .panel + .panel { margin-top: 0; }
}

@media(max-width:700px){
  :root { --sidebar: 0px; }
  html, body, .app-shell, .workspace, .view, .ops-grid, .panel {
    max-width: 100%;
    min-width: 0;
  }

  /* bottom console dock */
  .sidebar {
    position: fixed;
    inset: auto 0 0;
    width: auto;
    height: auto;
    min-height: 0;
    padding: 4px 8px;
    display: block;
    /* No charcoal tray: the dock now shows only the tab-selector pill, so no
       gray shows around it (Stephanie, 2026-08-27, "grey around the tab
       selector"). */
    background: transparent;
    border-right: 0;
    border-top: 0;
    border-top-left-radius: 14px;
    border-top-right-radius: 14px;
    padding-bottom: max(3px, calc(env(safe-area-inset-bottom) - 26px));
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
  }
  /* Even with a background photo set, the mobile dock must not show the
     charcoal tray around the tab selector (Stephanie, 2026-08-27).
     Higher specificity than html.has-photo-background .sidebar. */
  html.has-photo-background .sidebar {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .brand, .sidebar-foot .user-chip, .sidebar-foot .button { display: none; }
  .sidebar nav{display:flex;flex-wrap:wrap;gap:4px 6px;overflow-x:visible;overflow-y:visible;flex:0 0 auto;scrollbar-width:none;-ms-overflow-style:none}
  .sidebar nav::-webkit-scrollbar { display: none; }
  .sidebar nav .nav-item{display:none}
  .sidebar nav #mobile-logout-button { display: none; }
  .nav-item{flex:1 1 auto;min-width:0;white-space:nowrap;min-height:34px;padding:4px 10px}
  .nav-item > span:first-child { width: 26px; font-size: 16px; }
  .sidebar-foot { display: none; }

  .mobile-only { display: flex; }

  /* NO backdrop-filter here: WebKit mis-anchors the native <select> picker
     when the control itself has a filter — the tab list pops up centered on
     screen instead of docked at the bottom (Stephanie, 2026-08-28). The
     translucent gradient alone gives the same glass look. */
  .mobile-nav-dock-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(132px,.9fr);gap:6px;flex:1 1 100%;width:100%;min-width:0}
  .mobile-nav-dock-tools .nav-room-search{margin:0;min-width:0;padding:3px}
  .mobile-nav-dock-tools .nav-room-search input{padding:5px 7px}
  .mobile-nav-selector-control{display:grid;gap:2px;min-width:0}
  .mobile-nav-selector-label{display:block;padding:0 4px;color:var(--accent-ink);font-size:9px;font-weight:750;letter-spacing:.08em;line-height:1.1;text-transform:uppercase;white-space:nowrap}
  .mobile-nav-selector-field{position:relative;min-width:0}
  #mobile-nav-select{display:block;width:100%;min-width:0;margin:0;padding:5px 28px 5px 9px;min-height:42px;border:2px solid color-mix(in srgb, var(--accent) 76%, transparent);border-radius:12px;background:var(--panel);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 38%, var(--panel)), color-mix(in srgb, var(--accent) 18%, var(--panel)));color:var(--text);font-size:16px;font-weight:680;box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 14%, transparent), inset 0 1px 0 rgba(255,255,255,.16);backdrop-filter:blur(30px) saturate(1.6);-webkit-backdrop-filter:blur(30px) saturate(1.6);appearance:none;-webkit-appearance:none;cursor:pointer}
  .mobile-nav-selector-chevron{position:absolute;right:10px;top:50%;color:var(--accent-ink);font-size:23px;font-weight:800;line-height:1;pointer-events:none;transform:translateY(-56%)}
  #mobile-nav-select:hover{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent), inset 0 1px 0 rgba(255,255,255,.16)}
  #mobile-nav-select:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 70%, white);outline-offset:2px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent), inset 0 1px 0 rgba(255,255,255,.16)}
  /* Custom tab sheet (2026-08-28): the NATIVE select picker pops centered on
     the phone screen and cannot be styled or moved, so a pointerdown/click
     handler on the select preventDefaults the tap and opens OUR bottom sheet
     instead — it slides up from the tab dock. The select stays in the DOM as
     the visual pill only. */
  #mobile-nav-sheet{position:fixed;left:calc(8px + 13px);right:calc(8px + 13px);bottom:calc(48px + env(safe-area-inset-bottom));z-index:60;display:flex;flex-direction:column;gap:6px;max-height:min(calc(100dvh - 72px - env(safe-area-inset-bottom)), 760px);overflow:hidden;padding:12px;border:1px solid color-mix(in srgb, var(--accent) 60%, transparent);border-radius:18px;background:var(--panel);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 26%, var(--panel)), color-mix(in srgb, var(--accent) 12%, var(--panel)));box-shadow:0 18px 50px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(30px) saturate(1.6);-webkit-backdrop-filter:blur(30px) saturate(1.6);overscroll-behavior:contain}
  #mobile-nav-sheet[hidden]{display:none}
  .mobile-nav-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px 6px}
  .mobile-nav-sheet-head strong{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
  .mobile-nav-sheet-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-height:0;max-height:min(68dvh, 620px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
  .mobile-nav-sheet-item{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.03);color:var(--sheet-ink);font-size:14px;text-align:left}
  .mobile-nav-sheet-item.active{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 34%, transparent), color-mix(in srgb, var(--accent) 16%, transparent));border-color:color-mix(in srgb, var(--accent) 60%, transparent)}
  .mobile-nav-sheet-item.signout{grid-column:1 / -1;color:var(--faint)}
  /* Reorder row at the bottom of the tab sheet (Stephanie, 2026-08-28). */
  .mobile-nav-sheet-reorder{display:flex;align-items:center;gap:8px;padding-top:8px;border-top:1px solid var(--border)}
  .mobile-nav-sheet-reorder span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-right:auto}
  #mobile-nav-backdrop{position:fixed;inset:0;z-index:59;background:rgba(3,8,16,.45);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
  #mobile-nav-backdrop[hidden]{display:none}
  .nav-reorder { display: none; }

  .workspace{margin-left:0;padding:0 14px 58px}
  .topbar { height: 72px; }
  .topbar .button { font-size: 0; width: 44px; padding: 0; }
  .topbar .button::first-letter { font-size: 17px; }
  /* Chat controls collapse to one letter like the other top-bar buttons.
     Needs IDs here because the desktop #id sizing above outranks
     .topbar .button (2026-09-05 phone-overflow fix). */
  #chat-scan-button,
  #chat-sync-toggle,
  #chat-upload-button { font-size: 0; width: 44px; padding: 0; }
  #chat-scan-button::first-letter,
  #chat-sync-toggle::first-letter,
  #chat-upload-button::first-letter { font-size: 17px; }
  .top-actions { gap: 6px; }
  .topbar h1 { font-size: 19px; }
  .summary-grid { grid-template-columns: repeat(2, 1fr); }
  .metric { padding: 13px; }
  .metric strong { font-size: 23px; }
  .ops-grid { grid-template-columns: 1fr; }
  .panel { overflow-x: auto; }
  .room-table { min-width: 620px; }
  .status-strip { align-items: flex-start; }
  .housekeeper-grid { grid-template-columns: 1fr; }
  .auth-card { padding: 26px 22px; }
  /* iOS Safari auto-zooms (and stays zoomed) when tapping an input whose font
     is under 16px — 15px inherited text triggered it on every load. 16px is
     the threshold iOS respects, so inputs keep native-size on phones. */
  input, select, textarea { font-size: 16px; }
  .section-heading { align-items: flex-start; }
  .badge { white-space: nowrap; }
  .view { padding-top: 18px; }

  .task-form { grid-template-columns: 1fr; }
  .task-row {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "main meta" "controls controls";
    align-items: start;
    gap: 8px 10px;
    padding: 11px 12px;
  }
  .task-row .task-main { grid-area: main; }
  .task-row .task-meta { grid-area: meta; justify-self: end; min-width: 0; }
  .task-row .task-meta :is(.badge, .status-badge) { max-width: 100%; white-space: normal; overflow-wrap: anywhere; text-align: right; }
  .task-row .task-controls { grid-area: controls; justify-content: flex-start; flex-wrap: wrap; }
  .linen-progress-row { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
  .linen-item, .linen-entry-form { grid-column: 1 / -1; }
  .linen-stat { text-align: left; }
  .staff-row { display: grid; grid-template-columns: 1fr; align-items: flex-start; }
  .staff-row-actions { width: 100%; justify-content: flex-start; }
  .staff-row-actions .button { flex: 1 1 auto; }
  .panel { overflow: hidden; }
  .room-table { min-width: 0; }

  /* Logs tab controls (2026-08-29): the one-row desktop bar needs ~467px but a
     phone only has ~362px inside the padding — with nowrap it stretched the
     whole page to ~481px so the app opened too wide and had to be zoomed out
     (Stephanie). On phones the bar wraps and the search box shrinks. */
  #logs-controls { flex-wrap: wrap; }
  #logs-controls input[type="search"] { flex: 1 1 140px; min-width: 0; max-width: none; }

  .assignment-table, .source-table, .assignment-table tbody, .source-table tbody { display: block; width: 100%; }
  .assignment-table thead, .source-table thead { display: none; }
  .assignment-table tr, .source-table tr {
    display: grid;
    width: 100%;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 7px 10px;
    padding: 12px 13px;
    border-bottom: 1px solid var(--border-soft);
  }
  .assignment-table tr:last-child, .source-table tr:last-child { border-bottom: 0; }
  .assignment-table td, .source-table td { display: block; width: auto; padding: 0; border: 0; min-width: 0; }
  .assignment-table td:nth-child(1), .source-table td:nth-child(1) { grid-column: 1; grid-row: 1; align-self: center; font-size: 17px; }
  .assignment-table td:nth-child(2), .source-table td:nth-child(2) { grid-column: 2; grid-row: 1; }
  .assignment-table td:nth-child(3), .source-table td:nth-child(3) { grid-column: 1 / -1; grid-row: 2; }
  .assignment-table td:nth-child(4), .source-table td:nth-child(4) { grid-column: 1 / -1; grid-row: 3; }
  .assignment-table td:nth-child(5), .source-table td:nth-child(5) { grid-column: 1 / -1; grid-row: 4; }
  .source-table td:nth-child(6) { grid-column: 1 / -1; grid-row: 5; }
  .source-table tr.today-fix-row { display: block; }
  .source-table tr.today-fix-row td { display: block; grid-column: auto; grid-row: auto; padding: 0 14px 10px; }
  .today-fix-block { flex-direction: column; align-items: stretch; }
  .today-fix-add-form { width: 100%; }
  .today-fix-add-form input { flex: 1 1 auto; width: auto; }
  .assignment-table select, .assignment-table button, .source-table select, .source-table button { width: 100%; min-width: 0; }
  .source-table .room-status-wrap { display: block; }
  .panel-head { flex-wrap: wrap; }
  .note { font-size: 12px; }
  .note span { text-align: left; }
  .notes-list .note { display: grid; grid-template-columns: auto minmax(0, 1fr); justify-content: start; }
}

@media (max-width: 520px) {
  .vacant-picker-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
  .vacant-picker-room { min-height: 50px; }
  .vacant-picker-dialog { padding: 15px; }
  .vacant-picker-head { gap: 10px; }
  .staff-access-dialog, .today-checkout-dialog { padding: 15px; }
  .access-options { grid-template-columns: 1fr; }
  .staff-access-head h3 { font-size: 18px; }
  .pest-control-room { align-items: flex-start; flex-direction: column; }
  .pest-control-room .manager-status-select { width: 100%; }
  .blocked-room { align-items: flex-start; flex-direction: column; }
  .blocked-room .manager-status-select { width: 100%; }
  .today-summary-dialog { padding: 15px; }
  .summary-room-row { padding: 10px; }
}

@media (max-width: 620px) {
  .todo-add-form, .todo-schedule-form { grid-template-columns: 1fr; }
  .todo-add-form .button { width: 100%; }
  .low-stock-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 420px) {
  .summary-grid { gap: 7px; }
  .metric small { display: none; }
  .top-actions .badge { display: none; }
  .status-strip { display: block; }
  .sync-meta { margin-top: 7px; }
  .nav-item { font-size: 12px; }
  .checkin-countdown { display: none; }
  .notification-panel { right: 12px; }
}

@media (max-width: 760px) {
  .checkout-picker-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
  .checkout-picker-room { min-height: 48px; }
}

@media (max-width: 390px) {
  .low-stock-options { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------------ */
/* 25. PHOTO BACKGROUND + LIGHT MODE (preserved behavior)              */
/* ------------------------------------------------------------------ */

html.has-photo-background body {
  background-image: linear-gradient(rgba(8, 9, 10, .48), rgba(8, 9, 10, .62)), var(--photo-background);
  background-position: center;
  background-size: cover;
  background-attachment: fixed;
}
html.has-photo-background .sidebar {
  background: linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02)), rgba(11, 12, 13, .45);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
/* On phones the sidebar is the bottom tab tray — never let the photo-mode
   charcoal backdrop show around the tab selector (Stephanie, 2026-08-27).
   Declared AFTER html.has-photo-background .sidebar so it wins the cascade. */
@media (max-width: 700px) {
  html.has-photo-background .sidebar {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}
html.has-photo-background .topbar {
  /* Header matches the tab selector Stephanie prefers — the SAME pure
     accent gradient (34% → 16% like .nav-item.active), no dark base layer,
     so it reads at the tab's translucency instead of the denser berry
     (Stephanie, 2026-08-27, "prefer the tab selector, make them match"). */
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 34%, transparent), color-mix(in srgb, var(--accent) 16%, transparent));
  border: 1px solid color-mix(in srgb, var(--accent) 60%, transparent);
  -webkit-backdrop-filter: blur(30px) saturate(1.6);
  backdrop-filter: blur(30px) saturate(1.6);
}

/* light mode — same motifs, daylight register */
html[data-mode="light"] {
  color-scheme: light;
  --bg: #f3f6fa;
  --panel: #ffffff;
  --surface: #f7f9fc;
  --surface-2: #e9eef5;
  --border: rgba(16, 31, 51, .15);
  --border-soft: rgba(16, 31, 51, .09);
  --text: #172033;
  --secondary: #36435a;
  /* Darkened so muted/faint text stays readable on light backgrounds
     (Stephanie, 2026-08-27). */
  --muted: #4c5c74;
  --faint: #5d6b82;
  --well: rgba(16, 31, 51, .04);
  --raise: rgba(16, 31, 51, .07);
  --accent-soft: rgba(94, 106, 210, .1);
  --accent-soft-2: rgba(94, 106, 210, .2);
  --ring: rgba(94, 106, 210, .28);
  --lit-edge: inset 0 1px 0 rgba(255, 255, 255, .8);
  --dawn-glow-a: rgba(255, 166, 92, .07);
  --dawn-glow-b: rgba(255, 120, 120, .05);
  --shadow-1: 0 1px 2px rgba(16, 31, 51, .08), 0 14px 30px -18px rgba(16, 31, 51, .18);
  --shadow-2: 0 2px 4px rgba(16, 31, 51, .1), 0 24px 60px -24px rgba(16, 31, 51, .3);
  --shadow-pop: 0 1px 0 rgba(255, 255, 255, .9), 0 30px 80px rgba(16, 31, 51, .3);
  /* Named themes assume dark consoles and give --accent-ink/--on-accent light
     values; on light backgrounds that's white-on-light and unreadable. Force a
     dark ink for accent-tinted surfaces in light mode (Stephanie, 2026-08-27). */
  --accent-ink: #24334a;
  --on-accent: #1b2430;
  /* Dark-theme status colors wash out on white — deepen for light mode */
  --green: #1e7a4d;
  --amber: #92660f;
  --red: #c03949;
  --signal: color-mix(in srgb, var(--accent) 72%, #1b2430);
}
html[data-mode="light"] body {
  background: var(--bg);
  color: var(--text);
}
/* Tiny letter-spaced eyebrow labels need the strongest ink in light mode so
   they stay readable over light/photo backgrounds (Stephanie, 2026-08-27). */
html[data-mode="light"] .eyebrow { color: var(--secondary); }
html[data-mode="light"] .sidebar .user-chip span,
html[data-mode="light"] .sidebar-foot .muted,
html[data-mode="light"] .nav-reorder-hint { color: var(--secondary); }
html[data-mode="light"] .sidebar {
  background: rgba(255, 255, 255, .93);
  border-color: var(--border-soft);
}
html[data-mode="light"] .topbar {
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 20%, rgba(255, 255, 255, .7)), color-mix(in srgb, var(--accent) 7%, rgba(255, 255, 255, .85)));
  border-color: color-mix(in srgb, var(--accent) 45%, transparent);
  -webkit-backdrop-filter: blur(30px) saturate(1.6);
  backdrop-filter: blur(30px) saturate(1.6);
}
html[data-mode="light"] .panel {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .6), rgba(255, 255, 255, 0) 26%),
    rgba(255, 255, 255, .85);
}
html[data-mode="light"] .button { background: rgba(28, 48, 79, .04); }
html[data-mode="light"] .room-limit-field .room-limit-input,
html[data-mode="light"] .staff-role-field .staff-role-select,
html[data-mode="light"] .mentor-field .mentor-select {
  background: rgba(28, 48, 79, .04);
  border-color: rgba(16, 31, 51, .15);
  box-shadow: none;
}
html[data-mode="light"] .room-limit-field .room-limit-input:hover,
html[data-mode="light"] .staff-role-field .staff-role-select:hover,
html[data-mode="light"] .mentor-field .mentor-select:hover { background: rgba(28, 48, 79, .08); }
html[data-mode="light"] .button.primary {
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 55%, #ffffff), var(--accent) 90%);
  border-color: var(--accent);
  color: var(--on-accent);
  text-shadow: none;
}
html[data-mode="light"] .button:hover { background: rgba(28, 48, 79, .08); }
html[data-mode="light"] .nav-item:hover, html[data-mode="light"] .nav-item.active {
  background: rgba(28, 48, 79, .08);
}
html[data-mode="light"] .nav-item.active {
  /* Light-mode active tab matches the light header recipe (Stephanie, 2026-08-27). */
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 20%, rgba(255, 255, 255, .7)), color-mix(in srgb, var(--accent) 7%, rgba(255, 255, 255, .85)));
  border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
}
html[data-mode="light"].has-photo-background body {
  background-image: linear-gradient(rgba(255, 255, 255, .38), rgba(243, 246, 250, .64)), var(--photo-background);
}
html[data-mode="light"].has-photo-background .sidebar {
  background: rgba(255, 255, 255, .82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
html[data-mode="light"].has-photo-background .topbar {
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 20%, rgba(255, 255, 255, .7)), color-mix(in srgb, var(--accent) 7%, rgba(255, 255, 255, .85)));
  -webkit-backdrop-filter: blur(30px) saturate(1.6);
  backdrop-filter: blur(30px) saturate(1.6);
}
html[data-mode="light"] .form-stack input, html[data-mode="light"] .form-stack select,
html[data-mode="light"] textarea, html[data-mode="light"] .task-form input,
html[data-mode="light"] .task-form select, html[data-mode="light"] .schedule-name-input,
html[data-mode="light"] .schedule-shift-input, html[data-mode="light"] .schedule-checkout-input,
html[data-mode="light"] .timeoff-date, html[data-mode="light"] .timeoff-details,
html[data-mode="light"] .fix-add-form input, html[data-mode="light"] .need-add-form input,
html[data-mode="light"] .linen-entry-form input, html[data-mode="light"] .message-compose-form select,
html[data-mode="light"] .message-compose-form textarea, html[data-mode="light"] .employee-message-form textarea,
html[data-mode="light"] .edit-field input, html[data-mode="light"] .checkout-history-bar input[type=date] {
  background: linear-gradient(180deg, rgba(16, 31, 51, .03), rgba(16, 31, 51, 0));
  box-shadow: inset 0 1px 2px rgba(16, 31, 51, .06);
}
html[data-mode="light"] input[type=date] { color-scheme: light; }

/* ------------------------------------------------------------------ */
/* 26. SAFETY & RESPONSIVE OVERRIDES (verified; behave as before)      */
/* ------------------------------------------------------------------ */

[hidden] { display: none !important; }
.mobile-only { display: none; }

/* restored rules from the original sheet (kept for identical behavior) */
.today-section { margin-bottom: 18px; }
/* Manual arrival controls stay on one compact row: arrival, early arrival,
   then a recognisable puppy-only pet toggle. */
.manager-early-arrival-row { margin: 6px 0 0; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr) 42px; gap: 6px; align-items: stretch; }
.manager-early-arrival-row .button { min-width: 0; min-height: 38px; padding: 5px 6px; font-size: 11px; line-height: 1.15; }
.manager-early-arrival-row .pet-room-toggle.icon-only { width: 42px; min-width: 42px; padding: 0; font-size: 18px; line-height: 1; }
.manager-early-arrival-row .early-arrival-toggle.active,
.manager-early-arrival-row .arrival-toggle.active,
.pet-room-toggle.active {
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 34%, transparent), color-mix(in srgb, var(--accent) 16%, transparent));
  border-color: color-mix(in srgb, var(--accent) 60%, transparent);
}
.room-list-pet-control { display: grid; gap: 4px; align-content: end; }
.room-list-pet-control .pet-room-toggle { width: 100%; }
.room-list-pet-toggle.active {
  min-width: 112px;
  padding-inline: 10px;
  color: #fff;
  font-weight: 850;
  letter-spacing: .035em;
  background: linear-gradient(135deg, #ff4f9a, #c52cff 58%, #7148ff);
  border: 2px solid #ffb0dc;
  box-shadow: 0 0 0 3px color-mix(in srgb, #ff4f9a 22%, transparent), 0 0 18px color-mix(in srgb, #c52cff 48%, transparent);
  text-shadow: 0 1px 2px rgba(35, 8, 55, .75);
}
.room-list-pet-toggle.active:hover,
.room-list-pet-toggle.active:focus-visible { filter: saturate(1.18) brightness(1.08); }
.checkout-room-add-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(110px, .8fr) auto;
  gap: 6px;
  align-items: center;
  margin: 10px 0;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}
.room-list-body > .checkout-room-add-form { margin-top: 8px; }
.checkout-room-add-form :is(input, select, button) {
  min-width: 0;
  width: 100%;
  min-height: 36px;
  padding: 7px 9px;
  font-size: 13px;
  line-height: 1.25;
}
.checkout-room-add-form select { padding-right: 24px; }
.checkout-room-add-form :is(input, select) {
  border: 1px solid var(--border);
  border-radius: var(--radius-s, 8px);
  background: var(--surface);
  color: var(--text);
}
.checkout-room-add-form :is(input, select):focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.checkout-room-add-form button { white-space: nowrap; }
#remaining-checkouts-view .checkout-room-add-form .button { min-height: 36px; }
@media (max-width: 600px) {
  .checkout-room-add-form { grid-template-columns: minmax(0, 1fr) auto; }
  .checkout-room-add-form input { grid-column: 1 / -1; }
  .checkout-room-add-form :is(input, select) { font-size: 16px; }
}
/* SENT BACK button + badge (Stephanie, 2026-08-30). */
.room-card-actions .sent-back-button.active {
  background: linear-gradient(180deg, color-mix(in srgb, #ff2f3d 30%, transparent), color-mix(in srgb, #ff2f3d 14%, transparent));
  border-color: color-mix(in srgb, #ff2f3d 65%, transparent);
  color: #ff5a63;
}
.badge.sent-back-badge {
  color: #ff5a63;
  border-color: color-mix(in srgb, #ff2f3d 55%, transparent);
  background: color-mix(in srgb, #ff2f3d 10%, transparent);
}
/* Late/Callout tab: "Active now" chips (who is on the app, 2026-08-28). */
.late-active-list { display: flex; flex-wrap: wrap; gap: 8px; }
.late-active-chip {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 6px 12px; border: 1px solid var(--border); border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,0));
  font-size: 13px; color: var(--text);
}
.late-active-chip .signed-in-dot { margin-right: 0; }
.late-active-chip.inactive {
  color: #ef6b73;
  border-color: color-mix(in srgb, #ef6b73 52%, var(--border));
  background: color-mix(in srgb, #ef6b73 9%, var(--surface));
}
.late-time-select { font-variant-numeric: tabular-nums; }
/* Extra breathing room between the items-needed panels and the Checkouts
   Remaining card on the Still Needed tab (Stephanie, 2026-08-28). */
#needs-view .today-section { margin-top: 26px; }
.manager-room-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.fix-add-form { display: flex; gap: 8px; margin: 4px 0 6px; }
.need-add-form { display: flex; gap: 8px; margin: 6px 0 0; }
.room-fix-row td { padding: 4px 12px 10px; }
.assignment-table td.room-number, .source-table td.room-number { text-align:center; }
.maintenance-add-form select, .maintenance-add-form input,
.quick-add-form select, .quick-add-form input {
  padding: 8px 10px;
  border: 1px solid var(--well-border);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .22), rgba(0, 0, 0, 0) 55%),
    rgba(255, 255, 255, .024);
  color: var(--text);
  min-width: 0;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, .32), inset 0 -1px 0 rgba(255, 255, 255, .03);
  transition: border-color var(--motion) ease, box-shadow var(--motion) ease;
}
.maintenance-add-form select:focus, .maintenance-add-form input:focus,
.quick-add-form select:focus, .quick-add-form input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--ring), inset 0 1px 2px rgba(0, 0, 0, .3);
}
.task-controls select {
  padding: 5px 8px;
  font-size: 12px;
  min-height: 34px;
  border: 1px solid var(--well-border);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .22), rgba(0, 0, 0, 0) 55%),
    rgba(255, 255, 255, .024);
  color: var(--text);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, .32), inset 0 -1px 0 rgba(255, 255, 255, .03);
}
.task-controls select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--ring), inset 0 1px 2px rgba(0, 0, 0, .3);
}
/* manager-only control used across special panels */
.manager-sort, .assignee-select, .theme-select { border-radius: 8px; }

/* ---- Room List (manager) ---- */
.room-inspection-group, .room-list-group { border: 1px solid var(--room-section-border, var(--border-soft)); border-radius: var(--radius-m, 14px); padding: 12px; background: var(--room-section-wash, rgba(255,255,255,.025)); box-shadow: inset 0 1px 0 rgba(255,255,255,.06); }
.room-inspection-group + .room-inspection-group, .room-list-group + .room-list-group { margin-top: 14px; }
.room-section-checkout { --room-section-wash: rgba(77, 183, 255, .075); --room-section-border: rgba(77, 183, 255, .34); }
.room-section-pc { --room-section-wash: rgba(240, 167, 46, .09); --room-section-border: rgba(240, 167, 46, .42); }
.room-section-blocked { --room-section-wash: rgba(221, 81, 89, .075); --room-section-border: rgba(221, 81, 89, .34); }
.room-section-vacant { --room-section-wash: rgba(62, 207, 111, .075); --room-section-border: rgba(62, 207, 111, .34); }
.room-section-occupied { --room-section-wash: rgba(145, 102, 222, .075); --room-section-border: rgba(145, 102, 222, .34); }
.room-list-count { color: var(--muted, inherit); font-size: .85em; font-weight: 600; margin-left: 6px; }
.room-list { display: flex; flex-direction: column; gap: 10px; }
.room-list-row { border: 1px solid var(--ring, rgba(255,255,255,.12)); border-radius: var(--radius-m, 14px); overflow: visible; background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .018)), rgba(255, 255, 255, .035); }
.room-list-row.arrival-tier { border-color: color-mix(in srgb, var(--signal) 55%, transparent); background: linear-gradient(180deg, color-mix(in srgb, var(--signal) 30%, transparent), color-mix(in srgb, var(--signal) 8%, transparent)), rgba(255, 255, 255, .012); box-shadow: inset 3px 0 0 var(--signal); }
.room-list-row.early-tier { border-color: color-mix(in srgb, var(--signal) 45%, transparent); background: linear-gradient(180deg, color-mix(in srgb, var(--signal) 18%, transparent), color-mix(in srgb, var(--signal) 4%, transparent)), rgba(255, 255, 255, .012); box-shadow: inset 3px 0 0 var(--signal); }
.room-list-head { display: flex; align-items: center; gap: 10px; padding: 12px 14px; cursor: pointer; flex-wrap: wrap; user-select: none; }
.room-list-head:hover { background: color-mix(in srgb, var(--accent, #4fd8ff) 8%, transparent); border-radius: var(--radius-m, 14px); }
.room-list-head .room-number::before { display: none; }
.room-list-status-controls { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; white-space: nowrap; }
.room-list-status-controls .room-list-cat { font-size: 10px; line-height: 1.2; padding: 2px 7px; }
.room-list-chevron { display: inline-block; width: 12px; text-align: center; color: var(--muted, #9aa0b0); transition: transform .15s ease; font-size: 12px; }
.room-list-chevron.open { transform: rotate(90deg); }
.room-list-bed { color: var(--muted, #9aa0b0); font-size: 12px; min-width: 42px; }
.room-list-summary { margin-left: auto; font-size: 12px; white-space: nowrap; }
.room-list-floor-group + .room-list-floor-group { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border-soft); }
.room-list-floor-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 14px 6px; color: var(--text); font-size: 12px; }
.checkout-bed-summary { display: inline-flex; align-items: center; gap: 6px; }
.checkout-bed-count { display: inline-flex; align-items: center; min-height: 22px; padding: 3px 8px; border: 1px solid var(--border-soft); border-radius: 999px; font-size: 10px; font-weight: 760; letter-spacing: .02em; line-height: 1; }
.checkout-bed-count.bed-q { color: #56b8ff; background: rgba(86, 184, 255, .12); border-color: rgba(86, 184, 255, .55); }
.checkout-bed-count.bed-k { color: var(--green); background: color-mix(in srgb, var(--green) 12%, var(--panel)); border-color: color-mix(in srgb, var(--green) 34%, var(--border-soft)); }
.today-summary-bed-summary { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.today-summary-floor-bed { display: inline-flex; align-items: center; gap: 7px; }
.today-summary-floor-bed > strong { color: var(--secondary); font-size: 11px; }
.room-list-cat { display: inline-block; font-size: 11px; letter-spacing: .03em; padding: 3px 8px; border-radius: 20px; font-weight: 700; text-transform: uppercase; }
button.room-list-cat { appearance: none; border: 1px dashed var(--ring, rgba(255,255,255,.14)); font: inherit; cursor: pointer; }
button.room-list-cat:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
.room-list-cat.checkout { color: var(--signal); background: color-mix(in srgb, var(--signal) 18%, transparent); }
.room-list-cat.vacant { color: #b8f5c8; background: color-mix(in srgb, #3ecf6f 18%, transparent); }
.room-list-cat.occupied { color: var(--muted, #9aa0b0); background: color-mix(in srgb, #9aa0b0 14%, transparent); }
/* Plastic scoop tracking chips (Stephanie, 2026-08-31). */
.plastic-room-list { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 16px 16px; }
.plastic-room-chip {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 3em; padding: 8px 12px; border: 1px solid var(--border); border-radius: 12px;
  font-family: var(--mono, monospace); font-size: 14px; font-weight: 600;
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0));
}
/* Flat item rows on the Inventory / Deep Clean tabs (Stephanie, 2026-08-31). */
.flat-item-list { display: grid; gap: 8px; padding: 4px 16px 16px; }
.flat-item-row {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 9px 12px; border: 1px solid var(--border); border-radius: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,0));
}
.flat-item-row.done { opacity: .62; }
.flat-item-room { min-width: 2.6em; font-family: var(--mono, monospace); font-size: 14px; }
.flat-item-name { flex: 1 1 160px; min-width: 0; }
.flat-item-controls { display: flex; gap: 6px; }
@media (max-width: 700px) {
  .flat-item-row { grid-template-columns: none; }
  .flat-item-controls { margin-left: auto; }
  .room-list-open-items-head { align-items: stretch; }
  .room-list-open-quick-add { flex-basis: 100%; justify-content: stretch; }
  .room-list-open-quick-add select { flex: 0 0 96px; }
}
.room-list-cat.blocked { color: #ffb0b5; background: color-mix(in srgb, #dd5159 18%, transparent); }
.room-list-cat.pc { color: #ffd36b; background: color-mix(in srgb, #f0a72e 22%, transparent); border-color: color-mix(in srgb, #f0a72e 55%, transparent); }
.room-list-body { padding: 4px 14px 14px; display: grid; grid-template-columns: max-content max-content; gap: 12px; align-items: start; }
@media (max-width: 720px) { .room-list-body { grid-template-columns: 1fr; } }
.room-status-wrap { position: relative; display: inline-flex; align-items: center; gap: 6px; }
.room-status-toggle { cursor: pointer; white-space: nowrap; }
.room-status-menu { position: absolute; z-index: 9000; min-width: 212px; max-width: 88vw; padding: 6px; display: flex; flex-direction: column; gap: 3px; background: var(--panel, #14161c); border: 1px solid var(--ring, rgba(255,255,255,.14)); border-radius: var(--radius-m, 14px); box-shadow: 0 12px 32px rgba(0,0,0,.45); }
.room-status-menu-title { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted, #9aa0b0); padding: 4px 10px 6px; border-bottom: 1px solid var(--ring, rgba(255,255,255,.09)); margin-bottom: 4px; }
.room-status-option { text-align: left; font: inherit; color: var(--text); background: transparent; border: 0; border-radius: 10px; padding: 8px 10px; cursor: pointer; white-space: nowrap; }
.room-status-option:hover { background: color-mix(in srgb, var(--accent, #4fd8ff) 12%, transparent); }
.room-status-option.active { color: var(--accent, #4fd8ff); font-weight: 600; }
.room-status-option:disabled { opacity: .55; cursor: default; }
.room-status-menu-divider { height: 1px; margin: 4px 6px; background: var(--ring, rgba(255,255,255,.12)); }
.room-status-correction-trigger { text-align: left; font: inherit; color: var(--text); background: color-mix(in srgb, var(--accent, #4fd8ff) 9%, transparent); border: 1px solid color-mix(in srgb, var(--accent, #4fd8ff) 34%, transparent); border-radius: 10px; padding: 8px 10px; cursor: pointer; }
.room-status-correction-trigger:hover, .room-status-correction-trigger:focus-visible { background: color-mix(in srgb, var(--accent, #4fd8ff) 18%, transparent); }
.room-status-correction-dialog { width: min(560px, calc(100vw - 28px)); max-height: min(86dvh, 760px); overflow: auto; padding: 0; border: 1px solid var(--border); border-radius: 18px; color: var(--text); background: var(--surface, Canvas); box-shadow: 0 24px 80px rgba(0,0,0,.48); }
.room-status-correction-dialog::backdrop { background: rgba(4, 7, 12, .68); backdrop-filter: blur(3px); }
.room-status-correction-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 18px; border-bottom: 1px solid var(--border); }
.room-status-correction-head h3 { margin: 0; }
.room-status-correction-options, .room-status-correction-form { display: grid; gap: 10px; padding: 16px 18px 18px; }
.room-status-correction-choice { display: grid; gap: 4px; width: 100%; padding: 12px 14px; text-align: left; color: var(--text); background: var(--surface-raised, var(--surface)); border: 1px solid var(--border); border-radius: 12px; cursor: pointer; font: inherit; }
.room-status-correction-choice:hover, .room-status-correction-choice:focus-visible { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, var(--surface)); }
.room-status-correction-choice span { color: var(--muted); font-size: .86em; }
.room-status-correction-form label { display: grid; gap: 6px; color: var(--muted); font-size: .86em; font-weight: 650; }
.room-status-correction-form textarea { width: 100%; min-height: 74px; resize: vertical; }
.room-status-correction-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.room-status-correction-selected { margin: 0; color: var(--text); font-weight: 700; }
.room-status-correction-loading { padding: 24px; color: var(--muted); }
@media (max-width: 560px) { .room-status-correction-head { padding: 14px; } .room-status-correction-options, .room-status-correction-form { padding: 14px; } .room-status-correction-actions button { flex: 1 1 0; min-height: 44px; } }
@media (max-width: 720px) { .pest-control-room .room-status-wrap, .blocked-room .room-status-wrap { width: 100%; } .pest-control-room .room-status-toggle, .blocked-room .room-status-toggle { flex: 1; } }
.room-list-block { border: 1px dashed var(--ring, rgba(255,255,255,.14)); border-radius: var(--radius-m, 14px); padding: 8px 10px; display: block; width: 100%; min-width: 0; box-sizing: border-box; }
/* Compact inline sections used on room cards (deep-clean / inventory in the
   housekeeper + checkouts views): title → [items] → Add row, no empty box. */
.room-list-block.room-list-inline { margin-top: 8px; }
.room-list-block-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 4px; gap: 12px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.room-list-block-head strong { color: var(--muted, #9aa0b0); min-width: 0; }
.room-list-block-head .muted { text-transform: none; letter-spacing: 0; font-size: 11px; white-space: nowrap; }
.room-note-badges { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
.room-note-badge { display: inline-flex; align-items: center; max-width: 100%; padding: 4px 8px; border: 1px solid color-mix(in srgb, var(--accent) 48%, var(--border)); border-radius: 999px; background: color-mix(in srgb, var(--accent) 13%, var(--surface)); color: var(--text); font-size: 10px; font-weight: 800; line-height: 1.2; overflow-wrap: anywhere; }
.room-note-badge-field { display: grid; gap: 5px; margin: 7px 0; color: var(--muted); font-size: 11px; font-weight: 700; }
.room-note-badge-field input { width: 100%; min-width: 0; }
.room-note-badge-quick-panel .panel-head { align-items: center; }
.room-note-badge-dialog { width: min(720px, calc(100vw - 24px)); max-height: min(88vh, 760px); }
.room-note-badge-form { display: grid; gap: 14px; }
.room-note-badge-fields { display: grid; gap: 10px; }
.room-note-badge-fields label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 700; }
.room-note-badge-fields textarea, .room-note-badge-fields input { width: 100%; min-width: 0; }
.room-note-badge-select-head, .room-note-badge-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.room-note-badge-select-head span { display: flex; gap: 6px; }
.room-note-badge-rooms { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 6px; max-height: 34vh; overflow: auto; padding: 8px; border: 1px solid var(--border); border-radius: var(--radius-m, 10px); }
.room-note-badge-room { display: flex; align-items: center; gap: 6px; padding: 7px 8px; border: 1px solid var(--border-soft); border-radius: 8px; background: var(--surface); font-size: 12px; }
.room-note-badge-room input { accent-color: var(--accent); }
.room-list-items { display: flex; flex-direction: column; gap: 4px; margin: 0 0 6px; min-width: 0; }
.room-list-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 8px; border-radius: 10px; background: color-mix(in srgb, var(--panel, #14161c) 60%, transparent); min-width: 0; }
.room-list-item.done .room-list-item-name { text-decoration: line-through; color: var(--muted, #9aa0b0); }
.room-list-item-name { min-width: 0; flex: 1 1 auto; font-size: 13px; overflow-wrap: anywhere; }
.room-list-item-controls { display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex: 0 0 auto; }
.room-list-add-form { display: flex; gap: 8px; min-width: 0; }
.room-list-add-form input { min-width: 0; }
.room-list-open-items-head { align-items: center; }
.room-list-open-quick-add { flex: 1 1 420px; justify-content: flex-end; }
.room-list-open-quick-add select { flex: 0 0 110px; min-width: 0; }
.room-list-open-quick-add input { flex: 1 1 220px; }
.room-list-add-form input {
  flex: 1 1 140px;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--well-border);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .22), rgba(0, 0, 0, 0) 55%),
    rgba(255, 255, 255, .024);
  color: var(--text);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, .32), inset 0 -1px 0 rgba(255, 255, 255, .03);
  transition: border-color var(--motion) ease, box-shadow var(--motion) ease;
}
.room-list-add-form input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--ring), inset 0 1px 2px rgba(0, 0, 0, .3);
}
.room-item-delete { line-height: 1; }
/* ------------------------------------------------------------------ */
/* 31. TODAY CARD-HEADER QUICK-ADD BARS                               */
/* ------------------------------------------------------------------ */
/* Room selector + item box + Add sit in each card's panel head, under
   its title, and stay visible when the card is collapsed. */
#dashboard-view .panel-head.quick-head { flex-wrap: wrap; row-gap: 10px; }
.today-quick-form {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  /* Fixed width + right-align so every card's controls share one column:
     the room select starts at the same x on every card and the item input
     gets the same width everywhere (Stephanie 2026-08-22). */
  flex: 0 1 auto;
  width: min(100%, 460px);
  margin-left: auto;
  justify-content: flex-end;
}
.today-quick-form select { flex: 0 0 92px; width: auto; }
.today-quick-form input { flex: 1 1 160px; min-width: 0; }
/* Common-area quick-add: entry box + assignee select match the assignment
   dropdown's size (assignee-select: min-height 36px, 12px font, 125px width —
   Stephanie, 2026-08-30). */
.common-area-quick-form input,
.common-area-quick-form .assignee-select {
  min-height: 36px;
  padding: 5px 8px;
  font-size: 12px;
}
.common-area-quick-form .assignee-select { flex: 0 0 125px; min-width: 125px; border-radius: 8px; }
.today-quick-form button.button { white-space: nowrap; padding: 8px 12px; }
#dashboard-view .low-stock-items.todo-list { display: grid; padding: 0 14px 14px; }
#dashboard-view .low-stock-items .todo-item { padding: 9px 0; }
/* Keep manager actions in the same columns regardless of item-name length. */
#dashboard-view .low-stock-items .todo-item:has(.low-stock-ordered-button) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 7.5rem 10rem;
  align-items: center;
  gap: 10px;
}
#dashboard-view .low-stock-items .todo-text { overflow-wrap: anywhere; }
#dashboard-view .low-stock-items .todo-item:has(.low-stock-ordered-button) > .button {
  margin: 0;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  white-space: normal;
}
@media (max-width: 600px) {
  #dashboard-view .low-stock-items .todo-item:has(.low-stock-ordered-button) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #dashboard-view .low-stock-items .todo-item:has(.low-stock-ordered-button) > .todo-main {
    grid-column: 1 / -1;
  }
}

/* Room List manager editing: category + assignee controls (2026-08-23) */
.room-list-manager-actions { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding: 10px 0 12px; border-bottom: 1px solid var(--border, rgba(128,128,128,.25)); margin-bottom: 8px; }
.room-list-ctl-label { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted-foreground, inherit); }
.room-block-reason-form { flex: 1 1 100%; display: grid; gap: 6px; min-width: min(100%, 260px); }
.room-block-reason-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.room-block-reason-row input { flex: 1 1 auto; min-width: 0; }
.room-list-manager-actions select { padding: 4px 8px; border-radius: var(--radius-m, 8px); }
.room-list-occupied-note { font-size: 12px; }

/* ------------------------------------------------------------------ */
/* 23. PRINT — Today board, every card expanded (2026-08-24)           */
/* ------------------------------------------------------------------ */
@media print {
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html, body { background: #fff !important; color: #111 !important; }
  /* Picker-driven print run (2026-08-28): when a card-selection run is active,
     print ONLY #print-run-root — the styled checked cards — and nothing else
     of the app. */
  body.print-run-active #app-view,
  body.print-run-active #auth-view,
  body.print-run-active dialog,
  body.print-run-active #print-run-root ~ *:not(#print-run-root) { display: none !important; }
  body.print-run-active #print-run-root { display: block !important; }
  /* Kill app chrome so only the board prints. Hidden in print (not display, to
     keep the on-screen layout intact): sidebar, topbar, mobile nav, ambient
     backdrop, notifications, message strip, and the DRY/RUN/live mode banner. */
  .sidebar, .topbar, #mobile-nav-select, .ambient, .notification-button,
  #notification-panel, #global-message, #print-today, .mode-banner,
  .card-order-toolbar, .card-order-controls, .nav-reorder {
    display: none !important;
  }
  .workspace { margin-left: 0 !important; padding: 0; }
  /* Print the ACTIVE view only (the one the user is looking at) full-width. */
  .view { display: none !important; }
  .view:not([hidden]) { display: block !important; }

  /* Cards the user un-checked in the print picker are skipped on paper. */
  .print-hide { display: none !important; }

  /* Force every Today card to render expanded, overriding its .is-collapsed
     state, so the paper copy shows every panel / room card / employee card
     fully even when it is collapsed on screen. */
  #dashboard-view .today-card.is-collapsed { display: block !important; }
  #dashboard-view .today-card.is-collapsed.panel > :not(.panel-head),
  #dashboard-view .today-card.is-collapsed.room-card > :not(.room-card-head),
  #dashboard-view .today-card.is-collapsed.panel .panel-head .muted,
  #dashboard-view .today-card.is-collapsed.panel .panel-head-actions,
  #dashboard-view .today-card.is-collapsed.panel .panel-head > select,
  #dashboard-view .today-card.is-collapsed.panel .panel-head > .button,
  #dashboard-view .today-card.is-collapsed.room-card .room-card-head p,
  #dashboard-view .today-card.is-collapsed.room-card .room-card-head > :not(:first-child),
  #dashboard-view .today-card.is-collapsed.employee-bubble > div > span,
  #dashboard-view .today-card.is-collapsed.employee-bubble > .employee-message-button,
  #dashboard-view .today-card.is-collapsed.employee-bubble > .muted {
    display: initial !important;
  }
  /* Generic collapsible panels (other tabs) also print expanded. */
  .view :is(.panel, .room-card).is-collapsed > :not(.panel-head):not(.room-card-head),
  .view :is(.panel, .room-card).is-collapsed .panel-head .muted {
    display: initial !important;
  }

  /* Interactive controls are meaningless on paper — hide them so the printout
     reads as a report, not a living UI. Keep the summary metrics (they carry
     the day's real counts) and the data lists. */
  form, input, select, textarea,
  .button, .todo-done-button, .fix-done-button, .need-done-button,
  .employee-message-button, .approve-late-out-note, .approval-actions,
  .clear-assignments-button, .today-quick-form, .quick-add-form,
  .need-add-form, .summary-actions, .sort-select, .manager-sort,
  .today-checkout-sort-all, .today-checkout-floor-sort {
    display: none !important;
  }

  /* Report-friendly rhythm: cards keep a light panel instead of a heavy
     card look, room lists break across pages cleanly. */
  .panel, .room-card { break-inside: avoid; }
  h3, h2 { break-after: avoid; }
}

/* ----- Print picker dialog + icon button (2026-08-26) ----- */
.print-button svg { display: block; }
.print-select-dialog { width: min(520px, calc(100vw - 28px)); }
.print-card-list {
  display: grid;
  gap: 4px;
  margin: 14px 0;
  max-height: min(50vh, 420px);
  overflow: auto;
  padding-right: 2px;
}
.print-card-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0));
  cursor: pointer;
  transition: border-color var(--motion) ease, background var(--motion) ease;
}
.print-card-row:hover { border-color: color-mix(in srgb, var(--accent) 45%, transparent); }
.print-card-row input { accent-color: var(--accent); min-height: 18px; min-width: 18px; flex: 0 0 auto; }
.print-card-row span { font-size: 13px; color: var(--text); }
/* Item-count chip on the right of each print-picker row (2026-08-28). */
.print-card-row .print-card-count {
  margin-left: auto;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  background: var(--accent-soft);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 2px 9px;
  flex: 0 0 auto;
}
.print-select-actions { display: flex; justify-content: flex-end; gap: 8px; }

/* ----- Print preview dialog (2026-08-27) — embedded, popup-blocker-proof ----- */
.print-preview-dialog {
  width: min(920px, calc(100vw - 24px));
  height: min(86vh, 900px);
  max-height: calc(100vh - 24px);
  padding: 14px 16px;
  /* display:flex ONLY while open — without [open] this overrides the
     browser's closed-dialog display:none and the empty dialog renders as a
     large dark box with a light border on every page (Stephanie,
     2026-08-27: "large black boxes with white outline on the housekeeper
     view on each tab"). */
}
.print-preview-dialog[open] {
  display: flex;
  flex-direction: column;
}
.print-preview-dialog .print-preview-frame {
  flex: 1;
  width: 100%;
  margin-top: 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
}

/* ----- Productivity tab ----- */
#productivity-view .productivity-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
#productivity-view .productivity-hours-total { display: grid; grid-template-columns: auto auto auto auto; align-items: baseline; justify-content: end; column-gap: 8px; line-height: 1.1; text-align: right; }
#productivity-view .productivity-hours-total span { color: var(--secondary); font-size: 11px; font-weight: 650; letter-spacing: .035em; text-transform: uppercase; }
#productivity-view .productivity-hours-total strong { color: var(--accent); font-family: "Space Mono", monospace; font-size: 18px; font-variant-numeric: tabular-nums; }
#productivity-view .productivity-hours-total small { grid-column: 1 / -1; color: var(--secondary); font-size: 10px; }
#productivity-view .productivity-hours-total .productivity-hours-goal { margin-top: 4px; font-size: 11px; font-weight: 700; }
#productivity-view .productivity-hours-goal.is-met { color: var(--success, #2fbf71); }
#productivity-view .productivity-hours-goal.is-over { color: var(--danger, #e05252); }
#productivity-view .productivity-day-actions { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 12px 8px; }
#productivity-view .productivity-team-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 0 12px 8px; padding: 7px 9px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); font-size: 12px; }
.productivity-summary-card { margin-top: 12px; }
#today-productivity-summary .today-card.is-collapsed .productivity-hours-total { display: none; }
.productivity-summary-card .panel-head { gap: 10px; }
.productivity-summary-card .productivity-hours-total { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: flex-end; gap: 3px 7px; text-align: right; font-size: 11px; }
.productivity-summary-card .productivity-hours-total strong { font-size: 16px; }
.productivity-summary-card .productivity-hours-total small { flex-basis: 100%; color: var(--secondary); }
.productivity-summary-list { display: grid; gap: 0; padding: 0 12px 4px; }
.productivity-summary-row { display: grid; grid-template-columns: minmax(120px, 1fr) auto auto auto; align-items: center; gap: 6px; padding: 6px 0; border-top: 1px solid var(--border-soft); font-size: 12px; }
.productivity-summary-row span { color: var(--secondary); white-space: nowrap; }
.productivity-summary-row b { color: var(--accent); white-space: nowrap; }
#productivity-view .productivity-team-chip, .productivity-team-badge { display: inline-flex; align-items: center; width: max-content; max-width: 100%; border: 1px solid color-mix(in srgb, var(--accent) 50%, var(--border)); border-radius: 999px; background: color-mix(in srgb, var(--accent) 12%, var(--surface)); color: var(--text); padding: 3px 8px; font-size: 11px; line-height: 1.3; }
#productivity-view .productivity-team-badge { display: flex; margin-top: 5px; white-space: normal; }
.productivity-team-list, .productivity-team-choices { display: grid; gap: 8px; }
.productivity-team-row, .productivity-team-choice { display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); padding: 9px 10px; }
.productivity-team-choice { justify-content: flex-start; cursor: pointer; }
.productivity-team-choice > span { display: grid; gap: 2px; }
.productivity-team-choice small { color: var(--secondary); }
.productivity-team-choice.is-used { opacity: .62; cursor: default; }
.productivity-team-empty { padding: 10px; }
.productivity-team-choices + .prod-team-add { margin-top: 10px; }
#productivity-view .history-picker { display: flex; align-items: center; gap: 8px; }
#productivity-view .history-date-picker { background: var(--panel); color: var(--text); border: 1px solid var(--border); border-radius: 10px; padding: 6px 10px; }
#productivity-view .table-wrap { overflow-x: auto; }
#productivity-view .productivity-table { width: 100%; border-collapse: collapse; font-size: 14px; }
#productivity-view .productivity-table th { text-align: left; font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: var(--secondary); padding: 6px 8px; border-bottom: 1px solid var(--border); white-space: nowrap; }
#productivity-view .productivity-table td { padding: 7px 8px; border-bottom: 1px solid var(--border); vertical-align: middle; }
#productivity-view .productivity-table .prod-num { text-align: center; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--text); }
#productivity-view .productivity-table .prod-name { font-weight: 600; white-space: nowrap; color: var(--text); }
#productivity-view .productivity-table .prod-role { font-weight: 400; text-transform: capitalize; color: var(--secondary); }
#productivity-view .productivity-table tr.leader td { background: color-mix(in srgb, var(--accent) 10%, transparent); }
#productivity-view .productivity-table tr.leader .prod-name strong { color: var(--accent); }
/* Keep names readable while the remaining productivity columns scroll. */
#productivity-view .productivity-table th:first-child,
#productivity-view .productivity-table td.prod-name {
  position: sticky;
  left: 0;
  z-index: 1;
  background: var(--panel);
  box-shadow: 1px 0 0 var(--border);
}
#productivity-view .productivity-table tr.leader td.prod-name {
  background: color-mix(in srgb, var(--accent) 10%, var(--panel));
}
#productivity-view .prod-hours-entry { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
#productivity-view .prod-hours-entry input[type="time"] { background: var(--panel); color: var(--text); border: 1px solid var(--border); border-radius: 7px; padding: 3px 5px; width: 88px; font-family: "Space Mono", monospace; font-size: 12px; }
#productivity-view .prod-hours-entry .prod-hours-save { white-space: nowrap; }
#productivity-view .prod-hours-preview { color: var(--secondary); }
#productivity-view .prod-bulk-shifts { display: grid; gap: 8px; max-height: min(55vh, 520px); overflow: auto; padding: 2px; }
#productivity-view .prod-bulk-shift-row { display: grid; grid-template-columns: minmax(130px, 1fr) auto auto auto; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--border); }
#productivity-view .prod-bulk-shift-row input[type="time"] { background: var(--panel); color: var(--text); border: 1px solid var(--border); border-radius: 8px; padding: 4px 6px; width: 96px; font-family: "Space Mono", monospace; font-size: 13px; }
@media (max-width: 640px) {
  #productivity-view .prod-bulk-shift-row { grid-template-columns: minmax(100px, 1fr) auto auto auto; gap: 5px; }
  #productivity-view .prod-bulk-shift-row input[type="time"] { width: 82px; }
}
#productivity-view .prod-score-of { color: var(--secondary); }
#productivity-view .prod-score-stats small { color: var(--secondary); }
#productivity-view .prod-score-reasons li { color: var(--secondary); }
#productivity-view .prod-score-card { background: var(--surface); }
#productivity-view .prod-score-card.leader { background: var(--surface-2); }
#productivity-view .laundry-total { color: var(--accent); }
#productivity-view .laundry-add { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
#productivity-view .laundry-add select, #productivity-view .laundry-add input { background: var(--panel); color: var(--text); border: 1px solid var(--border); border-radius: 10px; padding: 8px 10px; }
#productivity-view .laundry-add input { flex: 1 1 160px; }
#productivity-view .laundry-by-person { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 10px; font-size: 13px; }
#productivity-view .laundry-load-row { display: flex; align-items: center; gap: 10px; padding: 8px 4px; border-bottom: 1px solid var(--border); }
#productivity-view .laundry-load-row:last-child { border-bottom: none; }
#productivity-view .laundry-load-who { min-width: 90px; font-weight: 600; }
#productivity-view .laundry-load-note { flex: 1 1 auto; color: var(--text); }
#productivity-view .laundry-load-time { font-size: 11px; white-space: nowrap; }
#productivity-view .laundry-load-del { color: var(--danger, #ff6b6b); }
@media (max-width: 700px) {
  #productivity-view .panel-head:has(.productivity-hours-total) { align-items: flex-start; }
  #productivity-view .productivity-hours-total { grid-template-columns: auto auto; column-gap: 6px; }
  #productivity-view .productivity-hours-total span { max-width: 90px; }
  #productivity-view .productivity-day-actions .button { flex: 1 1 145px; }
  #productivity-view .productivity-table th, #productivity-view .productivity-table td { padding: 8px 6px; font-size: 12px; }
  #productivity-view .prod-hours-entry input[type="time"] { width: 82px; }
}

/* Explicit card-order editor */
.card-order-toolbar {
  position: relative;
  margin-top: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: color-mix(in srgb, var(--panel) 92%, var(--accent) 8%);
  box-shadow: var(--lit-edge), 0 14px 30px -24px rgba(0, 0, 0, .7);
}
.card-order-toolbar > div:first-child { display: grid; gap: 2px; min-width: 0; }
.card-order-toolbar strong { font-size: 13px; color: var(--text); }
.card-order-toolbar span { font-size: 11px; color: var(--muted); }
.card-order-toolbar.is-editing { border-color: color-mix(in srgb, var(--accent) 65%, var(--border)); }
.card-order-toolbar.is-idle { padding: 7px; }
.card-order-toolbar.is-idle > .button { width: 100%; }
.card-order-toolbar-actions { display: flex; align-items: center; gap: 7px; flex: 0 0 auto; }
:is(.panel, .card-layout-unit).card-order-item { outline: 2px solid color-mix(in srgb, var(--accent) 55%, transparent); outline-offset: 2px; }
:is(.panel, .card-layout-unit).card-order-item .panel-head { cursor: grab !important; }
.card-order-controls { display: inline-flex; align-items: center; gap: 5px; margin-left: auto; flex: 0 0 auto; }
.card-order-move {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid color-mix(in srgb, var(--accent) 55%, var(--border));
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
  font-size: 18px;
  font-weight: 800;
  cursor: pointer;
}
.card-order-move:disabled { opacity: .3; cursor: default; }
body.card-drag-active { user-select: none; -webkit-user-select: none; overflow-anchor: none; }
body.card-drag-active .panel-head { cursor: grabbing; }
:is(.panel, .card-layout-unit).card-dragging { opacity: 0.55; outline: 2px dashed var(--accent); outline-offset: 3px; }
:is(.panel, .card-layout-unit).card-dragging .panel-head { cursor: grabbing; }
.panel .panel-head { touch-action: pan-y; }
.nav-item.drop-target { outline: 2px dashed var(--accent); outline-offset: 2px; background: var(--accent-soft); }
@media (max-width: 700px) {
  .card-order-toolbar { align-items: stretch; flex-direction: column; padding: 9px 10px; }
  .card-order-toolbar > .button, .card-order-toolbar-actions { width: 100%; }
  .card-order-toolbar-actions .button { flex: 1 1 0; }
  .card-order-controls { width: 100%; justify-content: flex-end; }
  .mobile-nav-sheet-reorder { flex-wrap: wrap; }
  .manager-morning-approval-pair { gap: 10px; }
  .today-calendar-upload { grid-template-columns: minmax(0, 1fr) auto; }
  .today-calendar-file-picker { white-space: nowrap; }
}

/* Productivity Edit Activity dialog (2026-08-29) */
.prod-edit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.prod-edit-field { display: grid; gap: 4px; font-size: 13px; }
.prod-edit-field span { color: var(--muted); font-size: 12px; }
.prod-edit-field input { width: 100%; }
.prod-hours-preview { font-weight: 600; min-width: 34px; display: inline-block; text-align: right; }

/* Log-a-load builder (2026-08-29): one form, one load, many items */
.linen-load-form { width: 100%; min-width: 0; box-sizing: border-box; }
.linen-load-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px 14px; min-width: 0; }
.linen-load-row { display: grid; grid-template-columns: minmax(0, 1fr) 76px; align-items: center; gap: 10px; min-width: 0; }
.linen-load-item { min-width: 0; font-size: 13px; color: var(--text); overflow-wrap: anywhere; }
.linen-load-qty { width: 76px; min-width: 76px; height: 40px; box-sizing: border-box; text-align: center; }
.linen-load-actions { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 12px; }
.linen-load-total { font-weight: 600; }
@media (max-width: 700px) {
  .linen-load-grid { grid-template-columns: minmax(0, 1fr); }
  .linen-load-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .linen-load-actions .button { min-width: 112px; }
}

/* Productivity score cards (2026-08-29) */
/* Leave a deliberate visual break before the Housekeepers table below. */
#productivity-view .prod-scores-panel { margin-bottom: 32px; }
/* Card ordering can lift these panels out of .productivity-grid. Keep the
   Housekeepers and daily scores cards visually separate in either layout. */
#productivity-view .productivity-housekeepers-panel + .prod-scores-panel {
  margin-top: 28px;
}
.prod-scores-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.prod-score-card { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; background: var(--card); }
.prod-score-card.leader { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.prod-score-head { display: flex; align-items: center; gap: 10px; margin-bottom: 7px; }
.prod-score-ring { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 54px; height: 54px; border-radius: 50%; border: 3px solid var(--accent); flex-shrink: 0; }
.prod-score-num { font-size: 22px; font-weight: 700; line-height: 1; }
.prod-score-of { font-size: 10px; color: var(--muted-foreground); }
.prod-score-who { display: flex; flex-direction: column; gap: 2px; }
.prod-score-stats { display: flex; gap: 10px; margin-top: 4px; }
.prod-score-stats span { display: inline-flex; align-items: baseline; gap: 4px; }
.prod-score-stats strong { color: var(--text); font-size: 16px; font-variant-numeric: tabular-nums; }
.prod-score-stats small { color: var(--muted); font-size: 10px; white-space: nowrap; }
.prod-score-label { font-size: 12px; font-weight: 600; color: var(--accent); text-transform: uppercase; letter-spacing: 0.4px; }
.prod-score-reasons { margin: 0; padding-left: 16px; display: grid; gap: 3px; }
.prod-score-reasons li { font-size: 12px; color: var(--muted-foreground); line-height: 1.35; }
.prod-score-card.tier-outstanding .prod-score-ring { border-color: #2fbf71; }
.prod-score-card.tier-outstanding .prod-score-label { color: #2fbf71; }
.prod-score-card.tier-attention .prod-score-ring { border-color: #e05252; }
.prod-score-card.tier-attention .prod-score-label { color: #e05252; }
@media (max-width: 700px) { .prod-scores-grid { grid-template-columns: 1fr; } }

/* Repeating room-list items (2026-08-30): frequency select on add forms +
   badge on repeating rows (Stephanie: WiFi extender check, deep clean too). */
.room-list-repeat-select {
  max-width: 9.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-m, 10px);
  background: var(--card);
  color: var(--foreground);
  padding: 0.35rem 0.5rem;
  font: inherit;
  font-size: 0.85rem;
}
.repeat-badge {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 0.05rem 0.45rem;
  border-radius: 999px;
  border: 1px solid var(--accent);
  color: var(--accent);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
  vertical-align: middle;
}

/* Assignments tab (2026-08-30): expandable per-housekeeper cards */
.assignments-staff-group-heading { margin: 14px 0 8px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.assignments-staff-group-heading:first-child { margin-top: 0; }
.assignments-card .panel-head.assignments-head { cursor: pointer; user-select: none; }
.assignments-card .assignment-finish-times { display: block; padding-top: 4px; font-size: .9em; line-height: 1.4; white-space: normal; }
.assignments-card .assignments-body { padding: 0 16px 16px; display: grid; gap: 14px; }
.assignments-card .checkout-add-chevron { transition: transform 0.15s ease; }
.assignments-card .checkout-add-chevron.open { transform: rotate(90deg); }
.assignments-card h3 { margin: 0; }
.assignments-card h4 { margin: 0 0 8px; }

/* Learn from these card (2026-08-30): completed fixes on the viewer's rooms */
.learn-fix-list { display: grid; gap: 6px; }
.learn-fix-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; padding: 7px 10px; border: 1px solid var(--border-soft); border-radius: 10px; }
.learn-fix-room { font: 700 13px "Space Mono", ui-monospace, monospace; }
.learn-fix-item { flex: 1 1 auto; }
.learn-fix-by { font-size: 12px; }

/* My Rooms & Tasks: make assigned work impossible to miss above room cards. */
.my-tasks-block,
.my-common-area-tasks {
  margin: 0 16px 18px;
  padding: 14px;
  border: 2px solid color-mix(in srgb, var(--accent) 72%, var(--border));
  border-radius: var(--radius-m);
  background: color-mix(in srgb, var(--accent) 12%, var(--surface));
  box-shadow: 0 0 0 4px var(--accent-soft), var(--shadow-1);
}
.my-tasks-block.has-tasks,
.my-common-area-tasks.has-tasks {
  border-color: var(--amber);
  background: color-mix(in srgb, var(--amber) 15%, var(--surface));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--amber) 18%, transparent), var(--shadow-1);
}
.my-common-area-tasks .panel-head { padding: 0 0 12px; }
.my-common-area-tasks .panel-head h3 { margin: 0 0 3px; font-size: 19px; }
/* Today already supplies its card gutters; retain the My Rooms inset. */
#dashboard-view .my-common-area-tasks { margin-inline: 0; }
.my-tasks-block .my-tasks-head { padding: 0 0 12px; }
.my-tasks-head h4 { margin: 0 0 3px; font-size: 19px; }
.my-tasks-head .room-list-count { margin-left: 8px; }
.my-tasks-eyebrow { margin: 0 0 4px; color: var(--accent-ink); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.my-tasks-block.has-tasks .my-tasks-eyebrow,
.my-common-area-tasks.has-tasks .my-tasks-eyebrow { color: var(--amber); }
.my-tasks-block .task-row,
.my-common-area-tasks .task-row { border-color: color-mix(in srgb, var(--amber) 45%, var(--border)); background: color-mix(in srgb, var(--panel) 88%, transparent); }

.common-area-reminder-dialog {
  width: min(430px, calc(100vw - 28px));
  padding: 0;
  border: 1px solid var(--accent);
  border-radius: 16px;
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .48), 0 0 0 4px var(--accent-soft);
}
.common-area-reminder-dialog::backdrop { background: rgba(3, 7, 12, .68); backdrop-filter: blur(3px); }
.common-area-reminder-copy { display: grid; gap: 10px; padding: 22px; }
.common-area-reminder-copy .eyebrow,
.common-area-reminder-copy h3,
.common-area-reminder-copy p { margin: 0; }
.common-area-reminder-copy h3 { font-size: 22px; }
.common-area-reminder-copy p:not(.eyebrow) { color: var(--muted); line-height: 1.45; }
.common-area-reminder-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-top: 6px; }

@media (max-width: 680px) {
  .my-tasks-block,
  .my-common-area-tasks { margin: 0 10px 14px; padding: 12px; }
  .my-tasks-head h4 { font-size: 17px; }
  .my-common-area-tasks .panel-head h3 { font-size: 17px; }
}

/* Lost & Found (2026-08-30): quick add + manager tab */
.lost-found-form { display: flex; flex-wrap: wrap; gap: 8px; }
.lost-found-form select, .lost-found-form input { border: 1px solid var(--border); border-radius: var(--radius-m, 10px); background: var(--card); color: var(--foreground); padding: 0.45rem 0.6rem; font: inherit; font-size: 0.9rem; }
.lost-found-form input { flex: 1 1 220px; }
.lost-found-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 14px; padding: 10px 12px; border: 1px solid var(--border-soft); border-radius: 10px; }
.lost-found-main { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; flex: 1 1 auto; min-width: 0; }
/* Stephanie (2026-09-05): "found by NAME" + date stacked vertically, right-aligned. */
.lost-found-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; text-align: right; flex: 0 0 auto; margin-left: auto; }
.lost-found-by { font-size: 0.85rem; }
.lost-found-date { font-size: 0.8rem; }
.lost-found-room { font: 700 14px "Space Mono", ui-monospace, monospace; }
.lost-found-controls { display: flex; flex-wrap: wrap; gap: 6px; }
.lost-found-photo-slot { display: flex; align-items: center; justify-content: center; flex: 0 0 56px; width: 56px; }

.lost-found-form .lf-photo-input {
  /* Visually hidden, NOT display:none — display:none can stop the file
     chooser opening on some browsers (the "photo button does nothing" bug,
     Stephanie 2026-08-30). Stays in the layout at 1px so the label always
     triggers it. */
  position: absolute;
  width: 1px; height: 1px;
  opacity: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  pointer-events: none;
}
.lost-found-form .lf-photo-label { cursor: pointer; display: inline-flex; align-items: center; }
.lost-found-form .lf-photo-preview { max-height: 64px; border-radius: 8px; border: 1px solid var(--border-soft); }
.lost-found-photo { width: 56px; height: 56px; object-fit: cover; border-radius: 8px; border: 1px solid var(--border-soft); flex: 0 0 auto; }
.evidence-photo-button { display: inline-grid; min-width: 0; padding: 0; border: 0; border-radius: 9px; background: transparent; color: inherit; cursor: zoom-in; font: inherit; }
.evidence-photo-frame { position: relative; display: inline-grid; min-width: 0; overflow: hidden; border-radius: 8px; }
.evidence-photo-frame img { display: block; }
.evidence-photo-stamp { position: absolute; right: 0; bottom: 0; left: 0; padding: 2px 3px; overflow: hidden; background: rgba(0, 0, 0, .72); color: #fff; font: 700 6px/1.15 ui-monospace, SFMono-Regular, Menlo, monospace; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.evidence-photo-button:focus-visible { outline: 3px solid var(--ring); outline-offset: 2px; }
.manager-verification-photo { width: 48px; height: 48px; object-fit: cover; border: 1px solid var(--border-soft); border-radius: 8px; }
.evidence-photo-dialog { width: min(92vw, 980px); max-width: 980px; max-height: 92vh; padding: 10px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); color: var(--text); box-shadow: 0 26px 80px rgba(0, 0, 0, .48); }
.evidence-photo-dialog::backdrop { background: rgba(4, 7, 12, .78); backdrop-filter: blur(3px); }
.evidence-photo-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 2px 2px 10px; color: var(--muted); font-size: 12px; }
.evidence-photo-dialog > img { display: block; width: 100%; max-height: calc(92vh - 64px); border-radius: 10px; object-fit: contain; background: #090909; }

/* Lost & Found is a quick action on Today, so keep its phone layout calm:
   room + description get their own full-width rows, then the two main actions
   share a comfortable tap row instead of squeezing beside the description. */
@media (max-width: 700px) {
  .lost-found-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
  }
  .lost-found-form select,
  .lost-found-form input[name="item"] {
    width: 100%;
    min-width: 0;
    grid-column: 1 / -1;
  }
  .lost-found-form .lf-photo-label,
  .lost-found-form > button[type="submit"] {
    width: 100%;
    min-height: 44px;
    justify-content: center;
    box-sizing: border-box;
  }
  .lost-found-form .lf-photo-preview {
    max-width: 100%;
    max-height: 44px;
    object-fit: contain;
    justify-self: start;
  }
  .lost-found-form .lf-photo-cancel {
    min-height: 44px;
    width: 100%;
  }
  .lost-found-row {
    align-items: start;
    gap: 8px;
  }
  .lost-found-main {
    min-width: 0;
    overflow-wrap: anywhere;
  }
  .lost-found-meta {
    align-items: flex-end;
  }
  .lost-found-controls {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
  .lost-found-controls .button {
    width: 100%;
    min-height: 40px;
  }
}

/* Final light-mode contrast pass. These rules intentionally live after the
   restored component rules below so translucent dark-console highlights and
   pale status text cannot override the daylight palette. */
html[data-mode="light"] {
  --pink: #a21876;
  --purple: #6440a6;
  --amber: #855700;
  --sheet-ink: #2f496b;
}
html[data-mode="light"] .room-card,
html[data-mode="light"] .room-list-row,
html[data-mode="light"] .flat-item-row,
html[data-mode="light"] .plastic-room-chip {
  background: var(--surface);
}
html[data-mode="light"] .room-card.finished,
html[data-mode="light"] .room-card.finished.arrival-tier,
html[data-mode="light"] .room-card.finished.early-tier {
  background: color-mix(in srgb, var(--green) 9%, var(--surface));
  border-color: color-mix(in srgb, var(--green) 48%, var(--border));
}
html[data-mode="light"] .badge.early-badge,
html[data-mode="light"] #dashboard-view .badge.early-badge {
  color: #9b176f;
  border-color: color-mix(in srgb, #9b176f 55%, transparent);
  background: color-mix(in srgb, #9b176f 12%, transparent);
  text-shadow: none;
}
html[data-mode="light"] .status-badge.knock {
  color: #704700;
  border-color: color-mix(in srgb, #855700 48%, transparent);
}
html[data-mode="light"] .status-badge.late-checkout {
  color: #a5222e;
  border-color: color-mix(in srgb, #a5222e 55%, transparent);
  background: color-mix(in srgb, #a5222e 10%, transparent);
  text-shadow: none;
}
html[data-mode="light"] .room-list-cat.vacant { color: #176b3b; }
html[data-mode="light"] .room-list-cat.blocked { color: #a5222e; }
html[data-mode="light"] .room-list-cat.pc { color: #8a5600; }
html[data-mode="light"] .button,
html[data-mode="light"] .late-active-chip {
  border-color: var(--border);
  color: var(--text);
}
html[data-mode="light"] #mobile-nav-sheet {
  background: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(247, 249, 252, .98));
  border-color: color-mix(in srgb, var(--accent) 48%, var(--border));
  box-shadow: 0 18px 50px rgba(16, 31, 51, .24), inset 0 1px 0 rgba(255, 255, 255, .95);
}
html[data-mode="light"] .mobile-nav-sheet-head strong,
html[data-mode="light"] .mobile-nav-sheet-reorder span {
  color: var(--secondary);
}
html[data-mode="light"] .mobile-nav-sheet-item {
  background: rgba(16, 31, 51, .035);
  border-color: var(--border);
  color: var(--sheet-ink);
  font-weight: 620;
  text-shadow: 0 1px 1px rgba(255, 255, 255, .55);
}
html[data-mode="light"] .mobile-nav-sheet-item:hover {
  background: rgba(16, 31, 51, .075);
}
html[data-mode="light"] .mobile-nav-sheet-item.active {
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 22%, #fff), color-mix(in srgb, var(--accent) 10%, #fff));
  border-color: color-mix(in srgb, var(--accent) 58%, var(--border));
  color: var(--sheet-ink);
  font-weight: 700;
  text-shadow: 0 1px 1px rgba(255, 255, 255, .7);
}
html[data-mode="light"] .mobile-nav-sheet-item.signout { color: var(--sheet-ink); }
html[data-mode="light"] #mobile-nav-sheet .button {
  color: var(--sheet-ink);
}
html[data-mode="light"] #mobile-nav-sheet .button:hover {
  color: #3f4d63;
}
html[data-mode="light"] #mobile-nav-backdrop { background: rgba(16, 31, 51, .22); }

/* Manager verification: recurring checkout checks stay noticeable while
   following the selected theme (including custom colors). */
.manager-recurring-checks {
  margin: 10px 0;
  padding: 10px 12px;
  border: 2px solid var(--accent);
  border-radius: 10px;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 27%, transparent), color-mix(in srgb, var(--accent) 12%, transparent)),
    var(--surface);
  color: var(--text);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent), 0 6px 18px color-mix(in srgb, var(--accent) 24%, transparent), inset 0 1px 0 rgba(255, 255, 255, .12);
}
.manager-recurring-checks .needs-heading {
  color: var(--accent-ink);
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.checkout-open-items {
  margin: 10px 0;
  padding: 9px 11px;
  border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--border));
  border-radius: 10px;
  background: color-mix(in srgb, var(--accent-soft) 62%, var(--surface));
}
.checkout-open-items .needs-heading { color: var(--accent-ink); font-weight: 800; letter-spacing: .02em; text-transform: uppercase; }
.checkout-open-items ul { display: grid; gap: 5px; margin: 6px 0 0; padding: 0; list-style: none; }
.checkout-open-items li { display: flex; align-items: baseline; gap: 8px; min-width: 0; color: var(--text); font-size: 13px; }
.checkout-open-item-kind { flex: 0 0 auto; color: var(--muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.checkout-open-item-controls { margin-left: auto; flex: 0 0 auto; }
.checkout-completed-heading { margin-top: 10px; }
.checkout-completed-item { color: var(--muted) !important; text-decoration: line-through; text-decoration-thickness: 1px; }
.manager-recurring-check-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, 42%);
  align-items: center;
  gap: 10px;
  padding: 7px 0 0;
  font-weight: 700;
}
.manager-recurring-check-row > span { min-width: 0; }
.manager-check-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.manager-photo-meta {
  font-size: 11px;
  font-weight: 700;
  opacity: .82;
}
.manager-check-copy > span { min-width: 0; overflow-wrap: anywhere; line-height: 1.25; }
.manager-check-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  min-width: 0;
}
.manager-photo-button { cursor: pointer; min-width: 42px !important; padding: 6px 10px !important; text-align: center; }
.manager-check-photo { display: none; }
.manager-recurring-check-row .button {
  flex: 0 1 auto;
  white-space: normal;
  min-width: 118px;
  max-width: 100%;
  padding: 6px 9px;
  border-color: color-mix(in srgb, var(--accent) 72%, #000000);
  background: var(--accent);
  color: var(--on-accent);
  font-size: 11px;
  line-height: 1.2;
  font-weight: 800;
}
.manager-recurring-check-row .button:hover {
  background: var(--accent-hover);
  color: var(--on-accent);
}
.manager-recurring-check-row .button:disabled { opacity: .65; }
@media (max-width: 980px) {
  .manager-recurring-check-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
  }
  .manager-check-actions { justify-content: flex-start; }
}
@media (max-width: 560px) {
  .manager-recurring-check-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .manager-check-actions { display: flex; flex-wrap: nowrap; }
  .manager-recurring-check-row .manager-check-item { width: auto; flex: 1 1 118px; }
}

/* PC mode: keep verification controls compact so the room card stays scannable. */
@media (min-width: 981px) {
  .manager-recurring-checks {
    margin: 8px 0;
    padding: 9px 10px;
  }
  .manager-recurring-check-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    padding-top: 6px;
  }
  .manager-recurring-checks .button {
    width: auto;
  }
  .manager-check-actions {
    flex-wrap: nowrap;
    gap: 5px;
  }
  .manager-recurring-check-row .button {
    min-width: 0;
  }
  .manager-recurring-checks .manager-photo-button,
  .manager-recurring-checks .manager-check-item[data-checked="1"] {
    width: 32px;
    min-width: 32px;
    height: 26px;
    padding: 4px 5px !important;
    font-size: 12px;
    line-height: 1;
  }
  .manager-recurring-checks .manager-check-item[data-checked="1"] {
    overflow: hidden;
    white-space: nowrap;
  }
}

/* Shared card finish — carry the housekeeper card's boutique treatment across
   every role and every card-like surface. Existing status-specific rules remain
   more specific, so Finished/Arrival/Early colors keep their meaning. */
:is(.panel, .metric, .room-card, .employee-bubble, .prod-score-card, .note) {
  isolation: isolate;
  border-color: color-mix(in srgb, var(--accent) 24%, var(--border));
  background:
    radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 32%),
    linear-gradient(145deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent 48%),
    linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .012));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .08),
    0 16px 34px -26px color-mix(in srgb, var(--accent) 42%, #000);
}
:is(.panel, .metric, .room-card, .employee-bubble, .prod-score-card, .note)::before {
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 72%, #fff), transparent);
  box-shadow: 0 0 13px color-mix(in srgb, var(--accent) 42%, transparent);
  opacity: .78;
}
@media (hover: hover) {
  :is(.panel, .metric, .room-card, .employee-bubble, .prod-score-card, .note):hover {
    border-color: color-mix(in srgb, var(--accent) 58%, var(--border));
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, .11),
      0 20px 40px -24px color-mix(in srgb, var(--accent) 66%, #000);
  }
  :is(.metric, .room-card, .employee-bubble, .prod-score-card):hover {
    transform: translateY(-2px);
  }
}
@media (prefers-reduced-motion: reduce) {
  :is(.panel, .metric, .room-card, .employee-bubble, .prod-score-card, .note) { transition: none; }
}

/* Palm Court needs its own daylight register. The generic light-mode block is
   intentionally neutral for the older themes; this restores the mockup's
   teal, coral, cream, and offset-card language when Palm Court is selected. */
html[data-mode="light"][data-theme="palm"] {
  --bg: #f1dfcb;
  --panel: #fffaf1;
  --surface: #fffdf8;
  --surface-2: #dcebe0;
  --border: #d7c4ad;
  --border-soft: #e7d8c4;
  --text: #253f3a;
  --secondary: #41645b;
  --muted: #6a7b72;
  --faint: #87958e;
  --accent: #1d6258;
  --accent-hover: #28796d;
  --accent-soft: rgba(29, 98, 88, .12);
  --accent-soft-2: rgba(29, 98, 88, .2);
  --accent-ink: #1d6258;
  --on-accent: #fff8ea;
  --ring: rgba(29, 98, 88, .28);
  --glow: rgba(242, 170, 119, .16);
  --lit-edge: inset 0 1px 0 rgba(255, 255, 255, .85);
}
html[data-mode="light"][data-theme="palm"] body { background: var(--bg); color: var(--text); }
html[data-mode="light"][data-theme="palm"] .sidebar {
  background: #1d6258;
  color: #fff8ea;
  border-color: #1d6258;
}
html[data-mode="light"][data-theme="palm"] .sidebar .brand,
html[data-mode="light"][data-theme="palm"] .sidebar .user-chip strong { color: #fff8ea; }
html[data-mode="light"][data-theme="palm"] .sidebar .user-chip span,
html[data-mode="light"][data-theme="palm"] .sidebar-foot .muted,
html[data-mode="light"][data-theme="palm"] .nav-reorder-hint { color: #c5e2d8; }
html[data-mode="light"][data-theme="palm"] .nav-item { color: #c5e2d8; }
html[data-mode="light"][data-theme="palm"] .nav-item.active { background: #f6d9ba; color: #1d6258; }
html[data-mode="light"][data-theme="palm"] .workspace { background: #fffaf1; }
html[data-mode="light"][data-theme="palm"] .topbar {
  background: linear-gradient(180deg, #fffaf1, #f7ead9);
  border-color: #d7c4ad;
}
html[data-mode="light"][data-theme="palm"] .panel,
html[data-mode="light"][data-theme="palm"] .metric,
html[data-mode="light"][data-theme="palm"] .room-card,
html[data-mode="light"][data-theme="palm"] .employee-bubble,
html[data-mode="light"][data-theme="palm"] .prod-score-card {
  background: #fffdf8;
  border-color: #d7c4ad;
  box-shadow: 4px 5px 0 rgba(202, 164, 122, .15), var(--lit-edge);
}
html[data-mode="light"][data-theme="palm"] .metric:nth-child(2) { background: #dcebe0; }
html[data-mode="light"][data-theme="palm"] .room-card { border-radius: 22px 8px 22px 8px; }
html[data-mode="light"][data-theme="palm"] .room-card:hover,
html[data-mode="light"][data-theme="palm"] .metric:hover,
html[data-mode="light"][data-theme="palm"] .employee-bubble:hover {
  transform: translateY(-3px);
  box-shadow: 7px 9px 0 rgba(202, 164, 122, .2), 0 0 0 1px rgba(29, 98, 88, .22);
}
html[data-mode="light"][data-theme="palm"] .button.primary { background: #1d6258; color: #fff8ea; }
html[data-mode="light"][data-theme="palm"] .room-card-actions .button.warning,
html[data-mode="light"][data-theme="palm"] .room-card-actions .button:first-child { background: #f7d8bb; color: #88563a; border-color: #e6b38e; }
html[data-mode="light"][data-theme="palm"] .room-card-actions .button { border-color: #d7c4ad; color: #41645b; }

/* Curated daylight registers for every selectable theme. The shared rules below
   keep accessibility and interaction behavior consistent while each palette
   supplies its own identity. */
html[data-mode="light"][data-theme="atelier"] { --bg:#eee5d4; --panel:#f8f1e4; --surface:#fffaf0; --surface-2:#dcebe3; --accent:#247266; --accent-hover:#338c7d; --text:#173d36; --secondary:#42645b; --muted:#657b73; --border:#d4c3a9; --border-soft:#e4d8c4; --accent-soft:rgba(36,114,102,.12); --ring:rgba(36,114,102,.28); }
html[data-mode="light"][data-theme="command"] { --bg:#e7eef0; --panel:#f7fbfb; --surface:#fff; --surface-2:#d6e7e7; --accent:#087b68; --accent-hover:#0a9b82; --text:#12272a; --secondary:#3d5d60; --muted:#61777a; --border:#b9d0d0; --border-soft:#d5e3e3; --accent-soft:rgba(8,123,104,.11); --ring:rgba(8,123,104,.28); }
html[data-mode="light"][data-theme="floorplan"] { --bg:#e7edf5; --panel:#f8fbff; --surface:#fff; --surface-2:#dbe6f3; --accent:#d85d4b; --accent-hover:#ed735f; --text:#18314e; --secondary:#48627e; --muted:#647a93; --border:#c2d2e4; --border-soft:#d9e4f0; --accent-soft:rgba(216,93,75,.12); --ring:rgba(216,93,75,.28); }
html[data-mode="light"][data-theme="deco"] { --bg:#eadfe1; --panel:#fbf3e7; --surface:#fffaf1; --surface-2:#ead2b6; --accent:#936d2d; --accent-hover:#b18a45; --text:#32232a; --secondary:#67515a; --muted:#7c6970; --border:#d6b98e; --border-soft:#e6d5c0; --accent-soft:rgba(147,109,45,.12); --ring:rgba(147,109,45,.28); }
html[data-mode="light"][data-theme="ledger"] { --bg:#e8e2d3; --panel:#faf5e8; --surface:#fffaf0; --surface-2:#eadfc7; --accent:#a7463c; --accent-hover:#c15d4f; --text:#3b3029; --secondary:#66554a; --muted:#7d6e61; --border:#d3c1a1; --border-soft:#e2d5bd; --accent-soft:rgba(167,70,60,.12); --ring:rgba(167,70,60,.28); }
html[data-mode="light"][data-theme="riviera"] { --bg:#dcece9; --panel:#f7faf0; --surface:#fffdf5; --surface-2:#cfe3dd; --accent:#d56858; --accent-hover:#e58370; --text:#174943; --secondary:#4c7069; --muted:#66817a; --border:#b9d3ca; --border-soft:#d0e2da; --accent-soft:rgba(213,104,88,.12); --ring:rgba(213,104,88,.28); }
html[data-mode="light"][data-theme="veranda"] { --bg:#e7ead8; --panel:#fbf6e9; --surface:#fffdf5; --surface-2:#d9e5d2; --accent:#92702e; --accent-hover:#b08d43; --text:#29453d; --secondary:#5c7165; --muted:#718278; --border:#d2c69f; --border-soft:#e2dcc1; --accent-soft:rgba(146,112,46,.12); --ring:rgba(146,112,46,.28); }
html[data-mode="light"][data-theme="lounge"] { --bg:#e1e5ee; --panel:#f7f4ed; --surface:#fffdf7; --surface-2:#d9dfeb; --accent:#985047; --accent-hover:#b56b5e; --text:#26344d; --secondary:#5b6579; --muted:#737d90; --border:#c2cbdc; --border-soft:#d9dfeb; --accent-soft:rgba(152,80,71,.12); --ring:rgba(152,80,71,.28); }
html[data-mode="light"][data-theme="noir"] { --bg:#dedddd; --panel:#f6f2e9; --surface:#fffdf7; --surface-2:#e8d9c4; --accent:#896624; --accent-hover:#a7833e; --text:#201c1d; --secondary:#5c5047; --muted:#726960; --border:#cbb895; --border-soft:#ddd2bd; --accent-soft:rgba(137,102,36,.12); --ring:rgba(137,102,36,.28); }
html[data-mode="light"][data-theme="continental"] { --bg:#e4e1df; --panel:#f7f0e6; --surface:#fffaf1; --surface-2:#eadbd0; --accent:#7f3c49; --accent-hover:#9d5663; --text:#2d292c; --secondary:#665b59; --muted:#79706d; --border:#d1b9a9; --border-soft:#e1d1c5; --accent-soft:rgba(127,60,73,.12); --ring:rgba(127,60,73,.28); }
html[data-mode="light"][data-theme="concierge"] { --bg:#dfe5ee; --panel:#f5f2e9; --surface:#fffdf7; --surface-2:#d5e0ec; --accent:#9a7336; --accent-hover:#b18f55; --text:#223148; --secondary:#5b6573; --muted:#707b8b; --border:#bdc9d7; --border-soft:#d7e0ea; --accent-soft:rgba(154,115,54,.12); --ring:rgba(154,115,54,.28); }
html[data-mode="light"][data-theme="future"] { --bg:#e2f1f5; --panel:#f5fcff; --surface:#fff; --surface-2:#d2edf3; --accent:#087d9c; --accent-hover:#0b9dbd; --text:#102b3a; --secondary:#426573; --muted:#617d88; --border:#afd3dc; --border-soft:#d1e7eb; --accent-soft:rgba(8,125,156,.12); --ring:rgba(8,125,156,.3); }
html[data-mode="light"][data-theme="cyberpunk"] { --bg:#f0dfee; --panel:#fff4fb; --surface:#fffaff; --surface-2:#f3d1e8; --accent:#b20d82; --accent-hover:#d51aa0; --text:#35103b; --secondary:#704c78; --muted:#866b8d; --border:#dfb4d3; --border-soft:#efd3e5; --accent-soft:rgba(178,13,130,.12); --ring:rgba(178,13,130,.3); }
html[data-mode="light"][data-theme="anime"] { --bg:#e6eafb; --panel:#f8f6ff; --surface:#fff; --surface-2:#dce9fa; --accent:#d44783; --accent-hover:#e86a9d; --text:#202d56; --secondary:#53658d; --muted:#7080a3; --border:#bdcae5; --border-soft:#dbe3f2; --accent-soft:rgba(212,71,131,.12); --ring:rgba(212,71,131,.3); }

html[data-mode="light"][data-theme="atelier"] .sidebar, html[data-mode="light"][data-theme="palm"] .sidebar, html[data-mode="light"][data-theme="riviera"] .sidebar, html[data-mode="light"][data-theme="veranda"] .sidebar { background:var(--accent); color:#fff8ea; border-color:var(--accent); }
html[data-mode="light"][data-theme="command"] .sidebar, html[data-mode="light"][data-theme="future"] .sidebar { background:#123b4a; color:#effcff; border-color:#123b4a; }
html[data-mode="light"][data-theme="deco"] .sidebar, html[data-mode="light"][data-theme="ledger"] .sidebar, html[data-mode="light"][data-theme="noir"] .sidebar, html[data-mode="light"][data-theme="continental"] .sidebar, html[data-mode="light"][data-theme="concierge"] .sidebar { background:#3b2930; color:#fff6e9; border-color:#3b2930; }
html[data-mode="light"][data-theme="floorplan"] .sidebar, html[data-mode="light"][data-theme="lounge"] .sidebar, html[data-mode="light"][data-theme="anime"] .sidebar { background:#263b62; color:#f5f8ff; border-color:#263b62; }
html[data-mode="light"][data-theme="cyberpunk"] .sidebar { background:#3a0c45; color:#fff3ff; border-color:#3a0c45; }
html[data-mode="light"][data-theme="atelier"] .sidebar .brand, html[data-mode="light"][data-theme="palm"] .sidebar .brand, html[data-mode="light"][data-theme="riviera"] .sidebar .brand, html[data-mode="light"][data-theme="veranda"] .sidebar .brand, html[data-mode="light"][data-theme="command"] .sidebar .brand, html[data-mode="light"][data-theme="future"] .sidebar .brand, html[data-mode="light"][data-theme="deco"] .sidebar .brand, html[data-mode="light"][data-theme="ledger"] .sidebar .brand, html[data-mode="light"][data-theme="noir"] .sidebar .brand, html[data-mode="light"][data-theme="continental"] .sidebar .brand, html[data-mode="light"][data-theme="concierge"] .sidebar .brand, html[data-mode="light"][data-theme="floorplan"] .sidebar .brand, html[data-mode="light"][data-theme="lounge"] .sidebar .brand, html[data-mode="light"][data-theme="anime"] .sidebar .brand, html[data-mode="light"][data-theme="cyberpunk"] .sidebar .brand { color:inherit; }
html[data-mode="light"]:is([data-theme="atelier"],[data-theme="palm"],[data-theme="riviera"],[data-theme="veranda"],[data-theme="floorplan"],[data-theme="command"],[data-theme="deco"],[data-theme="ledger"],[data-theme="lounge"],[data-theme="noir"],[data-theme="continental"],[data-theme="concierge"],[data-theme="future"],[data-theme="cyberpunk"],[data-theme="anime"]) .nav-item { color:color-mix(in srgb, currentColor 72%, transparent); }
html[data-mode="light"]:is([data-theme="atelier"],[data-theme="palm"],[data-theme="riviera"],[data-theme="veranda"],[data-theme="floorplan"],[data-theme="command"],[data-theme="deco"],[data-theme="ledger"],[data-theme="lounge"],[data-theme="noir"],[data-theme="continental"],[data-theme="concierge"],[data-theme="future"],[data-theme="cyberpunk"],[data-theme="anime"]) .nav-item.active { background:color-mix(in srgb, var(--accent) 18%, #fff); color:var(--accent); }
html[data-mode="light"]:is([data-theme="atelier"],[data-theme="palm"],[data-theme="riviera"],[data-theme="veranda"],[data-theme="floorplan"],[data-theme="command"],[data-theme="deco"],[data-theme="ledger"],[data-theme="lounge"],[data-theme="noir"],[data-theme="continental"],[data-theme="concierge"],[data-theme="future"],[data-theme="cyberpunk"],[data-theme="anime"]) .workspace { background:var(--bg); }
html[data-mode="light"]:is([data-theme="atelier"],[data-theme="palm"],[data-theme="riviera"],[data-theme="veranda"],[data-theme="floorplan"],[data-theme="command"],[data-theme="deco"],[data-theme="ledger"],[data-theme="lounge"],[data-theme="noir"],[data-theme="continental"],[data-theme="concierge"],[data-theme="future"],[data-theme="cyberpunk"],[data-theme="anime"]) .topbar { background:linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--panel) 78%,var(--bg))); border-color:var(--border); }
html[data-mode="light"]:is([data-theme="atelier"],[data-theme="palm"],[data-theme="riviera"],[data-theme="veranda"],[data-theme="floorplan"],[data-theme="command"],[data-theme="deco"],[data-theme="ledger"],[data-theme="lounge"],[data-theme="noir"],[data-theme="continental"],[data-theme="concierge"],[data-theme="future"],[data-theme="cyberpunk"],[data-theme="anime"]) :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.note) { background:var(--surface); border-color:var(--border); box-shadow:4px 5px 0 color-mix(in srgb,var(--accent) 12%,transparent),var(--lit-edge); }
html[data-mode="light"]:is([data-theme="atelier"],[data-theme="palm"],[data-theme="riviera"],[data-theme="veranda"],[data-theme="floorplan"],[data-theme="command"],[data-theme="deco"],[data-theme="ledger"],[data-theme="lounge"],[data-theme="noir"],[data-theme="continental"],[data-theme="concierge"],[data-theme="future"],[data-theme="cyberpunk"],[data-theme="anime"]) :is(.room-card,.metric,.employee-bubble,.prod-score-card) { transition:transform var(--motion) ease,box-shadow var(--motion) ease,border-color var(--motion) ease; }
html[data-mode="light"]:is([data-theme="atelier"],[data-theme="palm"],[data-theme="riviera"],[data-theme="veranda"],[data-theme="floorplan"],[data-theme="command"],[data-theme="deco"],[data-theme="ledger"],[data-theme="lounge"],[data-theme="noir"],[data-theme="continental"],[data-theme="concierge"],[data-theme="future"],[data-theme="cyberpunk"],[data-theme="anime"]) :is(.room-card,.metric,.employee-bubble,.prod-score-card):hover { transform:translateY(-3px); }

/* New silhouettes: forward-looking but still operationally calm. */
html[data-theme="future"] :is(.panel,.metric,.room-card) { border-radius:10px 22px 10px 22px; }
html[data-theme="cyberpunk"] :is(.panel,.metric,.room-card) { border-radius:2px; }
html[data-theme="anime"] :is(.panel,.metric,.room-card) { border-radius:22px 8px 22px 8px; }

/* Daylight tokens for the original named themes, too. */
html[data-mode="light"][data-theme="teal"] { --bg:#e0eee9; --panel:#f7fbf8; --surface:#fff; --surface-2:#d2e5dd; --accent:#1d6c5d; --accent-hover:#2a8875; --text:#173a35; --secondary:#486a62; --muted:#687e77; --border:#b9d4ca; --border-soft:#d5e5de; }
html[data-mode="light"][data-theme="midnight"] { --bg:#e5e7ee; --panel:#f7f8fc; --surface:#fff; --surface-2:#dce0ed; --accent:#4f59b0; --accent-hover:#6974ca; --text:#202640; --secondary:#58627c; --muted:#707a94; --border:#c3cae0; --border-soft:#dde1ee; }
html[data-mode="light"][data-theme="forest"] { --bg:#e3ecdf; --panel:#f7fbf4; --surface:#fff; --surface-2:#d4e5d0; --accent:#2c7046; --accent-hover:#3d8b59; --text:#1e3a29; --secondary:#52705b; --muted:#718576; --border:#bfd5bf; --border-soft:#d9e6d6; }
html[data-mode="light"][data-theme="royal"] { --bg:#e9e5f3; --panel:#f9f7fd; --surface:#fff; --surface-2:#dfd8ef; --accent:#6549a6; --accent-hover:#7d61c0; --text:#2e2449; --secondary:#635879; --muted:#7b7290; --border:#cfc4e5; --border-soft:#e2dcef; }
html[data-mode="light"][data-theme="rose"] { --bg:#f2e4ea; --panel:#fff8fb; --surface:#fff; --surface-2:#eed6e0; --accent:#b04b76; --accent-hover:#c8648c; --text:#482638; --secondary:#755467; --muted:#886f7d; --border:#dfbdcc; --border-soft:#eed9e2; }
html[data-mode="light"][data-theme="gold"] { --bg:#f0e8d6; --panel:#fcf8ee; --surface:#fffdf7; --surface-2:#eadcbc; --accent:#997024; --accent-hover:#b28c43; --text:#3d3322; --secondary:#6e614a; --muted:#817764; --border:#d9c49a; --border-soft:#e8dcc2; }
html[data-mode="light"][data-theme="ocean"] { --bg:#deedf5; --panel:#f6fbfe; --surface:#fff; --surface-2:#d2e6f1; --accent:#1b6d9b; --accent-hover:#2a88bb; --text:#183448; --secondary:#4e6b7e; --muted:#6d8493; --border:#b7d3e2; --border-soft:#d5e5ed; }
html[data-mode="light"][data-theme="coral"] { --bg:#f5e2da; --panel:#fff8f4; --surface:#fff; --surface-2:#f1d5ca; --accent:#c65e48; --accent-hover:#dc765d; --text:#492c27; --secondary:#795a52; --muted:#8d7068; --border:#e2bcae; --border-soft:#efd9d1; }
html[data-mode="light"][data-theme="lavender"] { --bg:#eee8f7; --panel:#fbf9ff; --surface:#fff; --surface-2:#e3daf2; --accent:#7656a8; --accent-hover:#9070c1; --text:#33264b; --secondary:#675a7d; --muted:#7c7191; --border:#d2c4e6; --border-soft:#e5dcef; }
html[data-mode="light"][data-theme="ember"] { --bg:#f4e4d5; --panel:#fff8f0; --surface:#fff; --surface-2:#f0d7c1; --accent:#b9561f; --accent-hover:#d16f34; --text:#452b1e; --secondary:#765a48; --muted:#8b7160; --border:#e2bca0; --border-soft:#efdacf; }
html[data-mode="light"]:is([data-theme="teal"],[data-theme="midnight"],[data-theme="forest"],[data-theme="royal"],[data-theme="rose"],[data-theme="gold"],[data-theme="ocean"],[data-theme="coral"],[data-theme="lavender"],[data-theme="ember"]) .sidebar { background:var(--accent); color:#fff; border-color:var(--accent); }
html[data-mode="light"]:is([data-theme="teal"],[data-theme="midnight"],[data-theme="forest"],[data-theme="royal"],[data-theme="rose"],[data-theme="gold"],[data-theme="ocean"],[data-theme="coral"],[data-theme="lavender"],[data-theme="ember"]) .workspace { background:var(--bg); }
html[data-mode="light"]:is([data-theme="teal"],[data-theme="midnight"],[data-theme="forest"],[data-theme="royal"],[data-theme="rose"],[data-theme="gold"],[data-theme="ocean"],[data-theme="coral"],[data-theme="lavender"],[data-theme="ember"]) .topbar { background:var(--panel); border-color:var(--border); }
html[data-mode="light"]:is([data-theme="teal"],[data-theme="midnight"],[data-theme="forest"],[data-theme="royal"],[data-theme="rose"],[data-theme="gold"],[data-theme="ocean"],[data-theme="coral"],[data-theme="lavender"],[data-theme="ember"]) :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.note) { background:var(--surface); border-color:var(--border); }

/* Six original studio themes: distinct visual systems, not palette swaps. */
html[data-theme="observatory"] { --bg:#241719; --panel:#332021; --surface:#45282a; --surface-2:#633738; --accent:#e58b63; --accent-hover:#f2ad82; --muted:#d4aaa0; --faint:#9d7771; --glow:rgba(229,139,99,.2); --accent-soft:rgba(229,139,99,.14); --accent-ink:#ffd0b4; --ring:rgba(229,139,99,.4); --text:#fff0df; --secondary:#edd2c1; }
html[data-theme="moss"] { --bg:#101b18; --panel:#172821; --surface:#20392d; --surface-2:#315241; --accent:#b8c96b; --accent-hover:#d5df8a; --muted:#b1c3a7; --faint:#728c79; --glow:rgba(184,201,107,.18); --accent-soft:rgba(184,201,107,.13); --accent-ink:#e9f0b1; --ring:rgba(184,201,107,.4); --text:#eff5df; --secondary:#d1ddc1; }
html[data-theme="lantern"] { --bg:#24130f; --panel:#3b1f15; --surface:#512819; --surface-2:#71391e; --accent:#f0b44d; --accent-hover:#ffd06f; --muted:#e1b99a; --faint:#a57759; --glow:rgba(240,180,77,.22); --accent-soft:rgba(240,180,77,.15); --accent-ink:#ffe2a1; --ring:rgba(240,180,77,.42); --text:#fff2d8; --secondary:#f0d0ab; }
html[data-theme="mineral"] { --bg:#111b24; --panel:#182833; --surface:#213743; --surface-2:#355563; --accent:#8fd6cf; --accent-hover:#b3ebe1; --muted:#a4c4c7; --faint:#6f929a; --glow:rgba(143,214,207,.18); --accent-soft:rgba(143,214,207,.13); --accent-ink:#c9fff6; --ring:rgba(143,214,207,.4); --text:#edf9f7; --secondary:#c8dcdf; }
html[data-theme="arcade"] { --bg:#1a1022; --panel:#261633; --surface:#351d44; --surface-2:#51275d; --accent:#f06cae; --accent-hover:#ff9ccb; --muted:#d0afd2; --faint:#94709d; --glow:rgba(53,221,190,.2); --accent-soft:rgba(240,108,174,.14); --accent-ink:#ffc5df; --ring:rgba(240,108,174,.42); --text:#fff1fb; --secondary:#ead0e9; }
html[data-theme="solar"] { --bg:#17130e; --panel:#282018; --surface:#392c1c; --surface-2:#554026; --accent:#f2c45e; --accent-hover:#ffdc82; --muted:#cfbd93; --faint:#998665; --glow:rgba(242,196,94,.2); --accent-soft:rgba(242,196,94,.14); --accent-ink:#ffe7a8; --ring:rgba(242,196,94,.4); --text:#fff5da; --secondary:#e9d5a5; }
html[data-theme="observatory"] :is(.panel,.metric,.room-card) { border-radius:18px 4px 18px 4px; }
html[data-theme="moss"] :is(.panel,.metric,.room-card) { border-radius:10px 24px 10px 24px; }
html[data-theme="lantern"] :is(.panel,.metric,.room-card) { border-radius:28px 6px 28px 6px; }
html[data-theme="mineral"] :is(.panel,.metric,.room-card) { border-radius:5px 18px 5px 18px; }
html[data-theme="arcade"] :is(.panel,.metric,.room-card) { border-radius:14px; }
html[data-theme="solar"] :is(.panel,.metric,.room-card) { border-radius:3px 16px 3px 16px; }
html[data-mode="light"][data-theme="observatory"] { --bg:#f2dfd4; --panel:#fff4eb; --surface:#fffaf4; --surface-2:#f0cbbb; --accent:#b6533f; --accent-hover:#ce6e56; --text:#402525; --secondary:#765656; --muted:#8a6b68; --border:#dfb9aa; --border-soft:#efd8ce; }
html[data-mode="light"][data-theme="moss"] { --bg:#e5eadc; --panel:#f6faf0; --surface:#fcfff7; --surface-2:#d5e1c5; --accent:#5d7636; --accent-hover:#78964b; --text:#263b29; --secondary:#58705b; --muted:#718273; --border:#c2d2b1; --border-soft:#dbe6d1; }
html[data-mode="light"][data-theme="lantern"] { --bg:#f4e2c7; --panel:#fff7e8; --surface:#fffaf0; --surface-2:#f4d09b; --accent:#a45b1d; --accent-hover:#bf762e; --text:#482b18; --secondary:#765337; --muted:#8d7156; --border:#dfbd8f; --border-soft:#efdbbd; }
html[data-mode="light"][data-theme="mineral"] { --bg:#dfecef; --panel:#f5fbfa; --surface:#fbffff; --surface-2:#cee3e4; --accent:#277c7b; --accent-hover:#389995; --text:#1e3d45; --secondary:#4d6f75; --muted:#6e8589; --border:#b5d2d4; --border-soft:#d6e7e8; }
html[data-mode="light"][data-theme="arcade"] { --bg:#eee0f0; --panel:#fff5fd; --surface:#fffaff; --surface-2:#e8cbe2; --accent:#ad397e; --accent-hover:#c95698; --text:#3d2146; --secondary:#735579; --muted:#896f8d; --border:#d9b5d2; --border-soft:#eed9e9; }
html[data-mode="light"][data-theme="solar"] { --bg:#f2e8d2; --panel:#fff9e9; --surface:#fffdf5; --surface-2:#ead6a5; --accent:#9b681c; --accent-hover:#b9852f; --text:#40301c; --secondary:#6e5b3d; --muted:#83755e; --border:#d8c18e; --border-soft:#eadcbb; }
html[data-mode="light"]:is([data-theme="observatory"],[data-theme="moss"],[data-theme="lantern"],[data-theme="mineral"],[data-theme="arcade"],[data-theme="solar"]) .sidebar { background:var(--accent); color:#fffdf5; border-color:var(--accent); }
html[data-mode="light"]:is([data-theme="observatory"],[data-theme="moss"],[data-theme="lantern"],[data-theme="mineral"],[data-theme="arcade"],[data-theme="solar"]) .workspace { background:var(--bg); }
html[data-mode="light"]:is([data-theme="observatory"],[data-theme="moss"],[data-theme="lantern"],[data-theme="mineral"],[data-theme="arcade"],[data-theme="solar"]) .topbar { background:var(--panel); border-color:var(--border); }
html[data-mode="light"]:is([data-theme="observatory"],[data-theme="moss"],[data-theme="lantern"],[data-theme="mineral"],[data-theme="arcade"],[data-theme="solar"]) :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.note) { background:var(--surface); border-color:var(--border); }

/* New theme surfaces: each has its own shell treatment, not only new tokens. */
html[data-theme="bauhaus"] .sidebar { background:#101216; border-right:2px solid var(--accent); }
html[data-theme="bauhaus"] .nav-item.active { background:#315bd6; color:#fff; border-radius:0; }
html[data-theme="bauhaus"] .topbar { border-bottom:2px solid var(--accent); }
html[data-theme="bauhaus"] .button.primary { background:#315bd6; border-color:#315bd6; }
html[data-theme="terracotta"] .sidebar { background:#2a1915; }
html[data-theme="terracotta"] .nav-item.active { background:rgba(228,137,92,.2); color:var(--accent); border-radius:14px 4px 14px 4px; }
html[data-theme="terracotta"] .topbar { background:linear-gradient(180deg, rgba(228,137,92,.12), transparent); }
html[data-theme="alpine"] .sidebar { background:#0c151c; border-right:1px solid rgba(167,228,232,.35); }
html[data-theme="alpine"] .nav-item.active { background:rgba(167,228,232,.16); color:var(--accent); border-radius:18px; }
html[data-theme="alpine"] .topbar { background:linear-gradient(180deg, rgba(167,228,232,.11), transparent); }
html[data-mode="light"]:is([data-theme="bauhaus"],[data-theme="terracotta"],[data-theme="alpine"]) .sidebar { background:var(--accent); color:var(--on-accent); border-color:var(--accent); }
html[data-mode="light"][data-theme="bauhaus"] .sidebar { background:#20242a; color:#fffdf7; }
html[data-mode="light"][data-theme="bauhaus"] .nav-item.active { background:#e2c542; color:#20242a; }
html[data-mode="light"][data-theme="bauhaus"] .workspace { background:var(--bg); }
html[data-mode="light"][data-theme="terracotta"] .sidebar { background:#8e432d; color:#fff7ef; }
html[data-mode="light"][data-theme="terracotta"] .nav-item.active { background:#f0c3a2; color:#6e3424; }
html[data-mode="light"][data-theme="alpine"] .sidebar { background:#287d88; color:#f5ffff; }
html[data-mode="light"][data-theme="alpine"] .nav-item.active { background:#d7eef0; color:#1b5964; }
html[data-mode="light"]:is([data-theme="bauhaus"],[data-theme="terracotta"],[data-theme="alpine"]) .workspace { background:var(--bg); }
html[data-mode="light"]:is([data-theme="bauhaus"],[data-theme="terracotta"],[data-theme="alpine"]) .topbar { background:var(--panel); border-color:var(--border); }
html[data-mode="light"]:is([data-theme="bauhaus"],[data-theme="terracotta"],[data-theme="alpine"]) :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.note) { background:var(--surface); border-color:var(--border); box-shadow:4px 5px 0 color-mix(in srgb,var(--accent) 12%,transparent),var(--lit-edge); }
html[data-mode="light"][data-theme="bauhaus"] :is(.panel,.metric,.room-card) { border-radius:2px; border-width:2px; box-shadow:5px 5px 0 rgba(32,36,42,.16),var(--lit-edge); }
html[data-mode="light"][data-theme="terracotta"] :is(.panel,.metric,.room-card) { border-radius:4px 18px 4px 18px; }
html[data-mode="light"][data-theme="alpine"] :is(.panel,.metric,.room-card) { border-radius:18px; box-shadow:0 10px 28px rgba(40,79,88,.14),var(--lit-edge); }

/* Greeting typography follows the selected theme instead of using one global
   display face. The message remains the same accessible text and markup. */
html[data-theme="atelier"] .housekeeper-greeting,
html[data-theme="palm"] .housekeeper-greeting,
html[data-theme="deco"] .housekeeper-greeting,
html[data-theme="ledger"] .housekeeper-greeting,
html[data-theme="veranda"] .housekeeper-greeting,
html[data-theme="lounge"] .housekeeper-greeting,
html[data-theme="noir"] .housekeeper-greeting,
html[data-theme="continental"] .housekeeper-greeting,
html[data-theme="concierge"] .housekeeper-greeting { font-family:"Sentient", Georgia, serif; }
html[data-theme="atelier"] .housekeeper-greeting em,
html[data-theme="palm"] .housekeeper-greeting em,
html[data-theme="deco"] .housekeeper-greeting em,
html[data-theme="ledger"] .housekeeper-greeting em,
html[data-theme="veranda"] .housekeeper-greeting em,
html[data-theme="lounge"] .housekeeper-greeting em,
html[data-theme="noir"] .housekeeper-greeting em,
html[data-theme="continental"] .housekeeper-greeting em,
html[data-theme="concierge"] .housekeeper-greeting em { font-family:"Sentient", Georgia, serif; }
html[data-theme="command"] .housekeeper-greeting,
html[data-theme="future"] .housekeeper-greeting { font-family:"Space Grotesk", Inter, sans-serif; font-weight:600; letter-spacing:.01em; }
html[data-theme="command"] .housekeeper-greeting em,
html[data-theme="future"] .housekeeper-greeting em { font-family:"Space Mono", ui-monospace, monospace; font-style:normal; font-size:.92em; letter-spacing:-.04em; }
html[data-theme="cyberpunk"] .housekeeper-greeting { font-family:"Space Mono", ui-monospace, monospace; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
html[data-theme="cyberpunk"] .housekeeper-greeting em { font-family:"Space Grotesk", Inter, sans-serif; font-style:normal; font-weight:700; text-transform:none; letter-spacing:-.03em; }
html[data-theme="floorplan"] .housekeeper-greeting,
html[data-theme="riviera"] .housekeeper-greeting,
html[data-theme="ocean"] .housekeeper-greeting,
html[data-theme="coral"] .housekeeper-greeting { font-family:"Space Grotesk", Inter, sans-serif; font-weight:500; }
html[data-theme="floorplan"] .housekeeper-greeting em,
html[data-theme="riviera"] .housekeeper-greeting em,
html[data-theme="ocean"] .housekeeper-greeting em,
html[data-theme="coral"] .housekeeper-greeting em { font-family:"Space Grotesk", Inter, sans-serif; font-style:normal; font-weight:700; }
html[data-theme="anime"] .housekeeper-greeting { font-family:"Sentient", Georgia, serif; font-weight:500; letter-spacing:.01em; }
html[data-theme="anime"] .housekeeper-greeting em { font-family:"Space Grotesk", Inter, sans-serif; font-style:normal; font-weight:700; letter-spacing:-.04em; }

/* -------------------------------------------------------------------------
   THEME PERSONALITY PASS — each surface gets its own punch mark, while
   operational cards keep the same readable layout and status colors.
   ------------------------------------------------------------------------- */
@keyframes phx-accent-breathe {
  0%, 100% { opacity: .72; filter: saturate(.92); }
  50% { opacity: 1; filter: saturate(1.25); }
}
@keyframes phx-highlight-sweep {
  0% { transform: translateX(-115%); opacity: 0; }
  18%, 72% { opacity: .34; }
  100% { transform: translateX(115%); opacity: 0; }
}
@keyframes phx-ripple {
  0%, 100% { box-shadow: 0 0 0 1px var(--accent), 0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent); }
  50% { box-shadow: 0 0 0 1px var(--accent), 0 0 0 6px color-mix(in srgb, var(--accent) 0%, transparent); }
}

/* The seam is now a restrained moving highlight on interactive surfaces. */
:is(.topbar, .panel, .metric, .room-card)::before {
  transform-origin: left center;
}
@media (hover: hover) {
  :is(.panel, .metric, .room-card):hover {
    border-color: color-mix(in srgb, var(--accent) 42%, var(--border));
  }
  :is(.panel, .metric, .room-card):hover::before {
    animation: phx-highlight-sweep 1.15s ease-out both;
  }
}
:is(.nav-item.active, .top-actions .button:hover, .top-actions .notification-button:hover) {
  text-shadow: 0 0 14px color-mix(in srgb, var(--accent) 28%, transparent);
}

/* Punch marks: intentionally small, but unmistakably different by room. */
:is(.topbar, .panel, .room-card)::after,
.metric::before {
  transition: border-radius var(--motion) ease, clip-path var(--motion) ease,
    transform var(--motion) ease, box-shadow var(--motion) ease;
}
html[data-theme="anime"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="anime"] .metric::before {
  width: 10px; height: 10px; border: 0; border-radius: 0;
  background: var(--accent);
  clip-path: polygon(50% 0, 61% 34%, 100% 38%, 69% 58%, 78% 100%, 50% 72%, 22% 100%, 31% 58%, 0 38%, 39% 34%);
  box-shadow: 0 0 9px var(--accent-soft-2);
}
html[data-theme="scallop"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="scallop"] .metric::before {
  width: 10px; height: 10px; border-radius: 50% 50% 50% 8%;
  background: var(--accent); transform: rotate(45deg);
  box-shadow: 0 0 0 1.5px var(--accent), 0 0 9px var(--accent-soft-2);
}
html[data-theme="cozy"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="cozy"] .metric::before {
  width: 10px; height: 9px; border-radius: 60% 40% 55% 45%;
  background: var(--accent); transform: rotate(-32deg);
  box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--accent) 60%, #fff), 0 0 11px var(--accent-soft-2);
}
html[data-theme="library"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="library"] .metric::before {
  width: 9px; height: 12px; border-radius: 1px 1px 4px 4px;
  background: var(--accent); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 73%, 0 100%);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 72%, #fff), 0 0 8px var(--accent-soft-2);
}
html[data-theme="plants"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="plants"] .metric::before {
  width: 11px; height: 8px; border-radius: 100% 0 100% 0;
  background: var(--accent); transform: rotate(-38deg);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 60%, #fff), 0 0 10px var(--accent-soft-2);
}
html[data-theme="zen"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="zen"] .metric::before {
  width: 10px; height: 10px; border-radius: 50%; background: transparent;
  border: 1px solid var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent);
  animation: phx-ripple 3.4s ease-in-out infinite;
}
html[data-theme="conservatory"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="conservatory"] .metric::before {
  width: 10px; height: 10px; border-radius: 50%; background: var(--accent);
  box-shadow: inset 3px 0 0 var(--panel), 0 0 9px var(--accent-soft-2);
  transform: rotate(-22deg);
}
html[data-theme="rain"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="rain"] .metric::before {
  width: 9px; height: 11px; border-radius: 70% 30% 65% 35%;
  background: var(--accent); transform: rotate(45deg);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 50%, #fff), 0 0 9px var(--accent-soft-2);
}
html[data-theme="porcelain"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="porcelain"] .metric::before {
  width: 9px; height: 9px; border-radius: 2px; background: transparent;
  border: 1px solid var(--accent); transform: rotate(45deg);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 10%, transparent);
}
html[data-theme="citrus"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="citrus"] .metric::before {
  width: 10px; height: 10px; border-radius: 50%; background: var(--accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent), 0 0 11px var(--accent-soft-2);
  animation: phx-accent-breathe 2.8s ease-in-out infinite;
}
html[data-theme="sunset"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="sunset"] .metric::before {
  width: 11px; height: 6px; border-radius: 11px 11px 2px 2px;
  background: var(--accent); box-shadow: 0 0 0 1.5px var(--accent), 0 0 10px var(--accent-soft-2);
}
html[data-theme="ticket"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="ticket"] .metric::before {
  width: 10px; height: 8px; border-radius: 1px; background: var(--accent);
  clip-path: polygon(0 0, 100% 0, 100% 35%, 84% 50%, 100% 65%, 100% 100%, 0 100%, 0 65%, 16% 50%, 0 35%);
}
html[data-theme="sunburst"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="sunburst"] .metric::before {
  width: 10px; height: 10px; border-radius: 0; background: var(--accent);
  clip-path: polygon(50% 0, 61% 36%, 100% 50%, 61% 64%, 50% 100%, 39% 64%, 0 50%, 39% 36%);
}
html[data-theme="archival"] :is(.topbar, .panel, .room-card)::after,
html[data-theme="archival"] .metric::before {
  width: 10px; height: 7px; border-radius: 10px 10px 2px 2px; background: transparent;
  border: 1px solid var(--accent); border-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
  :is(.topbar, .panel, .metric, .room-card)::before,
  :is(.topbar, .panel, .metric, .room-card)::after,
  .metric::before { animation: none !important; transition: none !important; }
}

/* Rainy Window: layered pane-of-glass rain. Fine distant streaks sit behind
   a few soft foreground beads, all below .app-shell. */
@keyframes phx-rainfall {
  from { background-position: 0 -320px, 24px -520px, -42px -260px; }
  to { background-position: -22px 320px, -30px 520px, -66px 260px; }
}
@keyframes phx-droplet-drift {
  0%, 100% { transform: translate3d(0, -18px, 0); opacity: .1; }
  18% { opacity: .2; }
  52% { transform: translate3d(-7px, 12px, 0); opacity: .26; }
  82% { opacity: .14; }
}
html[data-theme="rain"] .ambient::before {
  content: "";
  position: absolute;
  inset: -320px -100px;
  pointer-events: none;
  opacity: .3;
  background-image:
    /* close, thin trails */
    repeating-linear-gradient(103deg, transparent 0 31px, rgba(178, 225, 245, .16) 32px, rgba(178, 225, 245, .05) 34px, transparent 36px 92px),
    /* smaller distant rain */
    repeating-linear-gradient(103deg, transparent 0 46px, rgba(130, 199, 232, .11) 47px, transparent 49px 137px),
    /* occasional longer trails */
    repeating-linear-gradient(103deg, transparent 0 128px, rgba(191, 231, 247, .12) 129px, rgba(191, 231, 247, .025) 133px, transparent 136px 241px);
  background-size: 92px 180px, 151px 260px, 241px 410px;
  animation: phx-rainfall 3.8s linear infinite;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 17%, #000 81%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 17%, #000 81%, transparent 100%);
}
html[data-theme="rain"] .ambient::after {
  content: "";
  position: absolute;
  inset: -8% -4%;
  pointer-events: none;
  opacity: .18;
  filter: blur(1px);
  background-image:
    radial-gradient(ellipse 6px 22px at 18% 27%, rgba(207, 239, 252, .32) 0 12%, rgba(135, 201, 230, .12) 35%, transparent 72%),
    radial-gradient(ellipse 4px 15px at 57% 12%, rgba(207, 239, 252, .27) 0 13%, rgba(135, 201, 230, .1) 38%, transparent 72%),
    radial-gradient(ellipse 7px 27px at 82% 67%, rgba(207, 239, 252, .22) 0 11%, rgba(135, 201, 230, .08) 38%, transparent 72%),
    radial-gradient(ellipse 3px 12px at 39% 84%, rgba(207, 239, 252, .24) 0 14%, transparent 72%);
  background-size: 100% 100%;
  animation: phx-droplet-drift 7.5s ease-in-out infinite;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
}
html[data-mode="light"][data-theme="rain"] .ambient::before { opacity: .2; }
html[data-mode="light"][data-theme="rain"] .ambient::after { opacity: .13; }
@media (prefers-reduced-motion: reduce) {
  html[data-theme="rain"] .ambient::before,
  html[data-theme="rain"] .ambient::after { animation: none; }
  html[data-theme="rain"] .ambient::before { opacity: .14; }
  html[data-theme="rain"] .ambient::after { opacity: .1; }
}

/* Theme atmospheres — small pieces of art, kept behind the working surface. */
@keyframes phx-neon-scan { to { background-position: 0 72px, 96px 0; } }
@keyframes phx-neon-stars { 0%, 100% { opacity: .35; transform: translate3d(0, 0, 0); } 50% { opacity: .8; transform: translate3d(-8px, 5px, 0); } }
@keyframes phx-ember-float { 0%, 100% { transform: translate3d(0, 22px, 0) scale(.98); opacity: .12; } 50% { transform: translate3d(-8px, -18px, 0) scale(1.04); opacity: .42; } }
@keyframes phx-dust-drift { from { transform: translate3d(-12px, 18px, 0); } to { transform: translate3d(14px, -22px, 0); } }
@keyframes phx-leaf-drift { 0%, 100% { transform: translate3d(0, 10px, 0) rotate(-1deg); } 50% { transform: translate3d(-12px, -16px, 0) rotate(2deg); } }
@keyframes phx-zen-mist { 0%, 100% { transform: translate3d(-3%, 1%, 0) scale(1); opacity: .18; } 50% { transform: translate3d(3%, -2%, 0) scale(1.08); opacity: .32; } }
@keyframes phx-firefly { 0%, 100% { transform: translate3d(-5px, 8px, 0); opacity: .12; } 45% { opacity: .65; } 70% { transform: translate3d(8px, -10px, 0); opacity: .28; } }
@keyframes phx-glaze { from { transform: translateX(-42%); } to { transform: translateX(42%); } }
@keyframes phx-sun-rotate { to { transform: rotate(360deg); } }
@keyframes phx-bokeh { 0%, 100% { transform: translate3d(-8px, 5px, 0) scale(.96); opacity: .16; } 50% { transform: translate3d(10px, -9px, 0) scale(1.06); opacity: .34; } }
@keyframes phx-tide { from { background-position: 0 0, 55px 0; } to { background-position: 130px 0, -35px 0; } }

/* Neo Tokyo — scanlines and drifting city lights. */
html[data-theme="anime"] .ambient::before,
html[data-theme="cyberpunk"] .ambient::before,
html[data-theme="future"] .ambient::before {
  inset: 0; opacity: .18;
  background-image: repeating-linear-gradient(0deg, transparent 0 8px, color-mix(in srgb, var(--accent) 15%, transparent) 9px, transparent 10px), repeating-linear-gradient(90deg, transparent 0 95px, color-mix(in srgb, var(--purple) 12%, transparent) 96px, transparent 97px);
  background-size: 100% 72px, 192px 100%;
  animation: phx-neon-scan 5s linear infinite;
}
html[data-theme="anime"] .ambient::after,
html[data-theme="cyberpunk"] .ambient::after,
html[data-theme="future"] .ambient::after {
  inset: 0; opacity: .38;
  background-image: radial-gradient(circle at 14% 22%, var(--accent) 0 1px, transparent 3px), radial-gradient(circle at 72% 34%, var(--purple) 0 1px, transparent 3px), radial-gradient(circle at 42% 76%, var(--accent) 0 1px, transparent 3px), radial-gradient(circle at 88% 82%, var(--purple) 0 1px, transparent 3px);
  animation: phx-neon-stars 6s ease-in-out infinite;
  filter: blur(.2px);
}
/* Cozy Hearth — floating firelight and a soft woven glow. */
html[data-theme="cozy"] .ambient::before {
  inset: -12%; opacity: .25;
  background-image: radial-gradient(circle at 18% 78%, #ffb45e 0 1px, transparent 4px), radial-gradient(circle at 63% 66%, #f28d58 0 1px, transparent 4px), radial-gradient(circle at 82% 88%, #ffd18a 0 1px, transparent 5px), radial-gradient(ellipse at 22% 100%, color-mix(in srgb, var(--accent) 26%, transparent), transparent 48%);
  animation: phx-ember-float 5.8s ease-in-out infinite;
  filter: blur(.4px);
}
html[data-theme="cozy"] .ambient::after {
  inset: 0; opacity: .08;
  background: repeating-linear-gradient(45deg, transparent 0 8px, color-mix(in srgb, var(--accent) 18%, transparent) 9px, transparent 10px);
  animation: phx-tide 18s linear infinite;
}
/* Quiet Library — floating dust in lamplight and quiet page rules. */
html[data-theme="library"] .ambient::before {
  inset: -10%; opacity: .18;
  background-image: repeating-linear-gradient(0deg, transparent 0 38px, color-mix(in srgb, var(--accent) 12%, transparent) 39px, transparent 40px), radial-gradient(circle at 16% 28%, #f2d28c 0 1px, transparent 3px), radial-gradient(circle at 78% 42%, #e4bd73 0 1px, transparent 3px), radial-gradient(circle at 48% 78%, #f2d28c 0 1px, transparent 3px);
  animation: phx-dust-drift 14s ease-in-out infinite alternate;
}
html[data-theme="library"] .ambient::after {
  inset: 0; opacity: .11;
  background: radial-gradient(ellipse at 12% 10%, color-mix(in srgb, var(--accent) 25%, transparent), transparent 32%), radial-gradient(ellipse at 86% 22%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 30%);
  animation: phx-bokeh 11s ease-in-out infinite;
}
/* Indoor Garden — drifting leaves and filtered greenhouse light. */
html[data-theme="plants"] .ambient::before,
html[data-theme="conservatory"] .ambient::before {
  inset: -12%; opacity: .2;
  background-image: radial-gradient(ellipse 8px 18px at 15% 31%, color-mix(in srgb, var(--accent) 48%, transparent) 0 35%, transparent 70%), radial-gradient(ellipse 6px 15px at 72% 64%, color-mix(in srgb, var(--green) 42%, transparent) 0 35%, transparent 70%), radial-gradient(ellipse 7px 17px at 87% 20%, color-mix(in srgb, var(--accent) 32%, transparent) 0 35%, transparent 70%), radial-gradient(ellipse at 10% 0%, color-mix(in srgb, var(--green) 18%, transparent), transparent 42%);
  animation: phx-leaf-drift 12s ease-in-out infinite;
  filter: blur(.2px);
}
html[data-theme="plants"] .ambient::after,
html[data-theme="conservatory"] .ambient::after {
  inset: 0; opacity: .2;
  background-image: radial-gradient(circle at 21% 22%, #d9f59b 0 1px, transparent 4px), radial-gradient(circle at 68% 30%, #f3dda0 0 1px, transparent 4px), radial-gradient(circle at 81% 72%, #d9f59b 0 1px, transparent 4px);
  animation: phx-firefly 8s ease-in-out infinite;
}
/* Stillwater Zen — slow ink-wash mist and a barely moving water field. */
html[data-theme="zen"] .ambient::before {
  inset: -18%; opacity: .24;
  background: radial-gradient(ellipse at 20% 35%, color-mix(in srgb, var(--accent) 28%, transparent), transparent 40%), radial-gradient(ellipse at 80% 68%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 42%), linear-gradient(178deg, transparent 0 68%, color-mix(in srgb, var(--accent) 10%, transparent) 69% 70%, transparent 71%);
  animation: phx-zen-mist 18s ease-in-out infinite;
  filter: blur(3px);
}
html[data-theme="zen"] .ambient::after {
  inset: 8% 12%; opacity: .13;
  background: repeating-radial-gradient(ellipse at 52% 78%, transparent 0 24px, color-mix(in srgb, var(--accent) 24%, transparent) 25px 26px, transparent 27px 52px);
  animation: phx-tide 22s ease-in-out infinite alternate;
  filter: blur(.4px);
}
/* Moonlit Conservatory — small fireflies over cool glass. */
html[data-theme="conservatory"] .ambient::after { opacity: .3; animation-duration: 9.5s; }
/* Rainy Window is defined above with its dedicated layered rainfall. */
/* Ink & Porcelain — a slow ceramic glaze passing across the pane. */
html[data-theme="porcelain"] .ambient::before {
  inset: -10% -40%; opacity: .16;
  background: linear-gradient(105deg, transparent 35%, color-mix(in srgb, var(--accent) 30%, #fff) 48%, transparent 59%);
  animation: phx-glaze 9s ease-in-out infinite alternate;
  filter: blur(7px);
}
html[data-theme="porcelain"] .ambient::after {
  inset: 0; opacity: .1;
  background-image: radial-gradient(circle at 20% 24%, var(--accent) 0 1px, transparent 2px), radial-gradient(circle at 67% 72%, var(--accent) 0 1px, transparent 2px);
  background-size: 83px 97px, 127px 143px;
  animation: phx-dust-drift 17s ease-in-out infinite alternate;
}
/* Citrus Morning — a rotating sunburst and warm floating motes. */
html[data-theme="citrus"] .ambient::before {
  width: 72vmin; height: 72vmin; left: 58%; top: -32%; opacity: .13;
  background: repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--accent) 35%, transparent) 0 5deg, transparent 5deg 18deg);
  border-radius: 50%;
  animation: phx-sun-rotate 42s linear infinite;
  filter: blur(1px);
}
html[data-theme="citrus"] .ambient::after {
  inset: 0; opacity: .22;
  background-image: radial-gradient(circle at 26% 68%, #f6e781 0 2px, transparent 6px), radial-gradient(circle at 75% 32%, #e9bf62 0 1px, transparent 5px);
  animation: phx-bokeh 8s ease-in-out infinite;
}
/* Sunset Terrace — low bokeh drifting through evening light. */
html[data-theme="sunset"] .ambient::before {
  inset: 0; opacity: .2;
  background: linear-gradient(180deg, transparent 0 54%, color-mix(in srgb, var(--accent) 16%, transparent) 78%, transparent 100%);
}
html[data-theme="sunset"] .ambient::after {
  inset: 0; opacity: .25;
  background-image: radial-gradient(circle at 18% 68%, #f6bf83 0 3px, transparent 18px), radial-gradient(circle at 72% 40%, #db876c 0 2px, transparent 15px), radial-gradient(circle at 88% 78%, #f3ad71 0 3px, transparent 21px), radial-gradient(circle at 48% 22%, #ffd4a0 0 1px, transparent 12px);
  animation: phx-bokeh 10s ease-in-out infinite;
  filter: blur(1px);
}
/* Original studio themes — each family gets a restrained signature texture. */
html[data-theme="teal"] .ambient::before,
html[data-theme="ocean"] .ambient::before,
html[data-theme="coral"] .ambient::before { inset: 0; opacity: .12; background: repeating-linear-gradient(168deg, transparent 0 28px, color-mix(in srgb, var(--accent) 22%, transparent) 29px 30px, transparent 31px 70px); background-size: 180px 140px; animation: phx-tide 15s linear infinite; }
html[data-theme="midnight"] .ambient::after,
html[data-theme="observatory"] .ambient::after,
html[data-theme="royal"] .ambient::after { inset: 0; opacity: .28; background-image: radial-gradient(circle at 18% 24%, var(--accent) 0 1px, transparent 3px), radial-gradient(circle at 73% 18%, var(--accent) 0 1px, transparent 3px), radial-gradient(circle at 56% 72%, var(--accent) 0 1px, transparent 3px), radial-gradient(circle at 88% 62%, var(--accent) 0 1px, transparent 3px); animation: phx-neon-stars 8s ease-in-out infinite; }
html[data-theme="forest"] .ambient::after,
html[data-theme="moss"] .ambient::after,
html[data-theme="lantern"] .ambient::after { inset: 0; opacity: .2; background-image: radial-gradient(circle at 15% 35%, var(--accent) 0 1px, transparent 4px), radial-gradient(circle at 76% 28%, var(--accent) 0 1px, transparent 4px), radial-gradient(circle at 62% 76%, var(--accent) 0 1px, transparent 4px); animation: phx-firefly 9s ease-in-out infinite; }
html[data-theme="rose"] .ambient::after,
html[data-theme="lavender"] .ambient::after { inset: -8%; opacity: .16; background-image: radial-gradient(ellipse 8px 4px at 20% 25%, var(--accent) 0 30%, transparent 72%), radial-gradient(ellipse 7px 4px at 74% 58%, var(--accent) 0 30%, transparent 72%); animation: phx-bokeh 12s ease-in-out infinite; filter: blur(1px); }
html[data-theme="gold"] .ambient::before,
html[data-theme="mineral"] .ambient::before { inset: -10% -35%; opacity: .13; background: linear-gradient(110deg, transparent 36%, color-mix(in srgb, var(--accent) 38%, #fff) 49%, transparent 61%); animation: phx-glaze 12s ease-in-out infinite alternate; filter: blur(6px); }
html[data-theme="ember"] .ambient::after,
html[data-theme="solar"] .ambient::after { inset: 0; opacity: .26; background-image: radial-gradient(circle at 22% 72%, var(--accent) 0 1px, transparent 5px), radial-gradient(circle at 70% 54%, var(--accent) 0 1px, transparent 5px), radial-gradient(circle at 84% 22%, var(--accent) 0 1px, transparent 4px); animation: phx-ember-float 7s ease-in-out infinite; }
html[data-theme="deco"] .ambient::before,
html[data-theme="ledger"] .ambient::before,
html[data-theme="lounge"] .ambient::before,
html[data-theme="noir"] .ambient::before,
html[data-theme="continental"] .ambient::before,
html[data-theme="concierge"] .ambient::before { inset: 0; opacity: .08; background: repeating-linear-gradient(90deg, transparent 0 74px, color-mix(in srgb, var(--accent) 28%, transparent) 75px 76px); animation: phx-glaze 18s ease-in-out infinite alternate; }
html[data-theme="command"] .ambient::before { inset: 0; opacity: .12; background: repeating-linear-gradient(0deg, transparent 0 23px, color-mix(in srgb, var(--accent) 18%, transparent) 24px), repeating-linear-gradient(90deg, transparent 0 79px, color-mix(in srgb, var(--accent) 12%, transparent) 80px); background-size: 100% 96px, 160px 100%; animation: phx-neon-scan 8s linear infinite; }

/* Make the signature art visible on the glass header too. This is deliberately
   a background treatment, never a layer over text or controls. */
@keyframes phx-surface-glide { from { background-position: -35% 0, 0 0; } to { background-position: 135% 0, 0 0; } }
@keyframes phx-surface-drift { from { background-position: 0 0, 0 0; } to { background-position: 90px -18px, -40px 0; } }
html[data-theme="anime"] .topbar,
html[data-theme="cyberpunk"] .topbar,
html[data-theme="future"] .topbar,
html[data-theme="command"] .topbar {
  background-image: repeating-linear-gradient(0deg, transparent 0 7px, color-mix(in srgb, var(--accent) 16%, transparent) 8px, transparent 10px), linear-gradient(180deg, color-mix(in srgb, var(--accent) 26%, transparent), color-mix(in srgb, var(--accent) 10%, transparent));
  background-size: 100% 54px, 100% 100%;
  animation: phx-surface-drift 6s linear infinite;
}
html[data-theme="cozy"] .topbar,
html[data-theme="ember"] .topbar,
html[data-theme="sunset"] .topbar {
  background-image: radial-gradient(circle at 18% 72%, color-mix(in srgb, var(--accent) 34%, transparent) 0 2px, transparent 14px), radial-gradient(circle at 76% 28%, color-mix(in srgb, var(--accent) 25%, transparent) 0 2px, transparent 18px), linear-gradient(180deg, color-mix(in srgb, var(--accent) 25%, transparent), color-mix(in srgb, var(--accent) 9%, transparent));
  background-size: 100% 100%, 100% 100%, 100% 100%;
  animation: phx-surface-drift 8s ease-in-out infinite alternate;
}
html[data-theme="library"] .topbar,
html[data-theme="deco"] .topbar,
html[data-theme="ledger"] .topbar,
html[data-theme="lounge"] .topbar,
html[data-theme="noir"] .topbar,
html[data-theme="continental"] .topbar,
html[data-theme="concierge"] .topbar {
  background-image: linear-gradient(105deg, transparent 24%, color-mix(in srgb, var(--accent) 22%, transparent) 48%, transparent 70%), repeating-linear-gradient(0deg, transparent 0 22px, color-mix(in srgb, var(--accent) 9%, transparent) 23px, transparent 24px);
  background-size: 180% 100%, 100% 48px;
  animation: phx-surface-glide 12s ease-in-out infinite alternate;
}
html[data-theme="plants"] .topbar,
html[data-theme="conservatory"] .topbar,
html[data-theme="forest"] .topbar,
html[data-theme="moss"] .topbar,
html[data-theme="lantern"] .topbar {
  background-image: radial-gradient(ellipse 18px 7px at 18% 34%, color-mix(in srgb, var(--accent) 34%, transparent), transparent 72%), radial-gradient(ellipse 16px 6px at 76% 72%, color-mix(in srgb, var(--accent) 28%, transparent), transparent 72%), linear-gradient(180deg, color-mix(in srgb, var(--accent) 22%, transparent), color-mix(in srgb, var(--accent) 8%, transparent));
  background-size: 145% 145%, 130% 130%, 100% 100%;
  animation: phx-surface-drift 13s ease-in-out infinite alternate;
}
html[data-theme="zen"] .topbar,
html[data-theme="lavender"] .topbar {
  background-image: radial-gradient(ellipse at 22% 35%, color-mix(in srgb, var(--accent) 30%, transparent), transparent 48%), radial-gradient(ellipse at 78% 65%, color-mix(in srgb, var(--accent) 23%, transparent), transparent 48%), linear-gradient(180deg, color-mix(in srgb, var(--accent) 20%, transparent), color-mix(in srgb, var(--accent) 7%, transparent));
  background-size: 130% 130%, 130% 130%, 100% 100%;
  animation: phx-surface-drift 18s ease-in-out infinite alternate;
}
html[data-theme="porcelain"] .topbar,
html[data-theme="gold"] .topbar,
html[data-theme="mineral"] .topbar {
  background-image: linear-gradient(105deg, transparent 24%, color-mix(in srgb, var(--accent) 30%, #fff) 48%, transparent 70%), linear-gradient(180deg, color-mix(in srgb, var(--accent) 22%, transparent), color-mix(in srgb, var(--accent) 7%, transparent));
  background-size: 180% 100%, 100% 100%;
  animation: phx-surface-glide 10s ease-in-out infinite alternate;
}
html[data-theme="citrus"] .topbar,
html[data-theme="solar"] .topbar {
  background-image: repeating-linear-gradient(115deg, transparent 0 20px, color-mix(in srgb, var(--accent) 19%, transparent) 21px 23px, transparent 24px 52px), linear-gradient(180deg, color-mix(in srgb, var(--accent) 24%, transparent), color-mix(in srgb, var(--accent) 8%, transparent));
  background-size: 160% 100%, 100% 100%;
  animation: phx-surface-glide 16s linear infinite;
}
html[data-theme="midnight"] .topbar,
html[data-theme="observatory"] .topbar,
html[data-theme="royal"] .topbar {
  background-image: radial-gradient(circle at 18% 28%, var(--accent) 0 1px, transparent 4px), radial-gradient(circle at 74% 62%, var(--accent) 0 1px, transparent 4px), linear-gradient(180deg, color-mix(in srgb, var(--accent) 22%, transparent), color-mix(in srgb, var(--accent) 7%, transparent));
  background-size: 100% 100%, 100% 100%, 100% 100%;
  animation: phx-surface-drift 14s ease-in-out infinite alternate;
}
html[data-theme="teal"] .topbar,
html[data-theme="ocean"] .topbar,
html[data-theme="coral"] .topbar {
  background-image: repeating-linear-gradient(168deg, transparent 0 22px, color-mix(in srgb, var(--accent) 18%, transparent) 23px 24px, transparent 25px 62px), linear-gradient(180deg, color-mix(in srgb, var(--accent) 24%, transparent), color-mix(in srgb, var(--accent) 8%, transparent));
  background-size: 180% 100%, 100% 100%;
  animation: phx-surface-drift 12s linear infinite;
}
html[data-theme="rose"] .topbar {
  background-image: radial-gradient(ellipse 30px 12px at 22% 35%, color-mix(in srgb, var(--accent) 25%, transparent), transparent 72%), radial-gradient(ellipse 24px 10px at 76% 68%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 72%), linear-gradient(180deg, color-mix(in srgb, var(--accent) 22%, transparent), color-mix(in srgb, var(--accent) 7%, transparent));
  background-size: 140% 140%, 140% 140%, 100% 100%;
  animation: phx-surface-drift 11s ease-in-out infinite alternate;
}

/* Full-width atmosphere layer: visible through the workspace gaps, beneath
   every operational card. The header treatment above remains as a focal point. */
.workspace { position: relative; }
.workspace::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 94px; right: 0; bottom: 0; left: 0;
  pointer-events: none;
  opacity: .26;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 7%, #000 92%, transparent);
  mask-image: linear-gradient(to bottom, transparent, #000 7%, #000 92%, transparent);
}
.workspace > * { position: relative; z-index: 1; }
/* Keep topbar overlays above the view content. The broad workspace rule above
   otherwise creates a lower stacking context and lets the notification panel
   fall behind the first card when the topbar is sticky. */
.workspace > .topbar {
  z-index: 2000;
  overflow: visible;
}
.workspace > .topbar .notification-wrap { z-index: 2001; }
.workspace > .topbar .notification-panel { z-index: 2147483647; }

/* On narrow screens the header can be a sticky stacking context of its own.
   Keep the open notification list viewport-anchored so controls in the active
   tab cannot paint over it or clip it at the right edge. */
@media (max-width: 900px) {
  .notification-panel {
    position: fixed;
    top: calc(88px + 8px);
    right: 12px;
    z-index: 2147483647;
  }
}
@media (max-width: 700px) {
  .notification-panel {
    top: calc(72px + 8px);
  }
}
html[data-theme="anime"] .workspace::before,
html[data-theme="cyberpunk"] .workspace::before,
html[data-theme="future"] .workspace::before,
html[data-theme="command"] .workspace::before {
  background-image: repeating-linear-gradient(0deg, transparent 0 17px, color-mix(in srgb, var(--accent) 18%, transparent) 18px 19px, transparent 20px 72px), repeating-linear-gradient(90deg, transparent 0 112px, color-mix(in srgb, var(--purple) 15%, transparent) 113px 114px, transparent 115px 210px);
  background-size: 100% 144px, 420px 100%;
  animation: phx-neon-scan 7s linear infinite;
}
html[data-theme="cozy"] .workspace::before,
html[data-theme="ember"] .workspace::before,
html[data-theme="sunset"] .workspace::before {
  background-image: radial-gradient(circle at 12% 78%, color-mix(in srgb, var(--accent) 44%, transparent) 0 2px, transparent 16px), radial-gradient(circle at 46% 62%, color-mix(in srgb, var(--accent) 32%, transparent) 0 2px, transparent 13px), radial-gradient(circle at 84% 32%, color-mix(in srgb, var(--accent) 38%, transparent) 0 2px, transparent 18px), radial-gradient(ellipse at 20% 100%, color-mix(in srgb, var(--accent) 24%, transparent), transparent 46%);
  animation: phx-ember-float 7.5s ease-in-out infinite;
  filter: blur(.5px);
}
html[data-theme="library"] .workspace::before,
html[data-theme="deco"] .workspace::before,
html[data-theme="ledger"] .workspace::before,
html[data-theme="lounge"] .workspace::before,
html[data-theme="noir"] .workspace::before,
html[data-theme="continental"] .workspace::before,
html[data-theme="concierge"] .workspace::before {
  background-image: repeating-linear-gradient(0deg, transparent 0 54px, color-mix(in srgb, var(--accent) 14%, transparent) 55px 56px, transparent 57px 128px), linear-gradient(105deg, transparent 22%, color-mix(in srgb, var(--accent) 17%, transparent) 48%, transparent 72%);
  background-size: 100% 160px, 220% 100%;
  animation: phx-surface-glide 14s ease-in-out infinite alternate;
}
html[data-theme="plants"] .workspace::before,
html[data-theme="conservatory"] .workspace::before,
html[data-theme="forest"] .workspace::before,
html[data-theme="moss"] .workspace::before,
html[data-theme="lantern"] .workspace::before {
  background-image: radial-gradient(ellipse 12px 26px at 12% 28%, color-mix(in srgb, var(--accent) 42%, transparent) 0 35%, transparent 72%), radial-gradient(ellipse 9px 22px at 76% 58%, color-mix(in srgb, var(--accent) 34%, transparent) 0 35%, transparent 72%), radial-gradient(ellipse 11px 24px at 88% 18%, color-mix(in srgb, var(--accent) 28%, transparent) 0 35%, transparent 72%);
  animation: phx-leaf-drift 15s ease-in-out infinite alternate;
  filter: blur(.3px);
}
html[data-theme="zen"] .workspace::before,
html[data-theme="lavender"] .workspace::before {
  background-image: radial-gradient(ellipse at 18% 30%, color-mix(in srgb, var(--accent) 32%, transparent), transparent 42%), radial-gradient(ellipse at 78% 72%, color-mix(in srgb, var(--accent) 27%, transparent), transparent 44%), repeating-radial-gradient(ellipse at 52% 94%, transparent 0 34px, color-mix(in srgb, var(--accent) 13%, transparent) 35px 36px, transparent 37px 82px);
  animation: phx-zen-mist 20s ease-in-out infinite;
  filter: blur(4px);
}
html[data-theme="porcelain"] .workspace::before,
html[data-theme="gold"] .workspace::before,
html[data-theme="mineral"] .workspace::before {
  background: linear-gradient(105deg, transparent 28%, color-mix(in srgb, var(--accent) 34%, #fff) 49%, transparent 69%);
  background-size: 220% 100%;
  animation: phx-surface-glide 11s ease-in-out infinite alternate;
  filter: blur(8px);
}
html[data-theme="citrus"] .workspace::before,
html[data-theme="solar"] .workspace::before {
  background-image: repeating-conic-gradient(from 0deg at 78% 4%, color-mix(in srgb, var(--accent) 22%, transparent) 0 4deg, transparent 4deg 15deg), radial-gradient(circle at 32% 74%, color-mix(in srgb, var(--accent) 34%, transparent), transparent 18%);
  animation: phx-sun-rotate 50s linear infinite;
  filter: blur(.7px);
}
html[data-theme="midnight"] .workspace::before,
html[data-theme="observatory"] .workspace::before,
html[data-theme="royal"] .workspace::before {
  background-image: radial-gradient(circle at 14% 20%, var(--accent) 0 1px, transparent 4px), radial-gradient(circle at 70% 28%, var(--accent) 0 1px, transparent 4px), radial-gradient(circle at 42% 76%, var(--accent) 0 1px, transparent 4px), radial-gradient(circle at 88% 64%, var(--accent) 0 1px, transparent 4px);
  animation: phx-neon-stars 9s ease-in-out infinite;
}
html[data-theme="teal"] .workspace::before,
html[data-theme="ocean"] .workspace::before,
html[data-theme="coral"] .workspace::before {
  background: repeating-linear-gradient(168deg, transparent 0 26px, color-mix(in srgb, var(--accent) 24%, transparent) 27px 29px, transparent 30px 80px);
  background-size: 260px 180px;
  animation: phx-tide 16s linear infinite;
}

/* Personal preference: turn off decorative and interface motion without
   changing status colors, click behavior, or other dashboard functionality. */
html[data-animations="off"] *,
html[data-animations="off"] *::before,
html[data-animations="off"] *::after {
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
}

/* Today quick logs: a compact, accent-led entry card that keeps the form
   readable on a phone instead of squeezing four controls into one row. */
.quick-panel-heading { display: grid; gap: 3px; min-width: 0; }
.quick-panel-heading h3 { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin: 0; }
.quick-panel-kicker {
  color: var(--accent);
  font: 700 10px/1.2 var(--mono, ui-monospace, monospace);
  letter-spacing: .13em;
}
.today-quick-form,
.lost-found-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 9px; padding: 12px 14px 14px; }
.quick-add-input-row { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 8px; min-width: 0; }
.quick-add-action-row { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; min-width: 0; }
.quick-add-input-row select,
.quick-add-input-row input { width: 100%; min-width: 0; box-sizing: border-box; }
.quick-add-action-row .button { min-height: 38px; }
.quick-add-action-row .primary { box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent), 0 5px 16px color-mix(in srgb, var(--accent) 17%, transparent); }
.maintenance-photo-label,
.lost-found-form .lf-photo-label { border-color: color-mix(in srgb, var(--accent) 48%, var(--border)); background: color-mix(in srgb, var(--accent) 10%, var(--surface)); color: var(--accent-ink); }
.maintenance-photo-label.photo-ready,
.lost-found-form .lf-photo-label:has(+ .lf-photo-preview:not([hidden])) { background: color-mix(in srgb, var(--accent) 24%, var(--surface)); border-color: var(--accent); }
.maintenance-photo-input,
.lost-found-form .lf-photo-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); pointer-events: none; }
.maintenance-quick-panel .panel-body { padding-top: 4px; }
.maintenance-quick-panel .maintenance-list { margin-top: 0; }
.maintenance-quick-panel .maintenance-item { padding: 10px 0; }
.lost-found-quick-panel .lost-found-form { padding-top: 12px; }
.lost-found-quick-panel .lost-found-form select,
.lost-found-quick-panel .lost-found-form input { border-color: color-mix(in srgb, var(--accent) 30%, var(--border)); background: color-mix(in srgb, var(--accent) 4%, var(--surface)); color: var(--text); }
.lost-found-quick-panel .lost-found-form select:focus,
.lost-found-quick-panel .lost-found-form input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--ring); }
.lost-found-quick-panel .today-lost-found-list { border-top: 1px solid color-mix(in srgb, var(--accent) 18%, var(--border-soft)); padding: 10px 14px 14px; }
.lost-found-quick-panel .lost-found-row { border-color: color-mix(in srgb, var(--accent) 20%, var(--border-soft)); background: color-mix(in srgb, var(--accent) 4%, transparent); }
.lost-found-quick-panel .lost-found-room { color: var(--accent); }
.lost-found-quick-panel .lf-photo-preview { max-width: 64px; object-fit: cover; }

@media (max-width: 700px) {
  .quick-action-panel .panel-head { padding: 13px 14px 11px; }
  .today-quick-form,
  .lost-found-form { padding: 11px 12px 12px; gap: 8px; }
  .quick-add-input-row { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .quick-add-action-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
  .quick-add-action-row .button { width: 100%; min-height: 44px; justify-content: center; box-sizing: border-box; }
  .quick-add-action-row .lf-photo-preview { grid-column: 1 / -1; justify-self: start; max-height: 44px; }
  .quick-add-action-row .lf-photo-cancel { grid-column: 1 / -1; }
  .maintenance-quick-panel .maintenance-item { grid-template-columns: 48px minmax(0, 1fr); align-items: start; gap: 7px; }
  .maintenance-quick-panel .maintenance-item > .button,
  .maintenance-quick-panel .maintenance-item > select { grid-column: 2; justify-self: start; }
  .maintenance-quick-panel .maintenance-item .maintenance-photo-thumb { grid-row: 1 / span 2; }
  .lost-found-quick-panel .lost-found-row { padding: 9px 10px; }
}

/* Manager approval actions use the same contained, readable button treatment
   as the other Today cards; long labels may wrap instead of widening the card. */
.approval-box .approval-actions { align-items: stretch; }
.approval-box .approval-button {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  box-sizing: border-box;
  white-space: normal;
  text-align: center;
  line-height: 1.25;
  padding-inline: 10px;
}

/* Theme-specific panel surfaces now flow through unchanged; the rules below
   only normalize controls inside the quick-log cards. */
.quick-panel-heading .room-list-count {
  color: var(--muted);
  margin-left: 6px;
  font: inherit;
  font-size: .85em;
  font-weight: 600;
  letter-spacing: normal;
}
.quick-action-panel .quick-add-input-row select,
.quick-action-panel .quick-add-input-row input {
  padding: 8px 10px;
  border: 1px solid var(--well-border);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .22), rgba(0, 0, 0, 0) 55%),
    rgba(255, 255, 255, .024);
  color: var(--text);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, .32), inset 0 -1px 0 rgba(255, 255, 255, .03);
}
.quick-action-panel .quick-add-input-row select:focus,
.quick-action-panel .quick-add-input-row input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--ring), inset 0 1px 2px rgba(0, 0, 0, .3);
}
.quick-add-action-row .primary {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 2px 0 -1px rgba(0, 0, 0, .5);
}
.lost-found-quick-panel .lost-found-form select,
.lost-found-quick-panel .lost-found-form input {
  border-color: var(--well-border);
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .22), rgba(0, 0, 0, 0) 55%),
    rgba(255, 255, 255, .024);
  color: var(--text);
}
.lost-found-quick-panel .lost-found-row {
  border-color: var(--border-soft);
  background: transparent;
}
.lost-found-quick-panel .lost-found-room { color: var(--text); }

/* Maintenance tab (Stephanie, 2026-09-05): quick add on top, items with
   photo thumbs / camera buttons, matching Lost & Found row styling. */
.maintenance-list .maintenance-item { display: flex; align-items: center; gap: 10px; }
.maintenance-list .maintenance-photo-thumb { width: 56px; height: 56px; object-fit: cover; border-radius: 8px; border: 1px solid var(--border-soft); flex: 0 0 auto; }
.maintenance-list .maintenance-text { min-width: 0; flex: 1 1 auto; overflow-wrap: anywhere; }
.maintenance-list .maintenance-logged-by { display: block; }
/* Compact camera-only "add photo" button (Stephanie, 2026-09-05: "much
   smaller, only a camera icon needed"); room number sits left of it. */
.camera-photo-button { flex: 0 0 auto; width: 34px; height: 34px; padding: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 16px; line-height: 1; overflow: hidden; }
/* All Fixed-by pickers uniform: same compact size on every row. */
.maintenance-fixer-select {
  flex: 0 0 auto;
  width: 7.5em;
  min-width: 0;
  height: 34px;
  padding: 0 0.4rem;
  font-size: 0.78rem;
  border-radius: 8px;
  border: 1px solid var(--border-soft);
  background: var(--card);
  color: var(--foreground);
  box-sizing: border-box;
}
.camera-photo-button input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); pointer-events: none; }
.maintenance-list .maintenance-room { flex: 0 0 auto; min-width: 2.6em; text-align: right; }
/* Compact "Fixed by" picker (Stephanie, 2026-09-05: "make the fixed by
   button much smaller") — small pill that fits the row height. */
.maintenance-fixer-select {
  flex: 0 0 auto;
  width: auto;
  min-width: 0;
  max-width: 8.5em;
  padding: 0.2rem 0.4rem;
  font-size: 0.78rem;
  border-radius: 8px;
  border: 1px solid var(--border-soft);
  background: var(--card);
  color: var(--foreground);
}

/* Animation styles are independent of color themes. A theme only controls color,
   shape, and type; this selector applies the optional atmosphere on top. */
html[data-theme] .ambient::before,
html[data-theme] .ambient::after,
html[data-theme] .topbar,
html[data-theme] .workspace::before,
html[data-theme] :is(.topbar, .panel, .metric, .room-card)::after,
html[data-theme] .metric::before {
  animation: none !important;
}
html[data-animation-style="none"] .ambient::before,
html[data-animation-style="none"] .ambient::after { content: none; opacity: 0; }

html[data-animation-style] .ambient::before,
html[data-animation-style] .ambient::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 0;
}
html[data-animation-style="rain"] .ambient::before {
  inset: -320px -100px; opacity: .3;
  background-image: repeating-linear-gradient(103deg, transparent 0 31px, color-mix(in srgb, var(--accent) 35%, transparent) 32px, color-mix(in srgb, var(--accent) 10%, transparent) 34px, transparent 36px 92px), repeating-linear-gradient(103deg, transparent 0 128px, color-mix(in srgb, var(--accent) 26%, transparent) 129px, transparent 136px 241px);
  background-size: 92px 180px, 241px 410px;
  animation: phx-rainfall 3.8s linear infinite !important;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 17%, #000 81%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 17%, #000 81%, transparent 100%);
}
html[data-animation-style="rain"] .ambient::after {
  inset: -8% -4%; opacity: .18; filter: blur(1px);
  background-image: radial-gradient(ellipse 6px 22px at 18% 27%, color-mix(in srgb, var(--accent) 55%, transparent) 0 12%, transparent 72%), radial-gradient(ellipse 7px 27px at 82% 67%, color-mix(in srgb, var(--accent) 42%, transparent) 0 11%, transparent 72%);
  animation: phx-droplet-drift 7.5s ease-in-out infinite !important;
}
html[data-animation-style="neon"] .ambient::before {
  inset: 0; opacity: .22;
  background-image: repeating-linear-gradient(0deg, transparent 0 8px, color-mix(in srgb, var(--accent) 22%, transparent) 9px, transparent 10px), repeating-linear-gradient(90deg, transparent 0 95px, color-mix(in srgb, var(--accent) 18%, transparent) 96px, transparent 97px);
  background-size: 100% 72px, 192px 100%; animation: phx-neon-scan 5s linear infinite !important;
}
html[data-animation-style="embers"] .ambient::before,
html[data-animation-style="bokeh"] .ambient::before {
  inset: -12%; opacity: .24;
  background-image: radial-gradient(circle at 18% 78%, color-mix(in srgb, var(--accent) 68%, transparent) 0 2px, transparent 7px), radial-gradient(circle at 63% 66%, color-mix(in srgb, var(--accent) 50%, transparent) 0 2px, transparent 6px), radial-gradient(ellipse at 22% 100%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 48%);
  animation: phx-ember-float 6.8s ease-in-out infinite !important;
}
html[data-animation-style="dust"] .ambient::before {
  inset: -10%; opacity: .18;
  background-image: repeating-linear-gradient(0deg, transparent 0 38px, color-mix(in srgb, var(--accent) 12%, transparent) 39px, transparent 40px), radial-gradient(circle at 16% 28%, var(--accent) 0 1px, transparent 3px), radial-gradient(circle at 78% 42%, var(--accent) 0 1px, transparent 3px);
  animation: phx-dust-drift 14s ease-in-out infinite alternate !important;
}
html[data-animation-style="leaves"] .ambient::before {
  inset: -12%; opacity: .2;
  background-image: radial-gradient(ellipse 8px 18px at 15% 31%, color-mix(in srgb, var(--accent) 48%, transparent) 0 35%, transparent 70%), radial-gradient(ellipse 6px 15px at 72% 64%, color-mix(in srgb, var(--accent) 42%, transparent) 0 35%, transparent 70%), radial-gradient(ellipse 7px 17px at 87% 20%, color-mix(in srgb, var(--accent) 32%, transparent) 0 35%, transparent 70%);
  animation: phx-leaf-drift 12s ease-in-out infinite !important;
}
html[data-animation-style="mist"] .ambient::before {
  inset: -18%; opacity: .24; filter: blur(3px);
  background: radial-gradient(ellipse at 20% 35%, color-mix(in srgb, var(--accent) 28%, transparent), transparent 40%), radial-gradient(ellipse at 80% 68%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 42%);
  animation: phx-zen-mist 18s ease-in-out infinite !important;
}
html[data-animation-style="fireflies"] .ambient::before {
  inset: 0; opacity: .22;
  background-image: radial-gradient(circle at 21% 22%, var(--accent) 0 1px, transparent 4px), radial-gradient(circle at 68% 30%, color-mix(in srgb, var(--accent) 65%, #fff) 0 1px, transparent 4px), radial-gradient(circle at 81% 72%, var(--accent) 0 1px, transparent 4px);
  animation: phx-firefly 8s ease-in-out infinite !important;
}
html[data-animation-style="glaze"] .ambient::before {
  inset: -10% -40%; opacity: .16; filter: blur(7px);
  background: linear-gradient(105deg, transparent 35%, color-mix(in srgb, var(--accent) 30%, #fff) 48%, transparent 59%);
  animation: phx-glaze 9s ease-in-out infinite alternate !important;
}
html[data-animation-style="sunburst"] .ambient::before {
  width: 52vmax; height: 52vmax; right: -16vmax; top: -18vmax; opacity: .18; border-radius: 50%; filter: blur(1px);
  background: repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--accent) 35%, transparent) 0 5deg, transparent 5deg 18deg);
  animation: phx-sun-rotate 42s linear infinite !important;
}
html[data-animation-style="tide"] .workspace::before {
  background: repeating-linear-gradient(168deg, transparent 0 26px, color-mix(in srgb, var(--accent) 24%, transparent) 27px 29px, transparent 30px 80px);
  background-size: 260px 180px; animation: phx-tide 16s linear infinite !important;
}
html[data-animation-style="stars"] .ambient::before {
  inset: 0; opacity: .26;
  background-image: radial-gradient(circle at 14% 20%, var(--accent) 0 1px, transparent 4px), radial-gradient(circle at 70% 28%, var(--accent) 0 1px, transparent 4px), radial-gradient(circle at 42% 76%, var(--accent) 0 1px, transparent 4px), radial-gradient(circle at 88% 64%, var(--accent) 0 1px, transparent 4px);
  animation: phx-neon-stars 9s ease-in-out infinite !important;
}

/* The theme gallery used to add repeating stripe textures to the glass header
   and workspace. Those stripes were especially visible on iPhone, so keep the
   header and workspace surfaces clean in every color theme. Optional animation
   styles remain separate and are not used by the default "None" setting. */
html[data-theme] .topbar {
  background-image: linear-gradient(180deg, color-mix(in srgb, var(--accent) 20%, var(--panel)), color-mix(in srgb, var(--accent) 8%, var(--panel))) !important;
  background-size: 100% 100% !important;
  animation: none !important;
}
html[data-theme] .workspace::before {
  background: none !important;
  background-image: none !important;
  animation: none !important;
}

/* Light mode needs colored contrast instead of pale translucent highlights.
   Multiply blending lets the selected theme's accent read like a soft colored
   shadow on white surfaces, while preserving each animation's movement and
   keeping the header stripe-free. */
html[data-mode="light"][data-animation-style]:not([data-animation-style="none"]) .ambient::before,
html[data-mode="light"][data-animation-style]:not([data-animation-style="none"]) .ambient::after {
  mix-blend-mode: multiply;
}
html[data-mode="light"][data-animation-style="rain"] .ambient::before { opacity: .34; }
html[data-mode="light"][data-animation-style="rain"] .ambient::after { opacity: .22; }
html[data-mode="light"][data-animation-style="neon"] .ambient::before { opacity: .34; }
html[data-mode="light"][data-animation-style="embers"] .ambient::before,
html[data-mode="light"][data-animation-style="bokeh"] .ambient::before { opacity: .34; }
html[data-mode="light"][data-animation-style="dust"] .ambient::before { opacity: .3; }
html[data-mode="light"][data-animation-style="leaves"] .ambient::before { opacity: .32; }
html[data-mode="light"][data-animation-style="mist"] .ambient::before { opacity: .3; }
html[data-mode="light"][data-animation-style="fireflies"] .ambient::before { opacity: .34; }
html[data-mode="light"][data-animation-style="glaze"] .ambient::before { opacity: .24; }
html[data-mode="light"][data-animation-style="sunburst"] .ambient::before { opacity: .28; }
html[data-mode="light"][data-animation-style="stars"] .ambient::before { opacity: .36; }

@media (prefers-reduced-motion: reduce) {
  html[data-animation-style] .ambient::before,
  html[data-animation-style] .ambient::after,
  html[data-animation-style] .workspace::before { animation: none !important; }
}

/* Light-mode workspace backgrounds are opaque, so the fixed ambient layer can
   sit completely behind them. Keep the cards above this layer, but paint the
   selected animation into the transparent gaps of the workspace itself. This
   uses soft gradients only—never the removed horizontal stripe textures. */
html[data-mode="light"][data-animation-style]:not([data-animation-style="none"]) .workspace::before {
  content: "";
  background: radial-gradient(ellipse at 18% 28%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 43%), radial-gradient(ellipse at 78% 72%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 45%) !important;
  background-image: radial-gradient(ellipse at 18% 28%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 43%), radial-gradient(ellipse at 78% 72%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 45%) !important;
  background-size: 140% 140%, 140% 140% !important;
  opacity: .22;
  mix-blend-mode: multiply;
  animation: phx-surface-drift 11s ease-in-out infinite alternate !important;
}
html[data-mode="light"][data-animation-style="rain"] .workspace::before {
  background: linear-gradient(115deg, transparent 28%, color-mix(in srgb, var(--accent) 18%, transparent) 48%, transparent 68%) !important;
  background-size: 220% 100% !important;
  animation: phx-surface-glide 7s ease-in-out infinite alternate !important;
}
html[data-mode="light"][data-animation-style="neon"] .workspace::before {
  background: radial-gradient(circle at 18% 28%, color-mix(in srgb, var(--accent) 28%, transparent), transparent 16%), radial-gradient(circle at 78% 68%, color-mix(in srgb, var(--purple) 22%, transparent), transparent 18%) !important;
  background-size: 140% 140%, 140% 140% !important;
  animation: phx-neon-stars 6s ease-in-out infinite !important;
}
html[data-mode="light"][data-animation-style="embers"] .workspace::before,
html[data-mode="light"][data-animation-style="bokeh"] .workspace::before {
  background: radial-gradient(circle at 18% 78%, color-mix(in srgb, var(--accent) 38%, transparent), transparent 12%), radial-gradient(circle at 64% 64%, color-mix(in srgb, var(--accent) 28%, transparent), transparent 14%), radial-gradient(ellipse at 22% 100%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 46%) !important;
  animation: phx-ember-float 6.8s ease-in-out infinite !important;
}
html[data-mode="light"][data-animation-style="mist"] .workspace::before,
html[data-mode="light"][data-animation-style="glaze"] .workspace::before {
  background: linear-gradient(105deg, transparent 30%, color-mix(in srgb, var(--accent) 20%, transparent) 49%, transparent 68%) !important;
  background-size: 220% 100% !important;
  filter: blur(5px);
  animation: phx-glaze 9s ease-in-out infinite alternate !important;
}
html[data-mode="light"][data-animation-style="stars"] .workspace::before,
html[data-mode="light"][data-animation-style="fireflies"] .workspace::before {
  background: radial-gradient(circle at 14% 20%, var(--accent) 0 2px, transparent 8px), radial-gradient(circle at 70% 28%, var(--accent) 0 2px, transparent 8px), radial-gradient(circle at 42% 76%, var(--accent) 0 2px, transparent 8px), radial-gradient(circle at 88% 64%, var(--accent) 0 2px, transparent 8px) !important;
  animation: phx-neon-stars 8s ease-in-out infinite !important;
}
html[data-mode="light"][data-animation-style="dust"] .workspace::before,
html[data-mode="light"][data-animation-style="leaves"] .workspace::before {
  background: radial-gradient(ellipse 14px 28px at 16% 28%, color-mix(in srgb, var(--accent) 32%, transparent), transparent 72%), radial-gradient(ellipse 12px 24px at 76% 62%, color-mix(in srgb, var(--accent) 26%, transparent), transparent 72%), radial-gradient(ellipse at 48% 82%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 45%) !important;
  animation: phx-leaf-drift 12s ease-in-out infinite alternate !important;
}
html[data-mode="light"][data-animation-style="sunburst"] .workspace::before {
  background: radial-gradient(circle at 78% 4%, color-mix(in srgb, var(--accent) 24%, transparent), transparent 34%), radial-gradient(ellipse at 32% 74%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 32%) !important;
  animation: phx-surface-drift 13s ease-in-out infinite alternate !important;
}

/* Darker light-mode shadows: the movement should read on white surfaces, not
   dissolve into a pale tint. */
html[data-mode="light"][data-animation-style]:not([data-animation-style="none"]) .workspace::before {
  opacity: .42;
  filter: contrast(1.35) saturate(1.18) brightness(.78);
  mix-blend-mode: multiply;
}

/* Leaves get real pointed leaf silhouettes with a dark midrib, rather than
   three soft oval blobs. They float independently through the workspace. */
@keyframes phx-leaf-float {
  0%, 100% { transform: translate3d(0, 12px, 0) rotate(calc(var(--leaf-angle) - 6deg)); }
  50% { transform: translate3d(var(--leaf-drift), -18px, 0) rotate(calc(var(--leaf-angle) + 8deg)); }
}
.workspace-animation-decor {
  display: none;
  position: absolute;
  z-index: 0;
  inset: 94px 0 0;
  overflow: hidden;
  pointer-events: none;
}
.workspace-animation-decor .animation-leaf,
.workspace-animation-decor .animation-firefly { display: none; position: absolute; }
html[data-mode="light"][data-animation-style="leaves"] .workspace::before,
html[data-mode="light"][data-animation-style="fireflies"] .workspace::before {
  background: none !important;
  background-image: none !important;
  animation: none !important;
}
html[data-mode="light"][data-animation-style="leaves"] .workspace > .workspace-animation-decor,
html[data-mode="light"][data-animation-style="fireflies"] .workspace > .workspace-animation-decor {
  display: block;
}
html[data-mode="light"][data-animation-style="leaves"] .workspace-animation-decor .animation-leaf {
  display: block;
  width: clamp(15px, 2.2vw, 28px);
  height: clamp(32px, 4.4vw, 58px);
  border-radius: 100% 0 100% 0;
  background: color-mix(in srgb, var(--accent) 62%, #28313d);
  border: 1px solid color-mix(in srgb, var(--accent) 70%, #1d2630);
  box-shadow: inset -3px 1px 0 color-mix(in srgb, #101820 45%, transparent), 4px 8px 12px color-mix(in srgb, #1a2630 28%, transparent);
  filter: saturate(1.1) brightness(.82);
  animation: phx-leaf-float 13s ease-in-out infinite;
}
html[data-mode="light"][data-animation-style="leaves"] .workspace-animation-decor .animation-leaf::after {
  content: "";
  position: absolute;
  left: 48%;
  top: 12%;
  width: 1px;
  height: 76%;
  background: color-mix(in srgb, #101820 70%, transparent);
  transform: rotate(24deg);
  transform-origin: center;
}
html[data-mode="light"][data-animation-style="leaves"] .leaf-1 { left: 8%; top: 19%; --leaf-angle: -28deg; --leaf-drift: 16px; animation-delay: -2s; }
html[data-mode="light"][data-animation-style="leaves"] .leaf-2 { left: 29%; top: 62%; --leaf-angle: 34deg; --leaf-drift: -13px; animation-delay: -8s; }
html[data-mode="light"][data-animation-style="leaves"] .leaf-3 { left: 52%; top: 16%; --leaf-angle: -12deg; --leaf-drift: 10px; animation-delay: -5s; }
html[data-mode="light"][data-animation-style="leaves"] .leaf-4 { left: 73%; top: 46%; --leaf-angle: 27deg; --leaf-drift: -17px; animation-delay: -10s; }
html[data-mode="light"][data-animation-style="leaves"] .leaf-5 { left: 88%; top: 76%; --leaf-angle: -36deg; --leaf-drift: 12px; animation-delay: -1s; }

/* Fireflies are separate, irregularly placed dots with different drift paths;
   they no longer form a line or move as one rigid cluster. */
@keyframes phx-firefly-scatter {
  0%, 100% { opacity: .22; transform: translate3d(0, 0, 0) scale(.72); }
  42% { opacity: .9; transform: translate3d(var(--firefly-x), var(--firefly-y), 0) scale(1.18); }
  74% { opacity: .38; transform: translate3d(calc(var(--firefly-x) * -.55), calc(var(--firefly-y) * .7), 0) scale(.9); }
}
html[data-mode="light"][data-animation-style="fireflies"] .workspace-animation-decor .animation-firefly {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 72%, #202a35);
  box-shadow: 0 0 5px color-mix(in srgb, var(--accent) 72%, #202a35), 0 0 16px color-mix(in srgb, var(--accent) 42%, transparent);
  animation: phx-firefly-scatter 7s ease-in-out infinite;
}
html[data-mode="light"][data-animation-style="fireflies"] .firefly-1 { left: 13%; top: 18%; --firefly-x: 15px; --firefly-y: -11px; animation-delay: -1.1s; }
html[data-mode="light"][data-animation-style="fireflies"] .firefly-2 { left: 36%; top: 67%; --firefly-x: -12px; --firefly-y: 17px; animation-delay: -4.8s; }
html[data-mode="light"][data-animation-style="fireflies"] .firefly-3 { left: 67%; top: 22%; --firefly-x: 19px; --firefly-y: 8px; animation-delay: -2.7s; }
html[data-mode="light"][data-animation-style="fireflies"] .firefly-4 { left: 84%; top: 58%; --firefly-x: -16px; --firefly-y: -14px; animation-delay: -6.2s; }
html[data-mode="light"][data-animation-style="fireflies"] .firefly-5 { left: 56%; top: 84%; --firefly-x: 11px; --firefly-y: -18px; animation-delay: -3.4s; }
html[data-mode="light"][data-animation-style="fireflies"] .firefly-6 { left: 22%; top: 82%; --firefly-x: -18px; --firefly-y: -7px; animation-delay: -5.5s; }
html[data-mode="light"][data-animation-style="fireflies"] .firefly-7 { left: 77%; top: 36%; --firefly-x: 8px; --firefly-y: 15px; animation-delay: -1.9s; }
html[data-mode="light"][data-animation-style="fireflies"] .firefly-8 { left: 45%; top: 34%; --firefly-x: -9px; --firefly-y: -16px; animation-delay: -7.1s; }

@media (prefers-reduced-motion: reduce) {
  html[data-mode="light"][data-animation-style] .workspace::before,
  html[data-mode="light"][data-animation-style] .workspace-animation-decor .animation-leaf,
  html[data-mode="light"][data-animation-style] .workspace-animation-decor .animation-firefly { animation: none !important; }
}

/* A reliable visible shadow layer for the other light-mode styles. The old
   gradients were technically present but too pale after the white workspace
   background and multiply blending. */
@keyframes phx-shadow-drift {
  0%, 100% { transform: translate3d(-8%, 8%, 0) scale(.94); opacity: .28; }
  50% { transform: translate3d(10%, -10%, 0) scale(1.08); opacity: .52; }
}
@keyframes phx-shadow-sweep {
  from { transform: translate3d(-34%, 0, 0) rotate(-5deg); opacity: .22; }
  to { transform: translate3d(34%, 0, 0) rotate(5deg); opacity: .52; }
}
@keyframes phx-shadow-pulse {
  0%, 100% { transform: scale(.9); opacity: .24; }
  50% { transform: scale(1.12); opacity: .54; }
}
.workspace-animation-decor .animation-shadow {
  display: none;
  position: absolute;
  width: clamp(150px, 28vw, 390px);
  height: clamp(100px, 22vh, 240px);
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 58%, #1b2834);
  filter: blur(22px) saturate(1.22);
  mix-blend-mode: multiply;
  pointer-events: none;
}
html[data-mode="light"][data-animation-style]:not([data-animation-style="none"]) .workspace > .workspace-animation-decor {
  display: block;
}
html[data-mode="light"][data-animation-style]:not([data-animation-style="none"]) .workspace-animation-decor .animation-shadow {
  display: block;
  animation: phx-shadow-drift 12s ease-in-out infinite alternate;
}
html[data-mode="light"][data-animation-style="rain"] .workspace-animation-decor .animation-shadow,
html[data-mode="light"][data-animation-style="glaze"] .workspace-animation-decor .animation-shadow { animation-name: phx-shadow-sweep; }
html[data-mode="light"][data-animation-style="neon"] .workspace-animation-decor .animation-shadow,
html[data-mode="light"][data-animation-style="stars"] .workspace-animation-decor .animation-shadow { animation-name: phx-shadow-pulse; }
html[data-mode="light"][data-animation-style="embers"] .workspace-animation-decor .animation-shadow,
html[data-mode="light"][data-animation-style="bokeh"] .workspace-animation-decor .animation-shadow { animation-duration: 6.8s; }
.shadow-a { left: 5%; top: 18%; animation-delay: -2s; }
.shadow-b { left: 43%; top: 48%; animation-delay: -7s; }
.shadow-c { left: 72%; top: 12%; animation-delay: -10s; }
html[data-mode="light"][data-animation-style="leaves"] .workspace-animation-decor .animation-shadow,
html[data-mode="light"][data-animation-style="fireflies"] .workspace-animation-decor .animation-shadow { display: none; }

/* Use the same improved silhouettes in dark mode, with brighter accent ink. */
html[data-animation-style="leaves"] .workspace::before,
html[data-animation-style="fireflies"] .workspace::before {
  background: none !important;
  background-image: none !important;
  animation: none !important;
}
html[data-animation-style="leaves"] .workspace > .workspace-animation-decor,
html[data-animation-style="fireflies"] .workspace > .workspace-animation-decor { display: block; }
html[data-animation-style="leaves"] .workspace-animation-decor .animation-leaf {
  display: block;
  width: clamp(15px, 2.2vw, 28px);
  height: clamp(32px, 4.4vw, 58px);
  border-radius: 100% 0 100% 0;
  background: color-mix(in srgb, var(--accent) 74%, #ffffff);
  border: 1px solid color-mix(in srgb, var(--accent) 86%, #ffffff);
  box-shadow: inset -3px 1px 0 color-mix(in srgb, var(--accent) 35%, #101820), 0 5px 12px color-mix(in srgb, var(--accent) 45%, transparent);
  animation: phx-leaf-float 13s ease-in-out infinite;
}
html[data-animation-style="fireflies"] .workspace-animation-decor .animation-firefly {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 82%, #ffffff);
  box-shadow: 0 0 6px var(--accent), 0 0 18px color-mix(in srgb, var(--accent) 70%, transparent);
  animation: phx-firefly-scatter 7s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  html[data-animation-style] .workspace::before,
  html[data-animation-style] .workspace-animation-decor .animation-shadow,
  html[data-animation-style] .workspace-animation-decor .animation-leaf,
  html[data-animation-style] .workspace-animation-decor .animation-firefly { animation: none !important; }
  .panel:not(.static-panel) > :not(.panel-head),
  .logs-card .table-wrap,
  .assign-panel .manager-room-grid,
  .assign-panel > .empty-state,
  .checkout-add-body,
  .expected-add-body { transition: none !important; }
}

/* Final responsive overrides for the operational cards above. Kept last so
   legacy component rules cannot squeeze the phone layouts back into rows. */
.plastic-scoop-card .panel-head { align-items: end; gap: 14px; }
.plastic-scoop-card .plastic-scoop-form { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.plastic-scoop-card .plastic-room-list { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 16px 16px; }
.plastic-scoop-card .plastic-room-chip { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 5px 8px 5px 12px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); }
.plastic-scoop-card .plastic-room-remove { width: 24px; min-height: 24px; height: 24px; padding: 0; border: 0; border-radius: 50%; }
.late-entry-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.late-entry-form label { display: grid; gap: 5px; min-width: 0; }
.late-entry-form :is(input, select) { width: 100%; min-width: 0; box-sizing: border-box; }
.late-entry-form .late-reason-field { grid-column: 1 / span 2; }
.late-entry-form .late-add-submit { align-self: end; min-height: 42px; white-space: nowrap; }
.lf-photo-add { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; pointer-events: none !important; }
.maintenance-log-button { min-width: 92px; white-space: nowrap; }
.maintenance-list .maintenance-item { display: grid; grid-template-columns: minmax(70px, auto) 56px minmax(0, 1fr) auto; grid-template-areas: "room photo text actions"; align-items: center; gap: 10px; }
.maintenance-list .maintenance-room { grid-area: room; min-width: 0; max-width: 116px; text-align: left; overflow-wrap: anywhere; }
.maintenance-list .maintenance-photo-slot { grid-area: photo; display: flex; align-items: center; justify-content: center; min-width: 34px; min-height: 34px; }
.maintenance-list .maintenance-text { grid-area: text; min-width: 0; line-height: 1.45; overflow-wrap: anywhere; }
.maintenance-list .maintenance-row-actions { grid-area: actions; display: flex; align-items: center; justify-content: flex-end; gap: 7px; min-width: 0; flex-wrap: nowrap; width: auto; max-width: 100%; }
.maintenance-list .maintenance-row-actions .maintenance-fixer-select { flex: 0 1 118px; width: 118px; max-width: 118px; height: 34px; font-size: .75rem; }
.maintenance-list .maintenance-row-actions .maintenance-delete-button { flex: 0 0 34px; width: 34px; min-width: 34px; height: 34px; min-height: 34px; padding: 0; }
html[data-theme="custom"] :is(.panel, .metric, .room-card, .employee-bubble, .note) { border-color: color-mix(in srgb, var(--accent) 30%, var(--border)); box-shadow: 0 8px 24px color-mix(in srgb, var(--accent) 9%, transparent), inset 0 1px 0 color-mix(in srgb, white 22%, transparent); }
html[data-theme="custom"] .button.primary { background: linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 72%, white)); box-shadow: 0 5px 16px color-mix(in srgb, var(--accent) 24%, transparent); }
html[data-theme="custom"] .nav-item.active { background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 24%, transparent), color-mix(in srgb, var(--accent) 7%, transparent)); box-shadow: inset 3px 0 0 var(--accent); }
html[data-theme="custom"] :is(.metric, .room-card, .prod-score-card) { transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease; }
html[data-theme="custom"] :is(.metric, .room-card, .prod-score-card):hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--accent) 55%, var(--border)); }

@media (max-width: 700px) {
  .manager-early-arrival-row .button { white-space: normal; overflow-wrap: anywhere; }
  .plastic-scoop-card .panel-head { align-items: stretch; }
  .plastic-scoop-card .plastic-scoop-form { width: 100%; margin-left: 0; }
  .plastic-scoop-card .plastic-scoop-form select { flex: 1 1 auto; min-width: 0; }
  .late-entry-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .late-entry-form .late-reason-field, .late-entry-form .late-add-submit { grid-column: 1 / -1; }
  .maintenance-list .maintenance-item { grid-template-columns: minmax(76px, 92px) minmax(0, 1fr); grid-template-areas: "room text" "photo text" ". actions"; align-items: start; row-gap: 7px; padding: 13px 0; }
  .maintenance-list .maintenance-room { max-width: 92px; padding-top: 2px; }
  .maintenance-list .maintenance-photo-slot { justify-content: flex-start; }
  .maintenance-list .maintenance-row-actions { justify-content: flex-start; flex-wrap: nowrap; width: auto; max-width: 100%; }
  .maintenance-list .maintenance-row-actions .maintenance-fixer-select { flex: 0 1 118px; width: 118px; max-width: 118px; height: 34px; font-size: .75rem; }
  .maintenance-list .maintenance-row-actions .maintenance-delete-button { flex: 0 0 34px; width: 34px; min-width: 34px; height: 34px; min-height: 34px; padding: 0; }
  .maintenance-list .maintenance-logged-by { width: auto; padding: 0; border: 0; border-radius: 0; line-height: 1.35; }
  .lost-found-list .lost-found-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 68px; column-gap: 12px; row-gap: 8px; grid-template-areas: "main meta photo" "controls controls controls"; align-items: start; }
  .lost-found-list .lost-found-photo-slot { grid-area: photo; justify-self: end; }
  .lost-found-list .lost-found-main { grid-area: main; }
  .lost-found-list .lost-found-meta { grid-area: meta; }
  .lost-found-list .lost-found-controls { grid-area: controls; }
}

@media (max-width: 430px) {
  .late-entry-form { grid-template-columns: 1fr; }
  .late-entry-form .late-reason-field, .late-entry-form .late-add-submit { grid-column: 1; }
  .lost-found-list .lost-found-row { grid-template-columns: minmax(0, 1fr) 68px; grid-template-areas: "main photo" "meta photo" "controls controls"; }
  .lost-found-list .lost-found-meta { align-items: flex-start; margin-left: 0; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme="custom"] :is(.metric, .room-card, .prod-score-card) { transition: none; transform: none; }
}

/* Completed Monday-Sunday productivity report. */
#productivity-weekly-content { min-width: 0; grid-column: 1 / -1; }
.weekly-productivity-summary { display: block; cursor: pointer; list-style: none; }
.weekly-productivity-summary::-webkit-details-marker { display: none; }
.weekly-productivity-summary .panel-head { padding-right: 46px; }
.weekly-productivity-summary::after { content: '⌄'; position: absolute; top: 20px; right: 19px; color: var(--accent); font-size: 19px; font-weight: 800; line-height: 1; transition: transform var(--motion) ease; }
.weekly-productivity[open] .weekly-productivity-summary::after { transform: rotate(180deg); }
.weekly-productivity-content { padding: 0 17px 17px; }
.weekly-productivity .panel-head h3 { margin: 0; }
.weekly-productivity .panel-head p { margin: 4px 0; }
.weekly-productivity-overall { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 16px; margin: 10px 0 16px; border-radius: 12px; background: color-mix(in srgb, var(--accent) 10%, var(--panel)); }
.weekly-productivity-overall > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 14px; }
.weekly-productivity-overall-score { font-size: 36px; font-weight: 750; color: var(--accent); }
.weekly-productivity-overall-score small, .weekly-productivity-worker-score small { font-size: 12px; font-weight: 400; margin-left: 3px; color: var(--muted); }
.weekly-productivity-workers { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); gap: 10px; }
.weekly-productivity-worker { min-width: 0; padding: 13px; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); }
.weekly-productivity-worker-head { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.weekly-productivity-worker-head > div { min-width: 0; display: grid; gap: 5px; }
.weekly-productivity-worker-head > div:first-child { overflow-wrap: anywhere; }
.weekly-productivity-worker-head .muted { font-size: 12px; }
.weekly-productivity-worker-score { text-align: right; flex-shrink: 0; }
.weekly-productivity-worker-score > strong { font-size: 24px; color: var(--accent); }
.weekly-productivity-worker-score > span { font-size: 11px; color: var(--secondary); }
.weekly-productivity-worker details { margin-top: 12px; font-size: 12px; color: var(--secondary); }
.weekly-productivity-worker summary { cursor: pointer; }
.weekly-productivity-days { display: grid; gap: 8px; margin-top: 10px; }
.weekly-productivity-days > span { display: flex; justify-content: space-between; gap: 10px; }
.weekly-productivity-note { margin: 16px 0 0; font-size: 12px; line-height: 1.5; }

/* Day-only worker editing from Today and Assignments. */
.assignments-today-head > .edit-assignment-workers { flex: 0 0 auto; align-self: flex-start; }
.assignment-workers-dialog { width: min(540px, calc(100vw - 28px)); max-height: calc(100dvh - 40px); overflow-y: auto; overscroll-behavior: contain; }
.assignment-worker-list { display: grid; gap: 8px; margin: 16px 0; }
.assignment-worker-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; }
.assignment-worker-main { display: grid; gap: 4px; min-width: 0; overflow-wrap: anywhere; }
.assignment-worker-row .muted { font-size: 12px; }
.assignment-worker-row button { flex-shrink: 0; }
.assignment-worker-role-list { display: flex; flex-wrap: wrap; gap: 5px 8px; margin-top: 3px; }
.assignment-worker-role-label { display: inline-flex; align-items: center; gap: 4px; color: var(--text); font-size: 12px; line-height: 1.25; white-space: nowrap; }
.assignment-worker-role-label input { margin: 0; accent-color: var(--accent); }
.assignment-worker-add { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; }
.assignment-worker-add > label { display: grid; flex: 1; gap: 5px; min-width: 0; }
.assignment-worker-add select { width: 100%; min-width: 0; }
.assignment-worker-add-roles { flex: 1 1 100%; margin: 0; padding: 8px; border: 1px solid var(--border); border-radius: 10px; }
.assignment-worker-add-roles legend { padding: 0 5px; color: var(--muted); font-size: 12px; }
.assignment-workers-error { color: var(--red); }
#dashboard-view .today-card.is-collapsed.panel .panel-head > .edit-assignment-workers { display: inline-flex; }

.schedule-person-weeks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.schedule-person-week { min-width: 0; }
.schedule-person-week .schedule-row { padding-inline: 14px; }
.schedule-person-weeks > .panel + .panel { margin-top: 0; }
@media (max-width: 760px) {
  .schedule-person-weeks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .schedule-person-week .panel-head { padding: 12px 10px; }
  .schedule-person-week .panel-head h3 { font-size: 14px; line-height: 1.2; }
  .schedule-person-week .panel-head .muted { display: none; }
  .schedule-person-week .schedule-row { padding-inline: 10px; font-size: 12px; }
  .schedule-person-week .schedule-name { grid-template-columns: 58px minmax(0, 1fr); font-size: 11px; }
}

/* Optional centralized theme-sound controls. */
.theme-sound-preview-area { display: grid; gap: 8px; }
.theme-sound-preview-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.theme-sound-preview { min-height: 38px; }
[data-family-sound-controls] .lc-switch { display: flex; align-items: center; gap: 10px; min-height: 44px; }
[data-family-sound-controls] .lc-switch input[type="checkbox"] { width: 20px; height: 20px; min-height: 20px; flex: 0 0 20px; margin: 0; }

/* Compact Today-page manager working list + read-only dated message record. */
.messaged-rooms-panel .messaged-rooms-body { display: grid; gap: 14px; }
.messaged-rooms-panel { min-width: 0; }
.messaged-rooms-panel .panel-head { flex-wrap: wrap; gap: 8px; }
.messaged-rooms-panel .panel-head > div { min-width: 0; }
.messaged-rooms-panel h3 { overflow-wrap: anywhere; }
.messaged-rooms-panel .button.small, .messaged-rooms-panel input,
.room-tracking-clear-all.button, .messaged-dialog-actions .button { min-height: 44px; }
.messaged-rooms-panel .messaged-current-remove { min-width: 44px; min-height: 44px; }
.messaged-current-section, .messaged-record-section { min-width: 0; }
.messaged-record-section { border-top: 1px solid var(--border); padding-top: 12px; }
.messaged-rooms-subhead { display: flex; align-items: center; gap: 5px; margin-bottom: 7px; }
.messaged-rooms-subhead h4 { margin: 0; font-size: 13px; }
.messaged-room-chips { display: flex; flex-wrap: wrap; gap: 7px; min-height: 30px; align-items: center; }
.messaged-room-chip { display: inline-flex; align-items: center; gap: 7px; padding: 4px 5px 4px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface-raised, var(--surface)); color: var(--text); font-weight: 650; font-variant-numeric: tabular-nums; }
.messaged-current-remove { width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--muted); font: inherit; font-size: 20px; line-height: 1; cursor: pointer; }
.messaged-current-remove:hover, .messaged-current-remove:focus-visible { color: var(--danger, #b3261e); background: color-mix(in srgb, var(--danger, #b3261e) 12%, transparent); }
.messaged-room-add-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.messaged-room-add-form input { width: min(170px, 100%); min-width: 110px; min-height: 38px; }
.messaged-room-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
.messaged-record-rooms { margin: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.messaged-dialog { width: min(620px, calc(100vw - 28px)); max-width: none; max-height: min(82dvh, 780px); overflow: auto; padding: 0; border: 1px solid var(--border); border-radius: 16px; color: var(--text); background: var(--surface, Canvas); box-shadow: 0 18px 60px #0005; }
.messaged-dialog::backdrop { background: #070b18a8; backdrop-filter: blur(3px); }
.messaged-dialog-form, .messaged-history-dialog { display: grid; gap: 14px; padding: 18px; }
.messaged-dialog-form h3, .messaged-history-dialog h3 { margin: 0; }
.messaged-dialog-actions, .messaged-history-search { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.messaged-history-search { border-bottom: 1px solid var(--border); padding-bottom: 12px; }
.messaged-history-search label { font-size: 12px; color: var(--muted); }
.messaged-history-search input { min-height: 38px; }
.messaged-history-list { display: grid; gap: 8px; max-height: min(58dvh, 540px); overflow: auto; }
.messaged-history-day { padding: 11px 12px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-raised, var(--surface)); }
.messaged-history-day summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: pointer; font-weight: 650; }
.messaged-history-rooms { margin: 10px 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
@media (max-width: 560px) {
  .messaged-rooms-panel .panel-head { align-items: flex-start; }
  .messaged-rooms-panel .messaged-rooms-body { padding: 12px; }
  .messaged-room-add-form input { flex: 1 1 110px; }
  .messaged-room-add-form button, .messaged-room-actions button { min-height: 44px; }
  .messaged-current-remove { width: 42px; height: 42px; }
  .messaged-history-dialog, .messaged-dialog-form { padding: 14px; }
}

/* Open room items: preserve title width within each assignment card. */
.assignment-room-items .assignment-room-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  min-width: 0;
  padding: 12px;
}
.assignment-room-items .assignment-room-item-name {
  grid-row: 1;
  min-width: 0;
  width: 100%;
  color: var(--text);
  font-size: 14px;
  line-height: 1.45;
  word-break: normal;
  overflow-wrap: break-word;
}
.assignment-room-items .assignment-room-item-kind {
  grid-row: 2;
  justify-self: start;
  max-width: 100%;
  color: var(--text);
  font-size: 11px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: normal;
  padding: 3px 7px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--surface);
}
.assignment-room-items .room-item-visibility {
  grid-row: 3;
  justify-self: start;
  max-width: 100%;
  min-height: 44px;
  height: auto;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  white-space: normal;
  text-align: left;
  line-height: 1.4;
  overflow-wrap: break-word;
}
.assignment-room-items .room-item-visibility:focus-visible {
  outline: 2px solid var(--text);
  outline-offset: 3px;
}
/* Tomorrow planning shares the Today card controls and theme colors. */
.tomorrow-card .panel-head { gap: 12px; }
.tomorrow-date { color: var(--muted); font-size: 13px; white-space: nowrap; }
.tomorrow-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 10px; margin: 0; }
.tomorrow-metrics > div { display: grid; grid-template-rows: 1fr auto; min-width: 0; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--panel-soft, transparent); }
.tomorrow-metrics dt { align-self: start; min-block-size: 2lh; color: var(--muted); font-size: 12px; line-height: 1.4; }
.tomorrow-metrics dd { align-self: end; margin: 3px 0 0; font-size: 25px; font-weight: 750; line-height: 1.2; }
.tomorrow-notice { margin: 10px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.tomorrow-capacity { margin-top: 12px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; }
.tomorrow-capacity > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13px; }
.tomorrow-capacity > div strong { font-size: 22px; }
.tomorrow-capacity p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.tomorrow-staff { margin-top: 14px; }
.tomorrow-staff h4 { margin: 0 0 7px; font-size: 13px; }
.tomorrow-staff-list { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; }
.tomorrow-staff-list li { display: flex; flex-wrap: wrap; gap: 8px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 8px; font-size: 12px; overflow-wrap: anywhere; }
.tomorrow-staff-list span { color: var(--muted); }
@media (max-width: 600px) { .tomorrow-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; } }

/* Shared closet: scan the progress, expand only the supplies being stocked. */
.guest-closet-group { border-top: 1px solid var(--border); min-width: 0; }
.guest-closet-group summary { cursor: pointer; padding: 11px 0; font-size: 13px; font-weight: 600; }
.guest-closet-group summary > span { float: right; color: var(--muted); font-size: 12px; margin-left: 8px; }
.guest-closet-group label small { display: block; text-decoration: none; }
.guest-closet-checklist > p { margin: 0; font-size: 12px; }

/* Approval belongs to the plan, so its confirmed state stays in the header. */
.page-title-group { display: flex; align-items: center; gap: 8px; min-width: 0; }
.plan-approved-indicator { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 22px; width: 22px; height: 22px; border: 1px solid currentColor; border-radius: 50%; color: var(--text); font-size: 15px; line-height: 1; }
.plan-approved-indicator[hidden] { display: none; }
.assignment-plan-tools { flex-wrap: wrap; gap: 10px; }
.assignment-approval-group { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-width: 0; }
.assignment-approval-group h2 { margin: 0; font-size: 14px; }
.assignment-approval-group .approval-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.assignment-approval-group .button { min-height: 44px; }

/* Shared room badges stay beside the identity; existing note/flag colors remain theme-owned. */
.room-badges { display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center;max-width:100%;min-width:0;margin:0;vertical-align:middle; }
.room-number,.pet-room-number-line,.summary-room-number { flex-wrap:wrap; }
.room-badges .room-note-badge,.room-badges .ops-flag { white-space:normal;font-size:11px;line-height:1.25;overflow-wrap:anywhere; }
.inspection-mode .ops-header { flex-wrap:wrap; }
.im-room-badges { flex:1 0 100%;min-width:0; }
.inspection-mode .ops-header { position:sticky;top:0;z-index:3;background:var(--surface); }
/* Custom badges reuse the room-note pill; existing legacy colors remain theme-owned. */
.room-note-badge.custom-room-badge { gap:4px; }
.room-note-badge .custom-badge-remove { display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:24px;min-height:24px;padding:0;border:0;background:transparent;color:inherit;font-size:16px;line-height:1;cursor:pointer; }
.room-note-badge .custom-badge-remove:focus-visible { outline:2px solid currentColor;outline-offset:2px; }
.custom-room-badge[data-badge-color="purple"] { background:#f4e8ff;color:#582078;border-color:#582078; }
.custom-room-badge[data-badge-color="orange"] { background:#ffeadc;color:#773600;border-color:#773600; }
.custom-room-badge[data-badge-color="teal"] { background:#dff8f4;color:#005d52;border-color:#005d52; }
.custom-room-badge[data-badge-color="gold"] { background:#fff2bd;color:#654800;border-color:#654800; }
.custom-room-badge[data-badge-color="red"] { background:#ffe5e5;color:#852626;border-color:#852626; }
.custom-room-badge[data-badge-color="amber"] { background:#fff0d0;color:#703e00;border-color:#703e00; }
.custom-room-badge[data-badge-color="green"] { background:#e3f6df;color:#225b20;border-color:#225b20; }
.custom-room-badge[data-badge-color="blue"] { background:#e2efff;color:#1f4f84;border-color:#1f4f84; }
.custom-room-badge[data-badge-color="pink"] { background:#fbe5f0;color:#7c2853;border-color:#7c2853; }
.custom-badge-filters { display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,1fr);gap:10px; }
.room-note-badge-room { min-height:44px; }
.room-note-badge-room[hidden] { display:none!important; }
.room-note-badge-select-head { position:sticky;top:0;background:var(--surface);z-index:2;padding:6px 0; }
.custom-badge-preview { padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow-wrap:anywhere; }
.custom-preview-actions { display:flex;gap:8px;flex-wrap:wrap; }
.custom-badge-library { margin-top:8px; }
.custom-definition-row { display:grid;grid-template-columns:minmax(90px,1fr) minmax(80px,110px) auto auto;gap:6px;align-items:center;margin:8px 0; }
.custom-definition-row label,.custom-definition-row input,.custom-definition-row select { min-width:0;width:100%; }
@media(max-width:700px) { .room-note-badge .custom-badge-remove { min-width:32px;min-height:32px; } .custom-definition-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } .custom-definition-row button { min-height:44px; } }

/* Quick correction reuses the manager dialog and active theme. */
.room-status-correction-trigger{min-height:44px;font-size:.8rem;padding:6px 10px;align-self:start}
.room-status-correction-dialog{width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:hidden}
.room-status-correction-dialog[open]{display:flex;flex-direction:column}
.room-status-correction-dialog .room-status-correction-head{flex:none;align-items:center;padding:10px 14px;gap:10px}
.room-status-correction-head .eyebrow{margin:0 0 3px;font-size:.65rem}
.room-status-correction-dialog .room-status-correction-head h3{font-size:1.1rem}
.condition-body{padding:12px 14px;display:grid;gap:8px;overflow:auto;min-height:0;overflow-wrap:anywhere;overscroll-behavior:contain}
.condition-body>p{margin:0}
.condition-body label{display:grid;gap:4px;font-size:.85rem}
.condition-body select,.condition-body textarea,.condition-body button,.room-status-correction-head button,.room-status-correction-actions button{min-height:44px;max-width:100%}
.condition-body select,.condition-body textarea{color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:8px;width:100%;font:inherit}
.condition-body select{height:44px;appearance:none}
.condition-rooms{display:grid;gap:6px}
.condition-room{border:1px solid var(--border);border-radius:10px;padding:6px 10px;font-size:.85rem}
.condition-room-heading{display:flex;align-items:baseline;justify-content:space-between;gap:4px 12px;flex-wrap:wrap}
.condition-room-heading span{color:var(--text-muted,var(--text));font-size:.8rem}
.condition-room p{margin:4px 0}
.condition-room ul{padding-left:18px;margin:4px 0}
.condition-details summary{cursor:pointer;min-height:44px;align-content:center;font-size:.8rem}
.condition-details summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.condition-reason{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,auto);gap:6px 12px;align-items:end}
.condition-reason-details[open]{grid-column:1/-1}
.condition-reason textarea{display:block;resize:vertical}
.condition-counts{font-size:.8rem;line-height:1.4}
.condition-error{color:var(--danger)}
.condition-error:empty{display:none}
.condition-body .condition-inspection{display:flex;align-items:center;gap:8px;min-height:44px}
.condition-inspection input{width:24px;height:24px;flex:none}
.room-status-correction-dialog .room-status-correction-actions{flex:none;padding:10px 14px;border-top:1px solid var(--border);background:var(--surface);padding-bottom:max(10px,env(safe-area-inset-bottom))}
@media(max-width:600px){
 .room-status-correction-dialog{margin:auto auto 0;width:100%;max-width:100%;max-height:calc(100dvh - 12px);border-radius:16px 16px 0 0}
 .room-status-correction-dialog .room-status-correction-head{padding:8px 12px}
 .condition-body{padding:10px 12px}
 .condition-body select,.condition-body textarea{font-size:16px}
 .room-status-correction-dialog .room-status-correction-actions{padding-inline:12px}
}

/* Attendance classification shares existing compact controls and theme surfaces. */
.callout-badge { white-space:nowrap; font-size:11px; }
.callout-badge.excused { background:#dcefe2; color:#245436; border:1px solid #a8cfb5; }
.callout-badge.unexcused { background:#f6dfe0; color:#7d3039; border:1px solid #dcadb2; }
.callout-badge.pending { color:var(--muted); background:var(--panel-soft); }
.late-kind .badge { display:inline-flex; margin:0 4px 4px 0; }
.late-classification,.late-f-classification { display:block; width:100%; min-width:128px; max-width:155px; min-height:36px; margin-top:4px; font-size:12px; }
.late-classification-field[hidden] { display:none; }
.callout-filter { display:flex; align-items:center; gap:6px; font-size:12px; }
.callout-filter select { min-width:100px; }
.attendance-summaries { display:flex; flex-wrap:wrap; gap:10px 20px; padding:10px 16px; border-bottom:1px solid var(--border); }
.attendance-person { display:grid; gap:3px; min-width:0; font-size:12px; }
.attendance-summary { display:block; color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.attendance-summary small { display:block; }
.late-archive-row .late-classification { width:auto; }
@media(max-width:600px) { .attendance-summaries { padding:10px; gap:10px; } .attendance-person { width:100%; } .late-classification { min-height:40px; } }

#schedule-view .callout-badge.excused::before { background:#529468; box-shadow:none; }
#schedule-view .callout-badge.unexcused::before { background:#b94d5d; box-shadow:none; }

/* Immediate status correction controls reuse the active theme's surfaces. */
.condition-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.5fr);gap:8px}
.condition-body input[type=search],.condition-body input[type=text]{box-sizing:border-box;width:100%;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font:inherit}
.condition-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:sticky;top:-12px;z-index:1;background:var(--surface);border-block:1px solid var(--border);padding:6px 0;font-size:.8rem}
.condition-body .condition-check{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.condition-check input{width:20px;height:20px;flex:none;accent-color:var(--accent)}
.condition-bulk-target{flex:1 1 160px}.condition-bulk>span{color:var(--muted)}
.condition-edit-row{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,1fr);align-items:center;gap:4px 10px}
.condition-edit-row .condition-error{grid-column:1/-1}.condition-status-label{min-width:0}.condition-status-label>span{font-size:.75rem}
.condition-reason-inline>span{font-size:.75rem}.condition-feedback{font-size:.8rem}.condition-feedback:empty{display:none}
.condition-help{font-size:.76rem;line-height:1.35}
@media(max-width:560px){.condition-edit-row{grid-template-columns:minmax(90px,.65fr) minmax(0,1fr);padding:4px 8px}.condition-body input[type=search],.condition-body input[type=text]{font-size:16px}.condition-bulk{top:-10px}}
.condition-inline{display:grid;gap:5px;max-width:100%;min-width:0;text-align:left}
.condition-inline label{display:grid;gap:3px;font-size:.78rem;color:var(--text)}
.condition-inline select,.condition-inline input{box-sizing:border-box;width:100%;max-width:100%;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface-2);font:inherit}
.condition-inline [role=status]{font-size:.75rem;overflow-wrap:anywhere}.condition-inline [role=status]:empty{display:none}
@media(max-width:560px){.condition-inline select,.condition-inline input{font-size:16px}}

/* Compact bulk badge editor. Native details supports touch and keyboard. */
.room-note-badge-dialog { width:min(560px,calc(100vw - 24px)); }
.room-note-badge-form { gap:12px; }
.bulk-room-selector { min-width:0; }
.bulk-room-selector > summary { cursor:pointer; padding:10px 0; font-weight:600; }
.bulk-room-selector .room-note-badge-rooms { display:flex; flex-direction:column; max-height:190px; overflow:auto; gap:2px; }
.bulk-room-selector .room-note-badge-room { border:0; padding:7px; justify-content:flex-start; }
.bulk-room-selector .room-note-badge-room[hidden] { display:none; }
.bulk-room-chips { display:flex; flex-wrap:wrap; gap:5px; }
.bulk-room-chips:empty,[data-custom-selection-summary]:empty { display:none; }
.room-note-badge-form .room-note-badge-actions { position:sticky; bottom:0; background:var(--panel); padding:10px 0; z-index:1; }
.room-note-badge-form .custom-badge-library { order:0; }
[data-custom-save-error] { color:var(--danger); }

.room-badges:empty { display:none; }

.room-note-badge-form > label,.custom-badge-filters label { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:700; }
.room-note-badge-form [data-custom-selection-summary] { margin:0; font-size:12px; color:var(--muted); }
.room-note-badge-form .room-note-badge-actions > .muted { flex:1 1 220px; font-size:11px; }
.room-note-badge-form .room-note-badge-actions > button { margin-left:auto; }

.custom-badge-filters input,.custom-badge-filters select { width:100%; min-width:0; }

/* Maintenance repair rows keep space for repair details rather than room status. */
#maintenance-view .maintenance-list .maintenance-item { column-gap:8px; row-gap:6px; padding-block:10px; }
#maintenance-view .maintenance-list .maintenance-room { min-width:2.6em; max-width:5em; }
@media (max-width:600px) {
  #maintenance-view .maintenance-list .maintenance-item { grid-template-columns:56px minmax(0,1fr); }
  #maintenance-view .maintenance-list .maintenance-row-actions { flex-wrap:wrap; }
}


/* Source: themes-studio.css */
/* SISYPHUS / STUDIO COLLECTION
   Six materials, two deliberate registers. Load after styles.css and before
   card/motion polish. Opaque reading surfaces, bounded corners, existing fonts.
   Status tokens, status badges, room-priority borders and motion are not skins.
   --studio-card-surface / --studio-card-shadow are shared card-polish hooks. */

html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) {
  --accent-soft: color-mix(in srgb, var(--accent) 10%, transparent);
  --accent-soft-2: color-mix(in srgb, var(--accent) 18%, transparent);
  --ring: var(--accent);
  --glow: color-mix(in srgb, var(--accent) 12%, transparent);
  --well: var(--surface);
  --well-border: var(--border);
  --raise: var(--surface-2);
  --card: var(--panel);
  --foreground: var(--text);
  --studio-card-surface: var(--panel);
  --studio-shadow-color: rgba(0, 0, 0, .22);
  --lit-edge: inset 0 1px 0 rgba(255, 255, 255, .04);
  --seam: linear-gradient(90deg, transparent, var(--border-strong) 18%, var(--border-soft) 72%, transparent);
  --seam-strong: linear-gradient(90deg, var(--accent), var(--border-strong) 58%, transparent);
  --dawn-glow-a: transparent;
  --dawn-glow-b: transparent;
  --radius: 12px;
  --radius-s: 6px;
  --radius-m: 14px;
  --radius-l: 20px;
}
html[data-mode="light"]:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) {
  --studio-shadow-color: rgba(32, 38, 40, .10);
  --lit-edge: inset 0 1px 0 rgba(255, 255, 255, .72);
}

/* Coastal Linen — flax paper, sea-glass trim, relaxed editorial curves.
   The light register retains Phenix's cream / deep-teal relationship. */
html[data-theme="coastal"] {
  --bg: #101f24; --panel: #172b30; --surface: #1d3439; --surface-2: #263f43;
  --text: #f6f1e6; --secondary: #e0e4db; --muted: #c0cbc5; --faint: #b0bdb7;
  --accent: #8bcfc0; --accent-hover: #b0e4d4; --on-accent: #122d28; --accent-ink: #a8ded0;
  --border: #365256; --border-soft: #2c4247; --border-strong: #648681;
  --studio-sidebar: #13262a;
  --font: "Space Grotesk", system-ui, sans-serif;
  --font-display: "Sentient", Georgia, serif;
  --studio-heading-weight: 500; --studio-heading-spacing: -.018em;
  --studio-card-radius: 22px 8px 22px 8px; --studio-nav-radius: 14px 5px 14px 5px;
  --studio-card-shadow: 0 2px 2px -1px var(--studio-shadow-color), 0 10px 24px -16px var(--studio-shadow-color), var(--lit-edge);
  --studio-sidebar-finish: repeating-linear-gradient(0deg, transparent 0 31px, color-mix(in srgb, var(--border) 18%, transparent) 31px 32px);
}
html[data-mode="light"][data-theme="coastal"] {
  --bg: #f4f0e7; --panel: #fdfaf3; --surface: #faf7ef; --surface-2: #e5ece5;
  --text: #203b3b; --secondary: #37534e; --muted: #4c615d; --faint: #4c615d;
  --accent: #236b63; --accent-hover: #18534d; --on-accent: #fffdf6; --accent-ink: #23645d;
  --border: #c2d0c6; --border-soft: #dde4d9; --border-strong: #839e92;
  --studio-sidebar: #e5eee7;
}

/* Rosewood — oxblood lacquer, dusty rose stock and tailored book corners. */
html[data-theme="rosewood"] {
  --bg: #23181e; --panel: #2c2027; --surface: #342730; --surface-2: #402e38;
  --text: #fff2ed; --secondary: #ead9d7; --muted: #d1bfc4; --faint: #c5b4bc;
  --accent: #e6a7b8; --accent-hover: #f2c0cc; --on-accent: #381c2b; --accent-ink: #f0becc;
  --border: #60444f; --border-soft: #48333d; --border-strong: #a47d85;
  --studio-sidebar: #291b23;
  --font: "Space Grotesk", system-ui, sans-serif;
  --font-display: "Sentient", Georgia, serif;
  --studio-heading-weight: 500; --studio-heading-spacing: -.025em;
  --studio-card-radius: 5px 18px 5px 5px; --studio-nav-radius: 4px 12px 4px 4px;
  --studio-card-shadow: inset 3px 0 0 var(--border-soft), 0 4px 10px -6px var(--studio-shadow-color), var(--lit-edge);
  --studio-sidebar-finish: linear-gradient(90deg, var(--border-soft) 0 3px, transparent 3px);
}
html[data-mode="light"][data-theme="rosewood"] {
  --bg: #f3e9e6; --panel: #fff8f4; --surface: #fcf3ef; --surface-2: #edddde;
  --text: #422a34; --secondary: #593944; --muted: #71525c; --faint: #71525c;
  --accent: #8a3f58; --accent-hover: #713047; --on-accent: #fff8f4; --accent-ink: #82384f;
  --border: #d4b6be; --border-soft: #e8d3d7; --border-strong: #ad8590;
  --studio-sidebar: #efdfdf;
}

/* Matcha Studio — uncoated rice paper, olive ink, folded leaf silhouettes. */
html[data-theme="matcha"] {
  --bg: #171e17; --panel: #202b20; --surface: #283327; --surface-2: #344030;
  --text: #f4f4e8; --secondary: #e0e4d0; --muted: #c6cdb5; --faint: #bcc6ad;
  --accent: #bdcf8f; --accent-hover: #d5e3b0; --on-accent: #28301b; --accent-ink: #d0e0a5;
  --border: #4b5c41; --border-soft: #394831; --border-strong: #82936a;
  --studio-sidebar: #1c261b;
  --font: system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-display: "Space Grotesk", system-ui, sans-serif;
  --studio-heading-weight: 600; --studio-heading-spacing: -.025em;
  --studio-card-radius: 6px 24px 6px 24px; --studio-nav-radius: 5px 16px 5px 16px;
  --studio-card-shadow: 0 3px 0 -1px var(--border-soft), 0 8px 18px -14px var(--studio-shadow-color);
  --studio-sidebar-finish: linear-gradient(180deg, color-mix(in srgb, var(--border) 12%, transparent), transparent 24%);
}
html[data-mode="light"][data-theme="matcha"] {
  --bg: #eef0e4; --panel: #fcfcf3; --surface: #f6f7ed; --surface-2: #e1e8d3;
  --text: #2c3925; --secondary: #44503a; --muted: #566249; --faint: #566249;
  --accent: #506733; --accent-hover: #3f5227; --on-accent: #fcfff2; --accent-ink: #485f2d;
  --border: #c0cbaa; --border-soft: #dce3cd; --border-strong: #88996b;
  --studio-sidebar: #e5ead9;
}

/* Blue Hour — periwinkle over ink, continuous capsule keys, soft glass edges
   without translucent reading surfaces or neon bloom. */
html[data-theme="bluehour"] {
  --bg: #141d30; --panel: #1c2940; --surface: #24324b; --surface-2: #2d3c58;
  --text: #f1f5ff; --secondary: #dae2f5; --muted: #becce4; --faint: #b3c3df;
  --accent: #a9bfff; --accent-hover: #c7d5ff; --on-accent: #202b4b; --accent-ink: #c0d0ff;
  --border: #415575; --border-soft: #31435e; --border-strong: #7794c1;
  --studio-sidebar: #182338;
  --font: "Space Grotesk", system-ui, sans-serif;
  --font-display: "Space Grotesk", system-ui, sans-serif;
  --studio-heading-weight: 400; --studio-heading-spacing: -.035em;
  --studio-card-radius: 18px; --studio-nav-radius: 18px;
  --studio-card-shadow: inset 0 1px 0 var(--border-soft), 0 8px 24px -14px var(--studio-shadow-color);
  --studio-sidebar-finish: linear-gradient(180deg, color-mix(in srgb, var(--border) 16%, transparent), transparent 42%);
}
html[data-mode="light"][data-theme="bluehour"] {
  --bg: #eaf0f8; --panel: #f9fbff; --surface: #f3f6fd; --surface-2: #dfe7f4;
  --text: #253350; --secondary: #3e506f; --muted: #50617d; --faint: #50617d;
  --accent: #425fa0; --accent-hover: #314b85; --on-accent: #fafdff; --accent-ink: #3a5792;
  --border: #bdcbe2; --border-soft: #d6e0ef; --border-strong: #8098bf;
  --studio-sidebar: #e2eaf7;
}

/* Saffron House — turmeric, warm plaster and arched courtyard plaques. */
html[data-theme="saffron"] {
  --bg: #251e16; --panel: #30271d; --surface: #3a3022; --surface-2: #453a28;
  --text: #fff4df; --secondary: #f1e0c1; --muted: #d7c7aa; --faint: #cebea1;
  --accent: #e9c072; --accent-hover: #f5d599; --on-accent: #372817; --accent-ink: #f1d199;
  --border: #655237; --border-soft: #4e402c; --border-strong: #a88d58;
  --studio-sidebar: #2a2218;
  --font: "Space Grotesk", system-ui, sans-serif;
  --font-display: "Sentient", Georgia, serif;
  --studio-heading-weight: 500; --studio-heading-spacing: -.012em;
  --studio-card-radius: 28px 28px 9px 9px; --studio-nav-radius: 16px 16px 5px 5px;
  --studio-card-shadow: 0 3px 0 -1px var(--border-soft), 0 9px 20px -14px var(--studio-shadow-color), var(--lit-edge);
  --studio-sidebar-finish: linear-gradient(90deg, var(--border-soft) 0 1px, transparent 1px 5px, var(--border-soft) 5px 6px, transparent 6px);
}
html[data-mode="light"][data-theme="saffron"] {
  --bg: #f6edde; --panel: #fffaf0; --surface: #fcf5e7; --surface-2: #eee1c7;
  --text: #45351e; --secondary: #60492a; --muted: #705b3e; --faint: #705b3e;
  --accent: #855b19; --accent-hover: #694610; --on-accent: #fffbef; --accent-ink: #795218;
  --border: #d6bf96; --border-soft: #eadbbd; --border-strong: #b1935e;
  --studio-sidebar: #f0e4ce;
}

/* Silver Screen — cool pearl and graphite; crisp projection-frame corners,
   monospaced display captions, neutral materials so statuses remain the color. */
html[data-theme="silver"] {
  --bg: #191c21; --panel: #24282e; --surface: #2c3138; --surface-2: #363d46;
  --text: #f4f6f9; --secondary: #e0e5ec; --muted: #c5ced9; --faint: #bac5d1;
  --accent: #c4cfde; --accent-hover: #e1e8f1; --on-accent: #242c37; --accent-ink: #d7e1ef;
  --border: #515c6a; --border-soft: #3c4550; --border-strong: #8c9bab;
  --studio-sidebar: #20242a;
  --font: system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-display: "Space Mono", ui-monospace, monospace;
  --studio-heading-weight: 400; --studio-heading-spacing: -.035em;
  --studio-card-radius: 4px; --studio-nav-radius: 4px;
  --studio-card-shadow: 0 1px 0 var(--border-strong), 0 5px 12px -8px var(--studio-shadow-color), var(--lit-edge);
  --studio-sidebar-finish: linear-gradient(90deg, transparent calc(100% - 4px), var(--border-soft) calc(100% - 4px) calc(100% - 3px), transparent calc(100% - 3px));
}
html[data-mode="light"][data-theme="silver"] {
  --bg: #eceff3; --panel: #fcfdff; --surface: #f5f7fa; --surface-2: #e1e6ed;
  --text: #27313e; --secondary: #404e5f; --muted: #556273; --faint: #556273;
  --accent: #49596e; --accent-hover: #344256; --on-accent: #fbfdff; --accent-ink: #425369;
  --border: #c0c9d5; --border-soft: #dce2eb; --border-strong: #8898ac;
  --studio-sidebar: #e4e9f0;
}

/* Typography stays on content: operational numbers keep their existing mono
   plaques and compact tables keep their original size / density. */
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) body {
  font-family: var(--font);
}
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) :is(h1, h2, h3, h4, .brand strong) {
  font-family: var(--font-display);
  font-weight: var(--studio-heading-weight);
  letter-spacing: var(--studio-heading-spacing);
}
html[data-theme="rosewood"] :is(h1, h2) { font-style: italic; }

/* Bounded radii, never clipping masks: phone controls and focus outlines retain
   their full hit areas. Shadows use the light-mode register automatically. */
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) :is(.panel, .room-card, .metric) {
  border-radius: var(--studio-card-radius);
}
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) :is(.panel, .metric, .room-card:not(.finished):not(.arrival-tier):not(.early-tier)) {
  background: var(--studio-card-surface);
  box-shadow: var(--studio-card-shadow);
}
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) .panel-head {
  background: var(--surface);
  border-bottom-color: var(--border-soft);
}

/* A quiet material rail instead of a black sidebar carried over from dark
   mode. Only paint changes: sticky positioning, scroll and mobile layout stay. */
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) .sidebar {
  background: var(--studio-sidebar-finish), var(--studio-sidebar);
  border-color: var(--border);
  color: var(--text);
}
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) .sidebar nav {
  scrollbar-color: var(--border-strong) transparent;
}
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) :is(.nav-item, .mobile-nav-sheet-item) {
  border-radius: var(--studio-nav-radius);
}
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) .nav-item:hover {
  background: var(--surface-2);
  color: var(--text);
}
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) .nav-item.active {
  background: var(--surface-2);
  border-color: var(--border-strong);
  color: var(--text);
  box-shadow: inset 3px 0 0 var(--accent);
  text-shadow: none;
}

/* Solid accent fills avoid the legacy white glossy stripe, which defeats AA
   with light button labels. Hover gets its own tested contrast pair. */
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) .button.primary {
  background: var(--accent);
  color: var(--on-accent);
  border-color: var(--accent);
  border-radius: var(--studio-nav-radius);
  box-shadow: 0 2px 4px -2px var(--studio-shadow-color);
  text-shadow: none;
}
html:is([data-theme="coastal"], [data-theme="rosewood"], [data-theme="matcha"], [data-theme="bluehour"], [data-theme="saffron"], [data-theme="silver"]) .button.primary:hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
  color: var(--on-accent);
}


/* Source: themes-party.css */
/* PARTY COLLECTION — eight playful palettes. Screen-only: paper keeps its own ink.
   Load after themes-studio.css, before atmosphere.css and card-polish.css.
   Status colors and motion remain owned by their existing layers. */
@media screen {
  /* Confetti Club — sprinkle stationery with offset sticker corners. */
  html[data-theme="confetti"] {
    --font: "Space Grotesk", system-ui, sans-serif;
    --font-display: "Space Grotesk", system-ui, sans-serif;
    --studio-heading-weight: 600; --studio-heading-spacing: .005em;
    --studio-card-radius: 18px 6px 28px 6px; --studio-nav-radius: 12px 4px;
    --studio-card-shadow: 3px 4px 0 var(--border-soft), var(--lit-edge);
    --party-texture: radial-gradient(circle at 8px 9px, color-mix(in srgb, var(--accent) 16%, transparent) 0 2px, transparent 2.5px), radial-gradient(circle at 27px 23px, color-mix(in srgb, #e9b85e 16%, transparent) 0 2px, transparent 2.5px);
    --party-texture-size: 38px 32px;
    --bg: #19162e; --panel: #231f3b; --surface: #2b2645; --surface-2: #352e50;
    --text: #fff7ef; --secondary: #ece2fa; --muted: #d4c7e9; --faint: #d4c7e9;
    --accent: #cbb0ff; --accent-hover: #e0ccff; --on-accent: #2e194c; --accent-ink: #d8c5ff;
    --border: #635578; --border-soft: #413953; --border-strong: #9583b0; --studio-sidebar: #201b36;
  }
  html[data-mode="light"][data-theme="confetti"] {
    --bg: #f2edff; --panel: #fffbff; --surface: #f9f3ff; --surface-2: #e9e0f5;
    --text: #302047; --secondary: #46335e; --muted: #5f4a77; --faint: #5f4a77;
    --accent: #7540a0; --accent-hover: #5d2c85; --on-accent: #ffffff; --accent-ink: #623588;
    --border: #c7b4da; --border-soft: #e5d8f1; --border-strong: #9a7eb5; --studio-sidebar: #eee4fb;
  }
  /* Bubblegum Pop — candy bubbles, plush speech-label corners. */
  html[data-theme="bubblegum"] {
    --font: "Space Grotesk", system-ui, sans-serif;
    --font-display: "Space Grotesk", system-ui, sans-serif;
    --studio-heading-weight: 600; --studio-heading-spacing: -.025em;
    --studio-card-radius: 28px 28px 28px 8px; --studio-nav-radius: 22px;
    --studio-card-shadow: 0 4px 0 -1px var(--border-soft), 0 12px 24px -18px var(--studio-shadow-color), var(--lit-edge);
    --party-texture: radial-gradient(circle at 18px 19px, transparent 0 9px, color-mix(in srgb, var(--accent) 12%, transparent) 9.5px 11px, transparent 11.5px);
    --party-texture-size: 40px 38px;
    --bg: #2a1528; --panel: #361d32; --surface: #40223b; --surface-2: #4a2a43;
    --text: #fff2fa; --secondary: #f7dcec; --muted: #e4bdd5; --faint: #e4bdd5;
    --accent: #f5a6d5; --accent-hover: #ffc6e8; --on-accent: #461632; --accent-ink: #f6b9dc;
    --border: #77506a; --border-soft: #55384b; --border-strong: #b67e9c; --studio-sidebar: #30192d;
  }
  html[data-mode="light"][data-theme="bubblegum"] {
    --bg: #fff0f8; --panel: #fffbfe; --surface: #fff5fb; --surface-2: #f5dfed;
    --text: #4c203d; --secondary: #62314f; --muted: #783e60; --faint: #783e60;
    --accent: #a52e70; --accent-hover: #852256; --on-accent: #ffffff; --accent-ink: #92235f;
    --border: #dcb1cc; --border-soft: #efdaea; --border-strong: #b77d9f; --studio-sidebar: #f9e5f2;
  }
  /* Lemon Disco — citrus disco tiles with diagonal folded corners. */
  html[data-theme="lemondisco"] {
    --font: "Space Grotesk", system-ui, sans-serif;
    --font-display: "Space Mono", ui-monospace, monospace;
    --studio-heading-weight: 500; --studio-heading-spacing: .005em;
    --studio-card-radius: 6px 28px; --studio-nav-radius: 4px 14px;
    --studio-card-shadow: 3px 4px 0 var(--border-soft), var(--lit-edge);
    --party-texture: linear-gradient(90deg, color-mix(in srgb, var(--accent) 9%, transparent) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--accent) 9%, transparent) 1px, transparent 1px);
    --party-texture-size: 18px 18px;
    --bg: #22220d; --panel: #2b2c15; --surface: #34351b; --surface-2: #3d3f23;
    --text: #fffde9; --secondary: #ededcb; --muted: #d6d6a5; --faint: #d6d6a5;
    --accent: #e1ed70; --accent-hover: #f3fa9c; --on-accent: #292f0d; --accent-ink: #e7ef96;
    --border: #666839; --border-soft: #454827; --border-strong: #9da466; --studio-sidebar: #272912;
  }
  html[data-mode="light"][data-theme="lemondisco"] {
    --bg: #f6f7cf; --panel: #fffff1; --surface: #fafbdd; --surface-2: #e9edbf;
    --text: #303412; --secondary: #444923; --muted: #555e2c; --faint: #555e2c;
    --accent: #596718; --accent-hover: #445010; --on-accent: #fffff5; --accent-ink: #4c5b16;
    --border: #c4cb83; --border-soft: #e0e5ad; --border-strong: #8d9b4a; --studio-sidebar: #f0f3cb;
  }
  /* Pool Party — tiny wave arcs and flowing poolside capsules. */
  html[data-theme="poolparty"] {
    --font: "Space Grotesk", system-ui, sans-serif;
    --font-display: "Space Grotesk", system-ui, sans-serif;
    --studio-heading-weight: 600; --studio-heading-spacing: .005em;
    --studio-card-radius: 32px 12px 32px 12px; --studio-nav-radius: 20px 8px;
    --studio-card-shadow: 0 4px 0 -1px var(--border-soft), 0 12px 24px -18px var(--studio-shadow-color), var(--lit-edge);
    --party-texture: radial-gradient(ellipse at 50% 100%, transparent 0 12px, color-mix(in srgb, var(--accent) 12%, transparent) 13px 15px, transparent 16px);
    --party-texture-size: 38px 24px;
    --bg: #0b2430; --panel: #12313d; --surface: #193b47; --surface-2: #224551;
    --text: #effeff; --secondary: #d5f3f6; --muted: #b1d9df; --faint: #b1d9df;
    --accent: #77dce7; --accent-hover: #a4edf4; --on-accent: #103642; --accent-ink: #9ce6ed;
    --border: #396b78; --border-soft: #29515c; --border-strong: #69a1ab; --studio-sidebar: #102b36;
  }
  html[data-mode="light"][data-theme="poolparty"] {
    --bg: #e7f7f9; --panel: #f8feff; --surface: #effafd; --surface-2: #d6edf1;
    --text: #153d4b; --secondary: #295566; --muted: #396270; --faint: #396270;
    --accent: #09697c; --accent-hover: #075365; --on-accent: #ffffff; --accent-ink: #105e73;
    --border: #a8ced7; --border-soft: #d0e8ed; --border-strong: #70a6b5; --studio-sidebar: #dff2f6;
  }
  /* Berry Bounce — berry seeds, soft bookends and expressive serif headings. */
  html[data-theme="berrybounce"] {
    --font: "Space Grotesk", system-ui, sans-serif;
    --font-display: "Sentient", Georgia, serif;
    --studio-heading-weight: 500; --studio-heading-spacing: -.025em;
    --studio-card-radius: 26px 8px 8px 26px; --studio-nav-radius: 16px 5px 5px 16px;
    --studio-card-shadow: 0 4px 0 -1px var(--border-soft), 0 12px 24px -18px var(--studio-shadow-color), var(--lit-edge);
    --party-texture: radial-gradient(ellipse at 8px 10px, color-mix(in srgb, var(--accent) 13%, transparent) 0 3px, transparent 3.5px), radial-gradient(ellipse at 22px 20px, color-mix(in srgb, var(--accent) 9%, transparent) 0 3px, transparent 3.5px);
    --party-texture-size: 32px 30px;
    --bg: #23132f; --panel: #301d3e; --surface: #382447; --surface-2: #422e51;
    --text: #fbf2ff; --secondary: #ebd9f4; --muted: #d3bde1; --faint: #d3bde1;
    --accent: #d6a1f1; --accent-hover: #e7c1fa; --on-accent: #391743; --accent-ink: #deb6f3;
    --border: #6b4b80; --border-soft: #4a345d; --border-strong: #a379b5; --studio-sidebar: #2a1936;
  }
  html[data-mode="light"][data-theme="berrybounce"] {
    --bg: #f6eafa; --panel: #fefaff; --surface: #f9f0fd; --surface-2: #eedff5;
    --text: #442052; --secondary: #5a346c; --muted: #6c467e; --faint: #6c467e;
    --accent: #813496; --accent-hover: #662379; --on-accent: #ffffff; --accent-ink: #702c87;
    --border: #cfb0df; --border-soft: #e9d5f1; --border-strong: #a47cbb; --studio-sidebar: #f1e3f8;
  }
  /* Peach Parade — ribbon stripes and swept parade-banner corners. */
  html[data-theme="peachparade"] {
    --font: "Space Grotesk", system-ui, sans-serif;
    --font-display: "Sentient", Georgia, serif;
    --studio-heading-weight: 500; --studio-heading-spacing: -.025em;
    --studio-card-radius: 12px 32px 12px 12px; --studio-nav-radius: 8px 18px 8px 8px;
    --studio-card-shadow: 0 4px 0 -1px var(--border-soft), 0 12px 24px -18px var(--studio-shadow-color), var(--lit-edge);
    --party-texture: repeating-linear-gradient(120deg, transparent 0 17px, color-mix(in srgb, var(--accent) 8%, transparent) 17px 22px, transparent 22px 34px);
    --party-texture-size: auto;
    --bg: #2b1c1b; --panel: #382625; --surface: #422e2a; --surface-2: #4b3830;
    --text: #fff5e9; --secondary: #f3dfcc; --muted: #dec4b1; --faint: #dec4b1;
    --accent: #f4b491; --accent-hover: #fbcdb0; --on-accent: #49261e; --accent-ink: #f4c4a6;
    --border: #79564a; --border-soft: #573e35; --border-strong: #b58c72; --studio-sidebar: #32211f;
  }
  html[data-mode="light"][data-theme="peachparade"] {
    --bg: #fff0e4; --panel: #fffbf4; --surface: #fff5e9; --surface-2: #f4e2cf;
    --text: #512d26; --secondary: #633f32; --muted: #754c3e; --faint: #754c3e;
    --accent: #9b4b2d; --accent-hover: #7e3922; --on-accent: #fffffa; --accent-ink: #884026;
    --border: #ddc0a7; --border-soft: #efdccb; --border-strong: #ba9376; --studio-sidebar: #fae9d8;
  }
  /* Rainbow Arcade — pixel frames, mono labels and a quiet rainbow rail. */
  html[data-theme="rainbowarcade"] {
    --font: "Space Grotesk", system-ui, sans-serif;
    --font-display: "Space Mono", ui-monospace, monospace;
    --studio-heading-weight: 500; --studio-heading-spacing: .005em;
    --studio-card-radius: 3px; --studio-nav-radius: 3px;
    --studio-card-shadow: 3px 4px 0 var(--border-soft), var(--lit-edge);
    --party-texture: linear-gradient(90deg, #ed87ad55 0 16%, #f3bd6855 16% 33%, #c3d77b55 33% 50%, #74d5d855 50% 67%, #8faff455 67% 84%, #c39ee955 84%);
    --party-texture-size: 100% 4px;
    --bg: #121d2d; --panel: #1c283b; --surface: #243247; --surface-2: #2d3d53;
    --text: #f5f8ff; --secondary: #dfeafa; --muted: #c1d2e8; --faint: #c1d2e8;
    --accent: #9cbafa; --accent-hover: #bcd0ff; --on-accent: #182d51; --accent-ink: #b4cbff;
    --border: #46617e; --border-soft: #30445f; --border-strong: #799abc; --studio-sidebar: #182336;
  }
  html[data-mode="light"][data-theme="rainbowarcade"] {
    --bg: #edf1ff; --panel: #fbfcff; --surface: #f3f5ff; --surface-2: #e2e9f8;
    --text: #202f53; --secondary: #37496b; --muted: #4a5c7c; --faint: #4a5c7c;
    --accent: #3d56a2; --accent-hover: #2b4083; --on-accent: #ffffff; --accent-ink: #354d92;
    --border: #b7c6e7; --border-soft: #d7e0f4; --border-strong: #8198c5; --studio-sidebar: #e5ecfc;
  }
  /* Pumpkin Patch — rounded harvest labels, seed flecks and friendly pumpkins. */
  html[data-theme="pumpkinpatch"] {
    --font: "Space Grotesk", system-ui, sans-serif;
    --font-display: "Sentient", Georgia, serif;
    --studio-heading-weight: 500; --studio-heading-spacing: .005em;
    --studio-card-radius: 28px 28px 18px 18px; --studio-nav-radius: 14px 14px 8px 8px;
    --studio-card-shadow: 0 4px 0 -1px var(--border-soft), 0 12px 24px -18px var(--studio-shadow-color), var(--lit-edge);
    --party-texture: radial-gradient(ellipse at 12px 12px, color-mix(in srgb, var(--accent) 12%, transparent) 0 2px, transparent 3px), linear-gradient(90deg, transparent 0 24px, color-mix(in srgb, var(--accent) 6%, transparent) 24px 25px, transparent 25px);
    --party-texture-size: 32px 28px;
    --bg: #261b24; --panel: #322530; --surface: #3b2e38; --surface-2: #463842;
    --text: #fff4df; --secondary: #f2ddc5; --muted: #dec5ae; --faint: #dec5ae;
    --accent: #f5b578; --accent-hover: #ffcd96; --on-accent: #442418; --accent-ink: #f6c495;
    --border: #715349; --border-soft: #503b3e; --border-strong: #a88461; --studio-sidebar: #2c2029;
  }
  html[data-mode="light"][data-theme="pumpkinpatch"] {
    --bg: #fff0d8; --panel: #fffbf0; --surface: #fff5e4; --surface-2: #f0e2cc;
    --text: #492c28; --secondary: #624132; --muted: #73513e; --faint: #73513e;
    --accent: #995023; --accent-hover: #7b3b17; --on-accent: #fffff6; --accent-ink: #87461f;
    --border: #d7b994; --border-soft: #ecdbc1; --border-strong: #ad895e; --studio-sidebar: #f7e8d0;
  }
}

@media screen {
  html:is([data-theme="confetti"], [data-theme="bubblegum"], [data-theme="lemondisco"], [data-theme="poolparty"], [data-theme="berrybounce"], [data-theme="peachparade"], [data-theme="rainbowarcade"], [data-theme="pumpkinpatch"]) {
    --accent-soft: color-mix(in srgb, var(--accent) 10%, transparent);
    --accent-soft-2: color-mix(in srgb, var(--accent) 18%, transparent);
    --ring: var(--accent); --glow: color-mix(in srgb, var(--accent) 12%, transparent);
    --well: var(--surface); --well-border: var(--border); --raise: var(--surface-2);
    --card: var(--panel); --foreground: var(--text);
    --studio-card-surface: var(--panel); --studio-shadow-color: rgba(0, 0, 0, .24);
    --lit-edge: inset 0 1px 0 rgba(255, 255, 255, .05);
    --seam: linear-gradient(90deg, transparent, var(--border-strong), transparent);
    --seam-strong: linear-gradient(90deg, var(--accent), var(--border-soft), transparent);
    --dawn-glow-a: transparent; --dawn-glow-b: transparent;
    --radius: 12px; --radius-s: 6px; --radius-m: 14px; --radius-l: 20px;
  }
  html:is([data-theme="confetti"], [data-theme="bubblegum"], [data-theme="lemondisco"], [data-theme="poolparty"], [data-theme="berrybounce"], [data-theme="peachparade"], [data-theme="rainbowarcade"], [data-theme="pumpkinpatch"])[data-mode="light"] {
    --studio-shadow-color: rgba(45, 27, 47, .12);
    --lit-edge: inset 0 1px 0 rgba(255, 255, 255, .7);
  }
  /* Shapes never clip children or their focus rings. Semantic paints are untouched. */
  html:is([data-theme="confetti"], [data-theme="bubblegum"], [data-theme="lemondisco"], [data-theme="poolparty"], [data-theme="berrybounce"], [data-theme="peachparade"], [data-theme="rainbowarcade"], [data-theme="pumpkinpatch"]) :is(.panel, .room-card, .metric):not(:where(.print-preview-sheet *, #print-run-root *)) {
    border-radius: var(--studio-card-radius);
  }
  html:is([data-theme="confetti"], [data-theme="bubblegum"], [data-theme="lemondisco"], [data-theme="poolparty"], [data-theme="berrybounce"], [data-theme="peachparade"], [data-theme="rainbowarcade"], [data-theme="pumpkinpatch"]) :is(h1, h2, h3, h4, .brand strong):not(:where(.print-preview-sheet *, #print-run-root *)) {
    font-family: var(--font-display); font-weight: var(--studio-heading-weight);
    letter-spacing: var(--studio-heading-spacing);
  }
  html:is([data-theme="confetti"], [data-theme="bubblegum"], [data-theme="lemondisco"], [data-theme="poolparty"], [data-theme="berrybounce"], [data-theme="peachparade"], [data-theme="rainbowarcade"], [data-theme="pumpkinpatch"]) :is(.nav-item, .mobile-nav-sheet-item):not(:where(.print-preview-sheet *, #print-run-root *)) { border-radius: var(--studio-nav-radius); }
  /* A faint static motif only on headers, never on reading surfaces. The image
     rule intentionally outranks card-polish's later background shorthand. */
  html:is([data-theme="confetti"], [data-theme="bubblegum"], [data-theme="lemondisco"], [data-theme="poolparty"], [data-theme="berrybounce"], [data-theme="peachparade"], [data-theme="rainbowarcade"], [data-theme="pumpkinpatch"])[data-theme] .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) {
    background-image: var(--party-texture);
    background-size: var(--party-texture-size);
    background-repeat: repeat;
  }
  html:is([data-theme="confetti"], [data-theme="bubblegum"], [data-theme="lemondisco"], [data-theme="poolparty"], [data-theme="berrybounce"], [data-theme="peachparade"], [data-theme="rainbowarcade"], [data-theme="pumpkinpatch"]) .brand:not(:where(.print-preview-sheet *, #print-run-root *)) {
    background-image: var(--party-texture); background-size: var(--party-texture-size);
    border-radius: var(--studio-nav-radius);
  }
  html:is([data-theme="confetti"], [data-theme="bubblegum"], [data-theme="lemondisco"], [data-theme="poolparty"], [data-theme="berrybounce"], [data-theme="peachparade"], [data-theme="rainbowarcade"], [data-theme="pumpkinpatch"]) .button.primary:not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: var(--accent); color: var(--on-accent); border-color: var(--accent);
    border-radius: var(--studio-nav-radius); text-shadow: none;
    box-shadow: 0 3px 0 var(--border-soft);
  }
  html:is([data-theme="confetti"], [data-theme="bubblegum"], [data-theme="lemondisco"], [data-theme="poolparty"], [data-theme="berrybounce"], [data-theme="peachparade"], [data-theme="rainbowarcade"], [data-theme="pumpkinpatch"]) .button.primary:hover:not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: var(--accent-hover); color: var(--on-accent); border-color: var(--accent-hover);
  }
  html[data-theme="peachparade"] :is(h1, h2):not(:where(.print-preview-sheet *, #print-run-root *)) { font-style: italic; }
  html[data-theme="rainbowarcade"][data-theme] .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) { background-repeat: no-repeat; background-position: left bottom; }
  html[data-theme="rainbowarcade"] .brand:not(:where(.print-preview-sheet *, #print-run-root *)) { background-repeat: no-repeat; background-position: left bottom; }
  /* Decorative artwork stays in normal inline flow beside the name, not on
     top of a control. Keep the full three-friend illustration undistorted. */
  html[data-theme="pumpkinpatch"] :is(.brand strong, .housekeeper-greeting, .panel-head h3):not(:where(.print-preview-sheet *, #print-run-root *))::before {
    content: ""; display: inline-block; width: 50px; height: 24px;
    margin-inline-end: 8px; vertical-align: middle;
    background-image: url("/pumpkin-friends.svg");
    background-size: contain; background-repeat: no-repeat; background-position: left center;
    pointer-events: none;
  }
  html[data-theme="pumpkinpatch"] .housekeeper-greeting:not(:where(.print-preview-sheet *, #print-run-root *))::before { width: 68px; height: 34px; }
}


/* Source: themes-story.css */
/* STORY COLLECTION — genre-led palettes with full light/dark registers.
   Screen-only: operational print surfaces keep their existing paper treatment. */
@media screen {
  html:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"]) {
    --accent-soft: color-mix(in srgb, var(--accent) 11%, transparent);
    --accent-soft-2: color-mix(in srgb, var(--accent) 20%, transparent);
    --ring: color-mix(in srgb, var(--accent) 34%, transparent);
    --glow: color-mix(in srgb, var(--accent) 14%, transparent);
    --well: var(--surface); --well-border: var(--border); --raise: var(--surface-2);
    --card: var(--panel); --foreground: var(--text);
    --studio-card-surface: var(--panel); --studio-shadow-color: rgba(0, 0, 0, .27);
    --lit-edge: inset 0 1px 0 rgba(255, 255, 255, .055);
    --seam: linear-gradient(90deg, transparent, var(--border-strong), transparent);
    --seam-strong: linear-gradient(90deg, var(--accent), var(--border-soft), transparent);
    --dawn-glow-a: transparent; --dawn-glow-b: transparent;
  }
  html[data-mode="light"]:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"]) {
    --studio-shadow-color: rgba(29, 25, 24, .13);
    --lit-edge: inset 0 1px 0 rgba(255, 255, 255, .76);
  }

  /* Dystopian — concrete, warning amber and hard industrial geometry. */
  html[data-theme="dystopian"] {
    --bg:#101315; --panel:#171b1d; --surface:#202527; --surface-2:#2a3032;
    --text:#f0f1e9; --secondary:#d8d9cf; --muted:#b9bcb2; --faint:#a9ada4;
    --accent:#e2b34b; --accent-hover:#f0c765; --on-accent:#252009; --accent-ink:#efcb73;
    --border:#4d5351; --border-soft:#333937; --border-strong:#858b81; --studio-sidebar:#131719;
    --font:"Space Grotesk",system-ui,sans-serif; --font-display:"Space Mono",ui-monospace,monospace;
    --studio-heading-weight:700; --studio-heading-spacing:.045em; --studio-card-radius:2px; --studio-nav-radius:2px;
    --studio-card-shadow:4px 4px 0 #090b0c, var(--lit-edge);
    --story-texture:repeating-linear-gradient(135deg, transparent 0 13px, color-mix(in srgb, var(--accent) 13%, transparent) 13px 16px, transparent 16px 29px);
    --story-texture-size:84px 84px;
  }
  html[data-mode="light"][data-theme="dystopian"] {
    --bg:#d9d9d0; --panel:#f2f1e8; --surface:#e7e6dc; --surface-2:#d2d2c8;
    --text:#202423; --secondary:#3e4441; --muted:#575e5a; --faint:#626964;
    --accent:#755800; --accent-hover:#5c4400; --on-accent:#fffaf0; --accent-ink:#6a5000;
    --border:#a8aaa2; --border-soft:#cbccc3; --border-strong:#737972; --studio-sidebar:#cacbc2;
  }

  /* Post-Apocalyptic — oxidized steel, faded field canvas and rust. */
  html[data-theme="postapocalyptic"] {
    --bg:#10130f; --panel:#1c2019; --surface:#282b21; --surface-2:#36382b;
    --text:#f2ead5; --secondary:#ddd2bb; --muted:#bfb49e; --faint:#aea38e;
    --accent:#d2683f; --accent-hover:#e8835a; --on-accent:#2c1007; --accent-ink:#e9936d;
    --border:#5f6048; --border-soft:#3d4132; --border-strong:#8d896a; --studio-sidebar:#151914;
    --font:"Space Grotesk",system-ui,sans-serif; --font-display:"Space Mono",ui-monospace,monospace;
    --studio-heading-weight:700; --studio-heading-spacing:.02em; --studio-card-radius:4px 20px 4px 4px; --studio-nav-radius:3px 12px 3px 3px;
    --studio-card-shadow:inset 4px 0 0 var(--border-soft), 3px 5px 0 rgba(0,0,0,.35), var(--lit-edge);
    --story-texture:radial-gradient(ellipse 18px 7px at 16px 13px, color-mix(in srgb, var(--accent) 13%, transparent), transparent 72%), repeating-linear-gradient(167deg, transparent 0 11px, color-mix(in srgb, var(--border-strong) 16%, transparent) 12px 13px, transparent 14px 29px), linear-gradient(94deg, transparent 0 47%, color-mix(in srgb, var(--accent) 11%, transparent) 48% 49%, transparent 50%);
    --story-texture-size:73px 61px, 113px 83px, 157px 100%;
  }
  html[data-mode="light"][data-theme="postapocalyptic"] {
    --bg:#c9d3d0; --panel:#f1f4ed; --surface:#dfe7e1; --surface-2:#c2cfca;
    --text:#26312e; --secondary:#3d4c47; --muted:#52625d; --faint:#5e6e69;
    --accent:#8d371f; --accent-hover:#6d2817; --on-accent:#fff8ee; --accent-ink:#7d301c;
    --border:#8b9d95; --border-soft:#bdc9c3; --border-strong:#60766c; --studio-sidebar:#b9c8c2;
  }

  /* Vampire — velvet black, oxblood lacquer and old-silver borders. */
  html[data-theme="vampire"] {
    --bg:#0d080b; --panel:#180e14; --surface:#24131c; --surface-2:#341822;
    --text:#fff2eb; --secondary:#ead7d2; --muted:#cbb5b6; --faint:#b9a3a6;
    --accent:#d84a5d; --accent-hover:#ee6979; --on-accent:#20050a; --accent-ink:#f27b87;
    --border:#58343d; --border-soft:#382229; --border-strong:#91636b; --studio-sidebar:#120a0f;
    --font:"Space Grotesk",system-ui,sans-serif; --font-display:"Sentient",Georgia,serif;
    --studio-heading-weight:500; --studio-heading-spacing:.015em; --studio-card-radius:3px 24px 3px 24px; --studio-nav-radius:3px 16px 3px 16px;
    --studio-card-shadow:inset 0 0 0 1px #0b0608, 0 10px 28px -16px #000, var(--lit-edge);
    --story-texture:radial-gradient(ellipse 28px 9px at 50% 0, color-mix(in srgb, var(--accent) 15%, transparent), transparent 72%), linear-gradient(90deg, transparent 49%, color-mix(in srgb, var(--accent) 8%, transparent) 50%, transparent 51%);
    --story-texture-size:72px 28px, 72px 100%;
  }
  html[data-mode="light"][data-theme="vampire"] {
    --bg:#eee5e4; --panel:#fff8f5; --surface:#f6ece9; --surface-2:#e8d6d6;
    --text:#3b2028; --secondary:#58343d; --muted:#704f56; --faint:#795960;
    --accent:#8b1e32; --accent-hover:#6c1224; --on-accent:#fff8f5; --accent-ink:#7e1b2e;
    --border:#cfafb4; --border-soft:#e7d2d4; --border-strong:#a87981; --studio-sidebar:#e7dada;
  }

  /* Romance — blush stationery, ribbon curves and handwritten warmth. */
  html[data-theme="romance"] {
    --bg:#261820; --panel:#34212c; --surface:#402a36; --surface-2:#513543;
    --text:#fff4f6; --secondary:#f1dce3; --muted:#d9bcc8; --faint:#c9abb8;
    --accent:#f2a6b9; --accent-hover:#ffc2d0; --on-accent:#451c2a; --accent-ink:#f7bfd0;
    --border:#765261; --border-soft:#523944; --border-strong:#ab7c8d; --studio-sidebar:#2d1c26;
    --font:"Space Grotesk",system-ui,sans-serif; --font-display:"Sentient",Georgia,serif;
    --studio-heading-weight:500; --studio-heading-spacing:-.018em; --studio-card-radius:30px 12px 30px 12px; --studio-nav-radius:22px 8px;
    --studio-card-shadow:0 5px 0 -2px var(--border-soft), 0 16px 28px -22px #000, var(--lit-edge);
    --story-texture:radial-gradient(circle at 12px 12px, transparent 0 7px, color-mix(in srgb, var(--accent) 13%, transparent) 8px 9px, transparent 10px);
    --story-texture-size:38px 38px;
  }
  html[data-mode="light"][data-theme="romance"] {
    --bg:#fae9ef; --panel:#fffafd; --surface:#fff2f6; --surface-2:#f2dce5;
    --text:#4a2936; --secondary:#63404d; --muted:#775665; --faint:#80606c;
    --accent:#a53458; --accent-hover:#842642; --on-accent:#fffaff; --accent-ink:#922c4d;
    --border:#dfb8c7; --border-soft:#efd6df; --border-strong:#b98094; --studio-sidebar:#f5e0e8;
  }

  /* Deep Space Sci-Fi — orbital cyan, ultraviolet instruments and cut panels. */
  html[data-theme="scifi"] {
    --bg:#050d18; --panel:#0b1725; --surface:#102237; --surface-2:#17324c;
    --text:#effcff; --secondary:#d0eaf1; --muted:#a9cbd5; --faint:#96bac6;
    --accent:#55e1ee; --accent-hover:#86f1f7; --on-accent:#05272d; --accent-ink:#85eff7;
    --border:#28536a; --border-soft:#19374a; --border-strong:#4e8097; --studio-sidebar:#07121f;
    --font:"Space Grotesk",system-ui,sans-serif; --font-display:"Space Mono",ui-monospace,monospace;
    --studio-heading-weight:500; --studio-heading-spacing:.055em; --studio-card-radius:18px 3px 18px 3px; --studio-nav-radius:12px 2px 12px 2px;
    --studio-card-shadow:inset 3px 0 0 color-mix(in srgb, var(--accent) 32%, transparent), 0 0 18px color-mix(in srgb, var(--accent) 8%, transparent), var(--lit-edge);
    --story-texture:linear-gradient(90deg, transparent 0 68%, color-mix(in srgb, var(--accent) 13%, transparent) 68% 69%, transparent 69%), radial-gradient(circle at 8px 8px, var(--accent) 0 1px, transparent 2px);
    --story-texture-size:96px 100%, 48px 48px;
  }
  html[data-mode="light"][data-theme="scifi"] {
    --bg:#e7f2f6; --panel:#f9fdff; --surface:#edf8fb; --surface-2:#d4eaf1;
    --text:#123342; --secondary:#2b5263; --muted:#426878; --faint:#4e7381;
    --accent:#096b82; --accent-hover:#075368; --on-accent:#f7feff; --accent-ink:#086078;
    --border:#a8ccd7; --border-soft:#d0e5eb; --border-strong:#6fa4b4; --studio-sidebar:#ddedf2;
  }

  /* Book Lover — leather, parchment, margin rules and dog-eared corners. */
  html[data-theme="booklover"] {
    --bg:#1c1511; --panel:#2a2019; --surface:#35291f; --surface-2:#453529;
    --text:#fff3dc; --secondary:#ebdcc2; --muted:#d0bfa4; --faint:#bda98f;
    --accent:#d5aa62; --accent-hover:#e8c481; --on-accent:#3a2710; --accent-ink:#e8c47e;
    --border:#68513b; --border-soft:#493828; --border-strong:#967757; --studio-sidebar:#231a15;
    --font:"Space Grotesk",system-ui,sans-serif; --font-display:"Sentient",Georgia,serif;
    --studio-heading-weight:500; --studio-heading-spacing:-.012em; --studio-card-radius:4px 20px 20px 4px; --studio-nav-radius:3px 13px 13px 3px;
    --studio-card-shadow:inset 4px 0 0 var(--border-soft), 4px 5px 0 rgba(0,0,0,.2), var(--lit-edge);
    --story-texture:repeating-linear-gradient(0deg, transparent 0 20px, color-mix(in srgb, var(--accent) 8%, transparent) 20px 21px);
    --story-texture-size:100% 21px;
  }
  html[data-mode="light"][data-theme="booklover"] {
    --bg:#efe6d4; --panel:#fffaf0; --surface:#f8f0df; --surface-2:#e8dbc2;
    --text:#3e2e20; --secondary:#594431; --muted:#6d5844; --faint:#77624d;
    --accent:#79501f; --accent-hover:#5f3d16; --on-accent:#fffaf0; --accent-ink:#6c471c;
    --border:#cfba98; --border-soft:#e7d9c0; --border-strong:#9f8058; --studio-sidebar:#e8ddc8;
  }

  /* Pet Lover — cheerful sea-glass, coral tags and a trail of tiny paws. */
  html[data-theme="petlover"] {
    --bg:#10211f; --panel:#19302d; --surface:#213c38; --surface-2:#2c4b46;
    --text:#f4fff9; --secondary:#d9eee6; --muted:#bad7cc; --faint:#a8c7bc;
    --accent:#f19b78; --accent-hover:#ffb89a; --on-accent:#3b1e13; --accent-ink:#f7b69b;
    --border:#41665e; --border-soft:#2d4944; --border-strong:#70978d; --studio-sidebar:#152824;
    --font:"Space Grotesk",system-ui,sans-serif; --font-display:"Space Grotesk",system-ui,sans-serif;
    --studio-heading-weight:700; --studio-heading-spacing:-.025em; --studio-card-radius:26px; --studio-nav-radius:18px;
    --studio-card-shadow:0 4px 0 -1px var(--border-soft), 0 12px 26px -20px #000, var(--lit-edge);
    --story-texture:radial-gradient(ellipse 5px 4px at 17px 21px, color-mix(in srgb, var(--accent) 17%, transparent) 96%, transparent), radial-gradient(ellipse 2.5px 3px at 10px 14px, color-mix(in srgb, var(--accent) 17%, transparent) 96%, transparent), radial-gradient(ellipse 2.5px 3px at 16px 11px, color-mix(in srgb, var(--accent) 17%, transparent) 96%, transparent), radial-gradient(ellipse 2.5px 3px at 22px 14px, color-mix(in srgb, var(--accent) 17%, transparent) 96%, transparent), radial-gradient(ellipse 4.5px 3.5px at 45px 10px, color-mix(in srgb, var(--accent) 11%, transparent) 96%, transparent), radial-gradient(ellipse 2px 2.5px at 39px 4px, color-mix(in srgb, var(--accent) 11%, transparent) 96%, transparent), radial-gradient(ellipse 2px 2.5px at 45px 2px, color-mix(in srgb, var(--accent) 11%, transparent) 96%, transparent), radial-gradient(ellipse 2px 2.5px at 51px 5px, color-mix(in srgb, var(--accent) 11%, transparent) 96%, transparent);
    --story-texture-size:58px 38px;
  }
  html[data-mode="light"][data-theme="petlover"] {
    --bg:#e8f4ef; --panel:#fbfffc; --surface:#f0faf6; --surface-2:#d8ece4;
    --text:#21443d; --secondary:#385b53; --muted:#4e7067; --faint:#587970;
    --accent:#a74625; --accent-hover:#87361b; --on-accent:#fffaf6; --accent-ink:#963d20;
    --border:#afd0c4; --border-soft:#d3e7df; --border-strong:#78a99a; --studio-sidebar:#deeee8;
  }

  /* Autumn — maple copper, walnut, moss and pressed-leaf lines. */
  html[data-theme="autumn"] {
    --bg:#211611; --panel:#302019; --surface:#3b291f; --surface-2:#4b3527;
    --text:#fff1d8; --secondary:#ebd7b7; --muted:#d0b995; --faint:#bda582;
    --accent:#e08445; --accent-hover:#f19d60; --on-accent:#391b09; --accent-ink:#efa66e;
    --border:#72523b; --border-soft:#503929; --border-strong:#9f7956; --studio-sidebar:#281a14;
    --font:"Space Grotesk",system-ui,sans-serif; --font-display:"Sentient",Georgia,serif;
    --studio-heading-weight:500; --studio-heading-spacing:-.008em; --studio-card-radius:22px 5px 22px 5px; --studio-nav-radius:14px 4px 14px 4px;
    --studio-card-shadow:0 5px 0 -2px var(--border-soft), 0 14px 25px -20px #000, var(--lit-edge);
    --story-texture:linear-gradient(34deg, transparent 46%, color-mix(in srgb, var(--accent) 12%, transparent) 47% 49%, transparent 50%), radial-gradient(ellipse 6px 12px at 17px 14px, color-mix(in srgb, var(--accent) 10%, transparent), transparent 75%);
    --story-texture-size:48px 38px;
  }
  html[data-mode="light"][data-theme="autumn"] {
    --bg:#f3e6d2; --panel:#fffaf0; --surface:#f9eedf; --surface-2:#ead8bd;
    --text:#432d20; --secondary:#604433; --muted:#755b47; --faint:#7f6651;
    --accent:#9a461e; --accent-hover:#793415; --on-accent:#fff9ed; --accent-ink:#893d1b;
    --border:#d2b693; --border-soft:#e8d6bd; --border-strong:#a58460; --studio-sidebar:#ecdec9;
  }

  /* Spooky Halloween — theatrical purple, electric orange and web lines. */
  html[data-theme="spookyhalloween"] {
    --bg:#110b19; --panel:#1d1229; --surface:#29183a; --surface-2:#38204d;
    --text:#fff3df; --secondary:#eadcf4; --muted:#cdbbdc; --faint:#b8a4ca;
    --accent:#ff8a3d; --accent-hover:#ffa766; --on-accent:#351500; --accent-ink:#ffb17b;
    --border:#5d3f72; --border-soft:#3e2a4e; --border-strong:#8d69a3; --studio-sidebar:#160d20;
    --font:"Space Grotesk",system-ui,sans-serif; --font-display:"Sentient",Georgia,serif;
    --studio-heading-weight:600; --studio-heading-spacing:.018em; --studio-card-radius:24px 4px 24px 4px; --studio-nav-radius:15px 3px 15px 3px;
    --studio-card-shadow:0 0 0 1px #08050c, 0 9px 25px -16px #000, var(--lit-edge);
    --story-texture:repeating-conic-gradient(from 0deg at 0 0, color-mix(in srgb, var(--border-strong) 13%, transparent) 0 2deg, transparent 2deg 18deg);
    --story-texture-size:64px 64px;
  }
  html[data-mode="light"][data-theme="spookyhalloween"] {
    --bg:#f0e8f4; --panel:#fff9ff; --surface:#f7effb; --surface-2:#e6d7ef;
    --text:#382241; --secondary:#50345b; --muted:#684d73; --faint:#72577d;
    --accent:#a74212; --accent-hover:#85320b; --on-accent:#fff9f2; --accent-ink:#96390f;
    --border:#cbb5d7; --border-soft:#e4d6eb; --border-strong:#9d7caf; --studio-sidebar:#eadff0;
  }

  /* Fairy Tale Realm — an original moonlit other-world of old gold, forest,
     stone towers and dangerous wonder, inspired by dark portal fantasy. */
  html[data-theme="fairytale"] {
    --bg:#071512; --panel:#10251f; --surface:#17332b; --surface-2:#22473a;
    --text:#fff4d4; --secondary:#dce6d2; --muted:#b8cbb9; --faint:#a4b9a8;
    --accent:#e0b84f; --accent-hover:#f2cf72; --on-accent:#261b03; --accent-ink:#efd071;
    --border:#496959; --border-soft:#2b493c; --border-strong:#789279; --studio-sidebar:#091b17;
    --font:"Space Grotesk",system-ui,sans-serif; --font-display:"Sentient",Georgia,serif;
    --studio-heading-weight:500; --studio-heading-spacing:.006em; --studio-card-radius:30px 30px 8px 8px; --studio-nav-radius:16px 16px 6px 6px;
    --studio-card-surface:linear-gradient(155deg, color-mix(in srgb, var(--accent) 5%, var(--panel)) 0%, var(--panel) 52%, color-mix(in srgb, #000 12%, var(--panel)) 100%);
    --studio-card-shadow:inset 0 1px 0 color-mix(in srgb, var(--accent) 24%, transparent), inset 1px 0 0 color-mix(in srgb, var(--text) 8%, transparent), 0 14px 32px -20px #000, 0 0 24px -20px color-mix(in srgb, var(--accent) 62%, transparent);
    --story-texture:radial-gradient(circle at 18px 13px, color-mix(in srgb, var(--accent) 34%, transparent) 0 1.5px, transparent 2.2px), radial-gradient(circle at 54px 34px, color-mix(in srgb, var(--text) 16%, transparent) 0 1px, transparent 1.8px), linear-gradient(135deg, transparent 0 46%, color-mix(in srgb, var(--accent) 9%, transparent) 47% 49%, transparent 50% 100%), linear-gradient(45deg, transparent 0 46%, color-mix(in srgb, var(--border-strong) 11%, transparent) 47% 49%, transparent 50% 100%), radial-gradient(ellipse 13px 8px at 50% 100%, transparent 0 78%, color-mix(in srgb, var(--accent) 14%, transparent) 80% 88%, transparent 90%);
    --story-texture-size:72px 46px, 72px 46px, 38px 38px, 38px 38px, 42px 28px;
  }
  html[data-mode="light"][data-theme="fairytale"] {
    --bg:#c9d1df; --panel:#fffaf0; --surface:#e7e5ef; --surface-2:#c8cadc;
    --text:#202b45; --secondary:#394766; --muted:#53617c; --faint:#5d6980;
    --accent:#765017; --accent-hover:#5e3c0f; --on-accent:#fffaf0; --accent-ink:#67430f;
    --border:#9ca6bd; --border-soft:#d2d5e2; --border-strong:#687790; --studio-sidebar:#b8c3d5;
    --studio-card-surface:linear-gradient(145deg, #fffef9 0%, var(--panel) 48%, color-mix(in srgb, #9d8bb7 10%, var(--panel)) 100%);
    --studio-card-shadow:inset 0 1px 0 rgba(255,255,255,.98), inset 1px 0 0 color-mix(in srgb, var(--accent) 16%, transparent), 0 10px 24px -18px rgba(32,43,69,.42), 0 0 22px -20px color-mix(in srgb, var(--accent) 48%, transparent);
    --story-texture:radial-gradient(circle at 18px 13px, color-mix(in srgb, var(--accent) 34%, transparent) 0 1.5px, transparent 2.2px), radial-gradient(circle at 54px 34px, color-mix(in srgb, #6f5a8c 24%, transparent) 0 1.1px, transparent 1.9px), linear-gradient(135deg, transparent 0 46%, color-mix(in srgb, var(--accent) 10%, transparent) 47% 49%, transparent 50% 100%), linear-gradient(45deg, transparent 0 46%, color-mix(in srgb, #77638f 13%, transparent) 47% 49%, transparent 50% 100%), radial-gradient(ellipse 13px 8px at 50% 100%, transparent 0 78%, color-mix(in srgb, var(--accent) 15%, transparent) 80% 88%, transparent 90%);
  }

  html[data-theme="postapocalyptic"] .workspace {
    background-color:var(--bg);
    background-image:radial-gradient(ellipse at 82% 8%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 27%), repeating-linear-gradient(174deg, transparent 0 53px, color-mix(in srgb, var(--border-strong) 9%, transparent) 54px 55px, transparent 56px 89px);
  }
  html[data-theme="postapocalyptic"] .topbar {
    border-style:dashed; border-width:1px 1px 3px; border-radius:3px 20px 3px 3px;
  }
  html[data-theme="postapocalyptic"] :is(.panel,.room-card,.metric):not(:where(.print-preview-sheet *,#print-run-root *)) {
    border-style:solid dashed solid solid;
  }

  html[data-theme="fairytale"] .workspace {
    background-color:var(--bg);
    background-image:radial-gradient(circle at 88% 5%, color-mix(in srgb, var(--accent) 20%, transparent) 0 3.5rem, transparent 3.65rem), radial-gradient(ellipse at 12% 96%, color-mix(in srgb, var(--border-strong) 20%, transparent), transparent 38%), linear-gradient(105deg, transparent 0 8%, color-mix(in srgb, var(--surface-2) 22%, transparent) 8.2% 8.8%, transparent 9% 91%, color-mix(in srgb, var(--surface-2) 18%, transparent) 91.2% 92%, transparent 92.2%);
    background-attachment:fixed;
  }
  html[data-theme="fairytale"] .topbar:not(:where(.print-preview-sheet *,#print-run-root *)) {
    border-color:color-mix(in srgb, var(--accent) 58%, var(--border));
    border-radius:34px 34px 10px 10px;
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 14%, transparent), 0 12px 30px -24px color-mix(in srgb, var(--accent) 70%, transparent) !important;
  }
  html[data-theme="fairytale"] .sidebar:not(:where(.print-preview-sheet *,#print-run-root *)) {
    background-image:radial-gradient(circle at 50% 4%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 13rem), repeating-radial-gradient(ellipse 88px 42px at 50% 0, transparent 0 34px, color-mix(in srgb, var(--accent) 7%, transparent) 35px 36px, transparent 37px 50px);
  }
  html[data-mode="light"][data-theme="fairytale"] .workspace {
    background-image:radial-gradient(circle at 88% 5%, color-mix(in srgb, var(--accent) 18%, #fff7d6) 0 3.5rem, transparent 3.65rem), radial-gradient(ellipse at 16% 92%, color-mix(in srgb, #8d78a8 24%, transparent), transparent 42%), linear-gradient(180deg, color-mix(in srgb, var(--panel) 18%, transparent), transparent 42%, color-mix(in srgb, var(--surface-2) 24%, transparent));
  }
  html[data-theme="fairytale"] :is(.brand strong,.housekeeper-greeting,.panel-head h3):not(:where(.print-preview-sheet *,#print-run-root *)) {
    text-shadow:0 1px 0 color-mix(in srgb, var(--accent) 30%, transparent), 0 0 18px color-mix(in srgb, var(--accent) 13%, transparent);
  }
  html[data-theme="fairytale"] .nav-item.active:not(:where(.print-preview-sheet *,#print-run-root *)) {
    border-color:color-mix(in srgb, var(--accent) 62%, var(--border));
    box-shadow:inset 3px 0 0 var(--accent), 0 0 18px color-mix(in srgb, var(--accent) 10%, transparent) !important;
  }
  html[data-theme="fairytale"] .approval-box:not(:where(.print-preview-sheet *,#print-run-root *)) {
    padding:0;
    overflow:hidden;
  }
  html[data-theme="fairytale"] .approval-box > .panel-head:not(:where(.print-preview-sheet *,#print-run-root *)) {
    width:100%;
    box-sizing:border-box;
    border-radius:29px 29px 0 0;
  }
  html[data-theme="fairytale"] .approval-box.is-collapsed > .panel-head:not(:where(.print-preview-sheet *,#print-run-root *)) {
    border-bottom:0;
    border-radius:inherit;
  }

  /* Shared genre treatment: motifs stay in headers and navigation, never over
     dense operational rows. Semantic arrival/finished colors remain untouched. */
  html:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"]) body { font-family:var(--font); }
  html:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"]) :is(h1,h2,h3,h4,.brand strong):not(:where(.print-preview-sheet *,#print-run-root *)) { font-family:var(--font-display); font-weight:var(--studio-heading-weight); letter-spacing:var(--studio-heading-spacing); }
  html:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"]) :is(.panel,.room-card,.metric):not(:where(.print-preview-sheet *,#print-run-root *)) { border-radius:var(--studio-card-radius); }
  html:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"]) :is(.panel,.metric,.room-card:not(.finished):not(.arrival-tier):not(.early-tier)):not(:where(.print-preview-sheet *,#print-run-root *)) { background:var(--studio-card-surface); box-shadow:var(--studio-card-shadow); }
  html:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"])[data-theme] .panel > .panel-head:not(:where(.print-preview-sheet *,#print-run-root *)) { background-color:var(--surface); background-image:var(--story-texture); background-size:var(--story-texture-size); }
  html:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"]) .sidebar { background:var(--studio-sidebar); border-color:var(--border); color:var(--text); }
  html:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"]) :is(.nav-item,.mobile-nav-sheet-item) { border-radius:var(--studio-nav-radius); }
  html:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"]) .nav-item.active { background:var(--surface-2); border-color:var(--border-strong); color:var(--text); box-shadow:inset 3px 0 0 var(--accent); }
  html:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"]) .button.primary { background:var(--accent); border-color:var(--accent); border-radius:var(--studio-nav-radius); color:var(--on-accent); text-shadow:none; }
  html:is([data-theme="dystopian"], [data-theme="postapocalyptic"], [data-theme="vampire"], [data-theme="romance"], [data-theme="scifi"], [data-theme="booklover"], [data-theme="petlover"], [data-theme="autumn"], [data-theme="spookyhalloween"], [data-theme="fairytale"]) .button.primary:hover { background:var(--accent-hover); border-color:var(--accent-hover); color:var(--on-accent); }
  html[data-theme="vampire"] :is(h1,h2,.housekeeper-greeting), html[data-theme="romance"] :is(h1,h2,.housekeeper-greeting) { font-style:italic; }
  html[data-theme="dystopian"] :is(h1,h2,h3), html[data-theme="scifi"] :is(h1,h2,h3) { text-transform:uppercase; }
}


/* Source: atmosphere.css */
/* Sisyphus atmosphere — load after styles.css and themes-studio.css.
   One clipped plane INSIDE the workspace, above its opaque light-mode fill,
   below the existing z-index:1 operational children. No card/text overlays.
   Explicit specificity retires the legacy theme and light-only effect stacks. */
html[data-theme][data-mode][data-animation-style] .ambient {
  display: none !important;
}
html[data-theme][data-mode][data-animation-style] .ambient::before,
html[data-theme][data-mode][data-animation-style] .ambient::after {
  content: none !important;
  background: none !important;
  animation: none !important;
}
html[data-theme][data-mode][data-animation-style] .workspace::before {
  content: none !important;
  background: none !important;
  animation: none !important;
}
html[data-theme][data-mode][data-animation-style] .workspace {
  isolation: isolate;
}
html[data-theme][data-mode][data-animation-style] .workspace > .workspace-animation-decor {
  display: block;
  position: absolute;
  inset: 94px 0 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  contain: paint;
  opacity: 1;
  mix-blend-mode: normal;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 48px, #000 calc(100% - 48px), transparent);
  mask-image: linear-gradient(to bottom, transparent, #000 48px, #000 calc(100% - 48px), transparent);
}
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor .animation-shadow {
  display: none !important;
  animation: none !important;
}

/* Palette-derived ink works with every named theme and custom accent. Local
   alpha belongs to each mark, not a dark wash across the whole workspace. */
html[data-animation-style] {
  --atm-ink: color-mix(in srgb, var(--accent, #33907f) 66%, #e2f0eb);
  --atm-secondary: color-mix(in srgb, var(--accent, #33907f) 52%, #c09b4b);
  --atm-soft: color-mix(in srgb, var(--atm-ink) 34%, transparent);
  --atm-faint: color-mix(in srgb, var(--atm-ink) 16%, transparent);
  --atm-detail: .56;
  --atm-field: .25;
  --atm-a: none;
  --atm-b: none;
  --atm-size-a: 100% 100%;
  --atm-size-b: 100% 100%;
  --atm-motion-a: none;
  --atm-motion-b: none;
}
html[data-mode="light"][data-animation-style] {
  --atm-ink: color-mix(in srgb, var(--accent, #135a51) 64%, #1b2a26);
  --atm-secondary: color-mix(in srgb, var(--accent, #135a51) 56%, #856022);
  --atm-detail: .42;
  --atm-field: .19;
}
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor::before,
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor::after {
  content: "";
  display: block;
  position: absolute;
  inset: -48px -24px;
  pointer-events: none;
  background-image: var(--atm-a);
  background-size: var(--atm-size-a);
  background-repeat: repeat;
  opacity: var(--atm-detail);
  animation: var(--atm-motion-a);
}
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor::after {
  background-image: var(--atm-b);
  background-size: var(--atm-size-b);
  opacity: var(--atm-field);
  animation: var(--atm-motion-b);
}
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor :is(.animation-leaf, .animation-firefly) {
  display: none;
  pointer-events: none;
  filter: none;
  mix-blend-mode: normal;
  animation: none;
}

/* Finite tapered drops, not repeating diagonal stripes. Incommensurate tile
   sizes and independently advancing depths avoid a mechanical rain curtain. */
html[data-animation-style="rain"] {
  --atm-a: radial-gradient(ellipse 1px 17px at 21px 34px, var(--atm-ink) 12%, transparent 100%), radial-gradient(ellipse 1px 9px at 77px 119px, var(--atm-soft) 18%, transparent 100%), radial-gradient(ellipse 1.4px 24px at 137px 71px, var(--atm-ink) 6%, transparent 100%), radial-gradient(ellipse .9px 13px at 293px 173px, var(--atm-ink) 10%, transparent 100%), radial-gradient(ellipse 1.2px 6px at 367px 251px, var(--atm-soft) 12%, transparent 100%);
  --atm-b: radial-gradient(ellipse 2px 7px at 53px 88px, var(--atm-ink) 15%, transparent 100%), radial-gradient(ellipse 3px 12px at 183px 147px, var(--atm-soft) 20%, transparent 100%);
  --atm-size-a: 419px 233px, 547px 317px, 661px 409px, 433px 281px, 571px 347px;
  --atm-size-b: 307px 367px, 431px 479px;
  --atm-motion-a: atm-rain 3.6s linear infinite;
  --atm-motion-b: atm-droplets 9.5s linear infinite;
}
html[data-animation-style="neon"] {
  --atm-a: radial-gradient(ellipse 2px 90px at 12% 34%, var(--atm-ink) 0%, transparent 90%), radial-gradient(ellipse 130px 1px at 79% 66%, var(--atm-ink) 0%, transparent 96%);
  --atm-b: radial-gradient(ellipse 90px 32px at 12% 34%, var(--atm-soft), transparent), radial-gradient(ellipse 110px 36px at 79% 66%, var(--atm-soft), transparent);
  --atm-motion-a: atm-neon 8s ease-in-out infinite alternate;
  --atm-motion-b: atm-breathe 13s ease-in-out infinite alternate;
}
html[data-animation-style="embers"] {
  --atm-a: radial-gradient(ellipse 1.5px 4px at 11% 82%, var(--atm-secondary) 30%, transparent), radial-gradient(circle 2px at 42% 67%, var(--atm-ink) 40%, transparent), radial-gradient(ellipse 2px 5px at 73% 91%, var(--atm-secondary), transparent), radial-gradient(circle 1px at 88% 43%, var(--atm-ink), transparent);
  --atm-b: radial-gradient(circle 2px at 22% 61%, var(--atm-secondary), transparent), radial-gradient(circle 3px at 59% 88%, var(--atm-secondary), transparent), radial-gradient(circle 1px at 83% 32%, var(--atm-ink), transparent);
  --atm-size-a: 479px 421px;
  --atm-size-b: 617px 563px;
  --atm-motion-a: atm-embers 11s ease-in-out infinite;
  --atm-motion-b: atm-embers 17s -7s ease-in-out infinite;
}
html[data-animation-style="dust"] {
  --atm-a: radial-gradient(circle 1px at 17% 21%, var(--atm-ink) 55%, transparent), radial-gradient(circle .8px at 63% 46%, var(--atm-ink) 45%, transparent), radial-gradient(circle 1.4px at 34% 78%, var(--atm-soft), transparent);
  --atm-b: radial-gradient(circle 1px at 82% 16%, var(--atm-ink), transparent), radial-gradient(circle 2px at 42% 57%, var(--atm-soft), transparent);
  --atm-size-a: 211px 257px;
  --atm-size-b: 349px 331px;
  --atm-motion-a: atm-dust 29s ease-in-out infinite alternate;
  --atm-motion-b: atm-dust 41s -19s ease-in-out infinite alternate-reverse;
}
html[data-animation-style="mist"] {
  --atm-a: radial-gradient(ellipse 55% 12% at 15% 36%, var(--atm-soft), transparent 95%), radial-gradient(ellipse 44% 9% at 83% 74%, var(--atm-soft), transparent 95%);
  --atm-b: radial-gradient(ellipse 48% 8% at 65% 24%, var(--atm-soft), transparent 95%);
  --atm-motion-a: atm-mist 31s ease-in-out infinite alternate;
  --atm-motion-b: atm-mist 43s -17s ease-in-out infinite alternate-reverse;
}
/* Low Power Glow is card-local. Retire the old workspace-sized oval so the
   only visible light comes from the exact silhouette of each card. */
html[data-animation-style="low-power"] .workspace-animation-decor::before,
html[data-animation-style="low-power"] .workspace-animation-decor::after,
html[data-animation-style="low-power"] .workspace-animation-decor > * {
  display: none !important;
  animation: none !important;
}
html[data-animation-style="glaze"] {
  --atm-a: linear-gradient(112deg, transparent 30%, var(--atm-faint) 44%, var(--atm-soft) 46%, transparent 48%);
  --atm-b: linear-gradient(112deg, transparent 57%, var(--atm-soft) 58%, transparent 59%);
  --atm-size-a: 190% 100%;
  --atm-size-b: 170% 100%;
  --atm-motion-a: atm-glaze 19s ease-in-out infinite alternate;
  --atm-motion-b: atm-glaze 27s -11s ease-in-out infinite alternate-reverse;
}
html[data-animation-style="sunburst"] {
  --atm-a: conic-gradient(from 12deg at 92% 8%, transparent 0deg 34deg, var(--atm-faint) 37deg 43deg, transparent 46deg 65deg, var(--atm-soft) 68deg 72deg, transparent 75deg 96deg, var(--atm-faint) 100deg 109deg, transparent 113deg 360deg);
  --atm-b: radial-gradient(circle 95px at 92% 8%, var(--atm-soft), transparent);
  --atm-motion-a: atm-sunburst 37s ease-in-out infinite alternate;
  --atm-motion-b: atm-breathe 21s ease-in-out infinite alternate;
}
html[data-animation-style="bokeh"] {
  --atm-a: radial-gradient(circle 28px at 18% 31%, transparent 72%, var(--atm-soft) 83%, transparent 98%), radial-gradient(circle 43px at 72% 68%, var(--atm-faint) 60%, var(--atm-soft) 86%, transparent 100%), radial-gradient(circle 17px at 89% 19%, var(--atm-soft), transparent);
  --atm-b: radial-gradient(circle 58px at 41% 83%, var(--atm-soft), transparent), radial-gradient(circle 22px at 61% 26%, var(--atm-soft), transparent);
  --atm-motion-a: atm-bokeh 23s ease-in-out infinite alternate;
  --atm-motion-b: atm-bokeh 31s -13s ease-in-out infinite alternate-reverse;
}
html[data-animation-style="tide"] {
  --atm-a: radial-gradient(ellipse 74% 21% at 28% 111%, transparent 87%, var(--atm-soft) 89%, transparent 92%), radial-gradient(ellipse 82% 28% at 86% 114%, transparent 87%, var(--atm-soft) 89%, transparent 91%);
  --atm-b: radial-gradient(ellipse 88% 38% at 51% 122%, transparent 86%, var(--atm-soft) 89%, transparent 92%);
  --atm-motion-a: atm-tide 17s ease-in-out infinite alternate;
  --atm-motion-b: atm-tide 25s -9s ease-in-out infinite alternate-reverse;
}
html[data-animation-style="stars"] {
  --atm-a: radial-gradient(circle 1.6px at 12% 18%, var(--atm-ink) 45%, transparent), radial-gradient(circle 1px at 44% 39%, var(--atm-ink) 40%, transparent), radial-gradient(circle 2px at 81% 64%, var(--atm-ink) 40%, transparent), radial-gradient(circle 1px at 31% 83%, var(--atm-ink), transparent);
  --atm-b: radial-gradient(ellipse 1px 5px at 71% 24%, var(--atm-ink) 25%, transparent), radial-gradient(ellipse 5px 1px at 71% 24%, var(--atm-ink) 25%, transparent), radial-gradient(circle 1px at 58% 72%, var(--atm-ink), transparent);
  --atm-size-a: 397px 353px;
  --atm-size-b: 613px 541px;
  --atm-motion-a: atm-stars 9s ease-in-out infinite alternate;
  --atm-motion-b: atm-stars 13s -5s ease-in-out infinite alternate-reverse;
}
html[data-animation-style="ashfall"] {
  --atm-a: radial-gradient(ellipse 1px 3px at 13% 18%, var(--atm-ink) 20%, transparent), radial-gradient(circle 1px at 38% 72%, var(--atm-soft) 30%, transparent), radial-gradient(ellipse 2px 1px at 69% 34%, var(--atm-ink) 18%, transparent), radial-gradient(circle 1.5px at 89% 81%, var(--atm-soft), transparent);
  --atm-b: radial-gradient(circle 1px at 22% 58%, var(--atm-ink) 18%, transparent), radial-gradient(ellipse 1px 2px at 77% 16%, var(--atm-soft), transparent);
  --atm-size-a: 263px 311px;
  --atm-size-b: 397px 449px;
  --atm-motion-a: atm-ashfall 15s linear infinite;
  --atm-motion-b: atm-ashfall 23s -9s linear infinite;
}

/* The five leaf marks become silhouettes for the story effects. They retain
   independent placement and timing, so the scene never moves as one sticker. */
html[data-theme][data-mode][data-animation-style="bats"] .workspace-animation-decor .animation-leaf,
html[data-theme][data-mode][data-animation-style="hearts"] .workspace-animation-decor .animation-leaf,
html[data-theme][data-mode][data-animation-style="pages"] .workspace-animation-decor .animation-leaf {
  display:block; position:absolute; opacity:var(--atm-detail); border:0; box-shadow:none;
}
html[data-theme][data-mode][data-animation-style="bats"] .workspace-animation-decor .animation-leaf {
  width:calc(var(--atm-leaf-width, 18px) * 1.65); height:var(--atm-leaf-width, 18px);
  border-radius:0; background:linear-gradient(135deg, var(--atm-ink), var(--atm-secondary));
  clip-path:polygon(0 42%,18% 12%,38% 35%,50% 12%,62% 35%,82% 12%,100% 42%,80% 90%,57% 62%,50% 100%,43% 62%,20% 90%);
  animation:atm-bat var(--atm-duration,17s) var(--atm-delay,-2s) ease-in-out infinite;
}
html[data-theme][data-mode][data-animation-style="hearts"] .workspace-animation-decor .animation-leaf {
  width:var(--atm-leaf-width,18px); height:calc(var(--atm-leaf-width,18px) * .9);
  border-radius:0; background:linear-gradient(145deg, var(--atm-ink), var(--atm-secondary));
  clip-path:polygon(50% 96%,8% 55%,2% 34%,7% 15%,22% 4%,39% 7%,50% 22%,61% 7%,78% 4%,93% 15%,98% 34%,92% 55%);
  animation:atm-heart var(--atm-duration,17s) var(--atm-delay,-2s) ease-in-out infinite;
}
html[data-theme][data-mode][data-animation-style="pages"] .workspace-animation-decor .animation-leaf {
  width:calc(var(--atm-leaf-width,18px) * 1.05); height:calc(var(--atm-leaf-width,18px) * 1.35);
  border:1px solid var(--atm-soft); border-radius:2px 7px 2px 2px;
  background:repeating-linear-gradient(0deg, var(--atm-ink) 0 1px, color-mix(in srgb, var(--atm-ink) 18%, transparent) 1px 5px), linear-gradient(135deg, var(--atm-secondary), var(--atm-ink));
  animation:atm-page var(--atm-duration,17s) var(--atm-delay,-2s) ease-in-out infinite;
}

/* Eight small marks provide depth for fast meteor trails and a playful path of
   paw pads. Both use palette-derived ink in light and dark modes. */
html[data-theme][data-mode][data-animation-style="meteors"] .workspace-animation-decor .animation-firefly,
html[data-theme][data-mode][data-animation-style="pawprints"] .workspace-animation-decor .animation-firefly {
  display:block; position:absolute; opacity:var(--atm-detail); border:0;
}
html[data-theme][data-mode][data-animation-style="meteors"] .workspace-animation-decor .animation-firefly {
  width:clamp(34px,6vw,76px); height:2px; border-radius:999px;
  background:linear-gradient(90deg, transparent, var(--atm-soft) 35%, var(--atm-ink));
  box-shadow:5px 0 8px var(--atm-soft);
  animation:atm-meteor var(--atm-duration,15s) var(--atm-delay,-2s) linear infinite;
}
html[data-theme][data-mode][data-animation-style="pawprints"] .workspace-animation-decor .animation-firefly {
  width:calc(var(--atm-dot,4px) * 2.4); height:calc(var(--atm-dot,4px) * 2); border-radius:48% 48% 56% 56%;
  background:var(--atm-ink);
  box-shadow:-5px -6px 0 -1px var(--atm-secondary), 0 -8px 0 -1px var(--atm-secondary), 5px -6px 0 -1px var(--atm-secondary);
  animation:atm-paw var(--atm-duration,12s) var(--atm-delay,-2s) ease-in-out infinite;
}

/* The existing five leaves and eight fireflies supply truly independent paths.
   All placements apply in both modes (legacy placements were light-only). */
html[data-theme][data-mode][data-animation-style="leaves"] .workspace-animation-decor .animation-leaf {
  display: block;
  position: absolute;
  width: var(--atm-leaf-width, 18px);
  height: calc(var(--atm-leaf-width, 18px) * 1.85);
  border-radius: 100% 0 100% 0;
  border: 1px solid var(--atm-soft);
  background: linear-gradient(62deg, var(--atm-ink) 47%, var(--atm-secondary) 49%, var(--atm-ink) 52%);
  box-shadow: inset -2px 0 0 var(--atm-soft);
  opacity: var(--atm-detail);
  transform: rotate(var(--atm-angle, -24deg));
  animation: atm-leaf var(--atm-duration, 17s) var(--atm-delay, -2s) ease-in-out infinite;
}
html[data-theme][data-mode][data-animation-style="leaves"] .workspace-animation-decor .animation-leaf::after {
  content: none;
}
html[data-theme][data-mode][data-animation-style="fireflies"] .workspace-animation-decor .animation-firefly {
  display: block;
  position: absolute;
  width: var(--atm-dot, 4px);
  height: var(--atm-dot, 4px);
  border-radius: 50%;
  background: var(--atm-ink);
  box-shadow: 0 0 4px var(--atm-soft), 0 0 11px var(--atm-soft);
  opacity: var(--atm-detail);
  animation: atm-firefly var(--atm-duration, 9s) var(--atm-delay, -2s) ease-in-out infinite;
}
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor :is(.leaf-1, .firefly-1) { left: 5%; top: 16%; --atm-angle: -28deg; --atm-x: 17px; --atm-y: -23px; --atm-duration: 17s; --atm-delay: -3s; --atm-leaf-width: 16px; --atm-dot: 3px; }
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor :is(.leaf-2, .firefly-2) { left: 27%; top: 64%; --atm-angle: 32deg; --atm-x: -21px; --atm-y: 14px; --atm-duration: 21s; --atm-delay: -11s; --atm-leaf-width: 23px; --atm-dot: 5px; }
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor :is(.leaf-3, .firefly-3) { left: 49%; top: 24%; --atm-angle: -12deg; --atm-x: 12px; --atm-y: -18px; --atm-duration: 19s; --atm-delay: -7s; --atm-leaf-width: 19px; --atm-dot: 3.5px; }
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor :is(.leaf-4, .firefly-4) { left: 73%; top: 47%; --atm-angle: 48deg; --atm-x: -24px; --atm-y: -11px; --atm-duration: 26s; --atm-delay: -17s; --atm-leaf-width: 14px; --atm-dot: 4px; }
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor :is(.leaf-5, .firefly-5) { left: 93%; top: 79%; --atm-angle: -41deg; --atm-x: 9px; --atm-y: -27px; --atm-duration: 23s; --atm-delay: -5s; --atm-leaf-width: 21px; --atm-dot: 3px; }
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor .firefly-6 { left: 17%; top: 83%; --atm-x: -19px; --atm-y: -8px; --atm-duration: 11s; --atm-delay: -6s; --atm-dot: 2.5px; }
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor .firefly-7 { left: 85%; top: 12%; --atm-x: 8px; --atm-y: 19px; --atm-duration: 13s; --atm-delay: -9s; --atm-dot: 4.5px; }
html[data-theme][data-mode][data-animation-style] .workspace-animation-decor .firefly-8 { left: 58%; top: 89%; --atm-x: -13px; --atm-y: -16px; --atm-duration: 15s; --atm-delay: -4s; --atm-dot: 3px; }

/* None means no atmospheric paint, not simply a paused animation. */
html[data-theme][data-mode][data-animation-style="none"] .workspace > .workspace-animation-decor {
  display: none !important;
}

/* A world-specific motion mode owns the atmosphere. Do not stack the older
   shared dust/leaves layer on top of it; the selected world supplies its own
   particles, light, and motion profile. */
html[data-world][data-theme][data-mode][data-world-motion="on"] .workspace > .workspace-animation-decor {
  display: none !important;
}

/* Freeze every depth, including generated content. Do not modify preference
   attributes or broaden this to unrelated operational controls. */
html[data-theme][data-mode][data-animation-style][data-animations="off"] :is(.ambient, .workspace, .workspace-animation-decor, .workspace-animation-decor *),
html[data-theme][data-mode][data-animation-style][data-animations="off"] :is(.ambient, .workspace, .workspace-animation-decor, .workspace-animation-decor *)::before,
html[data-theme][data-mode][data-animation-style][data-animations="off"] :is(.ambient, .workspace, .workspace-animation-decor, .workspace-animation-decor *)::after {
  animation: none !important;
  transition: none !important;
}
/* A background tab has no visible benefit from maintaining animated paint.
   Keep the last visual frame, but stop compositor and filter work until the
   user returns. */
html.world-page-hidden[data-theme][data-mode][data-animation-style] :is(.ambient, .workspace-animation-decor, .workspace-animation-decor *),
html.world-page-hidden[data-theme][data-mode][data-animation-style] :is(.ambient, .workspace-animation-decor, .workspace-animation-decor *)::before,
html.world-page-hidden[data-theme][data-mode][data-animation-style] :is(.ambient, .workspace-animation-decor, .workspace-animation-decor *)::after {
  animation-play-state: paused !important;
}
html[data-background-animations="off"] :is(.ambient, .workspace-animation-decor, .workspace-animation-decor *),
html[data-background-animations="off"] :is(.ambient, .workspace-animation-decor, .workspace-animation-decor *)::before,
html[data-background-animations="off"] :is(.ambient, .workspace-animation-decor, .workspace-animation-decor *)::after {
  animation: none !important;
  filter: none !important;
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme][data-mode][data-animation-style] :is(.ambient, .workspace, .workspace-animation-decor, .workspace-animation-decor *),
  html[data-theme][data-mode][data-animation-style] :is(.ambient, .workspace, .workspace-animation-decor, .workspace-animation-decor *)::before,
  html[data-theme][data-mode][data-animation-style] :is(.ambient, .workspace, .workspace-animation-decor, .workspace-animation-decor *)::after {
    animation: none !important;
    transition: none !important;
  }
}
@media print {
  html[data-theme][data-mode][data-animation-style] .workspace > .workspace-animation-decor {
    display: none !important;
  }
}

@keyframes atm-rain { to { background-position: -12px 233px, -17px 317px, -23px 409px, -15px 281px, -19px 347px; } }
@keyframes atm-droplets { to { background-position: -6px 367px, -12px 479px; } }
@keyframes atm-neon { to { transform: translate3d(0, 38px, 0); } }
@keyframes atm-breathe { to { transform: scale(1.08); } }
@keyframes atm-embers { 0% { transform: translate3d(-8px, 32px, 0); opacity: 0; } 22%, 72% { opacity: var(--atm-detail); } 100% { transform: translate3d(19px, -130px, 0); opacity: 0; } }
@keyframes atm-dust { to { transform: translate3d(29px, -21px, 0); } }
@keyframes atm-mist { to { transform: translate3d(7%, -2%, 0) scaleX(1.08); } }
@keyframes atm-glaze { to { background-position: 100% 0; } }
@keyframes atm-sunburst { to { transform: rotate(9deg); transform-origin: 92% 8%; } }
@keyframes atm-bokeh { to { transform: translate3d(-17px, -31px, 0) scale(1.035); } }
@keyframes atm-tide { to { transform: translate3d(-3%, -28px, 0) scaleX(1.04); } }
@keyframes atm-stars { from { opacity: var(--atm-field); } to { opacity: var(--atm-detail); } }
@keyframes atm-leaf { 0%, 100% { transform: translate3d(0, 8px, 0) rotate(var(--atm-angle)); } 48% { transform: translate3d(var(--atm-x), var(--atm-y), 0) rotate(calc(var(--atm-angle) + 19deg)); } }
@keyframes atm-firefly { 0%, 100% { transform: translate3d(0, 0, 0); opacity: var(--atm-field); } 39% { transform: translate3d(var(--atm-x), var(--atm-y), 0); opacity: var(--atm-detail); } 74% { transform: translate3d(calc(var(--atm-x) * -.5), calc(var(--atm-y) * .6), 0); opacity: var(--atm-field); } }
@keyframes atm-ashfall { from { background-position:0 -311px; } to { background-position:41px 311px; } }
@keyframes atm-bat { 0%,100% { transform:translate3d(-12px,9px,0) rotate(calc(var(--atm-angle) - 8deg)) scaleY(.72); } 45% { transform:translate3d(var(--atm-x),var(--atm-y),0) rotate(calc(var(--atm-angle) + 12deg)) scaleY(1.08); } 55% { transform:translate3d(var(--atm-x),var(--atm-y),0) rotate(calc(var(--atm-angle) + 12deg)) scaleY(.58); } }
@keyframes atm-heart { 0%,100% { transform:translate3d(0,18px,0) rotate(calc(var(--atm-angle) * .25)) scale(.78); opacity:var(--atm-field); } 48% { transform:translate3d(var(--atm-x),calc(var(--atm-y) * 1.8),0) rotate(calc(var(--atm-angle) * -.2)) scale(1.06); opacity:var(--atm-detail); } }
@keyframes atm-page { 0%,100% { transform:translate3d(-8px,10px,0) rotate3d(0,1,0,18deg) rotate(var(--atm-angle)); } 50% { transform:translate3d(var(--atm-x),var(--atm-y),0) rotate3d(0,1,0,72deg) rotate(calc(var(--atm-angle) + 16deg)); } }
@keyframes atm-meteor { 0%,68% { transform:translate3d(-130px,-80px,0) rotate(-32deg); opacity:0; } 72% { opacity:var(--atm-detail); } 100% { transform:translate3d(180px,110px,0) rotate(-32deg); opacity:0; } }
@keyframes atm-paw { 0%,100% { transform:translate3d(0,10px,0) rotate(var(--atm-angle)) scale(.78); opacity:var(--atm-field); } 30%,62% { opacity:var(--atm-detail); } 50% { transform:translate3d(var(--atm-x),var(--atm-y),0) rotate(calc(var(--atm-angle) + 12deg)) scale(1); } }


/* Source: motion-theme-archive.css */
/* Motion-only editions of retired color themes. These scenes inherit the
   currently selected color palette, so the background can be paired with any
   remaining theme in both light and dark modes. */
@media screen {
  html[data-animation-style='deep-space-scifi'] {
    --atm-a: radial-gradient(circle 1.5px at 8% 18%, var(--atm-ink) 55%, transparent 70%), radial-gradient(circle 1px at 33% 71%, var(--atm-secondary) 45%, transparent 70%), radial-gradient(circle 2px at 78% 28%, var(--atm-ink) 45%, transparent 70%), radial-gradient(circle 1px at 91% 82%, var(--atm-secondary) 48%, transparent 70%);
    --atm-b: radial-gradient(ellipse at 72% 42%, transparent 0 17%, var(--atm-soft) 17.4% 17.8%, transparent 18.2% 27%, var(--atm-faint) 27.4% 27.8%, transparent 28.2%);
    --atm-size-a: 337px 293px; --atm-size-b: 100% 100%;
    --atm-motion-a: atm-archive-space-drift 34s linear infinite alternate;
    --atm-motion-b: atm-archive-space-orbit 42s linear infinite;
  }
  html[data-animation-style='matcha-studio'] {
    --atm-a: radial-gradient(ellipse 18px 46px at 16% 22%, var(--atm-soft) 0 42%, transparent 45%), radial-gradient(ellipse 14px 38px at 76% 62%, var(--atm-faint) 0 42%, transparent 45%);
    --atm-b: repeating-linear-gradient(112deg, transparent 0 71px, color-mix(in srgb, var(--atm-ink) 13%, transparent) 72px 73px, transparent 74px 142px);
    --atm-motion-a: atm-archive-matcha-breathe 20s ease-in-out infinite alternate;
    --atm-motion-b: atm-archive-matcha-drift 31s linear infinite;
  }
  html[data-animation-style='rosewood'] {
    --atm-a: linear-gradient(112deg, transparent 22%, var(--atm-faint) 39%, var(--atm-soft) 42%, transparent 45% 68%, var(--atm-faint) 71%, transparent 74%);
    --atm-b: radial-gradient(ellipse 38% 18% at 14% 77%, var(--atm-soft), transparent 76%), radial-gradient(ellipse 31% 14% at 84% 23%, var(--atm-faint), transparent 78%);
    --atm-size-a: 220% 100%; --atm-size-b: 100% 100%;
    --atm-motion-a: atm-archive-rosewood-polish 24s ease-in-out infinite alternate;
    --atm-motion-b: atm-archive-rosewood-glow 19s ease-in-out infinite alternate;
  }
  html[data-animation-style='dark-fairy-tale'] {
    --atm-a: radial-gradient(ellipse 62% 13% at 20% 38%, var(--atm-soft), transparent 92%), radial-gradient(ellipse 46% 9% at 82% 71%, var(--atm-faint), transparent 92%);
    --atm-b: radial-gradient(circle at 76% 15%, transparent 0 48px, var(--atm-soft) 49px 51px, transparent 52px);
    --atm-motion-a: atm-archive-fairy-mist 34s ease-in-out infinite alternate;
    --atm-motion-b: atm-archive-dark-moon 23s ease-in-out infinite alternate;
  }
  html[data-animation-style='fairy-tale-realm'] {
    --atm-a: radial-gradient(ellipse 19% 44% at 18% 100%, transparent 72%, var(--atm-soft) 73% 75%, transparent 76%), radial-gradient(ellipse 24% 56% at 74% 103%, transparent 72%, var(--atm-faint) 73% 75%, transparent 76%);
    --atm-b: radial-gradient(circle 90px at 78% 16%, var(--atm-soft), transparent 74%);
    --atm-motion-a: atm-archive-castle-sway 37s ease-in-out infinite alternate;
    --atm-motion-b: atm-archive-fairy-glow 17s ease-in-out infinite alternate;
  }
  html[data-animation-style='pool-party'] {
    --atm-a: radial-gradient(ellipse 72% 20% at 20% 105%, transparent 84%, var(--atm-soft) 85% 87%, transparent 88%), radial-gradient(ellipse 83% 25% at 89% 112%, transparent 85%, var(--atm-faint) 86% 88%, transparent 89%);
    --atm-b: radial-gradient(circle 18px at 18% 72%, transparent 72%, var(--atm-soft) 76% 82%, transparent 86%), radial-gradient(circle 12px at 72% 31%, transparent 70%, var(--atm-faint) 75% 82%, transparent 88%);
    --atm-motion-a: atm-archive-pool-wave 14s ease-in-out infinite alternate;
    --atm-motion-b: atm-archive-pool-bubbles 18s ease-in-out infinite alternate;
  }
  html[data-animation-style='confetti-club'] {
    --atm-a: repeating-conic-gradient(from 18deg at 12px 12px, var(--atm-ink) 0 7deg, transparent 8deg 41deg, var(--atm-secondary) 42deg 49deg, transparent 50deg 90deg);
    --atm-b: radial-gradient(circle 2px at 24% 20%, var(--atm-secondary), transparent 75%), radial-gradient(circle 2px at 78% 68%, var(--atm-ink), transparent 75%);
    --atm-size-a: 83px 97px; --atm-size-b: 173px 149px;
    --atm-motion-a: atm-archive-confetti-fall 12s linear infinite;
    --atm-motion-b: atm-archive-confetti-drift 19s linear infinite alternate;
  }
  html[data-animation-style='dust-city'] {
    --atm-a: linear-gradient(101deg, var(--atm-faint) 0 13%, transparent 13% 31%, var(--atm-soft) 31% 47%, transparent 47% 72%, var(--atm-faint) 72% 84%, transparent 84%);
    --atm-b: radial-gradient(circle .8px at 18% 31%, var(--atm-ink), transparent 72%), radial-gradient(circle 1px at 66% 74%, var(--atm-secondary), transparent 72%);
    --atm-size-a: 125% 100%; --atm-size-b: 137px 113px, 191px 163px;
    --atm-motion-a: atm-archive-dust-shadow 51s ease-in-out infinite alternate;
    --atm-motion-b: atm-archive-dust-grains 33s linear infinite alternate;
  }
  html[data-animation-style='bubbly-zest'] {
    --atm-a: radial-gradient(circle 34px at 14% 18%, transparent 76%, var(--atm-soft) 78% 84%, transparent 86%), radial-gradient(circle 58px at 84% 72%, transparent 77%, var(--atm-faint) 79% 85%, transparent 87%), radial-gradient(circle 17px at 43% 48%, transparent 72%, var(--atm-secondary) 75% 80%, transparent 84%);
    --atm-b: radial-gradient(circle 3px at 22% 66%, var(--atm-ink), transparent 76%), radial-gradient(circle 2px at 69% 31%, var(--atm-secondary), transparent 76%);
    --atm-size-a: 100% 100%; --atm-size-b: 143px 187px;
    --atm-motion-a: atm-archive-bubble-float 18s ease-in-out infinite alternate;
    --atm-motion-b: atm-archive-bubble-sparkle 14s linear infinite;
  }

  html[data-mode='light']:is([data-animation-style='deep-space-scifi'],[data-animation-style='matcha-studio'],[data-animation-style='rosewood'],[data-animation-style='dark-fairy-tale'],[data-animation-style='fairy-tale-realm'],[data-animation-style='pool-party'],[data-animation-style='confetti-club'],[data-animation-style='dust-city'],[data-animation-style='bubbly-zest']) {
    --atm-detail: .54; --atm-field: .28;
  }

  html[data-theme][data-mode][data-animation-style='matcha-studio'] .workspace-animation-decor .animation-leaf,
  html[data-theme][data-mode][data-animation-style='dark-fairy-tale'] .workspace-animation-decor .animation-leaf {
    display: block; position: absolute; width: var(--atm-leaf-width,18px); height: calc(var(--atm-leaf-width,18px) * 1.5); opacity: var(--atm-detail);
  }
  html[data-animation-style='matcha-studio'] .workspace-animation-decor .animation-leaf {
    border-radius: 100% 0 100% 0; border: 1px solid var(--atm-soft); background: linear-gradient(62deg,var(--atm-ink) 47%,var(--atm-secondary) 49%,var(--atm-ink) 52%);
    animation: atm-archive-matcha-leaf var(--atm-duration,17s) var(--atm-delay,-2s) ease-in-out infinite;
  }
  html[data-animation-style='dark-fairy-tale'] .workspace-animation-decor .animation-leaf {
    height: calc(var(--atm-leaf-width,18px) * .8); border: 0; border-radius: 0; background: linear-gradient(135deg,var(--atm-ink),var(--atm-secondary));
    clip-path: polygon(0 42%,18% 12%,38% 35%,50% 12%,62% 35%,82% 12%,100% 42%,80% 90%,57% 62%,50% 100%,43% 62%,20% 90%);
    animation: atm-archive-bat var(--atm-duration,17s) var(--atm-delay,-2s) ease-in-out infinite;
  }
  html[data-theme][data-mode][data-animation-style='fairy-tale-realm'] .workspace-animation-decor .animation-firefly,
  html[data-theme][data-mode][data-animation-style='pool-party'] .workspace-animation-decor .animation-firefly,
  html[data-theme][data-mode][data-animation-style='confetti-club'] .workspace-animation-decor .animation-firefly,
  html[data-theme][data-mode][data-animation-style='bubbly-zest'] .workspace-animation-decor .animation-firefly {
    display: block; position: absolute; opacity: var(--atm-detail);
  }
  html[data-animation-style='fairy-tale-realm'] .workspace-animation-decor .animation-firefly { width:var(--atm-dot,4px); height:var(--atm-dot,4px); border-radius:50%; background:var(--atm-ink); box-shadow:0 0 10px var(--atm-soft); animation:atm-archive-firefly var(--atm-duration,12s) var(--atm-delay,-2s) ease-in-out infinite; }
  html[data-animation-style='pool-party'] .workspace-animation-decor .animation-firefly,
  html[data-animation-style='bubbly-zest'] .workspace-animation-decor .animation-firefly { width:calc(var(--atm-dot,4px) * 3); height:calc(var(--atm-dot,4px) * 3); border:1px solid var(--atm-ink); border-radius:50%; background:transparent; animation:atm-archive-rise var(--atm-duration,14s) var(--atm-delay,-2s) ease-in-out infinite; }
  html[data-animation-style='confetti-club'] .workspace-animation-decor .animation-firefly { width:calc(var(--atm-dot,4px) * 2); height:calc(var(--atm-dot,4px) * 4); border-radius:1px; background:linear-gradient(var(--atm-ink),var(--atm-secondary)); animation:atm-archive-confetti-piece var(--atm-duration,12s) var(--atm-delay,-2s) linear infinite; }
}

@keyframes atm-archive-space-drift { to { background-position: 73px -49px; } }
@keyframes atm-archive-space-orbit { to { transform: rotate(360deg) scale(1.04); } }
@keyframes atm-archive-matcha-breathe { to { transform: translate3d(2%,-2%,0) scale(1.04); } }
@keyframes atm-archive-matcha-drift { to { background-position: 142px -71px; } }
@keyframes atm-archive-matcha-leaf { 50% { transform: translate3d(var(--atm-x),var(--atm-y),0) rotate(calc(var(--atm-angle) + 18deg)); } }
@keyframes atm-archive-rosewood-polish { to { background-position: 100% 0; } }
@keyframes atm-archive-rosewood-glow { to { transform: translate3d(2%,-3%,0) scale(1.05); } }
@keyframes atm-archive-fairy-mist { to { transform: translate3d(7%,-2%,0) scaleX(1.08); } }
@keyframes atm-archive-dark-moon { to { transform: translate3d(-3%,2%,0) scale(1.07); } }
@keyframes atm-archive-bat { 50% { transform: translate3d(var(--atm-x),var(--atm-y),0) rotate(calc(var(--atm-angle) + 15deg)) scaleY(.58); } }
@keyframes atm-archive-castle-sway { to { transform: translateX(2%) skewX(1deg); } }
@keyframes atm-archive-fairy-glow { to { transform: scale(1.08); opacity: var(--atm-detail); } }
@keyframes atm-archive-firefly { 45% { transform: translate3d(var(--atm-x),var(--atm-y),0); opacity:1; } }
@keyframes atm-archive-pool-wave { to { transform: translate3d(-4%,-24px,0) scaleX(1.05); } }
@keyframes atm-archive-pool-bubbles { to { transform: translate3d(2%,-4%,0); } }
@keyframes atm-archive-rise { from { transform:translateY(28px) scale(.7); opacity:0; } 35%,75% { opacity:var(--atm-detail); } to { transform:translate3d(var(--atm-x),calc(var(--atm-y) - 75px),0) scale(1.2); opacity:0; } }
@keyframes atm-archive-confetti-fall { to { background-position: 37px 194px; } }
@keyframes atm-archive-confetti-drift { to { background-position: -39px 149px; } }
@keyframes atm-archive-confetti-piece { to { transform:translate3d(var(--atm-x),calc(var(--atm-y) + 120px),0) rotate(540deg); } }
@keyframes atm-archive-dust-shadow { from { transform:translateX(-18%); } to { transform:translateX(18%); } }
@keyframes atm-archive-dust-grains { to { background-position:40px -22px, -31px 27px; } }
@keyframes atm-archive-bubble-float { to { transform:translate3d(2%,-4%,0) scale(1.04); } }
@keyframes atm-archive-bubble-sparkle { to { background-position:43px -187px; } }


/* Source: card-polish.css */
/* Shared finishing layer: an operational surface, not a glass demo.
   Theme silhouettes and status/priority colors remain in their own rules.
   Paper clones keep stylePrintClone inline styling, including nested cards.
   Exclude the target (not just its parent); :where keeps live specificity unchanged. */
html[data-theme] {
  --studio-elevation: 0 2px 3px rgba(0,0,0,.16), 0 12px 28px -18px rgba(0,0,0,.48);
  --studio-hover-elevation: 0 4px 8px rgba(0,0,0,.2), 0 18px 36px -20px rgba(0,0,0,.55);
  --today-checkouts-icon: "🚪";
  --today-arrivals-icon: "🧳";
  --today-finished-icon: "✓";
  --today-inspected-icon: "◇";
}

/* The four Today totals use a coordinated icon set from the selected theme.
   These are decorative; room urgency and work-status symbols remain semantic. */
html[data-theme="confetti"] { --today-checkouts-icon: "🎈"; --today-arrivals-icon: "🎉"; --today-finished-icon: "★"; --today-inspected-icon: "🎊"; }
html[data-theme="poolparty"], html[data-theme="coastal"], html[data-theme="ocean"] { --today-checkouts-icon: "🌊"; --today-arrivals-icon: "🐚"; --today-finished-icon: "☀️"; --today-inspected-icon: "🔎"; }
html[data-theme="rainbowarcade"], html[data-theme="arcade"] { --today-checkouts-icon: "👾"; --today-arrivals-icon: "🌈"; --today-finished-icon: "⭐"; --today-inspected-icon: "🏆"; }
html[data-theme="pumpkinpatch"] { --today-checkouts-icon: "🍂"; --today-arrivals-icon: "🎃"; --today-finished-icon: "✨"; --today-inspected-icon: "🕯️"; }
html[data-theme="dystopian"] { --today-checkouts-icon: "⚠️"; --today-arrivals-icon: "☢️"; --today-finished-icon: "✓"; --today-inspected-icon: "👁️"; }
html[data-theme="postapocalyptic"] { --today-checkouts-icon: "🏚️"; --today-arrivals-icon: "🧭"; --today-finished-icon: "🔥"; --today-inspected-icon: "🔎"; }
html[data-theme="vampire"] { --today-checkouts-icon: "🦇"; --today-arrivals-icon: "🌙"; --today-finished-icon: "🥀"; --today-inspected-icon: "🕯️"; }
html[data-theme="spookyhalloween"] { --today-checkouts-icon: "🕸️"; --today-arrivals-icon: "👻"; --today-finished-icon: "🎃"; --today-inspected-icon: "🔮"; }
html[data-theme="romance"], html[data-theme="rosewood"], html[data-theme="rose"] { --today-checkouts-icon: "💌"; --today-arrivals-icon: "🌹"; --today-finished-icon: "💖"; --today-inspected-icon: "💎"; }
html[data-theme="booklover"], html[data-theme="library"] { --today-checkouts-icon: "📕"; --today-arrivals-icon: "📖"; --today-finished-icon: "🔖"; --today-inspected-icon: "🧐"; }
html[data-theme="petlover"] { --today-checkouts-icon: "🦴"; --today-arrivals-icon: "🐾"; --today-finished-icon: "🎾"; --today-inspected-icon: "🔎"; }
html[data-theme="autumn"] { --today-checkouts-icon: "🍁"; --today-arrivals-icon: "🧺"; --today-finished-icon: "🍂"; --today-inspected-icon: "🔍"; }
html[data-theme="fairytale"] { --today-checkouts-icon: "🗝️"; --today-arrivals-icon: "🌒"; --today-finished-icon: "👑"; --today-inspected-icon: "🐕"; }
html[data-theme="matcha"], html[data-theme="plants"], html[data-theme="conservatory"], html[data-theme="forest"], html[data-theme="moss"] { --today-checkouts-icon: "🍃"; --today-arrivals-icon: "🌱"; --today-finished-icon: "🌿"; --today-inspected-icon: "🪷"; }
html[data-theme="bluehour"], html[data-theme="rain"], html[data-theme="midnight"] { --today-checkouts-icon: "🌧️"; --today-arrivals-icon: "🌙"; --today-finished-icon: "⭐"; --today-inspected-icon: "🔍"; }
html[data-theme="saffron"], html[data-theme="citrus"], html[data-theme="sunset"], html[data-theme="gold"], html[data-theme="solar"] { --today-checkouts-icon: "☀️"; --today-arrivals-icon: "🌅"; --today-finished-icon: "✨"; --today-inspected-icon: "🔍"; }
html[data-theme="silver"], html[data-theme="porcelain"], html[data-theme="mineral"] { --today-checkouts-icon: "🎞️"; --today-arrivals-icon: "🪞"; --today-finished-icon: "✦"; --today-inspected-icon: "🔍"; }
html[data-theme="cozy"], html[data-theme="terracotta"], html[data-theme="lantern"], html[data-theme="ember"] { --today-checkouts-icon: "🏠"; --today-arrivals-icon: "☕"; --today-finished-icon: "🔥"; --today-inspected-icon: "🔍"; }
html[data-theme="zen"] { --today-checkouts-icon: "◯"; --today-arrivals-icon: "🪷"; --today-finished-icon: "✓"; --today-inspected-icon: "◉"; }
html[data-theme="future"], html[data-theme="scifi"] { --today-checkouts-icon: "🚀"; --today-arrivals-icon: "🪐"; --today-finished-icon: "✨"; --today-inspected-icon: "🤖"; }
html[data-theme="cyberpunk"] { --today-checkouts-icon: "⚡"; --today-arrivals-icon: "🌐"; --today-finished-icon: "✦"; --today-inspected-icon: "◉"; }
html[data-theme="anime"] { --today-checkouts-icon: "🌸"; --today-arrivals-icon: "🌆"; --today-finished-icon: "✨"; --today-inspected-icon: "⭐"; }
html[data-theme][data-mode="light"] {
  --studio-elevation: 0 1px 2px rgba(24,38,34,.07), 0 9px 24px -18px rgba(24,38,34,.22);
  --studio-hover-elevation: 0 3px 8px rgba(24,38,34,.08), 0 16px 30px -20px rgba(24,38,34,.26);
}
@media screen {
  /* Operational paints (including finished + tier combinations) belong to
     styles.css. Keep their gradients, borders and inset stripes intact. */
  html[data-theme] :is(.panel, .metric, .room-card):not(.arrival-tier):not(.early-tier):not(.finished):not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: var(--studio-card-surface, var(--panel)) !important;
    border-color: var(--border) !important;
    box-shadow: var(--studio-card-shadow, var(--studio-elevation)) !important;
  }
  html[data-theme] :is(.panel, .metric, .room-card):not(:where(.print-preview-sheet *, #print-run-root *)) {
    backdrop-filter: none !important;
    transition: border-color 180ms ease, box-shadow 240ms ease;
  }
  html[data-theme] .button.primary:not(:where(.print-preview-sheet *, #print-run-root *)) { background: var(--accent); color: var(--on-accent); }
  /* Remove the non-semantic glowing screw on every card. Real status lamps stay. */
  html[data-theme] :is(.panel, .metric):not(:where(.print-preview-sheet *, #print-run-root *))::after { content: none !important; }
  html[data-theme] .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) {
    padding: 16px 18px;
    min-height: 54px;
    background: color-mix(in srgb, var(--surface) 45%, var(--panel));
    border-color: var(--border-soft, var(--border));
  }
  html[data-theme] .panel-head h3:not(:where(.print-preview-sheet *, #print-run-root *)) { line-height: 1.4; letter-spacing: .005em; flex: 1 1 auto; }
  html[data-theme] .panel-head .manager-sort:not(:where(.print-preview-sheet *, #print-run-root *)) { width: auto; flex: 0 1 240px; min-width: 160px; }
  html[data-theme] .manager-room-grid:not(:where(.print-preview-sheet *, #print-run-root *)),
  html[data-theme] .housekeeper-grid:not(:where(.print-preview-sheet *, #print-run-root *)) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: 16px; align-items: start;
  }
  html[data-theme] .today-section > .empty-state:not(:where(.print-preview-sheet *, #print-run-root *)) { padding: 10px 2px; text-align: left; }
  html[data-theme] .panel-head .muted:not(:where(.print-preview-sheet *, #print-run-root *)) { line-height: 1.5; }
  html[data-theme] .panel.is-collapsed > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) { border-bottom-color: transparent; }
  html[data-theme] .view .empty-state:not(:where(.print-preview-sheet *, #print-run-root *)) {
    min-height: 0; padding: 22px 18px; line-height: 1.6;
  }
  html[data-theme] .view .empty-state:not(:where(.print-preview-sheet *, #print-run-root *))::before { display: none; }
  html[data-theme] .housekeeper-greeting:not(:where(.print-preview-sheet *, #print-run-root *)) {
    position: relative; box-sizing: border-box; overflow: hidden;
    width: min(100%, 620px);
    margin: 4px auto 22px; padding: 14px clamp(24px, 4vw, 42px) 13px;
    text-align: center; font-size: clamp(24px, 2.2vw, 32px); line-height: 1.22;
    letter-spacing: -.015em; text-shadow: none;
    border: 1px solid color-mix(in srgb, var(--accent) 26%, var(--border));
    border-radius: var(--studio-nav-radius, 18px);
    background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--panel)), color-mix(in srgb, var(--surface) 74%, var(--panel)));
    box-shadow: 0 8px 24px -18px color-mix(in srgb, var(--accent) 65%, transparent), inset 0 1px 0 color-mix(in srgb, white 30%, transparent);
  }
  html[data-theme] .housekeeper-greeting em:not(:where(.print-preview-sheet *, #print-run-root *)) {
    display: inline-block; font-size: 1.18em; color: var(--accent-hover, var(--accent));
    text-shadow: 0 0 16px color-mix(in srgb, var(--accent) 28%, transparent) !important;
  }
  html[data-theme] .housekeeper-greeting:not(:where(.print-preview-sheet *, #print-run-root *))::after {
    content: ""; display: block; width: 52px; height: 2px; margin: 9px auto 0;
    border-radius: 999px; background: linear-gradient(90deg, transparent, var(--accent), transparent);
  }
  html[data-theme="pumpkinpatch"] .housekeeper-greeting:not(:where(.print-preview-sheet *, #print-run-root *))::before {
    position: absolute; inset: 50% 10px auto auto; width: 64px; height: 32px; margin: 0;
    transform: translateY(-50%); opacity: .16;
  }
  html[data-theme] .today-section:not(:where(.print-preview-sheet *, #print-run-root *)) { margin-bottom: 18px; }
  html[data-theme] .metric:not(:where(.print-preview-sheet *, #print-run-root *)) { min-height: 96px; padding: 17px 18px; }
  html[data-theme] .metric strong:not(:where(.print-preview-sheet *, #print-run-root *)) { line-height: 1.2; }
  html[data-theme] #dashboard-view .summary-grid .metric[data-summary]:not(:where(.print-preview-sheet *, #print-run-root *))::before {
    display: grid; place-items: center;
    top: 9px; right: 9px; width: 24px; height: 24px;
    border: 1px solid color-mix(in srgb, var(--accent) 26%, transparent);
    border-radius: 9px; clip-path: none; transform: none;
    background: color-mix(in srgb, var(--accent) 10%, var(--panel));
    color: var(--accent); box-shadow: none;
    font: 15px/1 system-ui, "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
  }
  html[data-theme] #dashboard-view .summary-grid .metric[data-summary="total-checkouts"]::before { content: var(--today-checkouts-icon); }
  html[data-theme] #dashboard-view .summary-grid .metric[data-summary="arrivals-remaining"]::before { content: var(--today-arrivals-icon); }
  html[data-theme] #dashboard-view .summary-grid .metric[data-summary="finished"]::before { content: var(--today-finished-icon); }
  html[data-theme] #dashboard-view .summary-grid .metric[data-summary="inspected"]::before { content: var(--today-inspected-icon); }
  html[data-theme] .view :is(.muted, .empty-state):not(:where(.print-preview-sheet *, #print-run-root *)) { color: color-mix(in srgb, var(--text) 72%, var(--panel)); }
  html[data-theme] .topbar:not(:where(.print-preview-sheet *, #print-run-root *)) { box-shadow: none !important; backdrop-filter: none; }
  html[data-theme] .sidebar:not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: var(--studio-sidebar, var(--panel)) !important;
    color: var(--text) !important; border-right-color: var(--border) !important;
    box-shadow: none;
  }
  html[data-theme][data-mode] .sidebar :is(.brand strong, .user-chip strong, .nav-item):not(:where(.print-preview-sheet *, #print-run-root *)) { color: var(--text) !important; }
  html[data-theme][data-mode] .sidebar :is(.brand span, .user-chip span, .nav-item > span:first-child, .nav-reorder, .nav-reorder-btn, .muted):not(:where(.print-preview-sheet *, #print-run-root *)) {
    color: color-mix(in srgb, var(--text) 72%, var(--panel)) !important;
  }
  html[data-theme][data-mode] .sidebar .nav-item.active:not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: color-mix(in srgb, var(--accent) 14%, var(--panel)) !important;
    color: var(--text) !important; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 36%, transparent) !important;
  }
  html[data-theme][data-mode] .sidebar #logout-button:not(:where(.print-preview-sheet *, #print-run-root *)) { color: var(--text); }
  html[data-theme][data-mode="light"] .button:not(.primary):not(.active):not(.danger):not(.success):not(:where(.print-preview-sheet *, #print-run-root *)) { color: var(--text); }
  /* Natural height after the animation. No 5,000/40,000px transition cap:
     measured parent movement handles short cards and entire floor lists. */
  html[data-theme] .panel:not(.is-collapsed) > :not(.panel-head):not(.is-collapsed):not(:where(.print-preview-sheet *, #print-run-root *)),
  html[data-theme] #dashboard-view .today-card:not(.is-collapsed) > :not(.room-card-head):not(.panel-head):not(:where(.print-preview-sheet *, #print-run-root *)),
  html[data-theme] :is(.checkout-add-body, .expected-add-body):not(.is-collapsed):not(:where(.print-preview-sheet *, #print-run-root *)) {
    max-height: none !important;
    transition: none !important;
    transform: none !important;
  }
  html[data-theme] .panel.is-collapsed:not(.assignments-card) > :not(.panel-head):not(:where(.print-preview-sheet *, #print-run-root *)),
  html[data-theme] #dashboard-view .today-card.room-card.is-collapsed > :not(.room-card-head):not(:where(.print-preview-sheet *, #print-run-root *)),
  html[data-theme] :is(.checkout-add-body, .expected-add-body).is-collapsed:not(:where(.print-preview-sheet *, #print-run-root *)) {
    max-height: 0 !important; height: 0 !important;
    margin-block: 0 !important; padding-block: 0 !important;
    border-block-width: 0 !important; min-height: 0 !important;
    overflow: hidden !important; opacity: 0 !important;
    transition: none !important; transform: none !important;
    pointer-events: none;
    visibility: hidden;
  }
  html[data-theme] .panel:not(:where(.print-preview-sheet *, #print-run-root *)) { box-sizing: border-box; }
  html[data-theme] .panel-head h3:focus-visible:not(:where(.print-preview-sheet *, #print-run-root *)),
  html[data-theme] .today-card-title:focus-visible:not(:where(.print-preview-sheet *, #print-run-root *)) {
    outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 4px;
  }
  html[data-theme] .panel.card-dragging:not(:where(.print-preview-sheet *, #print-run-root *)) {
    opacity: .78; outline: 2px solid var(--accent); outline-offset: 3px;
    box-shadow: var(--studio-hover-elevation) !important;
  }
  .card-drop-line:not(:where(.print-preview-sheet *, #print-run-root *)) {
    position: fixed; z-index: 10010; height: 4px; border-radius: 4px;
    background: var(--accent); box-shadow: 0 0 0 2px var(--panel), 0 0 0 3px var(--accent);
    pointer-events: none;
  }
  .card-drag-label:not(:where(.print-preview-sheet *, #print-run-root *)) {
    position: fixed; z-index: 10011; max-width: min(250px, calc(100vw - 16px));
    padding: 10px 14px; border: 1px solid var(--accent); border-radius: 10px;
    background: var(--panel); color: var(--text); box-shadow: var(--studio-hover-elevation);
    font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    pointer-events: none;
  }
  /* Modest progressive entrance on tab change, not every polling re-render. */
  html[data-theme] .view:not(:where(.print-preview-sheet *, #print-run-root *)) { animation: studio-view-arrive 280ms cubic-bezier(.22,.8,.25,1); }
  @keyframes studio-view-arrive { from { opacity: .35; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
}
@media screen and (hover:hover) and (pointer:fine) {
  html[data-theme] .panel:not(.card-dragging):not(.arrival-tier):not(.early-tier):not(.finished):hover:not(:where(.print-preview-sheet *, #print-run-root *)) { box-shadow: var(--studio-card-shadow, var(--studio-hover-elevation)) !important; }
  html[data-theme] .panel-head:hover:not(:where(.print-preview-sheet *, #print-run-root *)) { border-color: color-mix(in srgb, var(--accent) 38%, var(--border)); }
  html[data-theme] .room-card:not(.card-dragging):hover:not(:where(.print-preview-sheet *, #print-run-root *)) { transform: none; }
  html[data-theme] .room-card:not(.card-dragging):not(.arrival-tier):not(.early-tier):not(.finished):hover:not(:where(.print-preview-sheet *, #print-run-root *)) { box-shadow: var(--studio-hover-elevation) !important; }
}

/* Fairy Tale uses slow brocade drift and responsive, weighty cards. The two
   modes have distinct lighting: parchment lift by day, gold-edged glow by night. */
@media screen and (prefers-reduced-motion:no-preference) {
  html[data-theme="fairytale"]:not([data-animations="off"]) .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) {
    animation: fairytale-brocade-drift 24s ease-in-out infinite alternate;
  }
  html[data-theme="fairytale"]:not([data-animations="off"]) :is(.panel,.metric,.room-card):not(.card-dragging):not(:where(.print-preview-sheet *, #print-run-root *)) {
    transition: transform 280ms cubic-bezier(.2,.8,.2,1), border-color 220ms ease, box-shadow 320ms ease, background-color 320ms ease;
  }
}
@media screen and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  html[data-mode="light"][data-theme="fairytale"]:not([data-animations="off"]) :is(.panel,.metric,.room-card):not(.card-dragging):not(.arrival-tier):not(.early-tier):not(.finished):hover:not(:where(.print-preview-sheet *, #print-run-root *)) {
    transform:translateY(-4px);
    border-color:color-mix(in srgb, var(--accent) 45%, var(--border)) !important;
    box-shadow:inset 0 1px 0 #fff, inset 1px 0 0 color-mix(in srgb, var(--accent) 22%, transparent), 0 18px 34px -21px rgba(32,43,69,.55), 0 0 28px -20px color-mix(in srgb, var(--accent) 64%, transparent) !important;
  }
  html[data-theme="fairytale"]:not([data-mode="light"]):not([data-animations="off"]) :is(.panel,.metric,.room-card):not(.card-dragging):not(.arrival-tier):not(.early-tier):not(.finished):hover:not(:where(.print-preview-sheet *, #print-run-root *)) {
    transform:translateY(-3px);
    border-color:color-mix(in srgb, var(--accent) 58%, var(--border)) !important;
    box-shadow:inset 0 1px 0 color-mix(in srgb, var(--accent) 34%, transparent), inset 1px 0 0 color-mix(in srgb, var(--text) 11%, transparent), 0 20px 38px -22px #000, 0 0 32px -19px color-mix(in srgb, var(--accent) 72%, transparent) !important;
  }
  html[data-theme="fairytale"]:not([data-animations="off"]) .panel:hover > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) {
    box-shadow:inset 0 1px 0 color-mix(in srgb, var(--accent) 38%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--accent) 24%, var(--border-soft));
  }
}
@keyframes fairytale-brocade-drift {
  from { background-position:0 0, 0 0, 0 0, 0 0, 0 0; }
  to { background-position:36px -5px, -36px 5px, 19px 19px, -19px 19px, 21px 0; }
}
@media screen and (max-width:700px) {
  html[data-theme] .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) { padding: 14px; }
  html[data-theme] .housekeeper-greeting:not(:where(.print-preview-sheet *, #print-run-root *)) {
    max-width: calc(100% - 8px); margin: 2px auto 18px; padding: 13px 18px 12px;
    font-size: clamp(23px, 7.5vw, 28px);
  }
  html[data-theme] .housekeeper-greeting :is(.greeting-salutation, .greeting-name):not(:where(.print-preview-sheet *, #print-run-root *)) { display: block; }
  html[data-theme] .metric:not(:where(.print-preview-sheet *, #print-run-root *)) { padding: 14px; min-height: 90px; }
  html[data-theme] .view .empty-state:not(:where(.print-preview-sheet *, #print-run-root *)) { padding: 18px 14px; }
  html[data-theme] .today-section:not(:where(.print-preview-sheet *, #print-run-root *)) { margin-bottom: 14px; }
}
@media (prefers-reduced-motion:reduce) {
  html[data-theme] *:not(:where(.print-preview-sheet *, #print-run-root *)), html[data-theme] *:not(:where(.print-preview-sheet *, #print-run-root *))::before, html[data-theme] *:not(:where(.print-preview-sheet *, #print-run-root *))::after {
    animation: none !important; transition: none !important; scroll-behavior: auto !important;
  }
  html[data-theme] .view:not(:where(.print-preview-sheet *, #print-run-root *)) { animation: none !important; }
  html[data-theme] :is(.panel,.metric,.room-card):not(:where(.print-preview-sheet *, #print-run-root *)) { transition: none !important; transform: none !important; }
}
html[data-animations="off"] .view:not(:where(.print-preview-sheet *, #print-run-root *)) { animation: none !important; }
html[data-theme="fairytale"][data-animations="off"] .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) { animation:none !important; }
/* Status messages are toasts, not document content. Keeping them out of the
   page flow prevents successful saves from shifting a scrolled phone screen
   down when the message appears and back up when it expires. */
.global-message:not([hidden]) {
  position: fixed;
  z-index: 10020;
  left: 50%;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  width: min(680px, calc(100vw - 24px));
  margin: 0;
  box-sizing: border-box;
  transform: translateX(-50%);
  max-height: min(40vh, 320px);
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  pointer-events: auto;
}
@media print { .card-drop-line:not(:where(.print-preview-sheet *, #print-run-root *)), .card-drag-label:not(:where(.print-preview-sheet *, #print-run-root *)) { display: none !important; } }


/* Source: theme-dark-fairytale.css */
/* Dark Fairy Tale: aged stone, moss, parchment and worn gold.
   Parchment daylight and ancient stone at night. Shared operational status
   paints and printed reports keep their existing meaning and layout. */
@media screen {
  html[data-theme="darkfairytale"][data-mode] {
    color-scheme:dark;
    --control-scheme:dark; --button-ink:#0D1010;
    --bg:#151817; --deep:#0D1010; --panel:#262C29; --surface:#1D2221; --surface-2:#343936;
    --text:#E8DFC9; --secondary:#DDD8C9; --muted:#A4A89F; --faint:#A4A89F;
    /* The supplied gray is decorative: small text on cards needs 4.5:1. */
    --weathered:#858A84; --antique:#A98A48; --moss:#566554; --dark-moss:#485348; --crimson:#742E32;
    --accent:#C69A3B; --accent-hover:#E4BE68; --accent-ink:#C69A3B; --on-accent:#0D1010;
    --border:#485348; --border-soft:#39423A; --border-strong:#A98A48;
    --green:#9BAF88; --amber:#D4AF62; --pink:#DDA1B2; --purple:#B9A4D5; --red:#DB9294;
    --font:system-ui,-apple-system,"Segoe UI",sans-serif;
    --font-display:"Sentient",Georgia,serif;
    --studio-heading-weight:500; --studio-heading-spacing:.015em;
    --radius:12px; --radius-s:6px; --radius-m:14px; --radius-l:18px;
    --studio-card-radius:18px 18px 7px 7px; --studio-nav-radius:8px;
    --studio-sidebar:var(--deep); --sheet-ink:var(--text);
    --card:var(--panel); --foreground:var(--text); --well:var(--surface); --well-border:#7D8577; --raise:var(--surface-2);
    --accent-soft:rgba(198,154,59,.08); --accent-soft-2:rgba(198,154,59,.15);
    --ring:rgba(228,190,104,.25); --glow:rgba(198,154,59,.08);
    --signal:var(--accent-hover); --signal-soft:var(--accent-soft-2);
    --lit-edge:inset 0 1px 0 rgba(198,154,59,.12);
    --seam:linear-gradient(90deg,transparent,var(--antique),var(--dark-moss),transparent);
    --seam-strong:linear-gradient(90deg,var(--antique),var(--dark-moss),transparent);
    --dawn-glow-a:transparent; --dawn-glow-b:transparent;
    --shadow-1:0 9px 26px -16px rgba(13,16,16,.8);
    --shadow-2:0 18px 46px -22px rgba(13,16,16,.9);
    --shadow-pop:0 24px 64px rgba(13,16,16,.75);
    --studio-card-surface:linear-gradient(150deg,rgba(169,138,72,.035),transparent 45%),var(--panel);
    --studio-card-shadow:var(--lit-edge),var(--shadow-1);
    --studio-elevation:var(--shadow-1); --studio-hover-elevation:var(--lit-edge),var(--shadow-2);
    --today-checkouts-icon:"⇥"; --today-arrivals-icon:"☾"; --today-finished-icon:"✓"; --today-inspected-icon:"◇";
  }

  html[data-theme="darkfairytale"][data-mode="light"] {
    color-scheme:light;
    --control-scheme:light; --button-ink:#F3EFDF;
    --bg:#E1DECE; --deep:#CCCFBE; --panel:#F3EFDF; --surface:#E9E6D7; --surface-2:#DADCCB;
    --text:#293127; --secondary:#3F493A; --muted:#505849; --faint:#505849;
    --weathered:#737A6B; --antique:#8C743D; --moss:#566554; --dark-moss:#76816A;
    --accent:#6B4B17; --accent-hover:#52370D; --accent-ink:#6B4B17; --on-accent:#F3EFDF;
    --border:#939C83; --border-soft:#C4C6B3; --border-strong:#8C743D; --well-border:#7B806D;
    --green:#3C5C3D; --amber:#745018; --pink:#8A3959; --purple:#66517E; --red:#742E32;
    --accent-soft:rgba(107,75,23,.07); --accent-soft-2:rgba(107,75,23,.13);
    --ring:rgba(107,75,23,.22); --glow:rgba(169,138,72,.1);
    --lit-edge:inset 0 1px 0 rgba(255,252,237,.85);
    --shadow-1:0 9px 26px -18px rgba(41,49,39,.3);
    --shadow-2:0 18px 36px -22px rgba(41,49,39,.4);
    --shadow-pop:0 24px 64px -18px rgba(41,49,39,.38);
    --studio-card-surface:linear-gradient(145deg,rgba(255,252,237,.45),transparent 50%,rgba(86,101,84,.045)),var(--panel);
  }

  html[data-theme="darkfairytale"][data-mode] body {
    background:var(--bg); color:var(--text); font-family:var(--font);
  }
  html[data-theme="darkfairytale"][data-mode] .workspace {
    background-color:var(--bg);
    /* Full-page gradient darkens towards the bottom, without scroll scripting. */
    background-image:radial-gradient(ellipse at 12% 2%,rgba(86,101,84,.09),transparent 35%),linear-gradient(180deg,var(--bg) 0%,var(--bg) 22%,var(--deep) 100%);
    background-attachment:scroll;
  }
  html[data-theme="darkfairytale"][data-mode] :is(h1,h2,h3,h4,.brand strong,.housekeeper-greeting):not(:where(.print-preview-sheet *,#print-run-root *)) {
    font-family:var(--font-display); font-weight:500; letter-spacing:.015em; text-shadow:none;
  }
  html[data-theme="darkfairytale"][data-mode] :is(.sidebar,.topbar,#mobile-nav-sheet,#mobile-nav-select,.mobile-nav-toggle):not(:where(.print-preview-sheet *,#print-run-root *)) {
    background:var(--deep) !important; color:var(--text); border-color:var(--border-soft); box-shadow:var(--lit-edge) !important; backdrop-filter:none;
  }
  html[data-theme="darkfairytale"][data-mode] :is(.topbar,.panel,.metric,.room-card):not(:where(.print-preview-sheet *,#print-run-root *)) { border-radius:var(--studio-card-radius); }
  html[data-theme="darkfairytale"][data-mode] :is(.panel,.metric,.room-card):not(.arrival-tier):not(.early-tier):not(.finished):not(:where(.print-preview-sheet *,#print-run-root *)) {
    border-color:rgba(169,138,72,.27) !important;
  }
  html[data-theme="darkfairytale"][data-mode] .panel > .panel-head:not(:where(.print-preview-sheet *,#print-run-root *)) {
    background-color:var(--surface);
    /* Restrained stone grain and engraved seams, kept away from reading rows. */
    background-image:repeating-linear-gradient(112deg,transparent 0 16px,rgba(169,138,72,.045) 17px,transparent 18px 39px),repeating-linear-gradient(3deg,transparent 0 3px,rgba(232,223,201,.018) 4px,transparent 5px 9px),radial-gradient(ellipse at 15% 0%,rgba(86,101,84,.14),transparent 70%);
    border-color:var(--border-soft); box-shadow:var(--lit-edge);
  }
  html[data-theme="darkfairytale"][data-mode] .approval-box:not(:where(.print-preview-sheet *,#print-run-root *)) { padding:0; overflow:hidden; }
  html[data-theme="darkfairytale"][data-mode] .approval-box > .panel-head:not(:where(.print-preview-sheet *,#print-run-root *)) { width:100%; box-sizing:border-box; }
  html[data-theme="darkfairytale"][data-mode] .approval-box > :not(.panel-head):not(:where(.print-preview-sheet *,#print-run-root *)) { padding:16px 18px; }
  html[data-theme="darkfairytale"][data-mode] .panel.is-collapsed > .panel-head:not(:where(.print-preview-sheet *,#print-run-root *)) { border-radius:inherit; }
  html[data-theme="darkfairytale"][data-mode] .housekeeper-greeting:not(:where(.print-preview-sheet *,#print-run-root *)) {
    background:linear-gradient(135deg,var(--surface),var(--deep)); border-color:rgba(169,138,72,.3); box-shadow:var(--lit-edge);
  }
  html[data-theme="darkfairytale"][data-mode] .housekeeper-greeting em:not(:where(.print-preview-sheet *,#print-run-root *)) { color:var(--accent); text-shadow:none !important; }
  html[data-theme="darkfairytale"][data-mode] :is(.nav-item,.mobile-nav-sheet-item):not(:where(.print-preview-sheet *,#print-run-root *)) {
    background:transparent; color:var(--secondary); border-radius:var(--studio-nav-radius); border-color:transparent;
  }
  html[data-theme="darkfairytale"][data-mode] .sidebar .nav-item.active:not(:where(.print-preview-sheet *,#print-run-root *)),
  html[data-theme="darkfairytale"][data-mode] .mobile-nav-sheet-item.active {
    background:var(--accent-soft) !important; color:var(--accent-hover) !important;
    border-color:rgba(198,154,59,.4); box-shadow:inset 2px 0 0 var(--accent) !important;
  }
  html[data-theme="darkfairytale"][data-mode] .sidebar .nav-item > span:first-child { color:var(--accent) !important; font-family:Georgia,serif; }
  html[data-theme="darkfairytale"][data-mode] .mobile-nav-sheet-head strong { color:var(--secondary); }
  html[data-theme="darkfairytale"][data-mode] a:not(.button):not(:where(.print-preview-sheet *,#print-run-root *)) { color:var(--accent); text-underline-offset:3px; }
  html[data-theme="darkfairytale"][data-mode] :is(.button,.notification-button):not(.primary):not(.danger):not(.warning):not(.success):not(.active):not(:where(.print-preview-sheet *,#print-run-root *)) {
    background:var(--surface); color:var(--text); border-color:var(--antique); box-shadow:var(--lit-edge); text-shadow:none;
  }
  html[data-theme="darkfairytale"][data-mode] .button.primary:not(:where(.print-preview-sheet *,#print-run-root *)) {
    background:var(--accent); border-color:var(--accent); color:var(--button-ink); box-shadow:0 2px 5px rgba(13,16,16,.35); text-shadow:none;
  }
  html[data-theme="darkfairytale"][data-mode] .button.danger:not(:where(.print-preview-sheet *,#print-run-root *)) {
    background:rgba(116,46,50,.18); border-color:var(--crimson); color:var(--red); text-shadow:none;
  }
  html[data-theme="darkfairytale"][data-mode] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),select,textarea):not(:where(.print-preview-sheet *,#print-run-root *)) {
    background:var(--surface); color:var(--text); border-color:var(--well-border); color-scheme:var(--control-scheme);
    box-shadow:inset 0 1px 3px rgba(13,16,16,.3); font-family:var(--font);
  }
  html[data-theme="darkfairytale"][data-mode] :is(input,textarea)::placeholder { color:var(--muted); opacity:1; }
  html[data-theme="darkfairytale"][data-mode] option { background:var(--surface); color:var(--text); }
  html[data-theme="darkfairytale"][data-mode] :is(input,select,textarea,button,a,summary,[tabindex]):focus-visible:not(:where(.print-preview-sheet *,#print-run-root *)) {
    outline:2px solid var(--accent-hover); outline-offset:3px; border-color:var(--accent-hover); box-shadow:0 0 0 3px var(--ring);
  }
  html[data-theme="darkfairytale"][data-mode] :is(dialog,.notification-panel):not(:where(.print-preview-sheet *,#print-run-root *)) {
    background:var(--surface); color:var(--text); border-color:var(--antique); box-shadow:var(--shadow-pop); backdrop-filter:none;
  }
  html[data-theme="darkfairytale"][data-mode] dialog::backdrop { background:rgba(13,16,16,.82); }
  html[data-theme="darkfairytale"][data-mode] :is(th,td):not(:where(.print-preview-sheet *,#print-run-root *)) { border-color:var(--border-soft); }
  html[data-theme="darkfairytale"][data-mode] th:not(:where(.print-preview-sheet *,#print-run-root *)) { background:var(--surface); color:var(--secondary); }
  html[data-theme="darkfairytale"][data-mode] :is(.muted,.empty-state,figcaption,caption,footer):not(:where(.print-preview-sheet *,#print-run-root *)) { color:var(--muted); }
  html[data-theme="darkfairytale"][data-mode] footer:not(:where(.print-preview-sheet *,#print-run-root *)) { background:var(--deep); border-color:var(--border-soft); }
  html[data-theme="darkfairytale"][data-mode] ::selection { background:var(--accent-hover); color:var(--button-ink); }
  html[data-theme="darkfairytale"][data-mode="light"] .panel > .panel-head:not(:where(.print-preview-sheet *,#print-run-root *)) {
    background-image:repeating-linear-gradient(112deg,transparent 0 16px,rgba(140,116,61,.065) 17px,transparent 18px 39px),repeating-linear-gradient(3deg,transparent 0 3px,rgba(86,101,84,.025) 4px,transparent 5px 9px),radial-gradient(ellipse at 15% 0%,rgba(86,101,84,.08),transparent 70%);
  }
  html[data-theme="darkfairytale"][data-mode="light"] dialog::backdrop { background:rgba(41,49,39,.4); }
}

@media screen and (hover:hover) and (pointer:fine) {
  html[data-theme="darkfairytale"][data-mode] :is(.nav-item,.mobile-nav-sheet-item):hover { background:var(--accent-soft); color:var(--accent-hover); }
  html[data-theme="darkfairytale"][data-mode] a:not(.button):hover { color:var(--accent-hover); }
  html[data-theme="darkfairytale"][data-mode] .button.primary:not(:disabled):hover { background:var(--accent-hover); border-color:var(--accent-hover); }
  html[data-theme="darkfairytale"][data-mode] .button:not(.danger):not(:disabled):hover:not(:where(.print-preview-sheet *,#print-run-root *)) { border-color:var(--accent-hover); box-shadow:0 0 14px rgba(198,154,59,.1); }
  html[data-theme="darkfairytale"][data-mode] :is(.panel,.metric,.room-card):not(.card-dragging):not(.arrival-tier):not(.early-tier):not(.finished):hover:not(:where(.print-preview-sheet *,#print-run-root *)) {
    border-color:rgba(198,154,59,.5) !important; box-shadow:var(--lit-edge),var(--shadow-2),0 0 18px rgba(198,154,59,.035) !important;
  }
}
@media screen and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  html[data-theme="darkfairytale"][data-mode]:not([data-animations="off"]) :is(.panel,.metric):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *)) {
    transition:transform 240ms ease,box-shadow 240ms ease,border-color 180ms ease;
  }
  html[data-theme="darkfairytale"][data-mode]:not([data-animations="off"]) :is(.panel,.metric):not(.card-dragging):not(:focus-within):hover:not(:where(.print-preview-sheet *,#print-run-root *)) { transform:translateY(-2px); }
}


/* Source: deep-clean-picker.css */
/* Shared Deep Clean / Maintenance picker; inherits the app's dialog theme. */
.multi-room-item-dialog {
  position: fixed;
  inset: 0;
  margin: auto;
  width: min(660px, calc(100vw - 24px));
  max-height: min(88dvh, 850px);
  padding: 0;
  color: var(--text);
  background: color-mix(in srgb, var(--panel) 96%, transparent);
  border: 1px solid var(--border);
  border-radius: var(--radius-l, 20px);
}
.multi-room-item-dialog[open] { display: flex; flex-direction: column; }
.multi-room-item-dialog .multi-room-confirm-form {
  display: flex;
  flex-direction: column;
  min-height: 0;
  width: 100%;
  max-height: min(88dvh, 850px);
  margin: 0;
}
.multi-room-item-dialog header,
.multi-room-picker-toolbar,
.multi-room-item-dialog footer { padding: 16px 20px; flex-shrink: 0; }
.multi-room-item-dialog header h2 { margin: 0 0 8px; font-size: 1.15rem; }
.multi-room-item-name { margin: 0 0 8px; font-weight: 600; overflow-wrap: anywhere; }
.multi-room-item-dialog header .muted { margin: 0; }
.multi-room-picker-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; border-block: 1px solid var(--border); }
.multi-room-picker-toolbar [data-room-selected-count] { margin-left: auto; color: var(--muted); font-size: .85rem; }
.multi-room-picker-list { overflow-y: auto; overscroll-behavior: contain; min-height: 0; padding: 12px 20px; }
.multi-room-picker-list fieldset { min-width: 0; margin: 0 0 16px; padding: 8px 0; border: 0; }
.multi-room-picker-list legend { padding: 0; }
.multi-room-picker-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px; }
.multi-room-picker-grid label { display: flex; align-items: center; gap: 8px; min-height: 46px; padding: 10px; margin: 0; cursor: pointer; border: 1px solid var(--border); border-radius: var(--radius-s, 4px); background: var(--surface); }
.multi-room-picker-grid label:has(:checked) { border-color: var(--accent); background: var(--accent-soft); }
.multi-room-picker-grid label:has(:disabled) { opacity: .6; cursor: default; }
.multi-room-picker-grid label:focus-within { outline: 2px solid var(--accent); outline-offset: 2px; }
.multi-room-picker-grid input { width: 18px; height: 18px; margin: 0; accent-color: var(--accent); }
.multi-room-item-dialog footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--border); }
.multi-room-item-dialog [data-room-notice] { flex-basis: 100%; margin: 0; color: var(--muted); font-size: .85rem; }
.multi-room-item-dialog [data-room-notice]:empty { display: none; }
.multi-room-picker-results { font-size: .85rem; overflow-wrap: anywhere; }
.multi-room-picker-results .unconfirmed { color: var(--text); border-left: 3px solid var(--accent); padding-left: 8px; }
.multi-room-picker-results .confirmed { color: var(--muted); }
.multi-room-draft-note { flex-basis: 100%; margin: 0; font-size: .85rem; }
.multi-room-item-form input[name="name"] { min-width: 0; flex: 1 1 200px; }
@media (max-width: 540px) {
  .multi-room-item-dialog header, .multi-room-picker-toolbar, .multi-room-item-dialog footer { padding: 12px; }
  .multi-room-picker-list { padding: 12px; }
  .multi-room-item-dialog footer > button { flex: 1 1 auto; min-height: 44px; }
  .multi-room-picker-toolbar [data-room-selected-count] { flex-basis: 100%; margin: 0; }
}


/* Source: mobile-performance.css */
/* Touch devices: retain theme artwork and small character animations, but
   avoid repainting page-sized textures and glass surfaces during a swipe.
   Desktop styling, status indicators, drag transforms and print stay intact. */
@media screen and (hover: none) and (pointer: coarse) {
  html[data-theme][data-mode] body,
  html[data-theme][data-mode] .workspace {
    background-attachment: scroll !important;
  }

  html[data-theme][data-mode] :is(.topbar, .sidebar, .panel, .metric, .room-card, .employee-bubble, .mobile-nav-bar, #mobile-nav-select, #mobile-nav-sheet) {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  /* Texture remains visible; only its continuous, paint-heavy drift stops. */
  html[data-theme][data-mode] :is(.panel, .panel-head, .metric, .room-card, .employee-bubble),
  html[data-theme][data-mode] :is(.panel, .panel-head, .metric, .room-card, .employee-bubble)::before,
  html[data-theme][data-mode] :is(.panel, .panel-head, .metric, .room-card, .employee-bubble)::after {
    animation: none !important;
  }

  html[data-theme][data-mode][data-animation-style] .workspace > .workspace-animation-decor {
    -webkit-mask-image: none;
    mask-image: none;
  }
  html[data-theme][data-mode][data-animation-style] .workspace-animation-decor::before,
  html[data-theme][data-mode][data-animation-style] .workspace-animation-decor::after {
    animation: none !important;
    transform: none !important;
    filter: none !important;
    will-change: auto;
  }

  /* Keep a few floating characters without the extra blurred copies. */
  html[data-theme][data-mode][data-animation-style] .workspace-animation-decor :is(.animation-leaf, .animation-firefly) {
    filter: none !important;
    box-shadow: none !important;
  }
  html[data-theme][data-mode][data-animation-style] .workspace-animation-decor :is(.leaf-4, .leaf-5, .firefly-5, .firefly-6, .firefly-7, .firefly-8) {
    display: none !important;
  }

  html[data-theme][data-mode] :is(.panel, .metric, .room-card, .employee-bubble):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging):not(:where(.print-preview-sheet *, #print-run-root *)) {
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--text) 10%, transparent), 0 3px 7px -4px color-mix(in srgb, var(--text) 24%, transparent) !important;
  }
}


/* Source: private-notes.css */
/* One Notes surface. Papers deliberately use readable pigments rather than panel borders. */
.private-notes-workspace{position:relative}
.private-notes-card{position:relative;min-width:0;padding:12px 8px;isolation:isolate;background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important}
.private-notes-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 10px}
.private-notes-head h3{margin:0;font-family:'Bradley Hand','Segoe Print','Comic Sans MS',cursive;font-size:1.45rem}
.private-notes-head .private-notes-new{margin-left:auto}
.private-notes-count,.private-notes-unread-count{font-size:.76rem;opacity:.75}
.private-notes-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 10px;font-size:.76rem}
.private-notes-modes{display:inline-flex;gap:2px}
.private-notes-card button,.private-notes-card select,.private-notes-floating-layer button{font:inherit;cursor:pointer}
.private-notes-toolbar button,.private-notes-new,.private-notes-floating-controls button,.private-notes-retry{border:1px solid color-mix(in srgb,currentColor 20%,transparent);border-radius:6px;background:color-mix(in srgb,var(--panel,#aaa) 25%,transparent);color:inherit;padding:5px 8px;min-height:30px}
.private-notes-modes [aria-pressed=true]{background:color-mix(in srgb,var(--accent,#bca05a) 23%,transparent)}
.private-notes-toolbar select{max-width:180px;color:inherit;background:var(--panel,#fff);border:1px solid color-mix(in srgb,currentColor 20%,transparent);border-radius:5px;padding:4px}
.private-notes-toolbar label{display:flex;align-items:center;gap:4px;white-space:nowrap}
.private-notes-board{position:relative;max-height:560px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;min-width:0}
.private-notes-canvas{position:relative;width:100%;min-height:280px}
.private-notes-floating-layer{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:clip}
.private-note-paper{--paper:#fff0ac;--paper-ink:#352e1d;--note-rotation:-1deg;--note-x:12px;--note-y:12px;position:absolute!important;left:0;top:0;box-sizing:border-box;display:flex;flex-direction:column;gap:8px;margin:0!important;padding:15px 15px 12px!important;min-width:0!important;border:0!important;border-radius:3px 4px 13px 3px!important;background:linear-gradient(125deg,#ffffff18,#ffffff00 45%,#583c0710),repeating-linear-gradient(4deg,transparent 0 3px,#46350a04 3px 4px),var(--paper)!important;color:var(--paper-ink)!important;box-shadow:2px 6px 10px #1c150b26,1px 1px 2px #1c150b20!important;transform:translate(var(--note-x),var(--note-y)) rotate(var(--note-rotation));transform-origin:50% 14%;transition:transform .23s cubic-bezier(.2,.7,.25,1),box-shadow .2s;pointer-events:auto;touch-action:pan-y;cursor:grab;font:14px/1.45 system-ui,sans-serif;contain:layout style}
.private-note-paper[data-color=pink]{--paper:#f9d4dd}.private-note-paper[data-color=blue]{--paper:#d4e9fa}.private-note-paper[data-color=mint]{--paper:#d8ecd3}.private-note-paper[data-color=lavender]{--paper:#e6ddf8}.private-note-paper[data-color=peach]{--paper:#f9dec2}
.private-note-paper::after{content:'';position:absolute;right:0;bottom:0;width:15px;height:15px;background:linear-gradient(135deg,transparent 45%,#fff6 49%,#694b2020 100%);border-radius:0 0 12px 0;pointer-events:none}
.private-note-paper:hover{box-shadow:3px 10px 16px #1c150b30,1px 1px 2px #1c150b20!important;transform:translate(var(--note-x),calc(var(--note-y) - 3px)) rotate(var(--note-rotation))}
.private-note-paper.is-dragging{transition:none;cursor:grabbing;touch-action:none}
.private-note-paper:focus-visible{outline:2px solid #755217;outline-offset:3px}
.private-note-paper [hidden],.private-notes-card [hidden],.private-notes-floating-layer [hidden]{display:none!important}
.private-note-paper-head{display:flex;align-items:flex-start;gap:6px;flex-shrink:0;min-width:0}
.private-note-paper-head h4{font:600 15px/1.3 'Bradley Hand','Segoe Print',system-ui,sans-serif!important;color:var(--paper-ink)!important;margin:0;flex:1;overflow-wrap:anywhere;max-height:40px;overflow:hidden}
.private-note-pin{font-size:13px;color:#a84435;filter:drop-shadow(1px 2px 1px #57352e30)}
.private-note-menu{margin-left:auto;position:relative;font-size:14px;z-index:3}
.private-note-menu summary{list-style:none;cursor:pointer;padding:0 5px;line-height:22px;min-width:22px;text-align:center}
.private-note-menu summary::-webkit-details-marker{display:none}
.private-note-menu-actions{position:absolute;right:-3px;top:24px;background:var(--paper);border:1px solid #6d542333;border-radius:5px;box-shadow:0 5px 15px #0002;padding:4px;width:160px;display:grid;gap:2px;z-index:3000}
.private-note-menu-actions button{background:transparent;border:0;text-align:left;padding:7px;color:var(--paper-ink);font-size:12px}
.private-note-menu-actions button:hover{background:#00000009}
.private-note-preview-items{list-style:none;margin:0;padding:0;overflow:auto;min-height:0;flex:1;scrollbar-width:thin;overscroll-behavior:contain}
.private-note-preview-items li{display:flex;align-items:flex-start;gap:8px;margin:0 0 7px;overflow-wrap:anywhere;white-space:pre-wrap;font-size:13px;line-height:1.5}
.private-note-check{width:18px;height:18px;min-width:18px;padding:0;line-height:16px;flex:none;margin-top:2px;border:1px solid #705c4980;border-radius:3px;background:#ffffff32;color:#453622}
.private-note-preview-items .is-done span,.private-note-item.is-done textarea{text-decoration:line-through;opacity:.63}
.private-note-blank{opacity:.6;font-style:italic}
.private-note-preview-footer{display:flex;align-items:center;gap:8px;font-size:10px;opacity:.8;flex-shrink:0}
.private-note-edit{margin-left:auto;border:0;background:transparent;color:inherit;padding:0 5px;font-size:16px}
.private-note-resize{position:absolute;bottom:2px;right:2px;border:0;background:transparent;color:#65512f80;cursor:nwse-resize!important;touch-action:none;padding:3px;font-size:11px}
.private-note-paper[data-minimized=true] .private-note-preview-items,.private-note-paper[data-minimized=true] .private-note-preview-footer{display:none}
.private-notes-form{display:flex;gap:6px;margin:8px 10px 0;font-size:.8rem}
.private-notes-form input{flex:1;min-width:0;border-radius:6px;border:1px solid color-mix(in srgb,currentColor 20%,transparent);background:var(--panel,#fff);color:inherit;padding:8px 10px;font:inherit}
.private-notes-form button{border-radius:6px;padding:6px 12px;color:inherit;background:color-mix(in srgb,var(--accent,#bca05a) 20%,transparent);border:1px solid color-mix(in srgb,currentColor 20%,transparent)}
.private-notes-floating-controls{display:flex;gap:8px;margin:8px 10px;font-size:.74rem}
.private-notes-status,.private-notes-empty{margin:6px 10px;font-size:.76rem;overflow-wrap:anywhere}
.private-notes-status:empty{display:none}
.private-notes-editor{padding:16px;border:0;border-radius:10px;background:var(--panel,#fff);color:var(--text,#222);box-shadow:0 18px 80px #0005;width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box}
.private-notes-editor::backdrop{background:#15121b75;backdrop-filter:blur(2px)}
.private-notes-editor-close{display:block;margin:0 0 10px auto;padding:6px 14px;border:1px solid color-mix(in srgb,currentColor 25%,transparent);border-radius:6px;background:transparent;color:inherit}
.private-notes-editor .private-note-paper{position:relative!important;left:auto;top:auto;width:100%!important;height:auto!important;min-height:235px;transform:none!important;cursor:auto;contain:none}
.private-notes-editor .private-note-paper-head{flex-wrap:wrap}
.private-note-title{flex:1;min-width:120px;max-width:100%;font:600 18px/1.4 'Bradley Hand','Segoe Print',system-ui,sans-serif;border:0;border-bottom:1px solid #5c45172a;background:transparent;color:var(--paper-ink)}
.private-note-color,.private-note-visibility,.private-note-attach{border:1px solid #5c451738;border-radius:4px;background:#fff3;color:var(--paper-ink);padding:4px;font-size:12px;max-width:100%}
.private-note-urgent,.private-note-delete,.private-note-item-delete,.private-note-order-controls button,.private-note-add-item,.private-note-undo{border:0;background:transparent;color:inherit;padding:3px 5px}
.private-note-sharing{display:flex;align-items:flex-start;flex-wrap:wrap;gap:6px;font-size:12px}
.private-note-people-list{display:grid;gap:6px;padding:8px 0;max-height:160px;overflow:auto}
.private-note-people-list label{display:flex;align-items:center;gap:5px}
.private-note-layout-settings{border:1px solid #5c45172a;border-radius:5px;margin:4px 0;padding:7px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:11px}
.private-note-layout-settings small{flex-basis:100%;opacity:.7}.private-note-layout-settings label{display:flex;align-items:center;gap:5px}.private-note-layout-settings input{max-width:90px}
.private-note-items{list-style:none;margin:8px 0;padding:0;display:grid;gap:7px}
.private-note-item{display:flex;align-items:flex-start;gap:7px;min-width:0}
.private-note-item textarea{flex:1;min-width:0;resize:none;overflow:hidden;font:14px/1.45 system-ui,sans-serif;color:var(--paper-ink);border:0;border-bottom:1px dashed #5c451725;background:transparent;padding:2px 0;box-sizing:border-box}
.private-note-sender,.private-note-meta{font-size:10px;opacity:.75;overflow-wrap:anywhere}.private-note-meta{display:flex;justify-content:space-between;align-items:center;gap:6px}
.private-note-conversation{border-top:1px solid #5c451726;padding-top:8px;font-size:12px}
.private-note-conversation button{border:1px solid #5c451738;border-radius:4px;background:#fff3;color:var(--paper-ink);padding:4px 7px}
.private-note-thread-tools,.private-note-message-actions{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0}
.private-note-thread{list-style:none;margin:6px 0;padding:0;max-height:300px;overflow:auto;display:grid;gap:10px}
.private-note-thread li{border-bottom:1px solid #5c451726;padding-bottom:6px;overflow-wrap:anywhere;white-space:pre-wrap}
.private-note-message-meta{display:flex;justify-content:space-between;gap:6px;font-size:10px}.private-note-message-meta time{opacity:.65}.private-note-thread p{margin:5px 0;white-space:pre-wrap}
.private-note-reply-form{display:grid;gap:6px}.private-note-reply-input{width:100%;box-sizing:border-box;resize:vertical;border:1px solid #5c451738;border-radius:4px;padding:6px;background:#fff4;color:var(--paper-ink);font:13px/1.5 system-ui,sans-serif}.private-note-mentions{display:flex;gap:6px;flex-wrap:wrap;font-size:11px}.private-note-mentions label{display:flex;align-items:center;gap:3px}
.private-note-thread-status,.private-notes-editor-status{font-size:12px;overflow-wrap:anywhere}
/* The surrounding theme stays intact; paper accents remain restrained. */
[data-theme-family=lunar] .private-note-paper{box-shadow:2px 6px 12px #15294330,0 0 9px #9ef4ff20!important}
[data-theme-family=equine] .private-note-paper{border-radius:5px 5px 13px 5px!important}
@media(max-width:700px),(pointer:coarse){.private-notes-floating-layer{display:none!important}.private-notes-floating-controls{display:none}.private-notes-toolbar{gap:5px}.private-notes-toolbar button,.private-notes-new{min-height:38px}.private-note-paper{touch-action:pan-y}.private-note-check{width:24px;height:24px;min-width:24px;line-height:22px}.private-note-preview-items li{gap:7px}.private-note-menu summary{min-width:30px;min-height:30px}.private-note-edit{padding:4px 7px}.private-notes-board{max-height:460px}.private-notes-editor{padding:10px}.private-note-paper-head h4{font-size:15px!important}.private-notes-toolbar select{max-width:155px}.private-notes-head{gap:6px}}
@media(prefers-reduced-motion:reduce){.private-note-paper{transition:none!important}.private-note-paper:hover{transform:translate(var(--note-x),var(--note-y)) rotate(var(--note-rotation))}}
html[data-world="lunar-chronicles"][data-mode="light"] .private-note-paper,html[data-world="lunar-chronicles"][data-mode="dark"] .private-note-paper{background-image:linear-gradient(125deg,#c4ffff2b,transparent 48%,#23476012),repeating-linear-gradient(4deg,transparent 0 3px,#23476004 3px 4px)!important}
html[data-world="dark-is-rising"][data-mode="light"] .private-note-paper,html[data-world="dark-is-rising"][data-mode="dark"] .private-note-paper{background-image:linear-gradient(125deg,#fff3,transparent 48%,#61472118),repeating-linear-gradient(4deg,transparent 0 3px,#61472106 3px 4px)!important}
html[data-world="fairy-tale"][data-mode="light"] .private-note-paper,html[data-world="fairy-tale"][data-mode="dark"] .private-note-paper{background-image:linear-gradient(125deg,#fff3,transparent 48%,#78512218),repeating-linear-gradient(4deg,transparent 0 3px,#78512206 3px 4px)!important}
html[data-world="equestria-magic-friendship"][data-mode="light"] .private-note-paper,html[data-world="equestria-magic-friendship"][data-mode="dark"] .private-note-paper{background-image:linear-gradient(125deg,#ffe8ff26,transparent 48%,#704b9812),repeating-linear-gradient(4deg,transparent 0 3px,#704b9804 3px 4px)!important}
html[data-world="courts-of-twilight-meredith-gentry"][data-mode="light"] .private-note-paper,html[data-world="courts-of-twilight-meredith-gentry"][data-mode="dark"] .private-note-paper{background-image:radial-gradient(ellipse at 100% 100%,#58804a1a,transparent 45%),repeating-linear-gradient(4deg,transparent 0 3px,#58804a04 3px 4px)!important}
html[data-world="phenix-1873"][data-mode="light"] .private-note-paper,html[data-world="phenix-1873"][data-mode="dark"] .private-note-paper{background-image:linear-gradient(125deg,#fff3,transparent 48%,#75481b12),repeating-linear-gradient(4deg,transparent 0 3px,#75481b04 3px 4px)!important}
/* Global theme button treatments must not turn paper checkboxes into card controls. */
.private-note-paper .private-note-check{height:18px!important;min-height:18px!important;width:18px!important;min-width:18px!important;padding:0!important;background:#ffffff32!important;border:1px solid #705c4980!important;border-radius:3px!important;color:#453622!important;box-shadow:none!important}
.private-note-paper .private-note-edit,.private-note-paper .private-note-resize,.private-note-paper .private-note-menu-actions button{min-height:0!important;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--paper-ink)!important}
@media(max-width:700px),(pointer:coarse){.private-note-paper .private-note-check{height:24px!important;min-height:24px!important;width:24px!important;min-width:24px!important}}
/* Paper pigment and ink also opt out of themed form/material paint layers. */
@layer theme-studio {
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper{background-color:var(--paper)!important;color:var(--paper-ink)!important;border:0!important;backdrop-filter:none!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper :is(h4,input,textarea,select,option,button){color:var(--paper-ink)!important;text-shadow:none!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper :is(.private-note-title,.private-note-item textarea){background:transparent!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper :is(.private-note-color,.private-note-visibility,.private-note-attach,.private-note-reply-input){background:#ffffff40!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper option{background:var(--paper)!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-check{background:#ffffff32!important;border:1px solid #705c4980!important;border-radius:3px!important;box-shadow:none!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper :is(.private-note-edit,.private-note-resize,.private-note-menu-actions button){background:transparent!important;border:0!important;box-shadow:none!important}
}
/* Floating placement must never travel through dashboard buttons. The board
   keeps its paper-unfolding animation; floating papers animate their shadow. */
.private-note-paper[data-floating=true]{transition:rotate .2s ease,scale .2s ease,box-shadow .2s!important}
@media(prefers-reduced-motion:reduce){.private-note-paper[data-floating=true]{transition:none!important}}
/* One dashboard-level portal: ancestor grids, overflow and transforms cannot
   contain a drag. Only navigation is masked; cards are valid drop regions. */
.private-notes-floating-layer{position:fixed;inset:0;width:100vw;height:100vh;overflow:visible;clip-path:inset(var(--float-clip-top,0px) 0 0 var(--float-clip-left,0px));z-index:60}
.private-notes-floating-layer[data-peeking=true]{opacity:0;pointer-events:none}
.private-notes-floating-layer[data-peeking=true] *{pointer-events:none!important}
.private-notes-peek-return{position:fixed;right:16px;bottom:16px;z-index:10000;padding:9px 14px;border:1px solid var(--border,#999);border-radius:7px;color:var(--text,#222);background:var(--panel,#fff);box-shadow:0 3px 15px #0002;cursor:pointer;font:13px system-ui,sans-serif}
.private-notes-peek-return[hidden]{display:none!important}
.private-note-paper.is-dragging{user-select:none;touch-action:none}
@media(max-width:700px),(pointer:coarse){.private-notes-peek-return{display:none!important}}
/* Direct writing stays on the paper; only its adhesive edge can move it. */
.private-note-paper{padding:34px 15px 12px!important;border-radius:2px 4px 7px 3px!important;cursor:auto;box-shadow:1px 2px 3px #30230f18,3px 7px 12px -3px #211a0c38!important}
.private-note-paper::before{content:'';position:absolute;inset:0 0 auto;height:28px;background:linear-gradient(180deg,#6b58110a,#fff3 65%,transparent);border-radius:inherit;pointer-events:none}
.private-note-paper::after{width:10px;height:10px;border-radius:0 0 7px 0;background:linear-gradient(135deg,transparent 48%,#fff5 54%,#694b2018)}
.private-note-paper:hover{transform:translate(var(--note-x),var(--note-y)) rotate(var(--note-rotation));box-shadow:2px 4px 5px #30230f1c,4px 9px 15px -4px #211a0c40!important}
.private-note-drag-handle{position:absolute;inset:0 0 auto;height:28px;cursor:grab;touch-action:none;user-select:none}
.private-note-paper.is-dragging,.private-note-paper.is-dragging .private-note-drag-handle{cursor:grabbing}
.private-note-paper:not([data-editing=true]) .private-note-menu{position:absolute;right:5px;top:3px}
.private-note-paper:not([data-editing=true]) .private-note-paper-head{padding-right:2px}
.private-note-writing{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain;cursor:text}
.private-note-writing .private-note-preview-items{flex:none;overflow:visible;min-height:0}
.private-note-inline-item{display:flex;align-items:flex-start;gap:8px;min-width:0;margin:0 0 7px}
.private-note-inline-input{flex:1;min-width:0;box-sizing:border-box;resize:none;overflow:hidden;white-space:pre-wrap;cursor:text}
.private-note-inline-item.is-done textarea{text-decoration:line-through;text-decoration-color:#352e1d70;opacity:.65}
.private-note-blank-space{flex:1;min-height:1.6em;font-size:13px;font-style:italic;opacity:.6;cursor:text}
.private-note-save-state{margin-left:auto;opacity:.7;font-size:9px}
.private-note-save-state[data-error=true]{opacity:1;text-decoration:underline dotted}
.private-note-save-retry{border:0;background:transparent;padding:0 8px 0 0;font-size:10px;text-decoration:underline}
.private-note-paper[data-minimized=true] .private-note-writing{display:none}
.private-notes-editor .private-note-paper{padding-top:18px!important}
@layer theme-studio{
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-inline-input{background:transparent!important;color:var(--paper-ink)!important;border:0!important;border-radius:0!important;box-shadow:none!important;outline:0!important;min-height:0!important;padding:1px 0!important;margin:0!important;font:13px/1.5 system-ui,sans-serif!important;text-shadow:none!important;width:100%}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-inline-input:focus{background:transparent!important;outline:0!important;box-shadow:none!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-save-retry{background:transparent!important;color:var(--paper-ink)!important;border:0!important;box-shadow:none!important;min-height:0!important}
}
@media(max-width:700px),(pointer:coarse){.private-note-drag-handle{cursor:default;touch-action:pan-y}.private-note-writing{touch-action:pan-y}.private-note-inline-item{gap:7px}.private-note-writing .private-note-check{margin-top:0}}
.private-note-paper[data-minimized=true] .private-note-paper-head h4{white-space:nowrap;text-overflow:ellipsis;max-height:1.3em}
/* Compact controls and explicit foreground/surface pairs, independent of theme
   button paint. Paper controls use the paper's own pigment and readable ink. */
.private-notes-card{padding:4px 0!important;min-height:0!important}
.private-notes-toolbar{padding:4px 0;gap:4px;min-width:0}
.private-notes-main-controls{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0}
.private-notes-toolbar button{white-space:nowrap}
.private-notes-toolbar .private-notes-pick{width:125px;max-width:35vw}
.private-notes-launcher{display:inline-flex;align-items:center;gap:5px}
.private-notes-count{opacity:1}
.private-notes-options{position:relative;z-index:70}
.private-notes-options>summary{list-style:none;cursor:pointer;padding:6px 10px}
.private-notes-options>div{position:absolute;right:0;top:100%;display:grid;gap:8px;min-width:190px;padding:10px;border:1px solid var(--border);border-radius:7px;background:var(--panel,#fff);box-shadow:0 5px 20px #0003}
.private-notes-card[data-toolbar-expanded=false] .private-notes-main-controls,.private-notes-card[data-toolbar-expanded=false] .private-notes-board,.private-notes-card[data-toolbar-expanded=false] .private-notes-empty{display:none!important}
.private-notes-canvas{min-height:0}
.private-notes-board{margin:0;max-height:560px}
.private-notes-editor{width:min(410px,calc(100vw - 24px));padding:10px;max-height:calc(100dvh - 24px)}
.private-notes-editor-close{position:sticky;top:0;z-index:5;margin:0 0 6px auto}
.private-notes-editor .private-note-paper{min-height:0;rotate:none!important;scale:none!important;gap:8px}
.private-note-advanced{font:12px/1.4 system-ui,sans-serif}
.private-note-advanced>summary{cursor:pointer;padding:5px 0}
.private-note-advanced fieldset{min-width:0;margin:8px 0;padding:7px;border:1px solid #5c451735;border-radius:5px}
.private-note-advanced details label,.private-note-room-choices label{display:flex;align-items:center;gap:6px;padding:3px}
.private-note-room-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:160px;overflow:auto}
.private-note-room-shortcuts{display:flex;gap:5px;font-size:11px;flex-shrink:0}
.private-note-inline-item{gap:6px;margin-bottom:3px!important}
.private-note-paper{transform:none;rotate:var(--note-rotation);scale:1;transition:rotate .2s ease,scale .2s ease,box-shadow .2s!important}
.private-note-paper.is-writing{rotate:0deg;box-shadow:3px 8px 15px #211a0c40!important}
.private-note-paper.is-picked-up,.private-note-paper.is-dragging{scale:1.02;rotate:var(--note-rotation);box-shadow:5px 13px 23px #211a0c48!important;user-select:none}
.private-note-drag-handle{touch-action:none!important;-webkit-touch-callout:none}
.private-note-paper:not([data-editing=true]) .private-note-menu{z-index:4}
.private-note-preview-footer{opacity:1;gap:6px}
.private-note-save-state{opacity:.8;min-height:1.3em;transition:opacity .2s}
.private-note-save-state:empty{opacity:0}
.private-note-save-state[data-saving=true]::before{content:'';display:inline-block;width:7px;height:7px;margin-right:4px;border:1px solid currentColor;border-right-color:transparent;border-radius:50%;animation:notes-saving .8s linear infinite}
@keyframes notes-saving{to{rotate:360deg}}
.private-notes-floating-layer{padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);box-sizing:border-box;max-width:100vw}
.private-notes-floating-layer[data-dragging=true]{clip-path:none}
.private-notes-drop-ready{outline:2px solid var(--accent,#8c7340)!important;outline-offset:3px;box-shadow:0 0 12px color-mix(in srgb,var(--accent,#8c7340) 40%,transparent)!important}
.private-notes-drop-invalid{outline:1px dashed var(--danger,#ac3939)!important}
.private-notes-drop-cue{position:fixed;z-index:10001;pointer-events:none;color:var(--accent,#8c7340);filter:drop-shadow(0 0 4px var(--accent,#8c7340));font-size:18px}
.private-notes-drop-cue[data-valid=false]{filter:none;opacity:.45}
.private-notes-room-link,.private-notes-nav-count{font:11px/1.3 system-ui,sans-serif;border-radius:10px;padding:2px 5px;margin-left:5px;white-space:nowrap}
.private-notes-nav-count{margin-left:auto;background:var(--panel,#fff);color:var(--text,#222)}
.private-notes-room-dock{position:relative;min-width:0;max-width:100%;isolation:isolate;overflow:visible;margin:8px 0}
.private-notes-room-dock[data-expanded=false]{height:auto!important;min-height:35px}
.private-notes-room-dock .private-note-paper{max-width:calc(100% - 32px)}
@layer theme-studio{
 html :is(.private-notes-toolbar,.private-notes-editor,.private-notes-peek-return) :is(button,select,summary),html .private-notes-card>.private-notes-retry,html .private-notes-room-link,html .private-notes-room-dock>button{
  background:var(--panel,#fff)!important;color:var(--text,#222)!important;border:1px solid var(--border,#777)!important;text-shadow:none!important;box-shadow:none!important;opacity:1!important;filter:none!important;background-image:none!important;
 }
 html :is(.private-notes-toolbar,.private-notes-editor) :is(button,select,summary)::before,html :is(.private-notes-toolbar,.private-notes-editor) :is(button,select,summary)::after{display:none!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper :is(button,select,summary,input,textarea){color:var(--paper-ink)!important;background:var(--paper)!important;background-image:none!important;text-shadow:none!important;box-shadow:none!important;filter:none!important;opacity:1!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper :is(button,summary){border:0!important;border-radius:4px!important;min-height:28px!important;padding:3px 6px!important;font-size:12px!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-check{min-height:20px!important;height:20px!important;width:20px!important;min-width:20px!important;padding:0!important;border:1px solid #705c49!important;line-height:18px!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-inline-input{padding:1px 0!important;font:13px/1.5 system-ui,sans-serif!important;min-height:0!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-title{background:transparent!important;font:600 17px/1.5 system-ui,sans-serif!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-reply-input{min-height:3em!important}
 html :is(.private-notes-card,.private-notes-floating-layer,.private-notes-editor) :is(button,select):disabled{opacity:.5!important;cursor:not-allowed!important}
 html :is(.private-notes-card,.private-notes-floating-layer,.private-notes-editor) :is(button,summary):focus-visible{outline:2px solid var(--accent,#87672d)!important;outline-offset:2px!important}
}
@media(max-width:700px),(pointer:coarse){
 .private-notes-floating-layer{display:block!important}
 .private-note-drag-handle{height:44px;touch-action:none!important;cursor:grab}
 .private-note-paper{padding-top:48px!important}
 .private-note-paper::before{height:44px}
 .private-note-paper:not([data-editing=true]) .private-note-menu{top:5px;right:5px}
 .private-note-writing{touch-action:pan-y}
 .private-notes-peek-return{display:block!important;bottom:calc(env(safe-area-inset-bottom,0px) + 80px)}
 .private-notes-toolbar{gap:4px}.private-notes-toolbar button,.private-notes-options>summary{min-height:40px}
 .private-notes-main-controls{flex:1}
 .private-notes-options>div{position:fixed;top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 80px);right:12px;max-height:60dvh;overflow:auto}
 @layer theme-studio{html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-inline-input{font-size:16px!important;line-height:1.45!important}html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-check{min-height:26px!important;height:26px!important;min-width:26px!important;width:26px!important;line-height:24px!important}}
}
@media(prefers-reduced-motion:reduce){.private-note-paper,.private-note-save-state{transition:none!important}.private-note-save-state::before{animation:none!important}}
.private-notes-floating-layer{clip-path:inset(var(--float-clip-top,0px) 0 var(--float-clip-bottom,0px) var(--float-clip-left,0px))}
.private-notes-floating-layer[data-dragging=true]{clip-path:none}
.private-note-inline-item>.private-note-item-delete{flex:none;opacity:0;max-width:24px}
.private-note-inline-item:hover>.private-note-item-delete,.private-note-inline-item:focus-within>.private-note-item-delete{opacity:1}
@media(pointer:coarse){.private-note-inline-item>.private-note-item-delete{opacity:.65}}
.private-note-menu-actions{overflow:auto;max-height:min(60dvh,400px);overscroll-behavior:contain}
.private-note-menu[data-up=true] .private-note-menu-actions{top:auto;bottom:24px}
/* Translate precedes rotation/scale so the saved position is never rotated
   around the dashboard origin. Only the paper itself lifts and straightens. */
.private-note-paper,.private-note-paper:hover{transform:none;translate:var(--note-x) var(--note-y)}
.private-notes-editor .private-note-paper{translate:none!important}
.private-note-paper[data-minimized=true] .private-note-room-shortcuts{display:none}
@layer theme-studio{
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-inline-item>.private-note-item-delete{opacity:0!important}
 html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-inline-item:is(:hover,:focus-within)>.private-note-item-delete{opacity:1!important}
 @media(pointer:coarse){html :is(#app-view,.private-notes-floating-layer) .private-note-paper .private-note-inline-item>.private-note-item-delete{opacity:1!important}}
}

/* Today hosts the same Notes controller; visibility never rewrites content or placements. */
@layer theme-studio {
 html .private-notes-card[data-today-only=true] { margin:8px 0 0!important; padding:0!important; grid-column:1/-1; width:100%; order:900; }
 html .private-notes-card[data-today-only=true] .private-notes-launcher { min-height:34px!important; padding:5px 9px!important; border:1px solid var(--border)!important; border-radius:8px!important; background:color-mix(in srgb,var(--panel) 65%,transparent)!important; color:var(--muted,var(--text))!important; font-size:12px!important; box-shadow:none!important; }
 html .private-notes-card[data-today-only=true] .private-notes-launcher strong { font-weight:550!important; }
 html .private-notes-card[data-today-only=true] .private-notes-count { font-size:11px!important; opacity:.8!important; }
 html .private-notes-attention { display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--accent); }
 html .private-notes-attention[data-priority=attention] { background:var(--warning,#bb882b); }
 html .private-notes-attention[data-priority=error] { background:var(--danger,#b75454); }
 html .private-notes-card[data-today-only=true][data-toolbar-expanded=false] :is(.private-notes-status,.private-notes-unread-count,.private-notes-urgent-count) { display:none!important; }
 html :is(.private-notes-card,.private-notes-floating-layer,.private-notes-attention)[hidden] { display:none!important; }
}
@layer theme-studio {
 html .private-notes-card[data-today-only=true][data-toolbar-expanded=true] { z-index:20!important; }
 html .private-notes-card[data-today-only=true] .private-notes-board { scroll-padding-bottom:48px; }
}
@layer theme-studio {
 html .private-notes-card[data-today-only=true] { scroll-margin-bottom:100px; }
}


/* Source: guest-praise.css */
.guest-praise-card { min-width: 0; }
.guest-praise-card > .panel-head { align-items: center; gap: 12px; padding: 16px 18px 12px; }
.guest-praise-card .panel-head h3 { display: flex; align-items: center; gap: 9px; margin: 0; }
html .guest-praise-card > .panel-head h3::before,
html .guest-praise-card > .panel-head h3::after { content: none; }
.guest-praise-icon { width: 22px; height: 22px; color: var(--accent); flex: none; }
.guest-praise-caption { color: var(--muted); font-size: 12px; margin: 4px 0 0 31px; }
.guest-praise-card > .panel-body { padding: 8px 18px 16px; }
.guest-praise-score-heading { display: flex; flex-wrap: wrap; gap: 5px 14px; align-items: baseline; margin-bottom: 10px; }
.guest-praise-score-heading h4 { margin: 0; color: var(--text); font-size: 13px; }
.guest-praise-scope { color: var(--muted); font-size: 11px; }
.guest-praise-scores { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.guest-praise-score { border: 1px solid var(--border); background: var(--surface-solid, var(--surface)); border-radius: 12px; padding: 13px; min-width: 0; }
.guest-praise-score h4 { font-size: 13px; color: var(--text); margin: 0 0 8px; }
.guest-praise-card .guest-praise-value { font-size: 29px; line-height: 1.2; letter-spacing: -.04em; color: var(--text); font-weight: 700; margin: 0 0 8px; font-variant-numeric: tabular-nums; }
.guest-praise-denominator { color: var(--muted); font-size: 16px; font-weight: 500; letter-spacing: normal; }
.guest-praise-card .guest-praise-unrated { font-size: 18px; min-height: 35px; display: flex; align-items: center; letter-spacing: -.02em; }
.guest-praise-count { color: var(--text); font-size: 12px; margin: 0 0 5px; line-height: 1.45; }
.guest-praise-window, .guest-praise-scale-note { font-size: 11px; line-height: 1.45; color: var(--muted); margin: 0; }
.guest-praise-scale-note { margin-top: 7px; }
.guest-praise-highlight { margin: 15px 0 8px; border-left: 2px solid var(--accent); padding: 3px 0 3px 15px; }
.guest-praise-stay { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0 0 10px; line-height: 1.5; overflow-wrap: anywhere; }
.guest-praise-property { color: var(--text); font-size: 13px; font-weight: 700; }
.guest-praise-checkin { color: var(--text); font-size: 12px; }
.guest-praise-highlight blockquote { color: var(--text); font-size: 16px; font-weight: 500; line-height: 1.6; margin: 0 0 10px; overflow-wrap: anywhere; }
.guest-praise-highlight figcaption { color: var(--muted); font-size: 11px; line-height: 1.5; }
.guest-praise-navigation { display: flex; align-items: center; gap: 12px; margin-top: 10px; }
.guest-praise-navigation > span { font-size: 11px; font-variant-numeric: tabular-nums; color: var(--muted); min-width: 28px; text-align: center; }
.guest-praise-card .guest-praise-navigation button { min-width: 44px; min-height: 36px; padding: 0 10px; font-size: 18px; }
.guest-praise-selection, .guest-praise-meta, .guest-praise-status { font-size: 11px; line-height: 1.5; color: var(--muted); margin: 9px 0 0; overflow-wrap: anywhere; }
.guest-praise-meta { padding-top: 10px; border-top: 1px solid var(--border); }
.guest-praise-status:empty, .guest-praise-selection:empty { display: none; }
.guest-praise-import { margin-top: 12px; color: var(--text); font-size: 12px; }
.guest-praise-import summary { cursor: pointer; padding: 8px 0; }
.guest-praise-import form { display: grid; gap: 8px; margin-top: 6px; }
.guest-praise-import p { margin: 0; line-height: 1.5; }
.guest-praise-import label { display: grid; gap: 5px; min-width: 0; }
.guest-praise-import input { min-width: 0; max-width: 100%; width: 100%; margin: 0; }
.guest-praise-import button { justify-self: start; }
.guest-praise-card :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.guest-praise-card [hidden] { display: none !important; }
@media (max-width: 600px) {
  .guest-praise-scores { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .guest-praise-score { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; padding: 12px; }
  .guest-praise-score h4 { grid-column: 1; margin: 0; align-self: center; }
  .guest-praise-card .guest-praise-value { grid-column: 2; grid-row: 1 / 3; font-size: 26px; align-self: center; text-align: right; margin: 0; }
  .guest-praise-card .guest-praise-unrated { font-size: 16px; min-height: 0; max-width: 105px; text-align: right; }
  .guest-praise-count { grid-column: 1; font-size: 11px; margin: 0; }
  .guest-praise-window, .guest-praise-scale-note { grid-column: 1 / -1; font-size: 11px; }
  .guest-praise-scale-note { margin-top: 3px; }
  .guest-praise-card > .panel-head { padding: 14px 14px 10px; }
  .guest-praise-card > .panel-body { padding: 8px 14px 14px; }
  .guest-praise-highlight blockquote { font-size: 15px; }
  .guest-praise-card .guest-praise-navigation button, .guest-praise-refresh { min-height: 44px; }
}
@media print { .guest-praise-card { display: none !important; } }


/* Source: manager-feedback.css */
.manager-feedback-card { min-width: 0; }
.manager-feedback-card > .panel-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.manager-feedback-card .panel-head p, .manager-feedback-source, .manager-feedback-assessment-note, .manager-feedback-context { color: var(--muted); font-size: 12px; line-height: 1.5; margin: 7px 0; }
.manager-feedback-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.manager-feedback-card label { display: grid; gap: 5px; color: var(--text); font-size: 12px; min-width: 0; }
.manager-feedback-card input, .manager-feedback-card select { min-width: 0; max-width: 100%; width: 100%; }
.manager-feedback-card .manager-feedback-cleanliness { display: flex; align-items: center; gap: 8px; }
.manager-feedback-cleanliness input { width: auto; }
.manager-feedback-filters button { justify-self: start; align-self: end; }
.manager-feedback-summary { color: var(--text); font-size: 13px; font-weight: 600; margin: 18px 0 7px; }
.manager-feedback-list { display: grid; gap: 14px; margin-top: 16px; }
.manager-feedback-review { border: 1px solid var(--border); border-radius: 12px; background: var(--surface-solid, var(--surface)); padding: 16px; overflow-wrap: anywhere; }
.manager-feedback-review-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.manager-feedback-review h4 { margin: 0; color: var(--text); font-size: 16px; }
.manager-feedback-signal { color: var(--text); border: 1px solid var(--border); border-radius: 20px; padding: 4px 9px; font-size: 11px; text-transform: capitalize; }
.manager-feedback-dates, .manager-feedback-rating { color: var(--text); font-size: 12px; line-height: 1.6; margin: 8px 0; }
.manager-feedback-text { border-top: 1px solid var(--border); padding-top: 10px; margin-top: 12px; }
.manager-feedback-text h5 { color: var(--muted); font-size: 11px; margin: 0 0 5px; }
.manager-feedback-text p { color: var(--text); white-space: pre-wrap; font-size: 14px; line-height: 1.6; margin: 0; }
.manager-feedback-pagination { display: flex; justify-content: space-between; gap: 10px; margin-top: 14px; }
.manager-feedback-history, .manager-feedback-import { color: var(--text); margin-top: 18px; font-size: 13px; }
.manager-feedback-history summary, .manager-feedback-import summary { cursor: pointer; padding: 9px 0; }
.manager-feedback-history > div:first-of-type { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 8px; }
.manager-feedback-history button { grid-column: 1 / -1; justify-self: start; }
.manager-feedback-comparison { color: var(--muted); font-size: 12px; line-height: 1.5; padding: 12px 0; }
.manager-feedback-import form { display: grid; gap: 10px; }
.manager-feedback-import button { justify-self: start; }
.manager-feedback-preview, .manager-feedback-status { color: var(--muted); font-size: 12px; line-height: 1.5; }
.manager-feedback-card button { min-height: 40px; }
.manager-feedback-card :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media(max-width: 600px) { .manager-feedback-filters, .manager-feedback-history > div:first-of-type { grid-template-columns: 1fr 1fr; } .manager-feedback-filters input, .manager-feedback-filters select, .manager-feedback-card button { min-height: 44px; } .manager-feedback-review { padding: 13px; } }
@media(max-width: 360px) { .manager-feedback-filters, .manager-feedback-history > div:first-of-type { grid-template-columns: 1fr; } }
@media print { .manager-feedback-card { display: none !important; } }
/* Native macOS/WebKit popup controls ignore min-height until appearance is authored. */
.manager-feedback-filters select:is([name="ratingFilter"],[name="sort"]) { appearance:none; -webkit-appearance:none; min-height:44px; padding-right:30px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23838a94' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 8px center; }


/* Source: cleanliness-insights.css */
.cleanliness-alert-panel{margin:12px 0;border:1px solid var(--border,rgba(140,150,170,.4));border-radius:14px;background:var(--panel,rgba(24,30,40,.7));color:var(--text,inherit)}
.cleanliness-alert-panel>summary{padding:12px 16px;cursor:pointer;font-weight:700;min-height:44px;box-sizing:border-box;list-style-position:inside}
.cleanliness-alert-panel>div{padding:0 16px 16px}.cleanliness-alert-panel:has(.cleanliness-alert) {box-shadow:0 0 12px color-mix(in srgb,var(--accent,#a8b8d8) 15%,transparent)}
.cleanliness-alert,.cleanliness-context{padding:12px;margin:10px 0;border:1px solid var(--border,rgba(140,150,170,.4));border-radius:10px;overflow-wrap:anywhere}
.cleanliness-alert h4{margin:0 0 6px}.cleanliness-context>summary{min-height:44px;cursor:pointer}.cleanliness-context dl{display:grid;grid-template-columns:minmax(110px,1fr) 2fr;gap:8px}.cleanliness-context dd{margin:0}.cleanliness-actions,.cleanliness-period-form,.cleanliness-alert-panel nav{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.cleanliness-actions button,.cleanliness-alert-panel button,.housekeeping-performance button{min-height:44px}.cleanliness-period-form label{display:grid;gap:5px}.cleanliness-period-form input,.cleanliness-period-form select{min-height:44px;background:var(--input-bg,var(--panel));color:var(--text,inherit);border:1px solid var(--border,#889);border-radius:8px;padding:6px;max-width:100%}
.cleanliness-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.cleanliness-summary-grid>div{padding:12px;border:1px solid var(--border,#889);border-radius:10px;display:grid;gap:6px}.cleanliness-summary-grid strong{font-size:1.15em}
.cleanliness-table-scroll{max-width:100%;overflow:auto;margin:12px 0}.cleanliness-table-scroll table{border-collapse:collapse;min-width:850px;width:100%}.cleanliness-table-scroll th,.cleanliness-table-scroll td{padding:10px;border-bottom:1px solid var(--border,#889);text-align:left;vertical-align:top}.cleanliness-table-scroll th button{font:inherit;color:inherit;background:transparent;border:0;text-align:left;cursor:pointer}.cleanliness-table-scroll small{display:block;font-size:.8em;color:var(--muted,inherit)}
.housekeeping-performance{min-width:0}.housekeeping-performance .panel-body{min-width:0}.cleanliness-trends{margin:18px 0}.cleanliness-trend-row{display:grid;grid-template-columns:110px minmax(50px,1fr) minmax(180px,2fr);gap:10px;align-items:center;margin:8px 0}.cleanliness-trend-track{height:9px;background:var(--border,#889);border-radius:8px;overflow:hidden}.cleanliness-trend-track>span{display:block;height:100%;background:var(--accent,#8da9cf)}.cleanliness-report-history>summary{min-height:44px;cursor:pointer}
@media(max-width:600px){.cleanliness-context dl{grid-template-columns:1fr}.cleanliness-context dt{font-weight:600}.cleanliness-context dd{margin-bottom:6px}.cleanliness-trend-row{grid-template-columns:90px 1fr}.cleanliness-trend-row>span:last-child{grid-column:1/-1}.cleanliness-alert-panel>div{padding:0 10px 10px}.housekeeping-performance .panel-body{padding:10px}}
@media(prefers-reduced-motion:reduce){.cleanliness-alert-panel,.cleanliness-alert{animation:none!important;transition:none!important}}
/* Preserve touch targets against the shared compact .button.small rule. */
.cleanliness-alert-panel .button.small,.housekeeping-performance .button.small,.manager-feedback-review .cleanliness-context .button.small{min-height:44px}
/* Inline facts stay visible; only secondary history is collapsed. */
.cleanliness-context{border:0;border-top:1px solid var(--border,#889);border-radius:0;padding:10px 0;margin:10px 0 0;font-size:.9em}
.cleanliness-context-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 24px}
.cleanliness-context h5{margin:0 0 7px;font-size:1em}.cleanliness-context dl{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:5px 10px;margin:0}.cleanliness-context dt{color:var(--muted,inherit)}.cleanliness-context dd{margin:0}.cleanliness-context p{margin:7px 0}.cleanliness-context-note{color:var(--muted,inherit);font-size:.92em}.cleanliness-preparation-age{font-size:.85em;font-weight:700;letter-spacing:.025em;color:var(--accent,inherit)}.cleanliness-context-details{margin-top:6px}.cleanliness-context-details>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--muted,inherit)}
@media(max-width:600px){.cleanliness-context-grid{grid-template-columns:1fr;gap:14px}.cleanliness-context dl{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.cleanliness-context dt{font-weight:400}.cleanliness-context dd{margin:0}}


/* Source: preview-mode.css */
#preview-banner { position:relative; z-index:3; margin:12px 0; padding:12px 16px; border:2px solid var(--accent,#657aa8); border-radius:12px; background:var(--panel,#fff); color:var(--text,#172338); font-weight:650; font-size:14px; line-height:1.5; }
html[data-preview] #user-chip::after { content:'Sample-only preview'; display:block; font-size:12px; }
.today-preview-heading { display:block; margin:0 0 18px; color:var(--text,#172338); font-style:normal; }
.today-preview-heading strong { display:table; margin:0 auto 6px; padding:8px 20px; border:2px solid currentColor; border-radius:999px; background:var(--panel,#fff); font:800 20px/1.3 system-ui,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.today-preview-heading small { display:block; font:600 14px/1.5 system-ui,sans-serif; letter-spacing:normal; }
html[data-preview] #dashboard-view > .housekeeper-greeting { order:-1; }


/* Source: room-inspections.css */
/* Today lists saved notes without affecting room badges or other work. */
.today-room-notes-list { display:grid; gap:12px; }
.today-room-note-row { display:flex; align-items:flex-start; gap:12px; padding:12px; border:1px solid var(--border); border-radius:8px; min-width:0; }
.today-room-note-content { flex:1; min-width:0; }
.today-room-note-copy { margin:8px 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.today-room-note-meta { display:block; font-size:12px; overflow-wrap:anywhere; }
.today-room-note-delete { flex-shrink:0; min-height:44px; }
@media (max-width:480px) {
  .today-room-note-row { flex-wrap:wrap; }
  .today-room-note-content { flex-basis:100%; }
  .today-room-note-delete { margin-left:auto; }
}

/* Detailed room-inspection cards. Kept separate from the shared card sheet so
   this view can evolve without changing cards on Today or the work-list tabs. */
#checkout-view .room-inspection-group {
  display: grid;
  gap: 10px;
  margin: 0 0 20px;
}

#checkout-view .room-inspection-group-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 0 2px;
}

#checkout-view .room-inspection-group-head h3 {
  margin: 0;
}

#checkout-view .room-inspection-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

#checkout-view .room-inspection-card {
  align-self: start;
}

#checkout-view .room-inspection-card.expanded {
  grid-column: 1 / -1;
}

/* Rooms keep a compact identity row: number, occupancy and pet together.
   There is no shared/fixed card height; expanded details retain natural flow. */
html[data-theme] #checkout-view .room-inspection-card {
  min-height:0; height:auto;
}
html[data-theme] #checkout-view .room-inspection-card .room-list-head {
  display:grid; grid-template-columns:10px minmax(0,1fr) auto;
  align-items:center; gap:4px; padding:4px 6px; min-height:0;
}
html[data-theme] #checkout-view .room-list-head > .room-list-chevron {
  grid-column:1; grid-row:1; font-size:9px;
}
html[data-theme] #checkout-view .room-list-head > .pet-room-number-line {
  grid-column:2/-1; grid-row:1; display:flex; align-items:center;
  gap:5px; min-width:0; flex-wrap:nowrap;
}
html[data-theme] #checkout-view .pet-room-number-line > .room-number {
  flex:0 0 auto; font-size:16px; line-height:1.2; min-width:0;
}
html[data-theme] #checkout-view .pet-room-number-line > .room-bed-marker {
  flex:0 0 auto;
}
html[data-theme] #checkout-view .pet-room-number-line .room-list-status-controls {
  min-width:0; flex:0 1 auto; gap:0;
}
html[data-theme] #checkout-view .pet-room-number-line .room-list-cat {
  min-width:0; width:auto; min-height:44px; padding:3px 5px;
  font:600 10px/1.15 var(--font-ui,system-ui,sans-serif);
  letter-spacing:0; white-space:normal; text-transform:none;
}
html[data-theme] #checkout-view .pet-room-number-line .room-status-wrap {
  display:inline-flex; min-width:0; margin:0;
}
html[data-theme] #checkout-view .room-list-head > :is(.arrival-badge,.early-badge) {
  grid-column:2; grid-row:2; justify-self:start; margin:0;
  padding:3px 6px; font-size:11px;
}
html[data-theme] #checkout-view .room-list-head > .arc-operational-status {
  grid-column:3; grid-row:2; position:static; max-width:100%; margin:0;
}
html[data-theme] #checkout-view .room-list-head > .arc-operational-status button {
  min-height:44px; padding:4px 7px; font-size:11px;
}
/* Occupancy is already visible in the identity row. Keep unique alerts/notes. */
html[data-theme] #checkout-view .room-list-head > .cine-room-signals {
  grid-column:2/-1; margin:0; gap:0;
}
html[data-theme] #checkout-view .room-list-head > .cine-room-signals > .cine-room-types,
html[data-theme] #checkout-view .room-list-head > .cine-room-signals:has(> .cine-room-priority:empty) {
  display:none;
}
html[data-theme] #checkout-view .room-inspection-card > .hk-work {
  margin:0; padding:2px 6px 6px; width:auto; min-width:0;
}
html[data-theme] #checkout-view .hk-work .arc-assigned { margin:2px 0; }
html[data-theme] #checkout-view .hk-work .arc-status { margin:4px 0; padding:3px 7px; }
html[data-theme] #checkout-view .hk-work .arc-actions { margin-top:6px; }
@media (max-width:400px) {
  html[data-theme] #checkout-view .room-list-head > .pet-room-number-line { gap:4px; }
  html[data-theme] #checkout-view .pet-room-number-line .room-list-cat { padding-inline:4px; }
}

#checkout-view .room-inspection-card .room-list-body {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

#checkout-view .room-inspection-card .room-list-manager-actions,
#checkout-view .room-inspection-card .room-inspection-notes,
#checkout-view .room-inspection-card .checkout-room-add-form {
  grid-column: 1 / -1;
}

#checkout-view .room-inspection-item-state {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.2;
  text-transform: uppercase;
}

#checkout-view .room-inspection-item-state.open {
  color: var(--signal, #ffd86b);
  background: color-mix(in srgb, var(--signal, #ffd86b) 16%, transparent);
}

#checkout-view .room-inspection-item-state.complete {
  color: #b8f5c8;
  background: color-mix(in srgb, #3ecf6f 18%, transparent);
}

#checkout-view .room-list-item.done {
  opacity: 1;
  background: color-mix(in srgb, #3ecf6f 7%, var(--panel, #14161c));
}

#checkout-view .room-list-item.done .room-list-item-name {
  color: var(--text);
  text-decoration: none;
}

#checkout-view .room-inspection-fixed-by {
  display: block;
  margin-top: 2px;
  color: var(--muted, #9aa0b0);
  font-size: 11px;
}

#checkout-view .room-inspection-empty {
  padding: 8px 2px 4px;
  color: var(--muted, #9aa0b0);
  font-size: 12px;
}

#checkout-view .room-inspection-notes textarea {
  width: 100%;
  min-height: 92px;
  box-sizing: border-box;
  resize: vertical;
}

#checkout-view .room-inspection-note-buttons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
#checkout-view .room-inspection-note-buttons .button { min-height: 44px; }
#checkout-view .room-inspection-note-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
}

#checkout-view .room-inspection-note-copy {
  min-height: 28px;
  padding: 6px 2px 2px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  #checkout-view .room-inspection-group-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  #checkout-view .room-inspection-grid,
  #checkout-view .room-inspection-card .room-list-body {
    grid-template-columns: minmax(0, 1fr);
  }

  #checkout-view .room-inspection-card.expanded,
  #checkout-view .room-inspection-card .room-list-manager-actions,
  #checkout-view .room-inspection-card .room-inspection-notes,
  #checkout-view .room-inspection-card .checkout-room-add-form {
    grid-column: auto;
  }

  #checkout-view .room-list-item {
    align-items: flex-start;
    flex-direction: column;
  }

  #checkout-view .room-list-item-controls {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  #checkout-view .room-inspection-note-actions {
    align-items: stretch;
    flex-direction: column;
  }

  #checkout-view .room-inspection-note-buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  #checkout-view .room-inspection-note-actions .button {
    width: 100%;
  }
}
/* Custom metadata gets its own compact row; Arrival and workflow controls keep their existing slots. */
html[data-theme] #checkout-view .room-list-head > .room-badges[data-room-badges] { grid-column:2/-1;grid-row:3;justify-self:stretch;width:100%;min-width:0;display:flex;flex-wrap:wrap;gap:4px; }
html[data-cinematic] .cine-room .room-badges.room-note-badges[data-room-badges] { display:inline-flex!important; }
.room-badges .custom-room-badge { flex:0 0 auto;max-width:100%;min-width:0; }
.room-badges .custom-badge-label { min-width:0;overflow-wrap:anywhere; }


/* Source: work-list-cards.css */
.work-item-history { display:block; margin-top:4px; color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.checkout-work-room { display:inline-flex; align-items:center; flex-wrap:wrap; gap:5px; max-width:100%; }
.checkout-work-status { display:inline-flex; flex-wrap:wrap; gap:3px; max-width:100%; }
.checkout-work-status .status-badge { min-width:0; max-width:100%; padding:3px 7px; font-size:11px; line-height:1.25; white-space:normal; overflow-wrap:anywhere; }
.maintenance-room .checkout-work-status { display:flex; margin-top:4px; text-align:left; font-family:var(--font, sans-serif); }
.full-work-card .flat-item-row.done { opacity:1; }
.full-work-card .flat-item-controls { flex-wrap:wrap; max-width:100%; }
.full-work-card .flat-item-name { overflow-wrap:anywhere; }
.full-work-card .panel-head h3:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.room-list-open-items-head { display:block; container-type:inline-size; }
.room-list-open-items-head .room-list-open-quick-add {
  display:grid;
  grid-template-columns:minmax(100px, 1fr) minmax(180px, 2fr) auto;
  gap:8px;
  width:100%;
  margin-top:12px;
}
.room-list-open-items-head .inventory-open-quick-add {
  grid-template-columns:minmax(100px, 1fr) minmax(180px, 2fr) minmax(150px, 1fr) auto;
}
.room-list-open-items-head .room-list-open-quick-add > :is(input, select, button) {
  box-sizing:border-box;
  width:100%;
  min-width:0;
  max-width:100%;
  min-height:44px;
}
@container (max-width:650px) {
  .room-list-open-items-head .room-list-open-quick-add {
    grid-template-columns:minmax(0, 1fr) auto;
  }
  .room-list-open-quick-add > :is(select[name="room"], input[name="name"]) {
    grid-column:1 / -1;
  }
  .deep-clean-open-quick-add > button { grid-column:1 / -1; }
}
@media (max-width:600px) {
  .full-work-card .flat-item-controls { flex-basis:100%; }
  .full-work-card .flat-item-controls button { white-space:normal; }
}

/* One room / status / description / actions grid for every Hotel Operations task source. */
.flat-item-list { container-type:inline-size; gap:6px; }
.flat-item-row.hotel-task-card {
  display:grid;
  grid-template-columns:2.7rem 12.8rem minmax(0,1fr) max-content;
  align-items:center;
  column-gap:10px;
  min-height:54px;
  box-sizing:border-box;
  padding:6px 10px;
}
.hotel-task-card .flat-item-room { min-width:0; }
.hotel-task-card .flat-item-status { display:flex;align-items:center;min-width:0; }
.hotel-task-card .room-access-compact,
.hotel-task-card .checkout-work-status { flex-wrap:nowrap; }
.hotel-task-card :is(.ra-badge,.status-badge) { white-space:nowrap; }
.hotel-task-card .flat-item-name {
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  overflow:hidden;
  line-height:1.35;
}
.hotel-task-card .flat-item-description {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.hotel-task-card .repeat-badge { flex:none;white-space:nowrap; }
.hotel-task-card .work-item-history {
  flex:0 1 auto;
  min-width:0;
  margin:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.hotel-task-card .flat-item-controls,
.full-work-card .hotel-task-card .flat-item-controls {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:nowrap;
  gap:6px;
  min-width:0;
  max-width:none;
  margin:0;
}
.hotel-task-card .flat-item-controls .button.small {
  min-height:38px;
  box-sizing:border-box;
  white-space:nowrap;
}
.hotel-task-card .room-item-delete { min-width:38px; padding-inline:8px; }

@container (max-width:820px) {
  .flat-item-row.hotel-task-card {
    grid-template-columns:2.7rem minmax(0,1fr);
    row-gap:5px;
    min-height:0;
    padding:8px 10px;
  }
  .hotel-task-card .flat-item-status { grid-column:2; }
  .hotel-task-card .room-access-compact,
  .hotel-task-card .checkout-work-status { flex-wrap:wrap; }
  .hotel-task-card .flat-item-name { grid-column:1 / -1;flex-wrap:wrap;overflow:visible; }
  .hotel-task-card .flat-item-description { overflow:visible;white-space:normal; }
  .hotel-task-card .work-item-history { white-space:normal; }
  .hotel-task-card .flat-item-controls,
  .full-work-card .hotel-task-card .flat-item-controls {
    grid-column:1 / -1;
    justify-self:end;
    flex-wrap:wrap;
    gap:4px;
  }
  .hotel-task-card .flat-item-controls .button.small { padding-inline:6px; }
  .hotel-task-card .room-item-delete { min-width:34px; }
}


/* Source: enchanted-pixel-kingdom.css */
html[data-world="enchanted-pixel-kingdom"] {
  --pixel-amber: #eebd67;
  --pixel-warm-edge: #a8793c;
  --pixel-cool-edge: #627c91;
  --pixel-lantern: #f4be61;
  --pixel-shadow: #291f19a8;
  --pixel-sky: #f7e6bc;
  --pixel-frame: color-mix(in srgb, var(--world-border) 74%, var(--pixel-location-accent, var(--pixel-amber)));
  --pixel-readable: var(--world-text);
  --pixel-button-edge: color-mix(in srgb, var(--world-border) 76%, #55412b);
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-time="morning"] {
  --pixel-amber: #f4cd76; --pixel-lantern: #ffd98c; --pixel-shadow: #49351d78; --pixel-sky: #fff0c8;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-time="afternoon"] {
  --pixel-amber: #efb953; --pixel-lantern: #ffcf69; --pixel-shadow: #30251896; --pixel-sky: #f7dda0;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-time="evening"] {
  --pixel-amber: #edaa5c; --pixel-lantern: #ffc265; --pixel-shadow: #38231fa8; --pixel-sky: #f2c28f;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-time="night"] {
  --pixel-amber: #d5a959; --pixel-lantern: #ffcc67; --pixel-shadow: #090f20c4; --pixel-sky: #25334c;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="rain"] {
  --pixel-sky: #9fb8c2; --pixel-cool-edge: #63899c;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="snow"] {
  --pixel-sky: #d5e6e7; --pixel-cool-edge: #9db9bf;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="fog"] {
  --pixel-sky: #c1c7bd; --pixel-cool-edge: #9aa69e;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="storm"] {
  --pixel-sky: #788da7; --pixel-cool-edge: #7387a1;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="off"] {
  --pixel-sky: transparent;
}
html[data-world="enchanted-pixel-kingdom"] :is(.panel,.metric,.room-card,.room-tile,.summary-card,.metric-card,.employee-bubble,.prod-score-card) {
  --pixel-card-depth: 0 13px 22px -17px var(--pixel-shadow), 0 3px 0 color-mix(in srgb, var(--pixel-frame) 68%, transparent), inset 0 1px #fff8e24d;
  position: relative;
  box-shadow: var(--pixel-card-depth);
  transition: box-shadow 1100ms ease, border-color 1100ms ease, background-color 1400ms ease, translate 230ms ease;
}
html[data-world="enchanted-pixel-kingdom"] :is(.panel,.metric,.room-card,.room-tile,.summary-card,.metric-card,.employee-bubble,.prod-score-card):hover {
  box-shadow: 0 17px 28px -18px var(--pixel-shadow), 0 3px 0 color-mix(in srgb, var(--pixel-amber) 76%, var(--pixel-frame)), inset 0 1px #fff9df78;
  border-color: color-mix(in srgb, var(--pixel-frame) 66%, var(--pixel-amber));
  translate: 0 -1px;
}
html[data-world="enchanted-pixel-kingdom"] :is(.panel,.metric,.room-card,.room-tile,.summary-card,.metric-card,.employee-bubble,.prod-score-card).pixel-kingdom-card > .pixel-card-ornament {
  position: absolute;
  z-index: 1;
  inset: 0;
  border: 1px solid color-mix(in srgb, var(--pixel-frame) 57%, transparent);
  border-radius: inherit;
  pointer-events: none;
  overflow: hidden;
  box-shadow: inset 0 1px #fff8df3d, inset 0 -2px #412b2017;
  transition: border-color 1100ms ease, box-shadow 1100ms ease;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-ornament-window {
  position: absolute; top: 4px; right: 24px; display: block; width: 9px; height: 8px;
  border: 2px solid var(--pixel-warm-edge); background: var(--pixel-sky);
  box-shadow: inset 0 0 3px color-mix(in srgb, var(--pixel-lantern) 50%, transparent);
  transition: background-color 1200ms ease, border-color 1200ms ease;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-ornament-window::before {
  content: ""; position: absolute; left: 2px; top: 0; width: 1px; height: 100%; background: color-mix(in srgb, var(--pixel-warm-edge) 62%, transparent);
}
html[data-world="enchanted-pixel-kingdom"] .pixel-ornament-window::after {
  content: ""; position: absolute; left: 0; top: 2px; width: 100%; height: 1px; background: color-mix(in srgb, var(--pixel-warm-edge) 62%, transparent);
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="rain"] .pixel-ornament-window {
  background-image: linear-gradient(120deg, transparent 38%, #bad8e5 39% 46%, transparent 47%), linear-gradient(120deg, transparent 66%, #bad8e5 67% 74%, transparent 75%);
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="snow"] .pixel-ornament-window {
  box-shadow: 0 -3px 0 -1px #fff9ed, inset 0 0 3px #fff9ed;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="fog"] .pixel-ornament-window { opacity: .68; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="off"] .pixel-ornament-window { background: transparent; box-shadow: none; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card > .pixel-card-ornament::before {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid color-mix(in srgb, var(--pixel-frame) 20%, transparent);
  border-radius: inherit;
  opacity: .64;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card > .pixel-card-ornament::after {
  content: "";
  position: absolute;
  top: 4px;
  right: 5px;
  width: 13px;
  height: 11px;
  image-rendering: pixelated;
  background:
    linear-gradient(var(--pixel-amber),var(--pixel-amber)) 3px 0/7px 2px no-repeat,
    linear-gradient(var(--pixel-warm-edge),var(--pixel-warm-edge)) 1px 2px/11px 2px no-repeat,
    linear-gradient(var(--pixel-lantern),var(--pixel-lantern)) 3px 4px/7px 5px no-repeat,
    linear-gradient(var(--pixel-warm-edge),var(--pixel-warm-edge)) 2px 9px/9px 2px no-repeat;
  opacity: .62;
  filter: drop-shadow(0 0 3px color-mix(in srgb, var(--pixel-lantern) 52%, transparent));
  transition: opacity 220ms ease, filter 220ms ease;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card > :not(.pixel-card-ornament) { position: relative; z-index: 2; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card:hover > .pixel-card-ornament {
  border-color: color-mix(in srgb, var(--pixel-amber) 72%, var(--pixel-frame));
  box-shadow: inset 0 1px #fff9df80, inset 0 -2px #412b2024;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card:hover > .pixel-card-ornament::after {
  opacity: .96;
  filter: drop-shadow(0 0 5px color-mix(in srgb, var(--pixel-lantern) 78%, transparent));
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-time="night"] .pixel-kingdom-card > .pixel-card-ornament::after {
  filter: drop-shadow(0 0 5px color-mix(in srgb, var(--pixel-lantern) 66%, transparent));
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="rain"] .pixel-card-ornament::before {
  background: repeating-linear-gradient(112deg, transparent 0 13px, color-mix(in srgb, var(--pixel-cool-edge) 22%, transparent) 13px 14px, transparent 14px 20px);
  background-size: 52px 20px;
  background-position: right top;
  background-repeat: no-repeat;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="snow"] .pixel-card-ornament::before {
  background:
    linear-gradient(#f8f3e7,#f8f3e7) 12px 0/5px 2px no-repeat,
    linear-gradient(#f8f3e7,#f8f3e7) 23px 2px/3px 2px no-repeat,
    linear-gradient(#f8f3e7,#f8f3e7) 34px 0/4px 2px no-repeat;
  opacity: .8;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="fog"] .pixel-card-ornament {
  border-color: color-mix(in srgb, var(--pixel-cool-edge) 42%, transparent);
  box-shadow: inset 0 1px #f7f8e955, 0 0 7px #dce3d622;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-storm-glint > .pixel-card-ornament::after {
  filter: brightness(1.32) drop-shadow(0 0 7px #fff0bf99);
  transition: filter 90ms linear;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="storm"] .pixel-card-ornament::after {
  opacity: .84;
  filter: drop-shadow(0 0 4px #f5dcad88);
}
html[data-world="enchanted-pixel-kingdom"] :is(button,.button,select,input[type="checkbox"],input[type="range"],.world-toggle,.nav-item) {
  transition: color 160ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, translate 150ms ease;
}
html[data-world="enchanted-pixel-kingdom"] :is(button,.button,select,.world-toggle) {
  box-shadow: inset 0 1px #fff8dc46, 0 2px 0 color-mix(in srgb, var(--pixel-button-edge) 72%, transparent);
}
html[data-world="enchanted-pixel-kingdom"] :is(button,.button,.world-toggle):hover:not(:disabled) {
  box-shadow: inset 0 1px #fff9df6b, 0 3px 0 color-mix(in srgb, var(--pixel-amber) 55%, var(--pixel-button-edge)), 0 5px 10px -8px var(--pixel-shadow);
}
html[data-world="enchanted-pixel-kingdom"] :is(button,.button,.world-toggle):active:not(:disabled) {
  translate: 0 1px;
  box-shadow: inset 0 1px #fff8dc39, 0 1px 0 color-mix(in srgb, var(--pixel-button-edge) 66%, transparent);
}
html[data-world="enchanted-pixel-kingdom"] :is(button,.button,select,.world-toggle):focus-visible {
  outline: 2px solid var(--pixel-amber);
  outline-offset: 2px;
}
html[data-world="enchanted-pixel-kingdom"] :is(.nav-item.active,[aria-current="page"]) {
  box-shadow: inset 3px 0 var(--pixel-amber), inset 0 0 13px color-mix(in srgb, var(--pixel-lantern) 15%, transparent);
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-location="village-square"] { --pixel-location-accent: #e4b451; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-location="adventurers-guild"] { --pixel-location-accent: #cf9850; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-location="cozy-inn"] { --pixel-location-accent: #e5a75a; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-location="inventor-workshop"] { --pixel-location-accent: #bb8747; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-location="observatory"] { --pixel-location-accent: #8db8d5; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-location="royal-study"] { --pixel-location-accent: #c4a1d0; }
html[data-world="enchanted-pixel-kingdom"] :is(.nav-item.active,[aria-current="page"]) { box-shadow: inset 3px 0 var(--pixel-location-accent,var(--pixel-amber)), inset 0 0 13px color-mix(in srgb, var(--pixel-location-accent,var(--pixel-lantern)) 16%, transparent); }
html[data-world="enchanted-pixel-kingdom"][data-pixel-journey="entering"] #app-view .view:not([hidden]) {
  animation: pixel-kingdom-arrive 330ms cubic-bezier(.2,.7,.25,1) both;
}
@keyframes pixel-kingdom-arrive {
  from { opacity: .76; translate: 0 7px; }
  to { opacity: 1; translate: 0 0; }
}
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-complete {
  animation: pixel-quest-complete 840ms ease-out both;
}
@keyframes pixel-quest-complete {
  0% { box-shadow: var(--pixel-card-depth); }
  28% { box-shadow: 0 0 0 2px color-mix(in srgb, var(--pixel-amber) 72%, transparent), 0 0 22px color-mix(in srgb, var(--pixel-lantern) 40%, transparent); }
  100% { box-shadow: var(--pixel-card-depth); }
}
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion {
  position: absolute;
  z-index: 5;
  top: -18px;
  right: clamp(20px, 8%, 46px);
  display: flex;
  align-items: flex-end;
  gap: 0;
  width: 38px;
  height: 38px;
  pointer-events: none;
  user-select: none;
  image-rendering: pixelated;
  filter: drop-shadow(1px 2px 0 #34261755);
  animation: pixel-companion-peek 420ms steps(4, end) both;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-sprite {
  display: block;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  background-image: url("/art/enchanted-pixel-kingdom/companions.svg");
  background-size: 500% 400%;
  background-repeat: no-repeat;
  background-position: 0 0;
  image-rendering: pixelated;
  animation: pixel-sprite-walk 720ms steps(4, end) infinite;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-creature="sprite"] .pixel-kingdom-sprite { background-position-y: 33.333%; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-creature="rabbit"] .pixel-kingdom-sprite { background-position-y: 66.667%; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-creature="bird"] .pixel-kingdom-sprite { background-position-y: 100%; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-sprite--bird { background-position-y: 100%; }
@keyframes pixel-sprite-walk { from { background-position-x: 0; } to { background-position-x: 100%; } }
@keyframes pixel-companion-peek { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-behavior="wander"] { animation: pixel-wander 2.4s ease-in-out both; }
@keyframes pixel-wander { 0% { transform: translateX(0); } 42% { transform: translateX(-12px); } 78% { transform: translateX(-22px) scaleX(-1); } 100% { transform: translateX(-20px) scaleX(-1); } }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-behavior="stretch"] { animation: pixel-stretch 1.2s ease-in-out both; }
@keyframes pixel-stretch { 0%,100% { transform: scaleY(1); } 36% { transform: scaleY(.78) translateY(4px); } 68% { transform: scaleY(1.08) translateY(-2px); } }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-behavior="look"] { animation: pixel-look 1.8s ease-in-out both; }
@keyframes pixel-look { 0%,100% { transform: translateX(0); } 28% { transform: translateX(-4px) scaleX(-1); } 68% { transform: translateX(-4px) scaleX(-1); } }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-behavior="hide"] { animation: pixel-hide 260ms steps(4,end) both; }
@keyframes pixel-hide { to { opacity: 0; transform: translateY(16px); } }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-behavior="sleep"] { animation: pixel-snooze 3.6s ease-in-out both; }
@keyframes pixel-snooze { 0%,100% { transform: translateY(0); } 45% { transform: translateY(2px) rotate(-3deg); } 70% { transform: translateY(2px) rotate(2deg); } }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-behavior="flutter"] { animation: pixel-flutter 1.4s ease-out both; }
@keyframes pixel-flutter { 0% { transform: translate(0,5px); } 30% { transform: translate(-8px,-9px); } 55% { transform: translate(-16px,-2px); } 100% { transform: translate(-25px,-7px); opacity: .4; } }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-behavior="lantern-watch"] .pixel-kingdom-sprite { filter: drop-shadow(0 0 5px #ffd477); }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-behavior="celebrate"] { animation: pixel-celebrate 900ms cubic-bezier(.2,.8,.3,1) both; }
@keyframes pixel-celebrate { 0% { transform: translateY(7px); opacity: 0; } 34% { transform: translateY(-8px); opacity: 1; } 70% { transform: translateY(-4px) rotate(8deg); } 100% { transform: translateY(0) rotate(0); opacity: 1; } }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion[data-behavior="duet"] .pixel-kingdom-sprite--bird {
  margin-left: -8px;
  animation: pixel-duet 680ms ease-in-out 2 both;
}
@keyframes pixel-duet { 50% { transform: translate(-7px,-4px); } }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion--greeting { right: 8px; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion.is-leaving { animation: pixel-hide 280ms steps(4,end) both; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-settings {
  margin: 12px 0 20px;
  border: 1px solid color-mix(in srgb, var(--pixel-frame) 62%, transparent);
  border-radius: var(--world-control, 8px);
  background: color-mix(in srgb, var(--world-surface) 92%, var(--pixel-amber) 8%);
  box-shadow: 0 4px 0 color-mix(in srgb, var(--pixel-frame) 35%, transparent), inset 0 1px #fff8df4b;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-settings[hidden] { display: none; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-settings > summary {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 12px 14px;
  color: var(--world-text);
  cursor: pointer;
  list-style: none;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-settings > summary::-webkit-details-marker { display: none; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-settings > summary::after { content: "▾"; margin-left: auto; color: var(--pixel-amber); transition: rotate 180ms ease; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-settings[open] > summary::after { rotate: 180deg; }
html[data-world="enchanted-pixel-kingdom"] .pixel-settings-hint { color: var(--world-secondary); font-size: .82em; }
html[data-world="enchanted-pixel-kingdom"] .pixel-settings-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 9px 14px;
  padding: 2px 14px 14px;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-setting-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  min-width: 0;
  color: var(--world-text);
}
html[data-world="enchanted-pixel-kingdom"] .pixel-setting-row select { max-width: 62%; }
html[data-world="enchanted-pixel-kingdom"] .pixel-setting-row input[type="checkbox"] { accent-color: var(--pixel-amber); }
html[data-world="enchanted-pixel-kingdom"] .pixel-volume-row { grid-column: 1/-1; }
html[data-world="enchanted-pixel-kingdom"] .pixel-volume-row input { flex: 1; max-width: 55%; accent-color: var(--pixel-amber); }
html[data-world="enchanted-pixel-kingdom"] .pixel-setting-copy,
html[data-world="enchanted-pixel-kingdom"] .pixel-weather-note {
  grid-column: 1/-1;
  margin: 0;
  color: var(--world-secondary);
  font-size: .86rem;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-weather-note {
  padding-top: 7px;
  border-top: 1px solid color-mix(in srgb, var(--pixel-frame) 30%, transparent);
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="cozy"] .pixel-kingdom-card > .pixel-card-ornament { border-color: color-mix(in srgb, var(--pixel-frame) 42%, transparent); }
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] .pixel-kingdom-card > .pixel-card-ornament {
  box-shadow: inset 0 1px #fff8df3d;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] .pixel-kingdom-card:hover { translate: none; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] .pixel-kingdom-card,
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] .pixel-kingdom-card > .pixel-card-ornament,
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] :is(button,.button,.world-toggle,select) {
  transition-duration: 0ms;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-performance="lite"] :is(.panel,.metric,.room-card,.room-tile,.summary-card,.metric-card,.employee-bubble,.prod-score-card) {
  box-shadow: 0 8px 14px -12px var(--pixel-shadow), inset 0 1px #fff8df30;
}
@media (max-width: 680px) {
  html[data-world="enchanted-pixel-kingdom"] .pixel-settings-grid { grid-template-columns: minmax(0,1fr); }
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-companion { top: -15px; width: 32px; height: 32px; }
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-sprite { flex-basis: 28px; width: 28px; height: 28px; }
  html[data-world="enchanted-pixel-kingdom"] .pixel-settings-hint { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-world="enchanted-pixel-kingdom"] *,
  html[data-world="enchanted-pixel-kingdom"] *::before,
  html[data-world="enchanted-pixel-kingdom"] *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  html[data-world="enchanted-pixel-kingdom"][data-pixel-journey="entering"] #app-view .view:not([hidden]) { animation: none; }
}

/* Readable HD-2D card depth: layered edge, cast shadow, and a restrained lantern pass. */
html[data-world="enchanted-pixel-kingdom"] :is(.panel,.metric,.room-card,.room-tile,.summary-card,.metric-card,.employee-bubble,.prod-score-card).pixel-kingdom-card {
  isolation: isolate;
  translate: 0 0;
  box-shadow:
    0 2px 0 color-mix(in srgb, var(--pixel-frame) 82%, #fff1c2 18%),
    0 5px 0 color-mix(in srgb, var(--pixel-warm-edge) 38%, #101827 62%),
    0 15px 22px -8px color-mix(in srgb, var(--pixel-shadow) 88%, transparent),
    0 28px 42px -15px color-mix(in srgb, var(--pixel-shadow) 82%, transparent),
    inset 0 1px 0 #fff8df66,
    inset 0 -1px 0 #100e1b4d;
  transition: translate 240ms cubic-bezier(.2,.75,.25,1), box-shadow 260ms ease, border-color 220ms ease;
}
html[data-world="enchanted-pixel-kingdom"] :is(.panel,.metric,.room-card,.room-tile,.summary-card,.metric-card,.employee-bubble,.prod-score-card).pixel-kingdom-card::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 1px;
  border-radius: inherit;
  pointer-events: none;
  opacity: .52;
  background:
    radial-gradient(ellipse at 88% 0%, color-mix(in srgb, var(--pixel-lantern) 21%, transparent), transparent 48%),
    linear-gradient(145deg, color-mix(in srgb, #fff4d4 7%, transparent), transparent 34% 72%, color-mix(in srgb, var(--pixel-cool-edge) 8%, transparent)),
    linear-gradient(112deg, transparent 24%, color-mix(in srgb, var(--pixel-lantern) 17%, transparent) 48%, transparent 67%) 0 0 / 220% 100% no-repeat;
  box-shadow: inset 0 1px 0 #fff6d641, inset 0 -2px 0 #241a273d;
  transition: opacity 240ms ease, background-position 700ms ease;
}
html[data-world="enchanted-pixel-kingdom"] :is(.panel,.metric,.room-card,.room-tile,.summary-card,.metric-card,.employee-bubble,.prod-score-card).pixel-kingdom-card > .pixel-card-ornament {
  border-width: 2px;
  border-color: color-mix(in srgb, var(--pixel-frame) 72%, #f7d48a 28%);
  box-shadow: inset 0 1px 0 #fff9df72, inset 0 -2px 0 #35251e42, inset 0 0 0 3px color-mix(in srgb, var(--pixel-frame) 12%, transparent);
  transition: border-color 220ms ease, box-shadow 220ms ease;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card > :not(.pixel-card-ornament) { z-index: 2; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card > .pixel-card-ornament { z-index: 1; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card > .pixel-card-ornament::after {
  opacity: .86;
  filter: drop-shadow(0 1px 2px #24180c99) drop-shadow(0 0 4px color-mix(in srgb, var(--pixel-lantern) 60%, transparent));
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  html[data-world="enchanted-pixel-kingdom"] :is(.panel,.metric,.room-card,.room-tile,.summary-card,.metric-card,.employee-bubble,.prod-score-card).pixel-kingdom-card:hover,
  html[data-world="enchanted-pixel-kingdom"] :is(.panel,.metric,.room-card,.room-tile,.summary-card,.metric-card,.employee-bubble,.prod-score-card).pixel-kingdom-card:focus-within {
    translate: 0 -5px;
    border-color: color-mix(in srgb, var(--pixel-amber) 72%, var(--pixel-frame));
    box-shadow:
      0 2px 0 color-mix(in srgb, var(--pixel-amber) 85%, #fff1c2 15%),
      0 6px 0 color-mix(in srgb, var(--pixel-warm-edge) 52%, #101827 48%),
      0 19px 28px -7px color-mix(in srgb, var(--pixel-shadow) 92%, transparent),
      0 34px 48px -12px color-mix(in srgb, var(--pixel-shadow) 88%, transparent),
      0 0 24px -8px color-mix(in srgb, var(--pixel-lantern) 58%, transparent),
      inset 0 1px 0 #fffbe69c,
      inset 0 -1px 0 #100e1b4d;
  }
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card:hover::before,
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card:focus-within::before {
    opacity: .94;
    background-position: 100% 0;
    animation: pixel-card-light-pass 760ms ease-out both;
  }
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card:hover > .pixel-card-ornament,
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card:focus-within > .pixel-card-ornament {
    border-color: color-mix(in srgb, var(--pixel-amber) 88%, #fff5d8 12%);
    box-shadow: inset 0 1px 0 #fffbe6b0, inset 0 -2px 0 #35251e52, inset 0 0 0 3px color-mix(in srgb, var(--pixel-amber) 22%, transparent);
  }
}
@keyframes pixel-card-light-pass {
  from { background-position: 0 0; }
  to { background-position: 100% 0; }
}
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card:active {
  translate: 0 1px;
  box-shadow: 0 1px 0 color-mix(in srgb, var(--pixel-warm-edge) 58%, #101827 42%), 0 4px 8px -5px var(--pixel-shadow), inset 0 2px 4px #100e1b55;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-performance="lite"] :is(.panel,.metric,.room-card,.room-tile,.summary-card,.metric-card,.employee-bubble,.prod-score-card).pixel-kingdom-card {
  box-shadow: 0 2px 0 color-mix(in srgb, var(--pixel-frame) 82%, #fff1c2 18%), 0 5px 0 color-mix(in srgb, var(--pixel-warm-edge) 38%, #101827 62%), 0 12px 20px -7px var(--pixel-shadow), inset 0 1px 0 #fff8df52;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="cozy"] .pixel-kingdom-card::before { opacity: .34; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] .pixel-kingdom-card,
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] .pixel-kingdom-card::before,
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] .pixel-kingdom-card > .pixel-card-ornament {
  transition-duration: 0ms;
  animation: none;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] .pixel-kingdom-card { translate: none; }
@media (prefers-reduced-motion: reduce) {
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card,
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card::before,
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card > .pixel-card-ornament { transition: none !important; animation: none !important; }
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card:hover,
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card:focus-within,
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card:active { translate: none !important; }
}

/* Atmosphere controls own the frame layer; operational room colors stay intact. */
html[data-world="enchanted-pixel-kingdom"] {
  --pixel-scene-tint: #f2c28f;
  --pixel-frame-glow: color-mix(in srgb, var(--pixel-lantern) 68%, var(--pixel-cool-edge));
  --pixel-repaired-depth: 0 2px 0 var(--pixel-frame-glow), 0 6px 0 color-mix(in srgb, var(--pixel-frame) 65%, #191521), 0 18px 28px -10px var(--pixel-shadow), 0 0 20px -9px var(--pixel-frame-glow), inset 0 1px 0 #fff9df99;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-time="morning"] { --pixel-scene-tint: #ffda88; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-time="afternoon"] { --pixel-scene-tint: #fff5c9; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-time="night"] { --pixel-scene-tint: #657bb0; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="cozy"] {
  --pixel-scene-tint: #e7b675;
  --pixel-frame-glow: #c99a60;
  --pixel-repaired-depth: 0 2px 0 #b89564, 0 4px 0 color-mix(in srgb, var(--pixel-frame) 72%, #3a241a), 0 12px 24px -10px var(--pixel-shadow), inset 0 1px 0 #fff0d177;
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] {
  --pixel-scene-tint: var(--world-surface);
  --pixel-frame-glow: var(--pixel-frame);
  --pixel-repaired-depth: 0 2px 0 color-mix(in srgb, var(--pixel-frame) 75%, transparent), 0 5px 10px -6px var(--pixel-shadow), inset 0 1px 0 #ffffff26;
}
html[data-world="enchanted-pixel-kingdom"][data-theme][data-mode] #app-view .view .pixel-kingdom-card {
  position: relative;
  isolation: isolate;
  box-shadow: var(--pixel-repaired-depth) !important;
  translate: none;
  transition: box-shadow 220ms ease, background-color 250ms ease, transform 160ms ease, translate 160ms ease;
}
html[data-world="enchanted-pixel-kingdom"][data-theme][data-mode] #app-view .view .pixel-kingdom-card:not(.room-card,.room-tile,.arrival-tier,.early-tier,.finished) {
  background: color-mix(in srgb, var(--world-surface) 88%, var(--pixel-scene-tint)) !important;
}
html[data-world="enchanted-pixel-kingdom"][data-theme] #app-view .pixel-kingdom-card > .pixel-card-ornament {
  border: 2px solid color-mix(in srgb, var(--pixel-frame-glow) 65%, var(--pixel-frame));
  box-shadow: inset 0 1px 0 #fff9df77, inset 0 -2px 0 #251b3644, inset 0 0 0 3px color-mix(in srgb, var(--pixel-frame-glow) 16%, transparent);
}
html[data-world="enchanted-pixel-kingdom"] .pixel-card-light {
  position: absolute; inset: 0; opacity: .76;
  background: radial-gradient(ellipse at var(--pixel-pointer-x, 88%) var(--pixel-pointer-y, 0%), color-mix(in srgb, var(--pixel-scene-tint) 36%, transparent), transparent 62%);
}
html[data-world="enchanted-pixel-kingdom"] .pixel-card-light::after {
  content: ""; position: absolute; inset: -50%; opacity: .1;
  background: linear-gradient(112deg, transparent 40%, color-mix(in srgb, var(--pixel-lantern) 30%, transparent) 50%, transparent 60%);
  animation: pixel-frame-shimmer 9s ease-in-out infinite; animation-play-state: paused;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-card-motes {
  position: absolute; top: 4px; left: 9px; width: 2px; height: 2px; background: var(--pixel-lantern);
  box-shadow: 17px 2px var(--pixel-lantern), 43px -1px var(--pixel-lantern), 64px 3px var(--pixel-lantern);
  animation: pixel-frame-motes 4.8s ease-in-out infinite; animation-play-state: paused;
}
html[data-world="enchanted-pixel-kingdom"] .pixel-in-view .pixel-card-motes { animation-play-state: running; }
html[data-world="enchanted-pixel-kingdom"] .pixel-in-view .pixel-card-light::after { animation-play-state: running; }
html[data-world="enchanted-pixel-kingdom"] .pixel-ornament-window { width: 17px; height: 13px; right: 25px; transition-duration: 200ms; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="rain"] .pixel-ornament-window { background-size: 12px 12px; animation: pixel-window-rain 1.7s linear infinite paused; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-weather="snow"] .pixel-ornament-window { background-image: radial-gradient(circle, #fff 1px, transparent 2px); background-size: 8px 9px; animation: pixel-window-rain 5s linear infinite paused; }
html[data-world="enchanted-pixel-kingdom"] .pixel-in-view .pixel-ornament-window { animation-play-state: running; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="cozy"] .pixel-card-light { opacity: .42; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="cozy"] .pixel-card-light::after { animation-duration: 18s; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="cozy"] .pixel-card-motes,
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] :is(.pixel-card-motes,.pixel-card-light) { display: none; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"][data-theme] #app-view .pixel-kingdom-card > .pixel-card-ornament { border-width: 1px; box-shadow: inset 0 1px #ffffff26; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] .pixel-kingdom-card::before { opacity: .10; animation: none !important; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] .pixel-kingdom-card * { animation: none !important; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="minimal"] .pixel-card-ornament::after { opacity: .35; filter: none; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card[data-pixel-fold="opening"] > .panel-body { animation: pixel-card-unfold 280ms ease-out; }
html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card[data-pixel-fold="closing"] > .pixel-card-ornament { animation: pixel-card-settle 250ms ease-out; }
@keyframes pixel-frame-shimmer { 0%,100% { transform: translateX(-24%); opacity: .1; } 50% { transform: translateX(24%); opacity: .8; } }
@keyframes pixel-frame-motes { 0%,100% { opacity: .25; transform: translateY(0); } 50% { opacity: .9; transform: translateY(2px); } }
@keyframes pixel-window-rain { to { background-position: 0 18px; } }
@keyframes pixel-card-unfold { from { opacity: .65; transform: translateY(-3px); } to { opacity: 1; transform: none; } }
@keyframes pixel-card-settle { 50% { opacity: .65; } }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  html[data-world="enchanted-pixel-kingdom"][data-theme][data-mode][data-pixel-intensity="full"][data-pixel-performance="full"] #app-view .view .pixel-kingdom-card.pixel-hovering:not(:focus-within,.is-dragging) {
    translate: 0 -3px;
    transform: perspective(1000px) rotateX(var(--pixel-pointer-tilt-x, 0deg)) rotateY(var(--pixel-pointer-tilt-y, 0deg)) !important;
  }
  html[data-world="enchanted-pixel-kingdom"][data-theme][data-mode][data-pixel-intensity="cozy"] #app-view .view .pixel-kingdom-card:hover:not(:focus-within,.is-dragging) { translate: 0 -1px; }
}
html[data-world="enchanted-pixel-kingdom"][data-pixel-performance="lite"] .pixel-card-motes { display: none; }
html[data-world="enchanted-pixel-kingdom"][data-pixel-performance="lite"] .pixel-card-light::after { animation: none; }
html[data-world="enchanted-pixel-kingdom"].world-page-hidden .pixel-kingdom-card *,
html[data-world="enchanted-pixel-kingdom"].world-page-hidden .pixel-card-light::after { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) {
  html[data-world="enchanted-pixel-kingdom"] .pixel-kingdom-card *,
  html[data-world="enchanted-pixel-kingdom"] .pixel-card-light::after { animation: none !important; }
}
/* Join the existing material layer: its important paints otherwise win over
   every unlayered theme rule, regardless of selector specificity. */
@media screen {
  @layer surface-material {
    html[data-world="enchanted-pixel-kingdom"] #app-view .view .pixel-kingdom-card:not(:where(.print-preview-sheet *,#print-run-root *)) {
      box-shadow: var(--pixel-repaired-depth) !important;
    }
    html[data-world="enchanted-pixel-kingdom"] #app-view .view .pixel-kingdom-card:not(.room-card,.room-tile,.arrival-tier,.early-tier,.finished):not(:where(.print-preview-sheet *,#print-run-root *)) {
      background: var(--surface-user-paint, color-mix(in srgb, var(--world-surface) 88%, var(--pixel-scene-tint))) !important;
    }
  }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  html[data-world="enchanted-pixel-kingdom"][data-pixel-intensity="full"] .pixel-kingdom-card.pixel-hovering {
    --pixel-repaired-depth: 0 2px 0 var(--pixel-frame-glow), 0 7px 0 color-mix(in srgb, var(--pixel-frame) 65%, #191521), 0 24px 36px -10px var(--pixel-shadow), 0 0 24px -5px var(--pixel-frame-glow), inset 0 1px 0 #fff9df99;
  }
}


/* Source: world-themes.css */
/* Six Worlds — semantic adapter + treatments. Screen-only: print and the
   original operational status paints remain authoritative. All artwork is SVG
   linework generated from the catalog; no image or font downloads are needed. */
@media screen {
  html[data-world][data-theme][data-mode] {
    --bg: var(--world-background); --panel: var(--world-surface);
    --surface: var(--world-elevated); --surface-2: var(--world-elevated);
    --text: var(--world-text); --secondary: var(--world-text); --muted: var(--world-secondary); --faint: var(--world-secondary);
    --accent: var(--world-accent); --accent-hover: var(--world-highlight); --accent-ink: var(--world-accent-ink);
    --on-accent: var(--world-on-accent); --border: var(--world-border);
    --border-soft: color-mix(in srgb, var(--world-border) 40%, transparent);
    --accent-soft: color-mix(in srgb, var(--world-accent) 12%, transparent);
    --glow: var(--world-glow); --ring: var(--world-accent);
    --danger: var(--world-danger); --success: var(--world-success);
    --font: system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-display: var(--world-font);
    --studio-nav-radius: var(--world-control);
    --studio-card-surface: var(--world-surface); --studio-card-shadow: var(--world-shadow);
    --today-checkouts-icon: '↗'; --today-arrivals-icon: '↘'; --today-finished-icon: '✓'; --today-inspected-icon: '◎';
  }
  html[data-world][data-theme][data-mode] body,
  html[data-world][data-theme][data-mode] .workspace {
    background: linear-gradient(175deg, var(--world-background), var(--world-deep)) !important;
    color: var(--world-text); background-attachment: scroll !important;
  }
  html[data-world].has-photo-background .workspace {
    background-image: linear-gradient(var(--world-background), color-mix(in srgb, var(--world-background) 86%, transparent)), var(--photo-background) !important;
  }
  html[data-world][data-theme][data-mode] .workspace { isolation: isolate; }
  html[data-world][data-theme][data-mode] .view { animation: world-page-arrive .22s ease-out; }
  /* World themes own their environmental plane. The legacy animation layer
     remains available only for the older, non-world themes; otherwise the
     two systems used to hide one another and leave every world static. */
  html[data-world][data-theme][data-mode] :is(.ambient, .workspace-animation-decor) { display: none !important; }
  html[data-world][data-theme][data-mode][data-world-motion='off'][data-animation-style]:not([data-animation-style='none']) .workspace > .workspace-animation-decor { display: block !important; }
  html[data-world][data-theme][data-mode] .world-atmosphere { display: block !important; }
  html[data-world][data-theme][data-mode][data-world-motion='off'][data-animation-style]:not([data-animation-style='none']) .world-atmosphere { display: none !important; }
  html[data-world][data-theme][data-mode] :is(.sidebar, .topbar, .mobile-nav-bar, #mobile-nav-sheet, .notification-panel) {
    background: var(--world-deep) !important; color: var(--world-text) !important;
    border-color: var(--world-border) !important; box-shadow: 0 8px 30px -24px var(--world-deep) !important;
    backdrop-filter: none !important;
  }
  html[data-world][data-mode='light'] :is(.sidebar, .topbar, .mobile-nav-bar, #mobile-nav-sheet, .notification-panel) { background: var(--world-surface) !important; }
  html[data-world][data-theme] :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *)) {
    border-radius: var(--world-radius) !important;
    transition: background-color .28s ease, color .28s ease, border-color .28s ease, box-shadow .3s ease, transform .3s ease;
  }
  html[data-world][data-theme][data-mode] :is(.panel, .room-card, .metric, .employee-bubble):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging):not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: var(--world-surface) !important; border: 1px solid var(--world-border) !important;
    box-shadow: var(--world-shadow) !important;
  }
  html[data-world][data-theme][data-mode] .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) {
    position: relative; isolation: isolate; background: linear-gradient(115deg, var(--world-elevated), var(--world-surface)) !important;
    border-bottom: 1px solid var(--border-soft) !important; border-radius: var(--world-header);
    animation: none !important; color: var(--world-text) !important;
  }
  html[data-world][data-theme] .panel > .panel-head::before {
    content: '' !important; position: absolute; inset: 7px 12px 7px auto; width: min(100px, 28%); height: auto;
    background: var(--world-accent-secondary) !important; mask: var(--world-motif) center / contain no-repeat;
    opacity: .11; pointer-events: none; z-index: -1; border: 0; box-shadow: none;
    animation: var(--world-motion) var(--world-duration) ease-in-out infinite !important;
  }
  html[data-world][data-theme] :is(.panel-head h3, .panel-head h2, .topbar h1, .housekeeper-greeting) {
    font-family: var(--world-font); color: var(--world-text); text-shadow: none !important;
  }
  html[data-world][data-theme] .panel-head h3 { letter-spacing: .015em; }
  html[data-world][data-theme] .housekeeper-greeting { background: transparent !important; border-color: transparent !important; box-shadow: none !important; }
  html[data-world][data-theme] .housekeeper-greeting em { color: var(--world-accent-ink) !important; text-shadow: none !important; }
  html[data-world][data-theme] .housekeeper-greeting::before { content: none !important; }
  html[data-world][data-theme][data-mode] :is(input, select, textarea):not([type='checkbox']):not([type='radio']):not([type='color']):not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: var(--world-surface) !important; color: var(--world-text) !important;
    border: 1px solid var(--world-border) !important; border-radius: var(--world-control) !important;
    box-shadow: inset 0 1px 3px color-mix(in srgb, var(--world-deep) 12%, transparent) !important;
  }
  html[data-world] option { background: var(--world-surface); color: var(--world-text); }
  html[data-world] ::placeholder { color: var(--world-secondary) !important; opacity: 1; }
  html[data-world][data-theme][data-mode] :is(.button, .notification-button, #mobile-nav-select, .checkin-countdown):not(:where(.print-preview-sheet *, #print-run-root *)) {
    border-radius: var(--world-control) !important; border: 1px solid var(--world-border) !important;
    background: var(--world-elevated) !important; color: var(--world-text) !important;
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 18%, transparent) !important;
    text-shadow: none !important; transition: background-color .25s ease, color .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  html[data-world][data-theme][data-mode] .button.primary:not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: var(--world-accent) !important; color: var(--world-on-accent) !important; border-color: var(--world-accent) !important;
  }
  html[data-world][data-theme][data-mode] :is(.button.danger, .button.warning):not(:where(.print-preview-sheet *, #print-run-root *)) { color: var(--world-danger) !important; border-color: var(--world-danger) !important; }
  html[data-world][data-theme][data-mode] .button.success:not(:where(.print-preview-sheet *, #print-run-root *)) { color: var(--world-success) !important; border-color: var(--world-success) !important; }
  html[data-world] :is(a, .muted a) { color: var(--world-accent-ink); text-underline-offset: 3px; }
  html[data-world] :is(.muted, .empty-state, .todo-meta, .world-studio-help) { color: var(--world-secondary); }
  html[data-world] :is(hr, td, th, .maintenance-row, .todo-item) { border-color: var(--border-soft); }
  html[data-world] th { color: var(--world-text); background: var(--world-elevated); font-family: var(--world-font); }
  html[data-world] tbody tr:hover { background: color-mix(in srgb, var(--world-accent) 7%, transparent); }
  html[data-world] :is(dialog, [role='tooltip'], .tooltip, .card-order-toolbar) { background: var(--world-surface); color: var(--world-text); border: 1px solid var(--world-border); border-radius: var(--world-control); }
  html[data-world] dialog::backdrop { background: color-mix(in srgb, var(--world-deep) 72%, transparent); }
  html[data-world] :is(.badge, .room-list-count, .logged-by-badge, .notification-count) { border-radius: var(--world-icon); }
  html[data-world] :is(.room-list-count, .logged-by-badge, .notification-count) { border-color: var(--world-border); }
  html[data-world] :is(.nav-item, .mobile-nav-sheet-item) { border-radius: var(--world-control); color: var(--world-secondary); }
  html[data-world][data-theme] :is(.nav-item.active, .mobile-nav-sheet-item.active, .button.active, [aria-selected='true']):not(:where(.print-preview-sheet *, #print-run-root *)) {
    color: var(--world-accent-ink) !important; border-color: var(--world-accent) !important;
    background: color-mix(in srgb, var(--world-accent) 12%, var(--world-surface)) !important;
    box-shadow: inset 3px 0 0 var(--world-accent) !important;
  }
  html[data-world] :is(button, input, select, textarea, a, summary):focus-visible {
    outline: 2px solid var(--world-accent) !important; outline-offset: 3px;
    box-shadow: 0 0 0 5px var(--world-glow) !important;
  }
  html[data-world] ::selection { background: var(--world-accent); color: var(--world-on-accent); }
  .world-line-icon { width: 20px; height: 20px; display: inline-block; flex: none; vertical-align: middle; }
  html[data-world] .nav-item > span:first-child,
  html[data-world] .world-mobile-icon {
    display: inline-flex; align-items: center; justify-content: center; flex: none;
    width: 30px; height: 30px; border: 1px solid var(--world-border); border-radius: var(--world-icon);
    color: var(--world-accent); background: var(--accent-soft); margin-right: 7px;
  }
  html[data-world] .mobile-nav-sheet-item { display: flex; align-items: center; gap: 6px; }
  html[data-world] .metric::before { border-radius: var(--world-icon) !important; color: var(--world-accent) !important; background: var(--accent-soft) !important; border-color: var(--world-border) !important; }
  html[data-world] :is(.spinner, [role='progressbar']) { border-color: var(--world-border); border-top-color: var(--world-accent); }
  html[data-world] .spinner { border-radius: var(--world-icon); animation: world-orbit 3s linear infinite; }
  .world-loading-indicator { display: none; }
  html[data-world] .world-loading-indicator { display: inline-block; width: 32px; height: 24px; margin-right: 8px; vertical-align: middle; background: var(--world-accent); mask: var(--world-motif) center / contain no-repeat; animation: var(--world-motion) 4s ease-in-out infinite; }

  /* The six structural signatures. No clipping of controls, menus or text. */
  html[data-world='neon-afterglow'][data-theme] .panel::after,
  .world-preview[data-world='neon-afterglow'] .world-sample-card::after {
    content: '' !important; position: absolute; top: -1px; right: -1px; width: 17px; height: 17px;
    background: linear-gradient(45deg, transparent 45%, var(--world-border) 46% 51%, var(--world-background) 52%) !important;
    border: 0; border-radius: 0; box-shadow: none; pointer-events: none; z-index: 1;
  }
  html[data-world='neon-afterglow'] .panel > .panel-head { border-top: 2px solid var(--world-accent-secondary) !important; }
  html[data-world='neon-afterglow'] .panel > .panel-head::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(90deg, transparent, var(--world-accent), var(--world-accent-secondary), transparent); background-size: 200% 100%; animation: world-underline 12s ease-in-out infinite; pointer-events: none; }
  html[data-world='neon-afterglow'] .nav-item.active { background-image: linear-gradient(100deg, transparent 25%, var(--world-glow), transparent 75%) !important; background-size: 200% 100% !important; animation: world-underline .8s ease-out 1; }
  html[data-world='afterfall'] .panel > .panel-head { border-left: 4px solid var(--world-accent) !important; border-top: 1px dashed var(--world-border) !important; }
  html[data-world='afterfall'] .panel-head h3 { font-size: .95em; letter-spacing: .045em; }
  html[data-world='afterfall'] :is(.nav-item.active, .badge) { border-style: dashed !important; }
  html[data-world='afterfall'] .panel > .panel-head::before { mask: none; width: 18px; inset: 8px 9px auto auto; height: 4px; background: repeating-linear-gradient(110deg, var(--world-accent) 0 3px, transparent 3px 6px) !important; opacity: .65; }
  html[data-world='lunar-cyborg'] .panel > .panel-head { border-right: 4px solid var(--world-accent-secondary) !important; }
  html[data-world='lunar-cyborg'] .panel > .panel-head::after { content: ''; position: absolute; bottom: 0; left: 12%; width: 70%; height: 1px; background: linear-gradient(90deg, transparent, var(--world-accent), transparent); animation: world-trace 10s ease-in-out infinite; pointer-events: none; }
  html[data-world='botanical-alchemy'] .panel > .panel-head { border-bottom: 1px solid var(--world-border) !important; }
  html[data-world='botanical-alchemy'] .panel > .panel-head::before { opacity: .18; transform-origin: bottom left; }
  html[data-world='botanical-alchemy'] .nav-item.active { border-left: 4px double var(--world-accent) !important; }
  html[data-world='starfall-archive'] .panel > .panel-head { min-height: 66px; padding-left: 25px; padding-right: 25px; border-top: 3px double var(--world-border) !important; }
  html[data-world='starfall-archive'] .panel > .panel-head::before { width: 115px; opacity: .18; }
  html[data-world='starfall-archive'] .panel > .panel-head::after { content: '✧'; color: var(--world-accent); position: absolute; right: 15px; top: 14px; font-size: 11px; animation: world-reveal 9s ease-in-out infinite; pointer-events: none; }
  @media (hover: hover) {
    html[data-world][data-theme][data-mode] .panel:not(.card-dragging):hover { transform: var(--world-lift); }
    html[data-world][data-theme][data-mode] .panel:not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging):hover { border-color: var(--world-accent) !important; box-shadow: var(--world-shadow), 0 0 0 1px var(--world-accent) !important; }
    html[data-world] :is(.button, .nav-item):not(:disabled):hover { border-color: var(--world-accent) !important; box-shadow: 0 0 12px var(--world-glow) !important; }
    html[data-world='lunar-cyborg'] .button:not(:disabled):hover { outline: 1px dashed var(--world-accent-secondary); outline-offset: 3px; }
    html[data-world='botanical-alchemy'] .button:not(:disabled):hover { border-radius: 9px 20px 9px 20px !important; }
  }

  /* Seven-layer atmosphere: every world uses the same cheap, fixed paint
     plane but supplies a completely different visual language. Content stays
     in the foreground and the artwork never receives pointer events. */
  .world-atmosphere { display: none; }
  html[data-world] .world-atmosphere {
    --world-parallax-x: 0px; --world-parallax-y: 0px; --world-scroll-shift: 0px;
    --world-rare-x: 50%; --world-rare-y: 45%; --world-rare-angle: 0deg;
    display: block; position: fixed; inset: 0; overflow: hidden; pointer-events: none;
    z-index: 0; contain: strict; opacity: .72; transition: opacity 1.2s ease;
  }
  html[data-world] .world-atmosphere ~ :is(.topbar, .view) { position: relative; z-index: 1; }
  .world-atmosphere i, .world-atmosphere b { position: absolute; display: block; pointer-events: none; }
  .world-atmosphere i::before, .world-atmosphere i::after,
  .world-atmosphere b::before, .world-atmosphere b::after { content: ''; position: absolute; display: block; pointer-events: none; }
  .world-base, .world-horizon, .world-silhouette, .world-particles,
  .world-particles-mid, .world-particles-near, .world-rare { inset: -8%; }
  .world-base { animation: world-drift 54s ease-in-out infinite alternate; }
  .world-horizon { animation: world-drift 38s ease-in-out infinite alternate-reverse; translate: var(--world-parallax-x) calc(var(--world-parallax-y) + var(--world-scroll-shift)); }
  .world-silhouette { animation: world-breathe 46s ease-in-out infinite alternate; translate: var(--world-parallax-x) calc(var(--world-parallax-y) + var(--world-scroll-shift)); }
  .world-orbits { width: min(1100px, 145vw); aspect-ratio: 1.45; top: 4vh; right: -12%; background: var(--world-accent-secondary); mask: var(--world-motif) center / contain no-repeat; opacity: .12; animation: var(--world-motion) calc(var(--world-duration) * 2) ease-in-out infinite; translate: var(--world-parallax-x) calc(var(--world-parallax-y) + var(--world-scroll-shift)); }
  .world-orbits > b { inset: 0; border-radius: 50%; }
  .world-particles, .world-particles-mid, .world-particles-near { background-repeat: repeat; will-change: transform, opacity; }
  .world-particles { opacity: .18; animation: world-far-drift 72s linear infinite; }
  .world-particles-mid { opacity: .14; animation: world-mid-drift 49s linear infinite; }
  .world-particles-near { opacity: .1; animation: world-near-drift 34s linear infinite; }
  .world-rare { opacity: 0; }
  html.world-focus-mode .world-atmosphere { opacity: .34; }
  html.world-focus-mode .world-atmosphere :is(.world-rare, .world-particles-near) { animation-play-state: paused !important; opacity: 0 !important; }
  html.world-page-hidden .world-atmosphere, html.world-page-hidden .world-atmosphere * { animation-play-state: paused !important; }
  html[data-world][data-background-animations='off'] .world-atmosphere,
  html[data-world][data-background-animations='off'] .world-atmosphere * {
    animation: none !important;
    transition: none !important;
  }

  /* Neon Afterglow — animated night sky, vanishing grid, abstract skyline,
     light traffic and rare horizon sunrise. */
  html[data-world='neon-afterglow'] .world-base {
    background: linear-gradient(135deg, #090718 0%, var(--world-deep) 26%, #211142 55%, #071d35 78%, #2b0b35 100%);
    background-size: 180% 180%; animation-name: world-neon-sky;
  }
  html[data-world='neon-afterglow'] .world-horizon { inset: 12% -8% -8%; background: radial-gradient(ellipse at 53% 43%, color-mix(in srgb, var(--world-accent-secondary) 23%, transparent) 0 4%, color-mix(in srgb, var(--world-accent) 10%, transparent) 24%, transparent 58%); }
  html[data-world='neon-afterglow'] .world-silhouette { inset: 34% -3% -5%; opacity: .15; background: linear-gradient(180deg, transparent 0 23%, color-mix(in srgb, var(--world-accent-secondary) 28%, transparent) 24% 25%, transparent 26%), linear-gradient(120deg, transparent 0 8%, #020713 8% 14%, transparent 14% 18%, #050a18 18% 30%, transparent 30% 38%, #020713 38% 44%, transparent 44% 52%, #050a18 52% 68%, transparent 68% 77%, #020713 77% 84%, transparent 84%); clip-path: polygon(0 54%,8% 48%,12% 66%,20% 42%,29% 61%,38% 50%,44% 68%,54% 38%,65% 59%,74% 46%,82% 64%,91% 40%,100% 55%,100% 100%,0 100%); }
  html[data-world='neon-afterglow'] .world-orbits { inset: 40% 5% -36%; width: auto; aspect-ratio: auto; opacity: .15; background: none; mask: none; transform-origin: 50% 0; }
  html[data-world='neon-afterglow'] .world-orbits::before { inset: -12% -20%; background-image: linear-gradient(color-mix(in srgb, var(--world-accent) 32%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--world-accent-secondary) 26%, transparent) 1px, transparent 1px); background-size: 54px 38px; transform: perspective(420px) rotateX(61deg) scale(1.3); transform-origin: 50% 0; animation: world-grid-drive 8s linear infinite; mask-image: linear-gradient(to bottom, transparent, #000 16%, #000 70%, transparent); }
  html[data-world='neon-afterglow'] .world-particles { background-image: radial-gradient(circle, #67e8f9 0 1px, transparent 2px), radial-gradient(circle, #ff85cc 0 1px, transparent 2px); background-size: 157px 193px, 239px 211px; }
  html[data-world='neon-afterglow'] .world-particles-mid { background: repeating-linear-gradient(0deg, transparent 0 83px, color-mix(in srgb, var(--world-accent) 24%, transparent) 84px, transparent 85px 170px); animation-name: world-light-streak; opacity: .12; }
  html[data-world='neon-afterglow'] .world-particles-near { background-image: radial-gradient(ellipse, #fff 0 1px, transparent 3px); background-size: 317px 229px; }
  html[data-world='neon-afterglow'] .world-atmosphere[data-event='digital-sunrise'] .world-rare { inset: 15% -10% -8%; background: radial-gradient(ellipse at 50% 47%, color-mix(in srgb, var(--world-accent-secondary) 30%, transparent), color-mix(in srgb, var(--world-accent) 12%, transparent) 24%, transparent 60%); animation: world-digital-sunrise 9.5s ease-in-out both; }

  /* Afterfall — concrete grain, industrial shadows, lateral dust and fog. */
  html[data-world='afterfall'] .world-base { background: linear-gradient(155deg, #0d100e, var(--world-deep) 32%, #252720 70%, #171816); animation-name: world-afterfall-shift; }
  html[data-world='afterfall'][data-mode='light'] .world-base { background: linear-gradient(150deg, #c9c5b7, #ded9c8 38%, #aeb09c 73%, #c8bda9); }
  html[data-world='afterfall'] .world-horizon { opacity: .22; background: radial-gradient(circle at 76% 36%, color-mix(in srgb, #b96d38 24%, transparent), transparent 20%), radial-gradient(circle at 18% 58%, color-mix(in srgb, #758b61 17%, transparent), transparent 24%), linear-gradient(90deg, transparent, color-mix(in srgb, var(--world-surface) 24%, transparent), transparent); animation-name: world-fog-bank; }
  html[data-world='afterfall'] .world-silhouette { opacity: .16; background: repeating-linear-gradient(90deg, transparent 0 9%, color-mix(in srgb, #020503 62%, transparent) 9.4% 11%, transparent 11.4% 24%), repeating-linear-gradient(90deg, transparent 0 31%, color-mix(in srgb, var(--world-border) 18%, transparent) 31.2% 31.8%, transparent 32%); }
  html[data-world='afterfall'] .world-orbits { inset: 0; width: auto; aspect-ratio: auto; right: auto; top: auto; opacity: .1; mask: none; background-image: repeating-radial-gradient(circle at 20% 15%, color-mix(in srgb, #fff 18%, transparent) 0 1px, transparent 1px 4px); background-size: 103px 89px; }
  html[data-world='afterfall'] .world-orbits::after { inset: 0; background: linear-gradient(90deg, transparent 0 43%, color-mix(in srgb, var(--world-accent) 17%, transparent) 49%, transparent 55%); transform: translateX(-120%); animation: world-industrial-scan 57s linear infinite; }
  html[data-world='afterfall'] .world-particles { opacity: .12; background-image: radial-gradient(circle, #c5bfa6 0 .7px, transparent 1.6px); background-size: 67px 91px; animation-name: world-dust-sideways; }
  html[data-world='afterfall'] .world-particles-mid { opacity: .08; background-image: radial-gradient(ellipse, #8a6d4c 0 1px, transparent 3px); background-size: 173px 119px; animation-name: world-dust-sideways-reverse; }
  html[data-world='afterfall'] .world-particles-near { opacity: .07; background: linear-gradient(100deg, transparent, color-mix(in srgb, #b9b4a0 12%, transparent), transparent 63%); animation-name: world-fog-bank; }
  html[data-world='afterfall'] .world-atmosphere[data-event='distant-flicker'] .world-rare { background: radial-gradient(circle at var(--world-rare-x) var(--world-rare-y), color-mix(in srgb, var(--world-accent) 28%, transparent), transparent 14%); animation: world-distant-flicker 7.6s steps(1, end) both; }

  /* Lunar Cyborg — rotating technical rings, orbital arcs and quiet nodes. */
  html[data-world='lunar-cyborg'] .world-base { background: linear-gradient(145deg, #06101e, var(--world-deep) 42%, #152b42 72%, #091521); animation-name: world-lunar-light; }
  html[data-world='lunar-cyborg'][data-mode='light'] .world-base { background: linear-gradient(145deg, #d8e4ec, #eef4f7 46%, #c7d9e3 76%, #e3e8f2); }
  html[data-world='lunar-cyborg'] .world-horizon { opacity: .22; background: linear-gradient(122deg, transparent 28%, color-mix(in srgb, var(--world-accent) 13%, transparent) 45%, transparent 62%); animation-name: world-holographic-sweep; }
  html[data-world='lunar-cyborg'] .world-silhouette { inset: 5% 4%; opacity: .13; background-image: radial-gradient(circle at 18% 26%, var(--world-accent) 0 2px, transparent 3px), radial-gradient(circle at 72% 18%, var(--world-accent-secondary) 0 2px, transparent 3px), radial-gradient(circle at 83% 66%, var(--world-accent) 0 2px, transparent 3px), radial-gradient(circle at 38% 74%, var(--world-accent-secondary) 0 1px, transparent 3px), linear-gradient(26deg, transparent 20%, color-mix(in srgb, var(--world-accent) 16%, transparent) 20.2% 20.4%, transparent 20.6% 100%); }
  html[data-world='lunar-cyborg'] .world-orbits { top: -14vh; right: -18vw; width: min(1180px, 150vw); aspect-ratio: 1; opacity: .16; background: repeating-conic-gradient(from 12deg, var(--world-accent) 0 .7deg, transparent .7deg 9deg); mask: radial-gradient(circle, transparent 0 18%, #000 18.3% 18.8%, transparent 19.1% 28%, #000 28.3% 28.8%, transparent 29.1% 40%, #000 40.3% 40.8%, transparent 41.1% 48%, #000 48.3% 49%, transparent 49.3%); }
  html[data-world='lunar-cyborg'] .world-orbits > b:nth-child(1) { inset: 13%; border: 1px solid color-mix(in srgb, var(--world-accent-secondary) 52%, transparent); animation: world-orbit-reverse 93s linear infinite; }
  html[data-world='lunar-cyborg'] .world-orbits > b:nth-child(2) { inset: 29%; border: 1px dashed color-mix(in srgb, var(--world-accent) 46%, transparent); animation: world-orbit 71s linear infinite; }
  html[data-world='lunar-cyborg'] .world-particles { background-image: radial-gradient(circle, var(--world-accent) 0 1px, transparent 2px); background-size: 131px 167px; }
  html[data-world='lunar-cyborg'] .world-particles-mid { background-image: radial-gradient(circle, var(--world-accent-secondary) 0 1px, transparent 2px); background-size: 227px 193px; animation-name: world-node-travel; }
  html[data-world='lunar-cyborg'] .world-particles-near { background: linear-gradient(130deg, transparent 0 49.8%, color-mix(in srgb, var(--world-accent) 14%, transparent) 50%, transparent 50.2%); background-size: 310px 310px; animation-name: world-holographic-sweep; }
  html[data-world='lunar-cyborg'] .world-atmosphere[data-event='network-sync'] .world-rare { inset: 12% 8%; background-image: radial-gradient(circle at 24% 33%, var(--world-accent) 0 3px, transparent 5px), radial-gradient(circle at 66% 22%, var(--world-accent-secondary) 0 3px, transparent 5px), radial-gradient(circle at 78% 69%, var(--world-accent) 0 3px, transparent 5px), radial-gradient(circle at 39% 72%, var(--world-accent-secondary) 0 3px, transparent 5px), linear-gradient(28deg, transparent 34%, color-mix(in srgb, var(--world-accent) 35%, transparent) 34.2% 34.5%, transparent 34.7%), linear-gradient(145deg, transparent 48%, color-mix(in srgb, var(--world-accent-secondary) 30%, transparent) 48.2% 48.5%, transparent 48.7%); animation: world-network-sync 11s ease-in-out both; }

  /* Botanical Alchemy — specimen diagrams, edge vines, pollen and leaves. */
  html[data-world='botanical-alchemy'] .world-base { background: linear-gradient(145deg, #071813, var(--world-deep) 36%, #18352a 68%, #0b2119); animation-name: world-greenhouse-light; }
  html[data-world='botanical-alchemy'][data-mode='light'] .world-base { background: linear-gradient(145deg, #e7e4cd, #f5f1dd 45%, #d8e1c6 74%, #eee5cf); }
  html[data-world='botanical-alchemy'] .world-horizon { opacity: .18; background: radial-gradient(ellipse at 12% 30%, color-mix(in srgb, var(--world-accent-secondary) 18%, transparent), transparent 36%), radial-gradient(ellipse at 89% 72%, color-mix(in srgb, var(--world-accent) 16%, transparent), transparent 32%); animation-name: world-leaf-shadow; }
  html[data-world='botanical-alchemy'] .world-silhouette { opacity: .13; background: radial-gradient(ellipse 22% 45% at 2% 25%, #020d08 0 35%, transparent 36%), radial-gradient(ellipse 18% 40% at 98% 64%, #020d08 0 35%, transparent 36%), radial-gradient(ellipse 14% 30% at 78% 5%, #07170e 0 35%, transparent 36%); animation-name: world-leaf-shadow; }
  html[data-world='botanical-alchemy'] .world-orbits { right: -18%; top: 8vh; width: min(1050px, 145vw); opacity: .12; }
  html[data-world='botanical-alchemy'] .world-orbits::after { inset: -18%; border-left: 2px solid color-mix(in srgb, var(--world-accent) 24%, transparent); border-right: 1px solid color-mix(in srgb, var(--world-accent-secondary) 20%, transparent); border-radius: 48%; animation: world-vine-grow 94s ease-in-out infinite alternate; }
  html[data-world='botanical-alchemy'] .world-particles { opacity: .2; background-image: radial-gradient(circle, #e7d69b 0 1px, transparent 2px); background-size: 113px 139px; animation-name: world-pollen-drift; }
  html[data-world='botanical-alchemy'] .world-particles-mid { opacity: .12; background-image: radial-gradient(ellipse, #d9e5b5 0 1px, transparent 3px); background-size: 223px 181px; animation-name: world-seed-drift; }
  html[data-world='botanical-alchemy'] .world-particles-near { opacity: .1; background: repeating-radial-gradient(ellipse at 5% 50%, transparent 0 28px, color-mix(in srgb, var(--world-accent) 18%, transparent) 29px 30px, transparent 31px 80px); animation-name: world-vine-grow; }
  html[data-world='botanical-alchemy'] .world-atmosphere[data-event='leaf-unfurl'] .world-rare { left: clamp(10px, var(--world-rare-x), calc(100% - 50px)); top: var(--world-rare-y); right: auto; bottom: auto; width: 44px; height: 72px; border-radius: 90% 8% 90% 12%; background: linear-gradient(145deg, color-mix(in srgb, var(--world-accent) 48%, transparent), color-mix(in srgb, var(--world-accent-secondary) 34%, transparent)); transform-origin: 0 100%; rotate: var(--world-rare-angle); animation: world-rare-leaf 15s ease-in-out both; }

  /* Starfall Archive — layered stars, drifting map, nebula and discoveries. */
  html[data-world='starfall-archive'] .world-base { background: linear-gradient(145deg, #070d21, var(--world-deep) 36%, #241936 68%, #101a35); animation-name: world-cosmic-shift; }
  html[data-world='starfall-archive'][data-mode='light'] .world-base { background: linear-gradient(145deg, #e7e8ee, #f4f0e6 42%, #d8dcec 72%, #ebe4ee); }
  html[data-world='starfall-archive'] .world-horizon { opacity: .2; background: radial-gradient(ellipse at 19% 36%, color-mix(in srgb, var(--world-accent-secondary) 18%, transparent), transparent 37%), radial-gradient(ellipse at 78% 64%, color-mix(in srgb, #8b78bd 14%, transparent), transparent 42%); animation-name: world-nebula-drift; }
  html[data-world='starfall-archive'] .world-silhouette { inset: -20%; opacity: .11; background: repeating-radial-gradient(ellipse at center, transparent 0 18%, color-mix(in srgb, var(--world-accent) 34%, transparent) 18.15% 18.35%, transparent 18.5% 27%); animation: world-map-drift 130s linear infinite; }
  html[data-world='starfall-archive'] .world-orbits { top: -20vh; right: -12vw; width: min(1280px, 165vw); opacity: .15; }
  html[data-world='starfall-archive'] .world-orbits::after { inset: 18%; border: 1px solid color-mix(in srgb, var(--world-accent-secondary) 42%, transparent); border-radius: 50%; background: repeating-conic-gradient(from 15deg, color-mix(in srgb, var(--world-accent) 48%, transparent) 0 .3deg, transparent .4deg 12deg); mask: radial-gradient(circle, transparent 0 62%, #000 62.5% 63%, transparent 63.5%); animation: world-orbit-reverse 145s linear infinite; }
  html[data-world='starfall-archive'] .world-particles { opacity: .3; background-image: radial-gradient(circle, #f5f1dd 0 .65px, transparent 1.4px); background-size: 61px 83px; animation-name: world-star-far; }
  html[data-world='starfall-archive'] .world-particles-mid { opacity: .22; background-image: radial-gradient(circle, var(--world-accent-secondary) 0 1px, transparent 2px), radial-gradient(circle, var(--world-accent) 0 .8px, transparent 2px); background-size: 151px 177px, 239px 211px; animation-name: world-star-mid; }
  html[data-world='starfall-archive'] .world-particles-near { opacity: .11; background-image: radial-gradient(circle, #fff 0 1.4px, transparent 3px); background-size: 397px 283px; animation-name: world-star-near; }
  html[data-world='starfall-archive'] .world-atmosphere[data-event='constellation-form'] .world-rare { inset: 13% 10%; background-image: radial-gradient(circle at 18% 64%, var(--world-accent) 0 2px, transparent 4px), radial-gradient(circle at 38% 28%, var(--world-accent-secondary) 0 2px, transparent 4px), radial-gradient(circle at 62% 52%, var(--world-accent) 0 2px, transparent 4px), radial-gradient(circle at 83% 18%, var(--world-accent-secondary) 0 2px, transparent 4px), linear-gradient(35deg, transparent 39%, color-mix(in srgb, var(--world-accent) 35%, transparent) 39.15% 39.35%, transparent 39.5%), linear-gradient(155deg, transparent 48%, color-mix(in srgb, var(--world-accent-secondary) 28%, transparent) 48.15% 48.35%, transparent 48.5%); animation: world-constellation-form 13.5s ease-in-out both; }
  html[data-world='starfall-archive'] .world-atmosphere[data-secondary-event='falling-star'] .world-particles-near::after { width: 120px; height: 1px; left: -12%; top: var(--world-rare-y); background: linear-gradient(90deg, transparent, #fff, var(--world-accent), transparent); transform: rotate(-28deg); animation: world-falling-star 2.1s ease-out both; }

  /* Aurora Circuit — an etched board with current moving through its traces. */
  html[data-world='aurora-circuit'] { --aurora-circuit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 240'%3E%3Cg fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 32H56V76H116V116H188'/%3E%3Cpath d='M74 0V28H146V62H214V120H360'/%3E%3Cpath d='M0 164H34V132H98V158H162V204H252'/%3E%3Cpath d='M224 0V42H278V74H330V132H360'/%3E%3Cpath d='M360 194H300V162H244V132H188V94H146'/%3E%3Cpath d='M88 240V196H134V174H188V146H236'/%3E%3Cpath d='M0 214H48V190H74V150'/%3E%3Cpath d='M144 0V18H182V44H252'/%3E%3C/g%3E%3Cg fill='white'%3E%3Ccircle cx='56' cy='32' r='2'/%3E%3Ccircle cx='116' cy='76' r='2'/%3E%3Ccircle cx='146' cy='28' r='2'/%3E%3Ccircle cx='214' cy='62' r='2'/%3E%3Ccircle cx='34' cy='164' r='2'/%3E%3Ccircle cx='98' cy='132' r='2'/%3E%3Ccircle cx='162' cy='158' r='2'/%3E%3Ccircle cx='278' cy='42' r='2'/%3E%3Ccircle cx='330' cy='74' r='2'/%3E%3Ccircle cx='300' cy='194' r='2'/%3E%3Ccircle cx='244' cy='162' r='2'/%3E%3Ccircle cx='134' cy='196' r='2'/%3E%3Ccircle cx='188' cy='174' r='2'/%3E%3C/g%3E%3C/svg%3E"); }
  html[data-world='aurora-circuit'] .world-base { background: radial-gradient(ellipse at 24% 20%, color-mix(in srgb, var(--world-accent) 11%, transparent), transparent 38%), radial-gradient(ellipse at 82% 76%, color-mix(in srgb, var(--world-accent-secondary) 10%, transparent), transparent 44%), linear-gradient(145deg, var(--world-deep), color-mix(in srgb, var(--world-background) 78%, var(--world-deep))); animation: none; }
  html[data-world='aurora-circuit'] .world-silhouette { inset: 0; opacity: .56; background: color-mix(in srgb, var(--world-accent) 42%, transparent); -webkit-mask-image: var(--aurora-circuit-mask); mask-image: var(--aurora-circuit-mask); -webkit-mask-size: 360px 240px; mask-size: 360px 240px; -webkit-mask-repeat: repeat; mask-repeat: repeat; animation: none; }
  html[data-world='aurora-circuit'] .world-horizon { inset: 0; opacity: .82; background: linear-gradient(110deg, transparent 6%, transparent 39%, color-mix(in srgb, var(--world-accent) 28%, transparent) 45%, color-mix(in srgb, var(--world-accent) 80%, #fff) 50%, color-mix(in srgb, var(--world-accent-secondary) 30%, transparent) 55%, transparent 62%, transparent 100%) 0 0 / 300% 100%; -webkit-mask-image: var(--aurora-circuit-mask); mask-image: var(--aurora-circuit-mask); -webkit-mask-size: 360px 240px; mask-size: 360px 240px; -webkit-mask-repeat: repeat; mask-repeat: repeat; filter: drop-shadow(0 0 4px color-mix(in srgb, var(--world-accent) 54%, transparent)); animation: world-circuit-current 24s linear infinite alternate; }
  html[data-world='aurora-circuit'] .world-orbits { display: none; }
  html[data-world='aurora-circuit'] .world-particles { display: none; }
  html[data-world='aurora-circuit'] .world-atmosphere[data-event='aurora-surge'] .world-rare { inset: 0; background: linear-gradient(110deg, transparent 25%, color-mix(in srgb, var(--world-accent) 56%, #fff) 50%, transparent 75%) 0 0 / 300% 100%; -webkit-mask-image: var(--aurora-circuit-mask); mask-image: var(--aurora-circuit-mask); -webkit-mask-size: 360px 240px; mask-size: 360px 240px; -webkit-mask-repeat: repeat; mask-repeat: repeat; filter: drop-shadow(0 0 9px var(--world-accent)); animation: world-circuit-current 7s ease-in-out both; }
  html[data-world='aurora-circuit'] :is(.panel, .topbar, .sidebar, .mobile-nav-bar) { transition: background-color .45s ease, border-color .45s ease, box-shadow .45s ease, transform .35s ease; }
  html[data-world='aurora-circuit'] .nav-item.active { background: linear-gradient(105deg, color-mix(in srgb, var(--world-accent) 23%, transparent), color-mix(in srgb, var(--world-accent-secondary) 18%, transparent)); box-shadow: 0 0 22px color-mix(in srgb, var(--world-accent) 22%, transparent), inset 3px 0 var(--world-accent); }
  html[data-world='aurora-circuit'] .nav-item.active::after { content: ''; position: absolute; right: 10px; width: 6px; height: 6px; border-radius: 50%; background: var(--world-accent); box-shadow: 0 0 12px var(--world-accent); animation: world-node-pulse 2.4s ease-in-out infinite; }
  html[data-world][data-mode='light'] .world-atmosphere { opacity: .54; }
  html[data-world-performance='lite'] .world-atmosphere { opacity: .5; }
  html[data-world-performance='lite'] .world-atmosphere :is(.world-particles-near, .world-rare, .world-orbits > b) { display: none; }
  @media (max-width: 700px) {
    html[data-world] .world-atmosphere { inset: 0; }
    .world-particles-near { display: none; }
    .world-silhouette { opacity: .1 !important; }
  }

  @media (prefers-reduced-motion: reduce) {
    /* Keep the scene, palette and texture; remove only movement. This rule is
       deliberately scoped to the OS preference and never treats the normal
       no-preference state as reduced motion. */
    html[data-world][data-theme][data-mode] .world-atmosphere,
    html[data-world][data-theme][data-mode] .world-atmosphere *,
    html[data-world][data-theme][data-mode] .world-atmosphere *::before,
    html[data-world][data-theme][data-mode] .world-atmosphere *::after {
      animation: none !important;
      transition: none !important;
    }
  }

  /* Settings previews have their own palette scope and never inherit live
     status styling. Both modes are always visible before selecting a world. */
  .world-studio .panel-head h3 { margin-bottom: 6px; }
  .world-appearance-controls { display: grid; grid-template-columns: minmax(280px, 1fr) auto; align-items: center; gap: 14px; margin-bottom: 20px; }
  .world-segmented { display: grid; grid-template-columns: repeat(3, 1fr); padding: 4px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
  .world-segmented button { min-height: 42px; padding: 7px 12px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); font: 600 13px var(--font); cursor: pointer; }
  .world-segmented button[aria-pressed='true'] { color: var(--text); background: var(--panel); box-shadow: 0 3px 12px -8px rgba(0,0,0,.65), inset 0 0 0 1px var(--border); }
  .world-motion-controls { display: flex; flex-wrap: wrap; gap: 8px; }
  .world-toggle { display: flex; align-items: center; gap: 10px; min-height: 42px; padding: 7px 10px 7px 13px; border: 1px solid var(--border); border-radius: 14px; background: var(--panel); color: var(--text); font: 600 12px var(--font); cursor: pointer; }
  .world-toggle i { position: relative; width: 34px; height: 20px; border-radius: 99px; background: var(--border); transition: background .2s ease; }
  .world-toggle i::after { content: ''; position: absolute; width: 14px; height: 14px; left: 3px; top: 3px; border-radius: 50%; background: var(--panel); box-shadow: 0 1px 5px rgba(0,0,0,.35); transition: transform .2s ease; }
  .world-toggle[aria-checked='true'] i { background: var(--accent); }
  .world-toggle[aria-checked='true'] i::after { transform: translateX(14px); }
  .settings-motion-group { display: grid; gap: 8px; }
  .settings-motion-label { font: 600 13px var(--font); color: var(--muted); }
  #themes-view .world-motion-controls { justify-content: flex-start; }
  #themes-view .world-motion-help { display: block; font-size: 12px; line-height: 1.5; color: var(--muted); }
  #themes-view .theme-sound-settings .panel-body { gap: 10px; }
  #themes-view .theme-sound-settings output { float: right; color: var(--accent-ink); font-weight: 700; }
  #themes-view .theme-sound-settings input[type="range"] { width: 100%; accent-color: var(--accent); }
  #themes-view .settings-sound-help { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
  .world-choice:hover .world-selector-icon { animation: var(--world-motion) .7s ease-in-out 1; }
  .world-preview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  .world-choice { display: block; min-width: 0; text-align: left; padding: 0; overflow: hidden; border: 1px solid var(--world-border); border-radius: var(--world-radius); background: var(--world-surface); color: var(--world-text); font: inherit; cursor: pointer; box-shadow: var(--world-shadow); animation: world-gallery-enter .7s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--world-index) * 70ms); transform-origin: 50% 80%; }
  .world-choice:hover, .world-choice:focus-visible, .world-choice[aria-pressed='true'] { outline: 2px solid var(--world-accent); outline-offset: 3px; }
  .world-choice.is-offscreen *, .world-choice.is-offscreen *::before, .world-choice.is-offscreen *::after { animation-play-state: paused !important; }
  .world-choice-label { display: flex; align-items: center; gap: 9px; padding: 13px; font-size: 14px; }
  .world-edition { font: 10px 'Space Mono', monospace; color: var(--world-secondary); letter-spacing: .06em; }
  .world-selector-icon { display: grid; place-items: center; width: 28px; height: 28px; flex: none; border: 1px solid var(--world-border); border-radius: var(--world-icon); color: var(--world-accent); background: color-mix(in srgb, var(--world-accent) 10%, transparent); transition: transform .25s ease, box-shadow .25s ease; }
  .world-choice-indicator { position: relative; display: grid; place-items: center; width: 30px; height: 30px; margin-left: auto; color: var(--world-accent); opacity: .4; }
  .world-choice-indicator i { position: absolute; inset: 1px; border: 1px solid currentColor; border-radius: var(--world-icon); opacity: .45; }
  .world-choice-indicator b { opacity: 0; font-size: 12px; }
  .world-choice[aria-pressed='true'] .world-choice-indicator { opacity: 1; }
  .world-choice[aria-pressed='true'] .world-choice-indicator b { opacity: 1; }
  .world-choice[aria-pressed='true'] .world-choice-indicator i { animation: var(--world-motion) 1.6s ease-in-out infinite; box-shadow: 0 0 12px var(--world-glow); }
  .world-preview { display: block; min-width: 0; min-height: 210px; padding: 14px 16px 20px; background: var(--world-background); color: var(--world-text); position: relative; isolation: isolate; overflow: hidden; }
  .world-preview::before { content: ''; position: absolute; inset: 0; background: var(--world-accent-secondary); mask: var(--world-motif) center / 180px 120px repeat; opacity: .12; z-index: -1; }
  .world-portal-art { position: absolute; inset: 0; z-index: -1; background: radial-gradient(circle at 70% 22%, var(--world-glow), transparent 45%), var(--world-accent-secondary); mask: linear-gradient(#0000,#000), var(--world-motif) center / 90% 80% no-repeat; opacity: .22; transform: translate3d(var(--portal-x, 0), var(--portal-y, 0), 0); transition: transform .15s ease-out; animation: var(--world-motion) var(--world-duration) ease-in-out infinite; }
  .world-sample-mode { display: block; text-transform: uppercase; font: 9px system-ui, sans-serif; letter-spacing: .13em; margin-bottom: 13px; color: var(--world-secondary); }
  .world-sample-card { display: block; position: relative; padding: 15px 12px 12px; border: 1px solid var(--world-border); border-radius: var(--world-radius); background: var(--world-surface); box-shadow: var(--world-shadow); transform: translate3d(var(--portal-fx, 0), var(--portal-fy, 0), 0); transition: transform .15s ease-out; }
  .world-sample-heading { display: flex; gap: 6px; align-items: center; padding-bottom: 9px; border-bottom: 1px solid var(--world-border); font: 11px var(--world-font); }
  .world-sample-icon { display: inline-flex; flex: none; padding: 4px; border: 1px solid var(--world-border); border-radius: var(--world-icon); color: var(--world-accent); }
  .world-sample-icon svg { width: 13px; height: 13px; }
  .world-sample-lines { display: block; margin: 12px 0; height: 17px; width: 80%; background: linear-gradient(var(--world-border),var(--world-border)) top left / 100% 2px no-repeat, linear-gradient(var(--world-border),var(--world-border)) bottom left / 60% 2px no-repeat; opacity: .6; }
  .world-sample-button { display: flex; justify-content: space-between; gap: 3px; padding: 6px 8px; border-radius: var(--world-control); background: var(--world-accent); color: var(--world-on-accent); font: 10px system-ui, sans-serif; }
  .world-choice-copy { display: grid; gap: 6px; min-height: 62px; padding: 14px; font-size: 12px; line-height: 1.5; }
  .world-choice-copy > span { font-weight: 600; color: var(--world-secondary); }
  .world-mobile-preview { display: none; margin: 0 14px 14px; min-height: 42px; align-items: center; justify-content: center; border: 1px solid var(--world-accent); border-radius: var(--world-control); color: var(--world-accent); font: 700 12px var(--font); letter-spacing: .06em; text-transform: uppercase; }
  .world-studio-help { font-size: 12px; line-height: 1.6; color: var(--muted); margin: 20px 0 0; }
  .world-preview-banner { position: sticky; top: 10px; z-index: 12; padding: 14px; border: 1px solid var(--accent); border-radius: 10px; background: color-mix(in srgb, var(--panel) 92%, transparent); box-shadow: 0 12px 30px -20px rgba(0,0,0,.8); backdrop-filter: blur(10px); margin-bottom: 18px; }
  .world-preview-banner p { margin: 0 0 10px; font-size: 14px; }
  .world-preview-banner > div { display: flex; flex-wrap: wrap; gap: 8px; }
  .world-preview-banner button { min-height: 44px; }
  @media (hover: hover) and (pointer: fine) {
    .world-choice:hover .world-portal-art { animation-duration: calc(var(--world-duration) * .35); opacity: .32; }
    .world-choice:hover .world-selector-icon { transform: translateY(-1px) scale(1.06); box-shadow: 0 0 14px var(--world-glow); }
  }
  @media (max-width: 1050px) { .world-preview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .world-appearance-controls { grid-template-columns: 1fr; } }
  @media (max-width: 700px) { .world-studio > .panel-body { padding: 14px; } .world-preview-grid { grid-template-columns: 1fr; gap: 18px; } .world-choice-label { font-size: 15px; } .world-preview { min-height: 230px; } .world-mobile-preview { display: flex; } .world-motion-controls { display: grid; grid-template-columns: 1fr; } .world-toggle { justify-content: space-between; } }
}

/* Aurora Circuit card geometry and edge motion live in shared-card-theme.css.
   Keep this transient pulse hook for the theme transition, but do not layer
   the former rounded/conic card treatment back over the engineered panels. */
html[data-theme='aurora-circuit'] .aurora-pulse {
  filter: brightness(1.16) drop-shadow(0 0 30px color-mix(in srgb, var(--accent) 68%, transparent)) !important;
  transform: translateY(-3px) !important;
}

/* Mobile tab-sheet sizing: give the list a definite scroll box and prevent
   long labels from forcing the second column outside the sheet. */
@media (max-width: 700px) {
  #mobile-nav-sheet {
    box-sizing: border-box;
    width: calc(100% - 42px);
    max-width: calc(100% - 42px);
    height: min(72dvh, calc(100dvh - 70px - env(safe-area-inset-bottom)));
    max-height: none;
    overflow: hidden;
  }
  #mobile-nav-sheet .mobile-nav-sheet-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    flex: 1 1 0;
    height: 0;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }
  #mobile-nav-sheet .mobile-nav-sheet-item {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    padding: 7px 8px;
    gap: 5px;
    font-size: 13px;
    line-height: 1.25;
    overflow-wrap: break-word;
    word-break: normal;
    white-space: normal;
  }
  #mobile-nav-sheet .mobile-nav-sheet-item .world-mobile-icon {
    width: 26px;
    height: 26px;
    margin-right: 2px;
  }
  #mobile-nav-sheet .mobile-nav-sheet-head,
  #mobile-nav-sheet .mobile-nav-sheet-reorder { flex: 0 0 auto; }
  #mobile-nav-sheet .mobile-nav-sheet-head-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-width: 0;
  }
  #mobile-nav-sheet .mobile-nav-sheet-reorder {
    position: relative;
    z-index: 1;
    background: var(--world-deep, var(--panel));
  }
}

.world-shift { position: fixed; inset: 0; z-index: 9999; pointer-events: none; opacity: 0; background: radial-gradient(circle at 50% 35%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 58%); transition: opacity .36s ease; }
.world-shift.is-active { opacity: 1; animation: world-shift-wash .78s ease both; }

@keyframes world-drift { from { transform: translate3d(-1%, -1%, 0); } to { transform: translate3d(3%, 4%, 0); } }
@keyframes world-gallery-enter { from { opacity: 0; transform: translateY(16px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes world-shift-wash { 0% { opacity: 0; transform: scale(.75); } 40% { opacity: .82; } 100% { opacity: 0; transform: scale(1.15); } }
@keyframes world-page-arrive { from { transform: translateY(2px); } to { transform: translateY(0); } }
@keyframes world-scan { 0%,100% { transform: translateX(-3%); opacity: .1; } 50% { transform: translateX(3%); opacity: .2; } }
@keyframes world-engage { 0%,88%,100% { opacity: .12; transform: translateX(0); } 90%,96% { opacity: .25; transform: translateX(1px); } }
@keyframes world-orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes world-reveal { 0%,100% { opacity: .08; } 50% { opacity: .26; } }
@keyframes world-unfurl { 0%,100% { transform: rotate(-3deg) scale(.96); } 50% { transform: rotate(2deg) scale(1.04); } }
@keyframes world-constellation { 0%,100% { transform: rotate(-3deg); opacity: .12; } 50% { transform: rotate(3deg); opacity: .25; } }
@keyframes world-underline { from { background-position: 180% 0; } to { background-position: -20% 0; } }
@keyframes world-trace { 0%,100% { transform: scaleX(.4); opacity: .3; } 50% { transform: scaleX(1); opacity: .8; } }
@keyframes world-breathe { from { transform: translate3d(-.5%, 0, 0) scale(1); } to { transform: translate3d(.8%, -.5%, 0) scale(1.012); } }
@keyframes world-far-drift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(2%, -3%, 0); } }
@keyframes world-mid-drift { from { transform: translate3d(-1%, 1%, 0); } to { transform: translate3d(3%, -4%, 0); } }
@keyframes world-near-drift { from { transform: translate3d(0, 2%, 0); } to { transform: translate3d(-3%, -5%, 0); } }
@keyframes world-orbit-reverse { from { transform: rotate(360deg); } to { transform: rotate(0deg); } }
@keyframes world-neon-sky { 0% { background-position: 0% 20%; } 50% { background-position: 70% 55%; } 100% { background-position: 100% 10%; } }
@keyframes world-grid-drive { from { background-position: 0 0, 0 0; } to { background-position: 0 76px, 54px 0; } }
@keyframes world-light-streak { 0%,82%,100% { transform: translateX(-20%); opacity: 0; } 87% { opacity: .14; } 94% { transform: translateX(18%); opacity: 0; } }
@keyframes world-digital-sunrise { 0%,100% { opacity: 0; transform: scale(.82); } 35%,62% { opacity: .6; transform: scale(1.08); } }
@keyframes world-afterfall-shift { from { background-position: 0 0; } to { background-position: 4% 2%; } }
@keyframes world-fog-bank { from { transform: translate3d(-7%, 0, 0) scale(1.04); } to { transform: translate3d(7%, -1%, 0) scale(1.08); } }
@keyframes world-dust-sideways { from { transform: translate3d(-3%, 0, 0); } to { transform: translate3d(7%, 2%, 0); } }
@keyframes world-dust-sideways-reverse { from { transform: translate3d(5%, -1%, 0); } to { transform: translate3d(-6%, 1%, 0); } }
@keyframes world-industrial-scan { 0%,76% { transform: translateX(-120%); opacity: 0; } 82% { opacity: .55; } 92%,100% { transform: translateX(120%); opacity: 0; } }
@keyframes world-distant-flicker { 0%,29%,34%,39%,46%,100% { opacity: 0; } 30%,35%,40%,44% { opacity: .62; } }
@keyframes world-lunar-light { from { background-position: 0 0; } to { background-position: 5% 3%; } }
@keyframes world-holographic-sweep { 0%,70% { transform: translate3d(-24%, 8%, 0); opacity: 0; } 80% { opacity: .24; } 94%,100% { transform: translate3d(24%, -8%, 0); opacity: 0; } }
@keyframes world-node-travel { from { background-position: 0 0; } to { background-position: 227px -193px; } }
@keyframes world-network-sync { 0%,100% { opacity: 0; transform: scale(.98); } 28%,70% { opacity: .48; transform: scale(1); } }
@keyframes world-winter-sky { from { background-position: 0 0; } to { background-position: 0 4%; } }
@keyframes world-winter-fog { from { transform: translate3d(-8%, 0, 0); } to { transform: translate3d(8%, 1%, 0); } }
@keyframes world-snow-far { from { background-position: 0 0; } to { background-position: 18px 97px; } }
@keyframes world-snow-mid { from { background-position: 0 0; } to { background-position: -28px 149px; } }
@keyframes world-snow-near { from { background-position: 0 0, 0 0; } to { background-position: 42px 257px, -18px 313px; } }
@keyframes world-winter-ring { 0%,100% { opacity: 0; scale: .82; } 38%,66% { opacity: .34; scale: 1.05; } }
@keyframes world-greenhouse-light { from { background-position: 0 0; } to { background-position: 5% 2%; } }
@keyframes world-leaf-shadow { from { transform: translate3d(-2%, 0, 0) rotate(-1deg); } to { transform: translate3d(3%, -1%, 0) rotate(1deg); } }
@keyframes world-vine-grow { from { transform: scaleY(.35); opacity: .35; } to { transform: scaleY(1); opacity: .9; } }
@keyframes world-pollen-drift { from { background-position: 0 0; } to { background-position: 76px -139px; } }
@keyframes world-seed-drift { from { transform: translate3d(-2%, 2%, 0) rotate(0deg); } to { transform: translate3d(4%, -4%, 0) rotate(5deg); } }
@keyframes world-rare-leaf { 0%,100% { opacity: 0; transform: scale(.12) rotate(-18deg); } 42%,72% { opacity: .42; transform: scale(1) rotate(2deg); } }
@keyframes world-cosmic-shift { from { background-position: 0 0; } to { background-position: 6% 3%; } }
@keyframes world-nebula-drift { from { transform: translate3d(-4%, 1%, 0) scale(1.02); } to { transform: translate3d(5%, -2%, 0) scale(1.07); } }
@keyframes world-map-drift { from { transform: rotate(0deg) translate3d(-1%,0,0); } to { transform: rotate(7deg) translate3d(1%,-1%,0); } }
@keyframes world-star-far { from { background-position: 0 0; } to { background-position: 12px -83px; } }
@keyframes world-star-mid { from { background-position: 0 0, 0 0; } to { background-position: -32px -177px, 24px -211px; } }
@keyframes world-star-near { from { transform: translate3d(0, 2%, 0); } to { transform: translate3d(-2%, -3%, 0); } }
@keyframes world-constellation-form { 0%,100% { opacity: 0; transform: scale(.98); } 26% { opacity: .18; } 48%,76% { opacity: .46; transform: scale(1); } }
@keyframes world-falling-star { 0% { opacity: 0; transform: translate3d(0,0,0) rotate(-28deg); } 18% { opacity: .55; } 100% { opacity: 0; transform: translate3d(38vw,23vh,0) rotate(-28deg); } }
@keyframes world-aurora { from { background-position: 0% 40%; } to { background-position: 100% 60%; } }
@keyframes world-aurora-horizon { from { transform: translate3d(-5%, 2%, 0) scale(1); } to { transform: translate3d(6%, -3%, 0) scale(1.08); } }
@keyframes world-circuit-drift { from { transform: translate3d(-2%, 0, 0); } to { transform: translate3d(3%, -2%, 0); } }
@keyframes world-orbit-pulse { 0%,100% { opacity: .12; transform: rotate(-8deg) scale(.96); } 50% { opacity: .28; transform: rotate(5deg) scale(1.04); } }
@keyframes world-aurora-particles { from { background-position: 0 0, 0 0; } to { background-position: 72px -130px, -88px 160px; } }
@keyframes world-circuit-current { from { background-position: 0 0; } to { background-position: 100% 0; } }
@keyframes world-card-travel { from { background-position: 180% 0; opacity: .22; } to { background-position: -40% 0; opacity: .62; } }
@keyframes world-card-shimmer { from { transform: translateX(0); opacity: .32; } to { transform: translateX(300%); opacity: .32; } }
@keyframes world-card-surface-flow { from { background-position: 0% 0; } to { background-position: 100% 0; } }
@keyframes world-card-breathe { 0%,100% { box-shadow: var(--world-shadow); } 50% { box-shadow: 0 16px 36px -18px var(--world-glow), inset 0 1px 0 var(--world-highlight); } }
@keyframes world-node-pulse { 0%,100% { opacity: .45; scale: .8; } 50% { opacity: 1; scale: 1.2; } }
@keyframes world-aurora-surge { 0%,100% { opacity: 0; transform: scale(.88); } 35%,68% { opacity: .5; transform: scale(1.06); } }

/* Independent channels, including legacy worlds. Off retains attractive static
   linework. Reduced motion always wins; functional progress remains readable. */
@layer world-motion-accessibility {
html[data-background-animations='off'] :is(.world-atmosphere, .workspace-animation-decor, .ambient),
html[data-background-animations='off'] :is(.world-atmosphere, .workspace-animation-decor, .ambient) *,
html[data-background-animations='off'] :is(.world-atmosphere, .workspace-animation-decor, .ambient)::before,
html[data-background-animations='off'] :is(.world-atmosphere, .workspace-animation-decor, .ambient)::after { animation: none !important; transition: none !important; }
html[data-decorative-animations='off'] :is(.view, .sidebar, .topbar, #mobile-nav-sheet, .mobile-nav-bar) *,
html[data-decorative-animations='off'] :is(.view, .sidebar, .topbar, #mobile-nav-sheet, .mobile-nav-bar) *::before,
html[data-decorative-animations='off'] :is(.view, .sidebar, .topbar, #mobile-nav-sheet, .mobile-nav-bar) *::after { animation: none !important; transition: none !important; }
html[data-decorative-animations='off'] .panel:not(.card-dragging):hover { transform: none !important; }
html[data-decorative-animations='off'] .view { animation: none !important; }
html[data-animations='off']:not([data-cinematic]) .world-atmosphere *,
html[data-animations='off'] .world-studio *,
html[data-animations='off'] .panel-head::before, html[data-animations='off'] .panel-head::after { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  html[data-theme] *, html[data-theme] *::before, html[data-theme] *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  html[data-world] .panel:not(.card-dragging):hover { transform: none !important; }
}
}
@media print { .world-atmosphere, .world-studio, .world-preview-banner { display: none !important; } }

@media (max-width: 700px) {
  body.mobile-nav-open {
    overflow: hidden;
    overscroll-behavior: none;
    touch-action: none;
  }
  body.mobile-nav-open #mobile-nav-sheet {
    touch-action: pan-y;
  }
}

/* Final Today-card cascade: the mobile view rule above intentionally makes
   views block-level, but the compact utility cards still need a two-column
   layout on the Today screen. Keep approval on the same surface and header
   inset as its neighboring cards. */
#dashboard-view:not(.card-order-editing-view):not([hidden]) {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 12px;
}
#dashboard-view:not(.card-order-editing-view):not([hidden]) > * { grid-column: 1 / -1; }
#dashboard-view:not(.card-order-editing-view):not([hidden]) > :is(.personal-todo-card, .assignments-today-card),
#dashboard-view:not(.card-order-editing-view):not([hidden]) > .today-section:has(> .assignments-today-card) {
  grid-column: 1 / -1;
  min-width: 0;
}
#dashboard-view:not(.card-order-editing-view):not([hidden]) .approval-box {
  padding: 0 !important;
  overflow: hidden;
  background: var(--studio-card-surface, var(--panel)) !important;
}
#dashboard-view:not(.card-order-editing-view):not([hidden]) .approval-box > .panel-head {
  width: 100%;
  box-sizing: border-box;
  min-height: 0;
  padding: 9px 10px;
  background: var(--studio-card-surface, var(--panel)) !important;
}
#dashboard-view:not(.card-order-editing-view):not([hidden]) .approval-box > .panel-body {
  padding: 12px 10px;
  background: var(--studio-card-surface, var(--panel)) !important;
}
#dashboard-view:not(.card-order-editing-view):not([hidden]) .personal-todo-card .panel-head {
  align-items: center;
}
#dashboard-view:not(.card-order-editing-view):not([hidden]) .personal-todo-add-form {
  width: min(100%, 270px);
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
}
#dashboard-view:not(.card-order-editing-view):not([hidden]) .personal-todo-add-form .button {
  min-height: 32px;
  padding: 5px 10px;
  font-size: 12px;
}

/* Theme badges carry their own small silhouette, independent of the cards.
   Aurora Circuit keeps its existing engineered badge treatment unchanged. */
@media screen {
  html[data-theme]:not([data-theme='aurora-circuit']) :is(.badge, .status-badge, .room-list-count, .logged-by-badge) {
    border-radius: var(--theme-badge-radius, 999px);
    clip-path: var(--theme-badge-clip, none);
  }

  html[data-theme='neon-afterglow'] { --theme-badge-radius: 3px; --theme-badge-clip: polygon(0 0, 92% 0, 100% 26%, 100% 100%, 8% 100%, 0 74%); }
  html[data-theme='afterfall'] { --theme-badge-radius: 2px; --theme-badge-clip: polygon(5% 0, 100% 0, 96% 39%, 100% 100%, 6% 100%, 0 65%); }
  html[data-theme='lunar-cyborg'] { --theme-badge-radius: 50% 10px 50% 10px; --theme-badge-clip: none; }
  html[data-theme='botanical-alchemy'] { --theme-badge-radius: 65% 9% 65% 9%; --theme-badge-clip: none; }
  html[data-theme='starfall-archive'] { --theme-badge-radius: 2px; --theme-badge-clip: polygon(0 18%, 9% 0, 91% 0, 100% 18%, 100% 82%, 91% 100%, 9% 100%, 0 82%); }

  html[data-theme='confetti'] { --theme-badge-radius: 42% 58% 39% 61% / 59% 38% 62% 41%; --theme-badge-clip: none; }
  html[data-theme='poolparty'] { --theme-badge-radius: 34% 66% 31% 69% / 52% 43% 57% 48%; --theme-badge-clip: none; }
  html[data-theme='pumpkinpatch'] { --theme-badge-radius: 38% 38% 45% 45% / 60% 60% 40% 40%; --theme-badge-clip: none; }

  html[data-theme='dystopian'] { --theme-badge-radius: 0; --theme-badge-clip: polygon(0 0, 100% 0, 94% 100%, 6% 100%); }
  html[data-theme='postapocalyptic'] { --theme-badge-radius: 2px; --theme-badge-clip: polygon(8% 0, 100% 0, 96% 75%, 86% 100%, 0 100%, 4% 25%); }
  html[data-theme='spookyhalloween'] { --theme-badge-radius: 2px; --theme-badge-clip: polygon(18% 0, 82% 0, 100% 18%, 89% 100%, 11% 100%, 0 18%); }
  html[data-theme='fairytale'] { --theme-badge-radius: 50% 50% 18% 18%; --theme-badge-clip: none; }
  html[data-theme='darkfairytale'] { --theme-badge-radius: 3px; --theme-badge-clip: polygon(12% 0, 88% 0, 100% 22%, 86% 100%, 14% 100%, 0 22%); }

  html[data-theme='romance'] { --theme-badge-radius: 48% 48% 38% 38% / 65% 65% 35% 35%; --theme-badge-clip: none; }
  html[data-theme='booklover'] { --theme-badge-radius: 2px; --theme-badge-clip: polygon(0 0, 100% 0, 100% 100%, 56% 88%, 50% 100%, 44% 88%, 0 100%); }
  html[data-theme='petlover'] { --theme-badge-radius: 42% 42% 52% 52% / 66% 66% 34% 34%; --theme-badge-clip: none; }
  html[data-theme='autumn'] { --theme-badge-radius: 76% 14% 76% 14%; --theme-badge-clip: none; }

  html[data-theme='coastal'] { --theme-badge-radius: 56% 18% 56% 18%; --theme-badge-clip: none; }
  html[data-theme='rosewood'] { --theme-badge-radius: 2px; --theme-badge-clip: polygon(0 0, 91% 0, 100% 50%, 91% 100%, 0 100%, 7% 50%); }
  html[data-theme='matcha'] { --theme-badge-radius: 12% 68% 12% 68%; --theme-badge-clip: none; }
  html[data-theme='library'] { --theme-badge-radius: 5px 5px 1px 1px; --theme-badge-clip: none; }
  html[data-theme='plants'] { --theme-badge-radius: 72% 8% 72% 8%; --theme-badge-clip: none; }
  html[data-theme='rain'] { --theme-badge-radius: 62% 62% 62% 12%; --theme-badge-clip: none; }
  html[data-theme='cyberpunk'] { --theme-badge-radius: 2px; --theme-badge-clip: polygon(10% 0, 90% 0, 100% 50%, 90% 100%, 10% 100%, 0 50%); }
  html[data-theme='anime'] { --theme-badge-radius: 8px 20px 8px 20px; --theme-badge-clip: none; }
  html[data-theme='scifi'] { --theme-badge-radius: 999px 4px 999px 4px; --theme-badge-clip: none; }
  html[data-theme='custom'] { --theme-badge-radius: 10px 2px 10px 2px; --theme-badge-clip: none; }
}
@media (max-width: 700px) {
  #dashboard-view:not(.card-order-editing-view):not([hidden]) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding-inline: 10px;
  }
  #dashboard-view:not(.card-order-editing-view):not([hidden]) .panel-head h3 { font-size: 13px; }

  /* The tab picker is a fixed bottom sheet. Let its tab list consume the
     available height and scroll independently when there are many tabs. */
  #mobile-nav-sheet {
    max-height: calc(100dvh - 70px - env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }
  #mobile-nav-sheet .mobile-nav-sheet-list {
    min-height: 0;
    overflow: visible;
  }
}
@media (prefers-reduced-motion: reduce) {
}
@media screen {
  @media (max-width: 1050px) { }
  @media (max-width: 700px) { }
  @media (prefers-reduced-motion: reduce) { }
}

/* Rocinante Command — a working ship's industrial bridge, carried by the
   actual dashboard surfaces and a deep armored viewport rather than a poster. */
@media screen {
  html[data-world='rocinante-command'][data-theme][data-mode] body,
  html[data-world='rocinante-command'][data-theme][data-mode] .workspace {
    background-image: linear-gradient(165deg, #161e22 0%, #0d1316 58%, #080d10 100%) !important;
  }
  html[data-world='rocinante-command'][data-mode='light'][data-theme] body,
  html[data-world='rocinante-command'][data-mode='light'][data-theme] .workspace {
    background-image: linear-gradient(165deg, #c6ceca 0%, #aeb9b8 58%, #859294 100%) !important;
  }
  html[data-world='rocinante-command'] .world-atmosphere { opacity: .78; }
  html[data-world='rocinante-command'][data-mode='light'] .world-atmosphere { opacity: .38; }
  html[data-world='rocinante-command'] .world-base {
    background: radial-gradient(ellipse at 52% 24%, #18242a 0, #0b1115 48%, #070b0d 100%);
  }
  html[data-world='rocinante-command'] .world-horizon {
    inset: 5% 3% 6%; opacity: .32;
    background:
      radial-gradient(ellipse at 50% 55%, transparent 0 27%, #03060988 64%, #020405ee 100%),
      radial-gradient(ellipse at 52% 49%, #75828a20 0 1%, transparent 47%),
      radial-gradient(circle at 14% 23%, #e6e8df 0 1px, transparent 1.7px),
      radial-gradient(circle at 28% 68%, #a8e8ed 0 1px, transparent 1.8px),
      radial-gradient(circle at 41% 30%, #f2d28f 0 1px, transparent 1.7px),
      radial-gradient(circle at 69% 19%, #dce9ea 0 1px, transparent 1.8px),
      radial-gradient(circle at 82% 62%, #b9d8da 0 1px, transparent 1.8px),
      radial-gradient(circle at 92% 34%, #f2d28f 0 1px, transparent 1.7px);
    background-size: auto, auto, 347px 281px, 421px 337px, 509px 389px, 367px 313px, 463px 359px, 557px 431px;
    animation: roc-star-drift 110s linear infinite;
  }
  html[data-world='rocinante-command'] .world-horizon::after {
    content: ''; position: absolute; left: 50%; top: 46%; width: min(410px, 58vw); height: 50px;
    transform: translate(-50%, -50%); clip-path: polygon(0 53%, 32% 48%, 41% 18%, 61% 18%, 69% 45%, 100% 50%, 72% 57%, 63% 88%, 39% 88%, 31% 59%);
    background: linear-gradient(180deg, #aeb8b526, #53616618 45%, #151d20bb 49%, #77838824 54%, #303a3d33);
    filter: drop-shadow(0 0 8px #68c5cf28); animation: roc-ship-drift 46s ease-in-out infinite alternate;
  }
  html[data-world='rocinante-command'] .world-silhouette {
    inset: 3% 1% 0; opacity: .32; border: 1px solid #bec9c522; border-bottom: 0;
    border-radius: 10px 10px 0 0; background:
      linear-gradient(180deg, #10181c22 0 46%, #080c0dcc 88%),
      repeating-linear-gradient(90deg, transparent 0 13%, #a7b6b50b 13.1% 13.25%, transparent 13.4% 27%);
    box-shadow: inset 0 0 52px #02050688, 0 0 24px #0008;
  }
  html[data-world='rocinante-command'] .world-particles { opacity: .16; background-image: radial-gradient(circle, #e4e9e7 0 1px, transparent 1.5px); background-size: 173px 157px; animation: roc-star-twinkle 7s ease-in-out infinite alternate; }
  html[data-world='rocinante-command'][data-roc-atmosphere='full-command'] .world-atmosphere { opacity: .78; }
  html[data-world='rocinante-command'][data-roc-atmosphere='full-command'] .world-horizon::after { animation-duration: 46s; opacity: .82; }
  html[data-world='rocinante-command'][data-roc-atmosphere='cruising'] .world-atmosphere { opacity: .5; }
  html[data-world='rocinante-command'][data-roc-atmosphere='cruising'] .world-horizon::after { animation-duration: 92s; opacity: .68; }
  html[data-world='rocinante-command'][data-roc-atmosphere='docked'] .world-atmosphere { opacity: .2; }
  html[data-world='rocinante-command'][data-roc-atmosphere='docked'] .world-horizon,
  html[data-world='rocinante-command'][data-roc-atmosphere='docked'] .world-horizon::after,
  html[data-world='rocinante-command'][data-roc-atmosphere='docked'] .world-particles { animation: none !important; }
  html[data-world='rocinante-command'][data-mode='light'] .world-horizon { opacity: .12; }
  html[data-world='rocinante-command'][data-mode='light'] .world-silhouette { opacity: .12; }

  html[data-world='rocinante-command'][data-theme][data-mode] :is(.panel, .room-card, .metric, .employee-bubble):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging):not(:where(.print-preview-sheet *, #print-run-root *)) {
    box-shadow: var(--world-shadow), inset 3px 0 0 color-mix(in srgb, var(--world-accent-secondary) 43%, transparent), inset 0 1px 0 #ffffff12 !important;
  }
  html[data-world='rocinante-command'] .panel > .panel-head {
    background: linear-gradient(180deg, color-mix(in srgb, var(--world-elevated) 88%, #090d0f), var(--world-surface)) !important;
    border-top: 1px solid color-mix(in srgb, var(--world-accent) 42%, transparent) !important;
  }
  html[data-world='rocinante-command'] .panel > .panel-head::before {
    inset: 5px 12px 5px auto; width: 48px; opacity: .36;
    background: linear-gradient(90deg, transparent 0 18%, var(--world-accent) 18% 20%, transparent 20% 48%, var(--world-accent-secondary) 48% 51%, transparent 51% 100%) !important;
    mask: none !important; animation: roc-instrument-breathe 8s ease-in-out infinite !important;
  }
  html[data-world='rocinante-command'] .panel > .panel-head::after {
    content: ''; position: absolute; bottom: -1px; left: 10px; width: min(116px, 30%); height: 1px;
    background: linear-gradient(90deg, var(--world-accent), var(--world-accent-secondary), transparent); opacity: .78; pointer-events: none;
  }
  html[data-world='rocinante-command'] :is(.sidebar, .topbar, .mobile-nav-bar, #mobile-nav-sheet) {
    background-image: linear-gradient(180deg, color-mix(in srgb, var(--world-elevated) 45%, var(--world-deep)), var(--world-deep)) !important;
    box-shadow: inset 0 1px 0 #ffffff16, inset -1px 0 0 #ffffff0c, 0 12px 28px -24px #000 !important;
  }
  html[data-world='rocinante-command'] :is(.nav-item.active, .mobile-nav-sheet-item.active) {
    box-shadow: inset 3px 0 0 var(--world-accent), inset 0 0 18px color-mix(in srgb, var(--world-accent-secondary) 10%, transparent) !important;
  }
  html[data-world='rocinante-command'] .roc-command-console {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
    margin: 0 0 14px; padding: 8px 10px; border: 1px solid color-mix(in srgb, var(--world-border) 75%, transparent);
    border-top-color: color-mix(in srgb, var(--world-accent) 55%, var(--world-border));
    background: linear-gradient(100deg, color-mix(in srgb, var(--world-deep) 92%, #000), color-mix(in srgb, var(--world-surface) 72%, var(--world-deep)));
    color: var(--world-text); box-shadow: inset 0 1px #ffffff12, 0 6px 18px -15px #000; font: 10px/1.2 var(--font-mono, 'Space Mono', monospace); letter-spacing: .09em;
  }
  html[data-world='rocinante-command'] .roc-console-title { display: inline-flex; align-items: center; gap: 8px; color: var(--world-secondary); }
  html[data-world='rocinante-command'] .roc-console-title i { width: 7px; height: 7px; border-radius: 50%; background: var(--world-accent-secondary); box-shadow: 0 0 9px var(--world-accent-secondary); }
  html[data-world='rocinante-command'] .roc-console-levels { display: flex; flex-wrap: wrap; gap: 5px; }
  html[data-world='rocinante-command'] .roc-console-levels button {
    min-height: 34px; padding: 6px 10px; border: 1px solid color-mix(in srgb, var(--world-border) 70%, transparent); border-radius: 2px;
    background: #0b1114; color: var(--world-secondary); font: 600 10px/1.2 var(--font-sans, system-ui, sans-serif); letter-spacing: .04em; cursor: pointer;
  }
  html[data-world='rocinante-command'] .roc-console-levels button[aria-pressed='true'] { border-color: var(--world-accent); color: var(--world-accent); background: color-mix(in srgb, var(--world-accent) 10%, #0b1114); box-shadow: inset 0 0 10px color-mix(in srgb, var(--world-accent) 10%, transparent); }
  html[data-world='rocinante-command'] .roc-console-levels button:focus-visible { outline: 2px solid var(--world-accent-secondary); outline-offset: 2px; }

  .world-preview[data-world='rocinante-command'] { background: radial-gradient(ellipse at 50% 26%, #29363b, #11181c 62%, #090d10); }
  .world-preview[data-world='rocinante-command']::before { opacity: .5; mask-size: 110px 74px; }
  .world-preview[data-world='rocinante-command'] .world-portal-art {
    opacity: .55; background: radial-gradient(ellipse at 50% 36%, #647d8522, transparent 62%), radial-gradient(circle at 21% 22%, #dce4e0 0 1px, transparent 2px), radial-gradient(circle at 78% 31%, #f0b64f 0 1px, transparent 2px), radial-gradient(circle at 68% 67%, #64d4e0 0 1px, transparent 2px), linear-gradient(transparent, #071014);
    mask: none; animation: none;
  }
  .world-preview[data-world='rocinante-command'] .world-sample-card { border-radius: 2px; background: linear-gradient(180deg, #232d30, #141b1e); box-shadow: inset 3px 0 #64d4e044, inset 0 1px #ffffff20, 0 12px 20px #0008; }
  .world-preview[data-world='rocinante-command'] .world-sample-heading { color: #e8e5d9; border-color: #f0b64f72; }
  .world-preview[data-world='rocinante-command'] .world-sample-lines { background: linear-gradient(#64d4e0,#64d4e0) top left / 78% 2px no-repeat, linear-gradient(#f0b64f,#f0b64f) bottom left / 47% 2px no-repeat; opacity: .64; }
  .world-preview[data-world='rocinante-command'] .world-sample-button { border: 1px solid #f0b64f90; background: #30302b; color: #ffd27e; }

  @keyframes roc-star-drift { from { background-position: 0 0; } to { background-position: 36px -20px; } }
  @keyframes roc-ship-drift { from { margin-left: -3px; opacity: .55; } to { margin-left: 3px; opacity: .82; } }
  @keyframes roc-star-twinkle { from { opacity: .08; } to { opacity: .2; } }
  @keyframes roc-instrument-breathe { 0%,100% { opacity: .22; } 50% { opacity: .55; } }
  @media (max-width: 700px) {
    html[data-world='rocinante-command'] .roc-command-console { gap: 7px; padding: 8px; }
    html[data-world='rocinante-command'] .roc-console-levels { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    html[data-world='rocinante-command'] .roc-console-levels button { min-height: 42px; padding: 6px 4px; font-size: 9px; }
    html[data-world='rocinante-command'] .world-horizon::after { width: min(300px, 76vw); height: 38px; }
    html[data-world='rocinante-command'] .world-silhouette { inset: 0; border-radius: 0; }
  }
  @media (prefers-reduced-motion: reduce) {
    html[data-world='rocinante-command'] .world-atmosphere *, .world-preview[data-world='rocinante-command'] .world-portal-art,
    html[data-world='rocinante-command'] .panel > .panel-head::before { animation: none !important; transition: none !important; }
  }
  @media print { html[data-world='rocinante-command'] .roc-command-console { display: none !important; } }
}

/* Keep the immersive environment independent from the foreground card
   animation switch. Background motion still obeys its own preference. */
@media screen {
  .roc-ignition {
    position: fixed; inset: 0; z-index: 700; overflow: hidden; pointer-events: none;
    color: #cfdee3; font: 11px/1.5 var(--font-mono, monospace);
    animation: roc-ignition-handoff 5s linear both; contain: layout paint;
  }
  .roc-ignition-scene { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(ellipse at 50% 45%, #040c12b8 0, #071018b0 35%, #03080ee8 75%); }
  .roc-ignition-frame { position: absolute; inset: 3vh 3vw; border: 1px solid #63778065; clip-path: polygon(0 0, 22% 0, 25% 4%, 75% 4%, 78% 0, 100% 0, 100% 100%, 78% 100%, 75% 96%, 25% 96%, 22% 100%, 0 100%); box-shadow: inset 0 0 0 9px #151f27, inset 0 0 0 10px #69818c33, inset 0 0 90px 20px #000; background: repeating-linear-gradient(90deg, #7295a00b 0 1px, transparent 1px 8vw); }
  .roc-ignition-drive { position: absolute; width: min(62vw, 700px); height: min(65vh, 570px); top: 46%; left: 50%; transform: translate(-50%, -50%) scale(.96); opacity: .86; transition: transform 1.5s cubic-bezier(.2,.6,.3,1), filter 1s; filter: drop-shadow(0 20px 30px #000b); }
  .roc-ignition-coils { opacity: .08; transition: opacity 1s; }
  .roc-ignition-core { opacity: .025; transition: opacity 1.1s, filter 1.1s; }
  .roc-ignition-bloom { position: absolute; inset: 5% 0; opacity: 0; background: radial-gradient(ellipse at 50% 45%, #c4f6ff8a 0, #59b8ed35 9%, #2089bc17 25%, transparent 60%); mix-blend-mode: screen; transition: opacity 1.4s; }
  .roc-ignition-stars { position: absolute; inset: 0; perspective: 400px; }
  .roc-ignition-stars i { position: absolute; left: var(--star-x); top: var(--star-y); width: 1px; height: 1px; background: #c6e6ee; opacity: .25; transform: rotate(var(--star-angle)); }
  .roc-ignition-instruments { position: absolute; left: max(6vw, 20px); top: 19%; width: 220px; display: grid; gap: 13px; color: #b5d9e1; font-size: 10px; letter-spacing: .1em; }
  .roc-ignition-instruments span { opacity: .08; padding: 9px 12px; border: 1px solid #64757d42; border-left: 2px solid #d19c49; background: #0a141be8; animation: roc-instrument-boot .35s ease forwards; }
  .roc-ignition-instruments span:nth-child(2) { animation-delay: .3s; }
  .roc-ignition-instruments span:nth-child(3) { animation-delay: .65s; }
  .roc-ignition-meter { height: 3px; background: #2b3d47; }
  .roc-ignition-meter i { display: block; height: 100%; background: #77d8f4; transform-origin: left; animation: roc-drive-charge 4.15s linear both; box-shadow: 0 0 8px #46d0f8; }
  .roc-ignition-telemetry { position: absolute; left: 12%; right: 12%; bottom: 17%; text-align: center; font-size: clamp(15px, 2.2vw, 26px); letter-spacing: .22em; text-shadow: 0 2px 10px #000; }
  .roc-ignition-telemetry b { display: block; color: #d0a665; font-size: 9px; letter-spacing: .22em; margin-top: 9px; }
  .roc-ignition-telemetry em { display: block; color: #9ccdda; font-size: 10px; letter-spacing: .1em; font-style: normal; margin-top: 14px; }
  .roc-ignition-controls { position: absolute; bottom: max(5vh, calc(env(safe-area-inset-bottom) + 16px)); left: 6vw; right: 6vw; display: flex; align-items: center; justify-content: space-between; gap: 14px; color: #becbd0; font-size: 11px; }
  .roc-ignition-controls button { pointer-events: auto; min-height: 44px; min-width: 110px; padding: 10px 16px; color: #eaf6f9; border: 1px solid #83c2d3; border-radius: 2px; background: #0b1a24; font: inherit; cursor: pointer; }
  .roc-ignition-controls button:focus-visible { outline: 2px solid #ffcf7d; outline-offset: 4px; }
  .roc-ignition[data-phase='reactor'] .roc-ignition-coils,
  .roc-ignition[data-phase='burn'] .roc-ignition-coils,
  .roc-ignition[data-phase='handoff'] .roc-ignition-coils { opacity: .8; }
  .roc-ignition[data-phase='reactor'] .roc-ignition-core { opacity: .48; filter: drop-shadow(0 0 15px #63d2ff); }
  .roc-ignition[data-phase='burn'] .roc-ignition-core,
  .roc-ignition[data-phase='handoff'] .roc-ignition-core { opacity: 1; filter: drop-shadow(0 0 28px #b8f0ff); }
  .roc-ignition[data-phase='burn'] .roc-ignition-bloom,
  .roc-ignition[data-phase='handoff'] .roc-ignition-bloom { opacity: .8; }
  .roc-ignition[data-phase='burn'] .roc-ignition-drive,
  .roc-ignition[data-phase='handoff'] .roc-ignition-drive { transform: translate(-50%, -50%) scale(.88); filter: drop-shadow(0 0 25px #3a9ccf50); }
  .roc-ignition[data-phase='burn'] .roc-ignition-stars i { animation: roc-ignition-acceleration 1.7s ease-in var(--star-delay) both; }
  .roc-ignition[data-phase='handoff'] .roc-ignition-scene { opacity: 0; transition: opacity .85s ease; }
  .roc-ignition-settings { margin-left: auto; letter-spacing: .02em; }
  .roc-ignition-settings summary { min-height: 36px; display: flex; align-items: center; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
  .roc-ignition-settings[open] { width: 100%; border-top: 1px solid #6e8a923d; padding-top: 6px; }
  .roc-ignition-options { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 6px 0; }
  .roc-ignition-options label { display: flex; align-items: center; gap: 8px; min-height: 44px; font: 12px/1.5 var(--font-sans, system-ui, sans-serif); letter-spacing: 0; cursor: pointer; }
  .roc-ignition-options input { accent-color: #70d4ed; width: 18px; height: 18px; }
  .roc-ignition-options button { min-height: 44px; padding: 8px 14px; border: 1px solid var(--world-accent-secondary); background: var(--world-deep); color: var(--world-text); border-radius: 2px; font: 12px/1.4 var(--font-sans, system-ui, sans-serif); cursor: pointer; }
  .roc-ignition-options button:disabled { opacity: .5; cursor: default; }
  .roc-ignition-options p { width: 100%; margin: 0; font-size: 11px; letter-spacing: 0; line-height: 1.6; color: var(--world-secondary); }
  @keyframes roc-instrument-boot { to { opacity: 1; } }
  @keyframes roc-drive-charge { 0% { transform: scaleX(.01); } 27% { transform: scaleX(.2); } 58% { transform: scaleX(.42); } 100% { transform: scaleX(1); } }
  @keyframes roc-ignition-acceleration { 0% { height: 1px; opacity: .15; } 85% { height: 55px; opacity: .55; } 100% { height: 95px; opacity: 0; } }
  @keyframes roc-ignition-handoff { 0% { opacity: 0; } 9%,83% { opacity: 1; } 100% { opacity: 0; } }
  @media (max-width: 700px) {
    .roc-ignition-drive { width: 100vw; height: 49vh; top: 45%; }
    .roc-ignition-instruments { top: max(7vh, env(safe-area-inset-top)); left: 8vw; right: 8vw; width: auto; grid-template-columns: repeat(3, 1fr); gap: 5px; font-size: 7px; }
    .roc-ignition-instruments span { padding: 7px 5px; }
    .roc-ignition-meter { grid-column: 1 / -1; }
    .roc-ignition-telemetry { bottom: 22%; left: 5%; right: 5%; }
    .roc-ignition-telemetry em { font-size: 8px; }
    .roc-ignition-controls { align-items: flex-end; font-size: 10px; bottom: max(5vh, calc(env(safe-area-inset-bottom) + 16px)); }
    .roc-ignition-controls span { max-width: 170px; }
  }
  @media (prefers-reduced-motion: reduce) { .roc-ignition { display: none !important; } }
  html[data-background-animations='off'] .roc-ignition,
  html[data-decorative-animations='off'] .roc-ignition { display: none !important; }
}
@media print { .roc-ignition { display: none !important; } }

/* Theme showcases occupy the Themes page only; operational cards are untouched. */
#themes-view > [data-theme-panel]{margin-bottom:20px}
#themes-view > .lc-realm-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px}
[data-theme-panel]:not(#themes-view > [data-theme-panel]){display:none!important}


/* Source: sweet-shop-after-hours.css */
/* Confection materials share the material owner layer so its important paint
   cannot flatten this theme. Hotel status tiers retain their semantic paint. */
@media screen {
@layer surface-material {
html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card):not(:where(.arrival-tier, .early-tier, .finished, .card-dragging)):not(:where(.print-preview-sheet *, #print-run-root *)) {
  position: relative;
  border: 2px solid color-mix(in srgb, var(--world-border) 82%, var(--world-highlight)) !important;
  border-radius: 18px 18px 22px 22px !important;
  background:
    radial-gradient(130% 74% at 8% -10%, color-mix(in srgb, var(--world-highlight) 42%, transparent), transparent 72%),
    linear-gradient(145deg, color-mix(in srgb, var(--world-surface) 96%, var(--world-accent-secondary)), var(--world-surface) 58%, color-mix(in srgb, var(--world-surface) 92%, var(--world-accent))) !important;
  box-shadow:
    0 19px 34px -24px color-mix(in srgb, var(--world-deep) 86%, transparent),
    0 4px 0 color-mix(in srgb, var(--world-accent-secondary) 32%, var(--world-border)),
    0 9px 16px -12px color-mix(in srgb, var(--world-accent) 44%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 82%, transparent),
    inset 0 -1px 0 color-mix(in srgb, var(--world-deep) 20%, transparent) !important;
  transition: box-shadow .32s cubic-bezier(.2,.75,.25,1), border-color .28s ease, transform .32s cubic-bezier(.2,.75,.25,1), filter .28s ease !important;
}

/* Moulded chocolate edge around the larger dashboard panels. */
html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view .panel:not(:where(.print-preview-sheet *, #print-run-root *)) {
  box-shadow:
    0 23px 42px -27px color-mix(in srgb, var(--world-deep) 88%, transparent),
    0 5px 0 color-mix(in srgb, var(--world-accent) 30%, var(--world-border)),
    0 11px 20px -15px color-mix(in srgb, var(--world-accent-secondary) 42%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 78%, transparent),
    inset 0 -1px 0 color-mix(in srgb, var(--world-deep) 20%, transparent) !important;
}

/* Wafer cards get fine embossed layers, without covering their text or controls. */
html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view .room-card:not(:where(.arrival-tier, .early-tier, .finished, .card-dragging)):not(:where(.print-preview-sheet *, #print-run-root *)) {
  background:
    repeating-linear-gradient(0deg, transparent 0 13px, color-mix(in srgb, var(--world-accent) 5%, transparent) 13px 14px),
    radial-gradient(110% 55% at 10% 0%, color-mix(in srgb, var(--world-highlight) 34%, transparent), transparent 72%),
    var(--world-surface) !important;
  box-shadow:
    0 14px 26px -19px color-mix(in srgb, var(--world-deep) 88%, transparent),
    0 3px 0 color-mix(in srgb, var(--world-accent-secondary) 34%, var(--world-border)),
    inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 82%, transparent),
    inset 0 -1px 0 color-mix(in srgb, var(--world-deep) 19%, transparent) !important;
}

/* Foil glints are type-specific and sit in empty header space. */
html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) {
  background: linear-gradient(105deg,
    color-mix(in srgb, var(--world-accent-secondary) 17%, var(--world-elevated)),
    color-mix(in srgb, var(--world-highlight) 28%, var(--world-elevated)) 46%,
    color-mix(in srgb, var(--world-accent) 13%, var(--world-elevated))) !important;
  border-bottom-color: color-mix(in srgb, var(--world-accent) 35%, var(--world-border)) !important;
}
html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view .panel > .panel-head::before {
  opacity: .26;
  filter: drop-shadow(0 0 5px color-mix(in srgb, var(--world-highlight) 68%, transparent));
}

/* Small cards alternate original candy finishes instead of repeating one flat tile. */
html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view .metric:nth-of-type(3n + 1),
html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view .employee-bubble:nth-of-type(3n + 1) {
  background:
    linear-gradient(125deg, color-mix(in srgb, var(--world-highlight) 24%, transparent), transparent 48%),
    color-mix(in srgb, var(--world-surface) 78%, var(--world-accent-secondary)) !important;
}
html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view .metric:nth-of-type(3n + 2),
html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view .employee-bubble:nth-of-type(3n + 2) {
  background:
    repeating-linear-gradient(135deg, color-mix(in srgb, var(--world-highlight) 10%, transparent) 0 2px, transparent 2px 8px),
    color-mix(in srgb, var(--world-surface) 78%, var(--world-accent)) !important;
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  html[data-world='sweet-shop-after-hours'][data-mode][data-decorative-animations='on'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card):not(:where(.arrival-tier, .early-tier, .finished, .card-dragging)):not(:where(.print-preview-sheet *, #print-run-root *)):hover {
    transform: translateY(-3px) scale(1.006) !important;
    border-color: color-mix(in srgb, var(--world-highlight) 72%, var(--world-accent)) !important;
    filter: saturate(1.035) brightness(1.025);
    box-shadow:
      0 28px 48px -25px color-mix(in srgb, var(--world-deep) 90%, transparent),
      0 6px 0 color-mix(in srgb, var(--world-accent-secondary) 42%, var(--world-border)),
      0 0 24px -8px color-mix(in srgb, var(--world-highlight) 58%, transparent),
      inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 94%, transparent),
      inset 0 -1px 0 color-mix(in srgb, var(--world-deep) 18%, transparent) !important;
  }
}

@keyframes sweet-shop-wrapper-glint {
  0%, 100% { opacity: .68; filter: saturate(.96) brightness(.98); }
  50% { opacity: 1; filter: saturate(1.05) brightness(1.06); }
}

.world-preview[data-world='sweet-shop-after-hours'] .world-portal-art {
  background: radial-gradient(ellipse at 50% 45%, color-mix(in srgb, var(--world-highlight) 72%, transparent), transparent 38%), var(--world-accent-secondary) !important;
  opacity: .3;
}
.world-preview[data-world='sweet-shop-after-hours'] .world-sample-card {
  border-width: 2px !important;
  box-shadow: 0 12px 22px -14px var(--world-deep), 0 3px 0 color-mix(in srgb, var(--world-accent-secondary) 42%, var(--world-border)), inset 0 1px 0 var(--world-highlight) !important;
}
.world-preview[data-world='sweet-shop-after-hours'] .world-sample-heading {
  border-bottom-color: color-mix(in srgb, var(--world-accent-secondary) 42%, var(--world-border));
}

html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view :is(.room-card, .metric, .prod-score-card):focus-visible,
html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view .panel:focus-within {
  outline: 2px solid var(--world-highlight);
  outline-offset: 3px;
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--world-accent-secondary) 30%, transparent), var(--world-shadow) !important;
}

@media (prefers-reduced-motion: reduce) {
  html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card),
  html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card)::before,
  html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card)::after {
    animation: none !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

@media (max-width: 700px) {
  html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card) {
    box-shadow:
      0 12px 23px -17px color-mix(in srgb, var(--world-deep) 84%, transparent),
      0 3px 0 color-mix(in srgb, var(--world-accent-secondary) 30%, var(--world-border)),
      inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 78%, transparent) !important;
  }
}

html[data-world='sweet-shop-after-hours'][data-mode][data-decorative-animations='off'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card):not(:where(.arrival-tier, .early-tier, .finished, .card-dragging)):not(:where(.print-preview-sheet *, #print-run-root *)) {
  transition: none !important; animation: none !important; transform: none !important; filter: none !important;
}
@media (prefers-reduced-motion: reduce) {
  html[data-world='sweet-shop-after-hours'][data-mode] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card):not(:where(.arrival-tier, .early-tier, .finished, .card-dragging)):not(:where(.print-preview-sheet *, #print-run-root *)) {
    transition: none !important; animation: none !important; transform: none !important; filter: none !important;
  }
}
}
}


/* Source: world-theme-collectible.css */
/* Collectible visual worlds
   These treatments deliberately change silhouette, material, navigation,
   badges, motion and atmosphere while leaving the operational DOM intact. */
@media screen {
  /* Bubbly Zest is also selectable through the legacy theme attribute. Keep
     its large settings/work panels on a fixed, viewport-safe silhouette even
     when the world marker has not been hydrated yet. */
  html:is([data-theme='bubbly-zest'], [data-world='bubbly-zest']) {
    --world-radius: 14px 18px 16px 20px / 12px 14px 12px 16px;
    --world-header: 10px 14px 0 0;
  }

  html:is([data-theme='bubbly-zest'], [data-world='bubbly-zest']) :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *)) {
    border-radius: 14px 18px 16px 20px / 12px 14px 12px 16px !important;
    border-color: transparent !important;
    /* The card silhouette itself undulates on all four sides. */
    clip-path: polygon(0 7%, 5% 5.5%, 10% 7%, 15% 5.5%, 20% 7%, 25% 5.5%, 30% 7%, 35% 5.5%, 40% 7%, 45% 5.5%, 50% 7%, 55% 5.5%, 60% 7%, 65% 5.5%, 70% 7%, 75% 5.5%, 80% 7%, 85% 5.5%, 90% 7%, 95% 5.5%, 100% 7%, 98.5% 13%, 100% 19%, 98.5% 25%, 100% 31%, 98.5% 37%, 100% 43%, 98.5% 49%, 100% 55%, 98.5% 61%, 100% 67%, 98.5% 73%, 100% 79%, 98.5% 85%, 100% 91%, 95% 94.5%, 90% 93%, 85% 94.5%, 80% 93%, 75% 94.5%, 70% 93%, 65% 94.5%, 60% 93%, 55% 94.5%, 50% 93%, 45% 94.5%, 40% 93%, 35% 94.5%, 30% 93%, 25% 94.5%, 20% 93%, 15% 94.5%, 10% 93%, 5% 94.5%, 0 91%, 1.5% 85%, 0 79%, 1.5% 73%, 0 67%, 1.5% 61%, 0 55%, 1.5% 49%, 0 43%, 1.5% 37%, 0 31%, 1.5% 25%, 0 19%, 1.5% 13%);
  }

  /* A four-sided wave mask keeps the edge lively without changing the card's
     layout. The moving gradient is deliberately per-card, so the gleam does
     not march across the whole page as one synchronized border. */
  html:is([data-theme='bubbly-zest'], [data-world='bubbly-zest']) :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *))::before {
    content: '' !important;
    position: absolute;
    inset: -1px;
    width: auto;
    height: auto;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(112deg, color-mix(in srgb, var(--world-highlight) 42%, transparent), var(--world-accent-secondary), color-mix(in srgb, var(--world-highlight) 42%, transparent));
    border: 0;
    opacity: 1;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='white' stroke-width='5'%3E%3Cpath d='M2 8 Q7 2 12 8 T22 8 T32 8 T42 8 T52 8 T62 8 T72 8 T82 8 T92 8 T98 8'/%3E%3Cpath d='M92 2 Q98 7 92 12 T92 22 T92 32 T92 42 T92 52 T92 62 T92 72 T92 82 T92 92 T92 98'/%3E%3Cpath d='M98 92 Q93 98 88 92 T78 92 T68 92 T58 92 T48 92 T38 92 T28 92 T18 92 T8 92 T2 92'/%3E%3Cpath d='M8 98 Q2 93 8 88 T8 78 T8 68 T8 58 T8 48 T8 38 T8 28 T8 18 T8 8 T8 2'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='white' stroke-width='5'%3E%3Cpath d='M2 8 Q7 2 12 8 T22 8 T32 8 T42 8 T52 8 T62 8 T72 8 T82 8 T92 8 T98 8'/%3E%3Cpath d='M92 2 Q98 7 92 12 T92 22 T92 32 T92 42 T92 52 T92 62 T92 72 T92 82 T92 92 T92 98'/%3E%3Cpath d='M98 92 Q93 98 88 92 T78 92 T68 92 T58 92 T48 92 T38 92 T28 92 T18 92 T8 92 T2 92'/%3E%3Cpath d='M8 98 Q2 93 8 88 T8 78 T8 68 T8 58 T8 48 T8 38 T8 28 T8 18 T8 8 T8 2'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
    opacity: .7;
  }
  /* The gleam is a small runner on the track, not a rotating border wash. */
  html:is([data-theme='bubbly-zest'], [data-world='bubbly-zest']) :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *))::after {
    content: '' !important;
    position: absolute;
    top: 5.5%;
    left: 2%;
    width: 26px;
    height: 10px;
    z-index: 3;
    pointer-events: none;
    border: 0;
    border-radius: 999px;
    background: radial-gradient(ellipse at 76% 50%, #fffbe0 0 14%, var(--world-highlight) 25%, color-mix(in srgb, var(--world-accent-secondary) 82%, transparent) 44%, transparent 76%);
    box-shadow: 0 0 5px var(--world-highlight), 0 0 12px var(--world-accent-secondary), 0 0 22px var(--world-glow);
    will-change: left, top, filter;
    animation: world-bubbly-edge-car var(--bubble-edge-speed, 9.2s) linear infinite;
  }
  html:is([data-theme='bubbly-zest'], [data-world='bubbly-zest']) :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel):nth-child(3n + 1) { --bubble-edge-speed: 7.4s; }
  html:is([data-theme='bubbly-zest'], [data-world='bubbly-zest']) :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel):nth-child(3n + 2) { --bubble-edge-speed: 10.6s; }
  html:is([data-theme='bubbly-zest'], [data-world='bubbly-zest']) :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel):nth-child(3n) { --bubble-edge-speed: 14.2s; }

  /* The edge car is the user's explicit Bubbly Zest gleam. Keep it moving
     when Card animations are enabled, even if the OS requests reduced motion;
     the app's own Card animations toggle remains the opt-out control. */
  @media (prefers-reduced-motion: reduce) {
    html:is([data-theme='bubbly-zest'], [data-world='bubbly-zest'])[data-decorative-animations='on'] :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *))::after {
      animation: world-bubbly-edge-car var(--bubble-edge-speed, 9.2s) linear infinite !important;
    }
  }

  html[data-theme='celestial-relic'] { --theme-badge-radius: 50%; --theme-badge-clip: polygon(50% 0, 61% 35%, 100% 50%, 61% 65%, 50% 100%, 39% 65%, 0 50%, 39% 35%); }
  html[data-theme='synthetic-botanica'] { --theme-badge-radius: 68% 20% 64% 18% / 70% 24% 64% 22%; --theme-badge-clip: none; }
  html[data-theme='brutalist-signal'] { --theme-badge-radius: 0; --theme-badge-clip: polygon(0 0, 86% 0, 100% 22%, 100% 100%, 14% 100%, 0 78%); }
  html[data-theme='lunar-porcelain'] { --theme-badge-radius: 50%; --theme-badge-clip: none; }
  html[data-theme='chromatic-cartography'] { --theme-badge-radius: 2px 12px 2px 12px; --theme-badge-clip: polygon(0 12%, 12% 0, 88% 0, 100% 12%, 100% 88%, 88% 100%, 12% 100%, 0 88%); }
  html[data-theme='dreamframe-os'] { --theme-badge-radius: 50% 16% 50% 16%; --theme-badge-clip: none; }
  html[data-theme='sisyphus-glass'] { --theme-badge-radius: 999px; --theme-badge-clip: polygon(0 50%, 10% 12%, 90% 0, 100% 50%, 90% 100%, 10% 88%); }
  html[data-theme='sisyphus-terminal'] { --theme-badge-radius: 0 8px 0 8px; --theme-badge-clip: polygon(0 0, 92% 0, 100% 16%, 100% 84%, 92% 100%, 0 100%, 8% 84%, 8% 16%); }
  html[data-theme='bubbly-zest'] { --theme-badge-radius: 58% 42% 52% 48% / 48% 52% 46% 54%; --theme-badge-clip: polygon(50% 0, 82% 10%, 100% 42%, 90% 76%, 62% 100%, 28% 94%, 0 60%, 10% 24%); }

  html[data-world='celestial-relic'] :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel) {
    border-radius: var(--world-radius) !important;
    background: linear-gradient(135deg, color-mix(in srgb, var(--world-surface) 96%, var(--world-accent) 4%), var(--world-surface)) !important;
    box-shadow: var(--world-shadow), 0 0 0 1px color-mix(in srgb, var(--world-highlight) 18%, transparent) !important;
  }
  html[data-world='celestial-relic'] :is(.panel, .room-card, .metric)::after {
    content: ''; position: absolute; inset: 8px 12px auto auto; width: 42px; height: 42px;
    border: 1px solid color-mix(in srgb, var(--world-accent) 42%, transparent);
    border-left-color: transparent; border-bottom-color: transparent; border-radius: 50%;
    rotate: 26deg; pointer-events: none; opacity: .65; animation: world-relic-orbit 38s linear infinite;
  }
  html[data-world='celestial-relic'] .panel > .panel-head { border-bottom: 1px solid var(--world-border) !important; }
  html[data-world='celestial-relic'] .panel > .panel-head::after {
    content: '◌  NAV // 07'; position: absolute; right: 15px; bottom: 8px; color: var(--world-accent);
    font: 700 9px/1 var(--world-font); letter-spacing: .15em; opacity: .7;
  }
  html[data-world='celestial-relic'] :is(.nav-item, .mobile-nav-sheet-item).active {
    border-radius: 999px 4px 999px 4px !important; box-shadow: inset 0 -2px 0 var(--world-accent), 0 0 18px var(--world-glow) !important;
  }
  html[data-world='celestial-relic'] :is(.button, .notification-button) { border-radius: var(--world-control) !important; letter-spacing: .025em; }

  html[data-world='synthetic-botanica'] :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel) {
    border-radius: var(--world-radius) !important;
    background: radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--world-accent) 14%, transparent), transparent 28%), var(--world-surface) !important;
    box-shadow: var(--world-shadow), inset 0 -10px 22px -24px var(--world-accent) !important;
  }
  html[data-world='synthetic-botanica'] :is(.panel, .room-card, .metric)::after {
    content: ''; position: absolute; right: 12px; bottom: 11px; width: 58px; height: 28px;
    border: 1px solid color-mix(in srgb, var(--world-accent) 34%, transparent);
    border-left-color: transparent; border-bottom-color: transparent; border-radius: 80% 12% 80% 12%;
    rotate: -18deg; pointer-events: none; opacity: .45; animation: world-cellular-bloom 42s ease-in-out infinite;
  }
  html[data-world='synthetic-botanica'] .panel > .panel-head { border-bottom: 1px solid color-mix(in srgb, var(--world-accent) 35%, var(--world-border)) !important; }
  html[data-world='synthetic-botanica'] .panel > .panel-head::after {
    content: '◈'; position: absolute; right: 17px; top: 12px; color: var(--world-accent);
    font-size: 15px; opacity: .7; animation: world-cellular-bloom 42s ease-in-out infinite;
  }
  html[data-world='synthetic-botanica'] :is(.nav-item, .mobile-nav-sheet-item).active {
    border-radius: 42% 12% 42% 12% !important; box-shadow: inset 4px 0 0 var(--world-accent), 0 0 20px var(--world-glow) !important;
  }
  html[data-world='synthetic-botanica'] :is(.button, .notification-button):hover { border-radius: 38% 12% 38% 12% !important; }

  html[data-world='brutalist-signal'] :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel) {
    border-radius: 0 !important; border-width: 1px 1px 1px 5px !important;
    background: repeating-linear-gradient(0deg, transparent 0 31px, color-mix(in srgb, var(--world-border) 10%, transparent) 32px), var(--world-surface) !important;
    box-shadow: var(--world-shadow) !important;
  }
  html[data-world='brutalist-signal'] .panel > .panel-head {
    border-radius: 0 !important; border-bottom: 2px solid var(--world-accent) !important;
    text-transform: uppercase; letter-spacing: .07em;
  }
  html[data-world='brutalist-signal'] .panel > .panel-head::after {
    content: '/// LIVE'; position: absolute; right: 13px; top: 12px; color: var(--world-accent-secondary);
    font: 700 9px/1 var(--world-font); letter-spacing: .12em;
  }
  html[data-world='brutalist-signal'] :is(.nav-item, .mobile-nav-sheet-item) { border-radius: 0 !important; border-left: 3px solid transparent; }
  html[data-world='brutalist-signal'] :is(.nav-item, .mobile-nav-sheet-item).active {
    border-color: var(--world-accent) !important; background: var(--world-accent) !important; color: var(--world-on-accent) !important;
    box-shadow: 5px 5px 0 var(--world-deep) !important;
  }
  html[data-world='brutalist-signal'] :is(.button, .notification-button) { border-radius: 0 !important; text-transform: uppercase; letter-spacing: .05em; }
  html[data-world='brutalist-signal'] :is(.button, .notification-button):hover { transform: translate(2px, -2px); box-shadow: 4px 4px 0 var(--world-deep) !important; }

  html[data-world='lunar-porcelain'] :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel) {
    border-radius: var(--world-radius) !important;
    background: linear-gradient(155deg, color-mix(in srgb, var(--world-highlight) 8%, var(--world-surface)), var(--world-surface) 52%, color-mix(in srgb, var(--world-deep) 10%, var(--world-surface))) !important;
    box-shadow: var(--world-shadow), inset 0 2px 0 color-mix(in srgb, var(--world-highlight) 45%, transparent) !important;
  }
  html[data-world='lunar-porcelain'] .panel > .panel-head { border-bottom: 0 !important; background: transparent !important; }
  html[data-world='lunar-porcelain'] .panel > .panel-head::after {
    content: '◒'; position: absolute; right: 17px; top: 9px; color: var(--world-accent);
    font-size: 18px; opacity: .55; animation: world-porcelain-glaze 46s ease-in-out infinite;
  }
  html[data-world='lunar-porcelain'] :is(.nav-item, .mobile-nav-sheet-item).active {
    border-radius: 999px !important; background: color-mix(in srgb, var(--world-accent) 13%, var(--world-surface)) !important;
    box-shadow: inset 0 0 0 1px var(--world-accent), 0 5px 18px -12px var(--world-accent) !important;
  }
  html[data-world='lunar-porcelain'] :is(.button, .notification-button) { border-radius: var(--world-control) !important; }
  html[data-world='lunar-porcelain'] :is(.button, .notification-button):hover { background: color-mix(in srgb, var(--world-highlight) 15%, var(--world-surface)) !important; }

  html[data-world='chromatic-cartography'] :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel) {
    border-radius: var(--world-radius) !important; border-top: 2px solid var(--world-accent-secondary) !important;
    background: linear-gradient(140deg, color-mix(in srgb, var(--world-surface) 95%, var(--world-accent-secondary) 5%), var(--world-surface)) !important;
    box-shadow: var(--world-shadow), 5px 5px 0 -3px color-mix(in srgb, var(--world-accent-secondary) 38%, var(--world-surface)) !important;
  }
  html[data-world='chromatic-cartography'] .panel > .panel-head { border-bottom: 1px dashed var(--world-border) !important; }
  html[data-world='chromatic-cartography'] .panel > .panel-head::after {
    content: 'N 42°  ·  E 07°'; position: absolute; right: 14px; bottom: 9px; color: var(--world-accent-secondary);
    font: 700 9px/1 ui-monospace, monospace; letter-spacing: .08em; opacity: .72;
  }
  html[data-world='chromatic-cartography'] :is(.nav-item, .mobile-nav-sheet-item) { border-radius: var(--world-control) !important; }
  html[data-world='chromatic-cartography'] :is(.nav-item, .mobile-nav-sheet-item).active {
    background: color-mix(in srgb, var(--world-accent-secondary) 14%, var(--world-surface)) !important;
    box-shadow: inset 0 -3px 0 var(--world-accent-secondary), 0 0 0 1px var(--world-accent-secondary) !important;
  }
  html[data-world='chromatic-cartography'] :is(.button, .notification-button) { border-radius: var(--world-control) !important; }

  html[data-world='dreamframe-os'] :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel) {
    border-radius: var(--world-radius) !important;
    background: linear-gradient(118deg, color-mix(in srgb, var(--world-surface) 94%, var(--world-accent-secondary) 6%), var(--world-surface)) !important;
    box-shadow: var(--world-shadow), 0 0 0 1px color-mix(in srgb, var(--world-highlight) 16%, transparent) !important;
  }
  html[data-world='dreamframe-os'] :is(.panel, .room-card, .metric)::after {
    content: ''; position: absolute; inset: 8px 11px; border: 1px solid color-mix(in srgb, var(--world-accent-secondary) 24%, transparent);
    border-radius: 48% 48% 0 0; pointer-events: none; opacity: .42; animation: world-dream-drift 52s ease-in-out infinite;
  }
  html[data-world='dreamframe-os'] .panel > .panel-head { background: transparent !important; border-bottom: 0 !important; }
  html[data-world='dreamframe-os'] .panel > .panel-head::after {
    content: '◌'; position: absolute; right: 18px; top: 9px; color: var(--world-accent-secondary);
    font-size: 20px; opacity: .6; animation: world-dream-drift 52s ease-in-out infinite;
  }
  html[data-world='dreamframe-os'] :is(.nav-item, .mobile-nav-sheet-item).active {
    border-radius: var(--world-control) !important; background: color-mix(in srgb, var(--world-accent) 13%, var(--world-surface)) !important;
    box-shadow: 0 0 0 1px var(--world-accent), 0 0 22px var(--world-glow) !important;
  }
  html[data-world='dreamframe-os'] :is(.button, .notification-button) { border-radius: var(--world-control) !important; }

  html[data-world='bubbly-zest'][data-theme] :is(.panel, .room-card, .metric, .employee-bubble, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *)) {
    /* Keep the bubbly silhouette without letting an expanded work card clip
       its first or last controls into a deeply rounded corner. */
    border-radius: 14px 18px 16px 20px / 12px 14px 12px 16px !important;
    background: radial-gradient(circle at 12% 16%, color-mix(in srgb, var(--world-highlight) 48%, transparent) 0 2px, transparent 3px), radial-gradient(circle at 89% 84%, color-mix(in srgb, var(--world-accent-secondary) 32%, transparent) 0 4px, transparent 5px), linear-gradient(112deg, color-mix(in srgb, var(--world-surface) 91%, var(--world-accent-secondary) 9%) 0%, var(--world-surface) 42%, color-mix(in srgb, var(--world-highlight) 20%, var(--world-surface)) 51%, var(--world-surface) 60%, color-mix(in srgb, var(--world-surface) 92%, var(--world-accent) 8%) 100%) !important;
    background-size: auto, auto, 240% 100% !important;
    box-shadow: var(--world-shadow), 0 0 0 1px color-mix(in srgb, var(--world-highlight) 22%, transparent) !important;
  }
  html[data-world='bubbly-zest'] .panel > .panel-head { border-bottom: 1px solid color-mix(in srgb, var(--world-accent-secondary) 28%, var(--world-border)) !important; }
  html[data-world='bubbly-zest'] .panel > .panel-head::after { content: '✦  ◌'; position: absolute; right: 15px; top: 10px; color: var(--world-accent-secondary); font: 800 12px/1 var(--world-font); letter-spacing: .15em; opacity: .72; }
  html[data-world='bubbly-zest'] :is(.nav-item, .mobile-nav-sheet-item).active { border-radius: var(--world-control) !important; background: color-mix(in srgb, var(--world-accent-secondary) 13%, var(--world-surface)) !important; box-shadow: inset 0 -3px 0 var(--world-accent), 0 0 18px var(--world-glow) !important; }
  html[data-world='bubbly-zest'] :is(.button, .notification-button) { border-radius: var(--world-control) !important; box-shadow: inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 62%, transparent); }
  html[data-world='bubbly-zest'] :is(.button, .notification-button):hover { box-shadow: 0 7px 18px -13px var(--world-accent-secondary), inset 0 1px 0 var(--world-highlight) !important; }
  /* Static chartwork remains visible when background animation is turned off;
     only the movement channel is disabled by the shared accessibility layer. */
  html[data-world='celestial-relic'] .world-base { background: linear-gradient(135deg, var(--world-deep), var(--world-background) 52%, color-mix(in srgb, var(--world-accent-secondary) 15%, var(--world-deep))); animation-name: world-relic-sky; }
  html[data-world='celestial-relic'] .world-horizon { background: radial-gradient(ellipse at 50% 42%, color-mix(in srgb, var(--world-accent) 18%, transparent), transparent 55%); }
  html[data-world='celestial-relic'] .world-silhouette { background: repeating-radial-gradient(ellipse at 50% 42%, transparent 0 9%, color-mix(in srgb, var(--world-accent) 18%, transparent) 9.2% 9.35%, transparent 9.5% 18%); animation-name: world-relic-chart; }
  html[data-world='celestial-relic'] .world-particles { background-image: radial-gradient(circle, var(--world-highlight) 0 1px, transparent 2px); background-size: 137px 181px; }
  html[data-world='celestial-relic'] .world-particles-mid { background: linear-gradient(90deg, transparent 49.8%, color-mix(in srgb, var(--world-accent-secondary) 24%, transparent) 50%, transparent 50.2%); background-size: 170px 170px; animation-name: world-relic-chart; }
  html[data-world='celestial-relic'] .world-atmosphere[data-event='relic-alignment'] .world-rare { inset: 18% 14%; border: 1px solid var(--world-accent); border-radius: 50%; animation: world-relic-alignment 10.5s ease-in-out both; }

  html[data-world='synthetic-botanica'] .world-base { background: linear-gradient(145deg, var(--world-deep), var(--world-background) 55%, color-mix(in srgb, var(--world-accent) 12%, var(--world-deep))); animation-name: world-botanica-flow; }
  html[data-world='synthetic-botanica'] .world-horizon { background: radial-gradient(ellipse at 17% 28%, color-mix(in srgb, var(--world-accent) 20%, transparent), transparent 36%), radial-gradient(ellipse at 84% 70%, color-mix(in srgb, var(--world-accent-secondary) 14%, transparent), transparent 34%); animation-name: world-botanica-flow; }
  html[data-world='synthetic-botanica'] .world-silhouette { background: radial-gradient(ellipse 20% 45% at 4% 26%, color-mix(in srgb, var(--world-deep) 82%, transparent) 0 35%, transparent 36%), radial-gradient(ellipse 17% 38% at 96% 66%, color-mix(in srgb, var(--world-deep) 82%, transparent) 0 35%, transparent 36%); animation-name: world-botanica-tendril; }
  html[data-world='synthetic-botanica'] .world-particles { background-image: radial-gradient(circle, var(--world-highlight) 0 1px, transparent 2px); background-size: 119px 163px; animation-name: world-botanica-pollen; }
  html[data-world='synthetic-botanica'] .world-atmosphere[data-event='cellular-bloom'] .world-rare { inset: 15%; border: 1px solid color-mix(in srgb, var(--world-accent) 50%, transparent); border-radius: 50% 12% 50% 12%; animation: world-cellular-bloom 15s ease-in-out both; }

  html[data-world='brutalist-signal'] .world-base { background: repeating-linear-gradient(0deg, color-mix(in srgb, var(--world-background) 93%, var(--world-accent) 7%) 0 2px, var(--world-background) 2px 7px), var(--world-deep); animation-name: world-signal-scan; }
  html[data-world='brutalist-signal'] .world-horizon { background: repeating-linear-gradient(90deg, transparent 0 13%, color-mix(in srgb, var(--world-accent) 18%, transparent) 13.2% 13.35%, transparent 13.5% 26%); animation-name: world-signal-scan; }
  html[data-world='brutalist-signal'] .world-silhouette { background: linear-gradient(90deg, transparent 0 18%, color-mix(in srgb, var(--world-accent-secondary) 20%, transparent) 18.2% 18.5%, transparent 18.7% 67%, color-mix(in srgb, var(--world-accent) 18%, transparent) 67.2% 67.5%, transparent 67.7%); }
  html[data-world='brutalist-signal'] .world-particles { background-image: radial-gradient(circle, var(--world-accent) 0 1px, transparent 2px); background-size: 137px 97px; animation-name: world-signal-noise; }
  html[data-world='brutalist-signal'] .world-atmosphere[data-event='signal-interference'] .world-rare { inset: 20% 0; background: repeating-linear-gradient(0deg, transparent 0 7px, color-mix(in srgb, var(--world-accent-secondary) 35%, transparent) 8px 9px); animation: world-signal-interference 3.8s steps(3, end) both; }

  html[data-world='lunar-porcelain'] .world-base { background: radial-gradient(ellipse at 50% 19%, color-mix(in srgb, var(--world-highlight) 22%, transparent), transparent 35%), linear-gradient(145deg, var(--world-deep), var(--world-background) 62%, color-mix(in srgb, var(--world-accent-secondary) 10%, var(--world-deep))); animation-name: world-porcelain-light; }
  html[data-world='lunar-porcelain'] .world-horizon { background: radial-gradient(ellipse at 62% 34%, color-mix(in srgb, var(--world-highlight) 16%, transparent), transparent 30%); animation-name: world-porcelain-light; }
  html[data-world='lunar-porcelain'] .world-silhouette { background: repeating-radial-gradient(ellipse at 50% 30%, transparent 0 14%, color-mix(in srgb, var(--world-border) 16%, transparent) 14.2% 14.45%, transparent 14.7% 27%); }
  html[data-world='lunar-porcelain'] .world-particles { background-image: radial-gradient(circle, var(--world-highlight) 0 .8px, transparent 2px); background-size: 211px 173px; animation-name: world-porcelain-dust; }
  html[data-world='lunar-porcelain'] .world-atmosphere[data-event='porcelain-glaze'] .world-rare { inset: 12% -10%; background: linear-gradient(115deg, transparent 38%, color-mix(in srgb, var(--world-highlight) 24%, transparent) 50%, transparent 62%); animation: world-porcelain-glaze 13s ease-in-out both; }

  html[data-world='chromatic-cartography'] .world-base { background: linear-gradient(145deg, var(--world-deep), var(--world-background) 55%, color-mix(in srgb, var(--world-accent) 12%, var(--world-deep))); animation-name: world-route-drift; }
  html[data-world='chromatic-cartography'] .world-horizon { background: repeating-linear-gradient(26deg, transparent 0 58px, color-mix(in srgb, var(--world-accent-secondary) 24%, transparent) 59px 60px, transparent 61px 118px); animation-name: world-route-drift; }
  html[data-world='chromatic-cartography'] .world-silhouette { background: repeating-linear-gradient(118deg, transparent 0 83px, color-mix(in srgb, var(--world-accent) 18%, transparent) 84px 86px, transparent 87px 170px); }
  html[data-world='chromatic-cartography'] .world-particles { background-image: radial-gradient(circle, var(--world-accent-secondary) 0 2px, transparent 3px); background-size: 171px 139px; animation-name: world-route-waypoints; }
  html[data-world='chromatic-cartography'] .world-atmosphere[data-event='route-reveal'] .world-rare { inset: 22% 8%; background: linear-gradient(28deg, transparent 48%, color-mix(in srgb, var(--world-accent) 52%, transparent) 49% 50%, transparent 51%); animation: world-route-reveal 9s ease-in-out both; }

  html[data-world='dreamframe-os'] .world-base { background: radial-gradient(ellipse at 50% 30%, color-mix(in srgb, var(--world-accent-secondary) 20%, transparent), transparent 38%), linear-gradient(145deg, var(--world-deep), var(--world-background) 58%, color-mix(in srgb, var(--world-accent) 10%, var(--world-deep))); animation-name: world-dream-drift; }
  html[data-world='dreamframe-os'] .world-horizon { background: radial-gradient(ellipse at 20% 60%, color-mix(in srgb, var(--world-accent) 18%, transparent), transparent 30%), radial-gradient(ellipse at 80% 26%, color-mix(in srgb, var(--world-accent-secondary) 15%, transparent), transparent 32%); animation-name: world-dream-depth; }
  html[data-world='dreamframe-os'] .world-silhouette { inset: 8% 10%; background: repeating-linear-gradient(90deg, transparent 0 19%, color-mix(in srgb, var(--world-highlight) 12%, transparent) 19.2% 19.5%, transparent 19.7% 38%); animation-name: world-dream-depth; }
  html[data-world='dreamframe-os'] .world-particles { background-image: radial-gradient(circle, var(--world-highlight) 0 1px, transparent 2px); background-size: 151px 197px; animation-name: world-dream-particles; }
  html[data-world='dreamframe-os'] .world-atmosphere[data-event='dreamfold'] .world-rare { inset: 17% 20%; border: 1px solid color-mix(in srgb, var(--world-accent-secondary) 44%, transparent); border-radius: 48% 48% 0 0; animation: world-dreamfold 16s ease-in-out both; }

  html[data-world='bubbly-zest'] .world-base { background: radial-gradient(circle at 14% 18%, color-mix(in srgb, var(--world-highlight) 24%, transparent) 0 5%, transparent 5.4%), radial-gradient(circle at 84% 72%, color-mix(in srgb, var(--world-accent-secondary) 20%, transparent) 0 9%, transparent 9.5%), linear-gradient(145deg, var(--world-deep), var(--world-background) 55%, color-mix(in srgb, var(--world-accent) 12%, var(--world-deep))); animation-name: world-bubbly-sky; }
  html[data-world='bubbly-zest'] .world-horizon { background: radial-gradient(ellipse at 50% 88%, color-mix(in srgb, var(--world-accent) 17%, transparent), transparent 48%); animation-name: world-bubbly-sky; }
  html[data-world='bubbly-zest'] .world-silhouette { background: radial-gradient(circle at 8% 75%, color-mix(in srgb, var(--world-highlight) 18%, transparent) 0 4%, transparent 4.3%), radial-gradient(circle at 93% 35%, color-mix(in srgb, var(--world-accent-secondary) 18%, transparent) 0 6%, transparent 6.3%); animation-name: world-bubbly-float; }
  html[data-world='bubbly-zest'] .world-particles { background-image: radial-gradient(circle, var(--world-highlight) 0 1px, transparent 2px); background-size: 143px 187px; animation-name: world-bubbly-sparkle; }

  @keyframes world-relic-orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
  @keyframes world-relic-sky { from { background-position: 0 0; } to { background-position: 100% 40%; } }
  @keyframes world-relic-chart { from { transform: rotate(-1deg) translate3d(-1%, 0, 0); } to { transform: rotate(2deg) translate3d(2%, -1%, 0); } }
  @keyframes world-relic-alignment { 0%,100% { opacity: 0; transform: scale(.72) rotate(-20deg); } 35%,70% { opacity: .5; transform: scale(1) rotate(12deg); } }
  @keyframes world-cellular-bloom { 0%,100% { opacity: .2; transform: scale(.92); } 50% { opacity: .62; transform: scale(1.05); } }
  @keyframes world-botanica-flow { from { background-position: 0 0; } to { background-position: 7% 3%; } }
  @keyframes world-botanica-tendril { from { transform: translate3d(-1%, 1%, 0) rotate(-1deg); } to { transform: translate3d(3%, -2%, 0) rotate(1deg); } }
  @keyframes world-botanica-pollen { from { background-position: 0 0; } to { background-position: 71px -127px; } }
  @keyframes world-signal-scan { from { background-position: 0 0; } to { background-position: 0 68px; } }
  @keyframes world-signal-noise { from { background-position: 0 0; } to { background-position: 137px -97px; } }
  @keyframes world-signal-interference { 0%,100% { opacity: 0; transform: translateX(-4%); } 28%,66% { opacity: .5; transform: translateX(4%); } }
  @keyframes world-porcelain-glaze { 0%,100% { opacity: .22; transform: translateX(-14%); } 50% { opacity: .68; transform: translateX(14%); } }
  @keyframes world-porcelain-light { from { background-position: 0 0; } to { background-position: 8% -2%; } }
  @keyframes world-porcelain-dust { from { background-position: 0 0; } to { background-position: 21px -173px; } }
  @keyframes world-route-drift { from { background-position: 0 0; } to { background-position: 6% -3%; } }
  @keyframes world-route-waypoints { from { background-position: 0 0; } to { background-position: 171px -139px; } }
  @keyframes world-route-reveal { 0%,100% { opacity: 0; transform: translateX(-15%); } 38%,70% { opacity: .55; transform: translateX(15%); } }
  @keyframes world-dream-drift { from { transform: translate3d(-2%, 1%, 0) scale(1.01); } to { transform: translate3d(3%, -2%, 0) scale(1.06); } }
  @keyframes world-dream-depth { from { transform: translate3d(-2%, 1%, 0); } to { transform: translate3d(3%, -2%, 0); } }
  @keyframes world-dream-particles { from { background-position: 0 0; } to { background-position: -31px -197px; } }
  @keyframes world-dreamfold { 0%,100% { opacity: 0; transform: scale(.8) rotate(-3deg); } 35%,72% { opacity: .46; transform: scale(1) rotate(3deg); } }
  @keyframes world-dream-card-float { 0%,100% { translate: 0 0; rotate: -.08deg; } 50% { translate: 0 -3px; rotate: .08deg; } }
  @keyframes world-bubbly-sky { from { background-position: 0 0; } to { background-position: 5% -3%; } }
  @keyframes world-bubbly-float { from { transform: translate3d(-2%, 2%, 0); } to { transform: translate3d(3%, -3%, 0); } }
  @keyframes world-bubbly-sparkle { from { background-position: 0 0; } to { background-position: 43px -187px; } }

  @media (hover: hover) {
    html[data-world='celestial-relic'] :is(.panel, .room-card, .metric):hover { transform: translateY(-3px) rotate(.2deg); }
    html[data-world='synthetic-botanica'] :is(.panel, .room-card, .metric):hover { transform: scale(1.008); }
    html[data-world='brutalist-signal'] :is(.panel, .room-card, .metric):hover { transform: translate(2px, -2px); }
    html[data-world='lunar-porcelain'] :is(.panel, .room-card, .metric):hover { box-shadow: var(--world-shadow), inset 0 2px 0 var(--world-highlight), inset 80px 0 0 -78px color-mix(in srgb, var(--world-highlight) 18%, transparent) !important; }
    html[data-world='chromatic-cartography'] :is(.panel, .room-card, .metric):hover { transform: translateX(2px); }
    html[data-world='dreamframe-os'] :is(.panel, .room-card, .metric):hover { transform: translateY(-2px) scale(1.004); }
    html[data-world='bubbly-zest'] :is(.panel, .room-card, .metric):hover { transform: translateY(-2px) scale(1.006); }
  }
}

/* Theme-specific panel markers replace the shared ticket hole. They are
   decorative only; the panel remains fully interactive and unclipped. */
@media screen {
  html[data-world='neon-afterglow'] .panel::after {
    content: '◇'; display: grid; place-items: center; width: 15px; height: 15px; top: 7px; right: 8px;
    background: transparent; border: 1px solid var(--world-accent); border-radius: 0; color: var(--world-accent);
    font-size: 9px; line-height: 1; rotate: 45deg; box-shadow: 0 0 8px var(--world-glow);
  }
  html[data-world='afterfall'] .panel::after {
    content: ''; width: 11px; height: 11px; top: 8px; right: 8px; background: transparent;
    border: 2px dashed var(--world-accent); border-radius: 1px; box-shadow: none; rotate: 45deg;
  }
  html[data-world='lunar-cyborg'] .panel::after {
    content: '◐'; display: grid; place-items: center; width: 17px; height: 17px; top: 5px; right: 7px;
    background: transparent; border: 0; color: var(--world-accent-secondary); box-shadow: none; font-size: 15px;
  }
  html[data-world='botanical-alchemy'] .panel::after {
    content: '❧'; display: grid; place-items: center; width: 18px; height: 18px; top: 5px; right: 6px;
    background: transparent; border: 0; border-radius: 70% 10% 70% 10%; color: var(--world-accent);
    box-shadow: 0 0 8px color-mix(in srgb, var(--world-accent) 28%, transparent); font-size: 14px; rotate: -18deg;
  }
  html[data-world='starfall-archive'] .panel::after {
    content: '✧'; display: grid; place-items: center; width: 18px; height: 18px; top: 5px; right: 7px;
    background: transparent; border: 0; color: var(--world-accent); box-shadow: none; font-size: 15px;
  }
  html[data-world='brutalist-signal'] .panel::after {
    content: '+'; display: grid; place-items: center; width: 15px; height: 15px; top: 7px; right: 7px;
    background: var(--world-accent); border: 0; border-radius: 0; color: var(--world-deep);
    box-shadow: 3px 3px 0 var(--world-accent-secondary); font: 900 12px/1 var(--world-font);
  }
  html[data-world='lunar-porcelain'] .panel::after {
    content: ''; width: 16px; height: 16px; top: 6px; right: 8px; background: transparent;
    border: 1px solid var(--world-accent); border-radius: 50%; box-shadow: inset 4px 0 0 -2px var(--world-surface), 0 0 8px color-mix(in srgb, var(--world-highlight) 24%, transparent);
  }
  html[data-world='chromatic-cartography'] .panel::after {
    content: '◆'; display: grid; place-items: center; width: 17px; height: 17px; top: 5px; right: 7px;
    background: transparent; border: 0; color: var(--world-accent); box-shadow: none; font-size: 10px;
    text-shadow: 5px 0 var(--world-accent-secondary);
  }
  html[data-world='dreamframe-os'] .panel::after {
    content: '◌'; display: grid; place-items: center; width: 18px; height: 18px; top: 5px; right: 7px;
    background: transparent; border: 0; color: var(--world-accent-secondary); box-shadow: 0 0 10px var(--world-glow); font-size: 17px;
  }
  html[data-world='bubbly-zest'] .panel::after {
    content: '◍'; display: grid; place-items: center; width: 18px; height: 18px; top: 5px; right: 7px;
    background: color-mix(in srgb, var(--world-highlight) 18%, transparent); border: 1px solid color-mix(in srgb, var(--world-accent-secondary) 45%, transparent); border-radius: 50%; color: var(--world-accent-secondary); box-shadow: 0 0 12px var(--world-glow); font-size: 13px;
  }
}

/* Each visual world has its own card choreography. This deliberately targets
   the larger working surfaces, not the dense room rows, so the dashboard feels
   alive without making assignment lists visually jumpy. */
@media screen {
  html[data-theme][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging):not(:where(.print-preview-sheet *, #print-run-root *)) {
    will-change: translate, rotate, scale;
  }
  html[data-world='neon-afterglow'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-neon-pulse 8.4s ease-in-out infinite; }
  html[data-world='afterfall'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-afterfall-settle 11s ease-in-out infinite; }
  html[data-world='lunar-cyborg'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-lunar-orbit 13s ease-in-out infinite; }
  html[data-world='botanical-alchemy'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-botanical-bloom 12s ease-in-out infinite; }
  html[data-world='starfall-archive'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-starfall-levitate 14s ease-in-out infinite; }
  html[data-world='aurora-circuit'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-aurora-pulse 7.6s steps(2, end) infinite; }
  html[data-world='celestial-relic'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-relic-orbit 16s ease-in-out infinite; }
  html[data-world='synthetic-botanica'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-synthetic-breathe 10s ease-in-out infinite; }
  html[data-world='brutalist-signal'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-brutalist-snap 8s steps(2, end) infinite; }
  html[data-world='lunar-porcelain'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-porcelain-glide 17s ease-in-out infinite; }
  html[data-world='chromatic-cartography'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-map-slide 11.5s ease-in-out infinite; }
  html[data-world='dreamframe-os'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-dream-card-float 10s cubic-bezier(.45, 0, .55, 1) infinite; }
  html[data-world='bubbly-zest'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-bubbly-fizz 11s ease-in-out infinite; }
  html[data-theme='confetti'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-confetti-bounce 6.5s ease-in-out infinite; }
  html[data-theme='poolparty'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-poolparty-wave 9.5s ease-in-out infinite; }
  html[data-theme='dystopian'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-dystopian-flicker 7.5s steps(2, end) infinite; }
  html[data-theme='postapocalyptic'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-postapocalyptic-shift 12s ease-in-out infinite; }
  html[data-theme='spookyhalloween'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-spooky-hover 10.5s ease-in-out infinite; }
  html[data-theme='fairytale'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-fairytale-float 13.5s ease-in-out infinite; }
  html[data-theme='darkfairytale'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-darkfairytale-sway 14.5s ease-in-out infinite; }
  html[data-theme='romance'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-romance-heartbeat 7s ease-in-out infinite; }
  html[data-theme='booklover'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-booklover-page-turn 15s ease-in-out infinite; }
  html[data-theme='petlover'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-petlover-pounce 8.2s ease-in-out infinite; }
  html[data-theme='autumn'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-autumn-leaf 12.5s ease-in-out infinite; }
  html[data-theme='coastal'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-coastal-tide 11.8s ease-in-out infinite; }
  html[data-theme='rosewood'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-rosewood-polish 16s ease-in-out infinite; }
  html[data-theme='matcha'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-matcha-steep 13s ease-in-out infinite; }
  html[data-theme='library'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-library-settle 18s ease-in-out infinite; }
  html[data-theme='plants'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-plants-grow 14s ease-in-out infinite; }
  html[data-theme='rain'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-rain-glass 9.8s ease-in-out infinite; }
  html[data-theme='cyberpunk'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-cyberpunk-scan 6.8s steps(2, end) infinite; }
  html[data-theme='anime'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-anime-bob 8.8s ease-in-out infinite; }
  html[data-theme='scifi'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-scifi-orbit 15.5s ease-in-out infinite; }
  html[data-theme='custom'][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-custom-glow 10.8s ease-in-out infinite; }
  html[data-world='glasshouse-after-rain'][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging)::before { animation: glasshouse-card-light-shift 68s ease-in-out infinite; }
  html[data-world='sisyphus-glass'][data-decorative-animations='on'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-sisyphus-glass 12s ease-in-out infinite; }
  html[data-world='sisyphus-terminal'][data-decorative-animations='on'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-sisyphus-terminal 15s steps(2, end) infinite; }

  html[data-theme][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging):nth-child(3n + 2) { animation-delay: -3.2s; }
  html[data-theme][data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging):nth-child(3n) { animation-delay: -6.4s; }

  @keyframes world-card-neon-pulse { 0%,100% { translate: 0 0; rotate: -.06deg; } 50% { translate: 0 -2px; rotate: .1deg; } }
  @keyframes world-card-afterfall-settle { 0%,100% { translate: 0 0; rotate: .04deg; } 48% { translate: 2px 0; rotate: -.08deg; } }
  @keyframes world-card-lunar-orbit { 0%,100% { translate: 0 0; rotate: -.12deg; } 50% { translate: 0 -2px; rotate: .12deg; } }
  @keyframes world-card-winter-sway { 0%,100% { translate: 0 0; rotate: -.06deg; } 50% { translate: -1px -1px; rotate: .08deg; } }
  @keyframes world-card-botanical-bloom { 0%,100% { scale: .998; rotate: -.05deg; } 50% { scale: 1.006; rotate: .08deg; } }
  @keyframes world-card-starfall-levitate { 0%,100% { translate: 0 0; scale: 1; } 50% { translate: 0 -3px; scale: 1.003; } }
  @keyframes world-card-aurora-pulse { 0%,100% { translate: 0 0; } 50% { translate: 1px -1px; } }
  @keyframes world-card-relic-orbit { 0%,100% { translate: 0 0; rotate: -.14deg; } 50% { translate: 1px -2px; rotate: .14deg; } }
  @keyframes world-card-synthetic-breathe { 0%,100% { scale: .997; rotate: -.06deg; } 50% { scale: 1.006; rotate: .1deg; } }
  @keyframes world-card-brutalist-snap { 0%,100% { translate: 0 0; } 50% { translate: 2px -2px; } }
  @keyframes world-card-porcelain-glide { 0%,100% { translate: 0 0; rotate: -.04deg; } 50% { translate: 0 -2px; rotate: .06deg; } }
  @keyframes world-card-map-slide { 0%,100% { translate: 0 0; } 50% { translate: 2px -1px; } }
  @keyframes world-dream-card-float { 0%,100% { translate: 0 0; rotate: -.08deg; } 50% { translate: 0 -3px; rotate: .08deg; } }
  @keyframes world-card-bubbly-fizz { 0%,100% { translate: 0 0; rotate: -.06deg; background-position: 0 0, 0 0, 0% 50%; } 50% { translate: 0 -2px; rotate: .08deg; background-position: 0 0, 0 0, 100% 50%; } }
  @keyframes world-bubbly-edge-car {
    0% { left: 2%; top: 5.5%; transform: rotate(0deg); filter: brightness(1); }
    23% { left: calc(98% - 26px); top: 5.5%; transform: rotate(0deg); filter: brightness(1.25); }
    25% { left: calc(98% - 10px); top: 5%; transform: rotate(90deg); filter: brightness(1); }
    48% { left: calc(98% - 10px); top: calc(94.5% - 26px); transform: rotate(90deg); filter: brightness(1.25); }
    50% { left: calc(98% - 26px); top: calc(94% - 10px); transform: rotate(180deg); filter: brightness(1); }
    73% { left: 2%; top: calc(94% - 10px); transform: rotate(180deg); filter: brightness(1.25); }
    75% { left: 2%; top: calc(94.5% - 26px); transform: rotate(270deg); filter: brightness(1); }
    98% { left: 2%; top: 5%; transform: rotate(270deg); filter: brightness(1.25); }
    100% { left: 2%; top: 5.5%; transform: rotate(360deg); filter: brightness(1); }
  }
  @keyframes world-card-confetti-bounce { 0%,100% { translate: 0 0; rotate: -.15deg; } 50% { translate: 1px -3px; rotate: .16deg; } }
  @keyframes world-card-poolparty-wave { 0%,100% { translate: -1px 0; rotate: -.08deg; } 50% { translate: 2px -2px; rotate: .08deg; } }
  @keyframes world-card-dystopian-flicker { 0%,100% { translate: 0 0; } 50% { translate: 1px -1px; } }
  @keyframes world-card-postapocalyptic-shift { 0%,100% { translate: -1px 0; rotate: -.08deg; } 50% { translate: 2px -1px; rotate: .1deg; } }
  @keyframes world-card-spooky-hover { 0%,100% { translate: 0 0; rotate: -.1deg; } 50% { translate: 0 -3px; rotate: .12deg; } }
  @keyframes world-card-fairytale-float { 0%,100% { translate: 0 0; scale: 1; } 50% { translate: 1px -3px; scale: 1.003; } }
  @keyframes world-card-darkfairytale-sway { 0%,100% { translate: 0 0; rotate: -.13deg; } 50% { translate: -1px -2px; rotate: .14deg; } }
  @keyframes world-card-romance-heartbeat { 0%,100% { scale: 1; } 42% { scale: 1.005; } 50% { scale: 1.002; } }
  @keyframes world-card-booklover-page-turn { 0%,100% { translate: 0 0; rotate: -.08deg; } 50% { translate: 2px -1px; rotate: .12deg; } }
  @keyframes world-card-petlover-pounce { 0%,100% { translate: 0 0; scale: 1; } 50% { translate: 0 -3px; scale: 1.004; } }
  @keyframes world-card-autumn-leaf { 0%,100% { translate: -1px 0; rotate: -.16deg; } 50% { translate: 2px -2px; rotate: .16deg; } }
  @keyframes world-card-coastal-tide { 0%,100% { translate: -2px 0; } 50% { translate: 2px -1px; } }
  @keyframes world-card-rosewood-polish { 0%,100% { scale: 1; rotate: -.04deg; } 50% { scale: 1.003; rotate: .05deg; } }
  @keyframes world-card-matcha-steep { 0%,100% { translate: 0 0; scale: .999; } 50% { translate: 0 -2px; scale: 1.003; } }
  @keyframes world-card-library-settle { 0%,100% { translate: 0 0; rotate: -.03deg; } 50% { translate: 1px -1px; rotate: .05deg; } }
  @keyframes world-card-plants-grow { 0%,100% { scale: .998; rotate: -.08deg; } 50% { scale: 1.005; rotate: .1deg; } }
  @keyframes world-card-rain-glass { 0%,100% { translate: -1px 0; } 50% { translate: 1px -2px; } }
  @keyframes world-card-cyberpunk-scan { 0%,100% { translate: 0 0; } 50% { translate: 2px 0; } }
  @keyframes world-card-anime-bob { 0%,100% { translate: 0 0; rotate: -.1deg; } 50% { translate: 0 -3px; rotate: .12deg; } }
  @keyframes world-card-scifi-orbit { 0%,100% { translate: 0 0; rotate: -.12deg; } 50% { translate: 2px -2px; rotate: .13deg; } }
  @keyframes world-card-custom-glow { 0%,100% { scale: .999; } 50% { scale: 1.004; } }
  @keyframes world-card-sisyphus-glass { 0%,100% { box-shadow: 0 26px 54px -30px rgba(2, 20, 31, .72), 0 10px 22px -16px rgba(4, 31, 43, .6), inset 0 1px 0 rgba(255, 255, 255, .56); } 50% { box-shadow: 0 30px 60px -32px rgba(2, 20, 31, .8), 0 12px 25px -16px color-mix(in srgb, var(--world-accent) 38%, transparent), inset 0 1px 0 rgba(255, 255, 255, .62); } }
  @keyframes world-card-sisyphus-terminal { 0%, 96%, 100% { translate: 0 0; filter: none; } 96.4% { translate: -1px 0; filter: saturate(1.6); } 97% { translate: 2px 0; filter: contrast(1.4); } 97.6% { translate: 0 0; filter: none; } }
  @keyframes glasshouse-card-light-shift { 0%,100% { opacity:.5; } 52% { opacity:.88; } }
}


/* Source: sisyphus-glass.css */
/* Sisyphus Glass — a quiet, tactile glassmorphism layer for the operational UI. */
@media screen {
  html[data-world='sisyphus-glass'] {
    --sisyphus-glass-white: rgba(255, 255, 255, .72);
    --sisyphus-glass-shadow: 0 28px 58px -32px rgba(4, 28, 39, .78), 0 12px 26px -18px rgba(3, 57, 68, .58);
    --sisyphus-glass-inner: inset 0 1px 0 rgba(255, 255, 255, .58), inset 0 -1px 0 rgba(198, 255, 243, .18);
    background: #0b2430;
  }
  html[data-world='sisyphus-glass'] body,
  html[data-world='sisyphus-glass'] .workspace {
    background: radial-gradient(circle at 12% 8%, rgba(173, 255, 221, .32), transparent 31%), radial-gradient(circle at 88% 18%, rgba(112, 181, 255, .25), transparent 34%), linear-gradient(125deg, #dff6e9 0%, #80c9b7 38%, #245c72 72%, #071b2a 100%) !important;
    background-size: 135% 135%;
    animation: sisyphus-glass-gradient 34s ease-in-out infinite alternate;
  }
  html[data-world='sisyphus-glass'] .workspace::before,
  html[data-world='sisyphus-glass'] .workspace::after {
    content: ''; position: fixed; inset: -18%; pointer-events: none; z-index: -1; opacity: .52; filter: blur(38px); mix-blend-mode: screen;
  }
  html[data-world='sisyphus-glass'] .workspace::before { background: radial-gradient(ellipse at 30% 20%, rgba(221, 255, 241, .55), transparent 44%); animation: sisyphus-glass-orbit 22s ease-in-out infinite alternate; }
  html[data-world='sisyphus-glass'] .workspace::after { background: radial-gradient(ellipse at 78% 65%, rgba(122, 210, 255, .3), transparent 42%); animation: sisyphus-glass-orbit 29s ease-in-out -9s infinite alternate-reverse; }
  html[data-world='sisyphus-glass'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *)) {
    position: relative; isolation: isolate; overflow: hidden;
    background: linear-gradient(145deg, rgba(255, 255, 255, .2), rgba(255, 255, 255, .07)) !important;
    border: 1px solid var(--sisyphus-glass-white) !important; box-shadow: var(--sisyphus-glass-shadow), var(--sisyphus-glass-inner) !important;
    -webkit-backdrop-filter: blur(22px) saturate(145%); backdrop-filter: blur(22px) saturate(145%);
    transition: transform .38s cubic-bezier(.2, .8, .2, 1), box-shadow .38s ease, border-color .38s ease;
  }
  html[data-world='sisyphus-glass'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging)::before {
    content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0;
    background: linear-gradient(112deg, transparent 35%, rgba(255, 255, 255, .26) 48%, transparent 61%); background-size: 220% 100%; transition: opacity .28s ease;
  }
  html[data-world='sisyphus-glass'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging):hover {
    transform: translateY(-5px) scale(1.005); border-color: rgba(255, 255, 255, .94) !important;
    box-shadow: 0 38px 72px -34px rgba(2, 20, 31, .9), 0 18px 32px -18px rgba(55, 224, 199, .42), var(--sisyphus-glass-inner) !important;
  }
  html[data-world='sisyphus-glass'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging):hover::before { opacity: 1; animation: sisyphus-glass-shimmer 1.25s ease-out both; }
  html[data-world='sisyphus-glass'] .task-row.sisyphus-overdue { border-color: rgba(255, 173, 184, .86) !important; animation: sisyphus-glass-alert-pulse 3.6s ease-in-out infinite; }
  html[data-world='sisyphus-glass'] .sisyphus-pop { animation: sisyphus-glass-task-pop .62s cubic-bezier(.2, 1.5, .4, 1) both !important; }
  @keyframes sisyphus-glass-gradient { 0% { background-position: 0% 20%; } 100% { background-position: 100% 80%; } }
  @keyframes sisyphus-glass-orbit { 0% { translate: -3% -2%; scale: .96; } 100% { translate: 5% 4%; scale: 1.08; } }
  @keyframes sisyphus-glass-shimmer { from { background-position: 160% 0; } to { background-position: -40% 0; } }
  @keyframes sisyphus-glass-task-pop { 0% { scale: 1; } 42% { scale: 1.035; } 72% { scale: .99; } 100% { scale: 1; } }
  @keyframes sisyphus-glass-alert-pulse { 0%, 100% { box-shadow: var(--sisyphus-glass-shadow), 0 0 0 0 rgba(255, 173, 184, 0); } 50% { box-shadow: var(--sisyphus-glass-shadow), 0 0 24px 2px rgba(255, 173, 184, .34); } }
}
@media (prefers-reduced-motion: reduce) {
  html[data-world='sisyphus-glass'] :is(body, .workspace, .workspace::before, .workspace::after, .task-row.sisyphus-overdue, .sisyphus-pop) { animation: none !important; }
  html[data-world='sisyphus-glass'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):hover { transform: none; }
}
@media print {
  html[data-world='sisyphus-glass'] :is(body, .workspace) { background: white !important; animation: none !important; }
  html[data-world='sisyphus-glass'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card) { -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none !important; }
}


/* Source: sisyphus-terminal.css */
/* Sisyphus Terminal — oxidized steel, CRT phosphor, and hard operational edges. */
@media screen {
  html[data-world='sisyphus-terminal'] {
    --terminal-black: #1a1a1a;
    --terminal-cyan: #00ffff;
    --terminal-red: #ff4500;
    --terminal-amber: #ffbf00;
    --terminal-steel: rgba(198, 210, 204, .2);
    --terminal-shadow: inset 0 0 0 1px rgba(0, 0, 0, .95), inset 0 0 24px rgba(0, 0, 0, .72), 0 16px 30px -22px #000;
    background: var(--terminal-black);
    color-scheme: dark;
  }

  html[data-world='sisyphus-terminal'] body,
  html[data-world='sisyphus-terminal'] .workspace {
    background-color: var(--terminal-black) !important;
    background-image:
      radial-gradient(ellipse at 16% 12%, rgba(255, 69, 0, .1), transparent 26%),
      radial-gradient(ellipse at 80% 70%, rgba(0, 255, 255, .07), transparent 32%),
      repeating-linear-gradient(12deg, rgba(255, 255, 255, .025) 0 1px, transparent 1px 5px),
      repeating-linear-gradient(93deg, rgba(0, 0, 0, .33) 0 2px, transparent 2px 11px),
      linear-gradient(135deg, #242424 0%, #101010 52%, #1c1b18 100%) !important;
    color: var(--world-text);
  }

  html[data-world='sisyphus-terminal'] .workspace::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 30;
    opacity: .22;
    mix-blend-mode: screen;
    background: repeating-linear-gradient(0deg, rgba(0, 255, 255, .12) 0 1px, transparent 1px 4px);
    animation: sisyphus-terminal-scanlines .22s steps(2, end) infinite;
  }
  html[data-world='sisyphus-terminal'] .workspace::after {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 31;
    opacity: .055;
    background-image: radial-gradient(rgba(255, 255, 255, .9) .7px, transparent .9px);
    background-size: 5px 5px;
    animation: sisyphus-terminal-static .17s steps(2, end) infinite;
  }

  html[data-world='sisyphus-terminal'] .workspace,
  html[data-world='sisyphus-terminal'] #app-view {
    animation: sisyphus-terminal-jitter 15s steps(1, end) infinite;
  }

  html[data-world='sisyphus-terminal'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *)) {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
      linear-gradient(90deg, rgba(0, 255, 255, .035), transparent 18%, transparent 80%, rgba(255, 69, 0, .035)),
      linear-gradient(145deg, rgba(65, 68, 65, .92), rgba(17, 18, 18, .96)) !important;
    border: 1px solid rgba(145, 160, 153, .62) !important;
    box-shadow: var(--terminal-shadow) !important;
    text-shadow: 0 0 8px rgba(0, 255, 255, .18);
    transform: perspective(900px) rotateX(.12deg);
  }
  html[data-world='sisyphus-terminal'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card)::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    opacity: .44;
    background: repeating-linear-gradient(0deg, transparent 0 6px, rgba(0, 0, 0, .18) 6px 7px);
    mix-blend-mode: multiply;
  }
  html[data-world='sisyphus-terminal'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card)::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 2;
    opacity: .16;
    background: linear-gradient(105deg, transparent 0 42%, rgba(0, 255, 255, .35) 49%, transparent 57%);
    background-size: 240% 100%;
    animation: sisyphus-terminal-glitch-sweep 7s steps(2, end) infinite;
  }
  html[data-world='sisyphus-terminal'] :is(.panel-head, .topbar, .sidebar, .mobile-nav-bar, #mobile-nav-sheet) {
    background: linear-gradient(180deg, #353837, #111212) !important;
    border-color: rgba(133, 147, 142, .7) !important;
    box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .65), 0 12px 24px -20px #000 !important;
  }
  html[data-world='sisyphus-terminal'] :is(h1, h2, h3, .panel-head strong, .eyebrow, .topbar h1) { color: var(--terminal-cyan) !important; text-shadow: 0 0 9px rgba(0, 255, 255, .56); letter-spacing: .035em; }
  html[data-world='sisyphus-terminal'] :is(.muted, .secondary, .faint) { color: #b4c7c4 !important; }
  html[data-world='sisyphus-terminal'] :is(.status-badge, .badge, .room-list-count) { border-color: currentColor !important; box-shadow: 0 0 8px currentColor; }
  html[data-world='sisyphus-terminal'] :is(.status-badge.waiting, .notification-kind.maintenance) { color: var(--terminal-amber) !important; }
  html[data-world='sisyphus-terminal'] :is(.status-badge.danger, .notification-kind.error) { color: var(--terminal-red) !important; }
  html[data-world='sisyphus-terminal'] :is(.button, button, select, input, textarea) {
    border-radius: var(--world-control) !important;
    border-color: rgba(0, 255, 255, .65) !important;
    background: #151919 !important;
    color: var(--terminal-cyan) !important;
    box-shadow: inset 0 0 0 1px rgba(0, 255, 255, .09), 0 0 0 rgba(0, 255, 255, 0);
    font-family: var(--font-mono, 'Space Mono', monospace);
  }
  html[data-world='sisyphus-terminal'] :is(.button, button):hover {
    animation: sisyphus-terminal-button-flash .23s steps(2, end) infinite;
    box-shadow: inset 0 0 0 1px var(--terminal-red), 0 0 15px rgba(255, 69, 0, .7) !important;
  }
  html[data-world='sisyphus-terminal'] :is(.button.primary, button.primary, .button.warning, button.warning) { color: var(--terminal-amber) !important; border-color: var(--terminal-amber) !important; }
  html[data-world='sisyphus-terminal'] .task-row.sisyphus-overdue,
  html[data-world='sisyphus-terminal'] .notification-row.maintenance { color: var(--terminal-amber); border-inline-start: 3px solid var(--terminal-red); }
  html[data-world='sisyphus-terminal'] .terminal-alert-slam { animation: sisyphus-terminal-alert-slam .72s cubic-bezier(.16, 1.2, .3, 1) both; }

  /* A small vector loop lives in the rail: the operator, the rock, and the climb. */
  /* Keep the rail in the app shell's fixed column. A relative rail makes the
     workspace reserve the sidebar width twice and breaks the mobile dock. */
  html[data-world='sisyphus-terminal'] .sidebar { position: fixed; overflow: hidden; }
  html[data-world='sisyphus-terminal'] .sidebar nav { padding-bottom: 72px; }
  html[data-world='sisyphus-terminal'] .sidebar::after {
    content: '';
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 76px;
    height: 64px;
    pointer-events: none;
    opacity: .82;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 88'%3E%3Cpath d='M7 76H173M17 67 63 40l35 17 61-39' stroke='%2300ffff' stroke-width='2' fill='none' opacity='.7'/%3E%3Ccircle cx='111' cy='52' r='8' fill='%23ffbf00' stroke='%23ff4500' stroke-width='2'/%3E%3Cpath d='M63 55 72 43l10 8M75 45V29M71 32l5-7 6 7' stroke='%23ff4500' stroke-width='3' fill='none'/%3E%3Cpath d='M18 17h72M18 23h43' stroke='%23ff4500' stroke-width='2' opacity='.65'/%3E%3C/svg%3E") center / contain no-repeat;
    animation: sisyphus-terminal-push 4.8s steps(6, end) infinite;
  }

  @keyframes sisyphus-terminal-scanlines { 0%, 100% { background-position: 0 0; } 50% { background-position: 0 4px; } }
  @keyframes sisyphus-terminal-static { 0% { background-position: 0 0; } 25% { background-position: 4px -3px; } 50% { background-position: -2px 4px; } 75% { background-position: 3px 2px; } 100% { background-position: -4px -1px; } }
  @keyframes sisyphus-terminal-jitter { 0%, 96%, 100% { translate: 0 0; filter: none; } 96.2% { translate: -2px 0; filter: contrast(1.35); } 96.6% { translate: 3px 1px; filter: saturate(1.7); } 97% { translate: -1px -1px; filter: contrast(1.5); } 97.5% { translate: 0 0; filter: none; } }
  @keyframes sisyphus-terminal-glitch-sweep { 0%, 88%, 100% { background-position: 140% 0; opacity: .08; } 89% { background-position: 20% 0; opacity: .34; } 91% { background-position: -40% 0; opacity: .08; } }
  @keyframes sisyphus-terminal-button-flash { 0%, 100% { color: var(--terminal-cyan) !important; border-color: var(--terminal-cyan) !important; } 50% { color: var(--terminal-red) !important; border-color: var(--terminal-red) !important; } }
  @keyframes sisyphus-terminal-alert-slam { 0% { translate: 36px -8px; scale: 1.08 .84; opacity: 0; filter: brightness(3) saturate(2); box-shadow: 0 0 26px var(--terminal-red); } 48% { translate: -4px 0; scale: .98 1.03; opacity: 1; filter: brightness(1.8); } 72% { translate: 2px 0; scale: 1.01 .99; filter: brightness(1.1); } 100% { translate: 0 0; scale: 1; opacity: 1; filter: none; } }
  @keyframes sisyphus-terminal-push { 0%, 100% { translate: -4px 0; } 50% { translate: 5px -2px; } }

  /* The console can still be used in light mode: keep the rail readable and
     keep the desktop loop out of the compact mobile navigation dock. */
  html[data-world='sisyphus-terminal']:not([data-mode='dark']) {
    color-scheme: light;
  }
  html[data-world='sisyphus-terminal']:not([data-mode='dark']) :is(.sidebar, .topbar, .mobile-nav-bar, #mobile-nav-sheet) {
    background: linear-gradient(180deg, #f0efe7, #d7d7d0) !important;
    color: #10282a !important;
    border-color: rgba(0, 75, 80, .42) !important;
    box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .18), 0 12px 24px -20px rgba(0, 0, 0, .45) !important;
  }
  html[data-world='sisyphus-terminal']:not([data-mode='dark']) :is(.brand strong, .brand span, .nav-item, .sidebar-foot, .sidebar-foot .muted, .topbar h1, .topbar .eyebrow, .mobile-nav-selector-label, .mobile-nav-sheet-head strong, .mobile-nav-sheet-item, .mobile-nav-sheet-reorder, .mobile-nav-sheet-reorder span, .nav-reorder-hint) {
    color: #10282a !important;
  }
  html[data-world='sisyphus-terminal']:not([data-mode='dark']) :is(.nav-item, .mobile-nav-sheet-item, .nav-reorder-btn, #mobile-nav-select, .nav-room-search button) {
    background: transparent !important;
    color: #10282a !important;
    border-color: rgba(0, 75, 80, .42) !important;
    box-shadow: none !important;
  }
  html[data-world='sisyphus-terminal']:not([data-mode='dark']) :is(.nav-item span, .mobile-nav-sheet-item span, .mobile-nav-selector-chevron, .nav-room-search button) {
    color: #004b50 !important;
  }
  html[data-world='sisyphus-terminal']:not([data-mode='dark']) :is(.nav-item:hover, .nav-item.active, .mobile-nav-sheet-item:hover, .mobile-nav-sheet-item.active) {
    background: linear-gradient(180deg, rgba(0, 107, 112, .16), rgba(0, 107, 112, .07)) !important;
    color: #10282a !important;
    border-color: rgba(0, 75, 80, .58) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8) !important;
  }
  html[data-world='sisyphus-terminal']:not([data-mode='dark']) #mobile-nav-select {
    background: linear-gradient(180deg, #f0efe7, #d7d7d0) !important;
    color: #10282a !important;
    border-color: #004b50 !important;
    color-scheme: light;
  }
  html[data-world='sisyphus-terminal']:not([data-mode='dark']) :is(.nav-room-search, .nav-room-search input) {
    color: #10282a !important;
  }
  html[data-world='sisyphus-terminal']:not([data-mode='dark']) .nav-room-search input::placeholder {
    color: #385c5e !important;
  }
  html[data-world='sisyphus-terminal']:not([data-mode='dark']) .topbar :is(button, .button) {
    background: #f0efe7 !important;
    color: #004b50 !important;
    border-color: #004b50 !important;
  }

  @media (max-width: 700px) {
    html[data-world='sisyphus-terminal'] .sidebar {
      position: fixed;
      overflow: visible;
    }
    html[data-world='sisyphus-terminal'] .mobile-nav-dock-tools {
      display: grid !important;
      grid-template-columns: minmax(0, 1fr) minmax(132px, .9fr);
      width: 100%;
      min-width: 0;
    }
    html[data-world='sisyphus-terminal'] .mobile-nav-selector-control {
      display: grid !important;
      min-width: 0;
    }
    html[data-world='sisyphus-terminal'] #mobile-nav-select {
      display: block !important;
      visibility: visible !important;
      opacity: 1 !important;
    }
    html[data-world='sisyphus-terminal'] .sidebar nav {
      padding-bottom: 0;
    }
    html[data-world='sisyphus-terminal'] .sidebar::after {
      display: none !important;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-world='sisyphus-terminal'] :is(body, .workspace, #app-view, .workspace::before, .workspace::after, .sidebar::after, .terminal-alert-slam, .sisyphus-overdue) { animation: none !important; }
}

@media print {
  html[data-world='sisyphus-terminal'] :is(body, .workspace) { background: white !important; }
  html[data-world='sisyphus-terminal'] :is(.workspace::before, .workspace::after, .sidebar::after) { display: none !important; }
}


/* Source: enchanted-grove.css */
/* Enchanted Grove — an original, bright forest-world treatment for Sisyphus. */
@media screen {
  html[data-world='enchanted-grove']:not([data-story-world]) {
    --grove-moss: #1a4f1a;
    --grove-fairy: #00ffff;
    --grove-gold: #ffd700;
    --grove-amber: #ffbf00;
    --grove-shadow: 0 20px 42px -26px color-mix(in srgb, var(--world-deep) 92%, #07170f), inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 58%, transparent);
    /* Keep the shared operational components on the Grove palette. These
       aliases intentionally follow the live world tokens so custom accents
       still work without importing another theme's pink/blue defaults. */
    --bg: var(--world-background);
    --panel: var(--world-surface);
    --surface: var(--world-elevated);
    --surface-2: var(--world-elevated);
    --text: var(--world-text);
    --secondary: var(--world-secondary);
    --muted: var(--world-secondary);
    --faint: var(--world-secondary);
    --accent: var(--world-accent);
    --accent-hover: var(--world-highlight);
    --accent-ink: var(--world-accent);
    --on-accent: var(--world-on-accent);
    --border: var(--world-border);
    --border-soft: color-mix(in srgb, var(--world-border) 42%, transparent);
    --accent-soft: color-mix(in srgb, var(--world-accent) 12%, transparent);
    --glow: var(--world-glow);
    --ring: var(--world-accent);
    --danger: var(--world-danger);
    --success: var(--world-success);
    --sheet-ink: var(--world-text);
    --font: var(--world-font);
    --font-display: var(--world-font);
    --studio-card-surface: var(--world-surface);
    --studio-card-shadow: var(--world-shadow);
    --atm-ink: var(--world-text);
    --atm-secondary: var(--world-accent-secondary);
    background: var(--world-background) !important;
    color-scheme: light;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) { --theme-badge-radius: 50% 12px 50% 12px; --theme-badge-clip: polygon(50% 0, 62% 35%, 100% 50%, 63% 64%, 50% 100%, 37% 64%, 0 50%, 37% 35%); }

  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='dark'] { color-scheme: dark; }

  html[data-world='enchanted-grove']:not([data-story-world]) body,
  html[data-world='enchanted-grove']:not([data-story-world]) .workspace {
    background:
      radial-gradient(ellipse at 18% 10%, color-mix(in srgb, var(--grove-gold) 18%, transparent), transparent 30%),
      radial-gradient(ellipse at 82% 76%, color-mix(in srgb, var(--grove-fairy) 12%, transparent), transparent 36%),
      linear-gradient(145deg, var(--world-deep), var(--world-background) 47%, color-mix(in srgb, var(--grove-moss) 36%, var(--world-background))) !important;
    color: var(--world-text);
  }

  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] body,
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] .workspace {
    background:
      radial-gradient(ellipse at 50% 2%, #fff7c9 0 8%, transparent 40%),
      linear-gradient(145deg, #c9dbb7, var(--world-background) 50%, #b4cfaa) !important;
  }

  html[data-world='enchanted-grove']:not([data-story-world]) .world-atmosphere { display: block !important; opacity: .82; }
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] .world-atmosphere { opacity: .72; }
  html[data-world='enchanted-grove']:not([data-story-world]) .world-base {
    inset: -12%;
    background:
      radial-gradient(ellipse at 48% 22%, color-mix(in srgb, var(--grove-gold) 24%, transparent), transparent 28%),
      radial-gradient(ellipse at 72% 76%, color-mix(in srgb, var(--grove-fairy) 14%, transparent), transparent 31%),
      linear-gradient(160deg, #061812 0%, var(--world-background) 50%, #1a4f1a 100%);
    animation-name: enchanted-grove-breeze;
  }
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] .world-base {
    background:
      radial-gradient(ellipse at 50% 17%, #ffe89a 0 2%, transparent 34%),
      linear-gradient(160deg, #b8d0a7 0%, var(--world-background) 52%, #7ba174 100%);
  }
  html[data-world='enchanted-grove']:not([data-story-world]) .world-horizon {
    inset: 18% -8% -8%;
    opacity: .34;
    background:
      linear-gradient(82deg, transparent 0 8%, color-mix(in srgb, var(--world-deep) 78%, transparent) 8% 12%, transparent 12% 25%, color-mix(in srgb, var(--world-deep) 62%, transparent) 25% 30%, transparent 30% 46%, color-mix(in srgb, var(--world-deep) 72%, transparent) 46% 52%, transparent 52% 70%, color-mix(in srgb, var(--world-deep) 70%, transparent) 70% 76%, transparent 76%),
      linear-gradient(178deg, transparent 0 65%, color-mix(in srgb, var(--grove-moss) 56%, transparent) 65% 100%);
    clip-path: polygon(0 100%, 0 64%, 8% 55%, 14% 63%, 25% 43%, 33% 60%, 46% 49%, 56% 66%, 67% 45%, 78% 61%, 88% 40%, 100% 58%, 100% 100%);
    animation-name: enchanted-grove-canopy;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) .world-silhouette {
    inset: 60% -8% -8%;
    opacity: .43;
    background:
      radial-gradient(ellipse at 14% 88%, var(--world-deep) 0 22%, transparent 23%),
      radial-gradient(ellipse at 78% 88%, color-mix(in srgb, var(--grove-moss) 78%, var(--world-deep)) 0 30%, transparent 31%),
      linear-gradient(175deg, transparent 0 22%, color-mix(in srgb, var(--world-deep) 74%, transparent) 22% 100%);
    clip-path: polygon(0 100%, 0 55%, 6% 47%, 13% 53%, 21% 34%, 27% 51%, 36% 42%, 44% 57%, 54% 37%, 63% 52%, 71% 28%, 78% 48%, 88% 39%, 100% 52%, 100% 100%);
    animation-name: enchanted-grove-canopy;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) .world-particles {
    opacity: .42;
    background-image: radial-gradient(circle, #b6ff9c 0 1px, transparent 2px), radial-gradient(circle, #63ecff 0 .9px, transparent 2px);
    background-size: 109px 137px, 197px 231px;
    animation-name: enchanted-grove-fireflies;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) .world-particles-mid {
    opacity: .27;
    background-image: radial-gradient(circle, #00ffff 0 1.4px, transparent 3px), radial-gradient(circle, #ffd700 0 1.2px, transparent 3px);
    background-size: 179px 223px, 277px 191px;
    animation-name: enchanted-grove-fireflies;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) .world-particles-near {
    opacity: .18;
    background-image: radial-gradient(circle, #fff6b1 0 1.5px, transparent 4px);
    background-size: 317px 241px;
    animation-name: enchanted-grove-fairy-drift;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) .world-orbits { opacity: .08; }
  html[data-world='enchanted-grove']:not([data-story-world]) .world-rare {
    inset: 8% 12% 18%;
    background: radial-gradient(ellipse at var(--world-rare-x) var(--world-rare-y), color-mix(in srgb, var(--grove-gold) 32%, transparent), transparent 36%);
  }
  html[data-world='enchanted-grove']:not([data-story-world]) .world-atmosphere[data-event] .world-rare { animation: enchanted-grove-sunbeam 8s ease-in-out both; }

  html[data-world='enchanted-grove']:not([data-story-world]) .nook-light-plane {
    display: block;
    position: fixed;
    inset: -20% -12%;
    z-index: 0;
    pointer-events: none;
    opacity: .28;
    background: repeating-linear-gradient(112deg, transparent 0 12%, color-mix(in srgb, var(--grove-gold) 22%, transparent) 13% 17%, transparent 18% 31%);
    filter: blur(12px);
    mix-blend-mode: screen;
    animation: enchanted-grove-rays 31s ease-in-out infinite alternate;
  }
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] .nook-light-plane { opacity: .46; }

  html[data-world='enchanted-grove']:not([data-story-world]) :is(.sidebar, .topbar, .mobile-nav-bar, #mobile-nav-sheet) {
    background: linear-gradient(160deg, color-mix(in srgb, var(--world-deep) 94%, var(--grove-moss)), color-mix(in srgb, var(--world-surface) 66%, var(--world-deep))) !important;
    border-color: color-mix(in srgb, var(--grove-gold) 48%, var(--world-border)) !important;
    box-shadow: 0 18px 42px -30px var(--world-deep), inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 38%, transparent) !important;
  }
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] :is(.sidebar, .topbar, .mobile-nav-bar, #mobile-nav-sheet) {
    background: linear-gradient(160deg, #365d3b, #1a4f1a) !important;
    color: #f5f5dc !important;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) .sidebar::after {
    content: '';
    position: absolute;
    inset: auto 18px 24px;
    height: 116px;
    pointer-events: none;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 116'%3E%3Cpath d='M8 101h218' stroke='%23ffd700' stroke-opacity='.28' stroke-width='3'/%3E%3Cpath d='M24 99 204 31' stroke='%23b7a16b' stroke-opacity='.55' stroke-width='3'/%3E%3Ccircle cx='190' cy='36' r='17' fill='%23ffd700' fill-opacity='.82' stroke='%23fff1a0' stroke-width='3'/%3E%3Ccircle cx='184' cy='30' r='4' fill='%23fffbd1'/%3E%3Cpath d='M152 65c-11-15-24-12-30-1l11 3-16 11m21-14-5 24m-11-3 17 4m-11-31-1-15' fill='none' stroke='%2378c878' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='122' cy='39' r='6' fill='%23c8efb0'/%3E%3Cpath d='M128 63 157 50' stroke='%2378c878' stroke-width='6' stroke-linecap='round'/%3E%3Ccircle cx='77' cy='77' r='3' fill='%2300ffff'/%3E%3Ccircle cx='45' cy='44' r='2' fill='%2300ffff'/%3E%3C/svg%3E") center / contain no-repeat;
    opacity: .76;
    animation: enchanted-grove-push 4.8s ease-in-out infinite;
  }
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] .sidebar::after { opacity: .9; }

  html[data-world='enchanted-grove']:not([data-story-world]) :is(.brand strong, .brand span, .nav-item, .sidebar-foot, .sidebar-foot .muted, .topbar h1, .topbar .eyebrow, .mobile-nav-selector-label, .mobile-nav-sheet-head strong, .mobile-nav-sheet-item, .mobile-nav-sheet-reorder, .nav-reorder-hint) {
    color: #f5f5dc !important;
    text-shadow: 0 1px 9px color-mix(in srgb, var(--grove-fairy) 34%, transparent);
  }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.nav-item, .mobile-nav-sheet-item) { border-bottom: 1px solid color-mix(in srgb, var(--grove-gold) 24%, transparent); }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.nav-item.active, .mobile-nav-sheet-item.active, [aria-selected='true']) {
    background: radial-gradient(circle at 18% 50%, color-mix(in srgb, var(--grove-fairy) 32%, transparent), transparent 42%), color-mix(in srgb, var(--grove-moss) 82%, transparent) !important;
    box-shadow: inset 4px 0 var(--grove-gold), 0 0 24px color-mix(in srgb, var(--grove-fairy) 38%, transparent) !important;
  }

  html[data-world='enchanted-grove']:not([data-story-world]) #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *)) {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(135deg, color-mix(in srgb, var(--world-surface) 93%, white), color-mix(in srgb, var(--world-elevated) 82%, var(--grove-fairy))) !important;
    border: 1px solid color-mix(in srgb, var(--world-border) 72%, var(--grove-gold)) !important;
    box-shadow: var(--grove-shadow) !important;
    backdrop-filter: blur(8px) saturate(1.08);
  }
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='dark'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: linear-gradient(135deg, color-mix(in srgb, var(--world-surface) 92%, #46764a), color-mix(in srgb, var(--world-elevated) 72%, var(--world-deep))) !important;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card)::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: radial-gradient(circle at 92% 14%, color-mix(in srgb, var(--grove-fairy) 18%, transparent) 0 2px, transparent 3px), radial-gradient(circle at 10% 76%, color-mix(in srgb, var(--grove-gold) 18%, transparent) 0 2px, transparent 4px);
    opacity: .7;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.panel-head, .topbar) { border-bottom-color: color-mix(in srgb, var(--grove-gold) 45%, var(--world-border)) !important; }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.panel-head h3, .eyebrow, .topbar h1) { color: var(--world-accent) !important; text-shadow: 0 0 10px color-mix(in srgb, var(--grove-fairy) 38%, transparent); }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.button, button, select, input, textarea) { border-color: color-mix(in srgb, var(--world-border) 82%, var(--grove-gold)) !important; }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.button.primary, button.primary) { background: linear-gradient(135deg, var(--world-accent), var(--world-highlight)) !important; color: #07362b !important; }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.button, button):hover { box-shadow: 0 0 0 2px color-mix(in srgb, var(--grove-fairy) 22%, transparent), 0 0 22px color-mix(in srgb, var(--grove-fairy) 46%, transparent) !important; }

  html[data-world='enchanted-grove']:not([data-story-world]) :is(.room-card.finished, .strip-room-row.finished, .task-row.done, .need-list-row.need-list-done, .todo-item.done) {
    animation: enchanted-grove-complete .9s cubic-bezier(.2, 1.35, .35, 1) both;
    border-color: color-mix(in srgb, var(--grove-gold) 72%, var(--world-border)) !important;
    box-shadow: var(--grove-shadow), 0 0 30px color-mix(in srgb, var(--grove-gold) 36%, transparent) !important;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.room-card.finished, .task-row.done)::after {
    content: '✦  ·  ✧';
    position: absolute;
    top: 12px;
    right: 18px;
    color: var(--grove-gold);
    text-shadow: 0 0 12px var(--grove-gold);
    pointer-events: none;
    animation: enchanted-grove-sparkle 1.1s ease-out both;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) .sisyphus-overdue { border-inline-start: 4px solid var(--grove-amber) !important; box-shadow: 0 0 18px color-mix(in srgb, var(--grove-amber) 32%, transparent) !important; }

  @media (hover: hover) {
    html[data-world='enchanted-grove']:not([data-story-world]) :is(.panel, .room-card, .metric):not(.card-dragging):hover {
      transform: var(--world-lift);
      box-shadow: var(--grove-shadow), 0 0 28px color-mix(in srgb, var(--grove-fairy) 34%, transparent) !important;
    }
    html[data-world='enchanted-grove']:not([data-story-world]) :is(.panel, .room-card, .metric):not(.card-dragging):hover::before {
      background: radial-gradient(circle at 87% 16%, var(--grove-fairy) 0 2px, transparent 3px), radial-gradient(circle at 92% 25%, var(--grove-gold) 0 1.5px, transparent 3px), linear-gradient(105deg, transparent 0 38%, color-mix(in srgb, white 45%, transparent) 48%, transparent 58%);
      background-size: auto, auto, 220% 100%;
      animation: enchanted-grove-card-glint 1.2s ease-out both;
    }
  }

  html[data-world='enchanted-grove']:not([data-story-world])[data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: enchanted-grove-card-breathe 16s ease-in-out infinite; }

  html[data-world='enchanted-grove']:not([data-story-world])[data-background-animations='off'] :is(.world-horizon, .world-silhouette, .world-orbits, .world-particles, .world-particles-mid, .world-particles-near, .nook-light-plane),
  html[data-world='enchanted-grove']:not([data-story-world]).world-page-hidden :is(.world-horizon, .world-silhouette, .world-orbits, .world-particles, .world-particles-mid, .world-particles-near, .nook-light-plane),
  html[data-world='enchanted-grove']:not([data-story-world]).world-focus-mode .nook-light-plane { animation-play-state: paused !important; }
  html[data-world='enchanted-grove']:not([data-story-world])[data-background-animations='off'] .nook-light-plane { opacity: .12; }
  @media (prefers-reduced-motion: reduce) {
    html[data-world='enchanted-grove']:not([data-story-world]) :is(.world-base, .world-horizon, .world-silhouette, .world-orbits, .world-particles, .world-particles-mid, .world-particles-near, .world-rare, .nook-light-plane, .sidebar::after, .room-card.finished, .task-row.done) { animation: none !important; }
  }

  @keyframes enchanted-grove-breeze { from { transform: translate3d(-1.5%, -1%, 0) scale(1.03); } to { transform: translate3d(1.5%, 1%, 0) scale(1.06); } }
  @keyframes enchanted-grove-canopy { from { transform: translateX(-1.4%); } to { transform: translateX(1.4%); } }
  @keyframes enchanted-grove-fireflies { 0%, 100% { transform: translate3d(-1%, 0, 0); opacity: .25; } 50% { transform: translate3d(1.5%, -2%, 0); opacity: .72; } }
  @keyframes enchanted-grove-fairy-drift { 0% { transform: translate3d(-2%, 3%, 0); } 50% { transform: translate3d(2%, -2%, 0); } 100% { transform: translate3d(-1%, 1%, 0); } }
  @keyframes enchanted-grove-sunbeam { 0% { opacity: 0; transform: translateX(-3%); } 35%, 72% { opacity: .8; } 100% { opacity: 0; transform: translateX(3%); } }
  @keyframes enchanted-grove-rays { from { transform: translateX(-3%) rotate(-1deg); } to { transform: translateX(3%) rotate(1deg); } }
  @keyframes enchanted-grove-push { 0%, 100% { transform: translateX(-3px) translateY(1px); } 50% { transform: translateX(4px) translateY(-2px); } }
  @keyframes enchanted-grove-card-breathe { 0%, 100% { filter: saturate(1); } 50% { filter: saturate(1.035) brightness(1.012); } }
  @keyframes enchanted-grove-card-glint { from { opacity: .2; background-position: 0 0, 0 0, -150% 0; } to { opacity: .9; background-position: 0 0, 0 0, 150% 0; } }
  @keyframes enchanted-grove-complete { 0% { transform: scale(.98); filter: brightness(1.35) saturate(1.35); } 56% { transform: scale(1.012); } 100% { transform: scale(1); filter: none; } }
  @keyframes enchanted-grove-sparkle { 0% { opacity: 0; transform: scale(.5) translateY(6px); } 35% { opacity: 1; transform: scale(1.2) translateY(0); } 100% { opacity: 0; transform: scale(1.45) translateY(-8px); } }

  /* Visual repair: Enchanted Grove owns its atmosphere even when the motion
     selector has a saved value. The generic legacy decoration is the source
     of the stray colored shapes that were escaping at the bottom of mobile. */
  html[data-world='enchanted-grove']:not([data-story-world])[data-theme='enchanted-grove'][data-mode][data-animation-style]:not([data-animation-style='none']) .world-atmosphere { display: block !important; }
  html[data-world='enchanted-grove']:not([data-story-world])[data-theme='enchanted-grove'][data-mode][data-animation-style]:not([data-animation-style='none']) .workspace > .workspace-animation-decor { display: none !important; }
  html[data-world='enchanted-grove']:not([data-story-world]) .workspace {
    position: relative;
    overflow-x: clip;
    isolation: isolate;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) .world-atmosphere,
  html[data-world='enchanted-grove']:not([data-story-world]) .nook-light-plane,
  html[data-world='enchanted-grove']:not([data-story-world]) .workspace-animation-decor { pointer-events: none !important; }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.topbar, #app-view, .mobile-nav-bar, #mobile-nav-sheet) { position: relative; z-index: 2; }
  html[data-world='enchanted-grove']:not([data-story-world]) .sidebar { position: relative; z-index: 3; }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.mobile-nav-bar, #mobile-nav-select, #mobile-nav-sheet, .mobile-nav-dock-tools) { isolation: isolate; z-index: 10; }

  /* A darker, more legible woodland base keeps the light variant from
     collapsing into a flat pale-green wash. */
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] body,
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] .workspace {
    background:
      radial-gradient(ellipse at 50% 1%, rgba(255, 225, 135, .5) 0 7%, transparent 32%),
      linear-gradient(145deg, #9db687 0%, #dfe8c7 42%, #658b68 100%) !important;
  }
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] .world-base {
    background:
      radial-gradient(ellipse at 50% 14%, rgba(255, 232, 154, .72) 0 2%, transparent 30%),
      linear-gradient(160deg, #73966d 0%, #b8c9a3 48%, #3f6a4d 100%);
  }
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] .world-horizon { opacity: .58; }
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] .world-silhouette { opacity: .6; }
  html[data-world='enchanted-grove']:not([data-story-world]) .nook-light-plane {
    inset: -18% -10%;
    opacity: .18;
    background:
      linear-gradient(112deg, transparent 17%, color-mix(in srgb, var(--grove-gold) 18%, transparent) 30%, transparent 43%),
      linear-gradient(72deg, transparent 47%, color-mix(in srgb, var(--grove-fairy) 7%, transparent) 56%, transparent 67%);
    clip-path: inset(0);
  }
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] .nook-light-plane { opacity: .25; }

  /* Let the shared material owner provide the translucency. The old 93%
     parchment paint made the light theme opaque and hid the forest layers. */
  html[data-world='enchanted-grove']:not([data-story-world]) #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: var(--surface-card) !important;
    border-color: var(--surface-edge) !important;
    box-shadow: var(--surface-shadow), inset 0 1px 0 color-mix(in srgb, white 24%, transparent) !important;
    backdrop-filter: blur(var(--surface-blur)) saturate(1.08);
    -webkit-backdrop-filter: blur(var(--surface-blur)) saturate(1.08);
  }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.panel-head, .topbar) { border-bottom-color: var(--surface-edge) !important; }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.panel-head h3, .panel-head h2, .topbar h1, .eyebrow, .housekeeper-greeting, .metric strong) {
    color: var(--world-text) !important;
    text-shadow: none !important;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.muted, .empty-state, .todo-meta, .ops-caption, .arc-assigned, .arc-attribution, .arc-timing) { color: var(--world-secondary) !important; opacity: 1; }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.button, button, select, input, textarea) { color: var(--world-text) !important; border-color: var(--world-border) !important; }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.button.primary, button.primary) { color: var(--world-on-accent) !important; background: linear-gradient(135deg, var(--world-accent), var(--world-highlight)) !important; }

  /* Light navigation is deliberately dark green for contrast; dark mode
     remains a deep forest rail. This is presentation-only and preserves the
     sidebar's existing scroll container. */
  html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] :is(.sidebar, .topbar, .mobile-nav-bar, #mobile-nav-sheet) {
    background: linear-gradient(160deg, #315d3e, #173e2b) !important;
    color: #f5f5dc !important;
    border-color: color-mix(in srgb, var(--grove-gold) 42%, var(--world-border)) !important;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) :is(.brand strong, .brand span, .nav-item, .sidebar-foot, .sidebar-foot .muted, .topbar h1, .topbar .eyebrow, .mobile-nav-selector-label, .mobile-nav-sheet-head strong, .mobile-nav-sheet-item, .mobile-nav-sheet-reorder, .nav-reorder-hint) {
    color: #f5f5dc !important;
    text-shadow: 0 1px 8px color-mix(in srgb, var(--grove-fairy) 22%, transparent);
  }
  html[data-world='enchanted-grove']:not([data-story-world]) .mobile-nav-bar { background: var(--surface-elevated) !important; border-color: var(--surface-edge) !important; }
  html[data-world='enchanted-grove']:not([data-story-world]) .sidebar::after { max-width: calc(100% - 36px); clip-path: inset(0); }

  /* Tracker skin only. Existing fixed positioning, resize affordances, and
     expanded/collapsed controls remain owned by assignment-board.css. */
  html[data-world='enchanted-grove']:not([data-story-world]) #assignment-tracker {
    color: var(--world-text);
    background: var(--surface-elevated) !important;
    border-color: var(--surface-edge) !important;
    box-shadow: 0 20px 52px -30px color-mix(in srgb, var(--world-deep) 78%, transparent), inset 0 1px 0 color-mix(in srgb, white 28%, transparent) !important;
    backdrop-filter: blur(14px) saturate(1.15) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.15) !important;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) #assignment-tracker .at-card { background: transparent !important; }
  html[data-world='enchanted-grove']:not([data-story-world]) #assignment-tracker :is(.at-heading, .at-room-chip, .at-completion) { border-color: var(--surface-edge) !important; }

  /* Preserve the Grove's asymmetric badge/card language without letting a
     decorative seam or status wash sit over operational copy. The shape is
     retained; only the stacking order and reading contrast change. */
  html[data-world='enchanted-grove']:not([data-story-world]) #app-view .view .room-card {
    isolation: isolate;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) #app-view .view .room-card > :where(.room-card-head, .room-card-head ~ *, .manager-assignee, .manager-early-arrival-row, .room-card-actions, .fix-list, .still-needs, .open-items, .recurring-checks) {
    position: relative;
    z-index: 1;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) #app-view .view .room-card::before {
    z-index: 0 !important;
    opacity: .24 !important;
    pointer-events: none;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) #app-view .view .room-card::after {
    z-index: 2 !important;
    pointer-events: none;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) #app-view .view .room-card :is(.badge, .status-badge) {
    position: relative;
    z-index: 3;
    text-shadow: none !important;
    background-color: color-mix(in srgb, var(--surface-control) 78%, var(--world-surface)) !important;
  }
  html[data-world='enchanted-grove']:not([data-story-world]) #app-view .view .room-card .badge.arrival-badge {
    color: color-mix(in srgb, var(--world-accent-secondary) 78%, var(--world-text)) !important;
    border-color: color-mix(in srgb, var(--world-accent-secondary) 68%, var(--world-border)) !important;
    background-color: color-mix(in srgb, var(--world-accent-secondary) 14%, var(--surface-control)) !important;
  }
  /* Compact Remaining Checkouts uses display:contents on the identity
     wrapper. Re-anchor the shaped Arrival badge to its own content width so
     the Grove polygon remains visible without stretching over the card copy. */
  html[data-world='enchanted-grove']:not([data-story-world]) #app-view .view .room-card-head > div:first-child > :is(.badge, .status-badge) {
    justify-self: start;
    width: fit-content;
    max-width: 100%;
    box-sizing: border-box;
  }

  @media (max-width: 700px) {
    html[data-world='enchanted-grove']:not([data-story-world]) .world-atmosphere { opacity: .62; }
    html[data-world='enchanted-grove']:not([data-story-world])[data-mode='light'] .world-atmosphere { opacity: .68; }
    html[data-world='enchanted-grove']:not([data-story-world]) .sidebar { overflow: visible; }
    html[data-world='enchanted-grove']:not([data-story-world]) .mobile-nav-dock-tools,
    html[data-world='enchanted-grove']:not([data-story-world]) .mobile-nav-selector-control,
    html[data-world='enchanted-grove']:not([data-story-world]) .mobile-nav-selector-field { position: relative; z-index: 11; }
    html[data-world='enchanted-grove']:not([data-story-world]) #mobile-nav-select { background: var(--surface-control) !important; color: var(--world-text) !important; }
    html[data-world='enchanted-grove']:not([data-story-world]) #assignment-tracker { z-index: 70; }
  }
}


/* Source: faelight-grove.css */
/* Faelight Grove — an original woodland world for Sisyphus.
   The forest is built from lightweight gradient planes and the existing world
   atmosphere DOM. Nothing here changes operational markup or behavior. */
@media screen {
  html[data-world='faelight-grove']:not([data-story-world]) {
    --faelight-forest: #163d25;
    --faelight-moss: #355e35;
    --faelight-fern: #4f7942;
    --faelight-soft-moss: #789262;
    --faelight-blue: #78e8ff;
    --faelight-cyan: #45dde8;
    --faelight-gold: #ffd978;
    --faelight-amber: #e8a84a;
    --faelight-parchment: #f3e4bd;
    --faelight-paper: #e6d19b;
    --faelight-wood: #8a623d;
    --faelight-bark: #493624;
    --faelight-shadow: 0 22px 46px -28px color-mix(in srgb, var(--world-deep) 88%, #07120d), inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 54%, transparent);
    --faelight-glass: color-mix(in srgb, var(--world-surface) 74%, transparent);
    --faelight-glass-dark: color-mix(in srgb, var(--world-surface) 68%, transparent);
    background: var(--world-background) !important;
    color-scheme: light;
    scrollbar-color: var(--faelight-soft-moss) color-mix(in srgb, var(--faelight-bark) 28%, transparent);
  }
  html[data-world='faelight-grove']:not([data-story-world]) { --theme-badge-radius: 50% 10px 42% 13px; --theme-badge-clip: polygon(50% 0, 59% 31%, 100% 50%, 65% 61%, 50% 100%, 36% 64%, 0 50%, 39% 34%); }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='dark'] { color-scheme: dark; scrollbar-color: #4f8e83 #0c1d15; }

  /* The shared world adapter supplies intentionally solid fallback surfaces.
     Faelight is the one world whose identity depends on seeing the woodland
     paint plane through the application shell, so keep its semantic values
     explicit and translucent here. */
  html[data-world='faelight-grove']:not([data-story-world])[data-theme][data-mode] {
    --bg: var(--faelight-forest);
    --panel: color-mix(in srgb, var(--faelight-parchment) 46%, transparent);
    --surface: color-mix(in srgb, var(--faelight-parchment) 54%, transparent);
    --surface-2: color-mix(in srgb, var(--faelight-parchment) 62%, transparent);
    --text: var(--faelight-forest);
    --secondary: var(--faelight-moss);
    --muted: color-mix(in srgb, var(--faelight-forest) 68%, var(--faelight-parchment));
    --faint: color-mix(in srgb, var(--faelight-forest) 58%, var(--faelight-parchment));
    --accent: var(--faelight-cyan);
    --accent-hover: var(--faelight-blue);
    --accent-ink: var(--faelight-forest);
    --on-accent: var(--faelight-forest);
    --border: color-mix(in srgb, var(--faelight-moss) 56%, transparent);
    --border-soft: color-mix(in srgb, var(--faelight-moss) 32%, transparent);
    --accent-soft: color-mix(in srgb, var(--faelight-cyan) 16%, transparent);
    --ring: var(--faelight-blue);
    --glow: color-mix(in srgb, var(--faelight-blue) 28%, transparent);
    --danger: var(--faelight-amber);
    --success: var(--faelight-fern);
    --faelight-glass: color-mix(in srgb, var(--faelight-parchment) 44%, transparent);
    --faelight-glass-dark: color-mix(in srgb, var(--faelight-forest) 56%, transparent);
    --faelight-shadow: 0 18px 42px -30px color-mix(in srgb, var(--faelight-forest) 86%, transparent), inset 0 1px 0 color-mix(in srgb, white 30%, transparent);
  }
  html[data-world='faelight-grove']:not([data-story-world])[data-theme][data-mode='dark'] {
    --panel: color-mix(in srgb, var(--faelight-forest) 58%, transparent);
    --surface: color-mix(in srgb, var(--faelight-forest) 66%, transparent);
    --surface-2: color-mix(in srgb, var(--faelight-moss) 46%, transparent);
    --text: var(--faelight-parchment);
    --secondary: #b9d7b1;
    --muted: #b2cfaa;
    --faint: #91b48c;
    --accent-ink: var(--faelight-parchment);
    --border: color-mix(in srgb, var(--faelight-blue) 38%, transparent);
    --border-soft: color-mix(in srgb, var(--faelight-blue) 22%, transparent);
    --faelight-glass: color-mix(in srgb, var(--faelight-forest) 52%, transparent);
    --faelight-glass-dark: color-mix(in srgb, var(--faelight-forest) 58%, transparent);
    --faelight-shadow: 0 20px 48px -28px #07120dcc, inset 0 1px 0 color-mix(in srgb, white 16%, transparent);
  }

  html[data-world='faelight-grove']:not([data-story-world])[data-theme][data-mode] {
    background: var(--faelight-forest) !important;
  }
  html[data-world='faelight-grove']:not([data-story-world])[data-theme][data-mode] body,
  html[data-world='faelight-grove']:not([data-story-world])[data-theme][data-mode] .workspace {
    background: transparent !important;
    background-color: transparent !important;
  }

  html[data-world='faelight-grove']:not([data-story-world]) body,
  html[data-world='faelight-grove']:not([data-story-world]) .workspace {
    background:
      radial-gradient(ellipse at 22% 4%, color-mix(in srgb, var(--faelight-gold) 18%, transparent), transparent 29%),
      radial-gradient(ellipse at 86% 82%, color-mix(in srgb, var(--faelight-blue) 13%, transparent), transparent 34%),
      linear-gradient(145deg, var(--world-deep), var(--world-background) 48%, color-mix(in srgb, var(--faelight-forest) 42%, var(--world-background))) !important;
    color: var(--world-text);
  }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='light'] body,
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='light'] .workspace {
    background:
      radial-gradient(ellipse at 52% -2%, #fff2b5 0 7%, transparent 38%),
      linear-gradient(145deg, #c1d7ad, var(--world-background) 49%, #a9c693) !important;
  }

  html[data-world='faelight-grove']:not([data-story-world]) .world-atmosphere { display: block !important; opacity: .9; }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='light'] .world-atmosphere { opacity: .96; }
  html[data-world='faelight-grove']:not([data-story-world]) .world-base {
    inset: -15%;
    background:
      radial-gradient(ellipse at 56% 33%, color-mix(in srgb, var(--faelight-gold) 24%, transparent), transparent 30%),
      radial-gradient(ellipse at 20% 79%, color-mix(in srgb, var(--faelight-cyan) 14%, transparent), transparent 28%),
      linear-gradient(160deg, #07150e 0%, var(--faelight-forest) 42%, var(--faelight-moss) 72%, #102c1b 100%);
    animation-name: faelight-grove-wander;
  }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='light'] .world-base {
    background:
      radial-gradient(ellipse at 52% 19%, color-mix(in srgb, var(--faelight-gold) 70%, white) 0 2%, transparent 25%),
      radial-gradient(ellipse at 48% 54%, color-mix(in srgb, var(--faelight-fern) 56%, transparent), transparent 46%),
      linear-gradient(180deg, var(--faelight-forest) 0 16%, var(--faelight-moss) 42%, var(--faelight-fern) 77%, var(--faelight-forest) 100%);
  }
  html[data-world='faelight-grove']:not([data-story-world]) .world-horizon {
    inset: 7% -12% 17%;
    opacity: .7;
    filter: blur(.7px);
    background:
      linear-gradient(90deg, color-mix(in srgb, var(--faelight-bark) 60%, transparent) 0 5%, transparent 5% 14%, color-mix(in srgb, var(--faelight-bark) 48%, transparent) 14% 18%, transparent 18% 31%, color-mix(in srgb, var(--faelight-bark) 52%, transparent) 31% 35%, transparent 35% 53%, color-mix(in srgb, var(--faelight-bark) 42%, transparent) 53% 58%, transparent 58% 73%, color-mix(in srgb, var(--faelight-bark) 54%, transparent) 73% 78%, transparent 78%),
      linear-gradient(176deg, transparent 0 62%, color-mix(in srgb, var(--faelight-moss) 75%, transparent) 63% 100%);
    clip-path: polygon(0 100%, 0 54%, 8% 45%, 14% 55%, 22% 33%, 28% 48%, 38% 39%, 46% 56%, 57% 31%, 65% 49%, 75% 36%, 84% 53%, 93% 34%, 100% 46%, 100% 100%);
    animation-name: faelight-grove-canopy;
  }
  html[data-world='faelight-grove']:not([data-story-world]) .world-silhouette {
    inset: 54% -10% -12%;
    opacity: .72;
    background:
      radial-gradient(circle at 14% 77%, var(--faelight-blue) 0 1.5px, transparent 3px),
      radial-gradient(circle at 19% 82%, var(--faelight-cyan) 0 1px, transparent 2.5px),
      radial-gradient(circle at 84% 73%, var(--faelight-blue) 0 1.7px, transparent 3px),
      radial-gradient(circle at 89% 79%, var(--faelight-cyan) 0 1px, transparent 2.5px),
      radial-gradient(ellipse at 8% 98%, var(--faelight-bark) 0 18%, transparent 19%),
      radial-gradient(ellipse at 92% 96%, color-mix(in srgb, var(--faelight-bark) 86%, var(--world-deep)) 0 22%, transparent 23%),
      linear-gradient(174deg, transparent 0 19%, color-mix(in srgb, var(--faelight-forest) 84%, var(--world-deep)) 20% 100%);
    clip-path: polygon(0 100%, 0 49%, 5% 41%, 11% 48%, 17% 27%, 23% 45%, 31% 36%, 39% 52%, 47% 30%, 54% 47%, 63% 34%, 72% 53%, 81% 28%, 87% 46%, 95% 38%, 100% 47%, 100% 100%);
    animation-name: faelight-grove-canopy;
  }
  html[data-world='faelight-grove']:not([data-story-world]) .world-particles {
    opacity: .43;
    background-image: radial-gradient(circle, #b7f2a6 0 1px, transparent 2px), radial-gradient(circle, var(--faelight-blue) 0 .9px, transparent 2px), radial-gradient(circle, #d8f5c5 0 .7px, transparent 2px);
    background-size: 137px 179px, 211px 263px, 317px 223px;
    animation-name: faelight-grove-fireflies;
  }
  html[data-world='faelight-grove']:not([data-story-world]) .world-particles-mid {
    opacity: .32;
    background-image: radial-gradient(circle, var(--faelight-cyan) 0 1.7px, transparent 3px), radial-gradient(circle, var(--faelight-gold) 0 1.2px, transparent 3px);
    background-size: 181px 239px, 293px 197px;
    animation-name: faelight-grove-fireflies;
  }
  html[data-world='faelight-grove']:not([data-story-world]) .world-particles-near {
    opacity: .2;
    background-image: radial-gradient(circle, #fff5c6 0 1.4px, transparent 4px), radial-gradient(ellipse 2px 1px, color-mix(in srgb, var(--faelight-fern) 78%, transparent) 0 45%, transparent 50%);
    background-size: 337px 251px, 271px 181px;
    animation-name: faelight-grove-pollen;
  }
  html[data-world='faelight-grove']:not([data-story-world]) .world-orbits { opacity: .08; }
  html[data-world='faelight-grove']:not([data-story-world]) .world-rare {
    inset: 8% 10% 18%;
    background: radial-gradient(ellipse at var(--world-rare-x) var(--world-rare-y), color-mix(in srgb, var(--faelight-gold) 38%, transparent), transparent 33%);
  }
  html[data-world='faelight-grove']:not([data-story-world]) .world-atmosphere[data-event] .world-rare { animation: faelight-grove-clearing-glow 7s ease-in-out both; }

  html[data-world='faelight-grove']:not([data-story-world]) .nook-light-plane {
    display: block;
    position: fixed;
    inset: -24% -18%;
    z-index: 0;
    pointer-events: none;
    opacity: .28;
    background:
      linear-gradient(116deg, transparent 0 23%, color-mix(in srgb, var(--faelight-gold) 18%, transparent) 31% 37%, transparent 46%),
      linear-gradient(102deg, transparent 0 51%, color-mix(in srgb, var(--faelight-gold) 12%, transparent) 58% 64%, transparent 73%),
      linear-gradient(124deg, transparent 0 71%, color-mix(in srgb, var(--faelight-blue) 8%, transparent) 77% 81%, transparent 88%);
    filter: blur(15px);
    mix-blend-mode: screen;
    animation: faelight-grove-sunbeams 38s ease-in-out infinite alternate;
  }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='light'] .nook-light-plane { opacity: .34; }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='dark'] .nook-light-plane { opacity: .14; filter: blur(18px); }

  html[data-world='faelight-grove']:not([data-story-world]) :is(.sidebar, .topbar, .mobile-nav-bar, #mobile-nav-sheet) {
    position: relative;
    z-index: 30;
    background: color-mix(in srgb, var(--faelight-forest) 78%, transparent) !important;
    border-color: color-mix(in srgb, var(--faelight-cyan) 28%, transparent) !important;
    box-shadow: 0 20px 44px -30px #07120dcc, inset 0 1px 0 color-mix(in srgb, var(--faelight-blue) 22%, transparent) !important;
    backdrop-filter: blur(16px) saturate(1.16) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.16) !important;
  }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='light'] :is(.sidebar, .topbar, .mobile-nav-bar, #mobile-nav-sheet) { color: var(--faelight-parchment) !important; }
  html[data-world='faelight-grove']:not([data-story-world]) .sidebar::after { display: none !important; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.brand strong, .brand span, .nav-item, .sidebar-foot, .sidebar-foot .muted, .topbar h1, .topbar .eyebrow, .mobile-nav-selector-label, .mobile-nav-sheet-head strong, .mobile-nav-sheet-item, .mobile-nav-sheet-reorder, .nav-reorder-hint) { color: var(--faelight-parchment) !important; text-shadow: none; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.nav-item, .mobile-nav-sheet-item) { border-bottom: 1px solid color-mix(in srgb, var(--faelight-moss) 38%, transparent); }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.nav-item.active, .mobile-nav-sheet-item.active, [aria-selected='true']) { background: color-mix(in srgb, var(--faelight-cyan) 14%, transparent) !important; box-shadow: inset 3px 0 var(--faelight-cyan), 0 0 18px color-mix(in srgb, var(--faelight-blue) 16%, transparent) !important; }

  html[data-world='faelight-grove']:not([data-story-world]) #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *)) {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--faelight-glass) !important;
    border: 1px solid color-mix(in srgb, var(--faelight-moss) 48%, transparent) !important;
    box-shadow: var(--faelight-shadow) !important;
    backdrop-filter: blur(13px) saturate(1.08);
    -webkit-backdrop-filter: blur(13px) saturate(1.08);
  }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='dark'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *)) { background: var(--faelight-glass-dark) !important; border-color: color-mix(in srgb, var(--faelight-blue) 30%, transparent) !important; }
  html[data-world='faelight-grove']:not([data-story-world]) #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card)::before { content: none !important; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.panel-head, .topbar) { border-bottom-color: color-mix(in srgb, var(--faelight-moss) 36%, transparent) !important; }
  html[data-world='faelight-grove']:not([data-story-world]) .panel > .panel-head { background: color-mix(in srgb, var(--faelight-parchment) 22%, transparent) !important; }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='dark'] .panel > .panel-head { background: color-mix(in srgb, var(--faelight-moss) 22%, transparent) !important; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.panel-head h3, .panel-head h2, .eyebrow, .topbar h1) { color: var(--faelight-forest) !important; text-shadow: none; }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='dark'] :is(.panel-head h3, .panel-head h2, .eyebrow, .topbar h1) { color: var(--faelight-parchment) !important; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.button, button, select, input, textarea) { border-color: color-mix(in srgb, var(--faelight-moss) 54%, transparent) !important; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(select, input, textarea) { background: color-mix(in srgb, var(--faelight-parchment) 32%, transparent) !important; }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='dark'] :is(select, input, textarea) { background: color-mix(in srgb, var(--faelight-forest) 42%, transparent) !important; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.button, button):focus-visible, html[data-world='faelight-grove']:not([data-story-world]) :is(select, input, textarea):focus { outline: 2px solid var(--faelight-blue) !important; outline-offset: 2px; box-shadow: 0 0 0 4px color-mix(in srgb, var(--faelight-blue) 22%, transparent), 0 0 18px color-mix(in srgb, var(--faelight-blue) 30%, transparent) !important; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.button.primary, button.primary) { background: linear-gradient(135deg, var(--faelight-moss), var(--faelight-fern)) !important; color: #f3e4bd !important; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.button, button):hover { box-shadow: 0 0 0 2px color-mix(in srgb, var(--faelight-blue) 20%, transparent), 0 0 18px color-mix(in srgb, var(--faelight-blue) 24%, transparent) !important; filter: brightness(1.045); }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.button, button):active { transform: translateY(1px) scale(.988); }

  html[data-world='faelight-grove']:not([data-story-world]) :is(.room-card.finished, .strip-room-row.finished, .task-row.done, .need-list-row.need-list-done, .todo-item.done) { animation: faelight-grove-complete .82s cubic-bezier(.2, 1.3, .35, 1) both; border-color: color-mix(in srgb, var(--faelight-gold) 78%, var(--world-border)) !important; box-shadow: var(--faelight-shadow), 0 0 30px color-mix(in srgb, var(--faelight-gold) 38%, transparent) !important; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.room-card.finished, .task-row.done)::after { content: '✧  ·  ✦  ·  ✧'; position: absolute; top: 11px; right: 17px; color: var(--faelight-gold); text-shadow: 0 0 12px var(--faelight-gold), 0 0 24px var(--faelight-blue); pointer-events: none; animation: faelight-grove-sparkle 1s ease-out both; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.sisyphus-overdue, .urgent, [data-priority='urgent'], [data-status='urgent']) { border-inline-start: 4px solid var(--faelight-amber) !important; box-shadow: 0 0 20px color-mix(in srgb, var(--faelight-blue) 30%, transparent), 0 0 18px color-mix(in srgb, var(--faelight-amber) 24%, transparent) !important; animation: faelight-grove-alert 2.8s ease-in-out infinite; }
  html[data-world='faelight-grove']:not([data-story-world]) :is(.loading, .loading-state, [aria-busy='true'])::after { content: ''; display: block; width: 19px; height: 19px; margin: .55rem auto; border-radius: 50%; background: var(--faelight-gold); box-shadow: -31px 12px 0 -7px var(--faelight-blue), 0 0 15px var(--faelight-gold); animation: faelight-grove-stone-roll 2.8s ease-in-out infinite; }
  html[data-world='faelight-grove']:not([data-story-world])[data-decorative-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: faelight-grove-card-breathe 18s ease-in-out infinite; }

  /* Keep the shell and tracker above the fixed woodland planes. The dock is
     part of the existing mobile navigation; this only gives it a protected
     paint layer and removes the retired sidebar artwork from its footprint. */
  html[data-world='faelight-grove']:not([data-story-world]) .sidebar,
  html[data-world='faelight-grove']:not([data-story-world]) .topbar { position: relative; z-index: 30; }
  html[data-world='faelight-grove']:not([data-story-world]) #mobile-nav-sheet { z-index: 90; }
  html[data-world='faelight-grove']:not([data-story-world]) .mobile-nav-dock-tools { position: relative; z-index: 31; }
  html[data-world='faelight-grove']:not([data-story-world]) #assignment-tracker {
    z-index: 70;
    background: color-mix(in srgb, var(--faelight-parchment) 42%, transparent) !important;
    border-color: color-mix(in srgb, var(--faelight-moss) 50%, transparent) !important;
    box-shadow: 0 20px 48px -30px color-mix(in srgb, var(--faelight-forest) 90%, transparent), inset 0 1px 0 color-mix(in srgb, white 30%, transparent) !important;
    backdrop-filter: blur(16px) saturate(1.12) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.12) !important;
  }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='dark'] #assignment-tracker { background: color-mix(in srgb, var(--faelight-forest) 58%, transparent) !important; border-color: color-mix(in srgb, var(--faelight-blue) 34%, transparent) !important; box-shadow: 0 22px 54px -30px #07120dcc, inset 0 1px 0 color-mix(in srgb, white 15%, transparent) !important; }
  html[data-world='faelight-grove']:not([data-story-world]) #assignment-tracker .at-heading { background: transparent; border-bottom-color: color-mix(in srgb, var(--faelight-moss) 38%, transparent); }
  html[data-world='faelight-grove']:not([data-story-world]) #assignment-tracker .at-window-summary { color: var(--text); }
  html[data-world='faelight-grove']:not([data-story-world]) #assignment-tracker :is(.at-minimize, .at-window-menu > summary, .at-quick-inspect, .at-room-chip) { background: color-mix(in srgb, var(--faelight-parchment) 24%, transparent); border-color: color-mix(in srgb, var(--faelight-moss) 48%, transparent); }
  html[data-world='faelight-grove']:not([data-story-world])[data-mode='dark'] #assignment-tracker :is(.at-minimize, .at-window-menu > summary, .at-quick-inspect, .at-room-chip) { background: color-mix(in srgb, var(--faelight-moss) 25%, transparent); border-color: color-mix(in srgb, var(--faelight-blue) 30%, transparent); }
  html[data-world='faelight-grove']:not([data-story-world]) #assignment-tracker .at-resize-e::after,
  html[data-world='faelight-grove']:not([data-story-world]) #assignment-tracker .at-resize-s::after { background: color-mix(in srgb, var(--faelight-cyan) 72%, transparent); }
  html[data-world='faelight-grove']:not([data-story-world]) #assignment-tracker .at-resize-se::before { border-color: var(--faelight-cyan); border-radius: 0 0 var(--card-radius, 18px) 0; opacity: .8; }
  html[data-world='faelight-grove']:not([data-story-world]) #assignment-tracker .at-restore-resize {
    width: 48px !important;
    max-width: 48px !important;
    height: 4px !important;
    max-height: 4px !important;
    border: 0 !important;
    border-radius: 0 0 var(--card-radius, 18px) 0 !important;
    background: color-mix(in srgb, var(--faelight-cyan) 68%, transparent) !important;
  }

  html[data-world='faelight-grove']:not([data-story-world])[data-background-animations='off'] :is(.world-horizon, .world-silhouette, .world-orbits, .world-particles, .world-particles-mid, .world-particles-near, .nook-light-plane),
  html[data-world='faelight-grove']:not([data-story-world]).world-page-hidden :is(.world-horizon, .world-silhouette, .world-orbits, .world-particles, .world-particles-mid, .world-particles-near, .nook-light-plane),
  html[data-world='faelight-grove']:not([data-story-world]).world-focus-mode .nook-light-plane { animation-play-state: paused !important; }
  html[data-world='faelight-grove']:not([data-story-world])[data-background-animations='off'] .nook-light-plane { opacity: .1; }
  html[data-world='faelight-grove']:not([data-story-world])[data-decorative-animations='off'] :is(.room-card.finished, .task-row.done, .sisyphus-overdue, .urgent, [data-priority='urgent'], [data-status='urgent']) { animation: none !important; }

  @media (hover: hover) {
    html[data-world='faelight-grove']:not([data-story-world]) :is(.panel, .room-card, .metric):not(.card-dragging):hover { transform: var(--world-lift); box-shadow: var(--faelight-shadow), 0 0 28px color-mix(in srgb, var(--faelight-blue) 30%, transparent) !important; }
  }
  @media (max-width: 700px) {
    html[data-world='faelight-grove']:not([data-story-world]) .sidebar {
      z-index: 80;
      background: transparent !important;
      border: 0 !important;
      box-shadow: none !important;
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
    }
    html[data-world='faelight-grove']:not([data-story-world]) .mobile-nav-dock-tools { z-index: 81; }
    html[data-world='faelight-grove']:not([data-story-world]) #mobile-nav-select { background: color-mix(in srgb, var(--faelight-parchment) 34%, transparent) !important; border-color: color-mix(in srgb, var(--faelight-cyan) 62%, transparent) !important; }
    html[data-world='faelight-grove']:not([data-story-world])[data-mode='dark'] #mobile-nav-select { background: color-mix(in srgb, var(--faelight-forest) 55%, transparent) !important; }
    html[data-world='faelight-grove']:not([data-story-world]) .nav-room-search { background: color-mix(in srgb, var(--faelight-parchment) 28%, transparent); border-color: color-mix(in srgb, var(--faelight-cyan) 46%, transparent); }
    html[data-world='faelight-grove']:not([data-story-world])[data-mode='dark'] .nav-room-search { background: color-mix(in srgb, var(--faelight-forest) 48%, transparent); }
    html[data-world='faelight-grove']:not([data-story-world]) .world-particles { opacity: .27; background-size: 211px 263px, 337px 311px, 433px 293px; }
    html[data-world='faelight-grove']:not([data-story-world]) .world-particles-mid { opacity: .2; }
    html[data-world='faelight-grove']:not([data-story-world]) .world-particles-near { display: none; }
    html[data-world='faelight-grove']:not([data-story-world]) .nook-light-plane { opacity: .26; filter: blur(18px); }
    html[data-world='faelight-grove']:not([data-story-world]) #app-view .view :is(.panel, .room-card, .metric, dialog, .notification-panel) { backdrop-filter: blur(8px) saturate(1.04); -webkit-backdrop-filter: blur(8px) saturate(1.04); }
  }
  @media (prefers-reduced-motion: reduce) {
    html[data-world='faelight-grove']:not([data-story-world]) :is(.world-base, .world-horizon, .world-silhouette, .world-orbits, .world-particles, .world-particles-mid, .world-particles-near, .world-rare, .nook-light-plane, .sidebar::after, .room-card.finished, .task-row.done, .sisyphus-overdue, .urgent, [data-priority='urgent'], [data-status='urgent'], .loading::after, .loading-state::after, [aria-busy='true']::after) { animation: none !important; }
    html[data-world='faelight-grove']:not([data-story-world]) :is(.panel, .room-card, .metric, .button, button) { transition: none !important; }
  }
  @keyframes faelight-grove-wander { from { transform: translate3d(-1.2%, -1%, 0) scale(1.035); } to { transform: translate3d(1.2%, 1%, 0) scale(1.065); } }
  @keyframes faelight-grove-canopy { from { transform: translateX(-1.2%); } to { transform: translateX(1.2%); } }
  @keyframes faelight-grove-fireflies { 0%, 100% { transform: translate3d(-1%, 1%, 0); opacity: .22; } 38% { transform: translate3d(1.5%, -1%, 0); opacity: .66; } 72% { transform: translate3d(-.5%, -2%, 0); opacity: .38; } }
  @keyframes faelight-grove-pollen { 0% { transform: translate3d(-1%, 2%, 0); } 50% { transform: translate3d(1.5%, -1.5%, 0); } 100% { transform: translate3d(-1%, 1%, 0); } }
  @keyframes faelight-grove-sunbeams { from { transform: translateX(-2.5%) rotate(-1deg); } to { transform: translateX(2.5%) rotate(1deg); } }
  @keyframes faelight-grove-clearing-glow { 0% { opacity: 0; transform: scale(.94); } 35%, 72% { opacity: .82; } 100% { opacity: 0; transform: scale(1.04); } }
  @keyframes faelight-grove-push { 0%, 100% { transform: translateX(-3px) translateY(1px); } 50% { transform: translateX(4px) translateY(-2px); } }
  @keyframes faelight-grove-complete { 0% { transform: scale(.985); filter: brightness(1.28) saturate(1.2); } 52% { transform: scale(1.012); } 100% { transform: scale(1); filter: none; } }
  @keyframes faelight-grove-sparkle { 0% { opacity: 0; transform: translateY(5px) scale(.45); } 32% { opacity: 1; transform: translateY(0) scale(1.15); } 100% { opacity: 0; transform: translateY(-9px) scale(1.4); } }
  @keyframes faelight-grove-card-breathe { 0%, 100% { filter: saturate(1); } 50% { filter: saturate(1.025) brightness(1.012); } }
  @keyframes faelight-grove-alert { 0%, 100% { filter: none; } 50% { filter: brightness(1.06); box-shadow: var(--faelight-shadow), 0 0 26px color-mix(in srgb, var(--faelight-blue) 40%, transparent) !important; } }
  @keyframes faelight-grove-stone-roll { 0%, 100% { transform: translateX(-8px) rotate(-8deg); } 50% { transform: translateX(8px) rotate(18deg); } }
}


/* Source: cinematic-themes-part1a.css */
/* Part 1A cinematic worlds. Decorative atmosphere is always beneath the
   application shell; all operational cards, menus, and dialogs remain normal
   interactive app components. */
@media screen {
  html[data-theme='enchanted-castle'] { --theme-badge-radius: 48% 48% 18% 18% / 62% 62% 12% 12%; --theme-badge-clip: polygon(50% 0, 88% 14%, 100% 48%, 82% 100%, 18% 100%, 0 48%, 12% 14%); }
  html[data-theme='elemental-metropolis'] { --theme-badge-radius: 2px 12px 2px 2px; --theme-badge-clip: polygon(0 0, 84% 0, 100% 20%, 100% 100%, 16% 100%, 0 80%); }
  html[data-theme='heptapod-mist'] { --theme-badge-radius: 50%; --theme-badge-clip: polygon(50% 0, 91% 9%, 100% 49%, 84% 100%, 21% 92%, 0 54%, 10% 16%); }
  html[data-theme='sky-tower'] { --theme-badge-radius: 3px 50% 3px 50%; --theme-badge-clip: polygon(12% 0, 100% 0, 86% 100%, 0 100%); }
  html:is([data-world='enchanted-castle'],[data-world='elemental-metropolis'],[data-world='heptapod-mist'],[data-world='sky-tower']) .world-atmosphere { display:block !important; }
  html:is([data-world='enchanted-castle'],[data-world='elemental-metropolis'],[data-world='heptapod-mist'],[data-world='sky-tower']) .workspace > .workspace-animation-decor { display:none !important; }
  html:is([data-world='enchanted-castle'],[data-world='elemental-metropolis'],[data-world='heptapod-mist'],[data-world='sky-tower']) .world-atmosphere { opacity:.82; }
  html:is([data-world='enchanted-castle'],[data-world='elemental-metropolis'],[data-world='heptapod-mist'],[data-world='sky-tower'])[data-mode='light'] .world-atmosphere { opacity:.72; }

  /* Enchanted Castle — framed, candlelit, and deliberately ornamental. */
  html[data-world='enchanted-castle'] :is(.panel,.room-card,.metric,.employee-bubble,dialog,.notification-panel):not(:where(.print-preview-sheet *,#print-run-root *)) {
    position:relative; overflow:visible; border:1px solid color-mix(in srgb,var(--world-accent) 72%,var(--world-border)) !important;
    background:linear-gradient(135deg,color-mix(in srgb,var(--world-surface) 94%,var(--world-accent-secondary)),var(--world-surface) 54%,color-mix(in srgb,var(--world-deep) 11%,var(--world-surface))) !important;
    box-shadow:var(--world-shadow),inset 0 0 0 3px color-mix(in srgb,var(--world-accent) 17%,transparent),inset 0 1px 0 var(--world-highlight) !important;
  }
  html[data-world='enchanted-castle'] :is(.panel,.room-card,.metric)::before { content:''; position:absolute; inset:6px; border:1px solid color-mix(in srgb,var(--world-accent) 44%,transparent); border-radius:inherit; pointer-events:none; opacity:.72; }
  html[data-world='enchanted-castle'] :is(.panel,.room-card,.metric)::after { content:'✦'; display:grid; place-items:center; position:absolute; width:17px;height:17px;right:12px;top:10px; color:var(--world-accent); font:12px/1 var(--world-font); text-shadow:0 0 10px var(--world-glow); background:var(--world-surface); border:1px solid var(--world-accent); border-radius:50%; pointer-events:none; }
  html[data-world='enchanted-castle'] .panel > .panel-head { background:linear-gradient(90deg,color-mix(in srgb,var(--world-deep) 18%,transparent),transparent 44%,color-mix(in srgb,var(--world-accent) 14%,transparent)) !important; border-bottom:2px double color-mix(in srgb,var(--world-accent) 48%,transparent) !important; }
  html[data-world='enchanted-castle'] :is(.sidebar,.topbar,#mobile-nav-sheet,.mobile-nav-bar) { background:linear-gradient(180deg,color-mix(in srgb,var(--world-deep) 92%,var(--world-accent-secondary)),var(--world-deep)) !important; border-color:var(--world-accent) !important; }
  html[data-world='enchanted-castle'] :is(.nav-item,.mobile-nav-sheet-item) { border-bottom:1px solid color-mix(in srgb,var(--world-accent) 20%,transparent); }
  html[data-world='enchanted-castle'] :is(.nav-item.active,.mobile-nav-sheet-item.active,[aria-selected='true']) { background:radial-gradient(ellipse at 18% 50%,color-mix(in srgb,var(--world-highlight) 34%,transparent),transparent 46%),color-mix(in srgb,var(--world-accent) 16%,var(--world-surface)) !important; box-shadow:inset 3px 0 var(--world-accent),0 0 22px var(--world-glow) !important; }
  html[data-world='enchanted-castle'] :is(.button,.notification-button,.badge) { border-color:var(--world-accent) !important; background:linear-gradient(135deg,var(--world-elevated),color-mix(in srgb,var(--world-accent) 13%,var(--world-surface))) !important; }
  html[data-world='enchanted-castle'] .button.primary { background:linear-gradient(135deg,var(--world-accent),var(--world-highlight)) !important; }
  html[data-world='enchanted-castle'] :is(input,select,textarea) { box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--world-accent) 12%,transparent),inset 0 2px 5px color-mix(in srgb,var(--world-deep) 16%,transparent) !important; }
  html[data-world='enchanted-castle'] .world-base { background:radial-gradient(ellipse at 48% 28%,color-mix(in srgb,var(--world-accent) 18%,transparent),transparent 36%),linear-gradient(145deg,var(--world-deep),var(--world-background) 56%,color-mix(in srgb,var(--world-accent-secondary) 20%,var(--world-deep))); animation-name:cinematic-castle-candle; }
  html[data-world='enchanted-castle'] .world-silhouette { inset:15% -8% -8%; opacity:.28; background:linear-gradient(90deg,transparent 0 6%,color-mix(in srgb,var(--world-deep) 80%,transparent) 6% 13%,transparent 13% 21%,color-mix(in srgb,var(--world-deep) 80%,transparent) 21% 29%,transparent 29% 38%,color-mix(in srgb,var(--world-deep) 80%,transparent) 38% 46%,transparent 46% 58%,color-mix(in srgb,var(--world-deep) 80%,transparent) 58% 69%,transparent 69% 76%,color-mix(in srgb,var(--world-deep) 80%,transparent) 76% 86%,transparent 86%); clip-path:polygon(0 100%,0 56%,7% 56%,10% 26%,13% 56%,22% 56%,27% 9%,32% 56%,39% 56%,44% 31%,48% 56%,59% 56%,65% 13%,70% 56%,78% 56%,83% 25%,88% 56%,100% 56%,100% 100%); }
  html[data-world='enchanted-castle'] .world-particles { opacity:.42; background-image:radial-gradient(circle,#ffe9a8 0 1px,transparent 2px),radial-gradient(circle,#c97850 0 .7px,transparent 2px); background-size:99px 131px,173px 211px; animation-name:cinematic-castle-dust; }
  html[data-world='enchanted-castle'] .world-particles-mid { opacity:.24; background:radial-gradient(ellipse at 30% 20%,color-mix(in srgb,var(--world-highlight) 68%,transparent) 0 1px,transparent 3px); background-size:149px 197px; animation-name:cinematic-castle-dust; }
  html[data-world='enchanted-castle'] .world-atmosphere[data-event='candle-rose'] .world-rare { inset:12% 18%; background:radial-gradient(ellipse at center,color-mix(in srgb,var(--world-highlight) 30%,transparent),transparent 38%),radial-gradient(ellipse at 52% 48%,color-mix(in srgb,var(--world-accent-secondary) 72%,transparent) 0 3%,transparent 3.4%); animation:cinematic-castle-rare 12s ease-in-out both; }

  /* Elemental Metropolis — clipped equipment modules and kinetic signals. */
  html[data-world='elemental-metropolis'] :is(.panel,.room-card,.metric,.employee-bubble,dialog,.notification-panel):not(:where(.print-preview-sheet *,#print-run-root *)) { border-radius:2px 20px 2px 12px !important; border-left:5px solid var(--world-accent-secondary) !important; background:linear-gradient(110deg,var(--world-surface) 0 82%,color-mix(in srgb,var(--world-accent) 14%,var(--world-elevated)) 82%) !important; box-shadow:7px 8px 0 -5px var(--world-deep),inset 0 2px 0 color-mix(in srgb,var(--world-highlight) 44%,transparent) !important; }
  html[data-world='elemental-metropolis'] :is(.panel,.room-card,.metric)::after { content:'▪ ▪'; position:absolute; right:10px;top:8px;color:var(--world-accent);letter-spacing:4px;font-size:11px; pointer-events:none; }
  html[data-world='elemental-metropolis'] .panel > .panel-head { border-bottom:2px solid var(--world-accent-secondary) !important; border-left:0 !important; background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--world-accent) 15%,transparent) 0 7px,transparent 7px 15px),var(--world-elevated) !important; }
  html[data-world='elemental-metropolis'] :is(.sidebar,.topbar,#mobile-nav-sheet,.mobile-nav-bar) { border-right:3px solid var(--world-accent-secondary) !important; background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--world-accent) 10%,transparent) 0 1px,transparent 1px 26px),var(--world-deep) !important; }
  html[data-world='elemental-metropolis'] :is(.nav-item.active,.mobile-nav-sheet-item.active,[aria-selected='true']) { translate:4px 0; background:linear-gradient(90deg,var(--world-accent-secondary) 0 5px,color-mix(in srgb,var(--world-accent) 17%,var(--world-surface)) 5px) !important; box-shadow:inset 0 -2px 0 var(--world-accent) !important; }
  html[data-world='elemental-metropolis'] :is(.button,.notification-button) { border-radius:2px 12px 2px 12px !important; box-shadow:4px 4px 0 -2px var(--world-deep),inset 0 1px 0 var(--world-highlight) !important; }
  html[data-world='elemental-metropolis'] :is(.button,.notification-button):active { translate:2px 2px; box-shadow:1px 1px 0 var(--world-deep) !important; }
  html[data-world='elemental-metropolis'] :is(.badge,.room-list-count,.logged-by-badge) { border-radius:2px !important; border-left:3px solid var(--world-accent) !important; }
  html[data-world='elemental-metropolis'] :is(input,select,textarea) { border-radius:2px 10px 2px 10px !important; border-left:3px solid var(--world-accent-secondary) !important; }
  html[data-world='elemental-metropolis'] .world-base { background:linear-gradient(135deg,var(--world-deep),var(--world-background) 46%,color-mix(in srgb,var(--world-accent-secondary) 10%,var(--world-deep))); animation-name:cinematic-metro-signal; }
  html[data-world='elemental-metropolis'] .world-silhouette { inset:0;opacity:.26;background:repeating-linear-gradient(90deg,transparent 0 63px,color-mix(in srgb,var(--world-border) 32%,transparent) 64px 66px,transparent 67px 126px),linear-gradient(180deg,transparent 0 68%,color-mix(in srgb,var(--world-deep) 66%,transparent) 68%); }
  html[data-world='elemental-metropolis'] .world-horizon { opacity:.48;background:repeating-linear-gradient(0deg,transparent 0 33px,color-mix(in srgb,var(--world-accent-secondary) 22%,transparent) 34px 36px,transparent 37px 70px); animation-name:cinematic-metro-traffic; }
  html[data-world='elemental-metropolis'] .world-particles { opacity:.52;background:linear-gradient(90deg,transparent 0 46%,var(--world-accent) 47% 53%,transparent 54%) 0 0/137px 7px,linear-gradient(90deg,transparent 0 47%,var(--world-accent-secondary) 48% 52%,transparent 53%) 0 0/223px 5px;animation-name:cinematic-metro-traffic; }
  html[data-world='elemental-metropolis'] .world-particles-mid { opacity:.35;background:linear-gradient(90deg,transparent 0 45%,var(--world-highlight) 46% 54%,transparent 55%) 0 0/89px 4px;animation-name:cinematic-metro-vertical; }
  html[data-world='elemental-metropolis'] .world-atmosphere[data-event='traffic-burst'] .world-rare { inset:10% -8%;background:repeating-linear-gradient(105deg,transparent 0 7%,color-mix(in srgb,var(--world-accent) 45%,transparent) 7.2% 7.5%,transparent 7.8% 15%);animation:cinematic-metro-burst 6.4s linear both; }

  /* Heptapod Mist — quiet slabs and diffusion, not conventional glow. */
  html[data-world='heptapod-mist'] :is(.panel,.room-card,.metric,.employee-bubble,dialog,.notification-panel):not(:where(.print-preview-sheet *,#print-run-root *)) { border-radius:3px !important; border-color:color-mix(in srgb,var(--world-border) 52%,transparent) !important; background:color-mix(in srgb,var(--world-surface) 92%,var(--world-elevated)) !important; box-shadow:0 26px 48px -34px var(--world-deep),inset 0 1px 0 color-mix(in srgb,var(--world-highlight) 55%,transparent) !important; }
  html[data-world='heptapod-mist'] .panel > .panel-head { background:transparent !important;border-bottom:1px solid color-mix(in srgb,var(--world-border) 35%,transparent) !important;min-height:64px; }
  html[data-world='heptapod-mist'] :is(.sidebar,.topbar,#mobile-nav-sheet,.mobile-nav-bar) { background:color-mix(in srgb,var(--world-deep) 90%,transparent) !important; border-color:color-mix(in srgb,var(--world-border) 44%,transparent) !important; }
  html[data-world='heptapod-mist'] :is(.nav-item,.mobile-nav-sheet-item) { margin-block:5px; }
  html[data-world='heptapod-mist'] :is(.nav-item.active,.mobile-nav-sheet-item.active,[aria-selected='true']) { background:transparent !important;box-shadow:inset 2px 0 var(--world-accent) !important; border-color:transparent !important; }
  html[data-world='heptapod-mist'] :is(.button,.notification-button) { border-radius:2px !important;background:transparent !important;box-shadow:none !important; }
  html[data-world='heptapod-mist'] :is(.badge,.room-list-count,.logged-by-badge) { border-radius:50% !important;background:transparent !important; }
  html[data-world='heptapod-mist'] :is(input,select,textarea) { border-radius:2px !important;background:color-mix(in srgb,var(--world-surface) 82%,transparent) !important; }
  html[data-world='heptapod-mist'] .world-base { background:radial-gradient(ellipse at 45% 34%,color-mix(in srgb,var(--world-highlight) 18%,transparent),transparent 35%),linear-gradient(145deg,var(--world-deep),var(--world-background) 57%,color-mix(in srgb,var(--world-accent-secondary) 13%,var(--world-deep))); animation-name:cinematic-mist-breathe; }
  html[data-world='heptapod-mist'] .world-horizon { opacity:.38;background:radial-gradient(ellipse at 10% 42%,color-mix(in srgb,var(--world-highlight) 27%,transparent),transparent 36%),radial-gradient(ellipse at 88% 64%,color-mix(in srgb,var(--world-accent-secondary) 24%,transparent),transparent 42%);animation-name:cinematic-mist-drift; }
  html[data-world='heptapod-mist'] .world-silhouette { inset:-12%;opacity:.15;background:repeating-radial-gradient(ellipse at 54% 48%,transparent 0 15%,color-mix(in srgb,var(--world-border) 28%,transparent) 15.2% 15.45%,transparent 15.7% 28%);animation:cinematic-mist-ring 72s linear infinite; }
  html[data-world='heptapod-mist'] .world-particles { opacity:.15;background:radial-gradient(ellipse,color-mix(in srgb,var(--world-highlight) 38%,transparent) 0 2px,transparent 12px);background-size:191px 223px;animation-name:cinematic-mist-drift; }
  html[data-world='heptapod-mist'] .world-atmosphere[data-event='ink-diffusion'] .world-rare { inset:20% 28%;border:2px solid color-mix(in srgb,var(--world-accent-secondary) 56%,transparent);border-radius:47% 53% 41% 59%/52% 42% 58% 48%;border-right-color:transparent;animation:cinematic-mist-ink 15s ease-in-out both; }

  /* Sky Tower — high-altitude glass plates over layered weather. */
  html[data-world='sky-tower'] :is(.panel,.room-card,.metric,.employee-bubble,dialog,.notification-panel):not(:where(.print-preview-sheet *,#print-run-root *)) { border-radius:3px 22px 3px 22px !important;border-top:2px solid color-mix(in srgb,var(--world-highlight) 84%,transparent) !important;border-right:3px solid color-mix(in srgb,var(--world-border) 65%,transparent) !important;background:linear-gradient(135deg,color-mix(in srgb,var(--world-surface) 84%,transparent),color-mix(in srgb,var(--world-elevated) 90%,transparent)) !important;box-shadow:0 24px 42px -28px var(--world-deep),0 2px 0 var(--world-highlight),inset 0 1px 0 color-mix(in srgb,var(--world-highlight) 72%,transparent) !important;backdrop-filter:blur(9px); }
  html[data-world='sky-tower'] .panel > .panel-head { background:linear-gradient(90deg,color-mix(in srgb,var(--world-highlight) 17%,transparent),transparent 58%) !important;border-bottom:1px solid color-mix(in srgb,var(--world-border) 38%,transparent) !important; }
  html[data-world='sky-tower'] :is(.sidebar,.topbar,#mobile-nav-sheet,.mobile-nav-bar) { background:linear-gradient(155deg,color-mix(in srgb,var(--world-surface) 82%,transparent),color-mix(in srgb,var(--world-deep) 75%,transparent)) !important;border-right:2px solid var(--world-border) !important;backdrop-filter:blur(18px) saturate(1.2) !important; }
  html[data-world='sky-tower'] :is(.nav-item.active,.mobile-nav-sheet-item.active,[aria-selected='true']) { background:linear-gradient(90deg,color-mix(in srgb,var(--world-highlight) 28%,transparent),color-mix(in srgb,var(--world-accent) 11%,transparent)) !important;box-shadow:0 8px 24px -18px var(--world-accent),inset 0 -2px var(--world-highlight) !important; }
  html[data-world='sky-tower'] :is(.button,.notification-button) { border-radius:3px 14px 3px 14px !important;background:linear-gradient(135deg,color-mix(in srgb,var(--world-highlight) 24%,var(--world-surface)),var(--world-elevated)) !important; }
  html[data-world='sky-tower'] :is(.badge,.room-list-count,.logged-by-badge) { border-radius:3px 10px 3px 10px !important; }
  html[data-world='sky-tower'] :is(input,select,textarea) { border-radius:3px 14px 3px 14px !important;background:color-mix(in srgb,var(--world-surface) 86%,transparent) !important; }
  html[data-world='sky-tower'] .world-base { background:radial-gradient(ellipse at 70% 10%,color-mix(in srgb,var(--world-highlight) 36%,transparent),transparent 34%),linear-gradient(160deg,var(--world-deep),var(--world-background) 58%,color-mix(in srgb,var(--world-accent-secondary) 15%,var(--world-background)));animation-name:cinematic-sky-drift; }
  html[data-world='sky-tower'][data-mode='light'] .world-base { background:radial-gradient(ellipse at 70% 8%,rgba(255,255,255,.88),transparent 30%),linear-gradient(160deg,#d8edfa,#f8fdff 55%,#cce6f5); }
  html[data-world='sky-tower'] .world-horizon { opacity:.48;background:radial-gradient(ellipse at 25% 74%,color-mix(in srgb,var(--world-highlight) 48%,transparent),transparent 30%),radial-gradient(ellipse at 76% 58%,color-mix(in srgb,var(--world-accent-secondary) 28%,transparent),transparent 38%);animation-name:cinematic-sky-clouds; }
  html[data-world='sky-tower'] .world-silhouette { inset:34% -8% -8%;opacity:.27;background:radial-gradient(ellipse at 16% 85%,color-mix(in srgb,var(--world-highlight) 70%,transparent) 0 14%,transparent 35%),radial-gradient(ellipse at 62% 80%,color-mix(in srgb,var(--world-highlight) 54%,transparent) 0 19%,transparent 43%),radial-gradient(ellipse at 93% 88%,color-mix(in srgb,var(--world-highlight) 62%,transparent) 0 17%,transparent 40%);animation-name:cinematic-sky-clouds; }
  html[data-world='sky-tower'] .world-particles { opacity:.13;background-image:radial-gradient(circle,var(--world-highlight) 0 1px,transparent 2px);background-size:191px 229px;animation-name:cinematic-sky-stars; }
  html[data-world='sky-tower'] .world-atmosphere[data-event='distant-glider'] .world-rare { width:44px;height:3px;left:-8%;top:var(--world-rare-y);right:auto;bottom:auto;background:linear-gradient(90deg,transparent,var(--world-highlight),var(--world-accent),transparent);transform:rotate(-13deg);animation:cinematic-sky-glider 11s ease-in-out both; }

  @media (hover:hover) {
    html[data-world='enchanted-castle'] :is(.panel,.room-card,.metric):hover { transform:translateY(-3px);box-shadow:var(--world-shadow),0 0 28px var(--world-glow),inset 0 0 0 3px color-mix(in srgb,var(--world-accent) 46%,transparent) !important; }
    html[data-world='elemental-metropolis'] :is(.panel,.room-card,.metric):hover { transform:translate(2px,-3px);border-left-color:var(--world-accent) !important;box-shadow:10px 11px 0 -5px var(--world-deep),0 0 18px var(--world-glow) !important; }
    html[data-world='heptapod-mist'] :is(.panel,.room-card,.metric):hover { transform:translateY(-1px);filter:contrast(1.08);box-shadow:0 30px 52px -30px var(--world-deep),0 0 0 1px var(--world-highlight) !important; }
    html[data-world='sky-tower'] :is(.panel,.room-card,.metric):hover { transform:translateY(-4px) scale(1.002);box-shadow:0 31px 48px -25px var(--world-deep),0 0 20px var(--world-glow),0 2px 0 var(--world-highlight) !important; }
  }

  html[data-world='enchanted-castle'][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging) { animation:cinematic-castle-card 13s ease-in-out infinite; }
  html[data-world='elemental-metropolis'][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging) { animation:cinematic-metro-card 9s steps(2,end) infinite; }
  html[data-world='heptapod-mist'][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging) { animation:cinematic-mist-card 21s ease-in-out infinite; }
  html[data-world='sky-tower'][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging) { animation:cinematic-sky-card 17s ease-in-out infinite; }
  html:is([data-world='enchanted-castle'],[data-world='elemental-metropolis'],[data-world='heptapod-mist'],[data-world='sky-tower'])[data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card):nth-child(3n+2) { animation-delay:-4.1s; }
  html:is([data-world='enchanted-castle'],[data-world='elemental-metropolis'],[data-world='heptapod-mist'],[data-world='sky-tower'])[data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card):nth-child(3n) { animation-delay:-8.3s; }

  @keyframes cinematic-castle-candle { 0%,100% { background-position:0 0;filter:brightness(.96); } 50% { background-position:4% -3%;filter:brightness(1.08); } }
  @keyframes cinematic-castle-dust { from { background-position:0 0,0 0; } to { background-position:42px -218px,-24px -311px; } }
  @keyframes cinematic-castle-rare { 0%,100% { opacity:0;transform:scale(.76); } 40%,72% { opacity:.72;transform:scale(1); } }
  @keyframes cinematic-castle-card { 0%,100% { translate:0 0;box-shadow:var(--world-shadow); } 50% { translate:0 -1px;box-shadow:var(--world-shadow),0 0 16px var(--world-glow); } }
  @keyframes cinematic-metro-signal { from { background-position:0 0; } to { background-position:5% -4%; } }
  @keyframes cinematic-metro-traffic { from { background-position:-260px 0; } to { background-position:460px -90px; } }
  @keyframes cinematic-metro-vertical { from { background-position:0 -260px; } to { background-position:90px 420px; } }
  @keyframes cinematic-metro-burst { 0%,100% { opacity:0;transform:translateX(-8%); } 42%,64% { opacity:.68;transform:translateX(8%); } }
  @keyframes cinematic-metro-card { 0%,100% { translate:0 0; } 50% { translate:1px -1px; } }
  @keyframes cinematic-mist-breathe { 0%,100% { filter:contrast(.96); } 50% { filter:contrast(1.05); } }
  @keyframes cinematic-mist-drift { from { transform:translate3d(-3%,1%,0) scale(1.04); } to { transform:translate3d(4%,-2%,0) scale(1.08); } }
  @keyframes cinematic-mist-ring { from { transform:rotate(-8deg) scale(1); } to { transform:rotate(8deg) scale(1.08); } }
  @keyframes cinematic-mist-ink { 0%,100% { opacity:0;transform:scale(.72) rotate(-13deg); } 35%,74% { opacity:.5;transform:scale(1.14) rotate(13deg); } }
  @keyframes cinematic-mist-card { 0%,100% { filter:contrast(.99); } 50% { filter:contrast(1.035); } }
  @keyframes cinematic-sky-drift { from { background-position:0 0; } to { background-position:4% 3%; } }
  @keyframes cinematic-sky-clouds { from { transform:translate3d(-3%,1%,0) scale(1.04); } to { transform:translate3d(4%,-2%,0) scale(1.12); } }
  @keyframes cinematic-sky-stars { from { background-position:0 0; } to { background-position:-36px 190px; } }
  @keyframes cinematic-sky-glider { 0%,100% { opacity:0;transform:translateX(0) rotate(-13deg); } 15%,83% { opacity:.78;transform:translateX(118vw) rotate(-13deg); } }
  @keyframes cinematic-sky-card { 0%,100% { translate:0 0; } 50% { translate:0 -3px; } }
}


/* Source: shared-card-theme.css */
/* Use the My Rooms card material throughout the app. Keep layout and
   operational arrival/finished paints owned by their existing styles. */
@media screen {
  @property --low-power-glow-blur { syntax: '<length>'; inherits: false; initial-value: 1px; }
  @property --low-power-glow-y { syntax: '<length>'; inherits: false; initial-value: 4px; }

  @property --aurora-edge-angle { syntax: '<angle>'; inherits: false; initial-value: 0deg; }

  /* Keep the space between sibling cards consistent across every tab. Inner
     control spacing remains owned by each feature's layout rules. */
  html[data-theme] #app-view .view {
    --app-card-gap: 18px;
  }
  html[data-theme] #app-view .view :is(.housekeeper-grid, .ops-grid, .split-grid, .reference-guide-grid, .prod-scores-grid, .manager-room-grid, .assignments-body) {
    gap: var(--app-card-gap) !important;
  }
  html[data-theme] #app-view .view#dashboard-view:not(.card-order-editing-view) {
    gap: var(--app-card-gap) !important;
  }

  html[data-theme] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card):not(:where(.print-preview-sheet *, #print-run-root *)) {
    border-radius: var(--world-radius, var(--studio-card-radius, var(--radius-m))) !important;
  }
  html[data-theme] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging):not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: var(--world-surface, var(--studio-card-surface, var(--panel))) !important;
    border: 1px solid var(--world-border, var(--border)) !important;
    box-shadow: var(--world-shadow, var(--studio-card-shadow, var(--studio-elevation))) !important;
  }
  /* The Lunar Cyborg My Rooms reference uses the pink early-arrival card
     paint. Keep that exact card color across the other views; status labels
     and badges still carry the operational detail. */
  html[data-world='lunar-cyborg'] #app-view .view:not(#myrooms-view) :is(.panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging):not(:where(.print-preview-sheet *, #print-run-root *)) {
    border-color: color-mix(in srgb, #ff2fb4 58%, var(--border)) !important;
    background:
      radial-gradient(circle at 92% 8%, color-mix(in srgb, #ff2fb4 22%, transparent), transparent 34%),
      linear-gradient(145deg, color-mix(in srgb, #ff2fb4 12%, transparent), transparent 55%),
      linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012)) !important;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, .09),
      inset 0 -18px 34px rgba(0, 0, 0, .12),
      0 16px 34px -25px color-mix(in srgb, #ff2fb4 64%, #000) !important;
  }
  /* Early arrivals keep a distinct warm signal now that pink is the shared
     Lunar Cyborg card color. Apply it to room cards in every view. */
  html[data-world='lunar-cyborg'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card).early-tier:not(.finished):not(.card-dragging):not(:where(.print-preview-sheet *, #print-run-root *)) {
    border-color: color-mix(in srgb, #f0a23a 58%, var(--border)) !important;
    background:
      radial-gradient(circle at 92% 8%, color-mix(in srgb, #f0a23a 22%, transparent), transparent 34%),
      linear-gradient(145deg, color-mix(in srgb, #f0a23a 12%, transparent), transparent 55%),
      linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012)) !important;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, .09),
      inset 0 -18px 34px rgba(0, 0, 0, .12),
      0 16px 34px -25px color-mix(in srgb, #f0a23a 64%, #000) !important;
  }
  html[data-world='lunar-cyborg'] #app-view .view .badge.early-badge:not(:where(.print-preview-sheet *, #print-run-root *)) {
    color: #b65e00 !important;
    border-color: color-mix(in srgb, #f0a23a 58%, transparent) !important;
    background: color-mix(in srgb, #f0a23a 14%, transparent) !important;
    animation: lunar-early-pulse 1.6s ease-in-out infinite;
  }
  @keyframes lunar-early-pulse {
    0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, #f0a23a 42%, transparent); }
    50% { box-shadow: 0 0 14px 3px color-mix(in srgb, #f0a23a 58%, transparent); }
  }
  html[data-theme] #app-view .view .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: transparent !important;
    border-radius: 0;
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-bottom-color: color-mix(in srgb, var(--accent) 20%, transparent) !important;
    box-shadow: none;
  }
  html[data-theme] #app-view .view .panel.is-collapsed > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) {
    border-bottom-color: transparent !important;
  }
  html[data-theme] #app-view .view .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *))::before,
  html[data-theme] #app-view .view .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *))::after {
    content: none !important;
  }
  html[data-theme] #app-view .view :is(.panel, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(:where(.print-preview-sheet *, #print-run-root *))::before {
    content: '' !important;
    position: absolute;
    inset: 0 12px auto;
    width: auto;
    height: 2px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 82%, #fff), transparent) !important;
    box-shadow: 0 0 13px color-mix(in srgb, var(--accent) 50%, transparent);
    opacity: .9;
    pointer-events: none;
    mask: none;
    transform: none;
  }
  /* Match the actual My Rooms composition, not only its outer paint. */
  html[data-theme] #app-view .view :is(.panel, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(:where(.print-preview-sheet *, #print-run-root *)) {
    position: relative;
    isolation: isolate;
    padding: 18px;
  }
  html[data-theme] #app-view .view .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) {
    padding: 0 0 12px !important;
    margin: 0 0 20px;
    min-height: 0;
    align-items: flex-start;
    gap: 12px;
  }
  html[data-theme] #app-view .view .panel.is-collapsed > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) {
    padding-bottom: 0 !important;
    margin-bottom: 0;
  }
  html[data-theme] #app-view .view .panel > .panel-body:not(:where(.print-preview-sheet *, #print-run-root *)) {
    padding: 0;
  }
  /* Keep the larger My Rooms treatment, while returning the other tabs to
     their original compact panel heading sizes. */
  html[data-theme] #app-view .view#myrooms-view .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) h3 {
    font-size: 27px;
    font-weight: 680;
    line-height: 1.25;
    text-shadow: 0 0 18px color-mix(in srgb, var(--accent) 32%, transparent);
    overflow-wrap: anywhere;
  }
  html[data-theme] #app-view .view:not(#myrooms-view) .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) h3 {
    font-size: 14px;
    font-weight: 620;
    line-height: normal;
    text-shadow: none;
  }
  @media (max-width: 700px) {
    html[data-theme] #app-view .view:not(#myrooms-view) .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) h3 {
      font-size: 13px;
    }
  }
  html[data-theme] #app-view .view .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) h3::before {
    content: none !important;
  }
  /* World themes supply their own corner signature. Keep the shared ticket
     hole for the studio themes, but do not paint it over world markers. */
  html[data-theme]:not([data-world]) #app-view .view :is(.panel, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(:where(.print-preview-sheet *, #print-run-root *))::after {
    content: '' !important;
    position: absolute;
    inset: 13px 13px auto auto;
    width: 7px;
    height: 7px;
    border: 0;
    border-radius: 50%;
    background: var(--accent) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent), 0 0 12px color-mix(in srgb, var(--accent) 78%, transparent);
    opacity: 1;
    mask: none;
    transform: none;
    pointer-events: none;
    animation: none !important;
  }
  html[data-theme] #app-view .view .approval-box > .panel-body {
    background: transparent !important;
  }

  /* Keep the paired Morning list and Manager approval cards geometrically
     identical after the approval-specific compact theme treatment above. */
  html[data-theme] #app-view .view .manager-morning-approval-pair > :is(.manual-prepare-panel, .approval-box) {
    align-self: stretch !important;
    box-sizing: border-box;
  }
  html[data-theme] #app-view .view .manager-morning-approval-pair > .approval-box {
    padding: 18px !important;
  }
  html[data-theme] #app-view .view .manager-morning-approval-pair > .approval-box > .panel-head {
    padding: 0 0 12px !important;
    margin: 0 0 20px;
  }
  html[data-theme] #app-view .view .manager-morning-approval-pair > .approval-box.is-collapsed > .panel-head {
    padding-bottom: 0 !important;
    margin-bottom: 0;
  }
}

/* The paired manager tools stay together in saved ordering, but need their
   own full-width rows and natural heights on a phone. */
@media screen and (max-width: 700px) {
  html[data-theme] #app-view #dashboard-view .manager-morning-approval-pair {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 12px;
  }
  html[data-theme] #app-view #dashboard-view .manager-morning-approval-pair > :is(.manual-prepare-panel, .approval-box) {
    align-self: start !important;
    height: auto !important;
    width: 100%;
    min-width: 0;
  }
  html[data-theme] #app-view #dashboard-view .manager-morning-approval-pair .panel-body {
    min-width: 0;
    padding: 10px 0;
  }
  html[data-theme] #app-view #dashboard-view .manager-morning-approval-pair :is(input, textarea, select) {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
    font-size: 16px;
  }
  html[data-theme] #app-view #dashboard-view .approval-box .approval-actions {
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    gap: 8px;
  }
  html[data-theme] #app-view #dashboard-view :is(.approval-actions, .manual-prepare-panel .quick-add-action-row) > .button {
    box-sizing: border-box;
    min-width: 0 !important;
    width: 100%;
    max-width: 100%;
    min-height: 44px;
    white-space: normal !important;
    overflow-wrap: anywhere;
    padding: 9px 12px;
    font-size: 14px;
    line-height: 1.3;
  }
}

/* Aurora's clipped face owns the silhouette. Let that face cast the glow
   outside the card without filtering the text and controls above it. */
@media screen {
  html[data-theme='aurora-circuit'][data-animation-style='low-power'][data-background-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card):not(:where(.print-preview-sheet *, #print-run-root *)) {
    clip-path: none !important;
    overflow: visible !important;
    box-shadow: none !important;
  }
  html[data-theme='aurora-circuit'][data-animation-style='low-power'][data-background-animations='on'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card)::before {
    filter: drop-shadow(0 0 var(--low-power-glow-blur) var(--low-power-card-glow-near)) drop-shadow(0 var(--low-power-glow-y) 12px var(--low-power-card-glow-far));
    animation: low-power-aurora-silhouette-pulse 7.2s ease-in-out infinite !important;
  }
  @keyframes low-power-aurora-silhouette-pulse {
    0%, 100% { filter: drop-shadow(0 0 1px var(--low-power-card-glow-near)) drop-shadow(0 4px 12px var(--low-power-card-glow-far)); }
    50% { filter: drop-shadow(0 0 7px var(--low-power-card-glow-near)) drop-shadow(0 7px 22px var(--low-power-card-glow-far)); }
  }
}

/* Low Power Glow — pulse around each card's silhouette. Keep this as a
   box-shadow on the card itself: filtering the whole card also makes every
   button, badge, and line of text glow. Negative delays and slightly different
   periods keep neighboring cards independent. */
@media screen {
  html[data-animation-style='low-power'][data-background-animations='on'] #app-view .view :is(
    .panel,
    .metric,
    .employee-bubble,
    .prod-score-card,
    .summary-card,
    .metric-card,
    [class$='-card'],
    [class*='-card ']
  ):not(:where(.print-preview-sheet *, #print-run-root *)) {
    --low-power-card-depth: 0 5px 8px color-mix(in srgb, #000 24%, transparent);
    --low-power-card-glow-near: color-mix(in srgb, var(--accent) 44%, transparent);
    --low-power-card-glow-far: color-mix(in srgb, var(--accent) 22%, transparent);
    --low-power-glow-blur: 1px;
    --low-power-glow-y: 4px;
    --low-power-card-period: 7.2s;
    --low-power-card-delay: 0s;
    box-shadow: var(--low-power-card-depth),
      0 0 var(--low-power-glow-blur) var(--low-power-card-glow-near),
      0 var(--low-power-glow-y) 7px var(--low-power-card-glow-far) !important;
    animation: low-power-card-pulse var(--low-power-card-period) var(--low-power-card-delay) ease-in-out infinite;
  }

  html[data-animation-style='low-power'][data-background-animations='on'] #app-view .view :is(
    .panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card,
    [class$='-card'], [class*='-card ']
  ):nth-child(4n + 2) {
    --low-power-card-period: 8.1s;
    --low-power-card-delay: -2.7s;
  }
  html[data-animation-style='low-power'][data-background-animations='on'] #app-view .view :is(
    .panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card,
    [class$='-card'], [class*='-card ']
  ):nth-child(4n + 3) {
    --low-power-card-period: 6.6s;
    --low-power-card-delay: -4.4s;
  }
  html[data-animation-style='low-power'][data-background-animations='on'] #app-view .view :is(
    .panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card,
    [class$='-card'], [class*='-card ']
  ):nth-child(4n + 4) {
    --low-power-card-period: 7.7s;
    --low-power-card-delay: -5.8s;
  }

  /* Early arrival is an operational alert, so it keeps its own pink pulse
     even though ordinary card contents stay free of glow filters. */
  html[data-animation-style='low-power'][data-background-animations='on'] #app-view .view .badge.early-badge:not(:where(.print-preview-sheet *, #print-run-root *)) {
    animation: early-pulse 1.6s ease-in-out infinite;
    filter: none;
  }

  /* Keep Aurora's deeper plate shadow while the pulse follows each of its
     four asymmetric clip-path variants. */
  html[data-theme='aurora-circuit'][data-animation-style='low-power'][data-background-animations='on'] #app-view .view :is(
    .panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card,
    [class$='-card'], [class*='-card ']
  ):not(:where(.print-preview-sheet *, #print-run-root *)) {
    --low-power-card-depth: 0 18px 28px color-mix(in srgb, var(--world-deep) 54%, transparent),
      0 0 12px color-mix(in srgb, var(--accent) 14%, transparent);
    filter: none !important;
    transition: box-shadow .35s ease, transform .35s ease !important;
  }

  html.world-page-hidden[data-animation-style='low-power'] #app-view .view :is(
    .panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card,
    [class$='-card'], [class*='-card ']
  ) {
    animation-play-state: paused;
  }

  html[data-animation-style='low-power'][data-animations='off'] #app-view .view :is(
    .panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card,
    [class$='-card'], [class*='-card ']
  ) {
    animation: none !important;
  }

  @media (prefers-reduced-motion: reduce) {
    html[data-animation-style='low-power'] #app-view .view :is(
      .panel, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card,
      [class$='-card'], [class*='-card ']
    ) {
      animation: none !important;
    }
  }

  @keyframes low-power-card-pulse {
    0%, 100% {
      --low-power-glow-blur: 1px;
      --low-power-glow-y: 4px;
    }
    50% {
      --low-power-glow-blur: 7px;
      --low-power-glow-y: 7px;
    }
  }
}

/* Aurora Circuit — engineered energy panels.
   This deliberately replaces the shared rounded-card silhouette. The card
   face is clipped into an asymmetric technical contour; the aura and moving
   edge are separate layers so the panel reads as a solid object inside an
   energy field instead of a normal card with a neon border. */
@media screen {
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card):not(:where(.print-preview-sheet *, #print-run-root *)) {
    --aurora-card-shape: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 22px 100%, 14px calc(100% - 10px), 0 calc(100% - 10px), 0 58%, 8px 53%, 0 48%);
    --aurora-card-face: color-mix(in srgb, var(--world-surface) 78%, var(--world-deep));
    position: relative;
    isolation: isolate;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    clip-path: var(--aurora-card-shape);
    background: transparent !important;
    box-shadow: none !important;
    filter:
      drop-shadow(0 18px 28px color-mix(in srgb, var(--world-deep) 54%, transparent))
      drop-shadow(0 0 24px color-mix(in srgb, var(--accent) 17%, transparent));
    transition: filter .35s ease, transform .35s ease !important;
  }

  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card):nth-child(4n + 2) {
    --aurora-card-shape: polygon(0 0, calc(100% - 14px) 0, calc(100% - 6px) 10px, 100% 10px, 100% 100%, 27px 100%, 0 calc(100% - 24px));
  }
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card):nth-child(4n + 3) {
    --aurora-card-shape: polygon(0 18px, 10px 18px, 18px 0, calc(100% - 26px) 0, 100% 26px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 56% 100%, 52% calc(100% - 7px), 18% calc(100% - 7px), 0 100%);
  }
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card):nth-child(4n + 4) {
    --aurora-card-shape: polygon(0 14px, 18px 0, 82% 0, 100% 16px, 100% 82%, 86% 100%, 18px 100%, 0 82%);
  }

  /* The face is a physical dark plate. Its two directional glows keep the
     selected theme color close to the engineered cuts without flattening the
     whole surface into a uniform neon wash. */
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card)::before {
    content: '' !important;
    position: absolute;
    z-index: 0;
    inset: 0;
    border: 0;
    border-radius: 0;
    clip-path: var(--aurora-card-shape);
    background:
      radial-gradient(circle at 91% 8%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 25%),
      radial-gradient(circle at 4% 73%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 22%),
      linear-gradient(142deg, color-mix(in srgb, var(--aurora-card-face) 92%, #000), var(--aurora-card-face) 56%, color-mix(in srgb, var(--world-deep) 74%, var(--aurora-card-face)));
    box-shadow:
      inset 0 1px 0 color-mix(in srgb, var(--accent) 38%, transparent),
      inset 0 -18px 32px color-mix(in srgb, var(--world-deep) 44%, transparent),
      inset 12px 0 20px color-mix(in srgb, var(--accent) 5%, transparent);
    background-size: 125% 125%, 135% 135%, 100% 100%;
    background-position: 100% 0, 0 100%, 0 0;
    animation: aurora-panel-flow 18s ease-in-out infinite alternate;
    pointer-events: none;
  }

  /* Interrupted razor edge. The inner mask removes the center so only the
     clipped perimeter catches the moving light. */
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card)::after {
    content: '' !important;
    position: absolute;
    z-index: 0;
    inset: 0;
    padding: 1px;
    border: 0;
    border-radius: 0;
    clip-path: var(--aurora-card-shape);
    background: conic-gradient(from 18deg, transparent 0deg 76deg, color-mix(in srgb, var(--accent) 68%, #fff) 96deg, transparent 118deg 188deg, color-mix(in srgb, var(--accent) 38%, transparent) 213deg, transparent 244deg 360deg);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    animation: aurora-edge-travel 16s linear infinite;
    pointer-events: none;
  }

  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card) > :not(.aurora-edge-light) {
    position: relative;
    z-index: 1;
  }

  /* The runtime-mounted edge layer supplies the wide atmosphere separately
     from the fine edge gleam. */
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card) > .aurora-edge-light {
    position: absolute;
    z-index: 3;
    inset: 0;
    border-radius: 0;
    clip-path: var(--aurora-card-shape);
    pointer-events: none;
  }
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card) > .aurora-edge-light::before,
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card) > .aurora-edge-light::after {
    content: '';
    position: absolute;
    border-radius: 0;
    clip-path: var(--aurora-card-shape);
    pointer-events: none;
  }
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card) > .aurora-edge-light::before {
    inset: 0;
    padding: 1px;
    background: conic-gradient(from var(--aurora-edge-angle), transparent 0deg 38deg, color-mix(in srgb, var(--accent) 80%, #fff) 58deg, transparent 78deg 182deg, color-mix(in srgb, var(--accent) 42%, transparent) 202deg, transparent 228deg 360deg);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    animation: aurora-edge-travel 15s linear infinite;
    animation-delay: var(--aurora-edge-delay, 0s);
  }

  /* Rare, short frayed-wire snaps originate at a random engineered corner.
     They stay inside the edge layer, leaving the card face and perimeter light
     untouched. */
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card) > .aurora-edge-light > .aurora-card-spark {
    --aurora-spark-rotation: 42deg;
    position: absolute;
    z-index: 4;
    width: 46px;
    height: 22px;
    opacity: 0;
    pointer-events: none;
  }
  html[data-theme='aurora-circuit'] .aurora-card-spark[data-corner='top-left'] { top: 4px; left: 4px; --aurora-spark-rotation: 42deg; }
  html[data-theme='aurora-circuit'] .aurora-card-spark[data-corner='top-right'] { top: 4px; right: 4px; --aurora-spark-rotation: 138deg; }
  html[data-theme='aurora-circuit'] .aurora-card-spark[data-corner='bottom-right'] { right: 4px; bottom: 4px; --aurora-spark-rotation: 222deg; }
  html[data-theme='aurora-circuit'] .aurora-card-spark[data-corner='bottom-left'] { bottom: 4px; left: 4px; --aurora-spark-rotation: 318deg; }
  html[data-theme='aurora-circuit'] .aurora-card-spark::before {
    content: '';
    position: absolute;
    top: 5px;
    left: 0;
    width: 44px;
    height: 12px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 58%, #fff) 16%, var(--accent) 46%, color-mix(in srgb, var(--accent) 34%, transparent) 78%, transparent);
    clip-path: polygon(0 51%, 14% 26%, 24% 68%, 38% 33%, 51% 73%, 66% 28%, 79% 61%, 100% 48%, 79% 78%, 64% 46%, 50% 90%, 36% 53%, 23% 88%, 13% 49%);
    filter: drop-shadow(0 0 3px color-mix(in srgb, var(--accent) 82%, #fff)) drop-shadow(0 0 8px color-mix(in srgb, var(--accent) 60%, transparent));
    transform: rotate(var(--aurora-spark-rotation));
    transform-origin: 0 50%;
  }
  html[data-theme='aurora-circuit'] .aurora-card-spark::after {
    content: '';
    position: absolute;
    top: 8px;
    left: 4px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--accent) 46%, #fff);
    box-shadow: 12px -5px 0 -1px color-mix(in srgb, var(--accent) 64%, #fff), 24px 4px 0 -2px var(--accent), 34px -3px 0 -2px color-mix(in srgb, var(--accent) 52%, #fff);
  }
  html[data-theme='aurora-circuit'] .aurora-card-spark.is-active { animation: aurora-wire-snap 820ms steps(1, end) both; }

  /* The four Today metrics use circuit traces instead of the generic icon
     chips. The lines sit in the unused perimeter space, keeping each label and
     score clear. */
  html[data-theme='aurora-circuit'] #dashboard-view .summary-grid .metric[data-summary]::before {
    content: none !important;
    display: none !important;
  }
  html[data-theme='aurora-circuit'] #dashboard-view .summary-grid .metric[data-summary] > .aurora-edge-light > .aurora-circuit-trace {
    position: absolute;
    z-index: 2;
    inset: 0;
    pointer-events: none;
  }
  html[data-theme='aurora-circuit'] .aurora-circuit-trace::before,
  html[data-theme='aurora-circuit'] .aurora-circuit-trace::after {
    content: '';
    position: absolute;
    width: 72px;
    height: 28px;
    opacity: .72;
    background:
      radial-gradient(circle at 4px 4px, color-mix(in srgb, var(--accent) 62%, #fff) 0 1.6px, transparent 2px),
      linear-gradient(color-mix(in srgb, var(--accent) 48%, transparent), color-mix(in srgb, var(--accent) 48%, transparent)) 5px 3px / 30px 1px no-repeat,
      linear-gradient(color-mix(in srgb, var(--accent) 48%, transparent), color-mix(in srgb, var(--accent) 48%, transparent)) 34px 3px / 1px 11px no-repeat,
      radial-gradient(circle at 35px 14px, color-mix(in srgb, var(--accent) 56%, #fff) 0 1.6px, transparent 2px),
      linear-gradient(color-mix(in srgb, var(--accent) 42%, transparent), color-mix(in srgb, var(--accent) 42%, transparent)) 36px 13px / 22px 1px no-repeat,
      radial-gradient(circle at 58px 14px, color-mix(in srgb, var(--accent) 52%, #fff) 0 1.4px, transparent 2px);
  }
  html[data-theme='aurora-circuit'] .aurora-circuit-trace::before { top: 11px; right: 18px; }
  html[data-theme='aurora-circuit'] .aurora-circuit-trace::after { bottom: 11px; left: 18px; transform: rotate(180deg); transform-origin: center; }
  html[data-theme='aurora-circuit'] #dashboard-view .summary-grid .metric:nth-child(even) .aurora-circuit-trace::before { transform: scaleX(-1); transform-origin: center; }
  html[data-theme='aurora-circuit'] #dashboard-view .summary-grid .metric:nth-child(3n) .aurora-circuit-trace::after { opacity: .46; }
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card) > .aurora-edge-light::after {
    inset: -1px;
    padding: 8px;
    background: conic-gradient(from 210deg, transparent 0deg 105deg, color-mix(in srgb, var(--accent) 36%, transparent) 146deg, transparent 184deg 300deg, color-mix(in srgb, var(--accent) 24%, transparent) 326deg, transparent 352deg);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    filter: blur(7px);
    opacity: .34;
    animation: aurora-aura-migrate 18s ease-in-out infinite;
    animation-delay: var(--aurora-edge-delay, 0s);
  }

  /* Restrained circuit traces: one segmented rail and one node per card,
     placed inside the header so they never compete with operational content. */
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .room-card, .prod-score-card, .summary-card, .metric-card) > :is(.panel-head, .room-card-head)::after {
    content: '';
    position: absolute;
    right: 12px;
    bottom: -7px;
    width: 42px;
    height: 2px;
    background: repeating-linear-gradient(90deg, var(--accent) 0 5px, transparent 5px 9px);
    box-shadow: 0 0 9px color-mix(in srgb, var(--accent) 62%, transparent);
    opacity: .48;
    pointer-events: none;
  }
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .room-card, .prod-score-card, .summary-card, .metric-card) > :is(.panel-head, .room-card-head)::before {
    content: '';
    position: absolute;
    right: 60px;
    bottom: -8px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent), 0 0 10px color-mix(in srgb, var(--accent) 76%, transparent);
    opacity: .66;
    pointer-events: none;
  }
  html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .room-card, .prod-score-card, .summary-card, .metric-card) > :is(.panel-head, .room-card-head) {
    position: relative;
    border-radius: 0 !important;
    background: transparent !important;
    border-bottom-color: color-mix(in srgb, var(--accent) 24%, transparent) !important;
  }

  @keyframes aurora-panel-flow {
    0% { background-position: 100% 0, 0 100%, 0 0; }
    52% { background-position: 76% 12%, 18% 86%, 0 0; }
    100% { background-position: 14% 30%, 74% 66%, 0 0; }
  }
  @keyframes aurora-edge-travel { to { --aurora-edge-angle: 360deg; } }
  @keyframes aurora-aura-migrate {
    0%, 100% { opacity: .2; transform: translate3d(-1px, 0, 0); }
    34% { opacity: .42; transform: translate3d(1px, -1px, 0); }
    71% { opacity: .25; transform: translate3d(0, 1px, 0); }
  }
  @keyframes aurora-wire-snap {
    0%, 100% { opacity: 0; }
    10% { opacity: .82; }
    18% { opacity: .16; }
    31% { opacity: 1; }
    43% { opacity: .28; }
    57% { opacity: .74; }
    69% { opacity: .1; }
    78% { opacity: .52; }
  }

  @media (hover: hover) and (pointer: fine) {
    html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card):not(.card-dragging):hover {
      filter:
        drop-shadow(0 20px 32px color-mix(in srgb, var(--world-deep) 58%, transparent))
        drop-shadow(0 0 32px color-mix(in srgb, var(--accent) 29%, transparent));
      transform: translateY(-2px);
    }
  }

  html[data-theme='aurora-circuit'][data-animations='off'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card)::before,
  html[data-theme='aurora-circuit'][data-animations='off'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card)::after,
  html[data-theme='aurora-circuit'][data-animations='off'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card) > .aurora-edge-light::before,
  html[data-theme='aurora-circuit'][data-animations='off'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card) > .aurora-edge-light::after,
  html[data-theme='aurora-circuit'][data-animations='off'] .aurora-card-spark.is-active {
    animation: none !important;
  }
  @media (prefers-reduced-motion: reduce) {
    html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card)::before,
    html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card)::after,
    html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card) > .aurora-edge-light::before,
    html[data-theme='aurora-circuit'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card) > .aurora-edge-light::after,
    html[data-theme='aurora-circuit'] .aurora-card-spark.is-active {
      animation: none !important;
    }
  }
}


/* Source: cinematic-themes-part1b.css */
/* Cinematic presentation, loaded after shared card material. Only decorative
   surfaces are shaped: interactive cards and their menus are never clipped. */
@media screen {
  html[data-theme='the-grid'] { --theme-badge-radius: 1px 7px 1px 7px; --theme-badge-clip: polygon(8% 0,100% 0,100% 75%,92% 100%,0 100%,0 25%); }
  html[data-theme='dust-city'] { --theme-badge-radius: 0 0 8px 0; --theme-badge-clip: polygon(0 0,100% 0,100% 68%,88% 100%,0 100%); }
  html[data-theme='event-horizon'] { --theme-badge-radius: 50% 8% 50% 8%; --theme-badge-clip: none; }
  html[data-theme='construct'] { --theme-badge-radius: 0 1px 4px 0; --theme-badge-clip: polygon(0 0,73% 0,73% 6%,100% 6%,100% 100%,24% 100%,24% 94%,0 94%); }

  html[data-cinematic][data-world][data-theme][data-mode] .view { animation:none !important; }
  html[data-cinematic][data-world][data-theme][data-mode][data-animation-style] .workspace > .workspace-animation-decor { display:none !important; }
  html[data-cinematic][data-world][data-theme][data-mode][data-animation-style] .world-atmosphere { display:block !important; }
  html[data-cinematic][data-world][data-theme][data-mode][data-animation-style]:is([data-world='the-grid'],[data-world='dust-city'],[data-world='event-horizon'],[data-world='construct']) .world-atmosphere { display:none !important; }
  html[data-cinematic] .workspace > .cinema-atmosphere {
    position:fixed; inset:0; z-index:0; overflow:hidden; contain:strict;
    pointer-events:none; color:var(--world-accent); --react-x:65vw; --react-y:35vh;
  }
  .cinema-atmosphere *, .cinema-transition * { pointer-events:none !important; }
  .cinema-atmosphere > *, .cinema-atmosphere svg { position:absolute; inset:0; width:100%; height:100%; }
  html[data-cinematic] .workspace > .cinema-transition {
    position:fixed; inset:0; overflow:hidden; z-index:5; pointer-events:none;
    contain:strict; color:var(--world-accent);
  }
  html[data-cinematic] #app-view .workspace > .topbar { z-index:2000; }
  html[data-cinematic]:has(dialog[open],.room-status-menu:not([hidden]),#notification-panel:not([hidden]),#mobile-nav-sheet:not([hidden])) .cinema-transition { display:none; }
  .cinema-transition > i { position:absolute; display:block; pointer-events:none; }
  .cinema-nav-route { position:fixed; inset:0; width:100%; height:100%; }
  .cinema-nav-route path { stroke:var(--world-accent); stroke-width:3; stroke-dasharray:12 100; animation:cinema-nav-energy .52s linear both; }

  /* Shared framing plumbing, not shared silhouettes or choreography. Semantic
     room paints remain owned by the existing arrival/finished rules. */
  html[data-cinematic][data-world] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *)) {
    position:relative; isolation:isolate; overflow:visible;
    background:transparent !important; border:1px solid transparent !important;
    box-shadow:none !important; clip-path:none !important;
  }
  html[data-cinematic][data-world] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *))::before {
    content:'' !important; display:block !important; position:absolute !important; inset:0 !important;
    width:auto !important; height:auto !important; opacity:1 !important; z-index:-1;
    pointer-events:none; border:1px var(--cine-border-style,solid) var(--cine-border,var(--world-border)) !important;
    border-left:var(--cine-left,1px) var(--cine-border-style,solid) var(--cine-left-ink,var(--cine-border,var(--world-border))) !important;
    border-top-width:var(--cine-top,1px) !important;
    border-radius:var(--world-radius) !important; background:var(--cine-material,var(--world-surface)) !important;
    box-shadow:var(--cine-shadow,var(--world-shadow)) !important; clip-path:var(--cine-shape,none) !important;
    transform:none; animation:none;
  }
  html[data-cinematic][data-world] #app-view .view :is(.panel,.metric,.room-card)::after {
    content:''; position:absolute; inset:auto 12px 7px auto; width:38px; height:2px;
    border:0; background:var(--world-accent); opacity:.6; pointer-events:none; z-index:0;
  }
  html[data-cinematic] #app-view .view :is(.panel,.metric,.room-card) > .panel-head { position:relative; }
  html[data-cinematic] #app-view .view :is(.panel,.metric,.room-card):not(.card-dragging) { will-change:auto; }
  html[data-cinematic]:is([data-world='the-grid'],[data-world='dust-city'],[data-world='construct']) #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging)::before { border-radius:0 !important; }

  /* Castle: original frames remain, with deeper arches and candle response. */
  html[data-world='enchanted-castle'] { --cine-material:linear-gradient(135deg,color-mix(in srgb,var(--world-accent) 9%,var(--world-surface)),var(--world-surface) 38%); }
  html[data-cinematic='enchanted-castle'] #app-view .view :is(.panel,.metric,.room-card):not(.card-dragging) { transform:none !important; animation:none !important; }
  html[data-cinematic='enchanted-castle'] #app-view .view :is(.panel,.metric,.room-card)::before { outline:1px solid color-mix(in srgb,var(--world-accent) 45%,transparent); outline-offset:-6px; transition:filter 1.4s,box-shadow 1.4s; }
  html[data-cinematic='enchanted-castle'] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within) { --cine-shadow:0 22px 45px -18px color-mix(in srgb,var(--world-accent-secondary) 38%,var(--world-deep)),inset 0 0 24px -12px var(--world-accent); }
  html[data-cinematic='enchanted-castle'] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within)::before { filter:brightness(1.065); }
  html[data-cinematic='enchanted-castle'] #app-view .view :is(.panel,.metric,.room-card)::after { content:'✧'; top:8px; bottom:auto; width:18px; height:18px; background:transparent; font:18px Georgia,serif; color:var(--world-accent); }
  html[data-cinematic='enchanted-castle'] .world-silhouette { display:none; }
  .castle-arches { display:flex; justify-content:space-around; padding:8vh 4vw 0; opacity:.28; transform-origin:bottom; animation:cinema-castle-architecture 61s ease-in-out infinite alternate; }
  .castle-arches i { width:24%; height:115%; border:24px solid color-mix(in srgb,var(--world-accent-secondary) 38%,var(--world-deep)); border-radius:50% 50% 0 0 / 35% 35% 0 0; box-shadow:22px 18px 28px color-mix(in srgb,var(--world-deep) 45%,transparent); }
  .castle-candle { background:radial-gradient(ellipse 330px 430px at var(--react-x) var(--react-y),color-mix(in srgb,var(--world-accent) 24%,transparent),transparent 72%); opacity:.3; transition:opacity 1.8s; }
  .is-reacting .castle-candle { opacity:1; }
  .is-reacting .castle-arches { filter:contrast(1.2); }
  .castle-rose { stroke:var(--world-accent-secondary); stroke-width:1.4; opacity:0; stroke-dasharray:190; animation:cinema-castle-rose 109s linear infinite; }
  .castle-rose circle { stroke:var(--world-accent); stroke-width:3; stroke-linecap:round; }
  .castle-window { background:linear-gradient(113deg,transparent 48%,color-mix(in srgb,var(--world-accent) 27%,transparent) 49% 60%,transparent 68%); opacity:0; clip-path:polygon(68% 3%,78% 3%,62% 100%,3% 100%); animation:cinema-castle-window 137s ease-in-out infinite; }
  html[data-cinematic='enchanted-castle'][data-mode='light'] .castle-arches { opacity:.34; }
  html[data-cinematic='enchanted-castle'][data-mode='light'] .world-particles { background-image:radial-gradient(circle,#875614 0 1px,transparent 2px),radial-gradient(circle,#862d49 0 1px,transparent 2px); }

  /* Restore Part 1A materials above shared-card-theme; keep distinct physics. */
  html[data-world='elemental-metropolis'] { --cine-material:linear-gradient(110deg,var(--world-surface) 80%,color-mix(in srgb,var(--world-accent) 14%,var(--world-elevated)) 80%); --cine-shape:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,8px 100%,0 calc(100% - 8px)); }
  html[data-cinematic='elemental-metropolis'] { --cine-left:5px; --cine-left-ink:var(--world-accent-secondary); }
  html[data-cinematic='elemental-metropolis'] #app-view .view :is(.panel,.metric,.room-card)::after { top:8px; bottom:auto; background:repeating-linear-gradient(90deg,var(--world-accent) 0 3px,transparent 3px 8px); height:4px; }
  html[data-cinematic='elemental-metropolis'] #app-view .view :is(.panel,.metric,.room-card):hover { transform:translateX(2px) !important; transition:transform .13s steps(2,end); }
  html[data-world='heptapod-mist'] { --cine-material:linear-gradient(95deg,color-mix(in srgb,var(--world-elevated) 62%,var(--world-surface)),var(--world-surface) 70%); --cine-shape:polygon(0 6px,100% 0,100% calc(100% - 3px),4px 100%); }
  html[data-cinematic='heptapod-mist'] #app-view .view :is(.panel,.metric,.room-card):hover { transform:none !important; filter:contrast(1.045); }
  html[data-cinematic='heptapod-mist'] #app-view .view :is(.panel,.metric,.room-card)::after { width:30px; height:30px; background:none; border:1px solid var(--world-border); border-right-color:transparent; border-radius:50%; opacity:.32; }
  html[data-world='sky-tower'] { --cine-material:linear-gradient(165deg,var(--world-surface),color-mix(in srgb,var(--world-elevated) 85%,transparent)); --cine-shape:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%,0 12px); }
  html[data-cinematic='sky-tower'] { --cine-top:3px; }
  html[data-cinematic='sky-tower'] #app-view .view :is(.panel,.metric,.room-card):hover { transform:translateY(-3px) !important; }

  /* Grid: perspective infrastructure and isolated routed charges. */
  html[data-world='the-grid'] { --cine-shape:polygon(14px 0,calc(100% - 30px) 0,calc(100% - 30px) 4px,100% 4px,100% calc(100% - 14px),calc(100% - 14px) 100%,30px 100%,30px calc(100% - 4px),0 calc(100% - 4px),0 14px); --cine-material:linear-gradient(125deg,var(--world-surface) 82%,var(--world-deep) 82%); }
  .grid-plane { background:linear-gradient(90deg,color-mix(in srgb,var(--world-border) 32%,transparent) 1px,transparent 1px),linear-gradient(0deg,color-mix(in srgb,var(--world-border) 32%,transparent) 1px,transparent 1px); background-size:84px 84px; transform:perspective(500px) rotateX(52deg) scale(1.7); transform-origin:center 75%; mask-image:linear-gradient(transparent,black 32%); }
  .grid-network { stroke:var(--world-border); stroke-width:1; opacity:.3; }
  .grid-pulses { stroke:var(--world-accent); stroke-width:2; stroke-linecap:round; }
  .grid-pulses path { stroke-dasharray:2 100; animation:cinema-grid-route 19s linear infinite; }
  .grid-pulses path:nth-child(2) { animation-delay:-9s; animation-duration:23s; }
  .grid-pulses .grid-reroute { animation:cinema-grid-reroute 71s linear infinite; }
  .grid-junction { background:linear-gradient(90deg,transparent 49.8%,var(--world-accent) 50%,transparent 50.2%),linear-gradient(transparent 49.8%,var(--world-accent) 50%,transparent 50.2%); width:180px; height:120px; left:var(--react-x); top:var(--react-y); opacity:0; transition:opacity .3s; }
  .is-reacting .grid-junction { opacity:.45; }
  html[data-cinematic='the-grid'] #app-view .view :is(.panel,.metric,.room-card)::after { left:18%; bottom:0; width:14%; height:2px; background:var(--world-accent); opacity:.1; }
  html[data-cinematic='the-grid'][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.room-card)::after { animation:cinema-grid-edge 14s linear infinite; }
  html[data-cinematic='the-grid'] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within) { --cine-shadow:inset 0 -3px var(--world-accent),inset 3px 0 var(--world-accent),inset 0 1px var(--world-highlight); }
  html[data-cinematic='the-grid'] :is(#app-view, #mobile-floating-content) .sidebar { border-right:2px solid var(--world-border); background:linear-gradient(90deg,transparent 24px,var(--world-border) 25px,transparent 26px),var(--world-deep) !important; }
  html[data-cinematic='the-grid'] #app-view .nav-item { border-radius:0 12px 0 12px !important; border-left:10px solid transparent; }
  html[data-cinematic='the-grid'] #app-view .nav-item.active { border-left-color:var(--world-accent); box-shadow:inset 0 -2px var(--world-accent) !important; }
  html[data-cinematic='the-grid'] #app-view .button:hover { box-shadow:inset 0 -2px var(--world-accent),inset 2px 0 var(--world-accent) !important; transform:none !important; }
  html[data-cinematic='the-grid'] #app-view .button:active { scale:.97; }

  /* Dust City: weight, directional faces and real shadow rather than glow. */
  html[data-world='dust-city'] { --cine-shape:polygon(0 0,100% 0,100% calc(100% - 24px),calc(100% - 24px) 100%,0 100%); --cine-material:linear-gradient(105deg,var(--world-elevated),var(--world-surface) 40%,color-mix(in srgb,var(--world-deep) 28%,var(--world-surface))); }
  .dust-monuments { display:flex; justify-content:space-between; align-items:flex-end; padding:4vh 6vw 0; opacity:.35; filter:blur(1px); }
  .dust-monuments i { width:20%; height:88%; background:linear-gradient(100deg,var(--world-border),var(--world-deep) 24%); transform:skewY(-10deg); }
  .dust-monuments i:nth-child(2) { height:48%; width:30%; }
  .dust-monuments i:nth-child(3) { height:110%; width:14%; }
  .dust-grains { background-image:radial-gradient(circle,var(--world-accent) .8px,transparent 1.5px),radial-gradient(circle,var(--world-accent-secondary) .5px,transparent 1.5px); background-size:137px 113px,191px 163px; opacity:.24; animation:cinema-dust-grains 70s linear infinite alternate; }
  .dust-shadow { background:linear-gradient(105deg,transparent 28%,color-mix(in srgb,var(--world-deep) 65%,transparent) 29% 53%,transparent 54%); animation:cinema-dust-shadow 97s ease-in-out infinite alternate; }
  .dust-beam { background:linear-gradient(100deg,transparent 38%,color-mix(in srgb,var(--world-accent) 25%,transparent) 43%,transparent 54%); mix-blend-mode:normal; opacity:0; animation:cinema-dust-beam 83s ease-in-out infinite; }
  html[data-cinematic='dust-city'] { --cine-left:12px; --cine-shadow:none; }
  html[data-cinematic='dust-city'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card) { padding-left:28px !important; }
  html[data-cinematic='dust-city'] #app-view .view :is(.panel,.metric,.room-card)::before { filter:drop-shadow(9px 12px 0 var(--world-deep)); transition:filter .6s,background .6s; }
  html[data-cinematic='dust-city'] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within) { --cine-material:linear-gradient(120deg,color-mix(in srgb,var(--world-accent) 16%,var(--world-elevated)),var(--world-surface) 63%,var(--world-deep)); }
  html[data-cinematic='dust-city'] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within)::before { filter:drop-shadow(13px 8px 0 var(--world-deep)); }
  html[data-cinematic='dust-city'] #app-view .view .panel > .panel-head { padding-left:12px; border-bottom:3px solid var(--world-border) !important; }
  html[data-cinematic='dust-city'] #app-view .view :is(.panel,.metric,.room-card)::after { inset:8px -6px -8px 10px; background:var(--world-deep); height:auto; width:auto; opacity:.4; z-index:-2; clip-path:var(--cine-shape); transition:translate .6s; }
  html[data-cinematic='dust-city'] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within)::after { translate:3px -3px; }
  html[data-cinematic='dust-city'] :is(#app-view, #mobile-floating-content) .sidebar { background:var(--world-deep) !important; border-right:12px solid var(--world-border); }
  html[data-cinematic='dust-city'] #app-view .nav-item { border-radius:0 !important; font-size:1.08rem; font-weight:700; }
  html[data-cinematic='dust-city'] #app-view .nav-item .world-nav-icon { opacity:.4; }
  html[data-cinematic='dust-city'] #app-view .nav-item.active { background:var(--world-elevated) !important; box-shadow:inset 8px 0 var(--world-accent) !important; }
  html[data-cinematic='dust-city'] #app-view .button { box-shadow:4px 5px 0 var(--world-deep) !important; transform:none !important; }
  html[data-cinematic='dust-city'] #app-view .button:active { translate:2px 2px; box-shadow:1px 1px 0 var(--world-deep) !important; }

  /* Horizon: real curved orbital trajectories; panels themselves stay put. */
  html[data-world='event-horizon'] { --cine-material:radial-gradient(ellipse at 105% -10%,var(--world-elevated),var(--world-surface) 55%); }
  .gravity-stars { background-image:radial-gradient(circle,var(--world-accent) .7px,transparent 1.6px),radial-gradient(circle,var(--world-accent-secondary) 1px,transparent 1.8px); background-size:131px 173px,269px 251px; opacity:.46; animation:cinema-gravity-stars 193s linear infinite alternate; }
  .gravity-stars.near { background-size:307px 331px,419px 271px; opacity:.67; animation-duration:117s; animation-direction:alternate-reverse; }
  .gravity-field { left:48%; top:13%; width:60%; height:60%; transition:translate 1.3s; }
  .is-reacting .gravity-field { translate:-10px 4px; }
  .gravity-lens { position:absolute; inset:5%; border-radius:50%; background:radial-gradient(ellipse,var(--world-deep) 0 32%,transparent 44%); }
  .gravity-lens::before { content:''; position:absolute; inset:3% 10%; border:2px solid var(--world-accent); border-radius:50%; box-shadow:0 0 18px color-mix(in srgb,var(--world-accent) 35%,transparent),inset 0 0 12px color-mix(in srgb,var(--world-accent) 25%,transparent); transform:rotate(-24deg) scaleY(.44); animation:cinema-gravity-lens 67s ease-in-out infinite alternate; }
  .gravity-lens i { position:absolute; inset:8%; border:1px solid var(--world-accent-secondary); border-radius:50%; border-right-color:transparent; border-bottom-color:transparent; transform:rotate(22deg); }
  .gravity-bent-stars { position:absolute; inset:0; border:3px dotted var(--world-accent); border-radius:50%; opacity:.35; transform:rotate(-22deg) scaleY(.57); animation:cinema-gravity-bend 83s linear infinite; }
  .gravity-object { position:absolute; width:4px; height:4px; top:48%; left:0; background:var(--world-accent-secondary); border-radius:50%; opacity:0; animation:cinema-gravity-object 127s linear infinite; }
  html[data-cinematic='event-horizon'] #app-view .view :is(.panel,.metric,.room-card)::before { mask-image:radial-gradient(circle at 100% 0,transparent 17px,#000 18px); }
  html[data-cinematic='event-horizon'] #app-view .view :is(.panel,.metric,.room-card)::after { top:-7px; right:-5px; bottom:auto; width:60px; height:60px; border:1px solid var(--world-accent-secondary); border-left-color:transparent; border-bottom-color:transparent; border-radius:50%; background:radial-gradient(circle at 80% 14%,var(--world-accent) 2px,transparent 3px); transform:rotate(-15deg); transition:transform 1.1s; }
  html[data-cinematic='event-horizon'][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.room-card)::after { animation:cinema-gravity-orbit 83s linear infinite; }
  html[data-cinematic='event-horizon'] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within)::after { translate:-6px 4px; scale:1.1 .9; }
  html[data-cinematic='event-horizon'] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within) { --cine-shadow:inset 2px 1px var(--world-accent),0 16px 30px -16px var(--world-deep); }
  html[data-cinematic='event-horizon'] :is(#app-view, #mobile-floating-content) .sidebar nav { border-right:1px solid var(--world-border); border-radius:0 40% 40% 0; }
  html[data-cinematic='event-horizon'] #app-view .nav-item:nth-of-type(3n) { margin-left:7px; }
  html[data-cinematic='event-horizon'] #app-view .nav-item.active { border-radius:40px 4px 40px 4px !important; box-shadow:inset 0 -1px var(--world-accent-secondary) !important; }
  html[data-cinematic='event-horizon'] #app-view .button:active { scale:.96; border-radius:50px !important; }

  /* Construct: only decoration can misregister; no displaced text. */
  html[data-world='construct'] { --cine-shape:polygon(0 0,76% 0,76% 3px,100% 3px,100% 78%,calc(100% - 3px) 78%,calc(100% - 3px) 100%,22% 100%,22% calc(100% - 3px),0 calc(100% - 3px)); --cine-material:linear-gradient(90deg,var(--world-surface) 97%,var(--world-elevated) 97%); }
  .construct-horizon { background:linear-gradient(0deg,transparent 39.8%,color-mix(in srgb,var(--world-border) 32%,transparent) 40%,transparent 40.2%),linear-gradient(125deg,transparent 68%,color-mix(in srgb,var(--world-border) 10%,transparent) 68.1%,transparent 68.3%); }
  .construct-columns { display:flex; align-items:center; justify-content:space-around; opacity:.18; }
  .construct-columns i { width:1px; height:38%; border-left:1px dashed var(--world-accent); box-shadow:12px 46px var(--world-border),18px -73px var(--world-border); }
  .construct-columns i:nth-child(even) { height:67%; transform:translateY(14%); }
  .construct-anomaly { opacity:0; animation:cinema-construct-resolve 113s steps(1,end) infinite; }
  .construct-anomaly i { position:absolute; top:28%; right:13%; width:17%; height:7px; background:var(--world-accent); opacity:.3; }
  .construct-anomaly i:nth-child(2) { top:29.5%; right:calc(13% + 3px); width:11%; }
  .construct-anomaly i:nth-child(3) { top:57%; right:71%; width:7%; height:2px; }
  html[data-cinematic='construct'][data-mode='light'] .construct-columns { opacity:.12; }
  html[data-cinematic='construct'] #app-view .view :is(.panel,.metric,.room-card)::after { right:12px; bottom:5px; width:46%; background:linear-gradient(90deg,var(--world-accent) 34%,transparent 34% 39%,var(--world-border) 39% 100%); transform:translateX(3px); transition:transform .17s steps(2,end); }
  html[data-cinematic='construct'][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.room-card)::after { animation:cinema-construct-edge 113s steps(1,end) infinite; }
  html[data-cinematic='construct'] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within)::after { transform:translateX(0); background:var(--world-accent); }
  html[data-cinematic='construct'] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within) { --cine-border-style:dashed; --cine-border:var(--world-accent); }
  html[data-cinematic='construct'] :is(#app-view, #mobile-floating-content) .sidebar { background:var(--world-background) !important; border-right:1px dashed var(--world-border); }
  html[data-cinematic='construct'] #app-view .nav-item.active { border-radius:0 !important; background:var(--world-surface) !important; outline:1px dashed var(--world-accent); outline-offset:-3px; }
  html[data-cinematic='construct'] #app-view .button:active { scale:.98 1; box-shadow:3px 0 var(--world-accent),-3px 0 var(--world-border) !important; }
  html[data-cinematic]:is([data-world='the-grid'],[data-world='dust-city'],[data-world='event-horizon']) #app-view .view :is(.panel,.metric,.room-card):not(.card-dragging) { transform:none !important; animation:none !important; filter:none !important; }

  /* Eight independent transitions. Routes already changed before these start.
     Every overlay is inert, short lived, and beneath existing top-layer dialogs. */
  [data-transition='enchanted-castle'] > i:first-child { inset:-15% -35%; background:linear-gradient(100deg,transparent 35%,#22111a22 44%,color-mix(in srgb,var(--world-accent) 25%,transparent) 49%,var(--world-highlight) 50%,transparent 50.2%); animation:cinema-page-candle .62s ease-out both; }
  [data-transition='enchanted-castle'] > i:nth-child(2) { inset:10% 0; background:radial-gradient(circle,var(--world-accent) 1px,transparent 2px) 0 0/61px 83px; mask-image:linear-gradient(90deg,transparent 45%,black 49%,transparent 53%); animation:cinema-page-candle .62s ease-out both; }
  [data-transition='elemental-metropolis'] > i { inset:20% 0 auto; height:2px; background:linear-gradient(90deg,transparent,var(--world-accent),var(--world-accent-secondary),transparent); animation:cinema-page-traffic .32s steps(5,end) both; }
  [data-transition='elemental-metropolis'] > i:nth-child(2) { top:42%; animation-delay:.05s; animation-direction:reverse; }
  [data-transition='elemental-metropolis'] > i:nth-child(3) { top:73%; animation-delay:.1s; }
  [data-transition='elemental-metropolis'] > i:nth-child(n+4) { width:6px; height:6px; left:75%; top:35%; animation:cinema-page-led .5s steps(2,end) both; }
  [data-transition='heptapod-mist'] > i:first-child { inset:-20%; background:radial-gradient(ellipse,var(--world-background),transparent 67%); animation:cinema-page-fog .58s ease-out both; }
  [data-transition='heptapod-mist'] > i:nth-child(2) { inset:15% 24%; border:1px solid var(--world-border); border-radius:50%; animation:cinema-page-ripple .58s ease-out both; }
  [data-transition='sky-tower'] > i:first-child { inset:0 -30%; background:radial-gradient(ellipse at 50% 60%,color-mix(in srgb,var(--world-highlight) 34%,transparent),transparent 62%); animation:cinema-page-altitude .52s ease-out both; }
  [data-transition='sky-tower'] > i:nth-child(2) { inset:auto 0 20%; border-top:1px solid var(--world-border); animation:cinema-page-altitude .42s ease-out both; }
  [data-transition='the-grid'] > i { top:22%; left:0; width:100%; height:1px; background:var(--world-accent); animation:cinema-page-power .4s ease-out both; }
  [data-transition='the-grid'] > i:nth-child(2) { top:44%; animation-delay:.08s; }
  [data-transition='the-grid'] > i:nth-child(3) { top:66%; animation-delay:.16s; }
  [data-transition='the-grid'] > i:nth-child(n+4) { display:none; }
  [data-transition='dust-city'] > i:first-child { inset:-20% -60%; background:linear-gradient(105deg,transparent 37%,color-mix(in srgb,var(--world-deep) 88%,transparent) 38% 54%,color-mix(in srgb,var(--world-accent) 22%,transparent) 58%,transparent 65%); animation:cinema-page-shadow .58s cubic-bezier(.4,0,.2,1) both; }
  [data-transition='event-horizon'] > i:first-child { inset:5% 18%; border:2px solid var(--world-accent); border-left-color:transparent; border-radius:50%; animation:cinema-page-lens .56s ease-out both; }
  [data-transition='event-horizon'] > i:nth-child(2) { inset:15% 12%; border:1px solid var(--world-accent-secondary); border-right-color:transparent; border-radius:50%; animation:cinema-page-lens .56s ease-out reverse both; }
  [data-transition='construct'] > i { left:12%; top:18%; width:70%; height:2px; background:linear-gradient(90deg,var(--world-accent) 22%,transparent 22% 51%,var(--world-border) 51%); animation:cinema-page-assemble .38s steps(3,end) both; }
  [data-transition='construct'] > i:nth-child(2) { top:38%; animation-delay:.035s; animation-direction:reverse; }
  [data-transition='construct'] > i:nth-child(3) { top:61%; animation-delay:.07s; }
  [data-transition='construct'] > i:nth-child(4) { top:81%; animation-delay:.11s; }
  [data-transition='construct'] > i:nth-child(5) { top:92%; height:1px; background:var(--world-accent); animation:cinema-page-led .5s steps(2,end) both; }

  html[data-cinematic][data-background-animations='off'] .cinema-atmosphere *,
  html[data-cinematic][data-background-animations='off'] .cinema-atmosphere *::before,
  html[data-cinematic][data-background-animations='off'] .cinema-atmosphere *::after,
  html.cinema-paused .cinema-atmosphere *,
  html.cinema-paused .cinema-atmosphere *::before,
  html.cinema-paused .cinema-atmosphere *::after { animation-play-state:paused !important; }
  html[data-cinematic][data-background-animations='off'] .cinema-atmosphere .is-reacting,
  html[data-cinematic][data-decorative-animations='off'] .cinema-atmosphere .castle-candle { opacity:.3; }
  html[data-cinematic][data-decorative-animations='off'] #app-view .view :is(.panel,.metric,.room-card):hover { transform:none !important; }
  @media (max-width:700px) {
    .gravity-field { left:18%; width:100%; top:15%; }
    .castle-arches { padding-inline:0; }
    .castle-arches i { border-width:15px; width:29%; }
    .dust-monuments { opacity:.25; }
  }
}
@keyframes cinema-castle-architecture { to { transform:skewX(1.5deg) translateX(9px); } }
@keyframes cinema-castle-rose { 0%,72%,89%,100% { opacity:0; } 77%,83% { opacity:.52; } 73% { stroke-dashoffset:190; } 82%,88% { stroke-dashoffset:0; } }
@keyframes cinema-castle-window { 0%,79%,98%,100% { opacity:0; } 86%,92% { opacity:.55; } }
@keyframes cinema-grid-route { 0%,20% { stroke-dashoffset:8; opacity:0; } 24%,86% { opacity:.85; } 100% { stroke-dashoffset:-103; opacity:0; } }
@keyframes cinema-grid-reroute { 0%,88% { opacity:0; stroke-dashoffset:8; } 90%,98% { opacity:.9; } 100% { opacity:0; stroke-dashoffset:-103; } }
@keyframes cinema-grid-edge { 0%,70%,100% { opacity:.12; transform:translateX(0); } 74% { opacity:.85; } 85% { opacity:.1; transform:translateX(360%); } }
@keyframes cinema-dust-grains { to { transform:translate(40px,-22px); } }
@keyframes cinema-dust-shadow { from { transform:translateX(-25%); } to { transform:translateX(25%); } }
@keyframes cinema-dust-beam { 0%,73%,96%,100% { opacity:0; } 79%,89% { opacity:.7; } 74% { transform:translateX(-16%); } 95% { transform:translateX(16%); } }
@keyframes cinema-gravity-stars { to { transform:translate(14px,-19px) rotate(.7deg); } }
@keyframes cinema-gravity-lens { to { transform:rotate(-12deg) scaleY(.55) skewX(5deg); } }
@keyframes cinema-gravity-bend { to { transform:rotate(338deg) scaleY(.57); } }
@keyframes cinema-gravity-orbit { to { rotate:360deg; } }
@keyframes cinema-gravity-object { 0%,84%,95%,100% { opacity:0; } 85%,88%,92%,94% { opacity:.75; } 89%,91% { opacity:0; } 85% { transform:translateX(0); } 94% { transform:translateX(50vw); } }
@keyframes cinema-construct-resolve { 0%,93%,94.5%,100% { opacity:0; transform:translateX(0); } 93.2%,94% { opacity:.4; transform:translateX(3px); } 94.2% { opacity:.2; transform:translateX(-2px); } }
@keyframes cinema-construct-edge { 0%,95%,96%,100% { translate:0 0; } 95.2%,95.5% { translate:3px 0; } 95.8% { translate:-2px 0; } }
@keyframes cinema-nav-energy { from { stroke-dashoffset:12; opacity:1; } to { stroke-dashoffset:-100; opacity:0; } }
@keyframes cinema-page-candle { from { transform:translateX(-55%); opacity:.8; } to { transform:translateX(65%); opacity:0; } }
@keyframes cinema-page-traffic { from { transform:translateX(-80%); opacity:1; } to { transform:translateX(80%); opacity:0; } }
@keyframes cinema-page-led { 0%,55%,100% { opacity:0; } 68%,80% { opacity:.8; } }
@keyframes cinema-page-fog { 0% { opacity:0; transform:scale(.8); } 26% { opacity:.45; } 100% { opacity:0; transform:scale(1.4); } }
@keyframes cinema-page-ripple { from { opacity:.35; transform:scale(.55); } to { opacity:0; transform:scale(1.3); } }
@keyframes cinema-page-altitude { from { transform:translateY(30%); opacity:.5; } to { transform:translateY(-60%); opacity:0; } }
@keyframes cinema-page-power { from { transform:scaleX(0); transform-origin:left; opacity:.85; } to { transform:scaleX(1); transform-origin:left; opacity:0; } }
@keyframes cinema-page-shadow { from { transform:translateX(-55%); } to { transform:translateX(55%); } }
@keyframes cinema-page-lens { from { transform:rotate(-25deg) scale(.25,.7); opacity:.6; } to { transform:rotate(15deg) scale(1.4,.5); opacity:0; } }
@keyframes cinema-page-assemble { 0% { transform:translateX(-14px); opacity:0; } 30% { transform:translateX(9px); opacity:.65; } 65% { transform:translateX(-3px); opacity:.5; } 100% { transform:translateX(0); opacity:0; } }
@media print { .cinema-atmosphere,.cinema-transition { display:none !important; } }

/* Construct borrows Terminal's verified card displacement, including its
   stagger and short contrast step. Keep its green material and broken frames.
   The original global keyframes live in world-theme-collectible.css. */
@media screen {
  html[data-cinematic='construct'][data-world='construct'][data-theme][data-mode][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *)) {
    animation:world-card-sisyphus-terminal 15s steps(2,end) infinite !important;
    transform:none !important;
  }
  html[data-cinematic='construct'][data-world='construct'][data-theme][data-mode][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card):nth-child(3n + 2) { animation-delay:-3.2s !important; }
  html[data-cinematic='construct'][data-world='construct'][data-theme][data-mode][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card):nth-child(3n) { animation-delay:-6.4s !important; }
  /* Keep the inherited rail search key inside its fixed-width column. */
  html[data-cinematic='construct'][data-world='construct'][data-theme][data-mode] .nav-room-search input { width:100%; min-width:0; }
  /* A task in progress gets a steady surface. Modal/menu geometry stays fixed. */
  html[data-cinematic='construct'][data-world='construct'][data-theme][data-mode] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging):focus-within,
  html[data-cinematic='construct'][data-world='construct'][data-theme][data-mode]:is([data-decorative-animations='off'],[data-theme-tuner-motion='off']) #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging),
  html[data-cinematic='construct'][data-world='construct'][data-theme][data-mode]:has(dialog[open],.room-status-menu:not([hidden]),#notification-panel:not([hidden]),#mobile-nav-sheet:not([hidden])) #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging) { animation:none !important; translate:none; filter:none; }
  html.world-page-hidden[data-cinematic='construct'][data-world='construct'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging) { animation-play-state:paused !important; }
}
@media (prefers-reduced-motion:reduce) {
  html[data-cinematic='construct'][data-world='construct'][data-theme][data-mode][data-decorative-animations] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging) { animation:none !important; translate:none; filter:none; }
}


/* Source: cinematic-room-status.css */
/* Part 2: read-only room signals. Animation channels are independent so a
   future transition can quiet them without changing any operational state. */
@media screen {
  html[data-cinematic] {
    --room-amber:#704300; --room-amber-fill:#ffedbb;
    --room-privacy:#741d36; --room-privacy-fill:#ffe1e9;
    --room-inspect:#704300; --room-inspect-fill:#ffedbb;
    --room-stripped:#683600; --room-stripped-fill:#ffe7ca;
    --room-bed:#064c63; --room-bed-fill:#d5f3ff;
    --room-finished:#16563d; --room-finished-fill:#d8f6e6;
    --room-signal-radius:5px; --room-ambient:room-castle-light;
    --room-note-attention:room-note-candle;
  }
  html[data-cinematic='whispering-creek'] {
    --room-signal-radius:50%; --room-ambient:creek-room-stream;
    --room-note-attention:creek-room-note-ripple; --room-late-ambient:creek-room-late-wake;
    --room-inspect-ambient:creek-room-inspection-glint;
    --room-approach:creek-room-arrival-drift;
  }
  html[data-cinematic][data-mode='dark'] {
    --room-amber:#ffe0a0; --room-amber-fill:#4d350d;
    --room-privacy:#ffcad8; --room-privacy-fill:#572035;
    --room-inspect:#ffe0a0; --room-inspect-fill:#4d350d;
    --room-stripped:#ffdbb0; --room-stripped-fill:#523113;
    --room-bed:#bceeff; --room-bed-fill:#123e53;
    --room-finished:#c0f7dc; --room-finished-fill:#204a3b;
  }
  html[data-cinematic] .cine-room { position:relative; isolation:isolate; }
  /* Semantic cards used to bypass cinematic silhouettes and fall back to a
     generic rounded arrival/finished frame. Keep their theme geometry too;
     their meaning now stays explicit in the signals and independent rails. */
  html[data-cinematic][data-world] #app-view .view .room-card.cine-room:is(.arrival-tier,.early-tier,.finished):not(.card-dragging) {
    overflow:visible; background:transparent !important; border:1px solid transparent !important;
    box-shadow:none !important; clip-path:none !important; animation:none !important;
  }
  html[data-cinematic][data-world] #app-view .view .room-card.cine-room:is(.arrival-tier,.early-tier,.finished)::before {
    content:'' !important; display:block !important; position:absolute !important; inset:0 !important;
    width:auto !important; height:auto !important; opacity:1 !important; z-index:-1; pointer-events:none;
    border:1px var(--cine-border-style,solid) var(--cine-border,var(--world-border)) !important;
    border-left:var(--cine-left,1px) solid var(--cine-left-ink,var(--world-border)) !important;
    border-top-width:var(--cine-top,1px) !important; border-radius:var(--world-radius) !important;
    background:var(--cine-material,var(--world-surface)) !important;
    box-shadow:var(--cine-shadow,var(--world-shadow)) !important; clip-path:var(--cine-shape,none) !important;
    transform:none; animation:none;
  }
  html[data-cinematic][data-world]:is([data-world='the-grid'],[data-world='dust-city'],[data-world='construct']) #app-view .view .room-card.cine-room:is(.arrival-tier,.early-tier,.finished)::before { border-radius:0 !important; }
  html[data-cinematic] .cine-room :is(.room-card-head > :first-child,.room-list-head,.strip-room-number,.summary-room-main) { min-width:0; }
  html[data-cinematic] .cine-room-signals { display:flex; flex-direction:column; gap:7px; margin:10px 0 3px; min-width:0; max-width:100%; text-align:left; }
  html[data-cinematic] .room-list-head > .cine-room-signals { flex-basis:100%; width:100%; }
  html[data-cinematic] :is(.cine-room-types,.cine-room-priority) { display:flex; flex-wrap:wrap; gap:6px; align-items:center; min-width:0; }
  html[data-cinematic] :is(.cine-room-types,.cine-room-priority):empty { display:none; }
  html[data-cinematic] .cine-room-signals svg { width:16px; height:16px; flex:0 0 16px; }
  html[data-cinematic] .cine-room-signals :is(.cine-workflow,.cine-operational,.cine-timing,.cine-notes,.cine-room-type) {
    display:inline-flex; position:relative; align-items:center; gap:5px; max-width:100%; box-sizing:border-box;
    border:1px solid currentColor; border-radius:var(--room-signal-radius); line-height:1.3;
    font-family:var(--world-font-body,inherit); font-size:12px; letter-spacing:.015em; text-transform:none;
    white-space:normal; overflow-wrap:anywhere; box-shadow:none; clip-path:none;
  }
  html[data-cinematic] .cine-room-type { padding:3px 6px; color:var(--world-text); background:var(--world-surface); border-color:var(--world-border) !important; font-weight:500; }
  html[data-cinematic] .cine-room-type svg { width:13px; height:13px; flex-basis:13px; }
  html[data-cinematic] .cine-workflow { --signal-ink:var(--room-stripped); --signal-fill:var(--room-stripped-fill); padding:7px 10px; font-size:14px !important; color:var(--signal-ink); background:var(--signal-fill); border-width:2px !important; }
  html[data-cinematic] .cine-workflow[data-workflow='bed-made'] { --signal-ink:var(--room-bed); --signal-fill:var(--room-bed-fill); }
  html[data-cinematic] .cine-workflow[data-workflow='finished'] { --signal-ink:var(--room-finished); --signal-fill:var(--room-finished-fill); }
  html[data-cinematic] .cine-operational { padding:5px 8px; }
  html[data-cinematic] .cine-dnd { color:var(--room-privacy); background:var(--room-privacy-fill); border-left-width:4px !important; }
  html[data-cinematic] .cine-inspection { color:var(--room-inspect); background:var(--room-inspect-fill); border-style:double !important; border-width:3px !important; }
  html[data-cinematic] .cine-timing { padding:4px 7px; color:var(--room-amber); background:var(--room-amber-fill); }
  html[data-cinematic] .cine-notes { min-width:44px; min-height:44px; padding:5px 8px; color:var(--world-text); background:var(--world-elevated); cursor:pointer; font-weight:600; }
  html[data-cinematic] .cine-notes:hover { border-color:var(--world-accent); }
  html[data-cinematic] .cine-notes:focus-visible { outline:3px solid var(--world-text); outline-offset:3px; }
  html[data-cinematic] .cine-room :is(.room-number,.summary-room-number,.strip-room-number > strong,.room-list-number) { position:relative; z-index:1; font-variant-numeric:tabular-nums; }
  /* Only legacy readouts are replaced. PET, Out/Waiting, sent-back flags,
     status menus, action buttons and the expanded shared-note editor remain. */
  html[data-cinematic] .cine-room .cine-legacy-status,
  html[data-cinematic] .cine-room :is(.room-card-head,.room-list-head,.strip-room-arrivals,.summary-room-meta) :is(.room-note-badges),
  html[data-cinematic] .cine-room .strip-room-arrivals .late-checkout { display:none !important; }
  html[data-cinematic] .cine-room-ambient {
    display:block !important; position:absolute; inset:0; overflow:hidden; border-radius:inherit;
    pointer-events:none !important; z-index:0; contain:paint; clip-path:var(--cine-shape,none);
  }
  html[data-cinematic] .cine-room-ambient > i { display:none; position:absolute; pointer-events:none; opacity:.3; }
  html[data-cinematic] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient)::before { content:''; position:absolute; top:18px; left:0; width:4px; height:4px; background:var(--world-accent); border-radius:50%; opacity:0; }
  html[data-cinematic] .cine-room[data-cine-room-types~='arrival'] .arrivalAmbient,
  html[data-cinematic] .cine-room[data-cine-room-types~='checkout'] .checkoutAmbient,
  html[data-cinematic] .cine-room[data-cine-room-types~='stayover'] .stayoverAmbient { display:block; }
  html[data-cinematic] .arrivalAmbient { left:3px; top:12px; bottom:12px; width:3px; background:var(--world-accent); }
  html[data-cinematic] .checkoutAmbient { right:3px; top:12px; bottom:12px; width:3px; background:var(--world-accent-secondary); }
  html[data-cinematic] .stayoverAmbient { bottom:4px; left:15%; right:15%; height:1px; background:var(--world-border); opacity:.6; }
  html[data-cinematic][data-decorative-animations='on'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient) { animation:var(--room-ambient) 29s ease-in-out infinite; }
  html[data-cinematic][data-decorative-animations='on'] .cine-room-ambient .arrivalAmbient::before { animation:var(--room-approach,room-arrival-candle) 29s ease-in-out infinite; }
  html[data-cinematic][data-decorative-animations='on'] .cine-room-ambient .checkoutAmbient::before { animation:var(--room-approach,room-arrival-candle) 29s ease-in-out -14s infinite reverse; }
  html[data-cinematic] .cine-room-ambient .checkoutAmbient { animation-direction:reverse; animation-delay:-14s; }
  html[data-cinematic] .cine-room[data-cine-workflow='finished'] .cine-room-ambient i { animation:none !important; opacity:.2; }
  html[data-cinematic] .cine-room[data-cine-workflow='finished'] .cine-room-ambient i::before { animation:none !important; opacity:0; }
  html[data-cinematic] .cine-timing::after { content:''; position:absolute; inset:-3px; border:1px solid currentColor; border-radius:inherit; opacity:0; pointer-events:none; }
  html[data-cinematic][data-decorative-animations='on'] .cine-timing::after { animation:var(--room-late-ambient,room-late-medallion) 37s ease-in-out infinite; }
  html[data-cinematic] .cine-inspection::after { content:''; position:absolute; right:4px; bottom:1px; width:4px; height:4px; border-radius:50%; background:currentColor; opacity:.65; pointer-events:none; }
  html[data-cinematic][data-decorative-animations='on'] .cine-inspection::after { animation:var(--room-inspect-ambient,room-inspect-candle) 31s ease-in-out infinite; }
  html[data-cinematic][data-decorative-animations='on'] .cine-new-note { animation:var(--room-note-attention) 1.8s ease-out 1; }
  html[data-cinematic] .cine-room[data-room-transition-active] :is(.cine-room-ambient i,.cine-timing::after) { animation-play-state:paused !important; opacity:.12; }
  html[data-cinematic] .cine-room[data-room-transition-active] .cine-room-ambient i::before { animation-play-state:paused !important; opacity:0; }
  html[data-cinematic].world-page-hidden :is(.cine-room-ambient i,.cine-room-ambient i::before,.cine-timing::after,.cine-inspection::after) { animation-play-state:paused !important; }
  @media (hover:hover) {
    html[data-cinematic][data-decorative-animations='on'] .cine-notes:hover:not(.cine-new-note) { animation:var(--room-note-attention) 1.8s ease-out 1; }
  }

  /* Castle — warm parchment plaques, heraldic privacy and candle pools. */
  html[data-cinematic='enchanted-castle'] { --room-signal-radius:14px 14px 5px 5px; }
  html[data-cinematic='enchanted-castle'] .cine-workflow { font-family:Georgia,serif; border-style:double !important; border-width:3px !important; }
  html[data-cinematic='enchanted-castle'] .cine-workflow[data-workflow='stripped'] { border-style:dashed !important; }
  html[data-cinematic='enchanted-castle'] .cine-workflow[data-workflow='bed-made'] { --signal-ink:var(--room-amber); --signal-fill:var(--room-amber-fill); }
  html[data-cinematic='enchanted-castle'] .cine-workflow[data-workflow='finished'] { --signal-ink:#fff2ce; --signal-fill:#765119; box-shadow:inset 0 0 0 2px var(--signal-fill),inset 0 0 0 3px var(--signal-ink); }
  html[data-cinematic='enchanted-castle'] .cine-room[data-cine-workflow='finished'] .cine-room-ambient { box-shadow:inset 0 0 12px -6px var(--room-amber); }
  html[data-cinematic='enchanted-castle'] .cine-dnd { border-radius:3px 3px 14px 14px; }
  html[data-cinematic='enchanted-castle'] .cine-timing { border-radius:50px; }
  html[data-cinematic='enchanted-castle'] .cine-notes { border-radius:3px 12px 3px 3px; box-shadow:inset -3px 3px 0 color-mix(in srgb,var(--world-accent) 15%,transparent); }
  html[data-cinematic='enchanted-castle'] .cine-room-type[data-room-type='stayover'] { border-left:3px solid var(--world-accent-secondary) !important; }
  html[data-cinematic='enchanted-castle'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient) { width:32px; background:radial-gradient(ellipse at left,var(--world-accent),transparent 72%); }
  html[data-cinematic='enchanted-castle'] .checkoutAmbient { rotate:180deg; }

  /* Metropolis — mechanically stepped rail segments and station plaques. */
  html[data-cinematic='elemental-metropolis'] { --room-signal-radius:2px; --room-ambient:room-metro-rail; --room-note-attention:room-note-led; --room-late-ambient:room-late-tick; --room-inspect-ambient:room-inspect-led; }
  html[data-cinematic='elemental-metropolis'] .cine-workflow { border-left-width:6px !important; box-shadow:3px 3px 0 var(--world-deep); }
  html[data-cinematic='elemental-metropolis'] .cine-workflow[data-workflow='stripped'] { border-right-style:dashed !important; }
  html[data-cinematic='elemental-metropolis'] .cine-workflow[data-workflow='finished'] { border-bottom-width:4px !important; }
  html[data-cinematic='elemental-metropolis'] .cine-dnd { border-style:double !important; border-width:3px !important; }
  html[data-cinematic='elemental-metropolis'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient) { width:5px; background:repeating-linear-gradient(0deg,var(--world-accent) 0 4px,transparent 4px 13px); animation-timing-function:steps(4,end); }
  html[data-cinematic='elemental-metropolis'] .stayoverAmbient { height:3px; background:repeating-linear-gradient(90deg,var(--world-border) 0 9px,transparent 9px 13px); }
  html[data-cinematic='elemental-metropolis'] { --room-approach:room-arrival-rail; }
  html[data-cinematic='elemental-metropolis'] .cine-room-type[data-room-type='stayover'] { color:var(--room-amber); background:var(--room-amber-fill); }
  html[data-cinematic='elemental-metropolis'] .cine-notes { border-left-width:3px !important; }

  /* Mist — charcoal seals and incomplete / completed circular marks. */
  html[data-cinematic='heptapod-mist'] { --room-signal-radius:22px; --room-ambient:room-mist-breathe; --room-note-attention:room-note-ripple; --room-late-ambient:room-late-ripple; --room-inspect-ambient:room-inspect-ripple; }
  html[data-cinematic='heptapod-mist'] :is(.cine-timing,.cine-inspection) { border:3px double currentColor; }
  html[data-cinematic='heptapod-mist'] .cine-inspection { color:var(--world-text); background:var(--world-elevated); }
  html[data-cinematic='heptapod-mist'] .cine-workflow { color:var(--world-text); background:var(--world-elevated); border-width:1px !important; }
  html[data-cinematic='heptapod-mist'] .cine-workflow svg { border:1px solid currentColor; border-radius:50%; padding:3px; box-sizing:content-box; }
  html[data-cinematic='heptapod-mist'] .cine-workflow[data-workflow='stripped'] svg { border-right-color:transparent; }
  html[data-cinematic='heptapod-mist'] .cine-workflow[data-workflow='bed-made'] svg { outline:1px solid var(--world-border); outline-offset:3px; }
  html[data-cinematic='heptapod-mist'] .cine-workflow[data-workflow='finished'] { border-style:double !important; border-width:3px !important; }
  html[data-cinematic='heptapod-mist'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient) { width:35px; background:radial-gradient(ellipse,var(--world-border),transparent 70%); opacity:.15; }
  html[data-cinematic='heptapod-mist'] .cine-dnd { color:var(--world-text); background:var(--world-elevated); border-color:var(--world-text); }
  html[data-cinematic='heptapod-mist'] { --room-approach:room-arrival-ring; }
  html[data-cinematic='heptapod-mist'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient)::before { width:18px; height:18px; border:1px solid var(--world-border); background:none; }
  html[data-cinematic='heptapod-mist'] .stayoverAmbient { width:15px; height:15px; left:auto; right:12px; background:none; border:1px solid var(--world-border); border-radius:50%; }

  /* Sky — graphite, blue and icy-white glass telemetry plates. */
  html[data-cinematic='sky-tower'] { --room-signal-radius:3px 12px 3px 12px; --room-ambient:room-sky-rise; --room-note-attention:room-note-scan; --room-late-ambient:room-late-scan; --room-inspect-ambient:room-inspect-scan; }
  html[data-cinematic='sky-tower'] .cine-workflow[data-workflow='stripped'] { color:var(--world-text); background:var(--world-elevated); border-style:dashed !important; }
  html[data-cinematic='sky-tower'] .cine-workflow[data-workflow='finished'] { color:#143f54; background:#edfaff; box-shadow:inset 0 -3px #a5cadb; }
  html[data-cinematic='sky-tower'] .cine-workflow[data-workflow='bed-made'] { box-shadow:inset 0 -3px var(--room-bed); }
  html[data-cinematic='sky-tower'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient) { width:2px; top:12%; bottom:12%; background:linear-gradient(transparent,var(--world-accent),transparent); }
  html[data-cinematic='sky-tower'] .stayoverAmbient { left:20%; right:20%; box-shadow:0 -3px var(--world-border); opacity:.3; }
  html[data-cinematic='sky-tower'] { --room-approach:room-arrival-flight; }
  html[data-cinematic='sky-tower'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient)::before { width:1px; height:14px; border-radius:0; }

  /* Grid — incomplete, nearly complete and closed energy circuits. */
  html[data-cinematic='the-grid'] { --room-signal-radius:0 9px 0 9px; --room-ambient:room-grid-path; --room-note-attention:room-note-circuit; --room-late-ambient:room-late-circuit; --room-inspect-ambient:room-inspect-circuit; }
  html[data-cinematic='the-grid'] .cine-inspection { border-right-style:dashed !important; }
  html[data-cinematic='the-grid'] .cine-workflow[data-workflow='stripped'] { border-right-style:dashed !important; border-bottom-color:transparent !important; }
  html[data-cinematic='the-grid'] .cine-workflow[data-workflow='bed-made'] { border-right-style:dotted !important; }
  html[data-cinematic='the-grid'] .cine-workflow[data-workflow='finished'] { color:var(--room-bed); background:var(--room-bed-fill); box-shadow:inset 0 -2px currentColor; }
  html[data-cinematic='the-grid'] .cine-dnd { border-right-style:dashed !important; border-bottom-color:transparent !important; }
  html[data-cinematic='the-grid'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient) { width:7px; background:none; border-left:1px solid var(--world-accent); border-top:2px solid var(--world-accent); border-bottom:2px solid var(--world-accent); transform-origin:bottom; }
  html[data-cinematic='the-grid'] .checkoutAmbient { rotate:180deg; }
  html[data-cinematic='the-grid'] { --room-approach:room-arrival-circuit; }
  html[data-cinematic='the-grid'] .cine-notes { border-radius:0 8px 0 8px; border-bottom-width:2px !important; }
  html[data-cinematic='the-grid'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient)::before { border-radius:0; }

  /* Dust — heavy blocks, orange / amber / pale stone, directed light. */
  html[data-cinematic='dust-city'] { --room-signal-radius:0; --room-ambient:room-dust-light; --room-note-attention:room-note-sun; --room-late-ambient:room-late-shadow; --room-inspect-ambient:room-inspect-shadow; }
  html[data-cinematic='dust-city'] .cine-workflow { border-left-width:7px !important; box-shadow:3px 4px 0 var(--world-deep); }
  html[data-cinematic='dust-city'] .cine-workflow[data-workflow='bed-made'] { color:var(--room-amber); background:var(--room-amber-fill); }
  html[data-cinematic='dust-city'] .cine-workflow[data-workflow='finished'] { color:#493c2d; background:#f0e5cd; border-bottom-width:4px !important; }
  html[data-cinematic='dust-city'] .cine-dnd { border-left-width:7px !important; }
  html[data-cinematic='dust-city'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient) { width:10px; background:linear-gradient(100deg,var(--world-accent),transparent); opacity:.2; }
  html[data-cinematic='dust-city'] .stayoverAmbient { height:3px; opacity:.25; }
  html[data-cinematic='dust-city'] { --room-approach:room-arrival-light; }
  html[data-cinematic='dust-city'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient)::before { width:3px; height:35px; border-radius:0; }
  html[data-cinematic='dust-city'] .cine-notes { border-left-width:4px !important; }

  /* Horizon — incomplete silver / partial blue / closed luminous orbits. */
  html[data-cinematic='event-horizon'] { --room-signal-radius:30px; --room-ambient:room-horizon-orbit; --room-note-attention:room-note-orbit; --room-late-ambient:room-late-orbit; --room-inspect-ambient:room-inspect-orbit; }
  html[data-cinematic='event-horizon'] .cine-workflow { border-width:1px !important; padding:7px 13px; }
  html[data-cinematic='event-horizon'] .cine-workflow[data-workflow='stripped'] { color:var(--world-text); background:var(--world-elevated); border-right-style:dashed !important; }
  html[data-cinematic='event-horizon'] .cine-workflow[data-workflow='bed-made'] { border-right-color:transparent !important; box-shadow:0 2px 0 var(--room-bed); }
  html[data-cinematic='event-horizon'] .cine-workflow[data-workflow='finished'] { color:var(--world-text); background:var(--world-elevated); outline:1px solid var(--world-accent); outline-offset:2px; }
  html[data-cinematic='event-horizon'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient) { width:25px; border:1px solid var(--world-accent); border-radius:50%; background:none; border-bottom-color:transparent; }
  html[data-cinematic='event-horizon'] .stayoverAmbient { border-radius:50%; height:5px; background:none; border-bottom:1px solid var(--world-border); }
  html[data-cinematic='event-horizon'] { --room-approach:room-arrival-orbit; }
  html[data-cinematic='event-horizon'] .cine-notes { border-right-style:dashed !important; }

  /* Construct — missing, aligned and completed geometry; text never moves. */
  html[data-cinematic='construct'] { --room-signal-radius:0; --room-ambient:room-construct-resolve; --room-note-attention:room-note-resolve; --room-late-ambient:room-late-resolve; --room-inspect-ambient:room-inspect-diagnostic; }
  html[data-cinematic='construct'] .cine-workflow[data-workflow='stripped'] { color:var(--room-finished); background:var(--room-finished-fill); border-style:dashed !important; }
  html[data-cinematic='construct'] .cine-workflow[data-workflow='bed-made'] { color:var(--room-finished); background:var(--room-finished-fill); border-right-color:transparent !important; }
  html[data-cinematic='construct'] .cine-workflow[data-workflow='finished'] { border-bottom-width:4px !important; }
  html[data-cinematic='construct'] .cine-dnd { border-style:dashed !important; }
  html[data-cinematic='construct'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient) { width:3px; background:repeating-linear-gradient(0deg,var(--world-accent) 0 17px,transparent 17px 23px); animation-timing-function:steps(1,end); }
  html[data-cinematic='construct'] { --room-approach:room-arrival-resolve; }
  html[data-cinematic='construct'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient)::before { width:2px; height:20px; border-radius:0; animation-timing-function:steps(3,end); }
  html[data-cinematic='construct'] .cine-notes { border-top-style:dashed !important; }

  html[data-cinematic] .cinematic-room-notes { box-sizing:border-box; width:480px; max-width:calc(100vw - 28px); max-height:80dvh; padding:20px; overflow:auto; border:1px solid var(--world-border); border-radius:var(--world-radius); color:var(--world-text); background:var(--world-surface); }
  .cinematic-room-notes header { display:flex; justify-content:space-between; gap:12px; align-items:center; }
  .cinematic-room-notes h3 { margin:0; }
  .cine-note-copy p { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.6; }
  .cinematic-room-notes::backdrop { background:#09121cbf; }
  @media (max-width:600px) {
    html[data-cinematic] .cine-room .room-card-head { flex-wrap:wrap; gap:8px; }
    html[data-cinematic] .cine-room .room-card-head > :first-child { width:100%; }
    html[data-cinematic] .cine-room-signals { gap:6px; }
    html[data-cinematic] .cine-workflow { font-size:13px !important; }
    html[data-cinematic] .cine-room-signals .cine-operational { font-size:11px; }
  }
  @media (prefers-reduced-motion:reduce) {
    html[data-cinematic] :is(.cine-room-ambient i,.cine-room-ambient i::before,.cine-new-note,.cine-notes,.cine-timing::after,.cine-inspection::after) { animation:none !important; }
  }
  html[data-cinematic][data-decorative-animations='off'] :is(.cine-room-ambient i,.cine-room-ambient i::before,.cine-new-note,.cine-timing::after,.cine-inspection::after) { animation:none !important; }
}
@media print { .cine-room-signals,.cine-room-ambient { display:none !important; } }
@keyframes room-castle-light { 0%,70%,100% { opacity:.14; scale:1; } 82% { opacity:.38; scale:1.2 1; } }
@keyframes creek-room-stream { 0%,100% { opacity:.18;scale:1 .82; } 48% { opacity:.44;scale:1 1.12; } }
@keyframes creek-room-note-ripple { 0%,100% { box-shadow:0 0 0 0 transparent; } 34% { box-shadow:0 0 0 2px var(--world-accent-secondary); } 82% { box-shadow:0 0 0 9px transparent; } }
@keyframes creek-room-late-wake { 0%,80%,100% { opacity:0;scale:.75; } 86% { opacity:.42;scale:1.08; } 94% { opacity:0;scale:1.35; } }
@keyframes creek-room-inspection-glint { 0%,100% { opacity:.35; } 48% { opacity:.9;box-shadow:0 0 9px var(--world-highlight); } }
@keyframes creek-room-arrival-drift { 0%,70%,100% { opacity:0;translate:-6px -8px; } 78% { opacity:.62; } 91% { opacity:0;translate:12px 8px; } }
@keyframes room-metro-rail { 0%,80%,100% { translate:0 0; opacity:.25; } 86% { translate:0 6px; opacity:.6; } 92% { translate:0 12px; opacity:.25; } }
@keyframes room-mist-breathe { 0%,100% { opacity:.12; scale:.7 1; } 50% { opacity:.3; scale:1.3 1; } }
@keyframes room-sky-rise { 0%,75%,100% { translate:0 0; opacity:.2; } 88% { translate:0 -8px; opacity:.55; } }
@keyframes room-grid-path { 0%,78%,100% { scale:1 .88; opacity:.25; } 85% { scale:1 1; opacity:.7; } 91% { scale:1 1; opacity:.25; } }
@keyframes room-dust-light { 0%,100% { opacity:.12; scale:.7 1; } 60% { opacity:.42; scale:1.25 1; } }
@keyframes room-horizon-orbit { 0%,100% { rotate:-4deg; opacity:.15; } 50% { rotate:4deg; opacity:.35; } }
@keyframes room-construct-resolve { 0%,96%,100% { translate:0 0; opacity:.25; } 97% { translate:2px 0; opacity:.45; } 98% { translate:0 0; opacity:.45; } }
@keyframes room-late-medallion { 0%,80%,100% { opacity:0; } 87% { opacity:.45; } }
@keyframes room-late-tick { 0%,85%,100% { opacity:0; } 86%,88% { opacity:.5; } 87% { opacity:.15; } }
@keyframes room-late-ripple { 0%,80%,100% { opacity:0; scale:1; } 84% { opacity:.3; } 91% { opacity:0; scale:1.07 1.2; } }
@keyframes room-late-scan { 0%,80%,100% { opacity:0; clip-path:inset(0 100% 0 0); } 85% { opacity:.6; clip-path:inset(0 0 0 0); } 88% { opacity:0; clip-path:inset(0 0 0 100%); } }
@keyframes room-late-circuit { 0%,80%,100% { opacity:0; clip-path:inset(100% 0 0 0); } 85% { opacity:.5; clip-path:inset(0); } 90% { opacity:0; clip-path:inset(0); } }
@keyframes room-late-shadow { 0%,80%,100% { opacity:0; translate:0 0; } 86% { opacity:.4; translate:3px 2px; } }
@keyframes room-late-orbit { 0%,80%,100% { opacity:0; rotate:0deg; } 85% { opacity:.5; rotate:-6deg; } 92% { opacity:0; rotate:6deg; } }
@keyframes room-late-resolve { 0%,96%,100% { opacity:0; translate:0 0; } 97% { opacity:.4; translate:2px 0; } 98% { opacity:.4; translate:0 0; } }
@keyframes room-note-candle { 0%,100% { box-shadow:none; } 35% { box-shadow:0 0 14px var(--world-accent); } }
@keyframes room-note-led { 0%,30%,60%,100% { box-shadow:none; } 15%,45% { box-shadow:inset 5px 0 var(--world-accent),0 0 0 2px var(--world-border); } }
@keyframes room-note-ripple { 0% { box-shadow:0 0 0 0 var(--world-border); } 75%,100% { box-shadow:0 0 0 10px transparent; } }
@keyframes room-note-scan { 0%,100% { box-shadow:inset 0 0 transparent; } 30% { box-shadow:inset 0 3px var(--world-accent); } 70% { box-shadow:inset 0 -3px var(--world-accent); } }
@keyframes room-note-circuit { 0%,100% { box-shadow:none; } 20% { box-shadow:inset 3px 0 var(--world-accent); } 45% { box-shadow:inset 0 3px var(--world-accent); } 70% { box-shadow:inset -3px 0 var(--world-accent); } }
@keyframes room-note-sun { 0%,100% { box-shadow:none; } 35% { box-shadow:inset 12px 0 color-mix(in srgb,var(--world-accent) 28%,transparent),4px 4px 0 var(--world-deep); } 70% { box-shadow:inset -12px 0 color-mix(in srgb,var(--world-accent) 28%,transparent); } }
@keyframes room-note-orbit { 0%,100% { box-shadow:none; } 25% { box-shadow:3px -2px 0 var(--world-accent); } 50% { box-shadow:3px 2px 0 var(--world-accent); } 75% { box-shadow:-3px 2px 0 var(--world-accent); } }
@keyframes room-note-resolve { 0%,25%,100% { box-shadow:none; } 10% { box-shadow:3px 0 var(--world-accent),-2px 0 var(--world-border); } 20% { box-shadow:inset 0 -2px var(--world-accent); } }
@keyframes room-inspect-candle { 0%,100% { opacity:.4; } 50% { opacity:1; box-shadow:0 0 4px currentColor; } }
@keyframes room-inspect-led { 0%,80%,100% { opacity:.4; } 86% { opacity:1; } }
@keyframes room-inspect-ripple { 0%,100% { box-shadow:0 0 0 0 transparent; } 50% { box-shadow:0 0 0 3px var(--world-border); } }
@keyframes room-inspect-scan { 0%,80%,100% { translate:0 0; } 90% { translate:-25px 0; } }
@keyframes room-inspect-circuit { 0%,80%,100% { translate:-24px 0; opacity:.25; } 87% { translate:-4px 0; opacity:1; } 92% { translate:-4px 0; opacity:.25; } }
@keyframes room-inspect-shadow { 0%,100% { box-shadow:1px 1px 0 currentColor; } 50% { box-shadow:4px 2px 0 currentColor; } }
@keyframes room-inspect-orbit { from { transform:rotate(0deg) translateX(3px); } to { transform:rotate(360deg) translateX(3px); } }
@keyframes room-inspect-diagnostic { 0%,96%,100% { translate:0 0; } 97% { translate:-3px 0; } 98% { translate:1px 0; } }
@keyframes room-arrival-candle { 0%,72%,100% { opacity:0; translate:-3px -8px; } 77% { opacity:.6; } 87% { opacity:0; translate:12px 5px; } }
@keyframes room-arrival-rail { 0%,75%,100% { opacity:0; translate:0 -14px; } 80% { opacity:1; } 89% { opacity:0; translate:6px 24px; } }
@keyframes room-arrival-ring { 0%,70%,100% { opacity:0; scale:1.3; } 76% { opacity:.5; } 87% { opacity:0; scale:.2; } }
@keyframes room-arrival-flight { 0%,70%,100% { opacity:0; translate:0 28px; } 78% { opacity:.8; } 87% { opacity:0; translate:10px 0; } }
@keyframes room-arrival-circuit { 0%,70%,100% { opacity:0; translate:0 28px; } 76% { opacity:1; translate:0 20px; } 83% { opacity:.8; translate:0 0; } 87% { opacity:0; translate:8px 0; } }
@keyframes room-arrival-light { 0%,70%,100% { opacity:0; translate:-3px 0; } 80% { opacity:.35; } 90% { opacity:0; translate:8px 0; } }
@keyframes room-arrival-orbit { 0%,70%,100% { opacity:0; transform:rotate(-35deg) translateY(20px); } 78% { opacity:.8; } 90% { opacity:0; transform:rotate(35deg) translateY(3px); } }
@keyframes room-arrival-resolve { 0%,95%,100% { opacity:0; scale:1 .2; translate:0 0; } 96% { opacity:.5; scale:1 .5; } 98% { opacity:.5; scale:1 1; } 99% { opacity:0; translate:6px 0; } }


/* Source: cinematic-room-motion.css */
/* Part 3. Finite, card-local choreography. No layout or data waits on motion.
   Text is always the current saved state; dissolving shapes carry no old label. */
@media screen {
  html[data-cinematic] {
    --cine-press:flow-castle-press; --cine-badge:flow-castle-seal;
    --cine-wash:flow-castle-bloom; --cine-route:flow-castle-route;
    --cine-ring:flow-castle-ring; --cine-signal:flow-castle-signal;
    --cine-particles:flow-castle-particles; --cine-shards:flow-castle-ring;
    --cine-flow-ink:var(--world-accent); --cine-flow-secondary:var(--world-accent-secondary);
  }
  html[data-cinematic='whispering-creek'] {
    --cine-press:creek-room-press; --cine-badge:creek-room-seal;
    --cine-wash:creek-room-ripple; --cine-route:creek-room-flow;
    --cine-ring:creek-room-stone-ring; --cine-signal:creek-room-drop;
    --cine-particles:creek-room-bubbles; --cine-shards:creek-room-flow;
  }
  html[data-cinematic='whispering-creek'] .cine-fx-ring { width:78px;height:28px;border-radius:50%;border-color:var(--creek-water); }
  html[data-cinematic='whispering-creek'] .cine-fx-connection { stroke:var(--creek-stream-glow); }
  html[data-cinematic='whispering-creek'] .cine-fx-particles i { width:4px;height:4px;background:var(--creek-stream-glow);box-shadow:0 0 7px var(--creek-stream-glow); }
  /* High-priority effects suspend only this card's lower channels. Selected /
     expanded / focused classes and attributes are never cleared. */
  html[data-cinematic][data-world] #app-view .cine-room[data-room-transition-active],
  html[data-cinematic][data-world] #app-view .cine-room[data-room-transition-active]::before,
  html[data-cinematic][data-world] #app-view .cine-room[data-room-transition-active]::after,
  html[data-cinematic] .cine-room[data-room-transition-active] :is(.cine-room-ambient i,.cine-room-ambient i::before,.cine-timing::after,.cine-inspection::after) {
    animation-play-state:paused !important; transition:none !important;
  }
  html[data-cinematic] .cine-room[data-room-transition-active] .cine-room-ambient { opacity:.12; }
  html[data-cinematic] .cine-room[data-room-transition-active]:not([data-room-transition-active='notes']) .cine-notes { animation:none !important; }
  html[data-cinematic] .cine-room[data-room-transition-active] :is(.cine-timing::after,.cine-inspection::after) { opacity:0; }
  /* An active timing signal takes precedence over room-type motion. Incoming
     wins over outgoing when a room is both, while both labels stay visible. */
  html[data-cinematic] .cine-room:has(.cine-timing) .cine-room-ambient :is(i,i::before),
  html[data-cinematic] .cine-room[data-cine-room-types~='arrival'] .checkoutAmbient,
  html[data-cinematic] .cine-room[data-cine-room-types~='arrival'] .checkoutAmbient::before {
    animation-play-state:paused !important;
  }
  html[data-cinematic][data-world] #app-view .cine-room:is(:has(.cine-timing),[data-cine-room-types]:not([data-cine-room-types=''])),
  html[data-cinematic][data-world] #app-view .cine-room:is(:has(.cine-timing),[data-cine-room-types]:not([data-cine-room-types='']))::before,
  html[data-cinematic][data-world] #app-view .cine-room:is(:has(.cine-timing),[data-cine-room-types]:not([data-cine-room-types='']))::after { animation-play-state:paused !important; }
  html[data-cinematic][data-world] #app-view .cine-room[data-cine-workflow='finished']:not([data-room-transition-active]),
  html[data-cinematic][data-world] #app-view .cine-room[data-cine-workflow='finished']::before,
  html[data-cinematic][data-world] #app-view .cine-room[data-cine-workflow='finished']::after { animation:none !important; }

  html[data-cinematic] .cine-transition-fx {
    display:block !important; position:absolute !important; inset:0 0 auto !important;
    width:100%; height:min(100%,var(--cine-fx-height)); z-index:2; contain:paint;
    overflow:hidden; pointer-events:none !important; border-radius:inherit;
    clip-path:var(--cine-shape,none); color:var(--cine-flow-ink);
    animation:flow-lifetime var(--cine-fx-duration) linear both;
  }
  /* Collapse rules hide real card bodies with zero height and visibility.
     These two inert layers are framing, not body content. Never reopen actions. */
  html[data-cinematic][data-theme] #dashboard-view .today-card.room-card.cine-room.is-collapsed > :is(.cine-transition-fx,.cine-room-ambient) {
    display:block !important; height:var(--cine-fx-height,100%) !important;
    max-height:none !important; visibility:visible !important; opacity:1 !important;
  }
  .cine-transition-fx * { pointer-events:none !important; }
  .cine-transition-fx > :is(i,svg,div) { position:absolute; }
  .cine-fx-wash { inset:0; opacity:0; background:radial-gradient(ellipse at var(--cine-focus-x) var(--cine-focus-y),var(--cine-flow-ink),transparent 68%); animation:var(--cine-wash) var(--cine-fx-duration) ease-in-out both; }
  .cine-fx-frame { inset:0; width:100%; height:100%; overflow:visible; }
  .cine-fx-route { stroke:currentColor; stroke-width:2.5; stroke-linejoin:round; stroke-dasharray:12 88; stroke-dashoffset:100; animation:var(--cine-route) var(--cine-fx-duration) ease-in-out both; }
  .cine-fx-connection { stroke:var(--cine-flow-secondary); stroke-width:1.5; stroke-dasharray:20 80; animation:flow-connect var(--cine-fx-duration) ease-out both; }
  .cine-fx-ring { width:86px; height:60px; left:calc(var(--cine-focus-x) - 43px); top:calc(var(--cine-focus-y) - 30px); border:2px solid currentColor; border-radius:50%; opacity:0; animation:var(--cine-ring) var(--cine-fx-duration) ease-out both; }
  .cine-fx-signal { width:5px; height:5px; border-radius:50%; background:currentColor; left:0; top:0; offset-path:inset(8px round 16px); opacity:0; animation:var(--cine-signal) var(--cine-fx-duration) linear both; }
  .cine-fx-particles { inset:0; }
  .cine-fx-particles i { position:absolute; width:3px; height:3px; background:currentColor; border-radius:50%; left:calc(10% + var(--i)*13%); top:calc(38% + var(--i)*5%); opacity:0; animation:var(--cine-particles) var(--cine-fx-duration) ease-out both; }
  .cine-fx-particles i:nth-child(1) { --i:0; }
  .cine-fx-particles i:nth-child(2) { --i:1; }
  .cine-fx-particles i:nth-child(3) { --i:2; }
  .cine-fx-particles i:nth-child(4) { --i:3; }
  .cine-fx-particles i:nth-child(5) { --i:4; }
  .cine-fx-particles i:nth-child(6) { --i:5; }
  .cine-fx-rose { display:none; width:86px; height:86px; right:12px; bottom:14px; stroke:var(--cine-flow-secondary); stroke-width:1.4; opacity:0; }
  .cine-fx-fragments { inset:7px; }
  .cine-fx-fragments i { position:absolute; height:2px; width:24%; left:0; top:0; background:currentColor; opacity:0; animation:var(--cine-shards) var(--cine-fx-duration) steps(3,end) both; }
  .cine-fx-fragments i:nth-child(2) { left:auto; right:0; top:30%; }
  .cine-fx-fragments i:nth-child(3) { left:40%; top:auto; bottom:0; }
  html[data-cinematic] .cine-motion-badge {
    animation:var(--cine-badge) var(--cine-fx-duration,700ms) ease-in-out 1 !important;
    transform-origin:center; /* Text never fades, blurs, fragments or duplicates. */
  }
  html[data-cinematic][data-world] #app-view .cine-button-press {
    animation:var(--cine-press) 380ms ease-out 1 !important;
    --cine-press-ink:var(--world-accent);
  }
  html[data-cinematic] .cine-button-press[data-cine-press='stripped'] { --cine-press-ink:var(--room-stripped); }
  html[data-cinematic] .cine-button-press[data-cine-press='bed-made'] { --cine-press-ink:var(--room-bed); }
  /* Stripped is deliberately understated; completion owns the richer layers. */
  .cine-transition-fx:not([data-effect='finished']) :is(.cine-fx-rose,.cine-fx-particles) { display:none; }
  .cine-transition-fx[data-effect='stripped'] .cine-fx-frame { opacity:.55; }
  .cine-transition-fx[data-effect='stripped'] .cine-fx-connection { display:none; }
  .cine-transition-fx:is([data-effect^='inspection'],[data-effect^='dnd']) :is(.cine-fx-frame,.cine-fx-fragments) { display:none; }
  .cine-transition-fx[data-effect^='inspection'] { color:var(--room-amber); }
  .cine-transition-fx[data-effect^='dnd'] { color:var(--room-privacy); }
  .cine-transition-fx[data-effect$='out'] .cine-fx-ring { animation-direction:reverse; }
  .cine-transition-fx[data-effect^='dnd'] .cine-fx-ring { border-right-color:transparent; border-bottom-color:transparent; }
  .cine-transition-fx[data-effect^='dnd'] .cine-fx-wash { background:linear-gradient(90deg,var(--world-deep),transparent 65%); }
  .cine-transition-fx:not([data-effect='finished']) .cine-fx-signal { offset-path:ellipse(43px 30px at var(--cine-focus-x) var(--cine-focus-y)); }

  /* Castle: frame traversal, candle bloom, a brief crimson/gold rose spiral. */
  html[data-cinematic='enchanted-castle'] .cine-transition-fx[data-effect='finished'] .cine-fx-rose { display:block; animation:flow-castle-rose var(--cine-fx-duration) ease-out both; }
  html[data-cinematic='enchanted-castle'] .cine-fx-rose path { stroke-dasharray:100; animation:flow-rose-draw var(--cine-fx-duration) ease-out both; }
  html[data-cinematic='enchanted-castle'] .cine-fx-signal { box-shadow:0 0 5px currentColor; }
  /* Metropolis: retraction/lock, sequential LED blocks, one confirmation. */
  html[data-cinematic='elemental-metropolis'] {
    --cine-press:flow-metro-press; --cine-badge:flow-metro-lock; --cine-wash:flow-metro-panel;
    --cine-route:flow-metro-rail; --cine-ring:flow-metro-ring; --cine-signal:flow-metro-signal;
    --cine-particles:flow-metro-led; --cine-shards:flow-metro-lock;
  }
  html[data-cinematic='elemental-metropolis'] .cine-fx-ring { border-radius:0; height:34px; top:calc(var(--cine-focus-y) - 17px); border-style:dashed; }
  html[data-cinematic='elemental-metropolis'] .cine-fx-particles i { left:4px; top:calc(15% + var(--i)*12%); width:4px; height:8px; border-radius:0; animation-delay:calc(var(--i)*40ms); animation-duration:calc(var(--cine-fx-duration) - 200ms); }
  html[data-cinematic='elemental-metropolis'] .cine-fx-wash { background:linear-gradient(90deg,currentColor,transparent 12%); }
  /* Mist: diffusion and a closing abstract ring. No particles or flash. */
  html[data-cinematic='heptapod-mist'] {
    --cine-press:flow-mist-press; --cine-badge:flow-mist-resolve; --cine-wash:flow-mist-fog;
    --cine-route:flow-mist-outline; --cine-ring:flow-mist-ripple; --cine-signal:flow-mist-signal;
    --cine-flow-ink:var(--world-text); --cine-shards:flow-mist-outline;
  }
  html[data-cinematic='heptapod-mist'] .cine-transition-fx :is(.cine-fx-particles,.cine-fx-connection,.cine-fx-fragments) { display:none; }
  html[data-cinematic='heptapod-mist'] .cine-fx-ring { border-width:1px; outline:1px solid var(--world-border); outline-offset:7px; }
  html[data-cinematic='heptapod-mist'] .cine-fx-wash { background:radial-gradient(ellipse at center,transparent 40%,var(--world-secondary)); }
  /* Sky: narrow telemetry scans and a tiny lift of the decorative surface. */
  html[data-cinematic='sky-tower'] {
    --cine-press:flow-sky-press; --cine-badge:flow-sky-resolve; --cine-wash:flow-sky-scan;
    --cine-route:flow-sky-rails; --cine-ring:flow-sky-line; --cine-signal:flow-sky-signal;
    --cine-shards:flow-sky-rails;
  }
  html[data-cinematic='sky-tower'] .cine-fx-wash { background:linear-gradient(100deg,transparent 42%,currentColor 49%,transparent 56%); width:140%; left:-20%; }
  html[data-cinematic='sky-tower'] .cine-fx-ring { border-radius:2px; height:3px; top:var(--cine-focus-y); background:currentColor; border:0; }
  html[data-cinematic='sky-tower'] .cine-fx-particles { display:none; }
  html[data-cinematic='sky-tower'] .cine-transition-fx[data-effect='finished'] .cine-fx-frame { animation:flow-sky-settle var(--cine-fx-duration) ease-in-out both; }
  html[data-cinematic][data-world='sky-tower'] #app-view .view .room-card.cine-room[data-room-transition-active='finished'] {
    animation:flow-sky-card-settle 1580ms ease-in-out 1 !important; animation-play-state:running !important;
  }
  /* Grid: only energy moves, orange path off / cyan route on, circuit closes. */
  html[data-cinematic='the-grid'] {
    --cine-press:flow-grid-press; --cine-badge:flow-grid-node; --cine-wash:flow-grid-junction;
    --cine-route:flow-grid-circuit; --cine-ring:flow-grid-ring; --cine-signal:flow-grid-signal;
    --cine-particles:flow-grid-converge; --cine-shards:flow-grid-close;
  }
  html[data-cinematic='the-grid'] .cine-fx-wash { background:linear-gradient(0deg,transparent 48%,currentColor 49% 50%,transparent 51%),linear-gradient(90deg,transparent 22%,currentColor 23% 24%,transparent 25%); }
  html[data-cinematic='the-grid'] .cine-fx-ring { border-radius:0 12px 0 12px; border-right-color:transparent; }
  html[data-cinematic='the-grid'] .cine-fx-particles i { height:1px; width:22px; border-radius:0; }
  html[data-cinematic='the-grid'] .cine-fx-connection { stroke:var(--room-stripped); }
  /* Dust: fixed mass, moving shadow/light and suspended material, not glitter. */
  html[data-cinematic='dust-city'] {
    --cine-press:flow-dust-press; --cine-badge:flow-dust-reveal; --cine-wash:flow-dust-beam;
    --cine-route:flow-dust-shadow; --cine-ring:flow-dust-block; --cine-signal:flow-dust-signal;
    --cine-particles:flow-dust-grains; --cine-shards:flow-dust-shadow;
  }
  html[data-cinematic='dust-city'] .cine-fx-wash { background:linear-gradient(105deg,transparent 24%,var(--world-deep) 35% 46%,currentColor 50% 54%,transparent 69%); width:160%; left:-30%; }
  html[data-cinematic='dust-city'] .cine-fx-ring { border-radius:0; border-left-width:7px; border-right-width:0; }
  html[data-cinematic='dust-city'] .cine-fx-signal { display:none; }
  html[data-cinematic='dust-city'] .cine-fx-particles i { width:1.5px; height:1.5px; }
  /* Horizon: curved acceleration and contraction, never a straight scan. */
  html[data-cinematic='event-horizon'] {
    --cine-press:flow-horizon-press; --cine-badge:flow-horizon-seal; --cine-wash:flow-horizon-depth;
    --cine-route:flow-horizon-field; --cine-ring:flow-horizon-contract; --cine-signal:flow-horizon-orbit;
    --cine-shards:flow-horizon-field;
  }
  html[data-cinematic='event-horizon'] .cine-fx-signal { offset-path:ellipse(43% 36% at 50% 50%); }
  html[data-cinematic='event-horizon'] .cine-fx-ring { width:80%; height:65%; left:10%; top:17%; border-right-color:transparent; }
  html[data-cinematic='event-horizon'] .cine-transition-fx :is(.cine-fx-particles,.cine-fx-fragments,.cine-fx-connection) { display:none; }
  /* Construct: only geometric decoration breaks apart. Labels stay legible. */
  html[data-cinematic='construct'] {
    --cine-press:flow-construct-press; --cine-badge:flow-construct-resolve; --cine-wash:flow-construct-signal;
    --cine-route:flow-construct-frame; --cine-ring:flow-construct-ring; --cine-signal:flow-construct-node;
    --cine-shards:flow-construct-shards;
  }
  html[data-cinematic='construct'] .cine-fx-wash { background:repeating-linear-gradient(0deg,transparent 0 17px,currentColor 17px 18px,transparent 18px 33px); }
  html[data-cinematic='construct'] .cine-fx-ring { border-radius:0; border-style:dashed; }
  html[data-cinematic='construct'] .cine-fx-particles { display:none; }
  html[data-cinematic='construct'] .cine-fx-fragments i { width:35%; height:3px; }
  html[data-cinematic='construct'] .cine-fx-fragments i:nth-child(2) { animation-direction:reverse; }
  html[data-cinematic='whispering-creek'] .cine-transition-fx[data-effect='finished'] .cine-fx-ring { animation:creek-room-finish-ring var(--cine-fx-duration) ease-out both; }

  @media (prefers-reduced-motion:reduce) {
    .cine-transition-fx { display:none !important; }
    html[data-cinematic][data-world] #app-view :is(.cine-motion-badge,.cine-button-press) { animation:none !important; }
  }
  html[data-cinematic][data-decorative-animations='off'] .cine-transition-fx { display:none !important; }
}
@media print { .cine-transition-fx { display:none !important; } }

@keyframes flow-lifetime { 0% { opacity:0; } 8%,82% { opacity:1; } 100% { opacity:0; } }
@keyframes creek-room-press { 0%,100% { box-shadow:none; } 27% { box-shadow:inset 0 0 0 2px var(--cine-press-ink),0 0 14px -5px var(--creek-water); } 66% { box-shadow:inset 0 -3px var(--cine-press-ink); } }
@keyframes creek-room-seal { 0%,100% { box-shadow:none; } 30% { box-shadow:0 0 0 2px var(--creek-water); } 67% { box-shadow:0 0 0 5px color-mix(in srgb,var(--creek-water) 24%,transparent),0 0 16px var(--creek-water); } }
@keyframes creek-room-ripple { 0%,100% { opacity:0; } 31% { opacity:.15; } 57% { opacity:.22; } }
@keyframes creek-room-flow { 0% { stroke-dasharray:6 94;stroke-dashoffset:100;opacity:0; } 24% { opacity:.68; } 75% { stroke-dasharray:34 66;stroke-dashoffset:0;opacity:.52; } 100% { opacity:0; } }
@keyframes creek-room-stone-ring { 0% { opacity:0;scale:.58 1; } 34% { opacity:.5; } 88%,100% { opacity:0;scale:1.8 1.16; } }
@keyframes creek-room-drop { 0% { opacity:0;offset-distance:0%; } 22% { opacity:.78; } 84%,100% { opacity:0;offset-distance:100%; } }
@keyframes creek-room-bubbles { 0%,19%,100% { opacity:0;translate:0 5px; } 42% { opacity:.68; } 78% { opacity:.22;translate:calc(var(--i)*1px - 3px) -19px; } }
@keyframes creek-room-finish-ring { 0% { opacity:0;scale:.38 .6; } 27% { opacity:.7;scale:1 1; } 66% { opacity:.32;scale:1.42 1.3; } 100% { opacity:0;scale:1.85 1.4; } }
@keyframes flow-connect { 0% { stroke-dashoffset:100; opacity:0; } 20% { opacity:.8; } 58%,100% { stroke-dashoffset:0; opacity:0; } }
@keyframes flow-castle-press { 0%,100% { box-shadow:none; } 40% { box-shadow:inset 0 0 0 2px var(--cine-press-ink),0 -4px 12px -3px var(--cine-press-ink); } }
@keyframes flow-castle-seal { 0%,100% { translate:0 0; } 30% { box-shadow:0 0 12px var(--world-accent); } 65% { translate:0 -2px; } 82% { translate:0 1px; } }
@keyframes flow-castle-bloom { 0%,100% { opacity:0; } 38% { opacity:.16; } 70% { opacity:.07; } }
@keyframes flow-castle-route { 0% { stroke-dashoffset:100; opacity:0; } 12% { opacity:.9; } 70% { stroke-dashoffset:0; opacity:.8; } 100% { stroke-dashoffset:0; opacity:0; } }
@keyframes flow-castle-ring { 0% { opacity:0; scale:.85; } 40% { opacity:.45; } 100% { opacity:0; scale:1.2; } }
@keyframes flow-castle-signal { 0% { opacity:0; offset-distance:0%; } 15%,65% { opacity:1; } 90%,100% { opacity:0; offset-distance:100%; } }
@keyframes flow-castle-particles { 0%,15% { opacity:0; translate:0 5px; } 35% { opacity:.6; } 80%,100% { opacity:0; translate:calc(var(--i)*2px - 5px) -30px; } }
@keyframes flow-castle-rose { 0%,25% { opacity:0; rotate:-20deg; scale:.6; } 58% { opacity:.65; } 95%,100% { opacity:0; rotate:20deg; scale:1.05; } }
@keyframes flow-rose-draw { 0%,25% { stroke-dashoffset:100; } 78%,100% { stroke-dashoffset:0; } }
@keyframes flow-metro-press { 0%,100% { translate:0 0; box-shadow:none; } 25% { translate:1px 2px; box-shadow:inset 3px 0 var(--cine-press-ink); } 55% { translate:1px 2px; box-shadow:inset 3px 0 var(--cine-press-ink),inset 0 -3px var(--cine-press-ink); } }
@keyframes flow-metro-lock { 0%,100% { translate:0 0; } 15% { translate:-2px 0; } 65% { translate:2px 0; box-shadow:inset 0 -3px var(--world-accent); } 82% { translate:-1px 0; } }
@keyframes flow-metro-panel { 0%,100% { opacity:0; } 35%,65% { opacity:.18; } }
@keyframes flow-metro-rail { 0% { stroke-dashoffset:100; } 65% { stroke-dashoffset:0; } 70% { stroke-dasharray:100 0; opacity:1; } 90%,100% { opacity:0; } }
@keyframes flow-metro-ring { 0% { opacity:0; translate:-12px 0; } 45%,72% { opacity:.7; translate:0 0; } 100% { opacity:0; translate:0 0; } }
@keyframes flow-metro-signal { 0% { offset-distance:0%; opacity:0; } 12%,65% { opacity:1; } 75%,100% { offset-distance:100%; opacity:0; } }
@keyframes flow-metro-led { 0%,20%,100% { opacity:0; } 30%,72% { opacity:.9; } }
@keyframes flow-mist-press { 0% { box-shadow:0 0 0 0 var(--world-border); } 100% { box-shadow:0 0 0 10px transparent; } }
@keyframes flow-mist-resolve { 0%,100% { box-shadow:none; } 40% { box-shadow:0 0 0 5px var(--world-border); } 75% { box-shadow:0 0 0 12px transparent; } }
@keyframes flow-mist-fog { 0%,100% { opacity:0; scale:1; } 42% { opacity:.13; scale:1.03; } }
@keyframes flow-mist-outline { 0% { opacity:0; stroke-dasharray:20 80; } 55% { opacity:.18; stroke-dasharray:100 0; } 100% { opacity:0; } }
@keyframes flow-mist-ripple { 0% { opacity:0; scale:.5; } 38% { opacity:.35; } 85%,100% { opacity:0; scale:2.8; } }
@keyframes flow-mist-signal { 0% { opacity:0; offset-distance:0%; } 35%,60% { opacity:.3; } 100% { opacity:0; offset-distance:100%; } }
@keyframes flow-sky-press { 0%,100% { box-shadow:none; } 25% { box-shadow:inset 8px 0 var(--cine-press-ink); } 65% { box-shadow:inset -8px 0 var(--cine-press-ink); } }
@keyframes flow-sky-resolve { 0%,100% { box-shadow:none; } 30% { box-shadow:inset 0 2px var(--world-accent); } 65% { box-shadow:inset 0 -3px var(--world-accent); } }
@keyframes flow-sky-scan { 0% { translate:-60% 0; opacity:0; } 20%,60% { opacity:.2; } 90%,100% { translate:60% 0; opacity:0; } }
@keyframes flow-sky-rails { 0% { opacity:0; stroke-dasharray:0 100; } 35%,65% { opacity:.65; stroke-dasharray:100 0; } 100% { opacity:0; } }
@keyframes flow-sky-line { 0% { opacity:0; scale:.1 1; } 40% { opacity:.7; scale:1 1; } 65% { opacity:.2; scale:1 8; } 100% { opacity:0; scale:1 12; } }
@keyframes flow-sky-signal { 0%,60% { opacity:0; offset-distance:65%; } 70% { opacity:.85; } 100% { opacity:0; offset-distance:65%; } }
@keyframes flow-sky-settle { 0%,100% { translate:0 0; } 35%,65% { translate:0 -3px; filter:drop-shadow(0 5px 2px var(--world-border)); } }
@keyframes flow-sky-card-settle { 0%,100% { translate:0 0; } 35%,65% { translate:0 -3px; } }
@keyframes flow-grid-press { 0%,100% { box-shadow:none; } 20% { box-shadow:inset 3px 0 var(--cine-press-ink); } 45% { box-shadow:inset 0 3px var(--cine-press-ink); } 70% { box-shadow:inset -3px 0 var(--cine-press-ink),inset 0 -3px var(--cine-press-ink); } }
@keyframes flow-grid-node { 0%,100% { box-shadow:none; } 30% { box-shadow:inset 3px 0 var(--world-accent); } 55% { box-shadow:inset 0 3px var(--world-accent); } 78% { box-shadow:inset 0 0 0 2px var(--world-accent); } }
@keyframes flow-grid-junction { 0%,100% { opacity:0; } 45%,68% { opacity:.14; } }
@keyframes flow-grid-circuit { 0% { stroke-dashoffset:100; stroke-dasharray:15 85; } 65% { stroke-dashoffset:0; stroke-dasharray:15 85; } 76% { stroke-dashoffset:0; stroke-dasharray:100 0; opacity:1; } 100% { stroke-dasharray:100 0; opacity:0; } }
@keyframes flow-grid-ring { 0%,100% { opacity:0; } 50% { opacity:.65; border-right-color:transparent; } 75% { opacity:.9; border-right-color:currentColor; } }
@keyframes flow-grid-signal { 0% { opacity:0; offset-distance:0%; } 10%,68% { opacity:1; } 80%,100% { opacity:0; offset-distance:100%; } }
@keyframes flow-grid-converge { 0%,20% { opacity:0; translate:-15px 12px; } 48% { opacity:.65; } 72%,100% { opacity:0; translate:15px -12px; } }
@keyframes flow-grid-close { 0%,62% { opacity:0; } 75% { opacity:.8; } 100% { opacity:0; } }
@keyframes flow-dust-press { 0%,100% { translate:0 0; box-shadow:4px 5px 0 var(--world-deep); } 30%,65% { translate:2px 2px; box-shadow:1px 1px 0 var(--world-deep),inset 3px 0 var(--cine-press-ink); } }
@keyframes flow-dust-reveal { 0%,100% { box-shadow:3px 4px 0 var(--world-deep); } 30% { box-shadow:7px 3px 0 var(--world-deep); } 60% { box-shadow:inset 3px 0 var(--world-accent),-3px 4px 0 var(--world-deep); } }
@keyframes flow-dust-beam { 0% { opacity:0; translate:-40% 0; } 20% { opacity:.18; } 50% { opacity:.27; } 95%,100% { opacity:0; translate:40% 0; } }
@keyframes flow-dust-shadow { 0%,100% { opacity:0; translate:0 0; } 40% { opacity:.45; translate:4px 2px; } 65% { opacity:.6; translate:-2px 3px; } }
@keyframes flow-dust-block { 0% { opacity:0; } 35%,62% { opacity:.35; translate:4px 0; } 100% { opacity:0; translate:-2px 0; } }
@keyframes flow-dust-signal { 0%,100% { opacity:0; } }
@keyframes flow-dust-grains { 0%,20%,90%,100% { opacity:0; } 45%,60% { opacity:.45; translate:3px 1px; } }
@keyframes flow-horizon-press { 0%,100% { box-shadow:0 0 0 0 transparent; } 20% { box-shadow:0 0 0 5px var(--world-border); } 75% { box-shadow:inset 0 0 0 1px var(--cine-press-ink); } }
@keyframes flow-horizon-seal { 0%,100% { box-shadow:none; } 30% { box-shadow:3px -2px 0 var(--world-accent); } 55% { box-shadow:-3px 2px 0 var(--world-accent); } 78% { box-shadow:0 0 0 2px var(--world-accent); } }
@keyframes flow-horizon-depth { 0%,100% { opacity:0; scale:1; } 50% { opacity:.12; scale:.95 1.02; } }
@keyframes flow-horizon-field { 0%,100% { opacity:0; } 50% { opacity:.25; stroke-dasharray:100 0; } }
@keyframes flow-horizon-contract { 0% { opacity:0; scale:.65; rotate:-18deg; } 25% { opacity:.6; scale:1; } 65% { opacity:.5; scale:1.07; rotate:20deg; } 85% { opacity:.6; scale:.2; } 100% { opacity:0; scale:.3; } }
@keyframes flow-horizon-orbit { 0% { opacity:0; offset-distance:0%; } 15% { opacity:1; offset-distance:5%; } 65% { opacity:1; offset-distance:100%; } 85% { opacity:.6; scale:.2; offset-distance:140%; } 100% { opacity:0; scale:.2; offset-distance:140%; } }
@keyframes flow-construct-press { 0%,100% { box-shadow:none; } 18% { box-shadow:3px 0 var(--cine-press-ink),-2px 0 var(--world-border); } 38% { box-shadow:-2px 0 var(--cine-press-ink),2px 0 var(--world-border); } 70% { box-shadow:inset 0 0 0 1px var(--cine-press-ink); } }
@keyframes flow-construct-resolve { 0%,100% { box-shadow:none; } 22% { box-shadow:3px 0 var(--world-accent),-2px 0 var(--world-border); } 45% { box-shadow:-2px 0 var(--world-accent),2px 0 var(--world-border); } 72% { box-shadow:inset 0 0 0 2px var(--world-accent); } }
@keyframes flow-construct-signal { 0%,100% { opacity:0; translate:0 0; } 25% { opacity:.08; translate:2px 0; } 45% { opacity:.1; translate:-2px 0; } 68% { opacity:.12; translate:0 0; } }
@keyframes flow-construct-frame { 0% { stroke-dasharray:10 5; opacity:0; } 20% { opacity:.5; translate:2px 0; } 45% { translate:-2px 0; } 70% { translate:0 0; stroke-dasharray:100 0; opacity:.9; } 100% { stroke-dasharray:100 0; opacity:0; } }
@keyframes flow-construct-ring { 0%,100% { opacity:0; } 28% { opacity:.6; translate:2px 0; } 49% { opacity:.6; translate:-2px 0; } 72% { opacity:.8; translate:0 0; border-style:solid; } }
@keyframes flow-construct-node { 0%,25%,100% { opacity:0; } 45% { opacity:.7; offset-distance:35%; } 70% { opacity:1; offset-distance:85%; } }
@keyframes flow-construct-shards { 0%,100% { opacity:0; translate:0 0; } 20% { opacity:.7; translate:3px 0; } 42% { opacity:.7; translate:-2px 1px; } 70% { opacity:1; translate:0 0; } }


/* Source: operations.css */
/* Deliberately bounded surfaces: decorative theme masks must not clip controls. */
.ops-panel,.ops-dialog { color:var(--text,#edf2fa);background:var(--panel,#182333);border:1px solid var(--line,#536077);border-radius:16px!important;clip-path:none!important;mask:none!important;overflow:visible; }
.ops-panel { padding:18px;margin:0 0 20px;min-width:0; }
.ops-panel>header,.ops-header { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.ops-panel h2 { margin:0;font-size:1.15rem; }
.ops-panel progress,.ops-dialog progress { width:100%;height:6px;accent-color:#39ba8c;margin:10px 0; }
.ops-actions,.ops-room-tools,.ops-workloads { display:flex;flex-wrap:wrap;gap:8px;align-items:center; }
.ops-room-tools { padding-top:10px;position:relative;z-index:2; }
.ops-room-tools button { font-size:.78rem; }
.ops-flag { display:inline-block;padding:4px 8px;border:1px solid currentColor;border-radius:6px!important;font-size:.72rem;line-height:1.3;max-width:100%;overflow-wrap:anywhere; }
.ops-workloads { gap:8px 18px;margin:12px 0 0;font-size:.85rem; }
.ops-caption { font-size:.78rem;line-height:1.5;opacity:.85; }
.ops-event-banner { display:grid;gap:4px;padding:12px;border-left:4px solid var(--accent,#66bfea);margin:12px 0;border-radius:6px;background:color-mix(in srgb,currentColor 7%,transparent); }
.ops-event-banner[data-impact=high] { border-color:#e1ab42; }
.ops-event-banner span { font-size:.85rem; }
dialog.ops-dialog { position:fixed;inset:12px 12px 12px auto;margin:0;width:min(620px,calc(100vw - 24px));max-width:calc(100vw - 24px);height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);padding:20px;box-sizing:border-box;overflow:auto!important;transform:none!important;animation:none!important;z-index:9999; }
.ops-dialog::backdrop { background:rgba(0,0,0,.55);backdrop-filter:blur(3px); }
.ops-dialog::before,.ops-dialog::after,.ops-panel::before,.ops-panel::after { content:none!important; }
.ops-dialog * { box-sizing:border-box; }
.ops-header { margin-bottom:14px; }
.ops-header h2 { margin:0;font-size:1.3rem; }
.ops-dialog h3 { margin:18px 0 10px;font-size:1rem; }
.ops-dialog section { padding-bottom:18px;border-bottom:1px solid var(--line,#536077); }
.ops-dialog form { display:grid;gap:12px;margin:15px 0; }
.ops-dialog label { display:grid;gap:6px;font-size:.9rem; }
.ops-dialog input,.ops-dialog select,.ops-dialog textarea { width:100%;min-width:0;min-height:44px;padding:10px;border:1px solid var(--line,#73809a);border-radius:8px!important;clip-path:none!important;mask:none!important;background:var(--bg,#101b29);color:inherit;font:inherit; }
.ops-dialog textarea { min-height:90px;resize:vertical; }
.ops-dialog button,.ops-panel button,.ops-room-tools button { min-height:44px!important;max-width:100%;white-space:normal;border-radius:8px!important;clip-path:none!important;mask:none!important;transform:none!important; }
.ops-dialog button:focus-visible,.ops-panel button:focus-visible,.ops-room-tools button:focus-visible { outline:3px solid var(--accent,#7fcaff);outline-offset:3px; }
.ops-dialog button:disabled { opacity:.55;cursor:wait; }
.ops-dialog .ops-checkbox { display:flex;align-items:center;gap:10px;text-transform:capitalize; }
.ops-dialog .ops-checkbox input { width:22px;min-height:22px; }
.ops-primary-status { font-weight:700;display:inline-block;padding:8px 12px;border:1px solid currentColor;border-radius:8px; }
.ops-record { padding:14px 0;border-bottom:1px solid var(--line,#536077);display:grid;gap:7px;overflow-wrap:anywhere; }
.ops-record p { margin:0;white-space:pre-wrap; }
.ops-record small,.ops-timeline small { display:block;opacity:.85; }
.ops-timeline { margin:0;padding-left:22px; }
.ops-timeline li { padding:9px 0;overflow-wrap:anywhere; }
.ops-timeline p { margin:6px 0;white-space:pre-wrap; }
.ops-error { background:#651f2c;color:#fff;padding:12px;border-radius:8px;white-space:pre-wrap; }
.ops-error[hidden] { display:none; }
.ops-inspection-controls { display:grid;grid-template-columns:1fr;gap:14px;margin:22px 0; }
.ops-inspection-controls button { min-height:70px!important;font-size:1.1rem; }
.ops-inspection-controls [data-ops=pass] { background:#17663f;color:white; }
.ops-metrics { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0; }
.ops-metrics dt { font-size:.8rem; }.ops-metrics dd { font-weight:700;margin:4px 0 0; }
.ops-photo { max-width:100%;height:auto;border-radius:8px; }
.ops-preserve { white-space:pre-wrap;overflow-wrap:anywhere; }
.manager-room-message-tools { display:flex;flex-wrap:wrap;gap:8px;grid-column:1 / -1;min-width:0;margin-top:8px; }
.manager-room-message-tools .manager-messaged-button { min-height:44px!important;max-width:100%;white-space:normal!important;border-radius:10px!important;clip-path:none!important;mask:none!important;transform:none!important; }
.manager-messaged-button[aria-pressed=true] { border-color:var(--green,#26966f); }
.ops-open-items ul { list-style:none;padding:0;margin:0;display:grid;gap:10px; }
.ops-open-items li { display:grid;gap:4px;overflow-wrap:anywhere;white-space:pre-wrap; }
.ops-open-items li strong { font-size:.78rem;opacity:.85; }
@media(max-width:480px) { dialog.ops-dialog { inset:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0!important;padding:16px;padding-bottom:max(20px,env(safe-area-inset-bottom)); }.ops-panel{padding:14px} }
@media print { .ops-room-tools,.ops-panel .ops-actions,.ops-dialog { display:none!important; } }

.ops-item-resolution { display:flex; flex-wrap:wrap; gap:8px; align-items:end; }
.ops-item-resolution label { min-width:0; flex:1 1 160px; }
.ops-item-resolution select { width:100%; }
.ops-item-resolution button { min-height:44px; flex:0 0 auto; }

.checkout-item-details { margin-top:12px; }
.checkout-item-details > summary { min-height:44px; padding:12px 0; cursor:pointer; font-weight:700; }
.checkout-item-details .ops-open-items { min-width:0; max-width:100%; }
.ops-item-error { color:var(--danger,var(--text)); overflow-wrap:anywhere; }
#today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .room-status-toggle { min-height:44px!important; }
#today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .clean-needs-bed-button[aria-pressed=true] { outline:2px solid var(--green,var(--accent)); outline-offset:-2px; }
/* Keep arrival directly beside the bed marker at every popup width. */
  #today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .summary-room-main {
    display:grid!important; grid-template-columns:auto minmax(0,auto) minmax(56px,1fr); align-items:center; gap:6px; padding-inline-end:0;
  }
  #today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .summary-room-main > .summary-room-number {
    grid-column:1!important; grid-row:1; width:auto!important; min-width:0; margin:0; font-size:1.5rem!important; line-height:1.2;
  }
  #today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .summary-room-main > .summary-room-meta {
    grid-column:2; grid-row:1; display:flex; flex-wrap:wrap; gap:5px; align-items:center; min-width:0; width:auto;
  }
  #today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .summary-room-meta:empty { display:none; }
  #today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .summary-room-main > .arc-operational-status {
    grid-column:3; grid-row:1; position:static!important; margin-inline-start:auto; max-width:100%; min-width:0; align-self:center;
  }
  #today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .summary-room-main > :is(.cine-room-signals,.summary-room-history-meta,.summary-room-secondary-context,.strip-bed-progress-status) { grid-column:1/-1; }
  #today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .cine-room-type[data-room-type="checkout"] { display:none!important; }
  #today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .room-status-toggle { min-width:0!important; width:auto!important; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
  #today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) :is(.arrival-badge,.early-badge) {
    width:auto!important; max-width:100%; white-space:normal; overflow-wrap:anywhere; clip-path:none!important; transform:none!important; border:1px solid var(--amber,var(--accent)); border-radius:5px; padding:4px 7px; font-size:.8rem; font-weight:700; text-transform:uppercase; box-shadow:none!important;
    background:color-mix(in srgb,var(--amber,var(--accent)) 12%,var(--panel,var(--surface)));
  }
@media (max-width:700px) {
  #today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .summary-room-prefix { display:none; }
  #today-summary-dialog :is([data-checkout-open-items],[data-working-room-summary],[data-finished-room-card]) .summary-room-main > .summary-room-number { font-size:1.25rem!important; }
}

#today-summary-dialog [data-summary-compact] .summary-room-main { display:flex!important; flex-wrap:wrap; align-items:center; gap:8px; padding:0; }
#today-summary-dialog [data-summary-compact] .summary-room-number { width:auto!important; margin:0; font-size:1.5rem!important; }
#today-summary-dialog [data-summary-compact] .summary-room-meta { display:flex; flex-wrap:wrap; gap:6px; width:auto; }
#today-summary-dialog [data-summary-compact] .summary-room-assigned { margin:8px 0 0; overflow-wrap:anywhere; }
#today-summary-dialog [data-summary-compact] :is(.summary-arrival-none,.summary-pet-none) { font-size:.85rem; color:var(--muted); }
#today-summary-dialog [data-finished-room-card] .arc-legacy > :is(.summary-room-open-work,.summary-room-fixbox) { min-width:0; max-width:100%; }

@media (max-width:700px) {
  html[data-theme] #today-summary-dialog [data-summary-compact] .summary-room-main { display:flex!important; flex-wrap:wrap; grid-template-columns:none; grid-column:1/-1; min-width:0; }
  html[data-theme] #today-summary-dialog [data-summary-compact] .summary-room-meta { flex:0 1 auto; min-width:0; max-width:100%; }
  html[data-theme] #today-summary-dialog [data-summary-compact] :is(.arrival-badge,.early-badge) { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
  html[data-theme] #today-summary-dialog [data-summary-compact] .summary-room-assigned { grid-column:1/-1; }
}

#today-summary-dialog :is([data-working-room-summary],[data-finished-room-card]) .room-status-toggle[data-status="out"] { white-space:nowrap; overflow-wrap:normal; }

@media (max-width:700px) {
  #today-summary-dialog :is([data-working-room-summary],[data-finished-room-card]) .summary-room-meta :is(.arrival-badge,.early-badge) { font-size:.75rem!important; padding:4px 6px; overflow-wrap:normal; }
  #today-summary-dialog :is([data-working-room-summary],[data-finished-room-card]) .summary-room-meta .arrival-badge { white-space:nowrap; }
}


/* Source: housekeeping.css */
:root {
  --hk-cleaning:var(--accent,#397acc); --hk-stripped:var(--accent-secondary,#8c76c4);
  --hk-bed-made:var(--accent-secondary,#8c76c4); --hk-finished:var(--yellow,#bc852c);
  --hk-sent-back:var(--red,#bb3349); --hk-ready:var(--green,#268261);
  --hk-guest-messaged:var(--green,#268261); --hk-arrival:var(--accent,#397acc);
  --hk-priority:var(--red,#bb3349);
}
.hk-work { display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 0;grid-column:1/-1;min-width:0;font-size:.8rem; }
.hk-current { font-weight:750;border:1px solid currentColor;border-radius:8px;padding:4px 8px;color:var(--text); }
.hk-current[data-phase=cleaning],.hk-current[data-phase=rework] { border-color:var(--hk-cleaning);background:color-mix(in srgb,var(--hk-cleaning) 15%,transparent); }
.hk-current[data-phase=finished],.hk-current[data-phase=reinspection] { border-color:var(--hk-finished);background:color-mix(in srgb,var(--hk-finished) 15%,transparent); }
.hk-current[data-phase=sent-back] { border-color:var(--hk-sent-back);background:color-mix(in srgb,var(--hk-sent-back) 15%,transparent); }
.hk-current[data-phase=ready],.hk-current[data-phase=guest-messaged] { border-color:var(--hk-ready);background:color-mix(in srgb,var(--hk-ready) 15%,transparent); }
.hk-assignment,.hk-timer { font-size:.78rem; }
.hk-timer { font-variant-numeric:tabular-nums; }
.hk-actions,.hk-queue { display:flex;flex-wrap:wrap;gap:8px; }
.hk-work .button,.hk-queue .button { min-height:44px!important;padding:6px 12px!important;max-width:100%;white-space:normal!important; }
.hk-corrections { width:100%;list-style:none;padding:0;margin:4px 0;display:grid;gap:6px; }
.hk-corrections li { display:flex;align-items:center;justify-content:space-between;gap:10px; }
.hk-live-panel { margin:20px 0;padding:16px; }
.hk-live-panel h2 { font-size:1.1rem;margin:0 0 12px; }
.hk-live-panel h3 { font-size:.95rem; }
.hk-live-panel details { margin-top:12px; }
.has-hk-workflow .cine-workflow,.has-hk-workflow .cine-inspection,.has-hk-workflow .sent-back-badge { display:none!important; }
.has-hk-workflow .hk-history-status { display:none!important; }
.hk-current[data-phase=stripped] { border-color:var(--hk-stripped); }
.hk-current[data-phase=bed-made] { border-color:var(--hk-bed-made); }
.hk-pulse { display:flex;flex-wrap:wrap;align-items:center;gap:8px; }
.hk-pulse .button { min-height:44px;white-space:normal; }


/* Source: mobile-checkout-actions.css */
/* Manager turnover controls stay readable beside the existing strip action. */
.summary-room-turnover-actions { display:flex;flex-wrap:wrap;gap:8px;width:100%; }
#today-summary-dialog .today-summary-feedback { flex-shrink:0;margin:8px 0 0;font-size:.85rem;overflow-wrap:anywhere; }
#today-summary-dialog .today-summary-feedback[data-kind=error] { color:var(--danger,#b02a37); }
#strip-rooms-view .manager-strip-actions .clean-needs-bed-button {
  grid-column: 1 / -1;
  flex-basis: 100%;
}

/* Compact Today checkout actions on phones without shrinking tap targets.
   Other room views and desktop retain their existing layouts. */
@media screen and (max-width: 600px) {
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] .summary-room-turnover-actions {
    display:contents;
  }
  html body :is(#remaining-checkouts-view .room-card-actions, #strip-rooms-view .manager-strip-actions) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    min-width: 0;
  }
  html body :is(#remaining-checkouts-view .room-card-actions, #strip-rooms-view .manager-strip-actions) > button {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    height: auto !important;
    white-space: normal !important;
    padding: 8px !important;
    line-height: 1.25 !important;
    border-radius: 10px !important;
    clip-path: none !important;
    mask: none !important;
    transform: none !important;
  }
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] .summary-room-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    align-items: stretch;
    min-width: 0;
  }
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] .summary-room-actions > .room-status-wrap {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    width: 100%;
  }
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] .summary-inspect-button {
    grid-column: auto;
    grid-row: auto;
    margin: 0;
  }
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] .summary-room-arrival-actions {
    display: contents;
  }
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] .ops-room-tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    width: 100%;
    min-width: 0;
    padding-top: 0;
  }
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] .ops-room-tools .ops-flag {
    grid-column: 1 / -1;
    justify-self: start;
  }
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] :is(.summary-room-actions,.ops-room-tools) button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    height: auto !important;
    padding: 5px 4px !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: normal;
    border-radius: 10px !important;
    clip-path: none !important;
    mask: none !important;
    transform: none !important;
  }
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] .summary-room-row { gap:6px; padding:8px; }
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] .manager-room-message-tools {
    flex:1 1 0;
    margin-top:0;
  }
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] .manager-messaged-button {
    width:100%;
    padding:5px 4px !important;
    font-size:12px !important;
    line-height:1.25 !important;
  }
  html body #today-summary-dialog[data-summary-kind="total-checkouts"] .ops-room-tools { flex:2 1 0; width:auto; }
}

/* Keep the four manager workflow actions together on Today working summaries. */
html body #today-summary-dialog :is([data-working-room-summary]) .summary-room-turnover-actions {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr) minmax(0,1.05fr) minmax(0,1.1fr);
  gap:4px;
  grid-column:1 / -1;
  width:100%;
  min-width:0;
}
html body #today-summary-dialog [data-working-room-summary] .summary-room-turnover-actions > button {
  width:100%!important;
  min-width:0!important;
  min-height:44px!important;
  height:auto!important;
  padding:5px 3px!important;
  font-size:12px!important;
  text-transform:none!important;
  letter-spacing:0!important;
  line-height:1.15!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
  text-align:center;
}


@media (max-width:360px) {
  html body #today-summary-dialog [data-working-room-summary] .summary-room-turnover-actions > button {
    font-size:11px!important;
    padding:5px 2px!important;
  }
}


/* Source: mobile-navigation-stability.css */
@media screen and (max-width: 700px) {
  /* Navigation belongs to the viewport, independently of a profile's theme. */
  html body #app-view > .sidebar {
    position: fixed !important;
    top: auto !important;
    bottom: 0 !important;
    padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
    left: 0 !important;
    right: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    transform: none !important;
    translate: none !important;
    filter: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  /* Safari zooms focused controls below 16px. Keeping the actual inputs at
     this size avoids a shifted visual viewport after search/keyboard dismissal. */
  html body #room-search-input,
  html body #mobile-room-search-input,
  html body #mobile-nav-select {
    font-size: 16px !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  /* Native modal top-layer placement is independent of theme stacking rules. */
  html body dialog#mobile-nav-sheet {
    position: fixed !important;
    inset: auto max(12px, env(safe-area-inset-right)) calc(72px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)) !important;
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: calc(100dvh - 96px - env(safe-area-inset-bottom) - env(safe-area-inset-top)) !important;
    box-sizing: border-box;
    transform: none !important;
    translate: none !important;
    clip-path: none !important;
    contain: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto;
    animation: none !important;
    overflow: hidden !important;
  }
  html body dialog#mobile-nav-sheet[open] { display: flex !important; }
  html body dialog#mobile-nav-sheet:not([open]),
  html body dialog#mobile-nav-sheet[hidden] { display: none !important; }
  html body dialog#mobile-nav-sheet::backdrop { background: rgba(3, 8, 16, .45); backdrop-filter: blur(2px); }
  html body #mobile-nav-sheet .mobile-nav-sheet-head { flex-wrap: wrap; flex-shrink: 0; }
  html body #mobile-nav-sheet .mobile-nav-sheet-list { flex: 0 1 auto !important; height: auto !important; min-height: 0; overflow-y: auto; }
  html body #mobile-nav-sheet .nav-room-search { flex-shrink: 0; }
  html body #mobile-nav-sheet :is(button, input) { min-height: 44px; }
  html body #mobile-nav-select {
    min-height: 44px;
    text-align: left;
    touch-action: manipulation;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

@media screen and (min-width: 701px) {
  /* Keep every desktop theme in the same two-column shell. The sidebar owns
     the viewport height; only its nav list should scroll through long tab
     sets, leaving the brand and footer reachable. */
  html body #app-view > .sidebar {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: var(--sidebar) !important;
    height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  html body #app-view > .sidebar > nav {
    min-height: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }
}


/* Source: visibility-savings.css */
/* No foreground overrides: retain every visible animation exactly as styled.
   Pause, rather than remove, invisible CSS motion so its phase is retained. */
/* Important layer beats theme animation shorthands, but the earlier
   world-motion-accessibility layer still owns reduced-motion preferences. */
@layer visibility-savings {
@media screen {
  html.app-page-hidden[data-theme][data-mode] *,
  html.app-page-hidden[data-theme][data-mode] *::before,
  html.app-page-hidden[data-theme][data-mode] *::after {
    animation-play-state: paused !important;
  }
}
@media screen and (hover: none) and (pointer: coarse) {
  html[data-theme][data-mode] #app-view [data-motion-offscreen],
  html[data-theme][data-mode] #app-view [data-motion-offscreen]::before,
  html[data-theme][data-mode] #app-view [data-motion-offscreen]::after,
  html[data-theme][data-mode] dialog [data-motion-offscreen],
  html[data-theme][data-mode] dialog [data-motion-offscreen]::before,
  html[data-theme][data-mode] dialog [data-motion-offscreen]::after {
    animation-play-state: paused !important;
  }
}
}


/* Source: phenix-1873.css */
/* PHENIX 1873. Original abstract architecture, not a historical reconstruction.
   Only framing is cut; no text, menu, card body or dialog is clipped. */
@layer phenix1873 {
@media screen {
  html[data-world='phenix-1873'] {
    --phenix-light:#c29448; --phenix-dust:#715733; --phenix-shadow:#76624a;
    --phenix-burgundy:#743347; --phenix-glass:#f7f0e3;
    --cine-shape:polygon(0 10px,8px 10px,8px 4px,20px 4px,20px 0,calc(100% - 20px) 0,calc(100% - 20px) 4px,calc(100% - 8px) 4px,calc(100% - 8px) 10px,100% 10px,100% calc(100% - 5px),calc(100% - 8px) calc(100% - 5px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 5px),0 calc(100% - 5px));
    --cine-material:linear-gradient(125deg,color-mix(in srgb,var(--phenix-light) 12%,var(--world-surface)),var(--world-surface) 35%,var(--phenix-glass) 80%,var(--world-elevated));
    --cine-shadow:inset 0 2px 0 color-mix(in srgb,var(--world-accent) 50%,transparent),inset 0 -1px 0 var(--world-border);
    --room-stripped:#604d33 !important; --room-stripped-fill:#e9dfcc !important;
    --room-bed:#674419 !important; --room-bed-fill:#fff0ce !important;
    --room-finished:#624310 !important; --room-finished-fill:#f2dfa7 !important;
    --room-privacy:#752d43 !important; --room-privacy-fill:#f8e5e5 !important;
    --room-amber:#75470f !important; --room-amber-fill:#f9e8c6 !important;
    --room-inspect:#75470f !important; --room-inspect-fill:#f9e8c6 !important;
    --room-signal-radius:2px 2px 6px 2px !important;
    --room-ambient:phenix-arrival !important; --room-approach:phenix-number-light !important;
    --room-late-ambient:phenix-clock !important; --room-inspect-ambient:phenix-service !important;
    --room-note-attention:phenix-note !important;
    --cine-press:phenix-press !important; --cine-badge:phenix-badge-reveal !important;
  }
  html[data-world='phenix-1873'][data-mode='dark'] {
    --phenix-light:#f0b967; --phenix-dust:#f2ca8a; --phenix-shadow:#030201;
    --phenix-burgundy:#481f2b; --phenix-glass:#2e2020;
    --room-stripped:#ddc9a7 !important; --room-stripped-fill:#352d22 !important;
    --room-bed:#f9e0a6 !important; --room-bed-fill:#44331e !important;
    --room-finished:#ffe3a1 !important; --room-finished-fill:#43301a !important;
    --room-privacy:#f3c0c8 !important; --room-privacy-fill:#4c202d !important;
    --room-amber:#f6d398 !important; --room-amber-fill:#422b17 !important;
    --room-inspect:#f6d398 !important; --room-inspect-fill:#422b17 !important;
  }
  html[data-theme='phenix-1873'] { --theme-badge-radius: 2px 2px 6px 2px; --theme-badge-clip: polygon(5px 0,100% 0,100% calc(100% - 4px),calc(100% - 6px) 100%,0 100%,0 5px); }
  html[data-world='phenix-1873'] :is(.world-atmosphere,.workspace-animation-decor,.ambient,.cinema-atmosphere) { display:none !important; }
  html[data-world='phenix-1873'] .workspace { background:var(--world-background) !important; }
  html[data-world='phenix-1873'] :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card,dialog):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *)) {
    position:relative; isolation:isolate; overflow:visible !important;
    border:1px solid transparent !important; border-radius:2px !important;
    background:transparent !important; clip-path:none !important;
    transform:none !important; translate:none !important; animation:none !important;
    box-shadow:0 18px 35px -23px var(--phenix-shadow),0 3px 6px -3px var(--phenix-shadow),0 1px 0 color-mix(in srgb,var(--world-accent) 28%,transparent) !important;
  }
  html[data-world='phenix-1873'] :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card,dialog)::before {
    content:'' !important; position:absolute !important; display:block !important; inset:0 !important;
    width:auto !important; height:auto !important; z-index:-1 !important; pointer-events:none !important;
    border:1px solid var(--world-border) !important; border-radius:0 !important;
    background:var(--cine-material) !important; box-shadow:var(--cine-shadow) !important;
    clip-path:var(--cine-shape) !important; opacity:1 !important; transform:none !important; animation:none !important;
    transition:filter .3s,box-shadow .3s !important;
  }
  html[data-world='phenix-1873'] :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card)::after {
    content:'' !important; position:absolute !important; inset:4px 22px auto !important; height:2px !important; width:auto !important;
    border:0 !important; border-radius:0 !important; clip-path:none !important; pointer-events:none !important; z-index:0 !important;
    background:linear-gradient(90deg,transparent 8%,var(--world-border) 35%,var(--phenix-light) 50%,var(--world-border) 60%,transparent 85%) !important;
    background-size:240% 100% !important; opacity:.6 !important; transform:none !important;
  }
  html[data-world='phenix-1873'][data-decorative-animations='on'] :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble)::after { animation:phenix-edge-light 18s ease-in-out infinite !important; }
  html[data-world='phenix-1873'] :is(.panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row):nth-child(2n)::after { animation-delay:-15s !important; }
  html[data-world='phenix-1873'] :is(.panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row):nth-child(3n)::after { animation-delay:-12s !important; }
  html[data-world='phenix-1873'] :is(.panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row):is(:hover,:focus-within,.selected,[aria-selected='true'])::before {
    filter:brightness(1.035) !important;
    box-shadow:inset 3px 0 0 var(--world-accent),inset 0 2px var(--phenix-light),inset 0 -12px 32px -28px var(--phenix-light) !important;
  }
  html[data-world='phenix-1873'] .panel-head {
    background:linear-gradient(100deg,var(--world-elevated),transparent 85%) !important;
    border-bottom:1px solid color-mix(in srgb,var(--world-border) 45%,transparent) !important;
    border-radius:0 !important; margin-top:4px;
  }
  html[data-world='phenix-1873'] .panel-head::before { content:'' !important; width:26px !important; height:3px !important; inset:10px 16px auto auto !important; background:var(--world-border) !important; mask:none !important; border:0 !important; animation:none !important; }
  html[data-world='phenix-1873'] :is(h1,h2,h3,.room-number,.room-list-number,.summary-room-number,.strip-room-number>strong,.summary-room-main>strong,.room-card-head strong) { font-family:'Sentient',Georgia,serif !important; letter-spacing:.015em; }
  html[data-world='phenix-1873'] :is(.room-number,.room-list-number,.summary-room-number,.strip-room-number>strong,.summary-room-main>strong,.room-card-head strong) {
    color:var(--world-text) !important; text-shadow:0 1px 0 color-mix(in srgb,var(--phenix-light) 38%,transparent);
    border-bottom:1px solid color-mix(in srgb,var(--world-accent) 48%,transparent); padding-bottom:3px;
  }
  html[data-world='phenix-1873'] .cine-room:is(:hover,:focus-within) :is(.room-number,.room-list-number,.summary-room-number,.strip-room-number>strong,.summary-room-main>strong,.room-card-head strong) { text-shadow:1px 0 0 color-mix(in srgb,var(--phenix-light) 50%,transparent); }
  html[data-world='phenix-1873'] :is(.sidebar,.topbar,#mobile-nav-sheet,.mobile-nav-bar) {
    background:linear-gradient(120deg,var(--world-surface),var(--world-elevated)) !important;
    border:1px solid var(--world-border) !important; border-radius:2px !important;
    box-shadow:inset 4px 0 0 var(--world-surface),inset 5px 0 0 color-mix(in srgb,var(--world-border) 45%,transparent),0 14px 25px -22px var(--phenix-shadow) !important;
  }
  html[data-world='phenix-1873'] .topbar { overflow:visible !important; border-top:3px double var(--world-border) !important; border-bottom:3px double var(--world-border) !important; }
  html[data-world='phenix-1873'] .topbar::before {
    content:'' !important; position:absolute; inset:0; pointer-events:none; opacity:.1;
    background:repeating-linear-gradient(90deg,transparent 0 64px,var(--world-accent) 65px,transparent 66px),linear-gradient(120deg,transparent 30%,var(--phenix-light) 50%,transparent 65%);
    background-size:100% 100%,250% 100%;
  }
  html[data-world='phenix-1873'][data-decorative-animations='on'] .topbar::before { animation:phenix-edge-light 22s ease-in-out infinite !important; }
  html[data-world='phenix-1873'] .topbar::after { display:none !important; }
  html[data-world='phenix-1873'] .topbar h1::after { content:'BANGOR  /  1873'; display:block; margin-top:5px; font:500 9px/1.4 'Space Grotesk',system-ui,sans-serif; letter-spacing:.25em; color:var(--world-accent); }
  html[data-world='phenix-1873'] .nav-item { border-radius:1px !important; border:0 !important; border-bottom:1px solid color-mix(in srgb,var(--world-border) 25%,transparent) !important; transform:none !important; }
  html[data-world='phenix-1873'] .nav-item.active { background:linear-gradient(90deg,color-mix(in srgb,var(--phenix-light) 18%,var(--world-surface)),var(--world-surface)) !important; color:var(--world-text) !important; box-shadow:inset 0 -1px var(--world-border) !important; }
  html[data-world='phenix-1873'] :is(.button,button:not(.nav-item),select,input,textarea) { border-radius:2px 2px 6px 2px !important; }
  html[data-world='phenix-1873'] :is(.button,button:not(.nav-item)):not(.room-bed-marker) { clip-path:none !important; }
  html[data-world='phenix-1873'] .button { background:var(--world-elevated) !important; color:var(--world-text) !important; border:1px solid var(--world-border) !important; box-shadow:inset 0 1px 0 color-mix(in srgb,var(--phenix-light) 45%,transparent),0 2px 2px -1px var(--phenix-shadow) !important; }
  html[data-world='phenix-1873'] .button.primary { background:#542c31 !important; color:#fff2dc !important; border-color:#b19362 !important; }
  html[data-world='phenix-1873'][data-mode='light'] .button.primary { background:#f1e1c2 !important; color:#4f2631 !important; border-color:#88693f !important; }
  html[data-world='phenix-1873'] .button:hover { box-shadow:inset 2px 0 0 var(--world-accent),0 2px 2px -1px var(--phenix-shadow) !important; transform:none !important; }
  html[data-world='phenix-1873'] .button:active { translate:0 1px !important; box-shadow:inset 0 1px 3px var(--phenix-shadow) !important; }
  html[data-world='phenix-1873'] .cine-room-type { border-radius:2px 7px 2px 2px !important; color:var(--world-accent) !important; background:var(--world-elevated) !important; border:1px solid var(--world-border) !important; }
  html[data-world='phenix-1873'] .cine-room-type[data-room-type='arrival'] { border-left:3px solid var(--world-accent) !important; }
  html[data-world='phenix-1873'] .cine-room-type[data-room-type='checkout'] { border-right:3px solid var(--world-accent-secondary) !important; }
  html[data-world='phenix-1873'] .cine-room-type[data-room-type='stayover'] { border-bottom:3px double var(--world-border) !important; }
  html[data-world='phenix-1873'] .cine-workflow { clip-path:none !important; border-radius:2px 2px 7px 2px !important; border-style:double !important; border-width:3px !important; }
  html[data-world='phenix-1873'] .cine-workflow[data-workflow='finished'] { background:var(--room-finished-fill) !important; color:var(--room-finished) !important; border-color:var(--world-border) !important; }
  html[data-world='phenix-1873'] .cine-room[data-cine-workflow='finished']::after { animation:none !important; opacity:.5 !important; }
  html[data-world='phenix-1873'] .cine-room[data-cine-workflow='finished']::before { box-shadow:inset 0 2px var(--world-border),inset 0 -1px var(--world-border) !important; }
  html[data-world='phenix-1873'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient) { inset:12px auto 12px 0 !important; width:24% !important; border:0 !important; background:linear-gradient(100deg,transparent,var(--phenix-light),transparent) !important; opacity:.12; }
  html[data-world='phenix-1873'] .cine-room-ambient .stayoverAmbient { inset:8px auto auto 8px !important; height:2px !important; width:36px !important; background:var(--world-border) !important; opacity:.45; }
  html[data-world='phenix-1873'] .cine-room:has(.cine-dnd) .cine-room-ambient { opacity:.08 !important; }
  html[data-world='phenix-1873'] .cine-room:has(.cine-dnd)::after { right:40% !important; animation:none !important; }
  html[data-world='phenix-1873'] .cine-timing { border-radius:16px 3px 3px 16px !important; border:1px solid var(--world-border) !important; padding-left:9px !important; }
  html[data-world='phenix-1873'] .cine-timing::after { inset:2px auto 2px 2px !important; width:24px; border-radius:50% !important; border:1px solid transparent !important; border-top-color:var(--world-accent) !important; opacity:.8 !important; }
  html[data-world='phenix-1873'] .cine-inspection::after { inset:3px 4px auto auto !important; width:3px; height:3px; border:0 !important; background:var(--room-inspect); border-radius:50% !important; }
  html[data-world='phenix-1873'] .cine-notes { border-top:3px double var(--world-border) !important; border-radius:1px 1px 5px 1px !important; background:var(--world-elevated) !important; color:var(--world-text) !important; }
  html[data-world='phenix-1873'] .cine-notes:hover { translate:0 -1px; box-shadow:0 2px 0 var(--world-border); }
  html[data-world='phenix-1873'] .cine-room[data-room-transition-active='finished'] :is(.room-number,.room-list-number,.summary-room-number,.strip-room-number>strong,.summary-room-main>strong,.room-card-head strong) { animation:phenix-number-light 1580ms ease-in-out 1 !important; }
  html[data-world='phenix-1873'][data-decorative-animations='on'] .cine-room:not([data-room-transition-active]):is(:hover,:focus-within) .room-number { animation:phenix-number-light 900ms ease-in-out 1 !important; }
  html[data-world='phenix-1873'] .cine-transition-fx { border-radius:0 !important; z-index:0 !important; }
  html[data-world='phenix-1873'] .cine-transition-fx[data-effect='finished'] { animation:phenix-finish-lifetime var(--cine-fx-duration) linear both !important; }
  html[data-world='phenix-1873'] .cine-transition-fx:not([data-effect='finished']) :is(.phenix-fx-window,.phenix-fx-plan,.phenix-fx-dust) { display:none; }
  html[data-world='phenix-1873'] .cine-transition-fx[data-effect^='dnd'] .phenix-fx-light { background:linear-gradient(90deg,var(--phenix-burgundy),transparent); }
  html[data-world='phenix-1873'] .cine-transition-fx[data-effect='bed-made'] .phenix-fx-light { animation-name:phenix-bed-reveal; }
  html[data-world='phenix-1873'] :is(dialog,#today-summary-dialog) { max-height:calc(100dvh - 32px) !important; overflow:auto !important; background:var(--world-surface) !important; border:1px solid var(--world-border) !important; }
  html[data-world='phenix-1873'] dialog::before, html[data-world='phenix-1873'] dialog::after { display:none !important; }
  html[data-world='phenix-1873'] :is(.room-status-menu,.notification-panel) { background:var(--world-surface) !important; border:1px solid var(--world-border) !important; border-radius:2px !important; }
}
}

/* Four independently moving depths; only a handful of composited elements. */
.phenix-atmosphere { position:fixed; inset:0; overflow:hidden; pointer-events:none; contain:strict; z-index:0; color:var(--world-accent); }
.phenix-atmosphere *, .phenix-passage *, .phenix-fx-dust * { pointer-events:none !important; }
.phenix-atmosphere > * { position:absolute; }
.phenix-plans { inset:-8%; opacity:.085; background:repeating-linear-gradient(90deg,transparent 0 119px,currentColor 120px,transparent 121px),repeating-linear-gradient(0deg,transparent 0 169px,currentColor 170px,transparent 171px); transform:translate(var(--phenix-x,0px),var(--phenix-y,0px)); }
.phenix-plans::before { content:''; position:absolute; width:47%; height:56%; left:28%; top:19%; border:1px solid; border-top-width:3px; outline:1px solid; outline-offset:8px; background:repeating-linear-gradient(0deg,transparent 0 12px,currentColor 13px,transparent 14px) 15% 30%/45px 120px no-repeat; }
.phenix-plans::after { content:''; position:absolute; width:26%; height:32%; left:12%; top:44%; border:1px solid; border-radius:100px 100px 0 0; }
.phenix-plans i { position:absolute; right:12%; top:16%; width:6%; height:50%; border-left:1px solid; border-right:1px solid; background:repeating-linear-gradient(0deg,transparent 0 18px,currentColor 19px,transparent 20px); }
.phenix-elevation { inset:4% 4% -6%; display:flex; justify-content:space-between; gap:10%; opacity:.055; transform:translate(calc(var(--phenix-x,0px)*1.5),calc(var(--phenix-y,0px)*1.4)); }
.phenix-elevation i { display:block; width:24%; border:8px double; border-radius:44% 44% 0 0 / 18% 18% 0 0; box-shadow:12px 0 0 -8px currentColor,-12px 0 0 -8px currentColor; }
.phenix-elevation::after { content:''; position:absolute; inset:13% -8% auto; height:9px; border-block:1px solid; }
.phenix-light { inset:-30%; background:linear-gradient(115deg,transparent 23%,color-mix(in srgb,var(--phenix-light) 17%,transparent) 36%,transparent 49%); transform:translateX(-6%); }
.phenix-dust { inset:0; }
.phenix-dust i { position:absolute; width:2px; height:2px; border-radius:50%; background:var(--phenix-dust); opacity:.35; left:18%; top:25%; }
.phenix-dust i:nth-child(2) { left:72%; top:58%; animation-delay:-6s !important; }
.phenix-dust i:nth-child(3) { left:39%; top:76%; animation-delay:-12s !important; }
.phenix-dust i:nth-child(4) { left:87%; top:13%; animation-delay:-18s !important; }
.phenix-dust i:nth-child(5) { left:57%; top:41%; animation-delay:-24s !important; }
.phenix-dust i:nth-child(6) { left:24%; top:90%; animation-delay:-30s !important; }
.phenix-memory { opacity:0; color:var(--world-accent); }
.phenix-memory-window { right:8%; top:13%; width:clamp(90px,15vw,190px); height:45%; border:2px double; border-radius:48% 48% 0 0 / 23% 23% 0 0; }
.phenix-memory-window::before { content:''; position:absolute; inset:8px; border:1px solid; border-radius:inherit; background:linear-gradient(90deg,transparent 49%,currentColor 50%,transparent 51%),linear-gradient(0deg,transparent 65%,currentColor 66%,transparent 67%); }
.phenix-memory-window i { position:absolute; inset:0 -20% -30%; background:linear-gradient(115deg,transparent 28%,var(--phenix-light) 50%,transparent 75%); opacity:.3; }
.phenix-memory-stairs { left:12%; bottom:15%; width:120px; height:130px; background:repeating-linear-gradient(0deg,transparent 0 12px,currentColor 13px,transparent 14px); border-inline:1px solid; transform:skewY(-12deg); }
.phenix-memory-measure { top:18%; left:40%; width:26%; height:8px; border-block:1px solid; background:repeating-linear-gradient(90deg,currentColor 0 1px,transparent 1px 20px); }
.phenix-memory-tag { left:35%; top:64%; width:24px; height:49px; border:1px solid; border-radius:12px 12px 3px 3px; rotate:16deg; }
.phenix-memory-tag::after { content:''; position:absolute; width:4px; height:4px; border:1px solid; border-radius:50%; top:5px; left:9px; }
.phenix-distant-window { right:21%; top:7%; width:23px; height:53px; border:1px solid var(--world-border); border-radius:12px 12px 0 0; background:var(--phenix-light); opacity:0; }
html[data-world='phenix-1873'][data-background-animations='on'] .phenix-light { animation:phenix-sunlight 24s ease-in-out infinite alternate !important; }
html[data-world='phenix-1873'][data-background-animations='on'] .phenix-dust i { animation:phenix-dust 38s linear infinite !important; }
html[data-world='phenix-1873'][data-background-animations='on'] .phenix-memory-window { animation:phenix-memory 83s linear infinite !important; }
html[data-world='phenix-1873'][data-background-animations='on'] .phenix-memory-stairs { animation:phenix-memory 127s 23s linear infinite !important; }
html[data-world='phenix-1873'][data-background-animations='on'] .phenix-memory-measure { animation:phenix-memory 67s 12s linear infinite !important; }
html[data-world='phenix-1873'][data-background-animations='on'] .phenix-memory-tag { animation:phenix-memory 223s linear infinite !important; }
html[data-world='phenix-1873'][data-background-animations='on'][data-mode='dark'] .phenix-distant-window { animation:phenix-distant 151s linear infinite !important; }
.phenix-directory-light { position:fixed; z-index:2001; pointer-events:none; background:var(--world-accent); box-shadow:0 0 7px color-mix(in srgb,var(--phenix-light) 60%,transparent); }
.phenix-passage { position:fixed; inset:0; z-index:4; pointer-events:none; overflow:hidden; contain:strict; }
.phenix-passage i { position:absolute; inset:-10%; animation-duration:680ms; animation-timing-function:ease-in-out; animation-fill-mode:both; }
.phenix-passage-shadow { background:linear-gradient(110deg,transparent 30%,color-mix(in srgb,var(--phenix-shadow) 28%,transparent) 48%,transparent 64%); animation-name:phenix-passage; }
.phenix-passage-plan { opacity:0; background:repeating-linear-gradient(90deg,transparent 0 89px,var(--world-border) 90px,transparent 91px),repeating-linear-gradient(0deg,transparent 0 159px,var(--world-border) 160px,transparent 161px); animation-name:phenix-plan-reveal; }
.phenix-passage-light { background:linear-gradient(110deg,transparent 40%,color-mix(in srgb,var(--phenix-light) 20%,transparent) 55%,transparent 68%); animation-name:phenix-passage; animation-delay:60ms; }
.phenix-entering i { animation-duration:900ms; }
.phenix-entering { animation:phenix-material-resolve 900ms ease-out both; }
.phenix-entering .phenix-passage-plan { animation-name:phenix-plan-draw; }
.phenix-entering .phenix-passage-shadow { background:linear-gradient(0deg,transparent,#77777724,transparent); }
.phenix-entering .phenix-passage-light { animation-name:phenix-enter; }
html:has(dialog[open],.room-status-menu:not([hidden]),#mobile-nav-sheet:not([hidden])) .phenix-passage { display:none; }
.phenix-fx-plan { inset:0; background:repeating-linear-gradient(90deg,transparent 0 29px,var(--world-border) 30px,transparent 31px),repeating-linear-gradient(0deg,transparent 0 39px,var(--world-border) 40px,transparent 41px); animation:phenix-plan-reveal var(--cine-fx-duration) ease-in-out both; }
.phenix-fx-window { right:9%; top:7%; width:20%; height:84%; border:1px solid var(--world-accent); border-radius:48% 48% 0 0 / 25% 25% 0 0; background:linear-gradient(90deg,transparent 48%,var(--world-border) 50%,transparent 52%); animation:phenix-window-reveal var(--cine-fx-duration) ease-in-out both; }
.phenix-fx-light { inset:-10% -30%; background:linear-gradient(110deg,transparent 33%,color-mix(in srgb,var(--phenix-light) 32%,transparent) 48%,transparent 65%); animation:phenix-passage var(--cine-fx-duration) ease-in-out both; }
.phenix-fx-brass { inset:8px; border-top:2px solid var(--world-accent); border-right:1px solid var(--world-border); clip-path:polygon(0 0,65% 0,65% 3px,100% 3px,100% 55%,calc(100% - 3px) 55%,calc(100% - 3px) 3px,0 3px); animation:phenix-window-reveal var(--cine-fx-duration) ease-in-out both; }
.phenix-fx-dust { inset:0; }
.phenix-fx-dust i { position:absolute; left:64%; top:35%; width:2px; height:2px; border-radius:50%; background:var(--world-accent); animation:phenix-finish-dust var(--cine-fx-duration) ease-in-out both; }
.phenix-fx-dust i:nth-child(2) { left:80%; top:70%; }
.phenix-fx-dust i:nth-child(3) { left:52%; top:55%; }
.phenix-fx-dust i:nth-child(4) { left:92%; top:24%; }
@keyframes phenix-edge-light { 0%,100% { background-position:100% 0; } 50% { background-position:0 0; } }
@keyframes phenix-sunlight { from { transform:translateX(-7%) rotate(-2deg); opacity:.55; } to { transform:translateX(9%) rotate(3deg); opacity:1; } }
@keyframes phenix-dust { 0% { transform:translate(0,12px); opacity:0; } 25% { opacity:.3; } 52% { opacity:.85; } 70% { opacity:.22; } 100% { transform:translate(50px,-70px); opacity:0; } }
@keyframes phenix-memory { 0%,65%,90%,100% { opacity:0; } 73% { opacity:.09; } 78%,81% { opacity:.25; } 85% { opacity:.06; } }
@keyframes phenix-distant { 0%,60%,92%,100% { opacity:0; } 73%,82% { opacity:.13; } }
@keyframes phenix-arrival { 0%,100% { transform:translateX(-70%); opacity:0; } 30% { opacity:.12; } 65% { transform:translateX(120%); opacity:.08; } 90% { transform:translateX(200%); opacity:0; } }
@keyframes phenix-number-light { 0%,100% { text-shadow:0 1px transparent; } 40%,65% { text-shadow:1px 0 var(--phenix-light); } }
@keyframes phenix-clock { to { rotate:360deg; } }
@keyframes phenix-service { 0%,100% { opacity:.25; } 50% { opacity:1; } }
@keyframes phenix-note { 0%,100% { box-shadow:inset 0 0 transparent; } 20% { box-shadow:inset 2px 0 var(--world-accent); } 45% { box-shadow:inset 0 2px var(--world-accent); } 70% { box-shadow:inset -2px 0 var(--world-accent); } }
@keyframes phenix-badge-reveal { 0%,100% { box-shadow:inset 0 0 transparent; } 35% { box-shadow:inset 0 2px var(--phenix-light); } 65% { box-shadow:inset -3px 0 var(--phenix-light); } }
@keyframes phenix-press { 0%,100% { translate:0 0; } 35% { translate:0 1px; box-shadow:inset 0 1px 4px var(--phenix-shadow); } }
@keyframes phenix-passage { 0% { transform:translateX(-70%); opacity:0; } 25%,65% { opacity:1; } 100% { transform:translateX(70%); opacity:0; } }
@keyframes phenix-enter { 0% { transform:translateY(-75%); opacity:0; } 30%,65% { opacity:1; } 100% { transform:translateY(75%); opacity:0; } }
@keyframes phenix-material-resolve { from { backdrop-filter:saturate(.4); } to { backdrop-filter:saturate(1); } }
@keyframes phenix-plan-draw { 0% { opacity:0; clip-path:inset(0 100% 100% 0); } 40% { opacity:.18; } 70% { opacity:.1; clip-path:inset(0); } 100% { opacity:0; clip-path:inset(0); } }
@keyframes phenix-plan-reveal { 0%,100% { opacity:0; } 30%,55% { opacity:.13; } }
@keyframes phenix-window-reveal { 0%,15%,100% { opacity:0; } 40%,62% { opacity:.55; } }
@keyframes phenix-finish-dust { 0%,25%,100% { opacity:0; transform:translate(0,0); } 50% { opacity:.8; } 90% { transform:translate(10px,-16px); opacity:0; } }
@keyframes phenix-bed-reveal { 0% { transform:translateX(-50%); opacity:0; } 40% { opacity:1; } 100% { transform:translateX(50%); opacity:0; } }
@keyframes phenix-finish-lifetime { 0%,99% { visibility:visible; } 100% { visibility:hidden; } }
@media (prefers-reduced-motion: reduce) { .phenix-atmosphere *, .phenix-passage *, .phenix-directory-light { animation:none !important; } .phenix-passage { display:none !important; } }
html[data-background-animations='off'] .phenix-atmosphere * { animation:none !important; }
html[data-decorative-animations='off'] .phenix-passage { display:none !important; }
html.app-page-hidden :is(.phenix-atmosphere *,.phenix-passage *) { animation-play-state:paused !important; }
@media print { .phenix-atmosphere,.phenix-passage,.phenix-directory-light { display:none !important; } }


/* Source: phenix-history.css */
/* Original survey geometry; no literal map, bank records or invented room data. */
@media screen {
  html[data-world='phenix-1873'] { --ph-river:#637580; --ph-river-light:#8b9d9f; }
  html[data-world='phenix-1873'][data-mode='dark'] { --ph-river:#b1bfca; --ph-river-light:#d5e2ec; }
  .phenix-history { position:absolute; inset:0; pointer-events:none; color:var(--world-accent); }
  .phenix-history *, .ph-card-history *, .ph-number-polish { pointer-events:none !important; }
  .phenix-history > div, .phenix-history svg { position:absolute; inset:0; width:100%; height:100%; }
  .phenix-history svg { stroke:currentColor; stroke-width:.85; }
  .ph-survey { opacity:.075; transform:translate(calc(var(--phenix-x,0px)*.6),calc(var(--phenix-y,0px)*.6)); }
  .ph-parcels { stroke-width:.6; stroke-dasharray:70 4; }
  .ph-floor-divisions { stroke-width:1.4; }
  .ph-time-layer { opacity:.24; clip-path:polygon(-35% 0,-23% 0,-33% 100%,-45% 100%); }
  .ph-time-layer svg { stroke:var(--world-accent-secondary); stroke-width:1.4; }
  .ph-river { color:var(--ph-river); opacity:.07; }
  .ph-river svg > path:first-child { stroke-width:2; }
  .ph-river-reflection { stroke:var(--ph-river-light); stroke-width:3; stroke-dasharray:2 98; stroke-dashoffset:100; opacity:0; }
  .ph-old-floor,.ph-ledger { opacity:0; }
  .ph-old-floor svg { stroke-width:1.1; }
  .ph-vault-plan { visibility:hidden; }
  [data-vault-visible] .ph-vault-plan { visibility:visible; }
  .phenix-history .ph-date-fragments { inset:24% auto auto 44%; width:64px; height:18px; display:flex; gap:2px; opacity:0; font:12px/1 'Space Mono',monospace; letter-spacing:2px; }
  .ph-date-fragments i { font-style:normal; display:block; transform:translate(12px,-9px) rotate(-12deg); }
  .ph-date-fragments i:nth-child(2n) { transform:translate(-9px,11px) rotate(16deg); }
  .ph-date-fragments i { position:relative; width:12px; height:18px; }
  .phenix-history .ph-date-fragments svg { stroke-width:1; overflow:visible; }
  .ph-date-fragments path { transform:translate(var(--ph-dx),var(--ph-dy)); }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-date-fragments path { animation:ph-date-strokes 293s linear infinite !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-memory-active .ph-date-fragments path { animation:ph-memory-strokes 18s ease-in-out both !important; }
  .ph-history-beam { background:linear-gradient(110deg,transparent 32%,color-mix(in srgb,var(--phenix-light) 16%,transparent) 42%,transparent 54%); opacity:0; }
  .ph-night-windows i { position:absolute; width:9px; height:35px; border:1px solid var(--world-border); background:var(--phenix-light); opacity:0; left:9%; top:18%; }
  .ph-night-windows i:nth-child(2) { left:11%; top:54%; }
  .ph-night-windows i:nth-child(3) { left:85%; top:32%; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-time-layer { animation:ph-time-band 173s linear infinite !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-river { animation:ph-river-memory 137s linear infinite !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-river-reflection { animation:ph-river-glint 137s linear infinite !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-old-floor { animation:ph-floor-memory 211s linear infinite !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-date-fragments { animation:ph-date-memory 293s linear infinite !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-date-fragments i { animation:ph-date-align 293s linear infinite !important; }
  html[data-world='phenix-1873'][data-background-animations='on'][data-mode='dark'] .ph-night-windows i { animation:ph-window-life 167s linear infinite !important; }
  html[data-world='phenix-1873'][data-background-animations='on'][data-mode='dark'] .ph-night-windows i:nth-child(2) { animation-duration:229s !important; animation-delay:-90s !important; }
  html[data-world='phenix-1873'][data-background-animations='on'][data-mode='dark'] .ph-night-windows i:nth-child(3) { animation-duration:193s !important; animation-delay:-45s !important; }
  /* A bounded eighteen-second shared memory, scheduled only while visible.
     All state below is decoration. Content is never faded or transformed. */
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-memory-active .ph-survey { animation:ph-memory-survey 18s ease-in-out both !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-memory-active :is(.ph-old-floor,.ph-ledger) { animation:ph-memory-layer 18s ease-in-out both !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-memory-active .ph-river { animation:ph-memory-river 18s ease-in-out both !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-memory-active .ph-river-reflection { animation:ph-memory-reflection 18s ease-in-out both !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-memory-active .ph-history-beam { animation:ph-memory-light 18s ease-in-out both !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-memory-active .ph-date-fragments { animation:ph-memory-layer 18s ease-in-out both !important; }
  html[data-world='phenix-1873'][data-background-animations='on'] .ph-memory-active .ph-date-fragments i { transform:none; animation:none !important; }
  .ph-memory-active .phenix-dust { opacity:.55; transition:opacity 2s; }
  .ph-card-history { position:absolute; inset:0; pointer-events:none; overflow:hidden; clip-path:var(--cine-shape); z-index:0; }
  html[data-world='phenix-1873'] [data-phenix-floor] { position:relative; isolation:isolate; }
  .ph-timber-mark { position:absolute; right:12px; bottom:9px; width:8px; height:6px; opacity:.4; border-left:1px solid var(--world-border); border-right:1px solid var(--world-border); }
  [data-phenix-floor='2'] .ph-timber-mark { border-right:0; border-top:1px solid var(--world-border); transform:skewX(-22deg); }
  [data-phenix-floor='3'] .ph-timber-mark { width:6px;height:6px;border:1px solid var(--world-border);border-radius:50%; }
  [data-phenix-floor='4'] .ph-timber-mark { border-right:0;border-bottom:1px solid var(--world-border);box-shadow:3px -2px 0 -2px var(--world-border); }
  .ph-register-rule { position:absolute; right:27px; bottom:12px; width:24px; height:1px; background:var(--world-border); opacity:.24; }
  [data-phenix-memory] .ph-register-rule { animation:ph-card-memory 18s calc(var(--ph-order,0)*.25s) ease-in-out both; }
  .ph-vault-memory { position:absolute; width:min(200px,70%); aspect-ratio:1; right:-15px; top:12px; opacity:0; pointer-events:none; }
  .ph-vault-circle,.ph-vault-radials,.ph-vault-pulse { position:absolute; inset:12%; border:1px solid var(--world-border); border-radius:50%; }
  .ph-vault-circle { box-shadow:inset 0 0 0 10px color-mix(in srgb,var(--world-accent) 4%,transparent); outline:1px solid var(--world-border);outline-offset:-17px; }
  .ph-vault-radials { inset:5%; background:repeating-conic-gradient(from 5deg,var(--world-border) 0deg 1deg,transparent 1deg 45deg); mask:radial-gradient(circle,transparent 57%,black 58% 62%,transparent 63%); border:0; }
  .ph-vault-pulse { border-color:var(--world-accent) transparent transparent; opacity:0; }
  [data-phenix-vault] :has(> .ph-number-polish) { position:relative; }
  .ph-number-polish { position:absolute; left:0; top:2px; width:100%; height:calc(100% - 4px); background:linear-gradient(110deg,transparent 35%,color-mix(in srgb,var(--phenix-light) 25%,transparent) 49%,transparent 64%); background-size:240% 100%; opacity:0; }
  /* Rare per-card history only advances while the exact room is on screen. */
  html[data-world='phenix-1873'][data-background-animations='on'] [data-phenix-vault][data-phenix-visible]:not([data-cine-workflow='finished']) .ph-vault-memory { animation:ph-vault-memory 197s linear infinite; }
  html[data-world='phenix-1873'][data-decorative-animations='on'] [data-phenix-vault][data-phenix-visible]:not([data-cine-workflow='finished']) .ph-number-polish { animation:ph-polish-rare 181s linear infinite; }
  html[data-world='phenix-1873'][data-decorative-animations='on'] [data-phenix-vault]:is(:hover,:focus-within,.selected,[aria-selected='true']) .ph-vault-memory { animation:ph-vault-select 800ms ease-out both !important; }
  html[data-world='phenix-1873'][data-decorative-animations='on'] [data-phenix-vault]:is(.selected,[aria-selected='true']) .ph-vault-pulse { animation:ph-vault-arc 950ms ease-out both; }
  html[data-world='phenix-1873'][data-background-animations='on'] [data-phenix-vault][data-phenix-visible][data-phenix-memory] .ph-vault-memory { animation:ph-memory-vault 18s ease-in-out both !important; }
  html[data-world='phenix-1873'][data-decorative-animations='on'] [data-phenix-vault][data-room-transition-active='finished'] .ph-vault-memory { animation:ph-vault-secured 1580ms ease-in-out both !important; }
  html[data-world='phenix-1873'][data-decorative-animations='on'] [data-phenix-vault][data-room-transition-active='finished'] .ph-vault-radials { animation:ph-vault-align 1580ms ease-in-out both; }
  html[data-world='phenix-1873'][data-decorative-animations='on'] [data-phenix-vault][data-room-transition-active='finished'] .ph-vault-pulse { animation:ph-vault-inward 1580ms ease-in-out both; }
  [data-phenix-vault]:not([data-phenix-visible]) :is(.ph-vault-memory,.ph-vault-memory *,.ph-number-polish) { animation-play-state:paused !important; visibility:hidden; }
  html[data-world='phenix-1873'] .sidebar nav { background:repeating-linear-gradient(102deg,transparent 0 83px,color-mix(in srgb,var(--world-border) 8%,transparent) 84px,transparent 85px); }
  html[data-world='phenix-1873'] :is(.eyebrow,.checkout-bed-summary-label,.myrooms-bed-summary-label) { font-variant-numeric:tabular-nums; letter-spacing:.16em; }
  html[data-world='phenix-1873'] :is(.today-checkout-floor-head,.room-list-floor-head,.board-floor-head,.maintenance-room-floor-divider,.housekeeper-floor-separator) { border-left:3px double var(--world-border); box-shadow:inset 6px 0 var(--world-surface); padding-left:12px; }
  html[data-world='phenix-1873'] .empty-state { position:relative; isolation:isolate; }
  html[data-world='phenix-1873'] .empty-state::after { content:''; position:absolute; inset:15% 30%; pointer-events:none; z-index:-1; border:1px solid var(--world-border); border-right-style:dashed; opacity:.1; background:linear-gradient(90deg,transparent 60%,var(--world-border) 61%,transparent 62%); }
  html[data-world='phenix-1873'][data-decorative-animations='on'] .empty-state:not(:has(.world-loading-indicator))::after { animation:ph-empty-plan 12s ease-in-out 1; }
  .phenix-history::after { content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 55% 45%,color-mix(in srgb,var(--phenix-light) 24%,transparent),transparent 65%);opacity:0;transition:opacity 700ms; }
  html[data-world='phenix-1873']:has(dialog[open]) .phenix-history::after { opacity:1; }
  .ph-loading-complete { position:fixed; width:22px; height:22px; pointer-events:none; z-index:2002; border:1px solid var(--world-border); animation:ph-loading-settle .6s ease-out both; }
  .ph-loading-complete::after { content:''; position:absolute; width:3px;height:3px;background:var(--world-accent);animation:ph-loading-point .6s linear both; }
}
/* Earlier accessibility and visibility layers still take precedence. */
@layer phenix1873 {
@media screen {
  html[data-world='phenix-1873'] [data-phenix-vault]::before { border-bottom:3px double var(--world-border) !important;box-shadow:inset 0 2px var(--world-border),inset 0 -4px color-mix(in srgb,var(--world-accent) 12%,transparent) !important; }
  html[data-world='phenix-1873'] [data-phenix-vault]:is(:hover,:focus-within) { box-shadow:0 20px 32px -20px var(--phenix-shadow),0 4px 8px -3px var(--phenix-shadow) !important; }
  html[data-world='phenix-1873'] [data-phenix-vault] :is(.room-number,.summary-room-number,.room-list-number,.strip-room-number>strong) { text-shadow:0 1px color-mix(in srgb,var(--world-accent) 45%,transparent),0 -1px var(--world-deep); }
  html[data-world='phenix-1873'] [data-phenix-vault][data-cine-workflow='finished']:not([data-room-transition-active]) .ph-vault-memory { animation:none !important;opacity:.075 !important; }
  html[data-world='phenix-1873'] [data-phenix-vault][data-cine-workflow='finished']:not([data-room-transition-active]) :is(.ph-vault-memory *,.ph-number-polish) { animation:none !important; }
  html[data-world='phenix-1873'] [data-phenix-vault]:not(.cine-room):has(.status-badge.finished) :is(.ph-vault-memory,.ph-vault-memory *,.ph-number-polish) { animation:none !important; }
  html[data-world='phenix-1873'][data-decorative-animations='on'] .cine-room:not([data-room-transition-active]):not([data-cine-workflow='finished']):is(:hover,:focus-within) :is(.room-number,.room-list-number,.summary-room-number,.strip-room-number>strong,.summary-room-main>strong) { animation:phenix-number-light 900ms ease-in-out 1 !important; }
  html[data-world='phenix-1873'] .cine-room[data-cine-workflow='finished']:not([data-room-transition-active]) :is(.room-number,.room-list-number,.summary-room-number,.strip-room-number>strong,.summary-room-main>strong,.room-card-head strong) { animation:none !important; }
  html[data-world='phenix-1873'] .world-loading-indicator { width:22px;height:22px;border:0 !important;border-radius:0 !important;background:none !important;mask:none !important;transform:none !important;animation:none !important;position:relative; }
  html[data-world='phenix-1873'] .world-loading-indicator::before { content:'';position:absolute;inset:0;border:1px solid var(--world-accent);border-radius:0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%); }
  html[data-world='phenix-1873'] .world-loading-indicator::after { content:'';position:absolute;inset:6px;border-left:1px solid var(--world-border);border-bottom:1px solid var(--world-border); }
  html[data-world='phenix-1873'][data-decorative-animations='on'] .world-loading-indicator::before { animation:ph-loading-plan 2s linear infinite !important; }
  html[data-world='phenix-1873'] :is(.today-summary-dialog-head,.ops-dialog>header,.cinematic-room-notes header) { background:repeating-linear-gradient(90deg,transparent 0 39px,color-mix(in srgb,var(--world-border) 8%,transparent) 40px,transparent 41px);border-bottom:1px solid var(--world-border);padding-bottom:12px; }
}
}
@keyframes ph-time-band { 0%,69% { clip-path:polygon(-35% 0,-23% 0,-33% 100%,-45% 100%); } 86%,100% { clip-path:polygon(135% 0,147% 0,137% 100%,125% 100%); } }
@keyframes ph-river-memory { 0%,65%,88%,100% { opacity:.055; } 72%,80% { opacity:.22; } }
@keyframes ph-river-glint { 0%,66% { opacity:0;stroke-dashoffset:88; } 70% { opacity:.75; } 80% { opacity:.55; } 84%,100% { opacity:0;stroke-dashoffset:35; } }
@keyframes ph-floor-memory { 0%,60%,92%,100% { opacity:0; } 74%,81% { opacity:.15; } }
@keyframes ph-date-memory { 0%,89%,97%,100% { opacity:0; } 93%,94% { opacity:.21; } }
@keyframes ph-date-align { 0%,89%,98%,100% { translate:5px -6px;rotate:12deg; } 93%,94% { translate:0 0;rotate:0deg;transform:none; } }
@keyframes ph-date-strokes { 0%,89%,98%,100% { transform:translate(var(--ph-dx),var(--ph-dy)); } 93%,94% { transform:none; } }
@keyframes ph-memory-strokes { 0%,12%,100% { transform:translate(var(--ph-dx),var(--ph-dy)); } 40%,65% { transform:none; } }
@keyframes ph-window-life { 0%,35%,80%,100% { opacity:0; } 52%,65% { opacity:.16; } }
@keyframes ph-memory-survey { 0%,100% { opacity:.075; } 25%,60% { opacity:.25; } }
@keyframes ph-memory-layer { 0%,12%,100% { opacity:0; } 40%,65% { opacity:.19; } }
@keyframes ph-memory-river { 0%,100% { opacity:.06; } 35%,68% { opacity:.24; } }
@keyframes ph-memory-reflection { 0%,25% { opacity:0;stroke-dashoffset:95; } 38%,58% { opacity:.7; } 78%,100% { opacity:0;stroke-dashoffset:24; } }
@keyframes ph-memory-light { 0% { transform:translateX(-30%);opacity:0; } 25%,55% { opacity:1; } 100% { transform:translateX(40%);opacity:0; } }
@keyframes ph-card-memory { 0%,25%,90%,100% { opacity:.24; } 55% { opacity:.9; } }
@keyframes ph-vault-memory { 0%,76%,94%,100% { opacity:0; } 83%,88% { opacity:.16; } }
@keyframes ph-polish-rare { 0%,85%,96%,100% { opacity:0;background-position:100% 0; } 88% { opacity:.65;background-position:100% 0; } 93% { opacity:.65;background-position:0 0; } }
@keyframes ph-vault-select { from { opacity:0; } to { opacity:.16; } }
@keyframes ph-vault-arc { 0% { rotate:-60deg;opacity:0; } 40% { opacity:.6; } 100% { rotate:50deg;opacity:0; } }
@keyframes ph-memory-vault { 0%,25%,100% { opacity:0; } 48%,68% { opacity:.2; } }
@keyframes ph-vault-secured { 0%,55% { opacity:0; } 76%,88% { opacity:.28; } 100% { opacity:.075; } }
@keyframes ph-vault-align { 0%,55% { rotate:-5deg; } 78%,100% { rotate:0deg; } }
@keyframes ph-vault-inward { 0%,65% { opacity:0;scale:1.12; } 78% { opacity:.5; } 100% { opacity:0;scale:.65; } }
@keyframes ph-empty-plan { 0%,100% { opacity:.06; } 50% { opacity:.15; } }
@keyframes ph-loading-plan { 0% { clip-path:polygon(0 0,0 0,0 0); } 25% { clip-path:polygon(0 0,100% 0,100% 1px,0 1px); } 50% { clip-path:polygon(0 0,100% 0,100% 100%); } 75%,100% { clip-path:polygon(0 0,100% 0,100% 100%,0 100%); } }
@keyframes ph-loading-settle { 0%,60% { opacity:.7; } 100% { opacity:0; } }
@keyframes ph-loading-point { 0% { left:0;top:0; } 35% { left:19px;top:0; } 70%,100% { left:19px;top:19px; } }
html.app-page-hidden :is(.phenix-history *,.ph-card-history *,.ph-number-polish) { animation-play-state:paused !important; }
html[data-background-animations='off'] .phenix-history * { animation:none !important; }
html[data-decorative-animations='off'] :is(.ph-card-history *,.ph-number-polish) { animation:none !important; }
@media (prefers-reduced-motion:reduce) { .phenix-history *, .ph-card-history *, .ph-number-polish,.ph-loading-complete { animation:none !important; } }
@media print { .phenix-history,.ph-card-history,.ph-number-polish,.ph-loading-complete { display:none !important; } }


/* Source: lost-transmission.css */
/* Lost Transmission: every moving pixel belongs to a receiver/decorative layer.
   Surfaces never transform or clip their interactive contents. */
@layer lost-transmission {
@media screen {
  html[data-world='lost-transmission'][data-theme][data-mode] {
    --tx-amber:var(--world-accent); --tx-cyan:var(--world-accent-secondary);
    --tx-green:var(--world-success);
    --tx-shape:polygon(0 9px,26% 9px,calc(26% + 9px) 0,calc(100% - 24px) 0,calc(100% - 24px) 9px,100% 9px,100% 69%,calc(100% - 6px) calc(69% + 6px),calc(100% - 6px) calc(100% - 12px),62% calc(100% - 12px),calc(62% - 10px) 100%,8px 100%,8px 36%,0 calc(36% - 8px));
    --theme-badge-radius:2px; --theme-badge-clip:none;
    --cine-accent:var(--tx-cyan); --cine-secondary:var(--tx-amber);
    --cine-shape:var(--tx-shape); --cine-material:linear-gradient(125deg,var(--world-elevated),var(--world-surface));
  }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(.world-atmosphere,.cinema-atmosphere) { display:none !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] .view { animation:none !important; }
  .transmission-atmosphere { position:fixed !important; inset:0 !important; width:auto !important; height:auto !important; z-index:0 !important; pointer-events:none; overflow:hidden; contain:strict; background:radial-gradient(ellipse at 70% 42%,color-mix(in srgb,var(--tx-cyan) 5%,transparent),transparent 66%); }
  .transmission-atmosphere svg { width:100%; height:100%; stroke:var(--tx-cyan); stroke-width:1; overflow:visible; }
  .tx-grid { opacity:.09; }
  .tx-wave { opacity:.2; }
  .tx-mid { opacity:.15; stroke:var(--tx-amber); }
  .tx-near { opacity:.08; stroke:var(--tx-green); }
  .tx-telemetry { opacity:.28; stroke:var(--tx-green); }
  .tx-unknown { opacity:0; stroke:var(--tx-cyan); transform-origin:center; transform-box:fill-box; }
  .transmission-atmosphere > i { position:absolute; left:0; width:100%; pointer-events:none; }
  .tx-carrier { top:50.5%; height:1px; background:linear-gradient(90deg,transparent,var(--tx-amber),var(--tx-cyan),transparent); opacity:.12; }
  .tx-interference { top:44%; height:8%; opacity:0; background:repeating-linear-gradient(0deg,transparent 0 9px,var(--tx-cyan) 10px,transparent 11px 19px); }
  .tx-response-line { top:var(--tx-response-y,50%); height:1px; background:linear-gradient(90deg,transparent 15%,var(--tx-cyan),transparent 80%); opacity:0; transition:opacity .4s; }
  .tx-response .tx-response-line { opacity:.45; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-background-animations='on'] .tx-far { animation:tx-distance 91s ease-in-out infinite alternate !important; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-background-animations='on'] .tx-mid { animation:tx-distance 57s ease-in-out infinite alternate-reverse !important; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-background-animations='on'] .tx-near { animation:tx-distance 73s ease-in-out infinite alternate !important; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-background-animations='on'] .tx-wave path { transform-origin:center; transform-box:fill-box; animation:tx-amplitude 37s ease-in-out infinite !important; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-background-animations='on'] .tx-mid path { animation-delay:-17s; }
  .transmission-atmosphere[data-event] .tx-carrier { animation:tx-acquisition 9s ease-in-out both !important; }
  .transmission-atmosphere[data-event='strength'] .tx-telemetry { animation:tx-acquisition 9s ease-in-out both !important; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-background-animations='on'] .transmission-atmosphere[data-event='sync'] .tx-wave { animation:tx-synchronize 11s ease-in-out both !important; }
  .transmission-atmosphere[data-event='repeater'] .tx-carrier { animation:tx-three-bursts 9s ease-out both !important; }
  .transmission-atmosphere[data-event='tracking'] .tx-carrier { animation:tx-tracking 11s ease-in-out both !important; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-background-animations='on'] .transmission-atmosphere[data-event='lost'] .tx-wave { animation:tx-synchronize 18s ease-in-out both !important; }
  .transmission-atmosphere[data-event='lost'] .tx-unknown { animation:tx-almost-resolved 18s ease-in-out both !important; }
  .transmission-atmosphere[data-event='lost'] .tx-interference { animation:tx-signal-break 18s steps(1,end) both !important; }
  .transmission-atmosphere[data-event='lost'] :is(.tx-telemetry,.tx-carrier) { animation:tx-acquisition 18s ease-in-out both !important; }

  /* High-specificity late adapter overrides old card-shape/glow families. */
  html[data-world='lost-transmission'][data-theme][data-mode] :is(#app-view,dialog) :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card,.hk-room-chip,.maintenance-room-overview):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *)) {
    position:relative; isolation:isolate; background:transparent !important;
    border:1px solid transparent !important; border-radius:0 !important;
    clip-path:none !important; box-shadow:none !important;
    transform:none !important; translate:none !important; animation:none !important;
  }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(#app-view,dialog) :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card,.hk-room-chip,.maintenance-room-overview):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *))::before {
    content:'' !important; display:block !important; position:absolute !important; inset:0 !important;
    width:auto !important; height:auto !important; z-index:-1 !important; pointer-events:none !important;
    background:linear-gradient(125deg,color-mix(in srgb,var(--world-elevated) 75%,var(--world-surface)),var(--world-surface) 42%) !important;
    border:1px solid var(--world-border) !important; border-left:3px solid var(--tx-cyan) !important;
    border-bottom:2px solid var(--world-border) !important; border-radius:0 !important;
    clip-path:var(--tx-shape) !important; mask:none !important;
    opacity:1 !important; animation:none !important; transform:none !important; box-shadow:none !important;
    transition:border-color .22s !important;
  }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(#app-view,dialog) :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card,.hk-room-chip,.maintenance-room-overview):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *))::after {
    content:'' !important; display:block !important; position:absolute !important;
    inset:2px 30px auto 29% !important; width:auto !important; height:5px !important;
    z-index:0 !important; pointer-events:none !important; border:0 !important; border-radius:0 !important;
    clip-path:none !important; mask:none !important; transform:none !important;
    background:linear-gradient(90deg,var(--tx-cyan),transparent 48%,transparent 84%,var(--tx-amber) 84% 86%,transparent 86% 90%,var(--tx-green) 90% 92%,transparent 92%) !important;
    opacity:.45; box-shadow:none !important; animation:none !important;
  }
  html[data-world='lost-transmission'][data-theme][data-mode][data-decorative-animations='on'] :is(#app-view,dialog) :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row)::after { animation:transmission-strength 37s ease-in-out infinite !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(#app-view,dialog) :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card,.hk-room-chip,.maintenance-room-overview):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *)):nth-child(2n)::after { animation-delay:-13s !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(#app-view,dialog) :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card,.hk-room-chip,.maintenance-room-overview):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *)):nth-child(3n)::after { animation-delay:-23s !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(#app-view,dialog) :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card,.hk-room-chip,.maintenance-room-overview):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *)):is(:hover,:focus-within,.selected,[aria-selected='true'],[open])::before { border-color:var(--tx-cyan) !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(#app-view,dialog) :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card,.hk-room-chip,.maintenance-room-overview):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *)):is(:hover,:focus-within,.selected,[aria-selected='true'],[open])::after { opacity:1 !important; animation:none !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(.panel-head,.room-card-head,.room-list-head) { background:transparent !important; color:var(--world-text) !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(.panel-head)::before, html[data-world='lost-transmission'][data-theme][data-mode] :is(.panel-head)::after { display:none !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(.metric,.today-greeting) { font-family:'Space Grotesk',system-ui,sans-serif; font-variant-numeric:tabular-nums; }
  html[data-world='lost-transmission'][data-theme][data-mode] .metric { padding-top:24px; }
  html[data-world='lost-transmission'][data-theme][data-mode] .metric::before { background:var(--world-motif) right 12px bottom 16px / 120px 60px no-repeat,linear-gradient(125deg,var(--world-elevated),var(--world-surface)) !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(h1,h2,h3,.panel-head,.room-number) { text-shadow:none !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(button,.button,input,select,textarea) {
    border-radius:2px !important; clip-path:none !important; font-family:'Space Grotesk',system-ui,sans-serif;
  }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(button,.button) { transform:none !important; animation:none !important; box-shadow:inset 0 1px color-mix(in srgb,var(--world-highlight) 12%,transparent) !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(button,.button):hover:not(:disabled) { border-color:var(--tx-cyan) !important; box-shadow:inset 3px 0 var(--tx-cyan) !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(button,.button):active:not(:disabled) { box-shadow:inset 0 2px 5px color-mix(in srgb,var(--world-deep) 40%,transparent),inset 3px 0 var(--tx-amber) !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(button,input,select,textarea):focus-visible { outline:2px solid var(--tx-cyan) !important; outline-offset:3px; }
  html[data-world='lost-transmission'][data-theme][data-mode] .nav-item { border-radius:1px !important; border-left:2px solid var(--world-border); }
  html[data-world='lost-transmission'][data-theme][data-mode] .nav-item.active { border-left-color:var(--tx-amber); box-shadow:inset 0 -1px var(--tx-cyan) !important; background:var(--world-elevated) !important; }
  .tx-nav-marker { position:fixed; width:4px; height:20px; z-index:45; pointer-events:none; background:var(--tx-amber); box-shadow:0 0 8px color-mix(in srgb,var(--tx-amber) 30%,transparent); }
  .tx-nav-marker[hidden] { display:none; }
  .tx-passage { position:fixed !important; inset:0 !important; width:auto !important; height:auto !important; z-index:40 !important; pointer-events:none; overflow:hidden; contain:strict; }
  .tx-passage i { position:absolute; top:0; height:1px; width:100%; background:linear-gradient(90deg,transparent,var(--tx-cyan),transparent); animation:tx-tuning .6s ease-out both; }
  .tx-passage b { position:absolute; inset:0; opacity:0; background:repeating-linear-gradient(0deg,transparent 0 80px,color-mix(in srgb,var(--tx-amber) 18%,transparent) 81px,transparent 82px); animation:tx-contact .6s ease-out both; }
  .tx-passage[data-entering='true'] :is(i,b) { animation-duration:1.2s; }
  .tx-passage[data-entering='true'] b { filter:saturate(0); }

  /* One existing workflow badge, not a second status model. */
  html[data-world='lost-transmission'][data-theme][data-mode] :is(.cine-room-type,.cine-workflow,.cine-operational,.cine-timing,.cine-notes) {
    position:relative; overflow:hidden; border-radius:2px !important; clip-path:none !important;
    border:1px solid var(--world-border) !important; background:var(--world-elevated) !important;
    color:var(--world-text) !important; box-shadow:none !important; animation:none !important;
  }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(.cine-room-type,.cine-workflow,.cine-timing,.cine-notes)::after {
    content:''; position:absolute; bottom:1px; left:5px; right:5px; height:2px; pointer-events:none;
    background:var(--tx-cyan); opacity:.7;
  }
  html[data-world='lost-transmission'][data-theme][data-mode] [data-room-type='checkout']::after { background:var(--world-secondary); }
  html[data-world='lost-transmission'][data-theme][data-mode] [data-room-type='stayover']::after { background:var(--tx-green); }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(.cine-timing,.cine-workflow[data-workflow='stripped'])::after { background:var(--tx-amber); }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-workflow[data-workflow='finished'] { border-color:var(--tx-green) !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-workflow[data-workflow='finished']::after { background:var(--tx-green); }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-dnd { border-color:var(--world-danger) !important; border-style:dashed !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-inspection { border-color:var(--tx-amber) !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-notes::after { background:repeating-linear-gradient(90deg,var(--tx-cyan) 0 9px,transparent 9px 13px); }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-notes:hover::after { background:var(--tx-cyan); }
  html[data-world='lost-transmission'][data-theme][data-mode][data-decorative-animations='on'] [data-room-type='arrival']::after { animation:tx-incoming 6s ease-in-out infinite; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-decorative-animations='on'] [data-room-type='checkout']::after { animation:tx-outgoing 8s ease-in-out infinite; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-decorative-animations='on'] :is(.cine-timing,.cine-workflow[data-workflow='stripped'])::after { animation:transmission-strength 13s ease-in-out infinite; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-decorative-animations='on'] .cine-workflow[data-workflow='bed-made']::after { animation:tx-amplitude 9s ease-in-out infinite; }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-room-ambient { display:none !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] .panel-head::after {
    content:'' !important; display:block !important; position:absolute !important;
    inset:auto 10px -2px auto !important; width:76px !important; height:10px !important;
    mask:var(--world-motif) center / contain no-repeat !important; background:var(--tx-cyan) !important;
    opacity:.3 !important; pointer-events:none !important; animation:none !important;
  }
  html[data-world='lost-transmission'][data-theme][data-mode][data-decorative-animations='on'] .panel-head::after { animation:transmission-strength 37s ease-in-out infinite !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-inspection::after {
    content:''; position:absolute; bottom:1px; left:5px; right:5px; height:2px;
    background:var(--tx-amber); opacity:.6; pointer-events:none;
  }
  html[data-world='lost-transmission'][data-theme][data-mode][data-decorative-animations='on'] [data-cine-workflow]:not([data-cine-workflow='finished']) .cine-inspection::after { animation:transmission-strength 11s ease-in-out infinite; }
  html[data-world='lost-transmission'][data-theme][data-mode] .button:not(.metric) { position:relative; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-decorative-animations='on'] .button:not(.metric):active::after {
    content:''; position:absolute; bottom:2px; left:8px; right:8px; height:1px;
    background:var(--tx-cyan); pointer-events:none; animation:tx-button-signal .4s ease-out 1;
  }
  html[data-world='lost-transmission'][data-theme][data-mode][data-decorative-animations='on'] .cine-button-press::after {
    content:'' !important; position:absolute; bottom:2px; left:8px; right:8px; height:2px;
    background:var(--tx-cyan); pointer-events:none; animation:tx-button-signal .42s ease-out 1 !important;
  }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-motion-badge { animation:none !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-new-note::after { animation:tx-three-bursts 1.8s ease-out 1 !important; }
  html[data-world='lost-transmission'][data-theme][data-mode] :is(#app-view,dialog) :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card,.hk-room-chip,.maintenance-room-overview):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *))[data-cine-workflow='finished']::after,
  html[data-world='lost-transmission'][data-theme][data-mode] [data-cine-workflow='finished'] :is(.cine-room-type,.cine-timing,.cine-workflow)::after { animation:none !important; opacity:.8; }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-transition-fx { pointer-events:none; overflow:hidden; clip-path:var(--tx-shape); }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-transition-fx i { position:absolute; pointer-events:none; }
  .tx-fx-brackets { inset:12px; border:1px solid var(--tx-cyan); clip-path:polygon(0 0,15% 0,15% 3px,3px 3px,3px 22%,0 22%,0 0,100% 0,100% 22%,calc(100% - 3px) 22%,calc(100% - 3px) 3px,85% 3px,85% 0,100% 0,100% 100%,85% 100%,85% calc(100% - 3px),calc(100% - 3px) calc(100% - 3px),calc(100% - 3px) 78%,100% 78%,100% 100%,0 100%,0 78%,3px 78%,3px calc(100% - 3px),15% calc(100% - 3px),15% 100%,0 100%); animation:tx-lock var(--cine-fx-duration) ease-out both; }
  .tx-fx-wave { top:8px; left:12%; width:70%; height:5px; background:repeating-linear-gradient(90deg,var(--tx-cyan) 0 3px,transparent 3px 6px); animation:tx-clean-wave var(--cine-fx-duration) ease-out both; }
  .tx-fx-carrier { bottom:14px; left:12px; width:calc(100% - 24px); height:2px; background:var(--tx-green); animation:tx-send var(--cine-fx-duration) ease-out both; }
  .tx-fx-indicators { right:30px; top:12px; width:18px; height:3px; background:var(--tx-green); animation:tx-lock var(--cine-fx-duration) ease-out both; }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-transition-fx:not([data-effect='finished']) { --tx-green:var(--tx-amber); }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-transition-fx[data-effect='stripped'] { --tx-cyan:var(--tx-amber); }
  html[data-world='lost-transmission'][data-theme][data-mode] .cine-transition-fx:is([data-effect='dnd-in'],[data-effect='dnd-out']) { --tx-cyan:var(--world-danger); }
  html[data-world='lost-transmission'][data-theme][data-mode][data-world-motion='off'][data-animation-style]:not([data-animation-style='none']) .transmission-atmosphere { display:none; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-background-animations='off'] .transmission-atmosphere *,
  html[data-world='lost-transmission'][data-theme][data-mode][data-background-animations='off'] .transmission-atmosphere *::after { animation:none !important; }
  html[data-world='lost-transmission'][data-theme][data-mode][data-decorative-animations='off'] :is(#app-view,dialog) *::after { animation:none !important; }
  html[data-world='lost-transmission'][data-theme][data-mode].app-page-hidden :is(.tx-passage,.tx-nav-marker) { display:none; }
  html[data-world='lost-transmission'][data-theme][data-mode] [data-motion-offscreen]::after,
  html[data-world='lost-transmission'][data-theme][data-mode] [data-motion-offscreen] *::after { animation-play-state:paused !important; }
  @media (prefers-reduced-motion:reduce) {
    html[data-world='lost-transmission'][data-theme][data-mode] *, html[data-world='lost-transmission'][data-theme][data-mode] *::before, html[data-world='lost-transmission'][data-theme][data-mode] *::after { animation:none !important; transition:none !important; }
    html[data-world='lost-transmission'][data-theme][data-mode] .tx-passage { display:none; }
  }
}
@keyframes transmission-strength { 0%,30%,100%{opacity:.3} 43%,49%{opacity:.85} 58%{opacity:.45} 67%{opacity:.65} }
@keyframes tx-distance { from{translate:-8% 0} to{translate:9% 0} }
@keyframes tx-amplitude { 0%,100%{scale:1 .28} 45%{scale:1 1} 64%{scale:1 .55} }
@keyframes tx-acquisition { 0%,100%{opacity:.12} 22%{opacity:.3} 45%,65%{opacity:.7} 79%{opacity:.22} }
@keyframes tx-synchronize { 0%,100%{translate:-2% 0;opacity:.15} 35%,65%{translate:0 0;opacity:.4} 78%{translate:4px 0;opacity:.18} }
@keyframes tx-three-bursts { 0%,22%,44%,66%,100%{opacity:.25} 10%,32%,54%{opacity:1} 76%,90%{opacity:.6} }
@keyframes tx-tracking { 0%,100%{translate:0 0;opacity:.12} 40%{translate:0 -18vh;opacity:.4} 65%{translate:0 9vh;opacity:.35} }
@keyframes tx-almost-resolved { 0%,20%,100%{opacity:0;transform:scaleX(.85)} 44%,64%{opacity:.38;transform:scaleX(1)} 70%{opacity:.2;transform:translateX(12px) scaleX(1.03)} 77%{opacity:.1;transform:translateX(-9px)} 84%{opacity:0;transform:scaleX(1.2)} }
@keyframes tx-signal-break { 0%,65%,86%,100%{opacity:0} 68%{opacity:.13;translate:0 0} 75%{opacity:.08;translate:12px 3vh} 81%{opacity:.1;translate:-6px -2vh} }
@keyframes tx-tuning { from{transform:translateY(0);opacity:0} 20%{opacity:.6} to{transform:translateY(100vh);opacity:0} }
@keyframes tx-contact { 0%,100%{opacity:0} 35%{opacity:.35} 65%{opacity:.14} }
@keyframes tx-incoming { 0%,100%{transform:scaleX(.25);transform-origin:left;opacity:.3} 65%{transform:scaleX(1);opacity:.9} }
@keyframes tx-outgoing { 0%{transform:translateX(-30%);opacity:0} 35%{opacity:.65} 90%,100%{transform:translateX(85%);opacity:0} }
@keyframes tx-lock { 0%{opacity:0;transform:scale(1.02)} 38%,85%{opacity:.85;transform:scale(1)} 100%{opacity:0;transform:scale(1)} }
@keyframes tx-clean-wave { 0%{opacity:.2;transform:scaleY(3)} 35%{opacity:.8;transform:scaleY(1.4)} 60%,85%{opacity:.75;transform:scaleY(.3)} 100%{opacity:0;transform:scaleY(.3)} }
@keyframes tx-send { 0%,60%{opacity:0;transform:scaleX(0);transform-origin:left} 78%{opacity:.9;transform:scaleX(1)} 100%{opacity:0;transform:scaleX(1);transform-origin:right} }
@keyframes tx-button-signal { 0%{opacity:.3;scale:.2 1} 55%{opacity:1;scale:.6 1} 100%{opacity:0;scale:1 1} }
@media print { .transmission-atmosphere,.tx-nav-marker,.tx-passage { display:none !important; } }
}


/* Source: abyssal.css */
/* Abyssal — a pressure-rated research habitat in living deep water.
   Every effect is decorative, theme-scoped and pointer transparent. */
@media screen {
  html[data-theme='abyssal'] { --theme-badge-radius: 4px 16px 4px 16px; --theme-badge-clip: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 6px 50%); }
  html[data-world='abyssal'] {
    --abyssal-void:#010407;
    --abyssal-water:#03131d;
    --abyssal-glass:color-mix(in srgb,var(--world-surface) 88%,transparent);
    --abyssal-cyan:#67e8f9;
    --abyssal-violet:#c4a7ff;
    --abyssal-amber:#ffd27a;
    background:
      radial-gradient(ellipse at 86% 5%,color-mix(in srgb,var(--world-accent) 9%,transparent),transparent 32%),
      linear-gradient(145deg,var(--world-background),color-mix(in srgb,var(--world-deep) 92%,var(--world-background))) fixed !important;
  }
  html[data-world='abyssal'][data-mode='light'] {
    --abyssal-glass:color-mix(in srgb,#f8ffff 86%,transparent);
    background:
      radial-gradient(ellipse at 15% 2%,#ffffff 0,transparent 34%),
      linear-gradient(145deg,#eaf3f4,#cbdcdf) fixed !important;
  }
  html[data-cinematic='abyssal'] {
    --room-amber:#704900; --room-amber-fill:#fff0c8;
    --room-privacy:#74405f; --room-privacy-fill:#f6e2ee;
    --room-inspect:#704900; --room-inspect-fill:#fff0c8;
    --room-stripped:#53428a; --room-stripped-fill:#eee8ff;
    --room-bed:#006277; --room-bed-fill:#d8f8ff;
    --room-finished:#176249; --room-finished-fill:#d9f8e9;
    --room-signal-radius:4px 16px 4px 16px;
    --room-ambient:abyssal-room-current;
    --room-approach:abyssal-room-approach;
    --room-note-attention:abyssal-note-pulse;
    --room-late-ambient:abyssal-late-arc;
    --room-inspect-ambient:abyssal-inspection-sonar;
    --cine-press:abyssal-flow-press;
    --cine-badge:abyssal-flow-badge;
    --cine-wash:abyssal-flow-wash;
    --cine-route:abyssal-flow-route;
    --cine-ring:abyssal-flow-ring;
    --cine-signal:abyssal-flow-signal;
    --cine-particles:abyssal-flow-life;
    --cine-shards:abyssal-flow-fragments;
    --cine-flow-ink:var(--abyssal-cyan);
    --cine-flow-secondary:var(--abyssal-violet);
  }
  html[data-cinematic='abyssal'][data-mode='dark'] {
    --room-amber:#ffe2a6; --room-amber-fill:#493713;
    --room-privacy:#f4c5e1; --room-privacy-fill:#462638;
    --room-inspect:#ffe2a6; --room-inspect-fill:#493713;
    --room-stripped:#ddceff; --room-stripped-fill:#302651;
    --room-bed:#bdf5ff; --room-bed-fill:#123f4b;
    --room-finished:#baf4d8; --room-finished-fill:#173f33;
  }

  /* Keep the shared world motion contract active for preference previews while
     the dedicated habitat supplies the visible depth layers. */
  html[data-world='abyssal'] .world-atmosphere { opacity:0 !important; }
  html[data-world='abyssal'] .world-orbits { animation-name:abyssal-pressure-current !important; }
  .abyssal-atmosphere {
    position:fixed; inset:0; z-index:0; overflow:hidden; contain:strict;
    pointer-events:none !important; color:var(--abyssal-cyan);
    background:
      radial-gradient(ellipse at 50% 115%,rgba(18,88,103,.23),transparent 46%),
      linear-gradient(180deg,rgba(14,48,63,.2),rgba(1,4,7,.68));
    opacity:1; transition:opacity .42s ease;
  }
  html[data-world='abyssal'][data-mode='light'] .abyssal-atmosphere { opacity:.58; mix-blend-mode:multiply; }
  .abyssal-atmosphere *, .abyssal-nav-light { pointer-events:none !important; }
  .abyssal-atmosphere > * { position:absolute; }
  .abyssal-water-column { inset:-12%; opacity:.5; transform:translate(var(--abyssal-x,0),var(--abyssal-y,0)); background:radial-gradient(ellipse at 58% -5%,rgba(103,232,249,.13),transparent 42%),linear-gradient(104deg,transparent 18%,rgba(64,157,174,.07) 37%,transparent 57%); }
  .abyssal-depth { inset:-10%; transform:translate(var(--abyssal-x,0),var(--abyssal-y,0)); }
  .abyssal-depth-far { opacity:.16; filter:blur(2px); background:radial-gradient(ellipse at 8% 70%,#0f5364 0 1%,transparent 22%),radial-gradient(ellipse at 91% 48%,#19265d 0 2%,transparent 27%); }
  .abyssal-depth-mid { inset:7% -8% -8%; opacity:.12; background:linear-gradient(111deg,transparent 58%,#4e83a0 59% 59.2%,transparent 60%),linear-gradient(71deg,transparent 15%,#2d6477 16% 16.2%,transparent 17%); }
  .abyssal-snow { inset:-18%; background-repeat:repeat; transform:translate(var(--abyssal-x,0),var(--abyssal-y,0)); }
  .abyssal-snow-far { opacity:.16; filter:blur(1px); background-image:radial-gradient(circle,#caeff5 0 1px,transparent 1.2px); background-size:83px 97px; }
  .abyssal-snow-mid { opacity:.2; background-image:radial-gradient(circle at 30% 20%,#ecffff 0 1px,transparent 1.4px),radial-gradient(circle at 76% 74%,#99e7ef 0 1.2px,transparent 1.6px); background-size:139px 121px,181px 173px; }
  .abyssal-snow-near { opacity:.13; filter:blur(.4px); background-image:radial-gradient(ellipse,#e5ffff 0 1.5px,transparent 2px); background-size:237px 193px; }
  .abyssal-life { inset:0; }
  .abyssal-life i { position:absolute; display:block; width:18px; height:6px; border:1px solid currentColor; border-left:0; border-radius:50% 8px 50% 8px; opacity:.17; filter:drop-shadow(0 0 4px currentColor); }
  .abyssal-life i::after { content:''; position:absolute; width:3px; height:3px; right:-5px; top:1px; border-radius:50%; background:currentColor; box-shadow:8px 4px currentColor; }
  .abyssal-life i:nth-child(1) { left:8%; top:22%; }
  .abyssal-life i:nth-child(2) { left:82%; top:17%; color:var(--abyssal-violet); animation-delay:-11s !important; }
  .abyssal-life i:nth-child(3) { left:68%; top:62%; width:9px; animation-delay:-21s !important; }
  .abyssal-life i:nth-child(4) { left:20%; top:78%; color:var(--abyssal-violet); animation-delay:-33s !important; }
  .abyssal-life i:nth-child(5) { left:47%; top:42%; width:12px; animation-delay:-43s !important; }
  .abyssal-life i:nth-child(6) { left:91%; top:83%; animation-delay:-54s !important; }
  .abyssal-life i:nth-child(7) { left:34%; top:11%; width:7px; color:var(--abyssal-violet); animation-delay:-63s !important; }
  .abyssal-life i:nth-child(8) { left:56%; top:88%; width:10px; animation-delay:-72s !important; }
  .abyssal-sonar { left:var(--abyssal-event-x,64%); top:var(--abyssal-event-y,36%); width:10px; height:10px; opacity:0; }
  .abyssal-sonar i { position:absolute; inset:-1px; border:1px solid currentColor; border-radius:50%; }
  .abyssal-sonar i:nth-child(2) { animation-delay:.9s !important; }
  .abyssal-reveal, .abyssal-shadow { opacity:0; }
  .abyssal-trench { inset:-10% -8% -15% 62%; background:linear-gradient(100deg,transparent,#010307 24% 100%); clip-path:polygon(33% 0,100% 0,100% 100%,0 100%,24% 70%,8% 49%); }
  .abyssal-tower { right:10%; bottom:-7%; width:8%; height:66%; border:1px solid currentColor; border-bottom:0; opacity:0; background:repeating-linear-gradient(0deg,transparent 0 41px,currentColor 42px,transparent 43px); clip-path:polygon(27% 0,73% 0,100% 100%,0 100%); }
  .abyssal-cable { left:7%; top:-14%; width:38%; height:76%; border-right:2px solid currentColor; border-radius:0 50% 50% 0; opacity:0; rotate:-17deg; }
  .abyssal-shadow { left:-25%; top:23%; width:58%; height:19%; border-radius:50%; filter:blur(18px); background:#000; transform:translateX(-30%) scale(.72); }
  .abyssal-pressure-wave { inset:-20%; opacity:0; background:radial-gradient(circle at var(--abyssal-event-x,50%) var(--abyssal-event-y,50%),transparent 0 14%,rgba(119,207,220,.13) 14.3%,transparent 15%); }
  .abyssal-atmosphere[data-event='sonar'] .abyssal-sonar { animation:abyssal-sonar-event 9s ease-out both; }
  .abyssal-atmosphere[data-event='sonar'] .abyssal-sonar i { animation:abyssal-sonar-ring 3.4s ease-out 2; }
  .abyssal-atmosphere[data-event='bioluminescent-bloom'] .abyssal-life i { animation-duration:8s !important; filter:drop-shadow(0 0 10px currentColor); }
  .abyssal-atmosphere[data-event='current'] .abyssal-snow { animation-duration:12s !important; }
  .abyssal-atmosphere[data-event='trench-wall'] .abyssal-trench { animation:abyssal-trench-reveal 15s ease-in-out both; }
  .abyssal-atmosphere[data-event='trench-wall'] :is(.abyssal-tower,.abyssal-cable) { animation:abyssal-structure-reveal 15s ease-in-out both; }
  .abyssal-atmosphere[data-event='depth-drop'] .abyssal-pressure-wave { animation:abyssal-depth-drop 13s ease-in-out both; }
  .abyssal-atmosphere[data-event='distant-creature'] .abyssal-shadow { animation:abyssal-creature 16s ease-in-out both; }
  .abyssal-atmosphere.abyssal-entering { animation:abyssal-descent 1.5s ease-out both; }
  .abyssal-atmosphere.abyssal-leaving { animation:abyssal-surface-return .42s ease-in both; }
  html[data-world='abyssal'][data-background-animations='on'] .abyssal-water-column { animation:abyssal-pressure-current 73s ease-in-out infinite alternate; }
  html[data-world='abyssal'][data-background-animations='on'] .abyssal-depth-far { animation:abyssal-depth-far 91s ease-in-out infinite alternate; }
  html[data-world='abyssal'][data-background-animations='on'] .abyssal-depth-mid { animation:abyssal-depth-mid 61s ease-in-out infinite alternate; }
  html[data-world='abyssal'][data-background-animations='on'] .abyssal-snow-far { animation:abyssal-snow-far 79s linear infinite; }
  html[data-world='abyssal'][data-background-animations='on'] .abyssal-snow-mid { animation:abyssal-snow-mid 53s linear infinite; }
  html[data-world='abyssal'][data-background-animations='on'] .abyssal-snow-near { animation:abyssal-snow-near 37s linear infinite; }
  html[data-world='abyssal'][data-background-animations='on'] .abyssal-life i { animation:abyssal-life-drift 47s ease-in-out infinite; }

  /* Pressure glass stays physically anchored. Selection clarifies the glass;
     it never lifts toward the viewer. */
  html[data-world='abyssal'] :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card,dialog,.notification-panel):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *)) {
    position:relative; overflow:visible; transform:none !important;
    border:1px solid color-mix(in srgb,var(--world-border) 82%,transparent) !important;
    border-left-width:4px !important; border-bottom-width:2px !important;
    border-radius:var(--world-radius) !important;
    background:
      linear-gradient(112deg,color-mix(in srgb,var(--world-highlight) 8%,transparent),transparent 25%),
      linear-gradient(162deg,var(--abyssal-glass),color-mix(in srgb,var(--world-elevated) 88%,transparent)) !important;
    box-shadow:var(--world-shadow),inset 0 0 30px -26px var(--world-accent) !important;
    backdrop-filter:blur(11px) saturate(1.12);
  }
  html[data-world='abyssal'] :is(.panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble)::after {
    content:'' !important; position:absolute !important; z-index:0 !important;
    inset:7px 11px auto auto !important; width:26px !important; height:8px !important;
    border:0 !important; border-top:2px solid var(--world-border) !important;
    border-right:2px solid var(--world-border) !important; border-radius:0 9px 0 0 !important;
    background:linear-gradient(90deg,transparent,var(--world-highlight),transparent) !important;
    background-size:240% 100% !important; opacity:.55 !important; pointer-events:none !important;
  }
  html[data-world='abyssal'][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble):not(.card-dragging):not(:where(.print-preview-sheet *,#print-run-root *)) { animation:abyssal-card-refraction 17s ease-in-out infinite; }
  html[data-world='abyssal'] #app-view .view :is(.panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row):nth-child(2n) { animation-duration:23s; animation-delay:-9s; }
  html[data-world='abyssal'] #app-view .view :is(.panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row):nth-child(3n) { animation-duration:29s; animation-delay:-17s; }
  html[data-world='abyssal'] :is(.panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row):is(:hover,:focus-within,.selected,[aria-selected='true']) {
    transform:none !important; filter:brightness(1.035) saturate(1.05);
    box-shadow:var(--world-shadow),inset 5px 0 0 -3px var(--world-accent),inset 0 0 0 1px color-mix(in srgb,var(--world-highlight) 22%,transparent) !important;
  }
  html[data-world='abyssal'] .panel-head { border-bottom:1px solid color-mix(in srgb,var(--world-border) 45%,transparent) !important; background:linear-gradient(90deg,color-mix(in srgb,var(--world-elevated) 74%,transparent),transparent) !important; border-radius:0 18px 0 0 !important; }
  html[data-world='abyssal'] .panel-head::before { width:34px !important; height:4px !important; inset:10px 15px auto auto !important; border:1px solid var(--world-accent) !important; border-inline-color:transparent !important; background:transparent !important; border-radius:50% !important; }
  html[data-world='abyssal'] :is(.topbar,.sidebar,#mobile-nav-sheet,.mobile-nav-bar,.notification-panel) {
    background:linear-gradient(156deg,color-mix(in srgb,var(--world-surface) 94%,transparent),color-mix(in srgb,var(--world-deep) 88%,transparent)) !important;
    border-color:color-mix(in srgb,var(--world-border) 78%,transparent) !important;
    box-shadow:inset 0 1px color-mix(in srgb,var(--world-highlight) 22%,transparent),0 20px 34px -30px var(--abyssal-void) !important;
    backdrop-filter:blur(18px) saturate(1.15);
  }
  html[data-world='abyssal'][data-theme][data-mode='light'] :is(.topbar,.sidebar,#mobile-nav-sheet,.mobile-nav-bar,.notification-panel) {
    color:var(--world-text) !important;
    background:linear-gradient(150deg,rgba(248,255,255,.96),rgba(210,230,234,.93)) !important;
    border-color:var(--world-border) !important;
  }
  html[data-world='abyssal'][data-theme][data-mode='light'] :is(.topbar,.sidebar,#mobile-nav-sheet,.mobile-nav-bar,.notification-panel) :is(h1,h2,h3,strong,span,label,a,button,svg) { color:inherit; }
  html[data-world='abyssal'][data-theme][data-mode='light'] .nav-item:not(.active) { color:var(--world-text) !important; }
  html[data-world='abyssal'][data-theme][data-mode='light'] .nav-item.active { color:#effdff !important; background:linear-gradient(90deg,#00647a,#164958) !important; }
  html[data-world='abyssal'] .topbar { overflow:visible !important; border-left:5px solid var(--world-border) !important; border-bottom-width:3px !important; border-radius:3px 34px 13px 34px !important; }
  html[data-world='abyssal'] .topbar::before { content:'' !important; position:absolute; inset:7px; pointer-events:none; border:1px solid color-mix(in srgb,var(--world-highlight) 28%,transparent); border-radius:2px 27px 8px 27px; background:radial-gradient(ellipse at 30% 0,color-mix(in srgb,var(--world-highlight) 10%,transparent),transparent 52%); }
  html[data-world='abyssal'] .topbar::after { display:none !important; }
  html[data-world='abyssal'] .topbar h1::after { content:'PRESSURE HABITAT  /  OBSERVATION DECK'; display:block; margin-top:4px; color:var(--world-accent); font:600 9px/1.3 'Space Grotesk',system-ui,sans-serif; letter-spacing:.19em; }
  html[data-world='abyssal'] .housekeeper-greeting em { animation:none !important; }
  html[data-world='abyssal'] .nav-item { border:1px solid transparent !important; border-radius:3px 14px 3px 14px !important; transform:none !important; }
  html[data-world='abyssal'] .nav-item.active { color:var(--world-highlight) !important; background:linear-gradient(90deg,color-mix(in srgb,var(--world-accent) 18%,transparent),color-mix(in srgb,var(--world-elevated) 82%,transparent)) !important; border-color:color-mix(in srgb,var(--world-accent) 52%,transparent) !important; box-shadow:inset 3px 0 var(--world-accent),0 0 15px -9px var(--world-accent) !important; }
  .abyssal-nav-light { position:fixed; z-index:2001; border-radius:4px; background:var(--abyssal-cyan); box-shadow:0 0 4px var(--abyssal-cyan),0 0 12px color-mix(in srgb,var(--abyssal-cyan) 54%,transparent); }
  html[data-world='abyssal'][data-decorative-animations='on'] .abyssal-nav-light { animation:abyssal-nav-pulse 3.1s ease-in-out infinite; }

  html[data-world='abyssal'] :is(.button,button:not(.nav-item),select,input,textarea) { border-radius:var(--world-control) !important; }
  html[data-world='abyssal'] :is(.button,button:not(.nav-item)):not(.room-bed-marker) { clip-path:none !important; }
  html[data-world='abyssal'] .button { color:var(--world-text) !important; background:linear-gradient(180deg,var(--world-elevated),color-mix(in srgb,var(--world-elevated) 72%,var(--world-deep))) !important; border:1px solid var(--world-border) !important; border-left-width:3px !important; box-shadow:inset 0 1px color-mix(in srgb,var(--world-highlight) 25%,transparent),0 4px 8px -7px var(--abyssal-void) !important; }
  html[data-world='abyssal'] .button.primary { color:#01151b !important; background:linear-gradient(180deg,#a7f4ff,#55ccdf) !important; border-color:#d6fbff !important; }
  html[data-world='abyssal'][data-mode='light'] .button.primary { color:#f2fdff !important; background:linear-gradient(180deg,#08768c,#00576d) !important; border-color:#00485d !important; }
  html[data-world='abyssal'] .button:hover { transform:none !important; filter:brightness(1.08); box-shadow:inset 4px 0 var(--world-accent),0 0 14px -8px var(--world-accent) !important; }
  html[data-world='abyssal'] .button:active { translate:0 1px !important; box-shadow:inset 0 2px 6px color-mix(in srgb,var(--abyssal-void) 35%,transparent) !important; }
  html[data-world='abyssal'] :is(input,select,textarea) { color:var(--world-text) !important; background:color-mix(in srgb,var(--world-surface) 90%,transparent) !important; border:1px solid var(--world-border) !important; box-shadow:inset 3px 0 color-mix(in srgb,var(--world-accent) 24%,transparent) !important; }
  html[data-world='abyssal'] :is(input,select,textarea):focus { outline:2px solid var(--world-accent) !important; outline-offset:2px; }
  html[data-world='abyssal'] :is(.world-toggle,[role='switch']) { border-radius:4px 16px 4px 16px !important; }
  html[data-world='abyssal'] .world-toggle i { border:1px solid var(--world-border); background:var(--world-deep); box-shadow:inset 0 0 7px var(--abyssal-void); }
  html[data-world='abyssal'] .world-toggle[aria-checked='true'] i { background:var(--world-accent); box-shadow:0 0 9px color-mix(in srgb,var(--world-accent) 45%,transparent); }
  html[data-world='abyssal'] :is(dialog,.room-status-menu,[role='tooltip'],.tooltip,.notification-panel) { color:var(--world-text) !important; border:2px solid var(--world-border) !important; border-left-width:5px !important; border-radius:4px 28px 12px 28px !important; background:linear-gradient(150deg,color-mix(in srgb,var(--world-surface) 96%,transparent),color-mix(in srgb,var(--world-elevated) 92%,transparent)) !important; box-shadow:0 28px 70px -24px var(--abyssal-void),inset 0 1px color-mix(in srgb,var(--world-highlight) 25%,transparent) !important; backdrop-filter:blur(20px); }
  html[data-world='abyssal'] dialog[open] { animation:abyssal-modal-lock .36s ease-out both; }
  html[data-world='abyssal'] :is(.empty-state,.todo-empty) { position:relative; color:var(--world-secondary) !important; }
  html[data-world='abyssal'] :is(.empty-state,.todo-empty)::after { content:''; display:block; width:42px; height:14px; margin:12px auto 0; border:1px solid var(--world-border); border-inline-color:transparent; border-radius:50%; opacity:.32; }
  html[data-world='abyssal'] :is(.error,.error-state,[data-status='error']) { border-left:4px solid var(--world-danger) !important; background:color-mix(in srgb,var(--world-danger) 10%,var(--world-surface)) !important; }
  html[data-world='abyssal'] :is(.spinner,[role='progressbar']) { border-radius:50% !important; border:2px solid color-mix(in srgb,var(--world-border) 45%,transparent) !important; border-top-color:var(--world-accent) !important; box-shadow:0 0 0 7px color-mix(in srgb,var(--world-accent) 7%,transparent),0 0 12px -3px var(--world-accent); animation:abyssal-loader-sonar 1.7s ease-in-out infinite !important; }

  /* Room instrumentation. Signals are compact, sealed and mutually exclusive
     because the shared status renderer owns the single workflow slot. */
  html[data-cinematic='abyssal'] .cine-workflow { border-left-width:5px !important; border-style:solid !important; box-shadow:inset 0 1px color-mix(in srgb,currentColor 18%,transparent),0 0 12px -9px currentColor; }
  html[data-cinematic='abyssal'] .cine-workflow[data-workflow='stripped'] { border-right-style:dashed !important; }
  html[data-cinematic='abyssal'] .cine-workflow[data-workflow='bed-made'] { border-bottom-width:3px !important; }
  html[data-cinematic='abyssal'] .cine-workflow[data-workflow='finished'] { border-style:double !important; border-width:3px !important; box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 22%,transparent); }
  html[data-cinematic='abyssal'] .cine-room-type { color:var(--world-text) !important; background:var(--world-elevated) !important; border-radius:3px 12px 3px 12px !important; }
  html[data-cinematic='abyssal'] .cine-room-type[data-room-type='arrival'] { color:var(--abyssal-cyan); border-left:4px solid currentColor !important; box-shadow:inset 7px 0 8px -9px currentColor; }
  html[data-cinematic='abyssal'] .cine-room-type[data-room-type='checkout'] { color:var(--abyssal-violet); border-right:4px solid currentColor !important; box-shadow:inset -7px 0 8px -9px currentColor; }
  html[data-cinematic='abyssal'] .cine-room-type[data-room-type='stayover'] { border-bottom:3px double var(--world-border) !important; }
  html[data-cinematic='abyssal'] .cine-timing { color:var(--room-amber); background:var(--room-amber-fill); border-radius:18px 4px 18px 4px !important; border-bottom-width:3px !important; }
  html[data-cinematic='abyssal'] .cine-timing::after { inset:-5px !important; border:1px solid currentColor !important; border-left-color:transparent !important; border-radius:50% !important; }
  html[data-cinematic='abyssal'] .cine-notes { border-radius:3px 15px 3px 8px !important; border-top:3px double var(--world-border) !important; background:var(--world-elevated) !important; }
  html[data-cinematic='abyssal'] .cine-dnd { border:3px double currentColor !important; box-shadow:inset 0 0 0 2px var(--world-surface); }
  html[data-cinematic='abyssal'] .cine-inspection { border:1px solid currentColor !important; border-radius:50% 4px 50% 4px !important; }
  html[data-cinematic='abyssal'] .cine-inspection::after { inset:50% auto auto 50% !important; width:5px !important; height:5px !important; translate:-50% -50%; box-shadow:0 0 0 5px color-mix(in srgb,currentColor 10%,transparent); }
  html[data-cinematic='abyssal'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient) { width:26px !important; border:0 !important; background:linear-gradient(90deg,transparent,currentColor,transparent) !important; opacity:.13; }
  html[data-cinematic='abyssal'] .cine-room-ambient .arrivalAmbient { left:0 !important; color:var(--abyssal-cyan); }
  html[data-cinematic='abyssal'] .cine-room-ambient .checkoutAmbient { right:0 !important; color:var(--abyssal-violet); rotate:180deg; }
  html[data-cinematic='abyssal'] .cine-room-ambient :is(.arrivalAmbient,.checkoutAmbient)::before { width:4px; height:4px; box-shadow:8px 3px currentColor,15px -2px currentColor; }
  html[data-cinematic='abyssal'] .cine-room-ambient .stayoverAmbient { height:2px; background:repeating-linear-gradient(90deg,var(--world-border) 0 12px,transparent 12px 20px); opacity:.42; }
  html[data-cinematic='abyssal'] .cine-room[data-cine-workflow='finished'] :is(.cine-room-ambient,.cine-room-ambient *) { animation:none !important; opacity:.13; }
  html[data-cinematic='abyssal'] .cine-transition-fx { z-index:1 !important; }
  html[data-cinematic='abyssal'] .cine-fx-wash { background:radial-gradient(ellipse at var(--cine-focus-x) var(--cine-focus-y),color-mix(in srgb,currentColor 24%,transparent),transparent 52%); }
  html[data-cinematic='abyssal'] .cine-fx-ring { width:74px; height:74px; left:calc(var(--cine-focus-x) - 37px); top:calc(var(--cine-focus-y) - 37px); border-width:1px; box-shadow:0 0 0 8px color-mix(in srgb,currentColor 7%,transparent); }
  html[data-cinematic='abyssal'] .cine-fx-signal { width:4px; height:4px; box-shadow:0 0 7px 2px currentColor; offset-path:inset(7px round 4px 18px 8px 18px); }
  html[data-cinematic='abyssal'] .cine-fx-particles i { width:4px; height:2px; border-radius:50% 5px 50% 5px; box-shadow:0 0 5px currentColor; }
  html[data-cinematic='abyssal'] .cine-fx-fragments i { height:1px; background:var(--abyssal-violet); }
  html[data-cinematic='abyssal'] .cine-transition-fx[data-effect='finished'] .cine-fx-connection { stroke:var(--abyssal-cyan); }
  html[data-cinematic='abyssal'] .cine-transition-fx[data-effect='finished'] .cine-fx-particles { display:block; }
  html[data-cinematic='abyssal'] .cine-room[data-room-transition-active='finished'] { animation:abyssal-room-confirm 1.58s ease-in-out 1 !important; animation-play-state:running !important; }
  html[data-world='abyssal'] :is(.arrival-badge,.early-badge) { color:#094f64 !important; background:#d9f8ff !important; border:2px solid #36b9d2 !important; box-shadow:0 0 0 3px color-mix(in srgb,#67e8f9 17%,transparent),0 0 14px -5px #36b9d2 !important; }
  html[data-world='abyssal'][data-mode='dark'] :is(.arrival-badge,.early-badge) { color:#d9fbff !important; background:#123947 !important; }
  html[data-world='abyssal'] :is(.status-badge.finished,.status-badge[data-status='finished']) { border:3px double var(--room-finished,#176249) !important; }
  html[data-world='abyssal'] :is(.status-badge.stripped,.status-badge[data-status='stripped']) { border-left:5px solid var(--room-stripped,#53428a) !important; }
  html[data-world='abyssal'] :is(.status-badge.bed-made,.status-badge[data-status='bed-made']) { border-bottom:3px solid var(--room-bed,#006277) !important; }

  .cinema-transition[data-transition='abyssal'] { background:radial-gradient(ellipse at center,transparent 8%,rgba(1,4,7,.82) 92%) !important; }
  .cinema-transition[data-transition='abyssal']::before { content:''; position:absolute; inset:-20%; background:repeating-radial-gradient(circle at center,transparent 0 39px,rgba(103,232,249,.12) 40px,transparent 41px 72px); animation:abyssal-switch-lock .56s ease-out both; }

  html.world-page-hidden .abyssal-atmosphere *,
  html[data-background-animations='off'] .abyssal-atmosphere *,
  html[data-decorative-animations='off'] :is(.abyssal-nav-light,.cine-room-ambient *,.cine-timing::after,.cine-inspection::after) { animation-play-state:paused !important; }
  html[data-background-animations='off'] .abyssal-atmosphere :is(.abyssal-snow,.abyssal-life,.abyssal-sonar,.abyssal-reveal,.abyssal-shadow,.abyssal-pressure-wave) { display:none !important; }

  @media (max-width:760px) {
    html[data-world='abyssal'] .topbar { border-radius:3px 24px 9px 24px !important; }
    html[data-world='abyssal'] :is(.panel,.room-card,.metric,.room-list-row,.strip-room-row,.summary-room-row) { backdrop-filter:blur(7px); }
    .abyssal-depth-mid { opacity:.08; }
    .abyssal-life i:nth-child(n+6) { display:none; }
  }
  @media (prefers-reduced-motion:reduce) {
    .abyssal-atmosphere *, .abyssal-nav-light,
    html[data-world='abyssal'] #app-view .view :is(.panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble) { animation:none !important; }
    .abyssal-snow-near, .abyssal-shadow, .abyssal-pressure-wave { display:none; }
  }
}

@media print {
  .abyssal-atmosphere,.abyssal-nav-light,.cinema-transition[data-transition='abyssal'] { display:none !important; }
}

@keyframes abyssal-pressure-current { 0%,100% { transform:translate(-1.5%,-1%) scale(1.01); opacity:.38; } 50% { transform:translate(2%,1.5%) scale(1.035); opacity:.58; } }
@keyframes abyssal-depth-far { from { transform:translate(calc(var(--abyssal-x,0px)*.25),calc(var(--abyssal-y,0px)*.2)) scale(1); } to { transform:translate(calc(var(--abyssal-x,0px)*.25 - 2%),calc(var(--abyssal-y,0px)*.2 + 1%)) scale(1.04); } }
@keyframes abyssal-depth-mid { from { transform:translate(calc(var(--abyssal-x,0px)*.55),calc(var(--abyssal-y,0px)*.5)); } to { transform:translate(calc(var(--abyssal-x,0px)*.55 + 2%),calc(var(--abyssal-y,0px)*.5 - 1%)); } }
@keyframes abyssal-snow-far { to { background-position:31px 97px; } }
@keyframes abyssal-snow-mid { to { background-position:-54px 121px,43px 173px; } }
@keyframes abyssal-snow-near { to { background-position:79px 193px; } }
@keyframes abyssal-life-drift { 0%,100% { translate:-14px 8px; rotate:-7deg; opacity:.05; } 38% { opacity:.3; } 62% { translate:24px -18px; rotate:9deg; opacity:.13; } }
@keyframes abyssal-sonar-event { 0%,8%,92%,100% { opacity:0; } 18%,72% { opacity:.75; } }
@keyframes abyssal-sonar-ring { 0% { scale:.2; opacity:.9; } 100% { scale:18; opacity:0; } }
@keyframes abyssal-trench-reveal { 0%,100% { opacity:0; translate:16% 0; } 25%,72% { opacity:.44; translate:0 0; } }
@keyframes abyssal-structure-reveal { 0%,100% { opacity:0; } 30%,70% { opacity:.12; } }
@keyframes abyssal-depth-drop { 0%,100% { opacity:0; scale:.7; } 28% { opacity:.8; } 72% { opacity:.16; scale:1.35; } }
@keyframes abyssal-creature { 0%,100% { opacity:0; transform:translateX(-40%) scale(.72); } 35% { opacity:.28; } 72% { opacity:.12; transform:translateX(260%) scale(1.08); } }
@keyframes abyssal-descent { 0% { opacity:0; filter:brightness(1.45) saturate(.5); } 42% { opacity:1; filter:brightness(.72) saturate(.8); } 100% { opacity:1; filter:brightness(1) saturate(1); } }
@keyframes abyssal-surface-return { to { opacity:0; filter:brightness(1.5) saturate(.45); } }
@keyframes abyssal-card-refraction { 0%,100% { background-position:0 0 !important; box-shadow:var(--world-shadow),inset 0 0 30px -26px var(--world-accent) !important; } 52% { background-position:18px -6px !important; box-shadow:var(--world-shadow),inset 9px 0 26px -27px var(--world-highlight) !important; } }
@keyframes abyssal-nav-pulse { 0%,100% { opacity:.65; filter:brightness(.9); } 50% { opacity:1; filter:brightness(1.45); } }
@keyframes abyssal-modal-lock { from { opacity:0; scale:.985; filter:brightness(.72); } to { opacity:1; scale:1; filter:brightness(1); } }
@keyframes abyssal-loader-sonar { 0% { rotate:0deg; box-shadow:0 0 0 0 color-mix(in srgb,var(--world-accent) 22%,transparent); } 65% { box-shadow:0 0 0 8px transparent; } 100% { rotate:360deg; } }
@keyframes abyssal-room-current { 0%,100% { opacity:.08; transform:translateX(-4px); } 50% { opacity:.22; transform:translateX(5px); } }
@keyframes abyssal-room-approach { 0%,100% { opacity:0; transform:translateX(-4px); } 35%,60% { opacity:.8; } 72% { transform:translateX(18px); opacity:.2; } }
@keyframes abyssal-note-pulse { 0%,100% { box-shadow:none; } 40% { box-shadow:0 0 0 4px color-mix(in srgb,var(--abyssal-violet) 18%,transparent),0 0 14px -5px var(--abyssal-violet); } }
@keyframes abyssal-late-arc { 0%,100% { opacity:0; rotate:0deg; } 35% { opacity:.7; } 75% { rotate:150deg; opacity:.18; } }
@keyframes abyssal-inspection-sonar { 0% { box-shadow:0 0 0 0 currentColor; opacity:.8; } 70%,100% { box-shadow:0 0 0 11px transparent; opacity:0; } }
@keyframes abyssal-flow-press { 0%,100% { box-shadow:none; } 35% { box-shadow:inset 4px 0 var(--cine-press-ink),inset -4px 0 var(--cine-press-ink); } 62% { box-shadow:inset 0 3px var(--cine-press-ink),inset 0 -3px var(--cine-press-ink); } }
@keyframes abyssal-flow-badge { 0%,100% { filter:brightness(1); } 38% { filter:brightness(1.4); box-shadow:0 0 0 5px color-mix(in srgb,currentColor 13%,transparent); } }
@keyframes abyssal-flow-wash { 0%,100% { opacity:0; scale:.7; } 38% { opacity:.2; scale:1; } 72% { opacity:.06; scale:1.08; } }
@keyframes abyssal-flow-route { 0% { stroke-dashoffset:100; opacity:0; } 18% { opacity:.8; } 70% { stroke-dashoffset:0; opacity:.6; } 100% { stroke-dashoffset:0; opacity:0; } }
@keyframes abyssal-flow-ring { 0% { opacity:0; scale:.45; } 35% { opacity:.75; } 100% { opacity:0; scale:2.15; } }
@keyframes abyssal-flow-signal { 0% { opacity:0; offset-distance:0; } 12%,70% { opacity:1; } 100% { opacity:0; offset-distance:100%; } }
@keyframes abyssal-flow-life { 0%,16% { opacity:0; translate:0 7px; } 42% { opacity:.75; } 100% { opacity:0; translate:calc(var(--i)*3px - 6px) -24px; } }
@keyframes abyssal-flow-fragments { 0%,100% { opacity:0; } 32% { opacity:.65; transform:scaleX(.35); } 68% { opacity:.25; transform:scaleX(1); } }
@keyframes abyssal-room-confirm { 0%,100% { filter:brightness(1); } 45% { filter:brightness(1.13) saturate(1.15); } }
@keyframes abyssal-switch-lock { 0% { opacity:0; scale:.4; } 55% { opacity:.7; } 100% { opacity:0; scale:1.8; } }


/* Source: biomechanical.css */
/* BIOMECHANICAL — living architecture, engineered organism and a synthetic
   nervous system. Everything remains decorative and below interactive UI. */
@media screen {
  html[data-theme='biomechanical'] { --theme-badge-radius: 30% 9% 42% 15% / 16% 28% 12% 26%; --theme-badge-clip: polygon(10% 18%, 32% 5%, 49% 16%, 69% 4%, 91% 24%, 84% 47%, 96% 72%, 67% 95%, 47% 84%, 28% 97%, 7% 76%, 16% 51%); }

  html[data-world='biomechanical'][data-theme][data-mode] .world-atmosphere { opacity: .88; }
  html[data-world='biomechanical'][data-mode='light'] .world-atmosphere { opacity: .96; }
  html[data-world='biomechanical'] .world-base {
    background:
      radial-gradient(ellipse at 18% 12%, color-mix(in srgb, var(--world-accent-secondary) 22%, transparent), transparent 27%),
      radial-gradient(ellipse at 86% 78%, color-mix(in srgb, var(--world-accent) 18%, transparent), transparent 34%),
      linear-gradient(145deg, var(--world-deep) 0%, var(--world-background) 48%, color-mix(in srgb, var(--world-accent) 10%, var(--world-deep)) 100%);
    background-size: 145% 145%, 160% 160%, 180% 180%;
    animation-name: biomechanical-breathe;
  }
  html[data-world='biomechanical'] .world-horizon {
    inset: -10% -8% -4%;
    background:
      radial-gradient(ellipse at 28% 56%, transparent 0 12%, color-mix(in srgb, var(--world-accent) 38%, transparent) 12.35% 12.7%, transparent 13.1% 25%, color-mix(in srgb, var(--world-accent-secondary) 26%, transparent) 25.35% 25.7%, transparent 26%),
      radial-gradient(ellipse at 76% 40%, transparent 0 16%, color-mix(in srgb, var(--world-accent-secondary) 28%, transparent) 16.3% 16.65%, transparent 17.1% 31%, color-mix(in srgb, var(--world-accent) 24%, transparent) 31.35% 31.7%, transparent 32%);
    background-size: 125% 125%, 142% 142%;
    animation-name: biomechanical-network-drift;
  }
  html[data-world='biomechanical'] .world-silhouette {
    inset: -16% -12% -8%;
    background:
      repeating-radial-gradient(ellipse at 50% 116%, transparent 0 14%, color-mix(in srgb, var(--world-border) 26%, transparent) 14.25% 14.55%, transparent 14.9% 27%),
      radial-gradient(ellipse at 50% 112%, transparent 0 41%, color-mix(in srgb, var(--world-accent-secondary) 20%, transparent) 41.2% 41.55%, transparent 42%);
    opacity: .58;
    animation-name: biomechanical-ribs;
  }
  html[data-world='biomechanical'] .world-orbits {
    top: 7vh; right: -9%; width: min(1180px, 150vw); aspect-ratio: 1.52;
    background: var(--world-accent-secondary); mask: var(--world-motif) center / contain no-repeat;
    opacity: .2; animation-name: biomechanical-branching;
  }
  html[data-world='biomechanical'] .world-orbits > b:nth-child(1) { border: 1px solid color-mix(in srgb, var(--world-accent) 28%, transparent); border-radius: 46% 54% 38% 62% / 58% 36% 64% 42%; transform: rotate(-18deg); }
  html[data-world='biomechanical'] .world-orbits > b:nth-child(2) { inset: 16% 24% 8% 8%; border: 1px solid color-mix(in srgb, var(--world-accent-secondary) 34%, transparent); border-radius: 60% 30% 52% 42%; transform: rotate(22deg); }
  html[data-world='biomechanical'] .world-orbits > b:nth-child(3) { inset: 24% 7% 20% 34%; border: 1px solid color-mix(in srgb, var(--world-accent) 24%, transparent); border-radius: 34% 62% 43% 56%; transform: rotate(-9deg); }
  html[data-world='biomechanical'] .world-particles { background-image: radial-gradient(circle, var(--world-highlight) 0 1px, transparent 1.8px), radial-gradient(circle, var(--world-accent) 0 .8px, transparent 1.7px); background-size: 137px 181px, 223px 149px; animation-name: biomechanical-impulses; }
  html[data-world='biomechanical'] .world-particles-mid { background-image: radial-gradient(circle, var(--world-accent-secondary) 0 1.2px, transparent 2.4px); background-size: 181px 127px; opacity: .2; animation-name: biomechanical-impulses; }
  html[data-world='biomechanical'] .world-particles-near { background-image: radial-gradient(circle, var(--world-accent) 0 1.5px, transparent 2.7px); background-size: 271px 197px; opacity: .16; animation-name: biomechanical-impulses; }
  html[data-world='biomechanical'] .world-atmosphere[data-event='response-cascade'] .world-rare {
    inset: 8% 5%; border: 1px solid color-mix(in srgb, var(--world-accent) 62%, transparent);
    border-radius: 38% 62% 47% 53% / 55% 35% 65% 45%; opacity: 0;
    background: radial-gradient(ellipse at var(--world-rare-x) var(--world-rare-y), color-mix(in srgb, var(--world-highlight) 34%, transparent), transparent 19%), repeating-radial-gradient(ellipse at var(--world-rare-x) var(--world-rare-y), transparent 0 9%, color-mix(in srgb, var(--world-accent) 34%, transparent) 9.2% 9.5%, transparent 9.8% 18%);
    animation: biomechanical-response-cascade 9s ease-in-out both;
  }
  html[data-world='biomechanical'] .world-atmosphere[data-event='response-cascade'] .world-rare::before { inset: 6% 17%; border: 1px solid color-mix(in srgb, var(--world-accent-secondary) 65%, transparent); border-radius: 64% 36% 58% 42%; animation: biomechanical-impulse-travel 3s ease-in-out infinite; }
  html[data-world='biomechanical'] .world-atmosphere[data-event='response-cascade'] .world-rare::after { inset: 24% 4%; border-top: 1px solid var(--world-accent); border-bottom: 1px solid var(--world-accent-secondary); border-radius: 50%; animation: biomechanical-impulse-travel 2.2s ease-in-out infinite reverse; }

  .world-preview[data-world='biomechanical'] { background: radial-gradient(ellipse at 18% 20%, color-mix(in srgb, var(--world-accent-secondary) 18%, transparent), transparent 34%), linear-gradient(145deg, var(--world-deep), var(--world-background)); }
  .world-preview[data-world='biomechanical'] .world-portal-art { background: var(--world-accent); mask: var(--world-motif) center / 82% auto no-repeat; opacity: .32; animation: biomechanical-branching 14s ease-in-out infinite; }
  .world-preview[data-world='biomechanical'] .world-sample-card { border-radius: var(--world-radius); border-color: var(--world-border); box-shadow: var(--world-shadow); }

  html[data-world='biomechanical'] :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card, dialog, .notification-panel):not(:where(.print-preview-sheet *, #print-run-root *)) {
    position: relative; isolation: isolate; overflow: hidden; border-radius: var(--world-radius) !important;
    background:
      radial-gradient(ellipse at 91% 8%, color-mix(in srgb, var(--world-accent) 12%, transparent), transparent 28%),
      linear-gradient(135deg, color-mix(in srgb, var(--world-accent-secondary) 8%, var(--world-surface)), var(--world-surface) 55%, color-mix(in srgb, var(--world-deep) 8%, var(--world-surface))) !important;
    box-shadow: var(--world-shadow), inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 30%, transparent) !important;
  }
  html[data-world='biomechanical'] :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card)::before {
    content: ''; position: absolute; inset: 8px 11px; border: 1px solid color-mix(in srgb, var(--world-accent) 21%, transparent); border-radius: 40% 14% 34% 18% / 14% 28% 12% 24%; opacity: .72; pointer-events: none; z-index: 0; animation: biomechanical-card-membrane 12s ease-in-out infinite;
  }
  html[data-world='biomechanical'] :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card) > * { position: relative; z-index: 1; }
  html[data-world='biomechanical'] :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card)::after {
    content: '⌬'; display: grid; place-items: center; position: absolute; top: 8px; right: 10px; width: 17px; height: 17px; color: var(--world-accent); border: 1px solid color-mix(in srgb, var(--world-accent) 50%, transparent); border-radius: 50% 18% 50% 18%; background: color-mix(in srgb, var(--world-surface) 80%, transparent); box-shadow: 0 0 12px color-mix(in srgb, var(--world-accent) 30%, transparent); font-size: 10px; line-height: 1; pointer-events: none; animation: biomechanical-card-node 5.2s ease-in-out infinite;
  }
  html[data-world='biomechanical'][data-decorative-animations='on'] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):not(.card-dragging) { animation: world-card-biomechanical-breathe 11.5s ease-in-out infinite; }
  html[data-world='biomechanical'] :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):is(:hover, :focus-within) { transform: none !important; border-color: var(--world-accent) !important; box-shadow: var(--world-shadow), 0 0 0 1px color-mix(in srgb, var(--world-accent) 65%, transparent), 0 0 30px -18px var(--world-accent) !important; }
  html[data-world='biomechanical'] :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):is(:hover, :focus-within)::before { inset: 5px 7px; border-color: color-mix(in srgb, var(--world-accent) 56%, transparent); opacity: 1; animation: biomechanical-card-impulse .8s ease-out both; }
  html[data-world='biomechanical'] :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card):is(.active, .selected, [aria-selected='true'], [aria-pressed='true']) { border-color: var(--world-accent) !important; box-shadow: var(--world-shadow), inset 0 0 0 1px var(--world-accent), 0 0 26px -16px var(--world-accent) !important; }

  html[data-world='biomechanical'] .room-card.finished { border-color: color-mix(in srgb, var(--world-success) 62%, var(--world-border)) !important; background: radial-gradient(ellipse at 91% 8%, color-mix(in srgb, var(--world-success) 16%, transparent), transparent 30%), linear-gradient(135deg, color-mix(in srgb, var(--world-success) 10%, var(--world-surface)), var(--world-surface)) !important; }
  html[data-world='biomechanical'][data-decorative-animations='on'] .room-card.finished { animation: biomechanical-finish-integrate 1.4s ease-out both, world-card-biomechanical-breathe 11.5s 1.4s ease-in-out infinite; }
  html[data-world='biomechanical'] .room-card.arrival-tier:not(.finished) { border-color: color-mix(in srgb, var(--world-accent-secondary) 72%, var(--world-border)) !important; }
  html[data-world='biomechanical'] .room-card.early-tier:not(.finished) { border-color: color-mix(in srgb, var(--world-accent) 72%, var(--world-border)) !important; }
  html[data-world='biomechanical'] :is(.status-badge, .badge, .room-list-count, .logged-by-badge) { border-radius: var(--world-icon); box-shadow: inset 0 1px 0 color-mix(in srgb, var(--world-highlight) 18%, transparent); }
  html[data-world='biomechanical'] .status-badge.arrival::before { background: var(--world-status-accent-secondary); box-shadow: 0 0 8px var(--world-status-accent-secondary); }
  html[data-world='biomechanical'] .status-badge.out::before { background: #e5bd6a; box-shadow: 0 0 8px #e5bd6a; }
  html[data-world='biomechanical'] .status-badge.occupied::before { background: var(--world-status-accent); box-shadow: 0 0 8px var(--world-status-accent); }
  html[data-world='biomechanical'] .status-badge.finished::before { background: var(--world-success); box-shadow: 0 0 8px var(--world-success); }
  html[data-world='biomechanical'] .status-badge.late-checkout { color: var(--world-danger); border-color: var(--world-danger); background: color-mix(in srgb, var(--world-danger) 11%, transparent); }
  html[data-world='biomechanical'] .room-card .room-number::before { width: 10px; height: 10px; border-radius: 50% 18% 50% 18%; background: var(--world-accent); box-shadow: 0 0 9px color-mix(in srgb, var(--world-accent) 65%, transparent); clip-path: none; }

  html[data-world='biomechanical'] :is(.topbar, .panel > .panel-head) { position: relative; }
  html[data-world='biomechanical'] .panel > .panel-head { overflow: hidden; }
  html[data-world='biomechanical'] .topbar::after { content: ''; position: absolute; inset: auto 7% 0 7%; height: 1px; background: linear-gradient(90deg, transparent, var(--world-accent), var(--world-accent-secondary), transparent); opacity: .75; animation: biomechanical-synapse-line 6s ease-in-out infinite; pointer-events: none; }
  html[data-world='biomechanical'] .panel > .panel-head::after { content: '⌬'; position: absolute; right: 16px; top: 11px; color: var(--world-accent); font-size: 17px; opacity: .62; animation: biomechanical-node-breathe 4.8s ease-in-out infinite; pointer-events: none; }
  html[data-world='biomechanical'] .panel > .panel-head::before { opacity: .2; }

  html[data-world='biomechanical'] .sidebar { background: linear-gradient(90deg, color-mix(in srgb, var(--world-deep) 95%, var(--world-accent-secondary) 5%), var(--world-deep)) !important; }
  html[data-world='biomechanical'] .sidebar::before { content: ''; position: absolute; left: 28px; top: 78px; bottom: 24px; width: 2px; background: linear-gradient(var(--world-accent-secondary), color-mix(in srgb, var(--world-accent) 22%, transparent) 22% 78%, var(--world-accent)); opacity: .6; mask: linear-gradient(180deg, #000, transparent 8%, #000 20% 80%, transparent 92%, #000); pointer-events: none; }
  html[data-world='biomechanical'] .sidebar::after { content: ''; position: absolute; left: 24px; top: 90px; bottom: 36px; width: 10px; background: radial-gradient(circle, var(--world-accent) 0 2px, transparent 2.8px) 0 0 / 10px 49px; opacity: .58; pointer-events: none; }
  html[data-world='biomechanical'] .sidebar .brand, html[data-world='biomechanical'] .sidebar nav, html[data-world='biomechanical'] .sidebar-foot { position: relative; z-index: 1; }
  html[data-world='biomechanical'] .nav-item { padding-left: 18px; background: color-mix(in srgb, var(--world-surface) 8%, transparent); }
  html[data-world='biomechanical'] .nav-item > span:first-child { border-radius: var(--world-icon); background: color-mix(in srgb, var(--world-accent) 10%, transparent); }
  html[data-world='biomechanical'] .nav-item::before { left: 25px; width: 7px; height: 7px; border: 1px solid var(--world-accent); border-radius: 50%; background: var(--world-deep); box-shadow: 0 0 0 3px color-mix(in srgb, var(--world-accent) 10%, transparent); transform: translateY(-50%) scale(.7); }
  html[data-world='biomechanical'] .nav-item:hover::before { transform: translateY(-50%) scale(1); }
  html[data-world='biomechanical'] .nav-item.active::before { transform: translateY(-50%) scale(1.15); box-shadow: 0 0 0 3px color-mix(in srgb, var(--world-accent) 24%, transparent), 0 0 14px var(--world-accent); }
  html[data-world='biomechanical'] :is(.nav-item.active, .mobile-nav-sheet-item.active) { box-shadow: inset 3px 0 0 var(--world-accent), 0 0 20px -13px var(--world-accent) !important; }

  html[data-world='biomechanical'] .world-toggle { border-radius: var(--world-control); }
  html[data-world='biomechanical'] .world-toggle i { width: 40px; height: 22px; border: 1px solid var(--world-border); background: color-mix(in srgb, var(--world-deep) 65%, var(--world-surface)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--world-accent) 18%, transparent); }
  html[data-world='biomechanical'] .world-toggle i::before { content: ''; position: absolute; width: 6px; height: 6px; top: 7px; left: 8px; border-radius: 50%; background: var(--world-accent-secondary); box-shadow: 0 0 7px var(--world-accent-secondary); }
  html[data-world='biomechanical'] .world-toggle i::after { width: 9px; height: 9px; left: 4px; top: 5px; background: var(--world-accent); box-shadow: 0 0 8px var(--world-accent); transition: transform .2s ease, background .2s ease; }
  html[data-world='biomechanical'] .world-toggle[aria-checked='true'] i::after { transform: translateX(21px); background: var(--world-highlight); }
  html[data-world='biomechanical'] :is(.button, .notification-button):not(:disabled):active { transform: translateY(1px) scale(.985); box-shadow: inset 0 2px 7px color-mix(in srgb, var(--world-deep) 35%, transparent) !important; }

  html[data-world='biomechanical'] .world-loading-indicator { width: 38px; height: 26px; background: var(--world-accent); mask: var(--world-motif) center / contain no-repeat; animation: biomechanical-loader 2.6s ease-in-out infinite; }
  html[data-world='biomechanical'] :is(.spinner, [role='progressbar']) { border: 0 !important; border-radius: 0 !important; background: linear-gradient(135deg, transparent 35%, var(--world-accent) 36% 43%, transparent 44% 56%, var(--world-accent-secondary) 57% 64%, transparent 65%); mask: var(--world-motif) center / contain no-repeat; animation: biomechanical-loader 2.6s ease-in-out infinite; }
  html[data-world='biomechanical'] :is(dialog, [role='tooltip'], .tooltip, .card-order-toolbar) { box-shadow: var(--world-shadow), 0 0 0 1px color-mix(in srgb, var(--world-accent) 22%, transparent), 0 24px 70px -34px var(--world-deep); }
  html[data-world='biomechanical'] :is(.form-message:not(:empty), [role='alert']:not(:empty)) { border-left: 3px solid var(--world-danger); background: color-mix(in srgb, var(--world-danger) 9%, var(--world-surface)); }
  html[data-world='biomechanical'] .empty-state { border: 1px solid color-mix(in srgb, var(--world-border) 45%, transparent); border-radius: var(--world-radius); background: color-mix(in srgb, var(--world-surface) 88%, transparent); }
  html[data-world='biomechanical'] .world-shift { background: radial-gradient(ellipse at 50% 50%, color-mix(in srgb, var(--world-accent) 34%, transparent), transparent 42%), repeating-radial-gradient(ellipse at 50% 50%, transparent 0 10%, color-mix(in srgb, var(--world-accent-secondary) 25%, transparent) 10.2% 10.5%, transparent 10.8% 20%); animation: biomechanical-theme-awaken .85s ease both; }

  @keyframes biomechanical-breathe { 0%,100% { background-position: 0 0, 100% 100%, 0 0; } 50% { background-position: 6% -3%, 94% 104%, 8% 4%; } }
  @keyframes biomechanical-network-drift { 0%,100% { background-position: 0 0, 100% 100%; transform: translate3d(-1%, 1%, 0) rotate(-.5deg); } 50% { background-position: 5% -4%, 94% 104%; transform: translate3d(2%, -1%, 0) rotate(.7deg); } }
  @keyframes biomechanical-ribs { 0%,100% { transform: translate3d(-1%, 1%, 0) scale(1.01); } 50% { transform: translate3d(2%, -1%, 0) scale(1.04); } }
  @keyframes biomechanical-branching { 0%,100% { transform: rotate(-2deg) translate3d(-1%, 1%, 0); } 50% { transform: rotate(3deg) translate3d(2%, -2%, 0); } }
  @keyframes biomechanical-impulses { from { background-position: 0 0, 0 0; transform: translate3d(-1%, 0, 0); opacity: .2; } 48% { opacity: .58; } to { background-position: 137px -181px, -223px 149px; transform: translate3d(2%, -1%, 0); opacity: .2; } }
  @keyframes biomechanical-response-cascade { 0%,100% { opacity: 0; transform: scale(.86) rotate(-3deg); } 18%,76% { opacity: .7; transform: scale(1) rotate(2deg); } }
  @keyframes biomechanical-impulse-travel { 0%,100% { opacity: .18; transform: translateX(-5%) rotate(-2deg); } 50% { opacity: .76; transform: translateX(5%) rotate(2deg); } }
  @keyframes biomechanical-loader { 0%,100% { opacity: .35; transform: translateX(-4px); filter: drop-shadow(0 0 0 transparent); } 50% { opacity: 1; transform: translateX(4px); filter: drop-shadow(0 0 7px var(--world-accent)); } }
  @keyframes biomechanical-synapse-line { 0%,100% { opacity: .25; background-position: 0 0; } 50% { opacity: .9; background-position: 100% 0; } }
  @keyframes biomechanical-node-breathe { 0%,100% { opacity: .35; transform: rotate(-8deg) scale(.9); } 50% { opacity: .9; transform: rotate(8deg) scale(1.08); } }
  @keyframes biomechanical-card-membrane { 0%,100% { border-radius: 40% 14% 34% 18% / 14% 28% 12% 24%; transform: rotate(-.4deg); } 50% { border-radius: 18% 42% 16% 38% / 28% 12% 26% 14%; transform: rotate(.5deg); } }
  @keyframes biomechanical-card-node { 0%,100% { opacity: .38; transform: rotate(-10deg) scale(.92); } 50% { opacity: .95; transform: rotate(10deg) scale(1.08); } }
  @keyframes biomechanical-card-impulse { 0% { clip-path: inset(0 96% 0 0); } 100% { clip-path: inset(0 0 0 0); } }
  @keyframes world-card-biomechanical-breathe { 0%,100% { box-shadow: var(--world-shadow), inset 0 0 0 1px color-mix(in srgb, var(--world-border) 42%, transparent); background-position: 0 0, 100% 100%; } 50% { box-shadow: var(--world-shadow), inset 7px 0 17px -18px var(--world-accent-secondary), 0 0 22px -18px var(--world-accent); background-position: 8% -3%, 92% 103%; } }
  @keyframes biomechanical-finish-integrate { 0% { filter: brightness(1); } 35% { filter: brightness(1.16) drop-shadow(0 0 12px var(--world-success)); } 100% { filter: brightness(1); } }
  @keyframes biomechanical-theme-awaken { 0% { opacity: 0; transform: scale(.72); } 36% { opacity: .86; } 100% { opacity: 0; transform: scale(1.08); } }
}


/* Source: custom-adaptive-theme.css */
/* Custom Color & Background — adaptive atmosphere. User choices drive the
   light, material and motion; operational status colors keep their meaning. */
@media screen {
  html[data-theme='custom'] {
    --custom-source:#5e6ad2; --custom-background:#182033;
    --custom-primary:#5e6ad2; --custom-primary-bright:#8f9bff;
    --custom-primary-deep:#24295f; --custom-primary-muted:#727793;
    --custom-button-start:#24295f; --custom-button-end:#5e6ad2;
    --custom-contrast-accent:#855699; --custom-surface-tint:#eff0f8;
    --custom-shadow-tint:#171a35; --custom-primary-rgb:94 106 210;
    --custom-source-rgb:94 106 210; --custom-background-rgb:24 32 51;
    --custom-background-dim:.34; --custom-background-dim-light:.156; --custom-background-dim-soft:.43;
    --custom-color-intensity:.72; --custom-light-opacity:.13; --custom-light-opacity-light:.17;
    --custom-color-wash-alpha:.2; --custom-image-wash-alpha:.13; --custom-image-wash-alpha-light:.1;
    --custom-glass-mix:78%; --custom-glass-blur:18px; --custom-particle-count:1;
    --custom-motion-one:32s; --custom-motion-two:44s; --custom-motion-three:55s;
    --panel:color-mix(in srgb,var(--custom-surface-tint) 78%,transparent);
    --surface:color-mix(in srgb,var(--custom-surface-tint) 70%,transparent);
    --border:color-mix(in srgb,var(--custom-primary) 33%,var(--text));
    --border-soft:color-mix(in srgb,var(--custom-primary) 18%,transparent);
  }
  html[data-theme='custom'][data-mode='dark'] {
    --panel:color-mix(in srgb,#10131a 82%,var(--custom-primary-deep));
    --surface:color-mix(in srgb,#171b24 84%,var(--custom-primary-deep));
    --text:#f7f8ff; --muted:#c5c9d8; --faint:#aab0c1;
    --border:color-mix(in srgb,var(--custom-primary) 39%,#596071);
    --border-soft:color-mix(in srgb,var(--custom-primary) 19%,transparent);
  }
  html[data-theme='custom'][data-custom-glass='clear'] { --custom-glass-mix:63%; --custom-glass-blur:23px; }
  html[data-theme='custom'][data-custom-glass='solid'] { --custom-glass-mix:93%; --custom-glass-blur:9px; }
  html[data-theme='custom'][data-custom-motion='low'] { --custom-motion-one:50s; --custom-motion-two:67s; --custom-motion-three:82s; }
  html[data-theme='custom'][data-custom-motion='high'] { --custom-motion-one:20s; --custom-motion-two:27s; --custom-motion-three:34s; }

  html[data-theme='custom'] body {
    background-color:var(--custom-background) !important;
    background-image:
      radial-gradient(ellipse at 14% 8%,rgb(var(--custom-source-rgb) / var(--custom-color-wash-alpha)),transparent 48%),
      radial-gradient(ellipse at 88% 38%,color-mix(in srgb,var(--custom-contrast-accent) 23%,transparent),transparent 50%),
      linear-gradient(145deg,color-mix(in srgb,var(--custom-background) 72%,var(--custom-primary-deep)),var(--custom-background)) !important;
    background-attachment:fixed !important;
  }
  html[data-theme='custom'].has-photo-background body {
    background-image:
      linear-gradient(rgb(5 8 16 / var(--custom-background-dim)),rgb(var(--custom-background-rgb) / var(--custom-background-dim-soft))),
      radial-gradient(ellipse at 16% 12%,rgb(var(--custom-source-rgb) / var(--custom-image-wash-alpha)),transparent 52%),
      var(--photo-background) !important;
    background-position:center !important; background-size:cover !important;
  }
  html[data-theme='custom'][data-mode='light'].has-photo-background body {
    background-image:
      linear-gradient(rgb(255 255 255 / var(--custom-background-dim-light)),rgb(var(--custom-background-rgb) / var(--custom-background-dim-light))),
      radial-gradient(ellipse at 14% 9%,rgb(var(--custom-source-rgb) / var(--custom-image-wash-alpha-light)),transparent 55%),
      var(--photo-background) !important;
  }

  html[data-theme='custom'] #app-view { position:relative; isolation:isolate; }
  html[data-theme='custom'] .workspace { position:relative; z-index:2; }
  /* The mobile tab selector lives in .sidebar. Keep that dock in the app's
     original navigation layer so workspace content cannot intercept taps. */
  html[data-theme='custom'] .sidebar { z-index:3; }
  .custom-atmosphere { display:none; }
  html[data-theme='custom'] .custom-atmosphere {
    display:block; position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none !important;
    contain:strict; opacity:1; perspective:900px;
  }
  html[data-theme='custom'] .custom-light-field, html[data-theme='custom'] .custom-fragments { position:absolute; inset:-12%; pointer-events:none; }
  html[data-theme='custom'] .custom-light-field i { position:absolute; width:58vw; height:58vw; min-width:440px; min-height:440px; border-radius:50%; filter:blur(72px); opacity:var(--custom-light-opacity); mix-blend-mode:soft-light; will-change:transform; }
  html[data-theme='custom'] .custom-light-field i:nth-child(1) { left:-16%; top:-18%; background:var(--custom-primary-bright); animation:custom-light-one var(--custom-motion-one) ease-in-out infinite alternate; }
  html[data-theme='custom'] .custom-light-field i:nth-child(2) { right:-20%; top:12%; background:var(--custom-contrast-accent); animation:custom-light-two var(--custom-motion-two) ease-in-out -11s infinite alternate; }
  html[data-theme='custom'] .custom-light-field i:nth-child(3) { left:28%; bottom:-38%; background:var(--custom-primary-deep); animation:custom-light-three var(--custom-motion-three) ease-in-out -19s infinite alternate; }
  html[data-theme='custom'][data-mode='light'] .custom-light-field i { opacity:var(--custom-light-opacity-light); mix-blend-mode:multiply; }
  html[data-theme='custom'][data-custom-background='image'] .custom-light-field { opacity:.65; }
  html[data-theme='custom'] .custom-fragments i { position:absolute; left:var(--fragment-x); top:var(--fragment-y); width:var(--fragment-width); height:var(--fragment-height); border-radius:40%; background:var(--custom-primary-bright); opacity:.12; filter:blur(.25px); transform:rotate(var(--fragment-rotate)); animation:custom-fragment-drift var(--fragment-duration) linear var(--fragment-delay) infinite; }
  html[data-theme='custom'][data-custom-particles='sparse'] .custom-fragments i:nth-child(n+9),
  html[data-theme='custom'][data-custom-background='image'] .custom-fragments i:nth-child(n+9),
  html[data-theme='custom'][data-custom-particles='off'] .custom-fragments { display:none; }
  html[data-theme='custom'][data-custom-particles='rich'] .custom-fragments { opacity:1; }
  html[data-theme='custom'][data-custom-particles='normal'] .custom-fragments { opacity:.78; }

  html[data-theme='custom'] .sidebar {
    background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 94%,transparent),color-mix(in srgb,var(--custom-primary-deep) 15%,var(--panel))) !important;
    border-right:1px solid color-mix(in srgb,var(--custom-primary) 32%,transparent);
    box-shadow:18px 0 52px rgb(var(--custom-primary-rgb) / .08),inset -1px 0 rgb(255 255 255 / .08);
    backdrop-filter:blur(var(--custom-glass-blur)) saturate(1.18); -webkit-backdrop-filter:blur(var(--custom-glass-blur)) saturate(1.18);
  }
  html[data-theme='custom'] .sidebar::after { content:''; position:absolute; right:-1px; top:0; bottom:0; width:2px; background:linear-gradient(transparent,var(--custom-primary-bright) 22% 42%,transparent 70%); box-shadow:0 0 14px rgb(var(--custom-primary-rgb) / .52); opacity:.72; pointer-events:none; }
  html[data-theme='custom'] .nav-item { position:relative; border-radius:5px 16px 5px 10px; transition:color .22s ease,background .28s ease,box-shadow .28s ease,transform .22s ease; }
  html[data-theme='custom'] .nav-item.active { color:var(--text); background:linear-gradient(90deg,rgb(var(--custom-primary-rgb) / .26),rgb(var(--custom-primary-rgb) / .06)) !important; border-color:rgb(var(--custom-primary-rgb) / .44); box-shadow:inset 3px 0 var(--custom-primary-bright),0 8px 24px rgb(var(--custom-primary-rgb) / .11) !important; text-shadow:0 0 14px rgb(var(--custom-primary-rgb) / .32); }
  html[data-theme='custom'] .nav-item.active::after { content:''; position:absolute; left:-1px; top:24%; width:4px; height:52%; border-radius:5px; background:#fff; box-shadow:0 0 7px #fff,0 0 18px var(--custom-primary-bright); animation:custom-nav-arrive .62s ease-out 1; }

  html[data-theme='custom'] .topbar {
    background:
      linear-gradient(105deg,rgb(var(--custom-primary-rgb) / .17),transparent 38%),
      color-mix(in srgb,var(--panel) var(--custom-glass-mix),transparent) !important;
    border-bottom:1px solid rgb(var(--custom-primary-rgb) / .28);
    box-shadow:0 12px 40px rgb(var(--custom-primary-rgb) / .08),inset 0 -1px rgb(255 255 255 / .06);
    backdrop-filter:blur(var(--custom-glass-blur)) saturate(1.14); -webkit-backdrop-filter:blur(var(--custom-glass-blur)) saturate(1.14);
  }
  html[data-theme='custom'] .topbar h1 { font-weight:620; letter-spacing:-.035em; text-shadow:0 2px 20px rgb(var(--custom-primary-rgb) / .18); }

  html[data-theme='custom'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):not(.card-dragging) {
    position:relative; isolation:isolate; overflow:hidden;
    clip-path:polygon(0 0,calc(100% - 17px) 0,100% 17px,100% 100%,0 100%);
    border:1px solid color-mix(in srgb,var(--custom-primary) 36%,var(--border)) !important;
    border-radius:10px 0 12px 10px !important;
    background:
      radial-gradient(170px circle at var(--custom-pointer-x,-220px) var(--custom-pointer-y,-220px),rgb(var(--custom-primary-rgb) / .16),transparent 72%),
      linear-gradient(115deg,rgb(255 255 255 / .09),transparent 26% 76%,rgb(var(--custom-primary-rgb) / .08)),
      color-mix(in srgb,var(--panel) var(--custom-glass-mix),var(--custom-surface-tint)) !important;
    box-shadow:0 24px 52px color-mix(in srgb,var(--custom-shadow-tint) 32%,transparent),0 4px 12px rgb(4 8 18 / .2),inset 0 1px rgb(255 255 255 / .18),inset 4px 0 rgb(var(--custom-primary-rgb) / .46) !important;
    backdrop-filter:blur(var(--custom-glass-blur)) saturate(1.14); -webkit-backdrop-filter:blur(var(--custom-glass-blur)) saturate(1.14);
    transition:transform .24s ease,border-color .25s ease,box-shadow .3s ease,background .4s ease;
    animation:custom-prism-idle 17s ease-in-out infinite !important;
  }
  html[data-theme='custom'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):nth-child(3n+2) { animation-delay:-5.4s !important; }
  html[data-theme='custom'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):nth-child(3n) { animation-delay:-10.8s !important; }
  html[data-theme='custom'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card)::after { content:''; position:absolute; z-index:0; pointer-events:none; right:0; top:17px; width:2px; height:36%; background:linear-gradient(transparent,var(--custom-primary-bright),transparent); box-shadow:0 0 12px rgb(var(--custom-primary-rgb) / .55); opacity:.62; }
  html[data-theme='custom'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card) > * { position:relative; z-index:1; }
  html[data-theme='custom'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):is(:focus-within,.selected,.is-selected,[aria-selected='true']) { border-color:var(--custom-primary-bright) !important; box-shadow:0 28px 62px color-mix(in srgb,var(--custom-shadow-tint) 38%,transparent),0 0 0 1px rgb(var(--custom-primary-rgb) / .25),inset 5px 0 var(--custom-primary-bright) !important; }
  @media (hover:hover) {
    html[data-theme='custom'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card):hover { transform:translateY(-2px); border-color:color-mix(in srgb,var(--custom-primary-bright) 72%,var(--border)) !important; box-shadow:0 30px 60px color-mix(in srgb,var(--custom-shadow-tint) 38%,transparent),0 7px 16px rgb(4 8 18 / .2),inset 5px 0 rgb(var(--custom-primary-rgb) / .7) !important; }
  }

  html[data-theme='custom'] :is(.button,input,select,textarea,#mobile-nav-select) { border-color:color-mix(in srgb,var(--custom-primary) 32%,var(--border)); }
  html[data-theme='custom'] :is(input,select,textarea) { background:color-mix(in srgb,var(--surface) 86%,transparent); box-shadow:inset 0 1px rgb(255 255 255 / .08); }
  html[data-theme='custom'] :is(input,select,textarea,.button):focus-visible { outline:3px solid color-mix(in srgb,var(--custom-primary-bright) 72%,white); outline-offset:3px; box-shadow:0 0 0 6px rgb(var(--custom-primary-rgb) / .18),inset 0 1px rgb(255 255 255 / .1); }
  html[data-theme='custom'] .button.primary { position:relative; overflow:hidden; color:var(--on-accent); background:linear-gradient(135deg,var(--custom-button-start),var(--custom-button-end)) !important; border-color:color-mix(in srgb,var(--custom-primary-bright) 72%,white); box-shadow:0 8px 24px rgb(var(--custom-primary-rgb) / .26),inset 0 1px rgb(255 255 255 / .38); }
  html[data-theme='custom'] .button.primary::after { content:''; position:absolute; left:-45%; top:0; width:38%; height:2px; background:linear-gradient(90deg,transparent,#fff,transparent); opacity:.75; transition:left .45s ease; }
  html[data-theme='custom'] .button.primary:hover::after { left:108%; }
  html[data-theme='custom'] .button:active { transform:translateY(1px) scale(.985); box-shadow:0 0 0 8px rgb(var(--custom-primary-rgb) / .09); }
  html[data-theme='custom'] :is(.world-toggle,[role='switch']) i { background:color-mix(in srgb,var(--custom-primary-deep) 25%,var(--surface)); border-color:rgb(var(--custom-primary-rgb) / .45); }
  html[data-theme='custom'] :is(.world-toggle,[role='switch'])[aria-checked='true'] i { background:linear-gradient(90deg,var(--custom-primary-deep),var(--custom-primary)); box-shadow:inset 0 0 12px rgb(var(--custom-primary-rgb) / .38); }
  html[data-theme='custom'] :is(.world-toggle,[role='switch']) i::before { background:var(--custom-primary-bright); box-shadow:0 0 12px rgb(var(--custom-primary-rgb) / .75); }
  html[data-theme='custom'] :is(.mobile-nav-sheet-item,.world-segmented button) { clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%); border-radius:5px 0 8px 5px; }
  html[data-theme='custom'] :is(.mobile-nav-sheet-item.active,.world-segmented button[aria-pressed='true']) { background:linear-gradient(90deg,rgb(var(--custom-primary-rgb) / .3),rgb(var(--custom-primary-rgb) / .08)); border-color:var(--custom-primary); box-shadow:inset 0 -2px var(--custom-primary-bright); }

  /* Custom light is secondary on semantic states; meaning remains stable. */
  html[data-theme='custom'] :is(.status-badge.late-checkout,.status-badge.clean-needs-bed,.cine-inspection) { box-shadow:0 0 0 1px rgb(var(--custom-primary-rgb) / .24),0 8px 18px rgb(var(--custom-primary-rgb) / .08); }
  html[data-theme='custom'] :is(.status-badge.arrival,.arrival-badge,.early-badge) { border-color:color-mix(in srgb,#9e65e8 70%,var(--custom-primary)); box-shadow:0 5px 16px rgb(var(--custom-primary-rgb) / .1); }
  html[data-theme='custom'] .status-badge.stripped { box-shadow:0 0 0 1px rgb(var(--custom-primary-rgb) / .2),0 0 18px rgb(189 50 127 / .18); }
  html[data-theme='custom'] .status-badge.bed-made { box-shadow:0 0 0 2px rgb(var(--custom-primary-rgb) / .28),0 0 20px rgb(var(--custom-primary-rgb) / .2); }
  html[data-theme='custom'] .status-badge.finished { box-shadow:0 0 0 2px rgb(var(--custom-primary-rgb) / .25),0 0 22px rgb(48 183 123 / .22); }
  html[data-theme='custom'] .room-card.arrival-tier { background-image:linear-gradient(90deg,rgb(var(--custom-primary-rgb) / .1),transparent 32%) !important; }
  html[data-theme='custom'] .room-card:not(.arrival-tier):not(.finished) .checkout-turnover-status { box-shadow:inset -3px 0 rgb(var(--custom-primary-rgb) / .32); }

  html[data-theme='custom'] .custom-refraction-band { position:fixed; z-index:9997; top:-20vh; bottom:-20vh; left:-32vw; width:25vw; opacity:0; transform:skewX(-13deg) translateX(-20vw); background:linear-gradient(90deg,transparent,rgb(var(--custom-primary-rgb) / .08),rgb(var(--custom-primary-rgb) / .52),rgb(255 255 255 / .4),rgb(var(--custom-primary-rgb) / .12),transparent); filter:blur(8px); pointer-events:none; }
  html[data-theme='custom'][data-custom-transition] .custom-refraction-band { animation:custom-refraction .78s cubic-bezier(.2,.72,.25,1) 1; }
  html[data-theme='custom'][data-custom-transition='awakening'] .custom-light-field { animation:custom-atmosphere-awaken .92s ease-out 1; }
  html[data-theme='custom'][data-custom-transition='color-change'] #app-view .view > * { animation:custom-color-resolve .82s ease-out 1; }
  html[data-theme='custom'][data-custom-transition='background-change'] .custom-atmosphere { animation:custom-background-resolve .78s ease-out 1; }
  html[data-theme='custom'] .custom-view-entering { animation:custom-view-enter .5s ease-out 1; }
  html[data-theme='custom'] .custom-completion-sequence { overflow:visible; animation:custom-completion-shell 2s ease-out 1 !important; }
  html[data-theme='custom'] .custom-completion-sequence::before { content:''; position:absolute; z-index:3; inset:-2px; pointer-events:none; clip-path:inherit; border:2px solid transparent; background:linear-gradient(110deg,transparent 15%,var(--custom-primary-bright) 42%,#fff 50%,var(--custom-primary) 58%,transparent 84%) border-box; -webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; animation:custom-completion-rail 1.45s ease-out 1; }
  html[data-theme='custom'] .custom-completion-sequence .status-badge.finished { animation:custom-finished-converge 1.6s ease-out 1; }

  .custom-atmosphere-controls { display:grid; gap:14px; padding:14px; border:1px solid color-mix(in srgb,var(--custom-primary) 25%,var(--border)); background:rgb(var(--custom-primary-rgb) / .055); clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%); }
  .custom-atmosphere-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
  .custom-atmosphere-sliders { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .custom-atmosphere-controls label { display:grid; gap:6px; align-content:start; min-width:0; }
  .custom-atmosphere-controls input[type='color'] { width:100%; min-height:42px; padding:5px; }
  .custom-atmosphere-controls input[type='range'] { width:100%; accent-color:var(--custom-primary); }
}

@keyframes custom-light-one { from{transform:translate3d(-4%,2%,0) scale(.92)} to{transform:translate3d(24%,12%,0) scale(1.13)} }
@keyframes custom-light-two { from{transform:translate3d(8%,-8%,0) scale(1.08)} to{transform:translate3d(-25%,18%,0) scale(.9)} }
@keyframes custom-light-three { from{transform:translate3d(-12%,4%,0) scale(.95)} to{transform:translate3d(18%,-20%,0) scale(1.16)} }
@keyframes custom-fragment-drift { 0%{translate:-18px 18px;rotate:0deg;opacity:.03} 45%{opacity:.18} 100%{translate:54px -96px;rotate:170deg;opacity:.02} }
@keyframes custom-nav-arrive { 0%{transform:translateY(-28px);opacity:0} 60%{opacity:1} 100%{transform:none;opacity:.95} }
@keyframes custom-prism-idle { 0%,100%{box-shadow:0 24px 52px color-mix(in srgb,var(--custom-shadow-tint) 32%,transparent),0 4px 12px rgb(4 8 18 / .2),inset 0 1px rgb(255 255 255 / .18),inset 4px 0 rgb(var(--custom-primary-rgb) / .35)} 50%{box-shadow:0 27px 58px color-mix(in srgb,var(--custom-shadow-tint) 38%,transparent),0 5px 13px rgb(4 8 18 / .22),inset 0 1px rgb(255 255 255 / .24),inset 4px 0 rgb(var(--custom-primary-rgb) / .66)} }
@keyframes custom-refraction { 0%{opacity:0;transform:skewX(-13deg) translateX(-20vw)} 18%{opacity:.75} 80%{opacity:.55} 100%{opacity:0;transform:skewX(-13deg) translateX(165vw)} }
@keyframes custom-atmosphere-awaken { 0%{opacity:0;filter:saturate(0)} 42%{opacity:.5;filter:saturate(.35)} 100%{opacity:1;filter:none} }
@keyframes custom-color-resolve { 0%{filter:saturate(.15);opacity:.78} 45%{filter:saturate(.7)} 100%{filter:none;opacity:1} }
@keyframes custom-background-resolve { 0%{opacity:.12} 100%{opacity:1} }
@keyframes custom-view-enter { 0%{opacity:.76;filter:blur(3px);transform:translateX(4px)} 100%{opacity:1;filter:none;transform:none} }
@keyframes custom-completion-shell { 0%{filter:none} 35%{filter:drop-shadow(0 0 12px rgb(var(--custom-primary-rgb) / .7))} 100%{filter:none} }
@keyframes custom-completion-rail { 0%{opacity:0;clip-path:inset(0 100% 95% 0)} 45%{opacity:1;clip-path:inset(0 0 45% 0)} 80%{opacity:.82;clip-path:inset(0)} 100%{opacity:0;clip-path:inset(0)} }
@keyframes custom-finished-converge { 0%{transform:scale(.86);filter:brightness(1.7)} 44%{transform:scale(1.08);filter:brightness(1.35)} 100%{transform:none;filter:none} }

@media (max-width:700px) {
  .custom-atmosphere-grid,.custom-atmosphere-sliders { grid-template-columns:1fr; }
  html[data-theme='custom'] .sidebar { background:transparent !important; box-shadow:none; border:0; backdrop-filter:none; -webkit-backdrop-filter:none; }
  html[data-theme='custom'] .sidebar::after { display:none; }
  html[data-theme='custom'] #mobile-nav-select { background:linear-gradient(135deg,color-mix(in srgb,var(--custom-primary) 24%,var(--panel)),color-mix(in srgb,var(--panel) 92%,transparent)); box-shadow:inset 3px 0 var(--custom-primary-bright),0 10px 28px rgb(var(--custom-primary-rgb) / .15); }
}

html[data-theme='custom'][data-background-animations='off'] :is(.custom-light-field,.custom-fragments) *,
html[data-theme='custom'][data-custom-motion='off'] :is(.custom-light-field,.custom-fragments) * { animation:none !important; }
html[data-theme='custom'][data-decorative-animations='off'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card),
html[data-theme='custom'][data-decorative-animations='off'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card)::after { animation:none !important; }

@media (prefers-reduced-motion:reduce) {
  html[data-theme='custom'] *,html[data-theme='custom'] *::before,html[data-theme='custom'] *::after { scroll-behavior:auto !important; }
  html[data-theme='custom'] .custom-atmosphere *,html[data-theme='custom'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card),html[data-theme='custom'] .custom-refraction-band,html[data-theme='custom'] .custom-view-entering,html[data-theme='custom'] .custom-completion-sequence { animation:none !important; transition-duration:.01ms !important; }
}

@media print { .custom-atmosphere { display:none !important; } }


/* Source: enchanted-castle.css */
/* One story, two times of day. Browser palette overrides leave the shared
   catalog's identity/allowlist and existing ornamental geometry intact. */
@property --castle-foundation { syntax:'<color>'; inherits:true; initial-value:#f4e7c8; }
@property --castle-paper { syntax:'<color>'; inherits:true; initial-value:#fff3d8; }
@property --castle-raised { syntax:'<color>'; inherits:true; initial-value:#f8f2e6; }
@property --castle-type { syntax:'<color>'; inherits:true; initial-value:#4a332a; }

@media screen {
  html[data-world='enchanted-castle'][data-theme][data-mode][data-cinematic],
  .world-preview[data-world='enchanted-castle'][data-mode][data-mode],
  .world-choice[data-world-id='enchanted-castle'][data-mode][data-mode] {
    --castle-foundation:#f4e7c8; --castle-paper:#fff3d8; --castle-raised:#f8f2e6; --castle-type:#4a332a;
    --castle-blue:#4f79a7; --castle-royal:#315b96; --castle-gold:#d7a936; --castle-candle:#f2c76e;
    --castle-rose:#a52332; --castle-walnut:#4a332a; --castle-frame:#4f79a7;
    --castle-contact:#315b9633; --castle-reflection:#fff5dba6;
    --world-background:var(--castle-foundation); --world-deep:#e4d4b6;
    --world-surface:var(--castle-paper); --world-elevated:var(--castle-raised); --world-text:var(--castle-type);
    --world-secondary:#665247; --world-accent-secondary:#6a5329;
    --world-border:#8294a2; --world-highlight:#755614; --world-danger:#a52332; --world-success:#46603b;
    --world-on-accent:#fff3d8; --world-glow:#d7a93624;
    --cine-border:var(--castle-frame); --cine-left-ink:var(--castle-blue); --cine-left:3px;
    --cine-material:linear-gradient(116deg,var(--castle-reflection),transparent 34% 78%,#d7a93612),var(--castle-paper);
    --cine-shadow:0 18px 36px -23px #315b9666,0 4px 9px -5px #4a332a55,inset 0 0 0 5px #d7a93614;
    --room-stripped:#4a332a; --room-stripped-fill:#ebdabb;
    --room-bed:#315b96; --room-bed-fill:#fff3d8;
    --room-finished:#fff3d8; --room-finished-fill:#315b96;
    --room-amber:#4a332a; --room-amber-fill:#f2c76e;
    --room-privacy:#f4e7c8; --room-privacy-fill:#641f2b;
    --room-inspect:#172a52; --room-inspect-fill:#eabd4d;
    --cine-flow-ink:#d7a936; --cine-flow-secondary:#4f79a7;
    transition:--castle-foundation 1.5s ease,--castle-paper 1.5s ease,--castle-raised 1.5s ease,--castle-type 1.5s ease;
  }
  html[data-world='enchanted-castle'][data-theme][data-mode='dark'][data-cinematic],
  .world-preview[data-world='enchanted-castle'][data-mode='dark'][data-mode],
  .world-choice[data-world-id='enchanted-castle'][data-mode='dark'][data-mode] {
    --castle-foundation:#172a52; --castle-paper:#1d355c; --castle-raised:#263e63; --castle-type:#f4e7c8;
    --castle-frame:#bc9440; --castle-contact:#060e22b3; --castle-reflection:#f2c76e12; --castle-walnut:#3b2925;
    --world-deep:#0c1832; --world-secondary:#d6c9b1; --world-accent-secondary:#d7b67b;
    --world-border:#a89061; --world-highlight:#ffe2a0; --world-danger:#ffb6b6; --world-success:#b4d69e;
    --world-on-accent:#172a52; --world-glow:#d7a93630;
    --cine-left-ink:#3b2925; --cine-left:5px;
    --cine-material:radial-gradient(ellipse at 90% 0,#f2c76e12,transparent 54%),linear-gradient(135deg,var(--castle-paper),#172a52);
    --cine-shadow:0 30px 52px -18px #060e22bb,0 6px 14px -5px #3b2925,inset 0 0 0 5px #d7a93616,inset 0 1px #f2c76e55;
    --room-stripped:#172a52; --room-stripped-fill:#cebea0;
    --room-bed:#f4dfae; --room-bed-fill:#315b96;
    --room-finished:#172a52; --room-finished-fill:#d7a936;
    --room-amber:#f2c76e; --room-amber-fill:#641f2b;
    --room-privacy:#e3c785; --room-privacy-fill:#481a26;
    --room-inspect:#172a52; --room-inspect-fill:#f2c76e;
    --cine-flow-ink:#f2c76e; --cine-flow-secondary:#a52332;
  }

  /* Abstract plaster, timber, rooflines and arches. The larger night
     architecture is revealed by light; it never contains interactive content. */
  html[data-cinematic='enchanted-castle'] .world-base {
    background:radial-gradient(ellipse at 26% 12%,#fff9e855,transparent 62%),linear-gradient(140deg,var(--castle-foundation),var(--world-deep));
    animation-name:cinematic-castle-candle;
  }
  html[data-cinematic='enchanted-castle'][data-mode='dark'] .world-base { background:radial-gradient(ellipse at 75% 55%,#315b9629,transparent 65%),linear-gradient(140deg,#172a52,#0c1832); }
  html[data-cinematic='enchanted-castle'] :is(.world-horizon,.world-orbits,.world-particles-near) { opacity:.04; }
  html[data-cinematic='enchanted-castle'] .world-particles { opacity:.22; background-image:radial-gradient(circle,#d7a936 0 .8px,transparent 1.6px); background-size:211px 277px; }
  html[data-cinematic='enchanted-castle'] .world-particles-mid { opacity:.18; background:radial-gradient(circle,#f2c76e 0 1px,transparent 2px) 0 0 / 317px 239px; }
  html[data-cinematic='enchanted-castle'] .world-atmosphere[data-event='candle-rose'] .world-rare { background:radial-gradient(ellipse at center,#f2c76e20,transparent 60%); }
  html[data-cinematic='enchanted-castle'] .castle-village { display:flex; gap:3vw; align-items:flex-end; padding:0 4vw 8vh; opacity:.2; transition:opacity 1.5s,transform 1.5s; }
  .castle-village i { position:relative; width:22%; height:46%; border:1px solid #315b96; background:linear-gradient(90deg,transparent 48%,#4f79a726 49% 50%,transparent 51%),linear-gradient(0deg,transparent 55%,#4a332a29 55.5% 56%,transparent 56.5%),linear-gradient(140deg,#fff3d8,transparent); box-shadow:11px 12px 0 #315b960b; }
  .castle-village i:nth-child(2n) { height:68%; }
  .castle-village i:nth-child(3) { height:38%; }
  .castle-village i::before { content:''; position:absolute; inset:-48px -12px auto; height:48px; background:#4f79a738; clip-path:polygon(0 100%,50% 0,100% 100%,96% 100%,50% 8%,4% 100%); }
  .castle-village i::after { content:''; position:absolute; top:18%; left:27%; width:46%; height:25%; border:2px solid #315b9660; border-radius:50% 50% 0 0; background:linear-gradient(90deg,transparent 48%,#4a332a38 49% 51%,transparent 52%); }
  html[data-cinematic='enchanted-castle'][data-mode='dark'] .castle-village { opacity:0; transform:translateY(7vh) scale(1.15); }
  html[data-cinematic='enchanted-castle'] .castle-arches { padding:20vh 9vw 0; opacity:.1; transition:opacity 1.5s,padding 1.5s; }
  html[data-cinematic='enchanted-castle'] .castle-arches i { border-color:#315b9640; border-width:9px; box-shadow:14px 8px 24px #315b9626; transition:border-color 1.5s,border-width 1.5s,box-shadow 1.5s; }
  html[data-cinematic='enchanted-castle'][data-mode='dark'] .castle-arches { padding:0; opacity:.52; }
  html[data-cinematic='enchanted-castle'][data-mode='dark'] .castle-arches i { height:132%; width:31%; border-width:22px; border-color:#0b1839; box-shadow:inset 1px 0 #d7a93626,25px 20px 42px #050e23; }
  html[data-cinematic='enchanted-castle'] .castle-sunlight, html[data-cinematic='enchanted-castle'] .castle-candelight { transition:opacity 1.5s; }
  .castle-sunlight i,.castle-candelight i { position:absolute; inset:-30%; background:radial-gradient(ellipse at 25% 20%,#fff3d8bb,transparent 45%); animation:castle-sun-drift 43s ease-in-out infinite alternate; }
  .castle-sunlight i:nth-child(2) { background:radial-gradient(ellipse at 70% 40%,#f2c76e3d,transparent 42%); animation-duration:59s; animation-delay:-17s; }
  .castle-sunlight i:nth-child(3) { background:linear-gradient(114deg,transparent 35%,#fff9e44d 44%,transparent 53%); animation-duration:71s; animation-delay:-34s; }
  .castle-candelight { opacity:0; }
  .castle-candelight i { background:radial-gradient(ellipse at 15% 65%,#d7a93630,transparent 33%); animation:castle-candle-drift 17s ease-in-out infinite alternate; }
  .castle-candelight i:nth-child(2) { background:radial-gradient(ellipse at 85% 35%,#f2c76e36,transparent 30%); animation-duration:23s; animation-delay:-9s; }
  .castle-candelight i:nth-child(3) { background:radial-gradient(ellipse at 55% 0,#d7a93624,transparent 32%); animation-duration:31s; animation-delay:-18s; }
  html[data-cinematic='enchanted-castle'][data-mode='dark'] .castle-sunlight { opacity:0; }
  html[data-cinematic='enchanted-castle'][data-mode='dark'] .castle-candelight { opacity:1; }
  html[data-cinematic='enchanted-castle'] .castle-candle { background:radial-gradient(ellipse 340px 460px at var(--react-x) var(--react-y),#f2c76e38,transparent 72%); }
  html[data-cinematic='enchanted-castle'] .cinema-atmosphere::after { content:''; position:absolute; inset:0; pointer-events:none; opacity:0; background:radial-gradient(circle at calc(var(--react-x) - 65px) calc(var(--react-y) - 32px),#f2c76e 0 1px,transparent 2px),radial-gradient(circle at calc(var(--react-x) + 48px) calc(var(--react-y) - 65px),#fff3d8 0 1px,transparent 2px),radial-gradient(circle at calc(var(--react-x) + 93px) calc(var(--react-y) + 26px),#d7a936 0 1px,transparent 2px); transition:opacity .8s; }
  html[data-cinematic='enchanted-castle'][data-decorative-animations='on'] .cinema-atmosphere.is-reacting::after { opacity:.65; }
  html[data-cinematic='enchanted-castle'] .castle-window { background:repeating-linear-gradient(113deg,transparent 0 12%,#fff3d870 13% 19%,transparent 20% 28%); animation-duration:97s; }
  html[data-cinematic='enchanted-castle'][data-mode='dark'] .castle-window { background:linear-gradient(113deg,transparent 48%,#f2c76e30 49% 60%,transparent 68%); animation-duration:137s; }
  html[data-cinematic='enchanted-castle'] .castle-rose { stroke:#a52332; }
  html[data-cinematic='enchanted-castle'] .castle-rose circle { stroke:#d7a936; }
  html[data-cinematic='enchanted-castle'][data-mode='light'] .castle-rose { animation:castle-day-rose 191s linear infinite; }
  html[data-cinematic='enchanted-castle'][data-mode='light'] .castle-rose path { display:none; }
  html[data-cinematic='enchanted-castle'][data-mode='light'] .castle-rose circle { r:2px; stroke:#a52332; stroke-dasharray:none; }
  html[data-cinematic='enchanted-castle'][data-mode='dark'] .castle-rose circle { transform-origin:0 0; animation:castle-rose-spiral 109s linear infinite; }

  /* A rare, twelve-second ballroom reveal within a nearly three-minute loop. */
  .castle-ballroom { display:flex; justify-content:space-around; gap:4vw; padding:3vh 5vw 0; opacity:0; }
  .castle-ballroom i { height:120%; width:23%; border:2px solid #f2c76e; border-radius:50% 50% 0 0 / 28% 28% 0 0; box-shadow:0 0 55px #d7a93629,inset 0 0 65px #f2c76e26; background:linear-gradient(90deg,transparent 49%,#d7a93670 50%,transparent 51%),repeating-linear-gradient(0deg,transparent 0 175px,#d7a93650 176px 178px); }
  .castle-ballroom b { position:absolute; inset:0; background:radial-gradient(ellipse at 60% 0,#f2c76e38,transparent 70%),radial-gradient(circle,#ffe6b0 0 1px,transparent 2px) 0 0 / 153px 197px; }
  html[data-cinematic='enchanted-castle'][data-mode='dark'] .castle-ballroom { animation:castle-ballroom-reveal 173s ease-in-out infinite; }

  /* Preserve the original card silhouette; material, rails and reflections
     carry the transformation without clipping menus or moving controls. */
  html[data-cinematic='enchanted-castle'][data-theme][data-mode] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card)::before { outline-color:#d7a93666; transition:border-color 1.4s,box-shadow .5s,filter .5s; }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode] #app-view .view .panel > .panel-head { background:linear-gradient(100deg,#4f79a724,transparent 48%,#d7a93614) !important; border-bottom:1px solid var(--castle-frame) !important; box-shadow:inset 3px 0 var(--castle-blue); }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode='dark'] #app-view .view .panel > .panel-head { background:linear-gradient(100deg,#315b9660,transparent 60%,#d7a93616) !important; box-shadow:inset 3px 0 #d7a936; }
  html[data-cinematic='enchanted-castle'] #app-view .view :is(.panel,.metric,.room-card)::after { color:#d7a936; }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within,.selected,[aria-selected='true']) {
    --cine-material:radial-gradient(ellipse at 18% 0,var(--castle-reflection),transparent 65%),var(--castle-paper);
    --cine-shadow:0 24px 46px -18px var(--castle-contact),inset 0 0 0 2px var(--castle-frame),inset 0 0 32px -14px #d7a93680;
  }
  html[data-cinematic='enchanted-castle'][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.room-card):hover::after { text-shadow:0 0 8px #f2c76e66; animation:castle-gold-catch 2.6s ease-in-out infinite; }
  html[data-cinematic='enchanted-castle'] :is(.room-number,.summary-room-number,.room-list-number) { color:var(--world-accent); text-shadow:none; border-bottom:1px solid #d7a93688; }
  html[data-cinematic='enchanted-castle'][data-mode='light'] :is(.housekeeper-greeting,.topbar h1) { color:#315b96 !important; }
  html[data-cinematic='enchanted-castle'] .housekeeper-greeting em { color:var(--world-accent) !important; }
  html[data-cinematic='enchanted-castle'] .housekeeper-greeting { background:radial-gradient(ellipse at center,#f2c76e18,transparent 70%) !important; }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode] :is(.sidebar,.topbar,#mobile-nav-sheet,.notification-panel) { background:linear-gradient(120deg,#4f79a715,transparent 58%,#d7a93613),var(--castle-paper) !important; border-color:var(--castle-frame) !important; }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode='dark'] :is(.sidebar,.topbar,#mobile-nav-sheet,.notification-panel) { background:linear-gradient(120deg,#3b292560,transparent 48%,#d7a9360d),#0c1832 !important; }
  html[data-cinematic='enchanted-castle'] .topbar { box-shadow:inset 0 -2px #d7a93670 !important; }
  html[data-cinematic='enchanted-castle'] .topbar::before { pointer-events:none; background:repeating-linear-gradient(90deg,transparent 0 55px,#4f79a715 56px 57px,transparent 58px 92px); opacity:.8; }
  html[data-cinematic='enchanted-castle'][data-mode='dark'] .topbar::before { background:repeating-radial-gradient(ellipse at 65% 120%,transparent 0 70px,#d7a93616 71px 72px,transparent 73px 125px); }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode] :is(.nav-item,.mobile-nav-sheet-item) { border-radius:4px 12px 3px 3px; border-left:2px solid var(--castle-blue); color:var(--world-text); }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode] :is(.nav-item.active,.mobile-nav-sheet-item.active,[aria-selected='true']) { background:linear-gradient(110deg,#4f79a718,transparent),var(--castle-raised) !important; color:var(--world-accent) !important; box-shadow:inset 3px 0 var(--castle-blue),inset 0 -1px #d7a936 !important; }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode='dark'] :is(.nav-item.active,.mobile-nav-sheet-item.active,[aria-selected='true']) { background:linear-gradient(110deg,#315b96,#172a52) !important; box-shadow:inset 3px 0 #d7a936,inset 0 -1px #d7a936 !important; color:#f4e7c8 !important; }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode] :is(.button,.notification-button,:where(#mobile-nav-select)) { color:var(--world-text) !important; background:var(--castle-raised) !important; border-color:var(--castle-frame) !important; box-shadow:inset 0 1px #d7a93680 !important; }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode] .button.primary { background:linear-gradient(135deg,#315b96,#274d81) !important; color:#fff3d8 !important; border-color:#d7a936 !important; }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode='dark'] .button:not(.primary) { background:linear-gradient(120deg,#3b2925,#412631) !important; }
  html[data-cinematic='enchanted-castle'][data-theme][data-mode] .button:hover { box-shadow:inset 0 2px #f2c76e,inset 0 10px 18px -15px #f2c76e !important; }
  html[data-cinematic='enchanted-castle'] .button { position:relative; }
  html[data-cinematic='enchanted-castle'][data-decorative-animations='on'] .button:hover::after { content:''; position:absolute; top:1px; left:9%; width:82%; height:2px; pointer-events:none; background:linear-gradient(90deg,transparent,#fff3d8,#f2c76e,transparent); transform-origin:left; animation:castle-button-reflection .85s ease both; }
  html[data-cinematic='enchanted-castle'][data-theme] :is(input,select,textarea):focus-visible { outline-color:var(--castle-frame) !important; box-shadow:0 0 0 4px #d7a93633 !important; }
  [data-transition='enchanted-castle'] .cinema-nav-route path { stroke:#f2c76e; stroke-width:3; filter:drop-shadow(0 0 3px #d7a936); }
  html[data-cinematic='enchanted-castle'] body > .cinema-transition { position:fixed; inset:0; overflow:hidden; z-index:5; pointer-events:none; contain:strict; }

  /* Same status labels, single-status resolver and action handlers. */
  html[data-cinematic='enchanted-castle'] .cine-workflow[data-workflow='stripped'] { --signal-ink:var(--room-stripped); --signal-fill:var(--room-stripped-fill); }
  html[data-cinematic='enchanted-castle'] .cine-workflow[data-workflow='bed-made'] { --signal-ink:var(--room-bed); --signal-fill:var(--room-bed-fill); border-color:#b48b2d !important; }
  html[data-cinematic='enchanted-castle'] .cine-workflow[data-workflow='finished'] { --signal-ink:var(--room-finished); --signal-fill:var(--room-finished-fill); border-color:#d7a936 !important; }
  html[data-cinematic='enchanted-castle'] :is(.status-badge,.checkout-turnover-badge).stripped { background:var(--room-stripped-fill) !important; color:var(--room-stripped) !important; border-color:#aa8a51 !important; }
  html[data-cinematic='enchanted-castle'] :is(.status-badge,.checkout-turnover-badge).bed-made { background:var(--room-bed-fill) !important; color:var(--room-bed) !important; border-color:#d7a936 !important; }
  html[data-cinematic='enchanted-castle'] :is(.status-badge,.checkout-turnover-badge).finished { background:var(--room-finished-fill) !important; color:var(--room-finished) !important; border-color:#d7a936 !important; }
  html[data-cinematic='enchanted-castle'] .status-badge.late-checkout { background:var(--room-amber-fill) !important; color:var(--room-amber) !important; }
  html[data-cinematic='enchanted-castle'][data-mode='light'] .cine-transition-fx[data-effect='finished'] .cine-fx-rose { display:none; }
  html[data-cinematic='enchanted-castle'][data-mode='dark'] .cine-transition-fx[data-effect='finished'] .cine-fx-particles i:nth-child(5) { background:#a52332; }
  html[data-cinematic='enchanted-castle'] .cine-transition-fx[data-effect='finished'] .cine-fx-route { stroke:#d7a936; filter:drop-shadow(0 0 2px #f2c76e); }

  .castle-time-wash { opacity:0; pointer-events:none; }
  html[data-castle-passage='nightfall'] .castle-time-wash { background:linear-gradient(115deg,#f2c76e28,transparent 50%,#0c18324d); animation:castle-time-night 1.7s ease both; }
  html[data-castle-passage='daybreak'] .castle-time-wash { background:linear-gradient(115deg,#fff3d880,transparent 65%); animation:castle-time-day 1.7s ease both; }
  @media (max-width:700px) {
    html[data-cinematic='enchanted-castle'][data-theme][data-mode] .sidebar { background:transparent !important; border:0 !important; }
    .castle-village { gap:8vw; }
    .castle-village i { min-width:25%; }
    .castle-village i:nth-child(n+4) { display:none; }
  }
}

@keyframes castle-sun-drift { from { transform:translate(-6%,-3%) rotate(-5deg); } to { transform:translate(12%,8%) rotate(4deg); } }
@keyframes castle-candle-drift { 0%,100% { transform:translate(-3%,2%) scale(.96); opacity:.56; } 43% { opacity:.9; } 72% { transform:translate(5%,-4%) scale(1.04); opacity:.72; } }
@keyframes castle-gold-catch { 50% { filter:brightness(1.3); } }
@keyframes castle-button-reflection { 0% { transform:scaleX(.05); opacity:0; } 45% { opacity:.85; } 100% { transform:scaleX(1); opacity:0; } }
@keyframes castle-day-rose { 0%,91%,96%,100% { opacity:0; } 93%,94% { opacity:.8; } }
@keyframes castle-rose-spiral { 0%,72% { transform:rotate(-90deg) scale(1.4); } 80%,87% { transform:rotate(80deg) scale(.7); } 100% { transform:rotate(160deg) scale(1.6); } }
@keyframes castle-ballroom-reveal { 0%,84%,98%,100% { opacity:0; transform:translateX(-2%); } 88% { opacity:.1; } 91%,93% { opacity:.4; transform:translateX(1%); } 96% { opacity:.12; transform:translateX(3%); } }
@keyframes castle-time-night { 0% { opacity:0; transform:translateX(-4%); } 35% { opacity:1; } 100% { opacity:0; transform:translateX(4%); } }
@keyframes castle-time-day { 0% { opacity:0; transform:translateX(-9%); } 50% { opacity:.9; } 100% { opacity:0; transform:translateX(9%); } }

/* Respect both motion channels, reduced motion, hidden pages and print. */
@layer world-motion-accessibility {
  html[data-cinematic='enchanted-castle'][data-background-animations='off'] { transition:none !important; }
  html[data-cinematic='enchanted-castle'][data-background-animations='off'] :is(.castle-time-wash,.castle-ballroom,.castle-rose) { display:none !important; }
  html[data-cinematic='enchanted-castle'][data-decorative-animations='off'] #app-view .view :is(.panel,.metric,.room-card)::after { animation:none !important; }
  html[data-cinematic='enchanted-castle'].world-focus-mode :is(.castle-ballroom,.castle-rose) { opacity:0 !important; }
  @media (prefers-reduced-motion:reduce) {
    html[data-cinematic='enchanted-castle'] { transition:none !important; }
    html[data-cinematic='enchanted-castle'] .cinema-atmosphere * { animation:none !important; transition:none !important; }
    html[data-cinematic='enchanted-castle'] :is(.castle-time-wash,.castle-ballroom,.castle-rose) { display:none !important; }
  }
}


/* Source: remaining-checkouts-compact.css */
/* Denser Outs Remaining cards only; keep the existing theme and workflows. */
@media screen {
  /* The removal control now lives in Rooms; keep its touch target usable. */
  html body #checkout-view .checkout-remove-button { min-height: 44px; }
  html[data-theme] #app-view #remaining-checkouts-view {
    --app-card-gap: 10px;
  }
  #remaining-checkouts-view .today-checkout-floor-head { padding: 10px 10px 0; gap: 8px; }
  #remaining-checkouts-view .myrooms-bed-summary { margin: 0 10px 10px; }
  #remaining-checkouts-view .today-checkout-floor-head .myrooms-floor-beds { justify-content: flex-start; margin: 5px 0; }
  html[data-theme] #app-view #remaining-checkouts-view .manager-room-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    padding: 10px;
    align-items: start;
  }
  html[data-theme] #app-view #remaining-checkouts-view .today-checkout-card {
    padding: 12px;
    min-width: 0;
  }
  #remaining-checkouts-view .room-card-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 8px;
    margin-bottom: 8px;
    padding-bottom: 8px;
  }
  #remaining-checkouts-view .room-card-head > div:first-child {
    display: contents;
  }
  #remaining-checkouts-view .room-card-head .room-number { grid-column: 1; grid-row: 1; }
  #remaining-checkouts-view .room-card-head > div:first-child > :not(.room-number) { grid-column: 1 / -1; }
  #remaining-checkouts-view .room-card .room-number { font-size: 22px; gap: 6px; }
  #remaining-checkouts-view .room-card-head .badge { font-size: 12px; padding: 4px 8px; }
  #remaining-checkouts-view .room-card-head .room-status-wrap { grid-column: 2; grid-row: 1; max-width: 100%; margin-left: 0; }
  #remaining-checkouts-view .room-status-toggle { white-space: normal; min-height: 44px; }
  html[data-cinematic] #remaining-checkouts-view .cine-room-signals { margin: 4px 0 2px; gap: 4px; }
  #remaining-checkouts-view .manager-assignee {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
  }
  #remaining-checkouts-view .assignee-select { min-width: 0; width: 100%; min-height: 44px; padding-block: 5px; }
  #remaining-checkouts-view :is(.checkout-open-items, .needs-box, .manager-recurring-checks) {
    margin-block: 6px;
    padding: 7px 8px;
  }
  #remaining-checkouts-view .checkout-open-items li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 6px;
    align-items: center;
    font-size: 12px;
  }
  #remaining-checkouts-view .checkout-open-item-kind { grid-column: 1; font-size: 10px; }
  #remaining-checkouts-view .checkout-open-items li > span:nth-child(2) { grid-column: 1; overflow-wrap: anywhere; }
  #remaining-checkouts-view .checkout-open-item-controls { grid-column: 2; grid-row: 1 / span 2; }
  #remaining-checkouts-view .checkout-open-items .button { min-height: 44px; }
  #remaining-checkouts-view .today-finished-line { margin-bottom: 6px; font-size: 12px; padding: 5px 8px; }
  /* Photos and provenance must not compete with a fixed-width action for
     one flex row. Give the description a full row and actions a second. */
  #remaining-checkouts-view .fix-item {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px 8px;
    padding: 8px;
  }
  #remaining-checkouts-view .fix-photo-slot { grid-column: 1; grid-row: 1; align-self: start; }
  #remaining-checkouts-view .fix-item-copy { grid-column: 1 / -1; grid-row: 1; }
  #remaining-checkouts-view .fix-photo-slot + .fix-item-copy { grid-column: 2 / -1; }
  #remaining-checkouts-view .fix-item .maintenance-logged-by {
    display: block;
    width: auto;
    max-width: 100%;
    margin-top: 3px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    line-height: 1.35;
  }
  #remaining-checkouts-view .fix-item > .muted { grid-column: 1 / 3; grid-row: 2; min-width: 0; }
  #remaining-checkouts-view .fix-item > :is(.button, .maintenance-fixer-select) {
    grid-column: 1 / -1;
    grid-row: 2;
    min-width: 0;
    max-width: 100%;
    min-height: 44px;
    justify-self: end;
  }
  #remaining-checkouts-view .fix-item > .maintenance-fixer-select { width: 100%; }
  #remaining-checkouts-view .fix-item.done > .button { grid-column: 3; }
  #remaining-checkouts-view .manager-send-back-form { margin-top: 6px; gap: 5px; }
  #remaining-checkouts-view .checkout-room-add-form { margin: 6px 0; padding-top: 6px; gap: 5px; }
  #remaining-checkouts-view .manager-early-arrival-row { margin-top: 4px; }
  #remaining-checkouts-view .manager-room-message-tools { margin-top: 5px; }
  #remaining-checkouts-view .ops-room-tools { padding-top: 5px; }
  /* Keep secondary actions on one compact row, including on narrow phones.
     Operational flags keep their own full-width rows above the two tools. */
  html body #remaining-checkouts-view .today-checkout-card:has(> .manager-room-message-tools):has(> .ops-room-tools button) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    column-gap: 5px;
  }
  html body #remaining-checkouts-view .today-checkout-card > * { min-width: 0; grid-column: 1 / -1; }
  html body #remaining-checkouts-view .today-checkout-card > .manager-room-message-tools {
    grid-column: 1;
    align-self: end;
  }
  html body #remaining-checkouts-view .today-checkout-card:has(> .manager-room-message-tools) > .ops-room-tools {
    grid-column: 2;
  }
  html body #remaining-checkouts-view .ops-room-tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    align-self: end;
  }
  html body #remaining-checkouts-view .ops-room-tools .ops-flag { grid-column: 1 / -1; overflow-wrap: anywhere; }
  html body #remaining-checkouts-view :is(.manager-room-message-tools, .ops-room-tools) .button {
    min-width: 0 !important;
    width: 100% !important;
    min-height: 44px !important;
    padding: 5px 6px !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    white-space: normal !important;
  }
  html body #remaining-checkouts-view .room-card-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    margin-top: 6px;
  }
  html body #remaining-checkouts-view .room-card-actions > button {
    min-width: 0 !important;
    min-height: 44px !important;
    width: 100% !important;
    padding: 5px 6px !important;
    font-size: 12px;
    white-space: normal !important;
    line-height: 1.25 !important;
  }
}
@media screen and (min-width: 380px) {
  html body #remaining-checkouts-view .room-card-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


/* Source: myrooms-compact.css */
/* My Rooms only: retain every task/action, but stop controls claiming a row. */
@media screen {
  html[data-theme] #app-view #myrooms-view { --app-card-gap: 12px; }
  #myrooms-view .housekeeper-grid { align-items: start; }
  html[data-theme] #app-view #myrooms-view .room-card {
    padding: 12px;
    min-width: 0;
    container: myroom / inline-size;
  }
  #myrooms-view .room-card-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 6px 8px;
    margin-bottom: 8px;
    padding-bottom: 8px;
  }
  #myrooms-view .room-card-head > div:first-child { min-width: 0; }
  #myrooms-view .room-card .room-number { font-size: 24px; gap: 6px; }
  #myrooms-view .room-card-head .room-status-wrap { margin: 0; max-width: 120px; }
  #myrooms-view .room-status-toggle { min-height: 44px; white-space: normal; padding: 6px 9px; }
  html[data-cinematic] #myrooms-view .cine-room-signals { margin: 4px 0 0; gap: 4px; }
  #myrooms-view .room-card .button {
    width: auto;
    min-width: 0;
    max-width: 100%;
    min-height: 44px;
    padding: 5px 9px;
    font-size: 12px;
    line-height: 1.25;
    white-space: normal;
  }
  #myrooms-view :is(.fix-item, .need-item) { gap: 6px; padding: 5px 7px; }
  #myrooms-view :is(.fix-item, .need-item) > .button { flex: 0 0 auto; }
  #myrooms-view :is(.fix-item-copy, .need-item > span:first-child) { min-width: 0; flex: 1 1 auto; overflow-wrap: anywhere; }
  #myrooms-view .fix-list { gap: 4px; margin-top: 6px; }
  #myrooms-view .needs-box { margin-block: 6px; padding: 7px 8px; }
  #myrooms-view .need-add-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; margin-top: 6px; }
  #myrooms-view .need-add-form input { min-width: 0; width: 100%; min-height: 44px; padding: 6px 9px; font-size: 16px; }
  #myrooms-view .need-add-form .button { min-width: 52px; }
  #myrooms-view .room-list-inline { margin-top: 6px; padding: 6px 8px; }
  #myrooms-view .room-list-block-head { gap: 6px; margin-bottom: 2px; font-size: 11px; }
  #myrooms-view .room-list-items { gap: 2px; margin-bottom: 0; }
  #myrooms-view .room-list-item { gap: 6px; padding: 2px 0; }
  #myrooms-view .room-list-item-name { font-size: 12px; }
  #myrooms-view .room-card-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    margin-top: 8px;
  }
  #myrooms-view .room-card-actions > .button { width: 100%; }
  #myrooms-view .manager-room-message-tools { margin-top: 5px; }
  #myrooms-view .ops-room-tools { gap: 5px; padding-top: 5px; }
  #myrooms-view .ops-room-tools .button { flex: 1 1 0; }
  #myrooms-view .ops-room-tools .ops-flag { max-width: 100%; overflow-wrap: anywhere; }
  /* Keep the secondary tools together instead of three card-wide rows. */
  #myrooms-view .room-card:has(> .manager-room-message-tools):has(> .ops-room-tools button) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    column-gap: 5px;
  }
  #myrooms-view .room-card > * { min-width: 0; }
  #myrooms-view .room-card:has(> .manager-room-message-tools):has(> .ops-room-tools button) > * { grid-column: 1 / -1; }
  #myrooms-view .room-card > .manager-room-message-tools { grid-column: 1 !important; }
  #myrooms-view .room-card:has(> .manager-room-message-tools) > .ops-room-tools { grid-column: 2 !important; align-self: start; }
  #myrooms-view .manager-room-message-tools .button { width: 100%; height: 100%; }
}
@container myroom (min-width: 330px) {
  #myrooms-view .room-card-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


/* Source: room-work-items-compact.css */
/* Dense item sections inside room cards, not the main room workflow controls. */
@media screen {
  /* Make the work state immediately readable: warm and saturated when open,
     green and fully legible when fixed. */
  html[data-theme] #app-view {
    --work-open-ink: color-mix(in srgb, var(--red) 88%, var(--text));
    --work-open-fill: color-mix(in srgb, var(--red) 18%, var(--surface));
    --work-open-border: color-mix(in srgb, var(--red) 78%, var(--border));
    --work-fixed-ink: color-mix(in srgb, var(--green) 84%, var(--text));
    --work-fixed-fill: color-mix(in srgb, var(--green) 18%, var(--surface));
    --work-fixed-border: color-mix(in srgb, var(--green) 78%, var(--border));
  }
  html[data-theme] #app-view :is(.fix-item, .need-item, .room-list-item, .flat-item-row):not(.done) {
    color: var(--work-open-ink);
    background: linear-gradient(90deg, var(--work-open-fill), color-mix(in srgb, var(--work-open-fill) 35%, transparent));
    border-color: var(--work-open-border);
    box-shadow: inset 4px 0 0 var(--work-open-border);
  }
  html[data-theme] #app-view :is(.fix-item.done, .need-item.done, .room-list-item.done, .flat-item-row.done) {
    color: var(--work-fixed-ink);
    background: linear-gradient(90deg, var(--work-fixed-fill), color-mix(in srgb, var(--work-fixed-fill) 35%, transparent));
    border-color: var(--work-fixed-border);
    box-shadow: inset 4px 0 0 var(--work-fixed-border);
    opacity: 1;
  }
  html[data-theme] #app-view :is(.fix-item.done, .need-item.done) .muted,
  html[data-theme] #app-view .room-list-item.done .room-list-item-name,
  html[data-theme] #app-view .flat-item-row.done :is(.flat-item-room, .flat-item-name) {
    color: var(--work-fixed-ink);
  }
  html[data-theme] #app-view :is(.room-list-item.done .room-list-item-name, .flat-item-row.done .flat-item-name) {
    text-decoration-thickness: 2px;
  }
  html[data-theme] #app-view .maintenance-quick-panel .maintenance-item,
  html[data-theme] #app-view .maintenance-list .maintenance-item:not(.done) {
    color: var(--work-open-ink);
    background: linear-gradient(90deg, var(--work-open-fill), transparent);
    border-bottom-color: var(--work-open-border);
    box-shadow: inset 4px 0 0 var(--work-open-border);
    padding-inline: 8px;
  }
  html[data-theme] #app-view :is(.maintenance-fixed-card .maintenance-item, .maintenance-list .maintenance-item.done) {
    color: var(--work-fixed-ink);
    background: linear-gradient(90deg, var(--work-fixed-fill), transparent);
    border-bottom-color: var(--work-fixed-border);
    box-shadow: inset 4px 0 0 var(--work-fixed-border);
    opacity: 1;
    padding-inline: 8px;
  }
  html[data-theme] #app-view .checkout-open-items li:not(.checkout-completed-item) {
    color: var(--work-open-ink);
    background: var(--work-open-fill);
    border: 1px solid var(--work-open-border);
    border-radius: 6px;
    padding: 4px 6px;
  }
  html[data-theme] #app-view .checkout-open-items li.checkout-completed-item {
    color: var(--work-fixed-ink) !important;
    background: var(--work-fixed-fill);
    border: 1px solid var(--work-fixed-border);
    border-radius: 6px;
    padding: 4px 6px;
    opacity: 1;
  }
  html[data-theme] #app-view :is(.room-card, .room-inspection-card) :is(.fix-list, .room-list-items) {
    gap: 3px;
    margin-block: 4px;
  }
  html[data-theme] #app-view :is(.room-card, .room-inspection-card) :is(.fix-item, .need-item, .room-list-item) {
    padding: 3px 6px;
    gap: 6px;
    min-height: 0;
    align-items: center;
  }
  html[data-theme] #app-view :is(.room-card, .room-inspection-card) :is(.fix-list, .room-list-items, .checkout-open-items) .button {
    min-height: 30px;
    height: auto;
    width: auto;
    min-width: 0;
    flex: 0 0 auto;
    padding: 3px 7px;
    font-size: 12px;
    line-height: 1.25;
    white-space: normal;
  }
  html[data-theme] #app-view :is(.room-card, .room-inspection-card) .fix-item-copy {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
  }
  html[data-theme] #app-view :is(.room-card, .room-inspection-card) .fix-item > .muted {
    font-size: 11px;
    flex: 0 0 auto;
  }
  html[data-theme] #app-view :is(.room-card, .room-inspection-card) .fix-photo-thumb { width: 36px; height: 36px; }
  html[data-theme] #app-view :is(.room-card, .room-inspection-card) .room-list-block {
    padding: 5px 7px;
    margin-top: 5px;
  }
  html[data-theme] #app-view :is(.room-card, .room-inspection-card) .room-list-block-head {
    margin-bottom: 2px;
    gap: 6px;
    font-size: 11px;
    line-height: 1.3;
  }
  html[data-theme] #app-view :is(.room-card, .room-inspection-card) .room-list-item-name { font-size: 12px; line-height: 1.35; }
  html[data-theme] #app-view .room-card .checkout-open-items { padding: 5px 7px; margin-block: 5px; }
  html[data-theme] #app-view .room-card .checkout-open-items ul { gap: 3px; margin-top: 3px; }
  html[data-theme] #app-view .room-card .checkout-open-items li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1px 6px;
    align-items: center;
    font-size: 12px;
  }
  html[data-theme] #app-view .room-card .checkout-open-item-kind { grid-column: 1; font-size: 10px; }
  html[data-theme] #app-view .room-card .checkout-open-items li > span:nth-child(2) { grid-column: 1; overflow-wrap: anywhere; }
  html[data-theme] #app-view .room-card .checkout-open-item-controls { grid-column: 2; grid-row: 1 / span 2; }
}

/* The Inspected summary is a compact manager queue on phones. Keep the room,
   readiness, message, and operational tools visible without stacking each
   control into its own full-width row. */
@media screen and (max-width: 700px) {
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] {
    padding: 12px;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .today-summary-dialog-head {
    gap: 8px;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .today-summary-dialog-head h3 {
    margin: 1px 0 2px;
    font-size: 18px;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .today-summary-dialog-head p {
    font-size: 12px;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .summary-room-list {
    gap: 5px;
    margin-top: 9px;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .summary-room-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 7px;
    padding: 7px 8px;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .summary-room-main {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 3px 7px;
    min-width: 0;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .summary-room-number {
    font-size: 15px;
    white-space: nowrap;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .summary-room-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3px 5px;
    min-width: 0;
    font-size: 11px;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .summary-room-main .cine-room-signals {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 3px;
    margin: 2px 0 0;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .summary-room-main .cine-room-signals :is(.cine-workflow, .cine-operational, .cine-timing, .cine-room-type) {
    padding: 3px 6px;
    font-size: 11px !important;
    line-height: 1.2;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .summary-room-main .cine-room-signals .cine-notes {
    min-width: 32px;
    min-height: 32px;
    padding: 3px 6px;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .summary-room-actions {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    width: auto;
    min-width: 0;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] :is(.summary-room-actions, .manager-room-message-tools, .ops-room-tools) button {
    min-height: 32px !important;
    height: auto !important;
    padding: 4px 7px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    border-radius: 8px !important;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .summary-room-actions .status-badge {
    max-width: 100%;
    padding: 4px 7px;
    font-size: 11px;
    line-height: 1.2;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] .manager-room-message-tools {
    grid-column: 1;
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    margin-top: 0;
  }
  html[data-theme] #today-summary-dialog[data-summary-kind="inspected"] > .summary-room-list > .summary-room-row > .ops-room-tools {
    grid-column: 2;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    min-width: 0;
    padding-top: 0;
    margin-top: 0;
  }
}


/* Source: coworkers-outs.css */
.coworkers-outs-panel { padding: 18px; }

.coworkers-outs-summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
}

.coworkers-outs-grid { align-items: start; }

.coworkers-outs-card {
  min-width: 0;
}

.coworkers-outs-assignee {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: .82rem;
}

.coworkers-outs-item-group {
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, var(--surface-2) 64%, transparent);
}

.coworkers-outs-item-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
  color: var(--text);
}

.coworkers-outs-item-head span,
.coworkers-outs-item-state {
  color: var(--muted);
  font-size: .8rem;
}

.coworkers-outs-items {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.coworkers-outs-items li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: baseline;
  padding-top: 5px;
  border-top: 1px solid color-mix(in srgb, var(--border) 42%, transparent);
}

.coworkers-outs-empty {
  margin-top: 12px;
  padding: 10px 12px;
  color: var(--muted);
  border: 1px dashed color-mix(in srgb, var(--border) 78%, transparent);
  border-radius: 12px;
}

@media (max-width: 700px) {
  .coworkers-outs-panel { padding: 12px; }
  .coworkers-outs-summary { display: grid; gap: 4px; }
  .coworkers-outs-card .room-card-head { align-items: flex-start; }
}


/* Source: presence.css */
/* Staff presence is small and theme-driven. The panel is fixed to the
   viewport so sticky headers and animated cards cannot clip it. */
.online-now-wrap { position: relative; flex: 0 0 auto; }
.online-now-button {
  display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 7px 11px;
  border: 1px solid var(--border); border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0)), var(--surface);
  color: var(--secondary); font: 600 12px/1 inherit; cursor: pointer; box-shadow: var(--lit-edge, none);
  transition: border-color var(--motion, 180ms) ease, color var(--motion, 180ms) ease, transform var(--motion, 180ms) ease;
}
.online-now-button:hover, .online-now-button[aria-expanded="true"] { border-color: color-mix(in srgb, var(--accent) 55%, var(--border)); color: var(--text); transform: translateY(-1px); }
.online-now-button strong { min-width: 1.1em; color: var(--accent-ink, var(--accent)); font-variant-numeric: tabular-nums; text-align: center; }
.online-now-wrap:is([data-connection="connecting"],[data-connection="reconnecting"],[data-connection="unavailable"]) .presence-dot { background: var(--amber, #d69b35); box-shadow: 0 0 0 3px color-mix(in srgb, var(--amber, #d69b35) 16%, transparent), 0 0 10px color-mix(in srgb, var(--amber, #d69b35) 40%, transparent); }
.presence-dot, .presence-person-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: var(--green, #39b77b); box-shadow: 0 0 0 3px color-mix(in srgb, var(--green, #39b77b) 16%, transparent), 0 0 10px color-mix(in srgb, var(--green, #39b77b) 45%, transparent); }
.online-now-panel {
  position: fixed; z-index: 2147483647; box-sizing: border-box; margin: 0; right: auto; bottom: auto;
  width: min(340px, calc(100vw - 24px)); max-height: min(62vh, 520px); overflow: auto; overscroll-behavior: contain;
  padding: 13px; border: 1px solid var(--border); border-radius: var(--radius-m, 16px);
  background: var(--panel, #17181a);
  background-image: linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, var(--accent) 4%), var(--panel));
  color: var(--text); box-shadow: var(--shadow-pop, 0 18px 50px rgba(0,0,0,.35)), var(--lit-edge, none);
  -webkit-backdrop-filter: blur(24px) saturate(1.25); backdrop-filter: blur(24px) saturate(1.25);
}
.online-now-panel[hidden] { display: none; }
.presence-panel-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.presence-panel-head strong { font-size: 11px; letter-spacing: .13em; color: var(--accent-ink, var(--accent)); }
.presence-panel-head span { color: var(--muted); font-size: 11px; }
.presence-list { display: grid; gap: 6px; }
.presence-person { display: grid; grid-template-columns: 9px minmax(0, 1fr); gap: 9px; align-items: start; padding: 9px 8px; border: 1px solid color-mix(in srgb, var(--border) 70%, transparent); border-radius: 10px; background: color-mix(in srgb, var(--surface-2) 78%, transparent); }
.presence-person-dot { margin-top: 4px; }
.presence-person-dot.away { background: var(--amber, #d69b35); box-shadow: 0 0 0 3px color-mix(in srgb, var(--amber, #d69b35) 15%, transparent), 0 0 10px color-mix(in srgb, var(--amber, #d69b35) 38%, transparent); }
.presence-person-copy { min-width: 0; display: grid; gap: 2px; }
.presence-person-name, .presence-person-meta { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.presence-person-name { font-weight: 650; }
.presence-person-meta { color: var(--muted); font-size: 11px; }
.presence-empty { padding: 12px 8px 5px; color: var(--muted); font-size: 12px; }
@media (max-width: 700px) { .online-now-button { min-height: 36px; padding: 7px 9px; gap: 6px; font-size: 11px; } .online-now-label { display: none; } .online-now-panel { max-height: min(66vh, 520px); } }
@media print { .online-now-wrap, .online-now-panel { display: none !important; } }


/* Source: print-picker-layout.css */
/* Screen-only picker layout: printed cards and preview sheets are unchanged. */
@media screen {
  html[data-theme] #print-select-dialog {
    position: fixed;
    inset: 0;
    margin: auto;
    box-sizing: border-box;
    width: min(520px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    max-height: min(760px, calc(100vh - 24px));
    max-height: min(760px, calc(100dvh - 24px)) !important;
    padding: 16px;
    overflow: hidden !important;
    transform: none !important;
    clip-path: none !important;
    mask: none !important;
  }
  html[data-theme] #print-select-dialog[open] { display: flex; flex-direction: column; gap: 12px; }
  #print-select-dialog > .today-summary-dialog-head { flex: 0 0 auto; min-width: 0; gap: 10px; }
  #print-select-dialog > .today-summary-dialog-head > div { min-width: 0; overflow-wrap: anywhere; }
  #print-select-dialog .print-cancel { flex: 0 0 auto; min-height: 44px; }
  #print-select-dialog > .print-card-list {
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    max-height: none;
    margin: 0;
    overflow: auto;
    overscroll-behavior: contain;
    touch-action: pan-y;
  }
  #print-select-dialog .print-card-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 8px;
    min-width: 0;
    padding: 8px;
  }
  #print-select-dialog .print-card-row > span:not(.print-card-count) { min-width: 0; overflow-wrap: anywhere; }
  #print-select-dialog .print-card-row input { width: 20px; height: 20px; margin: 0; }
  #print-select-dialog > .print-select-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    flex: 0 0 auto;
    gap: 8px;
    min-width: 0;
  }
  html[data-theme] #print-select-dialog .print-select-actions > button {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 9px 8px;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  @media (max-height: 480px) {
    html[data-theme] #print-select-dialog { padding: 10px; }
    html[data-theme] #print-select-dialog[open] { gap: 8px; }
    #print-select-dialog .today-summary-dialog-head .eyebrow { display: none; }
  }
}


/* Source: inspection-mode.css */
@media screen {
  .im-launcher { margin: 16px 0; }
  .im-launcher button { min-height: 48px; width: 100%; white-space: normal; }
  html[data-theme] #operations-dialog.inspection-mode {
    inset: 12px; margin: auto; width: min(760px, calc(100vw - 24px));
    max-width: calc(100vw - 24px); height: calc(100dvh - 24px); max-height: calc(100dvh - 24px) !important;
    padding: 16px; overflow: auto !important; clip-path: none !important; mask: none !important;
  }
  #operations-dialog.inspection-mode .ops-header { position: sticky; top: -16px; padding: 12px 0; background: var(--panel); z-index: 4; }
  #operations-dialog.inspection-mode .ops-header h2 { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 1.2rem; overflow-wrap: anywhere; }
  #operations-dialog.inspection-mode .ops-header button { flex-shrink: 0; }
  .im-toolbar { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; align-items: center; }
  #operations-dialog .im-toolbar label { min-width: 0; }
  #operations-dialog.inspection-mode .im-left { flex: 0 0 auto; margin-left: auto; white-space: nowrap; font-size: clamp(1.25rem, 4.6vw, 1.65rem); font-weight: 800; line-height: 1.1; color: var(--text); }
  .im-receipt { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; border-left: 4px solid var(--green,#258b60); padding: 10px; background: var(--surface-2); overflow-wrap: anywhere; }
  .im-receipt > span { min-width: 0; }
  #operations-dialog .im-room { padding: 16px 0; }
  #operations-dialog .im-room h3 { margin: 8px 0; font-size: clamp(2rem,8vw,3rem); }
  .im-context { display: flex; flex-wrap: wrap; gap: 8px; font-weight: bold; color: var(--accent); }
  .im-room dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 16px 0; }
  .im-room dt { color: var(--muted); font-size: .8rem; }
  .im-room dd { margin: 4px 0 0; overflow-wrap: anywhere; }
  .im-decisions,.im-navigation { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 12px 0; }
  #operations-dialog.inspection-mode .im-navigation { gap: 8px; margin: 0 0 12px; }
  #operations-dialog.inspection-mode .im-navigation button { min-width: 0; min-height: 44px; padding: 8px 12px; white-space: normal; }
  #operations-dialog .im-decisions button { min-height: 68px !important; font-size: 1.05rem; font-weight: bold; }
  html[data-theme] #operations-dialog.inspection-mode .im-decisions [data-ops=pass] { background: #17663f !important; color: white !important; }
  html[data-theme] #operations-dialog.inspection-mode .im-decisions [data-ops=send-back] { border: 2px solid var(--danger,#b83348); }
  .im-queue { margin-top: 14px; }
  .im-queue summary { cursor: pointer; padding: 12px 0; }
  .im-queue > div { display: grid; gap: 8px; }
  .im-queue [aria-current=true] { outline: 2px solid var(--accent); outline-offset: -2px; }
  .im-missed-groups { display: grid; gap: 12px; }
  .im-missed-groups fieldset { border: 1px solid var(--border); border-radius: 8px; padding: 10px; min-width: 0; }
  .im-missed-groups legend { font-weight: bold; padding: 0 5px; }
  .im-missed-groups fieldset > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  #operations-dialog .im-missed { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 7px; border: 1px solid var(--border); border-radius: 8px; cursor: pointer; overflow-wrap: anywhere; }
  #operations-dialog .im-missed:has(input:checked) { background: var(--accent-soft); border-color: var(--accent); }
  #operations-dialog .im-missed input { width: 20px; height: 20px; min-height: 20px; padding: 0; flex: 0 0 20px; accent-color: var(--accent); }
  #operations-dialog .im-missed span { min-width: 0; }
  .im-return-actions { display: grid; gap: 8px; }
  .hk-return-note { grid-column: 1 / -1; font-size: .85rem; overflow-wrap: anywhere; }
  .hk-return-note p { white-space: pre-wrap; margin: 6px 0; }
  @media(max-width:400px) { .im-toolbar { grid-template-columns: 1fr; } .im-room dl { gap: 8px; } }
}
@media print { .im-launcher { display: none !important; } }

#operations-dialog.inspection-mode .arc-identity { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
#operations-dialog.inspection-mode .arc-number { margin:0; }
#operations-dialog.inspection-mode .im-open-items h3 { font-size:.95rem; margin:8px 0; }
#operations-dialog.inspection-mode .ops-item-group h4 { font-size:.85rem; margin:8px 0 4px; }
#operations-dialog.inspection-mode .ops-open-items ul { margin:0; padding:0; }
#operations-dialog.inspection-mode .ops-open-items li { display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:6px 0; }
#operations-dialog.inspection-mode .ops-open-items li > span { flex:1 1 120px; min-width:0; overflow-wrap:anywhere; }
#operations-dialog.inspection-mode .ops-item-resolution { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
#operations-dialog.inspection-mode .ops-item-resolution button { min-height:44px; padding:5px 8px; font-size:.8rem; }
#operations-dialog.inspection-mode .im-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); }
#operations-dialog.inspection-mode .im-toolbar .ops-checkbox { grid-column:1/-1; }
@media(max-width:360px) { #operations-dialog.inspection-mode .im-toolbar { grid-template-columns:1fr; } }
/* Keep badge updates in their own header row, including themes that constrain flex children. */
#operations-dialog.inspection-mode .ops-header { display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px 12px; }
#operations-dialog.inspection-mode .ops-header h2 { grid-column:1;grid-row:1; }
#operations-dialog.inspection-mode .ops-header > button { grid-column:3;grid-row:1; }
#operations-dialog.inspection-mode .im-left { grid-column:2;grid-row:1;align-self:center; }
#operations-dialog.inspection-mode .im-room-badges { grid-column:1/-1;grid-row:2;min-width:0; }
#operations-dialog.inspection-mode .room-badges { display:flex;flex-wrap:wrap; }

#operations-dialog.inspection-mode .im-badge-room { display:block;font-size:.8rem;margin-bottom:4px; }


/* Source: morning-list.css */
@media screen {
  [data-morning-list] { min-width:0; }
  .morning-list-tools {display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
  .morning-list-tools label {display:flex;align-items:center;gap:8px}
  .morning-list-rows {max-height:440px;overflow:auto;overscroll-behavior:contain;display:grid;gap:8px}
  .morning-list-row {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:10px;border:1px solid var(--border);border-radius:12px}
  .morning-list-row>div {display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
  .morning-list-row>div>span:last-child {font-size:.9rem}
  .morning-list-row details {grid-column:1/-1;font-size:.8rem;color:var(--muted)}
  .morning-arrival {font-size:.72rem;font-weight:700;color:var(--accent)}
  [data-morning-list] .button {min-height:44px;padding:8px 12px;white-space:normal}
  .morning-changes {margin:14px 0;border:1px solid var(--border);padding:12px;border-radius:12px}
  .morning-change {padding:10px 0;border-top:1px solid var(--border)}
  .morning-change p {margin:6px 0}
  .morning-change>div {display:flex;gap:8px;flex-wrap:wrap}
  [data-morning-add] {display:grid;gap:8px;margin-top:14px}
  [data-morning-add] select {max-width:100%;min-height:44px}
  .morning-bulk {margin-top:18px}
  .morning-bulk>summary {cursor:pointer;padding:10px 0}
  .morning-unassigned select {min-width:0;max-width:100%;min-height:44px}
  .morning-unassigned .morning-list-row {grid-template-columns:minmax(60px,1fr) minmax(0,1fr)}
}


/* Source: assignment-board.css */
#assignment-board{display:grid;gap:16px;min-width:0;color:var(--text)}
#assignment-board h2{margin:0 0 10px}
#assignment-board .ab-metrics,#assignment-board .ab-tools,#assignment-board .ab-batch,#assignment-board .ab-mode,#assignment-board .ab-secondary{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#assignment-board .ab-top,#assignment-board .ab-tools,#assignment-board .ab-batch{padding:14px;background:var(--panel,var(--surface));border:1px solid var(--border);border-radius:var(--card-radius,18px)}
#assignment-board .ab-progress{display:flex;align-items:center;gap:12px;margin:12px 0 6px}
#assignment-board progress{width:100%;height:8px;accent-color:var(--accent);display:block;min-width:30px}
#assignment-board .ab-arrival-summary{font-size:.85rem;opacity:.85}
#assignment-board label{display:flex;align-items:center;gap:8px;min-width:0}
#assignment-board select{max-width:100%;min-width:100px;width:auto;min-height:44px}
#assignment-board .button{width:auto;min-height:44px;margin:0;padding:8px 12px;font-size:.85rem;line-height:1.2;white-space:normal}
#assignment-board .ab-mode [aria-pressed=true]{outline:2px solid var(--accent);outline-offset:-2px;background:var(--panel-strong,var(--panel))}
#assignment-board .ab-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));align-items:start;gap:12px;min-width:0}
#assignment-board .ab-column{min-width:0;border:1px solid var(--border);border-radius:var(--card-radius,18px);background:var(--panel,var(--surface));padding:12px}
#assignment-board summary{cursor:pointer;min-height:44px;list-style:none}
#assignment-board .ab-column>summary{display:grid;gap:6px;padding-bottom:8px}
#assignment-board .ab-column>summary span{font-size:.8rem;line-height:1.4}
#assignment-board .ab-column>summary small{opacity:.75;font-size:.75rem}
#assignment-board .ab-room-list{display:grid;gap:8px}
#assignment-board .ab-floor,#assignment-board .ab-floor-rooms{display:grid;gap:8px;min-width:0}
#assignment-board .ab-floor+.ab-floor{border-top:1px solid var(--border);padding-top:8px}
#assignment-board .ab-floor-heading{margin:0;font-size:.9rem;line-height:1.4}
#assignment-board .ab-floor-heading label{min-height:44px;cursor:pointer}
#assignment-board .ab-floor-heading input{flex-shrink:0}
#assignment-board .ab-floor-title{display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap}
#assignment-board .ab-floor-count{display:inline-block;padding:3px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel-strong,var(--panel));color:var(--text);font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
#assignment-board .ab-floor-filter-count{font-size:.75rem;font-weight:400}
#assignment-board .ab-floor-empty{margin:0 0 4px;font-size:.8rem}
#assignment-board .ab-room{min-width:0;padding:10px;border:1px solid var(--border);border-inline-start:4px solid var(--accent);border-radius:12px;background:var(--bg,var(--panel));overflow-wrap:anywhere}
#assignment-board .ab-room[data-status=ready]{border-inline-start-color:#229968}
#assignment-board .ab-room[data-status=sent-back]{border-inline-start-color:#dc5363}
#assignment-board .ab-room[data-status=inspection]{border-inline-start-color:#bc942c}
#assignment-board .ab-room-head{display:flex;justify-content:space-between;gap:6px;align-items:center}
#assignment-board .ab-room-head span{font-size:.7rem;font-weight:700;text-align:right}
#assignment-board input[type=checkbox]{width:22px;height:22px;margin:0;accent-color:var(--accent)}
#assignment-board .ab-room-head label{min-height:44px;font-size:1.2rem}
#assignment-board .ab-status{font-size:.9rem;font-weight:600;margin-bottom:4px}
#assignment-board .ab-details>summary{display:flex;align-items:center;font-size:.8rem;opacity:.85}
#assignment-board .ab-details p,#assignment-board .ab-helpers,#assignment-board .ab-helping p{font-size:.8rem;margin:6px 0}
#assignment-board .ab-corrections{font-size:.8rem;padding:6px 0}
#assignment-board .ab-complete{font-weight:700}
#assignment-board .ab-drop{outline:3px dashed var(--accent)}
.assignments-legacy{margin-top:24px}.assignments-legacy>summary{min-height:44px;cursor:pointer}
@media(max-width:700px){#assignment-board .ab-columns{grid-template-columns:minmax(0,1fr)}#assignment-board .ab-tools>label{flex:1 1 130px}#assignment-board .ab-tools select{width:100%;min-width:0}#assignment-board .ab-batch{gap:8px}#assignment-board .ab-batch>label{flex:1 1 100%}#assignment-board .ab-batch select{flex:1}#assignment-board .ab-mode{width:100%}#assignment-board .ab-mode button{flex:1}#assignment-board .ab-progress{font-size:.85rem}}
#assignment-tracker{position:fixed;z-index:70;inset-block-start:50%;inset-inline-end:max(14px,env(safe-area-inset-right));transform:translateY(-50%);width:min(268px,24vw);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;color:var(--text);border:1px solid color-mix(in srgb,var(--border) 86%,var(--accent));border-radius:var(--card-radius,18px);background:color-mix(in srgb,var(--panel,var(--surface)) 90%,transparent);backdrop-filter:blur(18px) saturate(1.35);-webkit-backdrop-filter:blur(18px) saturate(1.35);box-shadow:0 18px 50px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.18)}
#assignment-tracker[hidden]{display:none}
#assignment-tracker .at-card{display:grid;gap:12px;padding:14px}
#assignment-tracker .at-heading{display:flex;justify-content:space-between;gap:8px;align-items:baseline;border-bottom:1px solid var(--border);padding-bottom:8px}
#assignment-tracker h2{font-size:1rem;line-height:1.2;margin:0}
#assignment-tracker .at-date{font-size:.72rem;opacity:.78;white-space:nowrap}
#assignment-tracker .at-progress{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:baseline;font-size:.85rem}
#assignment-tracker .at-progress>strong{font-size:.95rem}
#assignment-tracker .at-progress>span{font-size:.78rem;opacity:.82}
#assignment-tracker progress{grid-column:1/-1;width:100%;height:8px;accent-color:var(--accent)}
#assignment-tracker .at-section{min-width:0}
#assignment-tracker .at-section h3{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;margin:0 0 5px;opacity:.85}
#assignment-tracker .at-section ul,#assignment-tracker .at-confirm ul{list-style:none;padding:0;margin:0;display:grid;gap:4px}
#assignment-tracker .at-section li,#assignment-tracker .at-confirm li{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-size:.82rem;line-height:1.3}
#assignment-tracker .at-section li span{min-width:0;overflow-wrap:anywhere}
#assignment-tracker .at-section li strong{white-space:nowrap;font-variant-numeric:tabular-nums}
#assignment-tracker .at-empty{opacity:.72;font-style:italic}
#assignment-tracker .at-approve{width:100%;min-height:44px;white-space:normal;line-height:1.2}
#assignment-tracker .at-approved{display:grid;gap:3px;padding:9px;border:1px solid color-mix(in srgb,#218c61 55%,var(--border));border-radius:12px;background:color-mix(in srgb,#218c61 14%,var(--panel));font-size:.78rem}
#assignment-tracker .at-approved strong{font-size:.86rem}
#assignment-tracker .at-approved span,#assignment-tracker .at-approved time{opacity:.82}
#assignment-tracker .at-confirm{width:min(400px,calc(100vw - 28px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--border);border-radius:var(--card-radius,18px);color:var(--text);background:var(--panel,var(--surface));box-shadow:0 24px 80px rgba(0,0,0,.42)}
#assignment-tracker .at-confirm::backdrop{background:rgba(0,0,0,.52);backdrop-filter:blur(3px)}
#assignment-tracker .at-confirm-inner{padding:20px;overflow:auto}
#assignment-tracker .at-confirm h3{margin:0 0 8px}
#assignment-tracker .at-confirm p{margin:8px 0;font-size:.9rem}
#assignment-tracker .at-confirm li{padding:4px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 65%,transparent)}
#assignment-tracker .at-confirm-total{padding-top:4px}
#assignment-tracker .at-confirm-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:16px}
#assignment-tracker .at-confirm-actions .button{min-height:44px}
body.assignment-tracker-active #assignments-view{padding-inline-end:min(294px,27vw)}
@media(max-width:900px){
  #assignment-tracker{inset-block-start:auto;inset-inline:12px;inset-block-end:calc(74px + env(safe-area-inset-bottom));transform:none;width:auto;max-height:min(32dvh,290px);border-radius:16px}
  #assignment-tracker .at-card{gap:8px;padding:10px 12px}
  #assignment-tracker .at-heading{padding-bottom:6px}
  #assignment-tracker .at-section ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;max-height:82px;overflow:auto}
  #assignment-tracker .at-section li{font-size:.76rem}
  #assignment-tracker .at-all-assigned{display:none}
  body.assignment-tracker-active #assignments-view{padding-inline-end:0;padding-bottom:calc(260px + env(safe-area-inset-bottom))}
}
@media(max-width:430px){
  #assignment-tracker .at-card{gap:6px}
  #assignment-tracker .at-section ul{grid-template-columns:1fr;max-height:64px}
  #assignment-tracker .at-date{font-size:.66rem}
}
/* Expand the existing roster in place; the tracker owns the one scroll area. */
#assignment-tracker .at-roster-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
#assignment-tracker .at-section .at-roster{grid-template-columns:minmax(0,1fr);max-height:none;overflow:visible}
#assignment-tracker .at-section .at-worker{display:block;min-width:0}
#assignment-tracker .at-worker-toggle{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:5px 2px;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}
#assignment-tracker .at-worker-toggle>span:first-child{flex:1}
#assignment-tracker .at-chevron{font-size:1.15rem;line-height:1;min-width:12px;text-align:center;color:var(--accent)}
#assignment-tracker .at-room-chips{display:flex;flex-wrap:wrap;gap:6px;padding:3px 0 9px}
#assignment-tracker .at-room-chips[hidden]{display:none}
#assignment-tracker .at-room-chip{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:36px;padding:4px 8px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer}
#assignment-tracker .at-collapse{min-height:32px;padding:3px 0;border:0;background:transparent;color:inherit;font:inherit;font-size:.72rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
#assignment-tracker :is(.at-worker-toggle,.at-room-chip,.at-collapse):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#assignment-tracker :is(.at-worker-toggle,.at-room-chip):hover{background:color-mix(in srgb,var(--accent) 18%,var(--panel))}
#assignment-board .ab-room{scroll-margin-block-start:100px}
#assignment-board .ab-tracker-highlight{outline:3px solid var(--accent);outline-offset:3px;animation:assignment-tracker-pulse .7s ease-in-out 3}
@keyframes assignment-tracker-pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 30%,transparent)}}
@media(prefers-reduced-motion:reduce){#assignment-board .ab-tracker-highlight{animation:none}}
@media(max-width:900px){#assignment-tracker .at-room-chip{min-height:44px}#assignment-tracker{max-height:min(32dvh,290px,calc(100dvh - 90px - env(safe-area-inset-bottom)))}}
#assignment-tracker .at-housekeeping-progress .at-progress-line,#assignment-tracker .at-completion{grid-column:1/-1}
#assignment-tracker .at-completion{padding:7px 9px;border:1px solid color-mix(in srgb,var(--accent) 50%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));font-size:.82rem}
#assignment-tracker .at-room-chip{gap:5px;font-size:.75rem;flex-wrap:wrap;max-width:100%;text-align:start}
#assignment-tracker .at-room-chip[data-status="finished"]{border-style:dashed}
#assignment-tracker .at-room-chip[data-status="inspected"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--panel))}
#assignment-tracker .at-room-chip:is([data-status="sent-back"],[data-status="rework"]){border-style:dotted}
#assignment-tracker .at-remaining-toggle{min-height:44px;padding:4px 0;border:0;background:transparent;color:var(--text);font:inherit;font-size:.78rem;font-weight:600;text-align:end;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
#assignment-tracker .at-remaining-panel{grid-column:1/-1;min-width:0}
#assignment-tracker .at-remaining-panel[hidden]{display:none}
#assignment-tracker :is(.at-remaining-list,.at-inspection-list){list-style:none;padding:0;margin:2px 0 6px;max-height:min(220px,28dvh);overflow:auto;overscroll-behavior:contain;border-block:1px solid var(--border)}
#assignment-tracker .at-remaining-room{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;width:100%;min-height:44px;padding:7px 3px;border:0;border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent);border-radius:0;background:transparent;color:var(--text);font:inherit;font-size:.76rem;text-align:start;cursor:pointer}
#assignment-tracker .at-remaining-room>span{min-width:0;overflow-wrap:anywhere}
#assignment-tracker .at-remaining-status{margin-inline-start:auto;font-size:.72rem}
#assignment-tracker :is(.at-remaining-room,.at-remaining-toggle):hover{background:color-mix(in srgb,var(--accent) 12%,var(--panel))}
#assignment-tracker :is(.at-remaining-room,.at-remaining-toggle):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
#assignment-tracker .at-inspection-queue{grid-column:1/-1;min-width:0;border:1px solid var(--border);border-radius:8px;padding:2px 7px}
#assignment-tracker .at-inspection-toggle{width:100%;text-align:start}
#assignment-tracker .at-inspection-hint{font-size:.72rem;margin:0 0 5px;opacity:.82}
#assignment-tracker .at-inspection-primary{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel))}
#assignment-tracker .at-inspection-primary .at-inspection-toggle{font-weight:700}
/* The same tracker becomes compact outside Assignments, never a second panel. */
#assignment-tracker .at-heading{flex-wrap:wrap;align-items:center;position:sticky;top:-10px;z-index:1;background:var(--panel,var(--surface))}
#assignment-tracker .at-heading h2{flex:1;min-width:110px}
#assignment-tracker :is(.at-minimize,.at-restore){min-height:44px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);font:inherit;cursor:pointer}
#assignment-tracker .at-minimize{min-width:44px;font-size:1.3rem}
#assignment-tracker .at-restore{position:relative;display:flex;align-items:center;justify-content:center;gap:4px;width:100%;height:100%;padding:3px 10px;font-size:.68rem;font-weight:600;cursor:grab;touch-action:none;border-radius:var(--card-radius,18px)}
#assignment-tracker .at-restore-main{display:block;width:100%;min-width:0;min-height:38px;padding:2px 0;border:0;background:transparent;color:inherit;font:inherit;line-height:1.15;text-align:center;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#assignment-tracker .at-restore-grip{position:absolute;left:10px;top:50%;display:grid;place-items:center;width:34px;height:34px;transform:translateY(-50%);font-size:1.3rem;line-height:1;pointer-events:none}
#assignment-tracker .at-restore-resize{position:absolute;right:0;bottom:0;display:block!important;box-sizing:border-box!important;width:72px!important;min-width:0!important;max-width:72px!important;height:8px!important;min-height:0!important;max-height:8px!important;padding:0!important;appearance:none;border:0;border-inline-start:1px solid color-mix(in srgb,var(--border) 86%,var(--accent));border-block-start:1px solid color-mix(in srgb,var(--border) 86%,var(--accent));border-radius:0 0 var(--card-radius,18px) 0!important;background:color-mix(in srgb,var(--panel,var(--surface)) 90%,transparent)!important;color:transparent!important;font-size:0;line-height:1;cursor:nwse-resize;touch-action:none;overflow:hidden}
#assignment-tracker .at-restore:focus-within{outline:2px solid var(--accent);outline-offset:-3px}
#assignment-tracker :is(.at-minimize,.at-restore):focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
#assignment-tracker .at-unassigned{font-size:.76rem;border-inline-start:3px solid var(--accent);padding-inline-start:7px}
#assignment-tracker.at-global .at-card{gap:8px;padding:10px}
#assignment-tracker.at-global .at-date,#assignment-tracker.at-global .at-housekeeping-progress>strong:not(.at-completion),#assignment-tracker.at-global .at-housekeeping-progress>progress{display:none}
#assignment-tracker.at-global .at-progress-line{order:-1}
#assignment-tracker.at-global .at-housekeeping-progress>[data-tracker-remaining]{grid-column:1/-1;text-align:start}
#assignment-tracker.at-global .at-section h3{font-size:.68rem}
#assignment-tracker.at-global .at-worker-toggle{font-size:.76rem}
body.assignment-tracker-global .view{padding-inline-end:min(294px,27vw)}
@media(min-width:901px){
  #assignment-tracker.at-global{inset-block-start:140px;transform:none;max-height:calc(100dvh - 156px)}
}
@media(max-width:900px){
  body.assignment-tracker-global .view{padding-inline-end:0;padding-bottom:calc(min(32dvh,290px) + 100px + env(safe-area-inset-bottom))}
  body.assignment-tracker-minimized .view{padding-bottom:calc(150px + env(safe-area-inset-bottom))}
}
/* Window chrome is presentation-only; content keeps the existing renderer. */
#assignment-tracker .at-title{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;flex:1;min-width:0}
#assignment-tracker .at-approved-badge{display:inline-grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--accent);font-size:1.1rem;font-weight:700;line-height:1;white-space:nowrap}
#assignment-tracker .at-restore-main [aria-label="Assignments approved"]{color:var(--accent);font-weight:700}
#assignment-tracker .at-room-entry,#assignment-tracker .at-tracker-room-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0;max-width:100%}
#assignment-tracker .at-tracker-room-row>.at-remaining-room{flex:1 1 130px;min-width:0}
#assignment-tracker .at-arrival{font-size:.62rem;font-weight:700;letter-spacing:.04em;line-height:1.3;border:1px solid var(--accent);border-radius:4px;padding:2px 4px;color:var(--text);background:color-mix(in srgb,var(--accent) 26%,var(--panel))}
#assignment-tracker [data-arrival="true"]{border-inline-start:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--panel))}
#assignment-tracker .at-quick-inspect{min-height:32px;max-width:100%;padding:4px 7px;white-space:normal;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);font:inherit;font-size:.7rem;cursor:pointer}
#assignment-tracker .at-quick-inspect:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
#assignment-tracker .at-quick-inspect:disabled{opacity:.65;cursor:wait}
#assignment-tracker .at-quick-error{margin:0;padding:7px;border-inline-start:3px solid var(--accent);font-size:.76rem;overflow-wrap:anywhere}
@media(pointer:coarse){#assignment-tracker .at-quick-inspect{min-height:44px}}
#assignment-tracker.at-window{inset:auto;transform:none;max-height:none;max-width:calc(100vw - 24px);overflow:hidden;box-sizing:border-box;--at-safe-top:env(safe-area-inset-top,0px);--at-safe-right:env(safe-area-inset-right,0px);--at-safe-bottom:env(safe-area-inset-bottom,0px);--at-safe-left:env(safe-area-inset-left,0px)}
#assignment-tracker.at-window:not(.at-minimized){container-type:size}
#assignment-tracker.at-window .at-card{box-sizing:border-box;display:flex;flex-direction:column;height:100%;min-height:0;gap:6px;padding:10px 12px 18px}
#assignment-tracker.at-window .at-heading{position:relative;top:auto;flex:0 0 auto;flex-wrap:nowrap;gap:6px;padding:0 0 6px;cursor:grab;touch-action:none;background:transparent;min-width:0;z-index:3}
#assignment-tracker.at-window .at-heading h2{min-width:0;overflow-wrap:anywhere;font-size:.9rem}
#assignment-tracker .at-window-actions{display:flex;gap:3px;align-items:center;flex-shrink:0}
#assignment-tracker .at-window-actions :is(button,summary){cursor:pointer;touch-action:manipulation}
#assignment-tracker.at-window .at-minimize,#assignment-tracker .at-window-menu>summary{display:grid;place-items:center;box-sizing:border-box;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;border:1px solid var(--border);border-radius:8px;font-size:1.2rem;list-style:none;color:var(--text);background:transparent}
#assignment-tracker .at-window-menu>summary::-webkit-details-marker{display:none}
#assignment-tracker .at-window-options{position:absolute;top:100%;inset-inline-end:0;z-index:4;box-sizing:border-box;width:min(210px,100%);padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--panel,var(--surface));box-shadow:0 8px 24px #0003;color:var(--text);cursor:default}
#assignment-tracker .at-window-options button{width:100%;min-height:44px;white-space:normal;border:1px solid var(--border);border-radius:6px;background:transparent;color:inherit;font:inherit;font-size:.78rem}
#assignment-tracker .at-window-options small{display:block;margin-top:6px;font-size:.7rem;line-height:1.4}
#assignment-tracker .at-window-summary{flex:0 0 auto;min-width:0;font-size:.74rem;line-height:1.4;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
#assignment-tracker .at-content{display:grid;align-content:start;gap:10px;flex:1 1 auto;min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;padding:2px 2px 5px}
#assignment-tracker.at-window :is(.at-worker-toggle,.at-progress,.at-approved,.at-completion){min-width:0;overflow-wrap:anywhere}
#assignment-tracker.at-window .at-progress{grid-template-columns:minmax(0,1fr) auto}
#assignment-tracker.at-window .at-section li strong{white-space:normal}
#assignment-tracker.at-window :is(.at-remaining-list,.at-inspection-list){max-height:max(100px,calc(var(--at-window-height) - 280px))}
#assignment-tracker .at-resize{position:absolute;z-index:5;margin:0;padding:0;border:0;background:transparent;color:var(--accent);touch-action:none;overflow:visible}
#assignment-tracker .at-resize-e{inset-block:80px 22px;inset-inline-end:0;width:8px;cursor:ew-resize}
#assignment-tracker .at-resize-e::after{content:'';position:absolute;inset-block:0;inset-inline-end:2px;width:1px;background:color-mix(in srgb,var(--accent) 58%,transparent);pointer-events:none}
#assignment-tracker .at-resize-s{inset-inline:12px 26px;bottom:0;height:8px;cursor:ns-resize}
#assignment-tracker .at-resize-s::after{content:'';position:absolute;inset-inline:0;bottom:2px;height:1px;background:color-mix(in srgb,var(--accent) 58%,transparent);pointer-events:none}
#assignment-tracker .at-resize-se{right:0;bottom:0;box-sizing:border-box;width:32px;height:32px;background:transparent;color:transparent;font-size:0;line-height:1;opacity:1}
#assignment-tracker .at-resize-se::before{content:'';position:absolute;right:3px;bottom:3px;width:14px;height:14px;border-inline-end:2px solid var(--accent);border-block-end:2px solid var(--accent);border-radius:0 0 var(--card-radius,18px) 0;opacity:.72;pointer-events:none}
#assignment-tracker .at-resize:is(:hover,:focus-visible){background:transparent;opacity:1;outline:0}
#assignment-tracker.at-dragging{box-shadow:0 20px 60px #0006,0 0 0 2px var(--accent)}
#assignment-tracker.at-dragging .at-heading{cursor:grabbing}
body.tracker-window-manipulating,body.tracker-window-manipulating *{user-select:none!important;-webkit-user-select:none!important}
#assignment-tracker.at-phone .at-heading{cursor:default;touch-action:auto}
#assignment-tracker.at-phone .at-resize{display:none}
#assignment-tracker.at-phone .at-card{padding-bottom:10px}
#assignment-tracker.at-phone .at-minimize,#assignment-tracker.at-phone .at-window-menu>summary{width:44px;min-width:44px;height:44px;min-height:44px}
@media(max-width:600px){
  #assignment-tracker .at-resize{display:block}
  #assignment-tracker.at-window .at-heading{cursor:grab;touch-action:none}
  #assignment-tracker.at-phone .at-resize{display:block}
}
@container (max-width:270px){
  #assignment-tracker .at-title{display:grid;grid-template-columns:minmax(0,1fr);justify-items:start}
  #assignment-tracker.at-window .at-title h2{font-size:.8rem;line-height:1.25}
  #assignment-tracker.at-window .at-worker-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 6px}
  #assignment-tracker.at-window .at-worker-toggle>span:first-child{grid-column:1;overflow-wrap:anywhere}
  #assignment-tracker.at-window .at-worker-toggle>strong{grid-column:1;grid-row:2}
  #assignment-tracker.at-window .at-worker-toggle>.at-chevron{grid-column:2;grid-row:1/3}
  #assignment-tracker.at-window .at-progress{grid-template-columns:minmax(0,1fr)}
  #assignment-tracker.at-window .at-remaining-toggle{text-align:start}
}

/* Board cards keep one compact identity row; shared room views keep their layout. */
html[data-theme] #assignment-board .ab-columns { grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); }
html[data-theme] #assignment-board .ab-room-head { display:grid; grid-template-columns:44px minmax(0,1fr) minmax(0,34%); gap:4px; align-items:start; }
html[data-theme] #assignment-board .ab-room-head>label { min-width:44px; min-height:44px; justify-content:center; }
html[data-theme] #assignment-board .ab-room-identity { display:flex; align-items:center; gap:4px; min-width:0; }
html[data-theme] #assignment-board .ab-room-identity .room-number-text { flex:0 0 44px; min-width:44px; min-height:44px; font-size:1rem!important; line-height:1.2; }
html[data-theme] #assignment-board .ab-room-identity>.badge { flex:0 1 auto; width:auto; min-width:0; max-width:100%; margin:0; padding:3px 5px; font-size:.65rem!important; line-height:1.2; letter-spacing:.02em; white-space:normal; overflow-wrap:normal; text-align:start; }
html[data-theme] #assignment-board .ab-room-head>.arc-operational-status { justify-self:end; width:auto; min-width:0; max-width:100%; margin:0; }
html[data-theme] #assignment-board .ab-room-head .room-status-toggle { width:auto!important; min-width:0; max-width:100%; min-height:44px!important; padding:6px 5px!important; font-size:.73rem!important; line-height:1.2; white-space:normal; overflow-wrap:normal; text-align:center; }
html[data-theme] #assignment-board .arc-head:has(>.arc-context:empty):not(:has(>.cine-room-signals)) { display:none; }
@media(max-width:700px) { html[data-theme] #assignment-board .ab-columns { grid-template-columns:minmax(0,1fr); } }

/* Compact Assignments presentation; room workflows and theme surfaces are retained. */
#assignment-board{gap:.65rem;overflow-anchor:none}
#assignment-board [hidden]{display:none!important}
#assignment-board .ab-top{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1rem;padding:.65rem .8rem;border-radius:12px}
#assignment-board .ab-top h2{font-size:.95rem;margin:0;flex:1 1 170px}
#assignment-board .ab-metrics{gap:.3rem}
#assignment-board .ab-metrics .button{border:0;background:transparent;min-height:32px;padding:.25rem .4rem;font-size:.75rem}
#assignment-board .ab-progress{font-size:.75rem;margin:0;gap:.5rem;flex:1 1 180px}
#assignment-board .ab-arrival-summary{font-size:.72rem;opacity:.85}
#assignment-board .ab-tools{gap:.5rem;padding:.6rem .7rem;border-radius:12px;align-items:end}
#assignment-board .ab-tools>label{display:grid;gap:.2rem;font-size:.7rem;flex:1 1 120px}
#assignment-board .ab-tools select{width:100%;height:36px;min-height:36px;min-width:0;box-sizing:border-box;font-size:.8rem;padding:.25rem .45rem}
#assignment-board .ab-mode{display:inline-flex;gap:2px;border:1px solid var(--border);padding:3px;border-radius:9px;align-self:center}
#assignment-board .ab-mode .button{border:0;min-height:32px;padding:.3rem .65rem;font-size:.78rem;background:transparent}
#assignment-board .ab-mode [aria-pressed=true]{outline:0;background:var(--panel-strong,var(--panel));box-shadow:0 1px 4px #0002;color:var(--accent,var(--text))}
#assignment-board .ab-tools>.button{min-height:36px;padding:.35rem .55rem;font-size:.75rem}
#assignment-board .ab-display-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.45rem;width:100%;border-top:1px solid var(--border);padding-top:.4rem}
#assignment-board .ab-display-tools>div{display:flex;gap:.25rem}
#assignment-board .ab-display-tools .button{min-height:32px;padding:.25rem .45rem;font-size:.73rem}
#assignment-board .ab-empty-toggle{font-size:.75rem;min-height:32px;cursor:pointer}
html[data-theme] #assignment-board .ab-columns,#assignment-board .ab-columns{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:.6rem;overflow-anchor:none}
#assignment-board .ab-column{padding:0;border-radius:12px;animation:none!important;transition:none!important}
#assignment-board .ab-column>summary{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.3rem .55rem;margin:0;padding:.65rem 1.8rem .6rem .75rem;list-style:none;min-height:65px;box-sizing:border-box;color:var(--text)}
#assignment-board .ab-column>summary::-webkit-details-marker{display:none}
#assignment-board .ab-column>summary::after{content:'›';position:absolute;right:.65rem;top:.6rem;color:var(--accent,var(--text));font-size:1.1rem;line-height:1.2}
#assignment-board .ab-column[open]>summary::after{content:'⌄'}
#assignment-board .ab-column[open]>summary{border-bottom:1px solid var(--border)}
#assignment-board .ab-column>summary .ab-staff-name{font-size:.85rem;font-weight:650;overflow-wrap:anywhere}
#assignment-board .ab-column>summary .ab-staff-total{font-size:.72rem;font-weight:600;white-space:nowrap;color:var(--muted,var(--text))}
#assignment-board .ab-staff-counts,#assignment-board .ab-column>summary .ab-live-counts{grid-column:1/-1;font-size:.71rem;line-height:1.3;opacity:.88}
#assignment-board .ab-column>summary progress{grid-column:1/-1;width:100%;height:5px;min-height:0;margin:.1rem 0 0;border:0;accent-color:var(--accent)}
#assignment-board .ab-column>summary .ab-complete,#assignment-board .ab-column>summary .ab-excluded{grid-column:1/-1;font-size:.7rem;line-height:1.3}
#assignment-board .ab-room-list{gap:.45rem;padding:.55rem}
#assignment-board .ab-helping:empty{display:none}
#assignment-board .ab-helping{font-size:.75rem;padding:.45rem .6rem 0}
#assignment-board .ab-room{padding:.5rem;animation:none!important;transition:none!important}
#assignment-board .ab-batch{position:sticky;bottom:max(.6rem,env(safe-area-inset-bottom));z-index:8;gap:.45rem;padding:.6rem .7rem;border-radius:12px;border-color:var(--accent,var(--border));box-shadow:0 5px 20px #0003;background:var(--panel,var(--surface));align-items:center}
#assignment-board .ab-batch>span{font-weight:650;font-size:.78rem;white-space:nowrap}
#assignment-board .ab-batch .button{min-height:36px;padding:.3rem .5rem;font-size:.75rem}
#assignment-board .ab-batch label{font-size:.75rem;flex:1 1 150px}
#assignment-board .ab-batch select{min-height:36px;height:36px;font-size:.82rem;flex:1;min-width:0}
#assignment-board :is(button,select,input,summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#assignments-view .assignment-plan-tools{gap:.5rem;margin-bottom:.65rem;align-items:center}
#assignments-view .assignment-approval-group{gap:.4rem}
#assignments-view .assignment-approval-group .button,#assignments-view .assignment-plan-tools>.button{min-height:36px;padding:.4rem .65rem;font-size:.78rem}
#assignments-view .assignment-approved{display:inline-flex;align-items:center;min-height:32px;padding:.25rem .6rem;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--panel);font-size:.8rem;font-weight:650}
#assignments-view .assignments-legacy{margin-top:.75rem;font-size:.82rem}
@media(max-width:700px){
 #assignment-board .ab-tools{gap:.45rem}#assignment-board .ab-mode{width:100%;box-sizing:border-box}#assignment-board .ab-mode .button{flex:1}
 #assignment-board .ab-tools>label{flex:1 1 calc(50% - .5rem)}#assignment-board .ab-tools>label:has([data-ab-sort]){flex-basis:100%}
 #assignment-board .ab-tools select,#assignment-board .ab-batch select{font-size:16px;min-height:38px;height:38px}
 #assignment-board .ab-batch>label{flex:1 1 100%}#assignment-board .ab-batch .button{flex:1 1 90px}
 #assignment-board .ab-display-tools{gap:.3rem}#assignment-board .ab-display-tools>div{margin-left:auto}
 html[data-theme] #assignment-board .ab-columns,#assignment-board .ab-columns{grid-template-columns:minmax(0,1fr)}
}
#assignments-view .assignment-approved-tools>summary{cursor:pointer;min-height:32px;font-size:.78rem;padding:.3rem .5rem;border:1px solid var(--border);border-radius:8px}
#assignments-view .assignment-approved-tools[open] .approval-actions{padding-top:.4rem}
@media(max-width:700px){#assignments-view .assignment-approval-group .button,#assignments-view .assignment-plan-tools>.button{min-height:44px}}
#assignment-board .ab-progress>span{white-space:nowrap}
#assignment-board .ab-display-tools{width:auto;border:0;padding:0;margin-left:auto}
#assignment-board .ab-filter-options{position:relative;align-self:center;font-size:.75rem}
#assignment-board .ab-filter-options>summary{display:flex;align-items:center;justify-content:center;min-height:36px;padding:.3rem .55rem;border:1px solid var(--border);border-radius:8px;box-sizing:border-box}
#assignment-board .ab-filter-menu{position:absolute;right:0;top:calc(100% + 5px);z-index:10;display:grid;gap:.7rem;width:220px;max-width:calc(100vw - 50px);padding:.7rem;border:1px solid var(--border);border-radius:10px;background:var(--panel,var(--surface));box-shadow:0 5px 22px #0003}
#assignment-board .ab-filter-menu>label:first-child{display:grid;gap:.3rem;font-size:.75rem}
#assignment-board .ab-filter-menu select{width:100%;box-sizing:border-box;height:36px;min-height:36px;font-size:.82rem}
@media(max-width:700px){#assignment-board .ab-tools>label:has([data-ab-sort]){flex-basis:calc(50% - .5rem)}#assignment-board .ab-filter-menu select{font-size:16px;min-height:38px;height:38px}}
#assignment-board .ab-tools{position:relative;z-index:12}
@media(max-width:900px){#assignment-board .ab-batch{bottom:calc(80px + env(safe-area-inset-bottom))}}

/* Carryover is a room annotation in the existing floor groups. */
html[data-theme] #assignment-board .ab-room-identity .pet-room-number-line {display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0;max-width:100%;}
html[data-theme] #assignment-board .ab-carryover-badge {font-size:.65rem!important;line-height:1.3;white-space:normal;max-width:100%;padding:3px 5px;}
html[data-theme] #assignment-board .ab-carryover-details {margin-top:6px;min-width:0;}
html[data-theme] #assignment-board .ab-carryover-details>summary {min-height:40px;}
html[data-theme] #assignment-board .ab-carryover-notes {white-space:pre-wrap;overflow-wrap:anywhere;}


/* Source: my-rooms.css */
/* Employee workflow: theme-owned surfaces, compact content and touch controls. */
#personal-rooms { --pr-gap:12px; padding-bottom:70px; min-width:0; }
#personal-rooms .pr-summary { margin-bottom:18px; }
.pr-summary h2 { margin:0 0 8px; display:flex; gap:12px; flex-wrap:wrap; align-items:baseline; }
.pr-summary h2 span { color:var(--muted); font-size:.75em; }
.pr-summary > strong { font-size:1.6rem; }
.pr-summary progress { width:100%; height:10px; accent-color:var(--accent); display:block; margin:10px 0; }
.pr-summary p { margin:5px 0; line-height:1.45; }
.pr-connection { display:block; color:var(--muted); margin-top:8px; }
.pr-toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:end; margin-bottom:20px; }
.pr-toolbar label { flex:1 1 130px; min-width:0; font-size:.85rem; display:grid; gap:5px; }
.pr-toolbar input,.pr-toolbar select { width:100%; min-width:0; min-height:44px; }
.pr-sections > section,.pr-sections > details { margin:0 0 24px; padding:0; background:none; border:0; }
.pr-sections h3,.pr-sections summary { font-size:1rem; font-weight:700; margin:0 0 10px; }
.pr-sections summary { min-height:44px; padding:12px; cursor:pointer; border:1px solid var(--border); border-radius:var(--radius-m,14px); }
.pr-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:16px; align-items:start; }
#personal-rooms .personal-room { display:block; width:auto; min-width:0; min-height:0; margin:0; padding:16px; text-align:left; position:relative; overflow-wrap:anywhere; }
.pr-room-head { display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:8px; }
.pr-room-number { border:0; background:none; color:var(--text); font:inherit; font-weight:800; font-size:2rem; min-height:44px; padding:0 2px; cursor:pointer; }
.pr-bed { font-weight:800; border:2px solid var(--accent); border-radius:8px; padding:4px 8px; }
.pr-bed:empty { display:none; }
.pr-context { display:flex; flex-wrap:wrap; gap:5px 10px; align-items:center; font-size:.75rem; }
.pr-context strong { color:var(--accent); }
.pr-context > span { border:1px solid var(--border); border-radius:8px; padding:3px 6px; }
.pr-status { display:block; font-size:1.05rem; line-height:1.4; }
.pr-caption { color:var(--muted); font-size:.82rem; line-height:1.45; margin:7px 0; }
.pr-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
.pr-actions:empty { display:none; }
#personal-rooms .button,#personal-room-dialog .button { min-height:44px; height:auto; font-size:.9rem; line-height:1.25; padding:10px 14px; width:auto; white-space:normal; }
.pr-actions .button { width:100% !important; min-width:0; }
.pr-actions .button.primary,.pr-actions .button:only-child { grid-column:1 / -1; }
#personal-rooms .pr-detail-link { margin-top:8px; padding:8px 10px; }
.pr-return { border-inline-start:4px solid var(--danger,var(--accent)); background:color-mix(in srgb,var(--danger,var(--accent)) 10%,transparent); padding:10px; margin:10px 0; border-radius:8px; }
.pr-return ul { list-style:none; padding:0; margin:8px 0; }
.pr-return li { display:flex; justify-content:space-between; align-items:center; gap:10px; margin:5px 0; }
.pr-return p { margin:8px 0; font-size:.9rem; }
.pr-return .pr-extra { display:none; }
.pr-return.pr-show-all .pr-extra { display:flex; }
#personal-rooms [data-phase=sent-back],#personal-rooms [data-phase=rework] { border-inline-start:5px solid var(--danger,var(--accent)); }
#personal-rooms [data-phase=ready],#personal-rooms [data-phase=guest-messaged] { border-inline-start:5px solid var(--success,var(--accent)); }
#personal-room-dialog { position:fixed; inset:0; height:fit-content; box-sizing:border-box; width:min(640px,calc(100vw - 24px)); max-width:calc(100vw - 24px); max-height:88dvh; margin:auto; padding:0; color:var(--text); background:var(--panel,var(--world-surface)); border:1px solid var(--border); border-radius:var(--world-radius,var(--radius-m,18px)); overflow:hidden !important; transform:none !important; clip-path:none !important; mask:none !important; }
#personal-room-dialog::backdrop { background:rgb(0 0 0 / .55); }
#personal-room-dialog[open] { display:flex; flex-direction:column; }
#personal-room-dialog > header { display:flex; flex:0 0 auto; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border-bottom:1px solid var(--border); }
#personal-room-dialog h2 { margin:0; font-size:1.3rem; }
.pr-dialog-body { padding:16px; overflow:auto; overscroll-behavior:contain; min-height:0; }
.pr-detail-work .pr-detail-link { display:none; }
.pr-detail-work > p { font-size:.9rem; }
.pr-item-group { border-top:1px solid var(--border); margin-top:14px; padding-top:10px; }
.pr-item-group h3 { font-size:.95rem; margin:0 0 8px; }
.pr-item { display:flex; align-items:center; gap:8px; padding:6px 0; }
.pr-item > span:first-of-type { flex:1; min-width:0; overflow-wrap:anywhere; }
.pr-item.done { color:var(--muted); }
.pr-item .fix-photo-thumb { width:44px; height:44px; }
#personal-room-dialog .need-add-form { display:flex; gap:8px; margin:12px 0; }
#personal-room-dialog input { min-width:0; min-height:44px; width:100%; }
[data-pr-help-list] > div { display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--border); }
[data-pr-help-list] > div > span { flex:1; }
#my-active-room { position:fixed; bottom:calc(var(--mobile-nav-height,90px) + env(safe-area-inset-bottom) + 8px); inset-inline-end:16px; z-index:140; display:flex; gap:8px; max-width:calc(100vw - 32px); flex-wrap:wrap; }
#my-active-room[hidden] { display:none; }
#my-active-room .button { min-height:44px; padding:10px 16px; font-size:.95rem; border:2px solid var(--accent); background:var(--panel); color:var(--text); }
@media(min-width:701px) { #my-active-room { bottom:20px; } }
@media(max-width:700px) { #personal-room-dialog { margin:auto auto 10px; max-height:90dvh; } .pr-toolbar > .button { flex:1 1 100%; } }
@media(prefers-reduced-motion:no-preference) { .pr-status { transition:color .18s ease; } }


/* Source: room-card.css */
:root { --hk-waiting:var(--muted); --hk-reinspection:var(--hk-finished); }
.adaptive-room-card { min-width:0; width:100%; font-size:.95rem; --arc-state:var(--hk-waiting); }
.adaptive-room-card[data-state=stripped] { --arc-state:var(--hk-stripped); }
.adaptive-room-card[data-state=cleaning] { --arc-state:var(--hk-cleaning); }
.adaptive-room-card[data-state=bed-made] { --arc-state:var(--hk-bed-made); }
.adaptive-room-card[data-state=finished] { --arc-state:var(--hk-finished); }
.adaptive-room-card[data-state=reinspection] { --arc-state:var(--hk-reinspection); }
.adaptive-room-card[data-state=sent-back],.adaptive-room-card[data-state=rework] { --arc-state:var(--hk-sent-back); }
.adaptive-room-card[data-state=ready],.adaptive-room-card[data-state=guest-messaged] { --arc-state:var(--hk-ready); }
.arc-head { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.adaptive-room-card .arc-head>.arc-number { font-size:2rem!important; line-height:1.2; }
.arc-bed { font-weight:800; border:2px solid var(--accent); border-radius:8px; padding:4px 8px; }
.arc-context { display:flex; flex:1; min-width:0; flex-wrap:wrap; gap:6px; font-size:.72rem; }
.arc-arrival { border:1px solid var(--hk-arrival); padding:4px 6px; border-radius:6px; }
.arc-priority { color:var(--hk-priority); padding:4px 0; }
.adaptive-room-card .arc-menu { margin-inline-start:auto; font-size:1.3rem; width:44px!important; padding:4px!important; }
.adaptive-room-card .arc-status { display:block; font-size:1.12rem; line-height:1.4; border-inline-start:4px solid var(--arc-state); padding:5px 9px; margin:8px 0; background:color-mix(in srgb,var(--arc-state) 9%,transparent); }
.arc-assigned,.arc-attribution,.arc-timing,.arc-message,.arc-helping { margin:6px 0; font-size:.83rem; line-height:1.4; }
.arc-assigned,.arc-attribution { color:var(--muted); }
.arc-timing { font-variant-numeric:tabular-nums; }
.arc-helpers { font-size:.83rem; }
.arc-helpers summary,.arc-timeline summary,.arc-legacy>summary,.arc-work-options>summary { min-height:44px; cursor:pointer; padding:12px 0; }
.arc-return { border-inline-start:3px solid var(--hk-sent-back); background:color-mix(in srgb,var(--hk-sent-back) 10%,transparent); padding:8px 12px; margin:8px 0; }
.arc-return ul { padding-inline-start:18px; margin:4px 0; }
.arc-return p { font-size:.88rem; margin:8px 0 0; }
.arc-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.arc-actions:empty { display:none; }
.adaptive-room-card .button,.arc-timeline .button { min-height:44px!important; height:auto!important; max-width:100%; white-space:normal!important; padding:10px 12px; font-size:.9rem; }
.arc-actions .button { flex:1 1 110px; width:auto!important; min-width:0; }
.arc-timeline { border-top:1px solid var(--border); margin-top:14px; }
.arc-timeline ol { padding-inline-start:22px; }
.arc-timeline ol>li { padding:6px 0; }
.arc-timeline li>span { display:block; color:var(--muted); font-size:.8rem; }
.arc-timeline p { font-size:.85rem; }
.arc-legacy { grid-column:1/-1; width:100%; min-width:0; }
.has-adaptive-room>.hk-work { display:block; flex:1 1 100%; width:100%; }
.has-adaptive-room .summary-room-number { font-size:1.5rem!important; }
.has-adaptive-room .today-finished-line { display:none!important; }
@media(prefers-reduced-motion:no-preference) { .arc-status { transition:border-color .2s ease,background-color .2s ease; } }
/* One arrival flag beneath the number; operational access stays top right. */
.arc-identity { display:grid; grid-template-columns:auto auto; align-items:center; gap:4px 8px; }
.arc-identity>.badge { grid-column:1/-1; justify-self:start; }
.arc-identity>.arc-number { font-size:2rem!important; line-height:1.2; }
.room-arrival-menu-trigger { appearance:none; border:0; background:transparent; color:inherit; font:inherit; font-weight:800; padding:0; margin:0; cursor:pointer; text-align:start; min-height:44px; }
.room-arrival-menu-trigger:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }
.arc-head { align-items:flex-start; }
.arc-operational-status { margin-inline-start:auto; max-width:65%; }
.adaptive-room-card .arc-operational-status .room-status-toggle { min-height:36px!important; padding:6px 9px!important; font-size:.78rem!important; width:auto!important; }
.arc-context:empty { display:none; }
.room-arrival-menu small { display:block; padding:8px 12px; font-size:.75rem; }
.ab-room-identity { display:grid; gap:4px; }
.room-card-head>.arc-operational-status,.summary-room-main>.arc-operational-status,.strip-room-number>.arc-operational-status { margin-inline-start:auto; align-self:flex-start; }
.summary-room-main { position:relative; padding-inline-end:110px; }
.summary-room-main>.arc-operational-status { position:absolute; inset-block-start:0; inset-inline-end:0; }
.room-card-head>.arc-operational-status .room-status-toggle,.summary-room-main>.arc-operational-status .room-status-toggle { font-size:.78rem!important; min-height:36px!important; padding:6px 9px!important; }

/* Housekeepers use one outlined access/arrival group in the room identity row. */
.hk-housekeeper-header > :is(.room-card-head,.summary-room-main,.strip-room-number),
.adaptive-room-card .arc-head:has(.hk-header-access) { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
.hk-housekeeper-header > :is(.room-card-head,.summary-room-main) > div:first-child { flex:0 1 auto; min-width:0; }
.hk-header-access { display:inline-flex; flex-wrap:wrap; max-width:100%; min-width:0; }
.hk-header-access .room-access.room-access-compact { gap:5px; }
.hk-header-access .room-access.room-access-compact .ra-badge { font-size:.8rem; padding:4px 7px; border-radius:5px; }

#today-summary-dialog [data-working-room-summary] .ops-item-group h4 { margin:12px 0 6px; font-size:.9rem; }
#today-summary-dialog [data-working-room-summary] .ops-item-group ul { margin-top:0; }

.mark-out-selection-controls { display:flex; align-items:flex-start; gap:8px; flex-wrap:wrap; }
.mark-out-selector { width:min(240px,100%); max-width:100%; min-width:0; }
.mark-out-selector > summary { min-height:44px; padding:10px; border:1px solid var(--border); border-radius:8px; cursor:pointer; overflow-wrap:anywhere; }
.mark-out-choices { display:grid; max-height:300px; overflow:auto; padding:6px; border:1px solid var(--border); border-radius:8px; }
.mark-out-choice { display:flex; align-items:center; gap:8px; min-height:44px; padding:5px; cursor:pointer; }
.mark-out-choice input { width:20px; height:20px; min-height:20px; flex:0 0 20px; }
.mark-out-choice span { min-width:0; overflow-wrap:anywhere; }
.mark-out-selection-controls > button { min-height:44px; }

.management-section-navigation { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
.management-section-navigation[hidden] { display:none; }
.management-section-navigation button { min-height:44px; white-space:normal; }


#checkout-view .room-list-head { position:relative; padding-right:82px; min-height:68px; }
#checkout-view .room-list-head > .arc-operational-status { position:absolute; top:8px; right:8px; max-width:72px; }
#checkout-view .room-list-head > .arc-operational-status button { min-height:44px; white-space:normal; }
#checkout-view .room-compact-notes-form textarea { width:100%; min-width:0; resize:vertical; }
#checkout-view .room-compact-notes-form .room-inspection-note-copy { white-space:pre-wrap; overflow-wrap:anywhere; }
#checkout-view .room-compact-note-buttons { display:flex; gap:8px; margin-top:6px; }
#checkout-view .room-compact-note-buttons button { min-height:44px; }

/* Completed queue badges retain a readable label across decorative themes. */
html[data-theme] #today-summary-dialog [data-working-room-summary] .arc-operational-status .status-badge.finished,
html[data-theme] #today-summary-dialog [data-finished-room-card] .arc-operational-status .status-badge.finished {
  clip-path:none!important;transform:none!important;min-height:44px!important;
  white-space:nowrap!important;width:auto!important;max-width:100%!important;
}

.room-checkout-history{margin-top:1rem;font-size:.78rem;color:var(--text-secondary,var(--muted));}.room-checkout-history h4{margin:0 0 .35rem;font-size:.67rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;}.room-checkout-history p{margin:.16rem 0;}

.mark-out-choice-out { color:var(--muted); opacity:.55; cursor:default; background:color-mix(in srgb,var(--muted) 8%,transparent); border-radius:5px; }

.manager-my-checkouts progress { display:block; width:160px; max-width:100%; height:5px; margin-top:7px; accent-color:var(--accent); }
.manager-personal-checkouts { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:10px; }
.manager-personal-checkout { margin:0; min-width:0; }
.manager-checkout-room-link { color:inherit; font:inherit; font-weight:700; background:none; border:0; cursor:pointer; padding:4px; }
.manager-checkout-pick-label { display:inline-flex; align-items:center; padding:6px; vertical-align:middle; }
.manager-checkout-pick { width:20px; height:20px; min-height:20px; margin:0; accent-color:var(--accent); }
.manager-checkout-bulk { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:8px 0; }
.manager-checkout-bulk[hidden] { display:none!important; }
.manager-checkout-bulk-host { padding:0 12px; }
.manager-removed-checkouts { color:var(--muted); font-size:12px; padding:8px; }
.manager-removed-checkouts>div { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:5px; }
#manager-checkout-undo-notice { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); z-index:20000; display:flex; align-items:center; gap:10px; max-width:calc(100vw - 24px); padding:10px 14px; border:1px solid var(--border); border-radius:10px; background:var(--panel,var(--bg)); color:var(--text); box-shadow:0 4px 18px #0003; }
@media(max-width:700px) { #manager-checkout-undo-notice { bottom:calc(105px + env(safe-area-inset-bottom,0px)); } .manager-checkout-bulk button { min-height:40px; } }
.manager-my-checkouts .manager-my-checkouts-counts { display:block!important; font-size:12px; color:var(--muted); margin-top:3px; }
.manager-checkout-options { position:relative; margin-left:auto; }
.manager-checkout-options>summary { cursor:pointer; list-style:none; font-size:20px; padding:2px 8px; }
.manager-checkout-options>div { position:absolute; right:0; z-index:30; display:grid; gap:5px; min-width:180px; padding:8px; background:var(--panel,var(--bg)); border:1px solid var(--border); border-radius:8px; box-shadow:0 3px 12px #0003; }


/* Source: sunlit-nook.css */
/* Sunlit Nook — cozy reading corner, houseplants, sunbeams and books.
   Keep the scene abstract: the operational UI remains the foreground and the
   atmosphere is a quiet window/light study behind it. */

html[data-world='sunlit-nook'] .world-base {
  background:
    radial-gradient(ellipse 42% 48% at 88% 9%, color-mix(in srgb, var(--world-highlight) 24%, transparent), transparent 72%),
    linear-gradient(138deg, var(--world-background) 0%, color-mix(in srgb, var(--world-surface) 76%, var(--world-background)) 46%, var(--world-deep) 100%);
  background-size: 120% 120%;
  animation: sunlit-nook-room-drift 74s ease-in-out infinite alternate;
}
html[data-world='sunlit-nook'][data-mode='dark'] .world-base {
  background:
    radial-gradient(ellipse 36% 42% at 82% 12%, color-mix(in srgb, var(--world-highlight) 19%, transparent), transparent 72%),
    linear-gradient(138deg, #120d0b, var(--world-background) 47%, #2c1c16 100%);
}
html[data-world='sunlit-nook'] .world-horizon {
  inset: -12% -18%;
  opacity: .74;
  background:
    conic-gradient(from 34deg at 86% 2%, transparent 0 8deg, color-mix(in srgb, var(--world-highlight) 18%, transparent) 12deg 18deg, transparent 22deg 31deg, color-mix(in srgb, var(--world-highlight) 12%, transparent) 35deg 42deg, transparent 46deg 360deg),
    linear-gradient(112deg, transparent 22%, color-mix(in srgb, var(--world-highlight) 12%, transparent) 43%, transparent 61%);
  transform-origin: 86% 2%;
  animation: sunlit-nook-rays 88s ease-in-out infinite alternate;
}
html[data-world='sunlit-nook'] .world-silhouette {
  inset: 0 -4% -7%;
  opacity: .19;
  background:
    repeating-linear-gradient(90deg, transparent 0 14%, color-mix(in srgb, var(--world-deep) 35%, transparent) 14.2% 14.8%, transparent 15% 29%),
    linear-gradient(180deg, transparent 0 73%, color-mix(in srgb, var(--world-deep) 38%, transparent) 73.5% 75%, transparent 75.5%),
    radial-gradient(ellipse 18% 33% at 4% 77%, color-mix(in srgb, var(--world-accent-secondary) 54%, transparent) 0 28%, transparent 29%),
    radial-gradient(ellipse 15% 28% at 96% 39%, color-mix(in srgb, var(--world-accent-secondary) 36%, transparent) 0 27%, transparent 28%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: sunlit-nook-leaf-shadow 61s ease-in-out infinite alternate;
}
html[data-world='sunlit-nook'] .world-orbits {
  opacity: .1;
  background: var(--world-accent-secondary);
  animation-duration: 148s;
}
html[data-world='sunlit-nook'] .world-particles {
  opacity: .3;
  background-image: radial-gradient(circle, color-mix(in srgb, var(--world-highlight) 82%, white) 0 .8px, transparent 1.8px), radial-gradient(circle, color-mix(in srgb, var(--world-accent-secondary) 50%, transparent) 0 .7px, transparent 1.7px);
  background-size: 83px 127px, 149px 181px;
  animation: sunlit-nook-dust-far 67s linear infinite;
}
html[data-world='sunlit-nook'] .world-particles-mid {
  opacity: .2;
  background-image: radial-gradient(circle, var(--world-highlight) 0 .9px, transparent 2.2px);
  background-size: 191px 223px;
  animation: sunlit-nook-dust-mid 43s linear infinite;
}
html[data-world='sunlit-nook'] .world-particles-near {
  opacity: .1;
  background: linear-gradient(116deg, transparent 35%, color-mix(in srgb, var(--world-highlight) 18%, transparent) 47%, transparent 59%);
  animation: sunlit-nook-rays 57s ease-in-out infinite alternate-reverse;
}
html[data-world='sunlit-nook'] .world-atmosphere[data-event='sunbeam-drift'] .world-rare {
  inset: -10% -20%;
  opacity: .7;
  background: linear-gradient(112deg, transparent 31%, color-mix(in srgb, var(--world-highlight) 28%, transparent) 45%, transparent 58%);
  animation: sunlit-nook-rare-beam 15s ease-in-out both;
}
html[data-world='sunlit-nook'] .world-atmosphere[data-secondary-event='dust-reveal'] .world-rare {
  inset: 12% 8%;
  opacity: .66;
  background-image: radial-gradient(circle at var(--world-rare-x) var(--world-rare-y), var(--world-highlight) 0 1px, transparent 2px), radial-gradient(circle at 22% 64%, var(--world-highlight) 0 .8px, transparent 2px), radial-gradient(circle at 74% 27%, var(--world-highlight) 0 1.1px, transparent 2px);
  animation: sunlit-nook-dust-reveal 9.5s ease-in-out both;
}

/* Paper, walnut spine and a small page-cut silhouette define the cards. */
html[data-world='sunlit-nook'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card, .room-list-row, .strip-room-row, .summary-room-row, .hk-room-chip, .maintenance-room-overview):not(:where(.print-preview-sheet *, #print-run-root *)) {
  border-color: color-mix(in srgb, var(--world-border) 82%, var(--world-accent-secondary)) !important;
  border-radius: var(--world-radius) !important;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--world-deep) 20%, transparent) 0 10px, transparent 10px),
    linear-gradient(135deg, color-mix(in srgb, var(--world-highlight) 7%, var(--world-surface)), var(--world-surface) 58%, color-mix(in srgb, var(--world-accent-secondary) 7%, var(--world-surface))) !important;
  box-shadow: var(--world-shadow), inset 7px 0 0 -5px color-mix(in srgb, var(--world-deep) 58%, transparent), inset 0 -3px 0 color-mix(in srgb, var(--world-accent-secondary) 36%, transparent) !important;
}
html[data-world='sunlit-nook'][data-mode='dark'] #app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card, .room-list-row, .strip-room-row, .summary-room-row, .hk-room-chip, .maintenance-room-overview):not(:where(.print-preview-sheet *, #print-run-root *)) {
  background:
    linear-gradient(90deg, color-mix(in srgb, #100c0a 48%, transparent) 0 10px, transparent 10px),
    linear-gradient(135deg, color-mix(in srgb, var(--world-highlight) 6%, var(--world-surface)), var(--world-surface) 58%, color-mix(in srgb, var(--world-accent-secondary) 9%, var(--world-surface))) !important;
}
html[data-world='sunlit-nook'] #app-view .view :is(.panel, .metric, .room-card, .summary-card, .metric-card):is(:hover, :focus-within, .selected, [aria-selected='true']) {
  border-color: var(--world-highlight) !important;
  box-shadow: 0 18px 34px -24px color-mix(in srgb, var(--world-deep) 75%, transparent), inset 8px 0 0 -5px var(--world-accent-secondary), inset 0 1px 0 var(--world-highlight) !important;
}
html[data-world='sunlit-nook'] #app-view .view .panel > .panel-head {
  border-bottom-color: color-mix(in srgb, var(--world-accent-secondary) 34%, transparent) !important;
}
html[data-world='sunlit-nook'] #app-view .view :is(.panel, .metric, .room-card)::before {
  background: linear-gradient(90deg, transparent 5%, color-mix(in srgb, var(--world-highlight) 46%, transparent), transparent 95%);
}

/* Navigation reads like a walnut bookshelf; active tabs catch a warm marker. */
html[data-world='sunlit-nook'] #app-view .nav-item,
html[data-world='sunlit-nook'] #mobile-nav-sheet .mobile-nav-sheet-item {
  border-bottom-color: color-mix(in srgb, var(--world-accent-secondary) 28%, transparent);
}
html[data-world='sunlit-nook'] #app-view .nav-item:is(.active, [aria-current='page']),
html[data-world='sunlit-nook'] #mobile-nav-sheet .mobile-nav-sheet-item[aria-current='page'] {
  color: var(--world-text) !important;
  background: linear-gradient(90deg, color-mix(in srgb, var(--world-highlight) 36%, transparent), color-mix(in srgb, var(--world-accent-secondary) 18%, transparent));
  box-shadow: inset 5px 0 var(--world-highlight), inset 0 -1px color-mix(in srgb, var(--world-deep) 22%, transparent);
}
html[data-world='sunlit-nook'] :is(.tabs, .tab-list) :is(.tab, button[aria-selected='true']) {
  border-bottom-color: var(--world-highlight) !important;
  box-shadow: inset 0 -3px var(--world-highlight);
}
html[data-world='sunlit-nook'] .world-shift {
  background: linear-gradient(105deg, transparent 18%, color-mix(in srgb, var(--world-highlight) 28%, transparent) 48%, transparent 72%);
  animation-name: sunlit-nook-page-wash;
}

/* Room-state language: leaf green for progress, honey for arrival/inspection,
   and terracotta for time pressure. */
html[data-world='sunlit-nook'] :is(.arrival-tier, .early-tier) :is(.arrival-badge, .early-badge, .status-badge.arrival) {
  color: var(--world-text) !important;
  border-color: var(--world-highlight) !important;
  background: color-mix(in srgb, var(--world-highlight) 24%, var(--world-surface)) !important;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--world-highlight) 18%, transparent), 0 5px 16px -8px var(--world-highlight) !important;
}
html[data-world='sunlit-nook'] :is(.status-badge.out, .checkout-turnover-status) { border-color: var(--world-status-accent-secondary) !important; background: color-mix(in srgb, var(--world-status-accent-secondary) 14%, var(--world-surface)) !important; }
html[data-world='sunlit-nook'] :is(.status-badge.late-checkout, .late-checkout) { color: var(--world-danger) !important; border-color: var(--world-danger) !important; background: color-mix(in srgb, var(--world-danger) 13%, var(--world-surface)) !important; }
html[data-world='sunlit-nook'] :is(.status-badge.finished, .status-badge[data-status='finished'], .today-finished-line) { color: var(--world-success) !important; border-color: var(--world-success) !important; background: color-mix(in srgb, var(--world-success) 14%, var(--world-surface)) !important; }
html[data-world='sunlit-nook'] :is(.status-badge.stripped, .status-badge.bed-made) { color: var(--world-status-accent-secondary) !important; border-color: var(--world-status-accent-secondary) !important; background: color-mix(in srgb, var(--world-status-accent-secondary) 12%, var(--world-surface)) !important; }
html[data-world='sunlit-nook'][data-decorative-animations='on'] .room-card.finished,
html[data-world='sunlit-nook'][data-decorative-animations='on'] .adaptive-room-card[data-state='finished'] {
  animation: sunlit-nook-finished 4.8s ease-out both;
}

@keyframes sunlit-nook-room-drift { from { background-position: 0 0; } to { background-position: 6% 3%; } }
@keyframes sunlit-nook-rays { from { transform: translate3d(-2%, 1%, 0) rotate(-1deg); } to { transform: translate3d(3%, -1%, 0) rotate(2deg); } }
@keyframes sunlit-nook-leaf-shadow { from { transform: translate3d(-2%, 0, 0) rotate(-.8deg); } to { transform: translate3d(3%, -1%, 0) rotate(1.2deg); } }
@keyframes sunlit-nook-dust-far { from { background-position: 0 0, 0 0; } to { background-position: 83px -127px, -61px -181px; } }
@keyframes sunlit-nook-dust-mid { from { background-position: 0 0; } to { background-position: -47px -223px; } }
@keyframes sunlit-nook-rare-beam { 0%, 100% { opacity: 0; transform: translateX(-10%); } 28%, 72% { opacity: .7; } 55% { transform: translateX(10%); } }
@keyframes sunlit-nook-dust-reveal { 0%, 100% { opacity: 0; transform: scale(.92); } 28%, 72% { opacity: .66; transform: scale(1.04); } }
@keyframes sunlit-nook-page-wash { 0% { opacity: 0; transform: translateX(-100%); } 34% { opacity: .72; } 100% { opacity: 0; transform: translateX(100%); } }
@keyframes sunlit-nook-finished { 0% { box-shadow: var(--world-shadow); } 18% { box-shadow: 0 0 0 2px color-mix(in srgb, var(--world-highlight) 26%, transparent), 0 0 24px -5px var(--world-highlight), var(--world-shadow); } 45% { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--world-success) 58%, transparent), 0 0 32px -9px var(--world-highlight), var(--world-shadow); } 100% { box-shadow: var(--world-shadow), inset 0 -3px 0 color-mix(in srgb, var(--world-success) 42%, transparent); } }

@media (prefers-reduced-motion: reduce) {
  html[data-world='sunlit-nook'] :is(.world-base, .world-horizon, .world-silhouette, .world-orbits, .world-particles, .world-particles-mid, .world-particles-near, .world-rare, .room-card.finished, .adaptive-room-card[data-state='finished']) { animation: none !important; }
}

/* 2.0 — architectural room artwork, a single shared moving light plane and
   hardcover-like cards. The older operational state colors stay intact. */
html[data-world='sunlit-nook'] { --nook-paper: #fffbee; --nook-spine: #61462d; }
html[data-world='sunlit-nook'][data-mode='dark'] { --nook-paper: #34291f; --nook-spine: #201713; }
html[data-world='sunlit-nook'] :is(body, .workspace) { background: #bcb08a !important; }
html[data-world='sunlit-nook'][data-mode='dark'] :is(body, .workspace) { background: #111a19 !important; }
html[data-world='sunlit-nook'] .world-atmosphere { opacity: 1 !important; }
.world-preview[data-world='sunlit-nook'] { background: url('/sunlit-nook-room.svg') center / cover, #c5b48c; }
.world-preview[data-world='sunlit-nook'][data-mode='dark'] { background-image: linear-gradient(#101c1dcb, #221811c7), url('/sunlit-nook-room.svg'); }
.world-preview[data-world='sunlit-nook'] .world-sample-card { background: var(--world-surface); border-left: 5px solid #7b5433; box-shadow: 4px 5px 0 #aa865f, 0 12px 20px #2f291f83; }
.world-preview[data-world='sunlit-nook'] .world-portal-art { opacity: 0; }
html[data-world='sunlit-nook'] .world-base {
  inset: 0; background: url('/sunlit-nook-room.svg') center / cover no-repeat;
  animation: none;
}
html[data-world='sunlit-nook'][data-mode='dark'] .world-base {
  background-image: linear-gradient(125deg, #09151ccb, #142017ad 48%, #100d0bd8), url('/sunlit-nook-room.svg');
}
html[data-world='sunlit-nook'][data-mode='dark'] .world-base::before {
  inset: 0; background: radial-gradient(ellipse 40% 45% at 52% 26%, #102e4ac4, transparent 90%);
  opacity: .7;
}
html[data-world='sunlit-nook'][data-mode='dark'] .world-base::after {
  inset: 0; background: radial-gradient(ellipse 29% 42% at 17% 68%, #eead5780, transparent 85%), radial-gradient(ellipse 29% 37% at 84% 37%, #f6ae6175, transparent 85%);
}
html[data-world='sunlit-nook'][data-mode='light'] .world-base::after {
  inset: 0 20% 22% 32%;
  background: linear-gradient(96deg, #fff9e078 0 9%, transparent 21% 75%, #fff8df89 91% 100%);
  filter: blur(9px);
  transform-origin: top center;
}
html[data-world='sunlit-nook'] .world-horizon {
  inset: -14%; opacity: .92; transform-origin: 66% 4%; filter: blur(8px);
  background: linear-gradient(112deg, transparent 24%, #fff4c322 32%, #fff0b988 43%, #ffe9a968 52%, transparent 66%), linear-gradient(124deg, transparent 38%, #fff9da6c 48%, #ffe6a454 60%, transparent 71%), linear-gradient(99deg, transparent 56%, #fff3c25c 62%, transparent 74%);
  animation: nook-sun-travel 250s ease-in-out infinite alternate;
}
html[data-world='sunlit-nook'][data-mode='dark'] .world-horizon {
  background: radial-gradient(ellipse 39% 55% at 20% 68%, #f7bc724f, transparent), radial-gradient(ellipse 35% 38% at 83% 40%, #f4ab5262, transparent);
  opacity: .49; animation: nook-lamp-breathe 28s ease-in-out infinite alternate;
}
html[data-world='sunlit-nook'] .world-silhouette {
  inset: 0 -10%; opacity: .26; filter: blur(17px); transform-origin: 65% 5%;
  background: linear-gradient(114deg, transparent 23%, #5b4c3678 24% 26%, transparent 27% 48%, #5b4c365c 49% 51%, transparent 52%), linear-gradient(174deg, transparent 39%, #5b4c365c 40% 43%, transparent 44%);
  animation: nook-window-shadow 290s ease-in-out infinite alternate;
}
html[data-world='sunlit-nook'][data-mode='dark'] .world-silhouette { opacity: .1; }
html[data-world='sunlit-nook'] .world-orbits {
  right: -7vw; top: -7vh; width: min(37vw, 520px); height: 60vh; aspect-ratio: auto;
  background: radial-gradient(ellipse at 80% 20%, #265c3b 0 23%, transparent 24%), radial-gradient(ellipse at 55% 48%, #3f7948 0 17%, transparent 18%), radial-gradient(ellipse at 82% 67%, #225838 0 23%, transparent 24%);
  mask: none; opacity: .29; filter: blur(8px); animation: nook-leaf-rest 93s ease-in-out infinite alternate;
}
html[data-world='sunlit-nook'] .world-orbits > b { display: none; }
html[data-world='sunlit-nook'] .world-atmosphere::before,
html[data-world='sunlit-nook'] .world-atmosphere::after {
  content: ''; position: absolute; width: min(20vw, 280px); height: min(32vh, 300px); pointer-events: none;
  background: radial-gradient(ellipse 45% 24% at 45% 27%, #3d7444 98%, transparent), radial-gradient(ellipse 35% 22% at 72% 56%, #225938 98%, transparent), radial-gradient(ellipse 42% 23% at 32% 78%, #5b8b4d 98%, transparent);
  filter: drop-shadow(9px 16px 10px #18351e5e); opacity: .69;
}
html[data-world='sunlit-nook'] .world-atmosphere::before { left: -6vw; bottom: -9vh; transform: rotate(-29deg); animation: nook-leaf-rest 71s ease-in-out infinite alternate; }
html[data-world='sunlit-nook'] .world-atmosphere::after { right: -7vw; top: -9vh; transform: rotate(135deg); animation: nook-leaf-rest 83s 5s ease-in-out infinite alternate-reverse; }
html[data-world='sunlit-nook'][data-mode='dark'] .world-atmosphere::before,
html[data-world='sunlit-nook'][data-mode='dark'] .world-atmosphere::after { opacity: .38; }
/* Hundreds of specks from two repeating paints, clipped to the rays. */
html[data-world='sunlit-nook'] .world-particles,
html[data-world='sunlit-nook'] .world-particles-mid {
  inset: 0; background-image: radial-gradient(circle, #fff9d9 0 .7px, transparent 1.5px), radial-gradient(circle, #fff9dd 0 .6px, transparent 1.4px);
  background-size: 37px 43px, 59px 71px; mask-image: linear-gradient(112deg, transparent 20%, #000 38% 55%, transparent 69%);
  opacity: .46; animation: nook-dust 83s linear infinite;
}
html[data-world='sunlit-nook'] .world-particles-mid { background-size: 83px 97px, 107px 119px; opacity: .25; animation-duration: 129s; animation-direction: reverse; }
html[data-world='sunlit-nook'] .world-particles-near { display: none; }
html[data-world='sunlit-nook'][data-mode='dark'] :is(.world-particles, .world-particles-mid) { opacity: .13; }
.nook-light-plane { display: none; }
html[data-world='sunlit-nook'] .nook-light-plane {
  display: block; position: fixed; inset: -20% -25%; z-index: 2; pointer-events: none;
  background: linear-gradient(109deg, transparent 24%, #ffe3a244 33%, #ffedb38a 43%, #ffdf8a6c 51%, transparent 63%);
  opacity: .25; mix-blend-mode: screen; transform: translate3d(-10%,0,0); animation: nook-plane-cross 165s ease-in-out infinite alternate;
}
html[data-world='sunlit-nook'][data-mode='dark'] .nook-light-plane {
  background: radial-gradient(ellipse 33% 54% at 24% 59%, #ffb65c42, transparent), radial-gradient(ellipse 30% 38% at 79% 33%, #ffbc6852, transparent);
  animation: nook-lamp-breathe 28s ease-in-out infinite alternate;
}
html[data-world='sunlit-nook'] .world-atmosphere[data-event='sunbeam-drift'] .world-rare,
html[data-world='sunlit-nook'] .world-atmosphere[data-event='golden-hour'] .world-rare {
  inset: 0; background: linear-gradient(115deg, transparent 23%, #ffe0a28a 42%, #ffd07758 58%, transparent 72%);
  filter: blur(17px); animation: nook-golden-hour 19s ease-in-out both;
}
html[data-world='sunlit-nook'] .world-atmosphere[data-event='golden-hour'] .world-rare { background: linear-gradient(114deg, transparent 17%, #f5ab4d9e 41%, #f6bc677b 57%, transparent 76%); }
html[data-world='sunlit-nook'] .world-atmosphere[data-event='breeze'] .world-base::after { animation: nook-curtain-breeze 13s ease-in-out both; }
html[data-world='sunlit-nook'] .world-atmosphere[data-event='breeze'] .world-orbits { animation: nook-breeze 13s .35s ease-in-out both; }
html[data-world='sunlit-nook'] .world-atmosphere[data-event='breeze']::before { animation: nook-breeze 13s 1s ease-in-out both; }
html[data-world='sunlit-nook'] .world-atmosphere[data-event='breeze']::after { animation: nook-breeze 13s 1.8s ease-in-out both; }
html[data-world='sunlit-nook'] .world-atmosphere[data-secondary-event='dust-reveal'] .world-particles { animation: nook-dust-reveal 9.5s ease-in-out both; }
html[data-world='sunlit-nook'][data-mode='dark'] .world-atmosphere[data-secondary-event='window-rain'] .world-rare {
  inset: 0 23% 24% 33%; opacity: .24; background: repeating-linear-gradient(105deg, transparent 0 36px, #b9d9e480 37px 38px, transparent 39px 72px);
  mask-image: linear-gradient(#0000, #000 28% 78%, #0000); animation: nook-rain 12s linear both;
}
/* The shared card rule has many :not() classes; this theme-specific ID repeat
   gives the room material priority without changing shared themes. */
html[data-world='sunlit-nook'] #app-view#app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card, .room-list-row, .strip-room-row, .summary-room-row, .hk-room-chip, .maintenance-room-overview):not(:where(.print-preview-sheet *, #print-run-root *)) {
  border: 1px solid #9b7954 !important; border-radius: 6px 18px 18px 7px !important;
  background: linear-gradient(90deg, var(--nook-spine) 0 7px, #c79555 7px 9px, transparent 9px), repeating-linear-gradient(0deg, transparent 0 7px, #9c845509 8px 9px), radial-gradient(ellipse at 85% 0, #ffe3a86b, transparent 44%), linear-gradient(125deg, var(--nook-paper), #eff0d9) !important;
  box-shadow: 4px 5px 0 -2px #ddd1ac, 6px 7px 0 -2px #a59370, 18px 24px 35px -24px #342c21a6, inset 0 2px 0 #fff5d9 !important;
  transition: transform .3s ease, box-shadow .4s ease, border-color .4s ease !important;
}
html[data-world='sunlit-nook'][data-mode='dark'] #app-view#app-view .view :is(.panel, .metric, .employee-bubble, .room-card, .prod-score-card, .summary-card, .metric-card, .room-list-row, .strip-room-row, .summary-room-row, .hk-room-chip, .maintenance-room-overview):not(:where(.print-preview-sheet *, #print-run-root *)) {
  border-color: #846b4e !important;
  background: linear-gradient(90deg, #1a120e 0 7px, #aa7742 7px 9px, transparent 9px), repeating-linear-gradient(0deg, transparent 0 7px, #e2bd7510 8px 9px), radial-gradient(ellipse at 83% 3%, #de9c5137, transparent 48%), linear-gradient(125deg, #392c20, #281f1a) !important;
  box-shadow: 4px 5px 0 -2px #6d5239, 6px 7px 0 -2px #3c2a21, 18px 24px 35px -24px #070606, inset 0 2px 0 #e9b87363 !important;
}
html[data-world='sunlit-nook'] #app-view#app-view .view :is(.panel, .metric, .room-card, .summary-card, .metric-card):is(:hover, :focus-within, .selected, [aria-selected='true']) {
  border-color: #d7a754 !important; box-shadow: 4px 6px 0 -2px #e4cf9a, 7px 9px 0 -2px #987246, 18px 26px 38px -20px #392819ad, inset 0 2px 0 #fff0b6 !important;
  transform: translateY(-2px);
}
html[data-world='sunlit-nook'] #app-view .view .panel > .panel-head { border-bottom-color: #b98d5366 !important; background: transparent !important; }
html[data-world='sunlit-nook'] #app-view .nav-item:is(.active, [aria-current='page']),
html[data-world='sunlit-nook'] #mobile-nav-sheet .mobile-nav-sheet-item[aria-current='page'] { background: linear-gradient(90deg, #f9d78153, #4a7e3e22) !important; box-shadow: inset 5px 0 #d0a04e !important; }
html[data-world='sunlit-nook'] .world-shift { background: linear-gradient(100deg, transparent 13%, #533d2d99 22%, #f1d493bd 46%, #fff8dacc 54%, transparent 72%); animation-name: nook-page-turn; }
html[data-world='sunlit-nook'][data-decorative-animations='on'] .room-card[data-room-transition-active='finished'],
html[data-world='sunlit-nook'][data-decorative-animations='on'] .adaptive-room-card[data-room-transition-active='finished'] { animation: nook-finished 2.9s ease-out both; }

@keyframes nook-sun-travel { from { transform: translate3d(-7%,0,0) rotate(-3deg); } to { transform: translate3d(8%,2%,0) rotate(4deg); } }
@keyframes nook-window-shadow { from { transform: translate3d(-4%,0,0) skewX(-3deg); } to { transform: translate3d(5%,0,0) skewX(4deg); } }
@keyframes nook-plane-cross { from { transform: translate3d(-14%,0,0); } to { transform: translate3d(14%,0,0); } }
@keyframes nook-leaf-rest { from { translate: -3px 0; rotate: -1deg; } to { translate: 4px -2px; rotate: 2deg; } }
@keyframes nook-dust { from { background-position: 0 0, 0 0; } to { background-position: 111px -172px, -118px -142px; } }
@keyframes nook-lamp-breathe { from { opacity: .42; } to { opacity: .62; } }
@keyframes nook-golden-hour { 0%,100% { opacity: 0; transform: translateX(-9%); } 28%,70% { opacity: .78; } 55% { transform: translateX(9%); } }
@keyframes nook-curtain-breeze { 0%,100% { transform: skewX(0deg) translateX(0); opacity: 1; } 22% { transform: skewX(2deg) translateX(5px); opacity: .84; } 48% { transform: skewX(-1.5deg) translateX(-3px); opacity: .94; } }
@keyframes nook-breeze { 0%,100% { translate: 0 0; rotate: 0deg; } 22% { translate: 4px 0; rotate: 1.5deg; } 48% { translate: -3px 0; rotate: -1deg; } 70% { translate: 2px 0; rotate: .5deg; } }
@keyframes nook-dust-reveal { 0%,100% { opacity: .2; } 35%,65% { opacity: .8; } }
@keyframes nook-rain { from { background-position: 0 -110px; } to { background-position: 0 440px; } }
@keyframes nook-page-turn { 0% { opacity: 0; transform: translateX(-110%); } 38% { opacity: .75; } 100% { opacity: 0; transform: translateX(110%); } }
@keyframes nook-finished { 0% { filter: brightness(1); } 28% { filter: brightness(1.22); box-shadow: 4px 5px 0 -2px #fff2c2, 0 0 44px #efc06b, inset 0 2px 0 #fff5d9; } 100% { filter: brightness(1); } }

html[data-world='sunlit-nook'][data-background-animations='off'] :is(.world-horizon, .world-silhouette, .world-orbits, .world-particles, .world-particles-mid, .nook-light-plane),
html[data-world='sunlit-nook'].world-page-hidden :is(.world-horizon, .world-silhouette, .world-orbits, .world-particles, .world-particles-mid, .nook-light-plane),
html[data-world='sunlit-nook'].world-focus-mode .nook-light-plane { animation-play-state: paused !important; }
html[data-world='sunlit-nook'][data-background-animations='off'] .nook-light-plane { opacity: .25; }
html[data-world='sunlit-nook'][data-animation-style]:not([data-animation-style='none']) .nook-light-plane { display: none; }
@media (max-width: 700px) {
  html[data-world='sunlit-nook'] .world-base { background-size: auto 100%; background-position: 53% center; }
  html[data-world='sunlit-nook'] .world-horizon { opacity: .63; }
  html[data-world='sunlit-nook'] .world-silhouette { opacity: .12 !important; }
  html[data-world='sunlit-nook'] .world-atmosphere::before,
  html[data-world='sunlit-nook'] .world-atmosphere::after { width: 28vw; height: 20vh; opacity: .35; }
  html[data-world='sunlit-nook'] .nook-light-plane { opacity: .18; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-world='sunlit-nook'] :is(.world-horizon, .world-silhouette, .world-orbits, .world-particles, .world-particles-mid, .world-rare, .nook-light-plane, .room-card) { animation: none !important; }
}


/* Source: surface-materials.css */
/* One material owner. The foundation sublayer precedes unlayered theme paints
   within surface-material, so existing important declarations
   in this named layer outrank old unlayered !important paints without escalating
   selector specificity. Geometry, layout, status colors and animations stay owned
   by their existing systems. Never reduce opacity on a content container. */
@media screen {
  :root {
    --surface-card-opacity:84%; --surface-panel-opacity:86%; --surface-dense-opacity:94%;
    --surface-elevated-opacity:96%; --surface-modal-opacity:96%; --surface-blur:10px;
    --surface-border-opacity:28%; --surface-shadow-opacity:14%;
    --surface-tint:color-mix(in srgb,var(--world-surface,var(--panel)) 94%,#fff);
    --surface-ink:var(--world-text,var(--text));
    --surface-secondary:color-mix(in srgb,var(--surface-ink) 97%,var(--surface-tint));
    --surface-subtle:color-mix(in srgb,var(--surface-tint) 12%,transparent);
    --surface-card:color-mix(in srgb,var(--surface-tint) var(--surface-card-opacity),transparent);
    --surface-panel:color-mix(in srgb,var(--surface-tint) var(--surface-panel-opacity),transparent);
    --surface-dense:color-mix(in srgb,var(--surface-tint) var(--surface-dense-opacity),transparent);
    --surface-elevated:color-mix(in srgb,var(--surface-tint) var(--surface-elevated-opacity),transparent);
    --surface-modal:color-mix(in srgb,var(--surface-tint) var(--surface-modal-opacity),transparent);
    --surface-control:color-mix(in srgb,var(--world-surface,var(--panel)) 97%,transparent);
    --surface-edge:color-mix(in srgb,var(--world-border,var(--border)) var(--surface-border-opacity),transparent);
    --surface-shadow-color:color-mix(in srgb,var(--world-deep,var(--text)) var(--surface-shadow-opacity),transparent);
    --surface-highlight:color-mix(in srgb,var(--world-highlight,#fff) 14%,transparent);
    --surface-shadow:0 2px 6px -3px var(--surface-shadow-color),0 10px 24px -16px var(--surface-shadow-color),inset 0 1px 0 var(--surface-highlight);
    --surface-hover-shadow:0 3px 8px -4px var(--surface-shadow-color),0 14px 28px -16px var(--surface-shadow-color),inset 0 1px 0 var(--surface-highlight);
    --surface-floating-shadow:0 6px 14px -8px var(--surface-shadow-color),0 18px 40px -18px var(--surface-shadow-color);
    --surface-modal-shadow:0 8px 20px -10px var(--surface-shadow-color),0 24px 64px -20px var(--surface-shadow-color);
  }
  :root[data-mode='dark'] {
    --surface-card-opacity:86%; --surface-panel-opacity:88%; --surface-dense-opacity:94%;
    --surface-tint:color-mix(in srgb,var(--world-deep,var(--bg)) 70%,var(--world-surface,var(--panel)));
  }
  :root[data-theme='custom'] {
    --surface-tint:var(--custom-surface-tint);
    --surface-control:color-mix(in srgb,var(--custom-surface-tint) 97%,transparent);
  }
  :root[data-theme='custom'][data-mode='dark'] {
    --surface-tint:color-mix(in srgb,var(--custom-shadow-tint) 70%,var(--custom-surface-tint));
  }
  :root[data-theme='custom'][data-custom-glass='clear'] {--surface-card-opacity:70%;--surface-panel-opacity:72%;--surface-blur:8px;}
  :root[data-theme='custom'][data-custom-glass='solid'] {--surface-card-opacity:86%;--surface-panel-opacity:88%;--surface-dense-opacity:92%;--surface-elevated-opacity:94%;}
  /* Retained palettes predate the world contrast contract. A slightly stronger
     fallback protects standalone room labels as well as nested room lists. */
  :root:not([data-world]):not([data-theme='custom']) {
    --surface-card-opacity:86%;--surface-panel-opacity:88%;--surface-dense-opacity:94%;--surface-elevated-opacity:96%;
  }
  @layer surface-material.foundation {
    :where(#app-view .view,dialog,[role='dialog']) :is(.panel,.ops-panel,.hk-live-panel,.operations-sheet-host,.daily-room-operations,.metric,.employee-bubble,.room-card,.prod-score-card,.summary-card,.metric-card,.room-list-row,.strip-room-row,.summary-room-row,.reference-guide-card,.dc-card,.config-card,.pet-tracker-card,.pet-tracker-content,.ca-workspace,.lc-card,.it-card,.pr-room,.ab-room,.ab-column,.ab-top,.ab-tools,.ab-batch,.pr-summary,.pr-common,[data-surface='card'],[data-surface='panel'],[data-surface='dense']):not(:where(.print-preview-sheet *,#print-run-root *)) {
      background:var(--surface-user-paint,var(--surface-card)) !important;
      border-color:var(--surface-edge) !important;
      border-width:1px !important;
      box-shadow:var(--surface-shadow) !important;
      color:var(--surface-ink) !important;
      backdrop-filter:blur(var(--surface-active-blur,var(--surface-blur))) !important;
      -webkit-backdrop-filter:blur(var(--surface-active-blur,var(--surface-blur))) !important;
    }
    #app-view .view :is(.panel,.ops-panel,.hk-live-panel,.operations-sheet-host,.daily-room-operations,[data-surface='panel']) {
      background:var(--surface-user-paint,var(--surface-panel)) !important;
    }
    /* Dense work remains readable without repainting all panels as solid. */
    #app-view .view :is(.room-calendar-panel,.logs-card,.reference-guide-card,[data-surface='dense']) {
      background:var(--surface-user-paint,var(--surface-dense)) !important;
    }
    :where(#app-view .view,dialog,[role='dialog']) :is(.panel-head,.panel-body,.room-card-head,.room-card-body,.room-item-list,.arc-head,.ab-room-head,.pr-room-head,.work-list-body) {
      background:transparent !important;
      box-shadow:none !important;
      backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    }
    :where(#app-view .view) :is(.panel,.ops-panel,.employee-bubble,.ab-column,.daily-room-operations,.pet-tracker-content,.ca-workspace) :is(.panel,.metric,.room-card,.room-list-row,.summary-card,.metric-card,.pr-room,.ab-room,.ops-panel,.pet-tracker-card,.ca-checklist,.lc-card,.it-card) {
      background:var(--surface-user-paint,var(--surface-subtle)) !important;
      box-shadow:none !important;
      border-color:var(--surface-edge) !important;
      backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    }
    :where(#app-view .view) :is(.room-calendar-day,.room-calendar-events,.room-calendar-room-list,.reference-row,.ops-record) {
      background:var(--surface-subtle) !important;
      box-shadow:none !important;
      border-color:var(--surface-edge) !important;
      backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    }
    /* Keep the silhouette/corner marker, quiet the extra glowing top rail. */
    #app-view .view :is(.panel,.ops-panel,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card)::before,
    :where(#app-view .view,dialog) .button:not(.primary,.danger,.success,.nav-button,[aria-pressed='true']) {
      background:var(--surface-user-paint,var(--surface-control)) !important;
      border-color:var(--surface-edge) !important;
      box-shadow:inset 0 1px 0 var(--surface-highlight) !important;
      backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    }
    :is(dialog,[role='dialog'])::before {
      background:var(--surface-highlight) !important;
      box-shadow:none !important; opacity:.18 !important; pointer-events:none !important;
      border-color:var(--surface-edge) !important;
    }
    #app-view .view :is(.panel-head,.room-card-head) {
      border-width:0 0 1px !important; border-color:var(--surface-edge) !important;
    }
    :where(#app-view .view,dialog) :is(.muted,.ops-caption,.arc-assigned,.arc-attribution,.arc-timing,.hk-assignment,.hk-timer) {
      color:var(--surface-secondary) !important;
      opacity:1 !important;
    }
    /* Status remains a solid foreground signal; never tint an entire room red
       or green. Existing semantic text/stripe colors are preserved. */
    :where(#app-view .view,dialog) :is(.arc-status,.ops-primary-status,.hk-current,.badge,.ops-flag,.arc-return) {
      background-color:var(--surface-control) !important;
      backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    }
    :where(#app-view .view) :is(.room-card,.pr-room,.ab-room):is(.arrival-tier,.early-tier,.finished,[data-phase],[data-status]) {
      border-inline-start-width:3px !important;
      border-inline-start-color:var(--surface-room-signal,var(--accent)) !important;
    }
    :where(#app-view .view) :is(.arrival-tier,.early-tier) {--surface-room-signal:var(--hk-arrival,#c28c20);}
    :where(#app-view .view) :is(.finished,[data-phase='finished'],[data-status='inspection']) {--surface-room-signal:var(--hk-finished,#bc942c);}
    :where(#app-view .view) :is([data-phase='ready'],[data-status='ready']) {--surface-room-signal:var(--hk-ready,#229968);}
    :where(#app-view .view) :is([data-phase='sent-back'],[data-status='sent-back']) {--surface-room-signal:var(--hk-sent-back,#dc5363);}
    /* Fields and primary/danger buttons are NOT made translucent. Buttons keep
       their theme/status paints; fields get an almost-solid reading surface. */
    :where(#app-view,dialog) :is(input:not([type='checkbox']):not([type='radio']):not([type='range']),select,textarea) {
      background-color:var(--surface-control) !important;
      backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    }
    :is(dialog,[role='dialog']):not(.print-preview) {
      background:var(--surface-modal) !important;
      color:var(--surface-ink) !important;
      border-color:var(--surface-edge) !important;
      box-shadow:var(--surface-modal-shadow) !important;
      backdrop-filter:blur(var(--surface-active-blur,12px)) !important; -webkit-backdrop-filter:blur(var(--surface-active-blur,12px)) !important;
    }
    :is(dialog,[role='dialog']) :is(.panel,.ops-panel,.room-card,.pr-room,.ab-room) {
      background:var(--surface-user-paint,var(--surface-subtle)) !important;
      backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
      box-shadow:none !important;
    }
    :is(.notification-panel,#mobile-nav-sheet,[popover],.world-preview-banner,[data-surface='elevated']) {
      background:var(--surface-elevated) !important;
      backdrop-filter:blur(var(--surface-active-blur,10px)) !important; -webkit-backdrop-filter:blur(var(--surface-active-blur,10px)) !important;
      border-color:var(--surface-edge) !important;
      box-shadow:var(--surface-floating-shadow) !important;
    }
    /* One blur per substantial surface. Repeated room rows avoid GPU-heavy
       stacks; their parent material supplies the blur when nested. */
    #app-view :is(.pr-grid,.housekeeper-grid,.manager-room-grid,.ab-room-list) :is(.room-card,.pr-room,.ab-room) {
      backdrop-filter:blur(4px) !important; -webkit-backdrop-filter:blur(4px) !important;
    }
    #app-view :is(.panel,.ops-panel,.ab-column) :is(.room-card,.pr-room,.ab-room) {
      backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    }
    /* Lists share their parent material; scrolling must not create one blur
       compositor for every room in a long operational list. */
    #app-view .view :is(.room-list-row,.strip-room-row,.summary-room-row,.work-room-row,.checkout-row) {
      backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    }
    @media(max-width:700px) {
      #app-view .view :is(.panel,.ops-panel,.metric,.employee-bubble,.room-card,.pr-room,.ab-column,.ab-room) {
        backdrop-filter:blur(min(6px,var(--surface-active-blur,var(--surface-blur)))) !important; -webkit-backdrop-filter:blur(min(6px,var(--surface-active-blur,var(--surface-blur)))) !important;
      }
      #app-view .view :is(.panel,.ops-panel,.employee-bubble,.ab-column,.daily-room-operations,.pet-tracker-content,.ca-workspace) :is(.panel,.metric,.room-card,.pr-room,.ab-room),
      #app-view :is(.pr-grid,.housekeeper-grid,.manager-room-grid,.ab-room-list) :is(.room-card,.pr-room,.ab-room) {
        backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
      }
    }
    @media(hover:hover) and (pointer:fine) {
      #app-view .view :is(.panel,.ops-panel,.metric,[data-surface='card']):not(:where(.panel .panel,.panel .metric,.ops-panel .panel,.ops-panel .metric,.daily-room-operations .metric)):hover {
        box-shadow:var(--surface-hover-shadow) !important;
      }
    }
    :where(#app-view,dialog,[popover]) :is(button,input,select,textarea,[tabindex]):focus-visible {
      outline:2px solid var(--world-accent,var(--accent));
      outline-offset:3px;
    }
    @media(prefers-reduced-motion:reduce) {
      #app-view .view :is(.panel,.ops-panel,.metric,.room-card),
      :where(#app-view,dialog) :is(button,input,select,textarea) {transition:none !important;}
    }
    #app-view .view :is(.pet-tracker-content,.ca-workspace) {
      border:1px solid var(--surface-edge);
      border-radius:var(--world-radius,16px);
    }
    @supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
      :root {--surface-card-opacity:88% !important;--surface-panel-opacity:90% !important;--surface-dense-opacity:94% !important;--surface-elevated-opacity:96% !important;--surface-modal-opacity:98% !important;}
      :where(#app-view .view,dialog,[role='dialog']) :is(.panel,.ops-panel,.daily-room-operations,.metric,.room-card,.pr-room,.ab-room,.pet-tracker-content,.pet-tracker-card,.ca-workspace,.lc-card,.it-card),
      :is(dialog,[role='dialog'],[popover],.notification-panel,#mobile-nav-sheet) {background:var(--surface-tint) !important;}
    }
    @media(prefers-reduced-transparency:reduce) {
      :root {--surface-card-opacity:95% !important;--surface-panel-opacity:96% !important;--surface-dense-opacity:98% !important;--surface-elevated-opacity:98% !important;--surface-modal-opacity:100% !important;}
      :where(#app-view .view,dialog,[role='dialog'],[popover]) :is(.panel,.ops-panel,.daily-room-operations,.metric,.room-card,.pr-room,.ab-room,.pet-tracker-content,.pet-tracker-card,.ca-workspace,.lc-card,.it-card,input,select,textarea),
      :is(dialog,[role='dialog'],[popover],.notification-panel,#mobile-nav-sheet) {
        background:var(--surface-tint) !important;
        backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
      }
    }
    @media(forced-colors:active) {
      #app-view .view :is(.panel,.ops-panel,.room-card,.pr-room,.ab-room,.metric),dialog {
        background:Canvas !important;color:CanvasText !important;border-color:CanvasText !important;
        backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
      }
    }

  }
}


/* Source: operational-materials.css */
/* Shared material integration. Paint only: never change geometry, operational
   states, selection handlers or print output. One blur per workspace. */
@media screen {
 @layer surface-material.foundation {
  :root[data-theme-tuner-glass] {--surface-active-blur:var(--tuner-glass-blur);}
  :root[data-theme-tuner-depth] {
   --surface-shadow:0 20px 42px -26px color-mix(in srgb,var(--world-deep,var(--shadow)) var(--tuner-depth),transparent),inset 0 1px 0 color-mix(in srgb,var(--world-highlight,var(--border)) var(--tuner-glow),transparent)!important;
  }
  :root[data-ad-enabled='true'] {
   --surface-active-blur:var(--ad-blur);
   --surface-edge:color-mix(in srgb,var(--world-accent,var(--accent)) calc(var(--ad-glow) * 40%),var(--world-border,var(--border)))!important;
   --surface-highlight:color-mix(in srgb,var(--world-highlight,#fff) calc(var(--ad-glow) * 20%),transparent)!important;
   --surface-card-opacity:var(--ad-solid)!important;
   --surface-panel-opacity:var(--ad-solid)!important;
   --surface-dense-opacity:var(--ad-solid)!important;
  }
  /* Explicit tuner choices still belong to individual material surfaces. */
  #app-view .view :is(.daily-room-operations,.operations-sheet-host) {
   --surface-control:color-mix(in srgb,var(--surface-tint) max(88%,var(--tuner-surface-solid,var(--surface-panel-opacity))),transparent);
   background:var(--surface-user-paint,var(--surface-panel))!important;
   border-color:var(--surface-edge)!important;
   box-shadow:var(--surface-shadow)!important;
   color:var(--surface-ink)!important;
   backdrop-filter:blur(var(--surface-active-blur,var(--surface-blur)))!important;
   -webkit-backdrop-filter:blur(var(--surface-active-blur,var(--surface-blur)))!important;
  }
  #app-view .view :is(.daily-operations-list,.daily-room-scroll,.checkout-row-header,.checkout-row-details,.summary-room-list,.operations-sheet-scroll,.operations-sheet,.sheet-toolbar,.matrix-toolbar-row) {
   background:transparent!important;box-shadow:none!important;
   border-color:var(--surface-edge)!important;
  }
  #app-view .daily-room-operations :is(.summary-room-row,.inspections-card,.mark-out-selector,.mark-out-choices,.mark-out-choice,.checkout-row,.daily-operations-counter) {
   background:var(--surface-user-paint,var(--surface-subtle))!important;
   border-color:var(--surface-edge)!important;
   backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  }
  #app-view .daily-room-operations .daily-operations-counter[aria-expanded='true'] {border-color:var(--accent)!important;}
  #app-view .operations-sheet-host {
   --sheet-stripe:color-mix(in srgb,var(--accent) 4%,var(--surface-subtle));
   --sheet-hover:color-mix(in srgb,var(--accent) 10%,var(--surface-subtle));
  }
  #app-view .operations-sheet :is(th,td) {
   background:var(--surface-subtle)!important;color:var(--surface-ink)!important;
   border-color:var(--surface-edge)!important;
   backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  }
  #app-view .operations-sheet tbody tr:nth-child(even)>:is(td,th) {background:var(--sheet-stripe)!important;}
  #app-view .operations-sheet tbody tr.sheet-hover-row>td {background:var(--sheet-hover)!important;}
  /* Frozen axes need a reading plane to prevent scrolled text showing through.
     Its tint follows the active palette; stronger glass still changes its paint. */
  #app-view .operations-sheet :is(thead th,.sheet-frozen,[data-sheet-group-row] th) {
   background:color-mix(in srgb,var(--surface-tint) max(90%,var(--surface-panel-opacity)),transparent)!important;
  }
  #app-view .operations-sheet .sheet-selected {
   background:color-mix(in srgb,var(--accent) 18%,var(--surface-tint))!important;
  }
  #app-view .view :is(.sheet-groups,.daily-operations-out-tools) {
   background:var(--surface-subtle)!important;border-color:var(--surface-edge)!important;
  }
  #app-view :is(.operations-sheet-host,.daily-room-operations) :is(button:not(.primary,.danger,.success,[aria-pressed='true'],.dc-cell,.mm-cell,.ri-cell),input:not([type='checkbox'],[type='radio'],[type='range']),select,textarea,summary) {
   background-color:var(--surface-control)!important;border-color:var(--surface-edge)!important;color:var(--surface-ink)!important;
  }
  @media(forced-colors:active) {
   #app-view .view :is(.daily-room-operations,.operations-sheet-host),#app-view .operations-sheet :is(th,td) {background:Canvas!important;color:CanvasText!important;border-color:CanvasText!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}
  }
  @media(prefers-reduced-transparency:reduce) {
   :root[data-ad-enabled='true'] {--surface-active-blur:0px;--surface-card-opacity:100%!important;--surface-panel-opacity:100%!important;--surface-dense-opacity:100%!important;}
  }
 }
}


/* Source: theme-tuner.css */
/* Theme Tuner: semantic user overrides layered after the designer theme CSS. */
@layer theme-tuner-overrides {
@media screen {
  html[data-theme-tuner-background] .world-atmosphere {
    opacity: var(--tuner-bg-visibility-number) !important;
    filter: brightness(var(--tuner-bg-brightness-number)) saturate(var(--tuner-saturation)) contrast(var(--tuner-contrast));
  }
  html[data-theme-tuner-background] .world-atmosphere .world-rare,
  html[data-theme-tuner-background] .nook-light-plane {
    opacity: calc(var(--tuner-effects-number) * var(--tuner-bg-dimming-number)) !important;
  }

  /* Let each material keep its texture and tint. Feed the actual material
     owner instead of competing with its higher-priority background rule.
     Reset on each surface so a panel's value never leaks into a nested card. */
  :where(#app-view .view,dialog,[role='dialog']) :where(.room-card,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card,.room-list-row,.strip-room-row,.summary-room-row,.adaptive-room-card,.reference-guide-card,.dc-card,.config-card,.pet-tracker-card,.lc-card,.it-card,.pr-room,.ab-room,.pr-summary,.pr-common,[data-surface="card"],.panel,.ops-panel,.hk-live-panel,.daily-room-operations,.operations-sheet-host,.ab-column,.ab-top,.ab-tools,.ab-batch,.pet-tracker-content,.ca-workspace,[data-surface="panel"],.lc-card,.it-card,.logs-card,.room-calendar-panel,[data-surface="dense"]) {
    --tuner-surface-solid: initial;
    --surface-user-paint: initial;
  }
  html[data-theme-tuner-card] :where(#app-view .view,dialog,[role='dialog']) :is(.room-card,.metric,.employee-bubble,.prod-score-card,.summary-card,.metric-card,.room-list-row,.strip-room-row,.summary-room-row,.adaptive-room-card,.reference-guide-card,.dc-card,.config-card,.pet-tracker-card,.lc-card,.it-card,.pr-room,.ab-room,.pr-summary,.pr-common,[data-surface="card"]):not(:where(.print-preview-sheet *,#print-run-root *)) {
    --tuner-surface-solid: var(--tuner-card-solid);
    --surface-user-paint: color-mix(in srgb,var(--surface-tint) var(--tuner-surface-solid),transparent);
  }
  html[data-theme-tuner-panel] #app-view .view :is(.panel,.ops-panel,.hk-live-panel,.daily-room-operations,.operations-sheet-host,.ab-column,.ab-top,.ab-tools,.ab-batch,.pet-tracker-content,.ca-workspace,[data-surface="panel"]):not(:where(.print-preview-sheet *,#print-run-root *)) {
    --tuner-surface-solid: var(--tuner-panel-solid);
    --surface-user-paint: color-mix(in srgb,var(--surface-tint) var(--tuner-surface-solid),transparent);
  }
  @media (prefers-reduced-transparency: reduce) {
    html :is([data-surface],.panel,.ops-panel,.hk-live-panel,.daily-room-operations,.operations-sheet-host,.metric,.room-card,.lc-card,.it-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card,.room-list-row,.strip-room-row,.summary-room-row,.adaptive-room-card,.reference-guide-card,.dc-card,.config-card,.pet-tracker-card,.lc-card,.it-card,.pr-room,.ab-room,.pr-summary,.pr-common,.ab-column,.ab-top,.ab-tools,.ab-batch) {
      --tuner-surface-solid: 100% !important;
    }
  }

  html[data-theme-tuner-tracker] :is(.housekeeping-tracker, .tracker-window, .mobile-floating-bar, #mobile-nav-select) {
    background-color: color-mix(in srgb, var(--world-surface, var(--panel)) var(--tuner-tracker-solid), transparent) !important;
  }
  html[data-theme-tuner-glass] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card, dialog, .notification-panel) {
    backdrop-filter: blur(var(--tuner-glass-blur)) saturate(var(--tuner-saturation));
    -webkit-backdrop-filter: blur(var(--tuner-glass-blur)) saturate(var(--tuner-saturation));
  }
  html[data-theme-tuner-glass] :is(.housekeeping-tracker, .tracker-window, .mobile-floating-bar, #mobile-nav-select) {
    backdrop-filter: blur(var(--tuner-glass-blur)) saturate(var(--tuner-saturation));
    -webkit-backdrop-filter: blur(var(--tuner-glass-blur)) saturate(var(--tuner-saturation));
  }
  html[data-theme-tuner-depth] #app-view .view :is(.panel, .room-card, .metric, .employee-bubble, .prod-score-card, .summary-card, .metric-card, dialog, .notification-panel) {
    box-shadow: 0 20px 42px -26px color-mix(in srgb, var(--world-deep, var(--shadow)) var(--tuner-depth), transparent),
      inset 0 1px 0 color-mix(in srgb, var(--world-highlight, var(--border)) var(--tuner-glow), transparent) !important;
  }

  /* Motion is discrete by design: each theme keeps its own animation names,
     while the tuner controls how much of that motion is presented. */
  html[data-theme-tuner-motion='off'] :is(.world-atmosphere, .world-atmosphere *, .nook-light-plane) { animation-play-state: paused !important; }
  html[data-theme-tuner-motion='off'] #app-view .view :is(.panel, .metric, .room-card, .employee-bubble, .prod-score-card, .summary-card, .metric-card) { animation: none !important; }
  html[data-theme-tuner-motion='low'] :is(.world-particles, .world-particles-mid, .world-particles-near, .world-rare) { opacity: .26 !important; }
  html[data-theme-tuner-motion='high'] :is(.world-particles, .world-particles-mid, .world-particles-near) { opacity: .86 !important; }
  html[data-theme-tuner-particles='off'] :is(.world-particles, .world-particles-mid, .world-particles-near) { opacity: 0 !important; }
  html[data-theme-tuner-particles='low'] :is(.world-particles-mid, .world-particles-near) { opacity: .08 !important; }
  html[data-theme-tuner-particles='high'] :is(.world-particles, .world-particles-mid, .world-particles-near) { filter: brightness(1.06) saturate(1.08); }
  html[data-theme-tuner-environment='still'] :is(.world-base, .world-horizon, .world-silhouette, .world-orbits, .nook-light-plane) { animation-play-state: paused !important; }
  html[data-theme-tuner-environment='low'] :is(.world-horizon, .world-silhouette, .nook-light-plane) { opacity: .38 !important; }
  html[data-theme-tuner-environment='high'] :is(.world-horizon, .world-silhouette, .nook-light-plane) { filter: saturate(1.08) brightness(1.04); }
  html[data-theme-tuner-lighting='off'] :is(.world-rare, .nook-light-plane) { opacity: 0 !important; }
  html[data-theme-tuner-lighting='subtle'] :is(.world-rare, .nook-light-plane) { opacity: .24 !important; }
  html[data-theme-tuner-lighting='strong'] :is(.world-rare, .nook-light-plane) { filter: brightness(1.14) saturate(1.12); }
  html[data-theme-tuner-background] :is(.world-particles, .world-particles-mid, .world-particles-near, .world-rare, .nook-light-plane) { filter: brightness(var(--tuner-bg-brightness-number)) saturate(var(--tuner-saturation)) contrast(var(--tuner-contrast)); }

  /* Enchanted Grove-specific controls keep the Grove's own visual language. */
  html[data-world='enchanted-grove'][data-theme-tuner-active][data-theme-tuner-particles='off'] :is(.world-particles, .world-particles-mid, .world-particles-near) { display: none !important; }
  html[data-world='enchanted-grove'][data-theme-tuner-active][data-theme-tuner-particles='low'] .world-particles-near { opacity: .04 !important; }
  html[data-world='enchanted-grove'][data-theme-tuner-active][data-theme-tuner-particles='high'] :is(.world-particles, .world-particles-mid, .world-particles-near) { opacity: .92 !important; }
  html[data-world='enchanted-grove'][data-theme-tuner-active][data-theme-tuner-lighting='off'] .nook-light-plane { display: none !important; }
  html[data-world='enchanted-grove'][data-theme-tuner-active][data-theme-tuner-lighting='strong'] .nook-light-plane { opacity: .72 !important; }
  html[data-world='enchanted-grove'][data-theme-tuner-active][data-theme-tuner-motion='off'] .sidebar::after { animation-play-state: paused !important; }

  .theme-tuner-dialog {
    width: min(760px, calc(100vw - 28px));
    max-height: min(860px, calc(100dvh - 28px));
    padding: 0 !important;
    overflow: hidden !important;
    color: var(--text);
    background: color-mix(in srgb, var(--panel) 94%, transparent);
    border: 1px solid var(--border);
    border-radius: 24px 8px 28px 10px;
    box-shadow: 0 32px 90px rgb(0 0 0 / .42), inset 0 1px rgb(255 255 255 / .2);
    backdrop-filter: blur(22px) saturate(1.12);
  }
  .theme-tuner-launch { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding-top: 2px; }
  .theme-tuner-launch .muted { font-size: .88rem; }
  .theme-tuner-dialog::backdrop { background: rgb(4 12 10 / .58); backdrop-filter: blur(5px); }
  .theme-tuner-shell { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-height: inherit; }
  .theme-tuner-head, .theme-tuner-foot { padding: 18px 22px; }
  .theme-tuner-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--border-soft, var(--border)); }
  .theme-tuner-head h2 { margin: 0; font-size: clamp(1.2rem, 3vw, 1.65rem); }
  .theme-tuner-head p { margin: 5px 0 0; color: var(--secondary); }
  .theme-tuner-body { overflow: auto; padding: 18px 22px 22px; }
  .theme-tuner-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 16px; }
  .theme-tuner-toolbar .theme-tuner-status { margin-left: auto; color: var(--secondary); font-size: .85rem; }
  .theme-tuner-section { margin: 0 0 18px; padding: 15px; border: 1px solid var(--border-soft, var(--border)); border-radius: 18px 6px 20px 8px; background: color-mix(in srgb, var(--surface) 42%, transparent); }
  .theme-tuner-section h3 { margin: 0 0 12px; font-size: 1rem; }
  .theme-tuner-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
  .theme-tuner-field { display: grid; gap: 5px; min-width: 0; }
  .theme-tuner-field > span:first-child { display: flex; justify-content: space-between; gap: 8px; font-weight: 650; }
  .theme-tuner-field output { color: var(--accent-ink); font-variant-numeric: tabular-nums; }
  .theme-tuner-field small { min-height: 1.1em; color: var(--secondary); }
  .theme-tuner-field input[type='range'] { width: 100%; accent-color: var(--accent); }
  .theme-tuner-field input[type='color'], #custom-color-select { width: 84px; height: 44px; padding: 3px; }
  .theme-tuner-field [data-tuner-accent-reset] { justify-self: start; max-width: 100%; white-space: normal; }
  #custom-color-field { display: grid; gap: 8px; justify-items: start; }
  /* Explicit accent choices also reach artistic primary-button treatments.
     Semantic warning/success/danger controls retain their status paints. */
  html[data-world][data-theme][data-mode]:is([data-accent-source='custom'],[data-accent-source='legacy']) .button.primary:not(.danger,.warning,.success):not(:where(.print-preview-sheet *, #print-run-root *)) {
    background: var(--world-accent) !important;
    color: var(--world-on-accent) !important;
    border-color: var(--world-accent) !important;
  }
  html[data-world][data-theme][data-mode] .status-badge.occupied::before { background: var(--world-status-accent) !important; }
  html[data-world][data-theme][data-mode] .status-badge.occupied { border-color: color-mix(in srgb, var(--world-status-accent) 45%, transparent) !important; }
  html[data-theme='custom'] .status-badge.occupied::before { background: #2ec9b4 !important; }
  html[data-theme='custom'] .status-badge.occupied { border-color: color-mix(in srgb, #2ec9b4 45%, transparent) !important; }
  .theme-tuner-field .theme-tuner-reset { justify-self: end; margin-top: -26px; padding: 0 4px; color: var(--secondary); background: none; border: 0; }
  .theme-tuner-foot { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; border-top: 1px solid var(--border-soft, var(--border)); }
  .theme-tuner-foot .theme-tuner-foot-note { margin-right: auto; align-self: center; color: var(--secondary); font-size: .82rem; }
  .theme-tuner-reduced-motion { margin: 0 0 14px; padding: 9px 11px; border-left: 3px solid var(--accent); color: var(--secondary); background: color-mix(in srgb, var(--accent) 9%, transparent); }
  @media (max-width: 620px) {
    .theme-tuner-shell { grid-template-columns: minmax(0, 1fr); }
    .theme-tuner-head > div { min-width: 0; }
    .theme-tuner-head > [data-tuner-cancel] { flex-shrink: 0; }
    .theme-tuner-foot .button { max-width: 100% !important; white-space: normal !important; }
    .theme-tuner-head, .theme-tuner-foot, .theme-tuner-body { padding-left: 15px; padding-right: 15px; }
    .theme-tuner-grid { grid-template-columns: 1fr; }
    .theme-tuner-toolbar .theme-tuner-status { width: 100%; margin-left: 0; }
  }
  @media (prefers-reduced-motion: reduce) {
    .theme-tuner-dialog *, .theme-tuner-dialog *::before, .theme-tuner-dialog *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  }
}

}

/* Compact standard appearance controls, using the existing preference handlers. */
@layer theme-studio {
 #themes-view .appearance-heading { display:flex!important; align-items:center!important; justify-content:space-between!important; gap:8px!important; flex-wrap:wrap!important; }
 #themes-view .appearance-heading > div { min-width:0; }
 #themes-view .appearance-heading h3 { margin:0!important; }
 #themes-view .appearance-heading .muted { font-size:11px!important; }
 #themes-view .appearance-heading .il-launch-button { margin-left:auto!important; min-height:32px!important; padding:5px 10px!important; font-size:12px!important; white-space:nowrap!important; }
 #themes-view .appearance-settings > .panel-body { gap:12px!important; padding:12px 16px!important; }
 #themes-view .appearance-settings :is(.theme-select,.settings-mode-options button) { min-height:36px!important; }
 #themes-view .appearance-motion-accent { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; }
 #themes-view .appearance-motion-accent .settings-motion-group { display:flex!important; align-items:center!important; flex-wrap:wrap; gap:8px!important; flex:1 1 340px; }
 #themes-view .appearance-motion-accent .world-motion-controls { display:flex!important; flex-wrap:wrap!important; gap:6px!important; }
 #themes-view .appearance-motion-accent .world-toggle { min-height:34px!important; padding:5px 8px!important; font-size:12px!important; }
 #themes-view .appearance-motion-accent #custom-color-field { display:flex!important; flex:0 1 auto; align-items:center!important; flex-wrap:wrap; gap:6px!important; margin:0!important; }
 #themes-view #custom-color-field label { margin:0!important; font-size:12px!important; }
 #themes-view #custom-color-select { display:inline-block!important; width:32px!important; height:30px!important; min-height:30px!important; padding:2px!important; border:1px solid var(--border)!important; border-radius:6px!important; cursor:pointer; }
 #themes-view #custom-color-field [data-theme-accent-reset] { width:28px!important; min-width:28px!important; min-height:30px!important; padding:2px!important; font-size:0!important; }
 #themes-view #custom-color-field [data-theme-accent-reset]::after { content:'↺'; font-size:15px; }
 @media(max-width:600px) { #themes-view .appearance-settings > .panel-body { padding:10px!important; } #themes-view .appearance-motion-accent { gap:10px!important; } #themes-view .appearance-motion-accent .settings-motion-group { flex-basis:100%; } }
}


/* Source: common-area-proof.css */
/* Native top-layer dialog: stays inside the viewport at ANY page scroll position. */
dialog.common-proof-dialog {
  position: fixed !important; inset: 0 !important; margin: auto !important;
  width: min(32rem, calc(100vw - 24px)) !important; height: fit-content !important;
  max-height: calc(100dvh - 32px) !important; max-width: calc(100vw - 24px) !important;
  overflow: auto !important; overscroll-behavior: contain;
  padding: 20px !important; box-sizing: border-box; transform: none !important;
  background: var(--panel, #fff) !important; color: var(--text, #222) !important;
  border: 2px solid var(--border, #777); border-radius: 18px; clip-path: none !important;
}
dialog.common-proof-dialog::backdrop { background: rgb(0 0 0 / .6); }
.common-proof-dialog .common-proof-preview { width: 100%; height: auto; max-height: 32dvh; object-fit: contain; display: block; border-radius: 8px; }
.common-proof-dialog h2 { font-size: 1.25rem; margin: 0 0 12px; }
.common-proof-dialog p { margin: 10px 0; }
.common-proof-dialog .common-proof-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.common-proof-dialog button { min-height: 44px; padding: 8px 12px !important; font-size: .95rem !important; flex: 1 1 auto; }
.common-proof-dialog textarea { width: 100%; box-sizing: border-box; font-size: 16px; }
.common-proof-status { overflow-wrap: anywhere; }
.common-proof-hint { display: block; font-size: .8rem; margin: 5px 0; }


/* Source: linen-workspace.css */
/* One daily Linen workspace; all colors follow the selected appearance. */
#linen-view .linen-workspace { padding: 0; overflow: hidden; }
#linen-view .linen-workspace > .panel-head { padding: 16px 18px 10px; }
#linen-view .linen-workspace h2 { margin: 0; font-size: 22px; }
#linen-view .linen-workspace .strip-carts-panel { margin: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
#linen-view .linen-workspace .strip-carts-panel > .panel-head { display: none; }
#linen-view .linen-workspace .strip-carts-panel > .panel-body { padding: 0 18px; }
#linen-view .linen-workspace .linen-cart-summary { padding: 8px 0; }
#linen-view .linen-workspace .linen-cart-summary .strip-carts-total { margin: 0; font-size: 12px; }
#linen-view .linen-workspace .linen-cart-summary .strip-carts-total strong { font-size: 19px; }
/* The add action belongs beside the live tally, not a second card header. */
#linen-view .linen-workspace-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 14px 18px; border-bottom: 1px solid var(--border-soft); }
#linen-view .linen-workspace-tabs [aria-selected="true"] { background: var(--accent); color: var(--bg); border-color: var(--accent); }
#linen-view .linen-workspace-tabs button { min-height: 40px; flex: 1 0 auto; }
#linen-view .linen-workspace [hidden] { display: none !important; }
#linen-view .linen-workspace-hint { margin: 0; padding: 12px 18px; color: var(--muted); font-size: 12px; line-height: 1.5; }
#linen-view .linen-workspace [data-linen-status] { padding: 10px 18px; margin: 0; }
#linen-view .linen-workspace [data-linen-refresh] { margin: 0 18px 12px; }
#linen-view .linen-workspace-table-wrap { overflow-x: auto; }
#linen-view .linen-workspace-table { border-collapse: collapse; width: 100%; font-size: 12px; }
#linen-view .linen-workspace-table th, #linen-view .linen-workspace-table td { padding: 10px 8px; text-align: right; border-bottom: 1px solid var(--border-soft); font-variant-numeric: tabular-nums; }
#linen-view .linen-workspace-table thead th { font-size: 10px; color: var(--muted); font-weight: 600; }
#linen-view .linen-workspace-table th:first-child { padding-left: 18px; text-align: left; }
#linen-view .linen-workspace-table th small, #linen-view .linen-workspace-table td small { display: block; color: var(--muted); font-size: 10px; }
#linen-view .linen-shortage { color: var(--green); font-weight: 700; }
#linen-view .linen-quick-wash { min-width: 178px; }
#linen-view .linen-workspace .linen-entry-form { grid-template-columns: 58px auto; }
#linen-view .linen-workspace .linen-entry-form input { min-width: 0; width: 58px; }
#linen-view .linen-workspace .linen-entry-form .button { white-space: nowrap; padding: 8px; }
#linen-view .linen-workspace .linen-load-builder, #linen-view .linen-workspace .linen-counts-card, #linen-view .linen-workspace .linen-expected-card { margin: 0; }
#linen-view .linen-workspace [data-linen-pane] > .linen-tracker > .panel-head { padding: 14px 18px; }
#linen-view .linen-workspace .linen-load-grid, #linen-view .linen-workspace .linen-stock-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 22px; }
#linen-view .linen-workspace .linen-load-row, #linen-view .linen-workspace .linen-stock-row { display: grid; grid-template-columns: minmax(0, 1fr) 74px; align-items: center; gap: 8px; min-height: 42px; }
#linen-view .linen-workspace .linen-load-qty, #linen-view .linen-workspace .linen-stock-input { width: 74px; min-width: 0; min-height: 38px; }
#linen-view .linen-workspace .linen-load-form { padding: 0 18px 16px; }
#linen-view .linen-workspace .linen-stock-form { width: 100%; box-sizing: border-box; padding: 0 18px 16px; }
#linen-view .linen-workspace .linen-stock-grid { width: 100%; }
#linen-view .linen-workspace .linen-load-actions { margin-top: 14px; }
#linen-view .linen-workspace .linen-details > summary { min-height: 24px; }
#linen-view .linen-workspace :is(button, summary, input):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 900px) {
  #linen-view .linen-workspace-table thead { display: none; }
  #linen-view .linen-workspace-table tbody { display: grid; }
  #linen-view .linen-workspace-table tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 12px 18px; border-bottom: 1px solid var(--border-soft); }
  #linen-view .linen-workspace-table th, #linen-view .linen-workspace-table td { border: 0; padding: 0; text-align: left; }
  #linen-view .linen-workspace-table th:first-child { padding: 0; grid-column: 1 / -1; }
  #linen-view .linen-workspace-table td::before { display: block; content: attr(data-label); color: var(--muted); font-size: 10px; line-height: 1.35; margin-bottom: 3px; }
  #linen-view .linen-workspace-table td.linen-quick-wash { grid-column: 1 / -1; min-width: 0; }
  #linen-view .linen-quick-wash::before { display: none; }
  #linen-view .linen-workspace .linen-entry-form { grid-template-columns: minmax(60px, 100px) auto; justify-content: start; }
  #linen-view .linen-workspace .linen-entry-form input { width: 100%; }
}
@media (max-width: 560px) {
  #linen-view .linen-workspace .linen-load-grid, #linen-view .linen-workspace .linen-stock-grid { grid-template-columns: minmax(0, 1fr); }
  #linen-view .linen-workspace-tabs { gap: 5px; padding: 10px 12px; }
  #linen-view .linen-workspace-tabs button { padding: 8px 10px; flex-basis: calc(50% - 5px); }
  #linen-view .linen-workspace .linen-forecast-days { grid-auto-columns: 90px; }
}
#linen-view .linen-workspace-tabs [aria-selected="true"] { box-shadow: inset 0 -3px 0 var(--accent) !important; border-color: var(--accent) !important; }
#linen-view .linen-workspace-table tbody th { background: transparent !important; font-family: inherit; }
#linen-view .linen-workspace-tabs [aria-selected="true"]::before { content: '●'; color: var(--accent); margin-right: 6px; }

#linen-view .linen-save-all-bar { padding: 12px 18px; display: flex; justify-content: flex-end; }
#linen-view [data-linen-item-status] { display: flex; gap: 6px; align-items: center; max-width: 28em; margin-top: 4px; text-align: left; }
#linen-view [data-linen-item-status]:empty { display: none; }
@media (max-width: 560px) { #linen-view .linen-save-all-bar .button { width: 100%; } }

#linen-view .linen-load-row [data-linen-item-status] { grid-column: 1 / -1; }

#linen-view .linen-discard-body { padding: 0 18px 18px; }
#linen-view .linen-discard-form fieldset { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(160px, 2fr) minmax(80px, 1fr) minmax(100px, 1fr) minmax(150px, 1fr); gap: 12px; }
#linen-view .linen-discard-form label { display: grid; gap: 6px; font-size: 14px; }
#linen-view .linen-discard-form :is(input, select) { box-sizing: border-box; width: 100%; min-width: 0; min-height: 42px; }
#linen-view .linen-discard-form button { grid-column: 1 / -1; justify-self: start; }
#linen-view .linen-discard-history-head { display: flex; gap: 12px; justify-content: space-between; align-items: center; margin-top: 22px; }
#linen-view .linen-discard-history-head h4 { margin: 0; font-size: 16px; }
#linen-view .linen-discard-history { list-style: none; margin: 12px 0 0; padding: 0; }
#linen-view .linen-discard-entry { display: grid; gap: 5px; padding: 12px 0; border-top: 1px solid var(--border-soft); font-size: 14px; overflow-wrap: anywhere; }
#linen-view .linen-discard-entry small { color: var(--muted); font-size: 12px; }
@media (max-width: 700px) { #linen-view .linen-discard-form fieldset { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 380px) { #linen-view .linen-discard-form fieldset { grid-template-columns: minmax(0, 1fr); } }

/* Compact the working header while keeping every count and action visible. */
#linen-view .linen-kpi-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 8px 18px 12px; }
#linen-view .linen-kpi { min-width: 0; display: grid; gap: 4px; padding: 11px 14px; border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border-soft)); border-radius: 12px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 9%, var(--well)), var(--well)); }
#linen-view .linen-kpi span { color: var(--muted); font-size: 11px; }
#linen-view .linen-kpi strong { color: var(--text); font-size: 23px; line-height: 1; font-variant-numeric: tabular-nums; }
#linen-view .linen-workspace .strip-carts-panel > .panel-body { padding: 0 18px 10px; }
#linen-view .linen-workspace .linen-cart-summary { justify-content: flex-end; padding: 0 0 8px; }
#linen-view .linen-workspace .linen-cart-summary > div { display: none; }
#linen-view .linen-workspace .linen-cart-summary .strip-cart-add { min-height: 46px; padding: 0 22px; font-size: 15px; font-weight: 750; box-shadow: 0 0 20px color-mix(in srgb, var(--accent) 18%, transparent); }
#linen-view .linen-workspace .linen-details.linen-help { border-top: 0; border-bottom: 1px solid var(--border-soft); }
#linen-view .linen-workspace .linen-help > summary { padding: 10px 18px; color: var(--muted); }
#linen-view .linen-workspace .linen-help .linen-details-body { padding: 0 18px 10px; }
#linen-view .linen-workspace .linen-help .linen-workspace-hint { padding: 0; max-width: 100ch; }
#linen-view .linen-workspace-table { min-width: 960px; }
#linen-view .linen-workspace-table th:first-child { min-width: 190px; }
#linen-view .linen-workspace-table th:not(:first-child), #linen-view .linen-workspace-table td:not(:first-child) { text-align: center; }
#linen-view .linen-workspace-table thead th { padding-top: 12px; padding-bottom: 12px; background: color-mix(in srgb, var(--well) 86%, transparent); }
#linen-view .linen-workspace-table tbody tr:nth-child(even) { background: color-mix(in srgb, var(--well) 45%, transparent); }
#linen-view .linen-workspace-table tbody tr:hover { background: color-mix(in srgb, var(--accent) 6%, var(--well)); }
#linen-view .linen-workspace-tabs { gap: 4px; padding-top: 10px; padding-bottom: 10px; }
#linen-view .linen-workspace-tabs button { min-height: 36px; }
@media (max-width: 560px) {
  #linen-view .linen-kpi-strip { gap: 6px; padding: 8px 12px 10px; }
  #linen-view .linen-kpi { padding: 9px 8px; border-radius: 10px; }
  #linen-view .linen-kpi span { font-size: 10px; line-height: 1.2; }
  #linen-view .linen-kpi strong { font-size: 20px; }
  #linen-view .linen-workspace .strip-carts-panel > .panel-body { padding: 0 12px 8px; }
  #linen-view .linen-workspace .linen-cart-summary { justify-content: stretch; }
  #linen-view .linen-workspace .linen-cart-summary .strip-cart-add { width: 100%; }
  #linen-view .linen-workspace-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #linen-view .linen-workspace-tabs button:last-child:nth-child(odd) { grid-column: 1 / -1; }
  #linen-view .linen-workspace-table tr { border-radius: 10px; margin: 4px 8px; background: var(--well); }
}


/* Source: october-somewhere.css */
/* The application occupies the woods; atmosphere never owns hotel status. */
@media screen {
  html[data-theme='october-somewhere'][data-world][data-mode] body,
  html[data-theme='october-somewhere'][data-world][data-mode] .workspace { background:#252b35 !important; }
  html[data-theme='october-somewhere'] .world-atmosphere { opacity:1 !important; inset:0; }
  html[data-theme='october-somewhere'] .world-atmosphere > i,
  html[data-theme='october-somewhere'] .nook-light-plane { display:none !important; }
  .october-environment { position:absolute;inset:0;overflow:hidden;pointer-events:none;contain:layout paint;--october-brightness:1;--october-saturation:.94;--october-sunlight:.24;--october-windows:.23;--october-haze:.1;--october-veil:0;--october-sky:#80929a;--october-warmth:.13; }
  .october-environment > :is(svg,div) { position:absolute;inset:0;width:100%;height:100%;pointer-events:none; }
  .october-environment > .october-landscape { max-width:none;height:100%; }
  .october-landscape { transform:translate(var(--october-x,0px),var(--october-y,0px)) scale(1.012);transition:transform 1.8s ease; }
  .october-painting { filter:brightness(var(--october-brightness)) saturate(var(--october-saturation));transition:filter 90s linear; }
  .october-window-light { opacity:var(--october-windows);filter:drop-shadow(0 0 3px #efb65e);transition:opacity 90s linear; }
  .october-upstairs-light { opacity:calc(var(--october-windows) * var(--october-windows));filter:drop-shadow(0 0 2px #ffd299);transition:opacity 90s linear; }
  .october-chimney { opacity:.18;stroke-linecap:round; }
  .october-cool-sky { background:linear-gradient(180deg,var(--october-sky),transparent 62%);opacity:.24;mix-blend-mode:color;transition:background 90s linear; }
  .october-veil { background:#172338;opacity:var(--october-veil);transition:opacity 90s linear; }
  .october-warmth { background:radial-gradient(ellipse 70% 65% at 92% 4%,#ffe0a0,transparent 80%);opacity:var(--october-warmth);mix-blend-mode:screen;transition:opacity 90s linear; }
  .october-sunbeams { background:linear-gradient(131deg,transparent 46%,#ffe6b133 49%,transparent 53%),linear-gradient(125deg,transparent 62%,#ffe2a129 65%,transparent 69%);opacity:var(--october-sunlight);mix-blend-mode:screen;transform-origin:90% 0;transition:opacity 90s linear; }
  .october-mist { background:radial-gradient(ellipse 50% 12% at 56% 46%,#b5c6ce77,transparent 80%),radial-gradient(ellipse 45% 15% at 72% 60%,#c6c3bd44,transparent 80%);opacity:var(--october-haze);transition:opacity 90s linear; }
  .october-vignette { background:radial-gradient(ellipse at 63% 35%,transparent 30%,#14191d30 72%,#14191d77 100%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='190' height='190'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='white' opacity='.025' filter='url(%23n)' d='M0 0h190v190H0z'/%3E%3C/svg%3E"); }
  .october-stars { background:radial-gradient(circle at 49% 12%,#c9d7e0 0 .5px,transparent 1px),radial-gradient(circle at 65% 9%,#c9d7e0 0 .6px,transparent 1.1px),radial-gradient(circle at 57% 23%,#c9d7e0 0 .45px,transparent .9px);opacity:0;transition:opacity 90s linear; }
  html[data-october-period='night'] .october-stars { opacity:.35; }
  .october-birds { opacity:0; }
  .october-birds-crossing .october-birds { animation:october-birds 19s ease-in-out both; }
  html[data-october-motion='on'] .october-sunbeams { animation:october-late-light 74s ease-in-out infinite alternate; }
  html[data-october-motion='on'] .october-mist { animation:october-mist-drift 110s ease-in-out infinite alternate; }
  html[data-october-motion='on'] .october-chimney { animation:october-smoke 34s ease-in-out infinite; }
  .october-gust .october-mist { animation:october-gust-mist 12s ease-in-out both !important; }
  .october-gust .october-landscape { translate:1px 0; }
  .october-leaf { position:absolute;left:var(--leaf-x);top:-36px;width:var(--leaf-size);height:calc(var(--leaf-size) * 1.15);opacity:0;pointer-events:none;animation:october-leaf-spiral var(--leaf-time) ease-in-out both; }
  .october-leaf svg,.october-resting-leaf svg { width:100%;height:100%;display:block; }
  .october-leaf.leaf-far { filter:blur(.5px); }
  .october-leaf.leaf-mid { filter:blur(.3px); }
  .october-leaf.leaf-near { filter:blur(.6px); }
  .october-leaf.leaf-path-1 { animation-name:october-leaf-tumble; }
  .october-leaf.leaf-path-2 { animation-name:october-leaf-gust; }
  .october-foreground { position:fixed;inset:0;z-index:3;overflow:hidden;pointer-events:none !important;contain:layout paint; }
  .october-fallen { position:absolute;bottom:0;left:0;right:0;height:13px;pointer-events:none; }
  .october-resting-leaf { position:absolute;width:10px;height:12px;color:#8d6241;opacity:.43;translate:var(--october-cursor,0px) 0;transition:translate 2s ease; }
  .resting-0 { left:4px;bottom:-3px;rotate:65deg; }.resting-1 { right:7px;bottom:-3px;rotate:-24deg;color:#7b3f36; }.resting-2 { right:19px;bottom:-6px;rotate:41deg; }
  .october-foreground.october-gust .october-resting-leaf { animation:october-skitter 12s ease-in-out both; }
  .october-rain { opacity:0;background:repeating-linear-gradient(105deg,transparent 0 78px,#b5cbd11c 79px 80px,transparent 81px 180px);background-size:260px 480px;mask-image:linear-gradient(transparent,#0008 28%,#000 65%,transparent); }
  .october-rain-glass { opacity:0; }
  .october-rain-glass span { position:absolute;width:2px;height:45px;top:20%;left:85%;border-radius:100%;background:linear-gradient(transparent,#c3d8df42,transparent); }
  .october-rain-glass span+span { left:19%;top:11%;animation-delay:13s; }
  html[data-october-weather='rain'] .october-rain { opacity:.25; }
  html[data-october-weather='rain'] .october-rain-glass { opacity:.28; }
  html[data-october-weather='rain'] .october-veil { opacity:max(.16,var(--october-veil)); }
  html[data-october-weather='rain'] .october-mist { opacity:max(.23,var(--october-haze)); }
  html[data-october-weather='rain'] .october-sunbeams { opacity:.03; }
  html[data-october-weather='rain'][data-october-motion='on'] .october-rain { animation:october-rain 5s linear infinite; }
  html[data-october-weather='rain'][data-october-motion='on'] .october-rain-glass span { animation:october-droplet 34s linear infinite; }

  /* Materials inherit their safe opacity and status semantics from the adapter. */
  html[data-theme='october-somewhere'][data-world][data-mode] .sidebar {
    background:linear-gradient(90deg,#201e1eea,#35261feb),repeating-linear-gradient(91deg,transparent 0 5px,#f1d8b308 6px 7px) !important;color:#f1e7d4 !important;border-color:#e7b76a33 !important;
    --world-text:#f1e7d4;--world-secondary:#d1c2ad;--world-surface:#332b27;--world-elevated:#3d322c;--world-accent:#e7b76a;--world-border:#8b7862;
  }
  html[data-theme='october-somewhere'] .sidebar .nav-item .world-line-icon { color:#c9b59a !important; }
  html[data-theme='october-somewhere'] .sidebar .nav-item.active .world-line-icon { color:#f0cc91 !important;filter:drop-shadow(0 0 4px #e7b76a40); }
  html[data-theme='october-somewhere'][data-world][data-mode] .topbar { background:linear-gradient(105deg,#e7b76a09,transparent 65%),var(--surface-panel) !important;backdrop-filter:blur(5px) !important;box-shadow:0 6px 24px -20px #171d24 !important; }
  html[data-theme='october-somewhere'][data-world][data-mode] :is(.mobile-nav-bar,#mobile-nav-sheet,.notification-panel) { background:var(--surface-modal) !important;color:var(--world-text) !important; }
  html[data-theme='october-somewhere'] .panel-head::before,
  html[data-theme='october-somewhere'] :is(.panel,.room-card,.metric)::after { content:none !important; }
  html[data-theme='october-somewhere'] .panel-head { background:transparent !important; }
  html[data-theme='october-somewhere'] :is(.panel,.room-card,.metric,.employee-bubble) { clip-path:none !important;overflow:visible;animation:none !important; }
  html[data-theme='october-somewhere'] .room-card-head { clip-path:none !important;overflow:visible; }
  html[data-theme='october-somewhere'] .housekeeper-greeting { color:var(--world-text);background:var(--surface-panel) !important;padding:18px 24px;border-radius:12px; }
  html[data-theme='october-somewhere'][data-world] .housekeeper-greeting em { color:var(--world-accent) !important; }
  @layer surface-material {
    html[data-theme='october-somewhere'] .sidebar {
      background:linear-gradient(90deg,#201e1ef5,#35261ff5),repeating-linear-gradient(91deg,transparent 0 5px,#f1d8b308 6px 7px) !important;
      --text:#f1e7d4;--muted:#d1c2ad;--faint:#d1c2ad;
    }
    html[data-theme='october-somewhere'] .sidebar :is(.brand strong,.brand span,.nav-item,.nav-reorder-hint) { color:#f1e7d4 !important; }
    html[data-theme='october-somewhere'] .sidebar .nav-item { background:transparent !important; }
    html[data-theme='october-somewhere'] :is(#room-search-input,#mobile-room-search-input) { background:#302b27 !important;color:#f1e7d4 !important; }
    html[data-theme='october-somewhere'] :is(#room-search-input,#mobile-room-search-input)::placeholder { color:#d1c2ad !important;opacity:1; }
    html[data-theme='october-somewhere'] .sidebar .nav-item.active { background:linear-gradient(105deg,#e7b76a29,transparent 83%) !important;border-color:#e7b76a70 !important;box-shadow:inset 2px 0 #d2a465,0 0 22px -17px #e7b76a !important; }
    html[data-theme='october-somewhere'] .topbar { background:linear-gradient(105deg,#e7b76a0e,transparent 65%),var(--surface-panel) !important; }
    html[data-theme='october-somewhere'] .housekeeper-greeting { background:var(--surface-panel) !important;color:var(--world-text) !important; }
    html[data-theme='october-somewhere'] #assignment-tracker { background:var(--surface-modal) !important;color:var(--world-text) !important;border-color:var(--world-border) !important;box-shadow:0 15px 35px -24px #171d2477 !important; }
    html[data-theme='october-somewhere'] #assignment-tracker .at-card { background:transparent !important; }
    html[data-theme='october-somewhere'] #app-view .view > :is(.section-heading,.room-list-sort-bar,.housekeeper-controls,.myrooms-toolbar,.ab-top,.ab-tools,.ab-batch) { background:var(--surface-panel) !important;border-radius:9px;padding:10px 12px; }
    html[data-theme='october-somewhere'] :is(.pr-toolbar,[data-pr-section]>h3,[data-pr-section]>summary,.pr-empty,.pr-no-match,.room-inspection-group-head,.room-list-floor-head) { background:var(--surface-panel) !important;color:var(--world-text) !important;border-radius:9px;padding:10px 12px; }
    html[data-theme='october-somewhere'] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.pr-room,.ab-room) { box-shadow:0 18px 38px -24px #171d2466,inset 0 1px #fff3d328 !important; }
    html[data-theme='october-somewhere'] #app-view .view :is(.room-card,.pr-room,.ab-room):hover { border-color:#c7964680 !important;box-shadow:0 18px 36px -23px #171d2470,inset 0 0 0 1px #e7b76a29 !important; }
  }
  html[data-theme='october-somewhere'] .button:hover { box-shadow:inset 0 0 0 1px #e7b76a50,0 0 14px -10px #e7b76a !important; }
  html[data-theme='october-somewhere'][data-decorative-animations='on'] .view { animation:october-panel-settle .25s ease-out !important; }
  html[data-theme='october-somewhere'][data-decorative-animations='on'] :is(.cine-room-transition,.room-completed,.room-inspected) { animation:october-confirm .7s ease-out !important; }
  html[data-theme='october-somewhere'][data-theme-tuner-background] .october-environment { opacity:var(--tuner-bg-visibility-number);filter:brightness(calc(var(--tuner-bg-brightness-number) * var(--tuner-bg-dimming-number))) saturate(var(--tuner-saturation)) contrast(var(--tuner-contrast)); }
  html[data-theme='october-somewhere'][data-theme-tuner-card] { --surface-card-opacity:var(--tuner-card-solid) !important; }
  html[data-theme='october-somewhere'][data-theme-tuner-panel] { --surface-panel-opacity:var(--tuner-panel-solid) !important; }
  html[data-theme='october-somewhere'][data-theme-tuner-glass] { --surface-blur:var(--tuner-glass-blur) !important; }
  html[data-theme='october-somewhere'][data-theme-tuner-tracker] #assignment-tracker { --surface-modal:color-mix(in srgb,var(--world-surface) var(--tuner-tracker-solid),transparent); }
  html[data-theme='october-somewhere'] .cine-room-ambient { display:none !important; }
  html[data-theme='october-somewhere'] .cine-transition-fx { color:#e7b76a; }
  .october-fx-light { inset:0;background:linear-gradient(105deg,transparent 20%,#e7b76a22 49%,transparent 76%);animation:october-confirm .7s ease-out both; }
  html[data-theme='october-somewhere'] .cine-motion-badge { animation:october-confirm .7s ease-out both !important; }
  html[data-theme='october-somewhere'][data-theme-tuner-mist='off'] .october-mist { display:none; }
  html[data-theme='october-somewhere'][data-theme-tuner-mist='high'] .october-mist { opacity:.35; }
  html[data-theme='october-somewhere'][data-theme-tuner-mist='medium'] .october-mist { opacity:.22; }
  html[data-theme='october-somewhere'][data-theme-tuner-sunbeams='off'] .october-sunbeams,
  html[data-theme='october-somewhere'][data-theme-tuner-lighting='off'] .october-sunbeams { display:none; }
  html[data-theme='october-somewhere'][data-theme-tuner-sunbeams='strong'] .october-sunbeams { opacity:min(.48,calc(var(--october-sunlight) * 1.35)); }
  html[data-theme='october-somewhere'][data-theme-tuner-sunbeams='subtle'] .october-sunbeams { opacity:calc(var(--october-sunlight) * .5); }
  html[data-october-motion='off'] .october-environment *,html.app-page-hidden .october-environment *,html.app-page-hidden .october-foreground * { animation:none !important; }
  html[data-october-motion='off'] .october-landscape { transform:none; }
  @media (max-width:700px) {
    .october-foreground .leaf-near,.october-birds,.october-rain-glass { display:none; }
    .october-environment { --october-x:0px !important;--october-y:0px !important; }
    html[data-theme='october-somewhere'] .world-atmosphere { inset:0 !important; }
    html[data-theme='october-somewhere'] .housekeeper-greeting { padding:12px 16px; }
    html[data-theme='october-somewhere'] :is(.mobile-nav-bar,#mobile-nav-sheet,.tracker-window,.housekeeping-tracker) { --surface-blur:3px; }
    .october-fallen { width:24px;right:0;left:auto;bottom:env(safe-area-inset-bottom,0px); }
    .resting-0 { display:none; }
  }
  @media (prefers-reduced-motion:reduce) {
    .october-environment *, .october-foreground * { animation:none !important;transition:none !important; }
    .october-leaf,.october-birds { display:none !important; }.october-landscape { transform:none; }
    html[data-theme='october-somewhere'] .view { animation:none !important; }
  }
}
@keyframes october-late-light { from{transform:translateX(-3px) rotate(-.15deg)} to{transform:translateX(3px) rotate(.15deg)} }
@keyframes october-mist-drift { from{transform:translateX(-12px)} to{transform:translateX(12px)} }
@keyframes october-gust-mist { 0%,100%{transform:translateX(0)} 55%{transform:translateX(var(--october-gust-shift,8px))} }
@keyframes october-smoke { 0%,100%{opacity:.07;translate:0 2px} 50%{opacity:.19;translate:2px -3px} }
@keyframes october-birds { 0%{opacity:0;translate:-120px -20px} 12%,80%{opacity:.5} 100%{opacity:0;translate:240px 40px} }
@keyframes october-leaf-spiral { 0%{opacity:0;transform:translate3d(0,0,0) rotate(0)} 8%{opacity:.55} 35%{transform:translate3d(35px,35vh,0) rotate(100deg)} 62%{transform:translate3d(-14px,63vh,0) rotate(210deg)} 90%{opacity:.45} 100%{opacity:0;transform:translate3d(var(--leaf-drift),103vh,0) rotate(330deg)} }
@keyframes october-leaf-tumble { 0%{opacity:0;transform:translate3d(0,0,0) rotateX(0) rotate(0)} 10%{opacity:.5} 45%{transform:translate3d(-35px,47vh,0) rotateX(190deg) rotate(-70deg)} 90%{opacity:.4} 100%{opacity:0;transform:translate3d(var(--leaf-drift),103vh,0) rotateX(420deg) rotate(-210deg)} }
@keyframes october-leaf-gust { 0%{opacity:0;transform:translate3d(0,0,0) rotate(0)} 10%{opacity:.5} 38%{transform:translate3d(20px,43vh,0) rotate(40deg)} 50%{transform:translate3d(75px,39vh,0) rotate(150deg)} 75%{transform:translate3d(94px,74vh,0) rotate(225deg);opacity:.5} 100%{opacity:0;transform:translate3d(var(--leaf-drift),103vh,0) rotate(320deg)} }
@keyframes october-skitter { 0%,28%{transform:translateX(0) rotate(0);opacity:.43} 67%{transform:translateX(var(--october-gust-shift,8px)) rotate(30deg);opacity:.25} 100%{transform:translateX(0) rotate(0);opacity:.43} }
@keyframes october-rain { to{background-position:-60px 480px} }
@keyframes october-droplet { 0%,20%{translate:0 0;opacity:0} 25%,65%{opacity:.28} 90%,100%{translate:-8px 300px;opacity:0} }
@keyframes october-panel-settle { from{opacity:.92;transform:translateY(3px)} to{opacity:1;transform:none} }
@keyframes october-confirm { 0%,100%{box-shadow:none} 25%{box-shadow:inset 0 0 22px #e7b76a22} }
@media print { .october-environment,.october-foreground { display:none !important; } }


/* Source: october-environment.css */
/* October is a composed place, not a wallpaper. Its clearing reserves small
   open sightlines; each illustrated plane owns its depth and object lighting. */
@media screen {
  html[data-theme='october-somewhere'][data-world][data-mode] body,
  html[data-theme='october-somewhere'][data-world][data-mode] .workspace {background:transparent !important;}
  html[data-theme='october-somewhere'][data-world][data-mode][data-animation-style] .world-atmosphere {display:block !important;opacity:1 !important;}
  html[data-theme='october-somewhere'] .workspace > .workspace-animation-decor {display:none !important;}
  html[data-theme='october-somewhere'] .world-atmosphere {contain:strict;}
  .october-environment {--oc-sky-top:#80929a;--oc-horizon:#d2c2a4;--oc-far-light:.88;--oc-mid-light:1.04;--oc-near-light:.85;}
  .october-environment > .oc-plane {position:absolute;inset:0;width:100%;height:100%;max-width:none;overflow:visible;pointer-events:none;transition:transform 2.2s ease,filter 90s linear;}
  .oc-sky {transform:translate(calc(var(--october-x,0px) * .04),0) scale(1.006);}
  .oc-sky-color {transition:fill 90s linear;}
  .oc-sky-painting {filter:brightness(max(.42,var(--oc-far-light))) saturate(var(--october-saturation));transition:filter 90s linear;}
  .oc-sky-night {opacity:var(--october-veil);transition:opacity 90s linear;}
  .oc-hills {filter:blur(20px) brightness(var(--oc-far-light));transform:translate(calc(var(--october-x,0px) * .1),calc(var(--october-y,0px) * .1)) scale(1.006);}
  .oc-far-trees {filter:brightness(var(--oc-far-light)) saturate(calc(var(--october-saturation) * .64));opacity:.78;transform:translate(calc(var(--october-x,0px) * .2),0) scale(1.006);}
  .oc-inn {transform:translate(calc(var(--october-x,0px) * .3),calc(var(--october-y,0px) * .2));}
  .oc-inn {z-index:2;}
  .oc-near-trees,.oc-canopy,.oc-ground {z-index:3;}
  .oc-inn-art {filter:brightness(max(.64,var(--oc-mid-light)));transition:filter 90s linear;}
  .oc-midground {filter:brightness(var(--oc-mid-light)) saturate(var(--october-saturation));transform:translate(calc(var(--october-x,0px) * .45),calc(var(--october-y,0px) * .45)) scale(1.008);}
  .oc-near-trees {filter:brightness(var(--oc-near-light)) saturate(calc(var(--october-saturation) * .85));transform:translate(var(--october-x,0px),var(--october-y,0px)) scale(1.008);}
  .oc-canopy,.oc-ground {filter:brightness(var(--oc-near-light));transform:translate(calc(var(--october-x,0px) * 1.4),calc(var(--october-y,0px) * 1.1)) scale(1.015);}
  .oc-windows {filter:drop-shadow(0 0 6px #ffce7c);opacity:var(--october-windows);}
  .oc-upper-window {opacity:calc(var(--october-windows) * .55);}
  .oc-porch-light {opacity:var(--october-windows);transition:opacity 90s linear;filter:drop-shadow(0 0 6px #faca7c);}
  .oc-house-sun {opacity:var(--october-sunlight);transition:opacity 90s linear;}
  .oc-stars,.oc-moon {opacity:0;transition:opacity 90s linear;}
  html[data-october-period='night'] .oc-stars {opacity:.76;}
  html[data-october-period='night'] .oc-moon {opacity:.67;}
  html[data-october-period='night'] .oc-near-trees {filter:brightness(.26) saturate(.46) drop-shadow(1px -1px 0 #83939940);}
  html[data-october-period='night'] .oc-canopy {filter:brightness(.28) drop-shadow(0 -1px 0 #82929840);}
  html[data-october-period='night'] .oc-inn-art {filter:brightness(.82);}
  html[data-october-period='night'] .oc-windows {filter:drop-shadow(0 0 9px #ffcf88);}
  .october-environment > .october-sunbeams {inset:0 0 0 25%;width:75%;background:linear-gradient(117deg,transparent 14%,#ffe0a31c 19%,transparent 26%),linear-gradient(127deg,transparent 48%,#ffe7ad26 52%,transparent 61%);mask-image:linear-gradient(transparent 0,#000 17% 61%,transparent 83%);filter:blur(9px);opacity:calc(var(--october-sunlight) * 1.15);}
  .october-environment > .october-mist {inset:30% 0 22%;height:48%;background:radial-gradient(ellipse 39% 13% at 72% 54%,#cbd4d27d,transparent),radial-gradient(ellipse 33% 17% at 25% 71%,#c0c5c45c,transparent);filter:blur(7px);}
  .october-environment > .october-cloud-shadow {background:#263b50;opacity:0;mix-blend-mode:multiply;}
  .october-environment[data-event='cloud'] .october-cloud-shadow {animation:oc-cloud-passage 43s ease-in-out both;}
  .october-environment[data-event='mist'] .october-mist {animation:oc-mist-passage 52s ease-in-out both;}
  .october-environment[data-event='upstairs'] .oc-upper-window {animation:oc-window-visit 76s ease-in-out both;}
  .october-environment[data-event='shower'] .october-rain {animation:october-rain 3s linear infinite,oc-shower 47s ease-in-out both;}
  .oc-wet-ground {opacity:0;transition:opacity 8s;}
  .october-environment[data-event='afterRain'] .oc-wet-ground {opacity:.2;}
  .october-environment[data-event='afterRain'] .october-rain {opacity:.08;}
  .october-environment[data-event='afterRain'] .oc-midground {filter:brightness(calc(var(--oc-mid-light) * .92)) saturate(calc(var(--october-saturation) * 1.12));}
  html[data-october-weather='rain'] .oc-windows {opacity:max(.7,var(--october-windows));}
  html[data-october-motion='on'] .oc-chimney-smoke {animation:oc-smoke 41s ease-in-out infinite;transform-box:fill-box;transform-origin:bottom;}
  .october-gust .oc-tree-crown {animation:oc-crown-gust 10.5s ease-in-out both;transform-box:fill-box;transform-origin:bottom;}
  .october-gust :is(.oc-canopy-left,.oc-canopy-right) {animation:oc-canopy-gust 10.5s ease-in-out both;transform-box:fill-box;transform-origin:top;}
  .october-gust .oc-painted-trunks {animation:oc-canopy-gust 10.5s ease-in-out both;}
  .oc-wildlife {opacity:1;overflow:visible;}
  .oc-geese,.oc-crow {opacity:0;}
  .october-environment[data-event='geese'] .oc-geese {animation:oc-geese 27s linear both;}
  .october-environment[data-event='crow'] .oc-crow {animation:oc-crow 16s ease-in-out both;}
  .october-leaf {rotate:var(--leaf-turn,0deg);}
  .october-leaf.leaf-far {filter:blur(.75px);opacity:.35;}
  .october-leaf.leaf-mid {filter:none;}
  .october-leaf.leaf-near {filter:blur(1.2px);}
  .october-leaf.leaf-landed {animation:none;top:auto;bottom:12px;opacity:.6;rotate:70deg;scale:1 .55;transition:opacity 8s;}
  /* Art above the HUD occupies only a narrow outside frame. It neither
     covers text nor steals the pointer/touch, including the fixed phone dock. */
  .oc-edge-canopy {position:absolute;inset:0;width:100%;height:100%;filter:brightness(.7);clip-path:polygon(0 0,100% 0,100% 22px,99% 22px,99% 6px,1% 6px,1% 22px,0 22px);}
  html[data-october-period='night'] .oc-edge-canopy {filter:brightness(.25);}
  .october-foreground {pointer-events:none !important;z-index:3;}
  .october-foreground .leaf-near {clip-path:inset(0);}
  html[data-theme='october-somewhere'] .workspace > .view {margin-top:106px;}
  @media (min-width:1280px) {
    html[data-theme='october-somewhere'] .workspace {padding-right:clamp(195px,18vw,315px);padding-left:32px;}
    html[data-theme='october-somewhere'] .workspace > .topbar {margin-right:calc(-1 * clamp(165px,15vw,260px));width:calc(100% + clamp(165px,15vw,260px));}
  }
  @layer surface-material {
    html[data-theme='october-somewhere'] .housekeeper-greeting {background:color-mix(in srgb,var(--surface-tint) 83%,transparent) !important;backdrop-filter:blur(5px);border:1px solid var(--surface-edge);box-shadow:inset 0 1px #ffda922b;}
    html[data-theme='october-somewhere'] :is(.panel,.metric) {border-top-color:#eed29a50 !important;}
  }
  @media (max-width:700px) {
    html[data-theme='october-somewhere'] .workspace {padding-inline:16px;}
    html[data-theme='october-somewhere'] .workspace > .view {margin-top:132px;}
    .october-environment > .october-sunbeams {inset:0;width:100%;}
    .oc-near-trees {opacity:.86;}
    .oc-edge-canopy {clip-path:polygon(0 0,100% 0,100% 8px,97% 8px,97% 3px,3% 3px,3% 8px,0 8px);}
    .october-environment > .oc-plane {transform:none;}
  }
  html[data-october-motion='off'] .oc-plane {transform:none;}
  html[data-october-motion='off'] .october-foreground * {animation:none !important;}
  @media (prefers-reduced-motion:reduce) { .oc-plane,.oc-sky-color {transition:none !important;transform:none !important;} }
}
@keyframes oc-cloud-passage {0%,100%{opacity:0}35%,62%{opacity:.22}}
@keyframes oc-mist-passage {0%,100%{opacity:.08;translate:-35px 0}40%,66%{opacity:.45}100%{translate:70px 0}}
@keyframes oc-window-visit {0%,100%{opacity:.1}8%,84%{opacity:1;filter:drop-shadow(0 0 9px #ffcf88)}}
@keyframes oc-shower {0%,100%{opacity:.2}30%,74%{opacity:.62}}
@keyframes oc-smoke {0%,100%{opacity:.11;transform:translate(0,2px) scale(.9,1)}45%{opacity:.25;transform:translate(-4px,-9px) scale(1.2,1.05)}}
@keyframes oc-crown-gust {0%,100%{rotate:0deg}32%{rotate:.8deg}54%{rotate:-.4deg}77%{rotate:.25deg}}
@keyframes oc-canopy-gust {0%,100%{translate:0 0}38%{translate:4px 1px}63%{translate:-2px 0}}
@keyframes oc-geese {0%{opacity:0;translate:0 0}8%,88%{opacity:.65}100%{opacity:0;translate:1050px 45px}}
@keyframes oc-crow {0%{opacity:0;translate:0 0}8%,88%{opacity:.8}50%{translate:500px -55px}100%{opacity:0;translate:1100px 20px}}

/* Faithful painted presentation: the supplied artwork owns the composition.
   Aspect-preserving camera keeps the inn at the right on narrower desktops. */
@media screen {
  .october-environment > .oc-plane {transform:none;}
  .oc-sky-painting,.oc-midground {filter:none;}
  .oc-sky-night {opacity:calc(var(--october-veil) * .28);}
  .oc-hills,.oc-far-trees,.oc-inn,.oc-canopy,.oc-ground {display:none;}
  .oc-near-trees {opacity:.32;filter:none;}
  .october-foreground .oc-edge-canopy {display:none;}
  .october-environment > .october-sunbeams {opacity:calc(var(--october-sunlight) * .22);}
  .october-environment > .october-mist {opacity:calc(var(--october-haze) * .25);}
  html[data-theme='october-somewhere'][data-mode='dark'] .oc-midground {filter:brightness(.82) saturate(.96);}
  html[data-theme='october-somewhere'] .housekeeper-greeting {background:color-mix(in srgb,var(--surface-tint) 72%,transparent) !important;backdrop-filter:blur(3px);}
  @media (min-width:900px) {
    html[data-theme='october-somewhere'] .workspace {padding-left:24px;padding-right:clamp(170px,18vw,280px);}
    html[data-theme='october-somewhere'] .workspace > .topbar {margin-right:calc(-1 * clamp(146px,16vw,256px));width:calc(100% + clamp(146px,16vw,256px));}
  }
  @media (max-width:700px) {
    html[data-theme='october-somewhere'] .workspace > .view {margin-top:220px;}
    .oc-near-trees {opacity:.18;}
  }
}


/* Source: october-living-world.css */
/* October 3: composited independent life over a deliberately cold, thinning
   landscape. No shared motion, status paint or operational layout overrides. */
@media screen {
  .october-environment .october-leaf,.october-foreground .october-leaf {rotate:none;}
  .october-environment .october-leaf svg,.october-foreground .october-leaf svg {rotate:var(--leaf-turn,0deg);}
  .october-environment > .october-sunbeams {opacity:calc(var(--october-sunlight) * .45);}
  .october-environment > .october-mist {opacity:calc(var(--october-haze) * .65);}
  html[data-theme='october-somewhere'][data-world][data-mode][data-background-animations][data-world-motion][data-animation-style] .world-atmosphere {display:block !important;opacity:1 !important;}
  .october-environment > :is(.oc-hills,.oc-inn,.oc-canopy,.oc-ground) {display:block;}
  .october-environment > .oc-far-trees {display:none;}
  .october-environment > .oc-sky {transform:translate(calc(var(--october-x,0px) * .04),0) scale(1.006);}
  .october-environment > .oc-hills {z-index:1;transform:translate(calc(var(--october-x,0px) * .1),0) scale(1.006);}
  .october-environment > .oc-inn {transform:translate(calc(var(--october-x,0px) * .3),calc(var(--october-y,0px) * .2));}
  html[data-theme='october-somewhere'][data-mode] .october-environment > .oc-midground {transform:translate(calc(var(--october-x,0px) * .45),calc(var(--october-y,0px) * .45)) scale(1.008);filter:brightness(max(.42,var(--oc-mid-light))) saturate(var(--october-saturation));}
  .october-environment .oc-sky-painting {filter:brightness(max(.48,var(--oc-far-light))) saturate(var(--october-saturation));}
  .october-environment > .oc-near-trees {opacity:.36;filter:brightness(max(.45,var(--oc-near-light)));transform:translate(var(--october-x,0px),var(--october-y,0px)) scale(1.008);}
  .october-environment > :is(.oc-canopy,.oc-ground) {transform:translate(calc(var(--october-x,0px) * 1.4),calc(var(--october-y,0px) * 1.1)) scale(1.015);filter:none;}
  .october-environment > .oc-hills {display:none;}
  .october-environment > .oc-living-haze {inset:36% -4% auto;width:108%;height:23%;z-index:1;background:radial-gradient(ellipse 44% 17% at 72% 60%,#b5c6ce25,transparent 75%);}
  .october-environment > .oc-living-haze + .oc-living-haze {top:47%;height:17%;background:radial-gradient(ellipse 39% 17% at 25% 50%,#bac8ce1c,transparent 75%);}
  html[data-theme='october-somewhere'][data-theme-tuner-mist='off'] .oc-living-haze {display:none;}
  .oc-live-twig {transform-box:fill-box;transform-origin:0 20%;}
  .oc-living-leaf {transform-box:fill-box;transform-origin:50% 0;}
  .oc-drift-mist,.oc-smoke-life {transform-box:fill-box;transform-origin:50% 100%;}
  html[data-october-motion] .oc-chimney-smoke {animation:none;}
  html[data-october-motion] :is(.october-sunbeams,.october-mist) {animation:none;}
  .oc-ground-scuff {transform-box:fill-box;transform-origin:50% 100%;}
  .october-foreground .oc-hud-branch {position:absolute;top:96px;width:clamp(180px,26vw,420px);height:122px;overflow:hidden;pointer-events:none;opacity:.86;filter:brightness(.7);}
  .oc-hud-branch .oc-branch-life {width:100%;max-width:none;transform-origin:0 8%;}
  .oc-branch-left {left:130px;clip-path:inset(0 0 0 110px);}
  .oc-branch-right {right:-70px;scale:-1 1;}
  .october-foreground .leaf-near {display:block;animation-name:oc-near-fall;max-width:32px;}
  html[data-october-period='night'] .oc-hud-branch {filter:brightness(.32);}
  html[data-theme='october-somewhere'][data-world][data-mode] .topbar {backdrop-filter:blur(var(--surface-blur)) !important;}
  @layer surface-material {
    html[data-theme='october-somewhere'] .housekeeper-greeting {background:var(--surface-panel) !important;backdrop-filter:blur(var(--surface-blur)) !important;}
    html[data-theme='october-somewhere'] #app-view .view :is(.panel,.metric,.room-card,.ops-panel,.pr-room,.ab-room) {backdrop-filter:blur(var(--surface-blur)) !important;box-shadow:0 16px 36px -26px #0c141c9c,inset 0 1px #edcc9833 !important;}
    html[data-theme='october-somewhere'] #app-view .view :is(.panel,.ops-panel,.ab-column) :is(.room-card,.pr-room,.ab-room,.metric) {backdrop-filter:none !important;}
  }
  @media(max-width:700px) {
    .october-foreground .oc-hud-branch {top:80px;width:210px;height:92px;opacity:.74;}
    .oc-branch-left {left:-110px;clip-path:none;}.oc-branch-right {right:-150px;}
    .october-foreground .leaf-near {max-width:21px;}
    .october-environment > .oc-plane {transform:none;}
  }
  html[data-theme='october-somewhere'][data-theme-tuner-mist='off'] .oc-hills {display:none;}
  html[data-theme='october-somewhere'][data-theme-tuner-lighting='off'] :is(.oc-windows,.oc-upper-window,.oc-porch-light) {opacity:0;}
  html[data-theme='october-somewhere'][data-mode][data-october-motion='off'] .october-environment > .oc-plane {transform:none;}
  @media(prefers-reduced-motion:reduce) {html[data-theme='october-somewhere'][data-mode] .october-environment > .oc-plane {transform:none !important;}}
}
@keyframes oc-near-fall {
  0%{opacity:0;transform:translate3d(0,0,0) rotate(0) scale(.7)}
  10%{opacity:.6}34%{transform:translate3d(-3px,33vh,0) rotate(77deg) scale(1)}
  62%{transform:translate3d(2px,61vh,0) rotate(213deg) scale(1.08);opacity:.54}
  89%{opacity:.32}100%{opacity:0;transform:translate3d(var(--leaf-drift),103vh,0) rotate(334deg) scale(.8)}
}


/* Source: afterlight.css */
/* Afterlight owns only its environmental plane; application state is untouched. */
@media screen {
 html[data-theme='afterlight'][data-world][data-mode] body,html[data-theme='afterlight'][data-world][data-mode] .workspace{background:transparent!important;}
 html[data-theme='afterlight'][data-world][data-mode][data-animation-style] .world-atmosphere{display:block!important;opacity:1!important;}
 html[data-theme='afterlight'] .world-atmosphere>:not(.afterlight-environment){display:none!important;}
 .afterlight-environment{position:absolute;inset:0;overflow:hidden;contain:strict;pointer-events:none;--al-light:#ffe2a5;--al-glow:.26;}
 .afterlight-environment *,.afterlight-perimeter *{pointer-events:none!important;}
 .al-stage{position:absolute;width:max(100vw,177.7vh);height:max(56.27vw,100vh);left:50%;top:50%;transform:translate(-50%,-50%);overflow:hidden;background:#0c100d;}
 .al-room-plate{position:absolute;inset:0;background-size:100% 100%;transition:opacity 4.5s ease;}
 .al-day-plate{background-image:url('/afterlight-room-day.jpg?v=1');}
 .al-night-plate{background-image:url('/afterlight-room-night.jpg?v=1');opacity:0;}
 html[data-theme='afterlight'][data-mode='dark'] .al-night-plate{opacity:1;}
 html[data-theme='afterlight'][data-mode='dark'] .afterlight-environment{--al-light:#b3d0e8;--al-glow:.11;}
 .al-exterior{position:absolute;left:54.9%;top:1%;width:33.8%;height:69%;overflow:hidden;mix-blend-mode:soft-light;clip-path:polygon(0 0,100% 0,100% 99%,0 93%);transform:translate(calc(var(--al-x,0px)*.15),calc(var(--al-y,0px)*.12));}
 .al-exterior-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 86% 39%,#ffd87470,transparent 62%);}
 .al-distant-trees{position:absolute;inset:34% -10% -8%;opacity:.27;background:url('/afterlight-ivy.png?v=1') center/cover;filter:blur(1.8px) brightness(.68);transform-origin:bottom;animation:al-distant 31s ease-in-out infinite;}
 .al-exterior-mist{position:absolute;inset:55% -35% 4%;opacity:.04;background:radial-gradient(ellipse,#c6d8dc6b,transparent 67%);animation:al-mist 43s ease-in-out infinite;}
 .al-canopy{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transform:translate(calc(var(--al-x,0px)*.45),calc(var(--al-y,0px)*.3));}
 .al-foliage-back,.al-foliage-window,.al-foliage-sill{transform-box:fill-box;transform-origin:50% 0%;}
 .al-foliage-back{opacity:.22;filter:blur(.3px);animation:al-canopy-breathe 14.7s ease-in-out -8s infinite;}
 .al-foliage-window{opacity:.23;animation:al-vine-breathe 12.1s ease-in-out -3s infinite;}
 .al-foliage-sill{opacity:.3;animation:al-sill-breathe 9.3s ease-in-out -4s infinite;}
 .al-leaf-secondary{transform-box:fill-box;transform-origin:50% 100%;animation:al-leaf-flutter 7.6s ease-in-out -2s infinite;}
 .al-raster-vine{position:absolute;top:-5%;left:52%;width:16%;height:63%;background:url('/afterlight-ivy.png?v=1') center top/100% 100% no-repeat;transform-origin:55% 0%;animation:al-vine-breathe 16.3s ease-in-out -6s infinite;filter:brightness(.65);}
 .al-raster-vine-right{left:82%;width:12%;height:70%;animation-name:al-vine-right;animation-duration:13.1s;animation-delay:-9s;filter:brightness(.88);}
 .al-glass{position:absolute;left:55%;top:0;width:33%;height:69%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:2.3%;opacity:.18;}
 .al-glass i{background:linear-gradient(133deg,transparent 22%,#ffe3b21a 28%,transparent 32%,#c6d9cf12 71%,transparent 80%);}
 .al-glass i:nth-child(2n){opacity:.55;transform:skewY(.4deg);}
 .al-curtains{position:absolute;inset:0;}
 .al-curtain{position:absolute;top:0;height:80%;width:12%;overflow:visible;filter:drop-shadow(2px 0 2px #100e0c55);transform-origin:50% 0%;}
 .al-curtain-left{left:47.8%;animation:al-curtain-left 15.7s ease-in-out -4s infinite;}
 .al-curtain-right{left:86.2%;width:8%;animation:al-curtain-right 11.9s ease-in-out -7s infinite;}
 .al-fabric{transform-origin:50% 0%;animation:al-fabric-ripple 6.7s ease-in-out -2s infinite;}
 .al-curtain-right .al-fabric{animation-duration:8.3s;animation-delay:-5s;}
 .al-beams{position:absolute;inset:0;overflow:hidden;opacity:1;transform:translate(calc(var(--al-x,0px)*.05),0);}
 .al-beam{position:absolute;left:78%;top:30%;height:100%;width:16%;transform-origin:50% 0%;background:linear-gradient(180deg,color-mix(in srgb,var(--al-light) 42%,transparent),color-mix(in srgb,var(--al-light) 5%,transparent) 80%,transparent);clip-path:polygon(42% 0,56% 0,100% 100%,0 100%);rotate:57deg;opacity:var(--al-glow);filter:blur(3px);animation:al-light-one 37s ease-in-out -8s infinite;transition:background 4s,opacity 4s;}
 .al-beam-two{left:71%;top:12%;width:8%;height:112%;rotate:52deg;animation:al-light-two 29.3s ease-in-out -19s infinite;}
 .al-beam-three{left:85%;top:45%;width:19%;rotate:63deg;opacity:calc(var(--al-glow)*.65);animation:al-light-three 43.1s ease-in-out -28s infinite;}
 .al-light-shadow{position:absolute;inset:0;background:linear-gradient(126deg,transparent 38%,#13211932 58%,transparent 77%);opacity:.08;animation:al-occlusion 17.9s ease-in-out -6s infinite;}
 .al-dust{position:absolute;inset:0;/* Same world-space light cones as the shafts: dust vanishes in shadow. */mask-image:linear-gradient(126deg,transparent 27%,#000 37%,transparent 45%),linear-gradient(138deg,transparent 45%,#000 51%,transparent 60%),linear-gradient(121deg,transparent 51%,#000 65%,transparent 78%);mask-composite:add;}
 .al-mote{position:absolute;left:var(--mx);top:var(--my);height:var(--ms);width:var(--ms);border-radius:50%;background:var(--al-light);opacity:var(--mo);box-shadow:0 0 3px var(--al-light);animation:al-dust-drift var(--mt) ease-in-out var(--md) infinite alternate;}
 .al-mote:nth-child(7n){filter:blur(.8px);}
 .al-fireflies{position:absolute;inset:0;opacity:0;transition:opacity 4s;clip-path:polygon(55% 0,89% 0,89% 67%,55% 69%);}
 .al-fireflies span{position:absolute;left:var(--fx);top:var(--fy);width:2px;height:2px;border-radius:50%;background:#d0edaa;box-shadow:0 0 6px 2px #d0edaa60;animation:al-firefly var(--ft) ease-in-out var(--fd) infinite;}
 html[data-theme='afterlight'][data-mode='dark'] .al-fireflies{opacity:.8;}
 html[data-theme='afterlight'][data-mode='dark'] .al-exterior-glow{background:radial-gradient(ellipse at 78% 11%,#9bc7eb50,transparent 63%);}
 html[data-theme='afterlight'][data-mode='dark'] .al-exterior-mist{opacity:.22;}
 html[data-theme='afterlight'][data-mode='dark'] :is(.al-canopy,.al-raster-vine,.al-near-plant){filter:brightness(.36) saturate(.55) drop-shadow(1px -1px 0 #a4d0ef35);}
 html[data-theme='afterlight'][data-mode='dark'] .al-curtain{filter:brightness(.63) saturate(.24) drop-shadow(1px 0 2px #80bdd42b);}
 .al-near-plant{position:absolute;width:23%;height:60%;left:-8%;bottom:-29%;background:url('/afterlight-ivy.png?v=1') center/contain no-repeat;filter:brightness(.15) blur(1.3px);transform-origin:bottom;animation:al-near-breathe 23.7s ease-in-out -13s infinite;}
 .al-near-plant-right{left:auto;right:-4%;bottom:-39%;width:18%;height:64%;animation-duration:19.1s;animation-delay:-4s;}
 .al-interior-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 73% 44%,transparent 32%,#060b0e47 80%,#05080b99);}
 .al-loose-leaf{position:absolute;left:69%;top:23%;width:18px;height:11px;background:#73854b;border-radius:2% 100% 4% 100%;opacity:0;}
 .al-bird{position:absolute;left:88%;top:26%;width:18px;height:4px;border-top:2px solid #172d24;border-radius:50%;opacity:0;}
 .afterlight-environment[data-event='leaf'] .al-loose-leaf{animation:al-leaf-fall 19s ease-in-out both;}
 .afterlight-environment[data-event='bird'] .al-bird{animation:al-bird-cross 17s ease-in-out both;}
 .afterlight-environment[data-event='breeze'] .al-curtain-left{animation-duration:11.3s;}
 .afterlight-environment[data-event='breeze'] .al-raster-vine-right{animation-duration:8.9s;}
 .afterlight-environment[data-event='light'] .al-exterior-glow{animation:al-sun-visit 22s ease-in-out both;}
 .afterlight-environment[data-event='fireflies'] .al-fireflies{animation:al-sun-visit 22s ease-in-out both;}
 .afterlight-perimeter{position:fixed;inset:0;z-index:3;pointer-events:none!important;overflow:hidden;clip-path:polygon(0 0,100% 0,100% 8px,99.5% 8px,99.5% 3px,.5% 3px,.5% 8px,0 8px);}
 .al-perimeter-tendril{position:absolute;right:-5px;top:-35px;width:130px;height:180px;background:url('/afterlight-ivy.png?v=1') center/contain no-repeat;filter:brightness(.32);animation:al-vine-right 18.7s ease-in-out infinite;}
 /* Strong ink over smoky surfaces; no opacity applied to content containers. */
 html[data-theme='afterlight']{--surface-tint:#1a2421;--surface-ink:#f0eadb;--surface-secondary:#c8c9be;--surface-control:#24322c;}
 html[data-theme='afterlight'][data-mode='dark']{--surface-tint:#121d24;--surface-ink:#e8eff2;--surface-secondary:#bccbd0;}
 html[data-theme='afterlight'] .workspace>.view{margin-top:70px;}
 html[data-theme='afterlight'] :is(.housekeeper-greeting,.topbar){border-top:1px solid #e5c88d29;}
 @layer surface-material{
 html[data-theme='afterlight'] :is(.panel,.metric,.room-card,.housekeeper-greeting){background:var(--surface-user-paint,var(--surface-card))!important;color:var(--surface-ink)!important;box-shadow:inset 0 1px #efd09016,0 10px 24px -20px #000!important;}
 html[data-theme='afterlight'][data-mode='dark'] :is(.panel,.metric,.room-card){box-shadow:inset 0 1px #b4d4e41f,0 10px 24px -20px #000!important;}
 }
 html[data-theme='afterlight'] :is(.topbar,.sidebar){background:#101a19e6!important;}
 @media(min-width:1280px){html[data-theme='afterlight'] .workspace{padding-right:clamp(160px,17vw,300px);}html[data-theme='afterlight'] .workspace>.topbar{margin-right:calc(-1 * clamp(130px,14vw,240px));width:calc(100% + clamp(130px,14vw,240px));}}
 @media(max-width:700px){
 .al-stage{left:36%;height:100vh;width:177.7vh;}
 .afterlight-environment[data-composition='portrait'] .al-stage{left:calc(50% - 25vh);}
 .al-near-plant{display:none;}.al-curtain{filter:none;}.al-mote:nth-child(7n){filter:none;}
 html[data-theme='afterlight'] .workspace{padding-inline:16px;}
 html[data-theme='afterlight'] .workspace>.view{margin-top:116px;}
 }
 @media(max-width:700px) and (orientation:landscape){.afterlight-environment[data-composition='portrait'] .al-stage{left:50%;width:100vw;height:56.27vw;}}
 .afterlight-environment[data-motion='off'] *,.afterlight-perimeter[data-motion='off'] *{animation-play-state:paused!important;}
 .afterlight-environment[data-motion='off'] :is(.al-loose-leaf,.al-bird,.al-fireflies){opacity:0!important;}
 .afterlight-environment[data-particles='off'] :is(.al-dust,.al-fireflies){display:none;}
 .world-preview[data-world='afterlight'] .world-portal-art{background:url('/afterlight-room-day.jpg?v=1') 75% center/cover!important;opacity:1!important;transform:none!important;mask:none!important;}
 .world-preview[data-world='afterlight'][data-mode='dark'] .world-portal-art{background-image:url('/afterlight-room-night.jpg?v=1')!important;}
 .world-preview[data-world='afterlight']{background:#111a16;}
 .world-choice[data-world-id='afterlight'] .world-sample-card{background:#18261fdc;color:#f3eddf;}
 @media(prefers-reduced-motion:reduce){.afterlight-environment *,.afterlight-perimeter *{animation:none!important;transition:none!important;}.al-fabric{transform:none!important;}.al-curtain{clip-path:none!important;}.al-canopy,.al-exterior,.al-beams{transform:none!important;}}
}
@media print{.afterlight-environment,.afterlight-perimeter{display:none!important;}}
@keyframes al-curtain-left{0%,100%{transform:skewX(-1deg) scaleX(.99);clip-path:polygon(0 0,100% 0,97% 18%,100% 39%,93% 63%,99% 100%,0 100%,4% 62%,1% 37%)}27%{transform:skewX(2.4deg) scaleX(1.06);clip-path:polygon(0 0,100% 0,92% 18%,99% 39%,83% 63%,94% 100%,4% 100%,13% 62%,3% 37%)}49%{transform:skewX(-.5deg) scaleX(1.015)}73%{transform:skewX(1.1deg) scaleX(1.035);clip-path:polygon(0 0,100% 0,97% 18%,91% 39%,96% 63%,89% 100%,0 100%,7% 62%,10% 37%)}}
@keyframes al-curtain-right{0%,100%{transform:skewX(.5deg) scaleX(1);clip-path:polygon(0 0,100% 0,97% 35%,100% 62%,98% 100%,0 100%,5% 63%,0 39%)}34%{transform:skewX(-3.4deg) scaleX(1.07);clip-path:polygon(0 0,100% 0,91% 35%,97% 62%,87% 100%,4% 100%,14% 63%,4% 39%)}67%{transform:skewX(1.3deg) scaleX(.98)}}
@keyframes al-fabric-ripple{0%,100%{transform:skewX(.3deg) scaleX(1)}41%{transform:skewX(-1deg) scaleX(1.025)}73%{transform:skewX(.7deg) scaleX(.99)}}
@keyframes al-canopy-breathe{0%,100%{transform:rotate(-.7deg) translateX(-2px)}37%{transform:rotate(1.25deg) translateX(4px)}68%{transform:rotate(.1deg)}}
@keyframes al-vine-breathe{0%,100%{rotate:-.7deg;translate:0 0}32%{rotate:1.7deg;translate:4px 2px}57%{rotate:.1deg;translate:-1px 0}79%{rotate:.8deg;translate:2px 1px}}
@keyframes al-vine-right{0%,100%{rotate:.8deg}43%{rotate:-2deg;translate:-4px 2px}74%{rotate:-.3deg;translate:1px 0}}
@keyframes al-sill-breathe{0%,100%{rotate:0deg}38%{rotate:1.7deg}72%{rotate:-.9deg}}
@keyframes al-leaf-flutter{0%,100%{rotate:0deg}30%{rotate:3.2deg}62%{rotate:-1.7deg}}
@keyframes al-light-one{0%,100%{rotate:57deg;opacity:var(--al-glow);scale:1}47%{rotate:61deg;opacity:calc(var(--al-glow)*1.5);scale:1.1 1}}
@keyframes al-light-two{0%,100%{rotate:52deg;opacity:calc(var(--al-glow)*.7)}38%{rotate:49deg;opacity:calc(var(--al-glow)*1.4)}}
@keyframes al-light-three{0%,100%{rotate:63deg;opacity:calc(var(--al-glow)*.6)}56%{rotate:67deg;opacity:var(--al-glow)}}
@keyframes al-occlusion{0%,100%{opacity:.07;translate:0 0}36%{opacity:.2;translate:-7px 4px}73%{opacity:.11;translate:3px 0}}
@keyframes al-dust-drift{0%{translate:0 0;opacity:calc(var(--mo)*.3)}29%{opacity:var(--mo)}64%{translate:calc(var(--dx)*.4) calc(var(--dy)*.7);opacity:calc(var(--mo)*.65)}100%{translate:var(--dx) var(--dy);opacity:calc(var(--mo)*.24)}}
@keyframes al-firefly{0%,100%{opacity:0;translate:0 0}25%{opacity:.18;translate:-5px 8px}48%{opacity:.76;translate:9px -4px}71%{opacity:.13;translate:16px 5px}}
@keyframes al-distant{0%,100%{translate:-2px 0;rotate:-.2deg}53%{translate:4px 0;rotate:.6deg}}
@keyframes al-mist{0%,100%{translate:-11px 0}57%{translate:22px -4px}}
@keyframes al-near-breathe{0%,100%{translate:calc(var(--al-x,0px)*1.5) 0;rotate:-.5deg}46%{translate:calc(var(--al-x,0px)*1.5 + 5px) -3px;rotate:1.7deg}}
@keyframes al-leaf-fall{0%{opacity:0;translate:0 0;rotate:20deg}7%{opacity:.65}32%{translate:-70px 80px;rotate:130deg}62%{translate:-160px 210px;rotate:245deg;scale:.8}90%{opacity:.45}100%{translate:-270px 360px;rotate:400deg;opacity:0;scale:.65}}
@keyframes al-bird-cross{0%{opacity:0}12%,77%{opacity:.6}100%{translate:-410px -12px;opacity:0}}
@keyframes al-sun-visit{0%,100%{opacity:.3}42%,63%{opacity:.85}}


/* Source: afterlight-living.css */
/* Additional life, not a replacement for the original room/curtains/window. */
@media screen {
 html[data-theme='afterlight']{--al-room-light:#efd29b;--al-life-opacity:.65;--al-richness:0;--al-ui-x:72%;--al-ui-y:30%;}
 html[data-theme='afterlight'][data-mode='dark']{--al-room-light:#a3c7da;--al-life-opacity:.52;}
 .afterlight-environment>.al-mid-air{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:calc(.045 + var(--al-richness)*.035);background:radial-gradient(ellipse 40% 13% at 75% 46%,var(--al-room-light),transparent 78%);translate:var(--al-air-x,0px) var(--al-air-y,0px);animation:al-air-depth var(--al-air-period,89s) ease-in-out infinite;transition:opacity 18s ease;}
 .afterlight-environment>.al-mid-air.al-air-near{opacity:calc(.025 + var(--al-richness)*.025);background:radial-gradient(ellipse 30% 8% at 46% 76%,#afb9a8,transparent 80%);animation-name:al-air-near;animation-duration:63s;animation-delay:-29s;}
 .afterlight-environment>.al-dust{mask-image:none;mask-composite:add;pointer-events:none;translate:var(--al-air-x,0px) var(--al-air-y,0px);}
 .afterlight-environment .al-mote{opacity:0;animation:none;box-shadow:0 0 2px var(--al-light);}
 .afterlight-environment .al-mote[data-active]{animation:al-lived-mote var(--mlife) linear var(--mage,0s) both;}
 .afterlight-environment .al-mote[data-depth='far']{filter:none;}
 .afterlight-environment .al-mote[data-depth='mid']{filter:none;}
 .afterlight-perimeter{clip-path:none;z-index:4;contain:strict;}
 .al-perimeter-tendril{clip-path:inset(0 0 calc(100% - 8px) 0);}
 .al-edge-air,.al-edge-shadow,.al-edge-veil,.al-edge-object{position:absolute;inset:0;pointer-events:none!important;}
 .al-edge-air{overflow:hidden;}
 .al-edge-mote{position:absolute;opacity:0;width:var(--ms,3px);height:var(--ms,3px);background:var(--al-room-light);border-radius:48% 36% 55% 31%;filter:blur(.6px);}
 .al-edge-mote[data-active]{animation:al-lived-mote var(--mlife) linear var(--mage,0s) both;}
 .al-edge-shadow{opacity:0;background:radial-gradient(ellipse 48px 60% at 0 45%,#07100bc2,transparent 90%);}
 .al-edge-veil{opacity:0;background:radial-gradient(ellipse 60px 38% at 100% 45%,var(--al-room-light),transparent 90%);}
 .al-edge-object{inset:17% 0 auto auto;width:7px;height:4px;border-radius:1px 90% 2px 90%;opacity:0;background:var(--al-room-light);}
 html[data-afterlight-event='shadow'] .al-edge-shadow,html[data-afterlight-event='far-shape'] .al-edge-shadow{animation:al-edge-shadow-pass 28s ease-in-out both;}
 html[data-afterlight-event='haze'] .al-edge-veil{animation:al-edge-haze-pass 28s ease-in-out both;}
 html[data-afterlight-event='near-mote'] .al-edge-object{animation:al-special-mote 18s ease-in-out both;}
 .afterlight-environment[data-event='bloom'] .al-exterior-glow{animation:al-bloom-visit 26s ease-in-out both;}
 .afterlight-environment[data-event='flicker'] .al-glass{animation:al-distant-reflection 14s ease-in-out both;}
 .afterlight-environment[data-event='clearing'] :is(.al-mid-air,.al-interior-vignette){animation:al-clear-air 32s ease-in-out both;}
 .afterlight-environment[data-event='quiet'] :is(.al-foliage-back,.al-fabric,.al-near-plant){animation-duration:90s;}
 .afterlight-environment[data-event='constellation'] .al-fireflies{animation:al-distant-reflection 27s ease-in-out both;}
 html[data-theme='afterlight'] :is(.topbar,.sidebar){background:linear-gradient(150deg,#efd29b07,transparent 53%),#101a19cf!important;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);}
 html[data-theme='afterlight'][data-mode='dark'] :is(.topbar,.sidebar){background:linear-gradient(145deg,#a3c7da0a,transparent 56%),#101a20dd!important;}
 html[data-theme='afterlight'] .nav-item.active{background:linear-gradient(125deg,color-mix(in srgb,var(--al-room-light) 13%,transparent),#31433969);border-color:color-mix(in srgb,var(--al-room-light) 28%,transparent);backdrop-filter:none;box-shadow:inset 2px 0 color-mix(in srgb,var(--al-room-light) 60%,transparent),inset 0 1px #f4e3b523;}
 html[data-theme='afterlight'] .nav-item:hover{background:linear-gradient(125deg,#efd29b0f,transparent);}
 html[data-theme='afterlight'] .nav-item.al-nav-wake{animation:al-nav-afterglow 1.8s ease-out both;}
 html[data-theme='afterlight'] :is(button,.nav-item,summary){transition:box-shadow 230ms ease,border-color 230ms ease,background-color 230ms ease;}
 html[data-theme='afterlight'] .al-touch-response{animation:al-touch-edge .65s ease-out both;}
 /* An independent portal supplies a hairline only. No existing pseudo-element,
    semantic status background, opacity, room text or action is repurposed. */
 .afterlight-ui-light{position:fixed;inset:0;z-index:4;pointer-events:none!important;contain:strict;overflow:hidden;}
 .afterlight-ui-light *{pointer-events:none!important;}
 .al-surface-light{position:absolute;inset:0;display:block;pointer-events:none!important;border-radius:inherit;padding:1px;background:radial-gradient(ellipse at var(--al-ui-x) 0,var(--al-room-light),transparent 70%),linear-gradient(140deg,transparent 58%,color-mix(in srgb,var(--al-room-light) 36%,transparent));mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;-webkit-mask-composite:xor;opacity:.32;animation:al-surface-breathe var(--al-rim-period,51s) ease-in-out var(--al-rim-delay,-15s) infinite;transition:opacity 1.4s ease;}
 html[data-afterlight-event='bloom'] .al-surface-light{animation:al-rim-bloom 26s ease-in-out var(--al-bloom-delay,0s) both;}
 html[data-afterlight-event='quiet'] .al-surface-light{animation-duration:130s;}
 .al-surface-light[data-hover='on']{animation:none;opacity:.65;}
 .al-nav-trace,.al-touch-light{opacity:0;animation:none;}
 .al-nav-trace:not([data-wake]),.al-touch-light:not([data-touch]){display:none;}
 .al-nav-trace[data-wake='on']{animation:al-nav-afterglow 1.8s ease-out both;}
 .al-touch-light[data-touch='on']{animation:al-touch-edge .65s ease-out both;}
 html[data-theme='afterlight'][data-card-animations='on'] :is(.room-list-row.expanded>.room-list-body,#personal-room-dialog[open]>.pr-dialog-body,.ab-column[open]>.ab-room-list,.room-card details[open]>ol,.room-card details[open]>div){animation:al-details-reveal 180ms ease-out both;}
 @layer surface-material {
  html[data-theme='afterlight'] #app-view .view :is(.panel,.ops-panel,.metric,.room-card,.employee-bubble,.ab-room,.ab-column,.pr-room,.room-list-row,.summary-room-row,.housekeeper-greeting){box-shadow:inset 0 1px #efd29b1b,inset 0 -1px #07100b47,0 14px 27px -23px #020703bd!important;}
  html[data-theme='afterlight'][data-mode='dark'] #app-view .view :is(.panel,.ops-panel,.metric,.room-card,.employee-bubble,.ab-room,.ab-column,.pr-room,.room-list-row,.summary-room-row,.housekeeper-greeting){box-shadow:inset 0 1px #a3c7da24,inset 0 -1px #07100b66,0 15px 29px -22px #020609cc!important;}
  html[data-theme='afterlight'] :is(dialog[open],[role='dialog']){background:var(--surface-modal)!important;color:var(--surface-ink)!important;box-shadow:inset 0 1px #efd29b45,0 28px 75px -28px #030908ed!important;backdrop-filter:blur(4px)!important;}
  html[data-theme='afterlight'] #assignment-tracker{box-shadow:inset 0 1px color-mix(in srgb,var(--al-room-light) 22%,transparent),0 18px 40px -24px #020703cc!important;}
 }
 html[data-theme='afterlight'] dialog::backdrop{background:#070d0bcc;backdrop-filter:blur(2px);}
 html[data-afterlight-focus='on'] :is(.al-mid-air,.al-edge-air,.al-dust){opacity:.02;}
 html[data-afterlight-focus='on'] .al-surface-light{animation-play-state:paused;opacity:.23;}
 html[data-afterlight-focus='on'] .afterlight-ui-light{opacity:.2;}
 html[data-theme='afterlight'][data-afterlight-motion='off'] :is(.al-mid-air,.al-surface-light,.al-nav-wake,.al-touch-response){animation:none!important;translate:none;}
 html[data-theme='afterlight'][data-afterlight-motion='off'] .al-surface-light{opacity:.28;}
 html[data-theme='afterlight'][data-afterlight-motion='off'] :is(.al-mote,.al-edge-mote,.al-edge-shadow,.al-edge-veil,.al-edge-object){opacity:0!important;animation:none!important;}
 html[data-theme='afterlight'][data-theme-tuner-lighting='off'] .al-surface-light{display:none;}
 @media(hover:hover) and (pointer:fine){html[data-theme='afterlight'][data-card-animations='on'] :is(.room-card,.employee-bubble,.ab-room,.pr-room,.room-inspection-card):not(.card-dragging):hover{translate:0 -1px;transition:translate 250ms ease-out;}}
 @media(max-width:700px){.al-edge-mote{filter:none;}.al-surface-light{animation-duration:67s;} .al-mid-air{animation-duration:110s;} .al-edge-shadow{background:radial-gradient(ellipse 18px 60% at 0 45%,#07100bb3,transparent 90%);}.al-edge-veil{background:radial-gradient(ellipse 18px 38% at 100% 45%,var(--al-room-light),transparent 90%);}}
 @media(prefers-reduced-motion:reduce){html[data-theme='afterlight'] :is(.al-mid-air,.al-surface-light,.al-nav-wake,.al-touch-response,.room-card,.ab-room,.pr-room,.employee-bubble){animation:none!important;translate:none!important;transition:none!important;}.al-edge-shadow,.al-edge-veil,.al-edge-object{display:none;}}
 @media(prefers-reduced-transparency:reduce){.al-mid-air{display:none;}html[data-theme='afterlight'] :is(.sidebar,.topbar){background:#14211f!important;backdrop-filter:none;}}
 @media(forced-colors:active){.al-surface-light,.al-mid-air,.afterlight-perimeter{display:none!important;}}
}
@keyframes al-air-depth{0%,100%{transform:translate3d(-8px,0,0) scale(.98)}47%{transform:translate3d(16px,-3px,0) scale(1.03)}}
@keyframes al-air-near{0%,100%{transform:translate3d(8px,0,0)}53%{transform:translate3d(-17px,3px,0)}}
@keyframes al-lived-mote{0%,100%{opacity:0;transform:translate3d(var(--mfrom-x,0px),var(--mfrom-y,0px),0)}18%{opacity:var(--mo,.22)}63%{opacity:calc(var(--mo,.22)*.65)}99%{transform:translate3d(var(--dx,26px),var(--dy,-38px),0);opacity:0}}
@keyframes al-surface-breathe{0%,100%{opacity:.18}37%{opacity:.46}71%{opacity:.27}}
@keyframes al-rim-bloom{0%,100%{opacity:.22}42%,56%{opacity:.68}}
@keyframes al-bloom-visit{0%,100%{opacity:.35}42%,58%{opacity:.77}}
@keyframes al-distant-reflection{0%,100%{opacity:.18}38%{opacity:.29}52%{opacity:.21}67%{opacity:.31}}
@keyframes al-edge-shadow-pass{0%,100%{opacity:0;transform:translateY(-7%)}44%,61%{opacity:.15}99%{transform:translateY(8%)}}
@keyframes al-edge-haze-pass{0%,100%{opacity:0;transform:translateY(-10%)}39%,67%{opacity:.09}99%{transform:translateY(12%)}}
@keyframes al-special-mote{0%,100%{opacity:0;transform:translate3d(-8px,0,0) rotate(10deg)}24%{opacity:.45}77%{opacity:.32}99%{transform:translate3d(-11px,55vh,0) rotate(260deg)}}
@keyframes al-clear-air{0%,100%{opacity:.08}45%,64%{opacity:0}}
@keyframes al-nav-afterglow{0%{opacity:.4}100%{opacity:0}}
@keyframes al-touch-edge{0%{opacity:.4}100%{opacity:0}}
@keyframes al-details-reveal{from{filter:brightness(.97);transform:translateY(2px)}to{filter:none;transform:none}}
@media print{.al-surface-light,.al-mid-air,.afterlight-perimeter{display:none!important;}}


/* Source: aster.css */
/* Aster: opalescent glass, living botanical foreground, celestial brass. */
@media screen {
 html[data-theme='aster'][data-world][data-mode] body,html[data-theme='aster'][data-world][data-mode] .workspace{background:transparent!important;}
 html[data-theme='aster'][data-world][data-mode][data-animation-style] .world-atmosphere{display:block!important;opacity:1!important;}
 html[data-theme='aster'] .world-atmosphere>:not(.aster-environment){display:none!important;}
 html[data-theme='aster']{--as-light:#ffda87;--as-white:#fff4cc;--as-light-opacity:.26;--as-shade:#173f2d50;--as-rim:#b6853955;--surface-shadow:0 21px 42px -22px #173b2980,0 5px 13px -7px #352e2270,inset 0 1px #fff9e9cf,inset 0 -1px #b19d7938;}
 html[data-theme='aster'][data-mode='dark']{--as-light:#a2f2e4;--as-white:#ddf9ff;--as-light-opacity:.14;--as-shade:#000e2790;--as-rim:#c0ebd655;--surface-shadow:0 23px 46px -20px #000e20df,0 5px 16px -8px #000b26,inset 0 1px #c0ebd648,inset 0 -1px #dba9762b;}
 .aster-environment{position:absolute;inset:0;overflow:hidden;contain:strict;pointer-events:none;}
 .aster-environment *,.aster-perimeter,.aster-perimeter *,.as-rim,.as-sheen{pointer-events:none!important;}
 .as-stage{position:absolute;inset:-2%;transform:translate(calc(var(--as-x,0px)*.13),calc(var(--as-y,0px)*.12));}
 .as-plate{position:absolute;inset:0;background-size:cover;background-position:center;transition:opacity 1.5s ease;}
 .as-day{background-image:url('/aster-morning.jpg?v=1');}
 .as-night{background-image:url('/aster-midnight.jpg?v=1');opacity:0;}
 html[data-theme='aster'][data-mode='dark'] .as-night{opacity:1;}
 .as-cloudbank{position:absolute;inset:35% -20% -10%;opacity:.21;transform:translate(calc(var(--as-x,0px)*.5),calc(var(--as-y,0px)*.3));}
 .as-cloudbank>b{inset:0;background:radial-gradient(ellipse at 30% 70%,#fff8e6 0,transparent 48%),radial-gradient(ellipse at 75% 47%,#def6eb 0,transparent 32%);filter:blur(12px);animation:aster-clouds calc(37s / var(--tuner-motion-speed,1)) ease-in-out -9s infinite alternate;}
 .as-cloudbank>b:nth-child(2){inset:20% -18% -30%;opacity:.65;animation-duration:calc(51s / var(--tuner-motion-speed,1));animation-delay:-31s;}
 html[data-theme='aster'][data-mode='dark'] .as-cloudbank{opacity:.075;}
 .as-glass-light{position:absolute;inset:0;opacity:var(--as-light-opacity);transform:translate(calc(var(--as-x,0px)*.35),calc(var(--as-y,0px)*.4));}
 .as-glass-light>i{inset:-15%;background:conic-gradient(from 35deg at 65% 3%,transparent 0 8deg,#f3d58b55 11deg,transparent 15deg,#b9ffe655 19deg,transparent 27deg,#e5c3fa60 31deg,transparent 37deg);animation:aster-refraction calc(19s / var(--tuner-motion-speed,1)) ease-in-out -7s infinite alternate;}
 .as-glass-light>i:nth-child(2){background:linear-gradient(118deg,transparent 45%,#fff6d9a0 46%,transparent 47% 54%,#a7e1c68c 55%,transparent 57%);animation-duration:calc(27s / var(--tuner-motion-speed,1));animation-delay:-19s;opacity:.5;}
 .as-glass-light>i:nth-child(3){inset:70% -20% -10%;background:repeating-conic-gradient(from 12deg at 50% 0%,transparent 0 7deg,#fff8d870 8deg,transparent 9deg 20deg);transform-origin:50% 0;animation:aster-floor calc(23s / var(--tuner-motion-speed,1)) ease-in-out infinite alternate;opacity:.5;}
 .as-shafts{position:absolute;inset:0;overflow:hidden;transform:translate(calc(var(--as-x,0px)*.6),calc(var(--as-y,0px)*.5));}
 .as-shafts>i{top:-20%;left:30%;width:19%;height:140%;background:linear-gradient(90deg,transparent,var(--as-white),transparent);opacity:.13;transform-origin:50% 0;filter:blur(9px);animation:aster-shaft calc(17s / var(--tuner-motion-speed,1)) ease-in-out -8s infinite alternate;}
 .as-shafts>i:nth-child(2){left:66%;width:6%;opacity:.08;animation-duration:calc(29s / var(--tuner-motion-speed,1));animation-delay:-15s;}
 .as-orrery{position:absolute;right:3%;top:2%;width:clamp(140px,22vw,340px);aspect-ratio:1;opacity:.67;filter:drop-shadow(0 7px 7px #0006);transform:translate(calc(var(--as-x,0px)*.8),calc(var(--as-y,0px)*.6));}
 .as-ring{inset:10%;border:2px solid #dbb773;border-radius:50%;box-shadow:inset 0 1px #fff1b4,0 1px #57360b;transform:rotate(-28deg) scaleY(.35);animation:aster-ring calc(23s / var(--tuner-motion-speed,1)) ease-in-out -6s infinite;}
 .as-ring:nth-child(2){inset:5%;transform:rotate(30deg) scaleY(.46);animation-duration:calc(31s / var(--tuner-motion-speed,1));animation-direction:reverse;}
 .as-orb{inset:37%;border-radius:50%;background:radial-gradient(circle at 30% 20%,#ffffda,#b58a37 33%,#2c4133 83%);box-shadow:0 0 20px #ffdfa93b;}
 .as-orbit{inset:6%;animation:aster-orbit calc(41s / var(--tuner-motion-speed,1)) linear infinite;}
 .as-orbit>em{position:absolute;left:50%;top:0;width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 30% 20%,#ffffdf,#c39a55 50%,#3d553e);box-shadow:0 0 11px #ffdea266;}
 .as-pollen{position:absolute;inset:0;transform:translate(calc(var(--as-x,0px)*1.6),calc(var(--as-y,0px)*1.3));}
 .as-pollen>span{position:absolute;left:var(--px);top:var(--py);width:var(--ps);height:var(--ps);border-radius:50%;background:var(--as-white);box-shadow:0 0 8px 2px color-mix(in srgb,var(--as-light) 60%,transparent);animation:aster-pollen calc(var(--pd) / var(--tuner-motion-speed,1)) linear var(--pa) infinite;}
 .aster-perimeter{position:fixed;inset:0;z-index:3;overflow:hidden;contain:strict;}
 .as-garland{position:absolute;top:-10%;width:clamp(100px,12vw,190px);height:85vh;background:url('/aster-garland.webp?v=1') center top/contain no-repeat;transform-origin:50% 0;filter:drop-shadow(4px 10px 6px #05241680);animation:aster-vine calc(11s / var(--tuner-motion-speed,1)) ease-in-out -3s infinite;}
 .as-garland-left{left:-68px;transform:scaleX(-1);translate:calc(var(--as-x,0px)*1.1) calc(var(--as-y,0px)*.7);}
 .as-garland-right{right:-35px;top:-25%;width:clamp(100px,13vw,205px);height:95vh;animation-duration:calc(15s / var(--tuner-motion-speed,1));animation-delay:-9s;translate:calc(var(--as-x,0px)*1.3) calc(var(--as-y,0px)*.9);}
 .as-lantern-halo{position:absolute;right:-4%;top:32%;width:170px;height:190px;opacity:.22;background:radial-gradient(ellipse,#ffc9709c,transparent 63%);animation:aster-lantern calc(7s / var(--tuner-motion-speed,1)) ease-in-out -4s infinite;}
 .as-mobile-garden[hidden],.as-mobile-card-vine[hidden],.as-mobile-nav-sprig[hidden]{display:none!important;}
 .as-mobile-garden{display:none;}
 html[data-theme='aster'][data-mode='dark'] .as-garland{filter:brightness(.65) drop-shadow(4px 10px 9px #0009);}
 .as-alignment{position:absolute;inset:-20%;opacity:0;background:conic-gradient(from 6deg at 63% 9%,transparent 0 10deg,#fff7be33 11deg,transparent 13deg 20deg,#bcebe52b 21deg,transparent 24deg 33deg,#facde433 35deg,transparent 37deg);}
 .aster-environment[data-event='alignment'] .as-alignment{animation:aster-alignment 12s ease-in-out both;}
 .aster-perimeter[data-event='lantern'] .as-lantern-halo{animation:aster-lantern-awake 12s ease-in-out both;}
 .as-visitor{position:absolute;left:-30px;top:20%;width:13px;height:10px;opacity:0;filter:drop-shadow(0 0 6px var(--as-light));}
 .as-visitor>i{inset:0;border-radius:80% 20% 80% 20%;background:var(--as-white);transform-origin:50% 50%;animation:aster-wing .8s ease-in-out infinite alternate;}
 .as-visitor>i:nth-child(2){transform:scaleX(-1);animation-delay:-.4s;}
 .aster-environment[data-event='visitor'] .as-visitor{animation:aster-visitor 9s ease-in-out both;}
 html[data-theme='aster'] .workspace>.view{margin-top:78px;}
 html[data-theme='aster'][data-world][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel){background:color-mix(in srgb,var(--world-surface) 90%,transparent)!important;box-shadow:var(--surface-shadow)!important;backdrop-filter:blur(5px)!important;}
 html[data-theme='aster'] .sidebar{border-right:1px solid var(--as-rim)!important;}
 html[data-theme='aster'] .topbar{border:1px solid var(--as-rim)!important;border-radius:22px 7px 22px 7px;}
 html[data-theme='aster'] .as-positioned{position:relative;}
 .as-rim,.as-sheen{position:absolute!important;inset:0;display:block;z-index:2;border-radius:inherit;overflow:hidden;}
 .as-rim{padding:1px;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:calc(.67 * var(--tuner-glow-number,1));}
 .as-rim::before{content:'';position:absolute;inset:-100%;background:conic-gradient(from 20deg,transparent 0 15%,var(--as-white) 20%,transparent 27% 50%,var(--as-light) 56%,transparent 65%);animation:aster-rim calc(var(--as-period,19s) / var(--tuner-motion-speed,1)) linear var(--as-phase,0s) infinite;}
 .as-sheen{opacity:.09;}
 .as-sheen::before{content:'';position:absolute;top:-60%;left:-70%;width:58%;height:220%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--as-white) 50%,transparent),transparent);transform:skewX(-30deg);animation:aster-sheen calc(var(--as-period,19s) / var(--tuner-motion-speed,1)) ease-in-out var(--as-phase,0s) infinite;}
 html[data-theme='aster'] .panel-head::before{animation:aster-glass-breathe calc(19s / var(--tuner-motion-speed,1)) ease-in-out infinite!important;}
 html[data-theme='aster'] .nav-item.active{box-shadow:inset 3px 0 var(--world-accent),inset 0 1px var(--as-white),0 4px 15px -5px var(--as-shade)!important;}
 html[data-theme='aster'] :is(.button,input,select,textarea){transition:box-shadow .35s ease,border-color .3s ease,transform .25s ease!important;}
 @media(hover:hover){html[data-theme='aster'] :is(.button,.nav-item):not(:disabled):hover{box-shadow:0 4px 18px -7px var(--as-shade),0 0 16px color-mix(in srgb,var(--as-light) 32%,transparent),inset 0 1px var(--as-white)!important;transform:translateY(-1px);}}
 .as-wake>.as-rim{animation:aster-touch 1.6s ease-out;}
 @layer surface-material{
 html[data-theme='aster'] :is(.panel,.ops-panel,.metric,.room-card,.ab-column,.ab-room,.pr-room,dialog[open]){box-shadow:var(--surface-shadow)!important;}
 html[data-theme='aster'] :is(.panel,.ops-panel) :is(.metric,.room-card,.ab-room,.pr-room){box-shadow:inset 0 1px color-mix(in srgb,var(--as-white) 16%,transparent),0 5px 10px -8px var(--as-shade)!important;}
 }
 html[data-theme='aster'] dialog::backdrop{background:#03121fc7;backdrop-filter:blur(3px);}
 .world-preview[data-world='aster'] .world-portal-art{background:url('/aster-morning.jpg?v=1') center/cover!important;opacity:1!important;transform:none!important;mask:none!important;}
 .world-preview[data-world='aster'][data-mode='dark'] .world-portal-art{background-image:url('/aster-midnight.jpg?v=1')!important;}
 @media(min-width:1280px){html[data-theme='aster'] .workspace{padding-right:clamp(120px,13vw,230px);}}
 @media(max-width:700px){
  .as-mobile-garden{display:contents;}
  .as-mobile-card-vine,.as-mobile-nav-sprig{position:absolute;overflow:hidden;filter:drop-shadow(2px 4px 2px #12361f75);transform-origin:50% 0;animation:aster-vine calc(13s / var(--tuner-motion-speed,1)) ease-in-out -5s infinite;}
  .as-mobile-card-vine{width:44px;height:148px;}
  .as-mobile-card-vine>i{position:absolute;inset:0;background:url('/aster-garland.webp?v=1') center top/104px 156px no-repeat;}
  .as-mobile-nav-sprig{width:76px;height:34px;animation-duration:calc(17s / var(--tuner-motion-speed,1));animation-delay:-9s;}
  .as-mobile-nav-sprig>i{position:absolute;width:104px;height:156px;left:-16px;top:-61px;background:url('/aster-garland.webp?v=1') center/contain no-repeat;transform:rotate(-80deg);}
  html[data-theme='aster'][data-mode='dark'] :is(.as-mobile-card-vine,.as-mobile-nav-sprig){filter:brightness(.86) drop-shadow(1px 4px 3px #0009);}
  .as-mobile-garden[data-obscured='yes'],html.world-focus-mode .as-mobile-garden{visibility:hidden;}
  .as-plate{background-position:62% center;}.as-stage{inset:-1%;}.as-orrery{top:4%;right:-8%;width:155px;opacity:.75;}
  .as-garland-left{left:-75px;width:100px;height:62vh;}.as-garland-right{right:-75px;width:115px;height:74vh;top:-10%;}
  .as-lantern-halo{right:-100px;top:23%;}.as-cloudbank>b{filter:none;}.as-shafts>i{filter:none;opacity:.08;}
  html[data-theme='aster'] .workspace>.view{margin-top:100px;}
  html[data-theme='aster'] .workspace{padding-inline:14px;}
  .as-sheen{opacity:.075;}
 }
 html[data-aster-motion='off'] :is(.aster-environment,.aster-perimeter) *,html[data-aster-cards='off'] :is(.as-rim,.as-rim::before,.as-sheen,.as-sheen::before){animation-play-state:paused!important;}
 html[data-aster-motion='off'] :is(.as-visitor,.as-pollen){opacity:0;}
 html[data-theme='aster'][data-theme-tuner-particles='low'] .as-pollen>span:nth-child(n+5){display:none;}
 html[data-theme='aster'][data-theme-tuner-particles='off'] .as-pollen{display:none;}
 html[data-theme='aster'][data-theme-tuner-lighting='off'] :is(.as-glass-light,.as-shafts,.as-alignment,.as-lantern-halo){display:none;}
 html[data-theme='aster'][data-theme-tuner-lighting='subtle'] :is(.as-glass-light,.as-shafts){opacity:.06;}
 html[data-theme='aster'][data-aster-decorative='off'] .as-visitor{display:none;}
 @media(prefers-reduced-motion:reduce){.aster-environment *,.aster-perimeter *,.as-rim::before,.as-sheen::before{animation:none!important;}}
}
@media print{.aster-environment,.aster-perimeter,.as-rim,.as-sheen{display:none!important;}}
@keyframes aster-glass-breathe{0%,100%{opacity:.12;transform:translateY(0)}50%{opacity:.3;transform:translateY(-3px)}}
@keyframes aster-clouds{from{transform:translate(-2%,1%) scale(1)}to{transform:translate(6%,-3%) scale(1.06)}}
@keyframes aster-refraction{from{transform:rotate(-3deg) translate(-1%,0)}to{transform:rotate(4deg) translate(2%,1%)}}
@keyframes aster-floor{from{transform:scale(1) rotate(-3deg)}to{transform:scale(1.12) rotate(5deg)}}
@keyframes aster-shaft{from{transform:rotate(-22deg) scaleX(.7);opacity:.06}to{transform:rotate(-12deg) scaleX(1.2);opacity:.18}}
@keyframes aster-ring{0%,100%{transform:rotate(-28deg) scaleY(.35)}50%{transform:rotate(-15deg) scaleY(.5)}}
@keyframes aster-orbit{to{transform:rotate(360deg)}}
@keyframes aster-pollen{0%{transform:translate(0,15px);opacity:0}15%,75%{opacity:.65}100%{transform:translate(var(--pdx),var(--pdy));opacity:0}}
@keyframes aster-vine{0%,100%{rotate:-1deg}40%{rotate:2.5deg}73%{rotate:.2deg}}
@keyframes aster-lantern{0%,100%{opacity:.15;scale:.9}50%{opacity:.4;scale:1.1}}
@keyframes aster-rim{to{transform:rotate(360deg)}}
@keyframes aster-sheen{0%,12%{transform:translateX(0) skewX(-30deg);opacity:0}25%{opacity:1}68%,100%{transform:translateX(430%) skewX(-30deg);opacity:0}}
@keyframes aster-touch{0%{opacity:1;filter:brightness(2)}100%{opacity:.67;filter:none}}
@keyframes aster-alignment{0%,100%{opacity:0;rotate:-4deg}40%,60%{opacity:.8;rotate:3deg}}
@keyframes aster-lantern-awake{0%,100%{opacity:.2;scale:1}35%,65%{opacity:.7;scale:1.2}}
@keyframes aster-wing{from{rotate:-28deg;scale:1 .6}to{rotate:28deg;scale:1 1}}
@keyframes aster-visitor{0%{translate:0 10vh;opacity:0}10%{opacity:.6}45%{translate:48vw -4vh;opacity:.8}80%{opacity:.6}100%{translate:110vw 4vh;opacity:0}}


/* Source: theme-trim.css */
/* Small material objects overlap the interface perimeter. All content remains
   in its original layout; the light renderer paints a 1px border only. */
@media screen{
 html[data-theme-trim]{--trim-metal:color-mix(in srgb,var(--world-accent) 56%,var(--world-border));--trim-highlight:color-mix(in srgb,var(--world-highlight) 48%,#fffdf3);--trim-shadow:color-mix(in srgb,var(--world-deep) 70%,#102023);--trim-leaf:color-mix(in srgb,var(--world-accent-secondary) 72%,var(--world-deep));--trim-leaf-light:color-mix(in srgb,var(--world-accent-secondary) 64%,var(--world-elevated));--trim-edge-opacity:.65;}
 html[data-theme-trim][data-mode='dark']{--trim-highlight:color-mix(in srgb,var(--world-highlight) 78%,#fffdf3);--trim-metal:color-mix(in srgb,var(--world-accent) 76%,var(--world-border));--trim-edge-opacity:.55;}
 .theme-perimeter{position:fixed;inset:0;z-index:3;overflow:hidden;contain:strict;pointer-events:none!important;}
 .theme-perimeter *,.to-edge,.to-edge::before{pointer-events:none!important;}
 .to-side,.to-cap,.to-compact-body,.to-dock{position:absolute;transform-origin:50% 0;filter:drop-shadow(2px 4px 2px color-mix(in srgb,var(--world-deep) 54%,transparent));}
 .to-side{height:auto;aspect-ratio:110/230;animation:trim-object-breathe calc(16s / var(--tuner-motion-speed,1)) ease-in-out -5s infinite;}
 .to-cap{width:49px;height:31px;animation:trim-object-breathe calc(23s / var(--tuner-motion-speed,1)) ease-in-out -12s infinite;}
 .to-compact-body{width:43px;height:90px;animation:trim-object-breathe calc(18s / var(--tuner-motion-speed,1)) ease-in-out -6s infinite;}
 .to-dock{width:58px;height:36px;animation:trim-object-breathe calc(21s / var(--tuner-motion-speed,1)) ease-in-out -10s infinite;}
 .to-side[hidden],.to-cap[hidden],.to-compact-body[hidden],.to-dock[hidden]{display:none!important;}
 .theme-perimeter svg{display:block;width:100%;height:100%;overflow:visible;}
 .theme-perimeter[data-material='machine'] :is(.to-side,.to-compact-body),.theme-perimeter[data-material='stone'] :is(.to-side,.to-compact-body){animation-name:trim-hardware-light;}
 .theme-perimeter[data-material='glass'] :is(.to-side,.to-compact-body),.theme-perimeter[data-material='ceramic'] :is(.to-side,.to-compact-body){animation-name:trim-glass-light;}
 .to-loose{transform-box:fill-box;transform-origin:50% 0;animation:trim-pendant calc(13s / var(--tuner-motion-speed,1)) ease-in-out -4s infinite;}
 .to-wheel{transform-box:fill-box;transform-origin:center;animation:trim-wheel calc(72s / var(--tuner-motion-speed,1)) linear -19s infinite;}
 .to-positioned{position:relative;}
 .to-edge{position:absolute!important;inset:0;z-index:2;display:block;border-radius:inherit;padding:1.15px;overflow:hidden;box-sizing:border-box;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:calc(var(--trim-edge-opacity,.6) * var(--tuner-glow-number,1));}
 .to-edge::before{content:'';position:absolute;inset:-110%;background:conic-gradient(from 25deg,transparent 0 22%,var(--trim-highlight) 26%,var(--world-accent) 29%,transparent 34% 71%,var(--world-accent-secondary) 76%,transparent 81%);animation:trim-edge-orbit calc(var(--trim-period,24s) / var(--tuner-motion-speed,1)) linear var(--trim-phase,-4s) infinite;}
 .to-edge[data-pattern='glint']::before,.to-edge[data-pattern='candle']::before{background:conic-gradient(from 40deg,transparent 0 28%,var(--trim-highlight) 30%,transparent 33% 81%,var(--trim-metal) 84%,transparent 89%);animation-timing-function:ease-in-out;}
 .to-edge[data-pattern='dapple']::before{background:conic-gradient(from 20deg,transparent 0 14%,var(--trim-highlight) 16%,transparent 19% 41%,var(--trim-leaf-light) 45%,transparent 49% 69%,var(--trim-metal) 72%,transparent 77%);animation-name:trim-edge-dapple;}
 .to-edge[data-pattern='signal']::before,.to-edge[data-pattern='ion']::before{background:conic-gradient(from 30deg,transparent 0 17%,var(--world-accent) 20%,var(--trim-highlight) 22%,transparent 25% 69%,var(--world-accent-secondary) 72%,transparent 75%);animation-timing-function:linear;}
 .to-edge[data-pattern='fracture']::before{background:conic-gradient(from 15deg,transparent 0 18%,var(--trim-metal) 20% 22%,transparent 24% 26%,var(--trim-highlight) 27%,transparent 29% 70%,var(--world-accent) 73%,transparent 76%);animation-name:trim-edge-signal;}
 .to-edge[data-pattern='flow']::before{background:conic-gradient(from 55deg,transparent 0 15%,var(--trim-leaf-light) 19%,var(--trim-highlight) 24%,transparent 34% 63%,var(--world-accent-secondary) 72%,transparent 85%);animation-name:trim-edge-flow;}
 .to-edge[data-pattern='ceramic']::before{background:conic-gradient(from 65deg,transparent 0 18%,color-mix(in srgb,var(--trim-highlight) 60%,transparent) 23%,var(--trim-highlight) 25%,transparent 34% 76%,var(--world-elevated) 84%,transparent 91%);animation-timing-function:ease-in-out;opacity:.85;}
 @media(hover:hover){.to-surface:hover>.to-edge{opacity:calc(.86 * var(--tuner-glow-number,1));transition:opacity .4s;}}
 .to-surface:focus-within>.to-edge{opacity:.3;}
 .theme-perimeter[data-obscured='yes']{visibility:hidden;}
 html[data-trim-environment='off'] .theme-perimeter *,html[data-trim-cards='off'] .to-edge::before{animation-play-state:paused!important;}
 html[data-theme-trim][data-theme-tuner-lighting='off'] .to-edge{opacity:.28;}
 html[data-theme-trim][data-theme-tuner-lighting='subtle'] .to-edge{opacity:.4;}
 html[data-theme-trim][data-theme-tuner-motion='low'] .to-side{animation-duration:32s;}
 html[data-theme-trim][data-theme-tuner-motion='low'] .to-edge::before{animation-duration:48s;}
 html.world-page-hidden .theme-perimeter *,html.world-page-hidden .to-edge::before{animation-play-state:paused!important;}
 html.world-focus-mode .to-edge{opacity:.18;}
 @media(max-width:700px){.to-cap{width:43px;height:27px;filter:drop-shadow(1px 3px 2px color-mix(in srgb,var(--world-deep) 44%,transparent));}.to-edge{padding:1px;}}
 @media(prefers-reduced-motion:reduce){.theme-perimeter *,.to-edge::before{animation:none!important;}}
}
@media print{.theme-perimeter,.to-edge{display:none!important;}}
@keyframes trim-object-breathe{0%,100%{rotate:-.6deg;translate:0 0}50%{rotate:1.1deg;translate:0 1px}}
@keyframes trim-hardware-light{0%,100%{filter:drop-shadow(2px 4px 2px color-mix(in srgb,var(--world-deep) 54%,transparent)) brightness(.93)}50%{filter:drop-shadow(2px 4px 2px color-mix(in srgb,var(--world-deep) 54%,transparent)) brightness(1.08)}}
@keyframes trim-glass-light{0%,100%{filter:drop-shadow(2px 4px 2px color-mix(in srgb,var(--world-deep) 54%,transparent)) brightness(.96);translate:0 0}50%{filter:drop-shadow(2px 4px 2px color-mix(in srgb,var(--world-deep) 54%,transparent)) brightness(1.1);translate:0 -.8px}}
@keyframes trim-pendant{0%,100%{rotate:-2deg}50%{rotate:2deg}}
@keyframes trim-wheel{to{rotate:360deg}}
@keyframes trim-edge-orbit{to{transform:rotate(360deg)}}
@keyframes trim-edge-dapple{0%{transform:rotate(0deg);opacity:.7}50%{opacity:1}100%{transform:rotate(360deg);opacity:.7}}
@keyframes trim-edge-signal{0%{transform:rotate(0deg);opacity:.65}35%{opacity:.95}70%{opacity:.7}100%{transform:rotate(360deg);opacity:.65}}
@keyframes trim-edge-flow{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(180deg) scale(1.07)}100%{transform:rotate(360deg) scale(1)}}


/* Source: lantern-tide.css */
/* Lantern Tide: copper, rain glass, carved wood and harbor reflections. */
@media screen {
 html[data-theme='lantern-tide'][data-world][data-mode] :is(body,.workspace){background:transparent!important;}
 html[data-theme='lantern-tide'][data-world][data-mode][data-animation-style] .world-atmosphere{display:block!important;opacity:1!important;}
 html[data-theme='lantern-tide'] .world-atmosphere>:not(.lantern-tide-environment){display:none!important;}
 html[data-theme='lantern-tide']{--lt-amber:#ffd89a;--lt-pearl:#fff3c9;--lt-teal:#6ed6c7;--lt-reflection:#ffe7ba;--lt-rim:#aa76374d;--lt-shadow:#23454155;--surface-shadow:0 18px 38px -24px #102b2d99,0 4px 12px -7px #57402155,inset 0 1px #fff6d9c9,inset 0 -1px #ab804c40;--theme-badge-radius:50% 50% 8px 8px;--theme-badge-clip:none;}
 html[data-theme='lantern-tide'][data-mode='dark']{--lt-rim:#e0b07165;--lt-reflection:#ffbd63;--lt-shadow:#010e1bac;--surface-shadow:0 22px 42px -23px #000b18ed,0 4px 12px -7px #020c12,inset 0 1px #edbd7050,inset 0 -1px #8bd4c731;}
 .lantern-tide-environment{position:absolute;inset:0;overflow:hidden;contain:strict;pointer-events:none;}
 :is(.lantern-tide-environment,.lantern-tide-perimeter) *,.lt-rim,.lt-material-light{pointer-events:none!important;}
 .lt-stage{position:absolute;inset:-1%;transform:translate(calc(var(--lt-x,0px)*.15),calc(var(--lt-y,0px)*.15));}
 .lt-plate{position:absolute;inset:0;background-size:cover;background-position:center;transition:opacity 1.4s ease;}
 .lt-day{background-image:url('/lantern-tide-day.jpg?v=1');}.lt-night{background-image:url('/lantern-tide-night.jpg?v=1');opacity:0;}
 html[data-theme='lantern-tide'][data-mode='dark'] .lt-night{opacity:1;}
 .lt-mist{position:absolute;inset:12% -20% 27%;opacity:.2;}
 .lt-mist>i{position:absolute;inset:0;background:radial-gradient(ellipse at 38% 65%,#f2f0d488,transparent 51%),radial-gradient(ellipse at 70% 42%,#c9e4dd90,transparent 37%);animation:tide-mist calc(29s / var(--tuner-motion-speed,1)) ease-in-out -13s infinite alternate;}
 .lt-mist>i:nth-child(2){inset:15% -10% 8%;animation-duration:calc(43s / var(--tuner-motion-speed,1));animation-delay:-31s;opacity:.6;}
 html[data-theme='lantern-tide'][data-mode='dark'] .lt-mist{opacity:.09;}
 .lt-water{position:absolute;inset:54% 12% 0 16%;transform:perspective(500px) rotateX(18deg);}
 .lt-water>b{position:absolute;left:var(--lt-x);top:var(--lt-y);width:var(--lt-width);height:2px;border-radius:100%;background:var(--lt-reflection);box-shadow:0 0 4px var(--lt-reflection);opacity:.3;animation:tide-ripple calc(8s / var(--tuner-motion-speed,1)) ease-in-out var(--lt-delay) infinite alternate;}
 .lt-reflections{position:absolute;inset:54% 14% -6% 20%;mask-image:repeating-linear-gradient(0deg,#fff 0 2px,#fff2 3px 5px,transparent 7px 12px);opacity:.22;}
 .lt-reflections>i{position:absolute;top:0;bottom:0;left:21%;width:6%;background:linear-gradient(transparent,#ffd386 30%,#fff1b7 60%,transparent);animation:tide-reflection calc(9s / var(--tuner-motion-speed,1)) ease-in-out -3s infinite alternate;}
 .lt-reflections>i:nth-child(2){left:76%;width:13%;animation-duration:calc(13s / var(--tuner-motion-speed,1));animation-delay:-7s;}.lt-reflections>i:nth-child(3){left:48%;width:4%;animation-duration:calc(11s / var(--tuner-motion-speed,1));}
 .lt-caustics{position:absolute;inset:70% 5% -12% 12%;opacity:.13;mix-blend-mode:screen;}
 .lt-caustics>i{position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 20% 100%,transparent 0 37px,#73e4d885 39px,transparent 42px 75px);transform-origin:bottom;animation:tide-pool calc(17s / var(--tuner-motion-speed,1)) ease-in-out -4s infinite alternate;}
 .lt-caustics>i:nth-child(2){rotate:18deg;animation-delay:-12s;animation-direction:alternate-reverse;}
 html[data-theme='lantern-tide'][data-mode='light'] .lt-caustics{opacity:.07;}
 .lt-boat{position:absolute;bottom:17%;left:20%;width:90px;opacity:.72;animation:tide-skiff calc(57s / var(--tuner-motion-speed,1)) ease-in-out -22s infinite alternate;filter:drop-shadow(0 3px 2px #06212470);}
 .lt-boat>svg{width:100%;display:block;}.lt-boat>i{position:absolute;top:85%;left:32%;height:30px;width:32%;background:linear-gradient(#ffcd7570,transparent);mask:repeating-linear-gradient(0deg,#fff 0 1px,transparent 2px 5px);animation:tide-reflection 7s ease-in-out infinite alternate;}
 .lt-fireflies{position:absolute;inset:0;}.lt-fireflies>span{position:absolute;left:var(--lt-px);top:var(--lt-py);width:2px;height:2px;border-radius:50%;background:var(--lt-pearl);box-shadow:0 0 6px 2px #ffdf8e5a;animation:tide-firefly calc(var(--lt-period) / var(--tuner-motion-speed,1)) ease-in-out var(--lt-delay) infinite;}
 .lantern-tide-perimeter{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden;contain:strict;}
 .lt-jamb{position:absolute;top:6%;left:-57px;width:112px;height:85vh;background:url('/lantern-tide-jamb.png?v=1') left top/112px auto no-repeat;filter:drop-shadow(3px 6px 5px #062b2580);}
 .lt-eave{position:absolute;right:0;top:0;width:185px;height:9px;background:linear-gradient(#263f37,#b28746 40%,#4d361d 68%,#1c302c);border-bottom:1px solid #d0a46b;box-shadow:0 5px 10px #041c2555;}
 .lt-hanging{position:absolute;right:9px;top:-25px;width:140px;height:215px;background:url('/lantern-tide-lantern.png?v=1') center top/contain no-repeat;transform-origin:50% 0;animation:tide-lantern-sway calc(11s / var(--tuner-motion-speed,1)) ease-in-out -5s infinite alternate;filter:drop-shadow(0 4px 5px #11292188);}
 .lt-hanging-b{right:96px;top:-70px;width:90px;height:170px;animation-duration:calc(15s / var(--tuner-motion-speed,1));animation-delay:-9s;}
 .lt-hanging>i{position:absolute;inset:14% -12% 12%;border-radius:50%;background:radial-gradient(ellipse,#ffcd7560,transparent 63%);mix-blend-mode:screen;animation:tide-lantern-light calc(7s / var(--tuner-motion-speed,1)) ease-in-out -3s infinite alternate;}
 .lt-rain-glass{position:absolute;right:0;top:23%;bottom:12%;width:37px;border-left:2px solid #a2764180;background:linear-gradient(90deg,#63998b16,#91c9bc20);box-shadow:inset 2px 0 0 #ffe5a32e;}
 .lt-rain-glass>b{position:absolute;left:var(--lt-x);top:var(--lt-y);width:2px;height:8px;border-radius:50%;background:linear-gradient(#fff6,#b8e6e877);box-shadow:1px 0 #092b3640;animation:tide-rain calc(var(--lt-period) / var(--tuner-motion-speed,1)) ease-in var(--lt-delay) infinite;}
 .lt-edge-water{position:absolute;bottom:-25px;left:0;right:0;height:70px;opacity:.22;overflow:hidden;mask:linear-gradient(transparent,#fff);}
 .lt-edge-water>i{position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 70% 90%,transparent 0 18px,#f8cf8090 20px,transparent 23px 37px);animation:tide-foreground calc(13s / var(--tuner-motion-speed,1)) ease-in-out -4s infinite alternate;}
 .lt-edge-water>i:nth-child(2){background:repeating-radial-gradient(ellipse at 30% 100%,transparent 0 29px,#7dddc780 32px,transparent 34px 56px);animation-direction:alternate-reverse;animation-delay:-8s;}
 html[data-theme='lantern-tide'] .workspace>.view{margin-top:92px;}
 html[data-theme='lantern-tide'][data-world][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel){background:color-mix(in srgb,var(--world-surface) 94%,transparent)!important;box-shadow:var(--surface-shadow)!important;backdrop-filter:blur(3px)!important;}
 html[data-theme='lantern-tide'] .nav-room-search{min-width:0;}
 html[data-theme='lantern-tide'] .nav-room-search input{width:0!important;min-width:0!important;flex:1 1 0!important;}
 html[data-theme='lantern-tide'] .sidebar{border-right:3px double var(--lt-rim)!important;}
 html[data-theme='lantern-tide'] .topbar{border:1px solid var(--lt-rim)!important;border-radius:30px 5px 8px 30px;}
 .lt-corner{position:absolute!important;top:0;right:0;width:62px;height:62px;pointer-events:none!important;z-index:2;background:url('/lantern-tide-corner.png?v=1') right top/contain no-repeat;filter:drop-shadow(0 2px 1px #051d2833);transform-origin:100% 0;animation:tide-corner-glint calc(14s / var(--tuner-motion-speed,1)) ease-in-out var(--lt-surface-phase,0s) infinite alternate;}
 .lt-positioned{position:relative;}.lt-rim,.lt-material-light{position:absolute!important;inset:0;display:block;z-index:1;border-radius:inherit;overflow:hidden;}
 .lt-rim{padding:1.5px;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:calc(.72 * var(--tuner-glow-number,1));}
 .lt-rim::before{content:'';position:absolute;inset:-100%;background:conic-gradient(from 18deg,transparent 0 9%,var(--lt-amber) 14%,transparent 21% 50%,var(--lt-teal) 59%,transparent 68%);animation:tide-rim calc(var(--lt-surface-period,17s) / var(--tuner-motion-speed,1)) linear var(--lt-surface-phase,0s) infinite;}
 .lt-material-light{opacity:.1;mask:linear-gradient(#fff,transparent 23% 76%,#fff3);}
 .lt-material-light::before{content:'';position:absolute;inset:-30%;background:linear-gradient(115deg,transparent 20%,#ffc87970 32%,transparent 42% 60%,#68caba50 73%,transparent 82%);animation:tide-material calc(var(--lt-surface-period,17s) / var(--tuner-motion-speed,1)) ease-in-out var(--lt-surface-phase,0s) infinite alternate;}
 html[data-theme='lantern-tide'] .nav-item.active{box-shadow:inset 3px 0 var(--world-accent),inset 0 1px #f5d29770,0 4px 12px -6px var(--lt-shadow)!important;}
 html[data-theme='lantern-tide'] :is(.button,input,select,textarea):focus-visible{outline:2px solid var(--world-accentSecondary);outline-offset:3px;}
 @layer surface-material{html[data-theme='lantern-tide'] :is(.panel,.ops-panel,.metric,.room-card,.ab-column,.ab-room,.pr-room,dialog[open]){box-shadow:var(--surface-shadow)!important;}}
 html[data-theme='lantern-tide'] .theme-tuner-dialog{padding:0!important;}
 html[data-theme='lantern-tide'] dialog::backdrop{background:#041b25c4;backdrop-filter:blur(3px);}
 .world-preview[data-world='lantern-tide'] .world-portal-art{background:url('/lantern-tide-day.jpg?v=1') center/cover!important;opacity:1!important;transform:none!important;mask:none!important;}
 .world-preview[data-world='lantern-tide'][data-mode='dark'] .world-portal-art{background-image:url('/lantern-tide-night.jpg?v=1')!important;}
 @media(min-width:1280px){html[data-theme='lantern-tide'] .workspace{padding-right:clamp(125px,12vw,200px);}}
 @media(max-width:700px){
  .lt-plate{background-position:58% center;}.lt-stage{inset:-1%;}
  .lt-jamb{left:-42px;top:7%;width:68px;height:55vh;background-size:68px auto;}
  .lt-eave{width:90px;height:6px;}.lt-hanging{right:-12px;top:80px;width:74px;height:110px;}.lt-hanging-b{right:38px;top:82px;width:44px;height:66px;}
  .lt-rain-glass{width:7px;top:28%;bottom:17%;border-left-width:1px;}.lt-edge-water{height:40px;bottom:-17px;opacity:.17;}
  .lt-boat{width:55px;bottom:16%;}.lt-water{inset:60% 3% 3% 0;}.lt-reflections{inset:56% 0 0 0;}.lt-caustics{inset:73% -10% -8%;}
  html[data-theme='lantern-tide'] .workspace{padding-inline:14px;}html[data-theme='lantern-tide'] .workspace>.view{margin-top:116px;}
  .lt-material-light{opacity:.075;}.lt-corner{width:44px;height:44px;}
 }
 html[data-lantern-tide-motion='off'] :is(.lantern-tide-environment,.lantern-tide-perimeter) *,html[data-lantern-tide-cards='off'] :is(.lt-rim,.lt-rim::before,.lt-material-light,.lt-material-light::before,.lt-corner){animation-play-state:paused!important;}
 html[data-theme='lantern-tide'][data-theme-tuner-particles='off'] .lt-fireflies{display:none;}
 html[data-theme='lantern-tide'][data-theme-tuner-particles='low'] .lt-fireflies>span:nth-child(n+4){display:none;}
 html[data-theme='lantern-tide'][data-theme-tuner-decorative='off'] .lt-boat{display:none;}
 html[data-theme='lantern-tide'][data-theme-tuner-lighting='off'] :is(.lt-hanging>i,.lt-caustics,.lt-material-light,.lt-rim){display:none;}
 html[data-theme='lantern-tide'][data-theme-tuner-lighting='subtle'] :is(.lt-caustics,.lt-material-light){opacity:.04;}
 html[data-lantern-tide-overlay='on'] :is(.lantern-tide-perimeter,.lt-corner){visibility:hidden!important;}
 html[data-theme='lantern-tide'].world-focus-mode :is(.lt-fireflies,.lt-boat){opacity:0;}
 @media(prefers-reduced-motion:reduce){.lantern-tide-environment *,.lantern-tide-perimeter *,.lt-rim::before,.lt-material-light::before,.lt-corner{animation:none!important;}}
}
@media print{.lantern-tide-environment,.lantern-tide-perimeter,.lt-rim,.lt-material-light,.lt-corner{display:none!important;}}
@keyframes tide-lantern-light{from{opacity:.35;transform:scale(.93)}to{opacity:.8;transform:scale(1.1)}}
@keyframes tide-lantern-sway{from{rotate:-3deg}to{rotate:3deg}}
@keyframes tide-mist{from{transform:translate(-5%,1%) scale(1)}to{transform:translate(5%,-2%) scale(1.04)}}
@keyframes tide-ripple{from{transform:translateX(-6px) scaleX(.7);opacity:.18}to{transform:translateX(11px) scaleX(1.15);opacity:.5}}
@keyframes tide-reflection{from{transform:translateX(-5px) skewX(-7deg) scaleX(.7);opacity:.4}to{transform:translateX(9px) skewX(8deg) scaleX(1.1);opacity:.9}}
@keyframes tide-pool{from{transform:scale(1,.7) translateX(-3%)}to{transform:scale(1.15,.9) translateX(3%)}}
@keyframes tide-skiff{0%{transform:translateX(0) translateY(0) rotate(-1deg)}40%{transform:translateX(19vw) translateY(4px) rotate(1deg)}100%{transform:translateX(37vw) translateY(-2px) rotate(-1deg)}}
@keyframes tide-rain{0%,20%{transform:translateY(0);opacity:.6}85%{opacity:.4}100%{transform:translateY(110px);opacity:0}}
@keyframes tide-foreground{from{transform:translate(-2%,4px) scale(1.1,.85)}to{transform:translate(3%,-2px) scale(1.2,1)}}
@keyframes tide-firefly{0%,100%{opacity:0;transform:translate(0,0)}23%{opacity:.55}50%{opacity:.2;transform:translate(24px,-21px)}75%{opacity:.7;transform:translate(-9px,-37px)}}
@keyframes tide-rim{to{transform:rotate(360deg)}}
@keyframes tide-material{from{transform:translate(-8%,1%) rotate(-3deg)}to{transform:translate(16%,-2%) rotate(6deg)}}

@keyframes tide-corner-glint{from{opacity:.76}to{opacity:1}}


/* Source: theme-card-corners.css */
/* A few material details curl around measured card vertices, outside content. */
@media screen{
 .world-card-corners{position:absolute;inset:0;pointer-events:none!important;--corner-metal:color-mix(in srgb,var(--world-accent) 70%,var(--world-border));--corner-highlight:color-mix(in srgb,var(--world-highlight) 60%,#fff8d9);--corner-shadow:color-mix(in srgb,var(--world-deep) 76%,#17231c);--corner-leaf:color-mix(in srgb,var(--world-accent-secondary) 70%,var(--world-deep));--corner-leaf-light:color-mix(in srgb,var(--world-accent-secondary) 50%,var(--world-elevated));}
 .world-card-corners *{pointer-events:none!important;}
 .world-card-corners[data-obscured='yes'],html.world-focus-mode .world-card-corners{visibility:hidden;}
 .wc-corner{position:absolute;display:block;filter:drop-shadow(1px 3px 1.5px color-mix(in srgb,var(--corner-shadow) 56%,transparent));transition:opacity .25s ease;}
 .wc-corner[data-settling='yes']{opacity:0;}
 .wc-art{display:block;width:100%;height:100%;overflow:visible;transform-origin:50% 50%;}
 .wc-corner[data-corner='bl'] .wc-art{transform:scaleY(-1);}
 .wc-corner[data-corner='tr'] .wc-art{transform:scaleX(-1);}
 .wc-corner[data-corner='br'] .wc-art{transform:scale(-1);}
 .wc-leaf{transform-box:fill-box;transform-origin:100% 100%;animation:corner-leaf-sway calc(17s / var(--tuner-motion-speed,1)) ease-in-out var(--corner-phase,-5s) infinite;}
 .wc-leaf:nth-of-type(even){animation-duration:calc(23s / var(--tuner-motion-speed,1));animation-delay:calc(var(--corner-phase,-5s) - 6s);}
 .wc-glint{animation:corner-glint calc(21s / var(--tuner-motion-speed,1)) ease-in-out var(--corner-phase,-7s) infinite;}
 .wc-ink{animation:corner-material-light calc(29s / var(--tuner-motion-speed,1)) ease-in-out var(--corner-phase,-9s) infinite;}
 .wc-corner[data-focused='yes']{opacity:.45;}
 html[data-theme='aster'] .world-card-corners{--corner-metal:#b89146;--corner-highlight:#fff1b4;--corner-shadow:#193a24;--corner-leaf:#407546;--corner-leaf-light:#a2b77d;}
 html[data-theme='aster'][data-mode='dark'] .world-card-corners{--corner-metal:#c79974;--corner-highlight:#cef8e8;--corner-shadow:#073133;--corner-leaf:#3b8c79;--corner-leaf-light:#82d9af;}
 html[data-mode='dark'] .wc-corner{filter:drop-shadow(1px 3px 2px #001017b3);}
 html[data-trim-cards='off'] .world-card-corners *,html[data-aster-cards='off'] .world-card-corners *,html.world-page-hidden .world-card-corners *{animation-play-state:paused!important;}
 @media(prefers-reduced-motion:reduce){.world-card-corners *{animation:none!important;}}
}
@keyframes corner-leaf-sway{0%,100%{rotate:-1deg}47%{rotate:2.8deg}}
@keyframes corner-glint{0%,100%{opacity:.6;filter:brightness(.94)}53%{opacity:1;filter:brightness(1.16)}}
@keyframes corner-material-light{0%,100%{filter:brightness(.96)}51%{filter:brightness(1.1)}}
@media print{.world-card-corners{display:none!important;}}


/* Source: phenix-block.css */
/* Original Phenix Block interpretation. Architecture references and date
   conflicts are documented in PHENIX-HISTORY.md; this is not an archival view. */
@media screen {
 html[data-world='phenix-1873'] {
  --ph-art:url('/phenix-block-day.webp');
  --ph-stone:#b2b9b5; --ph-mortar:#6d7774; --ph-ivory:#f9f3e7;
  --ph-walnut:#49362c; --ph-metal:#81603c; --ph-glow:#e1b470;
  --ph-scene-opacity:.14;
  --cine-material:linear-gradient(125deg,color-mix(in srgb,var(--world-highlight) 5%,var(--world-surface)),var(--world-surface) 48%,var(--world-elevated));
 }
 html[data-world='phenix-1873'][data-mode='dark'] {
  --ph-art:url('/phenix-block-night.webp');
  --ph-stone:#33464e; --ph-mortar:#1b2b31; --ph-ivory:#d0c4ac;
  --ph-walnut:#251d19; --ph-metal:#d5b077; --ph-glow:#ffd495;
  --ph-scene-opacity:.13;
 }
 /* A real architectural rhythm replaces the former invented map and arches. */
 html[data-world='phenix-1873'] :is(.phenix-plans,.phenix-elevation,.phenix-memory,.phenix-distant-window,.ph-river,.ph-old-floor,.ph-ledger,.ph-date-fragments,.ph-night-windows,.ph-time-layer) {display:none!important;}
 .ph-building-scene {inset:0; background-image:var(--ph-art);background-size:cover;background-position:right top;opacity:var(--ph-scene-opacity);mask-image:linear-gradient(90deg,transparent 12%,black 75%),linear-gradient(black,transparent 88%);mask-composite:intersect;transform:translate(var(--phenix-x,0px),var(--phenix-y,0px)) scale(1.025);}
 .ph-window-warmth {right:7%;top:7%;width:20%;height:55%;background:radial-gradient(ellipse,var(--ph-glow),transparent 67%);opacity:.06;}
 html[data-world='phenix-1873'][data-background-animations='on'] .ph-window-warmth {animation:ph-occupied-glow calc(19s / var(--tuner-motion-speed,1)) ease-in-out -6s infinite!important;}
 html[data-world='phenix-1873'] .phenix-light {opacity:.35; background:linear-gradient(115deg,transparent 28%,color-mix(in srgb,var(--ph-glow) 16%,transparent) 42%,transparent 60%);}
 html[data-world='phenix-1873'] .phenix-history .ph-survey {inset:auto 3% 3% auto;width:280px;height:300px;opacity:.065;}
 html[data-world='phenix-1873'] .ph-survey svg {stroke-width:1.4;}
 html[data-world='phenix-1873'] .sidebar {
  background:linear-gradient(110deg,color-mix(in srgb,var(--world-surface) 97%,var(--ph-stone)),var(--world-elevated))!important;
  border:0!important;border-right:1px solid var(--world-border)!important;
  box-shadow:inset -4px 0 var(--world-surface),inset -5px 0 color-mix(in srgb,var(--ph-metal) 38%,transparent),6px 0 24px -20px var(--world-deep)!important;
 }
 html[data-world='phenix-1873'] .brand {border-bottom:3px double color-mix(in srgb,var(--ph-metal) 48%,transparent);padding-bottom:20px;}
 html[data-world='phenix-1873'] .brand strong {font-family:'Sentient',Georgia,serif;font-size:23px;letter-spacing:.015em;}
 html[data-world='phenix-1873'] .topbar {background:linear-gradient(105deg,var(--world-surface),var(--world-elevated))!important;border:0!important;border-bottom:3px double color-mix(in srgb,var(--ph-metal) 62%,transparent)!important;box-shadow:0 8px 20px -18px var(--world-deep)!important;}
 html[data-world='phenix-1873'] .topbar::before {opacity:.06;background:repeating-linear-gradient(90deg,transparent 0 84px,var(--world-accent) 85px,transparent 86px)!important;animation:none!important;}
 html[data-world='phenix-1873'] .topbar h1::after {content:'WEST MARKET SQUARE  ·  BANGOR';font-size:8px;letter-spacing:.18em;}
 html[data-world='phenix-1873'] .nav-item {border-bottom-color:color-mix(in srgb,var(--ph-metal) 13%,transparent)!important;min-height:43px;}
 html[data-world='phenix-1873'] .nav-item.active {background:linear-gradient(90deg,color-mix(in srgb,var(--world-accent) 11%,var(--world-surface)),var(--world-surface))!important;box-shadow:inset 3px 0 var(--world-accent),inset 0 -1px color-mix(in srgb,var(--world-accent) 40%,transparent)!important;}
 html[data-world='phenix-1873'] .world-nav-icon {background:linear-gradient(135deg,var(--world-surface),var(--world-elevated));border-radius:3px;}
 html[data-world='phenix-1873'] .housekeeper-greeting {
  position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  text-align:left;min-height:222px;width:100%!important;max-width:100%!important;margin:12px 0 24px;padding:24px 28px;
  border-bottom:1px solid color-mix(in srgb,var(--ph-metal) 35%,transparent);
 }
 html[data-world='phenix-1873'][data-theme] .housekeeper-greeting::before {
  content:''!important;position:absolute;z-index:-1;inset:-12px -18px 0 32%;background:var(--ph-art) right top/cover no-repeat;
  mask-image:linear-gradient(90deg,transparent,black 28%,black 88%,transparent);
  pointer-events:none;opacity:.9;
 }
 html[data-world='phenix-1873'] .housekeeper-greeting::after {content:'';position:absolute;left:28px;bottom:36px;width:48px;height:3px;border-block:1px solid var(--ph-metal);background:none;pointer-events:none;}
 html[data-world='phenix-1873'] .greeting-salutation {font-size:clamp(23px,2.1vw,32px);text-shadow:0 1px 5px var(--world-surface);}
 html[data-world='phenix-1873'] .greeting-name {font-size:clamp(26px,2.6vw,39px);max-width:54%;width:max-content!important;text-wrap:balance;text-shadow:0 1px 5px var(--world-surface);animation:none!important;}
 html[data-world='phenix-1873'] :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card) {box-shadow:0 9px 25px -19px var(--world-deep),0 2px 5px -3px var(--world-deep)!important;}
 html[data-world='phenix-1873'] :is(.panel,.ops-panel,.metric,.room-card,.room-list-row,.strip-room-row,.summary-room-row,.employee-bubble,.prod-score-card,.summary-card,.metric-card)::before {border-color:color-mix(in srgb,var(--world-border) 58%,var(--world-elevated))!important;}
 html[data-world='phenix-1873'] .metric::before {background:linear-gradient(130deg,var(--world-surface) 65%,color-mix(in srgb,var(--ph-stone) 16%,var(--world-elevated)))!important;}
 html[data-world='phenix-1873'] .metric::after {inset:6px 18px auto!important;opacity:.36!important;}
 html[data-world='phenix-1873'] :is(.panel-head h2,.section-heading,.room-number,.summary-room-number) {font-family:'Sentient',Georgia,serif!important;}
 html[data-world='phenix-1873'] .button.primary {background:var(--ph-walnut)!important;color:#fff3dc!important;border-color:var(--ph-metal)!important;}
 html[data-world='phenix-1873'] :is(input,textarea,select) {background:var(--world-surface)!important;color:var(--world-text)!important;}
 html[data-world='phenix-1873'] .ph-card-history {clip-path:var(--cine-shape);opacity:.7;}
 .ph-lintel-corner {position:absolute;right:7px;top:8px;width:37px;height:24px;color:var(--ph-metal);opacity:.34;}
 .ph-lintel-corner svg {width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1;}
 .ph-lintel-corner::after {content:'';position:absolute;right:2px;top:16px;width:3px;height:3px;border:1px solid currentColor;border-radius:50%;}
 html[data-world='phenix-1873'] .ph-vault-memory {right:9px;top:auto;bottom:5px;width:68px;opacity:.09;overflow:hidden;}
 html[data-world='phenix-1873'] .ph-vault-circle {border-width:2px;background:linear-gradient(135deg,transparent,color-mix(in srgb,var(--ph-metal) 15%,transparent));outline-offset:-10px;box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--ph-metal) 15%,transparent);}
 html[data-world='phenix-1873'] .ph-vault-radials {mask:none;background:none;border:1px dotted var(--ph-metal);}
 html[data-world='phenix-1873'] .theme-perimeter :is(.to-side,.to-compact-body) {filter:drop-shadow(1px 2px 1px var(--world-deep));}
 html[data-world='phenix-1873'] .theme-perimeter .to-cap {opacity:.8;}
 html[data-world='phenix-1873'] :is(dialog,.notification-panel,.room-status-menu) {background:var(--world-surface)!important;color:var(--world-text)!important;}
 html[data-world='phenix-1873'] .phenix-directory-light {z-index:3;}
 html[data-world='phenix-1873']:has(dialog[open],.room-status-menu:not([hidden]),.notification-panel:not([hidden]),#mobile-nav-sheet:not([hidden])) :is(.phenix-directory-light,.phenix-passage,.ph-lintel-corner,.ph-vault-memory) {visibility:hidden;}
 html[data-world='phenix-1873'][data-theme-tuner-lighting='off'] :is(.ph-window-warmth,.phenix-light,.phenix-dust) {display:none;}
 html[data-world='phenix-1873'][data-theme-tuner-background] .ph-building-scene {opacity:calc(var(--ph-scene-opacity) * var(--tuner-bg-visibility-number,1) * var(--tuner-bg-dimming-number,1));}
 html[data-world='phenix-1873'][data-theme-tuner-background] :is(.ph-building-scene,.housekeeper-greeting::before) {filter:brightness(var(--tuner-bg-brightness-number,1)) saturate(var(--tuner-saturation,1)) contrast(var(--tuner-contrast,1));}
 html[data-world='phenix-1873'][data-theme-tuner-particles='off'] .phenix-dust {display:none;}
 html[data-world='phenix-1873'][data-theme-tuner-motion='off'] :is(.phenix-atmosphere *,.phenix-passage *,.ph-card-history *,.ph-number-polish) {animation:none!important;}
 html[data-world='phenix-1873'][data-theme-tuner-motion='off'] .phenix-passage {display:none;}
 html[data-world='phenix-1873'].world-focus-mode :is(.ph-building-scene,.housekeeper-greeting::before) {opacity:.12;}
 /* Theme previews show the same original material as the selected world. */
 .world-preview[data-world='phenix-1873'] .world-portal-art {background:url('/phenix-block-day.webp') right top/cover no-repeat!important;opacity:.85!important;}
 .world-preview[data-world='phenix-1873'][data-mode='dark'] .world-portal-art {background-image:url('/phenix-block-night.webp')!important;}
 @media(max-width:760px) {
  html[data-world='phenix-1873'] .housekeeper-greeting {min-height:158px;padding:20px 12px;margin:8px 0 18px;justify-content:center;}
  html[data-world='phenix-1873'] .housekeeper-greeting::before {inset:-8px -9px 0 12%;background-position:76% top;opacity:.75;mask-image:linear-gradient(90deg,transparent,black 58%);}
  html[data-world='phenix-1873'] .greeting-salutation {font-size:23px;}
  html[data-world='phenix-1873'] .greeting-name {font-size:29px;max-width:74%;}
  html[data-world='phenix-1873'] .housekeeper-greeting::after {left:12px;bottom:15px;width:38px;}
  html[data-world='phenix-1873'] .topbar h1::after {font-size:7px;letter-spacing:.1em;max-width:155px;line-height:1.7;}
  html[data-world='phenix-1873'] .ph-building-scene {background-position:68% top;opacity:.10;mask-image:linear-gradient(black,transparent 72%);}
  html[data-world='phenix-1873'] .phenix-history .ph-survey {width:150px;height:180px;opacity:.04;}
  html[data-world='phenix-1873'] .ph-lintel-corner {width:29px;height:20px;right:5px;}
  html[data-world='phenix-1873'] .ph-vault-memory {width:52px;}
  @media(max-width:380px) {
   html[data-world='phenix-1873'] .topbar h1::after {content:'BANGOR, MAINE';white-space:nowrap;letter-spacing:.08em;}
  }
 }
}
@keyframes ph-occupied-glow {0%,100%{opacity:.025;transform:translateY(0);}48%{opacity:.14;transform:translateY(8px);}72%{opacity:.07;transform:translateY(3px);}}
html[data-background-animations='off'] .ph-window-warmth {animation:none!important;}
html.app-page-hidden .ph-window-warmth {animation-play-state:paused!important;}
@media(prefers-reduced-motion:reduce) {.ph-window-warmth {animation:none!important;}}
@media print {.ph-building-scene,.ph-window-warmth,.ph-lintel-corner {display:none!important;}}


/* Source: story-worlds.css */
/* Original painted story plates with restrained, separate moving planes. */
@media screen{
 html[data-story-world][data-world][data-theme][data-mode] body,html[data-story-world][data-world][data-theme][data-mode] .workspace{background:transparent!important;}
 html[data-story-world][data-world][data-theme][data-mode][data-animation-style] .world-atmosphere{display:block!important;opacity:1!important;}
 html[data-story-world] .world-atmosphere>:not(.story-environment),html[data-story-world] .cinema-atmosphere,html[data-story-world] .nook-light-plane{display:none!important;}
 .story-environment{position:absolute;inset:0;overflow:hidden;contain:strict;pointer-events:none!important;}
 .story-environment *{pointer-events:none!important;}
 .sw-scene{position:absolute;inset:0;background-size:cover;background-position:center;}
 .sw-night{display:none;}html[data-story-world][data-mode='dark'] .sw-day{display:none;}html[data-story-world][data-mode='dark'] .sw-night{display:block;}
 .sw-depth-light{position:absolute;inset:0;overflow:hidden;opacity:.22;}
 .sw-depth-light>i{position:absolute;top:-35%;left:66%;width:14%;height:180%;background:linear-gradient(90deg,transparent,var(--sw-light,#b3e4ef),transparent);opacity:.22;transform-origin:top center;transform:rotate(18deg);animation:story-shaft calc(24s / var(--tuner-motion-speed,1)) ease-in-out -8s infinite alternate;}
 .sw-depth-light>i+ i{left:33%;width:8%;animation-delay:-18s;animation-duration:calc(31s / var(--tuner-motion-speed,1));}
 .sw-moving-world,.sw-air{position:absolute;inset:0;overflow:hidden;}
 .story-environment[data-motion='off'] *,.story-environment[data-motion='off'] *::before,html[data-story-world][data-story-cards='off'] .world-card-corners *{animation-play-state:paused!important;}
 html[data-story-world][data-theme-tuner-lighting='off'] .sw-depth-light{display:none;}
 html[data-story-world] .workspace>.view{margin-top:92px;}
 html[data-world][data-theme][data-story-world] .housekeeper-greeting{width:fit-content;max-width:100%;justify-self:center;padding:10px 24px;border:1px solid var(--world-border);border-radius:var(--world-control);background:color-mix(in srgb,var(--world-surface) 96%,transparent)!important;border-color:var(--world-border)!important;box-shadow:0 7px 24px -17px #071729cc!important;color:var(--world-accent)!important;text-shadow:none;}
 html[data-story-world] .housekeeper-greeting em{color:var(--world-accent)!important;text-shadow:none;animation:none;}
 html[data-story-world] :is(.panel,.ops-panel,.metric,.summary-card){animation:none!important;}
 /* Exposed work headings need their own reading plate beside the artwork. */
 html[data-world][data-theme][data-story-world] #app-view .view :is(.room-inspection-group,.room-list-sort-bar,.checkout-history-bar,.myrooms-toolbar,.section-actions){background:var(--surface-dense)!important;border:1px solid var(--surface-edge);border-radius:var(--world-control);padding:12px;color:var(--world-text)!important;box-shadow:var(--surface-shadow);}
 html[data-world][data-theme][data-story-world] #app-view .view :is(.room-inspection-group-head,.room-list-floor-head,.room-list-sort-bar,.checkout-history-bar) :is(h3,strong,.muted){color:var(--world-text)!important;text-shadow:none;}
 html[data-story-world] .room-list-count{clip-path:none!important;border-radius:999px!important;display:inline-grid;place-items:center;min-width:1.5em;padding:0 4px;background:var(--world-elevated);color:var(--world-text);line-height:1.4;font-size:.85em;}
 html[data-story-world] .metric>span,html[data-story-world] .metric small{color:var(--surface-secondary)!important;}
 @media(min-width:1280px){html[data-story-world] .workspace{padding-right:clamp(110px,11vw,190px);}}
 @media(max-width:700px){html[data-story-world] .workspace{padding-inline:14px;}html[data-story-world] .workspace>.view{margin-top:110px;}.sw-scene{background-position:65% center;}.sw-depth-light{opacity:.14;}}
 html[data-story-world] .sw-companion{position:absolute;left:var(--fairy-x);top:var(--fairy-y);width:31px;height:24px;opacity:.75;filter:drop-shadow(0 0 7px #bceeff);animation:story-companion calc(var(--fairy-period) / var(--tuner-motion-speed,1)) ease-in-out var(--fairy-delay) infinite alternate;}
 html[data-story-world] .sw-companion svg{width:100%;height:100%;}
 html[data-story-world][data-theme-tuner-particles='off'] .sw-companion{display:none;}
 @media(max-width:700px){html[data-story-world] .sw-companion{width:24px;height:19px;}html[data-story-world] .sw-companion:nth-last-child(2){display:none;}}
 @media(prefers-reduced-motion:reduce){.story-environment *{animation:none!important;}}
}
@media print{.story-environment{display:none!important;}}
@keyframes story-shaft{from{transform:rotate(12deg) translateX(-20px);opacity:.16}to{transform:rotate(18deg) translateX(20px);opacity:.3}}
@keyframes story-companion{0%{translate:-11px 7px;rotate:-5deg;opacity:.6}50%{translate:4px -12px;rotate:6deg;opacity:.85}100%{translate:22px 4px;rotate:-3deg;opacity:.65}}


/* Source: elemental-story.css */
@media screen{
 html[data-story-world='elemental-metropolis']{--sw-light:#a2eaf0;--trim-metal:#df812e;--trim-highlight:#ffdaa0;--trim-shadow:#294455;}
 html[data-story-world='elemental-metropolis'] .sw-day{background-image:url('/story-elemental-day.jpg?v=1');}
 html[data-story-world='elemental-metropolis'] .sw-night{background-image:url('/story-elemental-night.jpg?v=1');}
 html[data-world][data-theme][data-story-world='elemental-metropolis'][data-mode='dark']{--world-background:#102038;--world-deep:#071323;--world-surface:#162a43;--world-elevated:#20374f;--world-accent:#f3b15c;--world-accent-secondary:#7fd6dd;--world-border:#51758e;--world-highlight:#ffe1ac;}
 html[data-world][data-theme][data-story-world='elemental-metropolis'][data-mode='light']{--world-background:#e1e9ef;--world-deep:#c8d8e2;--world-surface:#fff7e8;--world-elevated:#ebdcc6;--world-accent:#9e4719;--world-accent-secondary:#226e86;--world-border:#81979f;--world-highlight:#8e451c;}
 html[data-story-world='elemental-metropolis'][data-world][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel){background:color-mix(in srgb,var(--world-surface) 95%,transparent)!important;border-color:var(--world-border)!important;box-shadow:0 12px 28px -18px #07182ecc,inset 0 1px #f6e5c65c!important;}
 html[data-story-world='elemental-metropolis'] :is(.panel,.ops-panel,.metric,.summary-card){background:linear-gradient(120deg,var(--world-surface),color-mix(in srgb,var(--world-elevated) 38%,var(--world-surface)))!important;box-shadow:0 16px 30px -20px #08192deb,inset 3px 0 var(--world-accent-secondary),inset 0 1px color-mix(in srgb,var(--world-highlight) 44%,transparent)!important;border-left:1px solid var(--world-border)!important;}
 html[data-story-world='elemental-metropolis'] .panel>.panel-head{background:linear-gradient(110deg,color-mix(in srgb,var(--world-accent) 12%,var(--world-surface)),var(--world-elevated))!important;border-bottom:1px solid var(--world-border)!important;}
 html[data-story-world='elemental-metropolis'] :is(.panel,.metric)::after{display:none!important;}
 .world-preview[data-world='elemental-metropolis'] .world-portal-art{background:url('/story-elemental-day.jpg?v=1') center/cover!important;opacity:1!important;mask:none!important;transform:none!important;}
 .world-preview[data-world='elemental-metropolis'][data-mode='dark'] .world-portal-art{background-image:url('/story-elemental-night.jpg?v=1')!important;}
}

@media screen{
 .sw-vehicle{position:absolute;left:-8%;top:var(--route-y);width:90px;transform:scale(var(--vehicle-scale));filter:drop-shadow(0 2px 2px #0717298a);animation:story-flight calc(var(--flight) / var(--tuner-motion-speed,1)) linear var(--delay) infinite;}
 .sw-vehicle svg{display:block;width:100%;height:auto;}.sw-vehicle:nth-child(even){animation-direction:reverse;--sw-taxi:#70bbc2;}
 @media(max-width:700px){html[data-story-world='elemental-metropolis'] .sw-vehicle{width:67px;}}
}
@keyframes story-flight{from{translate:-10vw 0}to{translate:118vw -42px}}


/* Source: castle-story.css */
@media screen{
 html[data-world][data-theme][data-story-world='enchanted-castle'][data-mode='light']{--world-background:#dce7ee;--world-deep:#d1dce1;--world-surface:#fff9eb;--world-elevated:#e8dbc7;--world-text:#233d4f;--world-secondary:#526a78;--world-accent:#286787;--world-accent-secondary:#7e483e;--world-border:#899f9f;--world-highlight:#225778;--trim-metal:#b88c47;--trim-highlight:#fff0b0;--trim-shadow:#604529;--trim-leaf:#476243;--trim-leaf-light:#8ca572;--sw-light:#fff0c3;}
 html[data-world][data-theme][data-story-world='enchanted-castle'][data-mode='dark']{--world-background:#101c38;--world-deep:#070f25;--world-surface:#192c49;--world-elevated:#293c57;--world-text:#fff6dc;--world-secondary:#d4dce5;--world-accent:#e8bb66;--world-accent-secondary:#7aaddb;--world-border:#8a876c;--world-highlight:#fff2b7;--trim-metal:#cd9c4b;--trim-highlight:#fff1c5;--trim-shadow:#4c371d;--trim-leaf:#3d5f4d;--trim-leaf-light:#8aa17d;--sw-light:#f8d188;}
 html[data-story-world='enchanted-castle'] .sw-day{background-image:url('/story-castle-day.jpg?v=1');}
 html[data-story-world='enchanted-castle'] .sw-night{background-image:url('/story-castle-night.jpg?v=1');}
 html[data-story-world='enchanted-castle'][data-world][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel){background:color-mix(in srgb,var(--world-surface) 96%,transparent)!important;border-color:var(--world-border)!important;box-shadow:0 12px 25px -18px #172740ab,inset 0 1px color-mix(in srgb,var(--world-highlight) 42%,transparent)!important;}
 html[data-story-world='enchanted-castle'] .panel-head::before{animation:none!important;}
 html[data-story-world='enchanted-castle'] .to-side{aspect-ratio:110/330;}
 html[data-story-world='enchanted-castle'] .sw-corner{width:57px;height:36px;}
 html[data-story-world='enchanted-castle'] .sw-candle-glow{position:absolute;right:7%;top:6%;width:23%;height:33%;border-radius:50%;background:radial-gradient(ellipse,#ffc97635,transparent 68%);animation:castle-living-candle calc(13s / var(--tuner-motion-speed,1)) ease-in-out -7s infinite;}
 html[data-story-world='enchanted-castle'][data-mode='light'] .sw-candle-glow{display:none;}
 html[data-story-world='enchanted-castle'] .sw-petal{position:absolute;left:var(--petal-x);top:-20px;width:7px;height:10px;border-radius:85% 10% 70% 20%;background:#b9434d;opacity:.55;animation:castle-rose-petal calc(var(--petal-period) / var(--tuner-motion-speed,1)) linear var(--petal-delay) infinite;}
 html[data-story-world='enchanted-castle'][data-mode='dark'] .sw-petal{opacity:.25;}
 html[data-story-world='enchanted-castle'][data-theme-tuner-particles='off'] .sw-petal{display:none;}
 .world-preview[data-world='enchanted-castle'] .world-portal-art{background:url('/story-castle-day.jpg?v=1') center/cover!important;opacity:1!important;mask:none!important;transform:none!important;}
 .world-preview[data-world='enchanted-castle'][data-mode='dark'] .world-portal-art{background-image:url('/story-castle-night.jpg?v=1')!important;}
 @media(max-width:700px){html[data-story-world='enchanted-castle'] .sw-corner{width:43px;height:28px;}html[data-story-world='enchanted-castle'] .sw-day{background-position:64% center;}html[data-story-world='enchanted-castle'] .sw-night{background-position:72% center;}.sw-petal:nth-child(3){display:none;}}
}
@keyframes castle-living-candle{0%,100%{opacity:.4;transform:scale(.96)}50%{opacity:.75;transform:scale(1.04)}}
@keyframes castle-rose-petal{from{translate:0 -5vh;rotate:10deg}to{translate:-40px 107vh;rotate:100deg}}


/* Source: lunar-story.css */
@media screen{
 html[data-world][data-theme][data-story-world='lunar-cyborg'][data-mode='light']{--world-background:#e6e6d6;--world-deep:#bccac0;--world-surface:#fff8e9;--world-elevated:#e0e4d2;--world-text:#233d39;--world-secondary:#526762;--world-accent:#285d52;--world-accent-secondary:#965b32;--world-border:#899e8e;--world-highlight:#3e645b;--trim-metal:#b78c5e;--trim-highlight:#ffefc9;--trim-shadow:#4b4130;--trim-leaf:#467568;--trim-leaf-light:#9fd4c0;--sw-light:#fff0cc;}
 html[data-world][data-theme][data-story-world='lunar-cyborg'][data-mode='dark']{--world-background:#101f22;--world-deep:#0b1415;--world-surface:#1c3030;--world-elevated:#2b4341;--world-text:#f9f2df;--world-secondary:#cedcd2;--world-accent:#a9d9c9;--world-accent-secondary:#eac590;--world-border:#799485;--world-highlight:#e2ead7;--trim-metal:#c3925f;--trim-highlight:#f8e9bd;--trim-shadow:#49452f;--trim-leaf:#558e77;--trim-leaf-light:#b5ddca;--sw-light:#dfedc7;}
 html[data-story-world='lunar-cyborg'] .sw-day{background-image:url('/story-lunar-day.jpg?v=1');}
 html[data-story-world='lunar-cyborg'] .sw-night{background-image:url('/story-lunar-night.jpg?v=1');}
 html[data-story-world='lunar-cyborg'][data-world][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel){background:color-mix(in srgb,var(--world-surface) 96%,transparent)!important;border-color:var(--world-border)!important;box-shadow:0 12px 25px -18px #172a24ab,inset 0 1px color-mix(in srgb,var(--world-highlight) 42%,transparent)!important;}
 html[data-story-world='lunar-cyborg'] .panel-head::before{animation:none!important;}
 html[data-story-world='lunar-cyborg'] .sw-depth-light{opacity:.12;}
 html[data-story-world='lunar-cyborg'] .sw-market-lantern{position:absolute;right:6%;top:27%;width:26%;height:36%;border-radius:50%;background:radial-gradient(ellipse,#ffc37128,transparent 69%);animation:lunar-lantern calc(18s / var(--tuner-motion-speed,1)) ease-in-out -6s infinite;}
 html[data-story-world='lunar-cyborg'] .sw-repair-light{position:absolute;left:7%;top:40%;width:19%;height:32%;border-radius:50%;background:radial-gradient(ellipse,#a0dfc719,transparent 64%);animation:lunar-repair calc(26s / var(--tuner-motion-speed,1)) ease-in-out -12s infinite;}
 html[data-story-world='lunar-cyborg'] .sw-market-haze{position:absolute;left:56%;top:24%;width:34%;height:23%;background:radial-gradient(ellipse,#f7efd816,transparent 67%);animation:lunar-haze calc(37s / var(--tuner-motion-speed,1)) ease-in-out -14s infinite alternate;}
 html[data-story-world='lunar-cyborg'][data-theme-tuner-lighting='off'] :is(.sw-market-lantern,.sw-repair-light){display:none;}
 .world-preview[data-world='lunar-cyborg'] .world-portal-art{background:url('/story-lunar-day.jpg?v=1') center/cover!important;opacity:1!important;mask:none!important;transform:none!important;}
 .world-preview[data-world='lunar-cyborg'][data-mode='dark'] .world-portal-art{background-image:url('/story-lunar-night.jpg?v=1')!important;}
 @media(max-width:700px){html[data-story-world='lunar-cyborg'] .sw-scene{background-position:63% center;}html[data-story-world='lunar-cyborg'] .sw-market-lantern{right:0;width:45%;}}
}
@keyframes lunar-lantern{0%,100%{opacity:.35;transform:scale(.98)}50%{opacity:.85;transform:scale(1.04)}}
@keyframes lunar-repair{0%,100%{opacity:.3}50%{opacity:.7}}
@keyframes lunar-haze{from{translate:-12px 0;opacity:.35}to{translate:12px 8px;opacity:.7}}


/* Source: grove-story.css */
@media screen{
 html[data-world='enchanted-grove'] { --theme-badge-radius: 50% 12px 50% 12px; --theme-badge-clip: polygon(50% 0, 62% 35%, 100% 50%, 63% 64%, 50% 100%, 37% 64%, 0 50%, 37% 35%); }
 html[data-world][data-theme][data-story-world='enchanted-grove'][data-mode='light']{--world-background:#dae7cd;--world-deep:#bfd0ac;--world-surface:#fff8e5;--world-elevated:#e5e5c9;--world-text:#2c442c;--world-secondary:#576a4b;--world-accent:#366337;--world-accent-secondary:#75603a;--world-border:#96a277;--world-highlight:#496d3a;--trim-metal:#9e7f4b;--trim-highlight:#f7ebbc;--trim-shadow:#35472b;--trim-leaf:#426540;--trim-leaf-light:#a4c27b;--sw-light:#fff6ce;}
 html[data-world][data-theme][data-story-world='enchanted-grove'][data-mode='dark']{--world-background:#14291d;--world-deep:#0a1b13;--world-surface:#23392a;--world-elevated:#334c37;--world-text:#f9f5df;--world-secondary:#d1dbc3;--world-accent:#c9ddb0;--world-accent-secondary:#e9c994;--world-border:#809376;--world-highlight:#d6f0d1;--trim-metal:#b99656;--trim-highlight:#e5f7d9;--trim-shadow:#34462c;--trim-leaf:#416445;--trim-leaf-light:#9dc687;--sw-light:#c3eddc;}
 html[data-story-world='enchanted-grove'] .sw-day{background-image:url('/story-grove-day.jpg?v=1');}
 html[data-story-world='enchanted-grove'] .sw-night{background-image:url('/story-grove-night.jpg?v=1');}
 html[data-story-world='enchanted-grove'][data-world][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel){background:color-mix(in srgb,var(--world-surface) 96%,transparent)!important;border-color:var(--world-border)!important;box-shadow:0 12px 25px -18px #163619ab,inset 0 1px color-mix(in srgb,var(--world-highlight) 42%,transparent)!important;}
 html[data-story-world='enchanted-grove'] .to-side{aspect-ratio:110/330;}
 html[data-story-world='enchanted-grove'] .sw-corner{width:60px;height:38px;}
 html[data-story-world='enchanted-grove'] .sw-depth-light{opacity:.2;}
 html[data-story-world='enchanted-grove'] .sw-creek-reflection{position:absolute;left:31%;top:69%;width:30%;height:23%;border-radius:50%;background:repeating-linear-gradient(176deg,transparent 0 10px,#cdf6df1d 12px,transparent 13px 23px);mask:radial-gradient(ellipse,#000,transparent 65%);animation:grove-water calc(19s / var(--tuner-motion-speed,1)) ease-in-out -8s infinite alternate;}
 html[data-story-world='enchanted-grove'] .sw-village-window{position:absolute;right:7%;top:37%;width:17%;height:28%;background:radial-gradient(ellipse,#fbd79120,transparent 66%);animation:grove-window calc(17s / var(--tuner-motion-speed,1)) ease-in-out -7s infinite;}
 html[data-story-world='enchanted-grove'][data-mode='light'] .sw-village-window{display:none;}
 html[data-story-world='enchanted-grove'][data-theme-tuner-lighting='off'] :is(.sw-creek-reflection,.sw-village-window){display:none;}
 .world-preview[data-world='enchanted-grove'] .world-portal-art{background:url('/story-grove-day.jpg?v=1') center/cover!important;opacity:1!important;mask:none!important;transform:none!important;}
 .world-preview[data-world='enchanted-grove'][data-mode='dark'] .world-portal-art{background-image:url('/story-grove-night.jpg?v=1')!important;}
 @media(max-width:700px){html[data-story-world='enchanted-grove'] .sw-scene{background-position:69% center;}html[data-story-world='enchanted-grove'] .sw-corner{width:45px;height:29px;}html[data-story-world='enchanted-grove'] .sw-creek-reflection{left:0;width:40%;}}
}
@keyframes grove-water{from{translate:0 -3px;opacity:.4;scale:1 .98}to{translate:3px 3px;opacity:.75;scale:1 1.03}}
@keyframes grove-window{0%,100%{opacity:.35}50%{opacity:.75}}


/* Source: faelight-story.css */
@media screen{
 html[data-world='faelight-grove'] { --theme-badge-radius: 50% 10px 42% 13px; --theme-badge-clip: polygon(50% 0, 59% 31%, 100% 50%, 65% 61%, 50% 100%, 36% 64%, 0 50%, 39% 34%); }
 html[data-world][data-theme][data-story-world='faelight-grove'][data-mode='light']{--world-background:#dce3d8;--world-deep:#bfcac1;--world-surface:#f9f6e9;--world-elevated:#e0e7dc;--world-text:#2c413d;--world-secondary:#586a62;--world-accent:#3e6260;--world-accent-secondary:#65546f;--world-border:#94a69a;--world-highlight:#51625c;--trim-metal:#a28c66;--trim-highlight:#f1efe2;--trim-shadow:#38433c;--trim-leaf:#41604a;--trim-leaf-light:#94b291;--sw-light:#f2f4da;}
 html[data-world][data-theme][data-story-world='faelight-grove'][data-mode='dark']{--world-background:#142523;--world-deep:#0b1718;--world-surface:#243736;--world-elevated:#354b46;--world-text:#eef5e7;--world-secondary:#ccdacf;--world-accent:#b8dfd7;--world-accent-secondary:#d4c3e9;--world-border:#7d9990;--world-highlight:#d6ecdf;--trim-metal:#afa078;--trim-highlight:#dae9ef;--trim-shadow:#394741;--trim-leaf:#45634c;--trim-leaf-light:#9abda5;--sw-light:#c9e5e9;}
 html[data-story-world='faelight-grove'] .sw-day{background-image:url('/story-faelight-day.jpg?v=1');}
 html[data-story-world='faelight-grove'] .sw-night{background-image:url('/story-faelight-night.jpg?v=1');}
 html[data-story-world='faelight-grove'][data-world][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel){background:color-mix(in srgb,var(--world-surface) 96%,transparent)!important;border-color:var(--world-border)!important;box-shadow:0 12px 25px -18px #143132ab,inset 0 1px color-mix(in srgb,var(--world-highlight) 42%,transparent)!important;}
 html[data-story-world='faelight-grove'] .to-side{aspect-ratio:110/330;}
 html[data-story-world='faelight-grove'] .sw-corner{width:59px;height:38px;}
 html[data-story-world='faelight-grove'] .sw-depth-light{opacity:.15;}
 html[data-story-world='faelight-grove'] .sw-temple-fae{width:26px;height:20px;filter:drop-shadow(0 0 7px #c4b5ee);opacity:.6;}
 html[data-story-world='faelight-grove'] .sw-temple-fae svg{filter:hue-rotate(33deg);}
 html[data-story-world='faelight-grove'] .sw-temple-mist{position:absolute;left:39%;top:37%;width:49%;height:24%;background:radial-gradient(ellipse,#d2e1dc20,transparent 66%);animation:temple-mist calc(43s / var(--tuner-motion-speed,1)) ease-in-out -13s infinite alternate;}
 html[data-story-world='faelight-grove'] .sw-temple-reflection{position:absolute;left:42%;top:69%;width:29%;height:16%;border-radius:50%;background:repeating-linear-gradient(178deg,transparent 0 8px,#c0e0dd20 9px,transparent 10px 21px);mask:radial-gradient(ellipse,#000,transparent 67%);animation:temple-water calc(31s / var(--tuner-motion-speed,1)) ease-in-out -6s infinite alternate;}
 html[data-story-world='faelight-grove'][data-theme-tuner-lighting='off'] .sw-temple-reflection{display:none;}
 .world-preview[data-world='faelight-grove'] .world-portal-art{background:url('/story-faelight-day.jpg?v=1') center/cover!important;opacity:1!important;mask:none!important;transform:none!important;}
 .world-preview[data-world='faelight-grove'][data-mode='dark'] .world-portal-art{background-image:url('/story-faelight-night.jpg?v=1')!important;}
 @media(max-width:700px){html[data-story-world='faelight-grove'] .sw-scene{background-position:72% center;}html[data-story-world='faelight-grove'] .sw-corner{width:44px;height:29px;}html[data-story-world='faelight-grove'] .sw-temple-fae{width:23px;height:18px;}html[data-story-world='faelight-grove'] .sw-temple-reflection{left:0;width:45%;}}
}
@keyframes temple-mist{from{translate:-9px 3px;opacity:.4;scale:.98}to{translate:16px -4px;opacity:.7;scale:1.04}}
@keyframes temple-water{from{translate:0 -2px;opacity:.3;scale:1 .98}to{translate:2px 3px;opacity:.6;scale:1 1.02}}


/* Source: unwritten-wing.css */
/* Rainbound walnut, parchment and brass. Decoration never owns a touch target. */
@media screen {
 html[data-theme='the-unwritten-wing'][data-world][data-mode] body,html[data-theme='the-unwritten-wing'][data-world][data-mode] .workspace{background:transparent!important;}
 html[data-theme='the-unwritten-wing'][data-world][data-mode][data-animation-style] .world-atmosphere{display:block!important;opacity:var(--tuner-bg-visibility-number,1)!important;}
 html[data-theme='the-unwritten-wing'] .world-atmosphere>:not(.uw-environment){display:none!important;}
 html[data-theme='the-unwritten-wing'] .workspace-animation-decor{display:none!important;}
 html[data-theme='the-unwritten-wing']{--uw-light:#ffe2a9;--uw-metal:#92703a;--uw-shadow:#152431;--uw-lamp-opacity:.13;}
 html[data-theme='the-unwritten-wing'][data-mode='dark']{--uw-metal:#d2a868;--uw-lamp-opacity:.2;}
 .uw-environment{position:absolute;inset:0;overflow:hidden;contain:strict;pointer-events:none;}
 .uw-environment *,.uw-perimeter,.uw-perimeter *,.uw-rim,.uw-rim::before,.uw-corner,.uw-corner *{pointer-events:none!important;}
 .uw-plate{position:absolute;inset:0;background-size:cover;background-position:48% center;}
 .uw-day{background-image:url('/unwritten-wing-afternoon.webp?v=1');}
 .uw-night{background-image:url('/unwritten-wing-midnight.webp?v=1');opacity:0;}
 html[data-theme='the-unwritten-wing'][data-mode='dark'] .uw-night{opacity:1;}
 .uw-window-shadow{position:absolute;inset:-8%;background:linear-gradient(112deg,transparent 22%,#10233324 33%,transparent 50%,#071a2718 65%,transparent 79%);animation:unwritten-cloud-shadow calc(31s / var(--tuner-motion-speed,1)) ease-in-out -9s infinite alternate;}
 .uw-lamp-breath{position:absolute;inset:0;background:radial-gradient(ellipse at 90% 71%,#ffd38c66,transparent 17%),radial-gradient(ellipse at 37% 63%,#ffe9af55,transparent 10%),radial-gradient(ellipse at 58% 68%,#ffbf6855,transparent 13%);opacity:var(--uw-lamp-opacity);animation:unwritten-lamp calc(13s / var(--tuner-motion-speed,1)) ease-in-out -5s infinite;}
 .uw-rain{position:absolute;left:66%;right:1%;top:0;bottom:26%;opacity:.1;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 24% 87%,transparent);}
 .uw-rain>i{position:absolute;left:21%;top:-30%;width:1px;height:25%;background:linear-gradient(transparent,#daeeefaa,transparent);animation:unwritten-rain calc(11s / var(--tuner-motion-speed,1)) linear -4s infinite;}
 .uw-rain>i:nth-child(2){left:58%;animation-delay:-7s;animation-duration:calc(17s / var(--tuner-motion-speed,1));}.uw-rain>i:nth-child(3){left:84%;animation-delay:-10s;animation-duration:calc(23s / var(--tuner-motion-speed,1));}
 .uw-dust{position:absolute;left:34%;top:47%;width:24%;height:24%;opacity:.23;}
 .uw-dust>i{position:absolute;left:16%;top:68%;width:1px;height:1px;border-radius:50%;background:#f7e1b8;animation:unwritten-dust calc(23s / var(--tuner-motion-speed,1)) ease-in-out -7s infinite;}
 .uw-dust>i:nth-child(2){left:49%;top:32%;animation-delay:-13s;}.uw-dust>i:nth-child(3){left:71%;top:59%;animation-delay:-19s;}.uw-dust>i:nth-child(4){left:86%;top:78%;animation-delay:-4s;}
 .uw-perimeter{position:fixed;inset:0;z-index:3;contain:strict;overflow:hidden;}
 .uw-side{position:absolute;width:43px;}
 .uw-side[hidden],.uw-dock[hidden]{display:none!important;}
 .uw-carving,.uw-carving-light{position:absolute;inset:0;background:url('/unwritten-wing-pilaster.webp?v=1') center/100% 100% no-repeat;}
 .uw-carving-light{background:linear-gradient(120deg,transparent 20%,#ffe9a855 47%,transparent 69%);mask:url('/unwritten-wing-pilaster.webp?v=1') center/100% 100% no-repeat;animation:unwritten-brass-light calc(19s / var(--tuner-motion-speed,1)) ease-in-out -8s infinite;}
 .uw-dock{position:absolute;width:45px;height:30px;background:url('/unwritten-wing-bookplate.webp?v=1') center/contain no-repeat;}
 .uw-positioned{position:relative;}
 .uw-rim{position:absolute!important;inset:0;z-index:2;border-radius:inherit;padding:1px;overflow:hidden;box-sizing:border-box;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:calc(.55 * var(--tuner-glow-number,1));}
 .uw-rim::before{content:'';position:absolute;inset:-20% -90%;background:linear-gradient(110deg,transparent 22%,var(--uw-metal) 30%,var(--uw-light) 33%,transparent 38% 65%,var(--uw-metal) 70%,transparent 77%);animation:unwritten-rim-light calc(21s / var(--tuner-motion-speed,1)) ease-in-out var(--uw-phase,-4s) infinite alternate;}
 .uw-corner{position:absolute!important;left:-21px;top:-18px;width:20px;height:18px;z-index:3;background:url('/unwritten-wing-bookplate.webp?v=1') center/contain no-repeat;}
 .uw-corner>b,.uw-dock>i{position:absolute;inset:0;background:linear-gradient(125deg,transparent 20%,#fff0c466 45%,transparent 75%);mask:url('/unwritten-wing-bookplate.webp?v=1') center/contain no-repeat;animation:unwritten-brass-light calc(17s / var(--tuner-motion-speed,1)) ease-in-out -6s infinite;}
 html[data-theme='the-unwritten-wing'][data-mode='dark'] .uw-carving{filter:brightness(.8);}
 html[data-theme='the-unwritten-wing'] .panel>.panel-head::before{animation:none!important;opacity:.07;}
 @layer surface-material{
  html[data-theme='the-unwritten-wing'][data-world][data-mode] .housekeeper-greeting{background:color-mix(in srgb,var(--world-surface) 96%,transparent)!important;border-color:color-mix(in srgb,var(--world-border) 35%,transparent)!important;border-radius:var(--world-radius);}
 }
 html[data-theme='the-unwritten-wing'] .world-portal-art{mask:none;background:url('/unwritten-wing-midnight.webp?v=1') center/cover;opacity:.37;animation:none;}
 html[data-theme='the-unwritten-wing'] .world-portal{background:var(--world-deep);}
 html[data-world='the-unwritten-wing'] .world-choice .world-selector-icon{background:var(--world-elevated);}
 html[data-unwritten-obscured='yes'] :is(.uw-perimeter,.uw-rim,.uw-corner){visibility:hidden;}
 html[data-unwritten-environment='off'] .uw-environment *,html[data-unwritten-cards='off'] :is(.uw-rim::before,.uw-carving-light,.uw-corner>b,.uw-dock>i){animation-play-state:paused!important;}
 html[data-theme='the-unwritten-wing'][data-theme-tuner-particles='off'] .uw-dust{display:none;}
 html[data-theme='the-unwritten-wing'][data-theme-tuner-lighting='off'] :is(.uw-lamp-breath,.uw-carving-light,.uw-corner>b,.uw-dock>i){opacity:0;}
 html[data-theme='the-unwritten-wing'][data-theme-tuner-lighting='subtle'] .uw-lamp-breath{opacity:.06;}
 html[data-theme='the-unwritten-wing'][data-theme-tuner-lighting='strong'] .uw-lamp-breath{opacity:.25;}
 @media(max-width:700px){.uw-plate{background-position:57% center;}.uw-corner{left:-19px;top:-16px;width:18px;height:16px;}.uw-rain{left:63%;}.uw-dust>i:nth-child(n+3){display:none;}}
 @media(prefers-reduced-motion:reduce){.uw-environment *,.uw-perimeter *,.uw-rim::before,.uw-corner>*{animation:none!important;}}
}
@media print{.uw-environment,.uw-perimeter,.uw-rim,.uw-corner{display:none!important;}}
@keyframes unwritten-cloud-shadow{from{transform:translateX(-2%);opacity:.45}to{transform:translateX(3%);opacity:.8}}
@keyframes unwritten-lamp{0%,100%{transform:scale(1);filter:brightness(.92)}50%{transform:scale(1.025);filter:brightness(1.07)}}
@keyframes unwritten-rain{to{transform:translateY(530%)}}
@keyframes unwritten-dust{0%,100%{transform:translate(0,0);opacity:.2}50%{transform:translate(9px,-12px);opacity:.7}}
@keyframes unwritten-brass-light{0%,100%{opacity:.18}48%{opacity:.7}70%{opacity:.4}}
@keyframes unwritten-rim-light{from{transform:translateX(-18%)}to{transform:translateX(18%)}}


/* Source: embermist.css */
/* The supplied valley stays the scene. Environmental masks preserve cool
   water and foreground crimson instead of tinting everything orange/black. */
@media screen {
  html[data-theme='embermist'][data-world][data-mode] body,
  html[data-theme='embermist'][data-world][data-mode] .workspace {background:transparent!important;}
  html[data-theme='embermist'] {background:#263334;--surface-tint:var(--em-surface,#292620);--surface-ink:var(--em-text,#f6edda);--surface-secondary:var(--em-secondary,#ded4c5);--world-text:var(--em-text,#f6edda);--world-secondary:var(--em-secondary,#ded4c5);--world-radius:18px 6px 18px 6px;--world-lift:none;--hk-arrival:#e8ca83;--hk-ready:#9bc5a2;--hk-finished:#c9bb9b;--hk-waiting:#e0ad86;--hk-late-checkout:#f1a3b0;--hk-out:#b5cad3;}
  html[data-theme='embermist'] :is(.world-atmosphere,.world-orbits,.workspace-animation-decor,.workspace::before,.workspace::after) {display:none!important;}
  .embermist-environment,.embermist-front {position:fixed;inset:0;pointer-events:none!important;overflow:hidden;contain:strict;}
  .embermist-environment {z-index:0;background:#263334;opacity:var(--em-visibility,1);}
  .embermist-front {z-index:45;opacity:var(--em-front-depth,.35);}
  html[data-theme='embermist'] .workspace {isolation:isolate;}
  html[data-theme='embermist'] .workspace > :is(.view,.topbar,#management-section-navigation,.mobile-nav-bar) {position:relative;z-index:1;}
  .embermist-environment > div {position:absolute;inset:0;pointer-events:none;}
  .em-video-plane {background:url('/media/embermist/poster.jpg') var(--em-position,56% 52%)/cover no-repeat;filter:brightness(var(--em-brightness,1)) saturate(var(--em-saturation,1)) contrast(var(--em-contrast,1));transform:translate(calc(var(--em-x,0px)*.05),calc(var(--em-y,0px)*.05)) scale(1.004);}
  .em-video-plane video {position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transition:opacity .5s linear;}
  .embermist-environment[data-video='fallback'] video {visibility:hidden;}
  .em-far-shade {background:linear-gradient(180deg,#101b2b 0%,#182738 32%,transparent 74%);opacity:var(--em-far-shade,0);mix-blend-mode:multiply;}
  .em-distant-tint {background:linear-gradient(180deg,var(--em-tint) 0%,transparent 80%);mix-blend-mode:color;opacity:calc(var(--em-far-shade)*.62);}
  .em-light {background:radial-gradient(ellipse 62% 38% at 82% 10%,#ebc078,transparent 85%),linear-gradient(110deg,transparent 40%,#ffdda9 48%,transparent 58%);opacity:var(--em-warmth,0);mix-blend-mode:soft-light;}
  .em-river {left:calc(var(--em-river-x,56%) - var(--em-river-width,20%)/2)!important;right:auto!important;width:var(--em-river-width,20%);background:linear-gradient(180deg,transparent 14%,var(--em-river-color) 48%,transparent 100%);mask-image:linear-gradient(90deg,transparent,#000 30% 70%,transparent);opacity:var(--em-river-glow,0);mix-blend-mode:screen;transform:skewX(-6deg);}
  .em-fog {background:radial-gradient(ellipse 44% 16% at 23% 35%,var(--em-fog-color),transparent 85%),radial-gradient(ellipse 29% 10% at 72% 28%,var(--em-fog-color),transparent 90%);opacity:calc(var(--em-fog,.16) + var(--em-moment,0));transform:translate(calc(var(--em-x,0px)*.16),calc(var(--em-y,0px)*.1));}
  .em-fog-far {animation:em-fog-far 71s ease-in-out -19s infinite;}
  .em-fog-mid {background:radial-gradient(ellipse 40% 10% at 18% 72%,var(--em-fog-color),transparent 90%),radial-gradient(ellipse 30% 12% at 83% 64%,var(--em-fog-color),transparent 90%);opacity:calc(var(--em-fog,.16)*.42);animation:em-fog-mid 89s ease-in-out -47s infinite;}
  .em-leaf {position:absolute;left:0;top:0;display:block;height:auto;color:#d6ad64;pointer-events:none;will-change:transform,opacity;}
  .em-leaf svg {display:block;width:100%;height:auto;}
  .em-firefly {position:absolute;background:#f0dda6;border-radius:50%;box-shadow:0 0 5px 1px #dccd8366;opacity:0;animation:em-firefly var(--em-fly-cycle,7s) ease-in-out var(--em-fly-delay,0s) infinite;}
  .embermist-environment::after {content:'';position:absolute;inset:0;background:#0f1c23;opacity:var(--em-dim,0);pointer-events:none;}
  html[data-theme='embermist'] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.mobile-floating-bar,.tracker-window,.notification-panel) {background:color-mix(in srgb,var(--em-surface,#292620) 96%,transparent)!important;border-color:var(--em-border)!important;color:var(--em-text)!important;backdrop-filter:blur(3px)!important;}
  html[data-theme='embermist'] :is(.sidebar .brand,.sidebar label,.nav-item,.mobile-nav-bar label,#mobile-nav-select,.mobile-nav-sheet-item,.topbar h1) {color:var(--em-text)!important;opacity:1!important;text-shadow:none!important;}
  html[data-theme='embermist'] .nav-item.active {background:color-mix(in srgb,var(--em-accent) 15%,var(--em-surface))!important;border-color:var(--em-accent)!important;}
  html[data-theme='embermist'] :is(.panel,.room-card,.metric,.adaptive-room-card,.ab-room,.room-list-row):not(:where(.print-preview-sheet *,#print-run-root *)) {transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;transform:none!important;}
  html[data-theme='embermist'] :is(.panel,.room-card,.metric,.adaptive-room-card,.ab-room,.room-list-row):hover:not(:where(.print-preview-sheet *,#print-run-root *)) {border-color:color-mix(in srgb,var(--em-accent) 68%,var(--em-border))!important;box-shadow:0 18px 35px -25px #0a151c,inset 0 1px 0 #f7dcaa30!important;transform:none!important;}
  html[data-theme='embermist'] .panel > .panel-head {background:transparent!important;}
  html[data-theme='embermist'] .panel-head::before {content:none!important;}
  html[data-theme='embermist'] :is(input,select,textarea,option):not([type='checkbox']):not([type='radio']):not([type='color']) {background:var(--em-surface)!important;color:var(--em-text)!important;}
  html[data-theme='embermist'] :is(button,a,input,select,textarea):focus-visible {outline:2px solid #f4d59a!important;outline-offset:3px;}
  html[data-theme='embermist'] .housekeeper-greeting {padding-block:clamp(26px,4vh,64px);text-shadow:0 2px 12px #132128;}
  html[data-theme='embermist'] .housekeeper-greeting :is(span,em) {text-shadow:0 2px 10px #132128;}
  html[data-theme='embermist'] .button {background:var(--em-surface);}
  html[data-theme='embermist'] .button.primary {background:var(--world-accent)!important;color:var(--world-on-accent,#28291e)!important;box-shadow:0 0 calc(8px * var(--em-glow,.06)) color-mix(in srgb,var(--em-accent) 16%,transparent)!important;}
  html[data-theme='embermist'] .button:hover {background-image:linear-gradient(115deg,transparent 32%,#d9bb7920 48%,transparent 62%);background-size:240% 100%;animation:em-button-light .55s ease-out both;}
  html[data-theme='embermist']:is([data-decorative-animations='off'],[data-theme-tuner-motion='off'],[data-background-animations='off']) .button:hover {animation:none;}
  html[data-theme='embermist'] :is(dialog,[role='dialog'],.notification-panel) {background:var(--em-surface)!important;color:var(--em-text)!important;}
  /* Local opacity guard protects pale fog and gold foliage, including when a
     personal tuner asks for more transparent glass. No global scene blackout. */
  html[data-theme='embermist']:not([data-studio-theme]) {--surface-card-opacity:max(82%,var(--tuner-card-solid,82%));--surface-panel-opacity:max(84%,var(--tuner-panel-solid,84%));--surface-dense-opacity:96%;--surface-elevated-opacity:98%;--surface-modal-opacity:100%;}
  html[data-theme='embermist'][data-theme-tuner-card]:not([data-studio-theme]) :is(.room-card,.metric,.adaptive-room-card,.ab-room,.room-list-row) {background:color-mix(in srgb,var(--em-surface) max(82%,var(--tuner-card-solid)),transparent)!important;}
  html[data-theme='embermist'][data-theme-tuner-panel]:not([data-studio-theme]) .panel {background:color-mix(in srgb,var(--em-surface) max(84%,var(--tuner-panel-solid)),transparent)!important;}
  html[data-theme='embermist'] .world-preview,
  .world-choice[data-world-id='embermist'] {background:linear-gradient(#17262388,#14232dc9),url('/media/embermist/poster.jpg') 55% 50%/cover!important;color:#f6edda;}
  .embermist-environment[data-motion='off'] :is(.em-fog,.em-firefly),.em-paused * {animation-play-state:paused!important;}
  .embermist-environment[data-motion='off'] :is(.em-leaves,.em-bank-lights),.embermist-front[data-motion='off'] {visibility:hidden;}
  .embermist-environment[data-quality='low'] .em-fog-mid {display:none;}
  @media (max-width:760px) {
    html[data-theme='embermist'] {--surface-blur:2px;}
    html[data-theme='embermist'] .housekeeper-greeting {padding-block:28px;}
    .embermist-front {display:none;}
    .em-fog-mid {display:none;}
    .em-video-plane {transform:none;}
    .em-river {width:32%;left:39%!important;}
  }
  @media (prefers-reduced-motion:reduce) {
    .embermist-environment *,.embermist-front *,html[data-theme='embermist'] .button:hover {animation:none!important;transition:none!important;}
    .embermist-front,.em-leaves,.em-bank-lights {display:none!important;}
    .em-video-plane {transform:none!important;}
  }
  @media (prefers-reduced-transparency:reduce) {
    html[data-theme='embermist'] {--surface-card-opacity:100%!important;--surface-panel-opacity:100%!important;--surface-dense-opacity:100%!important;--surface-blur:0px!important;}
    html[data-theme='embermist']:not([data-studio-theme]) :is(.panel,.room-card,.metric,.adaptive-room-card) {background:var(--em-surface)!important;backdrop-filter:none!important;}
  }
  @supports not (backdrop-filter:blur(1px)) {
    html[data-theme='embermist']:not([data-studio-theme]) :is(.panel,.room-card,.metric,.adaptive-room-card) {background:color-mix(in srgb,var(--em-surface) 95%,transparent)!important;}
  }
}
@keyframes em-fog-far {0%,100%{translate:-1.5% 0}48%{translate:1.2% -1%}}
@keyframes em-fog-mid {0%,100%{translate:1% 1%}55%{translate:-2% -.5%}}
@keyframes em-firefly {0%,18%,62%,100%{opacity:0;translate:0 0}32%{opacity:calc(var(--em-fly-strength)*.24)}43%{opacity:var(--em-fly-strength);translate:7px -4px}55%{opacity:calc(var(--em-fly-strength)*.48);translate:8px -5px}83%{opacity:calc(var(--em-fly-strength)*.35);translate:3px -8px}}
@keyframes em-button-light {from{background-position:100% 0}to{background-position:0 0}}
@media print {.embermist-environment,.embermist-front{display:none!important;}}


/* Source: neon-fracture.css */
/* NEON//FRACTURE owns only its screen treatment. Functional surfaces stay unclipped. */
@media screen {
  html[data-theme='neon-fracture'] {
    --nf-cyan:#00f5ff;--nf-magenta:#ff2bd6;--nf-violet:#865dff;--nf-lime:#bcff3b;
    --nf-glow:.6;--nf-depth:.75;--nf-ambient:.6;--nf-background:.6;--nf-pace:17s;
  }
  html[data-theme='neon-fracture'][data-world][data-mode] body,
  html[data-theme='neon-fracture'][data-world][data-mode] .workspace {
    background:radial-gradient(ellipse at 85% 8%,#211136 0,transparent 46%),radial-gradient(ellipse at 10% 65%,#092430 0,transparent 50%),linear-gradient(145deg,#0b1020,#05060d 74%) !important;
  }
  html[data-theme='neon-fracture'] .world-atmosphere {visibility:hidden !important;}
  html[data-theme='neon-fracture'] .nf-environment {
    position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;contain:strict;
    opacity:var(--tuner-bg-visibility-number,1);
  }
  .nf-aura {position:absolute;inset:-10%;background:radial-gradient(ellipse at 70% 20%,#865dff21,transparent 50%),radial-gradient(ellipse at 20% 65%,#00f5ff16,transparent 40%);animation:nf-aura-drift 34s ease-in-out infinite alternate;}
  .nf-perspective {position:absolute;inset:0;perspective:750px;opacity:calc(.18 + var(--nf-background)*.35);mask-image:linear-gradient(transparent 35%,#000 100%);}
  .nf-grid {position:absolute;left:-40%;right:-40%;top:25%;height:145%;background:linear-gradient(#00f5ff22 1px,transparent 1px),linear-gradient(90deg,#865dff30 1px,transparent 1px);background-size:64px 64px;transform:rotateX(61deg);transform-origin:center top;animation:nf-grid-flow var(--nf-pace) linear infinite;}
  .nf-circuits {position:absolute;inset:0;width:100%;height:100%;transform:translate(var(--nf-world-x,0px),var(--nf-world-y,0px));transition:transform .2s ease-out;opacity:calc(.25 + var(--nf-background)*.5);}
  .nf-traces {stroke:#00f5ff;stroke-width:1;opacity:.24;}
  .nf-trace-pulse {stroke:#9ffbff;stroke-width:2;stroke-dasharray:30 740;animation:nf-circuit-flow var(--nf-pace) linear infinite;opacity:.85;}
  .nf-junctions {fill:#ff2bd6;opacity:.65;}
  .nf-data {position:absolute;inset:0;opacity:var(--nf-ambient);}
  .nf-data i {position:absolute;left:var(--x);top:var(--y);font:10px var(--font-mono,monospace);color:#00f5ff;opacity:.28;font-style:normal;animation:nf-data-float calc(16s + var(--i)*1s) ease-in-out infinite alternate;animation-delay:calc(var(--i)*-2s);}
  .nf-pointer-ripple {position:absolute;inset:20% 5%;border:1px solid #00f5ff55;border-radius:50%;opacity:0;}

  html[data-theme='neon-fracture'][data-world][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.mobile-floating-bar,.notification-panel) {
    background:linear-gradient(120deg,#0b1020f5,#090c18f5) !important;color:#eafbff !important;
    border-color:#365367 !important;box-shadow:inset 0 1px #00f5ff28,0 18px 48px -24px #000 !important;
  }
  html[data-theme='neon-fracture'] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.mobile-floating-bar) :is(h1,h2,h3,label,.muted,.brand-name,.nav-button,.nav-icon) {color:#c7dce9 !important;opacity:1 !important;}
  html[data-theme='neon-fracture'] .nav-button {position:relative;border-radius:3px 12px 3px 3px !important;border:1px solid transparent !important;}
  html[data-theme='neon-fracture'] .nav-button:is(.active,[aria-current='page']) {background:linear-gradient(90deg,#00f5ff1f,#865dff12) !important;border-color:#00f5ff66 !important;color:#eafbff !important;box-shadow:inset 3px 0 #00f5ff,0 0 18px #00f5ff0d !important;}
  html[data-theme='neon-fracture'] .nav-button:hover {background:#865dff20 !important;}
  html[data-theme='neon-fracture'][data-world][data-mode] :is(.panel,.room-card,.metric,.employee-bubble,.summary-card,.metric-card,.adaptive-room-card,.nf-card):not(:where(#print-run-root *, .print-preview-sheet *)) {
    background:linear-gradient(125deg,#161f2fee,#090e1bee 62%,#171327ed) !important;color:#eafbff !important;
    border:1px solid #375165 !important;
    box-shadow:0 8px 16px -10px #000,0 calc(8px + var(--nf-depth)*24px) calc(24px + var(--nf-depth)*38px) -25px #000,inset 0 1px #cefbff25,inset 0 -1px #865dff24,0 0 calc(var(--nf-glow)*25px) #00f5ff12 !important;
    border-radius:4px 18px 4px 14px !important;
    overflow:visible;
  }
  html[data-theme='neon-fracture'] .nf-card {position:relative;min-width:0;--nf-edge:#00f5ff;--nf-second:#865dff;}
  html[data-theme='neon-fracture'] .nf-card > .panel-head {
    background:linear-gradient(100deg,#162536db,#101523dd) !important;color:#eafbff !important;
    border-bottom-color:#00f5ff35 !important;border-radius:inherit !important;
  }
  html[data-theme='neon-fracture'] .nf-card :is(h2,h3,h4,.panel-title,.metric-label,.metric-value) {color:#eafbff !important;text-shadow:none !important;}
  html[data-theme='neon-fracture'] .nf-card :is(.muted,.secondary,.eyebrow,small) {color:#afc5d8;}
  html[data-theme='neon-fracture'] .nf-card > :is(.panel-body,.card-body,.room-body) {max-height:none;}
  html[data-theme='neon-fracture'] .nf-card > .nf-shell {
    position:absolute;inset:0;pointer-events:none !important;border-radius:inherit;overflow:clip;
    contain:layout paint;user-select:none;opacity:1;/* No parent isolation, transform, filter or clipping. */
  }
  .nf-outline {position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
  .nf-outline path {fill:none;stroke:var(--nf-edge);stroke-width:1;opacity:calc(.32 + var(--nf-glow)*.5);}
  .nf-outline .nf-inner-frame {transform:translate(2px,2px) scale(.96);transform-origin:center;stroke:var(--nf-second);stroke-width:.65;opacity:.22;}
  /* Edge current belongs to the resting card too, including touch screens.
     Keep one steady dash cycle; hovering must not restart or accelerate it. */
  .nf-outline .nf-energy {stroke:#d5ffff;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:36 384;opacity:calc(.42 + var(--nf-glow)*.65);filter:drop-shadow(0 0 2px var(--nf-edge));animation:nf-frame-travel 6s linear infinite;}
  .nf-reflection {position:absolute;inset:0;background:radial-gradient(ellipse at var(--nf-pointer-x,22%) var(--nf-pointer-y,0%),#00f5ff12,transparent 55%),linear-gradient(128deg,transparent 65%,#865dff0b 75%,transparent 90%);opacity:calc(.3 + var(--nf-depth)*.7);transform:translate(var(--nf-parallax-x,0px),var(--nf-parallax-y,0px));transition:transform .18s ease-out;}
  .nf-scan {position:absolute;inset:0;opacity:0;background:linear-gradient(transparent 46%,#00f5ff1c 49%,#d6ffff75 50%,transparent 50.5%);}
  .nf-glitch-slice {position:absolute;inset:15% 0 65%;opacity:0;background:repeating-linear-gradient(0deg,#00f5ff40 0 1px,transparent 1px 5px);}
  .nf-corner {position:absolute;width:24px;height:24px;opacity:.7;transition:translate .2s ease,rotate .24s ease;}
  .nf-corner i {position:absolute;inset:0;border-left:2px solid var(--nf-edge);border-top:2px solid var(--nf-edge);}
  .nf-corner b {position:absolute;inset:5px;border-left:1px solid var(--nf-second);border-top:1px solid var(--nf-second);}
  .nf-corner-0 {left:5px;top:5px;}
  .nf-corner-1 {right:5px;top:5px;scale:-1 1;}
  .nf-corner-2 {left:5px;bottom:5px;scale:1 -1;}
  .nf-corner-3 {right:5px;bottom:5px;scale:-1 -1;}
  .nf-shell::after {content:attr(data-design);position:absolute;right:35px;bottom:4px;font:7px/1 monospace;letter-spacing:.18em;color:var(--nf-second);opacity:.42;}
  html[data-theme='neon-fracture'] .nf-card[data-nf-style='prism-core'] {border-radius:5px 23px 5px 18px !important;--nf-second:#a483ff;}
  [data-nf-style='prism-core'] .nf-corner i {clip-path:polygon(0 0,100% 0,65% 35%,35% 65%,0 100%);background:linear-gradient(130deg,#00f5ff24,#865dff35);border:none;}
  [data-nf-style='prism-core'] .nf-reflection {background:linear-gradient(123deg,#00f5ff06 0 22%,transparent 22% 52%,#865dff0c 52% 68%,transparent 68%),radial-gradient(at var(--nf-pointer-x,20%) var(--nf-pointer-y,5%),#00f5ff13,transparent 62%);}
  html[data-theme='neon-fracture'] .nf-card[data-nf-style='circuit-blade'] {border-radius:2px 18px 2px 2px !important;--nf-second:#ff2bd6;}
  [data-nf-style='circuit-blade'] .nf-corner {width:31px;height:15px;}
  [data-nf-style='circuit-blade'] .nf-corner b {inset:5px 9px 3px 4px;border-bottom:1px solid #ff2bd6;}
  [data-nf-style='circuit-blade'] .nf-reflection {background:linear-gradient(90deg,#00f5ff0c 1px,transparent 1px),linear-gradient(0deg,#ff2bd607 1px,transparent 1px);background-size:82px 82px;mask-image:linear-gradient(90deg,#000,transparent 12%,transparent 88%,#000);}
  html[data-theme='neon-fracture'] .nf-card[data-nf-style='floating-hud'] {border-color:#00f5ff22 !important;border-radius:3px !important;background:linear-gradient(110deg,#111e2de8,#111222e8) !important;}
  [data-nf-style='floating-hud'] .nf-corner {width:18px;height:18px;}
  [data-nf-style='floating-hud'] .nf-inner-frame {stroke-dasharray:40 12;}
  html[data-theme='neon-fracture'] .nf-card[data-nf-style='data-matrix'] {border-radius:3px !important;--nf-second:#bcff3b;}
  [data-nf-style='data-matrix'] .nf-corner {width:20px;height:20px;}
  [data-nf-style='data-matrix'] .nf-corner b {inset:7px;background:#bcff3b40;border:0;}
  [data-nf-style='data-matrix'] .nf-reflection {background:repeating-linear-gradient(90deg,#00f5ff10 0 1px,transparent 1px 12px);mask-image:linear-gradient(#000,transparent 7%,transparent 94%,#000);}
  html[data-theme='neon-fracture'] .nf-card[data-nf-style='void-portal'] {border-radius:24px 24px 7px 7px !important;--nf-edge:#865dff;--nf-second:#00f5ff;background:radial-gradient(ellipse at 50% 0%,#231d43,#060a15 68%) !important;}
  [data-nf-style='void-portal'] .nf-corner i {border-radius:15px 0 0 0;}
  [data-nf-style='void-portal'] .nf-inner-frame {stroke-width:1.5;opacity:.2;}
  html[data-theme='neon-fracture'] .nf-card[data-nf-style='quantum-frame'] {border-radius:13px 3px 17px 3px !important;--nf-second:#ff2bd6;}
  [data-nf-style='quantum-frame'] .nf-corner {width:27px;height:27px;}
  [data-nf-style='quantum-frame'] .nf-corner b {inset:6px;rotate:8deg;}
  [data-nf-style='quantum-frame'] .nf-inner-frame {stroke-dasharray:75 22;}
  html[data-theme='neon-fracture'] .nf-card.is-collapsed {box-shadow:0 12px 25px -18px #000,inset 0 1px #00f5ff44,0 0 calc(var(--nf-glow)*24px) #865dff25 !important;}
  .nf-card.is-collapsed .nf-corner {width:17px;height:13px;}
  html[data-theme='neon-fracture'] #app-view .view .nf-card.is-collapsed > .nf-shell {
    display:block !important;height:auto !important;max-height:none !important;
    opacity:1 !important;visibility:visible !important;overflow:clip !important;
    transform:none !important;margin:0 !important;padding:0 !important;
  }
  .nf-card.is-collapsed .nf-shell::after {display:none;}
  html[data-theme='neon-fracture'] .nf-card[data-nf-style='void-portal'].is-collapsed {border-radius:20px !important;}
  html[data-theme='neon-fracture'] .nf-card[data-nf-style='circuit-blade'].is-collapsed {border-radius:2px 18px 2px 18px !important;}
  html[data-theme='neon-fracture'] .nf-card:is(:focus-within,.card-dragging,[aria-selected='true']) {border-color:#00f5ff !important;outline-offset:4px;}
  html[data-theme='neon-fracture'] .nf-card.card-dragging .nf-energy {opacity:.8;}
  @media (hover:hover) and (pointer:fine) {
    html[data-theme='neon-fracture'][data-neon-interaction='on'] .nf-card:hover {box-shadow:0 12px 24px -14px #000,0 30px 64px -28px #000,inset 0 1px #eafbff33,0 0 calc(var(--nf-glow)*36px) #00f5ff2c !important;border-color:#00f5ff88 !important;}
    html[data-neon-interaction='on'] .nf-card:hover .nf-corner {translate:-2px -2px;}
    html[data-neon-interaction='on'] [data-nf-style='quantum-frame']:hover .nf-corner b {rotate:-5deg;}
    html[data-neon-interaction='on'] [data-nf-style='circuit-blade']:hover .nf-corner {translate:-5px 0;}
    html[data-neon-interaction='on'] .nf-card:hover .nf-energy {opacity:.95;}
  }
  html[data-theme='neon-fracture'] :is(button,.button,input,select,textarea) {border-radius:4px 10px 4px 4px !important;}
  html[data-theme='neon-fracture'] :is(input,select,textarea) {background:#101b2b !important;color:#eafbff !important;border-color:#577080 !important;}
  html[data-theme='neon-fracture'] :is(input,textarea)::placeholder {color:#adbfce !important;opacity:1;}
  html[data-theme='neon-fracture'] :is(button,.button):not(.nav-button,.panel-head,.logs-card-head,.world-choice) {background:#211a37;color:#dce9f5;border:1px solid #865dff77;box-shadow:inset 0 1px #c4aaff1c;transition:background .15s,border-color .15s,box-shadow .15s;}
  html[data-theme='neon-fracture'] :is(button,.button).primary {background:#00f5ff !important;color:#071021 !important;border-color:#77fcff !important;font-weight:700;}
  html[data-theme='neon-fracture'] :is(button,.button).danger {background:#331b1b !important;color:#ffbd8b !important;border-color:#ff914d88 !important;}
  html[data-theme='neon-fracture'] :is(button,.button).success {background:#20341c !important;color:#bcff3b !important;border-color:#bcff3b88 !important;}
  html[data-theme='neon-fracture'] :is(button,.button):hover:not(:disabled) {border-color:#00f5ff;box-shadow:0 0 calc(var(--nf-glow)*20px) #00f5ff20;}
  html[data-theme='neon-fracture'] :is(button,.button):active:not(:disabled) {box-shadow:inset 0 2px 5px #0007;}
  html[data-theme='neon-fracture'] :is(button,input,select,textarea,a,[tabindex]):focus-visible {outline:2px solid #00f5ff !important;outline-offset:3px;}
  html[data-theme='neon-fracture'] :is(button,input,select,textarea):disabled {opacity:.5;box-shadow:none !important;cursor:not-allowed;}
  html[data-theme='neon-fracture'] :is(table,.log-table) {background:#0b1321;color:#eafbff;}
  html[data-theme='neon-fracture'] :is(td,th) {border-color:#315266 !important;}
  html[data-theme='neon-fracture'] tbody tr:nth-child(even) {background:#142033;}
  html[data-theme='neon-fracture'] tr:is(:hover,:focus-within,[aria-selected='true']) {background:#173140;}
  html[data-theme='neon-fracture'] :is(.pill,.badge,.status-chip) {border-color:#607788;}
  html[data-theme='neon-fracture'] .room-card:is(.arrival-tier,.early-tier) {border-left:3px solid #ff2bd6 !important;}
  html[data-theme='neon-fracture'] .room-card.finished {border-left:3px solid #bcff3b !important;}
  html[data-theme='neon-fracture'] :is(dialog,[role='dialog'],.toast) {background:#111b2bf5 !important;color:#eafbff !important;border:1px solid #00f5ff66 !important;box-shadow:0 30px 100px #000a,inset 0 1px #9bfbff22 !important;}
  html[data-theme='neon-fracture'][data-neon-interaction='on'] dialog[open] {animation:nf-modal-arrive .24s ease-out;}
  html[data-theme='neon-fracture'] dialog::backdrop {background:#040610ad;backdrop-filter:blur(3px);}
  html[data-theme='neon-fracture'] .toast {border-left:3px solid #bcff3b !important;}
  html[data-theme='neon-fracture'] :is(progress,.progress-bar) {accent-color:#00f5ff;}
  html[data-theme='neon-fracture'] :is(.loading,.spinner,[aria-busy='true']) {border-color:#00f5ff55;}
  html[data-neon-glow='off'] .nf-outline path {opacity:.3;}
  html[data-neon-glow='off'] .nf-energy {filter:none;}
  html[data-neon-glow='maximum'] .nf-outline path {stroke-width:1.7;}
  html[data-neon-card-effects='overdrive'] .nf-corner {width:32px;height:32px;}
  html[data-neon-card-effects='standard'] :is(.nf-reflection,.nf-inner-frame) {opacity:.15;}
  html[data-neon-depth='flat'] .nf-reflection {display:none;}
  html[data-theme='neon-fracture'][data-neon-depth='flat'] .nf-card {box-shadow:inset 0 1px #eafbff22,0 0 calc(var(--nf-glow)*12px) #00f5ff12 !important;}
  html[data-neon-background='off'] :is(.nf-grid,.nf-trace-pulse,.nf-aura) {animation:none;}
  html[data-neon-ambient='off'] .nf-data {display:none;}
  html[data-neon-paused='true'] .nf-environment * {animation-play-state:paused !important;}
  html[data-neon-paused='true'] .nf-energy,html[data-neon-interaction='off'] .nf-energy {animation:none !important;}
  html[data-theme='neon-fracture']:is([data-neon-ambient='off'],[data-theme-tuner-decorative='off']) .nf-energy {animation:none !important;}
  html[data-theme='neon-fracture'] [data-motion-offscreen] > .nf-shell .nf-energy {animation-play-state:paused !important;}
  html[data-theme='neon-fracture'][data-neon-interaction='off'] :is(.nf-card,.nf-shell *,dialog),
  html[data-theme='neon-fracture'][data-neon-printing='true'] :is(.nf-card,.nf-shell *,dialog) {transition:none !important;animation:none !important;}
  html[data-theme='neon-fracture'][data-neon-glow='off'] .nf-card {box-shadow:0 18px 34px -22px #000,inset 0 1px #ffffff18 !important;}
  html[data-theme='neon-fracture'] .world-preview[data-world='neon-fracture'] {background:radial-gradient(at 85% 20%,#412255,#080d18 65%) !important;}
  .world-preview[data-world='neon-fracture'] .world-portal-art {background:repeating-linear-gradient(90deg,#00f5ff16 0 1px,transparent 1px 22px),repeating-linear-gradient(#865dff26 0 1px,transparent 1px 22px);}
  .world-preview[data-world='neon-fracture'] .world-sample-card {background:#0b1428e8 !important;border:1px solid #00f5ff88 !important;border-radius:3px 20px 3px 14px !important;box-shadow:0 8px 28px #865dff55 !important;color:#eafbff !important;}
  @media(max-width:700px) {
    .nf-data i:nth-child(n+7) {display:none;}
    .nf-corner {width:16px;height:16px;}
    .nf-shell::after {display:none;}
    .nf-perspective {opacity:.28;}
    html[data-neon-card-effects='overdrive'] .nf-corner {width:22px;height:22px;}
  }
  @media(prefers-reduced-motion:reduce) {
    html[data-theme='neon-fracture'] :is(.nf-environment *, .nf-energy,dialog) {animation:none !important;transition:none !important;}
    html[data-theme='neon-fracture'] .nf-reflection {transform:none !important;}
  }
}
@keyframes nf-grid-flow {from{transform:rotateX(61deg) translateY(0)}to{transform:rotateX(61deg) translateY(64px)}}
@keyframes nf-circuit-flow {to{stroke-dashoffset:-770}}
@keyframes nf-frame-travel {to{stroke-dashoffset:-420}}
@keyframes nf-aura-drift {to{transform:translate(3%,-2%)}}
@keyframes nf-data-float {to{transform:translate(8px,-42px);opacity:.08}}
@keyframes nf-modal-arrive {from{opacity:.3;translate:0 8px}to{opacity:1;translate:0 0}}
@media print {.nf-shell,.nf-environment{display:none !important;}}

/* The city is a light source. Keep its layers inert and behind every control. */
@media screen {
  html[data-theme='neon-fracture'] .nf-environment {
    background:radial-gradient(ellipse 42% 34% at 77% 25%,#a735b21b,transparent 80%),radial-gradient(ellipse 48% 30% at 20% 73%,#00ddeb13,transparent 80%);
  }
  html[data-theme='neon-fracture'] .nf-aura {
    background:radial-gradient(ellipse 32% 28% at 78% 30%,#ff2bd634,transparent 80%),radial-gradient(ellipse 35% 45% at 16% 78%,#00eaf12a,transparent 80%),radial-gradient(ellipse 60% 28% at 50% 100%,#5e41c533,transparent 85%);
    filter:blur(24px);
    animation-duration:42s;
  }
  html[data-theme='neon-fracture'] .nf-horizon {
    position:absolute;inset:32% 0 0;
    background:linear-gradient(180deg,transparent 2%,#0a142244 38%,#070b1a77 100%),repeating-linear-gradient(90deg,transparent 0 5.5%,#00eafa0b 5.5% 5.65%,transparent 5.65% 10.5%),linear-gradient(90deg,transparent 11%,#00f5ff10 12%,transparent 13% 31%,#ff2bd60c 32%,transparent 33% 78%,#865dff12 79%,transparent 80%);
    mask-image:linear-gradient(transparent,#000 20%,#000 90%);
    opacity:calc(.32 + var(--nf-background)*.65);
  }
  html[data-theme='neon-fracture'] .nf-horizon::before {
    content:'';position:absolute;inset:12% -10% 0;
    background:linear-gradient(90deg,transparent,#00f5ff3b 24%,#b183ff40 53%,#ff2bd636 75%,transparent) center 21%/100% 1px no-repeat,linear-gradient(90deg,transparent,#00f5ff20,transparent) center 22%/100% 34px no-repeat;
    filter:blur(.5px);
  }
  html[data-theme='neon-fracture'] .nf-horizon::after {
    content:'';position:absolute;inset:0;
    background:repeating-linear-gradient(90deg,transparent 0 84px,#1ce9f018 85px,transparent 86px 160px),repeating-linear-gradient(0deg,transparent 0 52px,#a881ff0c 53px,transparent 54px 104px);
    transform:skewY(-5deg) scale(1.16);opacity:.7;
  }
  html[data-theme='neon-fracture'] .nf-perspective {opacity:calc(.12 + var(--nf-background)*.25);}
  html[data-theme='neon-fracture'] .nf-grid {background-size:86px 86px;}

  html[data-theme='neon-fracture'][data-world][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.mobile-floating-bar) {
    background:linear-gradient(132deg,#102536f2 0%,#0b1426f5 38%,#150f2cf4 100%) !important;
    border-color:#477189 !important;
    box-shadow:inset 0 1px #8ffaff30,inset 0 -1px #8e5dff20,0 18px 48px -25px #000,0 0 32px #00f5ff0a !important;
  }
  html[data-theme='neon-fracture'][data-world][data-mode] .sidebar {
    background:radial-gradient(ellipse 90% 28% at 15% 5%,#128aa836,transparent 90%),linear-gradient(168deg,#123c51f7,#08192af7 48%,#180f32f7) !important;
    border-right:1px solid #00e8f05c !important;
  }
  html[data-theme='neon-fracture'] .sidebar::after {
    content:'';position:absolute;top:6%;right:-1px;width:1px;height:82%;pointer-events:none;
    background:linear-gradient(transparent,#00f5ff88 20%,#865dff8a 62%,transparent);
    box-shadow:0 0 15px #00f5ff55;
  }
  html[data-theme='neon-fracture'][data-world][data-mode] .topbar {
    background:radial-gradient(ellipse 55% 130% at 100% 0%,#8b35b429,transparent 95%),linear-gradient(115deg,#183849f3,#0b1528f5 56%,#21113bef) !important;
    border-bottom:1px solid #865dff70 !important;
  }
  html[data-theme='neon-fracture'] .nav-button {
    background:linear-gradient(105deg,#091c2bdc,#0a1426c9) !important;
    border:1px solid #2b5669 !important;
    box-shadow:inset 0 1px #8ce9ff0b !important;
    transition:background .22s ease,border-color .22s ease,box-shadow .22s ease,translate .22s ease !important;
  }
  html[data-theme='neon-fracture'] .nav-button:hover {
    background:linear-gradient(95deg,#10405add,#241448dd) !important;
    border-color:#00f5ff77 !important;
    box-shadow:inset 2px 0 #00f5ff,0 0 20px #00f5ff18 !important;
  }
  html[data-theme='neon-fracture'] .nav-button:is(.active,[aria-current='page']) {
    background:linear-gradient(95deg,#16455b,#191840 80%) !important;
    box-shadow:inset 4px 0 #00f5ff,inset 0 1px #9dfaff26,0 0 22px #00f5ff23 !important;
  }
  html[data-theme='neon-fracture'][data-world][data-mode] :is(.panel,.room-card,.metric,.employee-bubble,.summary-card,.metric-card,.adaptive-room-card,.nf-card):not(:where(#print-run-root *, .print-preview-sheet *)) {
    background:radial-gradient(ellipse 85% 65% at var(--nf-pointer-x,72%) var(--nf-pointer-y,0%),#00f5ff0e,transparent 77%),linear-gradient(126deg,#152c3bee 0%,#0a1323f2 48%,#1b1330f0 100%) !important;
    border-color:#4c7286 !important;
    box-shadow:0 22px 44px -28px #000,inset 0 1px #b9f8ff37,inset 1px 0 #00f5ff18,inset -1px 0 #b47cff14,0 0 calc(var(--nf-glow)*28px) #00f5ff12 !important;
  }
  html[data-theme='neon-fracture'] .nf-reflection {
    background:linear-gradient(113deg,#a3faff10 0 1px,transparent 1px 37%,#ab77ff0c 48%,transparent 66%),radial-gradient(ellipse at var(--nf-pointer-x,24%) var(--nf-pointer-y,0%),#00f5ff27,transparent 58%);
    animation:nf-reflection-breathe 11s ease-in-out infinite alternate;
  }
  html[data-theme='neon-fracture'] .nf-card > .panel-head {
    background:linear-gradient(100deg,#143348d9,#17132dce) !important;
    border-bottom-color:#00f5ff55 !important;
  }
  html[data-theme='neon-fracture'] :is(button,.button):not(.nav-button,.panel-head,.logs-card-head,.world-choice) {
    background:linear-gradient(118deg,#18354adf,#241638e8) !important;
    border-color:#68729c !important;
    box-shadow:inset 0 1px #c8faff24,0 5px 16px -12px #000 !important;
  }
  html[data-theme='neon-fracture'] :is(button,.button).primary {
    background:linear-gradient(115deg,#6effff,#00dfe9 55%,#8affff) !important;
    color:#04141e !important;border-color:#b8ffff !important;
    box-shadow:inset 0 1px #fff9,0 0 20px #00f5ff28 !important;
  }
  html[data-theme='neon-fracture'] :is(button,.button).danger {background:linear-gradient(110deg,#371e2c,#391b1f) !important;color:#ffd0b0 !important;border-color:#ff947c8a !important;}
  html[data-theme='neon-fracture'] :is(button,.button).success {background:linear-gradient(110deg,#17372e,#20341c) !important;color:#d8ff8d !important;border-color:#bcff3b88 !important;}
  html[data-theme='neon-fracture'] :is(button,.button):hover:not(:disabled) {border-color:#00f5ff !important;box-shadow:inset 0 1px #bafcff36,0 0 22px #00f5ff32 !important;}
  html[data-theme='neon-fracture'] :is(dialog,[role='dialog'],.toast) {
    background:radial-gradient(ellipse at 85% 0%,#52246835,transparent 50%),linear-gradient(145deg,#172d3af7,#0b1425fa 58%,#1b1533f9) !important;
    border-color:#75e8f288 !important;
    box-shadow:0 32px 90px #000c,inset 0 1px #bbfcff50,0 0 40px #865dff20 !important;
  }
  html[data-theme='neon-fracture'][data-world][data-mode] dialog#theme-tuner-dialog {
    background:radial-gradient(ellipse at 100% 0%,#713a9b3a,transparent 48%),linear-gradient(145deg,#102838,#080e20 55%,#1b1230) !important;
    border:1px solid #69e8f1a8 !important;
    box-shadow:0 36px 100px #000d,inset 0 1px #bcffff66,0 0 34px #00f5ff1d,0 0 58px #865dff18 !important;
  }
  html[data-theme='neon-fracture'] #theme-tuner-dialog .theme-tuner-head {
    background:linear-gradient(105deg,#103a4c,#151431 78%) !important;
    border-bottom:1px solid #00f5ff67 !important;
    box-shadow:inset 0 1px #b9fcff2f !important;
  }
  html[data-theme='neon-fracture'] #theme-tuner-dialog .theme-tuner-toolbar {
    background:linear-gradient(90deg,#00f5ff0f,#865dff13 75%,#ff2bd60a) !important;
    border-bottom:1px solid #705b9b55 !important;
  }
  html[data-theme='neon-fracture'] #theme-tuner-dialog .theme-tuner-section {
    background:linear-gradient(125deg,#17314684,#17172f84) !important;
    border:1px solid #52758b9c !important;
    box-shadow:inset 0 1px #c1f9ff21,0 12px 30px -22px #000 !important;
  }
  html[data-theme='neon-fracture'] #theme-tuner-dialog .theme-tuner-foot {
    background:linear-gradient(90deg,#081726,#17132b) !important;
    border-top:1px solid #00f5ff55 !important;
  }
  html[data-theme='neon-fracture'] dialog::backdrop {background:radial-gradient(ellipse at 60% 25%,#22113dbb,#030715df 65%);backdrop-filter:blur(6px);}
  html[data-theme='neon-fracture'] :is(.notification-panel,#mobile-nav-sheet) {border-left:1px solid #00f5ff66 !important;}

  html[data-theme='neon-fracture'][data-neon-background='off'] :is(.nf-horizon,.nf-perspective,.nf-data) {display:none;}
  html[data-theme='neon-fracture'][data-neon-background='off'] .nf-aura {opacity:.17;animation:none;filter:blur(32px);}
  html[data-theme='neon-fracture'][data-world][data-mode][data-neon-background='off'] :is(body,.workspace) {
    background:radial-gradient(ellipse at 80% 10%,#142034,transparent 48%),linear-gradient(145deg,#0a1522,#050a14 75%) !important;
  }
  html[data-theme='neon-fracture'][data-neon-background='off'] .nf-corner {opacity:.38;}
  html[data-theme='neon-fracture'][data-neon-background='off'] .nf-energy {opacity:.32;filter:none;}
  html[data-theme='neon-fracture'][data-neon-background='subtle'] .nf-horizon {opacity:.25;}
  html[data-theme='neon-fracture'][data-neon-background='subtle'] .nf-perspective {opacity:.12;}
  html[data-theme='neon-fracture'][data-world][data-mode][data-neon-background='maximum'] :is(body,.workspace) {
    background:radial-gradient(ellipse at 82% 12%,#39154c 0,transparent 48%),radial-gradient(ellipse at 12% 68%,#0a4650 0,transparent 54%),linear-gradient(145deg,#0b1020,#05060d 74%) !important;
  }
  html[data-theme='neon-fracture'][data-neon-background='maximum'] .nf-horizon {opacity:.86;}
  html[data-theme='neon-fracture'][data-neon-background='maximum'] .nf-aura {opacity:1;}
  html[data-theme='neon-fracture'][data-neon-glow='subtle'] .nf-card {box-shadow:0 16px 30px -23px #000,inset 0 1px #caffff30 !important;}
  html[data-theme='neon-fracture'][data-neon-glow='maximum'] .nf-card {box-shadow:0 25px 50px -28px #000,inset 0 1px #caffff42,0 0 26px #00f5ff25,0 0 36px #865dff16 !important;}
  html[data-theme='neon-fracture'][data-neon-ambient='off'] .nf-reflection {animation:none;}
  @media (max-width:700px) {
    html[data-theme='neon-fracture'] .nf-horizon::after {display:none;}
    html[data-theme='neon-fracture'] .nf-aura {filter:blur(15px);}
    html[data-theme='neon-fracture'] .nf-reflection {animation:none;}
  }
  @media (prefers-reduced-motion:reduce) {
    html[data-theme='neon-fracture'] .nf-reflection {animation:none !important;}
    html[data-theme='neon-fracture'] .nf-aura {animation:none !important;}
  }
}
@keyframes nf-reflection-breathe {from{opacity:.48}to{opacity:.82}}
/* One inert viewport layer. Paths never own layout, hit-testing, or menus. */
html[data-theme='neon-fracture'] .nf-synaptic{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:18;contain:strict;opacity:.8}
html[data-theme='neon-fracture'] .nf-synaptic path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
html[data-theme='neon-fracture'] .nf-link{stroke:#42e6ed;stroke-width:.7;opacity:.13}
html[data-theme='neon-fracture'] .nf-signal{stroke:#67ffff;stroke-width:2;filter:drop-shadow(0 0 3px #20dbef)}
html[data-theme='neon-fracture'] .nf-synaptic[data-intensity='subtle']{opacity:.42}
html[data-theme='neon-fracture'] .nf-synaptic[data-intensity='maximum']{opacity:1}
html[data-theme='neon-fracture'] .nf-synaptic[data-style='plasma-stream'] .nf-link{stroke:#aa7eff;stroke-width:1.3;opacity:.1}
html[data-theme='neon-fracture'] .nf-synaptic[data-style='plasma-stream'] .nf-signal{stroke:#ea7af6;filter:drop-shadow(0 0 5px #9887ff)}
html[data-theme='neon-fracture'] .nf-synaptic[data-style='data-link'] .nf-link{stroke:#98facd;stroke-dasharray:2 12;opacity:.18}
html[data-theme='neon-fracture'] .nf-synaptic[data-style='data-link'] .nf-signal{stroke:#bbfff2;stroke-width:3;stroke-linecap:butt}
html[data-theme='neon-fracture'] .nf-synaptic[data-style='quantum-arc'] .nf-link{stroke:#8ba8f2;stroke-dasharray:12 5;opacity:.09}
html[data-theme='neon-fracture'] .nf-synaptic[data-style='quantum-arc'] .nf-signal,html[data-theme='neon-fracture'] .nf-arc-branch{stroke:#c4bdff;stroke-width:1.5;filter:drop-shadow(0 0 2px #6978ff)}
html[data-theme='neon-fracture'] .nf-effects-studio{border:1px solid #39d6dc66;border-radius:12px;background:linear-gradient(135deg,#0c202bd9,#211a38ad);padding:20px;max-width:100%;min-width:0}
html[data-theme='neon-fracture'] .nf-effects-studio h4{color:#b8f8f4;margin:24px 0 8px}
html[data-theme='neon-fracture'] .nf-effects-studio p{color:#b6c9da;font-size:.9rem;line-height:1.5}
html[data-theme='neon-fracture'] .nf-preview-stage{display:flex;align-items:center;justify-content:center;padding:22px 0;gap:0;overflow:hidden}
html[data-theme='neon-fracture'] .nf-preview-card{display:grid;place-items:center;width:60px;height:54px;border:1px solid #53ebed;border-radius:2px 12px 2px 12px;color:#9ff7ff;background:#152c3d;box-shadow:inset 0 0 20px #36bdcd18;font:12px monospace}
html[data-theme='neon-fracture'] .nf-preview-wire{width:32px;height:1px;background:linear-gradient(90deg,#20bbce,#ad7cec,#20bbce)}
html[data-theme='neon-fracture'] .nf-sound-library{margin-top:16px}
html[data-theme='neon-fracture'] .nf-sound-library fieldset{border:1px solid #85adbf44;border-radius:8px;padding:12px;margin:12px 0;min-width:0}
html[data-theme='neon-fracture'] .nf-sound-library legend{color:#acefed;font-size:.85rem;padding:0 6px}
html[data-theme='neon-fracture'] .nf-sound-previews{display:flex;flex-wrap:wrap;gap:8px}
html[data-theme='neon-fracture'] .nf-sound-previews button{display:flex;gap:8px;align-items:center;max-width:100%;white-space:normal;min-height:40px}
html[data-theme='neon-fracture'] .nf-sound-previews small{color:#9badc5;font-size:.65rem;white-space:nowrap}
html[data-theme='neon-fracture'] .nf-audio-status{min-height:3em}
@media(max-width:640px){html[data-theme='neon-fracture'] .nf-effects-studio{padding:12px}html[data-theme='neon-fracture'] .nf-synaptic .nf-link{opacity:.08}html[data-theme='neon-fracture'] .nf-signal{filter:none;stroke-width:1.5}}
@media(prefers-reduced-motion:reduce){html[data-theme='neon-fracture'] .nf-synaptic{display:none}}
@media print{.nf-synaptic,.nf-effects-studio{display:none!important}}


/* Source: surprise-worlds.css */
.surprise-environment{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 85% 15%,var(--world-accent-secondary),transparent 65%),var(--world-deep)}.sp-distance,.sp-mid,.sp-near,.sp-dust,.sp-wash{position:absolute;inset:-3%;pointer-events:none}.sp-object{position:absolute;left:var(--x);top:var(--y);animation:sp-float 23s ease-in-out infinite alternate;animation-delay:var(--delay)}.sp-distance{filter:blur(2px);opacity:.35}.sp-mid{opacity:.65}.sp-near{opacity:.8}.sp-distance .sp-object{scale:.6}.sp-near .sp-object{scale:1.3}.sp-wash{background:radial-gradient(ellipse at 45% 45%,transparent 20%,var(--world-deep) 95%);opacity:.7}.sp-mote{position:absolute;left:var(--x);top:var(--y);width:2px;height:2px;background:var(--world-accent);border-radius:50%;box-shadow:0 0 9px var(--world-accent);animation:sp-glimmer 7s ease-in-out infinite alternate;animation-delay:var(--delay)}
[data-scene=prism-vault] .sp-object{width:clamp(110px,20vw,340px);height:clamp(160px,35vh,430px);clip-path:polygon(48% 0,90% 27%,100% 74%,45% 100%,0 65%,10% 20%);background:conic-gradient(from 25deg at 45% 44%,#a6fff355,#d7a4ffcc,#17394a,#efb9ffbb,#22545c,#a6fff355);transform:rotate(calc(var(--i)*27deg))}[data-scene=prism-vault] .sp-mid:after{content:'';position:absolute;width:140%;height:20%;top:30%;left:-20%;background:linear-gradient(transparent,#d3fff529,transparent);transform:rotate(-32deg);animation:sp-beam 19s ease-in-out infinite alternate}
[data-scene=velvet-cosmos]{background:radial-gradient(ellipse at 70% 10%,#6c3a5e,#25172f 75%)}[data-scene=velvet-cosmos] .sp-object{width:clamp(90px,17vw,280px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 24%,#e1b58d,#9f617b 44%,#40273f 77%);border:3px dashed #edc39399;box-shadow:inset -15px -19px 28px #140b2488,10px 25px 25px #08041899}[data-scene=velvet-cosmos] .sp-object:after{content:'';position:absolute;inset:32% -25%;border:7px double #d7ac77;border-radius:50%;transform:rotate(-25deg);box-shadow:0 10px 12px #180b2f88}[data-scene=velvet-cosmos] .sp-near{border-inline:22px solid #5e294a;border-radius:50%;box-shadow:inset 30px 0 40px #09031077,inset -30px 0 40px #09031077}[data-scene=velvet-cosmos] .sp-mote{width:7px;height:7px;border-radius:0;background:#e8c88b;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%)}
[data-scene=meridian-engine]{background:radial-gradient(ellipse at 80% 65%,#2c7776,#12282c 75%)}[data-scene=meridian-engine] .sp-object{width:clamp(160px,32vw,580px);aspect-ratio:1;border-radius:50%;border:12px double #bca374;background:repeating-conic-gradient(from 0deg,#ccb78433 0 1deg,transparent 1deg 12deg);box-shadow:inset 0 0 0 12px #142f34,inset 0 0 0 14px #b49563,0 30px 40px #0007;animation:sp-engine 100s linear infinite;animation-delay:var(--delay)}[data-scene=meridian-engine] .sp-object:before{content:'';position:absolute;inset:22%;border:3px solid #81dbd0;border-radius:50%;box-shadow:0 0 30px #6ef2e633,inset 0 0 30px #6ef2e633}[data-scene=meridian-engine] .sp-object:after{content:'';position:absolute;width:40%;height:5px;top:50%;left:50%;transform-origin:left;background:linear-gradient(90deg,#a99569,#ffdf93);box-shadow:0 4px 8px #0009}[data-scene=meridian-engine] .sp-mid .sp-object{animation-direction:reverse}
.sp-positioned{position:relative}.sp-ornament{position:absolute;right:4px;top:3px;width:32px;height:32px;pointer-events:none!important;color:var(--world-accent);opacity:.6;filter:drop-shadow(0 2px 3px #0004);animation:sp-glimmer 9s ease-in-out infinite alternate}.sp-ornament svg{width:100%;height:100%;pointer-events:none}.sidebar>.sp-ornament{width:70px;height:70px;top:auto;bottom:20px;right:12px}.mobile-nav-selector-field>.sp-ornament{width:27px;height:27px;left:-12px;top:-7px;right:auto;opacity:.95}.mobile-nav-selector-field.sp-decorated{box-shadow:0 0 17px -7px var(--world-accent)}#mobile-nav-sheet>.sp-ornament{top:-15px;right:70px;width:36px;height:36px}#mobile-nav-sheet.sp-decorated{box-shadow:0 -4px 26px -12px var(--world-accent)}html[data-theme=velvet-cosmos] .sp-ornament{color:var(--world-accent-secondary);border-radius:50%;border:1px dashed currentColor}html[data-theme=meridian-engine] .sp-ornament svg{animation:sp-engine 40s linear infinite}
@keyframes sp-float{to{transform:translate(12px,-18px) rotate(8deg)}}@keyframes sp-glimmer{to{opacity:.25;filter:drop-shadow(0 0 8px var(--world-accent))}}@keyframes sp-beam{to{transform:translateY(80px) rotate(-20deg);opacity:.3}}@keyframes sp-engine{to{transform:rotate(360deg)}}html[data-world-depth-motion=off] .surprise-environment *,html[data-background-animations=off] .surprise-environment *,html.world-page-hidden .surprise-environment *,html.world-focus-mode .surprise-environment *,html[data-theme-tuner-environment=still] .surprise-environment *{animation-play-state:paused!important}html[data-decorative-animations=off] .sp-ornament,html[data-decorative-animations=off] .sp-ornament *,html.world-page-hidden .sp-ornament,html.world-page-hidden .sp-ornament *,html[data-theme-tuner-motion=off] .sp-ornament *{animation-play-state:paused!important}html[data-perimeter-decorations=off] .sp-ornament{display:none}html[data-theme-tuner-lighting=off] .sp-mote{box-shadow:none}html[data-mode=light] .surprise-environment{opacity:.68}@media(max-width:700px){.sp-near .sp-object{scale:.85}.sp-ornament{width:23px;height:23px}.sp-dust .sp-mote:nth-child(n+10){display:none}}@media(prefers-reduced-motion:reduce){.surprise-environment *,.sp-ornament,.sp-ornament *{animation:none!important}}

html[data-theme-tuner-particles=off] .sp-dust{display:none}html[data-theme-tuner-particles=low] .sp-mote:nth-child(n+7){display:none}html[data-theme-tuner-decorative=off] .sp-ornament *,html[data-theme-tuner-motion=off] .sp-ornament{animation-play-state:paused!important}html[data-theme-tuner-lighting=off] .sp-ornament{filter:none}

.surprise-environment .sp-object{animation-duration:calc(23s / var(--tuner-motion-speed,1))}.surprise-environment[data-scene=meridian-engine] .sp-object{animation-duration:calc(100s / var(--tuner-motion-speed,1))}html[data-theme-tuner-lighting=off] [data-scene=prism-vault] .sp-mid:after{display:none}.sp-dust{opacity:var(--tuner-effects-number,1)}@media print{.surprise-environment,.sp-ornament{display:none!important}}

/* Scene planes deliberately preserve the common depth and cleanup contract. */
html:is([data-theme=prism-vault],[data-theme=velvet-cosmos]) .world-atmosphere{opacity:1}
html:is([data-theme=prism-vault],[data-theme=velvet-cosmos]) .world-atmosphere>i{display:none}
.surprise-environment.sp-refined{position:absolute;inset:0;overflow:hidden;pointer-events:none;--sp-night:#121a2d;--sp-vault:#26394f;--sp-floor:#273c50;background:radial-gradient(ellipse at 59% 18%,#5f8388 0, var(--sp-night) 63%)}
.sp-refined .sp-distance,.sp-refined .sp-mid,.sp-refined .sp-near,.sp-refined .sp-dust{position:absolute;inset:-2%;pointer-events:none}.sp-refined .sp-distance>svg,.sp-refined .sp-mid>svg,.sp-refined .sp-near>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.pv-vault{fill:var(--sp-vault)}.pv-floor{fill:var(--sp-floor);opacity:.8}.pv-refraction{position:absolute;inset:0;background:linear-gradient(117deg,transparent 50%,#d1abfb22 52%,#9eeedb22 54%,transparent 57%);animation:sp-refraction calc(18s / var(--tuner-motion-speed,1)) ease-in-out infinite alternate}
.pv-beam{position:absolute;width:90%;height:80%;top:-20%;transform-origin:50% 0;clip-path:polygon(49% 0,51% 0,94% 100%,15% 100%);background:linear-gradient(#f9f4db60,#c3e8e415,transparent);mix-blend-mode:screen;animation:sp-beam calc(17s / var(--tuner-motion-speed,1)) ease-in-out infinite alternate}.pv-beam-a{left:7%;rotate:-17deg}.pv-beam-b{left:25%;rotate:28deg;opacity:.45;animation-delay:-9s;animation-duration:calc(29s / var(--tuner-motion-speed,1))}
html[data-mode=light] [data-scene=prism-vault]{--sp-night:#c7dce0;--sp-vault:#88a4af;--sp-floor:#aec4cc;background:radial-gradient(ellipse at 58% 18%,#f4e9ff,#bad4d7 62%,#849fb6)}html[data-mode=light] [data-scene=prism-vault] .pv-beam{background:linear-gradient(#fffdf3b0,#d6fff75c,transparent);mix-blend-mode:normal}
[data-scene=velvet-cosmos]{background:#21182d;--vc-cloth:#38283d;--vc-curtain:#53253f;--vc-velvet-light:#884b65;--vc-stage:#4c3342}
.vc-backcloth{position:absolute;inset:0;background:radial-gradient(ellipse at 72% 20%,#8d665c33,transparent 50%),repeating-linear-gradient(0deg,#ffffff04 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,#0000000d 0 1px,transparent 1px 4px),var(--vc-cloth)}
.vc-star{transform-origin:var(--pivot);animation:sp-swing calc(13s / var(--tuner-motion-speed,1)) ease-in-out infinite alternate}.vc-star:nth-child(3n){animation-delay:-7s;animation-duration:calc(21s / var(--tuner-motion-speed,1))}.vc-planet{position:absolute;right:9%;top:11%;width:clamp(150px,26vw,410px);aspect-ratio:1;animation:sp-swing calc(25s / var(--tuner-motion-speed,1)) ease-in-out infinite alternate;transform-origin:50% -70%;filter:drop-shadow(18px 28px 16px #08041666)}.vc-planet:before{content:'';position:absolute;bottom:99%;left:50%;height:50vh;border-left:2px solid #d5b99488}.vc-planet-sphere{position:absolute;inset:0;border-radius:50%;background:repeating-linear-gradient(12deg,#ffffff07 0 1px,transparent 1px 3px),radial-gradient(circle at 28% 23%,#e7bd8f,#be7b86 38%,#714452 74%,#392239);box-shadow:inset -13px -15px 24px #2b152466,inset 4px 3px 6px #ffe4bd55;border:3px solid #edc9a777}.vc-seam{inset:7% 20%!important;border-inline:2px dashed #ffdeb8aa;border-radius:50%;rotate:-20deg}.vc-ring{position:absolute;inset:35% -19%;border:12px solid #bb9374;border-radius:50%;rotate:-24deg;box-shadow:inset 0 3px #f9d5a8,0 4px 4px #331c3455}.vc-ring-back{z-index:-1}.vc-ring-front{clip-path:polygon(-10% 50%,110% 50%,110% 130%,-10% 130%)}.vc-hills{position:absolute;inset:0;opacity:.6}.vc-hills svg{width:100%;height:100%}
.vc-curtain{position:absolute;top:0;bottom:0;width:clamp(30px,13vw,200px);background:repeating-linear-gradient(90deg,#170c2633 0,#ffffff07 10%,#10071966 23%,var(--vc-velvet-light) 32%,var(--vc-curtain) 45%);box-shadow:12px 0 25px #10081766;animation:sp-curtain calc(19s / var(--tuner-motion-speed,1)) ease-in-out infinite alternate;transform-origin:50% 0}.vc-left{left:-2%;clip-path:polygon(0 0,100% 0,74% 30%,65% 54%,100% 100%,0 100%)}.vc-right{right:-2%;scale:-1 1;clip-path:polygon(0 0,100% 0,70% 27%,70% 50%,100% 100%,0 100%);animation-delay:-8s}.vc-curtain:after{content:'';position:absolute;left:0;right:0;top:54%;height:16px;background:repeating-linear-gradient(90deg,#b18b55 0 3px,#f1d092 3px 6px);box-shadow:0 3px 8px #170e2466;rotate:-6deg}.vc-valance{position:absolute;inset:0 0 auto;height:85px;background:repeating-radial-gradient(ellipse at 50% 0,var(--vc-velvet-light),var(--vc-curtain) 36%,#291529 56%);border-bottom:5px double #ba975e;clip-path:polygon(0 0,100% 0,100% 40%,88% 85%,72% 50%,54% 88%,38% 50%,20% 88%,0 45%)}.vc-stage{position:absolute;inset:auto 0 0;height:4%;background:linear-gradient(#cb986d22,transparent 20%),repeating-linear-gradient(90deg,transparent 0 10%,#c8a17422 10% 10.2%),var(--vc-stage);border-top:2px solid #bd936855}.vc-spotlight{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 23%,#ffddad24,transparent 44%);animation:sp-light calc(15s / var(--tuner-motion-speed,1)) ease-in-out infinite alternate}
html[data-mode=light] [data-scene=velvet-cosmos]{--vc-cloth:#e3c4b1;--vc-curtain:#a4556d;--vc-velvet-light:#ce8291;--vc-stage:#a97861;background:#dfc8b9}html[data-mode=light] [data-scene=velvet-cosmos] .vc-backcloth{background:radial-gradient(ellipse at 72% 20%,#fff4d477,transparent 50%),repeating-linear-gradient(0deg,#ffffff16 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,#6f304b0b 0 1px,transparent 1px 4px),var(--vc-cloth)}
/* Substantial readable surfaces, with material visible in the margins. */
html[data-world][data-theme=velvet-cosmos][data-mode=light] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet){background:color-mix(in srgb,var(--world-accent) 10%,#fff4df)!important;border-color:#ab777c!important}html[data-world][data-theme=prism-vault][data-mode=light] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet){background:color-mix(in srgb,var(--world-accent-secondary) 16%,#ecfaf9)!important;border-color:#708d9f!important}html[data-world][data-theme=velvet-cosmos][data-mode=light] #app-view .panel{background:#fff6e9ed!important;box-shadow:0 10px 25px -14px #6d314c66,inset 0 1px #fff8!important}html[data-world][data-theme=prism-vault][data-mode=light] #app-view .panel{background:#f5fbfaed!important;box-shadow:0 10px 25px -14px #315a7766,inset 0 1px #fff8!important}
.sp-positioned{position:relative}.sp-refined-ornament{position:absolute;right:4px;top:3px;width:30px;height:30px;pointer-events:none!important;color:var(--world-accent);opacity:.75;filter:drop-shadow(1px 3px 2px #0004)}.sp-refined-ornament svg{width:100%;height:100%;pointer-events:none}.sidebar>.sp-refined-ornament{width:44px;height:44px;top:auto;bottom:14px;right:5px}.mobile-nav-selector-field>.sp-refined-ornament{width:22px;height:22px;left:-9px;top:-7px;right:auto}.mobile-nav-selector-field.sp-decorated{box-shadow:0 0 17px -7px var(--world-accent)}#mobile-nav-sheet>.sp-refined-ornament{top:-15px;right:70px;width:30px;height:30px}html[data-theme=velvet-cosmos] .sp-refined-ornament{color:#b38a54;filter:drop-shadow(1px 2px 0 #623d5388)}html[data-theme=velvet-cosmos] .sp-refined-ornament svg{stroke-width:2;stroke-dasharray:2 1}
@keyframes sp-refraction{to{transform:translateX(4%);opacity:.4}}@keyframes sp-beam{to{transform:rotate(12deg);opacity:.45}}@keyframes sp-swing{from{rotate:-3deg}to{rotate:3deg}}@keyframes sp-curtain{to{transform:skewX(1.2deg);filter:brightness(1.12)}}@keyframes sp-light{to{opacity:.5;transform:translateX(-4%)}}
html[data-world-depth-motion=off] .surprise-environment.sp-refined *,html[data-background-animations=off] .surprise-environment.sp-refined *,html.world-page-hidden .surprise-environment.sp-refined *,html.world-focus-mode .surprise-environment.sp-refined *,html[data-theme-tuner-environment=still] .surprise-environment.sp-refined *,html[data-theme-tuner-motion=off] .surprise-environment.sp-refined *{animation-play-state:paused!important}html[data-theme-tuner-lighting=off] :is(.pv-beam,.pv-refraction,.vc-spotlight){display:none}html[data-perimeter-decorations=off] .sp-refined-ornament{display:none}.sp-refined .sp-dust{opacity:var(--tuner-effects-number,1)}
@media(max-width:700px){.vc-curtain{width:48px}.vc-valance{height:50px}.vc-planet{top:13%;right:2%;width:165px}.vc-hills{opacity:.45}.sp-refined-ornament{width:21px;height:21px}.sidebar>.sp-refined-ornament{width:34px;height:34px}.sp-refined .sp-distance>svg,.sp-refined .sp-mid>svg,.sp-refined .sp-near>svg{width:160%;left:-30%}.vc-star{animation-duration:25s}}
@media(prefers-reduced-motion:reduce){.surprise-environment.sp-refined *,.sp-refined-ornament{animation:none!important}}@media print{.surprise-environment.sp-refined,.sp-refined-ornament{display:none!important}}

.sp-refined :is(.sp-distance,.sp-mid,.sp-near){opacity:1;filter:none;border:0;border-radius:0;box-shadow:none}.surprise-environment.sp-refined{opacity:1}html[data-mode=light] .surprise-environment.sp-refined{opacity:1}
html[data-theme=terracotta-dawn] .world-atmosphere{opacity:1}html[data-theme=terracotta-dawn] .world-atmosphere>i{display:none}
[data-scene=terracotta-dawn]{background:#c37b58}.td-stage{position:absolute;inset:auto;overflow:visible}.td-plate{position:absolute;inset:0;background-size:100% 100%;background-repeat:no-repeat}.td-day{background-image:url('/art/terracotta-dawn-day.png')}.td-night{background-image:url('/art/terracotta-dawn-night.png');opacity:0;transition:opacity 1.2s}html[data-mode=dark] .td-night{opacity:1}.td-glow{position:absolute;inset:-3%;pointer-events:none}.td-river-light{inset:auto 12% 0 50%!important;height:34%;background:radial-gradient(ellipse at 62% 65%,#defef84d,transparent 55%);mix-blend-mode:screen;animation:td-shimmer calc(11s / var(--tuner-motion-speed,1)) ease-in-out infinite alternate}.td-haze{inset:35% 0 24%!important;background:linear-gradient(transparent,#ffe0b511,transparent);animation:td-haze calc(27s / var(--tuner-motion-speed,1)) ease-in-out infinite alternate}html[data-mode=dark] .td-haze{background:linear-gradient(transparent,#c6e5ff16,transparent)}html[data-theme-tuner-lighting=off] .td-glow{display:none}html[data-theme=terracotta-dawn] .sp-refined-ornament{color:var(--world-accent-secondary);opacity:.85;filter:drop-shadow(2px 3px 1px #532c3c55)}html[data-theme=terracotta-dawn] .sp-refined-ornament svg{fill:currentColor;fill-opacity:.45;stroke-width:1.5}
html[data-world][data-theme=terracotta-dawn][data-mode=light] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet){background:color-mix(in srgb,var(--world-accent) 8%,var(--world-surface))!important}
@keyframes td-shimmer{to{opacity:.25;transform:translate(-4%,2%)}}@keyframes td-haze{to{transform:translateX(2%);opacity:.45}}
html[data-world-depth-motion=off] .td-glow *,html[data-background-animations=off] .td-glow *,html[data-theme-tuner-motion=off] .td-glow *,html[data-theme-tuner-environment=still] .td-glow *,html.world-focus-mode .td-glow *,html.world-page-hidden .td-glow *{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.td-glow *{animation:none!important}}@media print{.td-stage,.td-glow{display:none!important}}


/* Source: today-guest-feedback.css */
.guest-praise-highlights-card > .panel-head { align-items:center; gap:12px; padding:12px 14px 8px; }
.guest-praise-highlights-card > .panel-head h3 { margin:0; }
.guest-praise-highlights-card > .panel-body { padding:8px 14px 14px; }
.guest-feedback-sr-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.guest-praise-highlights-card { min-width:0; }
.guest-praise-highlights-card .guest-praise-highlight { margin-top:0; }
.guest-praise-highlights-card .guest-praise-navigation button,
.guest-praise-highlights-card .guest-praise-refresh { min-width:44px; min-height:44px; }
.guest-praise-highlights-card [hidden] { display:none !important; }
.guest-praise-highlights-card :focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
/* One secondary, theme-aware rating strip; no card-height coupling. */
html #app-view #dashboard-view .guest-cleanliness-compact {
  display:flex; flex-wrap:wrap; align-items:center; gap:4px 0; grid-column:1/-1;
  width:100%; max-width:100%; min-width:0; min-height:0; margin:0; padding:5px 10px;
  color:var(--text); background:color-mix(in srgb,var(--card,var(--panel)) 75%,transparent);
  border:1px solid var(--border); border-radius:10px; box-shadow:none;
}
html #app-view .guest-cleanliness-heading { font-size:12px; line-height:1.3; font-weight:600; margin:0 12px 0 0; color:var(--muted,var(--text)); }
html #app-view .guest-cleanliness-metric {
  display:flex; align-items:center; gap:7px; min-width:0; min-height:34px; margin:0; padding:5px 12px;
  background:transparent; border:0; border-left:1px solid var(--border); border-radius:0;
  color:var(--text); font:inherit; box-shadow:none; cursor:pointer;
}
html #app-view .guest-cleanliness-metric:hover { background:color-mix(in srgb,var(--accent) 9%,transparent); }
html #app-view .guest-cleanliness-metric:focus-visible,html #app-view .guest-cleanliness-refresh:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }
html #app-view .guest-cleanliness-label { font-size:11px; line-height:1.2; color:var(--muted,var(--text)); }
html #app-view .guest-cleanliness-metric .guest-praise-value { font-size:14px; font-weight:650; line-height:1.2; white-space:nowrap; font-variant-numeric:tabular-nums; }
html #app-view .guest-cleanliness-metric .guest-praise-denominator { display:inline; font-size:10px; font-weight:400; }
html #app-view .guest-cleanliness-metric .guest-praise-unrated { font-size:11px; white-space:normal; }
html #app-view .guest-cleanliness-chevron { font-size:16px; color:var(--muted,var(--text)); }
html #app-view .guest-cleanliness-refresh { flex:none; margin-left:auto; min-width:32px; min-height:32px; padding:4px; border:0; background:transparent; color:var(--text); cursor:pointer; border-radius:5px; }
@media(max-width:540px) {
  html #app-view .guest-cleanliness-heading { flex-basis:100%; margin:2px 0 3px; }
  html #app-view .guest-cleanliness-metric { padding:5px 8px; gap:5px; }
  html #app-view .guest-cleanliness-metric[data-platform="Airbnb"] { border-left:0; padding-left:0; }
}
@media print { .guest-praise-highlights-card { display:none !important; } }

/* Greeting and public excerpts float directly below the page header. */
html #app-view #dashboard-view { margin-top:0 !important; align-content:start; }
html #app-view #dashboard-view > .today-intro {
  grid-column:1/-1; order:-1000; width:100%; min-width:0; margin:0; padding:0;
  background:none; border:0; box-shadow:none;
}
html #app-view .today-intro > .housekeeper-greeting { margin:0 !important; padding:0 !important; min-height:0 !important; width:auto; }
html #app-view .today-guest-praise {
  display:grid; position:relative; max-width:62ch; margin:0 auto; padding:var(--today-card-gap,18px) 8px 0;
  color:color-mix(in srgb,var(--accent-hover,var(--accent)) 80%,var(--text)); background:none; border:0; border-radius:0; box-shadow:none;
  text-align:center; text-shadow:0 1px 2px var(--bg),0 2px 8px var(--bg);
}
html #app-view .today-guest-praise[hidden] { display:none; }
html #app-view .today-guest-praise-layer {
  grid-area:1/1; display:flex; flex-direction:column; justify-content:center; margin:0; padding:0; opacity:0; visibility:hidden;
  transition:opacity 280ms ease, visibility 280ms;
}
html #app-view .today-guest-praise-layer.is-current { opacity:1; visibility:visible; }
html #app-view .today-guest-praise blockquote {
  margin:0; padding:0; border:0; background:none; color:inherit;
  font-family:"Sentient",Georgia,"Times New Roman",serif; font-style:italic;
  font-size:18px; font-weight:500; line-height:1.5; overflow-wrap:anywhere;
}
html #app-view .today-guest-praise figcaption { margin:5px 0 0; font-size:10px; line-height:1.3; color:var(--text); opacity:.72; }
html #app-view .today-guest-praise:focus-visible { outline:2px solid var(--accent); outline-offset:4px; border-radius:4px; }
html #app-view .summary-grid .today-stripped-count { display:block !important; font-size:11px; line-height:1.25; margin-top:4px; color:var(--text); opacity:.8; }
@media(max-width:700px) { html #app-view .today-guest-praise blockquote { font-size:17px; } }
@media(prefers-reduced-motion:reduce) { html #app-view .today-guest-praise-layer { transition:none; } }
@media print { .today-guest-praise { display:none !important; } }

html #app-view #dashboard-view .summary-grid > .today-finished-metric { grid-column:span 2; }

/* A single fixed-height quote frame keeps updates and transitions in place. */
html #app-view .today-guest-praise .gp-copy{grid-area:auto;block-size:112px;min-block-size:112px;display:flex;justify-content:center;gap:5px;position:relative;}
html #app-view .today-guest-praise .gp-copy blockquote{font-size:16px;line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-block-size:4.2em;}
html #app-view .today-guest-praise .gp-copy figcaption{line-height:1.35;max-block-size:2.7em;overflow:hidden;margin:0;}
html #app-view .gp-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 14px;min-height:28px;}
html #app-view .gp-navigation{display:flex;align-items:center;gap:3px;}
html #app-view .gp-navigation[hidden]{display:none;}
html #app-view .gp-arrow{border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);padding:0;inline-size:28px;block-size:28px;min-block-size:28px;font-size:18px;cursor:pointer;}
html #app-view .gp-arrow:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
html #app-view .gp-arrow:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);}
html #app-view .gp-position,html #app-view .gp-updated{font-size:10px;color:var(--text);opacity:.7;font-variant-numeric:tabular-nums;}
html #app-view .gp-reaction{position:absolute;bottom:29px;right:6px;max-width:100%;font-size:9px;opacity:.65;pointer-events:none;}
html #app-view .gp-standalone{max-width:none;padding:0 14px 8px;}
html #app-view .gp-standalone>.panel-head{padding-inline:0;}
html #app-view .today-guest-praise[data-praise-mood=cyber] .gp-copy{border-block-end:1px solid color-mix(in srgb,var(--ad-a,#00edff) 35%,transparent);}
html #app-view .today-guest-praise[data-praise-mood=enchanted] .gp-copy::after,html #app-view .today-guest-praise[data-praise-mood=christmas] .gp-copy::after{content:'✦  ·  ✧';position:absolute;inset:2px 3px auto auto;font-size:9px;letter-spacing:6px;color:var(--accent);opacity:.35;pointer-events:none;}
html #app-view .today-guest-praise[data-praise-mood=christmas] .gp-copy::after{color:#d7ae60;content:'·  ✦  ·';}
html #app-view .today-guest-praise[data-praise-mood=ghost] .gp-copy{text-shadow:0 2px 8px color-mix(in srgb,var(--accent) 18%,transparent);}
html #app-view .today-guest-praise[data-praise-motion=off] .gp-copy{transition:none;}
@media(pointer:coarse){html #app-view .gp-arrow{inline-size:44px;block-size:44px;}}


/* Source: today-room-progress.css */
/* Independent milestones, not slices of a shared total. */
html #app-view .today-room-progress-host { grid-column:1/-1; width:100%; min-width:0; }
html #app-view .today-room-progress { color:var(--text); background:var(--card,var(--panel)); border:1px solid var(--border); border-radius:12px; padding:12px; margin:0; }
.today-room-progress > header { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; margin:0 0 9px; }
.today-room-progress h3 { margin:0; font-size:13px; font-weight:650; }
.today-room-progress header small { font-size:11px; color:var(--muted,var(--text)); }
.today-progress-help { margin-left:auto; font-size:12px; }
.today-progress-stages { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
html #app-view .today-progress-stage { --progress-color:var(--accent); display:grid; grid-template-columns:1fr auto; gap:7px; align-items:center; min-width:0; min-height:48px; margin:0; padding:9px 10px; color:var(--text); background:color-mix(in srgb,var(--progress-color) 6%,transparent); border:1px solid var(--border); border-radius:8px; cursor:pointer; text-align:left; font:inherit; }
html #app-view .today-progress-stage[data-progress-stage="cleaned"] { --progress-color:var(--accent-alt,#8d85d5); }
html #app-view .today-progress-stage[data-progress-stage="finished"] { --progress-color:var(--warning,#b48230); }
html #app-view .today-progress-stage[data-progress-stage="inspected"] { --progress-color:var(--success,#459c7a); }
.today-progress-label { font-size:12px; line-height:1.3; }
.today-progress-stage strong { font-size:17px; line-height:1; font-variant-numeric:tabular-nums; }
.today-progress-track { grid-column:1/-1; height:4px; border-radius:8px; overflow:hidden; background:color-mix(in srgb,var(--text) 12%,transparent); }
.today-progress-track i { display:block; width:100%; height:100%; background:var(--progress-color); transform-origin:left; transition:transform 220ms ease; }
html #app-view .today-progress-stage:hover { background:color-mix(in srgb,var(--progress-color) 13%,transparent); }
html #app-view .today-progress-stage[aria-pressed="true"] { border-color:var(--progress-color); box-shadow:inset 0 0 0 1px var(--progress-color); }
.today-progress-stage:focus-visible,.today-progress-help:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.today-progress-filter-bar { display:flex; flex-wrap:wrap; gap:6px; padding:8px 0 12px; }
.today-progress-filter-bar button { min-height:36px; }
.today-progress-filter-bar [aria-pressed="true"] { background:var(--accent); color:var(--on-accent,#fff); }
#today-summary-dialog .today-progress-empty { padding:16px; font-size:13px; text-align:center; color:var(--muted,var(--text)); }
@media(max-width:600px) { .today-progress-stages { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; } html #app-view .today-room-progress { padding:10px; } .today-room-progress header small { font-size:10px; } }
@media(prefers-reduced-motion:reduce) { .today-progress-track i { transition:none; } }


/* Source: gilt-fault.css */
/* Gilt Fault — patinated switchboard enamel, brass seams, exposed live circuits. */
html[data-theme=gilt-fault]{--gf-cyan:#55e5db;--gf-coral:#ff8879;--gf-brass:#9e8253;--gf-core:#eafffa;--gf-field:#111a1d;--gf-grain:#dfc19509}
html[data-theme=gilt-fault][data-mode=light]{--gf-cyan:#087f83;--gf-coral:#be4c53;--gf-brass:#8f7348;--gf-core:#e5ffff;--gf-field:#d5cbbb;--gf-grain:#58462a09}
html[data-world][data-theme=gilt-fault][data-mode] .world-atmosphere{opacity:1!important}
html[data-theme=gilt-fault] .world-atmosphere>i{display:none}
.gf-environment{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:var(--gf-field)}
.gf-enamel{position:absolute;inset:0;background:radial-gradient(ellipse at 80% 15%,#4c746b24,transparent 48%),radial-gradient(ellipse at 20% 85%,#98615c19,transparent 48%),linear-gradient(115deg,#ffffff04 15%,#00000012 15.2%,transparent 15.7%,transparent 76%,#ffffff05 76.1%,#0000000c 77%),repeating-linear-gradient(90deg,transparent 0 91px,var(--gf-grain) 92px 93px,transparent 94px 184px)}
.gf-patina{position:absolute;inset:0;background:repeating-linear-gradient(173deg,transparent 0 112px,var(--gf-grain) 113px,transparent 114px 287px);opacity:.6}
.gf-bus{position:absolute;width:18px;top:96px;bottom:30px;background:linear-gradient(90deg,transparent 0 4px,var(--gf-brass) 4px 5px,transparent 5px 10px,var(--gf-brass) 10px 11px,transparent 11px);opacity:.55}
.gf-bus-a{left:calc(224px + 13px)}.gf-bus-b{right:14px}
.gf-bus:before{content:'';position:absolute;left:6px;width:3px;height:75px;background:linear-gradient(transparent,var(--gf-cyan),var(--gf-core),transparent);box-shadow:0 0 10px color-mix(in srgb,var(--gf-cyan) 40%,transparent);animation:gf-bus 19s linear infinite}
.gf-bus-b:before{background:linear-gradient(transparent,var(--gf-coral),transparent);animation-delay:-9s;animation-duration:23s}
.gf-circuit-layer{position:fixed;inset:0;z-index:5;pointer-events:none!important;overflow:hidden}
.gf-circuit-layer *{pointer-events:none!important}.gf-circuit-layer[data-obscured=yes]{visibility:hidden}
.gf-rim{position:absolute;--gf-live:var(--gf-cyan);contain:layout style;pointer-events:none}
.gf-rim[data-tone=coral]{--gf-live:var(--gf-coral)}.gf-rim svg{overflow:visible}
.gf-metal{stroke:var(--gf-brass);stroke-width:1;opacity:.7}
.gf-trace{stroke:var(--gf-live);stroke-width:2;stroke-dasharray:25 75;stroke-dashoffset:8;opacity:.65;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--gf-live) 70%,transparent))}
.gf-charge{stroke:var(--gf-live);stroke-width:3;stroke-linecap:round;stroke-dasharray:8 92;filter:drop-shadow(0 0 4px var(--gf-live));animation:gf-charge var(--gf-cycle) linear var(--gf-phase) infinite}
.gf-fault{stroke:var(--gf-coral);stroke-width:1.9;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 4px var(--gf-coral));animation:gf-fault 6s ease-in-out var(--gf-phase) infinite}
.gf-splinter{stroke:var(--gf-coral);stroke-width:1.2;stroke-linecap:round;transform-box:fill-box;transform-origin:center;animation:gf-splinter 6s ease-in-out var(--gf-phase) infinite;opacity:.5}
.gf-scar{stroke:var(--gf-field);stroke-width:2}
html[data-world][data-theme=gilt-fault][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet){background:linear-gradient(115deg,var(--world-elevated),var(--world-surface) 40%)!important;color:var(--world-text)!important;border-color:var(--world-border)!important;box-shadow:inset 0 0 0 3px var(--world-surface),inset 0 0 0 4px color-mix(in srgb,var(--world-accent) 30%,transparent),0 12px 22px -20px #000b}
html[data-world][data-theme=gilt-fault][data-mode] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.summary-card){background-color:var(--world-surface)!important;color:var(--world-text);border:1px solid var(--world-border)!important;box-shadow:inset 0 1px #c9aa6530,0 18px 30px -23px #000c!important;backdrop-filter:none}
html[data-world][data-theme=gilt-fault][data-mode] #app-view .view .panel-head{background:linear-gradient(100deg,var(--world-elevated),var(--world-surface))!important;border-bottom:3px double var(--world-border)!important}
html[data-world][data-theme=gilt-fault][data-mode] .nav-item.active{box-shadow:inset 3px 0 var(--world-accent-secondary)!important}
html[data-world][data-theme=gilt-fault][data-mode] .mobile-nav-selector-field{background:var(--world-elevated)!important;border:2px solid var(--world-border)!important;border-left:3px solid var(--world-accent-secondary)!important;border-radius:5px!important}
html[data-world][data-theme=gilt-fault][data-mode] .housekeeper-greeting{color:var(--world-text)!important;text-shadow:none!important}
html[data-world][data-theme=gilt-fault][data-mode] .housekeeper-greeting em{color:var(--world-accent)!important;animation:none!important;text-shadow:none!important}
html[data-world][data-theme=gilt-fault][data-mode] .today-guest-praise{color:color-mix(in srgb,var(--world-accent) 80%,var(--world-text));text-shadow:none}
.world-preview[data-world=gilt-fault] .world-portal-art{background:linear-gradient(135deg,transparent 25%,var(--gf-brass) 25.3% 26%,transparent 26.3% 66%,var(--gf-cyan) 66.3% 67%,transparent 67.3%),linear-gradient(90deg,transparent 74%,var(--gf-coral) 74.3% 75%,transparent 75.3%),var(--gf-field)!important;mask:none!important;opacity:1!important;filter:none!important}
.world-preview[data-world=gilt-fault] .world-portal-art::before,.world-preview[data-world=gilt-fault] .world-portal-art::after{display:none!important}
@layer surface-material{html[data-world][data-theme=gilt-fault][data-mode] #app-view .view :is(.panel,.metric,.room-card):not(.arrival-tier):not(.early-tier):not(.finished){background-color:color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,100%),transparent)!important;border-width:1px!important;box-shadow:var(--surface-shadow),inset 0 0 0 3px var(--world-surface),inset 0 0 0 4px color-mix(in srgb,var(--world-accent) 22%,transparent)!important}}
@keyframes gf-charge{to{stroke-dashoffset:-100}}
/* A six-second rounded surge on a 26px fault. No on/off flash or full-screen strobe. */
@keyframes gf-fault{0%,100%{opacity:.45}40%{opacity:1}65%{opacity:.65}}
@keyframes gf-splinter{0%,100%{opacity:.25;transform:translateY(0)}40%{opacity:.8;transform:translateY(-2px)}65%{opacity:.4;transform:translateY(-1px)}}
@keyframes gf-bus{from{top:-80px}to{top:100%}}
:is(.gf-environment,.gf-circuit-layer)[data-running=no] *{animation-play-state:paused!important}
html.world-page-hidden :is(.gf-environment,.gf-circuit-layer) *,html.world-focus-mode :is(.gf-environment,.gf-circuit-layer) *,html[data-world-motion=off] :is(.gf-environment,.gf-circuit-layer) *,html[data-background-animations=off] :is(.gf-environment,.gf-circuit-layer) *,html[data-theme-tuner-motion=off] :is(.gf-environment,.gf-circuit-layer) *,html[data-theme-tuner-environment=still] :is(.gf-environment,.gf-circuit-layer) *,html[data-decorative-animations=off] .gf-circuit-layer *,html[data-animations=off] :is(.gf-environment,.gf-circuit-layer) *{animation:none!important}
.gf-environment :before{animation-play-state:inherit}
html[data-theme-tuner-lighting=off] :is(.gf-charge,.gf-fault,.gf-splinter,.gf-bus:before){filter:none;opacity:.35;box-shadow:none}
html.world-focus-mode .gf-circuit-layer{opacity:.35}
@media(max-width:700px){.gf-bus-a{left:5px}.gf-bus-b{right:5px}.gf-bus{opacity:.35;width:10px}.gf-bus:before{animation:none;top:14%;height:120px;width:2px}.gf-charge{filter:drop-shadow(0 0 2px var(--gf-live))}.gf-splinter{display:none}.gf-circuit-layer{z-index:3}}
@media(prefers-reduced-motion:reduce){:is(.gf-environment,.gf-circuit-layer) *,:is(.gf-environment,.gf-circuit-layer) :before{animation:none!important;transition:none!important}.gf-charge{stroke-dashoffset:-40;opacity:.8}.gf-fault{opacity:.7}.gf-splinter{display:none}.gf-bus:before{top:20%;opacity:.5}}
@media print{.gf-environment,.gf-circuit-layer{display:none!important}}
.world-preview[data-world=gilt-fault]{--gf-brass:#8f7348;--gf-cyan:#087f83;--gf-coral:#be4c53;--gf-field:#d5cbbb}
.world-preview[data-world=gilt-fault][data-mode=dark]{--gf-brass:#9e8253;--gf-cyan:#55e5db;--gf-coral:#ff8879;--gf-field:#111a1d}
html:is(.world-page-hidden,.world-focus-mode,[data-world-motion=off],[data-background-animations=off],[data-theme-tuner-motion=off],[data-theme-tuner-environment=still],[data-animations=off]) .gf-bus:before{animation:none!important;top:20%}


/* Source: room-mobile-editor.css */
[data-room-mobile] { display: none; }
@media (max-width: 600px) {
  [data-room-mobile] { display: block; min-width: 0; }
  .room-spreadsheet > .dc-scroll,
  .room-spreadsheet > .mm-scroll,
  .room-spreadsheet > .dc-filters,
  .room-spreadsheet > .ri-filters,
  .room-spreadsheet > .mm-filters,
  .room-spreadsheet > .dc-bulk-bar,
  .room-spreadsheet > .ri-bulk-bar,
  .room-spreadsheet [data-ri-select],
  .room-spreadsheet [data-dc-select],
  .room-spreadsheet [data-mm-select] { display: none; }
  .room-mobile-editor { display: grid; gap: .8rem; min-width: 0; }
  .room-mobile-picker { display: grid; gap: .35rem; font-weight: 700; }
  .room-mobile-picker select { width: 100%; min-height: 44px; }
  .room-mobile-help, .room-mobile-recorded, .room-mobile-item p { font-size: .85rem; margin: .4rem 0; }
  .room-mobile-items { display: grid; gap: .75rem; min-width: 0; }
  .room-mobile-item { padding: .85rem; border: 1px solid currentColor; border-radius: .75rem; min-width: 0; overflow-wrap: anywhere; }
  .room-mobile-item h3 { font-size: 1rem; margin: 0 0 .4rem; }
  .room-mobile-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
  .room-mobile-choices .button { min-height: 44px; white-space: normal; padding: .5rem; }
  .room-mobile-choices [aria-pressed="true"] { outline: 2px solid currentColor; outline-offset: -3px; font-weight: 800; }
  .room-mobile-item label { display: grid; gap: .35rem; margin: .65rem 0; }
  .room-mobile-item input, .room-mobile-item select, .room-mobile-item textarea { box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; }
  .room-mobile-item textarea { min-height: 80px; }
  .room-mobile-draft { font-weight: 700; }
  .room-mobile-save { position: sticky; bottom: env(safe-area-inset-bottom, 0); z-index: 4; display: grid; gap: .4rem; padding: .8rem; border: 1px solid currentColor; border-radius: .65rem; background: var(--card-bg, var(--surface, Canvas)); color: inherit; }
  .room-mobile-save .button { min-height: 48px; }
  .room-mobile-save span { text-align: center; font-size: .8rem; }
}

/* One cross-room completion picker shared by lists, grids and phone views. */
.room-task-selection { min-width: 0; }
.selection-filters { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: .7rem; }
.room-task-selection label { min-width: 0; }
.selection-filters label, .selection-item span { display: grid; gap: .35rem; }
.selection-filters input, .selection-filters select, [data-selection-performer] { width: 100%; min-width: 0; min-height: 44px; box-sizing: border-box; }
.selection-items { max-height: 42vh; overflow: auto; border-block: 1px solid currentColor; margin-block: .6rem; }
.selection-items .selection-item { display: flex; align-items: center; gap: .75rem; min-height: 48px; padding: .6rem .2rem; margin: 0; overflow-wrap: anywhere; }
.selection-item input { flex: 0 0 auto; width: 22px; height: 22px; }
.selection-item small, .selection-attribution { font-size: .8rem; }
.selection-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .75rem; }
.selection-actions .button { min-height: 44px; }
.selection-review { overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .selection-filters { grid-template-columns: minmax(0, 1fr); }
  .selection-actions .button { flex: 1; white-space: normal; }
  .selection-items { max-height: 35vh; }
}

/* Compact column actions use native keyboard/touch select behavior. */
.dc-table thead .room-column-select { display:block; width:100%; max-width:190px; min-height:32px; margin:.25rem auto 0; padding:3px 6px; font:inherit; font-size:12px; }
.room-task-original { overflow-wrap:anywhere; }


/* Source: impossible-theatre.css */
/* THE IMPOSSIBLE THEATRE — original scenic geometry, independently moving flats.
   Every ornament is inert. Content surfaces are opaque enough for operational reading. */
@media screen {
 html[data-theme='impossible-theatre'] {
  --it-gold:#d7ac62;--it-stone:#d4c09a;--it-stone-shadow:#715946;--it-cobalt:#304a91;--it-cobalt-dark:#111d40;
  --it-emerald:#267970;--it-emerald-dark:#103c39;--it-deep:#0b1021;--it-sky:#10152b;--it-sky-light:#485070;--it-sun:#c6b591;
  --it-roof:#842e49;--it-window:#ffd994;--it-distant:#243745;--it-velvet:#842e49;--it-velvet-shadow:#260e25;--it-glass:#2eaaa5;
  --theme-badge-radius:3px 10px 3px 3px;--theme-badge-clip:none;
 }
 html[data-theme='impossible-theatre'][data-mode='light'] {
  --it-gold:#ad803b;--it-stone:#f7eedc;--it-stone-shadow:#bb996d;--it-cobalt:#3155a0;--it-cobalt-dark:#203d79;
  --it-emerald:#318776;--it-emerald-dark:#205c50;--it-deep:#49352d;--it-sky:#c1cab9;--it-sky-light:#f7eedc;--it-sun:#fff4c4;
  --it-roof:#b65f61;--it-window:#fff3b6;--it-distant:#91a9a4;--it-velvet:#d8a0ad;--it-velvet-shadow:#87516b;--it-glass:#217c80;
 }
 html[data-theme='impossible-theatre'][data-world] body {background:var(--it-deep)!important;}
 html[data-theme='impossible-theatre'][data-world] .workspace {background:transparent!important;isolation:isolate;}
 html[data-theme='impossible-theatre'] :is(.world-atmosphere,.cinema-atmosphere,.workspace-animation-decor,.world-depth-environment) {display:none!important;}
 .it-environment {animation:it-show-begins 1.2s ease-out;position:fixed;inset:0 0 0 240px;z-index:-1;overflow:hidden;pointer-events:none;contain:strict;background:var(--it-sky);opacity:var(--tuner-bg-visibility-number,1);}
 .it-environment *, .it-card-shell, .it-card-shell *, .it-nav-light,.it-performance-label,.it-fx,.it-fx * {pointer-events:none!important;}
 .it-stage {width:100%;height:100%;position:absolute;inset:0;overflow:visible;}
 .it-depth {translate:var(--it-look-x,0px) var(--it-look-y,0px);transition:translate 1.8s ease-out;}
 .it-distant-world {opacity:.68;animation:it-backdrop 43s ease-in-out infinite alternate;}
 .it-turntable {transform-origin:845px 778px;animation:it-platform 57s ease-in-out infinite alternate;}
 .it-rear-stair {opacity:.6;animation:it-backdrop 36s ease-in-out -13s infinite alternate-reverse;}
 .it-colonnade {filter:drop-shadow(10px 18px 9px #05081880);animation:it-bridge-align 24s ease-in-out -5s infinite alternate;}
 .it-scenic-flat {filter:drop-shadow(15px 15px 10px #05081880);transform-origin:1280px 480px;animation:it-flat-turn 31s ease-in-out -11s infinite alternate;}
 .it-arch-left {filter:drop-shadow(20px 13px 12px #050818a0);transform-origin:180px 760px;animation:it-arch-turn 38s ease-in-out -12s infinite alternate;}
 .it-arch-right {filter:drop-shadow(-20px 13px 12px #050818a0);transform-origin:1420px 740px;animation:it-arch-turn 47s ease-in-out -8s infinite alternate-reverse;}
 .it-staircase {animation:it-stair-align 27s ease-in-out -9s infinite alternate;}
 .it-flying-set {animation:it-suspended 29s ease-in-out -8s infinite alternate;}
 .it-wheel {transform-origin:1380px 83px;animation:it-wheel 55s linear infinite;}
 .it-ornament {transform-origin:460px 0;animation:it-pendulum 13s ease-in-out -5s infinite alternate;}
 .it-light {mix-blend-mode:screen;transform-origin:310px 32px;animation:it-light-pan 17s ease-in-out -4s infinite alternate;opacity:.65;}
 .it-light-b {transform-origin:1310px 20px;animation-duration:23s;animation-delay:-9s;opacity:.45;}
 .it-light-c {transform-origin:820px 25px;animation-duration:37s;opacity:.19;}
 .it-light-rig {animation:it-house-light 17s ease-in-out -4s infinite alternate;}
 .it-curtain-left {transform-origin:0 80px;animation:it-curtain-breathe 19s ease-in-out -8s infinite alternate;}
 .it-curtain-right {transform-origin:1600px 80px;animation:it-curtain-breathe 23s ease-in-out -4s infinite alternate;}
 .it-windows {animation:it-window-light 17s ease-in-out var(--it-window-delay,-3s) infinite alternate;}
 .it-shadow-play {opacity:0;}
 .it-nested-world,.it-hidden-depth {opacity:0;}
 .it-scene-shade {position:absolute;inset:0;background:linear-gradient(transparent 20%,var(--it-deep) 140%);opacity:.5;}
 html[data-mode='light'] .it-scene-shade {opacity:.16;}
 html[data-mode='light'] .it-light-rig {mix-blend-mode:soft-light;opacity:.8;}
 .it-environment[data-navigation='changing'] .it-light-rig {filter:brightness(1.4);}
 .it-environment[data-event='changing-set'] .it-scenic-flat {animation:it-changing-set 20s ease-in-out both;}
 .it-environment[data-event='impossible-staircase'] .it-rear-stair {animation:it-extra-stairs 20s ease-in-out both;}
 .it-environment[data-event='miniature-city'] .it-distant-world {animation:it-city-reveal 20s ease-in-out both;}
 .it-environment[data-event='flying-scenery'] .it-flying-set {animation:it-fly-in 20s ease-in-out both;}
 .it-environment[data-event='shadow-performance'] .it-shadow-play {animation:it-shadow-story 20s ease-in-out both;}
 .it-environment[data-event='curtain-opens'] .it-curtain-left {animation:it-curtain-open-left 20s ease-in-out both;}
 .it-environment[data-event='curtain-opens'] .it-curtain-right {animation:it-curtain-open-right 20s ease-in-out both;}
 .it-environment[data-event='curtain-opens'] :is(.it-light-c,.it-footlights,.it-hidden-depth) {animation:it-city-reveal 20s ease-in-out both;}
 .it-environment[data-event='world-turns'] .it-turntable {animation:it-world-turns 20s ease-in-out both;}
 .it-environment[data-event='world-turns'] .it-distant-world {animation:it-changing-set 20s ease-in-out both;}
 .it-environment[data-event='impossible-theatre'] .it-nested-world {animation:it-nested-reveal 24s ease-in-out both;}
 .it-environment[data-event='impossible-theatre'] .it-nested-arch {animation:it-nested-light 24s ease-in-out both;animation-delay:calc(var(--i)*.35s);}
 .it-environment[data-event='impossible-theatre'] .it-light-rig {animation:it-nested-light 24s ease-in-out both;}
 html[data-theme='impossible-theatre'][data-world][data-mode] .topbar {min-height:250px!important;align-items:flex-end!important;padding:36px 30px 28px!important;background:transparent!important;border:0!important;position:relative;isolation:isolate;}
 html[data-theme='impossible-theatre'] .topbar::before {content:'';position:absolute;inset:auto 12px 10px;height:82px;border:1px solid var(--it-gold);border-radius:35px 8px 5px 5px;background:linear-gradient(105deg,color-mix(in srgb,var(--world-surface) 97%,transparent),color-mix(in srgb,var(--world-surface) 87%,transparent));box-shadow:inset 0 3px var(--it-gold),0 15px 25px -15px #080c18;z-index:-1;pointer-events:none;}
 html[data-theme='impossible-theatre'] .page-title-group {align-items:flex-start;flex-direction:column;gap:4px;}
 html[data-theme='impossible-theatre'] #page-title {font-family:'Sentient',Georgia,serif;font-size:clamp(27px,2.8vw,40px);font-weight:500;letter-spacing:-.025em;line-height:1.1;}
 .it-performance-label {font-size:9px;letter-spacing:.22em;color:var(--world-secondary);white-space:nowrap;}
 html[data-theme='impossible-theatre'] .view {position:relative;padding-inline:30px;}
 html[data-theme='impossible-theatre'][data-world] .it-card:not(.card-dragging) {
  position:relative;border:1px solid var(--world-border)!important;border-top:3px solid var(--it-gold)!important;
  border-radius:28px 8px 12px 4px!important;clip-path:none!important;transform:none;
  background:linear-gradient(112deg,color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,96%),transparent),color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,96%),transparent))!important;
  box-shadow:inset 5px 0 0 var(--it-cobalt-dark),inset -4px 0 0 var(--it-emerald-dark),inset 0 5px 14px -8px #000,0 14px 24px -16px #000,3px 4px 0 -1px var(--it-gold)!important;
  overflow:visible;isolation:isolate;animation:none!important;transition:box-shadow .45s,border-color .45s;
 }
 html[data-theme='impossible-theatre'][data-mode='light'] .it-card:not(.card-dragging) {background:linear-gradient(115deg,color-mix(in srgb,#fff9ec var(--tuner-surface-solid,96.862745098%),transparent),color-mix(in srgb,#f0e5d2 var(--tuner-surface-solid,96.862745098%),transparent))!important;}
 html[data-theme='impossible-theatre'] .it-card :is(.panel-head,.metric-head) {background:transparent!important;border-radius:25px 6px 0 0!important;}
 html[data-theme='impossible-theatre'] .it-card > :not(.it-card-shell,.cine-transition-fx) {position:relative;z-index:1;}
 .it-card-shell {position:absolute;inset:0;z-index:2;overflow:hidden;border-radius:inherit;color:var(--it-gold);}
 .it-card-crown {position:absolute;left:20px;right:17px;top:4px;height:15px;border-top:1px solid var(--it-gold);border-radius:50% 30% 0 0;opacity:.72;transition:filter .45s,opacity .45s;}
 .it-card-crown::after {content:'';position:absolute;left:66%;top:-4px;width:13px;height:7px;background:linear-gradient(100deg,#886235,#edcf88,#a98141);clip-path:polygon(0 30%,30% 30%,50% 0,70% 30%,100% 30%,50% 100%);}
 .it-card-wing {position:absolute;top:20px;bottom:12px;width:7px;background:linear-gradient(90deg,var(--it-gold),var(--it-cobalt-dark) 30%,var(--it-cobalt) 60%,var(--it-gold));transition:width .5s,opacity .5s;}
 .it-card-wing-left {left:0;border-radius:0 6px 3px 0;}
 .it-card-wing-right {right:0;top:38px;width:5px;background:linear-gradient(90deg,var(--it-gold),var(--it-emerald-dark) 40%,var(--it-emerald));}
 .it-card-lamp {position:absolute;top:15px;width:4px;height:4px;border-radius:50%;background:var(--it-gold);opacity:.3;transition:opacity .35s,box-shadow .5s;}
 .it-card-lamp-left {left:16px;}.it-card-lamp-right {right:15px;}
 .it-card-reflection {position:absolute;inset:1px;background:linear-gradient(110deg,transparent 30%,#ffd99425 45%,transparent 60%);background-size:250% 100%;opacity:0;transition:opacity .5s,background-position 1.1s;border-radius:inherit;}
 .it-card-ornament {position:absolute;width:7px;height:7px;right:12px;bottom:10px;border:1px solid var(--it-gold);transform:rotate(45deg);}
 html[data-theme='impossible-theatre'] .it-card:is(:hover,:focus-within,.it-current,[aria-selected='true'])>.it-card-shell .it-card-lamp {opacity:1;box-shadow:0 0 10px 3px #ffd99480;}
 html[data-theme='impossible-theatre'] .it-card:is(:hover,:focus-within,.it-current,[aria-selected='true'])>.it-card-shell .it-card-crown {filter:brightness(1.4);opacity:1;}
 html[data-theme='impossible-theatre'] .it-card:is(:hover,:focus-within,.it-current,[aria-selected='true'])>.it-card-shell .it-card-reflection {opacity:1;background-position:100% 0;}
 html[data-theme='impossible-theatre'] .it-card:is(:hover,:focus-within,.it-current)>.it-card-shell .it-card-wing {width:3px;}
 html[data-theme='impossible-theatre'] .it-card.is-collapsed>.it-card-shell .it-card-wing {width:9px;}
 html[data-theme='impossible-theatre'][data-world][data-mode] .sidebar {background:linear-gradient(95deg,var(--it-cobalt-dark),var(--it-deep) 30%,var(--it-cobalt-dark))!important;border-right:4px double var(--it-gold)!important;color:#f4e7d2!important;box-shadow:inset -8px 0 0 #0003;}
 html[data-theme='impossible-theatre'] .sidebar :is(.brand strong,.brand span,.sidebar-foot,.nav-group-title,.nav-item) {color:#f4e7d2!important;}
 html[data-theme='impossible-theatre'] .sidebar nav {position:relative;}
 html[data-theme='impossible-theatre'] .nav-item {position:relative;border-radius:12px 3px 3px 3px!important;border:1px solid #d7ac622b!important;background:linear-gradient(95deg,#842e4922,transparent)!important;box-shadow:inset 3px 0 #d7ac6230;}
 html[data-theme='impossible-theatre'] .nav-item.active {background:linear-gradient(100deg,#d7ac6235,#3155a059)!important;box-shadow:inset 3px 0 #d7ac62;color:#ffe7b2!important;}
 .it-nav-light {position:absolute;top:0;left:2px;right:2px;z-index:0;border-left:2px solid #ffd994;background:linear-gradient(90deg,#ffd99422,transparent 80%);border-radius:12px 3px 3px 3px;transition:transform .55s cubic-bezier(.2,.75,.3,1),height .4s;}
 html[data-theme='impossible-theatre'] :is(button.button,.button,.tab-button,[role='tab']) {border-radius:8px 3px 8px 3px;box-shadow:inset 0 1px #d7ac6270,0 2px 0 #49352d33;transition:filter .25s,box-shadow .25s;}
 html[data-theme='impossible-theatre'] :is(button.button,.button,.tab-button,[role='tab']):hover {filter:brightness(1.08);box-shadow:inset 0 2px var(--it-gold),0 2px 0 #49352d33;}
 html[data-theme='impossible-theatre'] :is(button.button,.button,.tab-button,[role='tab']):active {translate:0 1px;box-shadow:inset 0 2px 5px #0004;}
 html[data-theme='impossible-theatre'] :is(.cine-workflow,.arc-status) {border-radius:3px 9px 3px 3px;border:1px solid var(--it-gold);}
 html[data-theme='impossible-theatre'] [data-workflow='stripped'] {background:#e7d2aa!important;color:#49352d!important;}
 html[data-theme='impossible-theatre'] [data-workflow='bed-made'] {background:#3155a0!important;color:#f7eedc!important;}
 html[data-theme='impossible-theatre'] [data-workflow='finished'] {background:linear-gradient(110deg,#e7d2aa,#d7ac62)!important;color:#35281b!important;border-color:#c49a51!important;box-shadow:inset 0 0 0 2px #fff2cc50;}
 html[data-theme='impossible-theatre'] .cine-dnd {background:#842e49!important;color:#fff0e8!important;border-radius:9px 2px 9px 2px;box-shadow:inset 4px 0 #350d23;}
 html[data-theme='impossible-theatre'] .cine-inspection {background:#ffd994!important;color:#49352d!important;}
 html[data-theme='impossible-theatre'] .cine-notes {border-radius:2px 10px 2px 2px;border:1px solid var(--it-gold);}
 html[data-theme='impossible-theatre'] .cine-timing {background:#e7d2aa!important;color:#49352d!important;border:1px solid #c49a51;border-radius:5px;}
 html[data-theme='impossible-theatre'][data-theatre-interaction='on'] .cine-timing svg {animation:it-timing 9s ease-in-out infinite;}
 html[data-theme='impossible-theatre'] .cine-room-type[data-room-type='stayover'] {box-shadow:inset 0 -2px #d7ac6280;}
 html[data-theme='impossible-theatre'][data-theatre-interaction='on'] .cine-room-type[data-room-type='arrival'] {animation:it-arrival 4s ease-out 1;}
 html[data-theme='impossible-theatre'][data-theatre-interaction='on'] .cine-room-type[data-room-type='checkout'] {animation:it-arrival 4s ease-in reverse 1;}
 /* The existing confirmed-state coordinator owns the lifespan and badge swap. */
 html[data-theme='impossible-theatre'] .cine-transition-fx {pointer-events:none;overflow:hidden;border-radius:inherit;}
 .it-fx {position:absolute;inset:0;border-radius:inherit;overflow:hidden;}
 .it-fx-beam {position:absolute;inset:-30%;background:conic-gradient(from 165deg at 50% 0,transparent,#ffd99442 12deg,transparent 27deg);opacity:0;animation:it-finale-beam 1.58s ease-in-out both;}
 .it-fx-beam.second {animation-delay:.16s;transform:scaleX(-1);}
 .it-fx-wing {position:absolute;top:15px;bottom:10px;left:0;width:8px;background:linear-gradient(90deg,#842e49,#d7ac62,#164e43);animation:it-finale-wing 1.58s ease both;}
 .it-fx-wing.second {left:auto;right:0;}
 .it-fx-ornament {position:absolute;top:5px;right:18%;width:13px;height:13px;transform:rotate(45deg);border:2px solid #ffd994;background:#d7ac62;animation:it-finale-ornament 1.58s ease both;}
 .it-fx-scenery {position:absolute;inset:auto 15px 4px;height:20px;opacity:0;background:repeating-linear-gradient(90deg,transparent 0 12px,#d7ac6280 12px 14px,transparent 14px 28px);clip-path:polygon(0 100%,0 50%,8% 10%,14% 50%,25% 50%,25% 0,30% 0,30% 50%,55% 50%,60% 0,65% 50%,85% 50%,90% 5%,95% 50%,100% 100%);animation:it-finale-scenery 1.58s ease both;}
 html[data-theme='impossible-theatre'][data-theatre-interaction='on'] [data-room-transition-active='finished'] :is(.arc-number,.room-number,.cine-workflow) {animation:it-finale-plaque 1.58s ease both;}
 html[data-theme='impossible-theatre'] .cine-new-note {animation:it-program-slip 1.8s ease both!important;}
 html[data-theme='impossible-theatre'] .cine-transition-fx:not([data-effect='finished']) .it-fx-ornament {display:none;}
 .it-environment[data-running='no'] *,html[data-theme='impossible-theatre'][data-theatre-interaction='off'] :is(.it-card-shell *,.it-fx *,.cine-timing svg,.cine-room-type,.cine-new-note) {animation-play-state:paused!important;}
 html[data-theme='impossible-theatre'][data-theatre-interaction='off'] :is(.it-card-shell *,.it-nav-light) {transition:none!important;}
 html[data-theme='impossible-theatre'] .world-choice[data-world-id='impossible-theatre'] .world-preview {background:radial-gradient(ellipse at 50% 30%,#e7d2aa,transparent 40%),repeating-linear-gradient(90deg,#3155a0 0 12%,#217c80 12% 14%,#10152b 14% 28%);}
 @media (max-width:1000px) {.it-environment {left:0;}html[data-theme='impossible-theatre'][data-world][data-mode] .topbar {min-height:230px!important;} }
 @media (max-width:700px) {
  .it-environment {left:0;}
  .it-stage {width:200%;left:-50%;height:100%;}
  .it-arch-left {translate:225px 0;}.it-arch-right {translate:-225px 0;}
  .it-flying-set {translate:-190px 0;}.it-staircase {translate:185px 30px;}
  .it-ornament {translate:170px 0;}.it-curtain-left {translate:390px 0;}.it-curtain-right {translate:-390px 0;}
  .it-proscenium {opacity:.85;}.it-scene-shade {opacity:.3;}
  html[data-theme='impossible-theatre'][data-world][data-mode] .topbar {min-height:215px!important;padding:28px 18px 24px!important;gap:6px!important;}
  html[data-theme='impossible-theatre'] .topbar::before {inset:auto 7px 9px;height:82px;}
  html[data-theme='impossible-theatre'] #page-title {font-size:28px;}
  .it-performance-label {font-size:7px;letter-spacing:.12em;}
  html[data-theme='impossible-theatre'] .view {padding-inline:12px;}
  html[data-theme='impossible-theatre'] .it-card {border-radius:23px 7px 10px 4px!important;}
  .it-card-crown {left:18px;right:14px;}.it-card-wing {width:5px;}
  .it-light-c,.it-shadow-play {display:none;}
 }
 @media (prefers-reduced-motion:reduce) {html[data-theme='impossible-theatre'] :is(.it-environment *,.it-card-shell *,.it-nav-light,.it-fx *,.cine-room-type,.cine-timing svg) {animation:none!important;transition:none!important;}}
}
@keyframes it-backdrop {from {transform:translateX(-24px)}to {transform:translateX(28px)}}
@keyframes it-platform {from {transform:skewX(-2deg) translateX(-12px)}to {transform:skewX(2deg) translateX(12px)}}
@keyframes it-bridge-align {from {transform:translateY(9px)}to {transform:translateY(-11px)}}
@keyframes it-flat-turn {from {transform:skewY(-1deg) scaleX(.92)}to {transform:skewY(1.5deg) scaleX(1)}}
@keyframes it-arch-turn {from {transform:skewY(-.6deg) scaleX(.96)}to {transform:skewY(.6deg) scaleX(1)}}
@keyframes it-stair-align {from {transform:translate(0,4px)}to {transform:translate(11px,-8px)}}
@keyframes it-suspended {from {transform:translateY(-12px)}to {transform:translateY(19px)}}
@keyframes it-wheel {to {transform:rotate(360deg)}}
@keyframes it-pendulum {from {transform:rotate(-3deg)}to {transform:rotate(3deg)}}
@keyframes it-light-pan {from {transform:rotate(-14deg);opacity:.3}to {transform:rotate(15deg);opacity:.72}}
@keyframes it-house-light {from {opacity:.62}to {opacity:1}}
@keyframes it-curtain-breathe {from {transform:scaleX(.95)}to {transform:scaleX(1.035)}}
@keyframes it-window-light {0%,25% {opacity:.5}65%,100% {opacity:1}}
@keyframes it-changing-set {0%,100% {transform:translateX(0)}35%,65% {transform:translateX(250px)}}
@keyframes it-extra-stairs {0%,100% {opacity:.6;transform:translate(0)}30%,70% {opacity:1;transform:translate(-65px,-25px);filter:brightness(1.8)}}
@keyframes it-city-reveal {0%,100% {opacity:.6;filter:brightness(1)}30%,70% {opacity:1;filter:brightness(1.5)}}
@keyframes it-fly-in {0%,100% {transform:translateY(-12px)}30%,65% {transform:translateY(185px)}}
@keyframes it-shadow-story {0%,100% {opacity:0;transform:translateX(-40px)}25% {opacity:.7}70% {opacity:.7;transform:translateX(150px)}}
@keyframes it-curtain-open-left {0%,100% {transform:translateX(0)}30%,70% {transform:translateX(-160px)}}
@keyframes it-curtain-open-right {0%,100% {transform:translateX(0)}30%,70% {transform:translateX(160px)}}
@keyframes it-world-turns {0% {transform:perspective(1800px) rotateY(0deg)}85%,100% {transform:perspective(1800px) rotateY(360deg)}}
@keyframes it-nested-reveal {0%,100% {opacity:0;transform:scale(.94);transform-origin:800px 450px}25%,75% {opacity:1;transform:scale(1)}}
@keyframes it-nested-light {0%,100% {filter:brightness(1)}25% {filter:brightness(.5)}55%,65% {filter:brightness(1.8)}}
@keyframes it-arrival {0% {box-shadow:inset -35px 0 #d7ac6270}100% {box-shadow:inset 0 0 transparent}}
@keyframes it-timing {0%,100% {rotate:-8deg}50% {rotate:8deg}}
@keyframes it-finale-beam {0% {opacity:0;translate:-25% 0}25%,65% {opacity:1}100% {opacity:0;translate:30% 0}}
@keyframes it-finale-wing {0%,100% {width:6px;opacity:.7}40%,70% {width:2px;opacity:1}}
@keyframes it-finale-ornament {0% {translate:0 -23px;opacity:0}64.55% {translate:0 0;opacity:1}82% {opacity:1}100% {opacity:0;translate:0 0}}
@keyframes it-finale-scenery {0%,100% {opacity:0}30%,75% {opacity:.8}}
@keyframes it-finale-plaque {0% {filter:brightness(1)}64.55% {filter:brightness(1.5);box-shadow:0 0 14px #d7ac6260}100% {filter:brightness(1)}}
@keyframes it-program-slip {0%,100% {translate:0 0}20% {translate:3px -2px}40% {translate:-1px 0}}
@media print {.it-environment,.it-card-shell,.it-performance-label,.it-nav-light,.it-fx {display:none!important;}}

@keyframes it-show-begins {from {opacity:.3;filter:saturate(.4)}to {opacity:var(--tuner-bg-visibility-number,1);filter:saturate(1)}}
/* Match the shared material owner's cascade layer; no other world's paint changes. */
@media screen {
 @layer surface-material {
  html[data-theme='impossible-theatre'][data-world][data-mode] #app-view .view .it-card {
   background:linear-gradient(112deg,color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,97%),transparent),color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,97%),transparent))!important;
   border:1px solid var(--world-border)!important;border-top:3px solid var(--it-gold)!important;
   box-shadow:inset 5px 0 0 var(--it-cobalt-dark),inset -4px 0 0 var(--it-emerald-dark),inset 0 5px 14px -8px #000,0 14px 24px -16px #000,3px 4px 0 -1px var(--it-gold)!important;
   backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  }
  html[data-theme='impossible-theatre'][data-world][data-mode='light'] #app-view .view .it-card {background:linear-gradient(115deg,color-mix(in srgb,#fff9ec var(--tuner-surface-solid,98.039215686%),transparent),color-mix(in srgb,#f0e5d2 var(--tuner-surface-solid,98.039215686%),transparent))!important;}
 }
 html[data-theme='impossible-theatre'][data-world][data-mode] #app-view .topbar {background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}
 html[data-theme='impossible-theatre'][data-world][data-mode] #app-view .sidebar {background:linear-gradient(95deg,var(--it-cobalt-dark),#10152b 30%,var(--it-cobalt-dark))!important;}
 html[data-theme='impossible-theatre'][data-world][data-mode] #app-view .sidebar :is(.nav-item,.brand,.brand strong,.brand span,.sidebar-foot,.nav-group-title,label,summary) {color:#f4e7d2!important;}
 html[data-theme='impossible-theatre'][data-world][data-mode] #app-view .sidebar .nav-item.active {background:linear-gradient(100deg,#d7ac6235,#3155a059)!important;color:#ffe7b2!important;box-shadow:inset 3px 0 #d7ac62!important;}
 html[data-theme='impossible-theatre'][data-world][data-mode] #app-view .topbar::before {opacity:1!important;}
}

@media screen {
 html[data-theme='impossible-theatre'][data-mode='dark'] .it-scene-shade {background:linear-gradient(transparent 8%,#05091455 45%,#050914bb 100%);opacity:.7;}
 html[data-theme='impossible-theatre'][data-mode='dark'] .it-proscenium {filter:brightness(.78);}
 html[data-theme='impossible-theatre'][data-mode='light'] #app-view .sidebar input {background:#f7eedc!important;color:#49352d!important;}
 html[data-theme='impossible-theatre'] .topbar::before {background:var(--world-surface)!important;}
}

@media screen {
 html[data-theme='impossible-theatre'][data-theatre-interaction='on'] .it-card-crown {animation:it-house-light 17s ease-in-out -4s infinite alternate;}
 html[data-theme='impossible-theatre'][data-world][data-mode] #app-view .sidebar :is(.mobile-nav-selector-label,.mobile-nav-selector-chevron,.nav-reorder-toolbar) {color:#f4e7d2!important;}
 .it-hidden-depth {transition:opacity 2s;}
}


/* Source: pet-room.css */
/* Decorative pets have a tiny walking rail above a permanently clear label. */
html[data-theme] .badge.pet-room-badge {
  position:relative; display:inline-flex; flex:0 0 auto; align-items:flex-end; justify-content:center;
  box-sizing:border-box; width:auto; min-width:80px; height:38px; max-width:100%;
  padding:23px 7px 3px; margin:0; overflow:hidden; vertical-align:middle;
  border:1px solid color-mix(in srgb,var(--accent) 60%,var(--text)); border-radius:10px;
  color:var(--text); background:color-mix(in srgb,var(--accent) 9%,var(--panel));
  box-shadow:inset 0 1px color-mix(in srgb,var(--text) 9%,transparent);
  font:700 10px/1.1 var(--font-ui,system-ui,sans-serif); letter-spacing:0; text-transform:none;
  white-space:nowrap; clip-path:none; transform:none; text-shadow:none;
}
html[data-theme] .badge.pet-room-badge::before,html[data-theme] .badge.pet-room-badge::after { content:none; }
html[data-theme] .pet-room-badge .pet-room-label { font:inherit; letter-spacing:0; text-transform:none; white-space:nowrap; text-align:center; }
.pet-puppy-track { position:absolute; inset:0 4px auto; height:25px; overflow:hidden; pointer-events:none; }
.pet-puppy-travel { display:block; position:absolute; inset:0; }
.pet-puppy-facing { display:block; width:32px; height:25px; transform-origin:center; }
.pet-room-badge .pet-room-puppy { display:block; width:32px; height:25px; overflow:visible; }
.pet-room-badge .pet-puppy-body { transform-origin:24px 31px; }
.pet-room-badge .pet-puppy-head { transform-origin:31px 22px; }
.pet-room-badge .pet-puppy-tail { transform-origin:13px 22px; }
.pet-room-badge .pet-puppy-leg { transform-origin:23px 25px; }
.pet-room-badge .pet-puppy-tongue { transform-origin:40px 22px; }
.pet-room-badge .pet-puppy-eye { transform-origin:35px 13px; }
.pet-room-badge[data-pet-coat="black"] { --pet-coat:#42414d; --pet-patch:#22232d; --pet-cream:#eee5d6; --pet-outline:#292632; --pet-ink:#302a2b; }
.pet-room-badge[data-pet-coat="ginger"] { --pet-coat:#e7b77f; --pet-patch:#965f3d; --pet-cream:#fff0d5; --pet-outline:#563724; --pet-ink:#38271f; }
.pet-room-badge[data-pet-coat="cream"] { --pet-coat:#f1d8a8; --pet-patch:#bd955f; --pet-cream:#fff5df; --pet-outline:#695033; --pet-ink:#3b2c1c; }
.pet-room-badge[data-pet-coat="gray"] { --pet-coat:#b8becb; --pet-patch:#656879; --pet-cream:#f5eee3; --pet-outline:#3e4450; --pet-ink:#282d35; }
.pet-room-badge[data-pet-coat="spotted"] { --pet-coat:#f5ecdd; --pet-patch:#41424e; --pet-cream:#fff6e5; --pet-outline:#4e4d50; --pet-ink:#292a31; }
.pet-room-badge .pet-kitten-head { transform-origin:33px 24px; }
.pet-room-badge .pet-kitten-tail { transform-origin:14px 23px; }
.pet-room-badge .pet-kitten-ear-left { transform-origin:25px 11px; }
.pet-room-badge .pet-kitten-ear-right { transform-origin:39px 11px; }
.pet-room-badge .pet-kitten-eyes { transform-origin:34px 15px; }
.pet-room-badge .pet-kitten-paw { transform-origin:26px 25px; }
.pet-room-number-line { display:inline-flex; align-items:center; flex-wrap:nowrap; gap:7px; min-width:0; }
.arc-identity .pet-room-number-line { grid-column:1/-1; }
.room-number:has(>.pet-room-badge),.summary-room-number:has(>.pet-room-badge),.strip-room-number>strong:has(>.pet-room-badge) { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
html[data-theme] .room-list-pet-toggle.pet-room-badge-toggle { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:0; width:auto; padding:0; margin:0; background:none; border:0; box-shadow:none; text-shadow:none; }
.pet-room-badge-toggle:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-radius:10px; }
/* Pet identities are kept together. Secondary badges may use the next row. */
html[data-theme] #today-summary-dialog .summary-room-main:has(.pet-room-badge) { grid-template-columns:minmax(0,max-content) minmax(56px,1fr)!important; padding-inline-end:0; }
html[data-theme] #today-summary-dialog .summary-room-main:has(.pet-room-badge) > .summary-room-number { grid-column:1!important; grid-row:1; }
html[data-theme] #today-summary-dialog .summary-room-main:has(.pet-room-badge) > .summary-room-meta { grid-column:1/-1; grid-row:2; }
html[data-theme] #today-summary-dialog .summary-room-main:has(.pet-room-badge) > .arc-operational-status { grid-column:2; grid-row:1; position:static!important; max-width:100%; }
html[data-theme] #assignment-board .ab-room-head:has(.pet-room-badge) { grid-template-columns:32px minmax(0,1fr); }
html[data-theme] #assignment-board .ab-room-head:has(.pet-room-badge) > label { min-width:32px; }
html[data-theme] #assignment-board .ab-room-identity:has(.pet-room-badge) { display:grid; gap:5px; }
html[data-theme] #assignment-board .ab-room-head:has(.pet-room-badge) > .arc-operational-status { grid-column:2; }
html[data-theme] #checkout-view .room-list-head:has(.pet-room-badge) { padding-right:8px; }
html[data-theme] #checkout-view .room-list-head:has(.pet-room-badge) > .arc-operational-status { position:static; max-width:100%; }
/* Stop and turn at each edge; gestures happen during the two unhurried rests. */
@keyframes pet-puppy-roam { 0%,4%,100%{transform:translateX(0)} 24%,50%{transform:translateX(calc(100% - 32px))} 74%,96%{transform:translateX(0)} }
@keyframes pet-puppy-turn { 0%,49%{transform:scaleX(1)} 50%,96%{transform:scaleX(-1)} 97%,100%{transform:scaleX(1)} }
@keyframes pet-puppy-step {
  0%,4%,24%,50%,74%,100%{transform:rotate(0deg)}
  6%,10%,14%,18%,22%,54%,58%,62%,66%,70%{transform:rotate(17deg)}
  8%,12%,16%,20%,52%,56%,60%,64%,68%,72%{transform:rotate(-17deg)}
}
@keyframes pet-puppy-step-back {
  0%,4%,24%,50%,74%,100%{transform:rotate(0deg)}
  6%,10%,14%,18%,22%,54%,58%,62%,66%,70%{transform:rotate(-17deg)}
  8%,12%,16%,20%,52%,56%,60%,64%,68%,72%{transform:rotate(17deg)}
}
@keyframes pet-puppy-curious { 0%,27%,43%,77%,94%,100%{transform:rotate(0deg)} 30%,35%{transform:rotate(-13deg)} 38%,40%{transform:rotate(7deg)} 81%,88%{transform:rotate(-10deg)} }
@keyframes pet-puppy-wag { 0%,26%,48%,76%,96%,100%{transform:rotate(0deg)} 28%,32%,36%,40%,44%,78%,82%,86%,90%,94%{transform:rotate(20deg)} 30%,34%,38%,42%,46%,80%,84%,88%,92%{transform:rotate(-16deg)} }
@keyframes pet-puppy-pant { 0%,32%,48%,78%,94%,100%{transform:scaleY(.65)} 34%,38%,42%,46%,80%,84%,88%,92%{transform:scaleY(1.15)} 36%,40%,44%,82%,86%,90%{transform:scaleY(.75)} }
@keyframes pet-puppy-hop { 0%,40%,43%,47%,100%{transform:translateY(0)} 41.5%,45%{transform:translateY(-2.5px)} }
@keyframes pet-puppy-blink { 0%,31%,33%,85%,87%,100%{transform:scaleY(1)} 32%,86%{transform:scaleY(.12)} }
@keyframes pet-kitten-swish { 0%,24%,50%,74%,100%{transform:rotate(0deg)} 32%,42%,82%,92%{transform:rotate(18deg)} 37%,47%,87%,96%{transform:rotate(-12deg)} }
@keyframes pet-kitten-listen { 0%,28%,38%,80%,90%,100%{transform:rotate(0deg)} 30%,34%,82%,86%{transform:rotate(12deg)} 32%,84%{transform:rotate(-8deg)} }
@keyframes pet-kitten-stretch { 0%,38%,49%,100%{transform:translateX(0) rotate(0deg)} 41%,45%{transform:translateX(2px) rotate(-15deg)} }
@media screen and (prefers-reduced-motion:no-preference) {
  html:not([data-animations="off"]):not([data-decorative-animations="off"]) .pet-room-badge {
    --pet-play:running;
  }
  .pet-room-badge :is(.pet-puppy-travel,.pet-puppy-facing,.pet-puppy-leg,.pet-puppy-head,.pet-puppy-tail,.pet-puppy-tongue,.pet-puppy-body,.pet-puppy-eye) { animation-duration:18s; animation-delay:var(--pet-delay,0s); animation-iteration-count:infinite; animation-timing-function:ease-in-out; animation-play-state:var(--pet-play,paused); }
  .pet-room-badge .pet-puppy-travel { animation-name:pet-puppy-roam; animation-timing-function:linear; }
  .pet-room-badge .pet-puppy-facing { animation-name:pet-puppy-turn; animation-timing-function:steps(1,end); }
  .pet-room-badge .pet-puppy-leg-front { animation-name:pet-puppy-step; }
  .pet-room-badge .pet-puppy-leg-back { animation-name:pet-puppy-step-back; }
  .pet-room-badge .pet-puppy-head { animation-name:pet-puppy-curious; }
  .pet-room-badge .pet-puppy-tail { animation-name:pet-puppy-wag; }
  .pet-room-badge .pet-puppy-tongue { animation-name:pet-puppy-pant; }
  .pet-room-badge .pet-puppy-body { animation-name:pet-puppy-hop; }
  .pet-room-badge .pet-puppy-eye { animation-name:pet-puppy-blink; }
  .pet-room-badge :is(.pet-kitten-head,.pet-kitten-tail,.pet-kitten-ear,.pet-kitten-eyes,.pet-kitten-paw) { animation-duration:18s; animation-delay:var(--pet-delay,0s); animation-iteration-count:infinite; animation-timing-function:ease-in-out; animation-play-state:var(--pet-play,paused); }
  .pet-room-badge .pet-kitten-head { animation-name:pet-puppy-curious; }
  .pet-room-badge .pet-kitten-tail { animation-name:pet-kitten-swish; }
  .pet-room-badge .pet-kitten-ear { animation-name:pet-kitten-listen; }
  .pet-room-badge .pet-kitten-eyes { animation-name:pet-puppy-blink; }
  .pet-room-badge .pet-kitten-paw { animation-name:pet-kitten-stretch; }
}
html[data-animations="off"] .pet-room-badge *,html[data-decorative-animations="off"] .pet-room-badge * { animation:none!important; transform:none; }
@media (prefers-reduced-motion:reduce),print { .pet-room-badge * { animation:none!important; transform:none; } }
@media(max-width:400px) {
  html[data-theme] .badge.pet-room-badge { padding-inline:5px; font-size:9px; min-width:75px; }
  .pet-room-number-line { gap:5px; }
  html[data-theme] #today-summary-dialog .summary-room-main:has(.pet-room-badge) > .summary-room-number { grid-column:1/-1!important; }
  html[data-theme] #today-summary-dialog .summary-room-main:has(.pet-room-badge) > .summary-room-meta { grid-column:1; grid-row:2; }
  html[data-theme] #today-summary-dialog .summary-room-main:has(.pet-room-badge) > .arc-operational-status { grid-column:2; grid-row:2; }
}


/* Source: celestial-companions.css */
/* Layered, original illustrated rigs. Motion belongs to articulated pieces. */
.cc-world,.cc-portrait{--cc-fur:#424255;--cc-light:#727082;--cc-shade:#202535;--cc-outline:#292e41;--cc-eye:#f5b550;--cc-eye-dark:#7b432b;--cc-inner-ear:#a16c7e;--cc-muzzle:#666477;--cc-chest:#555360;--cc-tail-tip:#636073;--cc-paw:#53505e;--cc-nose:#211c2b;--cc-ink:#211b29;--cc-beak:#c7a783;--cc-accent:#c9bce5}
[data-id="ghost"]{--cc-fur:#ebeffc;--cc-light:#ffffff;--cc-shade:#bdc6e5;--cc-outline:#969ec1;--cc-eye:#8fdfff;--cc-eye-dark:#477fae;--cc-inner-ear:#ecc6dc;--cc-muzzle:#fff8fe;--cc-chest:#fffaff;--cc-tail-tip:#f6f9ff;--cc-paw:#f3f0fc;--cc-nose:#b981a1;--cc-ink:#69657b;--cc-accent:#c7e5ff}
[data-id="nova"]{--cc-fur:#3a3969;--cc-light:#7776ae;--cc-shade:#181f45;--cc-outline:#3c3c68;--cc-eye:#e4edff;--cc-eye-dark:#797faf;--cc-inner-ear:#be98d4;--cc-muzzle:#b0add8;--cc-chest:#9293c2;--cc-tail-tip:#a8b7e8;--cc-paw:#adbaed;--cc-nose:#292140;--cc-ink:#25223b;--cc-accent:#c9b2ff}
[data-id="lumi"]{--cc-fur:#ede9fb;--cc-light:#fffdf5;--cc-shade:#b4b6d8;--cc-eye:#aab4e5;--cc-eye-dark:#6f67a4;--cc-ink:#7b749e;--cc-accent:#cab8ff}
[data-id="pixel"]{--cc-fur:#e8c582;--cc-light:#fff0c9;--cc-shade:#c3985e;--cc-outline:#ad8150;--cc-eye:#c4a2e2;--cc-eye-dark:#69518d;--cc-chest:#fff4d4;--cc-beak:#997353;--cc-ink:#684e51;--cc-accent:#eacb8d}
[data-id="vesper"]{--cc-fur:#343145;--cc-light:#9185af;--cc-shade:#161e34;--cc-outline:#34344d;--cc-eye:#ced9f4;--cc-eye-dark:#7b739b;--cc-chest:#666080;--cc-beak:#9d9cb5;--cc-ink:#e2d9f9;--cc-accent:#c6b5ed}
.cc-world{position:fixed;inset:0;z-index:37;pointer-events:none;contain:layout style;overflow:hidden;color:var(--cc-accent)}
.cc-world[hidden]{display:none!important}.cc-pet{position:absolute;left:0;top:0;width:var(--cc-width,92px);height:calc(var(--cc-width,92px)*.833333);border:0!important;padding:0!important;margin:0!important;background:none!important;box-shadow:none!important;cursor:pointer;pointer-events:auto;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;overflow:visible!important;border-radius:45%!important;color:inherit;font:inherit;outline-offset:4px}
.cc-pet:focus-visible{outline:2px solid var(--cc-accent)!important}.cc-pet:hover{background:none!important}.cc-figure{display:block;width:100%;height:100%;transform:scaleX(var(--cc-facing,1));transform-origin:50% 90%}.cc-art{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 2px 2px #13142625)}
.cc-art g{transform-box:fill-box}.cc-head{transform-origin:45% 85%;transition:rotate .6s ease}.cc-tail{transform-origin:95% 55%}.cc-ear{transform-origin:50% 95%}.cc-antenna{transform-origin:50% 100%}.cc-body{transform-origin:50% 90%}.cc-rig{transform-origin:50% 95%}.cc-wing{transform-origin:90% 35%}.cc-wing-back{transform-origin:10% 75%}.cc-wing-right{transform-box:view-box!important;transform-origin:90px 77px}.cc-wing-left{transform-origin:95% 50%}.cc-leg{transform-origin:50% 0}.cc-far-leg{filter:brightness(.78)}.cc-arm{transform-origin:85% 5%}.cc-arm-back{transform-origin:10% 10%}.cc-eyes{transform-origin:50% 50%}.cc-closed-eyes,.cc-heart-eyes,.cc-question,.cc-coat-stars{opacity:0}.cc-home{position:absolute;height:calc(var(--cc-width)*.38);opacity:.5;pointer-events:none;color:var(--cc-accent)}.cc-home svg{width:100%;height:100%}.cc-effects,.cc-stage{position:absolute;inset:0;pointer-events:none}.cc-stage{color:var(--cc-accent)}.cc-prop{width:100%;height:100%;overflow:visible;opacity:.8}.cc-mote{position:absolute;width:9px;height:9px;left:58%;top:25%;color:var(--cc-accent)}.cc-mote svg{width:100%;height:100%}.cc-reflection{position:absolute;left:65%;top:15%;width:30%;height:55%;transform:scaleX(-1);opacity:.4;clip-path:ellipse(48% 49%)}
.cc-settings{margin-top:24px;padding:20px;border:1px solid var(--world-border,#82748f);border-radius:16px}.cc-settings legend{font:1.3rem Georgia,serif;padding:0 8px}.cc-settings>p{color:var(--world-secondary)}.cc-switches{display:flex;flex-wrap:wrap;gap:14px;margin:20px 0}.cc-switches label{display:flex;align-items:center;gap:7px;font-size:13px}.cc-switches input[type="range"]{max-width:120px}.cc-portraits{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:14px}.cc-portrait{position:relative;text-align:center;padding:14px 12px;border:1px solid var(--world-border);border-radius:70px 70px 16px 16px;background:linear-gradient(155deg,color-mix(in srgb,var(--world-elevated) 65%,transparent),color-mix(in srgb,var(--world-surface) 80%,transparent));color:var(--world-text);overflow:hidden}.cc-portrait-art{height:132px;position:relative;max-width:170px;margin:auto}.cc-portrait strong{display:block;font:1.2rem Georgia,serif}.cc-portrait>span{display:block;font-size:11px;letter-spacing:.07em;color:var(--world-secondary);margin-top:4px}.cc-portrait>p{font-size:12px;line-height:1.5;min-height:36px}.cc-portrait .cc-home-label{font-size:10px;letter-spacing:0;margin-bottom:12px;min-height:24px}.cc-portrait>div:last-of-type{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}.cc-portrait button{font-size:11px}.cc-portrait button[aria-pressed="true"]{outline:2px solid var(--cc-accent);outline-offset:1px}.cc-discovery{background:none;border:0;color:var(--world-text);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit;margin-top:12px;line-height:1.5;padding:4px}.cc-preview-prop{position:absolute;inset:0;color:var(--cc-accent);pointer-events:none}.cc-help{font-size:12px;line-height:1.6}.cc-world[data-motion="on"] .cc-body,.cc-settings[data-motion="on"] .cc-body{animation:cc-breathe 4.8s ease-in-out infinite}.cc-world[data-motion="on"] .cc-eyes,.cc-settings[data-motion="on"] .cc-eyes{animation:cc-blink 8.7s infinite}.cc-world[data-motion="on"] .cc-tail,.cc-settings[data-motion="on"] .cc-tail{animation:cc-tail 6.7s ease-in-out infinite}.cc-world[data-motion="on"] .cc-ear-front{animation:cc-listen 13s ease-in-out infinite}.cc-world[data-motion="on"][data-id="lumi"] .cc-wing-left,.cc-settings[data-motion="on"] [data-id="lumi"] .cc-wing-left{animation:cc-moth-rest 3s ease-in-out infinite}.cc-world[data-motion="on"][data-id="lumi"] .cc-wing-right,.cc-settings[data-motion="on"] [data-id="lumi"] .cc-wing-right{animation:cc-moth-right-rest 3s ease-in-out infinite}
[data-state="observe"] .cc-head{rotate:var(--cc-look,-7deg)}[data-state="observe"] .cc-antenna{rotate:10deg}[data-state="observe"] .cc-ear-front{rotate:-12deg}[data-state="observe"][data-id="spark"] .cc-question{opacity:.75;animation:cc-signal 2.5s ease-in-out infinite}
[data-state="play"] .cc-rig,[data-state="dance"] .cc-rig{animation:cc-play 2.4s ease-in-out infinite}[data-state="play"] .cc-head{rotate:-12deg}[data-state="happy"] .cc-tail,[data-state="pet"] .cc-tail{animation:cc-wag .4s ease-in-out infinite!important}[data-state="happy"] .cc-head{animation:cc-lean 1.2s ease-in-out infinite}[data-state="pet"] .cc-head{rotate:12deg}[data-state="pet"] .cc-rig{animation:cc-lean 2.4s ease-in-out infinite}[data-state="pet"] .cc-eyes,[data-state="sleep"] .cc-eyes{opacity:0;animation:none!important}[data-state="pet"] .cc-closed-eyes,[data-state="sleep"] .cc-closed-eyes{opacity:1}[data-state="happy"][data-id="spark"] .cc-heart-eyes,[data-state="pet"][data-id="spark"] .cc-heart-eyes{opacity:1}[data-state="happy"][data-id="spark"] .cc-eyes,[data-state="pet"][data-id="spark"] .cc-eyes{opacity:0;animation:none!important}[data-state="dance"] .cc-arm-front{animation:cc-arm .55s ease-in-out infinite}[data-state="dance"] .cc-arm-back{animation:cc-arm .55s ease-in-out infinite reverse}
[data-state="sleep"] .cc-leg{scale:1 .3;translate:0 21px}[data-state="sleep"] .cc-rig{translate:0 14px;scale:1 .85}[data-state="sleep"] .cc-head{rotate:27deg;translate:-10px 9px}[data-state="sleep"] .cc-tail{rotate:-42deg;translate:19px 9px;scale:1.25;animation:cc-sleep-tail 14s ease-in-out infinite!important}[data-state="sleep"] .cc-body{animation-duration:6s!important}[data-state="sleep"][data-id="pixel"] .cc-head{translate:-26px 21px;rotate:-60deg}[data-state="sleep"][data-id="vesper"] .cc-head{rotate:10deg;translate:0 6px}[data-state="sleep"][data-id="spark"] .cc-head{translate:0 13px;rotate:6deg}[data-state="sleep"][data-id="spark"] .cc-rig{filter:brightness(.85)}[data-state="sleep"][data-id="nova"] .cc-coat-stars{opacity:.65;animation:cc-signal 5s ease-in-out infinite}
[data-state="fly"] .cc-shadow{opacity:0}[data-state="fly"] .cc-wing-front{animation:cc-flap .24s ease-in-out infinite}[data-state="fly"] .cc-wing-back{animation:cc-flap-back .24s ease-in-out infinite}[data-state="fly"] .cc-head{rotate:-7deg}[data-state="fly"][data-id="lumi"] .cc-wing-left,[data-state="happy"][data-id="lumi"] .cc-wing-left{animation:cc-moth .24s ease-in-out infinite!important}[data-state="fly"][data-id="lumi"] .cc-wing-right,[data-state="happy"][data-id="lumi"] .cc-wing-right{animation:cc-moth-right .24s ease-in-out infinite!important}[data-state="sleep"][data-id="lumi"] .cc-wing-left{animation:none!important;scale:.2 1}[data-state="sleep"][data-id="lumi"] .cc-wing-right{animation:none!important;scale:.2 1}
[data-state="walk"] .cc-head{animation:cc-walk-head .7s ease-in-out infinite}[data-state="walk"] .cc-body{animation:cc-weight .7s ease-in-out infinite!important}[data-state="walk"][data-id="spark"] .cc-leg-0{animation:cc-robot-step .45s ease-in-out infinite}[data-state="walk"][data-id="spark"] .cc-leg-1{animation:cc-robot-step .45s -.225s ease-in-out infinite}[data-state="walk"][data-id="spark"] .cc-arm-front{animation:cc-arm .9s ease-in-out infinite}
[data-state="special"][data-id="lumi"] .cc-wing,[data-state="rare"][data-id="lumi"] .cc-wing{filter:drop-shadow(0 0 7px #e3dbff);animation-duration:1.8s!important}[data-state="special"][data-id="spark"] .cc-arm-front{animation:cc-tinker .45s ease-in-out infinite}[data-state="special"][data-id="spark"] .cc-head{rotate:13deg}[data-state="special"][data-id="spark"] .cc-prop{animation:cc-circuit 1.1s steps(3) infinite}[data-state="rare"][data-id="spark"] .cc-rig{animation:cc-stuck 5s ease-in-out both}[data-state="rare"][data-id="spark"] .cc-leg-0{rotate:-24deg;translate:-6px 0}
[data-state="special"][data-id="ember"] .cc-head{animation:cc-howl 6s ease-in-out both}[data-state="special"][data-id="ember"] .cc-leg{scale:1 .65;translate:0 10px}[data-state="special"][data-id="ember"] .cc-prop{filter:drop-shadow(0 0 6px #f2e0cc);animation:cc-signal 6s ease-in-out both}[data-state="rare"][data-id="ember"] .cc-head{animation:cc-sniff 2s ease-in-out infinite}
[data-state="special"][data-id="pixel"] .cc-wing-front{animation:cc-flap 1.1s ease-in-out infinite;filter:drop-shadow(0 0 4px #fbe3a7)}[data-state="special"][data-id="pixel"] .cc-prop{animation:cc-golden 5s ease-in-out both}[data-state="rare"][data-id="pixel"] .cc-prop{animation:cc-orbit 5s ease-in-out both;filter:drop-shadow(0 0 5px #ffdb81)}
[data-state="special"][data-id="vesper"] .cc-head{animation:cc-mirror 6s ease-in-out both}.cc-reflection .cc-head{animation:cc-mirror 6s -.7s ease-in-out both!important}[data-state="rare"][data-id="vesper"] .cc-head{animation:cc-bow 5s ease-in-out both}[data-state="rare"][data-id="vesper"] .cc-prop{animation:cc-steal 6s ease-in-out both}
[data-state="special"][data-id="ghost"] .cc-rig,[data-state="special"][data-id="nova"] .cc-rig{animation:cc-pounce 6s ease-in-out both}[data-state="special"][data-id="ghost"] .cc-prop{animation:cc-snowflake 6s ease-in-out both}[data-state="rare"][data-id="ghost"] .cc-coat-stars{animation:cc-coat 6s ease-in-out both}[data-state="rare"][data-id="ghost"] .cc-head{animation:cc-sneeze 6s ease-in-out both}[data-state="special"][data-id="nova"] .cc-prop{animation:cc-coat 6s ease-in-out both}[data-state="rare"][data-id="nova"] .cc-coat-stars{animation:cc-coat 6s ease-in-out both}[data-state="rare"][data-id="nova"] .cc-body,[data-state="rare"][data-id="nova"] .cc-head,[data-state="rare"][data-id="nova"] .cc-tail,[data-state="rare"][data-id="nova"] .cc-leg{animation:cc-dissolve 6s ease-in-out both!important}
[data-state="arrive"] .cc-prop{animation:cc-portal .7s ease-out both}[data-state="arrive"][data-id="spark"] .cc-prop{stroke-dasharray:5 2}[data-state="arrive"][data-id="ember"] .cc-prop{color:#d86772}[data-state="arrive"][data-id="vesper"] .cc-prop{transform:scaleX(.55)}
@keyframes cc-breathe{50%{scale:1.013 1.025}}@keyframes cc-blink{0%,43%,45%,79%,81%,100%{scale:1 1}44%,80%{scale:1 .06}}@keyframes cc-tail{0%,100%{rotate:-3deg}50%{rotate:7deg}}@keyframes cc-listen{0%,38%,42%,100%{rotate:0deg}39%,41%{rotate:-9deg}}@keyframes cc-wag{0%,100%{rotate:-15deg}50%{rotate:14deg}}@keyframes cc-lean{50%{rotate:7deg;translate:1px 1px}}@keyframes cc-play{0%,100%{rotate:0deg}25%{rotate:-4deg;translate:0 -3px}60%{rotate:4deg;translate:0 1px}}@keyframes cc-arm{50%{rotate:-25deg}}@keyframes cc-sleep-tail{0%,91%,95%,100%{rotate:-42deg}93%{rotate:-34deg}}@keyframes cc-moth-rest{50%{scale:.65 1;rotate:-4deg}}@keyframes cc-moth-right-rest{50%{scale:.65 1}}@keyframes cc-moth{50%{scale:.12 1}}@keyframes cc-moth-right{50%{scale:.12 1}}@keyframes cc-flap{0%,100%{rotate:12deg;scale:1 1}50%{rotate:-55deg;scale:1 .65}}@keyframes cc-flap-back{50%{rotate:45deg;scale:1 .6}}@keyframes cc-walk-head{50%{translate:0 1.5px;rotate:2deg}}@keyframes cc-weight{50%{translate:0 1.3px;scale:1.01 .99}}@keyframes cc-robot-step{0%,100%{rotate:-12deg;translate:0 0}50%{rotate:14deg;translate:0 -4px}}@keyframes cc-signal{0%,100%{opacity:.15}50%{opacity:.9}}@keyframes cc-tinker{50%{rotate:-40deg;translate:18px -3px}}@keyframes cc-circuit{50%{filter:drop-shadow(0 0 3px #68f5ff);opacity:1}80%{opacity:.3}}@keyframes cc-stuck{10%{translate:0 -5px}25%,40%{rotate:-8deg}32%,48%{rotate:5deg}60%{translate:0 -8px;rotate:0deg}80%{translate:0 0;rotate:-5deg}}@keyframes cc-howl{20%,60%{rotate:-26deg;translate:0 -5px}75%,100%{rotate:0deg}}@keyframes cc-sniff{50%{rotate:20deg;translate:0 6px}}@keyframes cc-golden{0%{opacity:0;scale:.3}45%{opacity:1;scale:.8}100%{opacity:0;scale:1.2;translate:0 -28px}}@keyframes cc-orbit{0%{rotate:-30deg;opacity:0}50%{rotate:10deg;opacity:1}100%{rotate:40deg;opacity:0}}@keyframes cc-mirror{15%{rotate:12deg}35%{rotate:-10deg}48%{rotate:14deg;translate:-3px -2px}65%,100%{rotate:0deg}}@keyframes cc-bow{30%,60%{rotate:25deg;translate:0 8px}100%{rotate:0deg}}@keyframes cc-steal{25%,65%{translate:-22px 16px;scale:.4}100%{translate:0 0;scale:1}}@keyframes cc-pounce{0%,100%{translate:0 0;scale:1}20%,35%{scale:1.04 .83;rotate:-3deg}50%{translate:9px -17px;scale:.97 1.05;rotate:-7deg}67%{translate:0 0;scale:1.07 .9}80%{scale:1}}@keyframes cc-snowflake{0%{translate:-12px -10px;opacity:0}25%{translate:0 7px;opacity:1}55%{translate:-9px 30px;scale:.6;opacity:1}75%,100%{translate:0 38px;scale:1.7;opacity:0}}@keyframes cc-coat{0%,100%{opacity:0}35%,70%{opacity:1;filter:drop-shadow(0 0 4px #eff4ff)}}@keyframes cc-sneeze{0%,70%,100%{rotate:0deg}74%{rotate:-14deg}78%{rotate:15deg}82%{rotate:-5deg}}@keyframes cc-dissolve{0%,100%{opacity:1}35%,65%{opacity:.08}}@keyframes cc-portal{0%{opacity:0;scale:.2}35%{opacity:1;scale:1}100%{opacity:0;scale:1.2}}
.cc-world[data-motion="off"] *,.cc-settings[data-motion="off"] *{animation:none!important;transition:none!important}.cc-world[data-motion="off"] .cc-mote{display:none}.cc-world[data-interactions="off"] .cc-pet{pointer-events:none;cursor:default}
@media(max-width:600px){.cc-settings{padding:12px}.cc-portraits{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cc-portrait{padding:12px 7px}.cc-portrait-art{height:104px}.cc-portrait>p{min-height:54px}.cc-home{opacity:.35;scale:.65;transform-origin:center bottom}.cc-portrait button{min-height:36px}.cc-switches{display:grid;grid-template-columns:1fr}.cc-portrait>span{letter-spacing:0}.cc-pet{touch-action:pan-y}}
@media(prefers-reduced-motion:reduce){.cc-world *,.cc-settings *{animation:none!important;transition:none!important}.cc-mote{display:none!important}}@media print{.cc-world,.cc-settings{display:none!important}}

.cc-world .cc-effects{overflow:hidden}.cc-world[data-state="sleep"] .cc-tail{transform-origin:85% 70%}.cc-settings[data-motion="on"] [data-id="lumi"] .cc-wing-right{transform-box:view-box;transform-origin:90px 77px}

[data-state="depart"] .cc-prop{animation:cc-portal .3s ease-in reverse both}[data-state="depart"][data-id="nova"] .cc-coat-stars{opacity:1}[data-state="depart"][data-id="lumi"] .cc-wing{filter:drop-shadow(0 0 8px white)}

.cc-curled-body,.cc-sleep-tail{display:none}.cc-curled-body{transform-origin:center}.cc-sleep-tail{transform-origin:20% 70%}[data-state="sleep"] :is(.cc-curled-body,.cc-sleep-tail){display:block}[data-state="sleep"]:is([data-id="ember"],[data-id="ghost"],[data-id="nova"]) :is(.cc-body,.cc-leg,.cc-tail){opacity:0}[data-state="sleep"]:is([data-id="ember"],[data-id="ghost"],[data-id="nova"]) .cc-head{translate:-24px 30px;rotate:27deg;scale:.9}[data-state="sleep"] .cc-curled-body{animation:cc-breathe 6s ease-in-out infinite}[data-state="sleep"] .cc-sleep-tail{animation:cc-tail 12s ease-in-out infinite}[data-state="sleep"][data-id="lumi"] .cc-rig{scale:1;translate:0 0}[data-state="sleep"][data-id="lumi"] .cc-head{rotate:0deg;translate:0 0}

[data-state="sleep"]:is([data-id="pixel"],[data-id="vesper"]) .cc-tail{rotate:0deg;translate:0 0;scale:1;animation:cc-tail 12s ease-in-out infinite!important}[data-state="sleep"]:is([data-id="pixel"],[data-id="vesper"]) .cc-rig{translate:0 0;scale:1}[data-state="sleep"][data-id="nova"] .cc-coat-stars{scale:.65 .5;translate:0 22px;transform-origin:50% 75%}
/* The Library keeps its own night-sky surface in both dashboard modes. */
.lc-library .cc-settings>p{color:#bec9df}.cc-portrait{background:linear-gradient(155deg,var(--world-elevated),var(--world-surface))}


/* Source: world-family.css */
/* The Lunar Chronicles — original celestial book arts, seven living chapters. */
@media screen {
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) {--lc-px:0px;--lc-py:0px;--lc-transition:1.2s;--lc-card-opacity:94%;--world-font:'Sentient',Georgia,serif;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-theme][data-mode] .workspace {background:transparent!important;isolation:isolate;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-theme][data-mode] .world-atmosphere {display:none!important;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .lc-environment {position:fixed;inset:0 0 0 var(--sidebar-width,240px);z-index:-1;overflow:hidden;pointer-events:none;contain:strict;background:radial-gradient(ellipse at 74% 19%,color-mix(in srgb,var(--lc-window) 17%,transparent),transparent 50%),linear-gradient(150deg,var(--world-background),var(--world-deep));transition:background-color .8s;}
 .lc-environment * {pointer-events:none;}
 .lc-nebula {position:absolute;inset:-15%;background:radial-gradient(ellipse at 28% 31%,#7765bd26,transparent 28%),radial-gradient(ellipse at 79% 19%,#dc97be1f,transparent 26%),radial-gradient(ellipse at 43% 72%,#3c9fbb1c,transparent 40%);animation:lc-cloud 46s ease-in-out infinite alternate;}
 .lc-stars,.lc-worlds,.lc-particles {position:absolute;inset:0;}
 .lc-stars {transform:translate(calc(var(--lc-px)*.3),calc(var(--lc-py)*.3));}
 .lc-star {position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:var(--star-color);box-shadow:0 0 7px var(--star-color);animation:lc-twinkle var(--cycle) ease-in-out var(--delay) infinite;}
 .lc-star:nth-child(17n)::after {content:'';position:absolute;inset:-3px 1px;background:inherit;transform:rotate(45deg);opacity:.5;}
 .lc-orbits {position:absolute;width:80%;height:65%;top:5%;left:5%;border:1px solid color-mix(in srgb,var(--lc-line) 18%,transparent);border-radius:50%;transform:rotate(-26deg);}
 .lc-orbits::after {content:'';position:absolute;inset:20px -70px;border:inherit;border-radius:inherit;}
 .lc-moon {position:absolute;top:8%;right:11%;width:clamp(140px,22vw,330px);filter:drop-shadow(0 0 28px #c6dbed38);transform:translate(calc(var(--lc-px)*.55),calc(var(--lc-py)*.55));}
 .lc-moon svg {display:block;width:100%;}
 .lc-moon-ring {transform-origin:120px 120px;animation:lc-orbit 85s linear infinite;}
 .lc-scene {position:absolute;inset:-12px;transform:translate(var(--lc-px),var(--lc-py));}
 .lc-scenery {width:100%;height:100%;display:block;}
 .lc-arriving {animation:lc-arrive var(--lc-transition) ease-out both;}
 .lc-departing {animation:lc-depart var(--lc-transition) ease-out both;}
 .lc-mist {position:absolute;inset:40% -20% -15%;background:radial-gradient(ellipse at 35% 75%,color-mix(in srgb,var(--lc-window) 12%,transparent),transparent 55%),radial-gradient(ellipse at 75% 35%,#c9d8e715,transparent 40%);animation:lc-cloud 33s ease-in-out -9s infinite alternate;}
 .lc-particle {position:absolute;left:var(--x);top:var(--y);color:var(--lc-gold);font:14px Georgia,serif;opacity:.65;animation:lc-drift var(--cycle) ease-in-out var(--delay) infinite alternate;}
 .lc-meteor {position:absolute;left:75%;top:14%;width:100px;height:1px;transform:rotate(-28deg);background:linear-gradient(90deg,transparent,#edf2ff);opacity:0;}
 .lc-environment[data-secret='visible'] .lc-meteor {animation:lc-meteor 2.8s ease-out both;}
 .lc-secret {opacity:0;}
 .lc-environment[data-secret='visible'] .lc-secret {animation:lc-secret 11s ease-in-out both;}
 .lc-environment[data-secret='visible'] .lc-ship {animation:lc-spacecraft 11s linear both;}
 .lc-light-wave {position:absolute;inset:0;opacity:0;background:linear-gradient(110deg,transparent 25%,color-mix(in srgb,var(--lc-gold) 18%,transparent),transparent 70%);}
 .lc-changing .lc-light-wave {animation:lc-light-wave var(--lc-transition) ease-in-out both;}
 .lc-ribbon {transform-origin:center;animation:lc-cloth 14s ease-in-out infinite alternate;}
 .lc-hologram {animation:lc-hologram 13s ease-in-out -3s infinite;}
 .lc-circuit {stroke-dasharray:100 900;animation:lc-circuit 12s linear infinite;}
 .lc-earth-cloud {transform-origin:1040px 920px;animation:lc-orbit 480s linear infinite;}
 .lc-signal {transform-box:fill-box;transform-origin:center;animation:lc-signal 4s ease-out infinite;}
 .lc-curtain {transform-origin:top;animation:lc-cloth 24s ease-in-out infinite alternate;}
 .lc-illusion {animation:lc-illusion 57s ease-in-out infinite;}
 .lc-star-lines {stroke-dasharray:250;stroke-dashoffset:250;animation:lc-constellation 29s ease-in-out infinite;}
 html[data-family-realm='cinder'] .lc-moon {right:19%;width:180px;top:12%;}
 html[data-family-realm='scarlet'] .lc-moon {right:29%;top:7%;width:300px;}
 html[data-family-realm='cress'] .lc-moon {right:24%;top:17%;width:100px;}
 html[data-family-realm='fairest'] .lc-moon {right:42%;top:15%;width:170px;opacity:.7;}
 html[data-family-realm='winter'] .lc-moon {right:15%;top:4%;width:340px;}
 html[data-family-realm='scarlet'] .lc-particle {width:12px;height:18px;background:linear-gradient(60deg,#794344,#ca6370);clip-path:polygon(50% 0,63% 23%,91% 16%,81% 43%,100% 55%,61% 71%,50% 100%,42% 70%,8% 60%,26% 38%,12% 19%,39% 24%);}
 html[data-family-realm='scarlet'] .lc-particle.p1 {width:3px;height:3px;background:#f2d28c;box-shadow:0 0 9px #f2d28c;clip-path:none;border-radius:50%;}
 html[data-family-realm='scarlet'] .lc-particle.p2 {clip-path:polygon(50% 0,100% 50%,60% 90%,50% 100%,12% 73%,0 40%);background:#7a9a67;}
 html[data-family-realm='winter'] .lc-particle {color:#e1e6fa;font-size:17px;text-shadow:0 0 8px #ded3ff55;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-mode='light'] .lc-stars {opacity:.42;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-mode='light'] .lc-moon {opacity:.7;filter:drop-shadow(0 0 25px #ffffff90);}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-mode='light'] .lc-nebula {background:radial-gradient(ellipse at 65% 20%,#fff5dca0,transparent 40%),radial-gradient(ellipse at 15% 55%,#c9b4d84a,transparent 50%);}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-mode='light'] .lc-mist {background:radial-gradient(ellipse,#fff4e353,transparent 65%);}
 /* A small permanent realm switch keeps the Library optional during work. */
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .lc-realm-bar {position:relative;z-index:2;display:flex;align-items:center;gap:12px;padding:12px 24px;margin:0 0 14px;border-block:1px solid color-mix(in srgb,var(--world-border) 60%,transparent);background:linear-gradient(105deg,color-mix(in srgb,var(--world-surface) 94%,transparent),color-mix(in srgb,var(--world-elevated) 92%,transparent));box-shadow:0 12px 30px -24px var(--world-deep);}
 .lc-bar-sigil {font:38px Georgia,serif;color:var(--world-accent);}
 .lc-bar-title {flex:1;min-width:0;display:grid;gap:4px;}
 .lc-bar-title>span {font:10px/1.4 var(--font-sans,system-ui);letter-spacing:.21em;color:var(--world-secondary);}
 .lc-bar-title strong {font:17px/1.3 'Sentient',Georgia,serif;font-weight:400;color:var(--world-text);}
 .lc-realm-bar .button {font-size:12px;white-space:nowrap;min-height:36px;}
 .lc-quick-label select {max-width:155px;min-height:38px;font-size:12px;}
 /* Shared material engine: status-bearing room paint stays owned by status CSS. */
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-theme][data-mode] .lc-card {position:relative;isolation:isolate;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-theme][data-mode] .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging) {background:linear-gradient(135deg,color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,var(--lc-card-opacity)),transparent),color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,97%),transparent))!important;box-shadow:0 14px 34px -24px #030617b3,inset 0 1px color-mix(in srgb,var(--lc-gold) 22%,transparent)!important;border:1px solid color-mix(in srgb,var(--world-border) 72%,transparent)!important;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-theme][data-mode] .lc-card>.panel-head {background:linear-gradient(100deg,var(--world-elevated),color-mix(in srgb,var(--world-surface) 90%,transparent))!important;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-theme][data-mode] .lc-card>.panel-head::before {animation:none!important;opacity:.1;}
 .lc-card-shell {position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;z-index:2;color:var(--lc-gold);contain:paint;}
 .lc-card-shell * {pointer-events:none;}
 .lc-corner {position:absolute;width:36px;height:36px;border-top:1px solid currentColor;border-left:1px solid currentColor;border-radius:12px 0 0 0;opacity:.64;}
 .lc-corner::before {content:'';position:absolute;inset:5px 4px 4px 5px;border-top:1px solid currentColor;border-left:1px solid currentColor;border-radius:9px 0 0 0;opacity:.5;}
 .lc-corner::after {content:'✦';position:absolute;top:-5px;left:22px;font:9px Georgia,serif;}
 .lc-corner.c1 {top:5px;left:5px;}.lc-corner.c2 {top:5px;right:5px;transform:rotate(90deg);}.lc-corner.c3 {bottom:5px;right:5px;transform:rotate(180deg);}.lc-corner.c4 {bottom:5px;left:5px;transform:rotate(270deg);}
 .lc-card-trace {position:absolute;inset:0;border:1px solid transparent;border-top-color:var(--lc-gold);border-radius:inherit;opacity:.25;}
 .lc-card-glint {position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,#d9e4ff0a 48%,transparent 58%);opacity:.5;}
 .lc-card-seal {position:absolute;right:12px;bottom:6px;font:12px Georgia,serif;opacity:.4;}
 html[data-family-cards='on'] .lc-card:is(:hover,:focus-within)>.lc-card-shell .lc-corner {opacity:1;filter:drop-shadow(0 0 4px currentColor);}
 html[data-family-cards='on'] .lc-card:is(:hover,:focus-within)>.lc-card-shell .lc-card-glint {animation:lc-reflect 1.3s ease-out both;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-family-cards='on'][data-theme][data-mode] .lc-card:not(.card-dragging):hover {box-shadow:0 17px 32px -24px #020615c0,0 0 16px -8px var(--lc-gold),inset 0 1px color-mix(in srgb,var(--lc-gold) 40%,transparent)!important;}
 html[data-family-realm='cinder'] .lc-corner {border-radius:0;width:41px;height:26px;clip-path:polygon(0 0,100% 0,100% 55%,70% 55%,70% 100%,0 100%);}
 html[data-family-realm='cinder'] .lc-card-trace {background:repeating-linear-gradient(90deg,transparent 0 22px,#ee82ba17 23px 24px);height:4px;}
 html[data-family-realm='cinder'] .lc-card-seal::before {content:'⌘ ';}
 html[data-family-realm='scarlet'] .lc-corner {border-radius:80% 0;width:42px;height:42px;transform:rotate(-10deg);}
 html[data-family-realm='scarlet'] .lc-corner::after {content:'❧';font-size:20px;}
 html[data-family-realm='scarlet'] .lc-corner.c2 {transform:rotate(80deg);}.lc-corner.c3 {transform:rotate(180deg);}
 html[data-family-realm='cress'] .lc-card-trace {inset:4px;border:1px solid color-mix(in srgb,var(--lc-gold) 45%,transparent);border-radius:16px;}
 html[data-family-realm='cress'] .lc-corner {border-radius:50%;height:28px;width:28px;}
 html[data-family-realm='fairest'] .lc-corner {height:48px;width:48px;border-width:2px;border-radius:22px 0 0 0;}
 html[data-family-realm='fairest'] .lc-card-glint {opacity:.9;background:linear-gradient(117deg,transparent 35%,#edced515 49%,transparent 65%);}
 html[data-family-realm='fairest'] .lc-card-seal::before {content:'♜ ';}
 html[data-family-realm='winter'] .lc-corner::after {content:'❄';font-size:12px;}
 html[data-family-realm='winter'] .lc-card-trace {border:1px dotted var(--lc-gold);inset:3px;}
 html[data-family-realm='winter'] .lc-card-seal {color:var(--world-accent-secondary);}
 html[data-family-realm='winter'] .lc-card-seal::before {content:'♧ ';}
 html[data-family-realm='stars-above'] .lc-corner {border-style:dotted;}
 html[data-family-realm='stars-above'] .lc-card-seal::before {content:'· ✧ · ';}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-theme][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel) {background:linear-gradient(155deg,var(--world-surface),var(--world-deep))!important;border-color:var(--world-border)!important;box-shadow:inset -1px 0 color-mix(in srgb,var(--lc-gold) 22%,transparent)!important;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-mode='light'] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet) {background:linear-gradient(150deg,var(--world-surface),var(--world-elevated))!important;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .sidebar .nav-item.active {background:linear-gradient(100deg,color-mix(in srgb,var(--lc-gold) 17%,var(--world-surface)),var(--world-surface))!important;box-shadow:inset 3px 0 var(--lc-gold),inset 0 1px color-mix(in srgb,var(--lc-gold) 24%,transparent)!important;color:var(--world-text)!important;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .nav-item.active .nav-icon {color:var(--world-accent);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--lc-gold) 40%,transparent));}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) :is(button,a,input,select,textarea,summary):focus-visible {outline:2px solid var(--world-accent)!important;outline-offset:3px;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) :is(.empty-state,.empty-message) {border:1px dashed var(--world-border);background:color-mix(in srgb,var(--world-elevated) 85%,transparent);border-radius:16px;padding:18px;color:var(--world-secondary);}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) :is(.empty-state,.empty-message)::before {content:var(--world-symbol);display:block;font:24px Georgia,serif;color:var(--lc-gold);margin-bottom:6px;}
 /* Royal library: native dialog supplies focus containment and Escape. */
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-theme][data-mode] dialog.lc-library {width:min(1120px,calc(100vw - 36px));max-height:calc(100dvh - 36px);padding:28px;overflow:auto;background:radial-gradient(ellipse at 50% 0,#52487555,transparent 56%),#111a2e!important;color:#f0ecf8!important;border:1px solid #8792b1!important;border-radius:30px 30px 12px 12px!important;box-shadow:0 30px 100px #0009,inset 0 0 0 6px #151e33,inset 0 0 0 7px #8997b63b!important;}
 .lc-library::backdrop {background:#070d1cb5;backdrop-filter:blur(6px);}
 .lc-library-head {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;position:relative;z-index:2;}
 .lc-library .lc-eyebrow {font:10px system-ui;letter-spacing:.3em;color:#c4c9e1;margin:0 0 10px;}
 .lc-library h2 {font:clamp(26px,3.5vw,42px)/1.1 'Sentient',Georgia,serif;margin:0;color:#f2edfc;letter-spacing:-.025em;font-weight:400;}
 .lc-library-head p:not(.lc-eyebrow) {color:#c3cadc;font-size:13px;margin:10px 0 0;}
 .lc-library-vault {height:104px;position:relative;display:grid;place-items:center;border:1px solid #93a3c936;border-bottom:0;border-radius:50% 50% 0 0;margin:22px 3% -5px;}
 .lc-library-vault::after {content:'';position:absolute;inset:10px 14px 0;border:1px solid #c3b6de20;border-bottom:0;border-radius:inherit;}
 .lc-library-vault svg {width:82px;filter:drop-shadow(0 0 18px #bacfff3f);}
 .lc-books {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:14px;padding:12px 10px 38px;border-bottom:1px solid #b2bfdd66;border-radius:0 0 50% 50% / 0 0 14% 14%;perspective:1400px;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) button.lc-book {appearance:none;display:block;padding:0;border:0!important;border-radius:5px 12px 12px 5px!important;color:#edf0fa!important;background:none!important;box-shadow:none!important;transform:translateY(var(--book-curve)) rotate(var(--book-angle));transition:transform .45s,filter .45s;cursor:pointer;min-width:0;text-align:center;}
 .lc-book-frame {position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:10px;min-height:235px;padding:17px 9px 23px;background:radial-gradient(ellipse at 70% 20%,color-mix(in srgb,var(--book-color) 25%,transparent),transparent 65%),linear-gradient(105deg,#0d172b 3%,color-mix(in srgb,var(--book-secondary) 28%,#121727) 8%,#101b30 12%,#13192f);border:1px solid color-mix(in srgb,var(--book-color) 55%,#29344a);border-radius:inherit;box-shadow:-5px 8px 0 -3px #b2b4c380,0 16px 25px #02061277,inset 5px 0 8px #0008;}
 .lc-book-frame::before {content:'';position:absolute;inset:7px;border:1px solid color-mix(in srgb,var(--book-color) 32%,transparent);border-radius:50px 50px 3px 3px;pointer-events:none;}
 .lc-book-chapter {font:8px/1.4 system-ui;letter-spacing:.12em;text-transform:uppercase;color:#c9cce0;min-height:22px;}
 .lc-book-emblem {display:block;width:70%;max-width:84px;color:var(--book-color);filter:drop-shadow(0 0 8px color-mix(in srgb,var(--book-color) 30%,transparent));}
 .lc-book-emblem svg {width:100%;display:block;}
 .lc-book strong {font:19px/1.1 'Sentient',Georgia,serif;color:#f0edf9;font-weight:400;}
 .lc-book-subtitle {font:9px/1.5 system-ui;color:#c9cce0;min-height:27px;}
 .lc-book-selected {position:absolute;bottom:4px;color:var(--book-color);opacity:0;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) button.lc-book:is(:hover,:focus-visible,[aria-pressed='true']) {transform:translateY(-7px) rotate(0);filter:brightness(1.15);}
 .lc-book[aria-pressed='true'] .lc-book-frame {border-color:var(--book-color);box-shadow:0 0 22px -8px var(--book-color),0 20px 26px #030916aa,inset 0 0 0 4px #141e30,inset 0 0 0 5px color-mix(in srgb,var(--book-color) 45%,transparent);}
 .lc-book[aria-pressed='true'] .lc-book-selected {opacity:1;}
 .lc-book[aria-pressed='true'] strong {text-shadow:0 0 12px var(--book-color);}
 .lc-library-caption {text-align:center;padding:24px 0 15px;}
 .lc-library-caption>span {font:10px system-ui;letter-spacing:.15em;text-transform:uppercase;color:#bbc6dd;display:block;margin-bottom:8px;}
 .lc-library-caption>strong {font:25px 'Sentient',Georgia,serif;font-weight:400;color:#e4d6f0;}
 .lc-library-caption [role='status'] {font-size:12px;min-height:17px;color:#bacbe5;margin:8px 0 0;}
 .lc-atelier {border-top:1px solid #7b8ba45c;padding-top:16px;}
 .lc-atelier summary {font:20px 'Sentient',Georgia,serif;color:#e8deef;cursor:pointer;padding:10px 0;}
 .lc-atelier summary span {font:11px system-ui;color:#bac7df;margin-left:12px;}
 .lc-settings {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:16px 0 24px;}
 .lc-library label {display:grid;gap:8px;font:12px/1.5 system-ui;color:#d4dced;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-theme][data-mode] .lc-library :is(select,input[type='range'],button.button) {background:#202c44!important;color:#f0edf9!important;border-color:#8290ac!important;min-height:36px;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .lc-library option {background:#202c44;color:#f0edf9;}
 .lc-save-note,.lc-audio>p {font:12px/1.6 system-ui;color:#bfc9df;}
 .lc-audio {border:1px solid #7b8ba460;border-radius:12px;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:15px;}
 .lc-audio legend {font:17px Georgia,serif;color:#e8def0;padding:0 8px;}
 .lc-audio .lc-switch {display:flex;align-items:center;}
 .lc-audio-events {grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;}
 .lc-audio-events>div {display:flex;justify-content:space-between;gap:10px;align-items:center;}
 .lc-audio-events label {display:flex;align-items:center;gap:9px;}
 .lc-audio>p {grid-column:1/-1;margin:0;}
 .lc-library input[type='checkbox'] {accent-color:#b9a8df;width:17px;height:17px;}
 [data-lc-theme-shortcut] {display:flex;flex-wrap:wrap;gap:8px;padding:8px 0;}[data-lc-theme-shortcut][hidden] {display:none;}
 html[data-family-ornament='minimal'] .lc-corner,html[data-family-ornament='minimal'] .lc-card-seal {display:none;}
 html[data-family-ornament='elegant'] .lc-corner::after {display:none;}
 html[data-family-glow='off'] .lc-card-glint {display:none;}
 html[data-family-glow='radiant'] .lc-card-shell {filter:drop-shadow(0 0 4px color-mix(in srgb,var(--lc-gold) 45%,transparent));}
 html[data-family-environment='off'] :is(.lc-worlds,.lc-mist,.lc-nebula,.lc-orbits) {display:none;}
 html[data-family-lighting='soft'] .lc-environment {filter:saturate(.75);}
 html[data-family-lighting='cinematic'] .lc-environment {filter:saturate(1.25) contrast(1.08);}
 html[data-family-motion='gentle'] :is(.lc-particle,.lc-nebula,.lc-mist) {animation-duration:60s;}
 html[data-family-motion='off'] .lc-environment *,html[data-family-reduced='yes'] .lc-environment *,html[data-family-awake='no'] :is(.lc-environment,.lc-library,.lc-card-shell) *, .lc-environment[data-running='no'] * {animation-play-state:paused!important;}
 html[data-family-cards='off'] .lc-card-shell *,html[data-family-motion='off'] .lc-book,html[data-family-reduced='yes'] .lc-book {animation:none!important;transition:none!important;}
 html[data-family-motion='off'] .lc-moon-ring,html[data-family-reduced='yes'] .lc-moon-ring {animation:none!important;}
 html[data-family-motion='off'] .lc-star-lines,html[data-family-reduced='yes'] .lc-star-lines {stroke-dashoffset:0;}
 html[data-family-transitions='instant'] :is(.lc-arriving,.lc-departing,.lc-light-wave) {animation:none;}
 .world-preview[data-world='lunar-chronicles'] .world-portal-art {background:radial-gradient(circle at 75% 24%,#dfecff 0 10%,transparent 10.5%),linear-gradient(140deg,#233a66,#433252)!important;mask:none!important;opacity:1!important;}
 @media(max-width:1000px){.lc-books{gap:8px;padding-inline:0}.lc-book-frame{min-height:210px;padding:12px 5px 20px}.lc-book strong{font-size:17px}.lc-bar-title strong{font-size:14px}.lc-realm-bar{flex-wrap:wrap}.lc-realm-bar .lc-atelier-shortcut{font-size:11px}}
 @media(max-width:700px){html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .lc-environment{inset:0}.lc-moon{right:2%;top:15%;max-width:210px}.lc-scene{inset:0 -34%;}.lc-particles{opacity:.65}html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .lc-realm-bar{padding:10px 12px;gap:8px;margin-bottom:8px}.lc-bar-title{flex-basis:calc(100% - 45px)}.lc-bar-title>span{font-size:9px}.lc-bar-sigil{font-size:30px}.lc-quick-label{flex:1;min-width:95px}.lc-quick-label select{width:100%;max-width:none}.lc-realm-bar .button{font-size:11px;padding:8px}.lc-atelier-shortcut{max-width:90px;white-space:normal!important;line-height:1.2}.lc-books{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 10px;padding-bottom:20px;border-radius:0}.lc-book-frame{min-height:197px}.lc-book{--book-angle:0deg!important;--book-curve:0px!important}.lc-book:last-child{grid-column:2}.lc-library-vault{height:70px;margin-top:10px}.lc-library-vault svg{width:57px}html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-theme][data-mode] dialog.lc-library{padding:20px 14px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:22px 22px 8px 8px!important}.lc-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lc-audio{grid-template-columns:1fr}.lc-audio-events{grid-template-columns:1fr}.lc-library-head h2{font-size:28px}.lc-library-head p:not(.lc-eyebrow){font-size:12px}.lc-book-subtitle{font-size:9px}.lc-book strong{font-size:18px}.lc-library-caption>strong{font-size:23px}.lc-atelier summary span{display:block;margin:6px 0}.lc-corner{width:26px;height:26px}}
 @media(max-width:360px){.lc-books{grid-template-columns:repeat(2,minmax(0,1fr));}.lc-book:last-child{grid-column:auto}.lc-settings{grid-template-columns:1fr}.lc-atelier-shortcut{max-width:80px}.lc-library-head h2{font-size:25px}}
 @media(prefers-reduced-motion:reduce){.lc-environment *,.lc-library *,.lc-card-shell *{animation:none!important;transition:none!important}.lc-star-lines{stroke-dashoffset:0}.lc-book:hover{transform:none!important}}
}
@media print {.lc-environment,.lc-realm-bar,.lc-library,.lc-card-shell,[data-lc-theme-shortcut]{display:none!important}}
@keyframes lc-silver-breath{50%{opacity:.65}}
@keyframes lc-twinkle{0%,100%{opacity:.25}43%{opacity:.95}71%{opacity:.5}}
@keyframes lc-cloud{from{transform:translate(-1%,-1%) rotate(-1deg)}to{transform:translate(3%,2%) rotate(2deg)}}
@keyframes lc-orbit{to{transform:rotate(360deg)}}
@keyframes lc-drift{0%{translate:0 -20px;rotate:-15deg;opacity:.15}45%{opacity:.8}100%{translate:var(--drift) 100px;rotate:var(--turn);opacity:.3}}
@keyframes lc-arrive{from{opacity:0;filter:brightness(.8)}to{opacity:1;filter:brightness(1)}}
@keyframes lc-depart{to{opacity:0}}
@keyframes lc-light-wave{0%{opacity:0;translate:-35% 0}45%{opacity:.7}100%{opacity:0;translate:35% 0}}
@keyframes lc-meteor{0%{opacity:0;translate:80px -40px}15%{opacity:.8}100%{opacity:0;translate:-440px 220px}}
@keyframes lc-secret{0%,100%{opacity:0}25%,75%{opacity:.65}}
@keyframes lc-spacecraft{0%{opacity:0;translate:0 0}15%,80%{opacity:.7}100%{opacity:0;translate:1300px -65px}}
@keyframes lc-cloth{from{translate:-3px 0;rotate:-.5deg}to{translate:6px 4px;rotate:.6deg}}
@keyframes lc-hologram{0%,35%,100%{opacity:.25}45%,75%{opacity:.8}}
@keyframes lc-circuit{to{stroke-dashoffset:-1000}}
@keyframes lc-signal{from{opacity:.7;scale:.5}to{opacity:0;scale:1.2}}
@keyframes lc-illusion{0%,86%,100%{opacity:.15;translate:0 0}91%{opacity:.5;translate:6px 0}}
@keyframes lc-constellation{0%,40%,100%{stroke-dashoffset:250;opacity:.2}65%,82%{stroke-dashoffset:0;opacity:.8}}
@keyframes lc-reflect{from{translate:-70% 0;opacity:0}50%{opacity:1}to{translate:70% 0;opacity:0}}
/* The Chronicles Awaken: real-time material entrances, never a blocking overlay. */
@media screen {
 .lc-cinema {position:fixed;inset:0;z-index:10050;pointer-events:none;overflow:hidden;contain:layout paint;}
 .lc-cinema-art {position:absolute;inset:0;pointer-events:none;}
 .lc-cinema-veil {position:absolute;inset:0;background:radial-gradient(ellipse at 50% 43%,#121831,#040713 68%);}
 .lc-cinema-shaft {position:absolute;inset:-35%;background:linear-gradient(110deg,transparent 32%,color-mix(in srgb,var(--lc-cinema-accent) 35%,transparent) 49%,transparent 59%);}
 .lc-cinema-symbol {position:absolute;left:50%;top:43%;width:clamp(140px,22vw,270px);aspect-ratio:1;translate:-50% -50%;color:#e0e6f4;filter:drop-shadow(0 0 15px color-mix(in srgb,var(--lc-cinema-accent) 45%,transparent));}
 .lc-cinema-symbol svg {width:100%;height:100%;}
 .lc-cinema-halo {position:absolute;left:50%;top:43%;translate:-50% -50%;width:180px;aspect-ratio:1;border:1px solid var(--lc-cinema-accent);border-radius:50%;box-shadow:0 0 20px color-mix(in srgb,var(--lc-cinema-secondary) 45%,transparent),inset 0 0 20px color-mix(in srgb,var(--lc-cinema-accent) 25%,transparent);}
 .lc-cinema-title {position:absolute;top:65%;left:8%;width:84%;text-align:center;color:#f0eafa;text-shadow:0 2px 18px #070a1a;}
 .lc-cinema-title>span {display:block;font:clamp(28px,4.8vw,62px)/1.2 'Sentient',Georgia,serif;letter-spacing:.16em;font-weight:400;background:linear-gradient(#ffffff,#b9c8e3 65%,#f1e1f1);background-clip:text;-webkit-text-fill-color:transparent;}
 .lc-cinema-title>strong {display:block;font:10px/1.8 system-ui;letter-spacing:.4em;margin-top:16px;color:#d6deee;font-weight:400;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .lc-cinema-skip {pointer-events:auto;position:absolute;right:max(18px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));border:1px solid #a0abc4;border-radius:30px;background:#152036ed;color:#f7f3ff;padding:13px 20px;font:13px system-ui;cursor:pointer;box-shadow:0 4px 24px #0005;min-height:44px;}
 .lc-cinema-skip kbd {margin-left:14px;font-size:10px;border:1px solid #a0abc466;border-radius:4px;padding:2px 5px;}
 .lc-cinema-paths,.lc-cinema-special,.lc-cinema-particles,.lc-cinema-marks {position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
 .lc-cinema-paths path {stroke:var(--lc-cinema-accent);stroke-width:1.1;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--lc-cinema-accent) 40%,transparent));}
 .lc-cinema-paths .lc-cinema-card-frame {stroke-width:1.5;}
 .lc-cinema-paths .lc-cinema-vine {stroke:#c5a576;stroke-width:2;}
 .lc-cinema-paths .lc-cinema-frost {stroke:#e3e6fc;stroke-width:1;}
 .lc-cinema-paths .lc-cinema-circuit {stroke:#f199d0;stroke-width:1.8;}
 .lc-cinema-paths .lc-cinema-thread {stroke:#e7cb8d;stroke-width:.8;}
 .lc-cinema-paths .lc-cinema-fracture {stroke:#dcd7e9;stroke-width:.6;}
 .lc-cinema-paths .lc-cinema-shooting-star {stroke:#f1e6d4;stroke-width:2;}
 .lc-cinema-particle {position:absolute;width:var(--particle-size);height:var(--particle-size);color:#e9e9f5;background:var(--lc-cinema-accent);border-radius:50%;font:14px Georgia,serif;box-shadow:0 0 8px color-mix(in srgb,var(--lc-cinema-accent) 55%,transparent);}
 .lc-cinema[data-realm='fairest'] .lc-cinema-particle {border-radius:0;clip-path:polygon(0 8%,100% 0,60% 100%);background:linear-gradient(140deg,#dfc5dfaa,#585e8780)!important;box-shadow:none;border:1px solid #d3c8df;}
 .lc-cinema[data-realm='scarlet'] .lc-cinema-particle {border-radius:80% 0;width:12px;height:18px;background:#c95c76!important;box-shadow:none;}
 .lc-cinema[data-realm='winter'] .lc-cinema-particle,.lc-cinema[data-realm='stars-above'] .lc-cinema-particle,.lc-cinema[data-realm='chronicles'] .lc-cinema-particle {background:transparent!important;box-shadow:none;}
 .lc-cinema-story-mark {position:absolute;left:50%;top:43%;width:85px;height:85px;margin:-42px;filter:drop-shadow(0 0 6px currentColor);}
 .lc-cinema-story-mark svg {width:100%;height:100%;}
 .lc-cinema-gear {position:absolute;left:50%;top:43%;margin:-35px 0 0 -45px;font:60px/1 Georgia;color:#c6d8ef;}.lc-cinema-gear.g2{margin:4px 0 0 8px;font-size:40px;}
 .lc-cinema-spark {position:absolute;left:77%;top:26%;width:24px;height:24px;background:#9deaff;clip-path:polygon(0 45%,42% 40%,48% 0,57% 41%,100% 48%,60% 58%,53% 100%,44% 57%);filter:drop-shadow(0 0 9px #9deaff);}
 .lc-cinema-petal {position:absolute;left:50%;top:35%;width:55px;height:76px;border-radius:65% 0 80% 10%;background:linear-gradient(140deg,#b81f4d,#fcb6b6);box-shadow:inset 1px 1px #ffd6d5;}
 .lc-cinema-special>svg {position:absolute;width:100%;height:100%;}
 .lc-cinema-window {position:absolute;inset:10% 12%;border:12px double #b5cbe8;border-radius:50% 50% 20% 20%;box-shadow:0 0 80px #7ac5eb44,inset 0 0 70px #7ecbef2c;}
 .lc-cinema-orbital-satellite {position:absolute;left:50%;top:35%;font:40px Georgia,serif;color:#e7d7b9;}
 .lc-cinema-mirror {position:absolute;left:50%;top:43%;translate:-50% -50%;width:250px;height:360px;border:8px double #c7bbd3;border-radius:50% 50% 10% 10%;background:linear-gradient(117deg,#2a1f3980,#22284150,#a4668840,#101221a0);box-shadow:inset 0 0 0 9px #141321,inset 0 0 0 10px #ae9ab9,0 0 60px #b1507b33;}
 .lc-cinema-crown {position:absolute;right:24%;top:34%;font:55px Georgia;color:#ece0f1;opacity:0;}
 .lc-cinema-crystal {position:absolute;left:50%;top:43%;translate:-50% -50%;font:170px Georgia;color:#e3e4f8;text-shadow:0 0 22px #bbbffa55;}
 .lc-cinema-apple {position:absolute;left:50%;top:43%;translate:-50% -50%;width:110px;color:#ef7e9c;filter:drop-shadow(0 0 12px #d3367550);}
 .lc-cinema-storybook {position:absolute;left:50%;top:43%;translate:-50% -50%;width:340px;height:220px;display:flex;perspective:700px;}
 .lc-cinema-storybook i {display:block;width:50%;height:100%;border:2px solid #b4c5df;border-radius:10px 30px 0 10px;background:repeating-linear-gradient(transparent 0 23px,#afc8e524 24px 25px),radial-gradient(ellipse,#d4d9f045,#28345355);transform-origin:right center;box-shadow:inset 0 0 0 6px #27354b,inset 0 0 0 7px #c1c9e448;}
 .lc-cinema-storybook i+ i {transform-origin:left center;border-radius:30px 10px 10px 0;}
 .lc-cinema-prologue {position:absolute;left:50%;top:43%;translate:-50% -50%;width:140px;color:#dce7fc;}
 .lc-cinema-final-mark {position:absolute;width:32px;color:var(--lc-cinema-accent);}
 .lc-cinematic-settings {border:1px solid #8291ad60;border-radius:12px;margin:8px 0 24px;padding:16px;color:#dbe0f0;}
 .lc-cinematic-settings legend {font:18px 'Sentient',Georgia,serif;padding:0 8px;}
 .lc-cinematic-settings .lc-switch {display:flex;align-items:center;margin:12px 0;}
 .lc-cinematic-settings .lc-settings {grid-template-columns:repeat(2,minmax(0,1fr));}
 @media(max-width:700px){.lc-cinema-title>span{font-size:29px;letter-spacing:.08em}.lc-cinema-title>strong{font-size:9px;letter-spacing:.22em}.lc-cinema-symbol{width:170px}.lc-cinema-story-mark{width:55px;height:55px;margin:-27px}.lc-cinema-mirror{width:170px;height:260px}.lc-cinema-storybook{width:230px;height:160px}.lc-cinema-skip{bottom:90px!important}.lc-cinematic-settings .lc-settings{grid-template-columns:1fr}}
 @media(prefers-reduced-motion:reduce){.lc-cinema{display:none!important}}
}
@media print {.lc-cinema{display:none!important}}
@media screen {
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-theme][data-mode][data-animation-style] .workspace>.workspace-animation-decor {display:none!important;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .lc-architecture {opacity:.55;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .lc-moon {opacity:.8;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .lc-library {--surface-ink:#f0ecf8;--surface-control:#202c44;--surface-edge:#8290ac;--surface-modal:#111a2e;}
 @layer surface-material {
  html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) dialog.lc-library {background:radial-gradient(ellipse at 50% 0,#52487555,transparent 56%),#111a2e!important;color:#f0ecf8!important;border-color:#8792b1!important;}
  html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) #app-view .view .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished) {background:linear-gradient(135deg,color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,96%),transparent),color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,96%),transparent))!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:0 14px 34px -24px #030617a0,inset 0 1px color-mix(in srgb,var(--lc-gold) 22%,transparent)!important;border-color:color-mix(in srgb,var(--world-border) 70%,transparent)!important;}
  html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) .lc-library :is(select,button.button) {background:#202c44!important;color:#f0edf9!important;}
 }
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale']) #app-view .view .lc-card::after {content:none!important;}
 html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='empyrean'],[data-world='prythian'],[data-world='courts-of-twilight-meredith-gentry'],[data-world='fairy-tale'])[data-family-glow='off'] #app-view .view .lc-card:hover {box-shadow:0 14px 34px -24px #030617a0!important;}
 html[data-family-environment='off'] :is(.lc-meteor,.lc-secret) {display:none;}
 html[data-family-cards='off'] .lc-card:hover>.lc-card-shell {filter:none;}
}
@media screen {
 .lc-cinema-orbital-satellite {width:160px;height:90px;translate:-50% -50%;filter:drop-shadow(0 0 12px #e9d29855);}
 .lc-cinema-orbital-satellite svg {display:block;width:100%;height:100%;}
 .lc-environment[data-discovery='yes'] .lc-star-lines {animation:none;stroke-dashoffset:0;stroke:var(--lc-gold);opacity:1;}
}
/* The realm selector remains available in Themes, not across operational screens. */
.workspace > .lc-realm-bar {display:none!important;}


/* Source: world-family-extras.css */
/* Shared capabilities: both families receive the same controls and behavior. */
@media screen {
 .lc-nebula{animation-duration:calc(46s / var(--family-weather,1))}.lc-mist{animation-duration:calc(33s / var(--family-weather,1))}.lc-particle{animation-duration:calc(var(--cycle) / var(--family-weather,1))}
 @layer surface-material {
  html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='prythian'],[data-world='fairy-tale'])[data-family-material='paper'][data-theme][data-mode] #app-view .view .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished){background:repeating-linear-gradient(0deg,#b7a6770d 0 1px,transparent 1px 4px),linear-gradient(145deg,color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,100%),transparent),color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,100%),transparent))!important}
  html:is([data-world='lunar-chronicles'],[data-world='dark-is-rising'],[data-world='prythian'],[data-world='fairy-tale'])[data-family-material='carved'][data-theme][data-mode] #app-view .view .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished){background:repeating-linear-gradient(91deg,transparent 0 10px,#0000000d 11px 12px),linear-gradient(135deg,color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,100%),transparent),color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,100%),transparent))!important;box-shadow:inset 0 0 0 3px var(--world-elevated),inset 0 0 0 4px var(--world-border),0 12px 28px -22px #0009!important}
 }
 .lc-book{position:relative;transform-style:preserve-3d}
 .lc-book-mini{position:absolute;left:-10%;bottom:98%;width:120%;height:120px;overflow:hidden;border:1px solid var(--book-color);border-radius:50% 50% 12px 12px;opacity:0;translate:0 15px;transition:opacity .35s,translate .35s;pointer-events:none;background:#18292c;box-shadow:0 0 30px #080b1277}
 .lc-book:is(:hover,:focus-visible) .lc-book-mini{opacity:1;translate:0 -5px}
 .lc-book-mini .lc-scenery{animation:family-mini 12s ease-in-out infinite alternate}
 .lc-book-leaves{position:absolute;inset:4px;pointer-events:none;perspective:500px}
 .lc-book-leaves i{position:absolute;inset:0;background:repeating-linear-gradient(#d4d0b7 0 18px,#938c6744 19px 20px);border:1px solid #c7c3a7;border-radius:3px;transform-origin:left;opacity:0}
 .lc-book[data-opening='yes'] .lc-book-frame{animation:family-cover .5s ease-out both;transform-origin:left}
 .lc-book[data-opening='yes'] .lc-book-leaves i{animation:family-page .5s ease-out both;opacity:1}
 .lc-book[data-opening='yes'] .lc-book-leaves i:nth-child(2){animation-delay:.08s}.lc-book[data-opening='yes'] .lc-book-leaves i:nth-child(3){animation-delay:.15s}
 .lc-book[data-opening='yes'] .lc-book-mini{opacity:1;transform:scale(1.2);translate:0 -10px}
 html[data-family-material='paper'] .lc-card:not(.room-card):not(.adaptive-room-card){background-image:repeating-linear-gradient(0deg,#b7a67708 0 1px,transparent 1px 4px),linear-gradient(145deg,color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,100%),transparent),color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,100%),transparent))!important}
 html[data-family-material='carved'] .lc-card:not(.room-card):not(.adaptive-room-card){background-image:repeating-linear-gradient(91deg,transparent 0 10px,#0000000b 11px 12px),linear-gradient(135deg,color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,100%),transparent),color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,100%),transparent))!important;box-shadow:inset 0 0 0 3px var(--world-elevated),inset 0 0 0 4px var(--world-border),0 12px 28px -22px #0009!important}
 html[data-family-quality='low'] .lc-environment :is(.lc-nebula,.lc-mist){animation:none!important}
 html[data-family-accessibility='still'] :is(.lc-environment,.lc-library,.lc-card-shell,.cc-world,.cc-settings) *{animation:none!important;transition:none!important}
 html[data-family-awake='no'] :is(.lc-library,.cc-settings) *{animation-play-state:paused!important}
 html[data-family-motion='off'] .lc-library *{animation:none!important;transition:none!important}
 html[data-family-environment='off'] .lc-scene *{animation:none!important}
 .lc-family-appearance{display:flex;gap:12px;margin:12px 0}.lc-family-appearance select{min-width:120px}
 @media(prefers-reduced-motion:reduce){.lc-book-mini .lc-scenery{animation:none!important}.lc-book[data-opening='yes'] *{animation:none!important}}
}
@keyframes family-mini{to{transform:scale(1.1) translateY(5px)}}
@keyframes family-cover{to{transform:rotateY(-65deg)}}
@keyframes family-page{0%{transform:rotateY(0)}100%{transform:rotateY(-150deg)}}


/* Source: dark-rising-family.css */
/* Dark Is Rising: original old-magic art. The obsolete theme has no styles here. */
@media screen {
 .dr-manor-stage{position:relative;overflow:hidden;aspect-ratio:3/1;width:100%;background:#32291c}.dr-manor-stage img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
 .dr-hearth-light{position:absolute;left:10%;top:40%;width:25%;height:55%;background:radial-gradient(ellipse,#efb96337,transparent 67%);mix-blend-mode:screen;animation:dr-window 3.1s ease-in-out infinite alternate}
 .dr-window-light{position:absolute;inset:0;background:linear-gradient(135deg,transparent 30%,#efdba51c 46%,transparent 60%);animation:dr-window 19s ease-in-out infinite alternate}
 .dr-hall-dust{position:absolute;left:var(--x);top:var(--y);width:2px;height:2px;border-radius:50%;background:#e4c68e;opacity:.45;animation:dr-dust 8s ease-in-out var(--dr-delay) infinite alternate}
 html[data-world='dark-is-rising'] .dr-painted{opacity:.72}
 html[data-world='dark-is-rising'][data-mode='light'] .dr-painted{opacity:.9}
 html[data-world='dark-is-rising'] .dr-live>path,html[data-world='dark-is-rising'] .dr-live .dr-depth,html[data-world='dark-is-rising'] .dr-live :is(.dr-cottage,.dr-village,.dr-stones,.dr-chamber,.dr-silver-tree,.dr-woven,.dr-door){opacity:.13}
 html[data-world='dark-is-rising'] .dr-live :is(.dr-water,.dr-clouds){opacity:.34}
 html[data-world='dark-is-rising'] .dr-live :is(.dr-bird,.dr-horse){opacity:.5}
 html[data-world='dark-is-rising'] .lc-moon{display:none}
 html[data-world='dark-is-rising'] .lc-books::before{content:'';position:absolute;inset:auto -10px 17px;height:46px;z-index:-1;border-radius:40%;background:repeating-linear-gradient(1deg,#a08a5030 0 1px,transparent 1px 4px),linear-gradient(#654c2e,#352c20);border-block:1px solid #9a7d50;box-shadow:0 19px 27px -10px #0008}
 @layer surface-material {
  html[data-world='dark-is-rising'][data-theme][data-mode] dialog.lc-library{background:radial-gradient(ellipse at 50% 24%,#bda26922,transparent 65%),#20261f!important;color:#f0e6cd!important;border-color:#9d936e!important;border-radius:10px!important}
  html[data-world='dark-is-rising'][data-theme][data-mode] .lc-library :is(select,button.button){background:#303a2d!important;color:#f0e6cd!important;border-color:#9d936e!important}
  html[data-world='dark-is-rising'][data-theme][data-mode] #app-view .view .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished){background:var(--dr-material-skin,var(--dr-grain)),linear-gradient(135deg,color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,93%),transparent),color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,96%),transparent))!important}
 }
 html[data-world='dark-is-rising'][data-family-realm='over-sea-under-stone']{--dr-material-skin:repeating-linear-gradient(172deg,transparent 0 45px,#b9dddd0e 46px 47px,transparent 48px 87px)}
 html[data-world='dark-is-rising'][data-family-realm='midwinter']{--dr-material-skin:repeating-linear-gradient(47deg,transparent 0 72px,#b4cce416 73px 74px,transparent 75px 110px)}
 html[data-world='dark-is-rising'][data-family-realm='greenwitch']{--dr-material-skin:radial-gradient(ellipse at 88% 78%,#9fd3b016,transparent 65%)}
 html[data-world='dark-is-rising'][data-family-realm='grey-king']{--dr-material-skin:repeating-linear-gradient(132deg,transparent 0 79px,#d6dcd419 80px 81px,transparent 82px 110px)}
 html[data-world='dark-is-rising'][data-family-realm='silver-on-tree']{--dr-material-skin:linear-gradient(117deg,transparent 25%,#d3e9ea12 46%,transparent 70%)}
 html[data-world='dark-is-rising'][data-family-edition='well-loved']{--dr-material-skin:repeating-linear-gradient(2deg,#aa965717 0 1px,transparent 1px 4px)}
 html[data-world='dark-is-rising']{--dr-grain:repeating-linear-gradient(89deg,transparent 0 17px,#e8d6a207 18px 19px);--dr-hover:dr-sign-glint}
 html[data-world='dark-is-rising'] .lc-nebula{background:radial-gradient(ellipse at 35% 20%,#ccb27a12,transparent 60%)}
 html[data-world='dark-is-rising'] .lc-orbits,html[data-world='dark-is-rising'] .lc-meteor{display:none}
 html[data-world='dark-is-rising'] .lc-stars{opacity:.25}
 html[data-world='dark-is-rising'] .lc-moon{width:230px;right:20%;top:3%;opacity:.65}
 html[data-world='dark-is-rising'] .lc-architecture{opacity:.82}
 html[data-world='dark-is-rising'][data-mode='light'] .lc-architecture{opacity:.67}
 html[data-world='dark-is-rising'] .lc-mist{inset:35% -40% -15%;animation:dr-fog 40s ease-in-out infinite alternate;background:radial-gradient(ellipse at 40% 70%,#b8c9b328,transparent 45%),radial-gradient(ellipse at 70% 40%,#c7d9db18,transparent 40%)}
 .dr-crown{transform-box:fill-box;transform-origin:bottom;animation:dr-canopy calc(23s / var(--family-weather,1)) ease-in-out var(--dr-delay,-3s) infinite alternate}
 .dr-wave{animation:dr-water calc(var(--dr-speed,16s) / var(--family-weather,1)) ease-in-out var(--dr-delay,0s) infinite alternate}
 .dr-kelp path{transform-box:fill-box;transform-origin:bottom;animation:dr-kelp calc(10s / var(--family-weather,1)) ease-in-out var(--dr-delay,0s) infinite alternate}
 .dr-clouds{animation:dr-fog calc(38s / var(--family-weather,1)) ease-in-out infinite alternate}
 .dr-bird{animation:dr-birds 27s linear -7s infinite alternate}
 .dr-wing{transform-box:fill-box;transform-origin:center;animation:dr-wing .9s ease-in-out infinite alternate}
 .dr-windows{animation:dr-window 11s ease-in-out -4s infinite alternate}
 .dr-shoal{animation:dr-shoal 28s linear var(--dr-delay,0s) infinite alternate}
 .dr-sign{animation:dr-sign-glint 13s ease-in-out -4s infinite}
 .dr-blossom{transform-box:fill-box;transform-origin:center;animation:dr-bloom 22s ease-in-out var(--dr-delay,0s) infinite}
 .dr-harp{animation:dr-sign-glint 19s ease-in-out infinite}
 .dr-fire{transform-box:fill-box;transform-origin:bottom;animation:dr-flame 1.7s ease-in-out infinite alternate}
 .dr-dust{animation:dr-dust 7s ease-in-out var(--dr-delay,0s) infinite alternate}
 .dr-door-leaf{transform-box:fill-box;transform-origin:left}
 .dr-discovery{opacity:0;pointer-events:none}
 .lc-environment[data-running='yes'][data-discovery='yes'] .dr-discovery[data-discovery='1']{opacity:.7;filter:drop-shadow(0 0 12px #dce7a7)}
 html[data-world='dark-is-rising'][data-family-reduced='yes'] .dr-extra-discovery{display:none}
 .lc-environment[data-secret='visible'][data-discovery-index='0'] .dr-discovery[data-discovery='0'],.lc-environment[data-secret='visible'][data-discovery-index='1'] .dr-discovery[data-discovery='1'],.lc-environment[data-secret='visible'][data-discovery-index='2'] .dr-discovery[data-discovery='2']{animation:dr-reveal 11s ease-in-out both}
 html[data-world='dark-is-rising'][data-family-realm='midwinter'] .lc-particle{color:#dce6e9;animation:dr-snow calc(var(--cycle) / var(--family-weather,1)) linear var(--delay) infinite;filter:drop-shadow(0 0 2px #d9e9f855)}
 html[data-world='dark-is-rising'][data-family-realm='silver-on-tree'] .lc-particle{color:#cadae0;animation:dr-leaf var(--cycle) ease-in-out var(--delay) infinite}
 html[data-world='dark-is-rising'][data-family-realm='gathering'] .lc-particle{width:3px;height:3px;background:#d8c792;box-shadow:0 0 8px #d8c792;border-radius:50%;animation:dr-firefly var(--cycle) ease-in-out var(--delay) infinite}
 html[data-world='dark-is-rising'][data-family-realm='over-sea-under-stone'] .lc-particle{width:2px;height:10px;background:#bbd9d960;animation:dr-spray var(--cycle) ease-out var(--delay) infinite}
 html[data-world='dark-is-rising'] .lc-bar-sigil{font-size:26px}
 html[data-world='dark-is-rising'] .lc-card-shell{color:var(--world-accent)}
 html[data-world='dark-is-rising'] .lc-corner{width:31px;height:31px;border-radius:2px 0 0}
 html[data-world='dark-is-rising'] .lc-corner::before{border-radius:1px}.lc-card-shell .dr-card-mark{display:none}
 html[data-world='dark-is-rising'] .lc-corner::after{content:'⊕';font-size:11px;left:18px;top:-4px}
 html[data-world='dark-is-rising'] .lc-card-glint{background:linear-gradient(118deg,transparent 30%,#c8cfb717 48%,transparent 64%)}
 html[data-world='dark-is-rising'] .lc-card-seal{width:16px;height:16px;right:7px;bottom:3px;opacity:.3}.lc-card-seal svg{width:100%;height:100%}
 html[data-world='dark-is-rising'][data-family-cards='on'] .lc-card:is(:hover,:focus-within) .lc-card-trace{animation:var(--dr-hover) 1.6s ease-in-out both}
 html[data-world='dark-is-rising'][data-family-realm='gathering'] .lc-card:not(.room-card):not(.adaptive-room-card){background-image:var(--dr-grain),linear-gradient(135deg,var(--world-elevated),var(--world-surface))!important}
 html[data-world='dark-is-rising'][data-family-realm='over-sea-under-stone']{--dr-hover:dr-coast-glint}
 html[data-world='dark-is-rising'][data-family-realm='over-sea-under-stone'] .lc-corner{border-style:double;border-width:3px;border-radius:50% 0 0}
 html[data-world='dark-is-rising'][data-family-realm='midwinter']{--dr-hover:dr-frost-glint}
 html[data-world='dark-is-rising'][data-family-realm='midwinter'] .lc-card-trace{inset:3px;border:1px dotted var(--world-accent);opacity:.4}
 html[data-world='dark-is-rising'][data-family-realm='greenwitch']{--dr-hover:dr-kelp-glint}
 html[data-world='dark-is-rising'][data-family-realm='greenwitch'] .lc-corner{border-radius:70% 0;width:35px;height:35px}.lc-corner::after{pointer-events:none}
 html[data-world='dark-is-rising'][data-family-realm='grey-king']{--dr-hover:dr-mineral-glint}
 html[data-world='dark-is-rising'][data-family-realm='grey-king'] .lc-card-glint{background:repeating-linear-gradient(132deg,transparent 0 79px,#d6dcd41a 80px 81px,transparent 82px 110px)}
 html[data-world='dark-is-rising'][data-family-realm='silver-on-tree']{--dr-hover:dr-crystal-glint}
 html[data-world='dark-is-rising'][data-family-realm='silver-on-tree'] .lc-corner{border-radius:35% 0;border-style:dotted}.lc-card-trace{pointer-events:none}
 html[data-world='dark-is-rising'][data-theme][data-mode] :is(.sidebar,.topbar,.notification-panel){background-image:var(--dr-grain),linear-gradient(130deg,var(--world-surface),var(--world-deep))!important}
 html[data-world='dark-is-rising'] :is(button,input,textarea,select,[role='menu'],[role='tooltip'],dialog:not(.lc-library)){border-color:var(--world-border);color:var(--world-text);box-shadow:inset 0 1px color-mix(in srgb,var(--world-accent) 12%,transparent)}
 html[data-world='dark-is-rising'][data-theme][data-mode] dialog.lc-library{background:radial-gradient(ellipse at 50% 24%,#bda26922,transparent 65%),#20261f!important;color:#f0e6cd!important;border-color:#9d936e!important;border-radius:10px!important;box-shadow:0 30px 100px #000a,inset 0 0 0 5px #343629,inset 0 0 0 6px #887d5355!important;--surface-ink:#f0e6cd;--surface-control:#303a2d;--surface-edge:#9d936e;--surface-modal:#20261f}
 html[data-world='dark-is-rising'] .lc-library :is(h2,.lc-eyebrow){color:#eadbb9}
 html[data-world='dark-is-rising'] .lc-library-vault{height:auto;display:block;margin:18px -12px -8px;border:0;border-radius:0;overflow:hidden}
 html[data-world='dark-is-rising'] .lc-library-vault::after{display:none}
 html[data-world='dark-is-rising'] .lc-library-vault svg{width:100%;height:auto;filter:none;display:block}
 html[data-world='dark-is-rising'] .lc-books{grid-template-columns:repeat(6,minmax(0,1fr));position:relative;margin-top:-42px;border-color:#918058;gap:18px;background:linear-gradient(transparent 0 65%,#71543733 65%);border-radius:0 0 40% 40% / 0 0 10% 10%}
 html[data-world='dark-is-rising'] .lc-book-frame{background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--book-color) 22%,transparent),transparent 65%),linear-gradient(96deg,#181e19 3%,#766a46 6%,#293127 10%,#202820);border-color:var(--book-color);box-shadow:-5px 7px 0 -3px #cabd9980,0 16px 25px #07100b80,inset 5px 0 8px #0008}
 html[data-world='dark-is-rising'] .lc-book-frame::before{border-radius:5px;border-color:color-mix(in srgb,var(--book-color) 45%,transparent)}
 html[data-world='dark-is-rising'] .lc-book strong{color:#f0e5cd;font-size:15px}.lc-book-frame{backface-visibility:hidden}
 html[data-world='dark-is-rising'] .lc-book-emblem{color:var(--book-color)}
 html[data-world='dark-is-rising'][data-family-edition='well-loved'] .lc-book-frame{border-radius:9px 17px 14px 7px;background-image:repeating-linear-gradient(2deg,#9b865517 0 1px,transparent 1px 4px),linear-gradient(120deg,#4b5034,#292e22);box-shadow:-6px 9px 0 -3px #bda776,0 16px 25px #07100b80,inset 0 0 22px #bda46b44}
 html[data-world='dark-is-rising'][data-family-edition='well-loved'] .lc-book-frame::after{content:'';position:absolute;width:40%;height:24px;right:-4px;bottom:16px;background:#ecd9af29;border-block:1px solid #eee3be38;transform:rotate(-19deg);box-shadow:inset 0 0 5px #c8b99244;pointer-events:none}
 html[data-world='dark-is-rising'][data-family-edition='well-loved'] .lc-card:not(.room-card):not(.adaptive-room-card){border-radius:12px!important;background-image:repeating-linear-gradient(2deg,#aa965713 0 1px,transparent 1px 4px),linear-gradient(140deg,var(--world-elevated),var(--world-surface))!important}
 html[data-world='dark-is-rising'][data-family-edition='well-loved'] .lc-corner{border-style:dashed;opacity:.6}
 html[data-world='dark-is-rising'] .lc-cinema-veil{background:radial-gradient(ellipse at 50% 43%,#22372d88,#08130ec9 68%)}
 .dr-cinema-ornament{position:absolute;width:32vw;max-width:380px;left:50%;top:43%;translate:-50% -50%;color:#d4d6b6}.dr-cinema-ornament svg{width:100%}
 .dr-cinema-magic{position:absolute;left:50%;top:43%;translate:-50% -50%;width:45vw;aspect-ratio:1;border:2px solid #d1e2d5;border-radius:50%;box-shadow:0 0 35px #c8dbbe77,inset 0 0 35px #c8dbbe77}
 @media(max-width:900px){html[data-world='dark-is-rising'] .lc-books{gap:9px}html[data-world='dark-is-rising'] .lc-book strong{font-size:12px}}
 @media(max-width:700px){html[data-world='dark-is-rising'] .lc-books{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:-14px;gap:13px}html[data-world='dark-is-rising'] .lc-book:last-child{grid-column:auto}html[data-world='dark-is-rising'] .lc-book strong{font-size:14px}html[data-world='dark-is-rising'] .lc-library-vault{margin-inline:-5px}.lc-book-mini{height:85px}html[data-world='dark-is-rising'] .lc-moon{width:130px;right:8%;top:9%}}
 @media(max-width:360px){html[data-world='dark-is-rising'] .lc-books{grid-template-columns:repeat(2,minmax(0,1fr))}}
}
@keyframes dr-canopy{to{rotate:1deg;translate:3px 0}}@keyframes dr-water{to{translate:45px 7px}}@keyframes dr-kelp{to{rotate:6deg}}@keyframes dr-fog{to{translate:130px 12px}}@keyframes dr-birds{to{translate:140px -20px}}@keyframes dr-wing{to{scale:1 .5}}@keyframes dr-window{to{opacity:.7}}@keyframes dr-shoal{to{translate:180px -10px}}@keyframes dr-bloom{0%,100%{scale:.85}50%{scale:1.08;filter:brightness(1.2)}}@keyframes dr-flame{to{scale:.92 1.12;opacity:.85}}@keyframes dr-dust{to{translate:8px -10px;opacity:.2}}@keyframes dr-reveal{0%,100%{opacity:0}35%,70%{opacity:.75;filter:drop-shadow(0 0 8px #cbdcae)}}@keyframes dr-snow{0%{translate:-40px -130px;opacity:0}20%{opacity:.7}100%{translate:45px 650px;opacity:.15}}@keyframes dr-leaf{0%{translate:-20px -100px;rotate:0deg;opacity:0}20%{opacity:.75}100%{translate:90px 500px;rotate:210deg;opacity:0}}@keyframes dr-firefly{0%,100%{opacity:0;translate:0 0}40%{opacity:.8}70%{translate:40px -50px}}@keyframes dr-spray{0%,100%{opacity:0;translate:0 10px}30%{opacity:.6;translate:20px -30px}}@keyframes dr-sign-glint{50%{filter:brightness(1.65);opacity:.8}}@keyframes dr-coast-glint{50%{translate:0 2px;filter:brightness(1.8)}}@keyframes dr-frost-glint{50%{filter:drop-shadow(0 0 4px #d5e7ff);opacity:.9}}@keyframes dr-kelp-glint{50%{scale:1.015;filter:brightness(1.5)}}@keyframes dr-mineral-glint{50%{filter:brightness(2)}}@keyframes dr-crystal-glint{50%{filter:hue-rotate(15deg) brightness(1.7)}}
@keyframes dr-old-magic{50%{opacity:.8}}


/* Source: dark-rising-companions.css */
@media screen {
 :is(.cc-world,.cc-portrait)[data-id='pippin'][data-state='walk'] .cc-feet{display:none}
 :is(.cc-world,.cc-portrait)[data-state='sleep']:is([data-id='bryn'],[data-id='aster']) :is(.cc-body,.cc-leg,.cc-tail){opacity:0}
 :is(.cc-world,.cc-portrait)[data-state='sleep']:is([data-id='bryn'],[data-id='aster']) .cc-head{translate:-24px 30px;rotate:27deg;scale:.9}
 :is(.cc-world,.cc-portrait)[data-id='ash']{--cc-fur:#ccbba0;--cc-light:#eee6cc;--cc-shade:#9c8263;--cc-chest:#e6dfc7;--cc-muzzle:#f1e8d3;--cc-eye:#b99750;--cc-beak:#aa9165}
 :is(.cc-world,.cc-portrait)[data-id='pippin']{--cc-fur:#8e9c91;--cc-light:#d8ded2;--cc-shade:#677d75;--cc-chest:#eeedda;--cc-muzzle:#eeedda;--cc-eye:#97bdba;--cc-beak:#687968}
 :is(.cc-world,.cc-portrait)[data-id='rook']{--cc-fur:#344551;--cc-light:#647587;--cc-shade:#202c38;--cc-chest:#536775;--cc-muzzle:#536775;--cc-eye:#86a9bb;--cc-beak:#697a8b}
 :is(.cc-world,.cc-portrait)[data-id='tidal']{--cc-fur:#aabeb8;--cc-light:#dfebe1;--cc-shade:#749b95;--cc-chest:#c8dad1;--cc-muzzle:#e2eade;--cc-eye:#91a683;--cc-nose:#51696d}
 :is(.cc-world,.cc-portrait)[data-id='bryn']{--cc-fur:#d9dfd4;--cc-light:#f2f3e5;--cc-shade:#b0bcb9;--cc-chest:#e9ecd8;--cc-muzzle:#f2efd9;--cc-eye:#b69d5d;--cc-nose:#546273;--cc-inner-ear:#c5b9ac}
 :is(.cc-world,.cc-portrait)[data-id='aster']{--cc-fur:#b8cbd0;--cc-light:#e1ebeb;--cc-shade:#8ba8b9;--cc-chest:#d5e1db;--cc-muzzle:#e3eade;--cc-eye:#a8c1c6;--cc-nose:#627c8c;--cc-inner-ear:#c6bbba}
 html[data-world='dark-is-rising'] :is(.cc-world,.cc-portrait){--cc-outline:#56675d;--cc-ink:#4c5d59;--cc-eye-dark:#495651;--cc-paw:var(--cc-light);--cc-tail-tip:var(--cc-light);--cc-ear:var(--cc-fur)}
 .cc-world[data-id='ash'][data-state='fly'] .cc-wing-front,.cc-world[data-id='rook'][data-state='fly'] .cc-wing-front{animation:dr-pet-flight .42s ease-in-out infinite alternate;transform-origin:95px 80px}
 .cc-world[data-id='ash'][data-state='fly'] .cc-wing-back,.cc-world[data-id='rook'][data-state='fly'] .cc-wing-back{animation:dr-pet-back-flight .42s ease-in-out infinite alternate;transform-origin:113px 82px}
 .cc-world[data-id='pippin'][data-state='walk'] .cc-feet{animation:dr-pet-shore-step .32s ease-in-out infinite alternate;transform-origin:95px 119px}
 .cc-world[data-id='tidal'][data-state='walk'] .cc-rig{animation:dr-seal-advance .75s ease-in-out infinite}.cc-world[data-id='tidal'][data-state='walk'] .cc-wing-front{animation:dr-flipper .75s ease-in-out infinite;transform-origin:78px 108px}.cc-world[data-id='tidal'][data-state='walk'] .cc-wing-back{animation:dr-flipper .75s ease-in-out -.3s infinite;transform-origin:99px 99px}
 :is(.cc-world,.cc-portrait)[data-id='ash'][data-state='observe'] .cc-head{animation:dr-owl-look 4s ease-in-out infinite;transform-origin:102px 62px}
 :is(.cc-world,.cc-portrait)[data-id='pippin']:is([data-state='play'],[data-state='special']) .cc-head{animation:dr-pet-probe 1.5s ease-in-out infinite;transform-origin:118px 71px}
 :is(.cc-world,.cc-portrait)[data-id='rook']:is([data-state='special'],[data-state='rare']) .cc-head{animation:dr-owl-look 2.3s ease-in-out infinite}
 :is(.cc-world,.cc-portrait)[data-id='tidal']:is([data-state='happy'],[data-state='play']) .cc-wing-front{animation:dr-flipper .65s ease-in-out infinite;transform-origin:78px 108px}
 :is(.cc-world,.cc-portrait)[data-id='bryn'][data-state='special'] .cc-ear{animation:dr-hound-listen 2s ease-in-out infinite;transform-origin:112px 59px}
 :is(.cc-world,.cc-portrait)[data-id='aster']:is([data-state='special'],[data-state='rare']) .cc-antlers{animation:dr-fawn-magic 3s ease-in-out infinite}
 :is(.cc-world,.cc-portrait)[data-id='tidal'][data-state='sleep'] .cc-rig{transform:rotate(-9deg) translateY(6px)}
 .dr-companion-prop{filter:drop-shadow(0 0 6px currentColor)}
 html[data-family-reduced='yes'] .cc-world *,html[data-family-accessibility='still'] .cc-world *,html[data-family-motion='off'] .cc-world *,html[data-family-awake='no'] .cc-world *{animation:none!important}
}
@keyframes dr-pet-flight{to{rotate:-65deg;scale:1.15 .8}}@keyframes dr-pet-back-flight{to{rotate:35deg;scale:1.15 .75}}@keyframes dr-pet-shore-step{to{rotate:12deg;translate:0 -2px}}@keyframes dr-seal-advance{50%{scale:1.07 .92;translate:0 3px}}@keyframes dr-flipper{50%{rotate:-24deg;translate:4px 0}}@keyframes dr-owl-look{30%{rotate:12deg}70%{rotate:-12deg}}@keyframes dr-pet-probe{50%{rotate:27deg;translate:5px 8px}}@keyframes dr-hound-listen{50%{rotate:-12deg}}@keyframes dr-fawn-magic{50%{filter:drop-shadow(0 0 5px #deedec);opacity:.7}}


/* Source: empyrean.css */
/* The Empyrean — original architecture, articulated dragons and eight coordinated depth layers. */
@media screen {
 html[data-world='empyrean'] {--em-stone:#141e28;--em-banner:#20242d;--em-speed:1;--em-opacity:93%;--em-cloud-speed:58s;--em-dragon-line:#b8a98d;--lc-card-opacity:var(--em-opacity);}
 html[data-world='empyrean'][data-mode='light'] {--em-stone:#655b4a;--em-banner:#4b4234;}
 html[data-world='empyrean'] .lc-environment{background:var(--world-deep)}
 html[data-world='empyrean'] :is(.lc-nebula,.lc-orbits,.lc-moon,.lc-mist){display:none}
 html[data-world='empyrean'] .lc-stars{opacity:.3;z-index:1}
 html[data-world='empyrean'][data-mode='light'] .lc-stars{display:none}
 html[data-world='empyrean'] .lc-particles{z-index:6;opacity:.6}
 .em-world,.em-sky,.em-mountains,.em-flight-layer,.em-clouds,.em-fortress,.em-weather-light,.em-time-light,.em-rider-shadow,.em-lightning {position:absolute;inset:0;pointer-events:none}
 .em-world{overflow:hidden;isolation:isolate;background:var(--world-deep)}
 .em-sky{background:radial-gradient(ellipse at 70% 25%,var(--world-accent-secondary),transparent 60%);opacity:.18}
 .em-mountains{transform-origin:50% 40%;z-index:1}
 .em-art{position:absolute;width:100%;height:100%;object-fit:cover;object-position:58% center;transition:opacity 1.4s;}
 .em-art-day{opacity:0}.em-art-night{opacity:1}
 html[data-mode='light'] .em-art-day{opacity:1}html[data-mode='light'] .em-art-night{opacity:0}
 .em-time-light{background:linear-gradient(180deg,#080d1608,#080d1612 30%,#080d1638);}
 .em-flight-layer{z-index:2;color:#131d28;overflow:hidden;}
 .em-flight{position:absolute;left:0;top:13%;width:clamp(135px,19vw,290px);animation:em-flight calc(74s * var(--em-speed)) linear -18s infinite;will-change:transform;}
 .em-flight-1{top:24%;width:clamp(80px,10vw,160px);opacity:.6;animation-duration:calc(107s * var(--em-speed));animation-delay:-57s;}
 .em-flight-2{top:8%;width:clamp(110px,13vw,190px);animation:em-circle calc(91s * var(--em-speed)) linear -34s infinite;opacity:.5;}
 .em-flight-3{top:36%;width:80px;animation-duration:calc(130s * var(--em-speed));animation-delay:-83s;opacity:.35;}
 .em-bank{animation:em-bank calc(13s * var(--em-speed)) ease-in-out infinite alternate;}
 .em-dragon-art{width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(0 2px 1px #0002)}
 .em-wing{transform-box:view-box;transform-origin:180px 111px;animation:em-wing calc(5.4s * var(--em-speed)) ease-in-out infinite;}
 .em-wing-back{animation-delay:-.3s;opacity:.82}.em-wing-veins{opacity:.65}
 .em-flight-1 .em-wing{animation-duration:6.8s}.em-flight-2 .em-wing{animation-duration:7.3s}
 .em-clouds{z-index:3;overflow:hidden}
 .em-cloud{position:absolute;left:-30%;width:155%;height:48%;animation:em-cloud var(--em-cloud-speed) ease-in-out infinite alternate;opacity:.55}
 .em-cloud-far{top:5%;transform:translateX(-5%)}.em-cloud-near{top:40%;animation-delay:-24s;animation-direction:alternate-reverse;opacity:.4}
 .em-fortress{z-index:4;width:100%;height:100%;opacity:.5}
 .em-banner{transform-origin:50% 10%;animation:em-banner calc(8s * var(--em-speed)) ease-in-out infinite alternate}
 .em-torches{position:absolute;inset:0;z-index:5;opacity:.62}
 .em-torches i{position:absolute;top:58%;left:4%;width:9px;height:35px;border-radius:70% 20% 65% 40%;background:linear-gradient(#ffcd6d,#e66724,transparent);box-shadow:0 0 45px 15px #ff932742;transform-origin:bottom;animation:em-flame 3.7s ease-in-out infinite alternate}
 .em-torches i:nth-child(2){left:auto;right:4%;animation-delay:-2s}
 .em-runes{position:absolute;inset:0;z-index:6;color:var(--world-accent);font:22px Georgia,serif;opacity:.38}
 .em-runes span{position:absolute;left:2%;top:27%;animation:em-rune-breathe 19s ease-in-out infinite}.em-runes span:nth-child(2){left:auto;right:2%;top:27%;animation-delay:-7s}.em-runes span:nth-child(3){top:75%;animation-delay:-12s}.em-runes span:nth-child(4){left:auto;right:2%;top:75%;animation-delay:-16s}
 .em-weather-light{z-index:7;background:radial-gradient(ellipse at 80% 25%,#c8d9ff,transparent 65%);opacity:0}
 .em-lightning{z-index:7;width:100%;height:100%;opacity:0}
 .em-rider-shadow{z-index:7;color:#020711;opacity:0;filter:blur(10px);transform:translate(-100%,-25%) scale(2)}
 .em-eye-dragon{position:absolute;z-index:2;width:46%;left:27%;top:13%;color:#edf0ff;filter:drop-shadow(0 0 20px #a49deb66)}
 html[data-world='empyrean'] .lc-environment[data-secret='visible'][data-discovery-index='0'] .em-rider-shadow{animation:em-shadow 11s ease-in-out both}
 html[data-world='empyrean'] .lc-environment[data-secret='visible'][data-discovery-index='1'] .em-runes{animation:em-discovery 11s ease-in-out both}
 html[data-world='empyrean'] .lc-environment[data-secret='visible'][data-discovery-index='2'] .em-cloud-near{animation:em-gust 11s ease-in-out both}
 html[data-family-realm='iron-flame'] .em-world{--em-stone:#1c100e;--em-banner:#572019}
 html[data-family-realm='iron-flame'] .lc-particle{width:3px;height:3px;background:#ffae61;border-radius:50%;box-shadow:0 0 7px #ef7738;animation-name:em-ember}
 html[data-family-realm='iron-flame'] .em-torches{opacity:.9}
 html[data-family-realm='iron-flame'] .em-weather-light{background:radial-gradient(ellipse at 72% 37%,#ff9929,transparent 70%)}
 html[data-family-realm='iron-flame'] .lc-environment[data-secret='visible'] .em-weather-light{animation:em-breath 11s ease-in-out both}
 html[data-family-realm='onyx-storm'] .em-flight-layer{color:#d1d7ea;opacity:.73}
 html[data-family-realm='onyx-storm'] .em-world{--em-stone:#121520;--em-banner:#282139}
 html[data-family-realm='onyx-storm'] .em-cloud{height:65%;opacity:.7}
 html[data-family-realm='onyx-storm'] .em-cloud-near{top:20%;}
 html[data-family-realm='onyx-storm'] .em-torches i{background:linear-gradient(#e6ddff,#8d6bbe,transparent);box-shadow:0 0 36px 12px #bea1ff32}
 html[data-family-realm='onyx-storm'] .em-lightning,html[data-family-realm='onyx-storm'] .em-weather-light{animation:em-lightning 67s ease-in-out -13s infinite}
 html[data-family-realm='fourth-wing'][data-mode='dark'] .em-lightning{animation:em-lightning 103s ease-in-out -42s infinite}
 html[data-family-realm='onyx-storm'] .lc-environment[data-secret='visible'] .em-clouds{animation:em-eye-clouds 11s ease-in-out both}
 html[data-world='empyrean']:not([data-family-realm='onyx-storm']) .em-eye-dragon{display:none}
 html[data-world='empyrean'] .lc-realm-bar{background:color-mix(in srgb,var(--world-surface) 92%,transparent);border-color:var(--world-border);border-radius:4px 4px 18px 4px;box-shadow:0 7px 22px #0002;}
 html[data-world='empyrean'] .lc-bar-title>span{letter-spacing:.2em;color:var(--world-accent)}
 html[data-world='empyrean'] .lc-bar-sigil{color:var(--world-accent);font-size:24px}
 html[data-world='empyrean'] .lc-library{background:linear-gradient(145deg,var(--world-deep),var(--world-surface));border:1px solid var(--world-border);color:var(--world-text);max-width:1140px;}
 html[data-world='empyrean'] .lc-library-vault{height:170px;position:relative;overflow:hidden;border-radius:140px 140px 8px 8px;opacity:.9}
 html[data-world='empyrean'] .lc-library-vault .em-art{object-position:50% 42%}
 html[data-world='empyrean'] .lc-books{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:34px 22px 28px;perspective:1300px;}
 html[data-world='empyrean'] .lc-book{width:100%;min-width:0;height:292px;min-height:292px;border-radius:4px 10px 10px 4px;border-left:5px solid #c7a66a;box-shadow:8px 13px 20px #0006,inset 5px 0 5px #fff2;background:linear-gradient(145deg,#30332e,#111a25);color:#f1d7a3;}
 html[data-world='empyrean'] .lc-book::before{border-radius:50% 50% 5px 5px;inset:10px;opacity:.55}
 html[data-world='empyrean'] .lc-book[data-lc-book='fourth-wing']{background:radial-gradient(ellipse at 35% 20%,#fff0c5,#d5b27b 68%,#95714b);color:#30291e;border-left-color:#8a673f}
 html[data-world='empyrean'] .lc-book[data-lc-book='iron-flame']{background:radial-gradient(ellipse at 50% 85%,#e67432,#733022 45%,#291a17);color:#ffe1a9;border-left-color:#c37b3e}
 html[data-world='empyrean'] .lc-book[data-lc-book='onyx-storm']{background:radial-gradient(ellipse at 70% 80%,#54576d,#1b1d2a 60%,#0b1019);color:#efedfc;border-left-color:#919ab8}
 html[data-world='empyrean'] .lc-book-emblem{width:122px;height:122px;margin:0 auto;filter:drop-shadow(0 0 8px #0002)}
 html[data-world='empyrean'] .lc-book-emblem .em-wing{animation-duration:9s}
 html[data-world='empyrean'] .lc-book-frame{display:flex;flex-direction:column;justify-content:center;gap:9px;padding:20px 12px;}
 html[data-world='empyrean'] .lc-book-frame strong{font:600 26px/1.04 'Sentient',Georgia,serif;letter-spacing:.015em}
 html[data-world='empyrean'] .lc-book-subtitle{font-size:11px;line-height:1.4;opacity:.9}
 html[data-world='empyrean'] .lc-book-chapter{font-size:9px;letter-spacing:.16em;opacity:.85}
 html[data-world='empyrean'] .lc-book[aria-pressed='true']{outline:2px solid var(--book-color);outline-offset:5px;box-shadow:0 0 28px -8px var(--book-color),8px 13px 20px #0006}
 html[data-world='empyrean'] .lc-book:is(:hover,:focus-visible){transform:translateY(-9px) rotateY(-5deg);filter:brightness(1.08)}
 html[data-world='empyrean'] .lc-book-mini{height:135px}
 html[data-world='empyrean'] .lc-book-mini .em-art{object-position:center}
 html[data-world='empyrean'] .lc-card-seal{width:32px;height:32px;bottom:5px;right:8px;opacity:.22}
 html[data-world='empyrean'] .lc-card-seal svg{width:100%;height:100%}
 html[data-world='empyrean'] .lc-corner{border-radius:0;width:30px;height:30px;transform:none;clip-path:polygon(0 0,100% 0,100% 15%,15% 15%,15% 100%,0 100%)}
 html[data-world='empyrean'] .lc-corner.c2{transform:rotate(90deg)}html[data-world='empyrean'] .lc-corner.c3{transform:rotate(180deg)}html[data-world='empyrean'] .lc-corner.c4{transform:rotate(270deg)}
 html[data-world='empyrean'] .lc-card-trace{border-top-style:double;border-top-width:3px;inset:3px;opacity:.3}
 html[data-family-realm='fourth-wing'] .lc-card-trace{background:repeating-linear-gradient(90deg,transparent 0 17px,currentColor 18px 19px,transparent 20px 30px);height:1px;opacity:.12}
 html[data-family-realm='iron-flame'] .lc-card-shell{color:#d29354}
 html[data-family-realm='iron-flame'] .lc-card:hover .lc-card-trace{animation:em-heat 3s ease-out both}
 html[data-family-realm='onyx-storm'] .lc-card-trace{border-radius:0;clip-path:polygon(0 0,93% 0,100% 22%,100% 100%,7% 100%,0 78%)}
 html[data-world='empyrean'] .em-presets{padding:16px;border:1px solid var(--world-border);margin:16px 0;border-radius:8px}.em-presets>div{display:flex;gap:8px;flex-wrap:wrap}.em-presets p{font-size:12px;color:var(--world-secondary)}
 .em-channels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.em-channels label{display:grid;gap:8px}.em-channels input[type='range']{width:100%}
 .em-entrance-clouds{position:absolute;inset:-20%;background:radial-gradient(ellipse at 20% 40%,#bfc4cbdd,transparent 45%),radial-gradient(ellipse at 75% 30%,#536273dd,transparent 55%);filter:blur(18px)}
 .em-entrance-dragon{position:absolute;left:22%;top:10%;width:56%;color:#101724;filter:drop-shadow(0 0 12px #ddc59833)}
 .lc-cinema[data-realm='onyx-storm'] .em-entrance-dragon{color:#e0e3f6;filter:drop-shadow(0 0 24px #b4b7ff55)}
 .lc-cinema[data-realm='iron-flame'] .em-entrance-clouds{background:radial-gradient(ellipse at 50% 80%,#c44b2377,transparent 70%),linear-gradient(#110b10aa,#17100c99)}
 .em-entrance-rune{position:absolute;width:28vmin;left:calc(50% - 14vmin);top:calc(40% - 14vmin);color:var(--lc-cinema-accent)}
 .em-entrance-ember{position:absolute;left:50%;top:55%;width:8px;height:12px;background:#fff0b4;border-radius:50%;box-shadow:0 0 40px 10px #ff963c}
 html[data-world='empyrean'][data-family-dragon-activity='off'] :is(.em-flight-layer,.em-eye-dragon,.em-rider-shadow){display:none}
 html[data-world='empyrean'][data-family-dragon-activity='rare'] .em-flight{animation-duration:calc(180s * var(--em-speed))}
 html[data-world='empyrean']:is([data-family-dragon-activity='rare'],[data-family-quality='low']) .em-flight:not(.em-flight-0){display:none}
 html[data-world='empyrean']:not([data-family-dragon-activity='frequent']) .em-flight-3{display:none}
 html[data-world='empyrean'][data-family-dragon-size='distant'] .em-flight-layer{scale:.65;transform-origin:50% 0}
 html[data-world='empyrean'][data-family-dragon-size='cinematic'] .em-flight-0{width:clamp(190px,26vw,380px)}
 html[data-world='empyrean'][data-family-dragon-shadows='off'] .em-rider-shadow{display:none}
 html[data-world='empyrean'][data-family-clouds='still'] .em-cloud{animation:none}
 html[data-world='empyrean'][data-family-weather='calm'] :is(.em-lightning,.em-weather-light){animation:none;opacity:0}
 html[data-world='empyrean'][data-family-lighting='soft'] :is(.em-lightning,.em-weather-light,.em-torches){filter:opacity(.5)}
 html[data-world='empyrean'][data-family-lighting='cinematic'] .em-torches{filter:brightness(1.15)}
 html[data-world='empyrean'][data-family-motion='gentle']{--em-speed:1.6!important}
 html[data-world='empyrean'][data-family-accent-light='radiant'] .lc-corner{filter:drop-shadow(0 0 5px currentColor)}
 html[data-world='empyrean'][data-family-accent-light='off'] :is(.lc-card-glint,.em-runes){display:none}
 html[data-world='empyrean'][data-family-hover-effects='off'] .lc-card *{animation:none!important}
 html[data-world='empyrean'][data-family-environment='off'] :is(.em-torches,.em-runes,.em-lightning,.em-weather-light){display:none}
 html[data-world='empyrean'] .lc-environment[data-running='no'] *{animation-play-state:paused!important}
 html[data-world='empyrean']:is([data-family-reduced='yes'],[data-family-motion='off'],[data-family-accessibility='still']) :is(.em-world,.lc-library,.lc-card-shell) *{animation:none!important;transition:none!important}
 html[data-world='empyrean']:is([data-family-reduced='yes'],[data-family-motion='off'],[data-family-accessibility='still']) .em-flight{transform:translateX(42vw);opacity:.5}
 html[data-world='empyrean']:is([data-family-reduced='yes'],[data-family-motion='off'],[data-family-accessibility='still']) .em-flight-1{transform:translateX(18vw)}
 html[data-world='empyrean'][data-family-quality='low'] :is(.em-runes span,.em-banner,.em-torches i){animation:none}
 @media(max-width:700px){
 html[data-world='empyrean'] .lc-environment{left:0;}
 html[data-world='empyrean'] .lc-realm-bar{gap:8px;padding:12px;border-radius:5px 5px 16px 5px;}
 html[data-world='empyrean'] .lc-bar-title{min-width:0;max-width:calc(100% - 36px)}
 html[data-world='empyrean'] .lc-bar-title strong{font-size:12px;white-space:normal;line-height:1.4}
 html[data-world='empyrean'] .lc-bar-title>span{font-size:10px}
 html[data-world='empyrean'] .lc-atelier-shortcut{display:inline-flex!important}
 html[data-world='empyrean'] .lc-realm-bar>.button{flex:1;font-size:11px;padding:8px 9px;white-space:normal}
 html[data-world='empyrean'] .lc-quick-label{width:100%}.lc-quick-label select{max-width:100%}
 html[data-world='empyrean'] .lc-books{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px;padding:22px 10px}
 html[data-world='empyrean'] .lc-book{height:230px;min-height:230px;transform:none}
 html[data-world='empyrean'] .lc-book-frame{padding:13px 8px;gap:7px}
 html[data-world='empyrean'] .lc-book-frame strong{font-size:21px}
 html[data-world='empyrean'] .lc-book-emblem{width:85px;height:85px}
 html[data-world='empyrean'] .lc-book-chapter{font-size:8px;letter-spacing:.08em}
 html[data-world='empyrean'] .lc-library-vault{height:125px}
 html[data-world='empyrean'] .lc-library{width:calc(100% - 16px);padding:14px;max-height:92dvh}
 html[data-world='empyrean'] .lc-library-head h2{font-size:24px}
 .em-art{object-position:60% center}.em-flight{width:140px;animation-duration:95s}.em-flight-1{width:80px}.em-flight-2,.em-flight-3{display:none}
 .em-fortress{opacity:.35}.em-cloud{height:40%;opacity:.35}.em-runes{font-size:15px}.em-torches i{top:40%;height:20px;width:5px}
 .em-channels{grid-template-columns:1fr}.em-entrance-dragon{width:90%;left:5%;top:16%}
 }
}
@keyframes em-flight{0%{transform:translate(-24vw,7vh) scale(.7);opacity:0}10%{opacity:.75}35%{transform:translate(24vw,-1vh) scale(.94);opacity:.65}52%{opacity:.22}70%{transform:translate(75vw,5vh) scale(.7);opacity:.62}88%,100%{transform:translate(115vw,-7vh) scale(.45);opacity:0}}
@keyframes em-circle{0%,100%{transform:translate(55vw,0) scale(.42);opacity:.2}35%{transform:translate(75vw,8vh) scale(.6);opacity:.65}65%{transform:translate(44vw,11vh) scale(.8);opacity:.5}}
@keyframes em-bank{from{transform:rotate(-4deg)}to{transform:rotate(6deg)}}
@keyframes em-wing{0%,60%,100%{transform:scaleY(1) rotate(0)}25%{transform:scaleY(.54) rotate(3deg)}40%{transform:scaleY(.86) rotate(-1deg)}}
@keyframes em-cloud{from{transform:translate(-6%,0) scale(1)}to{transform:translate(13%,4%) scale(1.09)}}
@keyframes em-banner{from{transform:skewX(-1deg)}to{transform:skewX(1.2deg)}}
@keyframes em-flame{0%{transform:skewX(-10deg) scaleY(.9);opacity:.7}45%{transform:skewX(7deg) scaleY(1.12);opacity:1}100%{transform:skewX(-3deg) scaleY(.85);opacity:.8}}
@keyframes em-rune-breathe{0%,70%,100%{opacity:.25}82%{opacity:.8}}
@keyframes em-ember{from{transform:translate(-5px,30px);opacity:0}30%{opacity:.7}to{transform:translate(22px,-80px);opacity:0}}
@keyframes em-shadow{0%,8%{transform:translate(-110%,-50%) scale(1.5);opacity:0}40%{opacity:.22}100%{transform:translate(120%,45%) scale(2.5);opacity:0}}
@keyframes em-discovery{0%,100%{opacity:.3}45%{opacity:.9;filter:drop-shadow(0 0 9px currentColor)}}
@keyframes em-gust{0%,100%{transform:translateX(0);opacity:.4}50%{transform:translateX(10%);opacity:.65}}
@keyframes em-breath{0%,22%,100%{opacity:0}48%{opacity:.16}65%{opacity:.07}}
@keyframes em-lightning{0%,73%,77%,100%{opacity:0}74.7%{opacity:.15}75.8%{opacity:0}}
@keyframes em-eye-clouds{0%,100%{transform:scale(1);opacity:1}45%,60%{transform:scale(1.25);opacity:.28}}
@keyframes em-heat{0%,100%{opacity:.3;filter:brightness(1)}40%{opacity:.8;filter:brightness(1.7)}}
@media(prefers-reduced-motion:reduce){html[data-world='empyrean'] .em-world *{animation:none!important;transition:none!important}}
@media print{.em-world,.em-presets,.em-channels{display:none!important}}
@media screen {
 html[data-world='empyrean'] .em-art{inset:0;max-width:none;}
 html[data-world='empyrean'] .lc-book .lc-book-frame{background:transparent;color:inherit;height:100%;min-height:0;box-sizing:border-box;}
 html[data-world='empyrean'] .lc-book .lc-book-emblem{max-width:none;color:inherit;}
 html[data-world='empyrean'] .lc-book .lc-book-frame strong{color:inherit;text-shadow:none}
 html[data-world='empyrean'] .lc-book .lc-book-frame::before{border-color:currentColor;opacity:.35;}
 html[data-world='empyrean'] .lc-book[aria-pressed='true'] .lc-book-frame{box-shadow:inset 0 0 0 4px #1118,inset 0 0 0 5px var(--book-color);}
 html[data-world='empyrean'] .lc-library .em-presets p{color:#d4dced}
 html[data-world='empyrean'] .lc-environment .em-flight-layer{opacity:.7;}
 html[data-world='empyrean'] .lc-card{--lc-card-opacity:var(--em-opacity)}
 @layer surface-material {
 html[data-world='empyrean'][data-theme][data-mode] #app-view .view .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging){background:linear-gradient(135deg,color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,var(--em-opacity)),transparent),color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,var(--em-opacity)),transparent))!important;}
 html[data-world='empyrean'][data-family-realm='fourth-wing'][data-theme][data-mode] #app-view .view .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging){background:repeating-linear-gradient(0deg,#b1915409 0 1px,transparent 1px 5px),linear-gradient(135deg,color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,var(--em-opacity)),transparent),color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,var(--em-opacity)),transparent))!important;}
 html[data-world='empyrean'][data-family-realm='iron-flame'][data-theme][data-mode] #app-view .view .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging){background:repeating-linear-gradient(96deg,transparent 0 3px,#c0905008 4px 5px),linear-gradient(145deg,color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,var(--em-opacity)),transparent),color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,var(--em-opacity)),transparent))!important;border-color:color-mix(in srgb,var(--world-accent) 48%,var(--world-border))!important;}
 }
 @media(max-width:700px){html[data-world='empyrean'] .lc-book:last-child{grid-column:auto}html[data-world='empyrean'] .lc-scene{inset:0}html[data-world='empyrean'] .lc-atelier-shortcut{max-width:none}}
}
@media screen {
 html[data-world='empyrean'] button.lc-book{background:linear-gradient(145deg,#30332e,#111a25)!important;color:#f1d7a3!important;box-shadow:8px 13px 20px #0006,inset 5px 0 5px #fff2!important}
 html[data-world='empyrean'] button.lc-book[data-lc-book='fourth-wing']{background:radial-gradient(ellipse at 35% 20%,#fff0c5,#d5b27b 68%,#95714b)!important;color:#30291e!important}
 html[data-world='empyrean'] button.lc-book[data-lc-book='iron-flame']{background:radial-gradient(ellipse at 50% 85%,#d16b2d,#733022 45%,#291a17)!important;color:#ffe1a9!important}
 html[data-world='empyrean'] button.lc-book[data-lc-book='onyx-storm']{background:radial-gradient(ellipse at 70% 80%,#54576d,#1b1d2a 60%,#0b1019)!important;color:#efedfc!important}
 html[data-world='empyrean'] .lc-environment .lc-architecture{opacity:.9}
 html[data-world='empyrean'] .lc-book .lc-book-chapter,html[data-world='empyrean'] .lc-book .lc-book-subtitle{color:inherit}
 html[data-world='empyrean'] .lc-library .em-settings-group{margin:18px 0;padding:16px;border:1px solid #8290ac66;border-radius:10px}
 html[data-world='empyrean'] .lc-library .em-settings-group legend{color:#e9d2a3;font:18px Georgia,serif;padding:0 8px}
}

@media screen {
 html[data-world='empyrean'][data-family-atmospheric-intensity='subtle'] :is(.em-clouds,.lc-particles,.em-runes){opacity:.35}
 html[data-world='empyrean'][data-family-atmospheric-intensity='immersive'] :is(.em-clouds,.lc-particles,.em-runes){opacity:.9}
 html[data-world='empyrean'][data-family-lighting='off'] :is(.em-weather-light,.em-lightning,.em-torches,.lc-light-wave){display:none}
 .em-unfurl{position:absolute;inset:0;pointer-events:none}.em-unfurl i{position:absolute;left:15%;top:35%;width:3px;height:5px;background:var(--world-accent);box-shadow:0 0 8px currentColor;rotate:35deg}.em-unfurl i:nth-child(2){left:32%;top:60%}.em-unfurl i:nth-child(3){left:55%;top:22%}.em-unfurl i:nth-child(4){left:78%;top:45%}.em-unfurl i:nth-child(5){left:93%;top:72%}
 @layer surface-material {html[data-world='empyrean'][data-theme][data-mode] dialog.lc-library{background:radial-gradient(ellipse at 50% 0,#84714d33,transparent 58%),#161e27!important;border-color:#a89472!important;}}
}


/* Source: prythian.css */
/* Prythian: original scenery and a shared, bounded animation owner. Hotel status paint is never overridden. */
@media screen {
 html[data-world='prythian']{--pr-stone:#162730;--pr-opacity:95%;--pr-cloud-speed:73s;--pr-brightness:1;--pr-motion-speed:1;--lc-card-opacity:var(--pr-opacity)}
 html[data-world='prythian'][data-mode='light']{--pr-stone:#877966}
 html[data-world='prythian'] :is(.lc-nebula,.lc-orbits,.lc-moon,.lc-mist,.lc-meteor){display:none}
 html[data-world='prythian'] .lc-environment{background:var(--world-deep)}
 html[data-world='prythian'] .lc-stars{z-index:3;opacity:.68}
 html[data-world='prythian'][data-mode='light'] .lc-stars{opacity:.16}
 html[data-world='prythian'] .lc-particles{z-index:6;opacity:.6}
 html[data-world='prythian'] .lc-scene{inset:0}
 .pr-world,.pr-architecture,.pr-lighting,.pr-clouds,.pr-foreground,.pr-frame,.pr-sanctuary-layer,.pr-magic,.pr-secret-layer,.pr-library-layer{position:absolute;inset:0;pointer-events:none}
 .pr-world{isolation:isolate;overflow:hidden;background:var(--world-deep)}
 .pr-architecture{z-index:1;filter:brightness(var(--pr-brightness));transform-origin:50% 42%;opacity:1!important}
 .pr-art{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;transition:opacity 1.1s}
 .pr-art-day{opacity:0}.pr-art-night{opacity:1}
 html[data-mode='light'] .pr-art-day{opacity:1}html[data-mode='light'] .pr-art-night{opacity:0}
 .pr-lighting{background:linear-gradient(180deg,#03081900,#0308190a 55%,#03081929);z-index:2}
 .pr-river{position:absolute;top:59%;left:28%;width:44%;height:36%;z-index:2;opacity:.2;background:repeating-linear-gradient(178deg,transparent 0 22px,#dbf5ff77 24px,transparent 27px);clip-path:polygon(44% 0,54% 0,88% 100%,2% 100%);animation:pr-river 11s ease-in-out infinite alternate}
 .pr-clouds{z-index:3;overflow:hidden}
 .pr-cloud{position:absolute;left:-25%;width:150%;height:40%;animation:pr-cloud var(--pr-cloud-speed) ease-in-out infinite alternate;opacity:.35}
 .pr-cloud-far{top:5%}.pr-cloud-near{top:44%;animation-delay:-27s;animation-direction:alternate-reverse;opacity:.25}
 .pr-city-lights{position:absolute;inset:0;z-index:3}
 .pr-city-lights i{position:absolute;width:2px;height:3px;border-radius:50%;background:#ffe4ac;box-shadow:0 0 6px #ffcf96;animation:pr-window 11s ease-in-out var(--delay) infinite}
 .pr-wings{position:absolute;width:70px;left:-15%;top:21%;z-index:4;color:#172b42;animation:pr-flight 107s linear -38s infinite}
 .pr-foreground{z-index:5;opacity:.78}.pr-frame{width:100%;height:100%}
 .pr-vine{transform-origin:50% 90%;animation:pr-vine 17s ease-in-out infinite alternate;stroke:#789a76;stroke-width:3}
 .pr-rose{transform-box:fill-box;transform-origin:center;animation:pr-rose 15s ease-in-out infinite alternate}
 .pr-banners{transform-origin:50% 10%;animation:pr-banner 8s ease-in-out infinite alternate}
 .pr-sanctuary-layer,.pr-library-layer{z-index:5;display:none}
 .pr-sanctuary{width:100%;height:100%}
 html[data-world='prythian'][data-family-variation='sanctuary'] .pr-sanctuary-layer{display:block}
 html[data-world='prythian'][data-family-variation='library'] .pr-library-layer{display:block}
 .pr-fire{transform-box:fill-box;transform-origin:bottom;animation:pr-fire 2.9s ease-in-out infinite alternate}
 .pr-shelf{position:absolute;top:20%;bottom:0;width:5%;min-width:24px;background:repeating-linear-gradient(0deg,#573e2e 0 7px,#312824 8px 89px,#bd997b 90px 92px);box-shadow:inset 0 0 18px #0009}
 .pr-shelf.left{left:0}.pr-shelf.right{right:0}
 .pr-shelf i{position:absolute;left:18%;top:19%;height:50px;width:12px;background:#976f49;box-shadow:12px 0 #65654c,22px 0 #6d5152;transform-origin:bottom}
 .pr-shelf i:nth-child(2){top:42%}.pr-shelf i:nth-child(3){top:68%}.pr-shelf i:nth-child(4){top:86%}
 .pr-door{position:absolute;right:1%;top:23%;width:4%;height:30%;background:#211e21;border:2px solid #9b7c5a;border-radius:50% 50% 0 0;transform-origin:right;opacity:.65}
 .pr-magic{z-index:6}
 .pr-silver-fire{display:none;position:absolute;left:4%;top:52%;width:9px;height:48px;background:linear-gradient(#fff,#c5deffbb,transparent);border-radius:20% 80% 20% 70%;box-shadow:0 0 30px 9px #dae3ff44;transform-origin:bottom;animation:pr-fire 3.7s ease-in-out infinite alternate}
 .pr-silver-fire.second{left:auto;right:4%;animation-delay:-1.9s}
 .pr-candle{display:none;position:absolute;left:3.4%;top:32%;width:4px;height:14px;border-radius:75% 30% 40% 40%;background:#ffdf9f;box-shadow:0 0 27px 11px #ffcd6633;animation:pr-candle 6.9s ease-in-out infinite}
 .pr-candle.second{left:auto;right:3.4%;top:48%;animation-delay:-3s}
 .pr-rune{position:absolute;right:1.3%;top:23%;color:var(--world-accent);font:22px Georgia;opacity:.38;animation:pr-court-breath 22s ease-in-out infinite}
 .pr-butterfly{display:none;position:absolute;width:32px;left:5%;top:15%;color:#eac888;animation:pr-butterfly 51s ease-in-out -12s infinite}
 .pr-butterfly svg,.pr-secret-butterfly svg{width:100%;height:100%}
 .pr-wing{transform-box:view-box;transform-origin:40px 30px;animation:pr-wing 1.3s ease-in-out infinite}.pr-wing.right{animation-delay:-.1s}
 .pr-shield{display:none;position:absolute;right:16%;top:29%;width:14%;height:22%;border:1px solid #c2adfa77;border-radius:45% 45% 70% 70%;background:radial-gradient(ellipse,#bca0ef0a,#c1aaf536);box-shadow:0 0 25px #c8afff28;animation:pr-shield 23s ease-in-out infinite}
 .pr-lightning{display:none;width:100%;height:100%;opacity:0;position:absolute;inset:0;animation:pr-lightning 79s ease-in-out -28s infinite}
 .pr-seven-lights{position:absolute;left:50%;top:25%;width:1px;height:1px;opacity:0}
 .pr-seven-lights i{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--court-color);box-shadow:0 0 14px 4px var(--court-color);transform:rotate(calc(var(--i)*51.428deg)) translateY(-70px)}
 html[data-family-realm='thorns-roses'] .pr-butterfly,html[data-family-realm='wings-ruin'] :is(.pr-shield,.pr-lightning),html[data-family-realm='silver-flames'] :is(.pr-silver-fire,.pr-candle),html[data-family-variation='sanctuary'] .pr-candle,html[data-family-variation='library'] .pr-candle{display:block}
 html[data-world='prythian']:not([data-family-realm='wings-ruin']):not([data-family-realm='mist-fury']) .pr-wings{display:none}
 html[data-family-realm='wings-ruin'] .pr-cloud{opacity:.6;height:55%}
 html[data-family-realm='silver-flames'] .pr-river,html[data-family-realm='thorns-roses'] .pr-wings{display:none}
 html[data-world='prythian'][data-family-realm='thorns-roses'] .lc-particle{width:8px;height:12px;background:#d890a0;clip-path:ellipse(43% 50%);animation:pr-petal var(--cycle) ease-in-out var(--delay) infinite}
 html[data-world='prythian'][data-family-realm='thorns-roses'] .lc-particle.p1{width:2px;height:2px;border-radius:50%;background:#e9d790;box-shadow:0 0 8px #efdfae;clip-path:none;animation:pr-firefly var(--cycle) ease-in-out var(--delay) infinite}
 html[data-world='prythian'][data-family-realm='frost-starlight'] .lc-particle{font-size:15px;color:#effbff;animation:pr-snow var(--cycle) ease-in-out var(--delay) infinite}
 html[data-world='prythian'][data-family-realm='frost-starlight'] .lc-particle.p1{font-size:9px;opacity:.45;animation-duration:31s}
 html[data-world='prythian'][data-family-realm='frost-starlight'] .lc-particle.p2{font-size:18px;opacity:.6;animation-duration:19s}
 html[data-world='prythian'][data-family-realm='silver-flames'] .lc-particle{width:3px;height:4px;background:#d9e6ff;border-radius:50%;box-shadow:0 0 6px #f3ddbe;animation:pr-ember var(--cycle) ease-in-out var(--delay) infinite}
 html[data-world='prythian'][data-family-realm='mist-fury'] .lc-particle{animation:pr-star-drift var(--cycle) ease-in-out var(--delay) infinite;color:#e3d3ff}
 .pr-secret-layer{z-index:7}
 .pr-falling-star{position:absolute;left:var(--sx);top:var(--sy);width:2px;height:2px;background:#ecf4ff;box-shadow:0 0 8px #e0e6ff;border-radius:50%;animation:pr-starfall var(--star-time) cubic-bezier(.18,.2,.5,.8) var(--delay) both}
 .pr-falling-star::before{content:'';position:absolute;width:110px;height:1px;right:0;background:linear-gradient(90deg,transparent,#e6dcffbb);transform:rotate(-34deg);transform-origin:right}
 .pr-secret-butterfly{position:absolute;width:40px;left:3%;top:20%;color:#e9cb9b;animation:pr-butterfly-visit 8s ease-in-out both}
 .pr-secret-moon{position:absolute;width:50px;height:50px;right:15%;top:19%;border-radius:50%;background:#d5e6ee;box-shadow:0 0 40px #b9dbe65a;animation:pr-moonrise 8s ease-in-out both}
 .pr-secret-book{position:absolute;right:1%;top:45%;width:44px;height:36px;perspective:200px}
 .pr-secret-book i{position:absolute;width:22px;height:35px;background:#d5bd95;border:1px solid #946f51;transform-origin:right;animation:pr-page 8s ease-in-out both}
 .pr-secret-book i:nth-child(2){left:22px;transform-origin:left;animation-direction:reverse}.pr-secret-book span{position:absolute;left:20px;top:-10px;color:#efedff;animation:pr-book-dust 8s ease-in-out both}
 .lc-environment[data-pr-event='bloomingGarden'] .pr-rose{animation:pr-bloom 8s ease-in-out both}
 .lc-environment[data-pr-event='sevenLights'] .pr-seven-lights{animation:pr-align 8s ease-in-out both}
 .lc-environment[data-pr-event='winterGust'] .lc-particles{animation:pr-winter-gust 8s ease-in-out both}
 .lc-environment[data-pr-event='silverFlame'] .pr-silver-fire{animation:pr-silver-dance 8s ease-in-out both}
 .lc-environment[data-pr-event='ancientBook'] .pr-door{animation:pr-door 8s ease-in-out both}
 .pr-cursor-spark{position:fixed;z-index:8;color:var(--world-accent);font:15px Georgia;pointer-events:none}
 /* Illuminated manuscript: illustrated environments under original gold emblems. */
 html[data-world='prythian'] .lc-realm-bar{border-radius:5px 5px 19px 5px;padding:12px 18px;gap:10px}
 html[data-world='prythian'] .lc-bar-title strong{font-size:14px}
 html[data-world='prythian'] .lc-quick-label select{max-width:220px}
 html[data-world='prythian'] .lc-bar-sigil{font-size:28px}
 html[data-world='prythian'] .lc-library{max-width:1120px;background:linear-gradient(135deg,#1a2832,#28323f 60%,#302d35);color:#f7ecd5;border:1px solid #b7a583;box-shadow:0 24px 100px #0008,inset 0 0 0 5px #c4ab7222}
 html[data-world='prythian'] .lc-library-vault{height:190px;position:relative;overflow:hidden;border-radius:120px 120px 5px 5px;border:1px solid #a58d5a88}
 html[data-world='prythian'] .lc-books{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:26px 14px;perspective:1300px}
 html[data-world='prythian'] .lc-book{width:100%;height:310px;min-height:310px;min-width:0;overflow:hidden;border-radius:4px 12px 12px 4px;border-left:5px solid var(--book-color);color:#fff1d3!important;background:linear-gradient(145deg,#253244,#161e2a)!important;box-shadow:8px 14px 22px #0007,inset 4px 0 #f0dcad2a!important}
 html[data-world='prythian'] .lc-book .lc-book-mini{inset:0;width:100%;height:100%;border:0;border-radius:inherit;opacity:.7!important;translate:0 0!important}
 html[data-world='prythian'] .lc-book .lc-book-mini .pr-world{inset:0}
 html[data-world='prythian'] .lc-book .lc-book-frame{display:flex;flex-direction:column;justify-content:center;height:100%;gap:14px;padding:24px 16px;color:inherit!important;background:linear-gradient(#0c17254d,#0b132a9c)!important;text-shadow:0 2px 3px #000}
 html[data-world='prythian'] .lc-book-frame::before{border-color:var(--book-color);opacity:.65}
 html[data-world='prythian'] .lc-book .lc-book-frame strong{color:inherit!important;font:600 25px/1.15 'Sentient',Georgia,serif;letter-spacing:.025em}
 html[data-world='prythian'] .lc-book .lc-book-emblem{width:98px;height:98px;color:var(--book-color);margin-inline:auto;filter:drop-shadow(0 0 7px #fff2)}
 html[data-world='prythian'] .lc-book :is(.lc-book-chapter,.lc-book-subtitle){color:inherit;font-size:11px;line-height:1.45}
 html[data-world='prythian'] .lc-book:is(:hover,:focus-visible){transform:translateY(-7px) rotateY(-5deg);filter:brightness(1.12)}
 html[data-world='prythian'] .lc-book:is(:hover,:focus-visible) .lc-book-emblem{animation:pr-court-breath 3s ease-in-out infinite}
 html[data-world='prythian'] .lc-book[aria-pressed='true']{outline:2px solid var(--book-color);outline-offset:5px}
 html[data-world='prythian'] .lc-book[data-opening='yes'] .lc-book-frame{transform:perspective(800px) rotateY(-46deg);transform-origin:left;transition:transform .4s;box-shadow:16px 0 40px var(--book-color)}
 html[data-world='prythian'] :is(.em-settings-group,.em-presets,.pr-surprise-settings){border:1px solid #c2aa744d;border-radius:10px;padding:18px;margin:18px 0;background:#070e191a}
 html[data-world='prythian'] :is(.em-settings-group,.em-presets,.pr-surprise-settings) legend{font:18px 'Sentient',Georgia;color:#efdab0;padding:0 8px}
 html[data-world='prythian'] .em-presets>div{display:flex;flex-wrap:wrap;gap:8px}
 html[data-world='prythian'] .lc-library :is(h2,h3,summary,label,p,legend){color:inherit}
 html[data-world='prythian'] .em-channels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
 html[data-world='prythian'] .em-channels label{display:grid;gap:8px}
 html[data-world='prythian'] .lc-card-seal{width:26px;height:26px;right:8px;bottom:4px;opacity:.22}
 html[data-world='prythian'] .lc-card-seal svg{width:100%;height:100%}
 html[data-world='prythian'] .lc-corner{width:28px;height:28px;border-radius:12px 0}
 html[data-world='prythian'][data-family-realm='thorns-roses'] .lc-corner::after{content:'❧';font-size:14px;left:15px;top:-4px}
 html[data-world='prythian'][data-family-realm='thorns-roses'] .lc-card-trace{border-top-style:double;border-top-width:3px;border-radius:60% 0;opacity:.22}
 html[data-world='prythian'][data-family-realm='mist-fury'] .lc-card-trace{inset:4px;border:1px dotted currentColor;opacity:.27}
 html[data-world='prythian'][data-family-realm='wings-ruin'] .lc-corner{border-radius:0;clip-path:polygon(0 0,100% 0,100% 20%,20% 20%,20% 100%,0 100%)}
 html[data-world='prythian'][data-family-realm='wings-ruin'] .lc-card-trace{inset:3px;border:1px solid currentColor;clip-path:polygon(0 0,95% 0,100% 15%,100% 100%,5% 100%,0 85%)}
 html[data-world='prythian'][data-family-realm='frost-starlight'] .lc-corner::after{content:'❄';left:17px;top:-4px;font-size:11px}
 html[data-world='prythian'][data-family-realm='frost-starlight'] .lc-card-glint{background:linear-gradient(110deg,transparent 30%,#bcedfc33 48%,transparent 70%)}
 html[data-world='prythian'][data-family-realm='silver-flames'] .lc-card:hover .lc-card-trace{animation:pr-silver-rim 2.2s ease-out both}
 html[data-world='prythian'] .lc-card:hover .lc-corner{animation:pr-court-breath 4s ease-in-out infinite}
 html[data-world='prythian'][data-family-realm='thorns-roses'] :is(.button,.sidebar .nav-item.active){border-radius:14px 4px 14px 4px}
 html[data-world='prythian'][data-family-realm='mist-fury'] :is(.button.primary,.sidebar .nav-item.active){box-shadow:inset 0 0 0 1px #b8dce72b,0 0 15px -9px var(--world-accent-secondary)!important}
 html[data-world='prythian'][data-family-realm='wings-ruin'] :is(.button,.sidebar .nav-item.active){border-radius:3px 11px 3px 11px;border-bottom-width:2px}
 html[data-world='prythian'][data-family-realm='frost-starlight'] :is(.button.primary,.sidebar .nav-item.active){box-shadow:inset 0 1px #d4f3ff77,inset 0 -1px #f5d9ab33!important}
 html[data-world='prythian'][data-family-realm='silver-flames'][data-family-hover-effects='on'][data-family-cards='on'] .button:hover{box-shadow:inset 0 0 0 1px #e3eafa66,0 0 14px -8px #ffbb75!important}
 @layer surface-material{
 html[data-world='prythian'][data-family-material='glass'][data-theme][data-mode] #app-view .view .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging){background:linear-gradient(135deg,color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,var(--pr-opacity)),transparent),color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,var(--pr-opacity)),transparent))!important}
 html[data-world='prythian'][data-family-material='glass'][data-family-realm='thorns-roses'][data-theme][data-mode] #app-view .view .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging){background:repeating-linear-gradient(0deg,#bd9b680a 0 1px,transparent 1px 5px),linear-gradient(135deg,color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,100%),transparent),color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,100%),transparent))!important}
 }
 .pr-atlas{margin:20px 0;padding:18px;border:1px solid #c3ab7755;border-radius:12px;background:#0b182244}
 .pr-atlas summary{font:21px 'Sentient',Georgia;cursor:pointer}.pr-atlas summary span{font:11px system-ui;display:block;margin-top:4px;color:#cfbf9f}
 .pr-atlas-map{position:relative;aspect-ratio:900/550;margin:20px 0;background:radial-gradient(ellipse,#e9d3a7,#b79b71);border:8px double #796644;border-radius:10px;overflow:hidden;box-shadow:inset 0 0 40px #76533277}
 .pr-atlas-map>svg{width:100%;height:100%;fill:#c4ad79;stroke:#756445;stroke-width:2}.pr-atlas-map .pr-map-river{fill:none;stroke:#547f86;stroke-width:5;opacity:.65}
 html[data-world='prythian'] .pr-map-court{position:absolute;left:var(--court-x);top:var(--court-y);transform:translate(-50%,-50%);display:flex;align-items:center;gap:7px;width:180px;min-height:38px;padding:2px 8px;background:#eee1c6e8!important;border:1px solid #8a724e;color:#3b3529!important;border-radius:20px;font:12px Georgia;box-shadow:0 3px 8px #40372533}
 .pr-map-court svg{width:31px;height:31px;flex-shrink:0;color:#65573f}.pr-map-court[aria-pressed='true']{outline:3px solid #524263;outline-offset:2px}
 .pr-atlas-preview{aspect-ratio:5/3;position:relative;overflow:hidden;border-radius:14px;border:1px solid #bca573}.pr-court-art{width:100%;height:100%;display:block}
 .pr-court-cloud{animation:pr-cloud 60s ease-in-out infinite alternate}.pr-court-river,.pr-court-waves{animation:pr-water 11s ease-in-out infinite alternate}.pr-court-tree{transform-origin:bottom;animation:pr-vine 14s ease-in-out infinite alternate}.pr-atlas-star{animation:lc-twinkle 7s ease-in-out var(--delay) infinite}.pr-court-windows{animation:pr-window 11s ease-in-out infinite}
 .pr-atlas-actions{display:flex;flex-wrap:wrap;gap:8px}.pr-atlas p{font-size:13px;line-height:1.5}
 .pr-cinema-gate{position:absolute;inset:0;display:flex;perspective:900px}.pr-cinema-gate i{width:50%;height:100%;border:2px solid var(--lc-cinema-accent);border-radius:50% 0 0 0;background:repeating-linear-gradient(90deg,#17263255 0 9%,var(--lc-cinema-accent) 9.1% 9.3%,#17263255 9.4% 10%);transform-origin:left}.pr-cinema-gate i.right{transform-origin:right;border-radius:0 50% 0 0}
 .pr-cinema-gate[data-book='frost-starlight'] i{background:#2e3a4633;border-width:12px;border-color:#c4ad7d88}
 .pr-cinema-gate[data-book='silver-flames'] i{background:repeating-linear-gradient(0deg,#2f252877 0 9%,#bea87e77 9% 10%);border-color:#e4eaff88}
 .pr-cinema-gate[data-book='wings-ruin'] i{background:#25172b55;border-radius:15% 15% 50% 50%;border-color:#bbaaef66}
 .pr-cinema-chapter{position:absolute;left:calc(50% - 17vmin);top:calc(43% - 17vmin);width:34vmin;height:34vmin;color:var(--lc-cinema-accent)}
 .pr-cinema-atmosphere{position:absolute;inset:-25%;background:radial-gradient(ellipse at 30% 40%,#c9d5e344,transparent 60%)}
 .pr-cinema-atmosphere[data-book='thorns-roses']{background:radial-gradient(ellipse at 50% 90%,#e1b67088,transparent 60%)}
 .pr-cinema-atmosphere[data-book='wings-ruin']{background:radial-gradient(ellipse at 20% 30%,#594e72aa,transparent 50%),radial-gradient(ellipse at 80% 15%,#ad84df66,transparent 50%)}
 .pr-cinema-atmosphere[data-book='silver-flames']{background:radial-gradient(ellipse at 0 50%,#e4eafe88,transparent 40%),radial-gradient(ellipse at 100% 50%,#ffbd7544,transparent 40%)}
 .pr-cinema-path{stroke:var(--lc-cinema-accent);stroke-width:2}
 .pr-cinema-bridge,.pr-world-bridge{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden;color:var(--world-accent)}
 :is(.pr-cinema-bridge,.pr-world-bridge) i{position:absolute;left:calc(5% + var(--i)*6.5%);top:calc(25% + mod(var(--i),3)*12%);font:18px Georgia;font-style:normal;animation:pr-bridge-rise 1.2s ease-out both;animation-delay:calc(var(--i)*.025s)}
 :is(.pr-cinema-bridge,.pr-world-bridge) span{animation:pr-transform-out 1.2s ease-out both}:is(.pr-cinema-bridge,.pr-world-bridge) b{position:absolute;left:0;top:0;animation:pr-transform-in 1.2s ease-out both;font-weight:normal}
 html[data-world='prythian'][data-family-clouds='still'] .pr-cloud{animation:none}
 html[data-world='prythian'][data-family-weather='calm'] .pr-lightning{animation:none;opacity:0}
 html[data-world='prythian'][data-family-weather='wild'] .pr-banners{animation-duration:3.9s}
 html[data-world='prythian'][data-family-depth='flat'] :is(.pr-foreground,.pr-cloud-near){display:none}
 html[data-world='prythian'][data-family-depth='immersive'] .pr-foreground{opacity:1}
 html[data-world='prythian'][data-family-magic='off'] :is(.pr-magic,.pr-secret-layer,.lc-particles){display:none}
 html[data-world='prythian'][data-family-magic='subtle'] .pr-magic{opacity:.45}
 html[data-world='prythian'][data-family-magic='radiant'] .pr-magic{filter:brightness(1.18)}
 html[data-world='prythian'][data-family-borders='off'] :is(.lc-card-trace,.lc-card-glint){display:none}
 html[data-world='prythian'][data-family-borders='off'] .lc-card-shell *{animation:none!important}
 html[data-world='prythian'][data-family-motion='gentle'] .pr-cloud{animation-duration:100s}
 html[data-world='prythian'][data-family-motion='gentle'] .lc-particles{opacity:.38}
 html[data-world='prythian'][data-family-hover-effects='off'] .lc-card *{animation:none!important}
 html[data-world='prythian'][data-family-lighting='soft'] :is(.pr-city-lights,.pr-rune,.pr-silver-fire,.pr-candle){opacity:.45}
 html[data-world='prythian'][data-family-lighting='cinematic'] .pr-city-lights{filter:brightness(1.3)}
 html[data-world='prythian'][data-family-environment='off'] :is(.pr-magic,.pr-secret-layer,.pr-river,.pr-city-lights){display:none}
 html[data-world='prythian'][data-family-performance='quiet'] :is(.pr-cloud-near,.pr-wings,.pr-rune){display:none}
 html[data-world='prythian'][data-family-performance='quiet'] :is(.pr-city-lights,.pr-vine,.pr-rose){animation:none}
 html[data-world='prythian'] .lc-environment[data-running='no'] *{animation-play-state:paused!important}
 html[data-world='prythian']:is([data-family-reduced='yes'],[data-family-motion='off'],[data-family-accessibility='still']) :is(.pr-world,.lc-library,.lc-card-shell,.lc-particles) *{animation:none!important;transition:none!important}
 html[data-world='prythian']:is([data-family-reduced='yes'],[data-family-motion='off'],[data-family-accessibility='still']) :is(.pr-world-bridge,.pr-secret-layer,.pr-lightning){display:none}
 @media(max-width:1100px){html[data-world='prythian'] .lc-realm-bar{flex-wrap:wrap}.pr-ambient-actions{margin-left:auto}}
 @media(max-width:700px){
 html[data-world='prythian'] .lc-environment{left:0}html[data-world='prythian'] .lc-realm-bar{padding:12px;gap:8px}
 html[data-world='prythian'] .lc-bar-title{max-width:calc(100% - 44px)}html[data-world='prythian'] .lc-bar-title>span{font-size:9px;letter-spacing:.1em}
 html[data-world='prythian'] .lc-bar-title strong{font-size:12px;line-height:1.4;white-space:normal}
 html[data-world='prythian'] .lc-quick-label{flex:0 0 100%;width:100%}html[data-world='prythian'] .lc-quick-label select{width:100%;max-width:none}
 html[data-world='prythian'] .lc-realm-bar>.button{font-size:10px;flex:1;padding:8px;white-space:normal}
 html[data-world='prythian'] .lc-atelier-shortcut{display:inline-flex!important;max-width:none}.pr-ambient-actions{width:100%}.pr-ambient-actions .button{width:100%}
 html[data-world='prythian'] .lc-library{width:calc(100% - 12px);max-height:92dvh;padding:13px}
 html[data-world='prythian'] .lc-books{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px;padding:24px 4px}
 html[data-world='prythian'] .lc-book{height:254px;min-height:254px;transform:none}
 html[data-world='prythian'] .lc-book .lc-book-frame{gap:10px;padding:16px 8px}
 html[data-world='prythian'] .lc-book .lc-book-frame strong{font-size:19px}
 html[data-world='prythian'] .lc-book .lc-book-emblem{width:70px;height:70px}
 html[data-world='prythian'] .lc-book :is(.lc-book-chapter,.lc-book-subtitle){font-size:9px}
 html[data-world='prythian'] .lc-book:last-child{grid-column:auto}
 html[data-world='prythian'] .lc-library-vault{height:130px}
 html[data-world='prythian'] .em-channels{grid-template-columns:1fr}
 .pr-atlas{padding:10px}.pr-atlas-map{aspect-ratio:auto;height:420px}.pr-atlas-map>svg{object-fit:cover}
 html[data-world='prythian'] .pr-map-court{font-size:10px;width:155px;min-height:38px;left:50%}
 .pr-art{object-position:58% center}.pr-cloud{opacity:.24;height:35%}.pr-foreground{opacity:.4}.pr-wings{display:none!important}.pr-rune{font-size:14px}
 .pr-silver-fire{height:26px;width:5px}.pr-shelf{opacity:.6}.pr-city-lights i:nth-child(n+9){display:none}
 .pr-cinema-gate{opacity:.45}
 }
}
@keyframes pr-cloud{from{transform:translate(-6%,0) scale(1)}to{transform:translate(9%,3%) scale(1.07)}}
@keyframes pr-river{from{transform:translateY(-3px) scaleX(.98);opacity:.1}to{transform:translateY(4px) scaleX(1.03);opacity:.22}}
@keyframes pr-water{from{opacity:.6}to{opacity:1}}
@keyframes pr-window{0%,100%{opacity:.4}42%{opacity:.8}67%{opacity:.58}}
@keyframes pr-vine{from{transform:skewX(-.5deg)}to{transform:skewX(.7deg)}}
@keyframes pr-rose{from{scale:.92}to{scale:1.05}}
@keyframes pr-banner{from{transform:skewX(-1.2deg)}to{transform:skewX(1.7deg)}}
@keyframes pr-fire{0%{transform:skewX(-11deg) scaleY(.88)}35%{transform:skewX(7deg) scaleY(1.15)}68%{transform:skewX(-4deg) scaleY(.96)}100%{transform:skewX(4deg) scaleY(1.08)}}
@keyframes pr-candle{0%,100%{opacity:.65;transform:rotate(-3deg)}40%{opacity:.95;transform:rotate(4deg)}70%{opacity:.72}}
@keyframes pr-court-breath{0%,100%{opacity:.3}45%{opacity:.7}}
@keyframes pr-flight{0%{transform:translateX(0);opacity:0}15%{opacity:.5}50%{transform:translate(60vw,2vh) rotate(-3deg)}80%{opacity:.4}100%{transform:translate(120vw,-4vh);opacity:0}}
@keyframes pr-wing{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.3)}}
@keyframes pr-butterfly{0%,100%{transform:translate(0,0) rotate(-5deg)}25%{transform:translate(8vw,4vh) rotate(15deg)}50%{transform:translate(3vw,11vh) rotate(-12deg)}80%{transform:translate(1vw,6vh) rotate(2deg)}}
@keyframes pr-shield{0%,100%{opacity:.2;transform:scale(.98)}50%{opacity:.55;transform:scale(1.02)}}
@keyframes pr-lightning{0%,75%,79%,100%{opacity:0}76.5%{opacity:.15}77.4%{opacity:0}}
@keyframes pr-petal{0%{transform:translate(0,-12vh) rotate(0);opacity:0}15%{opacity:.65}35%{transform:translate(35px,13vh) rotate(96deg)}60%{transform:translate(-12px,33vh) rotate(215deg)}85%{opacity:.45}100%{transform:translate(45px,65vh) rotate(370deg);opacity:0}}
@keyframes pr-firefly{0%,100%{transform:translate(0,0);opacity:.15}30%{transform:translate(22px,-18px);opacity:.7}65%{transform:translate(-15px,12px);opacity:.4}}
@keyframes pr-snow{0%{transform:translate(0,-20vh) rotate(0);opacity:0}10%{opacity:.65}30%{transform:translate(19px,15vh) rotate(63deg)}52%{transform:translate(-12px,35vh) rotate(-25deg)}71%{transform:translate(34px,55vh) rotate(104deg)}90%{opacity:.45}100%{transform:translate(8px,80vh) rotate(170deg);opacity:0}}
@keyframes pr-ember{0%{transform:translate(0,25px);opacity:0}25%{opacity:.7}60%{transform:translate(-14px,-25px);opacity:.5}100%{transform:translate(22px,-90px);opacity:0}}
@keyframes pr-star-drift{0%,100%{transform:translate(0,0);opacity:.25}40%{transform:translate(8px,-15px);opacity:.7}75%{transform:translate(-6px,-5px);opacity:.4}}
@keyframes pr-starfall{0%{transform:translate(0,0);opacity:0}10%{opacity:.9}80%{opacity:.65}100%{transform:translate(40vw,45vh);opacity:0}}
@keyframes pr-butterfly-visit{0%,100%{transform:translate(-60px,-20px);opacity:0}35%,65%{transform:translate(0,0);opacity:.8}}
@keyframes pr-moonrise{0%{transform:translateY(40px);opacity:0}45%{transform:translateY(0);opacity:.6}80%{opacity:.5}100%{transform:translateY(-10px);opacity:0}}
@keyframes pr-bloom{0%,100%{scale:.8}45%,65%{scale:1.23}}
@keyframes pr-align{0%,100%{opacity:0;transform:rotate(-20deg) scale(.7)}40%,65%{opacity:.8;transform:rotate(0) scale(1)}}
@keyframes pr-winter-gust{0%,100%{transform:translateX(0)}40%{transform:translate(35px,-12px) rotate(2deg)}65%{transform:translate(-12px,10px) rotate(-1deg)}}
@keyframes pr-silver-dance{0%,100%{transform:skewX(0) scaleY(.8)}40%{transform:skewX(20deg) scaleY(1.5);opacity:1}65%{transform:skewX(-12deg) scaleY(1.2)}}
@keyframes pr-page{0%,100%{transform:rotateY(0)}40%,65%{transform:rotateY(-65deg)}}
@keyframes pr-book-dust{0%,100%{opacity:0;transform:translateY(5px)}50%{opacity:.8;transform:translateY(-25px)}}
@keyframes pr-door{0%,100%{transform:rotateY(0)}45%,65%{transform:perspective(200px) rotateY(-35deg)}}
@keyframes pr-silver-rim{0%,100%{filter:brightness(1);opacity:.25}35%{filter:brightness(1.8) drop-shadow(0 0 3px #e2ecff);opacity:.65}}
@keyframes pr-bridge-rise{from{transform:translate(-8px,20px) rotate(-10deg)}to{transform:translate(20px,-30px) rotate(15deg)}}
@keyframes pr-transform-out{0%,25%{opacity:1;filter:blur(0)}55%,100%{opacity:0;filter:blur(3px)}}
@keyframes pr-transform-in{0%,25%{opacity:0;filter:blur(3px)}60%,100%{opacity:1;filter:blur(0)}}
@media(prefers-reduced-motion:reduce){html[data-world='prythian'] :is(.pr-world,.lc-library,.lc-card-shell) *{animation:none!important;transition:none!important}}
@media print{.pr-world,.pr-atlas,.pr-surprise-settings,.pr-ambient-actions{display:none!important}}


/* Source: courts.css */
/* The Courts of Twilight — original scenery and living architectural layers. */
@media screen {
 html[data-world='courts-of-twilight-meredith-gentry']{--ct-silver:#d4cae9;--ct-gold:#dfc79a;--ct-vine:#928dad;--ct-flower:#644475;--ct-cycle:1;--ct-card-opacity:96%}
 .ct-world{--ct-silver:#c9c9e1;--ct-gold:#eacb99;--ct-vine:#867a9c;--ct-flower:#955f9c;position:absolute;inset:0;overflow:hidden;isolation:isolate;background:var(--world-deep,#161522)}
 .ct-world>div,.ct-world>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
 .ct-distance{transform:translate(calc(var(--lc-px,0px)*.35),calc(var(--lc-py,0px)*.35));inset:-2%!important;width:104%!important;height:104%!important}
 .ct-scenery{width:100%;height:100%;object-fit:cover;object-position:50% 35%;display:block}
 .ct-world svg{overflow:visible}.ct-middle>svg{position:absolute;inset:0;width:100%;height:100%}
 .ct-middle{transform:translate(calc(var(--lc-px,0px)*.65),calc(var(--lc-py,0px)*.65))}
 .ct-daylight{background:linear-gradient(138deg,#fff9cf30,transparent 42%),radial-gradient(ellipse at 80% 8%,#fffad75e,transparent 55%);opacity:0;mix-blend-mode:screen}
 .ct-moonlight{background:linear-gradient(180deg,#15162d15,#0c0e2420),radial-gradient(ellipse at 15% 55%,#8974ff18,transparent 45%);opacity:1}
 html[data-mode='light'] .ct-daylight,.ct-hall[data-ct-mode='light'] .ct-daylight{opacity:1}html[data-mode='light'] .ct-moonlight,.ct-hall[data-ct-mode='light'] .ct-moonlight{opacity:0}
 .ct-hall[data-ct-mode='dark'] .ct-daylight{opacity:0}.ct-hall[data-ct-mode='dark'] .ct-moonlight{opacity:1}
 .ct-veil-unseelie{background:radial-gradient(ellipse at 10% 60%,#57198b45,transparent 65%);opacity:.4;transition:opacity 3s}
 .ct-veil-seelie{background:radial-gradient(ellipse at 90% 15%,#f6d78555,transparent 65%);opacity:.4;transition:opacity 3s;mix-blend-mode:screen}
 :is(html[data-family-veil='unseelie'],.ct-hall[data-ct-veil='unseelie']) .ct-veil-unseelie{opacity:1}:is(html[data-family-veil='unseelie'],.ct-hall[data-ct-veil='unseelie']) .ct-veil-seelie{opacity:0}
 :is(html[data-family-veil='seelie'],.ct-hall[data-ct-veil='seelie']) .ct-veil-unseelie{opacity:0}:is(html[data-family-veil='seelie'],.ct-hall[data-ct-veil='seelie']) .ct-veil-seelie{opacity:1}
 .ct-hall[data-ct-veil='balanced'] .ct-veil-unseelie,.ct-hall[data-ct-veil='balanced'] .ct-veil-seelie{opacity:.4}
 html[data-family-veil='seelie'] .ct-world{--ct-vine:#b8b68a;--ct-flower:#e7c6b5}html[data-family-veil='unseelie'] .ct-world{--ct-vine:#a99ac8;--ct-flower:#724083}
 .ct-light-shafts{overflow:hidden;opacity:.55}.ct-light-shafts i{position:absolute;top:-30%;left:17%;height:150%;width:15%;background:linear-gradient(90deg,transparent,#e0d8ff22,transparent);transform-origin:top;transform:rotate(20deg);animation:ct-shaft calc(31s * var(--ct-cycle,1)) ease-in-out infinite alternate}.ct-light-shafts i:nth-child(2){left:60%;animation-duration:43s;animation-delay:-17s}.ct-light-shafts i:nth-child(3){left:80%;width:8%;animation-duration:53s;animation-delay:-31s}
 html[data-mode='light'] .ct-light-shafts i{background:linear-gradient(90deg,transparent,#fff1b32e,transparent)}
 .ct-fog{inset:40% -15% -10%!important;width:130%!important;height:70%!important;background:radial-gradient(ellipse at 20% 70%,#dfd2ff22,transparent 37%),radial-gradient(ellipse at 76% 44%,#c8d8de21,transparent 40%);animation:ct-fog 39s ease-in-out infinite alternate;opacity:.8}.ct-fog-near{inset:70% -25% -15%!important;animation-duration:27s;animation-delay:-13s;opacity:.6}
 .ct-reflections{inset:67% 0 0!important;height:33%!important;background:repeating-linear-gradient(175deg,transparent 0 9px,#fff1bf09 10px,transparent 12px);mask-image:linear-gradient(transparent,#0009);animation:ct-reflect 13s ease-in-out infinite alternate;transform:perspective(500px) rotateX(20deg)}
 .ct-vines{transform:translate(calc(var(--lc-px,0px)*1.2),calc(var(--lc-py,0px)*1.2))}.ct-vine{animation:ct-vine calc(17s * var(--ct-cycle,1)) ease-in-out var(--delay) infinite alternate}.ct-leaf{animation:ct-leaf 12s ease-in-out var(--delay) infinite alternate;transform-box:fill-box;transform-origin:bottom}
 .ct-bloom{animation:ct-bloom 22s ease-in-out var(--delay) infinite alternate;transform-box:fill-box;transform-origin:center}
 .ct-crown-float{position:absolute;left:42%;top:10%;width:16%;height:20%;color:var(--ct-silver);opacity:.5;filter:drop-shadow(0 0 14px #d5b9ff);animation:ct-float 8.7s ease-in-out infinite alternate}.ct-crown-float svg{width:100%;height:100%}
 .ct-floor-sigil{position:absolute;left:34%;bottom:2%;width:32%;height:22%;transform:perspective(400px) rotateX(65deg);color:var(--ct-gold);opacity:.27}.ct-floor-sigil svg{width:100%;height:100%;animation:ct-rotate 97s linear infinite}
 .ct-candle{animation:ct-candle 3.71s ease-in-out var(--delay) infinite alternate}
 .ct-portal{position:absolute;right:6%;top:20%;height:55%;width:20%;color:#96eeea;opacity:.45;filter:drop-shadow(0 0 14px #5beddf);animation:ct-portal 12s ease-in-out infinite alternate}.ct-portal svg{width:100%;height:100%}
 .ct-rain{animation:ct-rain var(--cycle) linear var(--delay) infinite}.ct-puddle{position:absolute;left:15%;top:79%;width:65%;height:7%;border-radius:50%;border:1px solid #a5eee377;animation:ct-ripple 8s ease-out infinite}
 .ct-passer{position:absolute;left:10%;top:50%;width:12px;height:12%;border-radius:50% 50% 0 0;background:#071b26;opacity:.2;animation:ct-passer 53s linear infinite}
 .ct-curtain{transform-origin:top;animation:ct-curtain 9.3s ease-in-out infinite alternate}.ct-right-curtain{animation-delay:-3.9s;animation-duration:12.7s}
 .ct-mirror{position:absolute;left:9%;top:21%;width:14%;height:48%;border-radius:50% 50% 10% 10%;overflow:hidden;opacity:.35;background:linear-gradient(70deg,transparent,#bad4ff44,transparent);animation:ct-mirror 18s ease-in-out infinite alternate}.ct-mirror>div{position:absolute;inset:0;background:url('/courts-hall.jpg') center/cover;opacity:0;transition:opacity 2s}
 .ct-waterfall{position:absolute;right:10%;top:33%;width:6%;height:29%;background:repeating-linear-gradient(0deg,transparent,#dbfdff22 3px,transparent 11px);mask-image:linear-gradient(transparent,#000 10%,#000 85%,transparent);animation:ct-waterfall 2.8s linear infinite}
 .ct-pool{position:absolute;left:15%;bottom:13%;width:68%;height:21%;transform:perspective(500px) rotateX(45deg)}.ct-pool i{position:absolute;inset:15%;border:1px solid #acf5ee80;border-radius:50%;animation:ct-ripple 11s ease-out var(--delay) infinite}
 .ct-underwater{position:absolute;left:30%;bottom:21%;height:3%;width:13%;border-radius:50%;background:#102f383d;filter:blur(4px);animation:ct-passer 61s ease-in-out infinite}
 .ct-fountain{position:absolute;left:46%;top:54%;width:8%;height:14%;border-radius:50%;background:repeating-linear-gradient(90deg,transparent,#efc9fc44 2px,transparent 4px);animation:ct-fountain 3s ease-in-out infinite alternate;mask-image:linear-gradient(transparent,#000,transparent)}
 .ct-violet-moon{position:absolute;left:41%;top:8%;width:18%;aspect-ratio:1;border-radius:50%;box-shadow:0 0 55px 30px #c3a0fc25;animation:ct-portal 13s ease-in-out infinite alternate}
 .ct-storm-cloud{position:absolute;inset:-10% -25% 58%;background:radial-gradient(ellipse,#222638aa,transparent 67%);animation:ct-storm 33s ease-in-out infinite alternate}.ct-cloud-front{inset:0 -25% 45%;opacity:.5;animation-duration:21s;animation-delay:-7s}.ct-lightning{opacity:0;animation:ct-lightning 37s ease-in-out infinite}
 .ct-snow{animation:ct-snow var(--cycle) linear var(--delay) infinite}.ct-frost-lattice{position:absolute;left:-4%;bottom:-5%;width:30%;height:50%;color:#ddf6ff;opacity:.35;animation:ct-frost 19s ease-in-out infinite alternate}.ct-frost-lattice svg{width:100%;height:100%}
 .ct-thorn{transform-origin:bottom;animation:ct-thorn 29s ease-in-out infinite alternate}.ct-hidden-eyes{position:absolute;top:36%;right:16%;display:flex;gap:10px;opacity:0;animation:ct-eyes 47s ease-in-out infinite}.ct-hidden-eyes i{width:4px;height:3px;border-radius:50%;background:#f8a7dc;box-shadow:0 0 8px #d2a}
 .ct-page{animation:ct-page 14s ease-in-out var(--delay) infinite alternate}.ct-book-sigil{position:absolute;left:15%;top:49%;width:17%;height:20%;color:#edc66f;opacity:.4;transform:rotateX(40deg);animation:ct-float 11s ease-in-out infinite alternate}.ct-book-sigil svg{width:100%;height:100%}
 .ct-golden-cascade{position:absolute;left:8%;top:25%;width:8%;height:45%;background:repeating-linear-gradient(0deg,transparent,#ffe29328 2px,transparent 7px);mask-image:linear-gradient(transparent,#000,transparent);animation:ct-waterfall 4s linear infinite}.ct-dawn-arch{position:absolute;inset:10% 20%;border-radius:50%;box-shadow:0 0 55px 20px #ffdc8a16,inset 0 0 44px #ffdd9e22;animation:ct-dawn 21s ease-in-out infinite alternate}
 .ct-rare{opacity:0;transition:opacity 2s;inset:auto!important}.ct-rare-silver{left:5%!important;bottom:5%!important;width:12%!important;height:20%!important;color:#f0eafa}.ct-rare-raven{right:8%!important;top:15%!important;width:8%!important;height:12%!important;color:#241831}.ct-rare-crown{left:42%!important;top:9%!important;width:16%!important;height:23%!important;color:#ecd6ff}.ct-rare-mirror{left:9%!important;top:20%!important;width:15%!important;height:50%!important;background:url('/courts-royal-chamber.jpg') center/cover;mask-image:radial-gradient(ellipse,#000,transparent 70%)}
 .lc-environment[data-secret='visible'][data-discovery-index='0'] .ct-rare-silver,.lc-environment[data-secret='visible'][data-discovery-index='1'] .ct-rare-raven,.lc-environment[data-secret='visible'][data-discovery-index='2'] .ct-rare-mirror{opacity:.8}.lc-environment[data-secret='visible'] .ct-rare-crown{opacity:.35}
 .ct-pointer-light{background:radial-gradient(circle at var(--ct-pointer-x,50%) var(--ct-pointer-y,50%),#ecd4fa33,transparent 16%);opacity:0;transition:opacity 2s}
 [data-ct-reaction] .ct-pointer-light{opacity:.6}[data-ct-reaction] .ct-mirror>div{opacity:.7}[data-ct-reaction] .ct-frost-lattice{opacity:.8}[data-ct-reaction] .ct-bloom{filter:drop-shadow(0 0 8px #eadeff)}[data-ct-reaction] .ct-book-sigil{opacity:.9}[data-ct-reaction] .ct-hidden-eyes{opacity:.7}[data-ct-reaction] .ct-pool{filter:drop-shadow(0 0 12px #c1ffe7)}[data-ct-reaction] .ct-crown-float{filter:drop-shadow(0 0 30px #dcbeff)}
 .ct-companion{position:absolute;right:2%;top:23%;width:85px;height:85px;color:#29233e;filter:drop-shadow(0 0 3px #d1b2ff77);transform:translateX(var(--ct-curiosity,0px));transition:transform 3s,opacity 2s;pointer-events:none}.ct-creature-art{width:100%;height:100%}.ct-companion[data-kind='fox']{color:#adc4dd}.ct-companion[data-kind='moth']{color:#a0a6c5;animation:ct-companion-flight 31s ease-in-out infinite alternate}.ct-companion[data-kind='wisp']{color:var(--world-accent);animation:ct-float 7s ease-in-out infinite alternate;filter:drop-shadow(0 0 12px var(--world-accent))}.ct-companion[data-kind='stag']{width:65px;top:41%;right:17%;opacity:0}.ct-companion[data-kind='stag'][data-behavior='distant']{opacity:.65;color:#dbe4f1}
 .ct-wing{transform-origin:80px 90px;animation:ct-wing 5.3s ease-in-out infinite alternate}.ct-tail{transform-origin:center;animation:ct-tail 8s ease-in-out infinite alternate}.ct-companion[data-behavior='sleep']{transform:translateY(12px) scaleY(.75);opacity:.6}.ct-companion[data-behavior='stretch']{transform:scaleX(1.14) scaleY(.87)}.ct-companion[data-behavior='curious']{transform:rotate(-9deg) translateX(var(--ct-curiosity,0px))}.ct-companion[data-behavior='glide']{transform:translate(-30px,-22px)}
 html[data-world='courts-of-twilight-meredith-gentry'] :is(.lc-nebula,.lc-orbits,.lc-moon,.lc-mist,.lc-meteor,.lc-light-wave){display:none}
 html[data-world='courts-of-twilight-meredith-gentry'] #app-view .topbar{background:transparent!important;backdrop-filter:none!important}
 html[data-world='courts-of-twilight-meredith-gentry'] .lc-realm-bar{margin-bottom:100px;border-color:var(--world-border);background:color-mix(in srgb,var(--world-surface) 97%,transparent);border-radius:18px 4px;flex-wrap:wrap}
 html[data-world='courts-of-twilight-meredith-gentry'] .lc-bar-title span{letter-spacing:.18em}.ct-world-touch,.ct-companion-touch{font-size:.75rem;min-height:36px}.ct-world-touch{margin-left:auto}
 html[data-world='courts-of-twilight-meredith-gentry'] .lc-card-shell{color:var(--world-accent)}
 html[data-world='courts-of-twilight-meredith-gentry'] .lc-card .lc-corner{width:25px;height:25px;border-width:1px;border-radius:0 0 14px 0}
 html[data-world='courts-of-twilight-meredith-gentry'] .lc-card .lc-card-seal{width:30px;height:30px;top:5px;right:7px;opacity:.45}html[data-world='courts-of-twilight-meredith-gentry'] .lc-card-seal svg{width:100%;height:100%}
 html[data-world='courts-of-twilight-meredith-gentry'][data-family-realm='frost'] .lc-corner{clip-path:polygon(0 0,100% 0,50% 30%,100% 70%,30% 50%,0 100%);background:linear-gradient(135deg,#ddf9ff88,transparent);border-radius:0}
 html[data-world='courts-of-twilight-meredith-gentry'][data-family-realm='darkness'] .lc-corner{border-radius:0 90% 0 80%;width:32px;height:32px;transform:rotate(-10deg)}
 html[data-world='courts-of-twilight-meredith-gentry'][data-family-realm='midnight'] .lc-corner{border-radius:40% 70%;background:radial-gradient(ellipse,#dfb7ef33,transparent)}
 html[data-world='courts-of-twilight-meredith-gentry'][data-family-realm='moonlight'] .lc-corner{border-radius:50% 0 70% 10%;box-shadow:inset 2px 2px #a7f0db55}
 html[data-world='courts-of-twilight-meredith-gentry'][data-family-realm='shadows'] .lc-corner{border-radius:0;border-style:double;box-shadow:2px 2px #b1945755}
 html[data-world='courts-of-twilight-meredith-gentry'][data-family-realm='storm'] .lc-corner{clip-path:polygon(0 0,100% 0,40% 40%,80% 50%,0 100%);background:#e9a8ba33}
 html[data-world='courts-of-twilight-meredith-gentry'][data-family-realm='twilight'] .lc-corner{border-radius:100% 0 100% 0;border-style:double}
 html[data-world='courts-of-twilight-meredith-gentry'][data-family-realm='gilded'] .lc-corner{border-style:double;border-width:3px;border-radius:3px}
 html[data-world='courts-of-twilight-meredith-gentry'][data-family-realm='dawning'] .lc-corner{border-radius:65% 10% 65% 10%;box-shadow:inset 3px 3px #ffd59b66}
 @layer surface-material {
 html[data-world='courts-of-twilight-meredith-gentry'][data-theme][data-mode] #app-view .view .lc-card:not(.room-card):not(.adaptive-room-card):not(.finished):not(.early-tier):not(.arrival-tier){background:linear-gradient(125deg,color-mix(in srgb,var(--world-surface) var(--tuner-surface-solid,var(--ct-card-opacity)),transparent),color-mix(in srgb,var(--world-elevated) var(--tuner-surface-solid,96%),transparent))!important;border:1px solid var(--world-border)!important;box-shadow:0 16px 35px -22px #090615aa,inset 0 0 0 3px var(--world-surface),inset 0 0 0 4px color-mix(in srgb,var(--world-accent) 22%,transparent)!important}
 }
 html[data-world='courts-of-twilight-meredith-gentry'] .lc-card:focus-within{outline:2px solid var(--world-accent);outline-offset:2px}
 html[data-world='courts-of-twilight-meredith-gentry'][data-family-shadow-depth='velvet'] .lc-card{filter:drop-shadow(0 12px 18px #06031044)}
 .ct-hall{width:min(1280px,96vw);max-height:92dvh;overflow:auto;background:var(--world-surface);border:1px solid var(--world-border);padding:24px;color:var(--world-text);border-radius:24px 6px 24px 6px;overscroll-behavior:contain}.ct-hall h2{font:clamp(1.7rem,3vw,2.9rem) 'Sentient',Georgia,serif;letter-spacing:-.025em}.ct-hall .lc-library-head{position:relative;z-index:1}.ct-hall .lc-library-vault{height:300px;position:relative;overflow:hidden;margin:-12px -10px 24px;opacity:1;border-radius:18px;mask-image:linear-gradient(#000 70%,transparent)}.ct-hall .lc-library-vault .ct-world{position:absolute}
 .ct-hall .lc-books{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 20px;padding:12px 0 26px;overflow:visible;perspective:1000px}
 .ct-hall .lc-book{width:auto;min-width:0;height:260px;transform:none!important;border-radius:48% 48% 6px 6px;background:linear-gradient(180deg,#191520,#14121d);box-shadow:0 12px 28px -14px #0008;border:2px solid var(--book-color);overflow:hidden;padding:0;isolation:isolate;transition:box-shadow .3s,translate .3s}
 .ct-hall .lc-book[hidden]{display:none}.ct-hall .lc-book-mini{inset:0;width:100%;height:100%;opacity:.82;translate:0;border:0;border-radius:inherit;transform:none}.ct-hall .lc-book-mini .ct-world{inset:0}.ct-hall .lc-book-leaves{display:none}.ct-hall .lc-book-frame{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:end;gap:5px;padding:24px 16px;background:linear-gradient(transparent 20%,#11131cbf 55%,#11121ff5);color:#fff1df;border-radius:inherit}.ct-hall .lc-book-chapter{color:#e8e0dd;font-size:.66rem;letter-spacing:.22em}.ct-hall .lc-book-frame strong{font:1.3rem 'Sentient',Georgia,serif;color:#fff5e9}.ct-hall .lc-book-subtitle{font-size:.7rem;color:#d7cce0}.ct-hall .lc-book-emblem{position:absolute;left:calc(50% - 27px);top:18px;width:54px;height:54px;color:var(--book-color)}.ct-hall .lc-book-emblem svg{width:100%;height:100%}
 .ct-hall .lc-book:is(:hover,:focus-visible),.ct-hall .lc-book[data-preview='true']{box-shadow:0 0 0 3px var(--book-secondary),0 0 28px color-mix(in srgb,var(--book-color) 35%,transparent)}.ct-hall .lc-book[aria-pressed='true']::after{content:'ACTIVE';position:absolute;right:14px;top:90px;font:600 .6rem system-ui;letter-spacing:.16em;background:#161526e8;color:#fff1dc;padding:5px 7px;border:1px solid var(--book-color);border-radius:3px}
 .ct-preview{position:relative;height:440px;overflow:hidden;border:1px solid var(--world-border);border-radius:20px 5px;margin-bottom:28px;isolation:isolate;color:#fff4e7}.ct-preview-world{position:absolute;inset:0}.ct-preview-heading{position:absolute;left:25px;top:20px;text-shadow:0 2px 12px #000,0 0 24px #000;background:linear-gradient(90deg,#11121b99,transparent);padding:10px 25px 14px 10px;border-radius:8px}.ct-preview-heading p{font:600 .65rem system-ui;letter-spacing:.23em;color:#f7e3c4}.ct-preview-heading h3{font:clamp(1.3rem,3vw,2.4rem) 'Sentient',Georgia,serif;color:#fff5e9;margin:8px 0}.ct-preview-heading span{font-size:.82rem;color:#eadce8}
 .ct-preview-card{position:absolute;right:4%;bottom:18%;max-width:260px;padding:18px;color:var(--world-text);background:color-mix(in srgb,var(--world-surface) var(--ct-card-opacity,96%),transparent);border:1px solid var(--world-accent);border-radius:18px 3px;box-shadow:inset 0 0 0 4px var(--world-surface),0 10px 30px #0005}.ct-preview-card span{display:block;font-size:.7rem;color:var(--world-secondary);margin-bottom:6px}.ct-preview-card strong{font:1.2rem 'Sentient',Georgia,serif}
 .ct-hidden-sigil{position:absolute;left:var(--ct-sigil-x,15%);top:58%;width:48px;height:48px;padding:3px;background:#16152c33;color:#f2debd;border:0;border-radius:50%;opacity:.3;cursor:pointer;transition:opacity .5s,box-shadow .5s}.ct-hidden-sigil svg{width:100%;height:100%}.ct-hidden-sigil:is(:hover,:focus-visible),.ct-hidden-sigil[data-found='true']{opacity:1;box-shadow:0 0 28px #e6c9ff99}.ct-interact{position:absolute;left:20px;bottom:18px;color:#fff3de!important;background:#17152bed!important;border-color:#e3caa7!important;min-height:44px}
 .ct-collection{border-block:1px solid var(--world-border);padding:20px 0;margin:20px 0}.ct-collection h3{font:1.6rem Georgia,serif;margin:0}.ct-sigil-row{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.ct-sigil-row span{width:44px;height:44px;color:var(--world-secondary);opacity:.3}.ct-sigil-row span[data-found='true']{opacity:1;color:var(--world-accent)}.ct-sigil-row svg{width:100%;height:100%}.ct-collection button{margin:4px 5px 4px 0}
 .ct-draft-actions{position:sticky;bottom:-24px;z-index:3;margin:20px -24px -24px;padding:16px 24px;background:var(--world-surface);border-top:1px solid var(--world-border);display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;box-shadow:0 -10px 30px #0002}.ct-draft-actions p{margin:0 auto 0 0;max-width:300px;font-size:.75rem}.ct-hall button:focus-visible,.ct-hall select:focus-visible{outline:3px solid var(--world-accent);outline-offset:3px}.ct-hall .lc-settings{grid-template-columns:repeat(3,minmax(0,1fr))}.ct-hall .lc-settings select{width:100%;min-width:0}.ct-hall .em-presets button{margin:4px}.ct-hall .em-channels{display:grid;grid-template-columns:1fr 1fr;gap:20px}.ct-hall .lc-atelier summary{font:1.4rem Georgia,serif}.ct-entrance{position:absolute;left:calc(50% - 160px);top:calc(45% - 160px);width:320px;height:320px;color:var(--lc-cinema-accent);filter:drop-shadow(0 0 20px var(--lc-cinema-secondary))}.ct-entrance svg{width:100%;height:100%}
 html[data-family-intensity='quiet'] .ct-light-shafts{opacity:.25}html[data-family-intensity='full'] .ct-light-shafts{opacity:.85}html[data-family-brightness='radiant'] .ct-daylight{opacity:.85}html[data-family-brightness='soft'] .ct-light-shafts{opacity:.3}html[data-family-glow='off'] .ct-world{filter:none}html[data-family-glow='radiant'] .ct-world .ct-middle{filter:drop-shadow(0 0 3px #b8a9d52a)}
 html[data-family-quality='low'] .ct-world :is(.ct-fog-near,.ct-reflections,.ct-vines){display:none}html[data-family-quality='low'] .ct-world *{filter:none!important}
 .lc-environment[data-running='no'] .ct-world *,.ct-companion[data-running='no'],.ct-companion[data-running='no'] *,.ct-hall[data-ct-running='no'] .ct-world *,.ct-hall[data-ct-motion='off'] .ct-world *{animation-play-state:paused!important;transition:none!important}
 html[data-family-environment='off'] .ct-world :is(.ct-middle,.ct-fog,.ct-vines,.ct-reflections,.ct-light-shafts){display:none}
 html[data-family-rare='off'] .ct-world :is(.ct-hidden-eyes,.ct-rare){display:none}
 @media(max-width:700px){html[data-world='courts-of-twilight-meredith-gentry'] .lc-realm-bar{margin-bottom:66px;padding:12px;gap:8px}html[data-world='courts-of-twilight-meredith-gentry'] .lc-realm-bar button{min-height:40px;white-space:normal}.ct-world-touch{margin-left:0}.ct-scenery{object-position:64% 32%}.ct-hall .ct-scenery{object-position:50% 32%}.ct-middle{inset:0 -20%!important;width:140%!important}.ct-fog-near{opacity:.3}.ct-companion{width:54px;height:54px;top:33%;right:4%}.ct-companion[data-kind='stag']{width:48px}.ct-hall{padding:15px;width:96vw;max-height:94dvh}.ct-hall .lc-library-vault{height:200px}.ct-hall .lc-books{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 12px}.ct-hall .lc-book{height:225px}.ct-hall .lc-book-frame{padding:17px 10px}.ct-hall .lc-book-frame strong{font-size:1.06rem}.ct-preview{height:380px}.ct-preview-heading{left:8px;top:12px;right:8px}.ct-preview-card{max-width:180px;right:4%;bottom:22%;padding:12px}.ct-preview-card strong{font-size:1rem}.ct-interact{left:8px;right:8px;bottom:10px;font-size:.76rem}.ct-hall .lc-settings{grid-template-columns:1fr 1fr}.ct-draft-actions{bottom:-15px;margin:15px -15px -15px;padding:12px 15px}.ct-draft-actions p{flex-basis:100%;max-width:none}.ct-draft-actions button{flex:1;min-height:44px}.ct-hall .em-channels{grid-template-columns:1fr}.ct-collection h3{font-size:1.3rem}.ct-sigil-row{gap:6px}.ct-sigil-row span{width:28px;height:32px}}
 @media(max-height:500px) and (orientation:landscape){.ct-hall{max-height:95dvh}.ct-hall .lc-library-vault{height:140px}.ct-preview{height:300px}.ct-draft-actions{position:relative}html[data-world='courts-of-twilight-meredith-gentry'] .lc-realm-bar{margin-bottom:50px}}
 @media(prefers-reduced-motion:reduce){.ct-world *,.ct-companion,.ct-companion *,.ct-hall *{animation:none!important;transition:none!important}.ct-lightning{display:none!important}.ct-companion[data-kind='stag']{opacity:.5}}
}
@media print{.ct-world,.ct-companion,.ct-hall,.ct-world-touch,.ct-companion-touch{display:none!important}}
@keyframes ct-shaft{to{transform:rotate(-8deg) translateX(40px);opacity:.6}}
@keyframes ct-fog{to{transform:translate(6%,-4%) scale(1.1)}}
@keyframes ct-reflect{to{transform:perspective(500px) rotateX(22deg) translateX(12px);opacity:.5}}
@keyframes ct-vine{to{rotate:1.4deg;translate:3px 4px}}@keyframes ct-leaf{to{rotate:-7deg;scale:1.08 .93}}
@keyframes ct-bloom{to{scale:1.15;rotate:9deg}}@keyframes ct-float{to{translate:0 -13px;rotate:3deg}}
@keyframes ct-rotate{to{rotate:360deg}}@keyframes ct-candle{0%,42%,70%{opacity:.65}24%,58%,100%{opacity:1}}
@keyframes ct-portal{to{opacity:.7;scale:1.025}}@keyframes ct-rain{to{translate:-80px 500px;opacity:0}}
@keyframes ct-ripple{0%{scale:.4;opacity:0}20%{opacity:.6}100%{scale:1.8;opacity:0}}
@keyframes ct-passer{0%,15%{translate:0 0;opacity:0}35%,65%{opacity:.25}85%,100%{translate:340px 0;opacity:0}}
@keyframes ct-curtain{to{transform:skewX(2deg) scaleX(1.1)}}@keyframes ct-mirror{to{opacity:.55;filter:brightness(1.15)}}
@keyframes ct-waterfall{to{background-position:0 110px}}@keyframes ct-fountain{to{scale:.9 1.1;opacity:.5}}
@keyframes ct-storm{to{translate:14% 2%;scale:1.2}}@keyframes ct-lightning{0%,91%,100%{opacity:0}94%,96%{opacity:.45}}
@keyframes ct-snow{to{translate:100px 450px;rotate:120deg;opacity:0}}@keyframes ct-frost{to{opacity:.6;scale:1.06}}
@keyframes ct-thorn{to{transform:skewX(1deg) scaleY(1.015)}}@keyframes ct-eyes{0%,80%,100%{opacity:0}84%,93%{opacity:.6}}
@keyframes ct-page{to{translate:8px -20px;rotate:7deg}}@keyframes ct-dawn{to{scale:1.25;opacity:.5}}
@keyframes ct-companion-flight{to{translate:-35px 55px;rotate:-10deg}}@keyframes ct-wing{to{transform:scaleX(.72)}}@keyframes ct-tail{to{rotate:4deg}}
@keyframes ct-royal-breath{to{filter:brightness(1.04)}}
@media screen {
 html[data-world='courts-of-twilight-meredith-gentry'][data-theme][data-mode] dialog.ct-hall{background:var(--world-surface)!important;color:var(--world-text)!important;border-color:var(--world-border)!important;width:min(1260px,96vw);padding:24px}
 html[data-world='courts-of-twilight-meredith-gentry'][data-theme][data-mode] .ct-hall :is(select,input[type='range'],button.button){background:var(--world-surface)!important;color:var(--world-text)!important;border-color:var(--world-border)!important;min-height:44px}
 .ct-hall :is(h2,h3,label,summary,.lc-library-head p:not(.lc-eyebrow),.lc-library-caption>strong,.lc-library-caption>span,.lc-library-caption [role='status'],.lc-save-note){color:var(--world-text)}
 .ct-hall .lc-library-vault{position:absolute;inset:112px 12px auto;height:700px;opacity:.55;pointer-events:none;mask-image:linear-gradient(#000,transparent)}
 .ct-hall .lc-library-vault svg{width:100%;height:100%;filter:none}.ct-hall .lc-books{position:relative;margin-top:24px;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 4% 24px}.ct-hall .lc-book{height:208px}.ct-hall .lc-book-frame strong{font-size:1.2rem}.ct-hall .lc-book-frame{background:linear-gradient(transparent 15%,#11131c77 50%,#11121fee)}
 .ct-hall [data-lc-book='shadows']{border-radius:46% 46% 3px 3px;border-style:double;border-width:4px}.ct-hall [data-lc-book='twilight']{border-radius:50% 50% 14px 14px;box-shadow:inset 0 0 0 3px #b5c7ed55}.ct-hall [data-lc-book='moonlight']{border-radius:45% 55% 8px 20px}.ct-hall [data-lc-book='midnight']{border-radius:50% 50% 3px 3px;border-style:ridge}.ct-hall [data-lc-book='storm']{border-radius:2px 45% 2px 2px}.ct-hall [data-lc-book='frost']{border-radius:35% 35% 4px 4px;border-width:4px;border-style:double}.ct-hall [data-lc-book='darkness']{border-radius:50% 6% 50% 6%}.ct-hall [data-lc-book='gilded']{border-radius:15px 15px 3px 3px;border-style:double;border-width:4px}.ct-hall [data-lc-book='dawning']{border-radius:48% 48% 25px 25px}
 .ct-preview .ct-preview-heading :is(h3,p){color:#fff5e9}.ct-hall .lc-book-mini svg{width:100%;height:100%}
 @media(max-width:700px){html[data-world='courts-of-twilight-meredith-gentry'][data-theme][data-mode] dialog.ct-hall{padding:15px}.ct-hall .lc-books{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;padding:0 0 20px}.ct-hall .lc-book{height:200px}.ct-hall .lc-book-frame strong{font-size:1.02rem}.ct-hall .lc-library-vault{height:1040px}}
}

@media screen {
.ct-art-light{display:none}
html[data-mode='light'] .ct-art-dark,.ct-hall[data-ct-mode='light'] .ct-art-dark{display:none}
html[data-mode='light'] .ct-art-light,.ct-hall[data-ct-mode='light'] .ct-art-light{display:block}
.ct-hall[data-ct-mode='dark'] .ct-art-dark{display:block}.ct-hall[data-ct-mode='dark'] .ct-art-light{display:none}
.ct-preview-card{pointer-events:none;bottom:29%;max-width:220px}.ct-hidden-sigil{top:72%;z-index:2}
.ct-preview{scroll-margin-block:20px 180px}
.ct-storm .ct-middle{rotate:calc(var(--ct-wind,0)*.5deg);transition:rotate 1s}
.ct-vines{opacity:.6}
}

@media screen {
.ct-preview-companion{position:absolute;right:6%;top:42%;width:60px;height:60px;color:var(--world-accent);pointer-events:none}.ct-preview-companion svg{width:100%;height:100%}
.ct-companion[data-visibility='subtle']{filter:none;scale:.8;opacity:.65}.ct-companion[data-kind='stag'][data-behavior='idle']{opacity:0}
.ct-hall[data-ct-intensity='quiet'] .ct-light-shafts{opacity:.25}.ct-hall[data-ct-intensity='full'] .ct-light-shafts{opacity:.85}
.ct-hall[data-ct-brightness='radiant'] .ct-daylight{opacity:.85}.ct-hall[data-ct-brightness='soft'] .ct-light-shafts{opacity:.3}
html[data-family-brightness='soft'] .lc-environment .ct-scenery,.ct-hall[data-ct-brightness='soft'] .ct-preview .ct-scenery{filter:brightness(.8)}
html[data-family-brightness='radiant'] .lc-environment .ct-scenery,.ct-hall[data-ct-brightness='radiant'] .ct-preview .ct-scenery{filter:brightness(1.12)}
html[data-family-glow='off'] .lc-environment :is(.ct-pointer-light,.ct-violet-moon),.ct-hall[data-ct-glow='off'] :is(.ct-pointer-light,.ct-violet-moon){display:none}
.ct-hall[data-ct-quality='low'] .ct-world :is(.ct-fog-near,.ct-reflections,.ct-vines){display:none}
.ct-hall[data-ct-environment='off'] .ct-world :is(.ct-middle,.ct-fog,.ct-vines,.ct-reflections,.ct-light-shafts){display:none}
.ct-hall[data-ct-accessibility='still'] .ct-world *{animation:none!important;transition:none!important}
.ct-hall[data-ct-ornament='minimal'] .ct-preview-card{border-radius:5px;box-shadow:none}.ct-hall[data-ct-shadow-depth='velvet'] .ct-preview-card{box-shadow:0 18px 28px #08041288}
html[data-family-shadow-depth='soft'] .lc-card,.ct-hall[data-ct-shadow-depth='soft'] .ct-preview-card{filter:none;box-shadow:0 3px 12px #05081215}
html[data-family-weather='calm'] .ct-world :is(.ct-rain,.ct-snow,.ct-storm-cloud),.ct-hall[data-ct-weather='calm'] .ct-world :is(.ct-rain,.ct-snow,.ct-storm-cloud){opacity:.35}
html[data-family-weather='wild'] .ct-world :is(.ct-rain,.ct-snow),.ct-hall[data-ct-weather='wild'] .ct-world :is(.ct-rain,.ct-snow){animation-duration:4s}
.ct-hall [data-lc-book='shadows'],.ct-hall [data-lc-book='midnight']{border-radius:46% 46% 3px 3px!important}.ct-hall [data-lc-book='twilight']{border-radius:50% 50% 14px 14px!important}.ct-hall [data-lc-book='moonlight']{border-radius:45% 55% 8px 20px!important}.ct-hall [data-lc-book='storm']{border-radius:2px 45% 2px 2px!important}.ct-hall [data-lc-book='frost']{border-radius:35% 35% 4px 4px!important}.ct-hall [data-lc-book='darkness']{border-radius:50% 6% 50% 6%!important}.ct-hall [data-lc-book='dawning']{border-radius:48% 48% 25px 25px!important}
}

@media screen{.ct-preview-dust{position:absolute;inset:0;pointer-events:none;overflow:hidden}.ct-preview-dust i{position:absolute;left:var(--x);top:var(--y);width:3px;height:3px;border-radius:50%;background:#eedbff88;animation:ct-float var(--cycle) ease-in-out var(--delay) infinite alternate}.ct-hall[data-ct-motion='off'] .ct-preview-dust i,.ct-hall[data-ct-running='no'] .ct-preview-dust i{animation-play-state:paused}.ct-hall[data-ct-accessibility='still'] .ct-preview-dust i{animation:none}.ct-hall[data-ct-environment='off'] .ct-preview-dust{display:none}}
@media(prefers-reduced-motion:reduce){.ct-preview-dust i{animation:none!important}}


/* Source: infinite-library.css */
/* Strictly scoped; the library is an optional layer, never an operational dependency. */
.il-launch{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 28px;margin:0 0 24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);}.il-launch h3{font:26px Georgia,serif;margin:5px 0 8px;}.il-launch .eyebrow{font-size:10px;letter-spacing:.2em;}.il-launch .muted{max-width:620px;font-size:13px;}.il-launch>button{min-height:44px;flex-shrink:0;}
.il-globe-preview{height:220px;overflow:hidden;border-radius:50%;max-width:300px;margin:15px auto;border:3px double #ac956b;}.il-globe-preview img{width:100%;height:100%;object-fit:cover;}
.il-lectern[data-preview=yes] .il-open-book{width:100%;height:clamp(250px,45vh,520px);}.il-lectern[data-preview=yes] .il-page{transform:none;border-radius:0;border:0;}.il-lectern[data-preview=yes] .il-page-art{inset:0;}
.il-library{background:var(--il-stone);}.il-library[data-stone=emerald] .il-architecture{mix-blend-mode:luminosity;}.il-library[data-stone=ivory] .il-shadows{background:linear-gradient(135deg,#b4984b14,#352f2040);}
.il-library[data-time=morning] .il-window{background:#808b8c;}.il-library[data-time=morning] .il-sunshaft{opacity:.9;}.il-library[data-time=afternoon] .il-window{background:#ad9366;}.il-library[data-time=twilight] .il-window{background:#55516b;}
@media(max-width:700px){.il-launch{flex-direction:column;align-items:stretch;padding:22px;}.il-launch>button{white-space:normal;}.il-lectern[data-preview=yes] .il-open-book{height:250px;}}
.il-library{--il-gold:#d7b47a;--il-ink:#f4e7cf;--il-muted:#cfbea6;--il-wood:#342323;--il-stone:#152028;--il-motion:1;--il-glow:.55;--il-candle:.65;position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#151c21;color:var(--il-ink);font:16px/1.55 'Space Grotesk',system-ui,sans-serif;isolation:isolate;overflow:hidden;box-sizing:border-box;}
.il-library::backdrop{background:#080d14f2;}
@layer theme-studio {
#infinite-library{inset:0!important;margin:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;max-block-size:none!important;padding:0!important;border:0!important;border-radius:0!important;transform:none!important;backdrop-filter:none!important;box-shadow:none!important;clip-path:none!important;background:var(--il-stone)!important;color:var(--il-ink)!important;overflow:hidden!important;}
#infinite-library button{color:#f5e6c9!important;background:#2a2227!important;border:1px solid #b18f6080!important;border-radius:5px!important;box-shadow:inset 0 1px #f4d5a118,0 4px 14px #0005!important;clip-path:none!important;}
#infinite-library .il-book{border:0!important;background:none!important;box-shadow:none!important;}
#infinite-library .il-primary{background:linear-gradient(#b69758,#756035)!important;color:#fff4d9!important;border-color:#d2bd88!important;}
#infinite-library .il-props button{background:transparent!important;border:0!important;box-shadow:none!important;}
#infinite-library .il-clock{border:4px double #a98b60!important;border-radius:50%!important;background:radial-gradient(#324044,#152127)!important;}
#infinite-library .il-desk button{background:#3c3830!important;color:#f4e9cf!important;}
#infinite-library input,#infinite-library select{color:#f4e7cf!important;background:#191f23!important;border:1px solid #9a8767!important;clip-path:none!important;box-shadow:none!important;}
#infinite-library .il-desk input,#infinite-library .il-desk select{background:#f9f0db!important;color:#3a3428!important;border-color:#847455!important;}
}
#infinite-library::before,#infinite-library::after{content:none!important;}
#infinite-library button{clip-path:none!important;border-radius:5px!important;font-family:inherit!important;text-transform:none!important;}
#infinite-library .il-clock{border-radius:50%!important;}
.il-props{z-index:6!important;}
.il-desk .il-check{min-height:44px;}
.il-building{background:linear-gradient(180deg,#0b14243b,#0b152799),url('/infinite-library-hall.png') center/cover no-repeat;}
.il-building>i,.il-building>b{opacity:.4;}.il-entrance-doors{left:25%;right:25%;}.il-entrance-doors svg{height:100%;width:100%;}
.il-library[data-running=no] .il-page-portal{animation-play-state:paused!important;}
.il-homecoming{position:absolute;inset:0;z-index:28;display:grid;place-items:center;background:#0d1422f5;pointer-events:none;perspective:1400px;}
.il-return-volume{width:min(880px,90vw);height:min(470px,65vh);position:relative;transform-style:preserve-3d;filter:drop-shadow(0 35px 35px #0009);}
.il-return-left,.il-return-right{position:absolute;top:0;width:50%;height:100%;overflow:hidden;border:7px solid #cbb38d;background:#181c2b;border-bottom:11px solid #5f402f;}.il-return-left{left:0;border-radius:9px 0 0 9px;}.il-return-right{right:0;transform-origin:left;border-radius:0 9px 9px 0;backface-visibility:visible;}
.il-return-volume :is(img,svg){height:100%;width:200%;max-width:none;position:absolute;top:0;object-fit:cover;}.il-return-right :is(img,svg){left:-100%;}
.il-grand-shelves{display:grid;grid-template-columns:1fr 1fr;gap:24px;}.il-grand-shelves .il-special-shelf{margin-bottom:25px;}.il-grand-shelves .il-special-shelf h2{font-size:21px;}
@media(max-width:700px){.il-grand-shelves{grid-template-columns:1fr;gap:0;}.il-grand-shelves .il-special-shelf{padding:12px 15px;margin-bottom:15px;}.il-grand-shelves .il-special-shelf h2{font-size:18px;margin-bottom:5px;}.il-grand-shelves .il-empty{font-size:12px;padding:0;}}
.il-library *, .il-library *::before,.il-library *::after{box-sizing:border-box;}
.il-library [hidden]{display:none!important;}
.il-library button,.il-library input,.il-library select{font:inherit;letter-spacing:normal;border-radius:5px;}
.il-library button{cursor:pointer;color:#f5e6c9;background:#2a2227;border:1px solid #b18f6080;min-height:44px;padding:8px 14px;box-shadow:inset 0 1px #f4d5a118,0 4px 14px #0005;}
.il-library button:disabled{opacity:.38;cursor:default;}
.il-library button:focus-visible,.il-library input:focus-visible,.il-library select:focus-visible{outline:3px solid #fae0a5;outline-offset:4px;}
.il-library button:hover{border-color:#e6cfa1;}
.il-library input,.il-library select{color:#f4e7cf;background:#191f23;border:1px solid #9a8767;min-height:44px;padding:9px 12px;max-width:100%;}
.il-library input[type=checkbox]{width:22px;height:22px;min-height:22px;accent-color:#ccaf76;}
.il-library input[type=range]{width:100%;accent-color:#ccaf76;padding:0;}
.il-library h1,.il-library h2,.il-library h3,.il-library h4{font-family:'Sentient',Georgia,serif;font-weight:400;color:var(--il-ink);text-shadow:0 2px 5px #0007;margin:0;line-height:1.2;}
.il-library p{margin:0;}.il-library small{font-size:12px;color:var(--il-muted);}
.il-library svg{width:100%;height:100%;max-width:100%;}
.il-library .il-kicker{font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:#e0be84;}
.il-scroll{position:relative;z-index:4;overflow:auto;height:100%;padding:30px clamp(18px,5vw,90px) 100px;overscroll-behavior:contain;scrollbar-color:#927653 #171b21;}
.il-header{max-width:1450px;margin:auto;padding:5px 0 26px;display:flex;align-items:center;gap:22px;border-bottom:1px solid #d8bb7844;}
.il-title{flex:1;min-width:0;}.il-title h1{font-size:clamp(34px,4vw,61px);letter-spacing:-.045em;margin:6px 0 10px;}.il-title>p:last-child{color:#dac8ac;max-width:610px;font-size:14px;}
.il-head-seal{width:67px;height:67px;flex:0 0 67px;border:1px solid #d7b47a77;border-radius:50%;display:grid;place-items:center;font:36px Georgia;color:#ead3a3;box-shadow:0 0 60px #cb983629,inset 0 0 18px #d8ad5833;}
.il-toolbar{max-width:1450px;margin:22px auto 38px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.il-search{flex:1;min-width:240px;position:relative;}.il-search input{width:100%;background:#171c22db;padding-left:40px;box-shadow:inset 0 3px 10px #0009;}.il-search>span{position:absolute;left:15px;top:11px;color:#dbc28b;}
.il-toolbar .il-hint{font-size:12px;color:#d9c5a6;}
.il-scene{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;perspective:1200px;transform:translate3d(var(--il-px,0),var(--il-py,0),0);will-change:auto;}
.il-architecture{position:absolute;inset:-3%;background:linear-gradient(180deg,#09101e15,#12192230 30%,#091014b8 90%),url('/infinite-library-hall.png') center top/cover no-repeat;filter:brightness(.68) saturate(.85);}
.il-vault{position:absolute;inset:0 0 52%;background:radial-gradient(ellipse at 50% 0,transparent 30%,#090f1955 67%,#080d17a6),repeating-conic-gradient(from -14deg at 50% 0,transparent 0deg 26deg,#b29b6517 27deg 28deg);border-radius:0 0 50% 50%;opacity:.5;}
.il-window{position:absolute;top:9%;width:14%;height:52%;border:9px solid #716952;border-radius:48% 48% 2% 2%;background:linear-gradient(#17243d,#6b6a6877);box-shadow:inset 0 0 24px #ceaf8544,0 0 80px #6f94bb22,0 12px 20px #0008;overflow:hidden;opacity:.46;}
.il-window-left{left:5%;transform:perspective(700px) rotateY(24deg);}.il-window-right{right:5%;transform:perspective(700px) rotateY(-24deg);}
.il-window i,.il-window b{position:absolute;background:#ae967988;}.il-window i{left:48%;top:0;width:4%;height:100%;}.il-window b{top:42%;width:100%;height:4px;}
.il-window-sky{position:absolute;inset:0;background:radial-gradient(circle at 45% 15%,#dcddb56b 0 1px,transparent 2px),radial-gradient(circle at 65% 35%,#dcddb576 0 1px,transparent 2px);background-size:42px 53px,67px 74px;}
.il-cloud{position:absolute;inset:14% -40% 14%;background:radial-gradient(ellipse at 50% 40%,#b8c2cf30,transparent 60%);animation:il-cloud 42s ease-in-out infinite alternate;}
.il-weather{position:absolute;inset:0;opacity:0;background:repeating-linear-gradient(112deg,transparent 0 22px,#dae3f129 23px 24px);animation:il-rain 3s linear infinite;}
.il-column{position:absolute;top:0;width:3.8%;height:100%;background:linear-gradient(90deg,#080e17,#68625144 25%,#b8ac8324 45%,#101622 78%);border-inline:1px solid #ad996c35;box-shadow:12px 0 24px #0006;opacity:.72;}.il-column-left{left:1%;}.il-column-right{right:1%;}
.il-sunshaft{position:absolute;left:6%;top:-20%;width:70%;height:160%;background:linear-gradient(105deg,transparent 22%,#ffe4a914 24%,transparent 26%,#e1d6b416 32%,transparent 39%);transform:rotate(-8deg);animation:il-light 24s ease-in-out infinite alternate;mix-blend-mode:screen;}
.il-distant-shelves{position:absolute;top:7%;left:22%;width:56%;opacity:.26;transform:scale(.94);}.il-distant-shelves>div{display:flex;align-items:end;justify-content:space-around;gap:3px;height:78px;border-bottom:7px solid #72523c;box-shadow:0 6px 14px #000;}.il-distant-shelves i{display:block;width:var(--w);height:var(--h);background:linear-gradient(90deg,#171a1d,hsl(var(--hue) 24% 27%),#090f14);border:1px solid #caac5933;border-top:2px solid #bcab6655;box-shadow:inset -2px 0 2px #000;}
.il-balcony{position:absolute;left:17%;top:32%;width:66%;height:44px;background:repeating-linear-gradient(90deg,transparent 0 22px,#a1875044 23px 26px);border-block:6px solid #8c6d4455;transform:perspective(1000px) rotateX(-8deg);opacity:.35;}
.il-staircase{position:absolute;left:17%;top:38%;width:12%;height:43%;opacity:.3;}.il-staircase i{position:absolute;left:calc(sin(var(--step))*30px);top:calc(var(--step)*20px);width:90px;height:8px;background:linear-gradient(#7d6449,#201919);transform:rotateY(calc(var(--step)*16deg));box-shadow:0 3px 4px #000;}
.il-chandelier{position:absolute;top:-10px;left:calc(50% - 88px);width:176px;height:150px;opacity:.7;transform-origin:50% 0;animation:il-chandelier 19s ease-in-out infinite alternate;}
.il-chandelier>b{position:absolute;width:2px;height:65px;background:#c3a35e;left:50%;}.il-chandelier>i{position:absolute;left:18px;top:88px;width:140px;height:36px;border:3px solid #c5a262;border-radius:50%;}.il-chandelier>span{position:absolute;left:74px;top:67px;font-size:29px;color:#e3ba73;}.il-chandelier em{position:absolute;left:calc(26px + var(--i)*20px);top:calc(83px + (var(--i) - 3)*(var(--i) - 3)*2px);width:6px;height:24px;border-radius:2px;background:#dacdad;}.il-chandelier u,.il-candle::before{position:absolute;content:'';bottom:100%;left:-1px;width:8px;height:15px;border-radius:80% 20% 70% 30%;background:linear-gradient(#ffcf57,#ffeca8);box-shadow:0 0 15px #ffc463,0 0 40px #ffac506b;transform-origin:50% 100%;animation:il-flame 2.3s ease-in-out infinite alternate;}
.il-candle{position:absolute;left:var(--x);top:var(--y);width:7px;height:34px;border-radius:1px;background:linear-gradient(90deg,#7e6d54,#e7d4a2,#a69a78);box-shadow:0 8px 14px #0008;animation:il-float var(--cycle,14s) ease-in-out infinite alternate;animation-delay:var(--delay);opacity:calc(.2 + var(--il-candle)*.7);}
.il-mote{position:absolute;left:var(--x);top:var(--y);height:3px;width:3px;border-radius:50%;background:#ffe7af;opacity:0;box-shadow:0 0 8px #dbd0a8;animation:il-mote var(--cycle,24s) ease-in-out infinite;animation-delay:var(--delay);}
.il-firelight{position:absolute;bottom:-5%;left:-10%;width:70%;height:50%;background:radial-gradient(ellipse at 20% 100%,#d97d3033,transparent 70%);animation:il-light 5.5s ease-in-out infinite alternate;mix-blend-mode:screen;}
.il-shadows{position:absolute;inset:0;background:linear-gradient(140deg,transparent,#090e1799 85%);animation:il-light 31s ease-in-out infinite alternate;}
.il-ceiling-stars{position:absolute;inset:0 14% 54%;opacity:0;background:radial-gradient(circle,#fff7d7 0 1px,transparent 2px) 0 0/61px 37px,radial-gradient(circle,#bad5eb 0 1px,transparent 2px) 17px 19px/93px 67px;transition:opacity 1.5s;}
.il-library[data-celestial=yes] .il-ceiling-stars{opacity:.75;}.il-library[data-celestial=yes] .il-architecture{filter:brightness(.58) hue-rotate(20deg);}
.il-library[data-wood=mahogany]{--il-wood:#462323;}.il-library[data-wood=oak]{--il-wood:#493b2b;}.il-library[data-stone=emerald]{--il-stone:#152923;}.il-library[data-stone=ivory]{--il-stone:#342f28;}
.il-library[data-lighting=sunlit] .il-architecture{filter:brightness(1) sepia(.22);}.il-library[data-lighting=moonlit] .il-architecture{filter:brightness(.65) saturate(.58) hue-rotate(12deg);}
.il-library[data-time=morning] .il-scene{background:#716443;}.il-library[data-time=afternoon] .il-scene{background:#654b35;}.il-library[data-time=midnight] .il-window{background:#101735;}.il-library[data-time=midnight] .il-sunshaft{opacity:.2;}
.il-library[data-weather=rain] .il-weather{opacity:.9;}.il-library[data-weather=snow] .il-weather{opacity:.5;background:radial-gradient(circle,#ece7e04d 1px,transparent 2px) 0 0/23px 31px;animation-duration:12s;}
.il-library[data-ambience=celestial] .il-ceiling-stars{opacity:.32;}.il-library[data-ambience=hearth] .il-firelight{opacity:1;transform:scale(1.8);}
.il-main{max-width:1450px;margin:auto;position:relative;}.il-shelves{display:flex;flex-direction:column;gap:34px;}
.il-collection{position:relative;padding:22px 22px 12px;background:linear-gradient(130deg,#d3b27f18,#03070b6b 26%,#03070b7d 75%,#b5956212),repeating-linear-gradient(0deg,#0000 0 3px,#080d1418 4px 5px),var(--il-wood);border:1px solid #bd9e643d;border-inline:9px double #b9a17a4d;border-radius:25px 25px 3px 3px;box-shadow:inset 0 12px 34px #000a,inset 0 0 0 2px #3e2a2366,0 13px 26px #0007;}
.il-collection::before{content:'';position:absolute;inset:8px;border:1px solid #c6a56b25;border-radius:18px 18px 2px 2px;pointer-events:none;}.il-collection::after{content:'';position:absolute;bottom:-8px;left:-11px;right:-11px;height:17px;background:linear-gradient(#b28c58,#523421 25%,#211716 65%,#bca77855);border-radius:3px;box-shadow:0 7px 13px #0008;}
.il-collection-head{display:flex;align-items:center;gap:16px;position:relative;min-width:0;margin-bottom:20px;}.il-collection-emblem{width:42px;height:42px;color:var(--collection-accent);filter:drop-shadow(0 0 9px #d8a78044);flex-shrink:0;}.il-collection-head h2{font-size:26px;}.il-collection-head>div:nth-child(2){flex:1;min-width:0;}.il-collection-head p{font-size:12px;color:#d5c3a7;margin-top:5px;}.il-order{display:flex;gap:6px;}.il-order button{padding:6px 9px;font-size:14px;min-width:44px;}.il-collection-head .il-favorite{color:#ebc56e;min-width:44px;padding:6px;}.il-collection-head .il-favorite[aria-pressed=true]{background:#816035;}
.il-books{display:flex;align-items:end;gap:clamp(10px,2vw,26px);padding:12px 8px 18px;overflow-x:auto;overflow-y:hidden;scrollbar-color:#9b7d58 #21191c;scroll-snap-type:x proximity;perspective:1400px;min-height:220px;}
.il-library .il-book{border:0;padding:0;background:none;box-shadow:none;flex:0 0 116px;width:116px;height:208px;position:relative;scroll-snap-align:start;isolation:isolate;transition:transform .7s cubic-bezier(.16,1,.3,1);text-align:center;}
.il-volume{position:absolute;inset:0 0 7px;transform:perspective(850px) rotateY(-17deg) rotateZ(-1deg);transform-style:preserve-3d;transition:transform .7s cubic-bezier(.16,1,.3,1);filter:drop-shadow(8px 11px 6px #0008);}
.il-cover{position:absolute;inset:0 5px 0 11px;border-radius:2px 5px 5px 2px;padding:15px 7px 12px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:repeating-linear-gradient(30deg,#0000 0 3px,#fffa 3.5px 4px),radial-gradient(ellipse at 0 10%,var(--book-color),#10141d 90%);background-blend-mode:soft-light,normal;border:2px solid color-mix(in srgb,var(--book-secondary) 65%,#84684a);outline:1px solid #000a;outline-offset:2px;box-shadow:inset 0 0 0 4px #17131e,inset 0 0 0 5px color-mix(in srgb,var(--book-secondary) 55%,transparent),inset 6px 0 5px #0009,inset -1px 1px #ffffff40;transform:translateZ(5px);}
.il-cover::before,.il-cover::after{position:absolute;content:'✧';font-family:Georgia;top:6px;color:var(--book-secondary);font-size:11px;}.il-cover::before{left:8px;}.il-cover::after{right:8px;}
.il-book-spine{position:absolute;left:0;top:1px;bottom:0;width:14px;border-radius:4px 0 0 4px;background:repeating-linear-gradient(0deg,#0000 0 25px,#c6a476 26px 28px,#0000 29px 45px),linear-gradient(90deg,#060a0f,var(--book-color),#191619);transform:rotateY(-25deg);box-shadow:inset 2px 0 #b99b6577;}
.il-pages{position:absolute;right:0;top:5px;bottom:4px;width:10px;background:repeating-linear-gradient(0deg,#887b62 0 1px,#eee1bc 1px 3px);transform:rotateY(42deg);box-shadow:inset -3px 0 3px #0006;}
.il-book-emblem{height:60px;width:65px;display:block;color:var(--book-secondary);filter:drop-shadow(0 0 calc(8px * var(--il-glow)) var(--book-color));}.il-book-emblem svg{fill:none;stroke:currentColor;}
.il-book strong{font-family:'Sentient',Georgia,serif;font-size:15px;color:#fff1d9;line-height:1.27;word-break:normal;overflow-wrap:anywhere;text-shadow:0 1px 2px #000;}
.il-book small{font-size:8px;text-transform:uppercase;letter-spacing:.15em;color:#f3d9a7;}.il-book .il-tool-tip{position:absolute;bottom:100%;left:-20%;right:-20%;padding:7px;background:#11171cf2;color:#ffedc9;border:1px solid #a5855266;opacity:0;pointer-events:none;transition:opacity .2s;font-size:12px;border-radius:5px;z-index:10;}
.il-library[data-hover=true] .il-book:hover .il-volume,.il-book:focus-visible .il-volume{transform:perspective(800px) rotateY(-4deg) translateY(-10px) translateZ(28px);}.il-library[data-hover=true] .il-book:hover .il-tool-tip,.il-book:focus-visible .il-tool-tip{opacity:1;}
.il-book[data-loved=true] .il-cover{border-radius:10px 7px 13px 12px;box-shadow:inset 0 0 8px #dbc7a466,inset 8px 1px 10px #000b;filter:sepia(.25);}
.il-collection[data-collection=dark-is-rising]{background:radial-gradient(ellipse at 40% 0,#24523b44,transparent),var(--il-wood);}.il-collection[data-collection=prythian] .il-cover{border-radius:5px 9px 9px 5px;}.il-collection[data-collection=empyrean] .il-cover{outline:2px solid #5b5650;}.il-collection[data-collection=lunar-chronicles] .il-volume::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,#c9eeff30 47%,transparent 62%);transform:translateZ(8px);pointer-events:none;}.il-collection[data-collection=courts-of-twilight-meredith-gentry]{border-color:#ad93c760;}
.il-special-shelf{margin:0 0 36px;padding:18px 24px;border-bottom:8px ridge #795339;background:linear-gradient(120deg,#2a252adb,#101821d9);border-radius:14px 14px 0 0;box-shadow:0 13px 22px #0005;}.il-special-shelf h2{font-size:22px;margin-bottom:14px;}.il-mini-worlds{display:flex;gap:10px;flex-wrap:wrap;}.il-mini-worlds button{font-family:Georgia;font-size:14px;color:#eadbc0;background:#272c2cc4;}.il-empty{font-family:Georgia;color:#ddcba9;padding:10px;}
.il-lectern{position:relative;margin:30px auto 40px;padding:34px 40px;background:radial-gradient(ellipse at 50% 60%,#a8844938,transparent 75%),linear-gradient(#241b23ed,#121720ee);border:1px solid #d6b97466;border-radius:50% 50% 6px 6px / 50px 50px 6px 6px;box-shadow:0 18px 70px #000c,inset 0 1px #fff2;max-width:1100px;min-height:450px;}
.il-lectern-head{text-align:center;margin-bottom:26px;}.il-lectern-head h2{font-size:31px;margin:7px;}.il-open-book{position:relative;perspective:1100px;width:min(650px,100%);height:280px;margin:auto;transform-style:preserve-3d;filter:drop-shadow(0 22px 18px #0009);}
.il-page{position:absolute;width:50%;height:100%;top:0;background:repeating-linear-gradient(0deg,#c2b08b 0 1px,#e2d0ac 1px 4px);border:1px solid #c8b58d;border-bottom:8px solid #523c29;overflow:hidden;box-shadow:inset 0 0 30px #6c533b88;}.il-page-left{left:0;transform:rotateY(10deg);transform-origin:right;border-radius:12px 0 0 12px;}.il-page-right{right:0;transform:rotateY(-10deg);transform-origin:left;border-radius:0 12px 12px 0;}.il-page-art{position:absolute;inset:10px;overflow:hidden;border-radius:4px;background:#1b2935;}.il-page-art svg{width:200%;max-width:none;height:100%;position:absolute;left:0;}.il-page-right .il-page-art svg{left:-100%;}.il-page-art>img{position:absolute;inset:0;width:200%;max-width:none;height:100%;object-fit:cover;}.il-page-right .il-page-art>img{left:-100%;}.il-page-art>span{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 100%,transparent,#11182755);}
.il-leaf{position:absolute;left:50%;top:0;height:97%;width:48%;background:linear-gradient(90deg,#ab9877,#ecdcc2);transform-origin:left;border:1px solid #baa379;opacity:0;pointer-events:none;}.il-page-portal{position:absolute;inset:8% 20%;border-radius:50%;background:radial-gradient(ellipse,var(--portal-color,#abcee5) 0,transparent 66%);mix-blend-mode:screen;opacity:.22;filter:blur(20px);transform:translateZ(30px);animation:il-light 7s ease-in-out infinite alternate;}
.il-book-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:25px 0 15px;}.il-primary{background:linear-gradient(#b69758,#756035)!important;color:#fff4d9!important;border-color:#d2bd88!important;}.il-world-setting{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:13px;}.il-world-caption{text-align:center;color:#d3c7ad;font:14px Georgia;}
.il-props{position:absolute;inset:0;pointer-events:none;z-index:3;}.il-props button{pointer-events:auto;min-width:44px;min-height:44px;padding:4px;background:transparent;border:0;box-shadow:none;color:#ba9963;opacity:.85;}.il-props .il-secret{position:absolute;}.il-sigil{left:8px;top:43%;font-size:24px;}.il-window-switch{right:8px;top:32%;font-size:28px;}.il-chandelier-switch{left:calc(50% - 22px);top:75px;font-size:18px;opacity:.6!important;}.il-whispers{right:8px;top:66%;writing-mode:vertical-rl;background:#26202a!important;height:77px;box-shadow:inset 0 0 0 1px #a9865255!important;}.il-clock{right:20px;top:112px;width:60px;height:60px;border:4px double #a98b60!important;border-radius:50%!important;background:radial-gradient(#324044,#152127)!important;}.il-clock span{font:29px Georgia;color:#ccb980;}.il-clock i{position:absolute;left:50%;top:9px;bottom:50%;width:1px;background:#bca375;transform:rotate(40deg);transform-origin:50% 100%;}
.il-globe{left:10px;bottom:30px;width:82px;height:94px;}.il-globe span{display:block;position:absolute;width:52px;height:52px;top:4px;left:16px;border:2px solid #b29464;border-radius:50%;background:repeating-linear-gradient(60deg,#0000 0 12px,#cdba7d3d 13px 14px),radial-gradient(circle at 28% 24%,#617b77,#10212e 75%);box-shadow:inset -9px -7px 16px #0009,0 0 20px #8ab6c022;}.il-globe i{position:absolute;left:12px;top:63px;width:64px;height:12px;border:3px solid #8e704a;border-radius:50%;}.il-globe::after{content:'';position:absolute;left:39px;top:54px;height:10px;width:5px;background:#ac8a51;}
.il-cat{position:absolute!important;right:0;bottom:10px;width:130px;height:83px;opacity:.83!important;transform-origin:50% 95%;animation:il-cat 9s ease-in-out infinite alternate;}.il-cat svg{filter:drop-shadow(0 3px 4px #0009);}.il-wandering{position:absolute!important;left:20%;top:30%;width:65px;height:44px;transform:rotate(-15deg);}.il-wandering span,.il-wandering b{position:absolute;inset:5px;background:#396c62;border:2px solid #d7b782;transform:skewY(-10deg);}.il-wandering i{position:absolute;inset:8px;background:repeating-linear-gradient(#e0cbae 0 2px,#a39374 3px 4px);}
.il-discovery{position:relative;margin:16px auto;max-width:740px;padding:24px 32px;border:1px solid #d9bf8955;border-radius:9px;background:#18212aed;text-align:center;box-shadow:0 10px 35px #0009;}.il-discovery p{font:20px/1.6 Georgia;color:#e8d7b7;}.il-discovery h2{font-size:25px;margin-bottom:14px;}.il-discovery button{margin-top:14px;}.il-discovery svg{width:100%;height:160px;}
.il-chamber{position:relative;min-height:360px;border-radius:40px 40px 6px 6px;margin:20px 0 40px;padding:30px;background:linear-gradient(180deg,#131e26ad,#201d25),url('/infinite-library-chamber.png') center/cover;box-shadow:inset 0 0 80px #000,0 14px 42px #0009;border:1px solid #a1815755;}.il-chamber h2{font-size:35px;margin-bottom:12px;}.il-chamber .il-special-shelf{margin-top:22px;background:#182029d9;}.il-reading-chair{position:absolute;right:10%;top:40px;width:94px;height:118px;border-radius:42px 42px 11px 11px;background:radial-gradient(ellipse at 50% 25%,#436d5b,#1c3732);box-shadow:inset 0 0 0 5px #25362d,inset 0 0 0 6px #d8b97844,6px 17px 12px #0008;transform:rotate(-9deg);}.il-reading-chair::after{content:'';position:absolute;left:-14px;right:-14px;top:75px;height:46px;border-radius:15px;background:linear-gradient(#426753,#223b31);box-shadow:0 15px 0 -10px #674a34;}
.il-desk{position:relative;max-width:1000px;margin:30px auto;padding:35px 45px;background:linear-gradient(135deg,#eadfc3,#c4b795);border:10px solid #5e4230;border-radius:14px;box-shadow:inset 0 0 0 1px #7b6747,0 20px 70px #000b;color:#2e2922;}.il-desk h2,.il-desk h3,.il-desk h4{color:#382e22;text-shadow:none;}.il-desk h2{font-size:34px;margin-bottom:10px;}.il-desk .il-kicker{color:#695025;}.il-desk p{font:14px Georgia;color:#574b39;margin-bottom:20px;}.il-desk .il-desk-head{display:flex;justify-content:space-between;align-items:start;gap:20px;}.il-desk fieldset{margin:24px 0;padding:15px 0;border:0;border-top:1px solid #806b4666;}.il-desk legend{font:22px Georgia;color:#443a2e;}.il-desk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 22px;}.il-desk label{display:flex;flex-direction:column;gap:7px;font-size:14px;}.il-desk .il-check{flex-direction:row;align-items:center;}.il-desk input,.il-desk select{background:#f9f0db;color:#3a3428;border-color:#847455;}.il-desk output{font:12px monospace;color:#66543a;}.il-desk button{background:#3c3830;color:#f4e9cf;}.il-desk .il-audio-preview{display:flex;gap:10px;flex-wrap:wrap;}.il-desk .il-save-status{color:#493c27;margin:15px 0;}
.il-return{position:fixed;bottom:110px;right:20px;z-index:70;padding:10px 16px;border:1px solid #bca06d;border-radius:8px;background:#17232de8;color:#f3e6c9;box-shadow:0 8px 24px #0006;font:14px Georgia;min-height:44px;}.il-return[hidden]{display:none;}
.il-status{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);max-width:80%;padding:10px 20px;background:#101922ed;color:#edd9ae;border:1px solid #b79b6055;border-radius:7px;pointer-events:none;z-index:20;font-size:13px;}.il-status:empty{display:none;}
.il-portal-curtain{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 55%,var(--portal-color,#cdb47c) 0,transparent 70%);pointer-events:none;opacity:0;z-index:10;}
.il-entrance{position:absolute;inset:0;z-index:30;overflow:hidden;background:radial-gradient(ellipse at 50% 80%,#3c454e,#070e1c 75%);display:grid;place-items:center;perspective:1400px;}.il-entrance>p{position:absolute;bottom:13%;text-align:center;font:18px Georgia;color:#d8c3a0;}.il-entrance>button{position:absolute;right:24px;bottom:24px;}.il-entrance-stars{position:absolute;inset:0;background:radial-gradient(circle,#ead8b6 0 1px,transparent 2px) 0 0/87px 53px;opacity:.65;}.il-entrance-mountains{position:absolute;inset:30% -10% 0;background:linear-gradient(135deg,#172633,#030812);clip-path:polygon(0 70%,14% 5%,25% 55%,39% 18%,49% 47%,64% 0,82% 50%,91% 17%,100% 67%,100% 100%,0 100%);}.il-building{position:relative;width:min(750px,80vw);height:64%;border:1px solid #b99b66;box-shadow:0 0 110px #bea56244;background:repeating-linear-gradient(90deg,#151d29 0 65px,#7b6c5233 66px 70px);border-radius:40% 40% 0 0/18% 18% 0 0;transform-style:preserve-3d;}.il-building>span{position:absolute;top:17%;left:0;right:0;text-align:center;font:clamp(13px,2vw,23px) Georgia;letter-spacing:.19em;color:#eed9a2;}.il-building>i,.il-building>b{position:absolute;top:31%;bottom:19%;width:16%;border-radius:48% 48% 0 0;border:4px solid #a48856;background:linear-gradient(45deg,#dfa96d,#597d91,#dbb070);box-shadow:0 0 50px #dfa96555;}.il-building>i{left:13%;}.il-building>b{right:13%;}.il-entrance-doors{position:absolute;left:34%;right:34%;top:37%;height:63%;display:flex;perspective:600px;}.il-entrance-doors>div{width:50%;height:100%;transform-origin:left;}.il-entrance-doors>div:last-child{transform-origin:right;}.il-entrance-doors svg{width:100%;height:100%;}
.il-library[data-active=no] *, .il-library[data-running=no] .il-scene *,.il-library[data-running=no] .il-cat{animation-play-state:paused!important;}
.il-library[data-cat=false] .il-cat{display:none;}.il-library[data-secrets=false] .il-secret{display:none;}.il-library[data-fireplace=false] .il-firelight{animation:none;opacity:.15;}.il-library[data-dust=false] .il-dust{display:none;}.il-library[data-particles=false] .il-ceiling-stars{display:none;}.il-library[data-book-intensity=still] .il-volume,.il-library[data-hover=false] .il-volume{transition:none;}.il-library[data-performance=quiet] .il-scene *{animation:none!important;}
@keyframes il-flame{0%,100%{transform:rotate(-3deg) scale(.97);opacity:.8;}35%{transform:rotate(4deg) scale(1.04);opacity:1;}70%{transform:rotate(-5deg) scale(1.01);opacity:.88;}}
@keyframes il-float{to{transform:translateY(-18px) rotate(2deg);}}@keyframes il-mote{0%,100%{opacity:0;transform:translate(0,18px);}25%,65%{opacity:.4;}85%{opacity:0;transform:translate(24px,-65px);}}
@keyframes il-light{to{opacity:.45;}}@keyframes il-cloud{to{transform:translateX(25%);}}@keyframes il-chandelier{to{transform:rotate(1.5deg);}}@keyframes il-rain{to{background-position:-23px 31px;}}@keyframes il-cat{to{transform:scaleY(1.015);}}
@media(max-width:700px){.il-scroll{padding:20px 16px 95px;}.il-header{gap:12px;flex-wrap:wrap;}.il-head-seal{width:42px;height:42px;flex-basis:42px;font-size:25px;}.il-title h1{font-size:34px;}.il-title>p:last-child{font-size:12px;}.il-header>button{margin-left:auto;padding:6px 12px;}.il-toolbar{margin:20px 0 26px;gap:8px;}.il-search{min-width:100%;}.il-toolbar button{font-size:13px;padding:8px 10px;}.il-toolbar .il-hint{width:100%;}.il-collection{padding:17px 12px 10px;border-inline-width:5px;}.il-collection-head{gap:10px;flex-wrap:wrap;margin-bottom:14px;}.il-collection-head h2{font-size:21px;}.il-collection-emblem{width:32px;height:32px;}.il-order{margin-left:auto;}.il-collection-head p{font-size:11px;}.il-books{gap:15px;padding:10px 4px 18px;min-height:191px;}.il-library .il-book{flex-basis:104px;width:104px;height:182px;}.il-book strong{font-size:13px;}.il-book-emblem{height:47px;width:53px;}.il-cover{padding:12px 6px;}.il-book small{font-size:7px;}.il-architecture{background-position:center top;filter:brightness(.56);}.il-distant-shelves{left:6%;width:88%;}.il-column{width:2%;}.il-window{width:25%;opacity:.32;}.il-window-left{left:0;}.il-window-right{right:0;}.il-chandelier{transform:scale(.65);top:-20px;}.il-chandelier-switch{top:47px;}.il-clock{right:8px;top:165px;transform:scale(.7);}.il-sigil{left:-2px;top:42%;}.il-window-switch{right:0;top:51%;}.il-whispers{right:0;top:73%;}.il-globe{left:-10px;bottom:15px;transform:scale(.65);}.il-cat{width:90px;height:58px;bottom:12px;}.il-lectern{padding:25px 15px;min-height:365px;}.il-lectern-head h2{font-size:25px;}.il-open-book{height:200px;}.il-book-actions button{font-size:13px;flex:1 1 40%;}.il-world-setting{font-size:12px;}.il-desk{border-width:5px;padding:25px 19px;}.il-desk h2{font-size:29px;}.il-desk-grid{grid-template-columns:1fr;gap:18px;}.il-special-shelf{padding:17px 14px;}.il-special-shelf h2{font-size:20px;}.il-chamber{padding:25px 15px;}.il-chamber h2{font-size:27px;max-width:70%;}.il-reading-chair{right:12px;transform:scale(.7) rotate(-9deg);}.il-discovery{padding:22px 18px;}.il-discovery p{font-size:17px;}.il-status{width:calc(100% - 30px);max-width:none;bottom:12px;font-size:12px;}.il-return{right:8px;bottom:105px;max-width:45%;font-size:12px;}}
@media(prefers-reduced-motion:reduce){.il-library *, .il-library *::before,.il-library *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}.il-scene{transform:none;}.il-volume{transform:none;}.il-page-portal{filter:none;}}
@media(max-width:700px){
 .il-props{inset:auto 8px 8px!important;height:58px;padding:5px;display:flex;gap:5px;align-items:center;overflow-x:auto;pointer-events:auto;background:#111b25ef;border:1px solid #b49b6766;border-radius:12px;scrollbar-width:thin;}
 .il-props button{position:relative!important;inset:auto!important;flex:0 0 44px!important;width:44px!important;height:44px!important;margin:0!important;transform:none!important;writing-mode:horizontal-tb!important;opacity:.9!important;}
 .il-props .il-globe span{width:30px;height:30px;left:7px;top:2px;}.il-props .il-globe i{width:35px;left:4px;top:33px;}.il-props .il-globe::after{height:4px;top:31px;left:20px;}
 .il-props .il-cat svg{width:54px;max-width:none;position:absolute;inset:2px -5px;}
 .il-scroll{padding-bottom:125px;}
}
@media print{.il-library,.il-return{display:none!important;}}


/* Source: equestria.css */
/* Equestria: an authored, layered storybook world; operational UI stays legible. */
@media screen {
 html[data-world='equestria-magic-friendship']{--eq-leaf:#5d965d;--eq-flower:#76c4ec;--eq-sun:#ffe6a1;--eq-night:#1e3444;--eq-world-motion:1;--lc-px:0px;--lc-py:0px;--lc-transition:.58s;--lc-card-opacity:94%;--world-font:'Nunito Sans',system-ui,sans-serif;}
 html[data-world='equestria-magic-friendship'][data-theme][data-mode] .workspace{position:relative;isolation:isolate;background:transparent!important;}
 html[data-world='equestria-magic-friendship'] .world-atmosphere{display:none!important;}
 html[data-world='equestria-magic-friendship'] .lc-environment{position:fixed;inset:0 0 0 var(--sidebar-width,240px);z-index:-1;overflow:hidden;pointer-events:none;contain:strict;background:linear-gradient(180deg,#93d7f0 0%,#d3e7db 50%,#719c64 100%);}
 html[data-world='equestria-magic-friendship'] .lc-scene{position:absolute;inset:-1%;transform:translate(var(--lc-px),var(--lc-py));}
 html[data-world='equestria-magic-friendship'] .eq-scene-art{position:absolute;inset:0;overflow:hidden;background:linear-gradient(#91d7f1,#e5f1cf 63%,#54845a);}
 .eq-panoramic-world{position:absolute;inset:0;background-image:linear-gradient(180deg,#66b9e42a,#e7f2ce25 56%,#214b293b),url('/equestria-kingdom.jpg?v=20261009-equestria-1');background-size:cover;background-position:center 55%;opacity:.76;transform:scale(1.025);animation:eq-world-breath 48s ease-in-out infinite alternate;}
 .eq-landscape-svg{position:absolute;inset:0;width:100%;height:100%;opacity:.84;filter:drop-shadow(0 13px 18px #193f3320);}
 .eq-sky-top{stop-color:#78c9ec}.eq-sky-bottom{stop-color:#e8f0cd}.eq-mountains{fill:#728ca0;opacity:.5}.eq-snowcaps{fill:#f7f6e8}.eq-hill-far,.eq-cloudbank{fill:#719a69;opacity:.79}.eq-hill-near{fill:#527b4e}.eq-night-hill,.eq-night-ground{fill:#344e68}.eq-sun-hill,.eq-sun-ground{fill:#a79b61}.eq-chaos-ground{fill:#866fa0}.eq-cloud{fill:#fff9ec;opacity:.76}.eq-tree{fill:#538456;stroke:#765b43;stroke-width:21;stroke-linecap:round;opacity:.78}.eq-stream{fill:none;stroke:#7bc4d6;stroke-width:17;opacity:.8}.eq-flowers{fill:#7ed0ee;filter:drop-shadow(0 0 8px #c1f5ff)}.eq-crystal-castle,.eq-golden-oak,.eq-cloud-city,.eq-cottage,.eq-woodland,.eq-cupcake-corner,.eq-carousel,.eq-barn,.eq-luna-castle,.eq-canterlot,.eq-chaos-islands,.eq-teacup,.eq-clubhouse,.eq-animal-houses{fill:#eee5d4;stroke:#876b67;stroke-width:5;stroke-linejoin:round;stroke-linecap:round}.eq-golden-oak,.eq-woodland,.eq-orchard{fill:#6e9856;stroke:#654e3e}.eq-barn,.eq-clubhouse{fill:#c77b5d;stroke:#704539}.eq-cloud-city{fill:#f2edff;stroke:#789ac8}.eq-cupcake-corner{fill:#f5cbd7;stroke:#aa718e}.eq-carousel{fill:#f5e4ee;stroke:#8067a0}.eq-luna-castle{fill:#a8afd9;stroke:#50598e}.eq-canterlot{fill:#fff0d1;stroke:#cfaa67}.eq-chaos-islands{fill:#8e7ca6;stroke:#66527d}.eq-teacup{fill:#e3bdc6}.eq-rainbow-falls{fill:none;stroke:#77d2ec;stroke-width:16;stroke-linecap:round;opacity:.7;filter:drop-shadow(0 0 7px #d9fbff)}.eq-gem-spire{fill:#99d9e4;stroke:#795ab0;stroke-width:8}.eq-moon-disc{fill:#dce5f6;filter:drop-shadow(0 0 35px #e7edff)}.eq-sun-disc{fill:#ffe49a;filter:drop-shadow(0 0 38px #fff0aa)}.eq-sanctuary-water{fill:none;stroke:#77d2df;stroke-width:25;opacity:.82}.eq-sanctuary-falls{fill:none;stroke:#bbebed;stroke-width:12;opacity:.85}.eq-crusader-trio .eq-landscape-pony{width:93px;height:70px;position:absolute;top:66%;}.eq-crusader-one{left:42%}.eq-crusader-two{left:47%}.eq-crusader-three{left:52%}
 .eq-season-overlay{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1s ease;overflow:hidden;}
 .eq-season-art{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;opacity:var(--eq-season-art-opacity,.88);transition:opacity .8s ease}.eq-season-art svg{display:block;width:100%;height:100%;overflow:visible}.eq-season-art .eq-decor{stroke-linecap:round;stroke-linejoin:round}.eq-season-art .eq-drift{transform-box:fill-box;transform-origin:center;animation:eq-season-drift 5s ease-in-out infinite alternate}.eq-season-art .eq-twinkle{transform-box:fill-box;transform-origin:center;animation:eq-season-twinkle 2.4s ease-in-out infinite alternate}.eq-season-art .eq-ribbon{animation:eq-season-ribbon 7s ease-in-out infinite alternate}
 .eq-roaming-companions{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none!important;user-select:none}.eq-roaming-companions[hidden]{display:none}.eq-roaming-pet{position:absolute;left:calc(4% + (var(--eq-roam-index)*28%));bottom:calc(12% + (var(--eq-roam-index)*8%));display:block;width:clamp(38px,5.3vw,70px);height:clamp(38px,5.3vw,70px);opacity:.91;filter:drop-shadow(0 4px 8px #173c3344);pointer-events:none!important;animation:eq-pet-roam calc(13s + var(--eq-roam-index)*3s) ease-in-out infinite alternate;animation-delay:calc(var(--eq-roam-index)*-2.7s)}.eq-roaming-pet svg{width:100%;height:100%;overflow:visible}.eq-roaming-pet[data-size='small']{width:clamp(31px,4vw,52px);height:clamp(31px,4vw,52px)}.eq-roaming-pet[data-size='large']{width:clamp(48px,6.3vw,82px);height:clamp(48px,6.3vw,82px)}.eq-roaming-pet:nth-child(2){left:auto;right:5%;bottom:16%}.eq-roaming-pet:nth-child(3){left:55%;bottom:27%}
 .lc-environment[data-eq-season='spring'] .eq-season-overlay{opacity:.34;background:radial-gradient(ellipse at 15% 68%,#f6b9ca55,transparent 28%),radial-gradient(ellipse at 83% 48%,#fff6a54d,transparent 30%);}
 .lc-environment[data-eq-season='summer'] .eq-season-overlay{opacity:.26;background:linear-gradient(145deg,#fff5ac55,transparent 42%),radial-gradient(ellipse at 80% 17%,#fff0b677,transparent 34%);}
 .lc-environment[data-eq-season='autumn'] .eq-season-overlay{opacity:.42;background:linear-gradient(180deg,#b9683760,transparent 72%),radial-gradient(ellipse at 35% 67%,#d7984144,transparent 42%);}
 .lc-environment[data-eq-season='winter'] .eq-season-overlay,.lc-environment[data-eq-season='hearths-warming'] .eq-season-overlay{opacity:.48;background:radial-gradient(ellipse at 55% 90%,#f7fdff99,transparent 46%),radial-gradient(ellipse at 25% 53%,#e8f4ff55,transparent 42%);}
 .lc-environment[data-eq-season='nightmare-night'] .eq-scene-art{filter:saturate(.78) hue-rotate(15deg) brightness(.72)}.lc-environment[data-eq-season='nightmare-night'] .eq-season-overlay{opacity:.68;background:radial-gradient(ellipse at 68% 14%,#b493fd77,transparent 35%),linear-gradient(180deg,#281b4d51,#30192c55)}
 .lc-environment[data-eq-season='grand-galloping-gala'] .eq-season-overlay{opacity:.48;background:radial-gradient(ellipse at 50% 8%,#fff2c999,transparent 48%),linear-gradient(145deg,#d6b5682a,transparent 60%)}
 .lc-environment[data-eq-season='winter-wrap-up'] .eq-season-overlay{opacity:.32;background:linear-gradient(180deg,#ecf6f5aa 0%,#d9e9da55 48%,#d6e5cf00 83%);animation:eq-wrap-up 18s ease-in-out infinite alternate}
 .lc-environment[data-eq-season='summer-sun-celebration'] .eq-season-overlay{opacity:.62;background:radial-gradient(ellipse at 78% 37%,#fff2a8aa,transparent 33%),linear-gradient(0deg,transparent,#ffdc7d55);animation:eq-sunrise 28s ease-in-out infinite alternate}
 .lc-environment[data-eq-season='friendship-festival'] .eq-season-overlay{opacity:.43;background:radial-gradient(ellipse at 50% 61%,#f9c5d555,transparent 48%),linear-gradient(90deg,#83d5dd24,#e8c1ed32,#ffd77835)}
 .lc-environment[data-eq-season='autumn'] .eq-ambient-pollen{background-image:radial-gradient(ellipse 5px 10px at 12% 19%,#d9823d 98%,transparent),radial-gradient(ellipse 6px 11px at 35% 10%,#bb6644 98%,transparent),radial-gradient(ellipse 4px 9px at 72% 24%,#e5b34c 98%,transparent),radial-gradient(ellipse 6px 10px at 89% 8%,#cf7048 98%,transparent);animation:eq-leaf-fall 18s linear infinite;}
 .lc-environment[data-eq-season='winter'] .eq-ambient-pollen,.lc-environment[data-eq-season='hearths-warming'] .eq-ambient-pollen{background-image:radial-gradient(circle,#fff 0 2px,transparent 3px),radial-gradient(circle,#eaf7ff 0 1.5px,transparent 2.5px);background-size:71px 91px,103px 127px;animation:eq-snow-drift 15s linear infinite;opacity:.72}
 .lc-environment[data-eq-season='spring'] .eq-ambient-pollen,.lc-environment[data-eq-season='friendship-festival'] .eq-ambient-pollen{background-image:radial-gradient(circle,#fff0a6 0 2px,transparent 3px),radial-gradient(circle,#96def2 0 2px,transparent 3px),radial-gradient(circle,#f4b9d7 0 2px,transparent 3px);background-size:113px 137px,179px 193px,227px 163px;animation:eq-fairy-drift 24s linear infinite;opacity:.62}
 .eq-ambient-pollen{position:absolute;inset:-8%;pointer-events:none;opacity:.12;animation:eq-pollen-drift 24s ease-in-out infinite alternate;}
 html[data-world='equestria-magic-friendship'][data-theme][data-mode] .lc-card{position:relative;isolation:isolate}html[data-world='equestria-magic-friendship'][data-theme][data-mode] .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished):not(.card-dragging){background:linear-gradient(135deg,color-mix(in srgb,var(--world-elevated) 70%,transparent),color-mix(in srgb,var(--world-surface) 97%,transparent))!important;box-shadow:0 14px 34px -24px #27412b66,inset 0 1px #fff8!important;border:1px solid color-mix(in srgb,var(--world-border) 60%,transparent)!important;border-radius:22px 8px 22px 8px!important}
 .eq-companion-layer{order:10;flex:1 0 100%;display:flex;align-items:center;justify-content:center;gap:clamp(7px,1.4vw,18px);width:100%;max-width:100%;min-height:58px;max-height:78px;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;padding:2px 4px;pointer-events:auto;}
 .eq-world-controls>.eq-companion-layer{margin:8px 0 15px;padding:6px 2px;border-block:1px solid color-mix(in srgb,var(--world-border) 50%,transparent);}
 .eq-pet,.eq-character{position:relative;display:flex;flex:0 0 auto;align-items:center;gap:5px;min-width:48px;max-width:92px;min-height:48px;padding:3px 7px;border:1px solid color-mix(in srgb,var(--world-accent-secondary) 48%,var(--world-border));border-radius:19px 8px 18px 8px;color:var(--world-text);background:color-mix(in srgb,var(--world-surface) 84%,transparent);cursor:pointer;pointer-events:auto;transition:transform .25s ease,box-shadow .25s ease;}
 .eq-pet:hover,.eq-character:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 4px 14px color-mix(in srgb,var(--world-accent) 24%,transparent)}.eq-pet-art,.eq-character-art{display:block;width:43px;height:43px;flex:0 0 auto;overflow:visible}.eq-pet-art svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 3px 3px #33402a38)}.eq-pet-name{font:600 10px/1.1 'Nunito Sans',system-ui,sans-serif;white-space:nowrap}.eq-character{border-color:color-mix(in srgb,var(--world-accent) 54%,var(--world-border))}.eq-character-art{width:53px;height:43px}.eq-pet[data-reaction='eq-happy'],.eq-pet[data-reaction='eq-playful'],.eq-character[data-reaction='eq-happy']{animation:eq-companion-hop .72s cubic-bezier(.2,.8,.2,1)}.eq-pet[data-reaction='eq-curious']{animation:eq-companion-tilt .7s ease-in-out}.eq-pet[data-reaction='eq-proud']{animation:eq-companion-proud .8s ease-out}.eq-delighted{filter:drop-shadow(0 0 9px #ffd66e)!important}
 .eq-world-controls{margin:22px 0;padding:18px;border:1px solid var(--world-border);border-radius:22px 8px 22px 8px;background:color-mix(in srgb,var(--world-surface) 95%,transparent);color:var(--world-text)}.eq-world-controls h3{margin:0 0 14px;font:600 18px 'Nunito Sans',system-ui}.eq-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.eq-control-grid label{display:grid;gap:6px;color:var(--world-secondary);font-size:12px}.eq-control-grid select{max-width:100%;min-height:38px;color:var(--world-text);background:var(--world-surface);border:1px solid var(--world-border);border-radius:10px;padding:6px}.eq-control-grid .eq-toggle{display:flex;align-items:center;gap:8px;min-height:34px}.eq-toggle input,.eq-pet-roster input{accent-color:var(--world-accent)}.eq-pet-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.eq-pet-roster label{font-size:12px;color:var(--world-text)}.eq-interaction-status{min-height:1.3em;color:var(--world-secondary);font-size:12px}
 html[data-world='equestria-magic-friendship'] .eq-library-panorama{height:130px;position:relative;overflow:hidden;border-radius:20px 7px 20px 7px;background:#254c3d}.eq-library-panorama img{width:100%;height:100%;object-fit:cover;object-position:center 55%;opacity:.86}.eq-panorama-title{position:absolute;inset:auto 0 0;padding:34px 18px 11px;display:grid;gap:3px;color:#fff;background:linear-gradient(transparent,#192d26bb)}.eq-panorama-title span{font:10px system-ui;letter-spacing:.23em}.eq-panorama-title strong{font:20px 'Sentient',Georgia,serif;font-weight:400}.eq-map-glow{position:absolute;inset:8px;border:1px solid #fff7;border-radius:inherit;pointer-events:none}
 .eq-transition-veil{position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,var(--eq-transition-color),transparent 69%);filter:blur(8px);pointer-events:none}.eq-cinema-ribbon{position:absolute;inset:13% 25%;border:3px solid #ffe694;border-radius:50%;filter:drop-shadow(0 0 25px #fff4aa);pointer-events:none}
 @keyframes eq-world-breath{to{transform:scale(1.075) translateY(-.7%);filter:saturate(1.1)}}@keyframes eq-pollen-drift{to{transform:translate3d(2%, -2%, 0)}}@keyframes eq-leaf-fall{0%{transform:translate3d(-2%,-8%,0) rotate(0)}50%{transform:translate3d(1%,4%,0) rotate(28deg)}100%{transform:translate3d(-1%,15%,0) rotate(-24deg)}}@keyframes eq-snow-drift{to{background-position:80px 180px,-60px 210px}}@keyframes eq-fairy-drift{to{background-position:130px -110px,-90px 190px,200px -100px}}@keyframes eq-wrap-up{to{filter:saturate(1.2) brightness(1.08);opacity:.18}}@keyframes eq-sunrise{to{background-position:30px -30px,0 70px;filter:brightness(1.17)}}@keyframes eq-companion-hop{40%{transform:translateY(-9px) rotate(-3deg)}72%{transform:translateY(2px) rotate(2deg)}}@keyframes eq-companion-tilt{40%{transform:rotate(-8deg)}70%{transform:rotate(6deg)}}@keyframes eq-companion-proud{45%{transform:scale(1.12)}75%{transform:scale(.97)}}@keyframes eq-pet-roam{0%{transform:translate3d(0,0,0) rotate(-4deg)}25%{transform:translate3d(14px,-14px,0) rotate(4deg)}55%{transform:translate3d(25px,-4px,0) rotate(0)}78%{transform:translate3d(9px,-21px,0) rotate(-3deg)}100%{transform:translate3d(-7px,-5px,0) rotate(4deg)}}
 @keyframes eq-season-drift{to{transform:translateY(9px) rotate(3deg)}}@keyframes eq-season-twinkle{to{opacity:.42;filter:drop-shadow(0 0 6px currentColor)}}@keyframes eq-season-ribbon{to{transform:translateX(22px);opacity:.45}}
 html[data-world='equestria-magic-friendship'][data-family-motion='off'] .eq-scene-art *,html[data-world='equestria-magic-friendship'][data-family-reduced='yes'] .eq-scene-art *,html[data-world='equestria-magic-friendship'] .lc-environment[data-running='no'] .eq-scene-art *{animation-play-state:paused!important}
 html[data-world='equestria-magic-friendship'][data-family-environment='off'] .eq-season-overlay,html[data-world='equestria-magic-friendship'][data-family-environment='off'] .eq-ambient-pollen{display:none}
 html[data-world='equestria-magic-friendship'][data-equestria-season='off'] .eq-season-overlay{display:none}
 html[data-world='equestria-magic-friendship'][data-equestria-realm='pet-sanctuary'] .eq-companion-layer .eq-pet{display:flex}
 html[data-world='equestria-magic-friendship'] .eq-companion-layer .eq-pet[data-home]:not([data-home='twilight']){ } 
 html[data-world='equestria-magic-friendship'][data-family-performance='eco'] .eq-panoramic-world{animation:none;transform:none}
 @media(max-width:700px){html[data-world='equestria-magic-friendship'] .lc-environment{inset:0}.eq-panoramic-world{background-position:center center}.eq-landscape-svg{opacity:.52}.eq-companion-layer{justify-content:flex-start;max-height:65px;min-height:54px}.eq-pet,.eq-character{min-height:44px;padding:2px 5px}.eq-pet-art{width:37px;height:37px}.eq-pet-name{font-size:9px}.eq-world-controls{padding:13px}.eq-pet-roster{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-world='equestria-magic-friendship'][data-theme][data-mode] dialog.lc-library{max-height:calc(100dvh - 16px);width:calc(100vw - 16px);padding:16px;overflow:auto}.eq-library-panorama{height:94px!important}}

/* Quality gate: never show procedural character placeholders or unreviewed
   character art baked into the old wide panorama. Their interactions remain
   available as clearly named text controls until approved artwork exists. */
html[data-world='equestria-magic-friendship'] .eq-panoramic-world,
html[data-world='equestria-magic-friendship'] .eq-scene-pony,
html[data-world='equestria-magic-friendship'] .eq-library-panorama img,
html[data-world='equestria-magic-friendship'] .eq-pet-art,
html[data-world='equestria-magic-friendship'] .eq-character-art,
html[data-world='equestria-magic-friendship'] .eq-roaming-pet{display:none!important}
html[data-world='equestria-magic-friendship'] .eq-library-panorama{background:linear-gradient(120deg,#254c3d,#42684f 48%,#263f52)}
html[data-world='equestria-magic-friendship'] .eq-companion-layer{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;max-height:none;overflow:visible}
html[data-world='equestria-magic-friendship'] .eq-pet,
html[data-world='equestria-magic-friendship'] .eq-character{width:auto;max-width:100%;min-height:40px;padding:8px 12px;font-size:13px;line-height:1.25;white-space:normal;text-align:left}
html[data-world='equestria-magic-friendship'] .eq-pet-name{font-size:12px;line-height:1.25}
html[data-world='equestria-magic-friendship'] .eq-art-status{margin:0 0 12px;padding:12px 14px;border-inline-start:3px solid var(--world-accent);border-radius:0 10px 10px 0;background:color-mix(in srgb,var(--world-accent) 10%,var(--world-surface));color:var(--world-text);font-size:13px;line-height:1.5}

html[data-world='equestria-magic-friendship'][data-theme][data-mode] dialog.lc-library{width:min(1160px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:clamp(14px,2.4vw,30px);overflow:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at 12% 0,#e9cb7d26,transparent 38%),linear-gradient(145deg,#f6f0df,#e7e7cf 58%,#d8e4d6)!important;color:#263b35!important;border:1px solid #bda66b!important;border-radius:26px 26px 12px 12px!important;box-shadow:0 28px 90px #07150f66,inset 0 0 0 5px #fff5,inset 0 0 0 6px #8e805233!important}
html[data-world='equestria-magic-friendship'] .lc-library-head{position:sticky;top:calc(-1 * clamp(14px,2.4vw,30px));z-index:12;align-items:center;padding:8px 0 12px;background:linear-gradient(#f5efdf 82%,#f5efdf00);backdrop-filter:blur(10px)}
html[data-world='equestria-magic-friendship'] .lc-library-head h2{color:#2d473c;font:600 clamp(25px,3vw,36px)/1.12 'Sentient',Georgia,serif;letter-spacing:.01em}
html[data-world='equestria-magic-friendship'] .lc-library-head p:not(.lc-eyebrow){color:#516b5a;font-size:14px}
html[data-world='equestria-magic-friendship'] .lc-library-head [data-lc-close]{position:sticky;top:0;flex:0 0 auto;min-width:44px;min-height:44px;background:#fff9e9;color:#263b35;border:1px solid #8f9f7a}
html[data-world='equestria-magic-friendship'] .eq-atlas-overview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(190px,.8fr);gap:20px;align-items:center;margin:4px 0 18px;padding:18px 22px;border:1px solid #a9b08e;border-radius:20px 7px 20px 7px;background:linear-gradient(112deg,#fff8e4ed,#e4eddbed);box-shadow:0 12px 28px #304c3620,inset 0 1px #fff}
html[data-world='equestria-magic-friendship'] .eq-atlas-kicker{margin:0 0 5px;color:#6e7d51;font-size:10px;font-weight:800;letter-spacing:.22em}
html[data-world='equestria-magic-friendship'] .eq-atlas-overview h3{margin:0;color:#294735;font:600 clamp(21px,2.5vw,30px)/1.2 'Sentient',Georgia,serif}
html[data-world='equestria-magic-friendship'] .eq-atlas-overview p:last-child{margin:6px 0 0;color:#526b59;font-size:13px;line-height:1.45}
html[data-world='equestria-magic-friendship'] .eq-atlas-route{min-width:0;color:#586f55;text-align:center;font-size:10px;letter-spacing:.04em}
html[data-world='equestria-magic-friendship'] .eq-atlas-route svg{display:block;width:min(100%,260px);height:72px;margin:auto;overflow:visible}
html[data-world='equestria-magic-friendship'] .eq-atlas-route path{fill:none;stroke:#c4913f;stroke-width:3;stroke-linecap:round;stroke-dasharray:2 8}
html[data-world='equestria-magic-friendship'] .eq-atlas-route circle{fill:#f6df9c;stroke:#54704e;stroke-width:2}
html[data-world='equestria-magic-friendship'] .eq-destination-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch;padding:2px 1px 18px}
html[data-world='equestria-magic-friendship'] .eq-destination{position:relative;display:grid;grid-template-rows:112px 1fr;min-width:0;min-height:258px;padding:0;overflow:hidden;text-align:left;color:#283c33;background:linear-gradient(155deg,#fff9e7,#e9e5d1);border:1px solid color-mix(in srgb,var(--eq-destination-accent) 62%,#8e9a76);border-radius:18px 7px 18px 7px;box-shadow:0 8px 18px #243d3220,inset 0 1px #fff;cursor:pointer;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}
html[data-world='equestria-magic-friendship'] .eq-destination:hover{transform:translateY(-4px);box-shadow:0 17px 30px #243d3238,inset 0 1px #fff}
html[data-world='equestria-magic-friendship'] .eq-destination:focus-visible{outline:3px solid #196c68;outline-offset:3px}
html[data-world='equestria-magic-friendship'] .eq-destination[aria-pressed='true']{border:2px solid var(--eq-destination-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--eq-destination-accent) 18%,transparent),0 16px 28px #243d3233}
html[data-world='equestria-magic-friendship'] .eq-destination-preview{position:relative;display:block;min-width:0;overflow:hidden;background:linear-gradient(155deg,color-mix(in srgb,var(--eq-destination-accent) 34%,#f3efd9),#c7d3b2 72%,#72885c)}
html[data-world='equestria-magic-friendship'] .eq-destination-preview::after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#1b33222b);pointer-events:none}
html[data-world='equestria-magic-friendship'] .eq-destination-preview .eq-scene-art{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
html[data-world='equestria-magic-friendship'] .eq-destination-preview .eq-landscape-svg{opacity:1;filter:none}
html[data-world='equestria-magic-friendship'] .eq-destination-preview .eq-ambient-pollen,html[data-world='equestria-magic-friendship'] .eq-destination-preview .eq-forest-mist,html[data-world='equestria-magic-friendship'] .eq-destination-preview .eq-season-art,html[data-world='equestria-magic-friendship'] .eq-destination-preview .eq-season-overlay{display:none}
html[data-world='equestria-magic-friendship'] .eq-destination-copy{display:grid;align-content:start;gap:4px;min-width:0;padding:12px 13px 14px}
html[data-world='equestria-magic-friendship'] .eq-destination-chapter{color:#71805e;font-size:9px;font-weight:800;line-height:1.25;letter-spacing:.11em;text-transform:uppercase}
html[data-world='equestria-magic-friendship'] .eq-destination-copy strong{color:#294735;font:600 17px/1.15 'Sentient',Georgia,serif;overflow-wrap:anywhere}
html[data-world='equestria-magic-friendship'] .eq-destination-title{color:#795932;font-size:12px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
html[data-world='equestria-magic-friendship'] .eq-destination-copy small{margin-top:3px;color:#526b59;font-size:11px;line-height:1.35;overflow-wrap:anywhere}
html[data-world='equestria-magic-friendship'] .eq-destination-mark{position:absolute;top:82px;right:10px;width:34px;height:34px;display:grid;place-items:center;border:1px solid #fff9;border-radius:50%;background:#fff9;color:var(--eq-destination-accent);box-shadow:0 4px 10px #1c2a2330}
html[data-world='equestria-magic-friendship'] .eq-destination-mark svg{width:23px;height:23px}
html[data-world='equestria-magic-friendship'] .eq-atlas~.lc-library-caption{margin:0;padding:12px 14px;border-top:1px solid #b6b899;color:#263b2d!important;opacity:1}
html[data-world='equestria-magic-friendship'] .eq-atlas~.lc-library-caption *{color:#263b2d!important;opacity:1}
html[data-world='equestria-magic-friendship'] dialog.lc-library .lc-atelier :is(summary,label,legend,h3,h4,output){color:#263b35!important}
html[data-world='equestria-magic-friendship'] dialog.lc-library .lc-atelier :is(p,small){color:#49604f!important}
html[data-world='equestria-magic-friendship'][data-mode='dark'] dialog.lc-library{background:#15251f!important;color:#f1ebd5!important;border-color:#b49b5b!important}
html[data-world='equestria-magic-friendship'][data-mode='dark'] dialog.lc-library :is(.lc-library-head,.lc-library-head h2,.lc-library-head p,.lc-library-caption,.lc-library-caption *,button,.eq-atlas,.eq-atlas *){color:#f1ebd5!important}
html[data-world='equestria-magic-friendship'][data-mode='dark'] .lc-library-head{background:linear-gradient(180deg,#15251f 82%,#15251f00)!important;color:#f1ebd5!important}
html[data-world='equestria-magic-friendship'][data-mode='dark'] .lc-library-head h2,html[data-world='equestria-magic-friendship'][data-mode='dark'] .lc-library-head p{color:#f1ebd5!important}
html[data-world='equestria-magic-friendship'][data-mode='dark'] .eq-atlas-overview{background:linear-gradient(112deg,#263b31ed,#1d322aed);border-color:#718164;box-shadow:0 12px 28px #0006,inset 0 1px #ffffff24}
html[data-world='equestria-magic-friendship'][data-mode='dark'] .eq-atlas-kicker,html[data-world='equestria-magic-friendship'][data-mode='dark'] .eq-atlas-route,html[data-world='equestria-magic-friendship'][data-mode='dark'] .eq-atlas-overview p:last-child{color:#c2d2a8}
html[data-world='equestria-magic-friendship'][data-mode='dark'] .eq-atlas-overview h3{color:#f5e6b7}
html[data-world='equestria-magic-friendship'][data-mode='dark'] .eq-destination{background:linear-gradient(150deg,#26392e,#1d2c25 75%);box-shadow:0 10px 24px #0005,inset 0 1px #ffffff20}
html[data-world='equestria-magic-friendship'][data-mode='dark'] .eq-destination-copy strong{color:#f5edda}
html[data-world='equestria-magic-friendship'][data-mode='dark'] .eq-destination-title{color:#f0c776}
html[data-world='equestria-magic-friendship'][data-mode='dark'] .eq-destination-copy small{color:#c4d0b7}
html[data-world='equestria-magic-friendship'][data-mode='dark'] .eq-atlas~.lc-library-caption,html[data-world='equestria-magic-friendship'][data-mode='dark'] .eq-atlas~.lc-library-caption *{background:#172820;color:#e8efdb!important;border-color:#52644d}
html[data-world='equestria-magic-friendship'][data-mode='dark'] dialog.lc-library .lc-atelier :is(summary,label,legend,h3,h4,output){color:#f1ebd5!important}
html[data-world='equestria-magic-friendship'][data-mode='dark'] dialog.lc-library .lc-atelier :is(p,small){color:#c2d2b3!important}
@media(max-width:940px){html[data-world='equestria-magic-friendship'] .eq-destination-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){html[data-world='equestria-magic-friendship'][data-theme][data-mode] dialog.lc-library{width:calc(100vw - 14px);max-height:calc(100dvh - 14px);padding:12px;border-radius:22px 22px 12px 12px!important}html[data-world='equestria-magic-friendship'] .lc-library-head{top:-12px;padding:6px 0 10px}html[data-world='equestria-magic-friendship'] .eq-atlas-overview{grid-template-columns:minmax(0,1fr);gap:7px;margin:2px 0 12px;padding:13px 15px}html[data-world='equestria-magic-friendship'] .eq-atlas-route{display:grid;grid-template-columns:1fr auto;align-items:center;text-align:right}html[data-world='equestria-magic-friendship'] .eq-atlas-route svg{width:100%;height:42px}html[data-world='equestria-magic-friendship'] .eq-destination-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}html[data-world='equestria-magic-friendship'] .eq-destination{grid-template-rows:94px 1fr;min-height:228px;border-radius:15px 6px 15px 6px}html[data-world='equestria-magic-friendship'] .eq-destination-copy{padding:10px 10px 12px}html[data-world='equestria-magic-friendship'] .eq-destination-copy strong{font-size:16px}html[data-world='equestria-magic-friendship'] .eq-destination-title{font-size:11px}html[data-world='equestria-magic-friendship'] .eq-destination-copy small{font-size:10px}html[data-world='equestria-magic-friendship'] .eq-destination-mark{top:68px;right:8px;width:30px;height:30px}}
@media(max-width:360px){html[data-world='equestria-magic-friendship'] .eq-destination-grid{grid-template-columns:minmax(0,1fr)}html[data-world='equestria-magic-friendship'] .eq-destination{grid-template-columns:110px minmax(0,1fr);grid-template-rows:minmax(150px,1fr);min-height:150px}html[data-world='equestria-magic-friendship'] .eq-destination-copy{align-content:center}}
@media(prefers-reduced-motion:reduce){html[data-world='equestria-magic-friendship'] .eq-destination{transition:none}html[data-world='equestria-magic-friendship'] .eq-destination:hover{transform:none}}
 @media(prefers-reduced-motion:reduce){html[data-world='equestria-magic-friendship'] *,html[data-world='equestria-magic-friendship'] *::before,html[data-world='equestria-magic-friendship'] *::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
}


/* Source: operations-sheet.css */
/* Scoped operational spreadsheet surfaces; inherited theme tokens remain authoritative. */
.operations-sheet-host{min-width:0;max-width:100%}
.sheet-toolbar{display:grid;gap:.6rem;padding:.8rem 0;color:var(--text);font-size:.875rem}
.sheet-toolbar-main,.sheet-toolbar-actions,.sheet-toolbar-note{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}
.sheet-toolbar-main select,.sheet-toolbar-main input{min-height:40px;min-width:0;max-width:100%;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.5rem .7rem;font:inherit}
.sheet-search{flex:1 1 220px}.sheet-search input{width:100%}
.sheet-toolbar .button{white-space:normal;min-height:40px}.sheet-toolbar-note{justify-content:space-between;color:var(--muted,var(--text));font-size:.78rem}
.sheet-toolbar-note details{max-width:40rem}.sheet-toolbar-note summary{cursor:pointer}.sheet-toolbar-note p{line-height:1.6}
.operations-sheet-scroll{position:relative;max-width:100%;overflow:auto!important;max-height:72vh;scrollbar-width:auto;scrollbar-color:var(--accent) var(--panel);overscroll-behavior:contain;isolation:isolate;border:1px solid var(--border);border-radius:12px}
.operations-sheet-scroll::-webkit-scrollbar{width:12px;height:12px}.operations-sheet-scroll::-webkit-scrollbar-thumb{background:var(--accent);border:3px solid var(--panel);border-radius:9px}.operations-sheet-scroll::-webkit-scrollbar-track{background:var(--panel)}
.operations-sheet{table-layout:fixed!important;border-collapse:separate!important;border-spacing:0!important;min-width:0!important;font-size:var(--sheet-font,14px)!important;color:var(--text)}
.operations-sheet th,.operations-sheet td{box-sizing:border-box!important;border:0!important;border-right:1px solid var(--border)!important;border-bottom:1px solid var(--border)!important;padding:.65rem!important;position:relative;vertical-align:top;background:var(--panel);color:var(--text);height:var(--sheet-row,56px);white-space:normal!important;overflow-wrap:anywhere}
.operations-sheet thead th{position:sticky!important;top:0!important;z-index:5!important;padding:.8rem 2.6rem .75rem .7rem!important;text-align:left;background:var(--panel);height:auto!important;vertical-align:top}
.operations-sheet tbody th{position:relative!important;left:auto!important;z-index:auto!important}
.operations-sheet .sheet-frozen{position:sticky!important;left:var(--sheet-left)!important;z-index:3!important;box-shadow:2px 0 0 var(--border)}
.operations-sheet thead .sheet-frozen{z-index:7!important}
.operations-sheet th strong,.operations-sheet th span,.operations-sheet th small{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;max-width:100%}
.operations-sheet th :is(.dc-column-action,.mm-column-action){width:100%;height:auto;min-height:56px;padding:0;text-align:left;background:transparent;box-shadow:none;border:0;color:inherit}
.operations-sheet th select[data-room-column-select]{max-width:100%;margin-top:.5rem;font-size:.78rem}
.operations-sheet :is(.dc-cell,.mm-cell){width:100%;min-height:44px;max-width:100%;height:auto;font-size:inherit;white-space:normal!important;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.operations-sheet [hidden]{display:none!important}
.operations-sheet[data-density=compact] :is(th,td){padding:.35rem .5rem!important}.operations-sheet[data-density=spacious] :is(th,td){padding:1rem!important}
.operations-sheet[data-wrap=false] tbody :is(td,th){white-space:nowrap!important;overflow:auto;overflow-wrap:normal}
.operations-sheet .sheet-selected{outline:2px solid var(--accent)!important;outline-offset:-3px;background:color-mix(in srgb,var(--accent) 13%,var(--panel))!important}
.operations-sheet .sheet-match{box-shadow:inset 0 -4px 0 var(--accent)}
.operations-sheet :focus-visible{outline:3px solid var(--accent);outline-offset:1px}
.sheet-column-menu{position:absolute;right:8px;top:8px;border:1px solid var(--border);border-radius:6px;width:28px;height:30px;background:var(--panel);color:var(--text);font-size:20px;cursor:pointer}
.sheet-resize{position:absolute;right:-1px;top:0;bottom:0;width:8px;cursor:col-resize;touch-action:none;z-index:9}.sheet-resize:hover,.sheet-resize:focus{background:var(--accent)}
.sheet-menu{display:flex;gap:.6rem;flex-wrap:wrap}.sheet-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.sheet-column-list{display:grid;gap:.5rem;max-height:40vh;overflow:auto}.sheet-column-list label{display:flex;gap:.5rem;align-items:center}.sheet-column-list input[type=number]{width:90px;margin-left:auto}.sheet-filter-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:.4rem;margin:.6rem 0}.sheet-filter-row>*{min-width:0}
@media(max-width:600px){.sheet-toolbar-main,.sheet-toolbar-actions{gap:.4rem}.sheet-toolbar .button{min-height:44px}.sheet-toolbar-main select{flex:1}.sheet-search{flex-basis:100%}.sheet-filter-row{grid-template-columns:1fr 1fr}.operations-sheet-scroll{max-height:65vh}.sheet-form-grid{grid-template-columns:1fr}.operations-sheet thead th{padding-right:2.5rem!important}}
@media(prefers-reduced-motion:reduce){.operations-sheet-host *{scroll-behavior:auto!important;transition:none!important}}
@media print{body[data-sheet-printing] *{visibility:hidden!important}body[data-sheet-printing] [data-sheet-print],body[data-sheet-printing] [data-sheet-print] *{visibility:visible!important}body[data-sheet-printing] [data-sheet-print]{position:absolute;left:0;top:0;width:100%}body[data-sheet-printing] [data-sheet-print] :is(.sheet-toolbar,header,.dc-filters,.mm-filters,.ri-filters,[data-room-mobile]){display:none!important}.operations-sheet-scroll{max-height:none!important;overflow:visible!important;border:0}.operations-sheet{width:100%!important;font-size:9pt!important}.operations-sheet th,.operations-sheet td{position:static!important;width:auto!important;min-width:0!important;max-width:none!important;box-shadow:none!important;break-inside:avoid}.operations-sheet thead{display:table-header-group}.sheet-column-menu,.sheet-resize{display:none!important}}
/* Preserve Linen's purpose-built mobile item cards and quick-entry forms. */
#linen-view .linen-workspace-table.operations-sheet .sheet-frozen{background:var(--panel)!important}
.operations-sheet-scroll{scroll-padding-inline-start:190px}
.operations-sheet :is(button,input){scroll-margin-inline:12px}
@media(max-width:900px){
 #linen-view .linen-workspace-table.operations-sheet{width:100%!important}
 #linen-view .linen-workspace-table.operations-sheet :is(th,td){position:relative!important;left:auto!important;width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;box-shadow:none!important}
 #linen-view .operations-sheet-scroll{max-height:none;overflow:visible!important;scroll-padding:0}
 #linen-view .linen-workspace-table.operations-sheet .sheet-frozen{background:transparent!important}
}
/* View groups never replace an operational cell or trigger its action. */
.sheet-groups{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .75rem;padding:.6rem;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.sheet-groups .button{min-height:40px;max-width:100%;overflow-wrap:anywhere}.sheet-groups [aria-expanded=false]{border-color:var(--accent)}
.operations-sheet [data-sheet-group-row] th{padding:.3rem .5rem!important;height:auto;white-space:normal!important;background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.sheet-group-toggle{position:sticky;left:.5rem;display:inline-flex;align-items:center;gap:.7rem;max-width:min(600px,70vw);min-height:40px;text-align:left;white-space:normal;overflow-wrap:anywhere;border:0;background:transparent;color:var(--text);font:inherit;font-weight:700;cursor:pointer}.sheet-group-toggle small{font-weight:400;white-space:nowrap}
#operations-sheet-groups{width:800px;max-width:calc(100vw - 24px)}#operations-sheet-groups form{display:grid;gap:14px}#operations-sheet-groups fieldset{min-width:0;border:1px solid var(--border);border-radius:10px;padding:12px}#operations-sheet-groups label{display:flex;align-items:center;gap:8px;margin:8px 0}#operations-sheet-groups label:has(select),#operations-sheet-groups label:has(input:not([type=checkbox])){display:grid}#operations-sheet-groups input:not([type=checkbox]),#operations-sheet-groups select{max-width:100%;width:100%;min-width:0}
.sheet-group-editor{display:grid;gap:12px;margin-bottom:12px}.sheet-group-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));max-height:240px;overflow:auto;gap:4px}.sheet-group-members label{align-items:flex-start!important;overflow-wrap:anywhere}
@media print{.sheet-groups{display:none!important}.sheet-group-toggle{position:static;max-width:none}.operations-sheet [data-sheet-group-row]{break-after:avoid}}
.operations-sheet [data-sheet-group-row] th{text-align:left!important}

/* Shared compact matrix presentation. Domain records and controls stay intact. */
html .compact-matrix{--sheet-success:var(--green,var(--success,var(--accent)));--sheet-warning:var(--amber,var(--warning,var(--accent)));--sheet-danger:var(--red,var(--danger,var(--accent)));--sheet-info:var(--blue,var(--accent));--sheet-stripe:color-mix(in srgb,var(--accent) 3%,var(--panel));--sheet-hover:color-mix(in srgb,var(--accent) 9%,var(--panel))}
html .compact-matrix :is(th,td){vertical-align:middle;padding:0!important;height:var(--sheet-row,44px);line-height:1.3}
html .compact-matrix tbody tr:nth-child(even)>:is(td,th){background:var(--sheet-stripe)}
html .compact-matrix tbody tr.sheet-hover-row>td{background:var(--sheet-hover)}
html .compact-matrix thead th{height:64px!important;padding:6px 44px 6px 8px!important;vertical-align:middle;background-color:var(--bg,var(--panel));background-image:linear-gradient(var(--panel),var(--panel));}
html .compact-matrix th :is(.dc-column-action,.mm-column-action){display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:48px!important;height:auto!important;padding:0!important;font-size:13px;line-height:1.25;text-align:left}
html .compact-matrix th :is(strong,span){overflow:hidden!important;text-overflow:ellipsis!important;overflow-wrap:normal;white-space:nowrap!important}
html .compact-matrix thead strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal!important;line-height:16px;font-size:13px}
html .compact-matrix thead :is(small,br,.sheet-secondary-control){display:none!important}
html .compact-matrix thead span{font-size:11px;font-weight:500;color:var(--muted,var(--text));max-width:100%}
html .compact-matrix .ri-column{display:block;min-width:0}
html .compact-matrix .sheet-column-menu{right:0;top:50%;transform:translateY(-50%);width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;font-size:22px}
html .compact-matrix .sheet-column-menu:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
html .compact-matrix tbody th{padding:3px 5px!important;text-align:left;font-size:13px;font-variant-numeric:tabular-nums}
html .compact-matrix tbody th>strong{display:block;line-height:17px}
html .compact-matrix tbody th>small{display:block;font-size:10px;font-weight:400;line-height:13px;color:var(--muted,var(--text))}
html .compact-matrix .room-access{display:flex;gap:2px;margin-top:1px;font-size:10px;line-height:1.2}
html .compact-matrix .room-access .ra-badge{padding:1px 3px;font-size:10px;line-height:13px}
html .compact-matrix .room-access .ra-warning{font-size:10px;line-height:1.3}
html .compact-matrix .room-access :is(.ra-desktop,.ra-extra){gap:2px}
html .compact-matrix .sheet-frozen{background-color:var(--bg,var(--panel));background-image:linear-gradient(var(--panel),var(--panel))}
html .operations-sheet-scroll{scroll-padding-inline-start:120px;scroll-padding-block-start:64px}
html .compact-matrix :is(.dc-cell,.ri-cell,.mm-cell,.mm-issues-cell,.pm-cell){--sheet-tone:var(--muted,var(--text));display:block;min-height:var(--sheet-row,44px)!important;width:100%;height:auto!important;margin:0;border:0!important;border-radius:0!important;padding:5px 7px!important;background:transparent!important;box-shadow:none;color:var(--text)!important;font-family:inherit;font-size:12px;font-weight:500;line-height:1.35;white-space:normal!important;overflow-wrap:anywhere;text-align:left;opacity:1}
html .compact-matrix :is(.dc-cell,.ri-cell,.mm-cell,.mm-issues-cell,.pm-cell)::before{content:'•';color:var(--sheet-tone);display:inline-block;margin-right:5px;font-weight:900}
html .compact-matrix :is(.is-complete,.ri-present,.is-ok,.is-pm-current,.pm-complete){--sheet-tone:var(--sheet-success)}
html .compact-matrix :is(.is-due,.pm-due,.is-pm-due,.is-pm-due_soon,.is-needs_attention,.is-reported,.has-issues){--sheet-tone:var(--sheet-warning)}
html .compact-matrix :is(.ri-missing,.ri-damaged,.ri-dirty,.ri-replacement_needed,.is-pm-overdue,.is-out_of_service){--sheet-tone:var(--sheet-danger);font-weight:700}
html .compact-matrix :is(.is-repaired,.is-in_progress,.is-waiting_parts){--sheet-tone:var(--sheet-info)}
html .compact-matrix :is(.dc-cell,.ri-cell,.mm-cell,.mm-issues-cell) small{font-size:11px;line-height:1.3;font-weight:400;color:var(--muted,var(--text))}
html .compact-matrix .ri-cell br{display:none}html .compact-matrix .ri-cell small::before{content:' · '}
html .compact-matrix :is(.sheet-selected,:focus-visible,.is-selected){outline:2px solid var(--accent)!important;outline-offset:-3px;box-shadow:inset 0 0 0 1px var(--panel)!important}
html .compact-matrix .sheet-hover-column{box-shadow:inset 0 -2px var(--accent)}
html .compact-matrix [disabled]{cursor:default;opacity:.7}
html .compact-matrix[data-density=comfortable]{--sheet-row:60px}
html .compact-matrix[data-density=comfortable] tbody :is(.dc-cell,.ri-cell,.mm-cell,.mm-issues-cell,.pm-cell){padding-block:10px!important}
.sheet-density{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.sheet-density select{font-size:13px;padding:5px 8px}
.sheet-native-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.sheet-native-actions label{display:grid;gap:5px;min-width:0}.sheet-native-actions select{min-height:44px;max-width:100%}
.sheet-toolbar{gap:5px;padding:8px 0}.sheet-toolbar-note{font-size:11px}.sheet-toolbar-actions{font-size:12px}.sheet-toolbar-main select,.sheet-toolbar-main input,.sheet-toolbar .button{min-height:36px;font-size:12px;padding:6px 9px}.sheet-search{flex-basis:160px}
@media(max-width:600px){.sheet-toolbar-main select,.sheet-toolbar-main input,.sheet-toolbar .button{min-height:44px}.sheet-density{flex:1 1 180px}.sheet-density select{flex:1}.sheet-toolbar-main .sheet-search{flex-basis:100%}.sheet-toolbar-actions{gap:4px}.operations-sheet-scroll{max-height:70dvh}html .compact-matrix .room-access .ra-desktop{display:flex}html .compact-matrix .room-access .ra-more{display:none}}
/* The pre-existing maintenance contrast layer has ID specificity. Reuse its
   theme ink while applying the same neutral cell and frozen-surface treatment. */
html #maintenance-master-matrix table.compact-matrix .mm-cell,
html #maintenance-master-matrix table.compact-matrix .mm-issues-cell{background:transparent!important;color:var(--text)!important}
html #maintenance-master-matrix table.compact-matrix :is(thead th,tbody th){background-color:var(--bg,var(--panel))!important;background-image:linear-gradient(var(--panel),var(--panel))!important}
@media print{html .compact-matrix th,html .compact-matrix td{height:auto!important}html .compact-matrix .sheet-column-menu{display:none!important}}
/* Match domain selector specificity without changing their editing behavior. */
html .compact-matrix.compact-matrix tbody :is(th,td){padding:0!important}
html .compact-matrix.compact-matrix tbody th{padding:3px 5px!important}
html .compact-matrix.compact-matrix tbody th>strong{font-size:14px!important;line-height:17px!important}
html .compact-matrix.compact-matrix tbody :is(.dc-cell,.ri-cell,.mm-cell,.mm-issues-cell,.pm-cell){min-height:var(--sheet-row,44px)!important;padding:5px 7px!important;font-size:var(--sheet-font,14px)!important}
html .compact-matrix tbody .room-access span{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.sheet-toolbar-main>[data-sheet-view]{width:auto;flex:0 1 180px;max-width:220px}
.sheet-density{flex:0 0 auto}.sheet-density select{width:auto}
html .compact-matrix.compact-matrix tbody th{text-align:left!important}
html .compact-matrix.compact-matrix tbody th>strong{display:inline!important;vertical-align:middle;margin-right:4px}
html .compact-matrix tbody th>.room-access{display:inline-flex;vertical-align:middle}
html .compact-matrix tbody th>.room-access:has(.ra-warning){display:flex}
html .compact-matrix.compact-matrix tbody th>small{margin:0!important;font-size:10px!important;line-height:12px!important}
html .compact-matrix.compact-matrix tbody :is(.dc-cell,.ri-cell,.mm-cell,.mm-issues-cell,.pm-cell)::before{content:'•'!important;display:inline-block!important}
.sheet-mobile-toggle{display:none}
@media(max-width:600px){
 .sheet-mobile-toggle{display:inline-flex;align-items:center}
 .operations-sheet-host .room-spreadsheet>.operations-sheet-scroll{display:block!important}
 .operations-sheet-host .room-spreadsheet>:is(.dc-filters,.ri-filters,.mm-filters,.dc-bulk-bar,.ri-bulk-bar),.operations-sheet-host .room-spreadsheet :is([data-ri-select],[data-dc-select],[data-mm-select]){display:flex}
 .operations-sheet-host [data-room-mobile]{display:none}
 .operations-sheet-host[data-sheet-editor=true] [data-room-mobile]{display:block}
 .operations-sheet-host[data-sheet-editor=true] .room-spreadsheet>.operations-sheet-scroll{display:none!important}
}
/* Consume existing Theme Tuner settings once at the matrix surface. Frozen
   headers retain their opaque backing so access text cannot overlap records. */
@media screen{
 html[data-theme-tuner-tracker] .compact-matrix{--panel:color-mix(in srgb,var(--world-surface,var(--surface)) var(--tuner-tracker-solid),transparent)}
 html[data-theme-tuner-glass] .operations-sheet-scroll:has(.compact-matrix){backdrop-filter:blur(var(--tuner-glass-blur)) saturate(var(--tuner-saturation));-webkit-backdrop-filter:blur(var(--tuner-glass-blur)) saturate(var(--tuner-saturation))}
 html[data-theme-tuner-depth] .operations-sheet-scroll:has(.compact-matrix){box-shadow:0 0 calc(12px * var(--tuner-glow-number,0) * var(--tuner-effects-number,1)) color-mix(in srgb,var(--accent) var(--tuner-glow),transparent),0 8px 24px -18px color-mix(in srgb,var(--text) var(--tuner-depth),transparent)}
}
@media(prefers-reduced-transparency:reduce){html[data-theme-tuner-tracker] .compact-matrix{--panel:var(--world-surface,var(--surface))}}
.sheet-more-tools{display:contents}.sheet-more-tools>summary{display:none}.sheet-more-content{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.sheet-more-content select{max-width:220px;min-height:36px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;font:inherit}
@media(max-width:600px){.sheet-more-tools{display:block}.sheet-more-tools>summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-weight:600}.sheet-more-tools:not([open])>.sheet-more-content{display:none}.sheet-more-content{padding:6px 0}.sheet-more-content select{min-height:44px;max-width:100%}}
/* Dense records use the world's background as their base canvas, preventing
   translucent alternating cells from inheriting unrelated scenery contrast. */
html .compact-matrix{background-color:var(--world-background,var(--bg,var(--surface)))}

/* One shared identity and badge treatment for all room matrices. */
html .compact-matrix tbody th .operations-room-cell{display:flex;align-items:center;align-content:center;flex-wrap:wrap;gap:3px 5px;min-height:24px;line-height:1.15}
html .compact-matrix tbody th .operations-room-number{display:inline-block!important;margin:0!important;flex:none;font-size:14px!important;line-height:20px!important;font-weight:800;font-variant-numeric:tabular-nums}
html .compact-matrix tbody th .operations-room-detail{display:block;margin:0 0 0 1px!important;font-size:10px!important;line-height:12px!important;color:var(--muted,var(--text))}
html .compact-matrix tbody th .operations-room-cell .room-access{display:inline-flex;align-items:center;flex-wrap:wrap;gap:3px;margin:0;font-size:10px;line-height:1}
html .compact-matrix tbody th .operations-room-cell .ra-badge,html .compact-matrix tbody th .operations-room-cell [data-arrival]{display:inline-flex;align-items:center;justify-content:center;min-height:19px;box-sizing:border-box;margin:0;padding:2px 5px;border:1px solid currentColor;border-radius:5px;font-size:10px;font-weight:700;line-height:13px;white-space:nowrap;background:color-mix(in srgb,currentColor 10%,var(--panel));color:var(--text)}
html .compact-matrix tbody th .operations-room-cell .room-access-compact .ra-badge{min-height:19px;padding:2px 5px;font-size:10px;line-height:13px}
html .compact-matrix tbody th .operations-room-cell .room-access-compact .arrival-indicator[data-arrival]{min-height:19px!important;padding:2px 5px!important;border-radius:5px!important;font-size:10px!important;line-height:13px!important}
html .compact-matrix tbody th .operations-room-cell .ra-hold,html .compact-matrix tbody th .operations-room-cell .ra-caution{border-color:var(--sheet-warning);background:color-mix(in srgb,var(--sheet-warning) 16%,var(--panel))}
html .compact-matrix tbody th .operations-room-cell .ra-out{border-color:var(--sheet-success);background:color-mix(in srgb,var(--sheet-success) 14%,var(--panel))}
html .compact-matrix tbody th .operations-room-cell .ra-priority{border-color:var(--accent)}
html .compact-matrix.compact-matrix tbody :is(.dc-cell,.ri-cell,.mm-cell,.mm-issues-cell,.pm-cell){min-height:var(--sheet-row,38px)!important;padding:3px 7px!important;display:flex;align-items:center;flex-wrap:wrap;align-content:center;gap:2px}
html .compact-matrix.compact-matrix tbody th{padding:3px 5px!important}
html .compact-matrix[data-density=comfortable] tbody :is(.dc-cell,.ri-cell,.mm-cell,.mm-issues-cell,.pm-cell){padding-block:7px!important}
html .compact-matrix[data-density=comfortable] tbody th{padding-block:7px!important}
html .compact-matrix tbody tr:hover>:is(th,td){background:var(--sheet-hover)}
html .compact-matrix .sheet-frozen{background:var(--panel)!important}
@media(max-width:600px){html .compact-matrix tbody th .operations-room-cell{gap:2px 4px}html .compact-matrix tbody th .operations-room-cell .ra-badge{min-height:20px}}


/* Source: operations-suite.css */
.suite-panel{padding:clamp(14px,2vw,28px);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:20px;min-width:0;max-width:100%;line-height:1.5}.suite-header{display:flex;align-items:start;justify-content:space-between;gap:18px;flex-wrap:wrap}.suite-header h2{font-size:clamp(24px,3vw,36px);margin:4px 0}.suite-header p{margin:4px 0;color:var(--muted)}.suite-tools,.suite-counters,.suite-editor-bar,.suite-floor-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0}.suite-tools label,.suite-panel form label{display:grid;gap:4px;font-size:13px}.suite-panel input:not([type=checkbox]):not([type=range]),.suite-panel select{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:8px;max-width:100%;min-width:0}.suite-panel button{touch-action:manipulation}.suite-panel button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}.suite-notice{border-left:3px solid var(--accent);padding:10px 14px;background:color-mix(in srgb,var(--accent) 7%,var(--panel));font-size:13px}.suite-notice:empty{display:none}.suite-caption{color:var(--muted);font-size:13px}.suite-layer-options{position:absolute;z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 10px 30px #0003;display:grid;gap:8px}.suite-layer-options label{display:flex;gap:8px}.suite-map-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,310px);gap:18px;align-items:start}.suite-map-viewport{overflow:auto;max-height:76vh;min-height:340px;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--accent) 4%,var(--panel));overscroll-behavior:contain;scrollbar-width:auto;scrollbar-color:var(--accent) var(--panel)}.suite-map-canvas{position:relative;aspect-ratio:1;isolation:isolate;touch-action:pan-x pan-y pinch-zoom}.suite-map-grid{position:absolute;inset:0;background-image:linear-gradient(to right,color-mix(in srgb,var(--border) 45%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--border) 45%,transparent) 1px,transparent 1px);background-size:2% 2%;pointer-events:none;opacity:.5}.suite-map-background{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.45;pointer-events:none}.suite-map-object{position:absolute;border:1px solid var(--border);border-radius:12px;padding:8px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;background:var(--panel);color:var(--text);font:inherit;overflow:hidden;box-shadow:0 3px 0 color-mix(in srgb,var(--accent) 12%,transparent);transition:box-shadow .18s,border-color .18s}.suite-map-object strong{font-size:clamp(16px,2vw,25px);line-height:1.1}.suite-map-object span,.suite-map-object small{font-size:clamp(10px,1vw,13px);line-height:1.35}.suite-map-object:hover,.suite-map-object.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent),0 6px 20px #0001}.suite-map-object.is-editing{outline:3px dashed var(--accent);touch-action:none;cursor:move}.suite-map-object.is-filtered{opacity:.25}.suite-map-area{background:color-mix(in srgb,var(--border) 20%,var(--panel));box-shadow:none;border-style:dashed}.suite-map-details{background:color-mix(in srgb,var(--accent) 4%,var(--panel));border:1px solid var(--border);border-radius:16px;padding:16px;max-height:76vh;overflow:auto;animation:suite-panel-enter .18s ease-out}.suite-map-details h3{margin-top:0}.suite-map-details section{padding:12px 0;border-top:1px solid var(--border)}.suite-map-details h4{margin:0 0 8px}.suite-map-details ul{padding-left:20px;font-size:13px}.suite-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin:12px 0}.suite-room-list{display:grid;gap:10px;padding:12px}.suite-room-list>button,.suite-room-list>article{border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--panel);color:var(--text);text-align:left;display:grid;gap:6px;min-height:48px}.suite-room-list span{font-size:13px}.suite-health-settings,.suite-panel>details{border-top:1px solid var(--border);padding:16px 0;margin-top:16px}.suite-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:20px 0}.suite-metrics article,.suite-set-cards article,.suite-loads article{border:1px solid var(--border);border-radius:16px;padding:16px;background:color-mix(in srgb,var(--accent) 4%,var(--panel));display:grid;gap:5px}.suite-metrics article strong{font-size:30px;letter-spacing:-.035em}.suite-metrics article span{font-size:12px;color:var(--muted)}.suite-set-cards,.suite-loads{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:16px 0}.suite-set-cards p,.suite-loads p{font-size:13px;margin:3px 0}.suite-table-scroll{overflow:auto;max-width:100%;margin:16px 0;border:1px solid var(--border);border-radius:12px}.suite-table{border-collapse:separate;border-spacing:0;min-width:800px;width:100%;font-size:14px}.suite-table th,.suite-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.suite-table thead th{position:sticky;top:0;background:var(--panel);z-index:2}.suite-table th:first-child{position:sticky;left:0;background:var(--panel);z-index:1;min-width:140px}.suite-table thead th:first-child{z-index:3}.suite-table td small{display:block;color:var(--muted);font-size:11px}.suite-table caption{text-align:left;padding:12px;font-weight:600}.suite-table input{width:180px}.suite-warnings{border:1px solid color-mix(in srgb,var(--accent) 70%,var(--border));border-radius:12px;padding:12px 12px 12px 32px;font-size:13px}.suite-timeline{overflow:auto;border:1px solid var(--border);border-radius:12px;padding:12px}.suite-timeline-row{display:grid;grid-template-columns:110px minmax(540px,1fr);min-width:700px;gap:10px;margin-bottom:10px}.suite-timeline-row>div{position:relative;height:62px;background:color-mix(in srgb,var(--border) 12%,transparent);border-radius:8px}.suite-timeline-cycle{position:absolute;top:3px;bottom:3px;border-radius:8px;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--panel));font-size:12px;padding:5px;overflow:hidden;white-space:nowrap}.suite-timeline-cycle small{display:block;font-size:10px}.suite-equipment{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.suite-equipment fieldset{border:1px solid var(--border);border-radius:12px;min-width:0;display:grid;gap:8px}.suite-dialog{width:min(720px,95vw);max-height:90dvh;overflow:auto;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:18px;padding:24px}.suite-dialog::backdrop{background:#0007}.suite-dialog label{display:grid;gap:5px}.suite-dialog input,.suite-dialog select{font:inherit;padding:8px;border:1px solid var(--border);border-radius:8px;min-width:0;background:var(--panel);color:var(--text)}.suite-dialog [role=alert]{color:var(--danger,var(--text))}@keyframes suite-panel-enter{from{opacity:.5;transform:translateX(8px)}to{opacity:1;transform:none}}@media(max-width:800px){.suite-map-workspace{grid-template-columns:1fr}.suite-map-details{max-height:none}.suite-map-viewport{max-height:60vh}.suite-tools .button,.suite-editor-bar .button{min-height:42px}.suite-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.suite-metrics article{padding:12px}.suite-metrics article strong{font-size:24px}.suite-panel{border-radius:14px}.suite-set-cards,.suite-loads{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.suite-map-object,.suite-map-details{transition:none;animation:none}}@media print{.suite-tools,.suite-editor-bar,.suite-health-settings,[data-plan-settings]{display:none!important}.suite-map-viewport,.suite-map-details,.suite-table-scroll,.suite-timeline{max-height:none;overflow:visible}.suite-map-canvas{min-width:0!important;width:100%!important}.suite-table{min-width:0;font-size:9px}.suite-map-workspace{display:block}.suite-map-details{break-before:page}.suite-panel{border:0;padding:0}}
/* Expandable Hotel Map designer; all colors follow the active atmosphere. */
.suite-grid-controls{border:1px solid var(--border);border-radius:12px;padding:8px 12px;margin:10px 0;background:color-mix(in srgb,var(--accent) 3%,var(--panel))}.suite-grid-controls>summary{cursor:pointer;font-size:13px}.suite-grid-fields{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding-top:10px}.suite-grid-fields label{font-size:12px;display:grid;gap:3px}.suite-grid-fields input[type=number]{width:110px}.suite-grid-fields label:has(input[type=checkbox]){display:flex;align-items:center}.suite-grid-handle{position:absolute;z-index:5;border:1px solid var(--accent);background:var(--panel);border-radius:5px;touch-action:none;padding:0;width:28px;height:12px;opacity:.8}.suite-grid-handle[data-grid-handle=top]{left:calc(50% - 14px);top:0;cursor:ns-resize}.suite-grid-handle[data-grid-handle=bottom]{left:calc(50% - 14px);bottom:0;cursor:ns-resize}.suite-grid-handle[data-grid-handle=left]{left:0;top:calc(50% - 14px);width:12px;height:28px;cursor:ew-resize}.suite-grid-handle[data-grid-handle=right]{right:0;top:calc(50% - 14px);width:12px;height:28px;cursor:ew-resize}.suite-map-canvas[data-expanding=true]{outline:2px dashed color-mix(in srgb,var(--accent) 60%,transparent);outline-offset:-2px;background:color-mix(in srgb,var(--accent) 5%,transparent)}.suite-map-canvas[data-invalid=true]{outline:2px dashed var(--danger,var(--accent));outline-offset:-2px}.suite-map-viewport{overflow-anchor:none}.suite-map-background{max-width:none}@media(max-width:600px){.suite-grid-fields{gap:8px}.suite-grid-fields input[type=number]{width:96px}.suite-grid-handle{min-width:24px;min-height:24px}}


/* Source: operations-fields.css */
/* Typed metadata editors share the active theme and preserve domain tables. */
.field-preview-scroll{overflow:auto;max-height:45vh;border:1px solid var(--border);border-radius:10px;margin:1rem 0}.field-preview-scroll table{width:100%;border-collapse:collapse}.field-preview-scroll th,.field-preview-scroll td{padding:.65rem;text-align:left;border-bottom:1px solid var(--border);min-width:9rem;max-width:30rem;overflow-wrap:anywhere}.field-formula-builder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}[data-field-schema] fieldset{min-width:0;border:1px solid var(--border);border-radius:10px;margin:1rem 0;padding:.8rem}[data-field-schema] input,[data-field-schema] select,[data-field-schema] textarea{max-width:100%;box-sizing:border-box}[data-field-schema] textarea{width:100%}.dc-dialog-content pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:20rem;overflow:auto}.operations-sheet td.field-tone-accent{box-shadow:inset 4px 0 var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel))}.operations-sheet td.field-tone-success{box-shadow:inset 4px 0 #27834b;background:color-mix(in srgb,#27834b 14%,var(--panel))}.operations-sheet td.field-tone-warning{box-shadow:inset 4px 0 #b77a16;background:color-mix(in srgb,#b77a16 14%,var(--panel))}.operations-sheet td.field-tone-danger{box-shadow:inset 4px 0 #c04343;background:color-mix(in srgb,#c04343 14%,var(--panel))}[data-fields-load-error]{padding:.7rem;border:1px solid var(--border);border-radius:8px}@media(max-width:480px){.field-formula-builder{grid-template-columns:1fr}.field-preview-scroll{max-height:35vh}}


/* Source: operations-control.css */
.operations-control{max-width:100%;min-width:0}.operations-control>.suite-toolbar{margin:1rem 0}.operations-control .suite-toolbar{display:flex;gap:.5rem;flex-wrap:wrap}.operations-control [aria-current=page]{border-color:var(--accent);box-shadow:inset 0 -3px var(--accent)}.control-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.control-card{min-width:0;padding:1rem;border:1px solid var(--border);border-radius:16px;background:var(--panel)}.control-card[data-size=wide]{grid-column:span 2}.control-card-heading{display:flex;gap:.7rem;align-items:center}.control-card-heading>span{font-size:1.8rem;color:var(--accent)}.control-card-heading h3{margin:.3rem 0}.control-metrics{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.control-metrics button{flex:1;min-width:5.5rem;border:1px solid var(--border);border-radius:10px;padding:.7rem;background:transparent;color:var(--text);text-align:left;cursor:pointer}.control-metrics strong,.control-metrics span{display:block}.control-metrics strong{font-size:1.5rem;font-variant-numeric:tabular-nums}.control-metrics span{font-size:.8rem;line-height:1.4;margin-top:.25rem}.control-view-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}.control-view-list article{padding:1rem;border:1px solid var(--border);border-radius:12px;min-width:0}.operations-control pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:24rem;overflow:auto}[data-control-cards]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}[data-control-cards] fieldset{min-width:0;border:1px solid var(--border);border-radius:10px;padding:.6rem}[data-control-cards] input,[data-control-cards] select{max-width:100%}.operations-control label{display:block;margin:.75rem 0}.operations-control select{max-width:100%}@media(max-width:1000px){.control-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.control-overview,.control-view-list,[data-control-cards]{grid-template-columns:1fr}.control-card[data-size=wide]{grid-column:auto}.control-card{padding:.8rem}}@media print{.operations-control>.suite-toolbar,.operations-control>.suite-heading,.operations-control>label,.operations-control>[role=status],.control-card>.button{display:none!important}.control-card{break-inside:avoid}.control-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.control-card[data-size=wide]{grid-column:auto}}


/* Source: maintenance-orders.css */
.wo-workspace{padding:clamp(14px,2vw,28px);margin-bottom:20px;background:var(--card-bg,var(--surface,#fff));color:var(--text-color,var(--text,#20252c));border:1px solid var(--line-color,var(--border,#b8c0c7));border-radius:18px;min-width:0}
.wo-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.wo-heading h2{margin:3px 0 8px}.wo-heading p{max-width:65ch}.wo-actions,.wo-tabs{display:flex;gap:8px;flex-wrap:wrap}.wo-tabs{margin:20px 0}.wo-tabs [aria-pressed=true]{background:var(--accent,#255467);color:var(--accent-contrast,#fff)}
.wo-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.wo-metric{display:flex;flex-direction:column;gap:8px;align-items:flex-start;text-align:left;min-height:110px;padding:16px;border:1px solid var(--line-color,var(--border,#b8c0c7));border-radius:12px;background:var(--card-bg,var(--surface-alt,#f4f7f8));color:inherit;cursor:pointer}.wo-metric strong{font-size:1.65rem;line-height:1.2}.wo-metric small{font-size:.78rem;opacity:.8}.wo-metric:hover,.wo-card:hover{border-color:var(--accent,#255467)}
.wo-filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.wo-filters label,.wo-form-grid label,.wo-workflow-row label,.maintenance-order-dialog form>label{display:flex;flex-direction:column;gap:6px;min-width:0}.wo-filters label:first-child{flex:2;min-width:200px}.wo-filters label{flex:1;min-width:150px}
.wo-workspace input,.wo-workspace select,.maintenance-order-dialog input:not([type=checkbox]),.maintenance-order-dialog select,.maintenance-order-dialog textarea{width:100%;min-width:0;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line-color,var(--border,#b8c0c7));border-radius:8px;background:var(--input-bg,var(--card-bg,var(--surface,#fff)));color:inherit;font:inherit}.maintenance-order-dialog textarea{min-height:80px;resize:vertical}.wo-scroll{overflow:auto;max-width:100%;max-height:65vh}.wo-title{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit}.wo-title small{font-size:.7rem;overflow-wrap:anywhere}
.wo-board{display:flex;gap:14px;overflow:auto;max-width:100%;padding-bottom:12px;align-items:flex-start}.wo-lane{flex:0 0 240px;padding:12px;background:var(--card-bg,var(--surface-alt,#f3f6f7));border:1px solid var(--line-color,var(--border,#b8c0c7));border-radius:12px;min-height:200px}.wo-lane h4{margin:0 0 12px;display:flex;justify-content:space-between;gap:8px}.wo-card{display:flex;flex-direction:column;gap:8px;width:100%;padding:14px;margin:0 0 10px;border:1px solid var(--line-color,var(--border,#b8c0c7));border-radius:10px;background:var(--card-bg,var(--surface,#fff));color:inherit;text-align:left;cursor:pointer}.wo-card-top{font-size:.8rem;text-transform:capitalize}.wo-card strong{font-size:1rem}.wo-card small{font-size:.8rem}.wo-recent,.wo-calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.wo-calendar section{padding:12px;border:1px solid var(--line-color,var(--border,#b8c0c7));border-radius:12px}
dialog.maintenance-order-dialog{width:min(900px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:90dvh;overflow:auto;padding:clamp(14px,3vw,28px);background:var(--card-bg,var(--surface,#fff));color:var(--text-color,var(--text,#20252c));border:1px solid var(--line-color,var(--border,#b8c0c7));border-radius:18px;box-sizing:border-box}.maintenance-order-dialog header .eyebrow{overflow-wrap:anywhere}.maintenance-order-dialog fieldset{border:0;padding:0;margin:0 0 20px;min-width:0}.maintenance-order-dialog legend{font-weight:700;margin:16px 0 10px}.wo-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.wo-wide{grid-column:1/-1}.maintenance-order-dialog summary{padding:12px 0;cursor:pointer;font-weight:650}.maintenance-order-dialog [data-wo-error]{padding:12px;border:1px solid var(--danger,#b33);border-radius:8px}.wo-evidence,.wo-history{border-top:1px solid var(--line-color,var(--border,#b8c0c7));margin-top:22px;padding-top:14px}.wo-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:12px}.wo-photos a{display:flex;flex-direction:column;gap:8px;color:inherit;text-decoration:none}.wo-photos img{width:100%;height:140px;object-fit:cover;border-radius:10px}.wo-photos small{display:block}.wo-history li{margin:0 0 18px}.wo-history time{display:block;font-size:.8rem;margin-top:5px}.wo-history dt{font-weight:650}.wo-history dd{margin:4px 0 12px;overflow-wrap:anywhere}.wo-preview{display:block;max-width:100%;max-height:220px;object-fit:contain;margin:12px 0}.wo-preview[hidden]{display:none}.wo-workflow-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin:12px 0}.wo-archive{flex-direction:row!important;align-items:center;padding:12px 0}.wo-workspace button:focus-visible,.maintenance-order-dialog button:focus-visible{outline:3px solid var(--accent,#255467);outline-offset:3px}
@media(max-width:650px){.wo-heading{flex-direction:column}.wo-summary{grid-template-columns:1fr 1fr}.wo-metric{min-height:100px;padding:12px}.wo-metric strong{font-size:1.35rem}.wo-form-grid{grid-template-columns:1fr}.wo-wide{grid-column:auto}.wo-workflow-row{grid-template-columns:1fr}.wo-filters{flex-direction:column}.wo-recent,.wo-calendar{grid-template-columns:1fr}.wo-tabs .button{flex:1 1 40%;white-space:normal}}
@media(prefers-reduced-motion:reduce){.wo-workspace *,.maintenance-order-dialog *{scroll-behavior:auto!important;transition:none!important}}

.wo-close-top{float:right;margin:0 0 12px 12px}

.maintenance-order-dialog>header{display:flow-root}


/* Source: fairy-tale.css */
/* Fairy Tale: authored scenery, articulated life and quiet operational surfaces. */
@media screen {
html[data-world='fairy-tale']{--lc-px:0px;--lc-py:0px;--ft-wind:0deg;--ft-gust:1;--ft-speed:1;--ft-cursor-bend:0deg;--ft-cursor-x:0px;--ft-illumination:.7;--lc-card-opacity:95%}
html[data-world='fairy-tale'][data-theme][data-mode] .workspace{background:transparent!important;isolation:isolate}
html[data-world='fairy-tale'] :is(.world-atmosphere,.workspace-animation-decor,.lc-nebula,.lc-orbits,.lc-moon,.lc-stars,.lc-meteor,.lc-mist){display:none!important}
html[data-world='fairy-tale'] .lc-environment{position:fixed;inset:0 0 0 var(--sidebar-width,240px);overflow:hidden;z-index:-1;pointer-events:none;contain:strict;background:var(--world-deep)}
html[data-world='fairy-tale'] .lc-worlds{position:absolute;inset:0}
.ft-world{position:absolute;inset:0;overflow:hidden;isolation:isolate;background:var(--world-deep)}
.ft-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% center;transform:translate(calc(var(--lc-px)*.25),calc(var(--lc-py)*.25)) scale(1.025);pointer-events:none}
.ft-art-light{display:none}html[data-mode='light'] .ft-art-light{display:block}html[data-mode='light'] .ft-art-dark{display:none}
.ft-sky-light{position:absolute;inset:0;background:radial-gradient(ellipse at 73% 15%,#bce5ff2b,transparent 48%);mix-blend-mode:screen;opacity:var(--ft-illumination);animation:ft-light calc(31s * var(--ft-speed)) ease-in-out infinite alternate}
.ft-clouds{position:absolute;inset:0;opacity:.55;transform:translate(calc(var(--lc-px)*.4),calc(var(--lc-py)*.4))}.ft-clouds i{position:absolute;left:-15%;top:var(--cloud-y,12%);width:70%;height:15%;background:radial-gradient(ellipse at 28% 70%,#cde8ff30,transparent 54%),radial-gradient(ellipse at 64% 45%,#d8efff22,transparent 61%);border-radius:50%;animation:ft-cloud calc(67s * var(--ft-speed)) ease-in-out infinite alternate}.ft-clouds i:nth-child(2){--cloud-y:29%;left:50%;animation-duration:97s;animation-delay:-22s;opacity:.6}.ft-clouds i:nth-child(3){--cloud-y:66%;animation-duration:113s;opacity:.3}
.ft-valley-mist{position:absolute;inset:38% -10% 12%;background:radial-gradient(ellipse at 30% 62%,#d7e5f522,transparent 48%),radial-gradient(ellipse at 80% 55%,#abcdf01d,transparent 45%);animation:ft-mist calc(41s * var(--ft-speed)) ease-in-out -8s infinite alternate;transform:translate(calc(var(--lc-px)*.8),calc(var(--lc-py)*.8))}
.ft-depth-hills{position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#061c3128);pointer-events:none}
.ft-foreground{position:absolute;inset:0;transform:translate(calc(var(--lc-px)*1.4),calc(var(--lc-py)*1.4));color:#75a8c3}.ft-plant{position:absolute;left:var(--plant-x);bottom:-20px;height:var(--plant-height);width:auto;overflow:visible;opacity:.75;filter:drop-shadow(0 2px 2px #02132499)}.ft-plant:nth-child(n+4):nth-child(-n+9){height:55px;opacity:.4}.ft-stem{transform-origin:40px 170px;transform:rotate(calc(var(--ft-wind) + var(--ft-cursor-bend)));transition:transform 1.7s ease-out;fill:#12334c;stroke:#8eb9ce;stroke-width:.8}.ft-flower{fill:#34789f;stroke:#b4e9ff;transform-origin:45px 60px;animation:ft-flower calc(8s * var(--ft-speed)) ease-in-out calc(var(--i)*-.8s) infinite alternate}.ft-flower circle{fill:#f1ddb3}
.ft-butterflies{position:absolute;inset:0;pointer-events:none}.ft-flight{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:auto;animation:ft-flight calc(var(--flight) * var(--ft-speed)) ease-in-out var(--delay) infinite;transform-style:preserve-3d}.ft-butterfly{display:block;width:100%;filter:drop-shadow(0 0 3px #7adcff66);transform:translateX(var(--ft-cursor-x))}.ft-butterfly svg{width:100%;height:auto;display:block;overflow:visible}.ft-wing{fill:#5ab8e2;stroke:#132b43;stroke-width:1.4;transform-origin:50px 37px;animation:ft-wing .75s ease-in-out infinite alternate}.ft-wing-right{animation-name:ft-wing-right}.ft-veins{fill:none;stroke:#c1edff;stroke-width:.65}.ft-monarch .ft-wing{fill:#e8a744;stroke:#2b2524}.ft-monarch .ft-veins{stroke:#553825}.ft-flight:nth-child(3n){opacity:.55}.ft-flight:nth-child(2n) .ft-wing{animation-duration:.63s}
.ft-branch{position:absolute;left:0;top:0;width:36%;fill:#a47b46;stroke:#44352a;stroke-width:4;transform-origin:left top;transform:rotate(calc(var(--ft-wind)*.18));transition:transform 3s ease-out}
.ft-rain{position:absolute;inset:0;background:repeating-linear-gradient(108deg,transparent 0 60px,#c7e2f033 61px 62px,transparent 64px 121px);opacity:.2;animation:ft-rain 1.7s linear infinite;mask-image:linear-gradient(transparent,#000 15%,#000 70%,transparent)}html[data-mode='light'] .ft-rain{display:none}.ft-lamplight{position:absolute;left:0;bottom:10%;width:22%;height:55%;background:radial-gradient(ellipse,#ffd59025,transparent 65%);animation:ft-light 9s ease-in-out infinite alternate}
.ft-well-rings{position:absolute;inset:0}.ft-well-rings i{position:absolute;left:55%;top:60%;width:90px;height:60px;margin:-30px -45px;border:1px solid #bcecff88;box-shadow:0 0 12px #9cdafa55,inset 0 0 18px #b3e0f333;border-radius:50%;animation:ft-depth 17s ease-in-out infinite}.ft-well-rings i:nth-child(2){animation-delay:-6s}.ft-well-rings i:nth-child(3){animation-delay:-12s}
.ft-torch{position:absolute;width:22px;height:50px;bottom:33%;background:radial-gradient(ellipse at 50% 80%,#d7a7ec77,transparent 64%);animation:ft-flame 3.2s ease-in-out infinite alternate}.ft-torch-left{left:8%}.ft-torch-right{right:12%;animation-delay:-1.8s}.ft-eye-glow{position:absolute;right:12%;top:40%;width:40px;height:12px;border-radius:50%;background:#ebc174;opacity:0;box-shadow:0 0 28px #e4ba83}
.ft-banners{position:absolute;right:9%;top:20%;display:flex;gap:60px}.ft-banners i{width:13px;height:85px;background:linear-gradient(90deg,#182a50,#6386a8,#d7bf7a);clip-path:polygon(0 0,100% 0,100% 100%,50% 83%,0 100%);transform-origin:top;transform:skewX(calc(var(--ft-wind)*1.6));transition:transform 1.7s}.ft-water{position:absolute;left:35%;bottom:25%;width:28%;height:4%;border-bottom:2px solid #d6efff55;border-radius:50%;animation:ft-water 6s ease-out infinite}
.ft-event-light{position:absolute;inset:0;background:linear-gradient(110deg,transparent 15%,#fbe7a749,transparent 80%);opacity:0;pointer-events:none}
[data-ft-event='monarch'] .ft-event-light,[data-ft-event='sundial'] .ft-event-light,[data-ft-event='windows'] .ft-event-light{animation:ft-blessing 6s ease-in-out both}[data-ft-event='sundial'] .ft-flower{filter:brightness(1.7)}[data-ft-event='eye'] .ft-eye-glow{animation:ft-blessing 5s ease-in-out both}[data-ft-event='seal'] .ft-world{animation:ft-seal 5s ease-in-out both}
html[data-world='fairy-tale'] .lc-particle{width:2px;height:2px;border-radius:50%;background:#c6eaf4;box-shadow:0 0 3px currentColor}html[data-world='fairy-tale'][data-family-realm='bowditch'] .lc-particle.p1{width:10px;height:6px;clip-path:polygon(0 0,65% 0,100% 50%,40% 100%);background:#b58743;box-shadow:none}html[data-world='fairy-tale'][data-family-realm='well'] .lc-particle{width:2px;height:5px;background:#91c7d6}html[data-world='fairy-tale'][data-family-realm='road'] .lc-particle{background:#daeab0}html[data-world='fairy-tale'][data-family-realm='sundial'] .lc-particle{background:#eacc7f;width:3px;height:3px}html[data-world='fairy-tale'][data-family-realm='maleen'] .lc-particle{background:#9a94a9;box-shadow:none;border-radius:0}html[data-world='fairy-tale'][data-family-realm='reborn'] .lc-particle{width:7px;height:4px;background:#f5d5c7;border-radius:80% 0 70% 0}
html[data-world='fairy-tale'][data-theme][data-mode] #app-view .view .lc-card:not(.room-card):not(.adaptive-room-card):not(.arrival-tier):not(.early-tier):not(.finished){background:color-mix(in srgb,var(--world-surface) 94%,transparent)!important;border:1px solid color-mix(in srgb,var(--world-border) 75%,transparent)!important;box-shadow:0 12px 28px -20px #030b1bbb,inset 0 0 0 3px color-mix(in srgb,var(--world-accent) 7%,transparent)!important;backdrop-filter:blur(5px)}
html[data-world='fairy-tale'] .lc-card-shell{inset:0;pointer-events:none;z-index:1}html[data-world='fairy-tale'] .lc-card-seal{top:8px;right:10px;width:24px;height:24px;opacity:.2}html[data-world='fairy-tale'] .lc-card-seal svg{width:100%}html[data-world='fairy-tale'] .lc-corner{border-color:var(--world-accent);opacity:.3}html[data-world='fairy-tale'] .lc-card-trace,html[data-world='fairy-tale'] .lc-card-glint{animation:none;opacity:0}
html[data-world='fairy-tale'][data-family-hover-effects='on'] .lc-card:hover .lc-corner{opacity:.7;filter:drop-shadow(0 0 3px var(--world-accent))}
html[data-world='fairy-tale'][data-theme][data-mode] :is(.sidebar,.topbar){background:color-mix(in srgb,var(--world-surface) 97%,transparent)!important;border-color:var(--world-border)}
html[data-world='fairy-tale'][data-theme][data-mode] :is(input,select,textarea,button.button,.button){border-color:color-mix(in srgb,var(--world-border) 80%,transparent)}
html[data-world='fairy-tale'] .lc-library{max-width:1150px;width:calc(100vw - 40px);color:var(--world-text);background:var(--world-deep);border:1px solid var(--world-accent);border-radius:24px 7px;padding:26px;max-height:92vh}
.ft-explore{position:relative;height:330px;margin:20px 0;border:1px solid var(--world-border);border-radius:60px 8px 30px 8px;overflow:hidden;isolation:isolate;background:var(--world-deep)}.ft-explore-scene{position:absolute;inset:0}.ft-explore .ft-art{object-position:center 52%}.ft-explore-caption{position:absolute;left:24px;top:20px;max-width:50%;padding:12px 16px;background:#081527c7;color:#f3f5ed;border-left:1px solid #c3d4e7}.ft-explore-caption span{font-size:10px;letter-spacing:.22em}.ft-explore-caption h3{font:clamp(20px,2vw,29px) Georgia,serif;margin:8px 0}.ft-explore-caption p{font-size:12px;line-height:1.6;margin:0;color:#d0e1eb}
.ft-hotspots{position:absolute;inset:0;pointer-events:none}.ft-hotspot{position:absolute;right:calc(5% + var(--spot)*19%);bottom:30px;width:62px;height:62px;border:1px solid #cde6ee66;border-radius:50%;background:#092137a6;color:#c5e4f3;cursor:pointer;pointer-events:auto;transition:background .3s,box-shadow .3s}.ft-hotspot svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5}.ft-hotspot:hover,.ft-hotspot:focus-visible{box-shadow:0 0 0 3px #deecff99;background:#173e54}.ft-hotspot-label{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);min-width:95px;max-width:150px;text-align:center;font:11px/1.4 system-ui;padding:5px 6px;background:#102238ed;color:#f4f7fc;border-radius:5px;opacity:0;pointer-events:none}.ft-hotspot:is(:hover,:focus-visible) .ft-hotspot-label{opacity:1}.ft-hotspot-radar{left:16px;bottom:10px;width:160px;height:147px;background:none;border:0;border-radius:10px}.ft-hotspot-radar:hover{background:#c0d9e611}.ft-radar{display:block;width:100%;height:100%;background:url('/art/fairy-tale/radar.png') 0 0/400% 400% no-repeat;transform-origin:bottom center;animation:ft-breathe 5s ease-in-out infinite alternate}.ft-explore[data-radar-age='young'] .ft-radar{background-image:url('/art/fairy-tale/radar-young.png')}.ft-hotspot-radar .ft-hotspot-label{bottom:85%}.ft-clock-hand{transform-origin:40px 40px}.ft-hotspot-monarch{top:42%;right:18%;background:none;border:0;width:58px;height:50px;animation:ft-perch 18s ease-in-out infinite}.ft-hotspot-monarch svg,.ft-hotspot-migration svg{fill:initial;stroke:initial}.ft-sundial-dial{display:block}
.ft-moment{position:absolute;inset:0;pointer-events:none;overflow:hidden}.ft-event-particle{position:absolute;width:38px;color:#ddecff;font-size:32px}.ft-discovery-status{position:absolute;bottom:0;left:0;right:0;margin:0;padding:7px 12px;background:#07172bd9;color:#e7f0fa;font:12px/1.5 system-ui;pointer-events:none}.ft-discovery-status:empty{display:none}
.ft-atlas{border:1px solid #b2a27866;border-radius:8px;background:radial-gradient(ellipse at 50% 30%,#ede4ca,#cfc5a7);padding:20px;color:#302e29}.ft-atlas-heading{text-align:center}.ft-atlas-heading>span{font:10px system-ui;letter-spacing:.3em}.ft-atlas-heading p{font:24px Georgia,serif;margin:8px 0 18px}.ft-map{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 14px;padding:8px}.ft-map-road{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;fill:none;stroke:#8c7656;stroke-width:2;stroke-dasharray:5 7;opacity:.6}.ft-map-place{position:relative;display:block;padding:0;text-align:left;overflow:hidden;border:1px solid #a79b7b;border-radius:50% 50% 8px 8px;background:#fff9e8;color:#302e29;cursor:pointer;min-width:0;box-shadow:0 4px 9px #73623e26;transition:transform .25s,box-shadow .25s}.ft-map-place:nth-of-type(5){grid-column:2}.ft-location-art{display:block;height:100px;background-size:cover;background-position:center}.ft-location-copy{display:grid;gap:5px;padding:12px}.ft-location-copy small{font:9px system-ui;letter-spacing:.18em;color:#675941}.ft-location-copy strong{font:17px/1.12 Georgia,serif}.ft-location-copy>span{font:11px/1.4 system-ui;color:#665b48}.ft-map-mark{position:absolute;top:65px;right:8px;width:28px;height:28px;color:#f4e6b3;background:#14263ad9;border-radius:50%;padding:3px}.ft-map-mark svg{width:100%;height:100%}.ft-map-place:hover{transform:translateY(-3px);box-shadow:0 5px 17px #61533755}.ft-map-place[aria-pressed='true']{outline:3px solid #4c6f83;outline-offset:3px}.ft-map-place[aria-pressed='true'] .ft-location-copy::after{content:'YOU ARE HERE';font:9px system-ui;letter-spacing:.12em;color:#315f78}
.ft-journal{margin-top:20px;border-top:1px solid var(--world-border);padding-top:15px}.ft-journal summary{cursor:pointer;font:22px Georgia,serif}.ft-journal summary span{font:11px system-ui;margin-left:10px;color:var(--world-secondary)}.ft-journal>p{font-size:12px}.ft-journal-pages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ft-journal article{display:flex;gap:12px;padding:14px;border:1px solid var(--world-border);border-radius:8px;background:var(--world-surface)}.ft-journal article svg{width:45px;flex:none;color:var(--world-accent)}.ft-journal article h4{font:18px Georgia,serif;margin:0 0 7px}.ft-journal article p{font:12px/1.6 system-ui;color:var(--world-secondary);margin:0}
.ft-cinema{position:absolute;inset:0;pointer-events:none;overflow:hidden}.ft-cinema-emblem{position:absolute;left:42%;top:32%;width:16%;color:#d0e8ed}.ft-cinema-flight{position:absolute;top:calc(20% + var(--i)*6%);left:calc(7% + var(--i)*10%);width:70px}.ft-descent-ring{position:absolute;inset:20%;border:14px double #a2c1d5;border-radius:50%;box-shadow:0 0 50px #a9d9f244}
html[data-world='fairy-tale'][data-family-butterflies='off'] :is(.ft-butterflies,.ft-hotspot-monarch,.ft-hotspot-migration){display:none}html[data-world='fairy-tale'][data-family-butterflies='occasional'] .ft-flight:nth-child(n+3),html[data-world='fairy-tale'][data-family-butterflies='natural'] .ft-flight:nth-child(n+6){display:none}html[data-world='fairy-tale'][data-family-quality='low'] .ft-flight:nth-child(n+3){display:none}
html[data-world='fairy-tale'][data-family-mood='mysterious'] .ft-sky-light{opacity:.25}html[data-world='fairy-tale'][data-family-mood='peaceful'] .ft-rain{opacity:.08}html[data-world='fairy-tale'][data-family-mood='cinematic'] .ft-valley-mist{opacity:1.3}
html[data-world='fairy-tale'] [data-running='no'] *,html[data-world='fairy-tale'][data-family-environment='off'] .ft-world *,html[data-world='fairy-tale'][data-family-reduced='yes'] :is(.ft-world,.ft-explore) *,html[data-world='fairy-tale'][data-family-motion='off'] :is(.ft-world,.ft-explore) *{animation:none!important;transition:none!important}html[data-world='fairy-tale'][data-family-awake='no'] .ft-world *{animation-play-state:paused!important}
@media(max-width:1000px){html[data-world='fairy-tale'] .lc-environment{left:0}.ft-map{grid-template-columns:repeat(3,minmax(0,1fr))}.ft-map-place:nth-of-type(5){grid-column:auto}.ft-map-place:last-child{grid-column:2}.ft-flight:nth-child(n+5){display:none}}
@media(max-width:600px){html[data-world='fairy-tale'] .lc-library{width:calc(100vw - 16px);padding:14px;border-radius:16px;max-height:94vh}.ft-explore{height:290px;border-radius:28px 6px;margin:12px 0}.ft-explore-caption{left:9px;top:10px;max-width:87%;padding:9px}.ft-explore-caption h3{font-size:20px;margin:5px 0}.ft-explore-caption p{font-size:11px}.ft-hotspot{width:45px;height:45px;bottom:40px;right:calc(5% + var(--spot)*20%)}.ft-hotspot-radar{left:0;bottom:0;width:120px;height:110px}.ft-hotspot-monarch{top:45%;right:15%}.ft-atlas{padding:12px 8px}.ft-atlas-heading>span{font-size:8px;letter-spacing:.12em}.ft-atlas-heading p{font-size:21px}.ft-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px;padding:5px}.ft-map-place:last-child{grid-column:1 / -1;width:55%;justify-self:center}.ft-location-art{height:75px}.ft-location-copy{padding:9px}.ft-location-copy strong{font-size:15px}.ft-map-mark{top:43px}.ft-map-road{display:none}.ft-journal-pages{grid-template-columns:1fr}.ft-journal summary span{display:block;margin:6px 0}.ft-plant:nth-child(n+7),.ft-flight:nth-child(n+4){display:none}.ft-art{object-position:69% center}.ft-explore .ft-art{object-position:60% center}}
@media(prefers-reduced-motion:reduce){html[data-world='fairy-tale'] :is(.ft-world,.ft-explore,.ft-map) *{animation:none!important;transition:none!important}}
}
@keyframes ft-moonlight{50%{filter:brightness(1.03)}}@keyframes ft-light{to{opacity:.35}}@keyframes ft-cloud{to{transform:translateX(23%) scale(1.12)}}@keyframes ft-mist{to{transform:translate(8%,-3%);opacity:.4}}@keyframes ft-flower{to{transform:rotate(4deg)}}@keyframes ft-wing{to{transform:scaleX(.2) rotate(-3deg)}}@keyframes ft-wing-right{to{transform:scaleX(.2) rotate(3deg)}}@keyframes ft-flight{0%,100%{transform:translate(0,0) rotate(-9deg)}20%{transform:translate(28px,-25px) rotate(8deg)}43%{transform:translate(65px,8px) rotate(-4deg)}57%,64%{transform:translate(46px,40px) scale(.85)}80%{transform:translate(-18px,3px) rotate(8deg)}}@keyframes ft-perch{0%,55%,100%{transform:translateY(0) rotate(-8deg)}75%{transform:translate(-20px,-25px) rotate(8deg)}}@keyframes ft-rain{to{background-position:30px 120px}}@keyframes ft-depth{0%{transform:scale(.1);opacity:0}20%{opacity:.4}100%{transform:scale(5);opacity:0}}@keyframes ft-flame{to{opacity:.5;transform:scale(.88,1.1)}}@keyframes ft-water{to{transform:scaleX(1.2);opacity:.25}}@keyframes ft-blessing{0%,100%{opacity:0}35%{opacity:.8}70%{opacity:.35;transform:translateX(12%)}}@keyframes ft-seal{35%{filter:brightness(1.2)}100%{filter:brightness(1)}}@keyframes ft-breathe{to{transform:scale(1.006,1.016)}}

@media screen {
.ft-botanical-veins{fill:none;stroke:#c0deec;stroke-width:.45;opacity:.9}
.ft-plant{opacity:.52}.ft-flower{fill:#285673;stroke-width:.55}.ft-explore .ft-plant{height:calc(var(--plant-height)*.68)}
html[data-family-realm='sundial'] .ft-flower{fill:#c6b877;stroke:#f5e8bd}html[data-family-realm='sundial'] .ft-stem,html[data-family-realm='road'] .ft-stem{fill:#355244;stroke:#a1b89c}html[data-family-realm='road'] .ft-flower{fill:#5576a5}html[data-family-realm='reborn'] .ft-flower{fill:#c7bda1;stroke:#f4e2b6}
.ft-castle-windows{position:absolute;inset:0;pointer-events:none}.ft-castle-windows i{position:absolute;width:2px;height:7px;background:#ffe5ab;box-shadow:0 0 9px 3px #efd39966;opacity:0}[data-ft-event='windows'] .ft-castle-windows i,[data-ft-event='monarch'] .ft-castle-windows i{animation:ft-blessing 3s ease-in-out calc(var(--i)*.18s) both}
html[data-world='fairy-tale'] .lc-library-head{position:sticky;top:-27px;background:#111a2e;color:#f0ecf8;z-index:5;padding-block:10px;border-bottom:1px solid color-mix(in srgb,var(--world-border) 25%,transparent)}
@media(max-width:600px){html[data-world='fairy-tale'] .lc-library-head{top:-15px}.ft-explore .ft-plant{height:65px}}
}
@media screen {html[data-world='fairy-tale'] .housekeeper-greeting{width:fit-content;max-width:100%;margin:14px auto;padding:10px 22px;border-radius:24px;background:color-mix(in srgb,var(--world-surface) 94%,transparent)!important;box-shadow:0 2px 14px #0310211f;color:var(--world-text);text-shadow:none}html[data-world='fairy-tale'] .greeting-name{color:var(--world-accent)} }


/* Source: inventory-operations.css */
.inventory-operations{margin-block:1rem}.inventory-view-tabs,.inventory-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-block:.8rem}.inventory-view-tabs [aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.inventory-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.65rem}.inventory-metric{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;border:1px solid var(--border);border-radius:12px;padding:1rem;background:var(--panel);color:var(--text);text-align:left}.inventory-metric strong{font-size:1.7rem}.inventory-metric small{opacity:.75;font-size:.78rem}.inventory-actions label{flex:1;min-width:180px}.inventory-summary{display:flex;flex-wrap:wrap;gap:1rem}.inventory-operation-dialog{width:min(900px,94vw);max-width:94vw}.inventory-operation-dialog h3{display:flow-root;clear:both}.inventory-operation-dialog input,.inventory-operation-dialog select,.inventory-operation-dialog textarea{max-width:100%;min-width:0}.inventory-operation-dialog .dc-dialog-content{min-width:0}.inventory-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.inventory-order-line{display:grid;grid-template-columns:minmax(120px,2fr) minmax(70px,1fr) minmax(70px,1fr) auto;gap:.5rem;align-items:end;padding-block:.6rem;border-bottom:1px solid var(--border)}.inventory-item-image{max-width:160px;max-height:160px;object-fit:contain;border-radius:12px}.inventory-notice{border-left:3px solid var(--accent);padding:.6rem}.inventory-operations .dc-table{min-width:650px}.inventory-operation-dialog .dc-table input{width:100px}.inventory-operation-dialog label{margin-block:.5rem}@media(max-width:600px){.inventory-form-grid{grid-template-columns:1fr}.inventory-order-line{grid-template-columns:1fr 1fr}.inventory-order-line strong{grid-column:1/-1}.inventory-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-metric{padding:.7rem}.inventory-operation-dialog{width:94vw}.inventory-operations .dc-heading{align-items:flex-start}}@media print{.inventory-view-tabs,.inventory-actions,.inventory-operations button,.inventory-operations .dc-filters{display:none!important}.inventory-operations .dc-scroll{overflow:visible}.inventory-operations .dc-table{min-width:0;font-size:9pt}}

.inventory-operation-dialog label{display:grid;gap:.3rem;min-width:0}.inventory-operation-dialog label:has(input[type=checkbox]){display:flex;align-items:center}.inventory-operation-dialog label>input:not([type=checkbox]),.inventory-operation-dialog label>select,.inventory-operation-dialog label>textarea{width:100%;min-width:0}.inventory-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.inventory-dialog-heading h3{margin:0}.inventory-dialog-heading [data-inventory-close]{float:none;flex:none}.inventory-operation-dialog [data-tracker-close]{float:none}


/* Source: room-operations-profile.css */
/* Current operations composed inside the existing room drawer. */
.room-operations-profile { border-block:1px solid var(--border,#8c8c8c55); padding-block:1rem; min-width:0; }
.rop-heading { display:flex; align-items:start; justify-content:space-between; gap:.75rem; flex-wrap:wrap; }
.rop-heading h3 { margin:0; }
.rop-heading p { font-size:.82rem; opacity:.8; max-width:48ch; }
.rop-section { border:1px solid var(--border,#8c8c8c55); border-radius:.65rem; margin-block:.6rem; }
.rop-section>summary { padding:.8rem; cursor:pointer; }
.rop-section>summary>span { display:block; margin:.25rem 0 0 1rem; font-size:.82rem; }
.rop-section-body { padding:0 .8rem .8rem; }
.rop-list { padding:0; margin:.65rem 0; list-style:none; }
.rop-list>li { display:flex; flex-direction:column; gap:.25rem; padding:.65rem 0; border-bottom:1px solid var(--border,#8c8c8c33); overflow-wrap:anywhere; }
.rop-list>li>span,.rop-list>li>small { font-size:.83rem; }
.rop-list p { margin:.25rem 0; white-space:pre-wrap; }
.rop-history { margin-top:.8rem; }
.rop-history>summary { cursor:pointer; padding-block:.35rem; }
.rop-history button { margin-top:.5rem; }
.room-operations-profile button { white-space:normal; max-width:100%; }


/* Source: custom-trackers.css */
.custom-trackers { min-width:0; }
.custom-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:14px; margin-top:18px; }
.custom-card { display:grid; gap:9px; text-align:left; padding:20px; border:1px solid var(--border); border-radius:16px; background:var(--panel); color:var(--text); cursor:pointer; overflow-wrap:anywhere; }
.custom-card > span:first-child { font-size:30px; }.custom-card strong { font-size:1.1rem; }.custom-card small { opacity:.75; }
.custom-card:hover,.custom-card:focus-visible { border-color:var(--accent); outline-offset:3px; }
.custom-form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:12px; }
.custom-role { display:flex; flex-wrap:wrap; gap:12px; align-items:center; padding:10px 0; }.custom-role strong { flex:1 1 130px; }
.custom-field-list { display:grid; gap:12px; margin:16px 0; }.custom-field-list article { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:15px; border:1px solid var(--border); border-radius:12px; }.custom-field-list article strong { flex:1 1 150px; }.custom-field-list article p { flex-basis:100%; }
.custom-trackers .suite-toolbar { flex-wrap:wrap; }.custom-trackers .suite-toolbar select { max-width:100%; }.custom-trackers .dc-table-scroll { max-width:100%; overflow:auto; }
.custom-trackers pre,#custom-tracker-editor pre,#custom-tracker-review pre { white-space:pre-wrap; overflow-wrap:anywhere; max-width:100%; font-size:.8rem; }
#custom-tracker-editor,#custom-tracker-review { max-width:min(900px,calc(100vw - 24px)); width:850px; }
#custom-tracker-editor form { display:grid; gap:14px; }#custom-tracker-editor label { display:grid; gap:6px; min-width:0; }#custom-tracker-editor label:has(input[type=checkbox]),#custom-tracker-editor .custom-role label { display:flex; align-items:center; }
#custom-tracker-editor input:not([type=checkbox]),#custom-tracker-editor select,#custom-tracker-editor textarea { width:100%; min-width:0; max-width:100%; box-sizing:border-box; }
#custom-tracker-editor fieldset { min-width:0; padding:16px; border:1px solid var(--border); border-radius:12px; }
.custom-preview { max-height:55vh; overflow:auto; }.custom-preview article { border-top:1px solid var(--border); padding:12px 0; }.custom-change { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.custom-change > div { min-width:0; }
@media(max-width:540px){.custom-change{grid-template-columns:1fr}.custom-trackers .suite-heading{display:block}.custom-trackers .suite-toolbar{gap:7px}.custom-card{padding:16px}}

.custom-trackers nav[aria-label="Custom tracker"]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:14px 0}.custom-trackers nav[aria-label="Custom tracker"] .button{min-width:0;padding:10px 5px;font-size:.88rem}.custom-tools{margin:12px 0}.custom-tools>summary{cursor:pointer;font-weight:600;padding:8px 0}.custom-tools .suite-toolbar{margin:8px 0}.custom-trackers>label:has([data-custom-archived]){display:flex;gap:8px;align-items:center}


/* Source: schedule-availability.css */
.schedule-grid .schedule-availability-row th { text-align:left; font-family:inherit; font-size:12px; color:var(--text); white-space:normal; }
.schedule-availability-count { color:var(--text); background:transparent; border:1px solid var(--line, #8885); border-radius:8px; min-height:36px; min-width:36px; padding:5px 8px; font:inherit; font-weight:700; cursor:pointer; }
.schedule-availability-count::before { content:''; display:inline-block; width:6px; height:6px; margin-right:5px; border-radius:50%; background:var(--availability-color, #888); }
.schedule-availability-count[data-availability-status="plenty"] { --availability-color:#45a76a; background:color-mix(in srgb, #45a76a 10%, transparent); }
.schedule-availability-count[data-availability-status="limited"] { --availability-color:#d99728; background:color-mix(in srgb, #d99728 10%, transparent); }
.schedule-availability-count[data-availability-status="sold-out"] { --availability-color:#d75555; background:color-mix(in srgb, #d75555 10%, transparent); }
.schedule-availability-count:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.schedule-availability-dialog { box-sizing:border-box; width:min(520px, calc(100vw - 28px)); max-height:85dvh; overflow:auto; background:var(--panel, #fff); color:var(--text, #202020); border:1px solid var(--line, #8885); border-radius:var(--radius, 16px); padding:22px; }
.schedule-availability-dialog::backdrop { background:#0007; }
.schedule-availability-dialog h3 { margin-top:0; }
.schedule-availability-dialog section { margin:16px 0; }
.schedule-availability-dialog h4 { margin:0 0 8px; }
.availability-room-list { display:flex; flex-wrap:wrap; gap:7px; }
.availability-room-list span { padding:5px 9px; border:1px solid var(--line, #8885); border-radius:7px; }

.schedule-availability-note { font-size:12px; line-height:1.5; margin:10px 0; }


/* Source: navigation-presentation.css */
/* One visual vocabulary, scoped to navigation; layout and permissions remain
   owned by the existing sidebar/dock/modal controllers. */
html[data-navigation-ready][data-theme][data-mode]{
 --nav-base:var(--world-surface,var(--panel,#faf9f5));
 --nav-raised:var(--world-elevated,var(--panel-2,var(--panel)));
 --nav-ink:var(--world-text,var(--text));--nav-muted:var(--world-secondary,var(--faint));
 --nav-accent:var(--world-accent,var(--accent));--nav-second:var(--navigation-edge,var(--world-accent-secondary,var(--accent)));
 --nav-solid:var(--navigation-tint,color-mix(in srgb,var(--nav-base) 88%,var(--nav-accent)));
 --nav-solidness:clamp(88%,var(--tuner-panel-solid,98%),100%);
 --nav-texture:none;--nav-ring-display:none;--nav-mote-shape:50%;
 --nav-motion-seconds:calc(22s / var(--tuner-motion-speed,1));
 --nav-glow:calc(14px * var(--tuner-glow-number,.5));
 --nav-effect:var(--tuner-effects-number,1);
}
html[data-navigation-ready][data-theme][data-mode][data-navigation-surface='portal']{--nav-ring-display:block;--nav-texture:repeating-linear-gradient(90deg,transparent 0 34px,color-mix(in srgb,var(--nav-accent) 6%,transparent) 35px 36px)}
html[data-navigation-ready][data-theme][data-mode][data-navigation-surface='forest']{--nav-mote-shape:75% 12% 75% 12%;--nav-texture:repeating-linear-gradient(122deg,transparent 0 48px,color-mix(in srgb,var(--nav-second) 7%,transparent) 49px 50px)}
html[data-navigation-ready][data-theme][data-mode][data-navigation-surface='wood']{--nav-texture:repeating-linear-gradient(92deg,transparent 0 9px,color-mix(in srgb,var(--nav-accent) 6%,transparent) 10px 11px);--nav-motion-seconds:calc(38s / var(--tuner-motion-speed,1))}
html[data-navigation-ready][data-theme][data-mode][data-navigation-surface='metal']{--nav-texture:repeating-linear-gradient(0deg,transparent 0 3px,color-mix(in srgb,var(--nav-accent) 6%,transparent) 4px 5px)}
html[data-navigation-ready][data-theme][data-mode][data-navigation-surface='parchment']{--nav-texture:radial-gradient(ellipse at 30% 20%,color-mix(in srgb,var(--nav-second) 10%,transparent),transparent 65%)}
/* Join the existing material layer: its important modal rule outranks any
   unlayered override, regardless of selector specificity. Studio stays first. */
@layer surface-material {
html[data-navigation-ready][data-theme][data-mode][data-navigation-surface] :is(.sidebar,#mobile-nav-sheet){
 background:radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--nav-accent) 15%,transparent),transparent 64%),var(--nav-texture),color-mix(in srgb,var(--nav-solid) var(--nav-solidness),transparent)!important;
 color:var(--nav-ink)!important;border-color:color-mix(in srgb,var(--nav-second) 46%,var(--nav-base))!important;
 box-shadow:inset -1px 0 color-mix(in srgb,var(--nav-second) 30%,transparent),inset 0 1px #ffffff35,0 10px 35px -24px var(--nav-accent)!important;
 backdrop-filter:blur(clamp(0px,var(--tuner-glass-blur,12px),14px)) saturate(1.12)!important;-webkit-backdrop-filter:blur(clamp(0px,var(--tuner-glass-blur,12px),14px)) saturate(1.12)!important;
 isolation:isolate;
}
}
html[data-navigation-ready] .sidebar>:is(.brand,nav,.sidebar-foot),html[data-navigation-ready] #mobile-nav-sheet>:not(.nav-environment){position:relative;z-index:1}
html[data-navigation-ready] .sidebar nav{position:relative;scrollbar-color:color-mix(in srgb,var(--nav-accent) 42%,transparent) transparent}
html[data-navigation-ready][data-theme][data-mode] .brand{color:var(--nav-ink);border-bottom:1px solid color-mix(in srgb,var(--nav-second) 25%,transparent);padding-bottom:16px;margin-bottom:12px}
html[data-navigation-ready][data-theme][data-mode] .brand span{color:var(--nav-muted)!important}
html[data-navigation-ready] .brand-mark-img{filter:drop-shadow(0 0 var(--nav-glow) color-mix(in srgb,var(--nav-accent) 35%,transparent))}
html[data-navigation-ready] .sidebar-foot{border-top:1px solid color-mix(in srgb,var(--nav-second) 24%,transparent);padding-top:10px}
html[data-navigation-ready][data-theme][data-mode] :is(.nav-item,.mobile-nav-sheet-item){
 color:var(--nav-ink)!important;background:color-mix(in srgb,var(--nav-base) 34%,transparent)!important;
 border:1px solid transparent!important;box-shadow:none!important;min-height:44px;
 transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
html[data-navigation-ready][data-theme][data-mode] :is(.nav-item,.mobile-nav-sheet-item):hover{
 background:color-mix(in srgb,var(--nav-accent) 12%,var(--nav-base))!important;border-color:color-mix(in srgb,var(--nav-accent) 40%,transparent)!important;
}
html[data-navigation-ready][data-theme][data-mode] :is(.nav-item,.mobile-nav-sheet-item).active{
 color:var(--nav-ink)!important;font-weight:750;
 background:linear-gradient(115deg,color-mix(in srgb,var(--nav-accent) 18%,var(--nav-base)),color-mix(in srgb,var(--nav-second) 12%,var(--nav-base)))!important;
 border-color:color-mix(in srgb,var(--nav-accent) 65%,var(--nav-base))!important;
 box-shadow:inset 3px 0 var(--nav-accent),0 0 var(--nav-glow) color-mix(in srgb,var(--nav-accent) 20%,transparent)!important;
}
html[data-navigation-ready] :is(.nav-item,.mobile-nav-sheet-item):focus-visible,html[data-navigation-ready] :is(#mobile-nav-select,.nav-room-search input):focus-visible{outline:3px solid var(--nav-accent)!important;outline-offset:-3px}
html[data-navigation-ready] :is(.nav-item,.mobile-nav-sheet-item):active{transform:scale(.985)}
html[data-navigation-ready][data-theme][data-mode] :is(.nav-item>span:first-child,.world-mobile-icon){color:var(--nav-accent)!important;background:color-mix(in srgb,var(--nav-accent) 9%,var(--nav-base))!important;border-color:color-mix(in srgb,var(--nav-accent) 25%,transparent)!important}
html[data-navigation-ready] :is(.nav-item,.mobile-nav-sheet-item).active :is(span:first-child,.world-mobile-icon){filter:drop-shadow(0 0 calc(var(--nav-glow) * .35) color-mix(in srgb,var(--nav-accent) 35%,transparent))}
html[data-navigation-ready][data-theme][data-mode] :is(.nav-room-search input,.nav-room-search button,#mobile-nav-select,.sidebar-foot .button,#mobile-nav-sheet .button){
 color:var(--nav-ink)!important;background:color-mix(in srgb,var(--nav-base) 92%,var(--nav-accent))!important;
 border-color:color-mix(in srgb,var(--nav-accent) 38%,var(--nav-base))!important;box-shadow:inset 0 1px #ffffff35!important;
}
html[data-navigation-ready] .nav-room-search input::placeholder{color:var(--nav-muted)!important;opacity:1}
html[data-navigation-ready][data-theme][data-mode] .nav-room-search{display:grid!important;grid-template-columns:minmax(0,1fr) 44px;min-width:0;gap:6px}
html[data-navigation-ready][data-theme][data-mode] .nav-room-search input{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box}
html[data-navigation-ready][data-theme][data-mode] .nav-room-search button{width:44px!important;min-width:44px!important;height:44px;min-height:44px;padding:0}
html[data-navigation-ready] :is(.mobile-nav-selector-label,.mobile-nav-sheet-head strong,.mobile-nav-sheet-reorder span){color:var(--nav-muted)!important}
html[data-navigation-ready] .mobile-nav-selector-chevron{color:var(--nav-accent)!important;pointer-events:none!important}
.nav-environment,.nav-environment *,.nav-selection-indicator{pointer-events:none!important;user-select:none}
.nav-environment{position:absolute!important;inset:0;overflow:hidden;z-index:0;opacity:calc(.8 * var(--nav-effect));filter:brightness(clamp(.55,calc(var(--tuner-bg-brightness-number,1) * var(--tuner-bg-dimming-number,1)),1.25));contain:paint}
.nav-mote{position:absolute;left:var(--mx);top:var(--my);width:3px;height:3px;border-radius:var(--nav-mote-shape);background:var(--nav-accent);box-shadow:0 0 8px 2px color-mix(in srgb,var(--nav-accent) 36%,transparent);opacity:.35;animation:nav-mote-travel var(--nav-motion-seconds) ease-in-out infinite alternate;animation-delay:calc(var(--mote) * -3.2s)}
.nav-light-ring{display:var(--nav-ring-display);position:absolute;width:150px;aspect-ratio:1;right:-76px;top:11%;border:1px solid color-mix(in srgb,var(--nav-second) 55%,transparent);border-radius:50%;box-shadow:0 0 calc(var(--nav-glow) * 1.7) color-mix(in srgb,var(--nav-second) 16%,transparent),inset 0 0 calc(var(--nav-glow) * 1.5) color-mix(in srgb,var(--nav-accent) 15%,transparent);animation:nav-ring-breathe calc(12s / var(--tuner-motion-speed,1)) ease-in-out infinite alternate}
.nav-scanner{display:none;position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,color-mix(in srgb,var(--nav-accent) 10%,transparent) 49%,transparent 55%);animation:nav-scan calc(17s / var(--tuner-motion-speed,1)) linear infinite}
html[data-navigation-motion='scanner'] .nav-scanner{display:block}
html[data-navigation-motion='scanner'] .nav-mote,html[data-navigation-motion='candle'] .nav-mote,html[data-navigation-motion='none'] .nav-mote{display:none}
html[data-navigation-motion='candle'] .nav-environment{background:radial-gradient(ellipse at 0 65%,color-mix(in srgb,var(--nav-accent) 16%,transparent),transparent 70%);animation:nav-candle calc(8s / var(--tuner-motion-speed,1)) ease-in-out infinite alternate}
html[data-navigation-motion='dust'] .nav-mote{width:2px;height:2px;opacity:.22;box-shadow:none}
html[data-theme-tuner-motion='low'] .nav-mote{animation-name:nav-mote-low}
html[data-theme-tuner-motion='high'] .nav-mote{animation-name:nav-mote-high}
html[data-theme-tuner-particles='low'] .nav-mote:nth-of-type(n+5){display:none}
html:not([data-theme-tuner-particles='high']) .nav-mote:nth-of-type(n+7){display:none}
html[data-theme-tuner-particles='off'] .nav-mote{display:none}
.nav-selection-indicator{position:absolute;top:0;left:0;width:3px;border-radius:6px;background:var(--nav-accent);box-shadow:0 0 var(--nav-glow) var(--nav-accent);z-index:3;opacity:.95}
.nav-selection-indicator[data-animate='yes']{transition:transform .24s cubic-bezier(.2,.8,.2,1)}
.nav-selection-indicator[hidden]{display:none!important}
html[data-navigation-ready] .nav-item:is(:hover,:focus-visible,.active)>span:first-child{animation:nav-icon-glow calc(.7s / var(--tuner-motion-speed,1)) ease-out}
html[data-navigation-ready] .nav-item[data-view='maintenance-view']:is(:hover,:focus-visible)>span:first-child{animation:nav-icon-turn .6s ease-out}
html[data-navigation-ready] .nav-item[data-pet-open]:is(:hover,:focus-visible)>span:first-child{animation:nav-icon-hop .6s ease-out}
html[data-navigation-ready] .nav-item[data-view='inventory-view']:is(:hover,:focus-visible)>span:first-child{animation:nav-icon-glow .8s ease-out}
html[data-navigation-ready] .mobile-nav-sheet-item.active>.world-mobile-icon{animation:nav-icon-glow .7s ease-out}
html[data-navigation-ready] #mobile-nav-sheet[open] .mobile-nav-sheet-list{animation:nav-menu-reveal .18s ease-out}
@keyframes nav-mote-travel{from{transform:translate3d(0,0,0);opacity:.16}to{transform:translate3d(8px,-32px,0);opacity:.5}}
@keyframes nav-mote-low{from{transform:translate3d(0,0,0)}to{transform:translate3d(3px,-12px,0)}}
@keyframes nav-mote-high{from{transform:translate3d(-4px,6px,0)}to{transform:translate3d(12px,-46px,0)}}
@keyframes nav-ring-breathe{from{transform:scale(.97);opacity:.45}to{transform:scale(1.04);opacity:.8}}
@keyframes nav-scan{from{transform:translateY(-80%)}to{transform:translateY(80%)}}
@keyframes nav-candle{from{opacity:.3}to{opacity:.65}}
@keyframes nav-icon-turn{0%,100%{transform:rotate(0)}40%{transform:rotate(-12deg)}70%{transform:rotate(6deg)}}
@keyframes nav-icon-hop{0%,100%{transform:translateY(0)}40%{transform:translateY(-3px)}}
@keyframes nav-icon-glow{0%,100%{filter:brightness(1)}45%{filter:brightness(1.18) drop-shadow(0 0 5px var(--nav-accent))}}
@keyframes nav-menu-reveal{from{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:700px){
 @layer surface-material {html[data-navigation-ready][data-theme][data-mode] #app-view>.sidebar{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}
 html[data-navigation-ready][data-theme][data-mode] .mobile-nav-dock-tools{background:radial-gradient(ellipse at 5% 0,color-mix(in srgb,var(--nav-accent) 16%,transparent),transparent 70%),color-mix(in srgb,var(--nav-solid) var(--nav-solidness),transparent)!important;color:var(--nav-ink)!important;border-color:color-mix(in srgb,var(--nav-second) 45%,var(--nav-base))!important;box-shadow:0 -4px 20px -14px var(--nav-accent),inset 0 1px #ffffff40!important;backdrop-filter:blur(var(--tuner-glass-blur,12px))!important;-webkit-backdrop-filter:blur(var(--tuner-glass-blur,12px))!important}
 html[data-navigation-ready] .sidebar>.nav-environment{display:none}
 html[data-navigation-ready] #mobile-nav-sheet .nav-mote:nth-of-type(n+6){display:none}
 html[data-navigation-ready] #mobile-nav-sheet{--nav-motion-seconds:calc(32s / var(--tuner-motion-speed,1))}
 html[data-navigation-ready] #mobile-nav-sheet :is(.mobile-nav-sheet-item,.button){min-height:44px}
 html[data-navigation-ready] #mobile-nav-select{min-height:44px;outline-offset:-3px}
}
/* Preference and lifecycle gates never dim text or remove the static design. */
html:is([data-background-animations='off'],[data-animation-style='none'],[data-theme-tuner-motion='off'],[data-theme-tuner-environment='still'],[data-navigation-hidden]) .nav-environment,
html:is([data-background-animations='off'],[data-animation-style='none'],[data-theme-tuner-motion='off'],[data-theme-tuner-environment='still'],[data-navigation-hidden]) .nav-environment *{animation:none!important}
html:is([data-decorative-animations='off'],[data-theme-tuner-decorative='off'],[data-theme-tuner-motion='off']) :is(.nav-item,.mobile-nav-sheet-item,.nav-item>span,.world-mobile-icon,.nav-selection-indicator,#mobile-nav-sheet,.mobile-nav-sheet-list){animation:none!important;transition:none!important;transform:none}
@media(prefers-reduced-motion:reduce){html[data-navigation-ready] :is(.nav-environment,.nav-environment *, .nav-item,.nav-item>span,.mobile-nav-sheet-item,.world-mobile-icon,.nav-selection-indicator,#mobile-nav-sheet,.mobile-nav-sheet-list){animation:none!important;transition:none!important}html[data-navigation-ready] :is(.nav-item,.mobile-nav-sheet-item):active{transform:none}}
@media print{.nav-environment,.nav-selection-indicator{display:none!important}}

/* Shared row geometry: symbols never borrow label or count width. Long labels
   wrap at words; short labels keep the full flexible middle column. */
:is(.sidebar .nav-item,#mobile-nav-sheet .mobile-nav-sheet-item)[data-view]{
 grid-template-columns:26px minmax(0,1fr) auto;
 align-items:center;column-gap:8px;min-width:0;text-align:start;
}
:is(.sidebar .nav-item,#mobile-nav-sheet .mobile-nav-sheet-item)[data-view]>span:first-child{
 display:grid;place-items:center;width:26px;min-width:26px;height:26px;
 box-sizing:border-box;margin:0;font-size:16px;line-height:1;
}
:is(.sidebar .nav-item,#mobile-nav-sheet .mobile-nav-sheet-item)[data-view]>.nav-label{
 width:auto;min-width:0;font-size:inherit;line-height:1.3;color:inherit;
 text-align:start;white-space:normal;overflow-wrap:normal;word-break:normal;
}
:is(.sidebar .nav-item,#mobile-nav-sheet .mobile-nav-sheet-item)[data-view]>.nav-count{
 grid-column:3;justify-self:end;width:auto;min-width:1.7em;max-width:100%;
 box-sizing:border-box;margin:0;padding:2px 5px;font-size:.85em;
 line-height:1.15;white-space:nowrap;text-align:center;
}
@media(max-width:440px){
 /* A full row keeps icon, label and trailing count readable on narrow phones. */
 #mobile-nav-sheet .mobile-nav-sheet-list{grid-template-columns:minmax(0,1fr)}
}
/* Display belongs to each responsive surface, never to the mixed-specificity
   shared geometry selector. Desktop rows must not participate in phone layout. */
#mobile-nav-sheet .mobile-nav-sheet-item[data-view]{display:grid}
@media(min-width:701px){.sidebar .nav-item[data-view]{display:grid}}
@media(max-width:700px){
 html[data-navigation-ready] #mobile-nav-sheet{
  --nav-solidness:100%;width:min(420px,calc(100% - 24px));max-width:calc(100% - 24px);
  height:auto;max-height:min(70dvh,560px);margin:0 auto;
  left:0;right:0;bottom:calc(72px + env(safe-area-inset-bottom));overflow:hidden;
 }
 html[data-navigation-ready] #mobile-nav-sheet .mobile-nav-sheet-list{
  flex:1 1 auto;height:auto;min-height:0;max-height:min(48dvh,400px);
  overflow-y:auto;overscroll-behavior:contain;
 }
 html[data-navigation-ready] #mobile-nav-sheet :is(.mobile-nav-sheet-head,.nav-room-search,.mobile-nav-sheet-reorder){flex-shrink:0}
 html[data-navigation-ready] #mobile-nav-sheet::backdrop{background:rgba(4,7,12,.65)}
 html[data-navigation-ready] .mobile-nav-dock-tools{align-items:end}
 html[data-navigation-ready] .mobile-nav-selector-field{min-width:0}
 html[data-navigation-ready] #mobile-nav-select{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 html[data-navigation-ready] .workspace{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
 html[data-navigation-ready] .workspace>.topbar{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  height:auto;min-height:96px;gap:6px 8px;padding:10px 12px;
 }
 html[data-navigation-ready] .topbar .page-title-group{min-width:0}
 html[data-navigation-ready] .topbar h1{white-space:nowrap;font-size:clamp(16px,4.3vw,19px)}
 html[data-navigation-ready] .topbar .top-actions{
  grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;min-width:0;justify-content:flex-end;
 }
 html[data-navigation-ready] .topbar .top-actions>*{flex-shrink:0}
 html[data-navigation-ready] .topbar :is(.today-pet-shortcut,.checkin-countdown){white-space:nowrap}
 html[data-navigation-ready] .topbar .today-pet-shortcut{width:auto;font-size:12px;padding-inline:8px;min-height:44px}
 html[data-navigation-ready] .topbar .today-pet-shortcut::first-letter{font-size:inherit}
}
/* Glass palette tokens may themselves contain alpha. Give the phone drawer an
   opaque theme-colored backing beneath its existing texture and accent tint. */
@layer surface-material {
 @media(max-width:700px){
  html[data-navigation-ready][data-theme][data-mode][data-navigation-surface] #mobile-nav-sheet{
   background:radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--nav-accent) 15%,transparent),transparent 64%),var(--nav-texture),linear-gradient(var(--nav-solid),var(--nav-solid)),var(--bg,#101315)!important;
  }
 }
}


/* Source: staff-access.css */
.staff-access-toolbar,.staff-access-group-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.7rem 0}
.staff-access-toolbar label{display:grid;gap:.25rem}.staff-access-group{border:1px solid var(--border);border-radius:10px;padding:.7rem;margin:.6rem 0}.staff-access-group summary{font-weight:700;cursor:pointer}.access-option small{display:block;color:var(--muted);font-size:.76rem}.staff-access-form .access-options{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.employee-preview-dialog{width:min(1500px,98vw);max-width:98vw;height:94vh;max-height:94vh;padding:.7rem;background:var(--panel,var(--bg));color:var(--text);border:1px solid var(--border);border-radius:12px}
.employee-preview-dialog[open]{display:flex;flex-direction:column}.employee-preview-header{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;padding:.5rem}.employee-preview-header span{flex:1;font-size:.85rem}.employee-preview-viewport{flex:1;min-height:0;overflow:auto;text-align:center;background:var(--bg)}.employee-preview-viewport iframe{height:100%;width:100%;border:0;background:var(--bg)}.employee-preview-viewport[data-device=phone] iframe{width:min(390px,100%)}
.employee-preview-header>select{width:auto;min-width:120px;max-width:100%}
.employee-preview-permissions{padding:.4rem .8rem;border-block:1px solid var(--border);max-height:28vh;overflow:auto;font-size:.8rem}.employee-preview-permissions p{margin:.4rem 0}.employee-preview-permissions summary{cursor:pointer;font-weight:600}
[data-employee-preview=true] #user-chip::after{content:'EMPLOYEE PREVIEW · Fictional data';display:block;font-size:.7rem}[data-employee-preview=true] button:disabled{cursor:not-allowed}


/* Source: role-editor.css */
.role2-dialog{box-sizing:border-box;width:min(980px,96vw);max-width:96vw;max-height:92dvh;padding:0;background:var(--surface,var(--panel));color:var(--text);border:1px solid var(--border);border-radius:12px;overflow:auto}
.role2-form{display:grid;gap:.75rem;padding:0 1rem 1rem}.role2-form label{display:grid;gap:.3rem;min-width:0}.role2-form :is(input,select){max-width:100%;min-width:0;box-sizing:border-box}.role2-header{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:1fr auto;gap:.6rem;background:var(--surface,var(--panel));padding:.75rem 0;border-bottom:1px solid var(--border)}.role2-header h3,.role2-header p{margin:0}.role2-header>label,.role2-tools{grid-column:1/-1}.role2-tools,.role2-copy{display:flex;gap:.4rem;flex-wrap:wrap;align-items:end}.role2-copy label{flex:1}.role2-copy select{width:100%}.role2-group{border:1px solid var(--border);border-radius:9px;margin:.5rem 0;padding:.6rem}.role2-group>summary{font-weight:650;cursor:pointer;min-height:32px}.role2-group>summary span{float:right;font-size:.75rem;opacity:.75}.role2-form .role2-option{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(70px,auto);align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--border);min-height:40px}.role2-option>input{width:18px;height:18px}.role2-option small{display:block;font-size:.72rem;color:var(--muted,var(--text));overflow-wrap:anywhere}.role2-children{padding-left:.9rem;border-left:2px solid var(--border);margin-left:.5rem}.role2-footer{position:sticky;bottom:0;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;background:var(--surface,var(--panel));padding:.7rem 0;z-index:2;border-top:1px solid var(--border)}.role2-footer p{flex:1;min-width:100px;margin:0;font-size:.8rem}.role2-comparison{overflow:auto;max-height:45vh}.role2-comparison table{border-collapse:collapse;width:100%;font-size:.8rem}.role2-comparison :is(th,td){padding:.4rem;text-align:left;border:1px solid var(--border)}.role2-comparison .different{background:color-mix(in srgb,var(--accent) 12%,transparent)}.role2-form [hidden]{display:none!important}
@media(max-width:600px){.role2-dialog{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;margin:0;border-radius:0}.role2-form{padding:0 .65rem .65rem}.role2-header{gap:.4rem}.role2-form :is(input:not([type=checkbox]),select){font-size:16px;min-height:40px}.role2-form .button{min-height:44px}.role2-form .role2-option{grid-template-columns:20px minmax(0,1fr);min-height:44px}.role2-option>[data-role-effective]{grid-column:2}.role2-children{padding-left:.4rem;margin-left:.2rem}.role2-copy{display:grid;grid-template-columns:1fr 1fr}.role2-copy label{grid-column:1/-1}.role2-footer{padding-bottom:max(.7rem,env(safe-area-inset-bottom))}}


/* Source: matrix-toolbar.css */
/* Toolbar-only presentation. Matrix geometry, cells, editing and frozen axes
   remain in operations-sheet.css and the original domain controllers. */
.operations-sheet-host .matrix-toolbar-heading{display:flex;align-items:baseline;gap:12px;padding:0!important;margin:0 0 6px!important;min-height:28px}
.operations-sheet-host .matrix-toolbar-heading>div:first-child{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px;min-width:0}
.operations-sheet-host .matrix-toolbar-heading h2{font-size:1.125rem!important;line-height:1.3;margin:0!important}
.operations-sheet-host .matrix-toolbar-heading p{font-size:12px;line-height:1.4;margin:0!important;color:var(--muted,var(--text))}
.operations-sheet-host .matrix-toolbar-original{display:none!important}
.operations-sheet-host .mm-feedback:empty{display:none}
.matrix-toolbar-popover .wo-tabs{display:grid;margin:0;gap:6px}
.sheet-toolbar.matrix-toolbar{display:block;min-width:0;max-width:100%;padding:4px 0 8px;margin:0 0 4px;font-size:12px;color:var(--text)}
.matrix-toolbar-desktop{display:grid;gap:6px}.matrix-toolbar-row{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:nowrap}
.matrix-toolbar-secondary{justify-content:flex-start}.matrix-toolbar-search-slot{flex:1 1 250px;min-width:180px;max-width:550px}
.matrix-toolbar-search{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:6px;align-items:center;min-width:0;width:100%}
.matrix-toolbar-search-scope{grid-column:2;grid-row:1;margin:0!important}
.matrix-toolbar-search-field{grid-column:1;grid-row:1;margin:0!important;font-size:0;min-width:0}
.matrix-toolbar-search-field input{font-size:13px;width:100%!important;min-width:0!important;margin:0!important}
.matrix-toolbar-search-note{grid-column:1/-1;font-size:10px;line-height:1.2;color:var(--muted,var(--text));display:block}
.matrix-toolbar :is(input[type=search],select){width:auto;min-width:0;max-width:100%;min-height:36px;border:1px solid var(--border);border-radius:var(--world-control,8px);padding:5px 8px;color:var(--text);background:var(--panel);font:inherit;font-size:12px}
.matrix-toolbar .matrix-toolbar-row>label{display:flex;align-items:center;gap:5px;margin:0;font-size:11px;white-space:nowrap}
.matrix-toolbar .button{font-size:12px;min-height:36px;padding:5px 9px;white-space:nowrap;margin:0}
.matrix-toolbar .sheet-density{display:flex;align-items:center;gap:5px;flex:0 0 auto;font-size:11px}
.matrix-toolbar-mobile{display:none;gap:6px;align-items:center}
.matrix-toolbar-status{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;min-height:18px;margin-top:4px;color:var(--muted,var(--text));font-size:11px;line-height:1.35}
.matrix-toolbar-status [data-sheet-status]:empty{display:none}
.matrix-toolbar-context{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 8px;margin-top:6px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--accent) 8%,var(--panel))}
.matrix-toolbar-context [data-sheet-selected]{font-weight:700;margin-right:auto}
.matrix-toolbar-context[hidden]{display:none!important}
.matrix-toolbar-context{box-sizing:border-box;min-height:50px}
.matrix-toolbar-context[data-empty=true]{visibility:hidden}
.matrix-toolbar-domain-context:empty{display:none}
.matrix-toolbar-domain-context :is(.ri-bulk-bar,.dc-bulk-bar){margin:6px 0 0;padding:6px 8px;gap:6px;min-width:0}
.matrix-toolbar-popover{position:fixed;inset:auto;margin:0;box-sizing:border-box;width:min(360px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:min(70dvh,480px);overflow:auto;overscroll-behavior:contain;z-index:1000;padding:10px;border:1px solid var(--surface-edge,var(--border));border-radius:var(--world-control,12px);background:var(--surface-elevated,var(--world-elevated,var(--panel)));color:var(--surface-ink,var(--text));box-shadow:0 16px 42px -16px #0008;font-size:13px;line-height:1.45}
.matrix-toolbar-popover:popover-open,.matrix-toolbar-popover[open]{display:flex;flex-direction:column;align-items:stretch;gap:7px}
.matrix-toolbar-popover::backdrop{background:transparent}
.matrix-toolbar-popover{background:linear-gradient(var(--surface-elevated,var(--panel)),var(--surface-elevated,var(--panel))),var(--bg,var(--panel));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.matrix-toolbar-popover .button{text-align:left;white-space:normal;min-height:38px;max-width:100%;justify-content:flex-start}
.matrix-toolbar-popover :is(input,select,textarea){max-width:100%;width:100%;box-sizing:border-box;min-width:0;min-height:38px;font-size:13px}
.matrix-toolbar-popover label{display:grid;gap:4px;margin:0;min-width:0;font-size:12px}
.matrix-toolbar-popover label:has(input[type=checkbox]){display:flex;align-items:flex-start;gap:8px;padding:5px 0;white-space:normal}
.matrix-toolbar-popover input[type=checkbox]{width:18px;min-height:18px;flex:0 0 18px;margin-top:2px}
.matrix-toolbar-popover details{margin:0}.matrix-toolbar-popover summary{min-height:38px;cursor:pointer;padding:6px 0;font-weight:600}
.matrix-toolbar-popover details>div{max-height:240px;overflow:auto}
.matrix-toolbar-popover :is(p,small){display:block;margin:0;line-height:1.5;font-size:12px;color:inherit}
.matrix-toolbar-popover .eyebrow{font-size:10px;letter-spacing:.05em}
.matrix-toolbar-menu-group{display:grid;gap:7px;min-width:0;border:0;padding:0;margin:0}
.matrix-toolbar-menu-group+.matrix-toolbar-menu-group{border-top:1px solid var(--border);padding-top:9px;margin-top:3px}
.matrix-toolbar-menu-group>h3{font-size:11px!important;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,var(--text));margin:0!important;line-height:1.4}
.sheet-toolbar .matrix-toolbar-popover .matrix-toolbar-menu-group>h3{color:inherit!important;text-shadow:none!important}
.matrix-toolbar-menu-group:has(>h3:only-child){display:none}
.matrix-toolbar-popover[data-matrix-toolbar-menu=actions]{width:min(380px,calc(100vw - 24px))}
.matrix-toolbar [hidden]{display:none!important}
.matrix-toolbar[data-matrix-toolbar-mode=mobile] .matrix-toolbar-desktop{display:none}
.matrix-toolbar[data-matrix-toolbar-mode=mobile] .matrix-toolbar-mobile{display:flex}
.matrix-toolbar[data-matrix-toolbar-mode=mobile] .matrix-toolbar-mobile>.button{flex:1;min-width:0;min-height:44px;padding:6px;font-size:12px;white-space:normal}
.matrix-toolbar[data-matrix-toolbar-mode=mobile] .matrix-toolbar-popover :is(.button,input,select,summary){min-height:44px}
.matrix-toolbar[data-matrix-toolbar-mode=mobile] .matrix-toolbar-popover input[type=checkbox]{min-height:18px}
.matrix-toolbar[data-matrix-toolbar-mode=mobile] .matrix-toolbar-search-note{display:block}
.matrix-toolbar :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media print{.matrix-toolbar,.matrix-toolbar-popover{display:none!important}}

/* Active criteria stay beside their result grid in both toolbar modes. */
.matrix-toolbar-filter-context{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 10px;margin:6px 0;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--accent) 6%,var(--panel));line-height:1.45;overflow-wrap:anywhere}
.matrix-toolbar-filter-context>span{flex:1;min-width:0}
.matrix-toolbar-filter-context>.button{min-height:36px;white-space:normal}
.matrix-toolbar-popover .matrix-toolbar-search-note{margin-top:2px}
.matrix-toolbar[data-matrix-toolbar-mode=mobile] .matrix-toolbar-filter-context>.button{min-height:44px}
/* Keep the search guidance available to assistive technology without adding a third toolbar line. */
.matrix-toolbar-search-note{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}
.sheet-toolbar.matrix-toolbar{padding-block:2px 4px;margin-bottom:2px}
.matrix-toolbar-desktop{gap:4px}


/* Source: staff-lifecycle.css */
/* Existing staff identities remain in a separate manager history section. */
.inactive-employees{margin-top:12px;border-top:1px solid var(--border);padding-top:8px}
.inactive-employees>summary{min-height:44px;align-content:center;font-weight:700;cursor:pointer}
.staff-lifecycle-dialog{padding:0;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 24px);border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);overflow:hidden}
.staff-lifecycle-dialog[open]{display:flex;flex-direction:column}
.staff-lifecycle-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);flex:none}
.staff-lifecycle-head h3{margin:0;font-size:1.1rem;overflow-wrap:anywhere}
.staff-lifecycle-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:12px 14px;display:grid;gap:10px;font-size:.9rem;overflow-wrap:anywhere}
.staff-lifecycle-body p,.staff-lifecycle-body h4{margin:0}
.staff-lifecycle-body section{display:grid;gap:8px}
.staff-lifecycle-body ul{padding-left:20px;margin:0}
.staff-lifecycle-body label{display:grid;gap:5px}
.staff-lifecycle-rooms{display:grid;gap:8px}
.staff-lifecycle-rooms label{padding:8px;border:1px solid var(--border);border-radius:8px}
.staff-lifecycle-dialog button,.staff-lifecycle-dialog select{min-height:44px;max-width:100%}
.staff-lifecycle-dialog select{height:44px;width:100%;font:inherit;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px;appearance:none}
.staff-lifecycle-actions{flex:none;display:flex;justify-content:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--border);background:var(--surface);padding-bottom:max(10px,env(safe-area-inset-bottom))}
.staff-lifecycle-error{color:var(--danger)}.staff-lifecycle-error:empty{display:none}
.staff-schedule-inactive{font-size:.75rem;color:var(--danger);display:block}
@media(max-width:600px){.staff-lifecycle-dialog{width:100%;max-width:100%;margin:auto auto 0;border-radius:16px 16px 0 0;max-height:calc(100dvh - 12px)}.staff-lifecycle-actions button{flex:1}.staff-lifecycle-dialog select{font-size:16px}}


/* Source: booking-notifications.css */
.booking-inbox-entry{display:flex;align-items:flex-start;gap:10px}.booking-inbox-entry>div{min-width:0}.booking-inbox-entry p,.booking-toast p{font-size:.85rem;line-height:1.5;margin:6px 0;overflow-wrap:anywhere}.booking-notification-actions{display:flex;flex-wrap:wrap;gap:6px}.booking-notification-actions button.button{min-height:36px}.booking-toast-stack{position:fixed;right:16px;top:80px;z-index:2147483647;width:min(360px,calc(100vw - 24px));display:grid;gap:8px;pointer-events:none}.booking-toast{pointer-events:auto;border:1px solid var(--accent);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:0 5px 22px color-mix(in srgb,var(--accent) 20%,transparent);padding:12px;animation:booking-arrive .2s ease-out}.booking-notification-settings{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:14px;max-width:min(480px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:16px}.booking-notification-settings label{display:flex;align-items:center;gap:10px;min-height:44px}.booking-notification-settings p{font-size:.85rem;line-height:1.5}.booking-notification-settings [role=alert]{color:var(--danger)}@keyframes booking-arrive{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.booking-toast{animation:none}}@media(max-width:600px){.booking-toast-stack{right:12px;top:max(70px,env(safe-area-inset-top))}.booking-notification-actions button.button{min-height:44px}}

#notification-panel .notification-head:has([data-booking-preferences]){flex-wrap:wrap;align-items:center}#notification-panel [data-booking-preferences]{min-height:36px}@media(max-width:600px){#notification-panel [data-booking-preferences]{min-height:44px}}

/* Explicit contrast pairs keep urgent booking text legible across immersive themes. */
#notification-panel .booking-inbox-entry.booking-same-day,.booking-toast.booking-same-day{background:#fff1bd;color:#3b2600;border:2px solid #946000;border-left-width:6px;border-radius:10px;padding:12px}#notification-panel .booking-same-day strong,.booking-toast.booking-same-day strong{color:inherit}#notification-panel .booking-same-day .button,.booking-toast.booking-same-day .button{background:transparent;color:inherit;border-color:currentColor;min-height:44px}[data-mode=dark] #notification-panel .booking-inbox-entry.booking-same-day,[data-mode=dark] .booking-toast.booking-same-day{background:#3b2600;color:#fff1bd;border-color:#eac15a}#notification-panel .notification-head-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}#notification-panel [data-notification-clear]{min-height:44px}


/* Source: vacancy-refresh.css */
.vacancy-refresh{margin-block:12px;border-block-start:1px solid var(--border, #8885);padding-block-start:10px;font-size:.9rem;min-width:0}.vacancy-refresh summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 4px;min-height:44px}.vacancy-refresh summary>span{font-size:.86em}.vr-content{padding:4px}.vr-row{border:1px solid var(--border,#8885);border-radius:10px;margin-block:8px;background:var(--surface,var(--panel-bg,transparent));overflow:hidden}.vr-row summary{padding:10px}.vr-row summary>small{flex-basis:100%;font-size:.84em;opacity:.82}.vr-higher{border-inline-start:4px solid var(--danger,#c55)}.vr-light{border-inline-start:4px solid var(--warning,#b98a35)}.vr-verification{color:var(--text,#333)}.vr-row.vr-verification,.vr-hold{border-inline-start:4px solid var(--warning,#b98a35)}.vr-blocked{border-inline-start:4px solid var(--danger,#c55)}.vr-review,.vr-none{border-inline-start:4px solid var(--success,#438969)}.vr-row-body{padding:0 12px 12px}.vr-row-body dl{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,2fr);gap:6px}.vr-row-body dd{margin:0;overflow-wrap:anywhere}.vr-row-body form{padding-block:12px;border-block-start:1px solid var(--border,#8885);display:grid;gap:9px}.vr-row-body label,.vr-settings label{display:grid;gap:5px}.vr-row-body :is(input,select,textarea),.vr-settings :is(input,select,textarea){width:100%;max-width:100%;min-height:44px;box-sizing:border-box;font:inherit}.vr-row-body .vr-check{display:flex;align-items:center;min-height:44px;gap:10px}.vr-row-body .vr-check input{width:20px;min-height:20px;flex:0 0 20px}.vr-actions{display:flex;flex-wrap:wrap;gap:8px}.vacancy-refresh .button,.vr-settings .button{min-height:44px;white-space:normal}.vr-history article{padding:8px;border-block-start:1px solid var(--border,#8885);overflow-wrap:anywhere}.vr-metrics,.vr-tomorrow,.vr-access{font-size:.88em;line-height:1.5}.vr-settings{max-width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;background:var(--surface,var(--panel-bg,#fff));color:var(--text,#222);border:1px solid var(--border,#888);border-radius:14px;padding:18px}.vr-settings form{display:grid;gap:12px}.vr-settings::backdrop{background:#0008}.vr-error{color:var(--danger,#b44)}@media(max-width:480px){.vr-row-body dl{grid-template-columns:1fr}.vr-row-body dd{margin-block-end:5px}.vr-actions>.button{flex:1 1 120px}}@media(prefers-reduced-motion:reduce){.vacancy-refresh *{animation:none!important;transition:none!important}}


/* Source: productivity-mpr.css */
.mpr-panel{padding:0;overflow:hidden}.mpr-period,.mpr-actions{display:flex;gap:.5rem;align-items:end;flex-wrap:wrap;padding:.6rem .8rem}.mpr-period label,.mpr-dialog label,.mpr-weight-fields label{display:grid;gap:.25rem;font-size:.85rem}.mpr-period input,.mpr-period select{min-height:36px;max-width:10rem}.mpr-caption,.mpr-explanation{margin:.5rem .8rem;font-size:.8rem}.mpr-table-wrap{overflow:auto}.mpr-table{width:100%;border-collapse:collapse;font-size:.9rem}.mpr-table th,.mpr-table td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--border,#ccc)}.mpr-table th{white-space:nowrap}.mpr-table td:not(:first-child){font-variant-numeric:tabular-nums}.mpr-name{font:inherit;font-weight:600;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;padding:.25rem 0}.mpr-trend{display:block;font-size:.7rem;opacity:.75;margin-top:.2rem}.mpr-facts{display:flex;gap:1rem;flex-wrap:wrap;margin:.5rem 0}.mpr-facts dt{font-size:.75rem;opacity:.8}.mpr-facts dd{margin:0;font-weight:600}.mpr-worker{display:flex;gap:.3rem;align-items:center;flex-wrap:wrap;margin-top:.4rem;font-size:.75rem}.mpr-worker .button{font-size:.72rem;min-height:30px;padding:.25rem .45rem}.mpr-dialog{width:min(680px,94vw);max-height:88dvh;padding:1rem;color:var(--text,#222);background:var(--surface,var(--panel,#fff));border:1px solid var(--border,#ccc);border-radius:14px;overflow:auto}.mpr-dialog::backdrop{background:#0008}.mpr-dialog header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.mpr-dialog form{display:grid;gap:.7rem}.mpr-share-list{border:1px solid var(--border,#ccc);max-height:40dvh;overflow:auto}.mpr-share-list label{display:flex;align-items:center;gap:.5rem;padding:.35rem}.mpr-share-list input[type=number]{width:6rem;margin-left:auto}.mpr-dialog [role=alert]{color:var(--danger,#b42318)}.mpr-history article{padding:.7rem 0;border-bottom:1px solid var(--border,#ccc)}.mpr-history p{margin:.35rem 0}.mpr-history small{display:block;overflow-wrap:anywhere}.mpr-duty-row,.mpr-weight-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.mpr-duty-row{border-bottom:1px solid var(--border,#ccc);padding:.6rem 0}.mpr-chart span{display:flex;gap:.5rem;align-items:center;font-size:.8rem}.mpr-chart meter{flex:1}.mpr-details{white-space:normal}.mpr-settings{margin-top:1rem}@media(max-width:480px){.mpr-table{font-size:.8rem}.mpr-table th,.mpr-table td{padding:.45rem .35rem}.mpr-table th{font-size:.7rem}.mpr-trend{max-width:100px;font-size:.65rem}.mpr-period{gap:.4rem}.mpr-facts{gap:.6rem}.mpr-period label{font-size:.75rem}}

.mpr-name{display:flex;gap:.3rem;align-items:baseline}.mpr-trend{white-space:nowrap}.mpr-short{display:none} @media(max-width:480px){.mpr-long{display:none}.mpr-short{display:inline;text-decoration:none}.mpr-table th:last-child{min-width:4rem}}

.mpr-panel>.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap}.mpr-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.45rem;margin:.6rem .8rem}.mpr-overview>div{border:1px solid var(--border,#ccc);border-radius:9px;padding:.5rem;background:var(--surface-soft,transparent)}.mpr-overview dt{font-size:.72rem;opacity:.82}.mpr-overview dd{font-size:1.15rem;font-weight:700;margin:.2rem 0 0;font-variant-numeric:tabular-nums}.mpr-employee{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.mpr-edit{font-size:.7rem;min-height:28px;padding:.15rem .4rem}.mpr-missing{display:block;color:var(--danger,#b42318);font-size:.72rem;font-weight:600}.mpr-review-note{margin:.5rem .8rem;padding:.6rem;border:1px solid var(--border,#ccc);border-radius:8px;font-size:.82rem}.mpr-review-note .button{margin:.3rem 0 0}.mpr-dialog{width:min(800px,94vw);padding:0;overscroll-behavior:contain}.mpr-dialog>header{position:sticky;top:0;z-index:2;padding:.7rem .9rem;background:var(--surface,var(--panel,#fff));border-bottom:1px solid var(--border,#ccc)}.mpr-dialog>header h3{margin:0;font-size:1rem}.mpr-dialog>[data-mpr-dialog-body]{padding:.7rem .9rem}.mpr-dialog>[data-mpr-error]{margin:.5rem .9rem}.mpr-shift-top{display:flex;align-items:end;gap:.5rem;flex-wrap:wrap}.mpr-shift-top label{flex:1;min-width:130px}.mpr-shift-roster{display:grid;gap:.45rem}.mpr-shift-row,.mpr-completion-room{border:1px solid var(--border,#ccc);border-radius:9px;padding:.55rem .65rem}.mpr-shift-row>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;font-size:.88rem}.mpr-shift-row>summary small{font-size:.75rem}.mpr-shift-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.55rem}.mpr-shift-fields input,.mpr-shift-fields select,.mpr-shift-top select,.mpr-completion-tasks select{width:100%;min-width:0;box-sizing:border-box;min-height:36px}.mpr-shift-source,.mpr-shift-fields>small,.mpr-shift-actions{grid-column:1/-1;margin:0;font-size:.76rem;overflow-wrap:anywhere}.mpr-inline{display:flex!important;align-items:center;gap:.4rem}.mpr-inline input{width:auto!important;min-height:unset}.mpr-shift-clock{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.mpr-shift-clock[hidden],.mpr-shift-total[hidden]{display:none}.mpr-shift-footer{position:sticky;bottom:0;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.6rem 0;background:var(--surface,var(--panel,#fff));border-top:1px solid var(--border,#ccc)}.mpr-shift-footer [role=status]{font-size:.78rem}.mpr-shift-audit{font-size:.78rem;overflow-wrap:anywhere}.mpr-excluded>summary{opacity:.6}.mpr-shift-actions{display:flex;gap:.4rem;flex-wrap:wrap}.mpr-completion-rooms{display:grid;gap:.5rem;margin:.6rem 0}.mpr-completion-tasks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:.5rem}.mpr-completion-tasks>div{display:grid;gap:.25rem;font-size:.85rem}.mpr-completion-tasks small{opacity:.8;overflow-wrap:anywhere}@media(max-width:600px){.mpr-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.mpr-overview>div:last-child{grid-column:1/-1}.mpr-dialog{max-height:90dvh;width:94vw}.mpr-shift-fields{grid-template-columns:1fr}.mpr-shift-clock{grid-template-columns:repeat(2,minmax(0,1fr))}.mpr-shift-clock>label:last-child{grid-column:1/-1}.mpr-completion-tasks{grid-template-columns:1fr}.mpr-panel>.panel-head [data-mpr-shifts]{margin-left:auto}.mpr-employee{gap:.15rem}.mpr-edit{min-height:32px}}
/* Daily credit review uses the existing glass surfaces and compact controls. */
.mpr-checkout-dialog{width:min(1180px,96vw);max-width:96vw}.mpr-checkout-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:.5rem;margin:.65rem 0}.mpr-checkout-toolbar label{display:grid;gap:.25rem;flex:1 1 180px;min-width:0}.mpr-checkout-toolbar input{max-width:100%;min-width:0}.mpr-checkout-scroll{overflow-x:auto;max-width:100%}.mpr-checkout-table{border-collapse:collapse;width:100%;font-size:.85rem}.mpr-checkout-table th,.mpr-checkout-table td{padding:.5rem;vertical-align:top;border-bottom:1px solid var(--border);text-align:left}.mpr-checkout-table small{display:block;margin-top:.25rem}.mpr-credit-cell{display:flex;align-items:start;gap:.3rem}.mpr-credit-cell input{flex:none;margin-top:.6rem}.mpr-credit-owner{white-space:normal;min-width:90px;text-align:left;overflow-wrap:anywhere}.mpr-review-status{display:inline-block;padding:.2rem .45rem;border-radius:1rem;background:var(--surface);border:1px solid var(--border);margin-bottom:.3rem}.mpr-review-status.reviewed{background:color-mix(in srgb,#54bd86 20%,var(--surface));color:var(--text);border-color:#54bd86}.mpr-review-status.missing{background:color-mix(in srgb,#dfb349 20%,var(--surface));color:var(--text);border-color:#dfb349}.mpr-credit-changed{background:color-mix(in srgb,var(--accent) 15%,transparent);box-shadow:inset 0 2px var(--accent)}.mpr-checkout-editor{margin:.8rem 0;padding:.7rem;border:1px solid var(--accent);border-radius:.7rem;background:var(--surface)}.mpr-checkout-editor .mpr-share-list{max-height:210px;overflow:auto}.mpr-checkout-history article{padding:.5rem 0;border-bottom:1px solid var(--border)}.mpr-checkout-dialog [data-checkout-live]:empty{display:none}
@media(max-width:600px){.mpr-checkout-dialog{width:96vw;padding:.65rem}.mpr-checkout-table{font-size:.8rem;min-width:670px}.mpr-checkout-toolbar>.button{flex:1 1 auto}.mpr-checkout-toolbar label{flex-basis:100%}.mpr-checkout-editor .mpr-share-list label{grid-template-columns:auto minmax(0,1fr) 70px}}
@media(max-width:600px){.mpr-checkout-table{min-width:0;display:block}.mpr-checkout-table thead{display:none}.mpr-checkout-table tbody{display:grid;gap:.65rem}.mpr-checkout-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--border);border-radius:.6rem;overflow:hidden}.mpr-checkout-table th{grid-column:1/-1;background:color-mix(in srgb,var(--accent) 9%,transparent);display:flex;align-items:center;gap:.5rem}.mpr-checkout-table th small{margin:0}.mpr-checkout-table td:last-child{grid-column:1/-1;display:flex;gap:.5rem;align-items:center}.mpr-checkout-table td[data-task-label]::before{content:attr(data-task-label);display:block;font-size:.75rem;opacity:.85;margin-bottom:.25rem}.mpr-credit-owner{min-width:0;flex:1}.mpr-credit-cell{align-items:center}}
.mpr-credit-cell:has(select){flex-wrap:wrap}.mpr-credit-cell select.mpr-credit-owner{width:100%;flex:1 1 110px;max-width:100%;padding:.45rem .3rem;min-height:36px;font:inherit;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:.4rem}.mpr-credit-time{display:grid;gap:.2rem;font-size:.75rem;margin-top:.35rem}.mpr-credit-time input{width:100%;min-width:0;max-width:100%;font:inherit}.mpr-retained-credit{flex-basis:100%}
/* Compact dashboard structure; retain each active theme's panel and control effects. */
.mpr-dashboard{display:grid;gap:.55rem;min-width:0}.mpr-dashboard-header h2{font-size:clamp(1.1rem,2vw,1.45rem);margin:.1rem 0;line-height:1.3}.mpr-dashboard-header h2>span{opacity:.45;margin:0 .2rem}.mpr-toolbar.mpr-period{margin:0;padding:.35rem 0;gap:.45rem;align-items:end}.mpr-toolbar label{font-size:.73rem;gap:.2rem}.mpr-toolbar input,.mpr-toolbar select{min-height:34px;font-size:.82rem;max-width:10rem}.mpr-toolbar .button{min-height:34px;padding:.35rem .55rem;font-size:.78rem;white-space:nowrap}.mpr-period-navigation,.mpr-toolbar-management{display:flex;gap:.35rem;align-items:center}.mpr-toolbar-management{margin-left:auto}.mpr-toolbar [hidden]{display:none!important}.mpr-dashboard .mpr-overview{margin:.55rem .65rem;gap:.35rem}.mpr-dashboard .mpr-overview>div{padding:.4rem .5rem}.mpr-dashboard .mpr-overview dd{font-size:1.1rem;margin:.15rem 0 0}.mpr-overview dd>button{font:inherit;font-weight:inherit;color:inherit;border:0;background:transparent;padding:0;cursor:pointer;text-align:left}.mpr-overview dd>button span{font-size:.65rem;opacity:.65}.mpr-overview button[aria-pressed=true]{text-decoration:underline;text-underline-offset:.2rem}.mpr-attention{margin:0 .65rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:.78rem;padding:.35rem 0}.mpr-attention summary{cursor:pointer;font-weight:600}.mpr-issue-count{display:inline-block;border:1px solid var(--border);border-radius:1rem;padding:0 .4rem;margin-left:.3rem;font-variant-numeric:tabular-nums}.mpr-attention ul{list-style:none;margin:.3rem 0 0;padding:0;display:grid;gap:.3rem}.mpr-attention li{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.mpr-attention li .button{flex:none;font-size:.72rem;padding:.25rem .4rem;min-height:30px}.mpr-table-meta{display:flex;align-items:center;justify-content:space-between;gap:.35rem;flex-wrap:wrap;margin:.35rem .65rem}.mpr-table-meta p{margin:0;font-size:.73rem}.mpr-dashboard .mpr-table{font-size:.83rem}.mpr-dashboard .mpr-table th,.mpr-dashboard .mpr-table td{padding:.4rem .55rem;vertical-align:middle}.mpr-table th>button{display:inline-flex;align-items:center;font:inherit;font-weight:600;color:inherit;border:0;background:transparent;cursor:pointer;padding:.1rem 0;gap:.2rem;text-align:left}.mpr-dashboard .mpr-table td:nth-child(n+2):not(:last-child){text-align:right}.mpr-dashboard .mpr-table th:nth-child(n+2):not(:last-child){text-align:right}.mpr-dashboard .mpr-table td:first-child{min-width:105px}.mpr-row-actions{white-space:nowrap;width:1%}.mpr-row-actions .button{min-height:30px;padding:.2rem .4rem;font-size:.72rem}.mpr-dashboard .mpr-name{line-height:1.25;min-height:30px}.mpr-dashboard .mpr-missing{font-size:.65rem;font-weight:500}.mpr-dashboard .mpr-trend{font-size:.65rem;margin-top:.1rem;white-space:normal}.mpr-dashboard .mpr-details{padding:.4rem;max-width:100%;overflow-wrap:anywhere}.mpr-dashboard .mpr-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.45rem;margin:.2rem 0 .5rem}.mpr-dashboard .mpr-explanation{margin:.5rem .65rem;font-size:.75rem}.mpr-explanation>summary{cursor:pointer}.mpr-breakdown-table th,.mpr-breakdown-table td{white-space:normal}.mpr-support-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem!important}.mpr-support-form :is(input,select,textarea),.mpr-support-filter :is(input,select){width:100%;min-width:0;box-sizing:border-box;min-height:34px}.mpr-support-form>p,.mpr-support-note,.mpr-support-form>.mpr-shift-footer,.mpr-support-actual{grid-column:1/-1}.mpr-support-actual,.mpr-support-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.mpr-support-form .mpr-inline input{width:auto}.mpr-support-type{padding:.6rem 0;border-bottom:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr))}.mpr-support-type input{min-width:0;width:100%;box-sizing:border-box}.mpr-support-type .mpr-inline input{width:auto}.mpr-support-type>.button{grid-column:1/-1;justify-self:start}.mpr-support-records article{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.mpr-support-records small{display:block;font-size:.73rem;margin:.2rem 0}.mpr-support-status{display:inline-block;font-size:.7rem;border:1px solid var(--border);border-radius:1rem;padding:.1rem .4rem}.mpr-support-status[data-status=approved]{color:var(--success,var(--text))}.mpr-support-status[data-status=submitted]{color:var(--warning,var(--text))}.mpr-support-dialog details{margin-top:.6rem;font-size:.8rem}.mpr-support-dialog textarea{resize:vertical}.mpr-support-facts small{font-weight:400;display:block}.mpr-support-entries{font-size:.76rem}.mpr-support-entries p{margin:.25rem 0}
@media(max-width:650px){.mpr-toolbar-management{margin-left:0}.mpr-toolbar{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}.mpr-toolbar label{min-width:0}.mpr-toolbar input,.mpr-toolbar select{max-width:none;width:100%;box-sizing:border-box}.mpr-period-navigation,.mpr-toolbar-management{grid-column:1/-1;display:flex}.mpr-period-navigation .button,.mpr-toolbar-management .button{flex:1}.mpr-toolbar>button[type=submit]{grid-column:1/-1}.mpr-dashboard .mpr-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem}.mpr-dashboard .mpr-overview>div:last-child{grid-column:auto}.mpr-dashboard .mpr-overview dt{font-size:.65rem;line-height:1.2}.mpr-dashboard .mpr-overview dd{font-size:1rem}.mpr-dashboard .mpr-table th,.mpr-dashboard .mpr-table td{padding:.3rem .3rem}.mpr-dashboard .mpr-table th{font-size:.65rem}.mpr-dashboard .mpr-table{font-size:.75rem}.mpr-dashboard .mpr-table td:first-child{min-width:80px}.mpr-row-actions .button{font-size:.65rem;padding:.2rem .3rem}.mpr-row-actions .button+button{margin-left:.2rem}.mpr-table th:last-child{min-width:0}.mpr-attention li{align-items:start}.mpr-dashboard .mpr-table th:nth-child(3){max-width:65px}.mpr-support-form{grid-template-columns:1fr}.mpr-support-actual{grid-template-columns:1fr}.mpr-support-type{grid-template-columns:1fr}}
.mpr-dashboard{position:relative;z-index:1}.mpr-dashboard .mpr-row-actions{white-space:normal;min-width:5rem}.mpr-dashboard .mpr-row-actions .button{display:block;width:100%;margin:.15rem 0}.mpr-dashboard .mpr-details{box-sizing:border-box}.mpr-dashboard .mpr-details>p,.mpr-dashboard .mpr-support-facts>small{white-space:normal;overflow-wrap:anywhere}
@media(max-width:650px){.mpr-dashboard .mpr-table{table-layout:fixed}.mpr-dashboard .mpr-table th:first-child{width:22%}.mpr-dashboard .mpr-table th:nth-child(2){width:18%}.mpr-dashboard .mpr-table th:nth-child(3){width:17%}.mpr-dashboard .mpr-table th:nth-child(4){width:18%}.mpr-dashboard .mpr-table th:last-child{width:25%}.mpr-dashboard .mpr-table td:first-child{min-width:0}.mpr-dashboard .mpr-row-actions{min-width:0}.mpr-dashboard .mpr-name{overflow-wrap:anywhere}.mpr-dashboard .mpr-details .mpr-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.mpr-dashboard .mpr-table [data-mpr-detail-row] td{width:auto;white-space:normal}.mpr-dashboard .mpr-table [data-mpr-detail-row] .mpr-details{min-width:0;max-width:100%}}
@media(max-width:650px){.mpr-dashboard .mpr-table th{white-space:normal}.mpr-dashboard .mpr-table th>button{max-width:100%;white-space:normal;line-height:1.2}.mpr-dashboard .mpr-table th>button>span[data-sort-direction]{flex:none}}
/* Compact checkout review: summaries first, detailed attribution on demand. */
.mpr-checkout-bulk,.mpr-checkout-quick{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;padding:.55rem;border:1px solid var(--border);border-radius:.65rem;background:var(--panel,var(--surface));margin:.5rem 0}.mpr-checkout-bulk{position:sticky;top:0;z-index:6;box-shadow:0 5px 14px color-mix(in srgb,var(--text) 9%,transparent)}.mpr-checkout-bulk label,.mpr-checkout-quick label{font-size:.76rem;display:flex;gap:.3rem;align-items:center}.mpr-checkout-bulk :is(select,.button),.mpr-checkout-quick :is(select,.button){min-height:32px;font-size:.75rem;padding:.3rem .4rem}.mpr-checkout-table>tbody>tr>td:first-child{width:28px}.mpr-checkout-table>tbody>tr>th{min-width:55px}.mpr-checkout-table>tbody>tr[aria-selected=true]>:is(th,td){background:color-mix(in srgb,var(--accent) 14%,var(--surface))}.mpr-checkout-row-actions{white-space:nowrap}.mpr-checkout-row-actions .button{font-size:.73rem;min-height:32px;padding:.3rem .45rem}.mpr-checkout-row-actions .button+.button{margin-left:.3rem}.mpr-task-table{width:100%;table-layout:fixed;border-collapse:collapse}.mpr-task-table :is(td,th){width:25%;padding:.4rem;text-align:left;vertical-align:top}.mpr-task-table .mpr-credit-owner{width:100%;min-width:0}.mpr-checkout-detail>td{padding:.6rem!important}.mpr-room-changed>th{box-shadow:inset 3px 0 var(--accent)}.mpr-checkout-dialog [hidden]{display:none!important}
@media(max-width:600px){.mpr-checkout-table>tbody>tr{display:grid;grid-template-columns:30px minmax(0,1fr);gap:.15rem}.mpr-checkout-table>tbody>tr>th{grid-column:2;grid-row:1;display:block}.mpr-checkout-table>tbody>tr>td:first-child{grid-column:1;grid-row:1;width:auto}.mpr-checkout-table>tbody>tr>td[data-summary-label]{grid-column:2;overflow-wrap:anywhere}.mpr-checkout-table>tbody>tr>td[data-summary-label]::before{content:attr(data-summary-label);display:block;font-size:.68rem;opacity:.7}.mpr-checkout-table>tbody>tr>td:nth-last-child(2){grid-column:2}.mpr-checkout-table>tbody>tr>td:last-child{grid-column:1/-1;display:flex;flex-wrap:wrap}.mpr-checkout-table>tbody>tr.mpr-checkout-detail{display:block;border:0}.mpr-checkout-table>tbody>tr.mpr-checkout-detail>td{display:block}.mpr-task-table thead{display:none}.mpr-task-table :is(tbody,tr){display:grid;grid-template-columns:1fr}.mpr-task-table td{width:auto;min-width:0}.mpr-task-table td::before{content:attr(data-task-label);display:block;font-size:.72rem;margin-bottom:.25rem}.mpr-checkout-bulk{position:static}.mpr-checkout-bulk>select{flex:1}.mpr-checkout-quick{align-items:stretch}.mpr-checkout-quick>label{flex:1;min-width:0}.mpr-checkout-quick select{max-width:100%;min-width:0}.mpr-checkout-detail .mpr-checkout-scroll{overflow:visible}}
@media(max-width:600px){.mpr-checkout-detail .mpr-task-table td{display:block;grid-column:auto}}
.mpr-completion-time{font-size:.74rem;flex:1;min-width:160px}.mpr-completion-time summary{cursor:pointer}.mpr-completion-time label{margin-top:.3rem}.mpr-checkout-filters>label{flex-basis:120px}.mpr-checkout-dialog>.mpr-caption{font-size:.72rem}.mpr-checkout-dialog .mpr-caption{line-height:1.35}.mpr-checkout-bulk strong{font-size:.73rem}
@media(max-width:600px){.mpr-checkout-dialog header{padding:.25rem!important;gap:.4rem}.mpr-checkout-dialog header h3{font-size:1rem;margin:.2rem 0}.mpr-checkout-dialog header .button{font-size:.75rem}.mpr-checkout-dates{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:.3rem}.mpr-checkout-dates>label{grid-column:2;grid-row:1;min-width:0;font-size:.7rem}.mpr-checkout-dates>[data-day]{grid-row:1;align-self:end;font-size:.7rem;padding:.35rem .2rem}.mpr-checkout-dates>[data-day="1"]{grid-column:3}.mpr-checkout-dates>button{min-height:32px;font-size:.7rem}.mpr-checkout-dates input{width:100%;min-height:32px;font-size:.74rem}.mpr-checkout-filters{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.mpr-checkout-filters label{min-width:0;font-size:.72rem}.mpr-checkout-filters select{width:100%;min-width:0}.mpr-completion-time{grid-column:1/-1}.mpr-checkout-bulk{padding:.4rem;gap:.4rem}.mpr-checkout-bulk>[data-assign-unassigned]{flex:1 1 100%}.mpr-checkout-dialog .mpr-caption{font-size:.72rem;margin:.35rem 0}.mpr-checkout-dialog .mpr-checkout-table td{font-size:.78rem}}
@media(max-width:600px){.mpr-checkout-table>tbody>tr:not(.mpr-checkout-detail){grid-template-columns:28px minmax(0,1fr) minmax(0,1fr);align-items:center}.mpr-checkout-table>tbody>tr>td[data-summary-label="Room tasks"]{grid-column:2;grid-row:2}.mpr-checkout-table>tbody>tr>td[data-summary-label="Inspector"]{grid-column:3;grid-row:2}.mpr-checkout-table>tbody>tr>td:nth-last-child(2){grid-column:3;grid-row:1}.mpr-checkout-table>tbody>tr>td.mpr-checkout-row-actions{grid-column:2/-1;grid-row:3}.mpr-checkout-table>tbody>tr>th{background:transparent}.mpr-checkout-table small{font-size:.65rem}.mpr-checkout-table .mpr-review-status{font-size:.68rem;margin:0}}
/* Bulk checkout credits share the existing audited save path. Keep controls in view. */
.mpr-checkout-dialog .mpr-checkout-bulk{position:sticky;top:0;z-index:8;display:grid;gap:.5rem;padding:.7rem;margin:.65rem 0;border:1px solid color-mix(in srgb,var(--accent) 65%,var(--border));border-radius:.8rem;background:var(--surface,var(--panel,#fff));box-shadow:0 6px 20px #0002,inset 3px 0 var(--accent);isolation:isolate}
.mpr-bulk-heading{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .75rem}.mpr-checkout-bulk .mpr-bulk-heading>strong{font-size:.88rem}.mpr-bulk-heading>[data-selected-count]{font-size:.75rem;font-weight:600;padding:.2rem .5rem;border-radius:1rem;background:color-mix(in srgb,var(--accent) 15%,transparent);font-variant-numeric:tabular-nums}.mpr-bulk-heading>.mpr-inline{margin-left:auto}
.mpr-bulk-fields{display:flex;align-items:end;flex-wrap:wrap;gap:.45rem .6rem}.mpr-checkout-bulk .mpr-bulk-fields>label:not(.mpr-inline){display:grid;gap:.25rem;flex:1 1 150px;min-width:0}.mpr-checkout-bulk .mpr-bulk-fields>label:nth-child(2){flex-grow:1.4}.mpr-bulk-fields select{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.mpr-checkout-bulk :is(select,.button){min-height:38px;font-size:.78rem}.mpr-checkout-bulk .mpr-inline{display:flex;align-items:center;gap:.35rem;font-size:.75rem}.mpr-checkout-bulk input[type=checkbox]{width:17px;height:17px;flex:none;accent-color:var(--accent)}.mpr-bulk-inspection{align-self:center}.mpr-bulk-note{margin:0;font-size:.7rem;opacity:.8}.mpr-checkout-secondary{justify-content:space-between}.mpr-checkout-dialog [data-checkout-live]:not(:empty){padding:.45rem .6rem;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent);font-size:.8rem;border-radius:.3rem}.mpr-checkout-bulk :is(select,input,button):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:600px){.mpr-checkout-dialog .mpr-checkout-bulk{position:sticky;padding:.5rem;gap:.4rem}.mpr-bulk-heading{gap:.3rem .45rem}.mpr-checkout-bulk .mpr-bulk-heading>strong{font-size:.8rem}.mpr-bulk-heading>.mpr-inline{margin-left:0}.mpr-bulk-heading>[data-selected-count]{margin-left:auto}.mpr-bulk-heading>label,.mpr-bulk-heading>button{flex:1 1 auto}.mpr-bulk-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:.4rem}.mpr-checkout-bulk .mpr-bulk-fields>label{font-size:.7rem}.mpr-bulk-fields>[data-assign-selected]{grid-column:1/-1;width:100%}.mpr-bulk-fields>.mpr-bulk-inspection{grid-column:1/-1}.mpr-checkout-bulk :is(select,.button){min-height:40px}.mpr-checkout-bulk .mpr-bulk-heading>.button{min-height:34px}.mpr-bulk-note{font-size:.66rem}.mpr-checkout-secondary .button{font-size:.7rem}}
.mpr-bulk-result{margin:0;padding:.35rem .5rem;border-radius:.35rem;font-size:.78rem;background:color-mix(in srgb,var(--accent) 12%,transparent)}.mpr-bulk-result:empty{display:none}

/* Compact shift editor: one dialog scroll surface, inline daily corrections. */
.mpr-shifts-dialog{width:min(760px,96vw);max-height:90dvh;scroll-padding:4rem 0 5rem}
.mpr-shifts-dialog>[data-mpr-dialog-body]{padding:.65rem .8rem 0}
.mpr-shifts-dialog .mpr-shift-form{gap:.65rem}
.mpr-shift-note{font-size:.78rem;line-height:1.4;margin:0;color:var(--muted,var(--text,#555));overflow-wrap:anywhere}
.mpr-shifts-dialog .mpr-shift-roster{gap:0;border:1px solid var(--border,#ccc);border-radius:10px;overflow:clip}
.mpr-shifts-dialog .mpr-shift-row{border:0;border-bottom:1px solid var(--border,#ccc);border-radius:0;padding:0;min-width:0}
.mpr-shifts-dialog .mpr-shift-row:last-child{border-bottom:0}
.mpr-shifts-dialog .mpr-shift-row>summary{display:grid;grid-template-columns:minmax(0,1fr) 118px 76px 16px;gap:.7rem;padding:.55rem .7rem;list-style:none;min-height:52px;box-sizing:border-box;outline-offset:-3px}
.mpr-shift-row>summary::-webkit-details-marker{display:none}
.mpr-shift-name{min-width:0;display:grid;gap:.2rem;overflow-wrap:anywhere}
.mpr-shift-name strong{font-size:.87rem;font-weight:650}
.mpr-shift-name small{font-size:.7rem;opacity:.75;line-height:1.3}
.mpr-shift-row>summary select{width:100%;min-width:0;min-height:34px;font-size:.8rem;padding:.3rem .35rem;border-radius:7px}
.mpr-shift-hours{display:grid;gap:.1rem;text-align:right;font-variant-numeric:tabular-nums}
.mpr-shift-hours strong{font-size:.84rem;font-weight:600}
.mpr-shift-hours small{font-size:.68rem;opacity:.72}
.mpr-shift-expand{display:flex;justify-content:center;transition:transform .15s}
.mpr-shift-row[open]>summary .mpr-shift-expand{transform:rotate(180deg)}
.mpr-shifts-dialog .mpr-shift-fields{margin:0;padding:.7rem;border-top:1px solid var(--border,#ccc);background:var(--surface-soft,transparent);gap:.65rem}
.mpr-shift-fields>label{font-size:.78rem}
.mpr-shift-fields .mpr-shift-reason{grid-column:1/-1;display:block}
.mpr-shift-reason small{font-size:inherit;opacity:.7}
.mpr-shift-reason input{display:block;margin-top:.3rem}
.mpr-shift-edited{grid-column:1/-1;font-size:.72rem;opacity:.75}
.mpr-shift-fields input,.mpr-shift-fields select{border-radius:7px}
.mpr-shift-source{font-variant-numeric:tabular-nums}
.mpr-shifts-dialog .mpr-excluded>summary{opacity:1}
.mpr-excluded .mpr-shift-name,.mpr-excluded .mpr-shift-hours{opacity:.65}
.mpr-time-picker{display:block;min-width:0}
.mpr-time-entry{display:flex;align-items:stretch;border:1px solid var(--border,#ccc);border-radius:7px;background:var(--surface,var(--panel,#fff));overflow:hidden}
.mpr-time-entry:focus-within{outline:2px solid var(--accent,var(--text,#555));outline-offset:1px}
.mpr-time-entry input{border:0!important;box-shadow:none!important;outline:none!important;background:transparent;flex:1;min-width:0;padding:.4rem .5rem}
.mpr-time-entry button{display:flex;align-items:center;justify-content:center;flex:0 0 34px;border:0;border-left:1px solid var(--border,#ccc);border-radius:0;background:transparent;color:inherit;cursor:pointer}
.mpr-time-options{position:fixed;z-index:20;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--border,#ccc);border-radius:8px;background:var(--surface,var(--panel,#fff));color:var(--text,#222);box-shadow:0 6px 20px #0003;padding:.2rem;box-sizing:border-box}
.mpr-time-options[hidden]{display:none}
.mpr-time-options button{display:block;text-align:left;width:100%;min-height:34px;padding:.4rem .6rem;border:0;border-radius:5px;background:transparent;color:inherit;font:inherit;cursor:pointer}
.mpr-time-options button[aria-selected=true],.mpr-time-options button:hover{background:color-mix(in srgb,var(--accent,var(--text,#555)) 18%,transparent);outline:1px solid var(--border,#ccc)}
.mpr-shifts-dialog .mpr-shift-audit{padding:.4rem .1rem .6rem}
.mpr-shift-audit summary{cursor:pointer;font-size:.78rem;font-weight:600}
.mpr-shift-audit summary span{margin-left:.3rem;opacity:.6}
.mpr-shift-audit p{padding:.5rem 0;margin:0;border-bottom:1px solid var(--border,#ccc);font-size:.74rem;line-height:1.4}
.mpr-shifts-dialog .mpr-shift-footer{z-index:3;margin:0 -.8rem;padding:.65rem .8rem max(.65rem,env(safe-area-inset-bottom));gap:.6rem;flex-wrap:nowrap;box-shadow:0 -3px 12px #0001}
.mpr-shift-footer [data-shift-save]{white-space:nowrap;min-height:40px}
.mpr-shifts-dialog [data-mpr-error]{font-size:.8rem;line-height:1.4;margin:0}
.mpr-shifts-dialog [data-mpr-error]:empty{display:none}
@media(max-width:600px){
 .mpr-shifts-dialog{width:96vw;max-height:92dvh}
 .mpr-shifts-dialog .mpr-shift-row>summary{grid-template-columns:minmax(0,1fr) 106px 68px 14px;gap:.4rem;padding:.5rem}
 .mpr-shifts-dialog .mpr-shift-fields{padding:.6rem}
 .mpr-shift-fields input,.mpr-shift-fields select,.mpr-shift-top input,.mpr-shift-top select{font-size:16px;min-height:40px}
 .mpr-shift-row>summary select{min-height:40px;font-size:.78rem}
 .mpr-shifts-dialog .mpr-shift-top{display:grid;grid-template-columns:minmax(0,1fr) auto}
 .mpr-shift-top label{min-width:0}
 .mpr-shift-top label:first-child{grid-column:1/-1}
 .mpr-shift-name strong{font-size:.8rem}
 .mpr-shift-name small{font-size:.66rem}
 .mpr-shift-hours strong{font-size:.77rem}
 .mpr-shift-footer [data-shift-status]{font-size:.74rem;max-width:50%}
}
@media(max-width:380px){.mpr-shifts-dialog .mpr-shift-row>summary{grid-template-columns:minmax(0,1fr) 96px 60px 12px;gap:.3rem}.mpr-shifts-dialog>[data-mpr-dialog-body]{padding:.6rem .6rem 0}.mpr-shifts-dialog .mpr-shift-footer{margin:0 -.6rem;padding-left:.6rem;padding-right:.6rem}}
@media(prefers-reduced-motion:reduce){.mpr-shift-expand{transition:none}}
/* Checkout review uses the active theme's surfaces, lighting and typography. */
.mpr-room-summary{cursor:pointer}.mpr-room-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.mpr-room-summary:hover>:is(th,td){background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.mpr-room-chevron{display:inline-block;width:1rem;font-size:1.1em;color:var(--accent);vertical-align:baseline}.mpr-task-indicators{display:flex;align-items:center;flex-wrap:wrap;gap:.2rem;margin-top:.25rem}.mpr-task-indicator{display:inline-grid;place-items:center;width:1.25rem;height:1.25rem;font-size:.65rem;font-weight:700;border:1px solid var(--border);border-radius:.3rem}.mpr-task-indicator.complete{color:var(--success,var(--accent));border-color:color-mix(in srgb,var(--success,var(--accent)) 55%,var(--border));background:color-mix(in srgb,var(--success,var(--accent)) 12%,transparent)}.mpr-task-indicator.missing{color:var(--warning,var(--text));border-style:dashed;opacity:.8}.mpr-task-indicators small{margin-left:.25rem}.mpr-task-selected{background:color-mix(in srgb,var(--accent) 15%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}.mpr-task-bulk-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.mpr-expansion-toolbar{padding:0;margin:.35rem 0;font-size:.73rem}.mpr-expansion-toolbar span{opacity:.75}.mpr-checkout-bulk [data-checkout-feedback-host]{min-width:0}.mpr-checkout-bulk [data-mpr-error]:empty{display:none}.mpr-checkout-bulk [data-mpr-error]:not(:empty){margin:0;padding:.5rem .6rem;font-size:.8rem;line-height:1.35;color:var(--text);border-left:3px solid var(--accent);border-radius:.35rem;background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.mpr-checkout-bulk .mpr-completion-time{flex-basis:100%;min-width:0}.mpr-checkout-bulk .mpr-completion-time summary{font-size:.72rem}.mpr-checkout-bulk .mpr-completion-time input{width:min(100%,17rem)}.mpr-checkout-detail [data-select-housekeeping][aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--accent)}
@media(max-width:600px){.mpr-checkout-bulk .mpr-completion-time{grid-column:1/-1}.mpr-task-bulk-actions>.button{flex:1;font-size:.74rem}.mpr-expansion-toolbar{gap:.3rem}.mpr-expansion-toolbar span{flex-basis:100%}.mpr-task-indicators{gap:.15rem}.mpr-task-indicator{width:1.1rem;height:1.1rem;font-size:.6rem}.mpr-task-indicators small{font-size:.65rem}.mpr-checkout-quick>[data-select-housekeeping]{flex-basis:100%}}
.mpr-checkout-filters{padding:0;margin:.35rem 0}.mpr-checkout-filters>label{display:flex;align-items:center;gap:.4rem;flex-basis:auto;font-size:.75rem}.mpr-checkout-filters select{width:auto;min-width:9rem}.mpr-checkout-dialog .mpr-caption{margin:.35rem 0;font-size:.74rem}.mpr-checkout-dialog .mpr-bulk-note{font-size:.68rem}
@media(max-width:600px){.mpr-expansion-toolbar span{display:none}.mpr-checkout-filters{display:flex}.mpr-checkout-filters select{min-width:9rem}.mpr-checkout-secondary{display:grid;grid-template-columns:1.5fr 1fr;gap:.3rem}.mpr-checkout-secondary .button{white-space:normal;line-height:1.2;min-height:40px}.mpr-checkout-dialog .mpr-caption{font-size:.7rem}.mpr-checkout-quick{gap:.3rem}.mpr-checkout-quick :is(select,.button){min-height:36px}}
.mpr-checkout-dialog{box-sizing:border-box;max-width:calc(100vw - 16px)}.mpr-checkout-dialog :is(input,select,button,table){box-sizing:border-box}
/* Native WebKit selects can report their full option width outside the field. */
.mpr-checkout-dialog :is(.mpr-bulk-fields,.mpr-checkout-quick)>label:has(>select){overflow:hidden}.mpr-checkout-dialog :is(.mpr-bulk-fields,.mpr-checkout-quick)>label:has(>select):focus-within{outline:2px solid var(--accent);outline-offset:1px}.mpr-checkout-dialog select{min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:600px){.mpr-checkout-quick>label:has(>[data-quick-employee]){display:grid;grid-template-columns:1fr;flex:1 1 100%;gap:.25rem}.mpr-checkout-quick>label:has(>[data-quick-employee]) select{width:100%}}
.mpr-checkout-detail [data-select-housekeeping]{accent-color:var(--accent);flex:none;width:17px;height:17px}.mpr-expansion-toolbar .mpr-inline{display:flex;align-items:center;gap:.35rem}.mpr-checkout-bulk [data-selected-task-count]{font-size:.76rem;font-weight:600;font-variant-numeric:tabular-nums}.mpr-checkout-bulk [data-mpr-error]:not(:empty){max-height:25vh;overflow:auto;overflow-wrap:anywhere}

.mpr-checkout-dialog>header{z-index:10}.mpr-checkout-dialog .mpr-checkout-bulk{top:var(--mpr-checkout-header-height,3.5rem)}

.mpr-checkout-dialog .mpr-credit-cell input[type=checkbox]{width:22px;height:22px;flex:none;accent-color:var(--accent)}
.mpr-credit-advanced{font-size:.75rem;margin-top:.35rem}.mpr-credit-advanced>summary{cursor:pointer}.mpr-credit-advanced label{margin-top:.35rem}.mpr-completion-time>summary{cursor:pointer}

/* Task configuration lives below room weights, not inside quick entry. */
.mpr-support-settings{margin-top:1rem;border-top:1px solid var(--border);padding-top:.75rem;min-width:0}
.mpr-support-settings>summary{cursor:pointer;font-weight:650;padding:.35rem 0}
.mpr-support-settings-note{font-size:.8rem;color:var(--muted,var(--text));line-height:1.45}
.mpr-support-settings [data-support-types-status]{font-size:.8rem;overflow-wrap:anywhere}
.mpr-support-settings [data-support-types-status]:empty{display:none}
.mpr-support-settings .mpr-support-type{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:.8rem 0;border-bottom:1px solid var(--border);min-width:0}
.mpr-support-settings label{display:grid;gap:.25rem;font-size:.8rem;min-width:0}
.mpr-support-settings input:not([type=checkbox]){box-sizing:border-box;width:100%;min-width:0;min-height:38px}
.mpr-support-settings .mpr-inline{display:flex;align-items:center;gap:.4rem}
.mpr-support-settings input[type=checkbox]{flex:none}
.mpr-support-settings .button{justify-self:start;min-height:40px}
.mpr-support-dialog[data-support-compact="true"]{height:fit-content;min-height:0}
.mpr-support-dialog[data-support-compact="true"]>[data-mpr-dialog-body]{flex:0 0 auto;min-height:0}
@media(max-width:600px){.mpr-support-settings .mpr-support-type{grid-template-columns:minmax(0,1fr)}.mpr-support-settings input:not([type=checkbox]){font-size:16px;min-height:44px}.mpr-support-settings .button{min-height:44px}}
/* Quick support entry; advanced review retains its existing fields. */
.mpr-support-dialog[data-support-compact="true"]{width:min(520px,calc(100vw - 24px));max-height:90dvh}
.mpr-support-dialog[data-support-compact="true"]>header{padding:.75rem .9rem;gap:.6rem}
.mpr-support-dialog[data-support-compact="true"]>[data-mpr-dialog-body]{padding:.75rem .9rem .25rem}
.mpr-support-dialog[data-support-compact="true"] .mpr-support-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem!important}
.mpr-support-dialog[data-support-compact="true"] .mpr-support-form>label{display:grid;gap:.25rem;margin:0;min-width:0;font-size:.78rem;align-content:end}
.mpr-support-dialog[data-support-compact="true"] .mpr-support-task{grid-column:1/-1}
.mpr-support-dialog[data-support-compact="true"] .mpr-support-form :is(input,select){width:100%;min-width:0;height:38px;min-height:38px;box-sizing:border-box;margin:0;font:inherit}
.mpr-support-total{grid-column:1/-1;margin:.1rem 0;padding:.5rem .6rem;border:1px solid var(--border);border-radius:var(--radius-s,8px);background:color-mix(in srgb,var(--accent) 7%,transparent);font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums}
.mpr-support-dialog[data-support-compact="true"] .mpr-shift-footer{position:static;padding:.4rem 0 0;border:0;background:transparent;justify-content:stretch}
.mpr-support-dialog[data-support-compact="true"] .mpr-shift-footer>.primary{width:100%;min-height:42px}
.mpr-support-dialog[data-support-compact="true"] details{margin-top:.45rem;font-size:.73rem}
.mpr-support-dialog[data-support-compact="true"] details>summary{cursor:pointer;padding:.15rem 0}
.mpr-support-dialog>[data-mpr-error]{position:sticky;bottom:0;margin:0;padding:.55rem .9rem;background:var(--surface);font-size:.78rem;overflow-wrap:anywhere;z-index:2}
.mpr-support-dialog>[data-mpr-error]:empty{display:none}
.mpr-support-dialog[data-support-save-status="saved"]>[data-mpr-error]{color:var(--success,var(--text))}
.mpr-support-dialog[aria-busy="true"] [data-support-save]{cursor:wait}
@media(max-width:380px){.mpr-support-dialog[data-support-compact="true"]>[data-mpr-dialog-body]{padding:.65rem}.mpr-support-dialog[data-support-compact="true"] .mpr-support-form{gap:.5rem!important}}

/* Compact management summaries retain the selected theme surfaces. */
.mpr-checkout-bulk[data-bulk-panel]{display:block;padding:.4rem .55rem}.mpr-checkout-bulk>summary{display:flex;gap:.5rem;align-items:center;cursor:pointer;font-size:.8rem;min-height:32px}.mpr-checkout-bulk>summary::after{content:'\2304';margin-left:auto}.mpr-checkout-bulk:not([open])>summary::after{content:'\203a'}.mpr-checkout-bulk .mpr-bulk-heading{margin:.35rem 0}.mpr-bulk-result:empty{display:none}.mpr-checkout-table .mpr-task-indicators{display:inline-flex;flex-wrap:nowrap;margin:.15rem 0 .15rem .4rem;gap:.2rem}.mpr-task-indicator{display:inline-grid;place-items:center;width:1.4rem;height:1.4rem;flex:none}.mpr-room-summary>td,.mpr-room-summary>th{padding:.4rem .45rem!important}.mpr-checkout-table>thead th{font-size:.7rem}.mpr-shift-summary-times{display:flex;gap:.7rem;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.78rem}.mpr-shift-auto{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.mpr-shift-auto .button{min-height:32px;font-size:.74rem;padding:.2rem .4rem}.mpr-shift-auto label{font-size:.74rem}.mpr-efficiency{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;padding:.5rem;border:1px solid var(--border);border-radius:9px;background:var(--surface-soft,transparent)}.mpr-efficiency span{display:grid;gap:.15rem}.mpr-efficiency small{font-size:.7rem}.mpr-efficiency>small{grid-column:1/-1;color:var(--success,#21834b)}.mpr-efficiency.over>small{color:var(--warning,#a86b12)}.mpr-efficiency strong{font-variant-numeric:tabular-nums}.employee-usual-day{display:grid;grid-template-columns:3rem 1fr 1fr;gap:.4rem;align-items:center}.employee-usual-day input{min-width:0;width:100%}@media(max-width:600px){.mpr-efficiency{grid-template-columns:repeat(2,minmax(0,1fr))}.mpr-shifts-dialog .mpr-shift-row>summary{grid-template-columns:minmax(0,1fr) auto 16px;gap:.35rem}.mpr-shift-summary-times{grid-column:1;grid-row:2}.mpr-shift-hours{grid-column:2;grid-row:1/3}.mpr-shift-expand{grid-column:3;grid-row:1/3}.mpr-checkout-table .mpr-task-indicators{margin-left:0;display:flex}.mpr-shift-auto .button{min-height:40px}}

.mpr-assignee-names{overflow-wrap:anywhere}.mpr-review-button-icon{display:none}.mpr-task-indicators small{white-space:nowrap}.mpr-checkout-dialog .mpr-checkout-bulk[data-bulk-panel]{padding:.4rem .55rem;gap:.35rem}
@media(max-width:600px){
 .mpr-shifts-dialog .mpr-shift-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.mpr-shifts-dialog .mpr-shift-fields>.mpr-inline,.mpr-shift-reason{grid-column:1/-1}
 .mpr-checkout-table>tbody>tr.mpr-room-summary{grid-template-columns:22px 52px minmax(0,1fr) 36px;gap:.15rem .2rem;padding:.3rem;align-items:center}
 .mpr-checkout-table>tbody>tr.mpr-room-summary>td,.mpr-checkout-table>tbody>tr.mpr-room-summary>th{border:0;padding:.15rem!important;min-width:0;width:auto}
 .mpr-checkout-table>tbody>tr.mpr-room-summary>td:first-child{grid-column:1;grid-row:1}
 .mpr-checkout-table>tbody>tr.mpr-room-summary>th{grid-column:2;grid-row:1}
 .mpr-checkout-table>tbody>tr.mpr-room-summary>td[data-summary-label="Inspector"]{grid-column:3;grid-row:1;font-size:.7rem;line-height:1.2}
 .mpr-checkout-table>tbody>tr.mpr-room-summary>td[data-summary-label="Inspector"]::before{content:'I: ';display:inline}
 .mpr-checkout-table>tbody>tr.mpr-room-summary>td[data-summary-label="Room tasks"]{grid-column:2/4;grid-row:2;display:flex;align-items:center;justify-content:space-between;gap:.3rem;font-size:.72rem}
 .mpr-checkout-table>tbody>tr.mpr-room-summary>td[data-summary-label="Room tasks"]::before{display:none}
 .mpr-checkout-table>tbody>tr.mpr-room-summary>td:nth-last-child(2){grid-column:1;grid-row:2;display:grid;place-items:center}
 .mpr-checkout-table>tbody>tr.mpr-room-summary .mpr-review-status{font-size:0;width:8px;height:8px;padding:0;border-radius:50%;display:block}
 .mpr-checkout-table>tbody>tr.mpr-room-summary>td.mpr-checkout-row-actions{grid-column:4;grid-row:1/3}
 .mpr-checkout-row-actions .button{min-width:32px;min-height:40px;padding:.2rem}.mpr-review-button-text{display:none}.mpr-review-button-icon{display:inline;font-size:.9rem}
 .mpr-checkout-table .mpr-task-indicators{margin:0;gap:.12rem;flex:none}.mpr-task-indicator{width:1.15rem;height:1.15rem;font-size:.65rem}.mpr-task-indicators small{display:none}
}

@media(max-width:600px){.mpr-checkout-table>tbody>tr.mpr-room-summary>th{white-space:nowrap}}


/* Source: midnight-reverie.css */
@media screen {
@layer surface-material {
/* Midnight Reverie: optical glass shaped by a cyan ground light and pink sky.
   Only opacity/transform animate continuously. No scrolling JS or full-screen blur. */
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] {
  color-scheme:dark; --mr-cyan:146,231,239; --mr-violet:173,145,239; --mr-pink:229,164,198;
  --mr-edge:rgba(var(--mr-cyan),.4); --mr-glow:rgba(var(--mr-violet),.18);
  --card-motion:420ms; --bg:#080d21; --surface:#101e3b; --surface-2:#172743; --text:#eef4ff; --muted:#b7c8e5; --border:#566e98;
  --accent:#92e7ef; --world-surface:#101e3b; --world-text:#eef4ff; --world-secondary:#b7c8e5;
  background:#080d21;
}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] body {background:transparent!important;color:#eef4ff}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(.world-atmosphere,.world-depth-scene,.cinematic-scene,.theme-trim-layer,.theme-card-corner,.theme-card-trim,.world-card-ornament) {display:none!important}
#midnight-reverie-scene {position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:strict;background:#0a102a}
.reverie-sky {position:absolute;inset:0;background:radial-gradient(ellipse at 66% 42%,#3d4084 0,transparent 52%),linear-gradient(#090f30 0%,#202e65 39%,#68609b 61%,#b58baa 72%,#242b4a 73%,#080e22 100%)}
.reverie-horizon {position:absolute;inset:29% -15% 23%;background:radial-gradient(ellipse at 66% 80%,#e8a8bd5c,transparent 60%),radial-gradient(ellipse at 25% 80%,#597dfc42,transparent 64%);animation:reverie-atmosphere 28s ease-in-out infinite alternate;will-change:opacity,transform}
.reverie-stars {position:absolute;inset:0}.reverie-stars i {position:absolute;width:var(--star-size);height:var(--star-size);border-radius:50%;background:#e1dfff;box-shadow:0 0 5px #c7c8ff;animation:reverie-twinkle 7s ease-in-out var(--star-delay) infinite alternate}
.reverie-pavement {position:absolute;inset:72% 0 0;background:linear-gradient(#171d33eb,#050a1e),repeating-linear-gradient(176deg,transparent 0 22px,#aeb5ed14 23px 24px);border-top:1px solid #baa3d233}
.reverie-machine-island {position:absolute;right:2vw;bottom:8vh;width:clamp(160px,17vw,260px);height:clamp(280px,31vw,445px)}
.reverie-machine {position:absolute;bottom:12%;right:4%;height:85%;width:85%;filter:drop-shadow(0 0 10px #7198f160) drop-shadow(0 16px 12px #020719)}
.reverie-pool {position:absolute;inset:57% -75% -24%;background:radial-gradient(ellipse,#77e1fa40,transparent 64%);transform:scaleY(.5);animation:reverie-breathe 11s ease-in-out infinite alternate}
.reverie-reflection {position:absolute;left:7%;right:9%;top:88%;height:36%;background:linear-gradient(100deg,transparent 5%,#a1dbf849 20%,#7b84df40 55%,#c09de85c 80%,transparent 95%);clip-path:polygon(17% 0,87% 0,100% 100%,0 100%);mask-image:linear-gradient(#000,transparent);transform:skewX(-12deg);opacity:.55}
.reverie-machine-light {animation:reverie-breathe 11s ease-in-out infinite alternate}
.reverie-vignette {position:absolute;inset:0;box-shadow:inset 0 0 160px 30px #03071a80;background:linear-gradient(90deg,#03091c66,transparent 65%)}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(#app-view,.app-shell) {position:relative;z-index:1;background:transparent!important}
/* The asymmetric glass lens has a physical bottom edge and two light sources. */
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card {
  position:relative;isolation:isolate;border:1px solid #728eb25c!important;border-radius:25px 9px 25px 9px!important;
  background:radial-gradient(ellipse at 98% 0,rgba(var(--mr-pink),.12),transparent 52%),radial-gradient(ellipse at 0 100%,rgba(var(--mr-cyan),.09),transparent 55%),linear-gradient(125deg,#19294de8,#0c1834f5 55%,#14203eeb)!important;
  color:#eef4ff;box-shadow:inset 0 1px 0 #dcecff60,inset 1px 0 0 #99d9ff18,inset 0 -2px 0 #03091acc,0 4px 0 -1px #070d23,0 5px 0 -1px #4b6a8b65,0 18px 32px -8px #020615b3,10px 7px 30px -24px #d5a9ef, -8px 13px 32px -25px #7df3ff!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  transition:translate .32s cubic-bezier(.2,.8,.2,1),border-color .35s,box-shadow .4s,background-color .4s!important;
  animation:none!important;transform:none;--world-lift:none;--card-motion:420ms;
}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card::before {
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
  background:linear-gradient(115deg,transparent 10%,#c8dfff0a 24%,#d7edff14 25%,transparent 27%,transparent 66%,#c6a8f30a 80%,transparent 84%);
  opacity:.6;transition:opacity .5s,transform .65s;transform:translateX(0);
}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card::after {
  content:"";position:absolute;left:22px;right:22px;bottom:-1px;height:2px;border-radius:100%;pointer-events:none;
  background:linear-gradient(90deg,transparent,#92e7efb0 30%,#b6a3f19c 65%,transparent);box-shadow:0 2px 14px #78d9ff55;
  opacity:.6;transition:opacity .4s;
}
@media(hover:hover) and (pointer:fine){
 html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card:hover {translate:0 -3px;border-color:#a6d5ed99!important;box-shadow:inset 0 1px #e0f9ff9c,inset 0 -2px #070b22,0 5px 0 -1px #0b1632,0 6px 0 -1px #6790af75,0 28px 45px -12px #020617cf,0 0 25px -12px #9f97efbb, -10px 14px 36px -23px #7df3ff!important}
 html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card:hover::before {opacity:1;transform:translateX(5px)}
 html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card:hover::after {opacity:1}
}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card:is(:focus-within,[aria-selected="true"],.selected) {border-color:#a5d9f6!important;box-shadow:inset 0 1px #dff7ff85,0 0 0 2px #95b9ef28,0 0 28px #94a9ff20,0 20px 36px -10px #020615ce!important}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card.is-collapsed {border-radius:18px 7px 18px 7px!important;background:linear-gradient(110deg,#233653ed,#141e3dee 62%,#30294aeb)!important}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card > .panel-head {position:relative;background:linear-gradient(110deg,#92e7ef0b,transparent 45%,#d5adf010)!important;border-bottom-color:#91b1e52e!important;border-radius:24px 8px 0 0;color:#eff6ff;min-height:52px}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card h2 {letter-spacing:.015em;text-shadow:0 1px 10px #84b8f02b}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view :is(.metric,.metric-card,.summary-card).reverie-card {border-radius:17px 6px 17px 6px!important;background:linear-gradient(135deg,#254364eb,#131d3fee 60%,#322644df)!important;box-shadow:inset 0 1px #c3ddfb66,inset 0 -3px #050b2390,0 9px 18px -8px #020519b0!important}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view :is(.metric-value,.stat-value,.summary-number) {text-shadow:0 2px 14px #7fcdf438;color:#dffaff}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view :is(.room-card,.employee-bubble).reverie-card {border-radius:18px 7px 18px 7px!important}
/* Dense working surfaces remain crisp and status colors retain their meaning. */
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(table,tbody,tr,td,th) {border-color:#7391be38}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {background:#0b1730!important;color:#eef4ff!important;border-color:#6d8db46b!important;border-radius:10px;box-shadow:inset 0 2px 5px #02091d66}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(input,select,textarea):focus-visible {outline:2px solid #a6e8fa;outline-offset:2px}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] button:not(.nav-item):not(.world-choice) {transition:box-shadow .25s,translate .25s,border-color .25s;background-image:linear-gradient(130deg,#bceeff12,transparent 55%,#c2a0ef14);border-radius:10px}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] button:not(.nav-item):not(.world-choice):hover:not(:disabled) {box-shadow:inset 0 1px #d7efff55,0 0 18px #a6b6fa2e;translate:0 -1px}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] button:focus-visible {outline:2px solid #b3f1ff;outline-offset:3px}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] button:active:not(:disabled) {translate:0 1px}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(.sidebar,.app-sidebar,.nav-shell,.mobile-nav-drawer,.mobile-navigation) {background:linear-gradient(160deg,#182448f5,#080f25fa)!important;border-color:#718ec14f!important;box-shadow:4px 0 40px #02081c88,inset -1px 0 #9dc7f52b!important;backdrop-filter:blur(12px)}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] .nav-item {border-radius:12px 5px 12px 5px!important;transition:background .3s,box-shadow .3s,color .3s!important}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] .nav-item:is(.active,[aria-current="page"]) {background:linear-gradient(110deg,#365b7980,#3a315d80)!important;box-shadow:inset 2px 0 #a7f5ff,inset 0 1px #c3d6ff3b,0 4px 16px #03081980!important;color:#e9fcff!important}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(.modal-card,.modal-content,dialog,.drawer-content) {background:radial-gradient(ellipse at top right,#423957aa,transparent 65%),linear-gradient(130deg,#1a2c4ff7,#0a1430fc)!important;color:#eef4ff;border:1px solid #95b6dd8c!important;border-radius:26px 10px 26px 10px!important;box-shadow:inset 0 1px #d4ebff66,0 40px 100px #010515cc,0 0 60px #8b9aee26!important}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] dialog[open],html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] .modal:not(.hidden) .modal-card {animation:reverie-emerge .48s cubic-bezier(.15,.8,.2,1)}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(dialog::backdrop,.modal-overlay) {background:#03081bb8;backdrop-filter:blur(5px)}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(.toast,.notification-item,.notification-popover) {border-color:#a7ccf66b;box-shadow:inset 0 1px #c5eaff44,0 0 23px #8fbcf530,0 14px 35px #02081999;transition:border-color .4s,box-shadow .5s}
.reverie-controls {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;margin:0 0 24px;border:1px solid #8dafcf70;border-radius:25px 9px;background:linear-gradient(120deg,#172c4cf0,#2d2548f0);box-shadow:0 18px 40px #04071b70,inset 0 1px #c5e9ff55;color:#eef4ff}
.reverie-controls>div:first-child {display:grid;gap:6px}.reverie-controls small {font-size:10px;letter-spacing:.22em;color:#a9e7f0}.reverie-controls strong{font-size:19px;font-weight:500}.reverie-controls span{font-size:12px;color:#b7c8e5}.reverie-mode-buttons{display:flex;gap:6px;flex-wrap:wrap}.reverie-mode-buttons button{background:#0c1833;color:#dceeff;padding:10px 14px;border:1px solid #7891be60}.reverie-mode-buttons button[aria-pressed="true"]{background:linear-gradient(120deg,#285168,#443258);border-color:#a8ddec;box-shadow:0 0 20px #91c5fa20}
.world-choice[data-world-id="midnight-reverie"] .world-preview {background:linear-gradient(#0b1332,#303d79 48%,#b08ca8 76%,#10192c 77%)!important}
.world-choice[data-world-id="midnight-reverie"] .world-sample-card {background:linear-gradient(120deg,#254268e8,#111b38ee)!important;border:1px solid #a9d7e77a!important;border-radius:17px 5px 17px 5px!important;box-shadow:0 5px 0 #0c1330,0 14px 24px #050a26,inset 0 1px #c1f1ff7a!important;color:#edf6ff!important}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode][data-reverie-mode="dream"] {--mr-cyan:143,204,225;--mr-violet:180,158,224;--mr-pink:218,170,206}
html[data-reverie-mode="dream"] .reverie-horizon {animation-duration:50s;opacity:.85}
html[data-reverie-mode="dream"] :is(.reverie-machine-light,.reverie-pool) {animation-duration:24s}
html[data-reverie-mode="dream"] .reverie-stars i {animation-duration:13s}
html[data-reverie-mode="dream"] .reverie-vignette {background:linear-gradient(90deg,#050b2633,#7e67921a)}
@keyframes reverie-atmosphere {from{opacity:.45;transform:translateX(-2%)}to{opacity:.9;transform:translateX(2%)}}
@keyframes reverie-twinkle {from{opacity:.18}to{opacity:.8}}
@keyframes reverie-breathe {0%,100%{opacity:.75}45%{opacity:1}70%{opacity:.86}}
@keyframes reverie-emerge {from{opacity:0;transform:perspective(1000px) translateY(20px) rotateX(-4deg) scale(.97)}to{opacity:1;transform:none}}
html[data-reverie-mode="minimal"] #midnight-reverie-scene *,html[data-reverie-paused="true"] #midnight-reverie-scene *,html[data-decorative-animations="off"] #midnight-reverie-scene *,html[data-animations="off"] #midnight-reverie-scene * {animation:none!important}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode][data-reverie-mode="minimal"] #app-view .reverie-card {transition:background-color .15s,border-color .15s!important;translate:none!important}
@media(max-width:720px){
 .reverie-machine-island {right:-30px;bottom:10vh;width:170px;height:290px;opacity:.75}
 .reverie-vignette {box-shadow:none}.reverie-horizon{animation:none;opacity:.65}
 html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card {border-radius:19px 7px 19px 7px!important;box-shadow:inset 0 1px #cae5ff60,0 3px 0 #070d23,0 4px 0 #567a9b55,0 12px 24px -8px #020615c0!important}
 html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card > .panel-head {border-radius:18px 6px 0 0}
 .reverie-controls{align-items:stretch;flex-direction:column;padding:18px;gap:14px}.reverie-mode-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.reverie-mode-buttons button{padding:9px 5px;font-size:11px}
 html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(.sidebar,.app-sidebar,.nav-shell,.mobile-nav-drawer,.mobile-navigation) {backdrop-filter:none;background:#101a34!important}
}
@media(prefers-reduced-motion:reduce){
 html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] *,html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] *::before,html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] *::after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
 html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card {translate:none!important}
}
@media print {#midnight-reverie-scene,.reverie-controls{display:none!important}html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card{box-shadow:none!important;background:white!important;color:black!important;translate:none!important}html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card::before,html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view .reverie-card::after{display:none!important}}

html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(body,.workspace) {background:transparent!important}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] :is(.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel) {background:linear-gradient(120deg,#18274af7,#10172ffb)!important;color:#eef4ff;box-shadow:inset 0 1px #b2d2ec35,0 8px 24px #02071660}

}

@layer surface-material {
 html[data-world="midnight-reverie"][data-theme][data-mode] #app-view .view .reverie-card::before {
  content:""!important;inset:0!important;width:auto!important;height:auto!important;border:0!important;border-radius:inherit!important;mask:none!important;box-shadow:none!important;
  background:linear-gradient(115deg,transparent 10%,#c8dfff0a 24%,#d7edff14 25%,transparent 27%,transparent 66%,#c6a8f30a 80%,transparent 84%)!important;opacity:.65!important;
 }
 html[data-world="midnight-reverie"][data-theme][data-mode] #app-view .view .reverie-card:hover::before {opacity:1!important}
 html[data-world="midnight-reverie"][data-theme][data-mode] #app-view .view .reverie-card::after {content:""!important;inset:auto 22px -1px!important;width:auto!important;height:2px!important;mask:none!important;border:0!important}
 html[data-world="midnight-reverie"][data-theme][data-mode] .world-atmosphere {display:none!important}
}

/* The same slow lamp cycle reaches the ground and the visible glass edges. */
@layer surface-material {
 html[data-world="midnight-reverie"][data-theme][data-mode] #app-view .view .reverie-card[data-reverie-visible="true"]::after {animation:reverie-breathe 11s ease-in-out infinite alternate;box-shadow:0 2px 12px #78d9ff80!important;opacity:.85}
 html[data-world="midnight-reverie"][data-reverie-mode="dream"] #app-view .view .reverie-card::after {animation-duration:24s}
 html[data-world="midnight-reverie"][data-theme][data-mode] #app-view .view .metric.reverie-card {box-shadow:inset 0 1px #c3ddfb88,inset 0 -2px #050b23cc,0 3px 0 -1px #09152d,0 4px 0 -1px #7b8dbd66,0 14px 24px -8px #020519bb,0 0 19px -11px #96bafb66!important}
 html[data-world="midnight-reverie"][data-theme][data-mode] #app-view .view .metric.reverie-card:hover {border-color:#b4efff!important;box-shadow:inset 0 1px #e0faffaa,0 4px 0 -1px #101e3b,0 5px 0 -1px #9cb9de88,0 24px 34px -12px #020519cc,0 0 26px -9px #96bafb88!important}
 html[data-world="midnight-reverie"][data-theme][data-mode] #app-view .view .reverie-card::after {background:linear-gradient(90deg,transparent,#92e7ef 30%,#c2a3f1 65%,transparent)!important}
 html[data-world="midnight-reverie"][data-background-animations="off"] #midnight-reverie-scene * {animation:none!important}
 html[data-world="midnight-reverie"]:is([data-reverie-mode="minimal"],[data-decorative-animations="off"],[data-animations="off"],[data-reverie-paused="true"]) #app-view .view .reverie-card::after {animation:none!important}
 html[data-world="midnight-reverie"]:is([data-reverie-mode="minimal"],[data-decorative-animations="off"],[data-animations="off"]) :is(dialog,.modal-card,.reverie-card,button) {animation:none!important;transition:none!important;translate:none!important}
 @media(prefers-reduced-motion:reduce){html[data-world="midnight-reverie"] #app-view .view .reverie-card::after {animation:none!important}}
 @media(forced-colors:active){#midnight-reverie-scene{display:none}html[data-world="midnight-reverie"] #app-view .view .reverie-card {background:Canvas!important;color:CanvasText!important;box-shadow:none!important;border-color:CanvasText!important}html[data-world="midnight-reverie"] #app-view .view .reverie-card::before,html[data-world="midnight-reverie"] #app-view .view .reverie-card::after{display:none!important}}
}

}
@media print { #midnight-reverie-scene, #reverie-controls { display:none!important; } }

@media screen { @layer surface-material {
/* Preserve the existing operational status stripe on every room-card family. */
html[data-world="midnight-reverie"][data-theme][data-mode] #app-view .view :is(.room-card,.pr-room,.ab-room).reverie-card:is(.arrival-tier,.early-tier,.finished,[data-phase],[data-status]) {border-inline-start-width:3px!important;border-inline-start-color:var(--surface-room-signal,var(--accent))!important}
} }
/* Reference refinement: an open cobalt sky, a thin rose horizon and a small
   frontal machine on a dark wet rooftop. Modes own different lighting rigs. */
@media screen {@layer surface-material {
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode] {--mr-cyan:168,238,222;--mr-pink:222,151,186;--mr-violet:113,149,222;--mr-glass-a:#172b4edb;--mr-glass-b:#0b1730ed;--bg:#07142e;--muted:#bdcfe1;--border:#718898}
#midnight-reverie-scene {background:#0a2051}
.reverie-sky {background:radial-gradient(ellipse at 46% 55%,#7796cb30,transparent 55%),linear-gradient(#07275f 0%,#173b80 29%,#4668a4 57%,#9f8dad 75%,#bd8ba5 82%,#373361 88%,#090f29 89%)}
.reverie-horizon {inset:64% 0 6%;background:radial-gradient(ellipse at 66% 61%,#e8a7bb55,transparent 62%);animation:none;will-change:auto}
.reverie-silhouette {position:absolute;inset:76% 0 11%;pointer-events:none}.reverie-silhouette svg{height:100%;width:100%}
.reverie-pavement {inset:87% 0 0;border-top:1px solid #9198c31c;background:radial-gradient(ellipse at 58% 0,#2c2b51a0,transparent 70%),linear-gradient(175deg,#111932,#050c22 80%)}
.reverie-ground-seams {position:absolute;inset:88% 0 0;background:repeating-linear-gradient(174deg,transparent 0 35px,#818bb817 36px,transparent 38px),linear-gradient(95deg,transparent 49%,#020b22aa 49.5%,transparent 51%);transform:perspective(300px) rotateX(24deg);transform-origin:bottom}
.reverie-machine-island {left:54%;right:auto;bottom:1.5vh;width:clamp(100px,13vh,180px);height:clamp(170px,23vh,302px);transform:translateX(-50%)}
.reverie-machine {inset:0;bottom:auto;right:auto;width:100%;height:100%;filter:drop-shadow(0 9px 8px #01051d) drop-shadow(0 0 9px #bcfff42b)}
.reverie-pool {inset:63% -140% -11%;background:radial-gradient(ellipse,#c1f8d838,#76a9c114 45%,transparent 69%);transform:scaleY(.35);animation:none}
.reverie-reflection {left:5%;right:5%;top:97%;height:35%;background:repeating-linear-gradient(0deg,#91caa622 0 4px,#b4e8cd5a 6px 9px,#121d3611 10px 13px);clip-path:polygon(4% 0,96% 0,100% 100%,0 100%);transform:scaleY(.8) skewX(-9deg);opacity:.65;mask-image:linear-gradient(#000,transparent)}
.reverie-lamp {animation:reverie-fluorescent 43s linear infinite}.reverie-display{animation:reverie-display-life 29s ease-in-out infinite}
.reverie-product-row{animation:reverie-products 19s ease-in-out calc(var(--row)*-4.3s) infinite alternate}
.reverie-machine-light,.reverie-stars i{animation:none}
.reverie-vignette {box-shadow:inset 0 0 110px #030b2570;background:linear-gradient(90deg,#030d2866,transparent 62%)}
.reverie-cloud-light,.reverie-distance-haze,.reverie-wet-light,.reverie-room-light {position:absolute;pointer-events:none;display:none}
.reverie-cloud-light {inset:18% -10% 22%;background:radial-gradient(ellipse at 35% 55%,#a9bfdc29,transparent 53%)}
.reverie-distance-haze {inset:67% -8% 9%;background:linear-gradient(transparent,#bbc3db17,transparent);transform:translateX(-3%)}
.reverie-wet-light {inset:89% -10% -3%;background:linear-gradient(176deg,transparent 20%,#d9a4bb2e 21%,transparent 24%,transparent 41%,#b8f3db42 42%,transparent 44%,transparent 70%,#b48aa32b 71%,transparent 75%);transform:skewX(-13deg);mask-image:radial-gradient(ellipse,#000,transparent 75%)}
.reverie-room-light {inset:0;background:radial-gradient(ellipse at 55% 94%,#c4f9db18,transparent 65%);transition:opacity .55s,background .55s}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode] #app-view .view .reverie-card {background:linear-gradient(132deg,var(--mr-glass-a),var(--mr-glass-b) 70%)!important;border-color:#9eb1cf4a!important;border-radius:20px 8px 20px 8px!important;box-shadow:inset 0 1px #dce5f43b,inset 0 -1px #a3d6d922,0 3px 0 -1px #050d23,0 15px 28px -16px #02071be6!important;translate:none;transition:border-color .32s,box-shadow .4s,background-color .4s!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode] #app-view .view .reverie-card::after {animation:none!important;background:linear-gradient(90deg,transparent,#b9ead47a,#d298b55a,transparent)!important;box-shadow:none!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode] #app-view .view .reverie-card::before {background:linear-gradient(124deg,#c9dfec0b,transparent 42%,#d4a5bd08)!important;opacity:1!important;transform:none!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode] #app-view .reverie-card > .panel-head {background:linear-gradient(110deg,#d4f4e908,transparent 65%,#e8b5ce08)!important;border-bottom:1px solid #a4c0cf25!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode] :is(.topbar,.sidebar,.app-sidebar,.nav-shell,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel) {background:linear-gradient(155deg,#183352f0,#0a1932f5)!important;backdrop-filter:none!important;box-shadow:inset -1px 0 #bbefdc28,0 12px 30px #03091e44!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode] :is(button:not(.world-choice),select,input:not([type=range]):not([type=checkbox]),textarea) {border-color:#90b4c452!important;background-color:#0b1a33!important;color:#eaf4fa;box-shadow:inset 0 1px #d8f2ee0e,inset 0 -1px #02091e50;transition:border-color .25s,box-shadow .25s!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode] .nav-item:is(.active,[aria-current="page"]) {background:linear-gradient(100deg,#39707160,#253f6b80)!important;box-shadow:inset 2px 0 #c0f2d9,inset 0 1px #c2e9e438,0 5px 15px #02091b99!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode] :is(dialog,.modal-card,.modal-content,.drawer-content) {background:radial-gradient(ellipse at 10% 100%,#44766652,transparent 65%),linear-gradient(135deg,#213750fa,#101d38fc)!important;border-color:#b4d6cc83!important;box-shadow:inset 0 1px #def9eb66,0 30px 70px #01071ad9,0 0 0 1px #070d23!important}
/* Dream uses one diffuse moving canopy and satin surfaces; Full uses a low
   projection across the wet floor and directional, pointer-reactive glass. */
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="dream"] {--mr-glass-a:#263857e6;--mr-glass-b:#192641ed}
html[data-reverie-mode="dream"] .reverie-sky {background:radial-gradient(ellipse at 45% 54%,#8d97bc50,transparent 60%),linear-gradient(#112453,#3b5080 51%,#9d8daa 78%,#b597ac 85%,#151d38 88%)}
html[data-reverie-mode="dream"] :is(.reverie-cloud-light,.reverie-distance-haze){display:block;animation:reverie-haze-drift 48s ease-in-out infinite alternate}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="dream"] #app-view .view .reverie-card {border-color:#bfc8df50!important;box-shadow:inset 0 1px #e3e8fa50,0 0 22px -13px #d3bbd460,0 12px 24px -15px #050a20!important}
html[data-reverie-mode="dream"] .reverie-reflection {background:linear-gradient(#c2d9d82e,transparent);clip-path:ellipse(43% 30% at 50% 0);height:60%;transform:none}
html[data-reverie-mode="full"] :is(.reverie-wet-light,.reverie-room-light){display:block}
html[data-reverie-mode="full"] .reverie-wet-light{animation:reverie-reflection-shift 23s ease-in-out infinite alternate}
html[data-reverie-mode="full"] .reverie-pool{animation:reverie-floor-light 31s ease-in-out infinite alternate}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="full"] #app-view .view .reverie-card::before {background:radial-gradient(ellipse at var(--reverie-x,78%) var(--reverie-y,100%),#b7f4db19,transparent 57%),linear-gradient(124deg,#bcdbe808,transparent 45%,#de98b216)!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="full"][data-reverie-modal="true"] #midnight-reverie-scene .reverie-room-light {background:radial-gradient(ellipse at 50% 50%,#98cbd53b,transparent 70%),linear-gradient(#02092160,#02092160)}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="full"][data-reverie-modal="true"] #midnight-reverie-scene .reverie-vignette {background:#030a244a}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="minimal"] {--mr-glass-a:#152743;--mr-glass-b:#0e1c34}
html[data-reverie-mode="minimal"] :is(.reverie-cloud-light,.reverie-distance-haze,.reverie-wet-light,.reverie-room-light,.reverie-ground-seams){display:none!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="minimal"] #app-view .view .reverie-card {border-radius:12px!important;box-shadow:inset 0 1px #d7e5ef22,0 3px 8px #02091b55!important}
@media(hover:hover) and (pointer:fine){html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="full"] #app-view .view .reverie-card:hover {border-color:#c0eddb99!important;box-shadow:inset 0 1px #e3faef77,inset 0 -1px #b2efdf55,0 3px 0 -1px #050d23,0 22px 35px -18px #01061dd9,0 0 22px -15px #bdf3db80!important}html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode] button:hover:not(:disabled) {translate:none;box-shadow:inset 0 1px #d5f6e650,0 4px 12px #02081c77!important}}
.reverie-controls {display:block;padding:0;overflow:hidden;border-radius:20px 8px;background:#101e38;box-shadow:0 14px 30px #02091b66;border-color:#9abcc366}
.reverie-window {position:relative;height:280px;overflow:hidden;isolation:isolate;contain:layout paint;background:#102957}
.reverie-window-title {position:absolute;top:26px;left:26px;display:grid;gap:8px;max-width:75%;z-index:1;text-shadow:0 2px 14px #08102c}
.reverie-window-title strong{font:500 clamp(21px,2.5vw,30px)/1.2 "Space Grotesk",system-ui,sans-serif;color:#edf5f7}
.reverie-window-title small{font-size:10px;letter-spacing:.2em;color:#c5f1e5}
.reverie-window-title span{font-size:12px;color:#d1ddee}
.reverie-window .reverie-machine-island{left:64%;bottom:9px;width:104px;height:174px}
.reverie-machine-touch {position:absolute;inset:0;border:0!important;padding:0!important;background:transparent!important;box-shadow:none!important;cursor:pointer;z-index:1;transition:none!important}
.reverie-machine-touch:hover .reverie-display,.reverie-machine-touch:focus-visible .reverie-display{filter:brightness(1.12)}
.reverie-machine-touch:focus-visible{outline:2px solid #e2fff0!important;outline-offset:4px}
.reverie-mode-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:16px}
.reverie-mode-buttons button{padding:13px 12px;text-align:left;display:grid;gap:7px;align-content:start;border-radius:10px!important;min-height:77px}
.reverie-mode-buttons strong{font-size:14px}.reverie-mode-buttons small{font-size:11px;line-height:1.4;letter-spacing:normal;color:#bfd0e1}
.reverie-mode-buttons button[aria-pressed=true]{border-color:#d0f3df!important;background:linear-gradient(130deg,#315552,#25395a)!important;box-shadow:inset 0 1px #dcf4e565,0 0 0 1px #b9f4db22!important}
.reverie-audio-controls{border-top:1px solid #b6d2da22;padding:0 18px 16px}.reverie-audio-controls>summary{padding:16px 0;font-weight:600;cursor:pointer}
.reverie-audio-master{display:grid;grid-template-columns:auto auto minmax(150px,1fr);align-items:center;gap:18px}.reverie-audio-master button{padding:10px 15px;min-height:42px}
.reverie-audio-controls label{font-size:12px;line-height:1.5;color:#dbe7ed}.reverie-audio-controls input[type=range]{display:block;max-width:100%;width:100%;accent-color:#b4e6cc;min-height:28px}.reverie-audio-controls input[type=checkbox]{accent-color:#b4e6cc;width:17px;height:17px;vertical-align:middle;margin-inline-end:5px}
.reverie-audio-controls output{float:right;color:#c0f0d4;font-variant-numeric:tabular-nums}.reverie-audio-layers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.reverie-audio-layers fieldset{min-width:0;padding:12px;border:1px solid #91b6bf3b;border-radius:10px}.reverie-audio-layers legend{padding:0 4px}.reverie-audio-layers small{display:block;font-size:11px;line-height:1.5;color:#b9cada;margin-bottom:14px}.reverie-audio-help,[data-reverie-audio-status]{font-size:12px;line-height:1.6;color:#bfd0e1;max-width:75ch}.reverie-interface-sounds{display:block;margin:12px 0}
@keyframes reverie-fluorescent {0%,41%,41.15%,41.4%,41.7%,100%{opacity:1}41.08%,41.32%{opacity:.52}41.56%{opacity:.76}}
@keyframes reverie-display-life{0%,100%{opacity:.96}47%{opacity:1}71%{opacity:.92}}
@keyframes reverie-products{from{opacity:.9}to{opacity:1}}
@keyframes reverie-haze-drift{from{transform:translate3d(-2%,0,0)}to{transform:translate3d(3%,1%,0)}}
@keyframes reverie-reflection-shift{from{transform:translateX(-1%) skewX(-13deg)}to{transform:translateX(1%) skewX(-10deg)}}
@keyframes reverie-floor-light{from{opacity:.72;transform:scaleY(.34)}to{opacity:1;transform:scaleY(.4)}}
@media(max-width:700px){.reverie-window{height:300px}.reverie-window-title{left:18px;top:20px;max-width:90%}.reverie-window-title span{max-width:210px}.reverie-window .reverie-machine-island{left:62%;width:94px;height:157px}.reverie-mode-buttons{padding:10px;gap:5px}.reverie-mode-buttons button{padding:10px 7px;min-height:100px}.reverie-mode-buttons strong{font-size:12px}.reverie-mode-buttons small{font-size:10px}.reverie-audio-layers{grid-template-columns:1fr}.reverie-audio-master{grid-template-columns:1fr 1fr}.reverie-audio-master>label:last-child{grid-column:1/-1}.reverie-audio-controls{padding-inline:13px}#midnight-reverie-scene .reverie-machine-island{left:68%;bottom:3vh;width:100px;height:170px}html[data-reverie-mode="full"] :is(.reverie-wet-light,.reverie-pool){animation:none!important}.reverie-distance-haze{display:none!important}}
html[data-world="midnight-reverie"][data-reverie-paused="true"] :is(#midnight-reverie-scene,#reverie-controls) *,html[data-reverie-mode="minimal"] :is(#midnight-reverie-scene,#reverie-controls) * {animation:none!important}
html[data-world="midnight-reverie"][data-animations="off"] :is(#midnight-reverie-scene,#reverie-controls) *,html[data-world="midnight-reverie"][data-decorative-animations="off"] :is(#midnight-reverie-scene,#reverie-controls) * {animation:none!important}
@media(prefers-reduced-motion:reduce){html[data-world="midnight-reverie"] :is(#midnight-reverie-scene,#reverie-controls) *{animation:none!important;transition:none!important}html[data-world="midnight-reverie"] #app-view .view .reverie-card{translate:none!important;transition:none!important}}
}}

/* Midnight Reverie: keep typography clear and let each mode own its surfaces.
   The preview is independent of the operational card/depth engines. */
@media screen {
 @layer daylight-foundation {
  html[data-world="midnight-reverie"][data-mode="light"] #reverie-controls {
   background:var(--world-surface,#f4f4fb)!important;color:var(--world-text,#242640)!important;
  }
  html[data-world="midnight-reverie"][data-mode="light"] #reverie-controls :is(strong,small,span,label,legend,summary,p) {
   color:var(--world-text,#242640)!important;text-shadow:none!important;
  }
  html[data-world="midnight-reverie"][data-mode="light"] .reverie-window-title {
   text-shadow:none;background:linear-gradient(110deg,#f4f4fbe8,#f4f4fb99);
   border-radius:12px;padding:12px;max-width:calc(100% - 76px);
  }
  html[data-world="midnight-reverie"][data-mode="light"] #reverie-controls button[aria-pressed="true"] {
   background:var(--world-elevated,#e4e5f3)!important;color:var(--world-text,#242640)!important;
   border-color:var(--world-accent,#355656)!important;
  }
 }
 /* Restore the October 19 optical glass paint while retaining later readability fixes. */
 @layer surface-material.foundation {
  html[data-world="midnight-reverie"][data-mode="dark"] #app-view .view .reverie-card {
   background:radial-gradient(ellipse at 98% 0,rgba(var(--mr-pink),.12),transparent 52%),radial-gradient(ellipse at 0 100%,rgba(var(--mr-cyan),.09),transparent 55%),linear-gradient(125deg,#19294de8,#0c1834f5 55%,#14203eeb)!important;
   box-shadow:inset 0 1px 0 #dcecff60,inset 1px 0 0 #99d9ff18,inset 0 -2px 0 #03091acc,0 4px 0 -1px #070d23,0 5px 0 -1px #4b6a8b65,0 18px 32px -8px #020615b3,10px 7px 30px -24px #d5a9ef, -8px 13px 32px -25px #7df3ff!important;
  }
 }
 html[data-world="midnight-reverie"] #reverie-controls .reverie-window-title {filter:none;}
}
@media screen { @layer daylight-foundation {
 /* Generic material paint was reusing the optical reflection pseudo-element
    at z-index:1, placing an opaque second surface over the card's text. */
 html[data-world="midnight-reverie"][data-theme][data-mode] #app-view .view .reverie-card::before {
  z-index:-1!important;background:linear-gradient(124deg,#c9dfec0b,transparent 42%,#d4a5bd08)!important;
  opacity:1!important;pointer-events:none!important;
 }
 html[data-world="midnight-reverie"][data-theme][data-mode] #app-view .view .reverie-card > :is(.panel-head,.panel-body) {
  position:relative;z-index:2;
 }
} }

/* Preserve clear disclosure labels and keyboard focus without scenic artwork. */
@media screen { @layer surface-material.foundation {
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view :is(#dashboard-view,#assignments-view) :is([data-today-card-id="departures"],.combined-room-quick-panel,.tomorrow-card,.low-stock-card,[data-today-card-id="morning-list"],.today-still-needed-card) .card-disclosure-toggle {
 background:transparent!important;background-image:none!important;border:0!important;border-radius:8px!important;box-shadow:none!important;padding:8px 0!important;min-height:44px!important;max-width:100%!important;color:inherit!important;letter-spacing:inherit!important;translate:none!important;text-align:start!important;
}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view :is(#dashboard-view,#assignments-view) :is([data-today-card-id="departures"],.combined-room-quick-panel,.tomorrow-card,.low-stock-card,[data-today-card-id="morning-list"],.today-still-needed-card) .card-disclosure-toggle:hover {
 background:#9eeaf20c!important;
}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode] #app-view :is(#dashboard-view,#assignments-view) :is([data-today-card-id="departures"],.combined-room-quick-panel,.tomorrow-card,.low-stock-card,[data-today-card-id="morning-list"],.today-still-needed-card) .card-disclosure-toggle:focus-visible {
 outline:2px solid #9eecf4!important;outline-offset:5px!important;
}
}}

/* Preserve clear disclosure labels and keyboard focus without scenic artwork. */
@media screen { @layer daylight-foundation {
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode="light"] #app-view :is(#dashboard-view,#assignments-view) :is([data-today-card-id="departures"],.combined-room-quick-panel,.tomorrow-card,.low-stock-card,[data-today-card-id="morning-list"],.today-still-needed-card) .card-disclosure-toggle {
 background:transparent!important;background-image:none!important;border:0!important;border-radius:8px!important;box-shadow:none!important;padding:8px 0!important;min-height:44px!important;max-width:100%!important;color:inherit!important;letter-spacing:inherit!important;translate:none!important;text-align:start!important;
}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode="light"] #app-view :is(#dashboard-view,#assignments-view) :is([data-today-card-id="departures"],.combined-room-quick-panel,.tomorrow-card,.low-stock-card,[data-today-card-id="morning-list"],.today-still-needed-card) .card-disclosure-toggle:hover {
 background:#9eeaf20c!important;
}
html[data-world="midnight-reverie"][data-theme="midnight-reverie"][data-mode="light"] #app-view :is(#dashboard-view,#assignments-view) :is([data-today-card-id="departures"],.combined-room-quick-panel,.tomorrow-card,.low-stock-card,[data-today-card-id="morning-list"],.today-still-needed-card) .card-disclosure-toggle:focus-visible {
 outline:2px solid #9eecf4!important;outline-offset:5px!important;
}
}}


/* Source: housekeeper-ratings.css */
.hrr-panel{min-width:0}.hrr-panel>details>summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.hrr-panel h3{margin:0}.hrr-panel summary>span,.hrr-note{font-size:.8rem;opacity:.82}.hrr-filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:end}.hrr-filters label,.hrr-correction label{display:grid;gap:.2rem;font-size:.8rem;min-width:0}.hrr-filters select,.hrr-filters input{width:100%;min-height:36px;max-width:230px}.hrr-toolbar{display:flex;gap:.5rem;flex-wrap:wrap;margin:.7rem 0}.hrr-status{padding:.5rem 0;font-weight:600}.hrr-table-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:10px}.hrr-panel table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.85rem}.hrr-panel th,.hrr-panel td{padding:.55rem;text-align:center;border-bottom:1px solid var(--border);white-space:nowrap}.hrr-panel th:first-child{text-align:left}.hrr-panel th small{display:block;font-weight:400;opacity:.7}.hrr-sort{font:inherit;font-weight:600;border:0;background:none;color:inherit;cursor:pointer;padding:.3rem}.hrr-count{min-width:34px;min-height:34px;border-radius:7px;background:var(--surface-2,var(--panel));border:1px solid var(--border);font-weight:700;cursor:pointer}.hrr-star-1{color:#c75462}.hrr-star-2{color:#bb6b43}.hrr-star-3{color:#a87e16}.hrr-star-4{color:#2f8e9a}.hrr-star-5{color:#3e9b72}.hrr-unmatched,.hrr-trend{padding:.7rem 0}.hrr-chart{width:min(100%,480px);height:100px;display:block;color:var(--accent);fill:currentColor}.hrr-dialog{width:min(900px,94vw);max-width:94vw;max-height:90dvh;padding:0;border:1px solid var(--border);border-radius:16px;color:var(--text);background:var(--panel,#fff)}.hrr-dialog::backdrop{background:#0009}.hrr-dialog-head{position:sticky;top:0;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.8rem 1rem;background:var(--panel,#fff);z-index:1}.hrr-dialog-head h3{margin:0}.hrr-detail-body{padding:1rem}.hrr-review{padding:1rem 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.hrr-review h4{margin:.2rem 0}.hrr-review blockquote{white-space:pre-wrap;margin:.6rem 0;padding:.6rem;border-left:3px solid var(--accent)}.hrr-review pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.75rem}.hrr-review details{margin:.5rem 0}.hrr-review summary{cursor:pointer}.hrr-correction{display:grid;gap:.65rem;margin:.8rem 0}.hrr-correction textarea{min-height:80px}.hrr-correction input,.hrr-correction select,.hrr-correction textarea{max-width:100%;width:100%}.hrr-panel button:focus-visible,.hrr-dialog button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:600px){.hrr-filters label{flex:1 1 44%;max-width:100%}.hrr-filters select,.hrr-filters input{max-width:100%;min-width:0}.hrr-panel th,.hrr-panel td{padding:.4rem}.hrr-dialog{width:96vw;max-width:96vw}.hrr-detail-body{padding:.7rem}}

.hrr-stay{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.3rem .8rem}.hrr-stay dt{font-weight:600}.hrr-stay dd{margin:0;overflow-wrap:anywhere}

.hrr-panel tfoot{font-weight:700;border-top:2px solid currentColor}.hrr-panel th:first-child{min-width:130px}.hrr-date-basis{font-weight:600}.hrr-panel td{font-variant-numeric:tabular-nums}

/* Compact management reports. Operational matching and review records stay separate. */
.hrr-panel .hrr-body{padding:.75rem;display:grid;gap:.65rem}
.hrr-viewbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.hrr-segments{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2,var(--panel))}
.hrr-segments button{border:0;border-radius:6px;padding:.35rem .85rem;min-height:32px;font:inherit;font-size:.82rem;color:var(--text);background:transparent;cursor:pointer}
.hrr-segments button[aria-pressed=true]{background:var(--panel);box-shadow:0 1px 4px #0002;color:var(--accent,var(--text));font-weight:650}
.hrr-actions{position:relative;flex:none;margin-left:auto;font-size:.82rem}
.hrr-actions>summary{display:flex;align-items:center;gap:.45rem;list-style:none;cursor:pointer;border:1px solid var(--border);border-radius:8px;padding:.4rem .65rem;min-height:32px;box-sizing:border-box}
.hrr-actions>summary::-webkit-details-marker{display:none}
.hrr-actions-menu{position:absolute;right:0;top:calc(100% + 5px);z-index:8;min-width:145px;padding:4px;border:1px solid var(--border);border-radius:9px;background:var(--panel,#fff);box-shadow:0 6px 20px #0002}
.hrr-actions-menu button{display:block;width:100%;text-align:left;background:transparent;border:0;border-radius:5px;color:var(--text);padding:.55rem .65rem;font:inherit;cursor:pointer}
.hrr-actions-menu button:hover{background:var(--surface-2,var(--surface))}
.hrr-actions-menu button:disabled{opacity:.5;cursor:default}
.hrr-panel .hrr-filters{display:flex;gap:.55rem;align-items:end;margin:0;padding:.65rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-2,var(--panel))}
.hrr-filters label{flex:1 1 150px;gap:.25rem;font-size:.74rem;font-weight:550}
.hrr-filters label>span{display:flex;align-items:center;gap:.3rem;min-height:20px}
.hrr-filters label.hrr-custom-date{flex:.7 1 130px}
.hrr-panel .hrr-filters select,.hrr-panel .hrr-filters input{box-sizing:border-box;max-width:none;min-width:0;min-height:36px;padding:.35rem .5rem;font-size:.82rem;border-radius:7px}
.hrr-panel .hrr-status{padding:0;font-size:.8rem;font-weight:500}
.hrr-panel [hidden]{display:none!important}
.hrr-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
.hrr-metrics>div{display:flex;flex-wrap:wrap;align-content:start;gap:.15rem .4rem;border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem;min-width:0;background:var(--surface-2,var(--panel))}
.hrr-metrics>div>span{width:100%;min-height:19px;display:flex;align-items:center;gap:.3rem;font-size:.73rem;font-weight:500;color:var(--muted,var(--text))}
.hrr-metrics strong{font-size:1.45rem;font-weight:650;line-height:1.25;font-variant-numeric:tabular-nums}
.hrr-metric-link{align-self:center;margin-left:auto;padding:.2rem 0;font:inherit;font-size:.74rem;border:0;background:none;color:var(--accent,var(--text));cursor:pointer;white-space:nowrap}
.hrr-match-details{padding:.65rem .75rem;border:1px solid var(--border);border-radius:9px;background:var(--surface-2,var(--panel))}
.hrr-match-details dl,.hrr-employee-detail-content dl{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin:0 0 .45rem}
.hrr-match-details dl>div,.hrr-employee-detail-content dl>div{display:grid;gap:.15rem}
.hrr-match-details dt,.hrr-employee-detail-content dt{font-size:.73rem;font-weight:400;opacity:.8}
.hrr-match-details dd,.hrr-employee-detail-content dd{margin:0;font-size:.86rem;font-weight:600}
.hrr-text-action{font:inherit;font-size:.8rem;color:var(--accent,var(--text));border:0;background:none;padding:.25rem 0;cursor:pointer}
.hrr-text-action:disabled{opacity:.5;cursor:default}
.hrr-info{display:inline-flex;vertical-align:middle;flex:none}
.hrr-info>button{display:inline-flex;justify-content:center;align-items:center;width:19px;height:19px;min-width:19px;min-height:19px;padding:0;border:1px solid var(--border);border-radius:50%;font:600 11px system-ui;color:var(--muted,var(--text));background:transparent;cursor:pointer}
.hrr-tip[popover]{position:fixed;inset:auto;margin:0;width:240px;max-width:calc(100vw - 48px);padding:.65rem .75rem;border:1px solid var(--border);border-radius:9px;font:400 .78rem/1.5 system-ui;color:var(--text);background:var(--panel,#fff);box-shadow:0 5px 24px #0003;white-space:normal;text-align:left}
.hrr-panel .hrr-table-scroll{border-radius:10px;min-width:0;scroll-padding-inline-start:155px}
.hrr-panel table{font-size:.8rem;border-collapse:separate;border-spacing:0}
.hrr-panel th,.hrr-panel td{padding:.35rem .45rem;height:37px;box-sizing:border-box}
.hrr-panel thead th{font-size:.71rem;background:var(--surface-2,var(--panel));vertical-align:middle}
.hrr-column-label{display:flex;align-items:center;justify-content:center;gap:2px}
.hrr-panel .hrr-sort{padding:.2rem;max-width:105px;min-height:32px;font-size:inherit;white-space:normal;line-height:1.25}
.hrr-panel th:first-child{position:sticky;left:0;z-index:2;min-width:155px;background:var(--panel,#fff);box-shadow:1px 0 0 var(--border)}
.hrr-panel thead th:first-child{z-index:3;background:var(--surface-2,var(--panel))}
.hrr-panel thead th:first-child .hrr-column-label{justify-content:flex-start}
.hrr-employee{display:flex;align-items:center;gap:.4rem;font:inherit;font-weight:600;min-height:32px;padding:.15rem 0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}
.hrr-employee>span{color:var(--accent,var(--text));font-size:1rem;min-width:10px}
.hrr-panel [data-employee-row]{cursor:pointer}
.hrr-panel [data-employee-row]:hover td,.hrr-panel .hrr-row-expanded td{background:var(--surface-2,var(--panel))}
.hrr-panel .hrr-count{min-width:30px;min-height:32px;padding:.2rem;border:0;background:transparent;color:var(--accent,var(--text));font:inherit;font-weight:600;cursor:pointer}
.hrr-panel .hrr-count:hover{background:var(--surface-2,var(--panel));text-decoration:underline}
.hrr-panel .hrr-employee-detail>td{text-align:left;white-space:normal;padding:.55rem .75rem;background:var(--surface-2,var(--panel))}
.hrr-employee-detail-content{position:sticky;left:0;width:min(480px,calc(100vw - 100px))}
.hrr-panel tfoot th,.hrr-panel tfoot td{font-size:.76rem;border-top:1px solid var(--border);border-bottom:0;background:var(--surface-2,var(--panel));height:38px}
.hrr-panel .hrr-trend{padding:.55rem 0;border-bottom:1px solid var(--border)}
.hrr-trend>summary{font-size:.84rem;font-weight:550;cursor:pointer}
.hrr-trend>.hrr-info{margin-top:.4rem}
@media(max-width:600px){
 .hrr-panel .hrr-body{padding:.55rem;gap:.5rem}.hrr-panel>details>summary.panel-head{gap:.2rem;padding:.7rem}.hrr-panel>details>summary>span{font-size:.7rem}
 .hrr-panel .hrr-filters{padding:.5rem;gap:.45rem}.hrr-filters label{flex:1 1 calc(50% - .5rem);max-width:100%}.hrr-filters label:last-child{flex-basis:100%}.hrr-filters label.hrr-custom-date{flex:1 1 calc(50% - .5rem)}
 .hrr-metrics{gap:.35rem}.hrr-metrics>div{padding:.5rem}.hrr-metrics>div>span{font-size:.67rem;gap:.2rem;line-height:1.3}.hrr-metrics strong{font-size:1.2rem}.hrr-metric-link{margin:0;font-size:.67rem;white-space:normal}.hrr-metrics .hrr-info>button{width:17px;height:17px;min-width:17px;min-height:17px}
 .hrr-panel th:first-child{min-width:135px}.hrr-panel .hrr-table-scroll{scroll-padding-inline-start:135px}.hrr-employee-detail-content{width:calc(100vw - 94px)}
}
.hrr-panel .hrr-filters select{appearance:none;height:36px;padding-right:1.6rem;background-image:linear-gradient(45deg,transparent 50%,var(--muted,var(--text)) 50%),linear-gradient(135deg,var(--muted,var(--text)) 50%,transparent 50%);background-position:calc(100% - 13px) 50%,calc(100% - 9px) 50%;background-size:4px 4px;background-repeat:no-repeat}
.hrr-metric-link{min-height:24px;min-width:0}
.hrr-actions-menu button{min-height:32px}
@media(max-width:600px){.hrr-panel .hrr-filters select,.hrr-panel .hrr-filters input{font-size:16px}}


/* Source: data-grid.css */
/* Shared data surfaces. Theme palettes and component behavior remain authoritative. */
:is(.workspace,.app-main,dialog,.modal-content) table{--grid-divider:color-mix(in srgb,var(--border,currentColor) 48%,transparent);--grid-stripe:color-mix(in srgb,var(--accent,currentColor) 3%,transparent);--grid-hover:color-mix(in srgb,var(--accent,currentColor) 8%,transparent);font-variant-numeric:tabular-nums;line-height:1.4}
:is(.workspace,.app-main,dialog,.modal-content) table:not(.schedule-grid):not(.operations-sheet){border-spacing:0;font-size:.84rem}
:is(.workspace,.app-main,dialog,.modal-content) table:not(.schedule-grid):not(.operations-sheet) :is(th,td){padding-block:.48rem;border-bottom-color:var(--grid-divider);vertical-align:middle}
:is(.workspace,.app-main,dialog,.modal-content) table thead th{font-size:.74rem;font-weight:650;letter-spacing:.015em;color:var(--text);background-color:color-mix(in srgb,var(--panel,var(--surface)) 96%,var(--accent) 4%)}
:is(.workspace,.app-main,dialog,.modal-content) table tbody>tr:nth-child(even)>td:not(.sheet-frozen):not([data-status]){background-color:var(--grid-stripe)}
:is(.workspace,.app-main,dialog,.modal-content) table tbody>tr>:is(td,th){transition:background-color .14s ease}
@media(hover:hover){:is(.workspace,.app-main,dialog,.modal-content) table tbody>tr:hover>td:not(.sheet-frozen):not([data-status]){background-color:var(--grid-hover)}}
:is(.workspace,.app-main,dialog,.modal-content) table :is(input:not([type=checkbox]):not([type=radio]),select,.button){border-radius:.5rem;font:inherit;max-width:100%}
:is(.workspace,.app-main,dialog,.modal-content) table :is(input[type=checkbox],input[type=radio]){accent-color:var(--accent);inline-size:1rem;block-size:1rem;vertical-align:middle}
:is(.workspace,.app-main,dialog,.modal-content) table :is(button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px}
:is(.workspace,.app-main,dialog,.modal-content) table :is(tr[aria-selected=true]>td,tr[aria-selected=true]>th,.sheet-selected){background-color:color-mix(in srgb,var(--accent) 16%,var(--panel,var(--surface)))}
/* Preserve spreadsheet density, frozen columns, selection and theme lighting. */
:is(.workspace,.app-main,dialog) .operations-sheet :is(th,td){border-right-color:transparent!important;border-bottom-color:var(--grid-divider)!important}
:is(.workspace,.app-main,dialog) .operations-sheet :is(.sheet-selected,.sheet-frozen){border-right-color:var(--grid-divider)!important}
:is(.mpr-table-wrap,.mpr-checkout-scroll,.hrr-table-scroll,.hp-table-scroll,.br-table-wrap){border-radius:.65rem;isolation:isolate}
:is(.hrr-table-scroll,.hp-table-scroll,.br-table-wrap) thead th{position:sticky;top:0;z-index:2}
:is(.sheet-toolbar,.matrix-toolbar,.hrr-toolbar){gap:.4rem}
:is(.sheet-toolbar,.matrix-toolbar,.hrr-toolbar) :is(input,select,.button){border-radius:.55rem}
@media(prefers-reduced-motion:reduce){:is(.workspace,.app-main,dialog,.modal-content) table tbody>tr>:is(td,th){transition:none}}
@media print{:is(.workspace,.app-main,dialog,.modal-content) table thead th{position:static} :is(.workspace,.app-main,dialog,.modal-content) table tbody>tr>:is(td,th){transition:none}}
:is(.hrr-table-scroll,.hp-table-scroll,.br-table-wrap){max-block-size:min(65dvh,48rem);overflow:auto;scrollbar-gutter:stable}
@media print{:is(.hrr-table-scroll,.hp-table-scroll,.br-table-wrap){max-block-size:none;overflow:visible}}


/* Source: sacred-grove.css */
/* The Sacred Grove owns its materials and scenery, never operational state. */
@media screen{@layer surface-material{
html[data-world="the-sacred-grove"][data-theme][data-mode]{--grove-edge:#9d965e;--grove-lamp:#e4ba68;--grove-mint:#94e8ce;--grove-timber:#253d32;--grove-room-art:url('/assets/sacred-grove/grove.webp');--grove-shade:#06161b66;--grove-frame:linear-gradient(135deg,#c3bc7a,#52664a 19%,#b0a365 21%,#304835 45%,#79835b 70%,#c9b774);--grove-depth:inset 0 2px #f7e4ae4d,inset 0 -3px #041a1dbb,0 5px 0 #102a24,0 7px 0 #8a805f77,0 22px 32px -9px #031119b8,10px 8px 25px -18px #9ce9c96b}
html[data-world="the-sacred-grove"][data-theme][data-mode][data-grove-place="study"]{--grove-room-art:url('/assets/sacred-grove/study.webp');--grove-edge:#b49261;--grove-timber:#453628;--grove-lamp:#ffd08a}
html[data-world="the-sacred-grove"][data-theme][data-mode][data-grove-place="guild"]{--grove-room-art:url('/assets/sacred-grove/guild.webp');--grove-edge:#ad9658;--grove-timber:#3b3826;--grove-lamp:#f6cd79}
html[data-world="the-sacred-grove"][data-theme][data-mode][data-grove-place="courtyard"]{--grove-room-art:url('/assets/sacred-grove/courtyard.webp');--grove-edge:#8d9b86;--grove-timber:#344747;--grove-lamp:#e5d49a}
html[data-world="the-sacred-grove"][data-theme][data-mode][data-grove-place="inn"]{--grove-room-art:url('/assets/sacred-grove/inn.webp');--grove-edge:#bd945f;--grove-timber:#453329;--grove-lamp:#efb96b}
html[data-world="the-sacred-grove"][data-theme][data-mode][data-grove-time="morning"]{--grove-shade:#213f3738;--grove-mint:#b7e6d4}
html[data-world="the-sacred-grove"][data-theme][data-mode][data-grove-time="afternoon"]{--grove-shade:#163e2518;--grove-lamp:#ffdd87}
html[data-world="the-sacred-grove"][data-theme][data-mode][data-grove-time="evening"]{--grove-shade:#44291a66;--grove-lamp:#ffc072}
html[data-world="the-sacred-grove"][data-theme][data-mode][data-grove-time="night"]{--grove-shade:#06142caa;--grove-lamp:#9fdfff;--grove-mint:#8dccea}
html[data-world="the-sacred-grove"][data-theme][data-mode] :is(body,.workspace,#app-view,.app-shell){background:transparent!important}
html[data-world="the-sacred-grove"] :is(.world-atmosphere,.workspace-animation-decor,.ambient){display:none!important}
#sacred-grove-world{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict;background:#071d20}
#sacred-grove-world>div{position:absolute;inset:0;pointer-events:none}
.grove-landscape{background-image:linear-gradient(var(--grove-shade),var(--grove-shade)),var(--grove-room-art);background-size:cover;background-position:center;image-rendering:auto}
.grove-shadow-canopy{background:repeating-conic-gradient(from 10deg at 0 0,#010e1633 0deg 6deg,transparent 9deg 19deg);opacity:.3;transform-origin:0 0;animation:grove-shadows 27s ease-in-out infinite alternate}
.grove-sunbeam{background:linear-gradient(122deg,transparent 35%,#fff0ae20 37%,transparent 42%,transparent 49%,#ffe4a729 51%,transparent 61%);mix-blend-mode:screen;animation:grove-beam 20s ease-in-out infinite alternate}
.grove-waterfall{inset:28% auto 8% 13%!important;width:13px;background:repeating-linear-gradient(0deg,#bdf4f700 0 14px,#c2f9f470 18px 22px,#5cd1d48a 25px 38px);background-size:100% 80px;mask-image:linear-gradient(transparent,#000 20%,#000 70%,transparent);animation:grove-water 1.8s linear infinite;opacity:.6}
.grove-rain,.grove-snow,.grove-fog,.grove-surface-ripples{display:none}
html[data-grove-weather="rain"] .grove-rain,html[data-grove-weather="storm"] .grove-rain{display:block;background-image:repeating-linear-gradient(105deg,transparent 0 57px,#bee1e52e 58px 59px,transparent 60px 113px);background-size:135px 180px;animation:grove-rain .7s linear infinite;opacity:.7}
html[data-grove-weather="rain"] .grove-surface-ripples,html[data-grove-weather="storm"] .grove-surface-ripples{display:block;inset:65% 0 0!important;background:radial-gradient(ellipse at 18% 38%,transparent 0 9px,#a0dfe255 10px 11px,transparent 12px),radial-gradient(ellipse at 73% 78%,transparent 0 6px,#c1e7e65a 7px 8px,transparent 9px);background-size:173px 73px;animation:grove-ripples 2.1s ease-in-out infinite alternate}
html[data-grove-weather="storm"] .grove-sunbeam{animation:grove-storm 23s linear infinite;background:#d8eeff;opacity:0}
html[data-grove-weather="snow"] .grove-snow{display:block;background-image:radial-gradient(#e3f5f7 1px,transparent 2px),radial-gradient(#bde6ee 1px,transparent 2px);background-size:97px 83px,139px 127px;animation:grove-snow 23s linear infinite;opacity:.5}
html[data-grove-weather="fog"] .grove-fog{display:block;background:linear-gradient(transparent 30%,#b6d1c52e 65%,transparent),radial-gradient(ellipse at 30% 75%,#b7d4cc55,transparent 60%);animation:grove-fog 30s ease-in-out infinite alternate}
.grove-magic{background:radial-gradient(ellipse at 85% 75%,#b3f7dd00,transparent 40%);transition:background-color 1s}
html[data-grove-awake="true"] .grove-magic{background-color:#8ddfdb22;animation:grove-awaken 2s ease-out}
.grove-creatures i{position:absolute;display:block;image-rendering:pixelated}
.grove-fairy{right:5%;top:39%;width:4px;height:5px;background:#dcfffc;box-shadow:0 0 9px 4px #75e3fbaa,-5px -2px 0 #84d5ee77,5px -2px 0 #84d5ee77;animation:grove-fairy 8s ease-in-out infinite alternate}
.grove-butterfly{left:5%;bottom:19%;width:6px;height:4px;background:#b8acdd;box-shadow:5px 0 #b8acdd,3px 2px #324858;animation:grove-wings 2.4s steps(2) infinite}
.grove-fox{left:8%;bottom:7%;width:15px;height:8px;background:#b56e42;box-shadow:8px -4px #bd8659,12px -7px #704931,-11px 2px #a66a45,-15px 1px #eddbc1;animation:grove-creature 42s steps(4) infinite}
.grove-mushrooms{right:2%;bottom:10%;width:12px;height:5px;background:#9bdfc0;box-shadow:0 3px 0 -2px #e0e8ba,17px 7px #688bcd,0 0 15px #86dac9;animation:grove-lantern 9s ease-in-out infinite alternate}
/* Inlaid frame, bevel, grain and contact shadow create a physical object. */
html[data-world="the-sacred-grove"][data-theme][data-mode] #app-view .view :is(.panel,.metric,.summary-card,.metric-card,.prod-score-card,.employee-bubble){position:relative;border:4px solid transparent!important;border-radius:3px 11px 3px 11px!important;background:linear-gradient(115deg,color-mix(in srgb,var(--world-surface) 96%,var(--grove-timber)),color-mix(in srgb,var(--world-surface) 94%,var(--grove-timber))) padding-box,var(--grove-frame) border-box!important;box-shadow:var(--grove-depth)!important;backdrop-filter:none!important;transition:box-shadow .35s,border-color .35s,translate .28s!important;isolation:isolate}
html[data-world="the-sacred-grove"][data-theme][data-mode] #app-view .view :is(.panel,.metric,.summary-card,.metric-card,.prod-score-card)::after{content:''!important;display:block!important;position:absolute;inset:-7px 9px auto auto!important;width:50px!important;height:27px!important;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 27' shape-rendering='crispEdges'%3E%3Cpath fill='%236c8e58' d='M2 14h7v-4h8V7h7v4h-7v4H9v3H2zM30 8h7v4h7v4h5v4h-9v-4h-6z'/%3E%3Cpath fill='%23b7c783' d='M7 7h8v4H7zM34 17h7v5h-7z'/%3E%3Cpath fill='%23e4c77d' d='M23 3h5v5h5v5h-5v5h-5v-5h-5V8h5z'/%3E%3Cpath fill='%237ca7b0' d='M24 8h4v5h-4z'/%3E%3C/svg%3E") center/contain no-repeat!important;image-rendering:pixelated;pointer-events:none}
html[data-world="the-sacred-grove"][data-theme][data-mode] #app-view .view .panel>.panel-head{background:repeating-linear-gradient(0deg,transparent 0 6px,#6d744e09 7px 8px),linear-gradient(95deg,color-mix(in srgb,var(--grove-edge) 12%,var(--world-surface)),var(--world-surface))!important;border-bottom:1px solid color-mix(in srgb,var(--grove-edge) 65%,transparent);box-shadow:0 2px 0 #071c1619,inset 0 1px #ffedc54d;border-radius:0!important}
html[data-world="the-sacred-grove"] :is(h1,h2,h3,.panel-title){font-family:var(--world-font);text-wrap:balance}
html[data-world="the-sacred-grove"][data-theme][data-mode] #app-view .view :is(.room-card,.room-tile){background:linear-gradient(130deg,color-mix(in srgb,var(--world-surface) 96%,var(--grove-mint)),var(--world-surface))!important;border-radius:3px 7px 3px 7px!important;box-shadow:inset 0 1px #ffedbe33,0 3px 0 #09241c66,0 9px 15px -8px #03131bb3!important}
@media(hover:hover){html[data-world="the-sacred-grove"][data-grove-motion="true"] #app-view .view :is(.panel,.summary-card,.metric-card,.prod-score-card):hover{translate:0 -2px;box-shadow:inset 0 2px #fff0b680,inset 0 -3px #041a1dbb,0 5px 0 #102a24,0 7px 0 #d2b877bb,0 27px 35px -10px #031119d9,0 0 28px -10px #a7e2bc99!important}}
html[data-world="the-sacred-grove"][data-theme][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel){background:repeating-linear-gradient(0deg,transparent 0 9px,#9ba56f08 10px 11px),linear-gradient(120deg,var(--world-surface),color-mix(in srgb,var(--world-surface) 84%,var(--grove-timber)))!important;border-color:var(--grove-edge)!important;box-shadow:inset -2px 0 #b8c18c38,7px 0 25px #02151a44!important;backdrop-filter:none!important}
html[data-world="the-sacred-grove"][data-theme][data-mode] .nav-item.active{box-shadow:inset 3px 0 var(--grove-lamp),inset 0 1px #e9e3ad55,0 3px 0 #071f2466,0 0 18px -8px var(--grove-mint)!important;background:linear-gradient(100deg,color-mix(in srgb,var(--world-accent) 17%,var(--world-surface)),var(--world-surface))!important}
html[data-world="the-sacred-grove"][data-theme][data-mode] :is(button.button,.tab-button,.theme-button,select,input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea){border-radius:3px!important;border-color:color-mix(in srgb,var(--grove-edge) 80%,var(--world-border))!important;box-shadow:inset 0 1px #ebdbad38,0 2px 0 #0b241f55;transition:box-shadow .2s,background-color .2s}
html[data-world="the-sacred-grove"] button:focus-visible,html[data-world="the-sacred-grove"] :is(input,select,textarea):focus-visible{outline:2px solid var(--world-accent);outline-offset:3px}
html[data-world="the-sacred-grove"] input[type="checkbox"]{accent-color:var(--world-accent);border-radius:1px}
html[data-world="the-sacred-grove"][data-theme][data-mode] button.button.primary{background:linear-gradient(135deg,var(--world-accent),color-mix(in srgb,var(--world-accent) 80%,var(--grove-edge)))!important;color:var(--world-on-accent)!important;box-shadow:inset 0 1px #fff3,0 3px 0 #0b2b2480,0 0 16px -10px var(--grove-lamp)}
html[data-world="the-sacred-grove"] :is(progress,.progress-bar,.room-progress){accent-color:var(--grove-mint);box-shadow:inset 0 2px 3px #061b2566;border-radius:2px}
html[data-world="the-sacred-grove"] :is(table,.operations-sheet,.schedule-grid){--grid-stripe:color-mix(in srgb,var(--grove-edge) 6%,transparent);--grid-hover:color-mix(in srgb,var(--grove-mint) 12%,transparent);border-color:var(--grove-edge);font-variant-numeric:tabular-nums}
html[data-world="the-sacred-grove"][data-theme][data-mode] table thead th{background:linear-gradient(var(--world-elevated),var(--world-surface));border-bottom:2px solid var(--grove-edge);font-family:var(--world-font)}
html[data-world="the-sacred-grove"] :is(dialog,.modal-content,.popover,.dropdown-menu,.toast){color:var(--world-text);background:var(--world-surface);border:2px solid var(--grove-edge);border-radius:3px 9px 3px 9px;box-shadow:inset 0 1px #f2dba26b,0 5px 0 #132a26,0 24px 65px #010d1ab3}
html[data-world="the-sacred-grove"][data-grove-motion="true"] :is(dialog[open],.modal-content,.toast){animation:grove-unfold .35s cubic-bezier(.16,.8,.25,1) both;transform-origin:50% 30%}
html[data-world="the-sacred-grove"] dialog::backdrop{background:#03151caa;backdrop-filter:blur(3px)}
.grove-journey{position:relative;display:flex;align-items:center;gap:18px;min-width:0;margin:0 0 22px;padding:11px 18px;isolation:isolate;border:1px solid var(--grove-edge);border-radius:3px;background:linear-gradient(100deg,color-mix(in srgb,var(--world-surface) 96%,transparent),color-mix(in srgb,var(--world-surface) 70%,transparent)),var(--grove-room-art) center 60%/cover;box-shadow:inset 0 1px #e0e0a85c,0 4px 0 #102a24,0 16px 24px -14px #02101bc9;color:var(--world-text)}
.grove-place{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.grove-place small,.grove-settings small{font:600 9px/1.4 system-ui;letter-spacing:.16em;color:var(--world-secondary)}.grove-place strong{font:600 clamp(17px,2vw,24px)/1.25 var(--world-font)}.grove-place>span{font-size:11px;color:var(--world-secondary)}
.grove-discoveries{display:flex;align-items:end;gap:4px}.grove-object{border:0;background:transparent!important;color:inherit;cursor:pointer;width:49px;height:66px;padding:0;position:relative;flex-shrink:0;touch-action:manipulation}.grove-object svg{width:100%;height:100%;overflow:visible}.grove-sword{width:58px;height:77px;margin-block:-4px}.grove-object:hover svg{filter:drop-shadow(0 0 6px #bddca877)}.grove-object:focus-visible{outline:2px solid var(--world-accent);outline-offset:2px}.grove-chest-lid{transform-origin:50% 30%;transition:transform .45s cubic-bezier(.2,.8,.2,1)}[aria-pressed="true"] .grove-chest-lid{transform:translateY(-10px) rotate(-9deg)}.grove-book-pages{transform-origin:50% 60%;transition:transform .5s}[aria-pressed="true"] .grove-book-pages{transform:perspective(100px) rotateX(-25deg) rotateY(12deg)}.grove-lantern-flame{animation:grove-lantern 5s ease-in-out infinite alternate}[aria-pressed="true"] .grove-lantern-flame{fill:#fff0ac;filter:drop-shadow(0 0 9px #ffcf63)}.grove-discovery-status{position:absolute;right:18px;bottom:1px;font-size:10px;color:var(--world-secondary);pointer-events:none}
.grove-settings{width:min(640px,calc(100vw - 28px));max-height:85dvh;overflow:auto;padding:22px;box-sizing:border-box;overscroll-behavior:contain}.grove-settings-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:20px}.grove-settings h2{margin:5px 0;font-size:23px}.grove-settings-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.grove-settings-fields label{display:flex;flex-direction:column;gap:7px;font-size:12px;min-width:0}.grove-settings :is(select,input){max-width:100%;color:var(--world-text);background:var(--world-elevated);padding:8px}.grove-setting-note,.grove-settings [role="status"]{font-size:11px;line-height:1.6;color:var(--world-secondary)}.grove-settings fieldset{margin:18px 0 0;border:1px solid var(--grove-edge);padding:14px}.grove-settings legend{font-size:12px;padding:0 8px}.grove-sound-toggle{display:flex;gap:8px;align-items:center;margin-bottom:16px;font-size:13px}.grove-settings input[type="range"]{width:100%;padding:0;accent-color:var(--world-accent)}.grove-settings output{font-size:11px;color:var(--world-secondary)}

html[data-world="the-sacred-grove"][data-theme][data-mode] .housekeeper-greeting{background:color-mix(in srgb,var(--world-surface) 95%,transparent)!important;border:1px solid var(--grove-edge);border-radius:3px;padding:16px!important;box-shadow:inset 0 1px #f7e4b54d,0 4px 0 #12352c66;color:var(--world-text)!important}
html[data-world="the-sacred-grove"][data-grove-awake="true"] .grove-sword::after{content:'';position:absolute;left:50%;top:40%;width:3px;height:3px;background:#c1f8ff;box-shadow:-15px 8px #92e5ef,16px -3px #ffdc81,-8px -12px #ffe5a4,7px 18px #7bc7e9;animation:grove-rising 2s ease-out both;pointer-events:none}
html[data-world="the-sacred-grove"][data-grove-motion="true"] dialog.grove-settings{opacity:0;transform:translateY(8px);transition:opacity .2s,transform .25s,display .25s allow-discrete,overlay .25s allow-discrete}
html[data-world="the-sacred-grove"][data-grove-motion="true"] dialog.grove-settings[open]{opacity:1;transform:translateY(0)}


html[data-world="the-sacred-grove"][data-theme][data-mode] :is(button.button,.tab-button,.theme-button){background:linear-gradient(145deg,var(--world-elevated),var(--world-surface))!important;color:var(--world-text)!important;border-color:var(--grove-edge)!important;box-shadow:inset 0 1px #ebd89a45,0 3px 0 #0c241e66!important}
html[data-world="the-sacred-grove"][data-theme][data-mode] button.button.primary{background:var(--world-accent)!important;color:var(--world-on-accent)!important}
html[data-world="the-sacred-grove"][data-theme][data-mode] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea){background:var(--world-elevated)!important;color:var(--world-text)!important}
html[data-world="the-sacred-grove"] :is(.status-chip,.status-pill,.notification-badge){text-shadow:none}
html[data-grove-place="study"] .grove-rain{mask-image:linear-gradient(90deg,#000,transparent 25%)}
html[data-grove-place="inn"] .grove-rain{mask-image:radial-gradient(ellipse at 88% 15%,#000,transparent 30%)}

/* Structural presets: minimal removes scenery layers and objects, Dream keeps
   light and quiet details, Full adds water, creatures and surface weather. */
html[data-grove-mode="minimal"] #sacred-grove-world>div:not(.grove-landscape),html[data-grove-mode="minimal"] .grove-discoveries,html[data-grove-mode="minimal"] .grove-discovery-status{display:none!important}
html[data-grove-mode="minimal"] .grove-journey{padding-block:10px;min-height:50px;background:var(--world-surface)}
html[data-grove-mode="minimal"] :is(.grove-landscape,.grove-journey){animation:none!important}
html[data-grove-mode="dream"] :is(.grove-fox,.grove-butterfly,.grove-waterfall,.grove-surface-ripples){display:none!important}
html[data-grove-mode="dream"] .grove-shadow-canopy{animation-duration:45s;opacity:.17}
html[data-grove-mode="full"] .grove-journey::after{content:'';position:absolute;right:17%;top:23%;width:3px;height:4px;background:#d7ffff;box-shadow:0 0 9px 3px #83d6eb;transform:translateX(var(--grove-fairy-x,0px));transition:transform 1s;pointer-events:none;animation:grove-fairy 9s ease-in-out infinite alternate}
html[data-grove-motion="false"] #sacred-grove-world *,html[data-grove-motion="false"] .grove-journey *,html[data-grove-paused="true"] #sacred-grove-world *{animation-play-state:paused!important}
html[data-grove-motion="false"] .grove-journey::after{animation:none!important}
@media(max-width:720px){.grove-journey{padding:10px 12px;gap:8px;flex-wrap:wrap;margin-bottom:16px}.grove-place{flex-basis:65%}.grove-place strong{font-size:18px}.grove-place>span{display:none}.grove-discoveries{order:3;width:100%;justify-content:center}.grove-object{height:47px;width:42px}.grove-sword{height:57px;width:49px}.grove-atmosphere{font-size:10px!important;margin-left:auto}.grove-discovery-status{bottom:2px;right:8px;font-size:9px}.grove-waterfall,.grove-shadow-canopy,.grove-snow,.grove-fox,.grove-butterfly{display:none!important}.grove-landscape{background-position:58% center}.grove-settings{padding:17px}.grove-settings-fields{grid-template-columns:1fr}.grove-settings h2{font-size:20px}html[data-world="the-sacred-grove"] .panel{box-shadow:inset 0 1px #f3d9a442,0 4px 0 #102a24,0 12px 18px -10px #031119b8!important}}
@media(prefers-reduced-motion:reduce){html[data-world="the-sacred-grove"] *,html[data-world="the-sacred-grove"] *::before,html[data-world="the-sacred-grove"] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.grove-rain,.grove-snow,.grove-surface-ripples{display:none!important}}
}}
@keyframes grove-shadows{to{transform:rotate(4deg) scale(1.04);opacity:.18}}@keyframes grove-beam{to{transform:translateX(3%);opacity:.5}}@keyframes grove-water{to{background-position-y:80px}}@keyframes grove-rain{to{background-position:20px 180px}}@keyframes grove-snow{to{background-position:30px 166px,-20px 254px}}@keyframes grove-ripples{to{opacity:.25;transform:scaleX(1.03)}}@keyframes grove-fog{to{transform:translateX(4%);opacity:.6}}@keyframes grove-storm{0%,82%,83%,84%,100%{opacity:0}82.3%,83.5%{opacity:.12}}@keyframes grove-fairy{to{translate:8px -17px;opacity:.5}}@keyframes grove-wings{50%{scale:.6 1}}@keyframes grove-creature{0%,65%,100%{translate:0 0}75%,88%{translate:32px 0}}@keyframes grove-lantern{to{opacity:.72}}@keyframes grove-awaken{0%{opacity:0}25%{opacity:1;box-shadow:inset 0 0 140px #d1ebac77}100%{opacity:0}}@keyframes grove-unfold{from{opacity:0;transform:perspective(800px) translateY(12px) rotateX(-5deg)}to{opacity:1;transform:perspective(800px) translateY(0) rotateX(0)}}
@media print{#sacred-grove-world,.grove-journey,.grove-settings{display:none!important}}

@keyframes grove-rising{from{opacity:0;translate:0 12px}20%{opacity:1}to{opacity:0;translate:0 -40px}}


/* Source: midnight-reverie-environment.css */
/* Independent Midnight environment: layered streaks, surface response and
   cabinet light. Continuous animation uses transform/opacity, never layout. */
@media screen{@layer surface-material{
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion]{--reverie-cycle:28s;--reverie-glass-cycle:44s;--reverie-rain-speed:3s;--reverie-sway:8px;--reverie-rain-power:0;--reverie-fog-power:0;--reverie-ripple-power:0}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion="cinematic"]{--reverie-cycle:16s;--reverie-glass-cycle:24s;--reverie-rain-speed:1.65s;--reverie-sway:19px}
.reverie-weather,.reverie-rain-drift,.reverie-rain-depth,.reverie-weather-mist,.reverie-ripple-field,.reverie-passing-light{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.reverie-weather{isolation:isolate;contain:strict}
.reverie-rain-depth svg{position:absolute;left:0;top:0;width:100%;height:200%;fill:none;stroke:#bad8e4;stroke-linecap:round;stroke-width:1}
.reverie-rain-depth{opacity:calc(var(--reverie-rain-power)*.48)}
.reverie-rain-0{opacity:calc(var(--reverie-rain-power)*.24);inset:0 0 13%}.reverie-rain-0 svg{stroke-width:.7}
.reverie-rain-1{inset:-5% -5% 0;opacity:calc(var(--reverie-rain-power)*.5)}
.reverie-rain-2{inset:-15% -12% -8%;opacity:calc(var(--reverie-rain-power)*.65)}.reverie-rain-2 svg{stroke-width:1.4}
.reverie-rain-drift{transition:rotate 2s ease-in-out;transform-origin:50% 100%}
.reverie-weather-mist{inset:35% -10% -10%;background:radial-gradient(ellipse at 25% 55%,#a7c9d780,transparent 55%),radial-gradient(ellipse at 80% 80%,#95b8d967,transparent 60%);opacity:calc(var(--reverie-fog-power)*.55);mask-image:linear-gradient(transparent,#000 45%,transparent)}
.reverie-ripple-field{inset:87% 0 0;opacity:var(--reverie-ripple-power);mask-image:linear-gradient(transparent,#000 20%)}.reverie-ripple-field svg{width:100%;height:100%;stroke:#b9e2e766;fill:none;stroke-width:.75}.reverie-ripple{transform-box:view-box}
.reverie-weather::before{content:'';position:absolute;inset:86% 0 0;background:radial-gradient(ellipse at 54% 3%,#a4e3d67d,transparent 45%),linear-gradient(110deg,transparent,#ad9ed927,transparent);opacity:calc(var(--reverie-rain-power)*.55);pointer-events:none}
.reverie-passing-light{inset:86% -80% -5%;background:linear-gradient(105deg,transparent 42%,#d5e7ec26 49%,#c0d2f04d 50%,transparent 59%);opacity:0;transform:translateX(-40%) skewY(-2deg)}
.reverie-streetlight{position:absolute;left:17%;top:81%;width:2px;height:7%;background:#0a1731;pointer-events:none}.reverie-streetlight i{position:absolute;top:0;left:-4px;width:9px;height:2px;border-radius:2px;background:#a3b9cb;box-shadow:0 0 11px 2px #c8c4e32e;opacity:.65}
.reverie-electric-trace{stroke-dasharray:40 900;stroke-dashoffset:900;opacity:0;pointer-events:none}
.reverie-glass-sheen{transform:translateX(-50px);pointer-events:none}
/* Motion controls these layers even when Atmosphere is Minimal. */
html[data-world="midnight-reverie"][data-theme][data-mode]:is([data-reverie-motion="subtle"],[data-reverie-motion="cinematic"]) :is(#midnight-reverie-scene,#reverie-controls) .reverie-lamp{animation:reverie-lamp-live var(--reverie-cycle) ease-in-out infinite!important}
html[data-world="midnight-reverie"][data-theme][data-mode]:is([data-reverie-motion="subtle"],[data-reverie-motion="cinematic"]) :is(#midnight-reverie-scene,#reverie-controls) .reverie-display{animation:reverie-display-live calc(var(--reverie-cycle)*1.6) ease-in-out infinite alternate!important}
html[data-world="midnight-reverie"][data-theme][data-mode]:is([data-reverie-motion="subtle"],[data-reverie-motion="cinematic"]) :is(#midnight-reverie-scene,#reverie-controls) .reverie-product-row{animation:reverie-product-live calc(var(--reverie-cycle)*1.2) ease-in-out calc(var(--row)*-5s) infinite alternate!important}
html[data-world="midnight-reverie"][data-theme][data-mode]:is([data-reverie-motion="subtle"],[data-reverie-motion="cinematic"]) :is(#midnight-reverie-scene,#reverie-controls) .reverie-glass-sheen{animation:reverie-glass-pass var(--reverie-glass-cycle) ease-in-out -5s infinite!important}
html[data-world="midnight-reverie"][data-theme][data-mode]:is([data-reverie-motion="subtle"],[data-reverie-motion="cinematic"]) :is(#midnight-reverie-scene,#reverie-controls) .reverie-pool{animation:reverie-spill-live var(--reverie-cycle) ease-in-out infinite alternate!important}
html[data-world="midnight-reverie"][data-theme][data-mode]:is([data-reverie-motion="subtle"],[data-reverie-motion="cinematic"]) :is(#midnight-reverie-scene,#reverie-controls) .reverie-reflection{animation:reverie-ground-live calc(var(--reverie-cycle)*1.1) ease-in-out infinite alternate!important}
html[data-world="midnight-reverie"][data-theme][data-mode]:is([data-reverie-motion="subtle"],[data-reverie-motion="cinematic"]) :is(#midnight-reverie-scene,#reverie-controls) .reverie-rain-depth svg{animation:reverie-rain-fall var(--reverie-rain-speed) linear infinite!important}
html[data-world="midnight-reverie"][data-theme][data-mode]:is([data-reverie-motion="subtle"],[data-reverie-motion="cinematic"]) :is(#midnight-reverie-scene,#reverie-controls) .reverie-rain-0 svg{animation-duration:calc(var(--reverie-rain-speed)*1.9)!important}
html[data-world="midnight-reverie"][data-theme][data-mode]:is([data-reverie-motion="subtle"],[data-reverie-motion="cinematic"]) :is(#midnight-reverie-scene,#reverie-controls) .reverie-rain-2 svg{animation-duration:calc(var(--reverie-rain-speed)*.67)!important}
html[data-world="midnight-reverie"][data-theme][data-mode]:is([data-reverie-motion="subtle"],[data-reverie-motion="cinematic"]) :is(#midnight-reverie-scene,#reverie-controls) .reverie-weather-mist{animation:reverie-mist-live 43s ease-in-out infinite alternate!important}
html[data-world="midnight-reverie"][data-theme][data-mode]:is([data-reverie-motion="subtle"],[data-reverie-motion="cinematic"]) :is(#midnight-reverie-scene,#reverie-controls) .reverie-ripple{animation:reverie-ripple-live 4.8s ease-out var(--ripple-delay) infinite!important}
/* No precipitation, fog or wet-weather surface response when Weather is Off. */
html[data-reverie-weather="off"] .reverie-weather{display:none!important}
html[data-reverie-weather="mist"] :is(.reverie-rain-drift,.reverie-ripple-field),html[data-reverie-weather="mist"] .reverie-weather::before{display:none!important}
html:not([data-reverie-weather="downpour"]) .reverie-rain-2{display:none!important}
/* Interface lighting richness remains owned by Atmosphere, while moving light
   is capped by Motion. Only already-visible card edges run a compositor loop. */
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="full"][data-reverie-motion]:not([data-reverie-motion="off"]) #app-view .view .reverie-card[data-reverie-visible="true"]::after{animation:reverie-edge-live 12s ease-in-out infinite alternate!important;box-shadow:0 2px 15px #8fcfdf8a!important;opacity:.8}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="dream"][data-reverie-motion]:not([data-reverie-motion="off"]) #app-view .view .reverie-card[data-reverie-visible="true"]::after{animation:reverie-edge-dream 32s ease-in-out infinite alternate!important;opacity:.28}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="full"][data-reverie-motion="cinematic"] #app-view .view .reverie-card{box-shadow:inset 0 1px #e9f9f779,inset 0 -2px #3e68854d,0 5px 0 -1px #030d26,0 29px 42px -17px #01071ded,0 0 24px -15px #a4cfe796!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-mode="minimal"] #app-view .view .reverie-card{box-shadow:inset 0 1px #bfd4e322,0 8px 17px -12px #020b20cc!important;border-radius:12px 5px 12px 5px!important}
/* Curated one-shots. One scheduler owns the event, so major moments cannot overlap. */
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion][data-reverie-event="lamp-dip"] :is(#midnight-reverie-scene,#reverie-controls) .reverie-lamp{animation:reverie-event-dim 4.2s ease-in-out both!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion][data-reverie-event="lamp-dip"] :is(#midnight-reverie-scene,#reverie-controls) .reverie-pool{animation:reverie-event-spill-dim 4.2s ease-in-out both!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion][data-reverie-event="product"] :is(#midnight-reverie-scene,#reverie-controls) .reverie-event-product{animation:reverie-event-product 5.2s ease-in-out both!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion][data-reverie-event="electric"] :is(#midnight-reverie-scene,#reverie-controls) .reverie-electric-trace{animation:reverie-event-electric 4.2s ease-in-out both!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion][data-reverie-event="streetlight"] .reverie-streetlight i{animation:reverie-event-dim 4.8s ease-in-out both!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion][data-reverie-event="passing-light"] .reverie-passing-light{animation:reverie-event-passing 7.8s ease-in-out both!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion][data-reverie-event="gust"] .reverie-rain-drift{rotate:5deg}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion][data-reverie-event="glass-shimmer"] :is(#midnight-reverie-scene,#reverie-controls) .reverie-glass-sheen{animation:reverie-event-glass 5.6s ease-in-out both!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-event]:not([data-reverie-mode="minimal"]) #app-view .view .reverie-card[data-reverie-visible="true"]::after{box-shadow:0 2px 18px #b7eddf8a!important}
/* Motion Off is a static rendering of the selected weather, not hidden scenery. */
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion="off"] :is(#midnight-reverie-scene,#reverie-controls) *,html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-motion="off"] #app-view .view .reverie-card::after{animation:none!important;transition:none!important}
html[data-world="midnight-reverie"][data-theme][data-mode][data-reverie-paused="true"] :is(#midnight-reverie-scene,#reverie-controls) *,html[data-world="midnight-reverie"][data-theme][data-mode] #app-view .view .reverie-card[data-reverie-visible="false"]::after{animation-play-state:paused!important}
.reverie-system-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px 20px;border-top:1px solid #a2c9d52b}.reverie-system-settings fieldset{margin:0;padding:13px 11px;border:1px solid #9ab6d336;border-radius:10px;min-width:0}.reverie-system-settings legend{padding:0 6px;font:600 12px/1.3 system-ui;color:#d4f1ed}.reverie-system-settings label,.reverie-weather-sliders label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#c4d8e4}.reverie-system-settings select{width:100%;min-width:0;font-size:12px;padding:8px}.reverie-system-settings small{letter-spacing:0;text-transform:none;display:block;color:#acc3d4;font-size:10px;line-height:1.6;margin-top:9px}.reverie-system-settings button{margin-top:10px;padding:6px 10px;font-size:11px}.reverie-weather-controls{padding:12px 20px;border-top:1px solid #a2c9d52b}.reverie-weather-controls summary{font-size:12px;cursor:pointer}.reverie-weather-sliders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.reverie-weather-sliders input{width:100%;accent-color:#b8e9db}.reverie-weather-sliders output{font-variant-numeric:tabular-nums;color:#e5f4f4}.reverie-weather-controls p{font-size:11px;color:#afc5d6;line-height:1.6}
@media(max-width:700px){.reverie-system-settings{grid-template-columns:1fr;padding:12px;gap:9px}.reverie-weather-sliders{grid-template-columns:1fr}.reverie-weather-controls{padding:12px}.reverie-rain-2{display:none!important}.reverie-rain-0 svg{stroke-width:1.4}.reverie-rain-1 svg{stroke-width:1.7}.reverie-weather-mist{animation-duration:65s!important}}
@media(prefers-reduced-motion:reduce){html[data-world="midnight-reverie"] :is(#midnight-reverie-scene,#reverie-controls) *,html[data-world="midnight-reverie"] #app-view .view .reverie-card::after{animation:none!important;transition:none!important}}
}}
@keyframes reverie-lamp-live{0%,100%{opacity:.9}24%{opacity:.98}26%{opacity:.89}29%,70%{opacity:1}73%{opacity:.93}}@keyframes reverie-display-live{from{opacity:.87}to{opacity:1}}@keyframes reverie-product-live{from{opacity:.83}to{opacity:1}}@keyframes reverie-glass-pass{0%,40%{transform:translateX(0);opacity:0}47%{opacity:.45}63%{transform:translateX(260px);opacity:0}100%{transform:translateX(260px);opacity:0}}@keyframes reverie-spill-live{from{opacity:.65;transform:scale(.96,.34)}to{opacity:1;transform:scale(1.06,.41)}}@keyframes reverie-ground-live{from{opacity:.4;translate:-2px 0}to{opacity:.7;translate:3px 0}}@keyframes reverie-rain-fall{from{transform:translateY(-50%)}to{transform:translateY(0)}}@keyframes reverie-mist-live{from{transform:translate3d(-2%,0,0)}to{transform:translate3d(3%,1%,0)}}@keyframes reverie-ripple-live{0%{opacity:0;scale:.45 .6}25%{opacity:.6}100%{opacity:0;scale:1.6 1.3}}@keyframes reverie-edge-live{from{opacity:.25;transform:scaleX(.88)}to{opacity:.85;transform:scaleX(1.04)}}
@keyframes reverie-event-dim{0%,100%{opacity:1}35%{opacity:.5}65%{opacity:.7}}@keyframes reverie-event-spill-dim{0%,100%{opacity:.9}40%{opacity:.45}}@keyframes reverie-event-product{0%,100%{opacity:.82}40%,65%{opacity:1;filter:drop-shadow(0 0 2px #edffd9)}}@keyframes reverie-event-electric{0%{opacity:0;stroke-dashoffset:900}20%{opacity:.45}80%{opacity:.45}100%{opacity:0;stroke-dashoffset:0}}@keyframes reverie-event-passing{0%{opacity:0;transform:translateX(-25%) skewY(-2deg)}30%{opacity:.5}100%{opacity:0;transform:translateX(25%) skewY(-2deg)}}@keyframes reverie-event-glass{0%{transform:translateX(0);opacity:0}25%{opacity:.7}100%{transform:translateX(260px);opacity:0}}

@keyframes reverie-edge-dream{from{opacity:.12;transform:scaleX(.94)}to{opacity:.35;transform:scaleX(1.01)}}

@media screen{.reverie-audio-controls small,.reverie-weather-controls p{letter-spacing:0;text-transform:none}}


/* Source: lost-found-center.css */
/* Lost & Found inherits the active world's surfaces, type, light, and borders. */
.lfc-center{--lfc-line:color-mix(in srgb,var(--border,var(--accent)) 65%,transparent);--lfc-glass:color-mix(in srgb,var(--panel,var(--surface)) 87%,transparent);max-width:1440px;margin:0 auto;display:grid;gap:1.1rem;color:var(--text);font:inherit}
.lfc-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.35rem .15rem}.lfc-header .eyebrow{margin:0 0 .35rem;letter-spacing:.15em;font-size:.67rem}.lfc-header h2{margin:0;font-size:clamp(1.3rem,2.5vw,1.85rem);line-height:1.2;letter-spacing:-.025em}.lfc-header h2 span{display:block;margin-top:.25rem;font-size:.72em;font-weight:450;color:var(--muted,var(--text));letter-spacing:0}.lfc-header p{margin:.45rem 0 0;font-size:.85rem}.lfc-header>.button{flex:none;min-height:42px}
.lfc-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.lfc-metric.panel{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin:0;padding:.9rem 1rem;min-height:78px;text-align:left;border-radius:var(--radius,16px);color:inherit;background:linear-gradient(125deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent 70%),var(--lfc-glass);border:1px solid var(--lfc-line);box-shadow:var(--card-shadow,var(--shadow));font:inherit;cursor:pointer}.lfc-metric span{font-size:.82rem;font-weight:550}.lfc-metric strong{font-size:1.85rem;line-height:1;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:-.04em}
.lfc-workspace{min-width:0}.lfc-toolbar{display:grid;gap:.9rem;margin-bottom:.2rem}.lfc-tabs{display:flex;gap:.3rem;flex-wrap:wrap;border-bottom:1px solid var(--lfc-line);padding:0 0 .45rem}.lfc-tabs button{display:flex;align-items:center;gap:.5rem;padding:.55rem .8rem;min-height:40px;border:1px solid transparent;border-radius:var(--radius-sm,9px);background:transparent;color:var(--muted,var(--text));font:inherit;font-size:.85rem;cursor:pointer}.lfc-tabs [aria-selected=true]{color:var(--text);border-color:var(--lfc-line);background:color-mix(in srgb,var(--accent) 12%,var(--lfc-glass));box-shadow:inset 0 1px color-mix(in srgb,var(--accent) 20%,transparent)}.lfc-tabs button span{display:inline-grid;place-items:center;min-width:1.3rem;padding:.1rem .3rem;border-radius:5px;background:color-mix(in srgb,var(--accent) 9%,transparent);font-size:.72rem;font-variant-numeric:tabular-nums}
.lfc-filters{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap}.lfc-filters label{display:grid;gap:.3rem;min-width:0;color:var(--muted,var(--text));font-size:.73rem;flex:0 1 auto}.lfc-filters .lfc-search{flex:1 1 280px;min-width:min(100%,240px)}.lfc-center input,.lfc-center select,.lfc-dialog input:not([type=radio]):not([type=file]),.lfc-dialog select,.lfc-dialog textarea{box-sizing:border-box;min-height:39px;min-width:0;max-width:100%;border:1px solid var(--lfc-line,var(--border));border-radius:var(--radius-sm,8px);background:color-mix(in srgb,var(--surface,var(--panel)) 92%,transparent);color:var(--text);padding:.5rem .65rem;font:inherit}.lfc-filters input[type=date]{width:145px}.lfc-center :focus-visible,.lfc-dialog :focus-visible{outline:2px solid var(--accent);outline-offset:3px}.lfc-feedback{min-height:1em;margin:.4rem 0;font-size:.8rem;color:var(--muted,var(--text))}.lfc-feedback[data-error=true]{color:var(--danger,var(--accent))}.lfc-records{display:grid;gap:.5rem;min-width:0}.lfc-record.panel{display:block;margin:0;padding:0;overflow:hidden;min-height:0;border:1px solid var(--lfc-line);border-radius:var(--radius,14px);background:var(--lfc-glass);box-shadow:var(--card-shadow,var(--shadow));transition:border-color .18s ease,box-shadow .18s ease}.lfc-record:hover{border-color:color-mix(in srgb,var(--accent) 65%,var(--border))}.lfc-record.is-expanded{border-color:color-mix(in srgb,var(--accent) 70%,var(--border))}.lfc-record-row{display:flex;align-items:center;min-width:0;padding:.25rem .8rem .25rem .3rem;gap:.6rem}.lfc-record-summary{flex:1;display:grid;grid-template-columns:20px minmax(120px,1fr) auto auto;align-items:center;text-align:left;gap:.8rem;min-width:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;padding:.8rem .45rem;min-height:72px;border-radius:8px}.lfc-chevron{color:var(--accent);font-size:1.2rem}.lfc-item-title{display:grid;gap:.3rem;min-width:0}.lfc-item-title strong{font-size:.9rem;line-height:1.35;font-weight:600;overflow-wrap:anywhere}.lfc-item-title small,.lfc-date{font-size:.75rem;color:var(--muted,var(--text));line-height:1.4}.lfc-date{white-space:nowrap}.lfc-primary:empty{display:none}.lfc-primary .button{white-space:nowrap;min-height:36px}.lfc-status{font-size:.68rem;font-weight:600;line-height:1.25;display:inline-flex;align-items:center;gap:.35rem;padding:.32rem .5rem;border-radius:6px;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--text);max-width:150px}.lfc-status:before{content:'';width:5px;height:5px;flex:none;border-radius:50%;background:var(--accent)}.lfc-status[data-status=ready-to-return],.lfc-status[data-status=recovered]{background:color-mix(in srgb,var(--success,var(--accent)) 12%,transparent)}.lfc-status[data-status=ready-to-return]:before,.lfc-status[data-status=recovered]:before{background:var(--success,var(--accent))}.lfc-status:is([data-status=closed],[data-status=resolved],[data-status=mailed],[data-status=picked-up],[data-status=returned],[data-status=discarded]){background:color-mix(in srgb,var(--muted,var(--text)) 10%,transparent);color:var(--muted,var(--text))}
.lfc-details{padding:.85rem 1.2rem 1rem;border-top:1px solid var(--lfc-line);background:linear-gradient(100deg,color-mix(in srgb,var(--accent) 3%,transparent),transparent);animation:lfc-unfold .2s ease-out}.lfc-detail-layout{display:flex;gap:1.2rem;align-items:start}.lfc-detail-layout dl{flex:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1.2rem;margin:0}.lfc-details dt{font-size:.68rem;color:var(--muted,var(--text));margin-bottom:.22rem}.lfc-details dd{font-size:.82rem;margin:0;overflow-wrap:anywhere}.lfc-note{white-space:pre-wrap}.lfc-photo{padding:0;border:1px solid var(--lfc-line);border-radius:10px;background:var(--surface,var(--panel));overflow:hidden;width:104px;height:104px;flex:none;cursor:zoom-in}.lfc-photo img{width:100%;height:100%;object-fit:cover}.lfc-detail-actions{display:flex;gap:.55rem;align-items:end;flex-wrap:wrap;margin-top:1rem}.lfc-detail-actions label{display:grid;gap:.25rem;font-size:.72rem}.lfc-detail-actions select{font-size:.8rem;max-width:240px}.lfc-matches{border:1px solid var(--lfc-line);border-radius:10px;padding:.8rem;margin-top:1rem}.lfc-matches h4{font-size:.8rem;margin:0 0 .6rem}.lfc-matches h4 small{font-size:.7rem;font-weight:400;color:var(--muted,var(--text));margin-left:.5rem}.lfc-matches>div{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.45rem 0}.lfc-matches>div+div{border-top:1px solid var(--lfc-line)}.lfc-matches strong,.lfc-matches small{display:block;font-size:.8rem}.lfc-matches small{font-size:.7rem;color:var(--muted,var(--text));margin-top:.2rem}.lfc-history{margin-top:.9rem;font-size:.75rem;color:var(--muted,var(--text))}.lfc-history summary{cursor:pointer;padding:.3rem 0}.lfc-history ol{margin:.5rem 0 0;padding-left:1.25rem}.lfc-history li{padding:.3rem 0}.lfc-history li span,.lfc-history li small{display:block}.lfc-history li span{color:var(--text)}.lfc-history li small{font-size:.68rem;margin-top:.15rem}
.lfc-empty{text-align:center;padding:2.3rem 1rem;color:var(--muted,var(--text))}.lfc-empty>span{font-size:1.8rem;color:var(--accent)}.lfc-empty h3{font-size:.95rem;color:var(--text);margin:.5rem 0}.lfc-empty p{font-size:.82rem;margin:0}.lfc-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1rem 0;font-size:.8rem}.lfc-dialog{--lfc-line:var(--border);max-width:640px;width:min(640px,calc(100vw - 24px));padding:0;color:var(--text);background:var(--panel,var(--surface));border:1px solid var(--border);border-radius:var(--radius,18px);box-shadow:var(--modal-shadow,var(--shadow));font:inherit}.lfc-dialog::backdrop{background:color-mix(in srgb,var(--background,var(--surface)) 70%,transparent);backdrop-filter:blur(5px)}.lfc-dialog>header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1;background:var(--panel,var(--surface))}.lfc-dialog h3{margin:0;font-size:1rem}.lfc-dialog [data-lfc-dialog-body]{padding:1rem 1.1rem;overflow:auto;max-height:75dvh}.lfc-form{display:grid;gap:.85rem}.lfc-form label{display:grid;gap:.35rem;font-size:.8rem;color:var(--text)}.lfc-form label .muted{display:inline;font-size:.7rem}.lfc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.lfc-form textarea{width:100%;resize:vertical}.lfc-type{display:flex;gap:.8rem;flex-wrap:wrap;padding:.7rem;border:1px solid var(--border);border-radius:9px;margin:0}.lfc-type legend{font-size:.75rem;padding:0 .3rem}.lfc-type label{display:flex;align-items:center;gap:.4rem;font-size:.8rem;cursor:pointer}.lfc-photo-field{display:flex;align-items:center;gap:1rem}.lfc-photo-field .button{display:block;position:relative;overflow:hidden;cursor:pointer}.lfc-photo-field input{max-width:250px;display:block;font-size:.7rem;margin-top:.3rem}.lfc-photo-preview{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}.lfc-form footer{display:flex;justify-content:end;gap:.6rem}.lfc-form [data-lfc-form-feedback]{margin:0;min-height:1em;font-size:.8rem;color:var(--muted,var(--text))}.lfc-full-photo{display:block;max-width:100%;max-height:68dvh;margin:auto;object-fit:contain;border-radius:8px}
@keyframes lfc-unfold{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
@media(max-width:800px){.lfc-record-summary{grid-template-columns:16px minmax(80px,1fr) auto;gap:.5rem}.lfc-date{grid-column:2;font-size:.68rem}.lfc-status{grid-column:3;grid-row:1/3;max-width:100px}.lfc-record-row{gap:.35rem;padding-right:.5rem}.lfc-primary .button{font-size:.7rem;padding:.45rem .5rem;white-space:normal;max-width:90px}.lfc-metric.panel{padding:.7rem;min-height:70px}.lfc-metric span{font-size:.72rem}.lfc-metric strong{font-size:1.5rem}}
@media(max-width:480px){.lfc-center{gap:.8rem}.lfc-header h2{font-size:1.2rem}.lfc-header p{display:none}.lfc-header>.button{padding:.5rem .65rem;font-size:.8rem}.lfc-metrics{gap:.4rem}.lfc-metric.panel{display:grid;gap:.45rem;min-height:78px}.lfc-metric strong{order:-1}.lfc-tabs{gap:.1rem}.lfc-tabs button{padding:.5rem .45rem;font-size:.76rem}.lfc-filters{gap:.45rem}.lfc-filters label:not(.lfc-search){flex:1 1 28%}.lfc-filters input[type=date]{width:100%;font-size:.72rem;padding:.45rem .25rem}.lfc-filters select{width:100%;font-size:.73rem}.lfc-search{flex-basis:100%!important}.lfc-item-title strong{font-size:.8rem}.lfc-item-title small{font-size:.68rem}.lfc-record-summary{gap:.35rem;padding:.65rem .2rem}.lfc-status{font-size:.61rem;padding:.27rem .35rem;max-width:75px}.lfc-primary .button{font-size:.65rem;max-width:72px}.lfc-details{padding:.8rem}.lfc-detail-layout{gap:.7rem}.lfc-detail-layout dl{grid-template-columns:1fr;gap:.7rem}.lfc-photo{width:75px;height:75px}.lfc-form-grid{grid-template-columns:1fr}.lfc-dialog [data-lfc-dialog-body]{padding:.85rem}.lfc-matches h4 small{display:block;margin:.3rem 0 0}.lfc-matches>div{align-items:start}.lfc-matches .button{font-size:.7rem;white-space:normal;flex:none;width:75px}}
@media(prefers-reduced-motion:reduce){.lfc-center *,.lfc-dialog *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.lfc-dialog::backdrop{backdrop-filter:none}}
/* Keep the world material on each record, while removing its full-panel inset. */
.lfc-center .lfc-record.panel{padding:0!important}
.lfc-center .lfc-record-summary{background:transparent!important;border:0!important;box-shadow:none!important;margin:0!important}
@media(max-width:480px){.lfc-center .lfc-status{font-size:.7rem}.lfc-primary .button{min-height:40px}}


/* Source: linen-toolbar.css */
/* Keep Linen's shared spreadsheet controls in one compact desktop toolbar. */
#linen-view .matrix-toolbar-desktop {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
#linen-view .matrix-toolbar-desktop > .matrix-toolbar-row { display: contents; }
#linen-view .matrix-toolbar-search-slot {
  flex: 0 0 280px;
  min-width: 260px;
  max-width: 300px;
}
@media (max-width: 760px) {
  #linen-view .matrix-toolbar-desktop { display: none; }
}


/* Source: manager-my-rooms.css */
#manager-my-rooms{display:grid;gap:1rem;min-width:0;overflow-anchor:none}
#manager-my-rooms .mm-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
#manager-my-rooms h2,#manager-my-rooms h3,#manager-my-rooms p{margin:0}
#manager-my-rooms .mm-heading p{font-size:.85rem;opacity:.75;margin-top:.25rem}
#manager-my-rooms .mm-progress{min-width:240px;flex:0 1 430px;font-size:.9rem;display:grid;gap:.4rem}
#manager-my-rooms progress{width:100%;height:.5rem;accent-color:var(--accent)}
#manager-my-rooms .mm-tools{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:.85rem}
#manager-my-rooms .mm-search{display:flex;align-items:center;gap:.6rem}
#manager-my-rooms .mm-search input{width:12rem;min-width:0}
#manager-my-rooms .mm-list{display:grid;gap:.55rem;margin-top:.6rem}
#manager-my-rooms .mm-room.panel{padding:0!important;margin:0!important;min-height:0!important;overflow:visible}
#manager-my-rooms .mm-row{display:flex;gap:.5rem;align-items:center;min-width:0;padding:.35rem .6rem}
#manager-my-rooms .mm-expand{display:flex;align-items:center;gap:.65rem;text-align:left;flex:1;min-width:0;min-height:44px;padding:.25rem;background:transparent!important;box-shadow:none!important;border:0!important;color:inherit;font:inherit;flex-wrap:wrap;cursor:pointer}
#manager-my-rooms .mm-expand strong{font-size:1.1rem;font-variant-numeric:tabular-nums}
#manager-my-rooms .mm-chevron{width:.75rem;color:var(--accent);font-size:1.3rem}
#manager-my-rooms .mm-status,#manager-my-rooms .mm-arr,#manager-my-rooms .mm-corrections{border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent);border-radius:999px;padding:.22rem .5rem;font-size:.78rem;line-height:1.3}
#manager-my-rooms .mm-status[data-phase=ready],#manager-my-rooms .mm-status[data-phase=guest-messaged]{background:color-mix(in srgb,var(--success,var(--accent)) 14%,transparent);border-color:color-mix(in srgb,var(--success,var(--accent)) 40%,transparent)}
#manager-my-rooms .mm-corrections{color:var(--danger,var(--text));border-color:color-mix(in srgb,var(--danger,var(--accent)) 35%,transparent)}
#manager-my-rooms .mm-quick{display:flex;gap:.4rem;flex-shrink:0;align-items:center}
#manager-my-rooms .button{min-height:44px;font-size:.85rem;white-space:normal}
#manager-my-rooms .mm-detail{padding:.65rem .85rem;border-top:1px solid var(--border)}
#manager-my-rooms .mm-detail:not([hidden]){animation:mm-unfold .2s ease both}
#manager-my-rooms .mm-badges:empty{display:none}
#manager-my-rooms .mm-badges:not(:empty){padding:0 .85rem .4rem;display:flex;gap:.35rem;flex-wrap:wrap}
#manager-my-rooms .mm-completed{min-width:0}
#manager-my-rooms .mm-completed>summary{cursor:pointer;font-weight:600;padding:.5rem 0}
#manager-my-rooms .mm-secondary,#manager-my-rooms .im-inline-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
#manager-my-rooms .mm-secondary{margin-top:.65rem}
#manager-my-rooms .im-inline-controls>strong{margin-right:auto}
#manager-my-rooms .im-open-items{margin-top:.6rem}
#manager-my-rooms .mm-inspection{min-width:0}
#manager-my-rooms .im-return-form{display:grid;gap:.7rem}
#manager-my-rooms .im-missed-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.65rem}
#manager-my-rooms fieldset{min-width:0;border:1px solid var(--border);border-radius:var(--radius,12px);padding:.5rem}
#manager-my-rooms .im-missed{display:inline-flex;align-items:center;gap:.35rem;margin:.18rem;min-height:40px}
#manager-my-rooms .im-missed input{width:auto}
#manager-my-rooms .mm-feedback:empty{display:none}
#manager-my-rooms [hidden],[data-myrooms-count][hidden]{display:none!important}
#manager-my-rooms .mm-empty{opacity:.75;padding:.75rem 0}
#manager-my-rooms .mm-common:empty{display:none}
@keyframes mm-unfold{from{opacity:.4;transform:translateY(-3px)}to{opacity:1;transform:none}}
@media(max-width:600px){#manager-my-rooms{gap:.75rem}#manager-my-rooms .mm-row{flex-wrap:wrap;gap:.1rem;padding:.3rem .5rem}#manager-my-rooms .mm-expand{flex-basis:100%;gap:.5rem}#manager-my-rooms .mm-quick:empty{display:none}#manager-my-rooms .mm-quick{margin-left:1.25rem;margin-bottom:.25rem}#manager-my-rooms .mm-progress{min-width:0;flex-basis:100%}#manager-my-rooms .mm-tools{gap:.5rem}#manager-my-rooms .mm-detail{padding:.65rem}#manager-my-rooms .mm-search{width:100%}#manager-my-rooms .mm-search input{flex:1;width:0}#manager-my-rooms textarea{width:100%;min-width:0}}
@media(prefers-reduced-motion:reduce){#manager-my-rooms .mm-detail:not([hidden]){animation:none}}
/* These captions sit on the environment, so inherit its readable text rather
   than a theme's muted ink intended for a card surface. */
#myrooms-view #manager-my-rooms .mm-heading p,#myrooms-view #manager-my-rooms .mm-progress small{color:inherit!important;opacity:.9}


/* Source: workspace-orientation.css */
/* Shared orientation uses each theme's existing type, color and material. */
.topbar .page-title-group {
  flex-wrap: wrap;
  align-content: center;
  row-gap: 4px;
}
.topbar .workspace-location {
  flex: 0 0 100%;
  margin: 0;
  min-width: 0;
  color: var(--world-text, var(--text));
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .015em;
  overflow-wrap: anywhere;
}
.workspace-skip {
  position: fixed;
  z-index: 2147483000;
  top: 12px;
  left: 12px;
  transform: translateY(calc(-100% - 24px));
  padding: 12px 18px;
  border: 2px solid var(--world-accent, var(--accent));
  border-radius: var(--radius-m, 8px);
  background: var(--world-surface, var(--panel));
  color: var(--world-text, var(--text));
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
}
.workspace-skip:focus {
  transform: translateY(0);
  outline: 2px solid var(--world-accent, var(--accent));
  outline-offset: 3px;
}
.workspace > .view[tabindex="-1"] {
  scroll-margin-top: 130px;
}
.workspace > .view[tabindex="-1"]:focus-visible {
  outline: 2px solid var(--world-accent, var(--accent));
  outline-offset: 5px;
}
@media (min-width: 701px) {
  /* The chooser button is mobile-only; its empty label and chevron must be too. */
  .sidebar .mobile-nav-dock-tools > .mobile-nav-selector-control { display: none; }
}
@media (max-width: 700px) {
  .topbar .workspace-location { font-size: 12px; line-height: 1.35; }
  .workspace > .view[tabindex="-1"] { scroll-margin-top: 100px; }
}
@media print {
  .workspace-skip { display: none; }
}


/* Source: card-disclosure.css */
/* Keep theme typography and heading semantics; only the title is a button. */
.card-disclosure-toggle {
  appearance: none;
  border: 0;
  border-radius: 4px;
  padding: 8px 0;
  min-height: 44px;
  max-width: 100%;
  background: transparent;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-align: inherit;
  cursor: pointer;
}
.card-disclosure-toggle:focus-visible {
  outline: 2px solid var(--ring, var(--accent));
  outline-offset: 3px;
}
@media print {
  .card-disclosure-toggle { padding: 0; min-height: 0; }
}


/* Source: room-action-layout.css */
/* Structural layout only: retain every theme's surfaces and operational colors. */
.room-action-label { margin:0 0 6px; color:var(--muted); font-size:.72rem; font-weight:700; letter-spacing:.04em; }
.arc-action-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.arc-action-layout:empty { display:none; }
.arc-action-group:only-child { grid-column:1/-1; }
.arc-action-group { min-width:0; }
.arc-action-group .arc-actions { margin-top:0; }
.arc-action-group .arc-actions .button { flex:1 1 160px; }

.arc-secondary-actions { margin-top:16px; padding-top:12px; border-top:1px solid var(--border); }
.arc-secondary-actions .condition-inline { margin-top:0; }
.adaptive-room-card .arc-menu { width:auto!important; max-width:100%; font-size:.78rem; padding:8px 10px!important; white-space:normal; }
.room-detail-assignment { padding-bottom:12px; border-bottom:1px solid var(--border); }
.room-detail-work { display:grid; gap:12px; margin-top:12px; min-width:0; }
.room-detail-work > * { min-width:0; }
.room-detail-notes { margin-top:16px; padding-top:12px; border-top:1px solid var(--border); }
.room-detail-notes:empty { display:none; }
.room-detail-add { margin-top:12px; }
.room-detail-admin { margin-top:16px; padding-top:12px; border-top:1px solid var(--border); }
.room-detail-admin .checkout-remove-button { min-height:44px; }
.room-list-head .room-list-expand { margin-inline-start:auto; min-width:70px; min-height:44px; flex:0 0 auto; }
.room-list-expand:focus-visible { outline:2px solid var(--ring,var(--accent)); outline-offset:3px; }
@media(min-width:1000px) { .room-detail-work { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
  .room-list-head { flex-wrap:wrap; gap:8px; }
  .room-detail-assignment .room-list-manager-actions { gap:8px; flex-wrap:wrap; }
  .room-detail-assignment select { max-width:100%; min-width:0; }
  .arc-action-group .arc-actions .button { flex:1 1 calc(50% - 4px); }
  .mm-secondary { flex-wrap:wrap; gap:8px; }
}
@media print { .room-detail-work { display:block; } .room-detail-admin { display:none; } }


/* Source: today-layout.css */
/* Today hierarchy only. Saved card order, widths and disclosure styles remain
   owned by the layout and disclosure systems. Never apply to print clones. */
@media screen {
  html #app-view #dashboard-view > .summary-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
    gap:10px;
    margin:0;
    min-width:0;
    align-items:stretch;
  }
  html #app-view #dashboard-view .summary-grid > .metric {
    grid-column:auto;
    min-width:0;
    min-height:124px;
    height:auto;
    padding:14px 16px;
    text-align:left;
    justify-content:flex-start;
    gap:0;
  }
  html #app-view #dashboard-view .summary-grid > .metric > span:first-child {
    min-block-size:2.6em;
    margin:0 0 8px;
    font-size:12px;
    line-height:1.3;
    max-width:calc(100% - 14px);
  }
  html #app-view #dashboard-view .summary-grid > .metric > strong {
    font-size:28px;
    line-height:1.1;
    margin:0;
  }
  html #app-view #dashboard-view .summary-grid > .metric > small,
  html #app-view #dashboard-view .summary-grid [data-arrival-finished-progress] {
    font-size:11px;
    line-height:1.35;
    margin:5px 0 0;
  }
  html #app-view #dashboard-view .summary-grid .checkout-bed-breakdown { gap:5px; font-size:11px; }
  html[data-theme][data-mode] #app-view #dashboard-view .summary-grid > .metric[data-today-pending="true"] {
    outline:1px solid var(--accent);
    outline-offset:-3px;
  }
  html #app-view #dashboard-view .summary-grid > .metric:focus-visible {
    outline:2px solid var(--accent) !important; outline-offset:3px !important;
  }
  html #app-view #dashboard-view .today-intro > .housekeeper-greeting {
    font-size:clamp(18px,2vw,25px);
    line-height:1.35;
    text-align:left;
  }
  html #app-view #dashboard-view .today-card > .panel-head {
    row-gap:10px;
    align-items:center;
  }
  /* Let long headings/forms wrap rather than squeezing or clipping controls. */
  html #app-view #dashboard-view .today-card > .panel-head > h3 { min-width:0; overflow-wrap:anywhere; }
  html #app-view #dashboard-view .today-card .card-disclosure-toggle { min-height:44px; }
}
@media screen and (max-width:700px) {
  html #app-view #dashboard-view > .summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  html #app-view #dashboard-view .summary-grid > .metric { min-height:120px; padding:12px; }
  html #app-view #dashboard-view .summary-grid > .metric:last-child:nth-child(odd) { grid-column:1/-1; min-height:108px; }
}

/* The inspected total and its existing pending-copy list share one metric. */
html #app-view #dashboard-view .summary-grid:has(> .inspected-summary) { align-items:start; }
html #app-view #dashboard-view .summary-grid > .inspected-summary { padding:0; align-self:start; display:block; }
.inspected-summary-toggle {
  appearance:none; display:flex; flex-direction:column; align-items:flex-start;
  width:100%; min-height:122px; padding:14px 16px; position:relative;
  border:0; border-radius:inherit; background:transparent; color:inherit;
  text-align:left; font:inherit; cursor:pointer;
}
/* The metric owns theme lighting; its disclosure must not add button chrome. */
html #app-view .inspected-summary > .inspected-summary-toggle { background:transparent !important; border:0 !important; box-shadow:none !important; }
.inspected-summary-toggle > span { min-block-size:2.6em; margin:0 0 8px; font-size:12px; line-height:1.3; }
.inspected-summary-toggle > strong { margin:0; font-size:28px; line-height:1.1; }
.inspected-summary-toggle > small { margin:5px 0 0; font-size:11px; line-height:1.35; }
.inspected-summary-toggle:focus-visible { outline:2px solid var(--accent); outline-offset:-4px; }
.inspected-summary-chevron { position:absolute; right:14px; top:50%; transition:transform 180ms ease; }
.inspected-summary.is-expanded .inspected-summary-chevron { transform:rotate(180deg); }
.inspected-summary-expansion { display:grid; grid-template-rows:0fr; opacity:0; visibility:hidden; transition:grid-template-rows 180ms ease,opacity 180ms ease,visibility 180ms ease; }
.inspected-summary.is-expanded .inspected-summary-expansion { grid-template-rows:1fr; opacity:1; visibility:visible; }
.inspected-summary-content { min-height:0; overflow:hidden; padding:0 12px; }
.inspected-summary.is-expanded .inspected-summary-content { padding-bottom:12px; }
.inspected-summary-pending-head { display:flex; align-items:center; justify-content:space-between; gap:6px; border-top:1px solid var(--border); padding-top:8px; margin-bottom:8px; }
.inspected-summary-pending-head > small { display:block !important; margin:0; font-size:11px; }
.inspected-summary .messaged-copy-list { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:36px; padding:5px 8px; }
.inspected-summary .messaged-room-chips { gap:5px; max-height:190px; overflow-y:auto; }
.inspected-summary .messaged-room-chip { display:inline-flex; margin:0; padding:2px 3px 2px 8px; gap:3px; color:var(--text); font-size:12px; }
.inspected-summary .messaged-current-remove { min-width:28px; min-height:32px; width:28px; height:32px; }
.inspected-summary .messaged-room-chips > .muted { margin:0; font-size:12px; }
.inspected-summary .inspected-history-button { display:block; width:auto; margin-top:10px; padding:2px 0; border:0; border-radius:0; background:transparent; box-shadow:none; font:inherit; font-size:11px; color:var(--accent); text-decoration:underline; transform:none; }
html #app-view .inspected-summary .inspected-history-button { background:transparent !important; border:0 !important; box-shadow:none !important; }
.inspected-summary-tools { margin-top:8px; font-size:11px; color:var(--muted); }
.inspected-summary-tools > summary { cursor:pointer; padding:4px 0; }

/* The two inspection queues share one compact Today metric. */
html #app-view #dashboard-view .summary-grid > .inspections-card { grid-column:span 2; }
.inspections-heading { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px 8px; }
.inspections-heading > strong { font-size:14px; }
.inspection-counts { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;font-size:11px; }
.inspection-counts > span { display:inline-flex;align-items:center;gap:5px;padding:3px 6px;border:1px solid var(--border);border-radius:6px; }
.inspection-counts b { font-size:14px;font-variant-numeric:tabular-nums; }
.inspection-count-passed { color:var(--green,var(--text)); }
html #app-view .inspections-card .inspection-section-toggle { display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;min-height:36px;padding:7px 14px;margin:0;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;box-shadow:none;color:var(--text);font-family:inherit;font-size:12px;font-weight:600;line-height:1.3;text-align:left;cursor:pointer; }
.inspections-card .inspected-summary-toggle > span { min-block-size:0;margin:0;font-size:12px; }
.inspections-card .inspected-summary-chevron { position:static;flex:none; }
.inspection-queue { display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows 160ms ease,visibility 160ms ease; }
.inspection-queue.is-open { grid-template-rows:1fr;visibility:visible; }
.inspection-queue > div { min-height:0;overflow:hidden;padding-inline:12px; }
.inspection-queue.is-open > div { padding-bottom:7px; }
.inspection-queue-row { display:flex;align-items:center;gap:6px;min-height:42px;padding-block:3px;border-top:1px solid var(--border); }
.inspection-queue-row:first-child { border-top:0; }
.inspection-queue-row > strong { font-size:12px;white-space:nowrap; }
.inspection-queue-actions { display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-inline-start:auto; }
html #app-view .inspection-queue-actions .button.small { min-height:34px;padding:5px 8px;font-size:11px;white-space:nowrap; }
.inspection-queue-actions .inspection-pass { border-color:color-mix(in srgb,var(--green) 65%,var(--border)); }
.inspection-queue-actions .inspection-fail { border-color:color-mix(in srgb,var(--red) 65%,var(--border));color:var(--red); }
html[data-theme] #app-view .inspection-queue-actions .inspection-pass { border-inline-start:3px solid var(--green)!important; }
html[data-theme] #app-view .inspection-queue-actions .inspection-fail { border-inline-start:3px solid var(--red)!important; }
html #app-view .inspections-card .inspection-pass .inspection-action-icon { color:var(--green)!important; }
html #app-view .inspections-card .inspection-fail .inspection-action-icon { color:var(--red)!important; }
.inspection-recheck { font-size:10px;color:var(--muted); }
.inspection-undo-notice { display:flex;align-items:center;justify-content:space-between;gap:6px;margin:4px 12px 8px;font-size:11px;color:var(--green,var(--text)); }
.inspection-undo-notice.inspection-was-failed { color:var(--red); }
.inspection-undo-notice .button { min-height:32px; }
.adaptive-room-card[data-state="sent-back"] .arc-status { color:var(--red); }
@media(max-width:700px) {
  html #app-view #dashboard-view .summary-grid > .inspections-card { grid-column:1/-1; }
  html #app-view #dashboard-view .summary-grid:has(> .inspections-card) > .metric:nth-child(3) { grid-column:1/-1;min-height:108px; }
}
@media(prefers-reduced-motion:reduce) { .inspection-queue { transition:none; } }
.inspected-summary .messaged-room-add-form { gap:5px; }
.inspected-summary .messaged-room-add-form input { min-width:0; width:100%; flex:1 1 100%; }
.inspected-summary .messaged-room-add-form .button { font-size:11px; }
@media screen and (max-width:700px) {
  .inspected-summary-toggle { min-height:118px; padding:12px; }
  .inspected-summary-content { padding-inline:10px; }
  .inspected-summary .messaged-copy-list { min-height:44px; }
  .inspected-summary .messaged-current-remove { min-width:32px; min-height:40px; width:32px; height:40px; }
}
@media (prefers-reduced-motion:reduce) {
  .inspected-summary-expansion,.inspected-summary-chevron { transition:none; }
}

/* Unified operations disclosure. Theme surfaces and tokens remain authoritative. */
html #app-view #dashboard-view .daily-room-operations.summary-grid {display:block; padding:16px; border:1px solid var(--border);border-radius:var(--panel-radius,18px);background:var(--panel);min-width:0}
.daily-room-operations>header {display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}
.daily-room-operations h2 {font-size:1.05rem;margin:0}
.daily-room-operations>header small {color:var(--muted)}
#dashboard-view .daily-operations-counters {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
#dashboard-view .daily-operations-counter.metric {display:flex;flex-direction:column;gap:5px;padding:12px;min-width:0;min-height:112px;text-align:left;cursor:pointer;border-radius:12px}
#dashboard-view .daily-operations-counter>strong {font-size:1.65rem;line-height:1.2}
#dashboard-view .daily-operations-counter>span {font-size:.9rem}
#dashboard-view .daily-operations-counter small {font-size:.75rem;line-height:1.4;white-space:normal}
#dashboard-view .daily-operations-counter[aria-expanded=true] {border-color:var(--accent);box-shadow:inset 0 -3px var(--accent)}
.daily-operations-counter:focus-visible,.assigned-progress-toggle:focus-visible,.assigned-employee>button:focus-visible {outline:2px solid var(--accent);outline-offset:3px}
#dashboard-view .daily-operations-list {margin-top:12px;border-top:1px solid var(--border);padding-top:12px}
#dashboard-view .daily-operations-list[hidden] {display:none!important}
.daily-operations-list .today-summary-dialog-head {margin-bottom:8px}
.daily-operations-list .summary-room-list {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:10px}
#dashboard-view .daily-operations-list .inspections-card {width:auto;min-width:0;margin:0;box-shadow:none}
.daily-arrival-priority {font-size:.78rem;padding:6px 8px;border-inline-start:3px solid var(--arrival-color,#22b8c5);background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:4px;margin:6px 0}
.inspection-queue-row:has(.daily-arrival-priority) {flex-wrap:wrap}
.inspection-queue-row>.daily-arrival-priority {flex-basis:100%}
.daily-operations-feedback:empty {display:flex}
.daily-operations-feedback {display:flex;gap:6px;flex-wrap:nowrap;margin-top:8px;min-height:24px;max-height:24px;overflow:hidden}
.room-save-pending {font-size:.72rem;color:var(--muted);white-space:nowrap}
#dashboard-view .summary-room-list.daily-room-scroll {height:425px;scrollbar-gutter:stable}
.daily-room-saved {display:inline-flex;font-size:.8rem;padding:5px 9px;border:1px solid currentColor;border-radius:8px;background:var(--panel)}
[data-saved-status=stripped] {--saved-accent:#398bd5}
[data-saved-status=finished] {--saved-accent:#be851b}
[data-saved-status=inspected] {--saved-accent:#358d57}
.daily-room-saved {border-color:var(--saved-accent);border-inline-start-width:4px}
.daily-operations-list [data-saved-status] {box-shadow:inset 3px 0 var(--saved-accent);animation:daily-save-light .8s ease-out}
@keyframes daily-save-light {from{background:color-mix(in srgb,var(--saved-accent) 22%,var(--panel))}to{background:var(--panel)}}
.today-assigned-progress {border:1px solid var(--border);border-radius:var(--panel-radius,14px);padding:12px 14px;background:var(--panel)}
.assigned-progress-toggle,.assigned-employee>button {display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;border:0;background:transparent;color:inherit;width:100%;padding:0;text-align:left;cursor:pointer;font:inherit}
.assigned-progress-toggle>span:first-child {display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.today-assigned-progress small,.assigned-progress-note {font-size:.78rem;color:var(--muted)}
.today-assigned-progress progress {grid-column:1/-1;appearance:none;width:100%;height:6px;border:0;border-radius:6px;overflow:hidden;background:color-mix(in srgb,var(--accent) 14%,transparent)}
.today-assigned-progress progress::-webkit-progress-bar {background:color-mix(in srgb,var(--accent) 14%,transparent)}
.today-assigned-progress progress::-webkit-progress-value {background:var(--accent);border-radius:6px}
.today-assigned-progress progress::-moz-progress-bar {background:var(--accent);border-radius:6px}
.assigned-employee {border-top:1px solid var(--border);padding:10px 0}
.assigned-employee>button {grid-template-columns:1fr auto auto}
.assigned-task-room {display:flex;gap:12px;flex-wrap:wrap;font-size:.82rem;margin:6px 0}
.today-assigned-progress [hidden] {display:none!important}
@media(max-width:600px){#dashboard-view .daily-operations-counters{grid-template-columns:repeat(2,minmax(0,1fr))}html #app-view #dashboard-view .daily-room-operations.summary-grid{padding:10px}.daily-room-operations>header{display:block}.daily-room-operations>header small{display:block;margin-top:4px}#dashboard-view .daily-operations-counter.metric{padding:9px;min-height:110px}.assigned-employee>button{grid-template-columns:1fr auto}.assigned-employee>button small{grid-column:1;grid-row:2}.assigned-employee>button b{grid-column:2;grid-row:1}.assigned-progress-toggle>span:first-child{gap:4px}}
@media(prefers-reduced-motion:reduce){.daily-operations-list [data-saved-status]{animation:none}}

html #app-view #dashboard-view .daily-arrival-priority strong {font-size:inherit;line-height:inherit;display:inline}

/* Daily Room Operations: headings and controls stay outside the room viewport. */
#dashboard-view .daily-operations-list { min-width:0; }
#dashboard-view .daily-operations-list .daily-room-scroll {
  max-height:425px;
  min-width:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior-y:contain;
  overflow-anchor:none;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--accent) 38%,transparent) transparent;
  -webkit-overflow-scrolling:touch;
  scroll-padding-block:8px;
}
#dashboard-view .daily-room-scroll::-webkit-scrollbar { width:6px; }
#dashboard-view .daily-room-scroll::-webkit-scrollbar-track { background:transparent; }
#dashboard-view .daily-room-scroll::-webkit-scrollbar-thumb { background:color-mix(in srgb,var(--accent) 38%,transparent);border-radius:8px; }
#dashboard-view .daily-room-scroll:focus-visible { outline:2px solid var(--accent);outline-offset:2px; }
#dashboard-view .daily-room-scroll > * { min-width:0;max-width:100%;flex-shrink:0; }
#dashboard-view .daily-room-list-count { display:block;color:var(--muted);padding:0 12px 6px;font-size:.75rem; }
@media(max-width:600px){
  #dashboard-view .daily-operations-list .daily-room-scroll { max-height:325px; }
  #dashboard-view .summary-room-list.daily-room-scroll {height:325px;}
}
#dashboard-view .daily-operations-list { container:daily-rooms / inline-size; }
@container daily-rooms (max-width:800px) {
  html #app-view #daily-operations-list [data-checkout-row] .checkout-row-header { display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:8px!important; }
  html #app-view #daily-operations-list [data-checkout-row] .checkout-row-header > .summary-room-main { grid-column:1;grid-row:1;max-width:100%!important;min-width:0!important;flex-wrap:wrap!important; }
  html #app-view #daily-operations-list .checkout-row-toggle { grid-column:2;grid-row:1; }
  html #app-view #daily-operations-list .checkout-row-quick { grid-column:1/-1;grid-row:2;width:100%!important;max-width:100%!important;min-width:0;overflow:visible;flex-wrap:wrap!important; }
  html #app-view #daily-operations-list .checkout-row-quick :is(.summary-room-actions,.summary-room-turnover-actions,.arc-action-layout,.arc-action-group,.arc-actions) { flex-wrap:wrap!important;flex:1 1 auto!important;min-width:0!important;max-width:100%!important; }
  html #app-view #daily-operations-list .checkout-row-quick button { flex:1 1 auto!important;min-width:0!important;max-width:100%;white-space:normal!important;overflow-wrap:anywhere; }
}
/* Daily operations owns departure actions and room work, using existing theme tokens. */
#dashboard-view .daily-operations-out-tools {margin:12px 0;min-width:0;border-block:1px solid var(--border);padding:12px 0}
#dashboard-view .daily-operations-out-tools>.panel-head {padding:0;margin:0 0 8px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;background:transparent;border:0}
#dashboard-view .daily-operations-out-tools h3 {font-size:1rem;margin:0}
#dashboard-view .daily-operations-out-tools .mark-out-selection-controls {padding:0;display:flex;flex-wrap:wrap;gap:8px;align-items:start}
#dashboard-view .daily-operations-out-tools .mark-out-selector {flex:1 1 220px;min-width:0;max-width:100%}
#dashboard-view .daily-operations-out-tools .mark-out-choices {max-height:min(40vh,280px);overflow-y:auto;overscroll-behavior:contain}
#dashboard-view .daily-operations-quick-add {margin:12px 0 0;padding:12px 0 0;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;box-shadow:none;min-width:0}
#dashboard-view .daily-operations-quick-add>.panel-head {padding:0;display:block;background:transparent;border:0}
#dashboard-view .daily-operations-quick-add h3 {font-size:1rem;margin:0 0 8px}
#dashboard-view .daily-operations-quick-add .quick-panel-heading>.muted {display:none}
#dashboard-view .daily-operations-quick-add>.panel-body {padding:0;margin-top:8px}
#dashboard-view .daily-operations-quick-add .combined-room-quick-form {width:100%;max-width:none;margin:0}
#dashboard-view .daily-open-items>summary {cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--muted)}
#dashboard-view .daily-open-items>summary::before {content:'▸';margin-right:8px}
#dashboard-view .daily-open-items[open]>summary::before {content:'▾'}
#dashboard-view .daily-open-items .combined-quick-lists {max-height:360px;overflow-y:auto;overscroll-behavior:contain}
#dashboard-view .daily-mark-out {min-height:44px}
@media(max-width:600px){
 #dashboard-view .daily-operations-out-tools .mark-out-selector {flex-basis:100%}
 #dashboard-view .daily-operations-out-tools button,#dashboard-view .daily-operations-out-tools summary {min-height:44px}
 #dashboard-view .daily-operations-quick-add .quick-add-input-row {display:grid;grid-template-columns:minmax(84px,1fr) minmax(0,2fr);gap:8px}
 #dashboard-view .daily-operations-quick-add .quick-add-action-row {display:flex;flex-wrap:wrap;gap:8px}
 #dashboard-view .daily-operations-quick-add input,#dashboard-view .daily-operations-quick-add select {min-width:0;max-width:100%;min-height:44px}
}
/* Empty and single-room queues should use their natural height. */
#dashboard-view .summary-room-list.daily-room-scroll:not(:has(> .summary-room-row:nth-child(2))) {height:auto}

/* Independent Today workspaces: stable room viewport and compact sibling cards. */
#dashboard-view .daily-operations-list:not([hidden]) {
  height: min(520px, 65vh); max-height: 520px; overflow-y: auto;
  overscroll-behavior: contain; scrollbar-gutter: stable; overflow-anchor: none;
}
#dashboard-view .daily-operations-list .daily-room-scroll {
  height: auto; max-height: none; overflow: visible;
}
#dashboard-view :is(.daily-operations-out-tools,.combined-room-quick-panel) {
  min-width: 0; margin: 0; border: 1px solid var(--border);
  border-radius: var(--panel-radius,14px); background: var(--panel);
  padding: 0; overflow-anchor: none;
}
#dashboard-view :is(.daily-operations-out-tools,.combined-room-quick-panel) > .panel-head {
  padding: 12px 14px; margin: 0; gap: 8px; border: 0;
}
#dashboard-view :is(.daily-operations-out-tools,.combined-room-quick-panel) > .panel-body {
  padding: 0 14px 12px; margin: 0;
}
#dashboard-view .daily-operations-out-tools .mark-out-choices {
  max-height: min(280px,40vh); overflow-y: auto; scrollbar-gutter: stable; overscroll-behavior: contain;
}
#dashboard-view .combined-room-quick-panel > .quick-head { flex-wrap: wrap; }
#dashboard-view .combined-room-quick-panel .quick-panel-heading { flex: 1 1 100%; }
#dashboard-view .combined-room-quick-panel .quick-panel-heading > .muted { display: none; }
#dashboard-view .combined-room-quick-panel .combined-room-quick-form { margin: 0; width: 100%; max-width: none; }
#dashboard-view .combined-room-quick-panel .combined-quick-lists { max-height: 360px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
#dashboard-view .combined-room-quick-panel.is-collapsed .combined-room-quick-form { display: none !important; }
@media(max-width:600px) {
  #dashboard-view .daily-operations-list:not([hidden]) { height: min(420px,60vh); }
  #dashboard-view .combined-room-quick-panel .quick-add-input-row { display: grid; grid-template-columns: minmax(80px,1fr) minmax(0,2fr); gap: 8px; }
  #dashboard-view .combined-room-quick-panel .quick-add-action-row { display: flex; flex-wrap: wrap; gap: 8px; }
  #dashboard-view .combined-room-quick-panel :is(input,select) { min-width: 0; max-width: 100%; }
}

/* Native checkbox focus and keyed status reconciliation retain the viewport. */
#dashboard-view .daily-operations-out-tools .mark-out-choices { overflow-anchor: none; }

/* Shared checkout/arrival action groups retain native read-only semantics. */
.summary-room-turnover-actions:is(fieldset) { border:0; padding:0; margin:0; min-width:0; }

@layer theme-studio { @media(max-width:700px) {
 html #app-view #daily-operations-list [data-arrival-summary][data-checkout-row] .checkout-row-header > .summary-room-main {flex-wrap:wrap!important;}
 html #app-view #daily-operations-list [data-arrival-summary] .summary-room-main > .summary-room-assigned {flex-basis:100%;font-size:.75rem;margin:0;}
}}


/* Source: tracker-dialogs.css */
/* Shared standard dialogs only; specialized inventory/order shells keep their
   existing layout and guards. Form controls remain in their original forms. */
@media screen {
 html[data-theme] dialog.dc-dialog.tracker-standard-dialog {
  width:min(640px,calc(100vw - 24px));max-width:calc(100vw - 24px);
  max-height:calc(100dvh - 24px);padding:0!important;overflow:hidden!important;
 }
 html[data-theme] .tracker-standard-dialog>.dc-dialog-content {
  box-sizing:border-box;max-height:calc(100dvh - 28px);overflow:auto;overscroll-behavior:contain;
  padding:16px;gap:16px;min-width:0;scroll-padding-block:84px 16px;
 }
 .tracker-standard-dialog .tracker-dialog-heading {
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  position:sticky;top:-16px;z-index:3;margin:-16px -16px 0;padding:12px 16px;
  background:var(--surface-elevated,var(--panel));border-bottom:1px solid var(--border);
 }
 .tracker-standard-dialog .tracker-dialog-heading>h3,
 .tracker-standard-dialog .tracker-dialog-heading>h2 {min-width:0;margin:0;font-size:18px;line-height:1.35;overflow-wrap:anywhere}
 .tracker-standard-dialog .tracker-dialog-heading>[data-tracker-close] {flex:none;min-height:44px;margin:0}
 html[data-theme] .tracker-standard-dialog :is(form,fieldset,label) {min-width:0;overflow-wrap:anywhere}
 html[data-theme] .tracker-standard-dialog :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {box-sizing:border-box;max-width:100%;min-width:0;min-height:44px}
 html[data-theme] .tracker-standard-dialog input:is([type=checkbox],[type=radio]) {
  width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;
  margin:2px 0;flex:none;accent-color:var(--accent);
 }
 html[data-theme] .tracker-standard-dialog label:has(>input[type=checkbox]):not(:has(>input[type=number])) {display:flex;flex-wrap:wrap;align-items:center;gap:8px}
 html[data-theme] .tracker-standard-dialog .sheet-column-list>label {display:grid;grid-template-columns:20px minmax(0,1fr) 84px;align-items:center;gap:10px;padding:2px 0;margin:0}
 html[data-theme] .tracker-standard-dialog .sheet-column-list>label>input[type=number] {width:84px}
 .tracker-standard-dialog [data-tracker-error]:not([hidden]),.tracker-field-error {padding:10px 12px;border-inline-start:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel));color:var(--text);overflow-wrap:anywhere;font-size:13px;line-height:1.45}
 .tracker-field-error {display:block;margin:0}
 .tracker-standard-dialog .sheet-column-list .tracker-field-error {grid-column:2/-1}
 html[data-theme] .tracker-standard-dialog .sheet-column-list {max-height:none;overflow:visible}
 .tracker-standard-dialog [hidden] {display:none!important}
 .tracker-standard-dialog :focus-visible {outline:2px solid var(--accent);outline-offset:2px}
}
@media screen and (max-width:580px) {
 html[data-theme] .tracker-standard-dialog>.dc-dialog-content {scroll-padding-block-start:140px}
 html[data-theme] .tracker-standard-dialog .sheet-form-grid {grid-template-columns:minmax(0,1fr)}
 html[data-theme] .tracker-standard-dialog .sheet-filter-row {grid-template-columns:minmax(0,1fr) 44px}
 html[data-theme] .tracker-standard-dialog .sheet-filter-row>input,
 html[data-theme] .tracker-standard-dialog .sheet-filter-row>select {grid-column:1/-1}
 html[data-theme] .tracker-standard-dialog .sheet-filter-row>button {grid-column:2;justify-self:end}
}


/* Source: operations-inline-grid.css */
/* Compact status buttons retain canonical values and neutral unselected states. */
.inline-operations-grid .sheet-column-menu,.inline-operations-grid thead .room-column-select,.inline-operations-grid thead .ri-column>details{display:none!important}
.inline-operations-grid .compact-matrix thead th{padding-right:8px!important;height:62px!important}
.inline-grid-toolbar{position:sticky;top:0;z-index:8;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:6px 8px;margin:6px 0;background:var(--panel);border:1px solid var(--border);border-radius:8px;font-size:12px}
.inline-grid-toolbar[hidden],.inline-grid-toolbar [hidden]{display:none!important}
.inline-grid-toolbar [data-inline-feedback]{flex:1;min-width:140px;color:var(--muted)}
.inline-grid-toolbar [role=alert]{color:var(--red,#a52c35)}
.inline-grid-toolbar[data-has-selection=false]>:is(strong,[data-inline-bulk],[data-inline-all],[data-inline-clear],[data-inline-record]){display:none}
.inline-operations-grid table td.inline-status-cell{min-width:160px!important;height:auto!important;padding:3px 6px!important;vertical-align:middle;background:transparent!important;border-bottom:1px solid color-mix(in srgb,var(--border) 45%,transparent)!important}
.inline-cell-main{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;min-height:34px}
.inline-cell-main input{width:16px;height:16px;flex:0 0 16px;margin:0;accent-color:var(--accent)}
.inline-status-buttons,[data-inline-bulk]{display:flex;flex-wrap:wrap;gap:0;min-width:0;flex:1}
.inline-status-buttons button,[data-inline-bulk] button{flex:1 0 auto;min-height:32px!important;min-width:60px;max-width:100%;margin:0!important;padding:4px 7px!important;border:1px solid var(--border)!important;border-radius:0!important;background:var(--panel)!important;color:var(--text)!important;box-shadow:none!important;font:inherit!important;font-size:12px!important;font-weight:600!important;line-height:1.2!important;white-space:normal;overflow-wrap:normal;cursor:pointer;transform:none!important}
.inline-status-buttons button:first-child,[data-inline-bulk] button:first-child{border-radius:6px 0 0 6px!important}
.inline-status-buttons button:last-child,[data-inline-bulk] button:last-child{border-radius:0 6px 6px 0!important}
.inline-status-buttons button+button,[data-inline-bulk] button+button{margin-left:-1px!important}
.inline-status-buttons button{flex:1 1 0;min-width:0;padding-inline:3px!important;font-family:system-ui,sans-serif!important;font-size:11px!important;letter-spacing:normal!important}
.inline-status-buttons button[aria-pressed=true]{position:relative;z-index:1;border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 14%,var(--panel))!important}
.inline-status-buttons button[aria-pressed=true][data-tone=success]{border-color:var(--green,#34844b)!important;background:color-mix(in srgb,var(--green,#34844b) 17%,var(--panel))!important}
.inline-status-buttons button[aria-pressed=true][data-tone=danger]{border-color:var(--red,#b54149)!important;background:color-mix(in srgb,var(--red,#b54149) 14%,var(--panel))!important}
.inline-status-buttons button:disabled{cursor:default;opacity:.6}
.inline-status-buttons button:focus-visible,[data-inline-bulk] button:focus-visible{position:relative;z-index:2;outline:2px solid var(--accent)!important;outline-offset:2px}
.inline-status-cell[aria-busy=true] .inline-status-buttons{opacity:.65}
.inline-existing-status{flex-basis:100%;font-size:11px;line-height:1.2;color:var(--muted);padding-left:22px}
.inline-selected{outline:2px solid var(--accent)!important;outline-offset:-2px}
.inline-operations-grid table.compact-matrix[data-density=comfortable] tbody tr{height:max(72px,var(--sheet-row))}
.inline-operations-grid .dc-scroll,.inline-operations-grid .mm-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.inline-select-column,.inline-select-room{font:inherit;color:var(--muted);background:transparent;border:0;box-shadow:none;cursor:pointer;text-decoration:none}
.inline-operations-grid table.compact-matrix .inline-select-column{position:absolute;right:8px;top:4px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:30px!important;margin:0;padding:0!important;font-size:17px!important}
.inline-operations-grid table.compact-matrix .inline-select-room{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;min-height:23px!important;margin:0 0 0 4px;padding:0!important;font-size:14px!important}
@media(max-width:600px){
 .inline-grid-toolbar{position:relative;gap:6px}
 .inline-cell-main{min-height:44px}.inline-cell-main input{width:20px;height:20px;flex-basis:20px}
 .inline-status-buttons button,[data-inline-bulk] button{min-height:44px!important}
 .inline-operations-grid table.compact-matrix .inline-select-room{width:30px;height:30px;min-height:30px!important}
 .inline-operations-grid table.compact-matrix .inline-select-column{width:44px;height:44px;min-height:44px!important}
 .inline-operations-grid .room-spreadsheet>.dc-scroll{display:block!important}.inline-operations-grid [data-room-mobile]{display:none!important}
}
@media(prefers-reduced-motion:reduce){.inline-status-buttons button{transition:none!important}}

.inline-status-cell [data-cell-save]{display:block;font-size:10px;line-height:1.3;color:var(--muted);padding:1px 3px;white-space:nowrap}.inline-status-cell [data-cell-save] button{font:inherit;color:var(--text);background:transparent;border:0;padding:0 2px;text-decoration:underline;cursor:pointer}


/* Source: schedule-coverage.css */
/* Coverage is a semantic warning, retaining the active world's materials. */
#schedule-view .schedule-needs-coverage,.team-schedule-grid .schedule-needs-coverage{background:color-mix(in srgb,var(--red,#d6384d) 17%,var(--panel))!important;border:2px solid var(--red,#d6384d)!important}
#schedule-view .schedule-needs-coverage input{background:transparent!important;color:var(--text)!important;cursor:pointer}
.coverage-label{display:block;min-height:30px;padding:3px 6px;margin:3px 0;font:600 11px var(--font,system-ui);color:var(--text);background:color-mix(in srgb,var(--red,#d6384d) 22%,var(--panel));border:1px solid var(--red,#d6384d);border-radius:6px;white-space:normal;cursor:pointer}
.coverage-count.has-coverage{border-color:var(--red,#d6384d)!important;box-shadow:inset 3px 0 var(--red,#d6384d)}
.coverage-editor{display:grid;gap:5px;min-width:140px;margin-top:6px;font-size:12px}.coverage-editor select{width:100%;max-width:230px;min-height:36px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px}.coverage-editor small{font-size:10px;color:var(--muted)}
.coverage-list{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;max-height:240px;overflow:auto}.coverage-list[hidden]{display:none}.coverage-list>button{display:grid;gap:3px;padding:8px 10px;background:var(--panel);color:var(--text);border:1px solid var(--red,#d6384d);border-radius:8px;text-align:left;cursor:pointer}.coverage-list small{font-weight:600}.coverage-list span{font-size:12px}
@media(max-width:600px){.coverage-editor select,.coverage-label{min-height:44px}.coverage-count{min-height:44px}.coverage-list>button{flex:1;min-width:150px}}

@media(max-width:600px){#schedule-view .schedule-needs-coverage{min-width:140px;scroll-margin-block:150px}#schedule-view .schedule-grid-wrap{scroll-padding-inline-start:180px;scroll-padding-block:100px}.coverage-label,.coverage-editor{scroll-margin-block:150px}}

#schedule-view tr:has(.schedule-needs-coverage) .schedule-name-cell{flex-wrap:wrap}
#schedule-view tr:has(.schedule-needs-coverage) .schedule-name-input{flex:1 1 100%;width:100%}
#schedule-view tr:has(.schedule-needs-coverage) .staff-schedule-inactive{flex:1}


/* Source: seven-worlds.css */
/* Seven illustrated worlds: all styles are scoped; operational status colors retain their own tokens. */
html[data-seven-world] {background:var(--world-background)}
html[data-seven-world] .workspace {background:transparent;isolation:isolate}
html[data-seven-world] .world-atmosphere {opacity:.15!important}
.sw-environment {position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 95% 12%,color-mix(in srgb,var(--world-accent-secondary) 16%,transparent),transparent 55%),linear-gradient(135deg,var(--world-deep),var(--world-background) 60%)}
.sw-environment i {position:absolute;width:45vw;height:45vw;border:1px solid color-mix(in srgb,var(--world-accent) 13%,transparent);border-radius:50%;right:-24vw;top:15%;box-shadow:0 0 0 32px color-mix(in srgb,var(--world-accent) 3%,transparent),0 0 0 85px color-mix(in srgb,var(--world-accent-secondary) 3%,transparent)}
.sw-environment i:nth-child(2){top:70%;right:70%;width:70vw;height:70vw}.sw-environment i:nth-child(3){top:-20%;right:30%;width:20vw;height:20vw}
html[data-seven-world] .workspace,html[data-seven-world] #app-view {position:relative;z-index:1}
html[data-seven-world] .sidebar {background:linear-gradient(160deg,var(--world-surface),var(--world-deep));border-right:1px solid var(--world-border)}
html[data-seven-world][data-mode="light"] .sidebar {background:linear-gradient(160deg,var(--world-surface),var(--world-elevated))}
html[data-seven-world] .nav-item.active {box-shadow:inset 3px 0 var(--world-accent),inset 0 0 0 1px color-mix(in srgb,var(--world-accent) 50%,transparent);background:color-mix(in srgb,var(--world-accent) 13%,var(--world-surface))}
html[data-seven-world] :is(.panel,.room-card,.summary-card,.metric,.metric-card,.employee-bubble){background:linear-gradient(135deg,color-mix(in srgb,var(--world-highlight) 5%,var(--world-surface)),var(--world-surface));border-color:var(--world-border);box-shadow:var(--world-shadow)}
html[data-seven-world] .panel-head{border-bottom-color:color-mix(in srgb,var(--world-border) 55%,transparent)}
html[data-seven-world] :is(button,a,input,select,textarea):focus-visible{outline:3px solid var(--world-accent);outline-offset:3px}
.sw-journey {position:relative;isolation:isolate;border:1px solid var(--world-border);border-radius:var(--world-radius);overflow:hidden;background:var(--world-surface);margin:0 0 22px;box-shadow:0 22px 50px -34px var(--world-deep);color:var(--world-text)}
.sw-diorama {position:relative;height:354px;overflow:hidden;background:var(--world-deep)}
.sw-illustration {position:absolute;width:100%;height:100%;inset:0;object-fit:cover;transform:translateX(var(--sw-look,0));transition:transform .7s ease}
.sw-scene-shade {position:absolute;inset:0;background:linear-gradient(90deg,var(--world-deep) 0%,color-mix(in srgb,var(--world-deep) 94%,transparent) 22%,transparent 64%);pointer-events:none}
.sw-story {position:relative;z-index:1;max-width:44%;padding:48px 32px 30px;color:#fff0d7;pointer-events:none}
.sw-kicker {display:block;font-size:10px;font-weight:750;letter-spacing:.19em;line-height:1.6;color:var(--world-accent)}
.sw-story h2 {font-family:Georgia,'Times New Roman',serif;font-size:clamp(30px,3vw,46px);line-height:1.08;font-weight:500;margin:19px 0 15px;letter-spacing:-.035em;color:#fff3dd}
.sw-story p{font-size:14px;line-height:1.65;margin:0;max-width:30ch;color:#d4dbd4}.sw-location{display:inline-block;margin-top:25px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#d3c9b5;border-top:1px solid #c4c2b944;padding-top:12px}
html[data-mode="light"][data-seven-world] .sw-story {background:linear-gradient(90deg,#11232ad9,transparent)}
html[data-mode="light"][data-seven-world] .sw-story .sw-kicker {color:#e9d49a}
.sw-journey-bar {display:flex;gap:12px;align-items:center;justify-content:space-between;padding:13px 18px;border-top:1px solid color-mix(in srgb,var(--world-accent) 25%,transparent);background:var(--world-surface)}
.sw-actions {display:flex;gap:9px;flex:1;min-width:0}.sw-actions[hidden]{display:none}.sw-tools{display:flex;gap:7px;flex-shrink:0;margin-left:auto}
.sw-journey button,.sw-settings button {font:inherit;font-size:11px;font-weight:650;color:var(--world-text);border:1px solid color-mix(in srgb,var(--world-border) 80%,transparent);background:var(--world-elevated);border-radius:9px;min-height:40px;cursor:pointer;padding:8px 12px;transition:background .2s,box-shadow .2s}
.sw-actions button {display:flex;gap:8px;align-items:center;text-align:left;flex:1}.sw-object-icon {font-size:19px;color:var(--world-accent)}
.sw-actions button[data-found="true"] {box-shadow:inset 0 -2px var(--world-accent)}
.sw-journey button:hover,.sw-settings button:hover {background:color-mix(in srgb,var(--world-accent) 18%,var(--world-elevated))}
.sw-footnote {display:flex;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid color-mix(in srgb,var(--world-border) 25%,transparent);padding:10px 20px;font-size:11px;line-height:1.5;color:var(--world-secondary);min-height:38px}.sw-footnote [data-sw-discoveries]{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--world-accent)}
.sw-collapsed .sw-footnote{display:none}.sw-collapsed .sw-journey-bar:before{content:attr(data-title);font-family:Georgia,serif;font-size:16px}.sw-collapsed{margin-bottom:14px}
.sw-settings {width:min(520px,calc(100vw - 28px));max-height:85dvh;overflow:auto;padding:25px;border:1px solid var(--world-border);border-radius:22px;background:var(--world-surface);color:var(--world-text);box-shadow:0 24px 90px #0008}
.sw-settings::backdrop{background:#0b1025ad;backdrop-filter:blur(5px)}.sw-settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.sw-settings h2{font:normal 28px/1.15 Georgia,serif;margin:8px 0 20px}.sw-settings label{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;font-size:13px;margin:17px 0}.sw-settings select,.sw-settings input{grid-column:1/-1;width:100%;min-height:36px}.sw-settings fieldset{margin:20px 0 0;border:1px solid var(--world-border);border-radius:12px;padding:16px}.sw-settings p{font-size:12px;line-height:1.6;color:var(--world-secondary)}.sw-settings output{grid-column:2;grid-row:1;color:var(--world-accent)}.sw-settings-note{margin-bottom:0}.sw-audio-status{min-height:2em}
/* Material vocabulary reaches the working surfaces. */
html[data-sw-material="paper"] :is(.panel,.room-card,.metric){border-radius:2px 20px 2px 20px;box-shadow:4px 5px 0 color-mix(in srgb,var(--world-border) 40%,transparent),inset 0 0 0 5px color-mix(in srgb,var(--world-highlight) 5%,transparent);background-image:repeating-linear-gradient(0deg,transparent 0 7px,color-mix(in srgb,var(--world-accent) 3%,transparent) 8px)}
html[data-sw-material="glass"] :is(.panel,.room-card,.metric){border-top:3px solid color-mix(in srgb,var(--world-highlight) 70%,var(--world-border));box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--world-accent-secondary) 8%,transparent),0 14px 30px -20px var(--world-deep);border-radius:26px 26px 10px 10px}
html[data-sw-material="enamel"] :is(.panel,.room-card,.metric){border:2px solid var(--world-border);box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--world-highlight) 9%,transparent),0 4px 0 var(--world-deep);background-image:linear-gradient(170deg,color-mix(in srgb,var(--world-accent-secondary) 9%,transparent),transparent 40%)}
html[data-sw-material="amber"] :is(.panel,.room-card,.metric){border-left:5px solid color-mix(in srgb,var(--world-accent) 70%,var(--world-border));background-image:repeating-linear-gradient(100deg,transparent 0 29px,color-mix(in srgb,var(--world-accent) 3%,transparent) 30px 32px)}
html[data-sw-material="mineral"] :is(.panel,.room-card,.metric){box-shadow:5px 7px 0 -3px var(--world-elevated),7px 9px 0 -3px var(--world-border);background-image:linear-gradient(155deg,transparent 70%,color-mix(in srgb,var(--world-accent-secondary) 8%,transparent) 70%)}
html[data-sw-material="velvet"] :is(.panel,.room-card,.metric){border-top:2px solid var(--world-accent);box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--world-accent) 7%,transparent),0 12px 28px -20px var(--world-deep);background-image:radial-gradient(ellipse at top,color-mix(in srgb,var(--world-accent) 7%,transparent),transparent 70%)}
html[data-sw-material="storybook"] :is(.panel,.room-card,.metric){border:2px solid var(--world-border);box-shadow:3px 4px 0 color-mix(in srgb,var(--world-accent-secondary) 22%,transparent);background-image:radial-gradient(circle at 95% 0,color-mix(in srgb,var(--world-accent) 9%,transparent),transparent 45%)}
/* Animation durations are long and movement is bounded. */
.sw-float,.sw-leviathan,.sw-island{transform-box:fill-box;transform-origin:center;animation:seven-float 9s ease-in-out infinite alternate}.sw-leviathan{animation-duration:16s}.sw-island{animation-delay:calc(var(--i)*-3s)}
.sw-twinkle{animation:seven-twinkle 4s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.37s)}.sw-drum{transform-origin:0 25px;animation:seven-turn 32s linear infinite;animation-direction:alternate;animation-delay:calc(var(--i)*-7s)}.sw-spin{animation:seven-turn 70s linear infinite}.sw-snail{animation:seven-snail 12s ease-in-out infinite alternate}.sw-rain{animation:seven-rain 1.8s linear infinite;animation-delay:calc(var(--i)*-.2s)}.sw-snow{animation:seven-snow 12s linear infinite;animation-delay:calc(var(--i)*-.4s)}.sw-waterfall{animation:seven-waterfall 6s linear infinite}.sw-aurora{animation:seven-aurora 14s ease-in-out infinite alternate}.sw-secret-stars,.sw-secret-art{opacity:0;transition:opacity 1s}.sw-journey[data-sw-secret="true"] .sw-secret-stars,.sw-journey[data-sw-secret="true"] .sw-secret-art{opacity:1}.sw-journey[data-sw-active-action] .sw-window,.sw-journey[data-sw-active-action] .sw-pumpkin-face{fill:#fff6b8;filter:drop-shadow(0 0 6px #ffdc8b)}
.sw-journey[data-sw-active-action="0"] .sw-leviathan{animation-duration:3s}.sw-journey[data-sw-active-action="1"] .sw-drum{animation-duration:8s}.sw-journey[data-sw-active-action="2"] .sw-waterfall{animation-direction:reverse}.sw-journey[data-sw-active-action="0"] .sw-fruit{filter:drop-shadow(0 0 6px #f5cf8d)}
@keyframes seven-float{from{transform:translateY(-4px) rotate(-.5deg)}to{transform:translateY(5px) rotate(.5deg)}}
@keyframes seven-twinkle{from{opacity:.38}to{opacity:1}}@keyframes seven-turn{to{transform:rotate(360deg)}}@keyframes seven-snail{to{transform:translateX(12px) rotate(.7deg)}}@keyframes seven-rain{from{transform:translateY(-6px);opacity:.2}to{transform:translateY(14px);opacity:.8}}@keyframes seven-snow{to{transform:translate(12px,32px)}}@keyframes seven-waterfall{to{stroke-dashoffset:72}}@keyframes seven-aurora{to{opacity:.4;transform:translateY(8px)}}
html[data-sw-atmosphere="dream"] .sw-snow:nth-of-type(2n),html[data-sw-atmosphere="dream"] .sw-twinkle:nth-of-type(3n){animation:none}
html[data-sw-motion="off"] :is(.sw-journey,.sw-environment) *,html[data-sw-paused="true"] :is(.sw-journey,.sw-environment) *, .sw-journey[data-sw-offscreen="true"] * {animation-play-state:paused!important}
html[data-sw-motion="off"] .sw-illustration{transition:none;transform:none}html[data-sw-motion="off"] .sw-secret-art{transition:none}
@media(prefers-reduced-motion:reduce){.sw-journey *{animation:none!important;transition:none!important}}
@media(max-width:1000px){.sw-diorama{height:300px}.sw-story{padding:32px 24px}.sw-story h2{font-size:32px}.sw-story p{font-size:12px}.sw-location{font-size:9px;margin-top:18px}.sw-journey-bar{flex-wrap:wrap}.sw-actions{flex-basis:100%}.sw-tools{margin-left:auto}.sw-illustration{width:110%;left:-5%}}
@media(max-width:600px){.sw-diorama{height:400px}.sw-illustration{width:171.43%;height:auto;aspect-ratio:1200/440;left:auto;right:0;top:150px}.sw-scene-shade{background:linear-gradient(180deg,var(--world-deep) 0%,color-mix(in srgb,var(--world-deep) 75%,transparent) 25%,transparent 62%)}.sw-story{max-width:100%;padding:23px 20px;background:none!important}.sw-story h2{font-size:31px;max-width:12ch;margin:8px 0}.sw-story p{font-size:11px;line-height:1.5;max-width:29ch}.sw-kicker{font-size:8px}.sw-location{display:none}.sw-journey-bar{padding:10px;gap:8px}.sw-actions{gap:5px;align-items:stretch}.sw-actions button{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:8px 4px;font-size:10px;line-height:1.3;min-width:0}.sw-tools button{min-height:36px;font-size:10px}.sw-footnote{padding:9px 12px;font-size:10px}.sw-journey{margin-bottom:16px}.sw-settings{padding:18px}.sw-settings h2{font-size:25px}}
@media print{.sw-journey,.sw-environment,.sw-settings{display:none!important}}

.sw-detail{opacity:0;transition:opacity .6s}.sw-journey[data-sw-active-action="0"] .sw-detail-0,.sw-journey[data-sw-active-action="1"] .sw-detail-1,.sw-journey[data-sw-active-action="2"] .sw-detail-2{opacity:1}
.sw-sleigh,.sw-cranes,.sw-socks,.sw-parade{animation:seven-procession 12s ease-in-out infinite alternate}.sw-solar-bloom{animation:seven-float 8s ease-in-out infinite alternate}
@keyframes seven-procession{from{translate:-16px 0}to{translate:18px -8px}}
html[data-seven-world="christmas-everglow"] .sidebar{background-image:radial-gradient(circle at 15% 12%,#f3d28a1a,transparent 38%),linear-gradient(160deg,var(--world-surface),var(--world-deep))}
html[data-seven-world="pumpkin-pajama-parade"] .nav-item.active{border-radius:22px 6px 22px 6px}

.world-choice[data-world-id="paper-leviathan"] .world-portal-art{position:absolute;inset:0;background:url("/art/seven-worlds/paper-leviathan.svg") 75% center/cover;opacity:.95}
.world-choice[data-world-id="bottled-weather"] .world-portal-art{position:absolute;inset:0;background:url("/art/seven-worlds/bottled-weather.svg") 75% center/cover;opacity:.95}
.world-choice[data-world-id="midnight-laundromat"] .world-portal-art{position:absolute;inset:0;background:url("/art/seven-worlds/midnight-laundromat.svg") 75% center/cover;opacity:.95}
.world-choice[data-world-id="amber-snailway"] .world-portal-art{position:absolute;inset:0;background:url("/art/seven-worlds/amber-snailway.svg") 75% center/cover;opacity:.95}
.world-choice[data-world-id="gravity-orchard"] .world-portal-art{position:absolute;inset:0;background:url("/art/seven-worlds/gravity-orchard.svg") 75% center/cover;opacity:.95}
.world-choice[data-world-id="christmas-everglow"] .world-portal-art{position:absolute;inset:0;background:url("/art/seven-worlds/christmas-everglow.svg") 75% center/cover;opacity:.95}
.world-choice[data-world-id="pumpkin-pajama-parade"] .world-portal-art{position:absolute;inset:0;background:url("/art/seven-worlds/pumpkin-pajama-parade.svg") 75% center/cover;opacity:.95}

/* Holiday lanterns and light strands remain decorative and gently illuminated. */
.sw-holiday-trim{position:absolute;left:22px;right:22px;bottom:0;height:23px;display:flex;align-items:flex-start;justify-content:space-around;pointer-events:none;user-select:none;z-index:2}
.sw-diorama>.sw-holiday-trim{top:0;bottom:auto;left:24px;right:24px}
.sw-holiday-trim::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;border-bottom:1px solid #9ba36d85;border-radius:0 0 50% 50%;pointer-events:none}
.sw-holiday-bulb{position:relative;display:block;flex:none;width:6px;height:9px;margin-top:7px;border-radius:3px 3px 5px 5px;color:var(--bulb);background:var(--bulb);box-shadow:0 0 3px 1px #fff7,0 0 9px 3px currentColor,0 0 20px 4px color-mix(in srgb,currentColor 35%,transparent);animation:sw-holiday-glimmer 4.8s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.63s)}
.sw-holiday-bulb::before{content:"";position:absolute;width:4px;height:5px;left:1px;top:-4px;background:#6d876e;border-radius:1px}
.sw-holiday-bulb:nth-child(3n){margin-top:10px}.sw-holiday-bulb:nth-child(4n){animation-duration:6.2s}
.sw-pumpkin-lanterns{height:26px;align-items:center}.sw-pumpkin-lanterns::before{border-color:#bc804755;height:13px}
.sw-trim-pumpkin{width:32px;height:28px;overflow:visible;filter:drop-shadow(0 0 4px #ffbc59a8) drop-shadow(0 0 12px #ff963d66);animation:sw-holiday-glimmer 5.6s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.83s)}
.sw-trim-face{filter:drop-shadow(0 0 3px #ffe397)}
html[data-seven-world="pumpkin-pajama-parade"] .sw-pumpkin-face{fill:#fff1ae;filter:drop-shadow(0 0 4px #ffdf81) drop-shadow(0 0 12px #ff9a3e)}
html[data-seven-world="christmas-everglow"] :is(.sw-twinkle,.sw-window){filter:drop-shadow(0 0 3px #ffe8a9) drop-shadow(0 0 8px #ffc16c88)}
html[data-seven-world="christmas-everglow"] .sw-journey{box-shadow:0 0 0 1px #dfc07b33,0 0 28px -12px #e6c48577}
html[data-seven-world="pumpkin-pajama-parade"] .sw-journey{box-shadow:0 0 0 1px #edaa7144,0 0 30px -12px #ff9b4e80}
html[data-seven-world="pumpkin-pajama-parade"] .nav-item.active{box-shadow:inset 3px 0 #ffc176,inset 0 0 15px #ffa85225,0 0 12px #ffa85230}
html:is([data-seven-world="christmas-everglow"],[data-seven-world="pumpkin-pajama-parade"]) .topbar{padding-bottom:15px}
@keyframes sw-holiday-glimmer{from{opacity:.76;filter:brightness(.92)}to{opacity:1;filter:brightness(1.14)}}
/* Opacity twinkles preserve the lanterns' constant warm halo. */
.sw-trim-pumpkin{animation-name:sw-pumpkin-glimmer}
@keyframes sw-pumpkin-glimmer{from{opacity:.8}to{opacity:1}}
html[data-sw-motion="off"] .sw-holiday-trim *,html[data-sw-paused="true"] .sw-holiday-trim *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.sw-holiday-trim *{animation:none!important}}
@media(max-width:600px){.sw-holiday-trim{left:14px;right:14px}.sw-trim-pumpkin{width:26px;height:24px}.sw-diorama>.sw-holiday-trim{left:14px;right:14px}.sw-holiday-bulb{width:5px;height:8px}}
@media print{.sw-holiday-trim{display:none!important}}

@media(max-width:600px){html:is([data-seven-world="christmas-everglow"],[data-seven-world="pumpkin-pajama-parade"]) #app-view .topbar{padding-bottom:30px!important;min-height:136px}}

.sw-light-studio{padding:24px;border:1px solid var(--world-border);border-radius:18px;background:var(--world-surface);color:var(--world-text)}
.sw-light-studio h2{margin:8px 0;font:normal 28px/1.2 Georgia,serif}.sw-light-studio p{font-size:13px;line-height:1.6;color:var(--world-secondary);max-width:65ch}
.sw-light-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:20px 0}.sw-light-studio label{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;align-items:center}.sw-light-studio output{margin-left:auto;color:var(--world-accent)}.sw-light-studio input,.sw-light-studio select{width:100%;min-height:40px}
.sw-light-buttons{display:flex;gap:8px;flex-wrap:wrap}.sw-light-studio button,.sw-light-toolbar button{min-height:42px;border:1px solid var(--world-border);border-radius:9px;background:var(--world-elevated);color:var(--world-text);font:inherit;font-size:12px;font-weight:600;line-height:1.3;padding:9px 14px;cursor:pointer}.sw-light-studio button:disabled,.sw-light-toolbar button:disabled{opacity:.45;cursor:default}
.sw-light-keyboard{margin-top:18px}.sw-light-keyboard summary{cursor:pointer;font-size:13px}.sw-light-keyboard label{margin:12px 0}.sw-light-status{min-height:1.5em}
.sw-light-toolbar{position:fixed;z-index:10050;left:50%;bottom:20px;transform:translateX(-50%);width:min(780px,calc(100vw - 28px));padding:12px 16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--world-accent);border-radius:15px;background:var(--world-surface);color:var(--world-text);box-shadow:0 12px 40px #0007}.sw-light-toolbar[hidden]{display:none}.sw-light-toolbar>span{flex:1;min-width:180px;font-size:12px;line-height:1.5}.sw-light-toolbar [data-light-done]{background:var(--world-accent);color:#233b30}
.sw-light-anchor{position:relative}.sw-custom-light-strand{right:auto;bottom:auto;max-width:calc(100% - 16px);height:24px;z-index:4;contain:layout style}
.sw-custom-light-strand .sw-holiday-bulb:nth-child(even){display:none}
html[data-christmas-decorating="add"] .sw-light-target{outline:2px dashed #f8d88a!important;outline-offset:-3px;cursor:crosshair!important}
html[data-christmas-decorating="remove"] .sw-custom-light-strand{pointer-events:auto;cursor:pointer;outline:1px dashed #f8d88a;border-radius:4px}
html[data-seven-world="christmas-everglow"] .sw-holiday-bulb{box-shadow:0 0 3px 1px #fff9,0 0 var(--sw-glow-near,9px) 3px currentColor,0 0 var(--sw-glow-far,20px) 4px color-mix(in srgb,currentColor 48%,transparent);animation-name:sw-christmas-twinkle;animation-duration:4.5s}
html[data-christmas-twinkle="sparkle"] .sw-holiday-bulb{animation-duration:2.4s}
html[data-christmas-twinkle="still"] .sw-holiday-bulb{animation:none;opacity:1}
@keyframes sw-christmas-twinkle{0%,12%{opacity:.52;filter:brightness(.88)}65%,100%{opacity:1;filter:brightness(1.3)}}
@media(max-width:700px){.sw-light-options{grid-template-columns:1fr}.sw-light-studio{padding:18px}.sw-light-toolbar{bottom:calc(86px + env(safe-area-inset-bottom,0px));gap:7px;padding:12px}.sw-light-toolbar>span{flex-basis:100%}.sw-light-toolbar button{flex:1;padding-inline:7px}}
@media(prefers-reduced-motion:reduce){html[data-seven-world="christmas-everglow"] .sw-holiday-bulb{animation:none!important;opacity:1}}
@media print{.sw-light-studio,.sw-light-toolbar,.sw-custom-light-strand{display:none!important}}

.sw-halloween-studio .sw-light-options{grid-template-columns:repeat(4,minmax(0,1fr))}
.sw-light-toolbar label{display:grid;gap:4px;font-size:11px}.sw-light-toolbar select{min-height:38px;max-width:180px;font:inherit;color:var(--world-text);background:var(--world-elevated);border:1px solid var(--world-border);border-radius:8px;padding:7px}
.sw-custom-halloween-decoration{position:absolute;aspect-ratio:1;max-height:calc(100% - 8px);z-index:4;pointer-events:none;user-select:none;max-width:calc(100% - 16px)}
.sw-halloween-art{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 var(--sw-halloween-glow,9px) #ffab6370)}
[data-decoration-kind="ghost"]>.sw-halloween-art{filter:drop-shadow(0 0 var(--sw-halloween-glow,9px) #dec7ffbb)}
.sw-halloween-face{filter:drop-shadow(0 0 4px #ffef95) drop-shadow(0 0 var(--sw-halloween-glow,9px) #ffbf53)}
.sw-halloween-bob{transform-box:fill-box;transform-origin:center;animation:sw-friendly-float 4s ease-in-out infinite alternate}
[data-decoration-kind="pumpkin"] .sw-halloween-bob{animation-name:sw-pumpkin-nod;animation-duration:5s}
html[data-halloween-motion="sparkle"] .sw-halloween-bob{animation-duration:1.8s}
html[data-halloween-motion="sparkle"] .sw-halloween-star{animation:seven-twinkle 1.8s ease-in-out infinite alternate}
html[data-halloween-motion="still"] .sw-custom-halloween-decoration *{animation:none!important}
@keyframes sw-friendly-float{from{transform:translateY(1px) rotate(-2deg)}to{transform:translateY(-3px) rotate(2deg)}}
@keyframes sw-pumpkin-nod{from{transform:rotate(-2deg)}to{transform:rotate(2deg)}}
html[data-halloween-decorating="add"] .sw-light-target{outline:2px dashed #ffc17b!important;outline-offset:-3px;cursor:crosshair!important}
html[data-halloween-decorating="remove"] .sw-custom-halloween-decoration{pointer-events:auto;cursor:pointer;outline:1px dashed #ffc17b;border-radius:12px}
html[data-sw-motion="off"] .sw-custom-halloween-decoration *,html[data-sw-paused="true"] .sw-custom-halloween-decoration *{animation-play-state:paused!important}
@media(max-width:800px){.sw-halloween-studio .sw-light-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.sw-halloween-studio .sw-light-options{grid-template-columns:1fr}.sw-light-toolbar label{flex-basis:100%}.sw-light-toolbar select{max-width:none;width:100%}}
@media(prefers-reduced-motion:reduce){.sw-custom-halloween-decoration *{animation:none!important}}
@media print{.sw-custom-halloween-decoration{display:none!important}}

/* Brief responses to real interaction. This fixed, inert layer never changes a card's status paint or layout. */
.sw-interaction-field{position:fixed;inset:0;z-index:9998;overflow:hidden;pointer-events:none!important;contain:strict}
.sw-interaction-field *{pointer-events:none!important}
.sw-card-response{position:absolute;overflow:hidden;color:var(--world-accent);box-shadow:inset 0 0 16px -7px var(--world-accent)}
.sw-card-response svg{position:absolute;inset:0;overflow:visible}.sw-card-response rect{fill:none;stroke:currentColor;stroke-width:1.6;stroke-dasharray:12 88;animation:sw-border-chase 1.1s linear both}
.sw-response-wash{position:absolute;inset:0;opacity:.18;background:linear-gradient(105deg,transparent 30%,var(--world-highlight) 49%,transparent 65%);animation:sw-response-shine .85s ease-out both}
.sw-response-particle{position:absolute;width:24px;height:24px;margin:-12px;color:var(--sw-particle-color);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--sw-particle-color) 55%,transparent))}.sw-response-particle svg{display:block;width:100%;height:100%}
[data-sw-interaction-world="paper-leviathan"] .sw-card-response rect{stroke-dasharray:3 2 15 80;stroke-width:1.2}
[data-sw-interaction-world="bottled-weather"] .sw-response-wash{background:radial-gradient(ellipse at center,transparent 35%,var(--world-accent-secondary) 65%,transparent 70%);animation:sw-response-bubble .9s ease-out both}
[data-sw-interaction-world="midnight-laundromat"] .sw-card-response rect{stroke-dasharray:2 4;animation-duration:.65s}
[data-sw-interaction-world="amber-snailway"] .sw-card-response rect{stroke-dasharray:22 78;animation-duration:1.3s}
[data-sw-interaction-world="gravity-orchard"] .sw-response-wash{background:radial-gradient(ellipse at bottom,var(--world-accent-secondary),transparent 65%);animation:sw-response-orbit 1s ease-out both}
[data-sw-interaction-world="christmas-everglow"] .sw-card-response rect{stroke-dasharray:1 4;stroke-width:2.5;stroke-linecap:round;filter:drop-shadow(0 0 4px var(--world-accent))}
[data-sw-interaction-world="pumpkin-pajama-parade"] .sw-card-response{box-shadow:inset 0 0 22px -10px #ffc17b}
[data-sw-interaction-world="pumpkin-pajama-parade"] .sw-card-response rect{stroke-dasharray:4 3;stroke-linecap:round}
@keyframes sw-border-chase{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes sw-response-shine{from{translate:-70% 0}to{translate:70% 0}}
@keyframes sw-response-bubble{from{scale:.3;opacity:0}40%{opacity:.2}to{scale:1.5;opacity:0}}
@keyframes sw-response-orbit{from{translate:-25% 20%;opacity:0}40%{opacity:.2}to{translate:25% -20%;opacity:0}}
html[data-sw-motion="off"] .sw-interaction-field,html[data-sw-paused="true"] .sw-interaction-field{display:none}
@media(prefers-reduced-motion:reduce){.sw-interaction-field{display:none!important}}
@media print{.sw-interaction-field{display:none!important}}


/* Source: checkout-rows.css */
/* Scoped checkout presentation; other room and credit views retain their layouts. */
:is(#app-view,#today-summary-dialog) [data-checkout-row] { display:block!important; padding:0!important; margin-block:6px!important; border:1px solid var(--line,#d5dce0); border-radius:12px; background:var(--panel-bg,var(--panel,#fff)); overflow:visible; }
[data-checkout-row] .checkout-row-header { display:flex!important; flex-wrap:nowrap; align-items:center; gap:8px; padding:9px 12px; cursor:pointer; min-height:52px; }
[data-checkout-row] .checkout-row-header > :is(.summary-room-main,.room-card-head) { display:flex!important; flex-direction:row!important; align-items:center; flex-wrap:wrap; gap:6px 10px; margin:0!important; padding:0!important; min-width:0; flex:1 1 150px; border:0!important; }
[data-checkout-row] :is(.summary-room-number,.room-number) { font-size:1rem!important; margin:0!important; white-space:nowrap; }
[data-checkout-row] .summary-room-meta:empty { display:none; }
[data-checkout-row] .checkout-row-quick { display:flex; align-items:center; flex-wrap:wrap; gap:5px; flex:0 1 auto; }
[data-checkout-row] .checkout-row-quick :is(.summary-room-actions,.summary-room-turnover-actions,.room-card-actions,.arc-action-layout,.arc-action-group,.arc-actions) { display:flex!important; align-items:center; flex-wrap:wrap; gap:5px; margin:0!important; padding:0!important; border:0!important; }
[data-checkout-row] .checkout-row-quick .room-action-label { display:none; }
[data-checkout-row] .checkout-row-quick button { min-height:32px; padding:5px 8px; font-size:.75rem; }
[data-checkout-row] .checkout-row-toggle { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border:0; border-radius:8px; background:transparent; color:inherit; cursor:pointer; }
[data-checkout-row] .checkout-row-toggle:hover { background:color-mix(in srgb,currentColor 7%,transparent); }
[data-checkout-row] .checkout-row-toggle:focus-visible { outline:2px solid var(--accent,#347b73); outline-offset:2px; }
[data-checkout-row] .checkout-row-toggle span { transition:transform 180ms ease; }
[data-checkout-row].checkout-row-expanded .checkout-row-toggle span { transform:rotate(180deg); }
[data-checkout-row] .checkout-row-body { display:grid!important; grid-template-rows:0fr; visibility:hidden; transition:grid-template-rows 180ms ease,visibility 180ms; }
[data-checkout-row].checkout-row-expanded .checkout-row-body { grid-template-rows:1fr; visibility:visible; }
[data-checkout-row] .checkout-row-inner { min-height:0; overflow:hidden; }
[data-checkout-row].checkout-row-expanded .checkout-row-inner { padding:0 12px 10px; }
[data-checkout-row] .checkout-row-inner > .hk-work { margin:0; }
[data-checkout-row] .checkout-row-correction { border:0!important; padding-top:0!important; margin-top:8px!important; }
[data-checkout-row] .adaptive-room-card { padding:0; border:0; box-shadow:none; }
[data-checkout-row] .arc-head:empty { display:none; }
@media(max-width:600px) {
 [data-checkout-row] .checkout-row-header { gap:5px; padding:8px; }
 [data-checkout-row] .checkout-row-header > :is(.summary-room-main,.room-card-head) { flex-basis:88px; gap:4px; }
 [data-checkout-row] .checkout-row-quick { max-width:60%; }
 [data-checkout-row] .checkout-row-quick button { min-height:36px; font-size:.7rem; padding:5px 6px; }
 [data-checkout-row] .summary-room-prefix { display:none; }
}
@media(prefers-reduced-motion:reduce) { [data-checkout-row] :is(.checkout-row-body,.checkout-row-toggle span) { transition:none; } }
[data-checkout-row] .checkout-row-header .arc-operational-status { position:static!important; inset:auto!important; margin:0!important; max-width:none; flex:0 0 auto; }
[data-checkout-row] .checkout-row-header .summary-room-number { position:static!important; width:auto!important; flex:0 0 auto; }
:is(#app-view,#today-summary-dialog) .summary-room-list:has(> [data-checkout-row]) { display:flex!important; flex-direction:column; gap:0; }
:is(#app-view,#today-summary-dialog) [data-checkout-row] { min-height:0!important; height:auto!important; }
:is(#app-view,#today-summary-dialog) [data-checkout-row] { flex:0 0 auto!important; }
@media(max-width:600px) {
 [data-checkout-row] .checkout-row-quick { flex:1 1 45%; min-width:0; overflow-x:auto; flex-wrap:nowrap; scrollbar-width:thin; padding-block:3px; }
 [data-checkout-row] .checkout-row-quick :is(.summary-room-actions,.summary-room-turnover-actions,.room-card-actions,.arc-action-layout,.arc-action-group,.arc-actions) { flex-wrap:nowrap!important; flex-shrink:0; }
 [data-checkout-row] .checkout-row-quick button { flex-shrink:0; white-space:nowrap; }
}
:is(#app-view,#today-summary-dialog) [data-checkout-row] { border-radius:12px!important; }
[data-checkout-row] .checkout-row-quick { flex-wrap:nowrap; }
[data-checkout-row] .checkout-row-quick :is(.summary-room-actions,.summary-room-turnover-actions,.room-card-actions,.arc-action-layout,.arc-action-group,.arc-actions) { width:auto!important; flex-wrap:nowrap!important; }
@media(max-width:600px) {
 [data-checkout-row] .checkout-row-header > :is(.summary-room-main,.room-card-head) { flex:0 0 auto; flex-wrap:nowrap!important; max-width:48%; }
 [data-checkout-row] .checkout-row-header .summary-room-number { display:flex; align-items:center; gap:4px; }
 [data-checkout-row] .checkout-row-header .summary-room-number .bed-marker { margin:0; }
}
html[data-theme] :is(#dashboard-view,#remaining-checkouts-view,#today-summary-dialog) [data-checkout-row] { border-radius:12px!important; }
html[data-theme] :is(#dashboard-view,#remaining-checkouts-view,#today-summary-dialog) [data-checkout-row] .checkout-row-header > :is(.summary-room-main,.room-card-head) { flex-direction:row!important; align-items:center!important; }
[data-checkout-row] .checkout-row-header .cine-room-signals { display:none!important; }
/* Housekeeping progress stays visible even while secondary details are folded. */
html[data-theme] [data-checkout-row="true"] .checkout-work-status {position:static!important;inset:auto!important;display:inline-flex!important;align-items:center;font-size:.72rem!important;line-height:1.3;padding:3px 7px!important;max-width:100%;white-space:normal;}
@media(min-width:761px) {
 html[data-theme] [data-checkout-row="true"] .checkout-row-quick :is(.arc-action-group,.arc-actions) {flex:0 0 auto!important;}
 html[data-theme] [data-checkout-row="true"] .checkout-row-quick button {flex:0 0 auto!important;min-width:max-content!important;}
}
/* The legacy summary dialog used a three-column grid. Its ID-scoped rule must
   not override the shared checkout identity layout or overlap its status menu. */
#today-summary-dialog [data-checkout-row="true"] .checkout-row-header > .summary-room-main {display:flex!important;flex-wrap:wrap!important;align-items:center;gap:6px 10px;padding:0!important;min-width:0;}
/* The retained popup is narrow even on a wide desktop viewport. */
#today-summary-dialog [data-checkout-row="true"] .checkout-row-header {display:grid!important;grid-template-columns:minmax(0,1fr) 34px;gap:8px;padding:10px;}
#today-summary-dialog [data-checkout-row="true"] .checkout-row-header > .summary-room-main {grid-column:1;grid-row:1;max-width:100%!important;}
#today-summary-dialog [data-checkout-row="true"] .checkout-row-header .summary-room-number {font-size:1rem!important;min-width:max-content;width:auto!important;}
#today-summary-dialog [data-checkout-row="true"] .checkout-row-toggle {grid-column:2;grid-row:1;}
#today-summary-dialog [data-checkout-row="true"] .checkout-row-quick {grid-column:1/-1;grid-row:2;width:100%!important;max-width:100%!important;min-width:0;overflow:visible;flex-wrap:wrap!important;}
#today-summary-dialog [data-checkout-row="true"] .checkout-row-quick :is(.summary-room-actions,.summary-room-turnover-actions,.arc-action-layout,.arc-action-group,.arc-actions) {flex-wrap:wrap!important;flex:1 1 auto!important;min-width:0;max-width:100%;}
#today-summary-dialog [data-checkout-row="true"] .checkout-row-quick button {flex:1 1 auto!important;min-width:0!important;max-width:100%;white-space:normal;min-height:40px;}


/* Source: font-studio.css */
/* Reuse Theme Studio's existing priority layer so world-specific important
   typography rules cannot override an explicitly selected font. */
@layer theme-studio {
html[data-font-studio="on"] body {font-family:var(--fs-body)!important;font-weight:var(--fs-body-weight)!important;line-height:var(--fs-line-height);}
html[data-font-studio="on"] .view {font-size:calc(1rem * var(--fs-body-size));}
/* Today restores its scroll position when room rows refresh. Prevent the browser
   from applying a second, delayed anchor adjustment with the new font metrics. */
html[data-font-studio="on"] #dashboard-view {overflow-anchor:none;}
html[data-font-studio="on"] :is(.topbar h1,.section-heading h2,.panel-head h2,.panel-head h3),.fs-sample-heading {
 font-family:var(--fs-heading)!important;font-weight:var(--fs-heading-weight)!important;font-style:normal!important;letter-spacing:var(--fs-tracking)!important;color:var(--fs-color)!important;text-shadow:var(--fs-shadow)!important;line-height:1.3!important;overflow-wrap:anywhere;max-width:100%;transition:color 120ms ease,text-shadow var(--fs-duration) ease,background-color 180ms ease;
}
html[data-font-studio="on"] :is(.panel-head h2,.panel-head h3) {font-size:calc(1.1rem * var(--fs-heading-size))!important;}
html[data-font-studio="on"] :is(.topbar h1,.section-heading h2) {font-size:calc(1.55rem * var(--fs-heading-size))!important;}
html[data-font-studio="on"][data-theme][data-mode] :is(.summary-room-number,.summary-room-assigned,.summary-room-history-meta,.room-status-wrap,.manager-assignee,.coworkers-outs-assignee,.daily-arrival-priority,#global-message,[role="alert"],.room-number,.arc-number,.pr-number,.ab-number,.metric-value,.stat-value,.badge,.arc-status,.ops-primary-status,.hk-current,.room-badge,.inspection-action,.inspection-queue-row,.hotel-task-card,.room-list-row,table,button,input,textarea,select,option,.nav-item,.staff-name,.employee-name,time),.fs-operational,.fs-operational * {
 font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif!important;font-variant-numeric:tabular-nums;animation:none!important;text-shadow:none!important;-webkit-text-stroke:0!important;letter-spacing:normal!important;
}
}
.font-studio {background:var(--panel,#f7f5ef);color:var(--text,#172335);border:1px solid var(--border,#aab4bf);border-radius:var(--world-control,12px);margin:16px 0;box-shadow:0 12px 32px -24px #0008;position:relative;isolation:isolate;min-width:0;font-family:system-ui,sans-serif!important;font-size:14px;}
.font-studio>summary {padding:18px;display:flex;align-items:center;gap:14px;cursor:pointer;list-style:none;}
.font-studio summary::-webkit-details-marker{display:none;}
.font-studio summary:focus-visible,.font-studio :is(button,a):focus-visible {outline:3px solid var(--accent-ink,var(--accent));outline-offset:3px;}
.fs-monogram {font-family:Georgia,serif;font-size:29px;border:1px solid var(--border);border-radius:9px;display:grid;place-items:center;min-width:50px;height:50px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 13%,var(--panel)),var(--panel));}
.font-studio>summary strong{font-size:1.04rem;display:block;}
.font-studio>summary small{display:block;color:var(--secondary);margin-top:4px;}
.fs-summary-end{margin-left:auto;color:var(--secondary);font-size:12px;display:flex;gap:18px;align-items:center;}
.font-studio[open]>.fs-interior{border-top:1px solid var(--border);}
.fs-interior{padding:18px;}
.fs-toolbar{display:flex;gap:16px;align-items:end;justify-content:space-between;}
.font-studio label{display:grid;gap:6px;font-size:12px;font-weight:600;color:var(--text);min-width:0;margin:0;}
.font-studio :is(input,select){width:100%;min-width:0;min-height:38px;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--text);padding:7px 9px;box-sizing:border-box;font-size:13px;}
.font-studio input[type="checkbox"] {width:16px;height:16px;min-height:0;margin:0;accent-color:var(--accent);}
.font-studio input[type="range"]{padding:0;min-height:32px;accent-color:var(--accent);}
.font-studio input[type="color"]{padding:3px;width:100%;}
.font-studio button{min-height:38px;border:1px solid var(--border);border-radius:6px;padding:8px 11px;background:var(--panel);color:var(--text);cursor:pointer;font-size:12px;line-height:1.3;white-space:normal;}
.font-studio button:hover{background:color-mix(in srgb,var(--accent) 10%,var(--panel));border-color:var(--accent);}
.font-studio button:disabled{opacity:.55;cursor:default;}
.fs-actions{display:flex;flex-wrap:wrap;gap:6px;}
.font-studio [data-fs-action="surprise"],.font-studio [data-fs-action="keep"]{background:var(--accent-ink,var(--accent));color:var(--on-accent,#fff);border-color:transparent;}
.fs-status{color:var(--secondary);font-size:12px;margin:12px 0 18px;min-height:18px;}
.fs-workbench{display:grid;grid-template-columns:minmax(320px,1.25fr) minmax(265px,1fr);gap:22px;align-items:start;}
.fs-controls>details{border-top:1px solid var(--border);}
.fs-controls>details>summary{display:flex;gap:9px;align-items:center;cursor:pointer;padding:15px 0;list-style:none;color:var(--secondary);font-size:11px;}
.fs-controls>details>summary strong{color:var(--text);font-size:13px;}
.fs-controls>details>summary>span{margin-left:auto;}
.fs-controls>details>summary::after{content:'+';font-size:18px;}
.fs-controls>details[open]>summary::after{content:'−';}
.fs-section-body{padding:0 0 18px;}
.fs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:12px;}
.fs-grid>label:last-child:nth-child(odd){grid-column:1/-1;}
.fs-browser-bar{display:flex;gap:12px;margin:14px 0 12px;}
.fs-search{flex:1;}
.fs-fonts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:210px;}
.fs-font-tile{border:1px solid var(--border);border-radius:8px;display:flex;min-width:0;overflow:hidden;background:color-mix(in srgb,var(--panel) 94%,var(--accent));}
.fs-font-tile>button:first-child{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:10px;}
.fs-font-tile strong{display:block;font-size:17px;line-height:1.4;overflow-wrap:anywhere;font-weight:400;}
.fs-font-tile span{display:block;font-size:10px;color:var(--secondary);margin-top:7px;font-family:system-ui;}
.fs-font-tile>button:last-child{border:0;background:transparent;padding:7px;font-size:18px;width:34px;align-self:stretch;}
.fs-font-tile [aria-pressed="true"]{color:var(--accent-ink,var(--accent));}
.fs-pagination{display:flex;gap:8px;justify-content:space-between;align-items:center;margin-top:12px;font-size:11px;color:var(--secondary);}
.fs-effect-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:18px;}
.fs-effect-grid>label,.font-studio .fs-check{display:flex;align-items:center;gap:8px;min-height:36px;font-weight:400;}
.fs-caption{font-size:12px;line-height:1.6;color:var(--secondary);margin:0 0 12px;}
.fs-range{display:flex;gap:9px;align-items:center;}
.fs-range output{min-width:35px;font-variant-numeric:tabular-nums;color:var(--secondary);}
.fs-preview-column{position:sticky;top:10px;min-width:0;}
.fs-preview-top{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:12px;}
.fs-preview-top>span{font-size:10px;letter-spacing:.16em;font-weight:700;color:var(--secondary);}
.fs-preview-top label{font-size:10px;}
.fs-specimen{background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 94%,var(--accent)),var(--panel));border:1px solid var(--border);border-radius:12px;padding:clamp(18px,2.5vw,32px);box-shadow:inset 0 1px #ffffff20,0 18px 36px -30px #0009;position:relative;overflow:hidden;}
.fs-kicker{font:600 10px system-ui;letter-spacing:.15em;color:var(--secondary);margin:0 0 28px;}
.fs-specimen h2{font-size:calc(clamp(28px,3.3vw,43px) * var(--fs-heading-size));margin:0 0 14px;min-height:2.6em;}
.fs-sample-decoration{font-family:var(--fs-decorative);font-size:20px;color:var(--fs-color2);line-height:1.5;margin:0 0 25px;}
.fs-specimen-rule{width:45px;height:2px;background:var(--fs-color2);margin-bottom:28px;}
.fs-specimen h3{font-size:calc(20px * var(--fs-heading-size));margin:0 0 12px;}
.fs-sample-body{font:var(--fs-body-weight) calc(15px * var(--fs-body-size))/var(--fs-line-height) var(--fs-body);margin:0 0 24px;color:var(--text);}
.fs-sample-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px;}
.fs-sample-card h4{font-size:calc(15px * var(--fs-heading-size));margin:0 0 16px;}
.fs-operational{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font:13px/1.6 system-ui;color:var(--text);}
.fs-room{font-size:26px;margin-right:auto;}
.fs-badge{font-size:10px;border:1px solid var(--border);padding:2px 6px;border-radius:4px;}
.fs-sample-actions{justify-content:space-between;}
.fs-sample-actions button:disabled{opacity:1;background:var(--accent-ink,var(--accent));color:var(--on-accent,#fff);}
.fs-specimen-footer{border-top:1px solid var(--border);padding-top:20px;margin-top:28px;display:flex;flex-wrap:wrap;gap:12px;font:11px system-ui;color:var(--secondary);}
.fs-specimen-footer>span:first-child{font-family:var(--fs-decorative);font-size:20px;color:var(--fs-color);}
.fs-preview-column>.fs-caption{margin-top:12px;}
.fs-license{font-size:11px;color:var(--accent-ink,var(--accent));}
.fs-draft{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));border:1px solid var(--border);border-radius:8px;margin-bottom:18px;font-size:12px;}
.fs-draft>span{flex:1;}
.fs-saved>div{display:flex;gap:5px;margin-top:8px;}.fs-saved>div>button:first-child{flex:1;text-align:left;}
/* Effects only target the page title and specimen headings, never task data. */
@layer theme-studio {
html[data-font-studio="on"][data-font-effects~="outline"] .topbar h1,.fs-specimen[data-font-effects~="outline"] .fs-sample-heading{-webkit-text-stroke:.3px var(--fs-glow);}
html[data-font-studio="on"]:is([data-font-effects~="gradient"],[data-font-effects~="holographic"],[data-font-effects~="metallic"]) .topbar h1,.fs-specimen:is([data-font-effects~="gradient"],[data-font-effects~="holographic"],[data-font-effects~="metallic"]) .fs-sample-heading{background:linear-gradient(110deg,var(--fs-color) 10%,var(--fs-color2) 45%,var(--fs-color) 60%,var(--fs-color2) 90%);background-clip:text;-webkit-background-clip:text;color:transparent!important;background-size:200% 100%;}
html[data-font-studio="on"][data-font-effects~="metallic"] .topbar h1,.fs-specimen[data-font-effects~="metallic"] .fs-sample-heading{background-image:linear-gradient(180deg,var(--fs-color) 5%,var(--fs-color2) 42%,var(--fs-color) 45%,var(--fs-color2) 48%,var(--fs-color) 95%);}
}
html[data-font-studio="on"][data-font-effects~="shimmer"] .topbar h1,.fs-specimen[data-font-effects~="shimmer"] .fs-sample-heading{animation:fs-shimmer 22s ease-in-out infinite;}
html[data-font-studio="on"][data-font-effects~="breathe"] .topbar h1,.fs-specimen[data-font-effects~="breathe"] .fs-sample-heading{animation:fs-breathe 18s ease-in-out infinite;}
html[data-font-studio="on"][data-font-effects~="glitch"] .topbar h1,.fs-specimen[data-font-effects~="glitch"] .fs-sample-heading{animation:fs-glitch 31s steps(1) infinite;}
html[data-font-studio="on"][data-font-effects~="pixel"] .topbar h1,.fs-specimen[data-font-effects~="pixel"] .fs-sample-heading{animation:fs-pixel .7s steps(5) 1;}
html[data-font-studio="on"][data-font-effects~="candle"] .topbar h1,.fs-specimen[data-font-effects~="candle"] .fs-sample-heading{animation:fs-candle 19s ease-in-out infinite;}
.fs-specimen:is([data-font-effects~="sparkle"],[data-font-effects~="accents"])::after{content:'✦ · ✧';position:absolute;right:15px;top:62px;font-size:14px;letter-spacing:10px;opacity:calc(.15 + var(--fs-intensity)*.35);color:var(--fs-color2);pointer-events:none;animation:fs-sparks 17s ease-in-out infinite;}
.fs-specimen[data-font-accent="snow"]::after{content:'❄ · ❅';}.fs-specimen[data-font-accent="pixels"]::after{content:'▪ · ▪';}.fs-specimen[data-font-accent="leaves"]::after{content:'❧ · ❧';}.fs-specimen[data-font-accent="signal"]::after{content:'· ┊ ·';}
html[data-font-studio="on"]:is([data-font-effects~="sparkle"],[data-font-effects~="accents"]) .topbar h1::after{content:' ✧';display:inline-block;font-size:.5em;color:var(--fs-color2);pointer-events:none;animation:fs-sparks 17s ease-in-out infinite;}
@keyframes fs-shimmer{0%,83%,100%{background-position:100% 50%;filter:brightness(1);}92%{background-position:0% 50%;filter:brightness(calc(1 + var(--fs-intensity)*.14));}}
@keyframes fs-breathe{0%,100%{filter:brightness(1);}50%{filter:brightness(calc(1 + var(--fs-intensity)*.12));}}
@keyframes fs-glitch{0%,94%,95%,100%{transform:none;}94.3%{transform:translateX(.5px);text-shadow:1px 0 var(--fs-color2);}94.6%{transform:translateX(-.5px);}}
@keyframes fs-pixel{from{filter:contrast(.7);opacity:.8;}to{filter:none;opacity:1;}}
@keyframes fs-candle{0%,80%,100%{filter:brightness(1);}82%,85%{filter:brightness(calc(1 + var(--fs-intensity)*.15));}83%{filter:brightness(.97);}}
@keyframes fs-sparks{0%,65%,100%{opacity:.12;transform:translateY(0);}82%{opacity:.55;transform:translateY(-3px);}}
[data-font-atmosphere="dream"] .fs-sample-heading,html[data-font-atmosphere="dream"] .topbar h1{animation-duration:32s;}
[data-font-atmosphere="minimal"] .fs-sample-heading,html[data-font-atmosphere="minimal"] .topbar h1,[data-font-atmosphere="minimal"]::after,html[data-font-atmosphere="minimal"] .topbar h1::after{animation:none!important;filter:none!important;transform:none!important;}
html[data-font-atmosphere="minimal"] .topbar h1::after,.fs-specimen[data-font-atmosphere="minimal"]::after{display:none;}
html[data-font-hidden="true"] .topbar h1,html[data-font-hidden="true"] .fs-sample-heading,html[data-font-hidden="true"] .fs-specimen::after{animation-play-state:paused!important;}
@media(max-width:1000px){.fs-workbench{grid-template-columns:minmax(0,1fr);}.fs-preview-column{position:static;grid-row:1;}.fs-specimen{padding:20px;}.fs-specimen h2{min-height:0;}.fs-sample-card{margin-top:14px;}.fs-toolbar{align-items:stretch;flex-direction:column;}.fs-preview-top>label{max-width:160px;}}
@media(max-width:520px){.font-studio>summary{padding:12px;gap:10px;}.fs-summary-end{font-size:10px;gap:5px;}.fs-monogram{min-width:40px;height:44px;font-size:25px;}.font-studio>summary strong{font-size:14px;}.font-studio>summary small{font-size:11px;}.fs-interior{padding:12px;}.fs-controls>details>summary>span{display:none;}.fs-browser-bar{flex-direction:column;}.fs-effect-grid{grid-template-columns:1fr;}.fs-actions button{flex:1;min-height:44px;}.fs-font-tile>button:last-child{min-width:40px;}.font-studio :is(input,select){min-height:42px;}.fs-preview-top>span{font-size:9px;}.fs-fonts{grid-template-columns:1fr;}.fs-pagination{font-size:10px;}}
@media(prefers-reduced-motion:reduce){html[data-font-studio] .topbar h1,html[data-font-studio] .topbar h1::after,.fs-sample-heading,.fs-specimen::after{animation:none!important;transition:none!important;filter:none!important;transform:none!important;}}
@media(forced-colors:active){html[data-font-studio] .topbar h1,.fs-sample-heading{color:CanvasText!important;background:none!important;text-shadow:none!important;-webkit-text-stroke:0!important;}}

html[data-font-studio="on"] .brand>div>span{font-family:var(--fs-decorative);letter-spacing:.03em;font-size:12px;line-height:1.5;text-transform:none;}
.fs-specimen::after,html[data-font-studio="on"] .topbar h1::after{transition:opacity var(--fs-duration) ease;}

@layer theme-studio {
html[data-font-studio="on"][data-theme][data-mode] .housekeeper-greeting .greeting-name {font-family:system-ui,sans-serif!important;color:var(--fs-color)!important;text-shadow:none!important;animation:none!important;}

}


/* Source: enchanted-castle-previous.css */
/* Recovered from b9c137133fc561a5e5cafd36e3411cdd9a7fde52. Mechanical identity/property/keyframe isolation only. */
/* One story, two times of day. Browser palette overrides leave the shared
   catalog's identity/allowlist and existing ornamental geometry intact. */
@property --castle-previous-foundation { syntax:'<color>'; inherits:true; initial-value:#f4e7c8; }
@property --castle-previous-paper { syntax:'<color>'; inherits:true; initial-value:#fff3d8; }
@property --castle-previous-raised { syntax:'<color>'; inherits:true; initial-value:#f8f2e6; }
@property --castle-previous-type { syntax:'<color>'; inherits:true; initial-value:#4a332a; }

@media screen {
  html[data-theme='enchanted-castle-previous'][data-world='enchanted-castle'][data-theme][data-mode][data-cinematic],
  .world-preview[data-world='enchanted-castle-previous'][data-mode][data-mode],
  .world-choice[data-world-id='enchanted-castle-previous'][data-mode][data-mode] {
    --castle-previous-foundation:#f4e7c8; --castle-previous-paper:#fff3d8; --castle-previous-raised:#f8f2e6; --castle-previous-type:#4a332a;
    --castle-previous-blue:#4f79a7; --castle-previous-royal:#315b96; --castle-previous-gold:#d7a936; --castle-previous-candle:#f2c76e;
    --castle-previous-rose:#a52332; --castle-previous-walnut:#4a332a; --castle-previous-frame:#4f79a7;
    --castle-previous-contact:#315b9633; --castle-previous-reflection:#fff5dba6;
    --world-background:var(--castle-previous-foundation); --world-deep:#e4d4b6;
    --world-surface:var(--castle-previous-paper); --world-elevated:var(--castle-previous-raised); --world-text:var(--castle-previous-type);
    --world-secondary:#665247; --world-accent:#315b96; --world-accent-secondary:#6a5329;
    --world-border:#8294a2; --world-highlight:#755614; --world-danger:#a52332; --world-success:#46603b;
    --world-on-accent:#fff3d8; --world-glow:#d7a93624;
    --cine-border:var(--castle-previous-frame); --cine-left-ink:var(--castle-previous-blue); --cine-left:3px;
    --cine-material:linear-gradient(116deg,var(--castle-previous-reflection),transparent 34% 78%,#d7a93612),var(--castle-previous-paper);
    --cine-shadow:0 18px 36px -23px #315b9666,0 4px 9px -5px #4a332a55,inset 0 0 0 5px #d7a93614;
    --room-stripped:#4a332a; --room-stripped-fill:#ebdabb;
    --room-bed:#315b96; --room-bed-fill:#fff3d8;
    --room-finished:#fff3d8; --room-finished-fill:#315b96;
    --room-amber:#4a332a; --room-amber-fill:#f2c76e;
    --room-privacy:#f4e7c8; --room-privacy-fill:#641f2b;
    --room-inspect:#172a52; --room-inspect-fill:#eabd4d;
    --cine-flow-ink:#d7a936; --cine-flow-secondary:#4f79a7;
    transition:--castle-previous-foundation 1.5s ease,--castle-previous-paper 1.5s ease,--castle-previous-raised 1.5s ease,--castle-previous-type 1.5s ease;
  }
  html[data-theme='enchanted-castle-previous'][data-world='enchanted-castle'][data-theme][data-mode='dark'][data-cinematic],
  .world-preview[data-world='enchanted-castle-previous'][data-mode='dark'][data-mode],
  .world-choice[data-world-id='enchanted-castle-previous'][data-mode='dark'][data-mode] {
    --castle-previous-foundation:#172a52; --castle-previous-paper:#1d355c; --castle-previous-raised:#263e63; --castle-previous-type:#f4e7c8;
    --castle-previous-frame:#bc9440; --castle-previous-contact:#060e22b3; --castle-previous-reflection:#f2c76e12; --castle-previous-walnut:#3b2925;
    --world-deep:#0c1832; --world-secondary:#d6c9b1; --world-accent:#f2c76e; --world-accent-secondary:#d7b67b;
    --world-border:#a89061; --world-highlight:#ffe2a0; --world-danger:#ffb6b6; --world-success:#b4d69e;
    --world-on-accent:#172a52; --world-glow:#d7a93630;
    --cine-left-ink:#3b2925; --cine-left:5px;
    --cine-material:radial-gradient(ellipse at 90% 0,#f2c76e12,transparent 54%),linear-gradient(135deg,var(--castle-previous-paper),#172a52);
    --cine-shadow:0 30px 52px -18px #060e22bb,0 6px 14px -5px #3b2925,inset 0 0 0 5px #d7a93616,inset 0 1px #f2c76e55;
    --room-stripped:#172a52; --room-stripped-fill:#cebea0;
    --room-bed:#f4dfae; --room-bed-fill:#315b96;
    --room-finished:#172a52; --room-finished-fill:#d7a936;
    --room-amber:#f2c76e; --room-amber-fill:#641f2b;
    --room-privacy:#e3c785; --room-privacy-fill:#481a26;
    --room-inspect:#172a52; --room-inspect-fill:#f2c76e;
    --cine-flow-ink:#f2c76e; --cine-flow-secondary:#a52332;
  }

  /* Abstract plaster, timber, rooflines and arches. The larger night
     architecture is revealed by light; it never contains interactive content. */
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .world-base {
    background:radial-gradient(ellipse at 26% 12%,#fff9e855,transparent 62%),linear-gradient(140deg,var(--castle-previous-foundation),var(--world-deep));
    animation-name:cinematic-castle-candle;
  }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='dark'] .world-base { background:radial-gradient(ellipse at 75% 55%,#315b9629,transparent 65%),linear-gradient(140deg,#172a52,#0c1832); }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] :is(.world-horizon,.world-orbits,.world-particles-near) { opacity:.04; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .world-particles { opacity:.22; background-image:radial-gradient(circle,#d7a936 0 .8px,transparent 1.6px); background-size:211px 277px; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .world-particles-mid { opacity:.18; background:radial-gradient(circle,#f2c76e 0 1px,transparent 2px) 0 0 / 317px 239px; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .world-atmosphere[data-event='candle-rose'] .world-rare { background:radial-gradient(ellipse at center,#f2c76e20,transparent 60%); }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .castle-village { display:flex; gap:3vw; align-items:flex-end; padding:0 4vw 8vh; opacity:.2; transition:opacity 1.5s,transform 1.5s; }
  .castle-village i { position:relative; width:22%; height:46%; border:1px solid #315b96; background:linear-gradient(90deg,transparent 48%,#4f79a726 49% 50%,transparent 51%),linear-gradient(0deg,transparent 55%,#4a332a29 55.5% 56%,transparent 56.5%),linear-gradient(140deg,#fff3d8,transparent); box-shadow:11px 12px 0 #315b960b; }
  .castle-village i:nth-child(2n) { height:68%; }
  .castle-village i:nth-child(3) { height:38%; }
  .castle-village i::before { content:''; position:absolute; inset:-48px -12px auto; height:48px; background:#4f79a738; clip-path:polygon(0 100%,50% 0,100% 100%,96% 100%,50% 8%,4% 100%); }
  .castle-village i::after { content:''; position:absolute; top:18%; left:27%; width:46%; height:25%; border:2px solid #315b9660; border-radius:50% 50% 0 0; background:linear-gradient(90deg,transparent 48%,#4a332a38 49% 51%,transparent 52%); }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='dark'] .castle-village { opacity:0; transform:translateY(7vh) scale(1.15); }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .castle-arches { padding:20vh 9vw 0; opacity:.1; transition:opacity 1.5s,padding 1.5s; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .castle-arches i { border-color:#315b9640; border-width:9px; box-shadow:14px 8px 24px #315b9626; transition:border-color 1.5s,border-width 1.5s,box-shadow 1.5s; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='dark'] .castle-arches { padding:0; opacity:.52; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='dark'] .castle-arches i { height:132%; width:31%; border-width:22px; border-color:#0b1839; box-shadow:inset 1px 0 #d7a93626,25px 20px 42px #050e23; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .castle-sunlight, html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .castle-candelight { transition:opacity 1.5s; }
  .castle-sunlight i,.castle-candelight i { position:absolute; inset:-30%; background:radial-gradient(ellipse at 25% 20%,#fff3d8bb,transparent 45%); animation:previous-castle-sun-drift 43s ease-in-out infinite alternate; }
  .castle-sunlight i:nth-child(2) { background:radial-gradient(ellipse at 70% 40%,#f2c76e3d,transparent 42%); animation-duration:59s; animation-delay:-17s; }
  .castle-sunlight i:nth-child(3) { background:linear-gradient(114deg,transparent 35%,#fff9e44d 44%,transparent 53%); animation-duration:71s; animation-delay:-34s; }
  .castle-candelight { opacity:0; }
  .castle-candelight i { background:radial-gradient(ellipse at 15% 65%,#d7a93630,transparent 33%); animation:previous-castle-candle-drift 17s ease-in-out infinite alternate; }
  .castle-candelight i:nth-child(2) { background:radial-gradient(ellipse at 85% 35%,#f2c76e36,transparent 30%); animation-duration:23s; animation-delay:-9s; }
  .castle-candelight i:nth-child(3) { background:radial-gradient(ellipse at 55% 0,#d7a93624,transparent 32%); animation-duration:31s; animation-delay:-18s; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='dark'] .castle-sunlight { opacity:0; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='dark'] .castle-candelight { opacity:1; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .castle-candle { background:radial-gradient(ellipse 340px 460px at var(--react-x) var(--react-y),#f2c76e38,transparent 72%); }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .cinema-atmosphere::after { content:''; position:absolute; inset:0; pointer-events:none; opacity:0; background:radial-gradient(circle at calc(var(--react-x) - 65px) calc(var(--react-y) - 32px),#f2c76e 0 1px,transparent 2px),radial-gradient(circle at calc(var(--react-x) + 48px) calc(var(--react-y) - 65px),#fff3d8 0 1px,transparent 2px),radial-gradient(circle at calc(var(--react-x) + 93px) calc(var(--react-y) + 26px),#d7a936 0 1px,transparent 2px); transition:opacity .8s; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-decorative-animations='on'] .cinema-atmosphere.is-reacting::after { opacity:.65; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .castle-window { background:repeating-linear-gradient(113deg,transparent 0 12%,#fff3d870 13% 19%,transparent 20% 28%); animation-duration:97s; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='dark'] .castle-window { background:linear-gradient(113deg,transparent 48%,#f2c76e30 49% 60%,transparent 68%); animation-duration:137s; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .castle-rose { stroke:#a52332; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .castle-rose circle { stroke:#d7a936; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='light'] .castle-rose { animation:previous-castle-day-rose 191s linear infinite; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='light'] .castle-rose path { display:none; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='light'] .castle-rose circle { r:2px; stroke:#a52332; stroke-dasharray:none; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='dark'] .castle-rose circle { transform-origin:0 0; animation:previous-castle-rose-spiral 109s linear infinite; }

  /* A rare, twelve-second ballroom reveal within a nearly three-minute loop. */
  .castle-ballroom { display:flex; justify-content:space-around; gap:4vw; padding:3vh 5vw 0; opacity:0; }
  .castle-ballroom i { height:120%; width:23%; border:2px solid #f2c76e; border-radius:50% 50% 0 0 / 28% 28% 0 0; box-shadow:0 0 55px #d7a93629,inset 0 0 65px #f2c76e26; background:linear-gradient(90deg,transparent 49%,#d7a93670 50%,transparent 51%),repeating-linear-gradient(0deg,transparent 0 175px,#d7a93650 176px 178px); }
  .castle-ballroom b { position:absolute; inset:0; background:radial-gradient(ellipse at 60% 0,#f2c76e38,transparent 70%),radial-gradient(circle,#ffe6b0 0 1px,transparent 2px) 0 0 / 153px 197px; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='dark'] .castle-ballroom { animation:previous-castle-ballroom-reveal 173s ease-in-out infinite; }

  /* Preserve the original card silhouette; material, rails and reflections
     carry the transformation without clipping menus or moving controls. */
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode] #app-view .view :is(.panel,.metric,.room-card,.employee-bubble,.prod-score-card,.summary-card,.metric-card)::before { outline-color:#d7a93666; transition:border-color 1.4s,box-shadow .5s,filter .5s; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode] #app-view .view .panel > .panel-head { background:linear-gradient(100deg,#4f79a724,transparent 48%,#d7a93614) !important; border-bottom:1px solid var(--castle-previous-frame) !important; box-shadow:inset 3px 0 var(--castle-previous-blue); }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode='dark'] #app-view .view .panel > .panel-head { background:linear-gradient(100deg,#315b9660,transparent 60%,#d7a93616) !important; box-shadow:inset 3px 0 #d7a936; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] #app-view .view :is(.panel,.metric,.room-card)::after { color:#d7a936; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within,.selected,[aria-selected='true']) {
    --cine-material:radial-gradient(ellipse at 18% 0,var(--castle-previous-reflection),transparent 65%),var(--castle-previous-paper);
    --cine-shadow:0 24px 46px -18px var(--castle-previous-contact),inset 0 0 0 2px var(--castle-previous-frame),inset 0 0 32px -14px #d7a93680;
  }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-decorative-animations='on'] #app-view .view :is(.panel,.metric,.room-card):hover::after { text-shadow:0 0 8px #f2c76e66; animation:previous-castle-gold-catch 2.6s ease-in-out infinite; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] :is(.room-number,.summary-room-number,.room-list-number) { color:var(--world-accent); text-shadow:none; border-bottom:1px solid #d7a93688; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='light'] :is(.housekeeper-greeting,.topbar h1) { color:#315b96 !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .housekeeper-greeting em { color:var(--world-accent) !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .housekeeper-greeting { background:radial-gradient(ellipse at center,#f2c76e18,transparent 70%) !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode] :is(.sidebar,.topbar,#mobile-nav-sheet,.notification-panel) { background:linear-gradient(120deg,#4f79a715,transparent 58%,#d7a93613),var(--castle-previous-paper) !important; border-color:var(--castle-previous-frame) !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode='dark'] :is(.sidebar,.topbar,#mobile-nav-sheet,.notification-panel) { background:linear-gradient(120deg,#3b292560,transparent 48%,#d7a9360d),#0c1832 !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .topbar { box-shadow:inset 0 -2px #d7a93670 !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .topbar::before { pointer-events:none; background:repeating-linear-gradient(90deg,transparent 0 55px,#4f79a715 56px 57px,transparent 58px 92px); opacity:.8; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='dark'] .topbar::before { background:repeating-radial-gradient(ellipse at 65% 120%,transparent 0 70px,#d7a93616 71px 72px,transparent 73px 125px); }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode] :is(.nav-item,.mobile-nav-sheet-item) { border-radius:4px 12px 3px 3px; border-left:2px solid var(--castle-previous-blue); color:var(--world-text); }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode] :is(.nav-item.active,.mobile-nav-sheet-item.active,[aria-selected='true']) { background:linear-gradient(110deg,#4f79a718,transparent),var(--castle-previous-raised) !important; color:var(--world-accent) !important; box-shadow:inset 3px 0 var(--castle-previous-blue),inset 0 -1px #d7a936 !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode='dark'] :is(.nav-item.active,.mobile-nav-sheet-item.active,[aria-selected='true']) { background:linear-gradient(110deg,#315b96,#172a52) !important; box-shadow:inset 3px 0 #d7a936,inset 0 -1px #d7a936 !important; color:#f4e7c8 !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode] :is(.button,.notification-button,:where(#mobile-nav-select)) { color:var(--world-text) !important; background:var(--castle-previous-raised) !important; border-color:var(--castle-previous-frame) !important; box-shadow:inset 0 1px #d7a93680 !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode] .button.primary { background:linear-gradient(135deg,#315b96,#274d81) !important; color:#fff3d8 !important; border-color:#d7a936 !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode='dark'] .button:not(.primary) { background:linear-gradient(120deg,#3b2925,#412631) !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode] .button:hover { box-shadow:inset 0 2px #f2c76e,inset 0 10px 18px -15px #f2c76e !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .button { position:relative; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-decorative-animations='on'] .button:hover::after { content:''; position:absolute; top:1px; left:9%; width:82%; height:2px; pointer-events:none; background:linear-gradient(90deg,transparent,#fff3d8,#f2c76e,transparent); transform-origin:left; animation:previous-castle-button-reflection .85s ease both; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme] :is(input,select,textarea):focus-visible { outline-color:var(--castle-previous-frame) !important; box-shadow:0 0 0 4px #d7a93633 !important; }
  [data-transition='enchanted-castle'] .cinema-nav-route path { stroke:#f2c76e; stroke-width:3; filter:drop-shadow(0 0 3px #d7a936); }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] body > .cinema-transition { position:fixed; inset:0; overflow:hidden; z-index:5; pointer-events:none; contain:strict; }

  /* Same status labels, single-status resolver and action handlers. */
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .cine-workflow[data-workflow='stripped'] { --signal-ink:var(--room-stripped); --signal-fill:var(--room-stripped-fill); }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .cine-workflow[data-workflow='bed-made'] { --signal-ink:var(--room-bed); --signal-fill:var(--room-bed-fill); border-color:#b48b2d !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .cine-workflow[data-workflow='finished'] { --signal-ink:var(--room-finished); --signal-fill:var(--room-finished-fill); border-color:#d7a936 !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] :is(.status-badge,.checkout-turnover-badge).stripped { background:var(--room-stripped-fill) !important; color:var(--room-stripped) !important; border-color:#aa8a51 !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] :is(.status-badge,.checkout-turnover-badge).bed-made { background:var(--room-bed-fill) !important; color:var(--room-bed) !important; border-color:#d7a936 !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] :is(.status-badge,.checkout-turnover-badge).finished { background:var(--room-finished-fill) !important; color:var(--room-finished) !important; border-color:#d7a936 !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .status-badge.late-checkout { background:var(--room-amber-fill) !important; color:var(--room-amber) !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='light'] .cine-transition-fx[data-effect='finished'] .cine-fx-rose { display:none; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-mode='dark'] .cine-transition-fx[data-effect='finished'] .cine-fx-particles i:nth-child(5) { background:#a52332; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .cine-transition-fx[data-effect='finished'] .cine-fx-route { stroke:#d7a936; filter:drop-shadow(0 0 2px #f2c76e); }

  .castle-time-wash { opacity:0; pointer-events:none; }
  html[data-theme='enchanted-castle-previous'][data-castle-passage='nightfall'] .castle-time-wash { background:linear-gradient(115deg,#f2c76e28,transparent 50%,#0c18324d); animation:previous-castle-time-night 1.7s ease both; }
  html[data-theme='enchanted-castle-previous'][data-castle-passage='daybreak'] .castle-time-wash { background:linear-gradient(115deg,#fff3d880,transparent 65%); animation:previous-castle-time-day 1.7s ease both; }
  @media (max-width:700px) {
    html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-theme][data-mode] .sidebar { background:transparent !important; border:0 !important; }
    .castle-village { gap:8vw; }
    .castle-village i { min-width:25%; }
    .castle-village i:nth-child(n+4) { display:none; }
  }
}

@keyframes previous-castle-sun-drift { from { transform:translate(-6%,-3%) rotate(-5deg); } to { transform:translate(12%,8%) rotate(4deg); } }
@keyframes previous-castle-candle-drift { 0%,100% { transform:translate(-3%,2%) scale(.96); opacity:.56; } 43% { opacity:.9; } 72% { transform:translate(5%,-4%) scale(1.04); opacity:.72; } }
@keyframes previous-castle-gold-catch { 50% { filter:brightness(1.3); } }
@keyframes previous-castle-button-reflection { 0% { transform:scaleX(.05); opacity:0; } 45% { opacity:.85; } 100% { transform:scaleX(1); opacity:0; } }
@keyframes previous-castle-day-rose { 0%,91%,96%,100% { opacity:0; } 93%,94% { opacity:.8; } }
@keyframes previous-castle-rose-spiral { 0%,72% { transform:rotate(-90deg) scale(1.4); } 80%,87% { transform:rotate(80deg) scale(.7); } 100% { transform:rotate(160deg) scale(1.6); } }
@keyframes previous-castle-ballroom-reveal { 0%,84%,98%,100% { opacity:0; transform:translateX(-2%); } 88% { opacity:.1; } 91%,93% { opacity:.4; transform:translateX(1%); } 96% { opacity:.12; transform:translateX(3%); } }
@keyframes previous-castle-time-night { 0% { opacity:0; transform:translateX(-4%); } 35% { opacity:1; } 100% { opacity:0; transform:translateX(4%); } }
@keyframes previous-castle-time-day { 0% { opacity:0; transform:translateX(-9%); } 50% { opacity:.9; } 100% { opacity:0; transform:translateX(9%); } }

/* Respect both motion channels, reduced motion, hidden pages and print. */
@layer world-motion-accessibility {
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-background-animations='off'] { transition:none !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-background-animations='off'] :is(.castle-time-wash,.castle-ballroom,.castle-rose) { display:none !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'][data-decorative-animations='off'] #app-view .view :is(.panel,.metric,.room-card)::after { animation:none !important; }
  html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'].world-focus-mode :is(.castle-ballroom,.castle-rose) { opacity:0 !important; }
  @media (prefers-reduced-motion:reduce) {
    html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] { transition:none !important; }
    html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] .cinema-atmosphere * { animation:none !important; transition:none !important; }
    html[data-theme='enchanted-castle-previous'][data-cinematic='enchanted-castle'] :is(.castle-time-wash,.castle-ballroom,.castle-rose) { display:none !important; }
  }
}

/* Compatibility with the current material adapter. These are the original
   opaque paper/ballroom material and shadows, rather than the later glass. */
@media screen {
 html[data-theme='enchanted-castle-previous'][data-cinematic] {
  --surface-card:var(--cine-material); --surface-panel:var(--cine-material);
  --surface-dense:var(--cine-material); --surface-elevated:var(--castle-previous-raised);
  --surface-modal:var(--castle-previous-paper); --surface-control:var(--castle-previous-paper);
  --surface-subtle:transparent; --surface-edge:var(--cine-border); --surface-shadow:var(--cine-shadow);
  --surface-ink:var(--world-text); --surface-secondary:var(--world-secondary); --surface-blur:0px;
  --theme-badge-radius:48% 48% 18% 18% / 62% 62% 12% 12%;
  --theme-badge-clip:polygon(50% 0,88% 14%,100% 48%,82% 100%,18% 100%,0 48%,12% 14%);
 }
}


/* Source: theme-library.css */
/* Compact selector uses the existing theme organization and save endpoints. */

.ts-native{display:none!important}.tselect{position:relative;min-width:0}.tselect-trigger{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 14px;text-align:left;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--control-radius,10px);cursor:pointer}.tselect-popup{position:absolute;z-index:40;top:100%;left:0;right:0;margin-top:6px;background:var(--world-surface,var(--panel,#fff));color:var(--text,#222);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 48px #0004;overflow:visible}.tselect-scroll{max-height:min(54vh,460px);overflow:auto;overscroll-behavior:contain;padding:6px}.tselect-category>summary{cursor:pointer;padding:10px;font-weight:650;position:sticky;top:-6px;z-index:2;background:var(--world-surface,var(--panel,#fff))}.tselect-category>summary small{font-weight:400;opacity:.7;margin-left:6px}.tselect-category p{padding:8px 16px}.tselect-row{display:flex;gap:2px;align-items:center;min-width:0;border-radius:8px}.tselect-row:hover,.tselect-row:focus-within{background:var(--panel-2,#8882)}.tselect-row button,.tselect-menu summary{border:0;background:transparent;color:inherit;cursor:pointer;min-height:40px}.tselect-choice{display:flex;align-items:center;gap:10px;flex:1;min-width:0;text-align:left;padding:6px 8px}.tselect-choice>span:nth-child(2){flex:1;overflow-wrap:anywhere}.tselect-palette{display:flex;flex:0 0 44px;height:24px;overflow:hidden;border-radius:6px;border:1px solid #8887}.tselect-palette i{flex:1}.tselect-star,.tselect-peek{padding:4px 8px;font-size:18px}.tselect-star[aria-pressed=true]{color:var(--accent)}.tselect-menu{position:relative;flex:0 0 32px}.tselect-menu summary{display:grid;place-items:center;list-style:none}.tselect-menu>div{position:absolute;right:0;top:100%;z-index:5;display:grid;gap:4px;padding:10px;min-width:190px;background:var(--world-surface,var(--panel,#fff));border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0004}.tselect-menu button{text-align:left}.tselect-menu label{display:grid;gap:4px}.tselect-menu select{width:100%}.tselect-menu small{padding:8px}.tselect-status:empty{display:none}.tselect-status{padding:8px 12px;font-size:.85rem}.tselect-editor{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border-top:1px solid var(--border)}.tselect-editor label{flex:1 1 100%;display:grid;gap:6px}.tselect-floating{position:fixed;z-index:2000;background:var(--world-surface,var(--panel,#fff));color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 50px #0005;overflow:hidden}.tselect-floating header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px}.tselect-floating header button{background:transparent;color:inherit;border:0;font-size:22px;cursor:pointer}.tselect-floating iframe{display:block;width:100%;height:220px;border:0;pointer-events:none}.tselect-floating>small{display:block;padding:8px 12px}.tselect [hidden]{display:none!important}.tselect button:focus-visible,.tselect summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media(max-width:600px){.tselect-floating{top:auto!important;bottom:12px;left:12px!important;max-height:45vh}.tselect-floating iframe{height:170px}.tselect-row{font-size:.85rem}.tselect-choice{gap:6px}.tselect-palette{flex-basis:32px}.tselect-star,.tselect-peek{padding:4px 6px}.tselect-scroll{max-height:45vh}}

.tselect-popup[popover]{position:fixed;margin:0;inset:auto;max-width:calc(100vw - 16px);overflow:visible}.tselect-floating[popover]{margin:0;inset:auto;pointer-events:none}.tselect-floating header button{pointer-events:auto}.tselect-menu[open]{flex-basis:200px}.tselect-menu>div{position:static;box-shadow:none}.tselect-row:has(.tselect-menu[open]){align-items:flex-start;flex-wrap:wrap}.tselect-row:has(.tselect-menu[open]) .tselect-menu{flex-basis:100%}.tselect-menu[open]>summary{justify-content:end}.tselect-popup::backdrop,.tselect-floating::backdrop{background:transparent}

.tselect-popup:popover-open{display:flex;flex-direction:column}.tselect-scroll{flex:1;min-height:0}.tselect-status,.tselect-editor{flex-shrink:0}

.tselect .tselect-row button{border:0!important;box-shadow:none!important;background:transparent!important}.tselect-choice>span:nth-child(2){min-width:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tselect button:disabled{opacity:.5;cursor:default}


/* Source: mobile-operations.css */
/* Layout only. Existing world materials, status semantics and action handlers
   remain owned by their original components. */
@layer theme-studio {
 html[data-theme] .ops-open-items[data-compact="true"] ul,
 html[data-theme] .checkout-open-items ul {display:grid!important;gap:0!important;padding:0!important;margin:0!important;list-style:none;}
 html[data-theme] .ops-open-items[data-compact="true"] li,
 html[data-theme] .checkout-open-items li {display:flex!important;flex-wrap:wrap;align-items:center;gap:6px 12px!important;padding:7px 0!important;min-width:0;margin:0!important;}
 html[data-theme] .ops-open-items[data-compact="true"] li>span,
 html[data-theme] .checkout-open-item-name {flex:1 1 160px;min-width:0;overflow-wrap:anywhere;white-space:normal;line-height:1.45;}
 html[data-theme] .ops-open-items[data-compact="true"] .ops-item-resolution,
 html[data-theme] .checkout-open-item-controls {margin-left:auto;max-width:100%;min-width:0;gap:6px;}
 html[data-theme] .ops-open-items[data-compact="true"] button,
 html[data-theme] .checkout-open-item-controls button {min-height:40px!important;padding:7px 10px!important;white-space:normal!important;max-width:100%;}
}
@media(max-width:760px) {
 @layer theme-studio {
  /* A grid/flex item's intrinsic text width must not widen its card. */
  html[data-theme] #app-view :is(.workspace,.view) {min-width:0!important;}
  html[data-theme] #app-view .workspace {padding-bottom:calc(112px + env(safe-area-inset-bottom))!important;}
  html {scroll-padding-bottom:calc(112px + env(safe-area-inset-bottom));}
  html[data-theme] #themes-view :is(.panel,.panel-body,.form-stack,.form-stack>*,label,.theme-tuner-launch,.settings-preferences-row,.settings-motion-group) {min-width:0!important;max-width:100%!important;box-sizing:border-box;}
  html[data-theme] #themes-view .form-stack {grid-template-columns:minmax(0,1fr)!important;}
  html[data-theme] #themes-view :is(select,input:not([type="checkbox"]):not([type="radio"]):not(#custom-color-select)) {min-width:0!important;max-width:100%!important;box-sizing:border-box;}
  html[data-theme] #themes-view .settings-preferences-row {grid-template-columns:minmax(0,1fr)!important;}
  html[data-theme] #themes-view .theme-tuner-launch>button {flex:1 1 100%;width:100%;white-space:normal!important;overflow-wrap:anywhere;min-width:0!important;max-width:100%!important;}
  html[data-theme] #themes-view :is(.theme-tuner-launch,.theme-sound-preview-buttons,[data-family-theme-shortcut]) {display:flex;flex-wrap:wrap;gap:8px;}
  html[data-theme] #themes-view :is(.theme-sound-preview-buttons,[data-family-theme-shortcut])> * {min-width:0!important;max-width:100%!important;white-space:normal!important;}

  /* Identity stays above wrapping actions; every action remains in the card. */
  html[data-theme] :is(#app-view,#today-summary-dialog) [data-checkout-row] .checkout-row-header {display:grid!important;grid-template-columns:minmax(0,1fr) 34px;gap:8px!important;padding:10px!important;}
  html[data-theme] :is(#app-view,#today-summary-dialog) [data-checkout-row] .checkout-row-header>:is(.summary-room-main,.room-card-head) {grid-column:1;grid-row:1;max-width:100%!important;min-width:0!important;flex-wrap:wrap!important;gap:6px!important;}
  html[data-theme] [data-checkout-row] .checkout-row-toggle {grid-column:2;grid-row:1;align-self:start;}
  html[data-theme] [data-checkout-row] .checkout-row-quick {grid-column:1/-1;grid-row:2;max-width:100%!important;min-width:0!important;width:100%!important;overflow:visible!important;flex-wrap:wrap!important;padding:0!important;}
  html[data-theme] [data-checkout-row] .checkout-row-quick :is(.summary-room-actions,.summary-room-turnover-actions,.room-card-actions,.arc-action-layout,.arc-action-group,.arc-actions) {flex-wrap:wrap!important;flex:1 1 auto;min-width:0!important;max-width:100%!important;gap:6px!important;}
  html[data-theme] [data-checkout-row] .checkout-row-quick button {flex:1 1 auto;min-width:0!important;max-width:100%!important;min-height:40px!important;white-space:normal!important;overflow-wrap:anywhere;line-height:1.35;}
  html[data-theme] :is(.summary-room-row,.room-list-row,.room-card) :is(.summary-room-meta,.room-card-actions,.arc-status-row,.arc-status,.summary-room-assigned) {min-width:0;max-width:100%;overflow-wrap:anywhere;}
  html[data-theme] :is(.summary-room-row,.room-list-row,.room-card) :is(.room-status-toggle,.status-badge,.room-badge) {max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere;}
  html[data-theme] .checkout-row-inner :is(.checkout-item-details,.ops-open-items,.ops-item-resolution,.checkout-room-add-form) {min-width:0;max-width:100%;}
  html[data-theme] .checkout-room-add-form {display:flex;flex-wrap:wrap;gap:6px;}
  html[data-theme] .checkout-room-add-form :is(input,select) {min-width:0!important;flex:1 1 140px;max-width:100%;}
 }
}


/* Source: guest-quality.css */
.gc-workspace{min-width:0;display:grid;gap:1rem}.gc-heading,.gc-section>header{display:flex;justify-content:space-between;align-items:center;gap:.7rem;flex-wrap:wrap}.gc-heading h2,.gc-section h3,.gc-heading p{margin:.15rem 0}.gc-heading p,.gc-note{font-size:.82rem;opacity:.78}.gc-toolbar{display:flex;gap:.55rem;align-items:end;flex-wrap:wrap;margin:.65rem 0}.gc-toolbar label,.gc-match-stay label,.gc-match-role label{display:grid;gap:.25rem;font-size:.8rem;flex:1 1 140px;min-width:0}.gc-toolbar input,.gc-toolbar select,.gc-match-role input,.gc-match-role select,.gc-match-role textarea,.gc-match-stay input{width:100%;max-width:100%;min-width:0;min-height:36px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2,var(--panel));color:var(--text);font:inherit;padding:.4rem .55rem;box-sizing:border-box}.gc-global label{flex:0 1 185px}.gc-segments{display:flex;flex-wrap:wrap;gap:.35rem}.gc-segments button{font:inherit;border:1px solid var(--border);border-radius:10px;padding:.5rem .8rem;background:var(--surface-2,var(--panel));color:var(--text);cursor:pointer}.gc-segments button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel))}.gc-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-top:.8rem}.gc-kpis>div,.gc-kpis>button,.gc-section{padding:.85rem;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--panel) 94%,transparent);color:var(--text);box-shadow:var(--card-shadow,0 4px 15px #0001)}.gc-kpis>div,.gc-kpis>button{display:flex;flex-direction:column;align-items:start;gap:.3rem;font:inherit;text-align:left;min-width:0}.gc-kpis strong{font-size:1.45rem;line-height:1.2}.gc-kpis small,.gc-kpis span{font-size:.8rem}.gc-kpis button{cursor:pointer}.gc-kpis button:hover{border-color:var(--accent)}.gc-section{margin-top:.8rem;min-width:0}.gc-employee,.gc-room,.gc-review{border-bottom:1px solid var(--border);min-width:0}.gc-employee>summary,.gc-room>summary,.gc-review>summary{padding:.65rem .25rem;display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;cursor:pointer;list-style:revert;min-height:36px}.gc-employee summary:hover,.gc-room summary:hover,.gc-review summary:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}.gc-employee>summary strong{flex:1;min-width:110px}.gc-employee>summary small{min-width:130px}.gc-review>summary{font-size:.84rem}.gc-review>summary span{flex:1}.gc-review-body,.gc-employee-body{padding:.4rem .7rem .8rem;overflow-wrap:anywhere}.gc-review-body p{margin:.5rem 0;white-space:pre-wrap}.gc-review-body details{margin:.5rem 0}.gc-review-body .button{margin:.25rem}.gc-link{background:none;border:0;padding:0;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.gc-trend{display:grid;gap:.4rem;max-height:260px;overflow:auto;padding:.5rem 0}.gc-trend>div{display:grid;grid-template-columns:65px minmax(50px,1fr) 90px 70px;gap:.6rem;align-items:center;font-size:.8rem}.gc-trend meter{width:100%;accent-color:var(--accent)}.gc-attention{color:var(--warning,var(--accent));font-size:.8rem}.gc-tools{border-top:1px solid var(--border);margin-top:.7rem;padding:.7rem 0}.gc-tools>summary{cursor:pointer;font-weight:600}.gc-tools>.panel{margin-top:.5rem}.gc-insufficient>summary{padding:.65rem;cursor:pointer;font-size:.82rem;opacity:.8}.gc-match-toolbar{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:2;background:var(--panel);border-bottom:1px solid var(--border);padding:.5rem 0}.gc-match-toolbar select{max-width:180px;min-width:0;background:var(--surface-2,var(--panel));color:var(--text)}.gc-match-review{padding:.7rem 0;border-bottom:1px solid var(--border)}.gc-match-review>header{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap;font-size:.85rem}.gc-match-review>header label{display:flex;align-items:center;gap:.4rem;font-weight:700}.gc-match-review input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}.gc-match-review>p{font-size:.84rem;max-height:5rem;overflow:auto}.gc-match-stay,.gc-match-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:.5rem 0}.gc-match-role{min-width:0;margin:0;padding:.65rem;border:1px solid var(--border);border-radius:11px;background:color-mix(in srgb,var(--panel) 94%,transparent)}.gc-match-role legend{font-weight:700;font-size:.88rem}.gc-match-role p,.gc-match-role small{font-size:.78rem}.gc-match-role select[multiple]{max-height:90px}.gc-match-role p{margin:.5rem 0}.gc-confidence{display:inline-block;border:1px solid var(--border);border-radius:20px;padding:.1rem .4rem;font-weight:400}.gc-match-preview{padding:.75rem;border:1px solid var(--accent);border-radius:12px;margin-top:.6rem}.gc-match-preview p{font-size:.83rem}.gc-status{padding:.6rem;border-left:2px solid var(--accent)}.gc-workspace [hidden]{display:none!important}.gc-workspace button:focus-visible,.gc-match-dialog button:focus-visible,.gc-workspace summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:700px){.gc-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.gc-heading h2{font-size:1.4rem}.gc-heading>.button{width:100%}.gc-toolbar label,.gc-global label{flex:1 1 130px}.gc-section{padding:.65rem}.gc-segments button{flex:1 1 auto;font-size:.85rem}.gc-employee>summary small{width:100%}.gc-trend>div{grid-template-columns:58px 1fr 76px}.gc-trend small{grid-column:2/4}.gc-match-roles{grid-template-columns:1fr}.gc-match-dialog{width:96vw;max-width:96vw}.gc-match-toolbar{position:static}.gc-toolbar input,.gc-toolbar select,.gc-match-role select,.gc-match-role textarea,.gc-match-stay input{font-size:16px}.gc-review>summary span{min-width:170px}.gc-match-stay{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:no-preference){.gc-employee[open]>.gc-employee-body,.gc-review[open]>.gc-review-body,.gc-room[open]>.gc-review-body{animation:gc-reveal .18s ease-out}@keyframes gc-reveal{from{opacity:.4;transform:translateY(-3px)}to{opacity:1;transform:none}}}
.gc-workspace [data-gc-shell]>nav.gc-segments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.gc-trend>div>span{white-space:nowrap}@media(max-width:700px){.gc-workspace [data-gc-shell]>nav.gc-segments{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gc-match-filters{display:flex;align-items:end;flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:8px 0;border-bottom:1px solid var(--border)}
.gc-match-filters label{display:grid;gap:3px;min-width:0;flex:0 1 205px;font-size:12px;font-weight:600}
.gc-match-filters select,.gc-match-filters input{box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:36px;padding:5px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2,var(--panel));color:var(--text);font:inherit}
.gc-match-custom{display:flex;align-items:end;flex-wrap:wrap;gap:8px;min-width:0}.gc-match-custom label{flex:1 1 135px}
.gc-match-filters small{flex-basis:100%;font-size:11px;color:var(--muted,var(--text));font-weight:400}
.gc-match-dialog [hidden]{display:none!important}.gc-match-empty{padding:20px 8px;text-align:center}.gc-match-empty p{font-size:13px;margin:6px 0 0}
@media(max-width:600px){.gc-match-filters>label{flex:1 1 135px}.gc-match-custom{width:100%}.gc-match-filters :is(select,input){min-height:44px;font-size:16px}}
@media(max-width:480px){.gc-match-filters>label{flex-basis:100%}}
@media(max-width:360px){.gc-match-custom{flex-wrap:wrap}.gc-match-custom label{flex-basis:100%}}

.gc-complaint-preview{flex:1 0 100%!important;display:grid;gap:.25rem;min-width:0;padding:.4rem .55rem;border-left:3px solid var(--accent);font-size:.85rem;overflow-wrap:anywhere;white-space:pre-wrap}.gc-complaint-preview small{font-weight:600;opacity:.8}.gc-complaint-preview>span{display:block}.gc-complaint-details{min-width:0;margin:.5rem 0 .8rem;padding:.6rem;border:1px solid var(--border);border-radius:9px;font-size:.85rem;overflow-wrap:anywhere}.gc-complaint-details>details>summary{cursor:pointer;min-height:36px;display:flex;align-items:center}.gc-complaint-details p{white-space:pre-wrap}

/* Compact individual reviews; bulk matching keeps its separate workspace. */
.gc-review>summary{padding:.45rem .35rem;gap:.4rem;min-height:44px}.gc-review>summary>strong{min-width:4.6rem}.gc-review>summary>small{font-size:.72rem}.gc-review>.gc-review-body{padding:.35rem .45rem .55rem}.gc-review-people,.gc-inline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .8rem}.gc-review-person{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .45rem;min-width:0;font-size:.84rem}.gc-review-person>small{color:var(--muted);font-size:.74rem}.gc-review-person>.gc-link{max-width:100%;text-align:left;overflow-wrap:anywhere;text-underline-offset:3px}.gc-review-person>small:last-child:not(:first-child){flex-basis:100%}.gc-review-source{display:block;color:var(--muted);font-size:.72rem;margin:.25rem 0}.gc-review-body .button{margin:0;min-height:36px;padding:.35rem .6rem;font-size:.78rem}.gc-review-body>button{margin-top:.35rem}.gc-review-tools,.gc-review-feedback{font-size:.82rem}.gc-review-body :is(.gc-review-tools,.gc-review-feedback){margin:.25rem 0}.gc-review-tools>summary,.gc-review-feedback>summary{cursor:pointer;min-height:36px;display:flex;align-items:center;gap:.35rem}.gc-review-history-actions{display:flex;flex-wrap:wrap;gap:.35rem}.gc-review-history-actions>small{flex-basis:100%;color:var(--muted)}.gc-inline-editor{margin:.4rem 0;padding:.5rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-2,var(--panel));display:grid;gap:.4rem}.gc-inline-fields label{display:grid;gap:.25rem;min-width:0;font-size:.76rem}.gc-inline-fields select{width:100%;min-width:0;min-height:36px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);font:inherit;padding:.35rem}.gc-inline-actions{display:flex;gap:.4rem}.gc-inline-editor>small,.gc-inline-error{font-size:.75rem}.gc-inline-error{color:var(--red);margin:0!important}.gc-inline-success{font-size:.74rem;color:var(--green);margin-left:.5rem}.gc-review .gc-complaint-details{padding:.4rem;margin:.3rem 0;font-size:.8rem}.gc-review .gc-complaint-details p{margin:.3rem 0}.gc-review-body details>summary:before{content:'▸';font-size:.7rem}.gc-review-body details[open]>summary:before{content:'▾'}
@media(max-width:600px){.gc-review-people{gap:.3rem}.gc-review-person{display:grid;gap:.1rem}.gc-review-person>small:last-child:not(:first-child){font-size:.68rem}.gc-review-body .button,.gc-inline-fields select,.gc-review-tools>summary,.gc-review-feedback>summary{min-height:44px}.gc-inline-fields select{font-size:16px}.gc-review>summary span{min-width:0}.gc-review>summary>span:not(.gc-complaint-preview){flex:1 1 160px;font-size:.76rem}}@media(max-width:360px){.gc-inline-fields{grid-template-columns:1fr}}
.gc-review-history-actions .button{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:left}.gc-review-body{min-width:0}.gc-inline-editor,.gc-review-people{max-width:100%;box-sizing:border-box}
.gc-review[open]>summary>.gc-complaint-preview{display:none}.gc-review-body details>summary:before{content:'\25B8'}.gc-review-body details[open]>summary:before{content:'\25BE'}
/* Compact review queue: attribution first; context remains available on demand. */
.gc-match-dialog .gc-match-review{padding:8px 0}.gc-match-row{display:grid;grid-template-columns:minmax(75px,.7fr) minmax(120px,1fr) repeat(2,minmax(130px,1fr)) auto;align-items:center;gap:10px}.gc-match-room{display:flex;align-items:center;gap:5px}.gc-match-row time{font-size:12px;color:var(--muted,var(--text))}.gc-match-person{display:grid;gap:2px;min-width:0}.gc-match-person small{font-size:11px;color:var(--muted,var(--text))}.gc-match-person strong{font-size:13px;overflow-wrap:anywhere}.gc-match-row-actions{display:flex;gap:4px}.gc-match-person select,.gc-match-extra :is(select,input,textarea){box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:36px;padding:5px 7px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2,var(--panel));color:var(--text);font:inherit}.gc-match-extra{font-size:12px;margin:3px 0 0 28px}.gc-match-extra summary,.gc-match-bulk-tools>summary{cursor:pointer;padding:5px 0}.gc-match-extra label{display:grid;gap:3px;margin:5px 0}.gc-match-extra section{margin:8px 0}.gc-match-extra pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto}.gc-match-bulk-tools{font-size:12px}.gc-match-dialog .gc-match-toolbar{position:static}.gc-match-extra>summary{color:var(--muted,var(--text))}
@media(max-width:700px){.gc-match-row{grid-template-columns:1fr 1fr;gap:6px 10px}.gc-match-row-actions{grid-column:1/-1;justify-content:flex-end}.gc-match-row .button,.gc-match-person select,.gc-match-extra :is(select,input,textarea){min-height:44px}.gc-match-person select,.gc-match-extra :is(select,input,textarea){font-size:16px}.gc-match-extra{margin-left:0}.gc-match-row time{text-align:right}}


/* Source: rooms-list.css */
/* The compact Rooms workspace is deliberately scoped: shared room cards on
   Today, Assignments and work-list tabs retain their existing presentation. */
@layer theme-studio {
  #checkout-view .rooms-workspace { display:grid; gap:16px; min-width:0; }
  #checkout-view .rooms-toolbar,
  #checkout-view .rooms-toolbar-actions { display:flex; align-items:center; gap:8px; min-width:0; flex-wrap:wrap; }
  #checkout-view .rooms-toolbar { justify-content:space-between; }
  #checkout-view .rooms-total { font-size:13px; color:var(--muted); }
  html[data-theme] #checkout-view .rooms-toolbar-actions { display:flex!important; flex-flow:row nowrap!important; width:max-content!important; flex:0 0 auto; }
  #checkout-view .rooms-toolbar-actions select { width:auto!important; flex:0 1 230px!important; max-width:100%; min-width:0; min-height:40px; margin:0; }
  #checkout-view .rooms-toolbar-actions .button { min-height:40px; margin:0; }
  #checkout-view .rooms-bulk-controls { margin:0 0 14px; min-width:0; }
  #checkout-view .rooms-bulk-controls > summary { padding:10px 0; font-size:13px; font-weight:600; cursor:pointer; }
  #checkout-view .rooms-floor { margin:0; min-width:0; border:0; background:none; }
  #checkout-view .rooms-floor > summary { display:flex; align-items:center; gap:10px; min-height:44px; padding:0 10px; cursor:pointer; list-style:none; font-size:14px; font-weight:700; }
  #checkout-view .rooms-floor > summary::-webkit-details-marker { display:none; }
  #checkout-view .rooms-floor-count { font-size:12px; font-weight:400; color:var(--muted); margin-left:auto; }
  #checkout-view .rooms-floor-list { border:1px solid var(--border); border-radius:12px; overflow:clip; min-width:0; background:var(--panel); }
  html[data-theme] #checkout-view .rooms-compact-row { display:block!important; width:100%!important; min-width:0!important; min-height:0!important; margin:0!important; padding:0!important; border:0!important; border-radius:0!important; box-shadow:none!important; transform:none!important; background:transparent!important; animation:none!important; }
  html[data-theme] #checkout-view .rooms-compact-row + .rooms-compact-row { border-top:1px solid var(--border)!important; }
  html[data-theme] #checkout-view .rooms-compact-row::before,
  html[data-theme] #checkout-view .rooms-compact-row::after,
  #checkout-view .rooms-compact-row > .cine-room-ambient,
  #checkout-view .rooms-compact-row > .ph-card-history,
  #checkout-view .rooms-compact-row > .ops-room-tools:empty { display:none!important; }
  html[data-theme] #checkout-view .rooms-compact-row > .room-list-head { display:block!important; grid-template-columns:none!important; padding:0!important; margin:0!important; min-height:0!important; border:0!important; background:none!important; }
  html[data-theme] #checkout-view .rooms-row-toggle { display:grid!important; grid-template-columns:52px minmax(0,1fr) auto 16px!important; align-items:center!important; gap:12px!important; width:100%!important; min-width:0!important; min-height:54px!important; padding:8px 16px!important; margin:0!important; border:0!important; border-radius:0!important; box-shadow:none!important; background:transparent!important; color:var(--text)!important; text-align:left!important; cursor:pointer; font:inherit; transform:none!important; }
  #checkout-view .rooms-row-toggle:hover { background:color-mix(in srgb,var(--accent) 7%,transparent)!important; }
  #checkout-view .rooms-row-toggle:focus-visible,
  #checkout-view .rooms-floor > summary:focus-visible { outline:2px solid var(--accent)!important; outline-offset:-3px; }
  #checkout-view .rooms-number { font-size:17px!important; line-height:1.2; font-variant-numeric:tabular-nums; letter-spacing:.02em; }
  #checkout-view .rooms-status { display:flex; align-items:center; gap:7px; min-width:0; font-size:13px; line-height:1.3; overflow-wrap:anywhere; --room-tone:var(--muted); }
  #checkout-view .rooms-status i { width:7px; height:7px; border-radius:50%; background:var(--room-tone); flex-shrink:0; }
  #checkout-view .rooms-status[data-tone=blocked],#checkout-view .rooms-status[data-tone=pc] { --room-tone:#df686c; }
  #checkout-view .rooms-status[data-tone=out],#checkout-view .rooms-status[data-tone=waiting],#checkout-view .rooms-status[data-tone=late-checkout],#checkout-view .rooms-status[data-tone=knock] { --room-tone:#d69a3f; }
  #checkout-view .rooms-status[data-tone=vacant],#checkout-view .rooms-status[data-tone=ready],#checkout-view .rooms-status[data-tone=finished] { --room-tone:#42a986; }
  #checkout-view .rooms-status[data-tone=stripped],#checkout-view .rooms-status[data-tone=bed-made],#checkout-view .rooms-status[data-tone=clean-needs-bed] { --room-tone:#739ee5; }
  #checkout-view .rooms-icons { display:flex; align-items:center; gap:8px; }
  #checkout-view .rooms-icon { display:inline-flex; align-items:center; justify-content:center; width:20px; height:22px; font-size:15px; position:relative; }
  #checkout-view .rooms-pet svg { width:18px; height:18px; fill:currentColor; }
  #checkout-view .rooms-arrival { color:var(--accent); }
  #checkout-view .rooms-arrival svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
  #checkout-view .rooms-early { position:absolute; right:-4px; top:-3px; font-size:9px; font-weight:700; }
  #checkout-view .rooms-chevron { display:inline-block; text-align:center; color:var(--muted); transition:transform 120ms ease; }
  #checkout-view .expanded > .room-list-head .rooms-chevron,
  #checkout-view .rooms-floor[open] > summary > .rooms-chevron { transform:rotate(180deg); }
  html[data-theme] #checkout-view .rooms-compact-row > .room-list-body { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:12px 20px!important; padding:12px 16px 16px!important; margin:0!important; min-width:0!important; border:0!important; border-top:1px solid var(--border)!important; background:color-mix(in srgb,var(--accent) 3%,transparent)!important; }
  html[data-theme] #checkout-view .rooms-compact-row > .room-list-body[hidden] { display:none!important; }
  #checkout-view .rooms-detail-controls { grid-column:1/-1; display:flex; align-items:center; flex-wrap:wrap; gap:8px; min-width:0; }
  #checkout-view .rooms-detail-controls > .room-list-status-controls { display:flex; flex-wrap:wrap; gap:8px; }
  #checkout-view .rooms-detail-controls .room-badges { display:flex!important; flex-wrap:wrap; width:auto!important; margin:0!important; }
  #checkout-view .rooms-compact-row .room-list-body > .hk-work { grid-column:1/-1; padding:0!important; margin:0!important; border:0!important; min-width:0; }
  #checkout-view .rooms-compact-row .room-detail-assignment,
  #checkout-view .rooms-compact-row .room-detail-work,
  #checkout-view .rooms-compact-row .room-detail-notes,
  #checkout-view .rooms-compact-row .room-detail-admin,
  #checkout-view .rooms-compact-row .room-checkout-history { padding:0!important; margin:0!important; min-width:0; border:0!important; background:none!important; box-shadow:none!important; }
  #checkout-view .rooms-compact-row .room-detail-assignment,
  #checkout-view .rooms-compact-row .room-detail-admin,
  #checkout-view .rooms-compact-row .room-checkout-history { grid-column:1/-1; }
  #checkout-view .rooms-compact-row .room-list-block { padding:0!important; margin:0 0 10px!important; border:0!important; background:none!important; box-shadow:none!important; }
  #checkout-view .rooms-compact-row .room-list-body :is(input,select,textarea) { min-width:0!important; max-width:100%!important; box-sizing:border-box; }
  #checkout-view .rooms-compact-row .room-list-body :is(button,label,span,p) { overflow-wrap:anywhere; }
  #checkout-view .rooms-compact-row .room-list-body .button { min-height:40px; }
  @media(max-width:600px) {
    #checkout-view .rooms-workspace { gap:10px; }
    html[data-theme] #checkout-view .rooms-row-toggle { grid-template-columns:42px minmax(0,1fr) auto 12px!important; gap:8px!important; padding:8px 10px!important; }
    html[data-theme] #checkout-view .rooms-compact-row > .room-list-body { grid-template-columns:minmax(0,1fr)!important; gap:12px!important; padding:12px 10px!important; }
    #checkout-view .rooms-toolbar { gap:6px; }
    html[data-theme] #checkout-view .rooms-toolbar-actions { flex:1 1 100%; width:100%!important; }
    #checkout-view .rooms-toolbar-actions select { flex:1!important; }
    #checkout-view .rooms-compact-row .room-detail-work { grid-column:1!important; }
    #checkout-view .rooms-compact-row .room-list-item { flex-wrap:wrap; gap:6px; }
    #checkout-view .rooms-compact-row .room-list-item > span { flex:1 1 120px; }
  }
  @media(prefers-reduced-motion:reduce) { #checkout-view .rooms-chevron { transition:none; } }
}


/* Source: room-surface.css */
/* Shared geometry only: each theme continues to own surfaces, light and color. */
html[data-theme] .room-surface {
  --room-card-radius:12px; min-width:0; max-width:100%; box-sizing:border-box;
  border-radius:var(--room-card-radius); padding:10px 12px; gap:8px;
  font-size:.9rem; line-height:1.4; text-align:start;
}
html[data-theme] .room-surface :is(.room-surface-head,.room-card-head,.summary-room-main,.ab-room-head,.room-list-head,.mm-row,.checkout-row-header) {
  display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; min-width:0; padding:0;
}
html[data-theme] .room-surface :is(.room-number,.summary-room-number,.arc-number,.ab-room-identity strong) {font-size:1.25rem!important;line-height:1.2;font-weight:750;}
html[data-theme] .room-surface :is(.arc-operational-status,.summary-room-main>.arc-operational-status) {position:static;max-width:100%;margin-inline-start:auto;align-self:center;}
html[data-theme] .room-surface :is(.pet-room-number-line,.arc-identity,.room-badge-list,.mm-badges) {min-width:0;max-width:100%;flex-wrap:wrap;gap:6px;}
html[data-theme] .room-surface :is(.badge,.status-badge,.room-list-cat,.mm-status) {max-width:100%;white-space:normal;overflow-wrap:anywhere;font-size:.76rem;line-height:1.3;}
html[data-theme] .room-surface :is(.button,select) {min-height:40px!important;max-width:100%;height:auto!important;font-size:.82rem!important;white-space:normal!important;padding:7px 10px;}
html[data-theme] .room-surface .adaptive-room-card {display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;}
html[data-theme] .room-surface .arc-head {flex:1 1 100%;align-items:center;gap:6px;}
html[data-theme] .room-surface .arc-head:not(:has(.arc-identity,.hk-header-access,.arc-priority,.arc-operational-status)) {display:none;}
html[data-theme] .room-surface .arc-status {display:inline-flex;align-items:center;font-size:.8rem;line-height:1.3;margin:0;padding:4px 8px;border:1px solid color-mix(in srgb,var(--arc-state) 50%,var(--border));border-radius:999px;}
html[data-theme] .room-surface .arc-assigned {font-size:.78rem;margin:0;}
html[data-theme] .room-surface .arc-action-layout {display:flex;flex-wrap:wrap;gap:6px;margin:0;flex:1 1 auto;}
html[data-theme] .room-surface :is(.arc-action-group,.arc-actions) {display:flex;flex-wrap:wrap;gap:6px;margin:0;min-width:0;}
html[data-theme] .room-surface .arc-actions .button {flex:0 1 auto;}
html[data-theme] .room-surface [data-room-surface-secondary] {flex-basis:100%;min-width:0;width:100%;box-sizing:border-box;}
html[data-theme] [data-room-surface-hidden="true"] {display:none!important;}
html[data-theme] .room-surface :is(.room-surface-toggle,.checkout-row-toggle,.room-list-expand) {display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px!important;min-height:40px!important;margin:0 0 0 auto;padding:6px!important;border:1px solid var(--border);border-radius:8px;background:transparent;color:inherit;cursor:pointer;}
.room-surface-toggle span {transition:transform .16s ease;}
.room-surface-toggle[aria-expanded="true"] span {transform:rotate(180deg);}
.room-surface :is(.room-surface-toggle,.room-list-expand):focus-visible {outline:2px solid var(--accent);outline-offset:2px;}
.room-surface .arc-record-links {display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.8rem;}
.room-surface .arc-record-links a {color:var(--accent);min-height:40px;display:inline-flex;align-items:center;}
html[data-theme] .room-surface .arc-secondary-actions {border:0;margin:0;padding:0;}
html[data-theme] .room-surface .room-list-chevron {display:none;}
html[data-theme] .room-surface .arc-legacy {margin:0;}
@media (prefers-reduced-motion:no-preference) {
  .room-surface {transition:border-color .16s ease;}
  .room-surface:hover {border-color:color-mix(in srgb,var(--accent) 45%,var(--border));}
  .room-surface-expanded [data-room-surface-secondary]:not([data-room-surface-hidden="true"]) {animation:room-surface-reveal .16s ease-out;}
  @keyframes room-surface-reveal {from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
}
@media (max-width:600px) {
  html[data-theme] .room-surface {padding:10px;}
  html[data-theme] .room-surface :is(.button,select,.room-surface-toggle,.checkout-row-toggle,.room-list-expand) {min-height:44px!important;}
  html[data-theme] .room-surface .arc-action-layout {flex-basis:100%;}
  html[data-theme] .room-surface .arc-action-group {flex:1 1 auto;}
  html[data-theme] .room-surface .arc-actions {flex:1 1 100%;}
  html[data-theme] .room-surface .arc-actions .button {flex:1 1 100px;}
}
@media (prefers-reduced-motion:reduce) {.room-surface-toggle span {transition:none;}}
/* Override older per-tab grid geometry, without replacing themed surfaces. */
html[data-theme] :is(#assignment-board,#personal-rooms,#manager-my-rooms,#checkout-view,#app-view,#today-summary-dialog) .room-surface .room-surface-head {display:flex!important;flex-wrap:wrap;align-items:center;gap:6px;}
html[data-theme] #assignment-board .room-surface .ab-room-identity {flex:1 1 60px;}
html[data-theme] #assignment-board .room-surface .ab-room-head > label {flex:0 0 28px;min-width:28px;}
html[data-theme] #assignment-board .room-surface .ab-room-head > .room-surface-toggle {margin-inline-start:0;}


/* Source: schedule-workspace.css */

/* Compact Schedule workspace; existing theme tokens remain authoritative. */
#schedule-view .schedule-workspace { min-width:0; }
#schedule-view .schedule-workspace>.panel-head { padding:12px 14px;gap:10px;flex-wrap:wrap; }
#schedule-view .schedule-workspace>.panel-head h3 { margin:0; }
#schedule-view .schedule-week-nav { align-items:center;gap:6px;margin:0;padding:8px 12px;border-bottom:1px solid var(--border); }
#schedule-view .schedule-week-nav .button { min-height:34px;padding:6px 9px;white-space:nowrap; }
.schedule-date-picker { display:flex;align-items:center;gap:5px;font-size:11px;color:var(--secondary); }
#schedule-view .schedule-date-picker input { min-height:34px;width:135px;padding:4px 6px;font-size:12px; }
.schedule-more { position:relative; }
.schedule-more summary { list-style:none;cursor:pointer; }
.schedule-more>div { position:absolute;inset-block-start:100%;inset-inline-end:0;z-index:12;display:grid;gap:4px;min-width:180px;padding:8px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0002; }
[data-schedule-status] { font-size:11px;color:var(--secondary);flex:1 1 110px;overflow-wrap:anywhere; }
#schedule-view .schedule-workspace .schedule-grid { width:100%;min-width:640px;table-layout:fixed; }
#schedule-view .schedule-workspace .schedule-grid :is(th,td):first-child { width:180px; }
#schedule-view .schedule-workspace .schedule-grid-wrap { overflow:auto;max-height:65vh;scroll-padding-inline-start:180px; }
#schedule-view .schedule-workspace .schedule-grid thead th { position:sticky;top:0;z-index:4;background:var(--panel);border-bottom:1px solid var(--border);padding:7px 3px; }
#schedule-view .schedule-workspace .schedule-grid thead th:first-child { z-index:6; }
#schedule-view .schedule-workspace .schedule-grid td { height:32px;padding:3px;border-bottom:1px solid color-mix(in srgb,var(--border) 65%,transparent); }
#schedule-view .schedule-workspace .schedule-grid :is(input[name=day],.schedule-name-input,.schedule-checkout-input) { box-sizing:border-box;width:100%;min-width:0;min-height:32px;height:32px;padding:4px 5px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text);font-size:12px;font-weight:600;box-shadow:none; }
#schedule-view .schedule-workspace .schedule-grid input[name=day] { text-align:center; }
#schedule-view .schedule-workspace .schedule-grid input.is-off { color:var(--secondary);font-weight:400; }
#schedule-view .schedule-workspace .schedule-grid input:hover { background:color-mix(in srgb,var(--accent) 6%,var(--panel)); }
#schedule-view .schedule-workspace .schedule-grid input:focus { outline:2px solid var(--accent);outline-offset:-2px;background:var(--panel); }
#schedule-view .schedule-workspace .schedule-grid input[aria-invalid=true] { outline:2px solid var(--danger); }
#schedule-view .schedule-workspace .schedule-name-cell { min-width:0;position:relative;gap:2px;flex-wrap:wrap; }
#schedule-view .schedule-workspace .schedule-name-input { flex:1;width:110px; }
#schedule-view .schedule-workspace .schedule-remove-row { width:24px;flex-basis:24px;min-height:28px;border:0; }
#schedule-view .schedule-workspace .staff-schedule-inactive { order:3;font-size:10px; }
#schedule-view .schedule-workspace .schedule-today { background:color-mix(in srgb,var(--accent) 12%,var(--panel)); }
.schedule-staffing-summary td { background:color-mix(in srgb,var(--accent) 4%,var(--panel));text-align:center; }
.schedule-staffing-summary :is(strong,span,small) { display:block;line-height:1.4; }
.schedule-staffing-summary strong { font-size:12px; }
.schedule-staffing-summary :is(span,small) { font-size:10px;color:var(--secondary);font-weight:400; }
.schedule-coverage-breakdown { padding:8px 12px;font-size:11px;color:var(--secondary); }
.schedule-coverage-breakdown p { max-width:85ch;line-height:1.5; }
.schedule-operations-forecast { border-block:1px solid var(--border); }
.schedule-operations-forecast>summary { padding:10px 14px;cursor:pointer;font-weight:650;font-size:12px; }
#schedule-view .schedule-forecast-wrap { max-height:none; }
#schedule-view .schedule-workspace .schedule-editor-actions { margin:0;padding:10px 12px;justify-content:flex-end; }
#schedule-view .schedule-workspace .schedule-editor-actions .button { flex:0 1 auto;min-height:34px;font-size:12px; }
.schedule-day-jumps { display:none; }
.schedule-copy-dialog { max-width:min(430px,calc(100vw - 24px));background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:18px; }
.schedule-copy-dialog label { display:inline-flex;gap:4px;margin:8px;align-items:center; }
.schedule-copy-dialog form>div { display:flex;gap:8px;justify-content:flex-end;margin-top:12px; }
@media(max-width:700px) {
 #schedule-view .schedule-workspace .schedule-grid :is(th,td):first-child { width:140px; }
 #schedule-view .schedule-workspace .schedule-grid-wrap { scroll-padding-inline-start:140px; }
 #schedule-view .schedule-workspace .schedule-name-input { width:80px; }
 .schedule-day-jumps { display:flex;gap:3px;overflow:auto;padding:5px 8px; }
 #schedule-view .schedule-day-jumps .button { flex:1;min-width:35px;min-height:36px;padding:4px; }
 #schedule-view .schedule-week-nav { gap:4px; }
 #schedule-view .schedule-week-nav .schedule-calendar-action { flex:0 1 auto; }
 #schedule-view .schedule-workspace .schedule-grid td { height:35px; }
}
#schedule-view .schedule-workspace .schedule-remove-row { height:28px;min-height:28px;padding:0;line-height:1;box-sizing:border-box; }
#schedule-view .schedule-workspace .schedule-grid td { line-height:1.2;vertical-align:middle; }
#schedule-view .schedule-workspace .schedule-grid input { display:block;margin:0; }

#schedule-more-menu { position:fixed;inset:auto;margin:0;box-sizing:border-box;width:min(220px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto; }
#schedule-more-menu:not(:popover-open) { display:none; }
#schedule-more-menu .button { width:100%;text-align:start; }


/* Source: strip-beds-board.css */
/* This layout belongs only to the Strip & Beds screen. */
#strip-rooms-view .sb-simple-board{padding:10px;max-width:900px;margin-inline:auto}
#strip-rooms-view .sb-list{display:grid;gap:8px}
#strip-rooms-view .sb-room{display:grid;grid-template-columns:minmax(110px,1fr) minmax(280px,1.5fr);align-items:center;gap:12px;padding:12px;border:1px solid var(--border,#727987);border-radius:12px;min-width:0;background:var(--panel)}
#strip-rooms-view .sb-identity{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
#strip-rooms-view .sb-number{font-size:1.5rem;line-height:1.2;font-variant-numeric:tabular-nums}
#strip-rooms-view .sb-bed{font-size:.85rem;line-height:1.2;white-space:nowrap}
#strip-rooms-view .sb-indicators{display:flex;gap:6px;flex-wrap:wrap}
#strip-rooms-view .sb-indicator{font-size:.75rem;line-height:1.2;border:1px solid var(--border,#727987);border-radius:5px;padding:4px 6px}
#strip-rooms-view .sb-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}
#strip-rooms-view .sb-error{grid-column:1/-1;font-size:.85rem;margin:0;color:var(--text)}
#strip-rooms-view [hidden]{display:none!important}
@layer surface-material.foundation{
 #app-view #strip-rooms-view .sb-simple-board .sb-action{min-height:48px;min-width:0;margin:0;padding:10px 8px;border-radius:8px!important;font-size:1rem;line-height:1.2;white-space:normal;display:flex;align-items:center;justify-content:center;gap:5px;background:transparent!important;background-image:none!important;color:var(--text)!important;border:1px solid var(--border,#727987)!important;box-shadow:none!important;text-shadow:none!important;filter:none!important}
 #app-view #strip-rooms-view .sb-simple-board .sb-action.is-done{background:#18713d!important;color:#fff!important;border-color:#18713d!important;opacity:1!important}
 #app-view #strip-rooms-view .sb-simple-board .sb-action:disabled:not(.is-done){opacity:.55}
 #app-view #strip-rooms-view .sb-simple-board .sb-action::before,#app-view #strip-rooms-view .sb-simple-board .sb-action::after{display:none!important}
}
@media(max-width:600px){#strip-rooms-view .sb-simple-board{padding:8px}#strip-rooms-view .sb-room{grid-template-columns:minmax(0,1fr);gap:10px;padding:10px}#strip-rooms-view .sb-number{font-size:1.6rem}}

#strip-rooms-view .card-order-toolbar,#strip-rooms-view .card-order-controls{display:none!important}

@layer surface-material.foundation{#app-view #strip-rooms-view .sb-simple-board .sb-action.is-done .sb-check{display:inline!important;visibility:visible!important;opacity:1!important;color:inherit!important;font-family:system-ui,sans-serif!important}}


/* Source: staff-directory.css */
#staff-view .employee-directory-panel{padding:18px;min-width:0}
#staff-view .employee-directory-heading{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
#staff-view .employee-directory-heading h2{margin:0;font-size:1.2rem}
#staff-view .employee-directory-toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
#staff-view .employee-directory-toolbar label{display:grid;gap:5px;font-size:.82rem;font-weight:600}
#staff-view .employee-search{flex:1 1 180px}
#staff-view .employee-directory-toolbar input,#staff-view .employee-directory-toolbar select{min-height:42px;width:100%;min-width:0;margin:0}
#staff-view .employee-directory-toolbar button{min-height:42px;margin:0}
#staff-view .employee-count{font-size:.8rem;margin:12px 0}
#staff-view .employee-directory-rows{border:1px solid var(--border);border-radius:12px;overflow:hidden}
#staff-view .employee-directory-row{display:grid;grid-template-columns:minmax(0,1fr) auto 16px;align-items:center;gap:14px;width:100%;min-height:58px;margin:0;padding:8px 14px;border:0;border-bottom:1px solid var(--border);border-radius:0;text-align:left;background:var(--panel);color:var(--ink);box-shadow:none;clip-path:none;transform:none;font:inherit;cursor:pointer}
#staff-view .employee-directory-row:last-child{border-bottom:0}
#staff-view .employee-directory-row:hover{background:color-mix(in srgb,var(--accent) 9%,var(--panel))}
#staff-view .employee-directory-row:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
#staff-view .employee-identity{display:flex;align-items:baseline;gap:14px;min-width:0;flex-wrap:wrap}
#staff-view .employee-identity strong{font-size:.95rem;overflow-wrap:anywhere}
#staff-view .employee-identity>span,.employee-assignment{font-size:.78rem;color:var(--muted);overflow-wrap:anywhere}
.employee-badges{display:flex;align-items:center;gap:10px}
.employee-badge{display:inline-flex;width:max-content;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--border);border-radius:99px;font-size:.72rem;line-height:1.3;font-weight:650;color:var(--ink);background:var(--panel)}
.employee-badge.is-active:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent)}
.employee-badge.is-inactive{color:var(--muted)}
dialog.employee-editor{position:fixed;inset:0 0 0 auto;box-sizing:border-box;margin:0;width:min(600px,94vw);max-width:100vw;height:100dvh;max-height:100dvh;padding:0;border:0;border-left:1px solid var(--border);border-radius:0;background:var(--panel);color:var(--ink);box-shadow:-16px 0 60px #0004;overflow:hidden;clip-path:none;transform:none}
dialog.employee-editor[open]{display:flex;flex-direction:column}
/* Join the existing functional override layer: themed !important dialog
   limits otherwise outrank every unlayered component declaration. */
@layer theme-studio{
 html body dialog#employee-editor.employee-editor{height:100dvh!important;max-height:100dvh!important;margin:0!important;inset:0 0 0 auto!important;overflow:hidden!important}
 @media(max-width:640px){html body dialog#employee-editor.employee-editor{width:100vw!important;max-width:100vw!important;border:0!important;border-radius:0!important;clip-path:none!important}}
}
dialog.employee-editor::backdrop{background:#0007;backdrop-filter:blur(3px)}
.employee-editor-header,.employee-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;flex:none;background:var(--panel);border-bottom:1px solid var(--border)}
.employee-editor-header h2{margin:4px 0 8px;font-size:1.35rem;overflow-wrap:anywhere}
.employee-editor-header>div{min-width:0}
.employee-editor-header .eyebrow{margin:0;font-size:.68rem}
.employee-editor-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 22px 24px}
.employee-editor-footer{border-top:1px solid var(--border);border-bottom:0;font-size:.78rem;padding-bottom:max(14px,env(safe-area-inset-bottom))}
.employee-section{padding:16px 0;border-bottom:1px solid var(--border)}
.employee-section>summary{font-size:1rem;font-weight:700;cursor:pointer;min-height:30px}
.employee-section form{display:grid;gap:14px;margin-top:14px;min-width:0}
.employee-section label{display:grid;gap:6px;font-size:.88rem;min-width:0}
.employee-editor input:not([type=checkbox]),.employee-editor select{box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:44px;margin:0}
.employee-editor input[type=checkbox]{width:20px;height:20px;flex:none}
.employee-section .employee-check{display:flex;align-items:center;min-height:44px}
.employee-editor button{min-height:42px;max-width:100%;white-space:normal;word-break:normal}
.employee-section-actions{display:flex;gap:8px;flex-wrap:wrap}
.employee-section p{font-size:.84rem;line-height:1.5;margin:8px 0}
.employee-lifecycle{margin-top:20px;padding-top:14px;border-top:1px solid var(--border)}
.employee-lifecycle button{margin:4px 6px 0 0}
.employee-editor-message:empty{display:none}
.employee-editor-message{padding:10px 12px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));border-radius:8px;overflow-wrap:anywhere}
.employee-access-embedded .staff-access-form{padding:0;max-width:none;border:0}
.employee-access-embedded .staff-access-toolbar{display:flex;flex-wrap:wrap;gap:8px}
.employee-access-embedded .staff-access-toolbar>label{flex:1 1 190px}
.employee-access-embedded .access-options{display:grid;grid-template-columns:1fr;gap:6px}
.employee-access-embedded .access-option{display:flex;align-items:flex-start;gap:9px;padding:8px;min-height:44px;overflow-wrap:anywhere}
.employee-access-embedded .access-option small{display:block}
.employee-access-embedded .staff-access-group-tools,.employee-access-embedded .staff-access-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:640px){
 .employee-editor-header,.employee-editor-footer{padding:14px 16px}
 .employee-editor-body{padding:0 16px 24px}
 #staff-view .employee-directory-panel{padding:12px}
 #staff-view .employee-directory-row{gap:8px;padding:9px 10px;min-height:60px}
 #staff-view .employee-identity{display:grid;gap:2px}
 .employee-badges{display:grid;gap:3px;justify-items:end;max-width:120px;text-align:right}
 .employee-assignment{font-size:.68rem}
 #staff-view .employee-directory-toolbar{gap:8px}
 #staff-view .employee-search{flex-basis:100%}
 #staff-view .employee-directory-toolbar>label:not(.employee-search){flex:1}
 .employee-editor-footer .muted{max-width:50%}
}


/* Source: common-areas-workspace.css */
.ca-workspace {--ca-line:var(--border-soft,var(--border));--ca-muted:var(--muted);color:var(--text);max-width:1440px;margin-inline:auto;padding:clamp(8px,2vw,20px)}
.ca-header {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.ca-header h2{font-size:1.3rem;margin:0}.ca-header p{margin:3px 0 0;color:var(--ca-muted);font-size:.82rem}.ca-header-actions,.ca-date,.ca-task-tools,.ca-task-line,.ca-filters,.ca-bulk{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ca-header-actions .button{font-size:.8rem}.ca-overview{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;padding:12px 0;border-block:1px solid var(--ca-line);font-size:.83rem;color:var(--ca-muted)}.ca-overview b{color:var(--text);font-size:1rem}.ca-overview progress{flex:1 1 160px;max-width:280px}.ca-workspace progress{height:5px;border:0;border-radius:4px;overflow:hidden;accent-color:var(--accent);background:var(--ca-line)}.ca-workspace progress::-webkit-progress-bar{background:var(--ca-line)}.ca-workspace progress::-webkit-progress-value{background:var(--accent);border-radius:4px}.ca-filters{margin:14px 0 6px}.ca-workspace :is(input,select,textarea),.ca-dialog :is(input,select,textarea){max-width:100%;min-width:0;box-sizing:border-box;background:var(--input-bg,var(--panel-bg));color:var(--text);border:1px solid var(--border-soft,var(--border));border-radius:7px;font:inherit;padding:8px}.ca-workspace input[type=checkbox],.ca-dialog input[type=checkbox]{width:19px;height:19px;accent-color:var(--accent)}.ca-date input{width:146px}.ca-feedback{min-height:1em;font-size:.82rem;margin:4px 0 8px}.ca-group{border-bottom:1px solid var(--ca-line)}.ca-group>summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;padding:13px 8px;font-size:.87rem;min-height:44px;box-sizing:border-box}.ca-group>summary::-webkit-details-marker{display:none}.ca-group>summary strong{flex:1;min-width:120px;overflow-wrap:anywhere}.ca-group-count{color:var(--ca-muted);font-size:.78rem}.ca-group>summary progress{width:75px}.ca-chevron{font-size:1.1rem;transition:transform .16s ease}.ca-group[open]>summary>.ca-chevron{transform:rotate(180deg)}.ca-group-body{padding:0 8px 6px}.ca-checklist{margin:3px 0 8px;border:1px solid var(--ca-line);border-radius:9px;background:var(--panel-bg,var(--panel))}.ca-checklist>summary{padding:9px 10px;font-size:.83rem}.ca-task{border-top:1px solid var(--ca-line);padding:7px 2px;transition:background .16s ease}.ca-task:first-child{border-top:0}.ca-task-line{flex-wrap:nowrap;min-height:42px;gap:10px}.ca-task-name{flex:1;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}.ca-task-name strong{font-size:.86rem;font-weight:550;overflow-wrap:anywhere}.ca-task-person,.ca-task-detail-content>small{font-size:.75rem;color:var(--ca-muted)}.ca-overdue{font-size:.7rem;color:var(--warning,var(--accent));border:1px solid currentColor;border-radius:5px;padding:1px 5px}.ca-task-line .button{flex-shrink:0;min-height:38px}.ca-icon{display:inline-grid;place-items:center;border:0;background:transparent;color:inherit;border-radius:6px;min-width:38px;min-height:38px;padding:5px;cursor:pointer;font:inherit;flex-shrink:0}.ca-icon:hover{background:var(--hover-bg,color-mix(in srgb,var(--text) 6%,transparent))}.ca-workspace :is(button,summary,input,select):focus-visible,.ca-dialog :is(button,input,textarea,select):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ca-issue-badge,.ca-warning{color:var(--warning,var(--accent));font-size:.77rem}.ca-complete-label,.ca-done{color:var(--success,var(--accent));font-size:.76rem;white-space:nowrap}.ca-task-detail-content{padding:10px 10px 12px 28px;font-size:.82rem;display:grid;gap:8px}.ca-task-detail-content p{margin:4px 0}.ca-task-tools{gap:6px}.ca-task-tools label{display:flex;align-items:center;gap:6px}.ca-task-tools select{max-width:230px}.ca-note,.ca-issue-detail{border-inline-start:2px solid var(--ca-line);padding:6px 10px;display:grid;gap:5px}.ca-note small,.ca-issue-detail small{color:var(--ca-muted)}.ca-history{margin-top:18px;border-top:1px solid var(--ca-line);font-size:.83rem}.ca-history>summary{cursor:pointer;padding:12px 2px}.ca-history-list{display:grid;gap:8px}.ca-history-list>details{border-bottom:1px solid var(--ca-line);padding:8px}.ca-history pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.72rem}.ca-help{font-size:.76rem;line-height:1.5;color:var(--ca-muted)}.ca-bulk{position:sticky;top:calc(var(--header-height,64px) + 8px);z-index:5;background:var(--panel-bg,var(--panel));border:1px solid var(--ca-line);border-radius:9px;padding:9px;margin-bottom:10px;box-shadow:var(--lit-edge)}.ca-bulk strong{font-size:.82rem}.ca-bulk select{max-width:210px}.ca-dialog{width:min(800px,calc(100vw - 28px));max-height:90dvh;border:1px solid var(--border);border-radius:14px;padding:18px;background:var(--panel-bg,var(--panel));color:var(--text);box-sizing:border-box}.ca-dialog::backdrop{background:rgb(0 0 0/.4)}.ca-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.ca-dialog h3{font-size:1.1rem;margin:0}.ca-dialog h4{font-size:.9rem;margin:14px 0 8px}.ca-dialog form{display:grid;gap:12px}.ca-dialog label{display:grid;gap:5px;font-size:.81rem}.ca-dialog textarea{min-height:80px;width:100%;resize:vertical}.ca-dialog small{color:var(--muted);font-size:.73rem}.ca-form-grid,.ca-rule{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ca-wide{grid-column:1/-1}.ca-check,.ca-dialog .ca-check{display:flex;align-items:center;gap:7px}.ca-builder-items{display:grid;gap:5px}.ca-builder-items>div{display:flex;align-items:center;gap:4px}.ca-builder-items input{flex:1;min-width:0}.ca-dialog footer{display:flex;gap:8px;flex-wrap:wrap}.ca-weekdays{display:flex;gap:7px;flex-wrap:wrap;grid-column:1/-1}.ca-weekdays label{display:flex;align-items:center;gap:3px}.ca-template-list{display:grid;gap:12px;margin-top:14px}.ca-template-list section>div{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border-soft);padding:7px 0}.ca-template-list section>div>button:first-child{border:0;background:transparent;color:inherit;text-align:left;display:grid;gap:5px;flex:1;padding:8px;cursor:pointer}.ca-dialog fieldset{border:1px solid var(--border-soft);border-radius:8px;margin:8px 0;padding:12px}.ca-workspace [hidden],.ca-dialog [hidden]{display:none!important}
@media(max-width:600px){.ca-workspace{padding:6px}.ca-header{gap:10px}.ca-header-actions{gap:5px}.ca-header-actions .button{min-height:40px;font-size:.72rem;padding:6px 9px}.ca-overview{gap:7px 14px}.ca-overview progress{flex-basis:100%;max-width:none}.ca-group>summary{flex-wrap:wrap;gap:5px 9px;padding:10px 2px}.ca-group>summary strong{flex-basis:calc(100% - 55px)}.ca-group>summary progress{width:55px}.ca-group-count{flex:1}.ca-group-body{padding-inline:0}.ca-task-line{gap:5px}.ca-task-line .button{font-size:.74rem;padding:7px;min-height:42px}.ca-task-person{display:none}.ca-task-name strong{font-size:.8rem}.ca-icon{min-width:32px;min-height:42px}.ca-task-detail-content{padding:8px 4px}.ca-bulk{top:8px;gap:6px}.ca-bulk select{max-width:160px}.ca-bulk .button{font-size:.72rem;min-height:40px}.ca-filters{gap:6px}.ca-filters select{max-width:180px}.ca-form-grid,.ca-rule{grid-template-columns:1fr}.ca-dialog{padding:12px}.ca-template-list section>div{flex-wrap:wrap}.ca-builder-items .ca-icon{min-width:30px}.ca-task-tools{align-items:stretch}.ca-task-tools select{max-width:100%}}
@media(prefers-reduced-motion:reduce){.ca-workspace *{transition:none!important;animation:none!important}}
/* Compact checklist: the area owns disclosure; carried work is visible beside today's work. */
.ca-area{margin-block:8px}.ca-area>summary{gap:8px;padding:9px 6px}.ca-group-count{font-variant-numeric:tabular-nums;white-space:nowrap}.ca-area>summary progress{height:3px;max-width:80px}.ca-finish-all{margin-inline-start:auto;white-space:nowrap}.ca-carried>h4,.ca-current>h4{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ca-muted);margin:8px 4px 3px}.ca-carried>h4{color:var(--warning,var(--accent))}.ca-carried{border-inline-start:2px solid color-mix(in srgb,var(--warning,var(--accent)) 40%,transparent);padding-inline-start:5px}.ca-task-line{flex-wrap:nowrap;gap:7px;padding:3px 2px;min-height:40px}.ca-task-name{min-width:0;flex:1}.ca-task-name strong{font-size:.84rem;font-weight:500;overflow-wrap:anywhere}.ca-task-name .ca-task-person{font-size:.7rem}.ca-task-line .button{padding:5px 9px;min-width:36px;min-height:36px;flex-shrink:0}.ca-task-done .ca-task-name strong{color:var(--ca-muted)}.ca-overdue{font-size:.68rem}.ca-checklist>summary{padding:6px 2px}.ca-notice{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:600px){.ca-area>summary strong{flex-basis:auto;flex:1;min-width:100px}.ca-area>summary progress{flex-basis:100%;max-width:none;order:5}.ca-task-line .button,.ca-task-line .ca-icon{min-height:44px}.ca-finish-all{min-height:40px!important}.ca-task-person{display:block}.ca-task-line{gap:4px}}
.ca-workspace .ca-current,.ca-workspace .ca-carried{margin:0;padding-block:0;background:transparent;box-shadow:none;border-radius:0}.ca-workspace .ca-current{padding-inline:0;border:0}.ca-workspace .ca-task{padding-block:3px}.ca-workspace .ca-task>details:not([open]){margin:0;padding:0;border:0}.ca-area>summary .ca-finish-all{font-size:.74rem;padding:5px 9px}


/* Source: work-room-row.css */
/* Shared housekeeping presentation; all layout is scoped to the two work tabs. */
:is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-header{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem .5rem;min-width:0;padding:.35rem .6rem;cursor:pointer}
:is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-toggle{display:flex;align-items:center;gap:.5rem;flex:1 1 200px;min-width:0;min-height:44px;padding:.2rem 0!important;background:transparent!important;border:0!important;box-shadow:none!important;color:inherit;font:inherit;text-align:left;cursor:pointer;flex-wrap:wrap}
:is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-toggle strong{font-size:1.12rem!important;font-variant-numeric:tabular-nums}
.work-room-chevron{color:var(--accent);width:.7rem;flex-shrink:0;font-size:1.15rem}
.work-room-status{font-size:.76rem;line-height:1.3;padding:.2rem .5rem;border:1px solid var(--border);border-radius:var(--radius-s,6px);background:color-mix(in srgb,var(--accent) 8%,transparent);max-width:100%;overflow-wrap:anywhere}
.work-room-status[data-phase=ready],.work-room-status[data-phase=guest-messaged]{background:color-mix(in srgb,var(--success,var(--accent)) 15%,transparent)}
.work-room-status[data-phase=sent-back],.work-room-status[data-phase=rework]{border-color:var(--danger,var(--accent))}
.work-room-flags,.work-room-quick{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;min-width:0}
.work-room-flags:empty,.work-room-quick:empty{display:none}
.work-room-helper{font-size:.72rem;color:var(--muted)}
html[data-theme] :is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-quick .button{width:auto!important;min-width:0;min-height:44px!important;padding:.35rem .55rem!important;font-size:.78rem!important;line-height:1.25;white-space:normal!important;max-width:100%}
html[data-theme] :is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-detail{border-top:1px solid var(--border);padding:.65rem .8rem;min-width:0}
html[data-theme] :is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-detail[hidden]{display:none!important}
html[data-theme] :is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-detail>.adaptive-room-card{background:transparent;box-shadow:none;border:0;padding:0}
html[data-theme] #personal-rooms .pr-grid,html[data-theme] #assignment-board .ab-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:.45rem}
html[data-theme] #personal-rooms .personal-room,html[data-theme] #assignment-board .ab-room{padding:0!important;margin:0!important;min-height:0!important;min-width:0;border:1px solid var(--border);border-radius:var(--radius-m,10px);background:var(--panel,var(--surface));box-shadow:none;animation:none!important;transition:none!important}
#personal-rooms .pr-summary{padding:0 0 .5rem;margin-bottom:.5rem;border:0;background:transparent}
#personal-rooms .pr-summary>strong{font-size:.95rem}
#personal-rooms .pr-summary h2{font-size:1.2rem;margin:0 0 .3rem}
#personal-rooms .pr-summary progress{height:.35rem;margin:.4rem 0;max-width:430px}
#personal-rooms .pr-summary p{font-size:.8rem;display:inline;margin-right:.5rem}
#personal-rooms .pr-connection{font-size:.72rem;margin-top:.3rem}
#personal-rooms .pr-toolbar{margin-bottom:.65rem;gap:.5rem}
#personal-rooms .pr-toolbar label{flex:0 1 175px}
#personal-rooms .pr-toolbar>.button{font-size:.8rem;padding:.35rem .6rem}
#personal-rooms .pr-sections>details{margin-bottom:.65rem}
#personal-rooms .pr-sections>details>summary,#manager-my-rooms .mm-group>summary{display:flex;align-items:center;gap:.45rem;font-size:.9rem;font-weight:600;min-height:44px;padding:.35rem .15rem;margin:0;border:0;cursor:pointer;list-style:revert}
#personal-rooms .pr-section-count,#manager-my-rooms .room-list-count{font-size:.75rem;font-variant-numeric:tabular-nums}
#manager-my-rooms{gap:.65rem}
#manager-my-rooms .mm-active{display:grid;gap:.55rem}
#manager-my-rooms .mm-row{display:block;padding:0}
#manager-my-rooms .mm-list{margin-top:.15rem;gap:.45rem}
#manager-my-rooms .mm-detail:not([hidden]){animation:none}
#manager-my-rooms .mm-detail{border-top:0;padding:0}
#manager-my-rooms .mm-inspection{padding:.65rem}
#manager-my-rooms .mm-badges:empty{display:none}
#manager-my-rooms .mm-heading h2{font-size:1.2rem}
#manager-my-rooms .mm-progress{font-size:.82rem}
#assignment-board .ab-column{border-radius:var(--radius-m,10px)}
#assignment-board .ab-column>summary{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .8rem;padding:.5rem .7rem;min-height:48px}
#assignment-board .ab-column>summary progress{width:90px;margin:0 0 0 auto;max-width:20%;height:.35rem}
#assignment-board .ab-staff-name{margin:0;flex:1 1 140px}
#assignment-board .ab-staff-counts,#assignment-board .ab-staff-total{font-size:.78rem}
#assignment-board .ab-room-list{padding:.35rem .5rem;gap:.35rem}
#assignment-board .ab-floor-rooms{display:grid;gap:.35rem}
#assignment-board .work-room-pick{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:32px}
#assignment-board .work-room-pick input{width:20px;height:20px;min-height:20px;margin:0}
#assignment-board .ab-batch{gap:.4rem;padding:.5rem;background:var(--panel,var(--surface));border:1px solid var(--border);box-shadow:0 3px 12px color-mix(in srgb,var(--text) 10%,transparent)}
#assignment-board .ab-secondary{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}
@media(hover:hover){.work-room-header:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}}
@media(max-width:600px){
 :is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-header{gap:.2rem .35rem;padding:.25rem .45rem}
 :is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-toggle{flex-basis:155px;gap:.35rem}
 :is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-quick{flex-basis:100%;margin-left:1.05rem}
 #assignment-board .work-room-quick{margin-left:2rem}
 .work-room-status{font-size:.72rem}
 #personal-rooms .pr-toolbar label{flex:1 1 130px}
 #personal-rooms .pr-toolbar>.button{flex:1 1 auto}
 #assignment-board .ab-column>summary progress{width:60px}
 :is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-detail{padding:.5rem}
}
#manager-my-rooms .mm-tools>label{display:flex;flex:1 1 155px;flex-direction:column;align-items:stretch;gap:.25rem;min-width:0}
#manager-my-rooms .mm-tools input,#manager-my-rooms .mm-tools select{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#manager-my-rooms .mm-tools>span{font-size:.75rem;flex:0 1 auto}
#personal-rooms [data-pr-section]>summary::before,#manager-my-rooms .mm-group>summary::before{content:'›';color:var(--accent);width:.7rem;text-align:center;flex-shrink:0}
#personal-rooms [data-pr-section][open]>summary::before,#manager-my-rooms .mm-group[open]>summary::before{content:'⌄'}
#assignment-board .ab-column>summary progress{accent-color:var(--accent);border:0;background:var(--border)}
#assignment-board .ab-column>summary progress::-webkit-progress-bar{background:var(--border)}
#assignment-board .ab-column>summary progress::-webkit-progress-value{background:var(--accent)}
#assignment-board .ab-column>summary progress::-moz-progress-bar{background:var(--accent)}
#assignment-board .ab-drag-handle{cursor:grab;align-self:center;color:var(--muted);font-size:1rem;padding:.5rem .15rem;user-select:none}
#assignment-board .ab-drag-handle:active{cursor:grabbing}
/* Completed housekeeping steps stay visibly reversible until inspection. */
.work-room-quick .is-complete,.arc-actions .is-complete { background:var(--success,#2f7850); color:#fff; border-color:var(--success,#2f7850); }


/* Source: my-rooms-outstanding.css */
/* My Rooms only: keep theme surfaces, while room work owns the usable space. */
#myrooms-view .myrooms-outstanding,#personal-room-dialog .myrooms-outstanding {min-width:0;margin:10px 0 0;}
#myrooms-view .myrooms-outstanding header,#personal-room-dialog .myrooms-outstanding header {display:flex;align-items:center;gap:8px;margin:0 0 3px;padding:0;}
#myrooms-view .myrooms-outstanding h3,#personal-room-dialog .myrooms-outstanding h3 {font:inherit;font-weight:700;font-size:.86rem;margin:0;line-height:1.35;}
.myrooms-outstanding-count {color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums;}
#myrooms-view .myrooms-outstanding ul,#personal-room-dialog .myrooms-outstanding ul {list-style:none;padding:0;margin:0;display:grid;gap:0;}
#myrooms-view .myrooms-outstanding-item,#personal-room-dialog .myrooms-outstanding-item {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 0;margin:0;min-width:0;border:0;border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent);}
#myrooms-view .myrooms-outstanding-item:last-child,#personal-room-dialog .myrooms-outstanding-item:last-child {border:0;}
.myrooms-outstanding-copy {display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;font-size:.87rem;line-height:1.4;overflow-wrap:anywhere;}
.myrooms-outstanding-copy>span {flex:1 1 110px;min-width:0;}
.myrooms-outstanding-copy>small {flex-basis:100%;font-size:.72rem;color:var(--muted);}
.myrooms-outstanding-copy .fix-photo-thumb {width:32px;height:32px;}
html #app-view #myrooms-view .myrooms-outstanding-item .button,html #personal-room-dialog .myrooms-outstanding-item .button {min-height:40px!important;min-width:76px!important;width:auto!important;max-width:100%;padding:6px 10px!important;font-size:.8rem!important;line-height:1.2;white-space:normal;}
#myrooms-view .myrooms-items-clear,#personal-room-dialog .myrooms-items-clear {font-size:.82rem;margin:6px 0;color:var(--muted);}
#myrooms-view .myrooms-item-add,#personal-room-dialog .myrooms-item-add {border:0;background:none;padding:0;margin:5px 0 0;}
#myrooms-view .myrooms-item-add>summary,#personal-room-dialog .myrooms-item-add>summary {font-size:.78rem;cursor:pointer;min-height:36px;display:flex;align-items:center;padding:0;color:var(--accent);}
#myrooms-view .need-add-form,#personal-room-dialog .need-add-form {display:flex;gap:6px;margin:0;min-width:0;}
#myrooms-view .need-add-form input,#personal-room-dialog .need-add-form input {flex:1;min-width:0;width:0;min-height:40px;padding:6px 9px;font-size:.85rem;}
#myrooms-view .pr-room-note {margin:4px 0;font-size:.83rem;line-height:1.4;}
html #app-view #myrooms-view .adaptive-room-card {min-width:0;padding:0;margin:0;gap:6px;}
html #app-view #myrooms-view .arc-assigned {font-size:.8rem;margin:0;line-height:1.4;}
html #app-view #myrooms-view .arc-action-layout,html #app-view #myrooms-view .arc-action-group,html #app-view #myrooms-view .arc-actions {display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin:0;padding:0;border:0;}
html #app-view #myrooms-view .arc-action-group {flex:1 1 auto;}
html #app-view #myrooms-view .arc-actions {flex:1 1 auto;}
html #app-view #myrooms-view .arc-action-layout .button {flex:1 1 110px;min-height:40px!important;min-width:0!important;max-width:100%;font-size:.82rem!important;padding:6px 9px!important;line-height:1.25;white-space:normal!important;}
html #app-view #myrooms-view .arc-secondary-actions {display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0;padding:0;border:0;min-width:0;}
html #app-view #myrooms-view .arc-secondary-actions label {display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:.76rem;min-width:0;}
html #app-view #myrooms-view .arc-secondary-actions select {min-height:40px!important;max-width:100%;min-width:0;padding:6px 9px!important;font-size:.8rem!important;}
#manager-my-rooms .mm-detail {padding:8px 10px;}
#manager-my-rooms .mm-work>.adaptive-room-card {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;}
#manager-my-rooms .mm-work>.adaptive-room-card>.arc-head {grid-column:2;grid-row:1;justify-content:flex-end;}
#manager-my-rooms .mm-work>.adaptive-room-card>.arc-assigned {grid-column:1;grid-row:1;}
#manager-my-rooms .mm-work>.adaptive-room-card>.arc-status {display:none;}
#manager-my-rooms .mm-work>.adaptive-room-card>.arc-action-layout {grid-column:1/-1;}
#manager-my-rooms .mm-work>.adaptive-room-card>.arc-secondary-actions {grid-column:1/-1;}
#manager-my-rooms .mm-secondary:empty {display:none;}
html #app-view #personal-rooms .personal-room {padding:10px!important;}
#personal-rooms .pr-grid {gap:10px;}
@media(max-width:600px){
 html #app-view #myrooms-view .myrooms-outstanding-item .button,html #personal-room-dialog .myrooms-outstanding-item .button,html #app-view #myrooms-view .arc-action-layout .button,html #app-view #myrooms-view .arc-secondary-actions select {min-height:44px!important;}
 #myrooms-view .myrooms-outstanding-copy {font-size:.84rem;}
 #myrooms-view .myrooms-item-add>summary {min-height:40px;}
 #manager-my-rooms .mm-detail {padding:7px 9px;}
}
html #app-view #myrooms-view .condition-inline {min-width:0;max-width:100%;width:auto;}
html #app-view #myrooms-view .condition-inline label {flex-wrap:nowrap;}
html #app-view #myrooms-view .condition-inline select {width:auto;flex:1 1 auto;}
#myrooms-view .myrooms-item-tools,#personal-room-dialog .myrooms-item-tools {display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 12px;margin-top:4px;}
#myrooms-view .myrooms-item-tools>.myrooms-item-add,#personal-room-dialog .myrooms-item-tools>.myrooms-item-add {flex:1 1 110px;margin:0;min-width:0;}
html #app-view #myrooms-view .myrooms-item-add>summary,html #personal-room-dialog .myrooms-item-add>summary {border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;}
html #app-view #myrooms-view .myrooms-item-tools>[data-ops=report],html #personal-room-dialog .myrooms-item-tools>[data-ops=report] {min-height:40px!important;padding:4px 7px!important;margin:0;font-size:.76rem!important;}
html #app-view #myrooms-view .work-room-quick {display:flex;flex-wrap:wrap;gap:5px;min-width:0;}
html #app-view #myrooms-view .work-room-quick>.button {min-width:0!important;max-width:100%;font-size:.8rem!important;padding:6px 8px!important;line-height:1.25;}
@media(max-width:600px){
 html #app-view #myrooms-view .work-room-quick>.button {flex:1 1 calc(50% - 3px);min-height:44px!important;}
 html #app-view #myrooms-view .myrooms-item-tools>[data-ops=report],html #app-view #myrooms-view .myrooms-item-add>summary {min-height:44px!important;}
}


/* Source: linen-modern.css */
/* Compact Linen workspace: theme-owned colors, generous hit areas, quiet chrome. */
#linen-view .linen-workspace > .panel-head { padding: 14px 16px 4px; border: 0; }
#linen-view .linen-workspace h2 { font-size: 20px; }
#linen-view .linen-kpi-strip { display:flex; flex-wrap:wrap; gap:12px 28px; padding:10px 16px; border-bottom:1px solid var(--border-soft); }
#linen-view .linen-kpi { display:flex; align-items:baseline; gap:9px; border:0; border-radius:0; background:none; padding:0; }
#linen-view .linen-kpi strong { font-size:18px; }
#linen-view .linen-kpi small { font-size:10px; font-weight:400; color:var(--muted); }
#linen-view .linen-workspace-tabs { display:flex; width:fit-content; max-width:calc(100% - 32px); padding:3px; gap:2px; margin:8px 16px; border:1px solid var(--border-soft); border-radius:10px; background:var(--well); }
#linen-view .linen-workspace-tabs button { flex:0 1 auto; min-height:36px; padding:6px 12px; border:0!important; border-radius:7px; font-size:12px; box-shadow:none!important; background:transparent; color:var(--muted); }
#linen-view .linen-workspace-tabs button[aria-selected="true"] { color:var(--text); background:color-mix(in srgb,var(--accent) 16%,var(--well)); box-shadow:inset 0 -2px var(--accent)!important; }
#linen-view .linen-workspace-tabs button[aria-selected="true"]::before { content:none; }
#linen-view .linen-workspace-table-wrap { max-height: min(72vh,900px); overflow:auto; overscroll-behavior:contain; }
#linen-view .linen-workspace-table { table-layout:fixed; font-size:12px; }
#linen-view .linen-workspace-table thead th { position:sticky; top:0; z-index:3; background:var(--well); color:var(--text); font-size:11px; white-space:normal; line-height:1.35; }
#linen-view .linen-workspace-table :is(th,td) { padding:7px 8px; overflow-wrap:anywhere; vertical-align:middle; }
#linen-view .linen-workspace-table tbody th strong { font-size:12px; }
#linen-view .linen-workspace-table tbody th small { font-size:10px; font-weight:400; line-height:1.4; }
#linen-view .linen-workspace-table td.linen-shortage { color:var(--text); font-weight:700; }
#linen-view .linen-workspace-table .linen-quick-wash { min-width:0; }
#linen-view .linen-workspace .linen-entry-form { display:flex; flex-wrap:wrap; gap:4px; }
#linen-view .linen-workspace .linen-entry-form input { width:52px; min-height:34px; }
#linen-view .linen-workspace .linen-entry-form .button { padding:5px; font-size:11px; min-height:34px; }
#linen-view .linen-inline-value { border:1px solid transparent; border-radius:6px; padding:5px 8px; background:transparent; color:var(--text); font:inherit; font-variant-numeric:tabular-nums; min-height:34px; cursor:text; }
#linen-view .linen-inline-value:hover { border-color:var(--border-soft); background:var(--well); }
#linen-view [data-linen-inline] { max-width:100%; box-sizing:border-box; }
#linen-view input[data-linen-inline] { width:84px; min-width:0; min-height:36px; padding:6px; text-align:right; font-variant-numeric:tabular-nums; }
#linen-view input[data-linen-inline][readonly] { background:transparent; border-color:transparent; cursor:text; }
#linen-view [data-inline-feedback] { display:block; white-space:normal; font-size:10px; color:var(--muted); text-align:start; }
#linen-view [data-inline-feedback][role="alert"] { color:var(--text); border-left:3px solid var(--pink,var(--accent)); padding-left:5px; }
#linen-view .linen-stepper { display:flex; gap:4px; flex-wrap:wrap; }
#linen-view .linen-stepper .button { min-height:36px; min-width:36px; padding:5px; }
#linen-view .linen-recent-change { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:4px 16px; font-size:12px; }
#linen-view .linen-category-heading th { padding:4px 12px!important; background:color-mix(in srgb,var(--accent) 5%,var(--well))!important; text-align:left; }
#linen-view .linen-category-heading button { width:100%; text-align:left; min-height:34px; font-size:11px; letter-spacing:.03em; color:var(--text); }
#linen-view .linen-category-actions { display:flex; gap:5px; }
#linen-view .linen-category-actions .button { padding:3px 7px; min-height:30px; font-size:11px; }
#linen-view .linen-workspace .linen-stock-grid { display:block; }
#linen-view .linen-count-category { margin:0; border:0; border-top:1px solid var(--border-soft); padding:0; }
#linen-view .linen-count-category summary { padding:8px 0; font-size:12px; font-weight:600; cursor:pointer; }
#linen-view .linen-workspace .linen-stock-row { grid-template-columns:minmax(0,1fr) auto; min-height:42px; border-bottom:1px solid var(--border-soft); margin:0; }
#linen-view .linen-workspace .linen-stock-row .linen-stepper,#linen-view .linen-stock-row [data-inline-feedback] { grid-column:2; }
#linen-view .linen-workspace .linen-counts-card { border:0; box-shadow:none; background:transparent; }
#linen-view .linen-workspace .linen-counts-card .muted { font-size:12px; line-height:1.4; }
#linen-view .linen-workspace .linen-details { margin:0 16px; border:0; border-top:1px solid var(--border-soft); }
#linen-view .linen-workspace .linen-details > summary { font-size:12px; padding:9px 0; }
#linen-view .linen-workspace .linen-help .linen-details-body { padding:0; }
#linen-view .linen-workspace .linen-workspace-hint { padding:5px 0 10px; }
@media(max-width:900px){
 #linen-view .linen-workspace-table,#linen-view .linen-workspace-table tbody { display:block; width:100%!important; }
 #linen-view .linen-workspace-table tr { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 12px; padding:10px 14px; }
 #linen-view .linen-workspace-table :is(td,th) { width:auto!important; min-width:0!important; max-width:none!important; height:auto; position:static!important; white-space:normal; }
 #linen-view .linen-workspace-table tbody th { grid-column:1/-1; }
 #linen-view .linen-workspace-table td.linen-quick-wash { grid-column:1/-1; }
 #linen-view .linen-workspace-table td.linen-quick-wash::before { content:none; }
 #linen-view .linen-workspace-table tr.linen-category-heading { display:block; padding:0; }
 #linen-view .linen-category-heading th { display:block; }
 #linen-view .linen-workspace-table [hidden] { display:none!important; }
 #linen-view .linen-workspace-table-wrap { max-height:none; overflow:visible; }
 #linen-view .linen-workspace .linen-entry-form input,#linen-view .linen-workspace .linen-entry-form .button { min-height:44px; }
 #linen-view .linen-workspace :is(.linen-inline-value,input[data-linen-inline],.linen-stepper .button) { min-height:44px; }
}
@media(max-width:560px){
 #linen-view .linen-workspace-tabs { max-width:calc(100% - 24px); margin:8px 12px; width:auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
 #linen-view .linen-workspace-tabs button { min-height:44px; padding:5px 7px; white-space:normal; flex-basis:auto; }
 #linen-view .linen-kpi-strip { gap:8px 16px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 #linen-view .linen-kpi { flex-wrap:wrap; gap:3px 8px; }
 #linen-view .linen-workspace .linen-stock-row { font-size:13px; }
}
#linen-view .linen-custom-number { width:100%; min-width:0; min-height:40px; text-align:right; }
#linen-view .linen-workspace .linen-entry-form .linen-wash-step { display:none; }
@media(max-width:900px){#linen-view .linen-workspace .linen-entry-form .linen-wash-step { display:inline-flex; justify-content:center; align-items:center; min-width:44px; }}
#linen-view .linen-workspace-table thead th { padding-right:26px!important; vertical-align:middle; }
#linen-view .linen-workspace-table .sheet-column-menu { position:absolute!important; right:2px; top:50%; transform:translateY(-50%); width:22px!important; min-width:22px!important; height:28px!important; min-height:28px!important; padding:0!important; border:0!important; border-radius:4px!important; background:transparent!important; color:var(--text)!important; box-shadow:none!important; font-size:14px; }
#linen-view .linen-workspace-tabs button { background:transparent!important; border:0!important; }
#linen-view .linen-workspace-tabs button[aria-selected="true"] { background:color-mix(in srgb,var(--accent) 16%,var(--well))!important; color:var(--text)!important; }
#linen-view .linen-workspace .strip-carts-panel > .panel-body { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 16px 6px; flex-wrap:wrap; }
#linen-view .linen-workspace .linen-cart-summary { padding:0; gap:10px; }
#linen-view .linen-workspace .linen-cart-summary > div { display:block; }
#linen-view .linen-workspace .linen-cart-summary .strip-carts-total { font-size:11px; }
#linen-view .linen-workspace .linen-cart-summary .strip-carts-total strong { font-size:14px; }
#linen-view .linen-cart-summary > div > .muted { display:none; }
#linen-view .linen-workspace .strip-carts-panel .linen-details { margin:0; border:0; }
#linen-view .linen-workspace .linen-help { margin-top:0; }
@media(max-width:900px){#linen-view .linen-workspace-table .sheet-column-menu { min-width:44px!important; min-height:44px!important; }}
#linen-view .linen-workspace-table.operations-sheet tbody :is(td,th) { border-right:0!important; border-bottom:1px solid var(--border-soft)!important; }
#linen-view .linen-workspace-table.operations-sheet thead th { background:var(--well)!important; border-right:0!important; }
#linen-view .linen-workspace-table.operations-sheet tbody th { font-family:inherit; }
@media(max-width:900px){
 #linen-view .linen-workspace-table.operations-sheet tbody :is(th,td) { padding:0!important; border:0!important; }
 #linen-view .linen-workspace-table.operations-sheet tbody tr { gap:6px 12px; padding:10px 14px; border-bottom:1px solid var(--border-soft); }
 #linen-view .linen-workspace-table.operations-sheet tbody th strong { font-size:14px; }
 #linen-view .linen-workspace-table td:before { font-size:10px; line-height:1.3; }
 #linen-view .linen-workspace-table td { font-size:14px; font-variant-numeric:tabular-nums; }
 #linen-view .linen-workspace-table.operations-sheet .linen-category-heading th { padding:0 12px!important; }
 #linen-view .linen-category-heading button { min-height:44px; }
 #linen-view .linen-workspace-table.operations-sheet tbody .linen-category-heading { padding:0; }
 #linen-view .linen-workspace .matrix-toolbar-mobile .button { min-height:44px!important; }
 #linen-view .linen-workspace .linen-category-actions .button { min-height:44px; }
 #linen-view .linen-workspace .linen-workspace-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
 #linen-view .linen-workspace .linen-workspace-tabs button { min-width:0!important; width:auto!important; flex-basis:auto!important; }
}
#linen-view [data-inline-feedback] .button { animation:none!important; transition:none!important; transform:none!important; }
@media(max-width:900px){#linen-view .linen-workspace summary { min-height:44px; box-sizing:border-box; padding-top:11px; padding-bottom:11px; }}

#linen-view .linen-workspace-table.operations-sheet tbody :is(td,th):not(.sheet-selected,.sheet-frozen,.field-tone-accent,.field-tone-success,.field-tone-warning,.field-tone-danger) { background:transparent!important; }
#linen-view .linen-workspace-table.operations-sheet td.sheet-match { box-shadow:inset 0 -3px 0 var(--accent)!important; }
/* The shared toolbar measures its container, not the viewport. */
#linen-view .matrix-toolbar[data-matrix-toolbar-mode="mobile"] .matrix-toolbar-desktop { display:none!important; }
#linen-view .matrix-toolbar[data-matrix-toolbar-mode="mobile"] .matrix-toolbar-mobile { display:flex!important; }
#linen-view .matrix-toolbar[data-matrix-toolbar-mode="desktop"] .matrix-toolbar-mobile { display:none!important; }
#linen-view .linen-workspace .linen-entry-form input { width:64px; padding:6px; font-size:12px; }
#linen-view .linen-workspace-table .tracker-custom-cell { background:var(--well); color:var(--text); border:1px solid var(--border-soft); border-radius:5px; font:inherit; font-variant-numeric:tabular-nums; text-align:right; }
#linen-view .linen-workspace-table .tracker-custom-cell:not(:disabled):hover { border-color:var(--accent); }

/* Compact controls retain the current theme and accessible focus styles. */
#linen-view .linen-cart-total-label { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:12px; color:var(--text); }
#linen-view [data-strip-cart-total] { width:76px; min-height:40px; padding:6px 8px; font:inherit; font-variant-numeric:tabular-nums; text-align:center; }
#linen-view [data-strip-cart-status] { min-width:1em; font-size:12px; }
#linen-view [data-strip-cart-status][role="alert"] { width:100%; }
#linen-view .linen-workspace-tabs { flex-wrap:wrap; }
#linen-view .linen-workspace .linen-cart-summary { justify-content:flex-start; padding:0; }
#linen-view .linen-workspace .linen-entry-form { align-items:center; }
#linen-view .linen-workspace .linen-stock-row { padding-block:4px; }
@media(max-width:600px) {
 #linen-view .linen-workspace-tabs { width:auto; max-width:none; margin:8px 12px; }
 #linen-view .linen-workspace-tabs button { flex:1 1 auto; min-height:44px; padding:6px 9px; }
 #linen-view .linen-cart-total-label { gap:8px; }
 #linen-view .linen-entry-form :is(input,button) { min-height:44px!important; }
}


/* Source: operations-mobile-sheet.css */
/* Purpose-built phone presentation. Desktop tables keep their existing DOM. */
.ops-mobile-sheet{display:none}
.ops-mobile-active .ops-mobile-sheet{display:block;min-width:0;color:var(--text);padding-bottom:12px}
html body .inline-operations-grid.ops-mobile-active :is(.dc-scroll,.mm-scroll,.operations-sheet-scroll,[data-room-mobile]){display:none!important}
.ops-mobile-active :is(.dc-heading,.mm-heading){gap:8px;padding:10px 2px;min-width:0}
.ops-mobile-active :is(.dc-heading,.mm-heading) :is(.eyebrow,p,small){display:none}
.ops-mobile-active :is(.dc-heading,.mm-heading) h2{margin:0;font-size:1.12rem}
.ops-mobile-active :is(.dc-master,.mm-master){padding:10px!important;min-width:0}
.om-toolbar,.om-rooms,.om-room-items{display:grid;gap:8px;min-width:0}
.om-search{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:6px}
.ops-mobile-sheet :is(input,select){box-sizing:border-box;max-width:100%;min-width:0;font:inherit;font-size:16px;color:var(--text);background:var(--well,var(--panel));border:1px solid var(--border);border-radius:8px;padding:8px;min-height:44px}
.ops-mobile-sheet button,.ops-mobile-sheet summary{box-sizing:border-box;font:inherit;color:var(--text);touch-action:manipulation}
.om-filters>summary{display:grid;place-items:center;width:44px;height:44px;cursor:pointer;border:1px solid var(--border);border-radius:8px;font-size:22px;list-style:none}
.om-filters[open]{grid-column:1/-1}.om-filters[open]>summary{margin-left:auto}
.om-filters>div{display:grid;gap:8px;padding:10px 0}.om-filters label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;min-width:0}.om-filters input[type=checkbox]{width:20px;min-height:20px;margin:0;accent-color:var(--accent)}
.om-modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:3px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--panel) 80%,transparent)}
.om-modes button{min-height:44px;border:0;border-radius:7px;background:transparent;font-size:12px;padding:4px;white-space:normal;line-height:1.2}
.om-modes button[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent);font-weight:700}
.om-chips,.om-bulk{display:flex;flex-wrap:wrap;gap:6px}.om-chips button,.om-bulk button{min-height:40px;padding:6px 10px;border:1px solid var(--border);border-radius:20px;background:var(--panel);font-size:12px}
.om-bulk{position:sticky;top:0;z-index:6;background:var(--panel);border:1px solid var(--accent);border-radius:10px;padding:8px}.om-bulk strong{flex:1 0 100%;font-size:12px}
.om-feedback{margin:3px 0;font-size:12px;min-height:0;overflow-wrap:anywhere}.om-feedback:empty{display:none}.om-feedback[role=alert]{color:var(--red,var(--text))}
.om-room{min-width:0;overflow-anchor:none;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--panel) 93%,transparent);overflow:clip}
.om-room-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 8px;width:100%;text-align:left;padding:10px!important;background:transparent;border:0;border-radius:0;min-height:66px}
.om-room-identity{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;min-width:0}.om-room-identity>strong{font-size:15px;font-variant-numeric:tabular-nums}.om-room-identity .room-access{display:flex;flex-wrap:wrap;gap:3px}.om-room-identity .ra-badge{font-size:10px!important;padding:2px 5px!important;min-height:0!important}.om-room-identity .ra-more{display:none}
.om-room-progress{display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 6px;text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.om-room-progress small{font-size:11px}.om-issue{grid-column:1/-1;font-size:11px;color:var(--amber,var(--accent));font-weight:700}
.om-room-header progress{grid-column:1/-1;width:100%;height:3px;accent-color:var(--accent);border:0;border-radius:4px;overflow:hidden}
.om-room-items{padding:0 10px 10px;gap:0}.om-item{border-top:1px solid color-mix(in srgb,var(--border) 55%,transparent);padding:9px 0;min-width:0}
.om-item-name{display:flex;align-items:center;gap:6px;margin-bottom:6px;min-width:0}.om-item-name strong{font-size:13px;flex:1;min-width:0;overflow-wrap:anywhere}.om-item-name input{width:22px;height:22px;min-height:22px;margin:0;accent-color:var(--accent)}.om-item-status{font-size:10px;max-width:45%;overflow-wrap:anywhere;color:var(--muted)}
.om-status-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.om-status-actions button{min-height:44px;border:1px solid var(--border);border-radius:8px;padding:6px;background:transparent;font-size:13px;line-height:1.2;overflow-wrap:anywhere;box-shadow:none}
.om-status-actions button[aria-pressed=true]{font-weight:750;outline:1px solid currentColor;outline-offset:-2px}.om-status-actions button[aria-pressed=true][data-kind=resolved]{background:color-mix(in srgb,var(--green,var(--accent)) 16%,var(--panel));color:var(--green,var(--text))}.om-status-actions button[aria-pressed=true][data-kind=issue]{background:color-mix(in srgb,var(--red,var(--accent)) 13%,var(--panel));color:var(--red,var(--text))}.om-status-actions button:disabled{opacity:.6}.ops-mobile-sheet[aria-busy=true] .om-status-actions{opacity:.65}
.om-date{display:block;margin-top:4px;font-size:10px;color:var(--muted)}.om-empty{padding:16px 8px;font-size:13px;color:var(--muted)}.om-more{margin:8px 0}.om-more>summary{min-height:44px;cursor:pointer;font-size:13px;padding:10px 2px}.om-more[open]>div{display:grid;gap:10px;padding:8px 0}.om-more :is(.dc-tools,.mm-tools,.ri-filters,.dc-filters,.mm-filters){display:flex!important;flex-wrap:wrap;gap:6px;min-width:0}.om-more .sheet-toolbar{position:static}.om-more label{min-width:0;max-width:100%}.om-more .button{min-height:44px!important;white-space:normal!important;max-width:100%}
.om-extra{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 0;border-top:1px solid var(--border);font-size:12px}.om-extra>strong{flex:1}.om-extra button{min-height:44px;max-width:100%;border:1px solid var(--border);border-radius:8px;background:var(--well);padding:6px 10px}.om-item-picker{display:flex;gap:8px;align-items:center;font-size:12px;margin:8px 0}.om-item-picker select{flex:1}.om-by-room{padding-top:8px;font-size:13px}
.ops-mobile-sheet :is(button,summary,input,select):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(prefers-reduced-motion:no-preference){.om-room-items{animation:om-reveal .14s ease-out}@keyframes om-reveal{from{opacity:.5;transform:translateY(-2px)}to{opacity:1;transform:none}}}
@media print{.ops-mobile-sheet{display:none!important}.ops-mobile-active :is(.dc-scroll,.mm-scroll,.operations-sheet-scroll){display:block!important}}

.ops-mobile-active .inline-grid-toolbar [data-inline-feedback]{display:none}.ops-mobile-active .inline-grid-toolbar:not(:has([data-inline-undo]:not([hidden]))):not([data-has-selection=true]){display:none}.om-feedback,.om-feedback:empty{display:block;min-height:16px;margin:0;font-size:12px}.om-room-identity .operations-room-cell{display:contents}.om-room-identity .operations-pet{font-size:10px;padding:2px 5px}
.om-replaced,.om-records button{min-height:44px;background:var(--well);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;margin-top:5px;font:inherit;font-size:12px}.om-records{font-size:13px}.om-records label{display:grid;gap:4px;margin-top:6px}.om-records summary{min-height:44px;padding:8px 0;cursor:pointer}
.om-savebar{position:sticky;top:0;z-index:7;background:var(--panel);border-radius:8px}.om-savebar .om-bulk,.om-savebar .inline-grid-toolbar{position:static!important}.om-savebar:not(:has(.om-bulk)):not(:has([data-inline-undo]:not([hidden]))){position:static;background:transparent}.om-savebar .inline-grid-toolbar{border:0;margin:0;padding:4px}.om-savebar [data-inline-undo]{min-height:44px!important}


/* Source: operations-mobile-layout.css */
/* Layout adaptations for existing operational editors; calculation owners stay intact. */
.schedule-mobile-days,.schedule-mobile-toggle{display:none}
@media(max-width:760px), (max-height:500px) and (pointer:coarse){
 :is(#inventory-view,#deep-clean-view,#routine-tasks-view,#maintenance-view,#linen-view,#schedule-view,#settings-view,#staff-view,#operations-control-view){min-width:0;max-width:100%}
 :is(#inventory-view,#deep-clean-view,#routine-tasks-view,#maintenance-view) .operations-nav{display:flex;flex-wrap:wrap;gap:4px;padding:6px 0;position:static;min-width:0}
 .operations-nav .button{font-size:12px!important;min-height:40px!important;padding:6px 9px!important;white-space:normal!important}
 #schedule-view .schedule-workspace .schedule-grid-wrap{max-height:none;overflow:visible;min-width:0}
 #schedule-view .schedule-workspace table:has(#schedule-grid){display:block;width:100%!important;min-width:0!important;table-layout:auto}
 #schedule-view .schedule-workspace table:has(#schedule-grid)>:is(thead,.schedule-staffing-summary){display:none}
 #schedule-view #schedule-grid{display:grid;gap:8px;min-width:0}
 #schedule-view #schedule-grid>tr{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(110px,.7fr);border:1px solid var(--border);border-radius:10px;padding:8px;gap:6px;background:var(--panel);min-width:0}
 #schedule-view #schedule-grid>tr>td{display:none;position:static!important;min-width:0!important;max-width:100%;width:auto!important;height:auto!important;padding:4px!important;border:0!important}
 #schedule-view #schedule-grid>tr>td:first-child{display:block;grid-column:1;align-self:start;background:transparent}
 #schedule-view #schedule-grid>tr>td[data-mobile-current=true]{display:block;grid-column:2;grid-row:1}
 #schedule-view #schedule-grid>tr[data-mobile-expanded=true]>td{display:block;grid-column:auto;grid-row:auto}
 #schedule-view #schedule-grid>tr[data-mobile-expanded=true]>td:first-child{grid-column:1/-1}
 #schedule-view #schedule-grid td[data-mobile-day]::before{content:attr(data-mobile-day);display:block;font-size:10px;color:var(--muted);margin-bottom:3px}
 #schedule-view #schedule-grid input{box-sizing:border-box;min-height:44px!important;font-size:16px!important;max-width:100%;min-width:0!important;width:100%!important}
 #schedule-view .schedule-name-cell{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.schedule-name-input{flex:1 1 100%}
 #schedule-view .schedule-mobile-toggle{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;background:var(--well);color:var(--text);border:1px solid var(--border);border-radius:8px;margin-left:auto}
 .schedule-mobile-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin:6px 0 10px}
 .schedule-mobile-days button{min-height:44px;min-width:0;padding:3px;font-size:11px;white-space:normal;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text)}.schedule-mobile-days [aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);font-weight:700}
 #schedule-view .schedule-forecast-wrap .schedule-grid{min-width:0!important;width:100%!important;display:block}
 #schedule-view .schedule-forecast-wrap .schedule-grid thead{display:none}#schedule-view .schedule-forecast-wrap .schedule-grid :is(tbody,tr){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;width:100%}#schedule-view .schedule-forecast-wrap .schedule-grid tbody{grid-template-columns:1fr}#schedule-view .schedule-forecast-wrap .schedule-grid tr>td:first-child{grid-column:1/-1}#schedule-view .schedule-forecast-wrap .schedule-grid td{position:static!important;min-width:0!important;width:auto!important;max-width:100%}#schedule-view .schedule-forecast-wrap input{width:100%!important;box-sizing:border-box;min-height:44px;font-size:16px}
 #linen-view .linen-workspace-table-wrap{overflow:visible}#linen-view .linen-workspace-table{min-width:0!important;width:100%!important;display:block}#linen-view .linen-workspace-table tbody{display:grid;gap:8px}#linen-view .linen-workspace-table tr{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;margin:0 8px;padding:10px!important;border:1px solid var(--border);border-radius:10px;width:auto!important}#linen-view .linen-workspace-table :is(th,td){position:static!important;min-width:0!important;max-width:100%;width:auto!important;padding:4px!important;white-space:normal!important}#linen-view .linen-workspace-table th{grid-column:1/-1}#linen-view .linen-workspace-table td::before{display:block;content:attr(data-label);font-size:10px;color:var(--muted)}#linen-view .linen-workspace-table :is(input,select){min-width:0!important;width:100%!important;box-sizing:border-box;min-height:44px;font-size:16px}#linen-view .linen-workspace-table .linen-entry-form{display:flex;flex-wrap:wrap;gap:4px}#linen-view .linen-workspace-table .linen-entry-form .button{min-height:44px!important}#linen-view .linen-quick-wash{grid-column:1/-1}
 #linen-view .linen-kpi-strip{gap:5px;padding:6px 10px}.linen-kpi{padding:8px!important}.linen-kpi strong{font-size:19px!important}#linen-view .linen-workspace-tabs{padding:8px 10px;gap:4px}#linen-view .linen-workspace-tabs button{font-size:12px;min-height:44px}#linen-view .linen-workspace :is(.linen-stock-grid,.linen-load-grid){grid-template-columns:minmax(0,1fr);gap:4px}#linen-view .linen-count-category{border:1px solid var(--border);border-radius:10px;padding:6px;margin:6px 0}#linen-view .linen-count-category>summary{min-height:44px;display:flex;align-items:center}
 #strip-rooms-view .sb-toolbar{gap:6px;padding:8px!important}#strip-rooms-view .sb-filters{gap:3px}#strip-rooms-view .sb-filters .button{min-height:44px!important;font-size:12px!important;padding:5px 7px!important}#strip-rooms-view .sb-row{padding:8px!important}#strip-rooms-view .sb-row-header{gap:5px!important}#strip-rooms-view .sb-actions button{min-height:44px!important}
 :is(#settings-view,#operations-control-view,#staff-view) :is(.form-grid,.settings-grid,.control-form-grid){grid-template-columns:minmax(0,1fr)!important;gap:8px!important;min-width:0}:is(#settings-view,#operations-control-view,#staff-view) :is(input,select,textarea){box-sizing:border-box;max-width:100%;min-width:0;font-size:16px;min-height:44px}:is(#settings-view,#operations-control-view,#staff-view) details>summary{min-height:44px;cursor:pointer}:is(#settings-view,#operations-control-view,#staff-view) :is(.panel-body,.panel-head){padding:10px!important}
}
@media(max-width:700px){
 /* Only the operational workspaces use the compact dock. Search stays in-page. */
 html body:has(:is(#inventory-view,#deep-clean-view,#routine-tasks-view,#maintenance-view,#linen-view,#schedule-view):not([hidden])) #app-view>.sidebar .nav-room-search{display:none!important}
 html body:has(:is(#inventory-view,#deep-clean-view,#routine-tasks-view,#maintenance-view,#linen-view,#schedule-view):not([hidden])) #app-view>.sidebar .mobile-nav-dock-tools{display:block!important;flex:1;min-width:0}
 html body:has(:is(#inventory-view,#deep-clean-view,#routine-tasks-view,#maintenance-view,#linen-view,#schedule-view):not([hidden])) #app-view>.sidebar{padding:6px 10px max(6px,env(safe-area-inset-bottom))!important;gap:4px;max-height:calc(60px + env(safe-area-inset-bottom));box-sizing:border-box}
 html body:has(:is(#inventory-view,#deep-clean-view,#routine-tasks-view,#maintenance-view,#linen-view,#schedule-view):not([hidden])) #mobile-nav-select{width:100%;min-height:44px!important;padding:6px 10px!important}
 html body:has(:is(#inventory-view,#deep-clean-view,#routine-tasks-view,#maintenance-view,#linen-view,#schedule-view):not([hidden])) #app-view .workspace{padding-bottom:calc(80px + env(safe-area-inset-bottom))!important;scroll-padding-bottom:calc(80px + env(safe-area-inset-bottom))}
}

@media(max-width:760px), (max-height:500px) and (pointer:coarse){#schedule-view .schedule-workspace table:has(#schedule-grid)>.schedule-staffing-summary{display:block;margin:6px 0}#schedule-view .schedule-staffing-summary tr{display:flex;gap:8px;align-items:center}#schedule-view .schedule-staffing-summary td{display:none;width:auto!important;min-width:0!important;border:0!important;padding:4px!important;background:transparent!important}#schedule-view .schedule-staffing-summary td:first-child,#schedule-view .schedule-staffing-summary [data-mobile-current=true]{display:block}#schedule-view .schedule-forecast-wrap td[data-mobile-day]::before{content:attr(data-mobile-day);display:block;font-size:10px;color:var(--muted)}}

.mobile-custom-toggle{display:none}.operations-mobile-settings>summary{cursor:pointer;font-weight:650;padding:8px 0}.operations-mobile-settings>p{font-size:12px}
@media(max-width:760px), (max-height:500px) and (pointer:coarse){
 .operations-sheet[data-mobile-records]{display:block;width:100%!important;min-width:0!important}.operations-sheet[data-mobile-records]>thead{display:none}.operations-sheet[data-mobile-records]>tbody{display:grid;gap:8px}.operations-sheet[data-mobile-records]>tbody>tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border:1px solid var(--border);border-radius:10px;padding:8px;height:auto!important;min-width:0}.operations-sheet[data-mobile-records]>tbody>tr>:is(td,th){display:none;position:static!important;width:auto!important;min-width:0!important;max-width:100%!important;border:0!important;height:auto!important;padding:5px!important;background:transparent!important}.operations-sheet[data-mobile-records]>tbody>tr>th:first-child{display:flex;grid-column:1/-1;align-items:center;gap:8px}.operations-sheet[data-mobile-records]>tbody>tr>th:first-child>strong{flex:1}.operations-sheet[data-mobile-records]>tbody>tr[data-mobile-expanded=true]>:is(td,th){display:block}.operations-sheet[data-mobile-records]>tbody>tr[data-mobile-expanded=true]>th:first-child{display:flex}.operations-sheet[data-mobile-records] td::before{content:attr(data-mobile-label);display:block;color:var(--muted);font-size:10px;margin-bottom:3px}.operations-sheet[data-mobile-records] button{min-height:44px!important;max-width:100%;white-space:normal}.operations-sheet[data-mobile-records] .mobile-custom-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:8px;background:var(--well);color:var(--text)}
 :is(#custom-trackers-workspace,#operations-control-workspace) :is(.suite-panel,.control-card,.custom-card){padding:10px!important;min-width:0}.control-overview,.control-view-list,.custom-cards{grid-template-columns:minmax(0,1fr)!important;gap:8px!important}#operations-control-workspace .suite-heading p{display:none}#operations-control-workspace .suite-toolbar{display:flex;flex-wrap:wrap;gap:4px}#operations-control-workspace .button{min-height:44px!important;max-width:100%;white-space:normal!important;font-size:12px!important}#operations-control-workspace .operations-mobile-settings>summary{min-height:44px}
 #control-center-view :is(.cc-fields,.form-grid){grid-template-columns:minmax(0,1fr)!important;gap:8px}#control-center-view :is(input,select,textarea){max-width:100%;min-width:0;font-size:16px;min-height:44px}
}
@media(max-width:760px){.operations-sheet-scroll:has([data-mobile-records]){overflow:visible!important;max-height:none!important}}
@media(max-width:760px), (max-height:500px) and (pointer:coarse){.operations-sheet[data-mobile-records] :is(input,select,textarea){box-sizing:border-box;min-width:0!important;max-width:100%!important;width:100%;font-size:16px;min-height:44px}.operations-sheet[data-mobile-records] :is(td,th){overflow-wrap:anywhere}}
.mobile-custom-toggle::after{content:"⌄"}.mobile-custom-toggle[aria-expanded=true]::after{content:"⌃"}


/* Source: ninth-monsoon.css */
/* The Ninth Monsoon: painted depth, mechanical porcelain, cloudlight. */
html[data-theme="the-ninth-monsoon"]{--nm-copper:#d3b77c;--nm-haze:#a5c9d7;--nm-shadow:#122741;--nm-pane:var(--world-surface);--nm-scenery-opacity:1}
html[data-theme="the-ninth-monsoon"][data-mode="dark"]{--nm-haze:#6c7baf;--nm-shadow:#070e29}
html[data-theme="the-ninth-monsoon"] .world-atmosphere{opacity:1!important;isolation:isolate}
html[data-theme="the-ninth-monsoon"] .world-atmosphere>i{display:none}
.nm-world{position:absolute;inset:0;overflow:hidden;pointer-events:none;contain:layout paint;--nm-px:0px;--nm-py:0px;background:#688caa}
.nm-world>div{position:absolute;pointer-events:none}
.nm-firmament{inset:0;background:linear-gradient(180deg,#203d62 0%,#8aa4b1 43%,#d1d8cb 73%,#6a8ca2);transition:filter 3s}
.nm-firmament:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0c233840,transparent 65%),url('/assets/ninth-monsoon/world.webp') 66% 45%/cover;opacity:.92}
html[data-mode="dark"] .nm-firmament{filter:brightness(.55) saturate(.85)}
.nm-planet{width:clamp(110px,18vw,270px);aspect-ratio:1;right:14%;top:4%;border-radius:50%;background:repeating-linear-gradient(166deg,#e5d6c930 0 9px,#d2beaa35 15px 22px),linear-gradient(120deg,#ebd9b9a0,#52668960 65%,transparent);box-shadow:inset -24px -18px 40px #1c2e5b88,0 0 60px #d2daf22a;opacity:.65;transform:translate(var(--nm-px),var(--nm-py))}
.nm-planet i{position:absolute;inset:35% -60%;border:9px double #e5d4ba55;border-radius:50%;transform:rotate(-23deg);box-shadow:0 0 14px #e9e0c533}
.nm-cloud{width:155%;height:50%;left:-25%;border-radius:48%;background:radial-gradient(ellipse at 17% 62%,#b7d2df88,transparent 34%),radial-gradient(ellipse at 68% 47%,#dae5dcbb,transparent 40%),radial-gradient(ellipse at 90% 70%,#b5bcd088,transparent 35%);filter:blur(14px);animation:nm-cloud-drift 39s ease-in-out infinite alternate}
.nm-cloud-far{top:30%;opacity:.38}
.nm-cloud-near{bottom:-13%;opacity:.65;animation-duration:27s;animation-direction:alternate-reverse}
.nm-sanctuary{right:-2%;bottom:0;width:clamp(235px,34vw,550px);height:88%;transform:translate(var(--nm-px),var(--nm-py));opacity:.85}
.nm-sanctuary svg{height:100%;width:100%;filter:drop-shadow(0 15px 20px #0a29445a)}
.nm-falls{top:65%;height:34%;width:3.5%;background:repeating-linear-gradient(0deg,transparent 0 10px,#d9f7f67a 14px,#8ac5cd88 32px,transparent 49px);mask-image:linear-gradient(transparent,#000 12%,#000 60%,transparent);animation:nm-falling 2.4s linear infinite;transform:skewX(-3deg)}
.nm-falls-a{left:18%}.nm-falls-b{right:18%;width:2%;animation-delay:-1s}
.nm-heart{left:48%;top:31%;width:4%;height:9%;border-radius:50%;background:#e0fff8;box-shadow:0 0 35px 18px #adf0e870,0 0 100px 30px #a0cde939;animation:nm-heart 13s ease-in-out infinite alternate}
.nm-islands{inset:0;transform:translate(calc(var(--nm-px)*.4),calc(var(--nm-py)*.4))}
.nm-island{position:absolute;top:42%;left:13%;width:80px;height:100px;opacity:.5;animation:nm-suspension 21s ease-in-out infinite alternate}
.nm-island:before{content:"";position:absolute;inset:10% 0 0;background:linear-gradient(110deg,#456b7d,#203550);clip-path:polygon(0 5%,55% 0,100% 12%,68% 40%,55% 88%,29% 57%)}
.nm-island i{position:absolute;width:36%;height:40%;border:4px solid #c1b185;border-bottom:0;border-radius:50% 50% 0 0;top:-24%;left:25%}
.nm-island b{position:absolute;top:20%;left:16%;width:5%;height:120%;background:repeating-linear-gradient(#c3f3ed99,transparent 20px);mask-image:linear-gradient(#000,transparent);animation:nm-falling 3s linear infinite}
.nm-island-1{left:49%;top:32%;transform:scale(.48);animation-delay:-8s}.nm-island-2{left:66%;top:49%;transform:scale(.7);animation-delay:-13s}
.nm-rays{inset:-15%;background:conic-gradient(from 155deg at 85% 0%,transparent 0deg,#ffedc620 9deg,transparent 14deg,#e6ead118 21deg,transparent 26deg);mix-blend-mode:screen;animation:nm-light 24s ease-in-out infinite alternate;opacity:.65}
.nm-mantas{inset:0;overflow:hidden}.nm-manta{position:absolute;top:23%;left:-20%;width:130px;color:#193a50;opacity:.55;animation:nm-migration 95s linear infinite;filter:drop-shadow(0 2px 3px #bfe2d266)}
.nm-manta-1{top:30%;width:70px;animation-delay:-31s;animation-duration:110s;opacity:.3}.nm-manta-2{top:16%;width:40px;animation-delay:-62s;animation-duration:120s;opacity:.25}
.nm-weather{inset:0;opacity:0;transition:opacity 4s;overflow:hidden}.nm-weather i{position:absolute;left:var(--nm-x);top:-15%;height:10%;width:1px;background:linear-gradient(transparent,#d8f8ff90);animation:nm-rain var(--nm-speed) linear var(--nm-delay) infinite}
.nm-vapor{inset:20% -15% -20%;background:radial-gradient(ellipse at 80% 80%,#b8d5dd88,transparent 60%);animation:nm-vapor 32s ease-in-out infinite alternate;opacity:.4;transition:opacity 4s}
.nm-shutter{inset:0;border:1px solid #e7c78550;box-shadow:inset 0 0 0 8px #0c253333,inset 0 0 100px 20px #08193260;background:linear-gradient(90deg,#0b293530,transparent 15% 85%,#0b293555)}
.nm-gauge{right:22px;bottom:25px;width:92px;height:92px;border:4px double #dfc89599;border-radius:50%;box-shadow:inset 0 0 18px #09172f99,0 3px 16px #08132f55;background:repeating-conic-gradient(from 0deg,#d9ca9655 0deg 1deg,transparent 1deg 30deg)}
.nm-gauge i{position:absolute;left:calc(50% - 1px);top:12%;height:39%;width:2px;background:#e8dbac;transform-origin:bottom;animation:nm-pressure 65s ease-in-out infinite alternate}
html[data-monsoon-weather="rain"] .nm-weather{opacity:.55}html[data-monsoon-weather="storm"] .nm-weather{opacity:.85}html[data-monsoon-weather="storm"] .nm-firmament{filter:brightness(.6) saturate(.7)}
html[data-monsoon-weather="storm"] .nm-vapor{opacity:.8}html[data-monsoon-weather="storm"] .nm-rays{opacity:.2}
html[data-monsoon-mode="dream"] .nm-firmament{filter:hue-rotate(27deg) saturate(.65)}
html[data-mode="dark"][data-monsoon-mode="dream"] .nm-firmament{filter:brightness(.55) hue-rotate(27deg) saturate(.65)}
html[data-monsoon-mode="dream"] .nm-rays{background:radial-gradient(ellipse at 75% 25%,#c3acff55,transparent 65%);animation-duration:40s}
html[data-monsoon-mode="dream"] :is(.nm-falls,.nm-island b,.nm-gauge){display:none}
html[data-monsoon-mode="dream"] .nm-sanctuary{opacity:.55}html[data-monsoon-mode="dream"] .nm-cloud{animation-duration:65s}
html[data-monsoon-mode="still"] :is(.nm-mantas,.nm-weather,.nm-falls,.nm-island b){display:none}
html[data-monsoon-motion="off"] .nm-world *,html[data-monsoon-motion="off"] .nm-world{animation-play-state:paused!important}
html[data-monsoon-motion="off"] .nm-world{--nm-px:0px!important;--nm-py:0px!important}
html[data-monsoon-quality="lite"] :is(.nm-island-1,.nm-island-2,.nm-manta-1,.nm-manta-2){display:none}
html[data-monsoon-quality="lite"] .nm-cloud{filter:none}html[data-monsoon-quality="lite"] .nm-rays{mix-blend-mode:normal}
/* Material extends to operational screens, menus, dialogs and mobile navigation. */
html[data-theme="the-ninth-monsoon"] :is(.panel,.ops-panel,.metric,.room-card,.employee-bubble,.ab-column,.ab-room,.pr-room,.room-list-row,.summary-room-row,.sidebar,.topbar,dialog,.modal,.popover,.dropdown-menu,.mobile-nav-dock-tools,#mobile-nav-sheet){
 background-color:var(--nm-pane)!important;background-image:linear-gradient(135deg,#fff5d818,transparent 45%,#529ea011)!important;border-color:var(--world-border)!important;box-shadow:inset 0 1px #edd8a047,inset 3px 0 #ba9d5930,0 16px 28px -24px #071326b0!important;color:var(--world-text)
}
html[data-theme="the-ninth-monsoon"] :is(.panel-head,.ops-panel-head){background-image:linear-gradient(90deg,#ad945b20,transparent 80%);border-bottom-color:var(--world-border)}
html[data-theme="the-ninth-monsoon"] :is(input,select,textarea){color:var(--world-text);background-color:var(--world-surface);border-color:var(--world-border)}
html[data-theme="the-ninth-monsoon"] :is(.nav-item.active,.nav-item[aria-current="page"]){box-shadow:inset 3px 0 var(--world-accent);background:var(--world-elevated)}
html[data-theme="the-ninth-monsoon"] :focus-visible{outline:2px solid var(--world-accent-secondary);outline-offset:3px}
html[data-theme="the-ninth-monsoon"] :is(h1,h2,h3){letter-spacing:.025em}
.nm-controls{overflow:hidden}.nm-controls .panel-head{padding:20px}.nm-controls .panel-body{padding:20px}.nm-controls small{line-height:1.5}.nm-controls .panel-head small{letter-spacing:.2em;color:var(--world-accent)}
.nm-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.nm-presets button{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px 14px;min-height:110px;white-space:normal;text-align:left;border:1px solid var(--world-border);border-radius:18px 3px;background:var(--world-elevated);color:var(--world-text)}
.nm-presets button[aria-pressed="true"]{outline:2px solid var(--world-accent);outline-offset:2px}.nm-presets small{color:var(--world-secondary)}.nm-options{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-top:22px}.nm-options label{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.nm-options input[type="range"]{max-width:140px}.nm-options select{max-width:100%}
@keyframes nm-cloud-drift{to{transform:translate3d(5%,2%,0)}}@keyframes nm-suspension{to{translate:0 -12px}}@keyframes nm-falling{to{background-position:0 100px}}@keyframes nm-heart{to{opacity:.5;scale:.9}}@keyframes nm-light{to{transform:rotate(4deg);opacity:.35}}@keyframes nm-vapor{to{transform:translate3d(-4%,3%,0)}}@keyframes nm-migration{0%{transform:translate3d(-100px,0,0) rotate(-5deg)}50%{translate:0 28px}100%{transform:translate3d(130vw,0,0) rotate(6deg)}}@keyframes nm-rain{to{transform:translate3d(-70px,120vh,0)}}@keyframes nm-pressure{to{rotate:50deg}}@keyframes nm-instrument{50%{opacity:.8}}
@media(max-width:700px){.nm-sanctuary{right:-90px;width:300px;opacity:.6}.nm-planet{right:8%;top:8%}.nm-presets{grid-template-columns:1fr}.nm-presets button{min-height:75px;padding:13px}.nm-controls .panel-body,.nm-controls .panel-head{padding:14px}.nm-gauge{width:58px;height:58px;right:10px;bottom:80px}.nm-firmament:after{background-position:75% center}.nm-options{gap:14px}}
@media(prefers-reduced-motion:reduce){.nm-world *{animation:none!important;transition:none!important}.nm-world{--nm-px:0px!important;--nm-py:0px!important}}
@media print{.nm-world,.nm-controls{display:none!important}}
.nm-postcard{position:relative;min-height:270px;background:linear-gradient(0deg,#0a1d3799,transparent 70%),url('/assets/ninth-monsoon/world.webp') 65% 45%/cover;overflow:hidden;border-block:1px solid var(--world-border)}
.nm-postcard span{position:absolute;left:24px;bottom:24px;color:#fff2d7;text-shadow:0 2px 6px #08152d;font:500 clamp(15px,2vw,22px)/1.4 "Sentient",Georgia,serif;letter-spacing:.22em}.nm-postcard i{position:absolute;inset:0;background:radial-gradient(ellipse at 20% 85%,#b6cbd744,transparent 55%);animation:nm-cloud-drift 25s ease-in-out infinite alternate;pointer-events:none}
html[data-monsoon-mode="dream"] .nm-postcard{background-blend-mode:soft-light,normal;background-color:#655a8d55}
html[data-monsoon-motion="off"] .nm-postcard i{animation:none}
@media(max-width:700px){.nm-postcard{min-height:210px}.nm-postcard span{left:16px;bottom:16px;max-width:230px}}
@media(prefers-reduced-motion:reduce){.nm-postcard i{animation:none}}
/* Cloud glass and copper: overlays own the effects, not the reading layout. */
html[data-theme="the-ninth-monsoon"]{--card-motion:420;--nm-card-speed:19s;--nm-card-shine:.16}
html[data-monsoon-mode="dream"]{--nm-card-speed:32s;--nm-card-shine:.1}
html[data-monsoon-weather="storm"]{--nm-card-shine:.22}
.nm-card-positioned{position:relative}
.nm-card-light{position:absolute;inset:0;z-index:2;pointer-events:none!important;border-radius:inherit;overflow:hidden;contain:paint;opacity:1;transition:opacity .7s ease}
.nm-card-light b{position:absolute;display:block;pointer-events:none!important}
.nm-card-cloud{inset:-40%;background:radial-gradient(ellipse at 25% 30%,#a6e6df33,transparent 38%),radial-gradient(ellipse at 80% 70%,#d7b8ef33,transparent 42%);opacity:.35;animation:nm-card-cloud var(--nm-card-speed) ease-in-out var(--nm-card-delay) infinite alternate}
.nm-card-rim{inset:0;border-radius:inherit;border:1px solid #d6b77d66;box-shadow:inset 0 1px #fff0cb80,inset 0 -1px #86c9ce44;opacity:.55;transition:opacity .45s ease}
.nm-card-light:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse at var(--nm-card-x,75%) var(--nm-card-y,15%),#fff2c8,transparent 55%);opacity:0;transition:opacity .5s ease;pointer-events:none}
.nm-card-light:after{content:"";position:absolute;inset:-100%;background:linear-gradient(110deg,transparent 42%,#fff5d8 49%,#a8e4e6 50%,transparent 57%);opacity:var(--nm-card-shine);transform:translateX(-40%);animation:nm-card-passage var(--nm-card-speed) ease-in-out var(--nm-card-delay) infinite;pointer-events:none}
.nm-card-surface:is(:hover,:focus-within)>.nm-card-light:before{opacity:.09}
.nm-card-surface:is(:hover,:focus-within)>.nm-card-light>.nm-card-rim{opacity:1}
.nm-card-echo{inset:-15%;border:2px solid #e9ce8f66;border-radius:50%;background:radial-gradient(ellipse,transparent 35%,#b5e7e322 60%,transparent 65%);opacity:0;transform-origin:center}
html[data-monsoon-mode="dream"] .nm-card-light:before{background:radial-gradient(ellipse at 60% 25%,#d5c3ff,transparent 65%)}
html[data-monsoon-mode="dream"] .nm-card-light:after{background:linear-gradient(125deg,transparent 35%,#cabdf5 50%,transparent 65%)}
html[data-monsoon-quality="lite"] .nm-card-light:after{display:none}
html[data-monsoon-cards="off"] .nm-card-light :is(.nm-card-cloud,.nm-card-echo),html[data-monsoon-cards="off"] .nm-card-light:after,html[data-monsoon-cards="off"] .nm-card-light:before{display:none;animation:none}
html[data-theme="the-ninth-monsoon"] :is(.nav-item,button,summary){transition:border-color .3s ease,background-color .35s ease,color .25s ease,box-shadow .35s ease}
html[data-theme="the-ninth-monsoon"] .nm-presets button{transition:outline-color .35s ease,background-color .6s ease,border-radius .6s ease}
html[data-monsoon-mode="full"] .nm-presets button[aria-pressed="true"]{border-radius:4px 22px 4px 22px}
@keyframes nm-card-cloud{to{transform:translate3d(12%,5%,0) rotate(4deg);opacity:.65}}
@keyframes nm-card-passage{0%,18%{transform:translateX(-40%);opacity:0}32%{opacity:var(--nm-card-shine)}56%,100%{transform:translateX(40%);opacity:0}}
@media(prefers-reduced-motion:reduce){.nm-card-light *,.nm-card-light:before,.nm-card-light:after{animation:none!important;transition:none!important}}
@media print{.nm-card-light{display:none!important}}


/* Source: halloween-hollow.css */
/* Halloween Hollow: artwork lives in navigation; operational surfaces stay opaque. */
html[data-theme='halloween-hollow'][data-world][data-mode] :is(body,.workspace){background:var(--world-background)!important}
html[data-theme='halloween-hollow'][data-world][data-mode] .world-atmosphere{display:none!important}
html[data-theme='halloween-hollow'][data-world][data-mode] .sidebar{isolation:isolate;background:#35223f!important;color:#fff2d9!important;overflow-x:clip}
html[data-theme='halloween-hollow'][data-world][data-mode] .sidebar:before{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(#291b2f44,#2b1d3c55),url('/halloween-hollow-forest.svg') center/cover no-repeat;pointer-events:none}
html[data-theme='halloween-hollow'][data-world][data-mode] .sidebar>:not(.hh-scene){position:relative;z-index:1}
html[data-theme='halloween-hollow'][data-world][data-mode] .sidebar :is(.brand,.sidebar-foot){background:#2c2036e8;border:1px solid #edc28c44;border-radius:12px;padding:12px}
html[data-theme='halloween-hollow'][data-world][data-mode] .sidebar :is(.brand span,.muted,.sidebar-foot){color:#f5dfc7!important}
html[data-theme='halloween-hollow'][data-world][data-mode] .sidebar .nav-item{background:#2d2038e8!important;color:#fff1db!important;border:1px solid #e0ad7040!important;box-shadow:inset 0 1px #ffe8c012!important;backdrop-filter:none!important}
html[data-theme='halloween-hollow'][data-world][data-mode] .sidebar .nav-item:is(.active,[aria-current='page']){background:#f9e7c9!important;color:#39243f!important;border-color:#e3a45f!important;box-shadow:0 0 20px #efae4d44!important}
html[data-theme='halloween-hollow'][data-world][data-mode] .sidebar .nav-item:hover{border-color:#ffd698!important;box-shadow:0 0 16px #ffbf5744!important}
html[data-theme='halloween-hollow'][data-world][data-mode] :is(.panel,.metric,.room-card,.employee-bubble):not(:where(.print-preview-sheet *,#print-run-root *)){background:var(--world-surface)!important;color:var(--world-text);border:1px solid var(--world-border)!important;box-shadow:0 12px 28px -20px #30172f80,inset 0 1px #ffd89a55!important;transition:box-shadow .25s ease,border-color .25s ease}
html[data-theme='halloween-hollow'][data-world][data-mode] :is(.panel-head,.room-card-head){background:linear-gradient(105deg,var(--world-elevated),var(--world-surface))!important;border-bottom:1px dashed var(--world-border)!important}
html[data-theme='halloween-hollow'][data-world][data-mode] :is(.panel-head h2,.panel-head h3){font-family:Georgia,serif;letter-spacing:.015em}
html[data-theme='halloween-hollow'][data-world][data-mode] .metric:nth-child(3n+1){border-top:3px solid var(--world-accent)!important}
html[data-theme='halloween-hollow'][data-world][data-mode] .metric:nth-child(3n+2){border-top:3px solid var(--world-accent-secondary)!important}
html[data-theme='halloween-hollow'][data-world][data-mode] .metric:nth-child(3n){border-top:3px solid var(--world-secondary)!important}
html[data-theme='halloween-hollow'][data-world][data-mode] :is(.panel,.metric,.room-card):is(:hover,:focus-within){box-shadow:0 14px 32px -20px #3b173d88,0 0 0 1px var(--world-highlight),0 0 22px -10px #e8a84e88!important}
html[data-theme='halloween-hollow'][data-world][data-mode] :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--world-accent-secondary)!important;outline-offset:3px}
html[data-theme='halloween-hollow'][data-world][data-mode] .sidebar :is(button,a):focus-visible{outline-color:#ffe2a8!important}
.hh-scene{position:absolute!important;inset:0;z-index:0;pointer-events:none!important;overflow:hidden;contain:paint}
.hh-scene *{pointer-events:none!important}
.hh-moonlight{position:absolute;inset:0;background:radial-gradient(ellipse at 12% 15%,#ffcb6b2b,transparent 48%)}
.hh-ghost{position:absolute;width:42px;right:12px;top:27%;opacity:.8;filter:drop-shadow(0 0 9px #ffe0ab55);animation:hh-float 8s ease-in-out infinite alternate}
.hh-cat{position:absolute;width:100px;right:0;bottom:100px;filter:drop-shadow(0 3px 4px #110c2080)}
.hh-tail{transform-origin:90px 132px;animation:hh-tail 11s ease-in-out infinite alternate}
.hh-pumpkin{position:absolute;left:12px;bottom:110px;width:45px;height:37px;border-radius:45%;background:repeating-linear-gradient(90deg,#b45a25 0 9px,#df8c3c 10px 18px);box-shadow:0 0 26px #e6983a66;color:#ffe2a5;font-size:27px;text-align:center}
.hh-pumpkin:before{content:'';position:absolute;width:7px;height:10px;background:#727847;top:-7px;left:20px;border-radius:3px;transform:rotate(12deg)}
.hh-leaf{position:absolute;top:-30px;left:calc(8% + var(--i)*13%);width:9px;height:15px;background:#d69447;border-radius:0 80% 0 80%;opacity:.65;animation:hh-fall 24s linear calc(var(--i)*-3.3s) infinite}
.hh-leaf:nth-of-type(even){background:#bd6d55}
@keyframes hh-float{to{transform:translate3d(-9px,14px,0) rotate(7deg)}}
@keyframes hh-tail{to{transform:rotate(-9deg)}}
@keyframes hh-fall{0%{transform:translate3d(0,-30px,0) rotate(0);opacity:0}8%{opacity:.7}92%{opacity:.5}100%{transform:translate3d(30px,1100px,0) rotate(300deg);opacity:0}}
html[data-halloween-motion='off'] .hh-scene *{animation:none!important}
html[data-halloween-motion='off'] .hh-leaf{display:none}
@media(max-width:760px){
 html[data-theme='halloween-hollow'][data-world][data-mode] #mobile-nav-sheet{background:linear-gradient(#2b2039ee,#2b2039e8),url('/halloween-hollow-forest.svg') center/cover!important;color:#fff2d9!important}
 html[data-theme='halloween-hollow'][data-world][data-mode] #mobile-nav-sheet .nav-item{background:#35273f!important;color:#fff2d9!important;border-color:#a98b75!important}
 html[data-theme='halloween-hollow'][data-world][data-mode] #mobile-nav-sheet .nav-item.active{background:#f9e7c9!important;color:#39243f!important}
 .hh-leaf:nth-of-type(n+4){display:none}
}
@media(forced-colors:active){.hh-scene,html[data-theme='halloween-hollow'][data-world][data-mode] .sidebar:before{display:none}html[data-theme='halloween-hollow'][data-world][data-mode] :focus-visible{outline:3px solid Highlight!important}}
@media print{.hh-scene,html[data-theme='halloween-hollow'][data-world][data-mode] .sidebar:before{display:none!important}}

html[data-theme="halloween-hollow"][data-world][data-mode] .sidebar .brand :is(strong,span){color:#fff2d9!important;text-shadow:none!important;opacity:1!important}

/* A small storybook vignette keeps companions clear of navigation labels. */
html[data-theme='halloween-hollow'][data-world][data-mode] .hh-scene{position:relative!important;inset:auto;flex:0 0 118px;margin:0 0 12px;border:1px solid #eab97677;border-radius:4px 18px 4px 18px;background:linear-gradient(90deg,#48284444,#38223f11),url('/halloween-hollow-forest.svg') center 72%/100% auto;box-shadow:inset 0 0 25px #20152766}
.hh-ghost{top:16px;right:28px;width:37px;opacity:.95}
.hh-cat{bottom:-6px;right:65px;width:76px}
.hh-pumpkin{bottom:9px;left:13px;width:35px;height:29px;font-size:22px}
@keyframes hh-fall{0%{transform:translate3d(0,-30px,0) rotate(0);opacity:0}8%{opacity:.7}92%{opacity:.5}100%{transform:translate3d(30px,180px,0) rotate(300deg);opacity:0}}
html[data-theme='halloween-hollow'][data-world][data-mode] .today-room-counter:nth-child(3n+1){border-top:3px solid var(--world-accent)!important}
html[data-theme='halloween-hollow'][data-world][data-mode] .today-room-counter:nth-child(3n+2){border-top:3px solid var(--world-accent-secondary)!important}
@media(max-width:980px){html[data-theme='halloween-hollow'] .hh-scene{display:none}}
/* Join the shared material layer so candlelight survives its important paints. */
@media screen{
 @layer surface-material.foundation{
  html[data-theme='halloween-hollow'][data-world][data-mode] #app-view .view :is(.panel,.metric,.room-card,.daily-room-operations){background:radial-gradient(ellipse at 96% 0,color-mix(in srgb,var(--world-highlight) 9%,transparent),transparent 48%),var(--world-surface)!important;box-shadow:0 12px 28px -20px #30172f80,inset 0 1px #ffd89a55!important}
  html[data-theme='halloween-hollow'][data-world][data-mode] #app-view .view :is(.panel,.metric,.room-card):is(:hover,:focus-within){box-shadow:0 14px 32px -20px #3b173d88,0 0 0 1px var(--world-highlight),0 0 22px -10px #e8a84e88!important}
  html[data-theme='halloween-hollow'][data-world][data-mode] #app-view #dashboard-view .daily-operations-counter:nth-child(3n+1){border-top:3px solid var(--world-accent)!important}
  html[data-theme='halloween-hollow'][data-world][data-mode] #app-view #dashboard-view .daily-operations-counter:nth-child(3n+2){border-top:3px solid var(--world-accent-secondary)!important}
  html[data-theme='halloween-hollow'][data-world][data-mode] #app-view #dashboard-view .daily-operations-counter:nth-child(3n){border-top:3px solid var(--world-secondary)!important}
 }
}
@media screen and (max-width:980px){
 @layer surface-material.foundation{
  html[data-theme='halloween-hollow'][data-world][data-mode] #mobile-nav-sheet{background:linear-gradient(#2b2039cc,#2b2039dd),url('/halloween-hollow-forest.svg') center/cover!important;color:#fff2d9!important}
 }
 html[data-theme='halloween-hollow'][data-world][data-mode] #mobile-nav-sheet .mobile-nav-sheet-item{background:#35273f!important;color:#fff2d9!important;border:1px solid #a98b75!important;opacity:1!important}
 html[data-theme='halloween-hollow'][data-world][data-mode] #mobile-nav-sheet .mobile-nav-sheet-item.active{background:#f9e7c9!important;color:#39243f!important}
 html[data-theme='halloween-hollow'][data-world][data-mode] #mobile-nav-sheet .mobile-nav-sheet-item .nav-label{color:inherit!important;opacity:1!important}
 html[data-theme='halloween-hollow'][data-world][data-mode] #mobile-nav-sheet .mobile-nav-sheet-head strong{color:#fff2d9!important}
}
/* Candlelight is decorative; shared cards retain height, drag and collapse ownership. */
.hh-candle-ambience{position:fixed;inset:0;z-index:-1;pointer-events:none!important;overflow:hidden;contain:strict}
.hh-candle-ambience *,.hh-card-candlelight *{pointer-events:none!important}
.hh-candle-pool{position:absolute;width:70vw;height:85vh;border-radius:50%;background:radial-gradient(ellipse,#f7a74475,transparent 68%);opacity:.65}
.hh-candle-pool-a{left:-15vw;top:3vh}
.hh-candle-pool-b{right:-30vw;bottom:-30vh;background:radial-gradient(ellipse,#ed9d557a,transparent 68%)}
.hh-branch-shadow{position:absolute;right:-12%;top:-20%;width:110%;height:150%;color:#1b0e26;opacity:.27;filter:blur(4px);transform-origin:95% 0}
html[data-mode='dark'] .hh-branch-shadow{opacity:.46}
.hh-candle-positioned{position:relative}
.hh-card-candlelight{position:absolute;inset:0;z-index:2;pointer-events:none!important;border-radius:inherit;overflow:hidden;contain:paint}
.hh-card-candlelight b{position:absolute;display:block;border-radius:inherit}
.hh-card-warmth{inset:0;background:radial-gradient(ellipse at var(--hh-x,85%) var(--hh-y,8%),#ffcb6a,transparent 65%);opacity:.12;transition:opacity .45s ease}
.hh-candle-card:is(:hover,:focus-within)>.hh-card-candlelight>.hh-card-warmth{opacity:.23}
.hh-card-rim{inset:0;padding:3px;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;opacity:.85}
.hh-card-rim em{position:absolute;inset:-100%;background:conic-gradient(from 20deg,transparent 0 18%,#eaa94d44 25%,#ffda91 30%,#fff5d9 31%,transparent 38% 68%,#86c8b588 74%,transparent 82%);transform-origin:center}
.hh-card-glimmer{inset:0;background:radial-gradient(ellipse at 12% 0,#ffdf9ca6,transparent 25%),radial-gradient(ellipse at 90% 100%,#e8ad5844,transparent 28%);opacity:.32}
.hh-card-response{inset:0;opacity:0;border:2px solid #ffe0a1;box-shadow:inset 0 0 30px #f2ac5455;background:radial-gradient(ellipse at var(--hh-x,50%) var(--hh-y,15%),#ffd28433,transparent 60%)}
/* This world's motion intentionally follows manual switches, irrespective of OS motion. */
@layer world-motion-accessibility{
html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-card-rim em{animation:hh-rim-travel 19s linear var(--hh-delay) infinite!important}
html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-card-glimmer{animation:hh-glimmer-travel 13s ease-in-out var(--hh-delay) infinite alternate!important}
html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-candle-pool-a{animation:hh-candle-breathe 9s ease-in-out infinite alternate!important}
html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-candle-pool-b{animation:hh-candle-breathe 13s ease-in-out -4s infinite alternate-reverse!important}
html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-branch-shadow{animation:hh-shadow-sway 27s ease-in-out infinite alternate!important}
html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-moonlight{animation:hh-candle-breathe 7s ease-in-out infinite alternate!important}
html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-ghost{animation:hh-float 8s ease-in-out infinite alternate!important}
html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-tail{animation:hh-tail 11s ease-in-out infinite alternate!important}
html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-leaf{display:block;animation:hh-fall 24s linear calc(var(--i)*-3.3s) infinite!important}
}
html[data-theme='halloween-hollow'][data-halloween-motion='off'] :is(.hh-card-candlelight,.hh-candle-ambience){display:none!important}
@keyframes hh-rim-travel{to{transform:rotate(360deg)}}
@keyframes hh-glimmer-travel{to{transform:translate3d(22%,4%,0);opacity:.68}}
@keyframes hh-candle-breathe{0%,100%{transform:translate3d(-3%,0,0) scale(.95);opacity:.42}37%{opacity:.7}68%{opacity:.54}84%{opacity:.75}100%{transform:translate3d(4%,3%,0) scale(1.08);opacity:.6}}
@keyframes hh-shadow-sway{to{transform:translate3d(-4%,3%,0) rotate(-6deg)}}
@media(max-width:700px){.hh-candle-pool-b{display:none}.hh-branch-shadow{width:170%;right:-65%;opacity:.24}.hh-card-rim{padding:2px}}
@media(forced-colors:active){.hh-candle-ambience,.hh-card-candlelight{display:none!important}}
@media print{.hh-candle-ambience,.hh-card-candlelight{display:none!important}}

/* Stronger candlelight and moving branch shadows, concentrated at card edges. */
.hh-card-shade{inset:-15%;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20500%20300%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%2320102d%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M550%20340Q320%20200%20360-50M358%2090%20240%2020M365%20180%20470%2080M325%20250%20180%20180M240%2020%20210-30M190%20190%20100%2080%22%20stroke-width%3D%2225%22%2F%3E%3Cpath%20d%3D%22M280%2042%20260%20130M420%20125%20430%2025M240%20210%20190%20280M120%20110%2060%20120%22%20stroke-width%3D%2210%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") right center/auto 120% no-repeat;opacity:.21;filter:blur(3px);mask-image:radial-gradient(ellipse,transparent 35%,#000 78%);-webkit-mask-image:radial-gradient(ellipse,transparent 35%,#000 78%);transform-origin:100% 50%}
html[data-mode='dark'] .hh-card-shade{opacity:.34}
.hh-card-candlelight:after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 14px #f7bc5a38,inset 0 -5px 16px #1d10262e;pointer-events:none}
@layer world-motion-accessibility{
 html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-card-shade{animation:hh-card-shadow-sway 16s ease-in-out var(--hh-delay) infinite alternate!important}
 html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-card-warmth{animation:hh-card-candle-breathe 7s ease-in-out var(--hh-delay) infinite alternate!important}
}
@keyframes hh-card-shadow-sway{from{transform:translate3d(4%,-2%,0) rotate(5deg)}to{transform:translate3d(-9%,5%,0) rotate(-9deg)}}
@keyframes hh-card-candle-breathe{0%,100%{filter:brightness(.85)}45%{filter:brightness(1.3)}70%{filter:brightness(1.05)}}
@media screen{
 @layer surface-material.foundation{
  html[data-theme='halloween-hollow'][data-world][data-mode] #app-view .view .hh-candle-card{box-shadow:0 0 26px -8px #ed9d4980,10px 20px 36px -16px #1a1029bb,inset 0 1px #ffe6b9!important}
  html[data-theme='halloween-hollow'][data-world][data-mode] #app-view .view .hh-candle-card:is(:hover,:focus-within){box-shadow:0 0 34px -6px #f7b758aa,12px 24px 42px -14px #1a1029cc,inset 0 1px #fff0ce!important}
  html[data-theme='halloween-hollow'][data-halloween-motion='off'] #app-view .view .hh-candle-card{box-shadow:var(--world-shadow)!important}
 }
}
/* Visible wax candles in the gutters; flame and card lighting share a clock. */
@property --hh-flame-power{syntax:'<number>';inherits:true;initial-value:.85}
@property --hh-flame-lean{syntax:'<angle>';inherits:true;initial-value:0deg}
.hh-candle-fixtures{position:fixed;inset:0;z-index:3;pointer-events:none!important;overflow:hidden;contain:strict}
.hh-candle-fixtures *{pointer-events:none!important}
.hh-candle-fixture{position:absolute;display:block;isolation:isolate;transform-origin:50% 90%}
.hh-candle-fixture>svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(3px 4px 3px #160d2388)}
.hh-candle-flame{position:absolute;left:32%;top:5%;width:39%;height:29%;border-radius:65% 35% 55% 45% / 75% 65% 35% 25%;background:radial-gradient(ellipse at 50% 80%,#fffde5 0 15%,#ffe493 28%,#ffb340 56%,#e96d21 78%,transparent 82%);box-shadow:0 0 8px #ffbd6488,0 0 19px #f9ad4e88;transform-origin:50% 100%;transform:rotate(var(--hh-flame-lean)) scaleX(calc(.82 + var(--hh-flame-power)*.2)) scaleY(calc(.8 + var(--hh-flame-power)*.24));opacity:calc(.7 + var(--hh-flame-power)*.3)}
.hh-candle-flame em{position:absolute;left:35%;bottom:2%;width:32%;height:40%;border-radius:50%;background:#fff8d9;box-shadow:0 0 5px #fff1b0}
.hh-candle-halo{position:absolute;left:-160%;top:-70%;width:420%;height:190%;z-index:-1;background:radial-gradient(ellipse,#ffc26966,transparent 65%);opacity:var(--hh-flame-power)}
.hh-source-candle>.hh-card-warmth{background:radial-gradient(ellipse at var(--hh-source-x) var(--hh-source-y),#ffc668,transparent 72%);opacity:calc(.08 + var(--hh-flame-power)*.13)}
.hh-source-candle>.hh-card-glimmer{background:radial-gradient(ellipse at var(--hh-source-x) var(--hh-source-y),#ffe7ada6,transparent 42%);opacity:calc(.2 + var(--hh-flame-power)*.2)}
.hh-source-candle>.hh-card-shade{transform:translate3d(calc((1 - var(--hh-flame-power))*var(--hh-shadow-sign,-1)*26px),0,0) rotate(var(--hh-flame-lean));filter:blur(calc(2px + (1 - var(--hh-flame-power))*4px))}
@layer world-motion-accessibility{
 html[data-theme='halloween-hollow'][data-halloween-motion='on'] :is(.hh-source-candle,.hh-candle-fixture){animation:hh-wax-flicker var(--hh-flame-speed,4.6s) ease-in-out var(--hh-delay) infinite!important}
 html[data-theme='halloween-hollow'][data-halloween-motion='on'] .hh-source-candle>:is(.hh-card-shade,.hh-card-warmth,.hh-card-glimmer){animation:none!important}
}
@keyframes hh-wax-flicker{0%,100%{--hh-flame-power:.86;--hh-flame-lean:-3deg}13%{--hh-flame-power:.96;--hh-flame-lean:2deg}22%{--hh-flame-power:.75;--hh-flame-lean:-5deg}31%{--hh-flame-power:.9;--hh-flame-lean:1deg}47%{--hh-flame-power:.82;--hh-flame-lean:4deg}56%{--hh-flame-power:1;--hh-flame-lean:-1deg}68%{--hh-flame-power:.78;--hh-flame-lean:-4deg}81%{--hh-flame-power:.94;--hh-flame-lean:3deg}92%{--hh-flame-power:.84;--hh-flame-lean:-2deg}}
html[data-halloween-motion='off'] .hh-candle-fixtures{display:none!important}
@media print{.hh-candle-fixtures{display:none!important}}
@media(forced-colors:active){.hh-candle-fixtures{display:none!important}}


/* Source: daily-operations-mobile.css */
/* Additional presentation is dormant on desktop. Theme paints remain owned by
   the selected theme; these rules change mobile geometry and disclosure only. */
.daily-mobile-bed-summary,.daily-mobile-room-progress { display:none; }
@media screen and (max-width:700px) {
 html #app-view #dashboard-view .daily-room-operations.summary-grid { padding:8px!important; }
 #dashboard-view .daily-room-operations > header { margin-bottom:6px; }
 #dashboard-view .daily-room-operations > header h2 { font-size:.94rem;line-height:1.3; }
 #dashboard-view .daily-room-operations > header small { display:none; }
 html #dashboard-view .daily-operations-counters { grid-template-columns:repeat(4,minmax(0,1fr));gap:4px; }
 html #dashboard-view .daily-operations-counter.metric { min-height:64px!important;height:auto;padding:6px 3px!important;gap:3px;align-items:center;justify-content:center;text-align:center; }
 html #dashboard-view .daily-operations-counter > span { font-size:clamp(.65rem,2.7vw,.8rem);line-height:1.15;min-height:2.3em;display:flex;align-items:center;justify-content:center; }
 html #dashboard-view .daily-operations-counter > strong { font-size:1.2rem!important;line-height:1.1;white-space:nowrap; }
 #dashboard-view .daily-operations-counter small { display:none; }
 #dashboard-view .daily-operations-feedback { margin-top:4px;min-height:0;max-height:28px; }
 #dashboard-view .daily-operations-feedback:empty { display:none; }
 #dashboard-view .daily-operations-list:not([hidden]) { height:auto;max-height:none;overflow:visible;scrollbar-gutter:auto;margin-top:8px!important;padding-top:6px!important; }
 #dashboard-view .daily-operations-list .today-summary-dialog-head { margin:0 0 4px;padding:0;gap:4px; }
 #dashboard-view .daily-operations-list .today-summary-dialog-head > div { min-width:0;width:100%; }
 #dashboard-view .daily-operations-list .today-summary-dialog-head h3 { margin:0;font-size:.94rem;line-height:1.3; }
 #dashboard-view .daily-operations-list .today-summary-dialog-head p.muted { display:none; }
 #dashboard-view .daily-desktop-bed-summary { display:none; }
 #dashboard-view .daily-mobile-bed-summary { display:block;font-size:.75rem; }
 #dashboard-view .daily-mobile-bed-summary > summary { min-height:44px;display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--muted); }
 #dashboard-view .daily-mobile-bed-summary > summary::before { content:'▸'; }
 #dashboard-view .daily-mobile-bed-summary[open] > summary::before { content:'▾'; }
 #dashboard-view .daily-mobile-bed-summary .checkout-bed-breakdown { display:flex;gap:6px;align-items:center;padding:4px 0; }
 #dashboard-view .daily-mobile-bed-summary .today-summary-bed-summary { margin:0 0 6px;padding:0;gap:6px; }
 #dashboard-view .daily-operations-list .daily-room-scroll { max-height:min(56dvh,420px);overflow-y:auto;overflow-x:hidden;scroll-padding-bottom:12px; }
 #dashboard-view .summary-room-list.daily-room-scroll { height:auto;max-height:min(56dvh,420px); }
 html #app-view #daily-operations-list [data-checkout-row] { margin-block:3px!important; }
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-header { display:grid!important;grid-template-columns:minmax(0,1fr) 44px;gap:0 3px!important;padding:2px 4px!important;min-height:48px!important; }
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-header > .summary-room-main { grid-column:1;grid-row:1;display:flex!important;flex-wrap:nowrap!important;gap:4px!important;max-width:100%!important;min-width:0!important; }
 html #app-view #daily-operations-list [data-checkout-row] .summary-room-number { font-size:.9rem!important;gap:3px; }
 #daily-operations-list [data-checkout-row] .summary-room-prefix { display:none; }
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-toggle { grid-column:2;grid-row:1;width:44px;height:44px;min-height:44px; }
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-header .room-status-wrap { min-width:0;flex:0 1 auto; }
 html #app-view #daily-operations-list [data-checkout-row] .room-status-toggle { min-height:44px;max-width:100%;font-size:.7rem;white-space:nowrap; }
 html #app-view #daily-operations-list [data-checkout-row] .daily-mobile-room-progress { display:flex;align-items:center;gap:3px;min-width:0; }
 #daily-operations-list .daily-mobile-room-progress .ui-badge { font-size:.65rem;line-height:1.15;padding:3px 4px;white-space:nowrap; }
 html #app-view #daily-operations-list [data-checkout-row] .checkout-work-status { display:none!important; }
 /* Arrival/custom badges remain available when the room is expanded. */
 html #app-view #daily-operations-list [data-checkout-row]:not(.checkout-row-expanded) :is(.summary-room-meta,.daily-arrival-priority,.summary-room-number .pet-room-badge,.summary-room-number .pest-control-badge) { display:none!important; }
 html #app-view #daily-operations-list [data-checkout-row].checkout-row-expanded .summary-room-main { flex-wrap:wrap!important; }
 html #app-view #daily-operations-list [data-checkout-row]:not(.checkout-row-expanded) .checkout-row-quick { display:none!important; }
 html #app-view #daily-operations-list [data-checkout-row].checkout-row-expanded .checkout-row-quick { display:flex!important;grid-column:1/-1;grid-row:2;gap:4px;width:100%!important;max-width:100%!important;overflow:visible;flex-wrap:wrap!important;padding:4px 0; }
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick :is(.summary-room-actions,.summary-room-turnover-actions,.room-card-actions,.arc-action-layout,.arc-action-group,.arc-actions) { display:flex!important;flex:1 1 auto!important;flex-wrap:wrap!important;gap:4px!important;min-width:0!important;width:auto!important;max-width:100%!important; }
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick button { flex:1 1 auto!important;min-width:0!important;min-height:44px!important;padding:6px!important;font-size:.72rem;line-height:1.2;white-space:normal!important;overflow-wrap:anywhere; }
 #daily-operations-list [data-checkout-row] .checkout-row-inner { transition:none; }
 #daily-operations-list [data-checkout-row] .checkout-row-body { transition:none; }
 #daily-operations-list [data-checkout-row].checkout-row-expanded .checkout-row-inner { padding:0 6px 6px; }
 #daily-operations-list [data-checkout-row] :is(.adaptive-room-card,.hk-work) { margin:0;padding:0; }
 /* Compact only the active Today dock; leave other screens and desktop alone. */
 html body:has(#dashboard-view:not([hidden]) .daily-room-operations) #app-view > .sidebar { padding:5px 8px max(5px,env(safe-area-inset-bottom))!important;gap:0!important; }
 body:has(#dashboard-view:not([hidden]) .daily-room-operations) .mobile-nav-dock-tools { align-items:center;gap:6px; }
 body:has(#dashboard-view:not([hidden]) .daily-room-operations) .mobile-nav-selector-label { display:none; }
 body:has(#dashboard-view:not([hidden]) .daily-room-operations) .nav-room-search { padding:0;min-height:44px; }
 body:has(#dashboard-view:not([hidden]) .daily-room-operations) .nav-room-search button { width:44px;height:44px; }
 body:has(#dashboard-view:not([hidden]) .daily-room-operations) .nav-room-search input { padding:5px;min-height:44px;font-size:16px; }
 body:has(#dashboard-view:not([hidden]) .daily-room-operations) #mobile-nav-select { min-height:44px;padding-block:5px; }
 body:has(#dashboard-view:not([hidden]) .daily-room-operations) main { padding-bottom:calc(76px + env(safe-area-inset-bottom));scroll-padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
 #dashboard-view .daily-room-operations :is(button,summary):focus-visible { outline:2px solid var(--accent);outline-offset:2px; }
}

@layer sisyphus-badges { @media(max-width:700px) {
 html #app-view #daily-operations-list [data-checkout-row] .checkout-work-status { display:none!important; }
 html #app-view #daily-operations-list .daily-mobile-room-progress .ui-badge {font-size:.65rem!important;padding:3px 4px!important;white-space:nowrap!important;}
}}

@layer theme-studio { @media(max-width:700px) {
 html #app-view #dashboard-view .daily-room-operations.summary-grid {padding:8px!important;}
 html #dashboard-view .daily-operations-counter > span {font-size:clamp(.65rem,2.7vw,.8rem)!important;line-height:1.15!important;}
 html #dashboard-view .daily-operations-counter > strong {font-size:1.2rem!important;line-height:1.1!important;}
 html #dashboard-view .daily-operations-counter.metric {min-height:64px!important;padding:6px 3px!important;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-toggle {width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-header {display:grid!important;grid-template-columns:minmax(0,1fr) 44px!important;gap:0 3px!important;padding:2px 4px!important;min-height:48px!important;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-header > .summary-room-main {display:flex!important;flex-wrap:nowrap!important;gap:4px!important;max-width:100%!important;min-width:0!important;padding:0!important;}
 html #app-view #daily-operations-list [data-checkout-row].checkout-row-expanded .summary-room-main {flex-wrap:wrap!important;}
 html #app-view #daily-operations-list [data-checkout-row]:not(.checkout-row-expanded) .checkout-row-quick {display:none!important;}
 html #app-view #daily-operations-list [data-checkout-row].checkout-row-expanded .checkout-row-quick {display:flex!important;flex-wrap:wrap!important;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick :is(.summary-room-actions,.summary-room-turnover-actions,.room-card-actions,.arc-action-layout,.arc-action-group,.arc-actions) {flex-wrap:wrap!important;gap:4px!important;min-width:0!important;width:auto!important;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick button {min-height:44px!important;min-width:0!important;white-space:normal!important;padding:6px!important;}
}}
@layer theme-studio { @media(max-width:700px) {
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick .summary-room-turnover-actions {display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));flex:1 1 100%!important;width:100%!important;}
 html #app-view #daily-operations-list [data-checkout-row] .summary-room-turnover-actions > .clean-needs-bed-button {order:4;grid-column:1/-1;}
}}


/* Source: the-fuckening.css */
/* Comic ink lives on presentation surfaces; room/status paints and print retain
   their existing meaning. No filters, overlays on text, or downloaded fonts. */
@media screen {
  @layer theme-studio { html[data-world='the-fuckening'] #app-view #themes-view #custom-color-field { display: none !important; } }
  @layer surface-material.foundation {
  html[data-world='the-fuckening'][data-theme][data-mode] .workspace {
    background: radial-gradient(circle, #7772 .6px, transparent .9px) 0 0 / 7px 7px, var(--world-background) !important;
  }
  html[data-world='the-fuckening'][data-theme][data-mode] :is(.panel-head h2, .panel-head h3, .topbar h1):not(:where(.print-preview-sheet *, #print-run-root *)) {
    font-weight: 900; letter-spacing: -.025em; text-transform: uppercase;
  }
  html[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *)) {
    border-bottom: 2px solid var(--world-border) !important;
    background: transparent !important;
  }
  html[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .panel > .panel-head:not(:where(.print-preview-sheet *, #print-run-root *))::before { animation: none !important; }
  html[data-world='the-fuckening'][data-theme][data-mode] :is(button, input, select, textarea):focus-visible {
    outline: 3px solid var(--world-text) !important; outline-offset: 3px;
  }
  html[data-world='the-fuckening'][data-theme][data-mode] .world-atmosphere { display: none !important; }
  }
  .fuckening-margin { display: none; }
  html[data-world='the-fuckening'][data-theme][data-mode] .fuckening-margin {
    display: flex; align-items: center; justify-content: flex-end; gap: 16px;
    position: relative; margin: 12px 24px; padding: 8px 12px;
    border-bottom: 2px solid var(--world-border); color: var(--world-text);
    pointer-events: none; font: bold 15px/1.4 Georgia, serif;
  }
  .fuckening-caption strong { display: block; font-size: clamp(19px, 2.5vw, 27px); font-weight: 900; letter-spacing: -.04em; text-transform: uppercase; }
  .fuckening-mug { width: 96px; flex: 0 0 96px; transform: rotate(-3deg); }
  .fuckening-mug svg { display: block; width: 100%; height: auto; }
  .world-preview[data-world='the-fuckening'] {
    background: radial-gradient(circle, #19191933 .7px, transparent 1px) 0 0/5px 5px, #eee9df !important;
  }
  .world-preview[data-world='the-fuckening'] .world-sample-card { border: 2px solid #191919; box-shadow: 4px 4px 0 #191919; }
  .world-preview[data-world='the-fuckening'] .world-portal-art { background: #191919; mask: var(--world-motif) center/contain no-repeat; }
  @keyframes world-ink-breathe { 50% { opacity: .72; } }
  @keyframes fuckening-steam { 50% { transform: translateY(-3px); opacity: .55; } }
  html[data-world='the-fuckening'][data-theme][data-mode][data-background-animations='on'] .fuckening-steam { animation: fuckening-steam 7s ease-in-out infinite; }
  @media (max-width: 700px) {
    html[data-world='the-fuckening'][data-theme][data-mode] .fuckening-margin { margin: 8px 12px; gap: 10px; justify-content: flex-start; }
    .fuckening-mug { width: 66px; flex-basis: 66px; }
  }
  @media (prefers-reduced-motion: reduce) {
    html[data-world='the-fuckening'][data-theme][data-mode] .fuckening-steam { animation: none !important; }
  }
}
@media print { .fuckening-margin { display: none !important; } }

/* Smoked glass stays inside the existing material owner. Nested work surfaces
   remain transparent; only outer cards pay for backdrop blur. */
@media screen {
    html[data-world='the-fuckening'][data-theme][data-mode] {
      --fg-edge: #a49b8a66; --fg-glow: #c7bca129;
      --fg-crimson: #85394b; --fg-green: #407768;
      --surface-panel: linear-gradient(135deg, #ffffff0d, transparent 48%), #ece7d5e6;
      --surface-card: var(--surface-panel); --surface-subtle: #7169510a;
      --surface-edge: var(--fg-edge); --surface-blur: 14px;
      --surface-highlight: #ffffff75;
      --surface-shadow: inset 0 1px 0 var(--surface-highlight), inset 0 -1px 0 #ffffff12, 0 16px 34px -22px #15131666;
      --surface-hover-shadow: inset 0 1px 0 var(--surface-highlight), 0 0 20px -8px var(--fg-glow), 0 20px 38px -22px #15131699;
    }
    html[data-world='the-fuckening'][data-theme][data-mode='dark'] {
      --surface-panel: linear-gradient(135deg, #ffffff0c, transparent 50%), #16191dc2;
      --surface-card: var(--surface-panel); --surface-subtle: #ffffff06;
      --surface-highlight: #ece4d35c; --fg-edge: #d3c8b366; --fg-glow: #d2c7b345;
      --surface-shadow: inset 0 1px 0 var(--surface-highlight), inset 0 -1px 0 #ffffff07, 0 18px 38px -20px #000b;
    }
  @layer surface-material.foundation {
    html[data-world='the-fuckening'][data-theme][data-mode] #app-view .view :is(.panel,.daily-room-operations):not(:where(.panel .panel,.daily-room-operations .panel,.print-preview-sheet *,#print-run-root *)) {
      background:var(--surface-panel) !important; border-color:var(--fg-edge) !important; box-shadow:var(--surface-shadow) !important; border-radius:18px;
    }
    html[data-world='the-fuckening'][data-theme][data-mode] :is(.sidebar,.topbar) {
      background:var(--surface-panel) !important; border-color:var(--fg-edge) !important;
      box-shadow:inset 0 1px 0 var(--surface-highlight), 0 10px 26px -18px #0009 !important;
      backdrop-filter:blur(12px) !important; -webkit-backdrop-filter:blur(12px) !important;
    }
    html[data-world='the-fuckening'][data-theme][data-mode] .workspace {
      background: radial-gradient(ellipse at 88% 6%, #8b334a2b, transparent 40%), radial-gradient(ellipse at 12% 56%, #39796925, transparent 46%), repeating-linear-gradient(92deg, #88888805 0 1px, transparent 1px 30px), radial-gradient(circle, #8c82761a .6px, transparent .9px) 0 0/5px 5px, var(--world-background) !important;
    }
    html[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .panel > .panel-head:not(:where(.print-preview-sheet *,#print-run-root *)) {
      background: transparent !important; border-bottom: 1px solid var(--fg-edge) !important;
      box-shadow: none !important; border-radius: inherit;
    }
    html[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .panel > .panel-head:not(:where(.print-preview-sheet *,#print-run-root *))::before {
      background: transparent !important; box-shadow: none !important;
    }
    html[data-world='the-fuckening'][data-theme][data-mode] #app-view .view :is(.daily-operations-quick-add,.mark-out-selection-controls,.combined-quick-lists) {
      background: transparent !important; box-shadow: none !important;
    }
    html[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .panel:focus-within {
      border-color: var(--world-text) !important; box-shadow: var(--surface-hover-shadow) !important;
    }
    @media (hover:hover) and (pointer:fine) {
      html[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .panel:hover {
        border-color: var(--world-text) !important; box-shadow: var(--surface-hover-shadow) !important;
      }
    }
    @supports not (backdrop-filter: blur(1px)) {
      html[data-world='the-fuckening'][data-theme][data-mode] { --surface-panel: var(--world-surface) !important; --surface-card: var(--world-surface) !important; }
    }
    @media (prefers-reduced-transparency: reduce) {
      html[data-world='the-fuckening'][data-theme][data-mode] { --surface-panel: var(--world-surface) !important; --surface-card: var(--world-surface) !important; --surface-blur: 0px !important; }
    }
  }
  html[data-world='the-fuckening'] #app-view .view .panel { transition: border-color 180ms ease, box-shadow 220ms ease; }
  html[data-world='the-fuckening'] .button { transition: translate 150ms ease, box-shadow 180ms ease; }
  html[data-world='the-fuckening'][data-decorative-animations='on'] .button:active:not(:disabled) { translate: 0 1px; }
  html[data-world='the-fuckening'] .fuckening-margin { border-bottom: 1px solid var(--fg-edge); }
  html[data-world='the-fuckening'] .fuckening-caption strong { text-shadow: 0 2px 18px #a9987930; }
  html[data-world='the-fuckening'] .fuckening-caption::before { content:''; display:block; width:32px; height:2px; margin-bottom:8px; background:var(--fg-crimson); box-shadow:0 0 12px #98364966; }
  .fuckening-note { display:block; margin:6px 0 0; font:italic 12px/1.5 Georgia,serif; color:var(--world-secondary); max-width:44ch; }
  html[data-world='the-fuckening'] .fuckening-note::before { content:'✦ '; color:var(--fg-green); }
  html[data-world='the-fuckening'] [data-today-card-id='departures'] .fuckening-note::before { color:var(--fg-crimson); }
  @media (max-width:700px) { html[data-world='the-fuckening'][data-theme][data-mode] { --surface-blur:8px; } }
  @media (prefers-reduced-motion:reduce) {
    html[data-world='the-fuckening'] :is(.button,.panel) { transition:none !important; translate:none !important; }
  }
  html[data-world='the-fuckening'][data-decorative-animations='off'] :is(.button,.panel) { transition:none !important; translate:none !important; }
}
@media print { .fuckening-note { display:none !important; } }

:is(.print-preview-sheet,#print-run-root) .fuckening-note { display:none !important; }


/* Source: immersive-atmosphere.css */
/* A finishing layer on the material, navigation and motion owners. No text
   opacity, canvas, click-blocking overlays or continuously running JS loops. */
@media screen {
 html[data-atmosphere][data-theme] {--atmosphere-ease:cubic-bezier(.22,.8,.25,1);--atmosphere-light:var(--world-accent-secondary,var(--accent));--atmosphere-glow:color-mix(in srgb,var(--atmosphere-light) 20%,transparent);--glass-reflection:radial-gradient(ellipse at var(--glass-x,35%) var(--glass-y,0%),#fff2,transparent 65%);}
 @layer surface-material.foundation {
  html[data-atmosphere][data-theme] #app-view .view :is(.panel,.ops-panel,.daily-room-operations,.operations-sheet-host):not(:where(.panel .panel,.print-preview-sheet *,#print-run-root *)) {
   background:linear-gradient(145deg,#ffffff0c,transparent 55%),var(--surface-user-paint,var(--surface-panel)) !important;
   box-shadow:var(--surface-shadow) !important;
   backdrop-filter:blur(var(--surface-active-blur,min(var(--surface-blur),12px))) saturate(110%) !important;-webkit-backdrop-filter:blur(var(--surface-active-blur,min(var(--surface-blur),12px))) saturate(110%) !important;
  }
  html[data-atmosphere][data-theme] #app-view .view .panel > .panel-head:not(:where(.print-preview-sheet *,#print-run-root *)) {background:transparent !important;box-shadow:none !important;}
  html[data-atmosphere][data-theme] :is(dialog,[role='dialog'],[role='listbox'],.dropdown-menu,.notification-panel):not(.print-preview-dialog,#mobile-nav-sheet) {background:var(--surface-modal) !important;border-color:var(--surface-edge) !important;box-shadow:var(--surface-modal-shadow),inset 0 1px 0 var(--surface-highlight) !important;backdrop-filter:blur(var(--surface-active-blur,16px)) saturate(110%) !important;}
  html[data-atmosphere][data-theme] #app-view .view .panel:is(:hover,:focus-within):not(:where(.panel .panel,.print-preview-sheet *,#print-run-root *)) {box-shadow:var(--surface-hover-shadow) !important;}
  html[data-atmosphere][data-cursor-lighting='on'][data-theme][data-mode] #app-view .view .panel:hover:not(:where(.print-preview-sheet *,#print-run-root *)) {background:var(--glass-reflection),var(--surface-user-paint,var(--surface-panel)) !important;}
  @media(max-width:700px) {html[data-atmosphere][data-theme] #app-view .view .panel {backdrop-filter:blur(min(6px,var(--surface-active-blur,var(--surface-blur)))) !important;}}
  @supports not (backdrop-filter:blur(1px)) {html[data-atmosphere][data-theme] #app-view .view .panel {background:var(--world-surface,var(--panel)) !important;}}
  @media(prefers-reduced-transparency:reduce) {html[data-atmosphere][data-theme] :is(.panel,dialog,.sidebar,.global-message) {background:var(--world-surface,var(--panel)) !important;backdrop-filter:none !important;}}
 }
 html[data-atmosphere] :is(.panel,.nav-item) {--glass-reflection:radial-gradient(ellipse at var(--glass-x,35%) var(--glass-y,0%),#fff2,transparent 65%);}
 html[data-atmosphere] #app-view .view .panel {transition:box-shadow 180ms ease,border-color 180ms ease;}
 html[data-atmosphere] :is(button,[role='button']) {transition:translate 140ms var(--atmosphere-ease);}
 html[data-atmosphere]:not([data-atmosphere='off']) :is(button,[role='button']):active:not(:disabled) {translate:0 1px;}
 .atmosphere-settings-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:14px;}
 .atmosphere-toggle {display:flex!important;align-items:center;gap:10px;min-height:44px;}
 .atmosphere-toggle input {width:20px;height:20px;accent-color:var(--accent);}
 .atmosphere-previews {display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;}
 .atmosphere-settings .panel-body {padding:18px;}
 .atmosphere-context {font:italic 13px/1.6 Georgia,serif;color:var(--world-secondary,var(--secondary));padding:0 8px;margin:8px 0 14px;}
 .atmosphere-context::before {content:'✦ ';color:var(--atmosphere-light);}
 .atmosphere-victory {position:fixed;bottom:max(20px,env(safe-area-inset-bottom));right:20px;z-index:2147483645;width:min(380px,calc(100vw - 40px));padding:16px 20px;display:flex;align-items:center;gap:16px;background:var(--surface-elevated,var(--panel));color:var(--world-text,var(--text));border:1px solid var(--surface-edge);border-radius:18px;box-shadow:var(--surface-floating-shadow);backdrop-filter:blur(12px);pointer-events:none;}
 .atmosphere-victory>span:first-child {font:36px Georgia,serif;color:var(--atmosphere-light);}
 html[data-atmosphere] #global-message {background:var(--surface-elevated,var(--panel));color:var(--world-text,var(--text));border:1px solid var(--surface-edge);border-inline-start:4px solid var(--atmosphere-light);border-radius:16px;box-shadow:var(--surface-floating-shadow);backdrop-filter:blur(14px);max-height:40vh;overflow:auto;animation:atmosphere-toast-in 180ms ease-out;}
 html[data-atmosphere] #global-message::before {content:var(--atmosphere-glyph,'✦');margin-right:8px;}
 html[data-atmosphere] #global-message[data-kind='error'] {border-inline-start-color:var(--danger,#b2394b);}
 html[data-atmosphere] #global-message[data-kind='warning'] {border-inline-start-color:var(--orange,#b77b32);}
 html[data-atmosphere] #global-message[data-kind='success'] {border-inline-start-color:var(--success,#418b6d);}
 html[data-atmosphere] .world-loading-indicator {display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background:none!important;border:0!important;animation:atmosphere-load 2s linear infinite;}
 html[data-atmosphere] .world-loading-indicator::before {content:var(--atmosphere-loader,'◌');font-size:1.3em;}
 html[data-atmosphere] .empty-state:not(:where(.print-preview-sheet *,#print-run-root *)):not(:has(.world-loading-indicator))::before {content:var(--atmosphere-glyph,'✦');display:block;font-size:24px;line-height:1.5;color:var(--world-secondary,var(--secondary));margin-bottom:5px;}
 .atmosphere-veil {position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:.12;background:radial-gradient(ellipse at 12% 72%,var(--atmosphere-light),transparent 55%);}
 .atmosphere-veil::before {content:'';position:absolute;inset:-8%;background:radial-gradient(ellipse at 20% 55%,#eee2,transparent 38%),radial-gradient(ellipse at 78% 30%,var(--atmosphere-light),transparent 45%);animation:atmosphere-fog 36s ease-in-out infinite alternate;}
 .atmosphere-veil b {position:absolute;left:calc(8% + var(--mote)*16%);top:calc(12% + var(--mote)*13%);width:3px;height:3px;border-radius:50%;background:var(--atmosphere-light);box-shadow:0 0 8px var(--atmosphere-light);animation:atmosphere-mote calc(14s + var(--mote)*3s) ease-in-out infinite alternate;}
 html[data-atmosphere='subtle'] .atmosphere-veil b:nth-child(n+3) {display:none;}
 html[data-atmosphere='full'] .atmosphere-veil {opacity:.25;}
 html[data-atmosphere-environment='rain'] .atmosphere-veil::before,html[data-atmosphere-environment='signal'] .atmosphere-veil::before {background:repeating-linear-gradient(105deg,transparent 0 48px,color-mix(in srgb,var(--atmosphere-light) 22%,transparent) 49px 50px);}
 html[data-atmosphere-environment='leaves'] .atmosphere-veil b {width:7px;height:12px;border-radius:85% 10% 85% 10%;}
 html[data-atmosphere-environment='pixels'] .atmosphere-veil b {border-radius:0;animation-timing-function:steps(6,end);}
 html[data-atmosphere-environment='stars'] .atmosphere-veil b {clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);width:12px;height:12px;}
 html[data-atmosphere-mood='busy'] .atmosphere-veil {filter:saturate(.8);}
 html[data-atmosphere-mood='complete'] .atmosphere-veil {background:radial-gradient(ellipse at 60% 40%,#739c7a55,transparent 60%);}
 .atmosphere-easter {position:absolute;left:var(--world-rare-x,78%);top:var(--world-rare-y,50%);font:42px Georgia,serif;color:var(--world-text,var(--text));opacity:0;}
 html[data-atmosphere-eggs='on'] .world-atmosphere[data-event='personality-glimpse'] .atmosphere-easter {animation:atmosphere-glimpse 3.5s ease both;}
 html[data-world='the-fuckening'][data-atmosphere] .world-atmosphere {display:block!important;}
 html[data-world='the-fuckening'][data-atmosphere] .world-atmosphere>:not(.atmosphere-veil) {display:none;}
 html[data-world='the-fuckening'][data-atmosphere] .atmosphere-veil {background:repeating-linear-gradient(90deg,transparent 0 28px,#8984770a 29px 30px),radial-gradient(ellipse at 20% 60%,#426a54,transparent 55%);}
 html[data-atmosphere='off'] .atmosphere-veil,html[data-background-animations='off'] .atmosphere-veil {display:none;}
 html[data-atmosphere='off'] .world-atmosphere *,html[data-atmosphere='off'] .world-atmosphere *::before,html[data-atmosphere='off'] .world-atmosphere *::after,html.world-page-hidden .atmosphere-veil * {animation-play-state:paused!important;}
 .sidebar-toggle {position:absolute;top:10px;right:8px;z-index:4;min-width:36px;min-height:36px;border:1px solid var(--surface-edge);border-radius:10px;background:var(--surface-control);color:var(--world-text,var(--text));cursor:pointer;}
 html[data-atmosphere] .sidebar .brand {padding-top:30px;}
 .navigation-glass-tooltip {position:fixed;z-index:2147483647;max-width:min(240px,calc(100vw - 20px));padding:9px 13px;background:var(--surface-modal,var(--panel));border:1px solid var(--surface-edge);color:var(--world-text,var(--text));border-radius:12px;box-shadow:var(--surface-floating-shadow);backdrop-filter:blur(12px);pointer-events:none;}
 @media(min-width:701px) {
  html[data-sidebar] .sidebar {inset:12px auto 12px 12px;height:calc(100dvh - 24px);border:1px solid var(--surface-edge);border-radius:20px;}
  html[data-sidebar] .workspace {margin-left:calc(var(--sidebar) + 24px);}
  html[data-sidebar='collapsed'] {--sidebar:76px;}
  html[data-sidebar='collapsed'] .sidebar {width:76px;padding:12px 8px;}
  html[data-sidebar='collapsed'] .workspace {margin-left:100px!important;}
  html[data-sidebar='collapsed'] .sidebar .brand {justify-content:center;padding:38px 0 8px;}
  html[data-sidebar='collapsed'] .sidebar .brand>div,html[data-sidebar='collapsed'] .sidebar :is(.nav-label,.nav-count,.nav-room-search,.nav-reorder,.user-chip) {position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;clip-path:inset(50%)!important;overflow:hidden!important;white-space:nowrap!important;}
  html[data-sidebar='collapsed'] .sidebar .nav-room-search,html[data-sidebar='collapsed'] .sidebar .nav-reorder {display:none!important;}
  html[data-sidebar='collapsed'] .sidebar .nav-item {width:100%;min-width:44px;min-height:48px;padding:8px!important;display:flex;justify-content:center;gap:0;}
  html[data-sidebar='collapsed'] .sidebar .nav-item>span:first-child {margin:0!important;}
  html[data-sidebar='collapsed'] #logout-button {font-size:0;min-height:44px;}
  html[data-sidebar='collapsed'] #logout-button::before {content:'↪';font-size:20px;}
  html[data-cursor-lighting='on'] .sidebar .nav-item:hover {background-image:var(--glass-reflection);text-shadow:0 0 10px var(--atmosphere-light);}
 }
 @media(max-width:700px) {
  .sidebar-toggle {display:none;}
  html[data-atmosphere] .sidebar .brand {padding-top:0;}
  html[data-atmosphere] #mobile-nav-sheet {position:fixed!important;inset:12px auto 12px 12px!important;margin:0!important;width:min(360px,calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important;height:calc(100dvh - 24px)!important;max-height:calc(100dvh - 24px)!important;border-radius:22px!important;animation:atmosphere-drawer-in 200ms var(--atmosphere-ease);}
  .atmosphere-veil b:nth-child(n+3) {display:none;}
 }
 html[data-atmosphere-transitions='off'] :is(.view,.panel,.button,.nav-item,dialog,[role='listbox'],#mobile-nav-sheet,#global-message) {animation:none!important;transition:none!important;translate:none!important;}
 @media(prefers-reduced-motion:reduce) {html[data-atmosphere] :is(.atmosphere-veil,.atmosphere-veil *,.atmosphere-veil::before,.atmosphere-easter,.world-loading-indicator,.sidebar,.panel,.nav-item,#global-message,#mobile-nav-sheet) {animation:none!important;transition:none!important;translate:none!important;}}
 @media(forced-colors:active) {html[data-atmosphere] :is(.sidebar,.panel,.navigation-glass-tooltip,#global-message) {border:1px solid CanvasText!important;background:Canvas!important;color:CanvasText!important;}}
}
@keyframes atmosphere-fog {to{transform:translate3d(5%,2%,0);opacity:.6;}}
@keyframes atmosphere-mote {to{transform:translate3d(12px,-45px,0);opacity:.15;}}
@keyframes atmosphere-glimpse {0%,100%{opacity:0;transform:translateY(12px);}35%,65%{opacity:.6;transform:translateY(0);}}
@keyframes atmosphere-load {to{rotate:1turn;}}
@keyframes atmosphere-toast-in {from{opacity:0;translate:0 8px;}to{opacity:1;translate:0 0;}}
@keyframes atmosphere-drawer-in {from{opacity:0;translate:-12px 0;}to{opacity:1;translate:0 0;}}
@media print {.sidebar-toggle,.navigation-glass-tooltip,.atmosphere-context,.atmosphere-victory,.atmosphere-veil,.atmosphere-settings {display:none!important;}}
:is(.print-preview-sheet,#print-run-root) :is(.atmosphere-context,.atmosphere-veil,.atmosphere-victory) {display:none!important;}

@media screen {html[data-world='the-fuckening'][data-atmosphere]:not([data-atmosphere='off']) #global-message[data-kind='success']::after {content:'A suspiciously successful outcome.';display:block;font:italic 12px/1.6 Georgia,serif;margin-top:4px;}}

.atmosphere-easter svg {display:block;width:42px;height:50px;filter:drop-shadow(0 0 10px #bed4be44);}

@media screen {html.world-page-hidden .atmosphere-veil::before,html.world-page-hidden .atmosphere-veil,html.world-page-hidden .atmosphere-veil * {animation-play-state:paused!important;}}

@media screen and (min-width:701px) {
 @layer surface-material.foundation {
  html[data-sidebar][data-atmosphere] #app-view>.sidebar {inset:12px auto 12px 12px!important;height:calc(100dvh - 24px)!important;width:var(--sidebar)!important;border-radius:20px!important;}
 }
}
@media screen and (max-width:700px) {
 html[data-atmosphere] #mobile-nav-sheet[open] {display:flex!important;flex-direction:column;gap:12px;}
 html[data-atmosphere] #mobile-nav-sheet .mobile-nav-sheet-list {flex:1 1 auto;min-height:0;max-height:none!important;overflow-y:auto;overscroll-behavior:contain;}
 html[data-atmosphere] #mobile-nav-sheet :is(.mobile-nav-sheet-head,.nav-room-search,.mobile-nav-sheet-reorder) {flex-shrink:0;}
}

@media screen and (hover:hover) and (pointer:fine) {@layer surface-material.foundation {html[data-atmosphere][data-cursor-lighting='on'][data-theme][data-mode] .sidebar .nav-item:hover {background-image:var(--glass-reflection)!important;}}}
@media screen and (min-width:701px) and (max-width:1100px) {
 html[data-sidebar][data-atmosphere] .topbar {flex-wrap:wrap;gap:12px;}
 html[data-sidebar][data-atmosphere] .topbar .top-actions {flex-wrap:wrap;min-width:0;max-width:100%;}
}


/* Source: daily-operations-compact.css */
/* Daily dashboard geometry only. Existing theme surfaces, badges, permissions
   and work actions remain owned by their established components. */
#dashboard-view .daily-operations-counters {grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
#dashboard-view .daily-operations-counter {transition:box-shadow .15s ease,transform .15s ease;}
#dashboard-view .daily-operations-counter:hover {box-shadow:inset 0 1px color-mix(in srgb,var(--accent) 25%,transparent),0 0 10px color-mix(in srgb,var(--accent) 10%,transparent);}
#dashboard-view .checkout-counter-tile {min-width:0;display:flex;flex-direction:column;padding:0;overflow:hidden;}
#dashboard-view .checkout-counter-tile > .daily-operations-counter {width:100%;flex:1;border:0!important;background:transparent!important;box-shadow:none!important;}
#dashboard-view .overnight-checkout-details {padding:0 10px 8px;font-size:.75rem;line-height:1.35;}
#dashboard-view .overnight-checkout-details summary {cursor:pointer;color:var(--muted);padding:3px 0;}
#dashboard-view .overnight-checkout-list {display:grid;gap:2px;padding-top:3px;}
#dashboard-view .overnight-checkout-row {display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:6px;align-items:baseline;}
#dashboard-view .overnight-checkout-row strong {font-size:inherit;line-height:inherit;font-weight:600;}
#dashboard-view .overnight-checkout-row span {overflow-wrap:anywhere;margin:0;}
#dashboard-view .daily-room-operations > header {margin-bottom:8px;}
#dashboard-view .daily-operations-feedback:empty {display:none;}
#dashboard-view .daily-operations-list:not([hidden]) {height:auto;max-height:none;overflow:visible;border-top:0;margin-top:14px;padding-top:0;}
#dashboard-view .daily-operations-list .today-summary-dialog-head {margin:0 0 10px;padding:0;}
#dashboard-view .daily-operations-list .today-summary-dialog-head > div {width:100%;min-width:0;}
#dashboard-view .daily-operations-list h3 {margin:0;font-size:1rem;display:flex;align-items:center;gap:8px;}
.daily-checkout-count {font-size:.75rem;color:var(--muted);font-weight:500;white-space:nowrap;}
.daily-floor-filters {display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px;}
.daily-floor-tile {display:flex;align-items:center;gap:0;border-radius:8px;background:color-mix(in srgb,var(--accent) 5%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--accent) 12%,transparent);}
.daily-floor-tile[data-active="true"] {box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent),0 0 8px color-mix(in srgb,var(--accent) 12%,transparent);}
.daily-floor-beds {display:flex;align-items:center;gap:0;padding-right:2px;}
.daily-floor-button {min-height:44px;padding:6px 8px;border:0;border-radius:7px;background:transparent;color:inherit;font:inherit;font-size:.78rem;cursor:pointer;white-space:nowrap;}
.daily-floor-button[aria-pressed="true"] {background:color-mix(in srgb,var(--accent) 15%,transparent);font-weight:700;}
.daily-floor-button.bed-q {color:var(--blue,#438bd5);}
.daily-floor-button.bed-k {color:var(--green,#27976a);}
.daily-floor-button:is(.bed-q,.bed-k) {min-width:44px;}
.daily-floor-button:hover {background:color-mix(in srgb,var(--accent) 10%,transparent);}
.daily-room-operations :is(button,select):focus-visible {outline:2px solid var(--accent);outline-offset:2px;}
#daily-operations-list [data-checkout-row][hidden] {display:none!important;}
#dashboard-view .daily-operations-list .summary-room-list.daily-room-scroll {display:flex;flex-direction:column;gap:4px;max-height:min(60dvh,520px);height:auto;overflow:auto;overflow-x:hidden;scroll-padding-block:8px;}
#daily-operations-list .daily-filter-empty {margin:0;padding:12px;font-size:.85rem;}
#daily-operations-list [data-checkout-row] {flex-shrink:0;}
@media(max-width:800px) {
 #dashboard-view .overnight-checkout-details {padding-inline:6px;}
 #dashboard-view .overnight-checkout-details summary {font-size:.7rem;letter-spacing:normal;}
 #dashboard-view .overnight-checkout-row {grid-template-columns:auto minmax(0,1fr);gap:1px 5px;}
 #dashboard-view .overnight-checkout-row span {grid-column:1/-1;}
 html #dashboard-view .daily-operations-counters {grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
 .daily-floor-filters {gap:4px;flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:thin;}
 .daily-floor-filters > * {flex-shrink:0;}
 .daily-floor-button {padding-inline:6px;}
}
@layer theme-studio {
 html #app-view #dashboard-view .daily-room-operations.summary-grid {padding:12px!important;}
 html #dashboard-view .daily-operations-counter.metric {min-height:88px!important;padding:8px 10px!important;height:auto!important;gap:3px!important;align-items:flex-start!important;justify-content:flex-start!important;text-align:left;}
 html #dashboard-view .daily-operations-counter > span {font-size:.8rem!important;min-height:0!important;margin:0!important;line-height:1.2!important;display:block;}
 html #dashboard-view .daily-operations-counter > strong {font-size:1.65rem!important;line-height:1.1!important;margin:0!important;}
 html #dashboard-view .daily-operations-counter small {display:block!important;font-size:.7rem!important;line-height:1.2!important;margin:0!important;padding:0!important;}
 html #dashboard-view .daily-operations-counter .checkout-bed-breakdown {display:flex;flex-wrap:wrap;gap:4px;}
 html #app-view #daily-operations-list [data-checkout-row] {margin:0!important;padding:0!important;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-header {display:grid!important;grid-template-columns:minmax(0,1fr) 44px!important;gap:0 4px!important;padding:2px 6px!important;min-height:48px!important;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-header > .summary-room-main {grid-column:1;grid-row:1;display:flex!important;flex-wrap:wrap!important;gap:4px 6px!important;max-width:100%!important;min-width:0!important;padding:0!important;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-toggle {grid-column:2;grid-row:1;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;}
 html #app-view #daily-operations-list [data-checkout-row] .room-status-toggle {min-height:44px!important;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick,
 html #app-view #daily-operations-list [data-checkout-row]:not(.checkout-row-expanded) .checkout-row-quick {display:flex!important;grid-column:1/-1;grid-row:2;flex-wrap:wrap!important;gap:4px!important;width:100%!important;max-width:100%!important;padding:2px 0 4px!important;overflow:visible;}
 html #app-view #daily-operations-list [data-checkout-row][data-daily-complete="true"]:not(.checkout-row-expanded) .checkout-row-quick {display:none!important;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick :is(.summary-room-actions,.summary-room-turnover-actions,.arc-action-layout,.arc-action-group,.arc-actions) {flex:1 1 auto!important;flex-wrap:wrap!important;gap:4px!important;width:auto!important;min-width:0!important;max-width:100%;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick > .summary-room-actions {width:100%!important;flex:1 1 100%!important;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick .summary-room-turnover-actions {display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;flex:1 1 100%!important;width:100%!important;}
 html #app-view #daily-operations-list [data-checkout-row] .summary-room-turnover-actions > .clean-needs-bed-button {order:0;grid-column:auto;}
 html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick button {min-height:44px!important;min-width:0!important;padding:6px!important;flex:1 1 auto!important;white-space:normal!important;font-size:.75rem;line-height:1.2;}
 @media(max-width:700px) {
  html #app-view #daily-operations-list [data-checkout-row] .summary-room-number {font-size:.95rem!important;}
  html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick .summary-room-turnover-actions {grid-template-columns:repeat(4,minmax(0,1fr))!important;}
  html #dashboard-view .daily-operations-counter.metric {min-height:82px!important;padding:7px 8px!important;}
  html #dashboard-view .daily-operations-counter > strong {font-size:1.4rem!important;}
  html #dashboard-view .daily-operations-counter > span {font-size:.75rem!important;}
  html #app-view #daily-operations-list [data-checkout-row] .checkout-row-quick button {font-size:.7rem!important;}
 }
}
@media(prefers-reduced-motion:reduce) {#dashboard-view .daily-operations-counter {transition:none;}}


/* Source: grimble.css */
/* All styling stays inside Grimble's own area; existing theme lighting survives. */
.grimble-home{margin:8px 12px 14px;flex:none;color:#eaded5;font:12px/1.4 system-ui,sans-serif;contain:layout style}
.grimble-door{display:flex;align-items:center;gap:8px;width:100%;padding:10px;border:1px solid #9e7353;border-radius:40px 32px 7px 8px;background:linear-gradient(115deg,#3c303d,#191820);color:#f4dfbb;box-shadow:inset 0 0 15px #d68d4320;text-align:left;cursor:pointer;min-height:65px;transform:rotate(-.5deg)}
.grimble-door svg{width:48px;height:52px;flex:none}.grimble-door strong,.grimble-door small{display:block}.grimble-door small{font-size:10px;color:#d0bccb}.grimble-home [hidden],.grimble-closet [hidden]{display:none!important}
.grimble-closet{color:#f3e6cf;background:#211d29;border:1px solid #a287a7;border-radius:22px 7px 22px 7px;padding:20px;width:min(590px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 24px 90px #0009;font:14px/1.5 system-ui,sans-serif}
.grimble-closet::backdrop{background:#08060c88;backdrop-filter:blur(3px)}.grimble-closet header{display:flex;justify-content:space-between;align-items:start;gap:12px}.grimble-closet h2{font:26px/1.15 Georgia,serif;margin:4px 0;color:#ffe6bb}.grimble-closet p{margin:6px 0}.grimble-closet .gb-eyebrow{letter-spacing:.13em;font-size:10px;text-transform:uppercase;color:#d6abdf}.grimble-closet button,.grimble-closet select{font:inherit;color:#f3e6cf;background:#393040;border:1px solid #8d748d;border-radius:8px;padding:8px 10px;min-height:40px;cursor:pointer}.grimble-closet button:hover{background:#514058;border-color:#e6b870}.grimble-closet :focus-visible,.grimble-door:focus-visible{outline:3px solid #ffca7b;outline-offset:3px}.grimble-closet select{width:100%}
.gb-room{margin:14px 0;position:relative;min-height:250px;border-radius:64px 64px 12px 12px;border:1px solid #695372;background:radial-gradient(ellipse at 50% 10%,#62426088,transparent 65%),repeating-linear-gradient(0deg,transparent 0 38px,#a58aab0b 39px 40px),#18151f;display:grid;grid-template-columns:1fr 150px 1fr;align-items:end;padding:20px 12px 12px;gap:8px;overflow:hidden;isolation:isolate}.gb-award{position:absolute;top:15px;left:50%;transform:translateX(-50%) rotate(-3deg);border:3px double #ad936b;color:#ddc69e;font:10px Georgia,serif;padding:5px;text-align:center;background:#332936}.gb-room .gb-character-button{padding:0;border:0;background:none;min-width:0;align-self:center;margin-top:28px;z-index:1}.gb-room .grimble-character{width:150px;height:175px}.gb-objects{display:grid;gap:6px;z-index:2}.gb-objects button{font-size:11px;padding:6px 4px;line-height:1.3;background:#302735cc}.gb-objects button span{display:block;font:24px Georgia,serif;color:#d7b183}.gb-speech{min-height:44px;font:italic 15px/1.5 Georgia,serif;text-align:center;color:#f0caa0}.gb-meter{padding:13px;background:#17141d;border:1px solid #6d586f;border-radius:10px}.gb-meter label{display:block;font-size:10px;letter-spacing:.07em;color:#dac4dd}.gb-meter meter{width:100%;height:16px;accent-color:#e6af66}.gb-meter small{display:block;color:#c5b4c9;font-size:11px}.gb-settings{margin-top:14px}.gb-settings summary{cursor:pointer;padding:10px 0;color:#e7c794}.gb-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gb-settings label{display:flex;align-items:center;gap:8px;padding:6px;font-size:12px}.gb-settings input[type=checkbox]{accent-color:#dcb37a;width:17px;height:17px;flex:none}.gb-settings input[type=range]{width:90px;accent-color:#dcb37a}.gb-settings .gb-outfit{display:block;grid-column:1/-1}.gb-achievements{padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:11px}.gb-achievements li{padding:8px;border:1px solid #735d76;border-radius:7px;color:#c6b2cc}.gb-achievements li[data-unlocked=true]{color:#ffda91;background:#a0782320}.gb-footnote{font-size:10px!important;color:#c5b4c9}.gb-save-warning{color:#ffc4a6;font-size:12px}.grimble-character{overflow:visible}.gb-hearts,.gb-flames,.gb-tears,.gb-spectacles,.gb-towel,.gb-prop,.gb-wings,.gb-coffin{display:none}
[data-outfit=housekeeping] .gb-housekeeping,[data-outfit=laundry] .gb-laundry,[data-outfit=inspection] .gb-inspection,[data-outfit=management] .gb-management{display:block}[data-outfit=inspection] .gb-spectacles,[data-outfit=management] .gb-spectacles,[data-outfit=laundry] .gb-towel{display:block}
[data-expression=affectionate] .gb-hearts,[data-expression=furious] .gb-flames,[data-expression=crying] .gb-tears{display:block}[data-expression=affectionate] .gb-eyes,[data-expression=furious] .gb-eyes{opacity:0}[data-expression=happy] .gb-lids,[data-expression=shocked] .gb-lids,[data-expression=affectionate] .gb-lids{opacity:0}[data-expression=shocked] .gb-jaw{transform:translateY(13px)}[data-expression=side-eye] .gb-eyes{transform:translateX(7px)}[data-expression=judgment] .gb-lids{transform:translateY(6px)}[data-expression=suspicious] .gb-head{transform:rotate(-6deg);transform-origin:120px 120px}[data-expression=scheming] .gb-lids{transform:rotate(-7deg);transform-origin:120px 90px}[data-expression=dead-inside] .gb-eyes{opacity:.35}[data-expression=overwhelmed] .gb-body{transform:translateY(8px) scaleY(.93);transform-origin:120px 230px}
.grimble-character .gb-head,.grimble-character .gb-body,.grimble-character .gb-arm,.grimble-character .gb-mug{transform-box:fill-box;transform-origin:center}.gb-motion[data-action] .gb-body{animation:gb-sway 2.5s ease-in-out 1}.gb-motion[data-action=coffee] .gb-mug{animation:gb-sip 2.5s ease-in-out 1}.gb-motion[data-action=sleep] .gb-body{animation:gb-sleep 3s ease-in-out 1}.gb-motion[data-action=hood] .gb-head{animation:gb-tilt 2.5s ease-in-out 1}.gb-motion[data-action=shrug] .gb-arm{animation:gb-shrug 2.5s ease-in-out 1}.gb-motion[data-action=skull] .gb-skull{animation:gb-skull 2.5s ease-in-out 1}.gb-motion[data-action=collapse] .gb-body{animation:gb-collapse 3s ease-in-out 1}.gb-motion[data-action=celebrate] .gb-body{animation:gb-dance 2.5s ease-in-out 1}.gb-motion[data-action=coffin] .gb-coffin{display:block;animation:gb-drag 3s ease-in-out 1}.gb-motion[data-action=dust] .gb-body{animation:gb-dust 3s ease-in-out 1}.gb-motion[data-action=sheet] .gb-laundry{display:block;animation:gb-avalanche 3s ease-in-out 1}.gb-motion[data-action=fire] .gb-flames{display:block;animation:gb-ember 2s ease-in-out 1}.gb-motion[data-action=wings] .gb-wings{display:block;animation:gb-dust 3s ease-in-out 1}.gb-motion[data-action=applause] .gb-arm{animation:gb-shrug .4s ease-in-out 6}.gb-motion[data-action=peek] .gb-body{animation:gb-peek 3s ease-in-out 1}.gb-motion[data-action=cat] .gb-cat{animation:gb-tilt 2.5s ease-in-out 1}.gb-motion[data-action=rattle] .gb-head{animation:gb-rattle .2s linear 10}.gb-motion[data-action=sweep] .gb-housekeeping{display:block;animation:gb-sweep .65s ease-in-out 4}.gb-motion[data-action=read] .gb-head{animation:gb-read 3s ease-in-out 1}.gb-motion[data-action=funeral] .gb-coffin{display:block;animation:gb-funeral 3s ease-in-out 1}.gb-motion[data-action=grave] .gb-body{animation:gb-grave 3s ease-in-out 1}.gb-motion[data-action=scream] .gb-jaw{animation:gb-scream 2.5s ease-in-out 1}.gb-motion[data-action=confetti] .gb-smoke{animation:gb-confetti 2.5s ease-out 1;stroke:#ffd09b;stroke-dasharray:3 7;stroke-width:7}.gb-motion[data-action=ritual] .gb-laundry{display:block;animation:gb-ritual 3s ease-in-out 1}.gb-motion[data-action=walk] .gb-feet{animation:gb-walk .5s ease-in-out 6}
@keyframes gb-sway{50%{transform:translateY(-3px) rotate(-2deg)}}@keyframes gb-sip{35%,65%{transform:translate(23px,-61px) rotate(-20deg)}}@keyframes gb-sleep{30%,70%{transform:translateY(10px) rotate(-12deg)}}@keyframes gb-tilt{40%,70%{transform:rotate(9deg)}}@keyframes gb-shrug{50%{transform:translateY(-12px) rotate(8deg)}}@keyframes gb-skull{40%,70%{transform:translate(30px,68px) rotate(80deg)}}@keyframes gb-collapse{40%,65%{transform:translateY(40px) scaleY(.25) rotate(10deg)}}@keyframes gb-dance{25%,75%{transform:rotate(-7deg) translateY(-6px)}50%{transform:rotate(7deg) translateY(-12px)}}@keyframes gb-drag{from{transform:translateX(-35px)}60%{transform:translateX(30px)}}@keyframes gb-dust{45%,70%{opacity:.08;filter:blur(5px);transform:translateY(8px)}}@keyframes gb-avalanche{30%,65%{transform:translate(-55px,-70px) scale(1.8)}}@keyframes gb-ember{40%{filter:drop-shadow(0 -7px 4px #ff6544);transform:scaleY(1.5)}}@keyframes gb-peek{40%,60%{transform:translateX(22px) rotate(12deg)}}@keyframes gb-rattle{50%{transform:translateX(2px) rotate(3deg)}}@keyframes gb-sweep{50%{transform:rotate(-12deg);transform-origin:170px 145px}}@keyframes gb-read{35%,70%{transform:translateY(5px) rotate(6deg)}}@keyframes gb-funeral{40%,70%{transform:translateY(-10px);filter:drop-shadow(0 0 9px #be99da)}}@keyframes gb-grave{40%,70%{transform:translateY(70px) scale(.7);opacity:.2}}@keyframes gb-scream{30%,75%{transform:translateY(20px) scaleY(1.2)}}@keyframes gb-confetti{to{transform:translateY(-65px) scale(1.4);opacity:0}}@keyframes gb-ritual{50%{filter:drop-shadow(0 -8px 10px #b96cf5);transform:translateY(-16px) rotate(6deg)}}@keyframes gb-walk{50%{transform:translateX(5px) rotate(-3deg)}}
.gb-mood-glow{box-shadow:inset 0 0 20px var(--gb-glow,#bb88dd22)}
@media(max-width:700px){.grimble-home{display:none}.grimble-mobile-entry{font:12px system-ui;padding:8px!important;min-height:40px}.grimble-closet{padding:14px}.gb-room{grid-template-columns:1fr 112px 1fr;padding:18px 7px 9px;gap:4px;min-height:225px}.gb-room .grimble-character{width:112px;height:154px}.gb-objects button{font-size:10px}.gb-settings-grid{grid-template-columns:1fr}.gb-achievements{grid-template-columns:1fr 1fr}.gb-award{font-size:9px}}
@media(min-width:701px){.grimble-mobile-entry{display:none!important}}@media(prefers-reduced-motion:reduce){.gb-motion *{animation:none!important;transition:none!important}}[data-grimble-static=true] *{animation:none!important;transition:none!important}@media print{.grimble-home,.grimble-mobile-entry,.grimble-closet{display:none!important}}
.gb-motion[data-action=scratch] .gb-skull{animation:gb-scratch 3s ease-in-out 1}.gb-motion[data-action=toast] .gb-mug{animation:gb-toast 3s ease-in-out 1}.gb-motion[data-action=nod] .gb-head{animation:gb-nod .65s ease-in-out 3}.gb-motion[data-action=stain] .gb-head{animation:gb-stain 3s ease-in-out 1}.gb-motion[data-action=coffin-break] .gb-coffin{display:block;animation:gb-funeral 3s ease-in-out 1}.gb-motion[data-action=coffin-break] .gb-mug{animation:gb-sip 3s ease-in-out 1}.gb-motion[data-action=door] .gb-room::after{content:'OFF DUTY · SINCE 1873';position:absolute;inset:0;background:repeating-linear-gradient(90deg,#352b3b 0 30px,#231d2c 31px 34px);border:3px double #b89c70;border-radius:60px 60px 10px 10px;z-index:4;display:grid;place-items:center;font:18px Georgia,serif;color:#f0d1a0;transform-origin:left center;animation:gb-door 3s ease-in-out 1;pointer-events:none}.gb-clock-scene{position:absolute;top:18px;right:16px;width:28px;height:28px;border:2px solid #b19474;border-radius:50%;transform:rotate(12deg);color:#d5b497;font:19px Georgia,serif;line-height:24px;text-align:center}.gb-gravestone{position:absolute;bottom:5px;left:46%;font:8px Georgia,serif;color:#b89cc7;opacity:0}.gb-motion[data-action=grave] .gb-gravestone{opacity:1}.gb-repertoire{display:flex;gap:8px}.gb-repertoire select{min-width:0;font-size:12px}.gb-repertoire button{flex:none}
@keyframes gb-scratch{35%,65%{transform:translate(4px,-24px) rotate(17deg)}}@keyframes gb-toast{35%,70%{transform:translate(5px,-25px) rotate(-10deg)}}@keyframes gb-nod{50%{transform:translateY(5px) rotate(5deg)}}@keyframes gb-stain{35%,65%{transform:translateX(-7px) rotate(-15deg)}}@keyframes gb-door{0%,100%{transform:perspective(500px) rotateY(-100deg);opacity:0}20%,75%{transform:perspective(500px) rotateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.gb-motion[data-action=door] .gb-room::after{display:none}}
.gb-objects svg{width:40px;height:32px;display:block;margin:auto}.gb-room::before{content:'';position:absolute;inset:auto 0 0;height:30px;background:repeating-linear-gradient(90deg,#63506b22 0 30px,#aa8c7744 31px 32px);border-top:1px solid #947ca544;z-index:-1}.gb-settings .gb-settings-grid label{margin:0;min-height:32px;align-self:start;line-height:1.35}.gb-achievements button{font-size:11px;padding:3px 5px;min-height:30px}.gb-settings-grid{align-items:start}
/* Shared theme dialog materials use layered important rules. Keep this small
   illustrated interior legible in BOTH modes without changing other dialogs. */
@layer surface-material.foundation{
 html:root[data-world='the-fuckening'][data-theme][data-mode] dialog.grimble-closet{background:#211d29!important;color:#f3e6cf!important;border:1px solid #a287a7!important;border-radius:22px 7px 22px 7px!important}
 html:root[data-world='the-fuckening'][data-theme][data-mode] dialog.grimble-closet :is(p,label,strong,li){color:#f3e6cf!important}
 html:root[data-world='the-fuckening'][data-theme][data-mode] dialog.grimble-closet h2{color:#ffe6bb!important}
 html:root[data-world='the-fuckening'][data-theme][data-mode] dialog.grimble-closet :is(small,.gb-footnote,.gb-eyebrow){color:#d5bfdc!important}
 html:root[data-world='the-fuckening'][data-theme][data-mode] dialog.grimble-closet :is(button,select){background:#393040!important;color:#f3e6cf!important;border-color:#9c829e!important}
 html:root[data-world='the-fuckening'][data-theme][data-mode] dialog.grimble-closet .gb-character-button{background:none!important;border:none!important}
 html:root[data-world='the-fuckening'][data-theme][data-mode] dialog.grimble-closet .gb-speech{color:#f0caa0!important}
}
/* Material owners resolve these local tokens even when their earlier CSS
   layer wins an important declaration. Scope the tokens to this dialog. */
.grimble-closet{--surface-modal:#211d29;--surface-tint:#211d29;--surface-ink:#f3e6cf;--surface-control:#393040;--world-text:#f3e6cf;--text:#f3e6cf;--muted:#d5bfdc;--world-surface:#211d29}

/* Painted sticker silhouettes keep their own lighting in either theme mode. */
.gb-illustrated .gb-head{transform:none;filter:drop-shadow(0 2px 2px #100a1899)}
.gb-illustrated .gb-occupation{pointer-events:none}
.grimble-door .gb-occupation{display:none}
/* Sticker artwork has no detachable jaw/skull. Use whole-character acting. */
.gb-motion[data-action=scream] .gb-illustrated .gb-body{animation:gb-rattle .2s linear 8}
.gb-motion[data-action=skull] .gb-illustrated .gb-body{animation:gb-tilt 2.5s ease-in-out 1}


/* Source: room-badges-compact.css */
/* Compact room geometry is shared; semantic palettes remain theme-owned. */
@media screen {
 @layer sisyphus-badges {
  html body :is(#app-view .room-card,#app-view .summary-room-row,#app-view .work-room-header,#app-view .room-list-row,#app-view .strip-room-row,#app-view .adaptive-room-card,#app-view .operations-room-cell,#app-view .ccb-room-identity,dialog .adaptive-room-card,dialog .room-detail-badges,dialog .ops-room-overview,#today-summary-dialog) .ui-badge {
   min-height:24px!important;height:auto!important;padding:2px 6px!important;font-size:.72rem!important;line-height:1.2!important;font-weight:600!important;border-width:1px!important;gap:3px!important;letter-spacing:0!important;
  }
  html body :is(#app-view .room-card,#app-view .summary-room-row,#app-view .work-room-header,#app-view .room-list-row,#app-view .strip-room-row,#app-view .adaptive-room-card,#app-view .operations-room-cell,#app-view .ccb-room-identity,dialog .adaptive-room-card,dialog .room-detail-badges,dialog .ops-room-overview,#today-summary-dialog) .ui-badge:is([data-badge-status=king],[data-badge-status=queen]) {
   width:24px!important;min-width:24px!important;height:24px!important;min-height:24px!important;flex:0 0 24px!important;padding:0!important;font-size:.82rem!important;font-weight:750!important;border-width:1px!important;
  }
  html body :is(#app-view,dialog) .ui-badge[data-badge-custom] {padding-block:0!important;clip-path:none!important;overflow:visible!important;}
  html body :is(#app-view,dialog) .ui-badge .custom-badge-remove {position:relative!important;min-height:24px!important;height:24px!important;min-width:24px!important;width:24px!important;padding:0!important;border:0!important;line-height:1!important;font-size:14px!important;clip-path:none!important;overflow:visible!important;}
  html body :is(#app-view,dialog) .ui-badge .custom-badge-remove:focus-visible {outline:2px solid currentColor!important;outline-offset:2px!important;}
  html body :is(#app-view,dialog) .ui-badge .custom-badge-remove::after {content:''!important;display:block!important;position:absolute;inset:-10px 0;background:transparent!important;border:0!important;pointer-events:auto;}
  /* A transparent extension keeps the visible selector 26px high while its
     pointer/touch target spans the existing 44px room-header line. */
  html body :is(#app-view,dialog) .room-status-toggle.ui-badge {
   position:relative!important;clip-path:none!important;min-height:26px!important;height:26px!important;padding:2px 7px!important;overflow:visible!important;white-space:nowrap!important;touch-action:manipulation;
  }
  html body :is(#app-view,dialog) .room-status-toggle.ui-badge::after {
   content:''!important;display:block!important;position:absolute;inset:-9px 0;background:transparent!important;border:0!important;box-shadow:none!important;pointer-events:auto;
  }
  html body :is(#app-view,dialog) .room-status-toggle.ui-badge:focus-visible {outline:2px solid var(--accent)!important;outline-offset:3px;}
  html body :is(#app-view,dialog) .arc-identity {display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:4px!important;min-width:0;}
  html #app-view :is(.room-badges,.room-note-badges,.work-room-flags,.summary-room-meta) {gap:4px;align-items:center;max-width:100%;}
  html #app-view .room-card-head .room-badges,html #app-view .summary-room-main .room-badges {display:inline-flex!important;flex:0 1 auto!important;width:auto!important;margin:0!important;}
  html #app-view #daily-operations-list .summary-room-meta:has(.arrival-indicator,[data-badge-status=carryover]) {display:inline-flex!important;flex-wrap:wrap;}
 }
 #app-view :is(#personal-rooms,#manager-my-rooms,#assignment-board) .work-room-toggle {flex:0 1 auto;gap:5px;}
 #app-view :is(.room-card-head,.summary-room-main,.work-room-header,.room-list-head) {row-gap:4px;}
 #app-view :is(.room-card-head,.summary-room-main,.work-room-header) .room-status-wrap {min-width:0;align-self:center;}
 #app-view .manager-status-select {font-size:.75rem;line-height:1.2;padding:3px 6px;border-width:1px;min-height:32px;}
 @media(pointer:coarse) {#app-view .manager-status-select {min-height:44px;}}
}

/* This palette is intentionally scoped to The Fuckening. No other theme's
   semantic colors or saved custom badge definitions are modified. */
@media screen {
 html[data-world='the-fuckening'][data-theme][data-mode] {
  --haunt-plum:#67466e;--haunt-rose:#7e475a;--haunt-teal:#246a62;--haunt-green:#426728;
  --haunt-plum-fill:#82648e14;--haunt-rose-fill:#a66f8514;--haunt-teal-fill:#3f8c8014;--haunt-green-fill:#75945014;
  --haunt-plum-line:#82648e88;--haunt-rose-line:#a66f8588;--haunt-teal-line:#3f8c8088;--haunt-green-line:#75945088;
  --badge-ready-ink:var(--haunt-green);--badge-ready-fill:var(--haunt-green-fill);--badge-ready-line:var(--haunt-green-line);
  --badge-success-ink:var(--haunt-green);--badge-success-fill:var(--haunt-green-fill);--badge-success-line:var(--haunt-green-line);
  --badge-info-ink:var(--haunt-teal);--badge-info-fill:var(--haunt-teal-fill);--badge-info-line:var(--haunt-teal-line);
  --badge-progress-ink:var(--haunt-plum);--badge-progress-fill:var(--haunt-plum-fill);--badge-progress-line:var(--haunt-plum-line);
  --badge-out-ink:var(--haunt-plum);--badge-out-fill:var(--haunt-plum-fill);--badge-out-line:var(--haunt-plum-line);
  --badge-warning-ink:var(--haunt-plum);--badge-warning-fill:var(--haunt-plum-fill);--badge-warning-line:var(--haunt-plum-line);
  --badge-stripped-ink:var(--haunt-rose);--badge-stripped-fill:var(--haunt-rose-fill);--badge-stripped-line:var(--haunt-rose-line);
  --badge-danger-ink:var(--haunt-rose);--badge-danger-fill:var(--haunt-rose-fill);--badge-danger-line:var(--haunt-rose-line);
  --badge-king-fill:#458a6518;--badge-king-line:#5a997a88;--badge-queen-fill:#6199c518;--badge-queen-line:#6292b788;
  --badge-neutral-ink:#53545f;--badge-neutral-fill:#7775800c;--badge-neutral-line:#77758070;
  --arrival-regular-ink:var(--haunt-teal);--arrival-regular-fill:var(--haunt-teal-fill);--arrival-regular-edge:var(--haunt-teal-line);
  --arrival-early-ink:var(--haunt-rose);--arrival-early-fill:var(--haunt-rose-fill);--arrival-early-edge:var(--haunt-rose-line);
 }
 html[data-world='the-fuckening'][data-theme][data-mode='dark'] {
  --haunt-plum:#c8afd0;--haunt-rose:#d9a8b9;--haunt-teal:#95d0c7;--haunt-green:#b4cd9a;
  --haunt-plum-fill:#92729e1c;--haunt-rose-fill:#b2768e1c;--haunt-teal-fill:#558c831c;--haunt-green-fill:#829c601c;
  --haunt-plum-line:#a68bb381;--haunt-rose-line:#b98b9d81;--haunt-teal-line:#77b2a881;--haunt-green-line:#9bae7f81;
  --badge-neutral-ink:#bbc0ca;--badge-neutral-fill:#93909e10;--badge-neutral-line:#93909e60;
 }
 html[data-world='the-fuckening'] :is(.manager-status-select,.board-condition-select) {background:var(--badge-neutral-fill);color:var(--badge-neutral-ink);border:1px solid var(--badge-neutral-line);}
 html[data-world='the-fuckening'] .manager-status-select.late-checkout {color:var(--haunt-rose);border-color:var(--haunt-rose-line);background:var(--haunt-rose-fill);}
 @layer sisyphus-badges {
  html[data-world='the-fuckening'][data-theme][data-mode] .ui-badge {box-shadow:none!important;}
  html[data-world='the-fuckening'][data-theme][data-mode] .arrival-indicator {--badge-ink:var(--arrival-ink);--badge-fill:var(--arrival-fill);--badge-line:var(--arrival-edge);}
  html[data-world='the-fuckening'][data-theme][data-mode] .custom-room-badge:is([data-badge-color=gold],[data-badge-color=amber],[data-badge-color=purple]) {color:var(--haunt-plum)!important;background:var(--haunt-plum-fill)!important;border-color:var(--haunt-plum-line)!important;}
  html[data-world='the-fuckening'][data-theme][data-mode] .custom-room-badge:is([data-badge-color=orange],[data-badge-color=red],[data-badge-color=pink]) {color:var(--haunt-rose)!important;background:var(--haunt-rose-fill)!important;border-color:var(--haunt-rose-line)!important;}
  html[data-world='the-fuckening'][data-theme][data-mode] .custom-room-badge:is([data-badge-color=teal],[data-badge-color=blue]) {color:var(--haunt-teal)!important;background:var(--haunt-teal-fill)!important;border-color:var(--haunt-teal-line)!important;}
  html[data-world='the-fuckening'][data-theme][data-mode] .custom-room-badge[data-badge-color=green] {color:var(--haunt-green)!important;background:var(--haunt-green-fill)!important;border-color:var(--haunt-green-line)!important;}
 }
}

/* Nested remove controls share the badge paint. Use the earliest control layer
   so broad theme button surfaces cannot paint a separate rectangle. */
@media screen {
 @layer heptapod-mist {
  html body :is(#app-view,dialog) .ui-badge[data-badge-custom] .custom-badge-remove {background:transparent!important;color:inherit!important;box-shadow:none!important;}
 }
}


/* Source: grimble-apartment.css */
/* The apartment has its own material tokens; nothing changes the working UI. */
.grimble-closet.gb-apartment-dialog{width:min(900px,calc(100vw - 28px));padding:18px;--surface-modal:#211b2b;--surface-tint:#211b2b;--surface-ink:#eee0ce;--surface-control:#382c45;--text:#eee0ce;--world-text:#eee0ce;--muted:#c8b6cd}
.gb-apartment-dialog .gqa-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.gb-apartment-dialog h2{font:28px/1.1 Georgia,serif;margin:4px 0 0}.gqa-header p{font-size:10px;letter-spacing:.13em;color:#cab7cf;margin:0}.gqa-header-actions{display:flex;align-items:center;gap:6px}.gqa-header-actions button{font-size:11px;white-space:nowrap}.gqa-will{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.1em;margin:12px 0 10px;color:#d5c0d5}.gqa-will meter{width:100px;height:10px;accent-color:#d4b37d}.gqa-will output{font-size:11px;letter-spacing:0;color:#e8d6b8}.gqa-will .gqa-routine{margin-left:auto;font:italic 12px Georgia,serif;letter-spacing:0;color:#c0a6ce}
.gqa-scene{position:relative;isolation:isolate;width:100%;height:480px;overflow:hidden;border-radius:70px 65px 12px 12px;border:1px solid #917694;background:#201a2b;contain:layout style;--gqa-coffin:#46303e;--gqa-rug:#655068;--gqa-mug:#c8b091;--gqa-walk-duration:1600ms}.gqa-architecture{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.gqa-object{position:absolute!important;display:block!important;padding:0!important;margin:0!important;min-width:0;min-height:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;cursor:pointer;touch-action:manipulation;z-index:2;overflow:visible}.gqa-object>svg,.gqa-food>span>svg{width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(0 7px 4px #09071066);transition:filter .18s}.gqa-object:hover>svg,.gqa-object:focus-visible>svg,.gqa-object:hover>span>svg{filter:drop-shadow(0 0 7px #f0c58699)}.gqa-object:focus-visible{outline:2px dashed #f0cc94!important;outline-offset:2px!important}.gqa-object-label{position:absolute;bottom:0;left:50%;transform:translate(-50%,100%);width:max-content;max-width:150px;font:10px/1.3 system-ui,sans-serif;color:#ffe3b6;background:#201a2bea;padding:4px 7px;border:1px solid #9b7e87;border-radius:5px;opacity:0;pointer-events:none;transition:opacity .15s;z-index:8;text-align:center}.gqa-object:hover .gqa-object-label,.gqa-object:focus-visible .gqa-object-label{opacity:1}
.gqa-coffin{left:2%;top:49%;width:29%;height:38%}.gqa-coffee{left:65%;top:41%;width:18%;height:37%}.gqa-complaints{left:53%;top:32%;width:15%;height:31%}.gqa-mirror{left:37%;top:13%;width:17%;height:44%}.gqa-wardrobe{left:80%;top:17%;width:19%;height:59%}.gqa-certificate{left:22%;top:12%;width:15%;height:24%;transform:rotate(-4deg)}.gqa-lamp{left:28%;top:35%;width:12%;height:35%}.gqa-plant{left:3%;top:32%;width:13%;height:29%}.gqa-rug{left:25%;top:69%;width:48%;height:28%;z-index:0;transform:rotate(-5deg)}.gqa-pumpkin{left:57%;top:68%;width:12%;height:23%}.gqa-cat-corner{position:absolute;left:76%;top:70%;width:23%;height:29%;pointer-events:none}.gqa-cat-corner>svg{width:100%;height:100%}.gqa-food{left:72%;top:87%;width:12%;height:11%;z-index:3}
.gqa-actor{position:absolute!important;left:50%;top:84%;width:21%;height:42%;min-height:0!important;border:0!important;background:none!important;box-shadow:none!important;padding:0!important;margin:0!important;transform:translate(-50%,-100%);z-index:4;transition:left var(--gqa-walk-duration) linear,top var(--gqa-walk-duration) linear,opacity .6s;cursor:pointer;touch-action:manipulation}.gqa-character,.gqa-character>.grimble-character{display:block;width:100%;height:100%;pointer-events:none}.gqa-actor .gb-cat{display:none}.gqa-actor:focus-visible{outline:2px dashed #f0cc94!important;outline-offset:-12px}.gqa-accessory{position:absolute;pointer-events:none}.gqa-accessory[data-accessory=crown]{left:35%;top:10%;width:33%;height:13%;background:#cda75c;clip-path:polygon(0 0,25% 45%,50% 0,75% 45%,100% 0,88% 100%,12% 100%);filter:drop-shadow(0 0 4px #e4c28a)}.gqa-accessory[data-accessory=bow]{left:46%;top:59%;width:16%;height:7%;background:#b47a99;clip-path:polygon(0 0,50% 38%,100% 0,100% 100%,50% 62%,0 100%)}.gqa-prop{position:absolute;right:0;top:60%;font:35px Georgia,serif;color:#bba183}.gqa-scene[data-activity=stripped] .gqa-prop::after{content:'⚒'}.gqa-scene[data-phase=reading] .gqa-prop::after,.gqa-scene[data-phase=throwing] .gqa-prop::after{content:'▤'}.gqa-scene[data-phase=throwing] .gqa-prop{animation:gqa-handbook 1.2s ease-out forwards}
.gqa-cat{position:absolute!important;left:85%;top:87%;width:13%;height:19%;min-height:0!important;padding:0!important;margin:0!important;transform:translate(-50%,-80%);border:none!important;background:none!important;box-shadow:none!important;z-index:5;transition:left 2.3s ease-in-out,top 2.3s ease-in-out;cursor:pointer;touch-action:manipulation}.gqa-cat-sprite,.gqa-cat svg{display:block;width:100%;height:100%;pointer-events:none}.gqa-cat:focus-visible{outline:2px dashed #f0cc94!important}.gqa-cat-note{position:absolute;left:-10%;bottom:90%;width:120%;font:11px Georgia,serif;color:#e8c390;text-align:center;background:#211b2b;border-radius:10px}.gqa-cat[data-cat=nap] .gqa-cat-eyes{stroke-width:1}.gqa-cat[data-cat=stretch] .gqa-cat-sprite{animation:gqa-cat-stretch 3s ease-in-out}.gqa-cat[data-cat=prowl] .gqa-cat-sprite{animation:gqa-cat-step .4s ease-in-out 6}.gqa-cat[data-cat=knock] .gqa-cat-head{animation:gqa-cat-nudge 2s ease-in-out}.gqa-cat[data-cat=stare] .gqa-cat-eyes{stroke:#c6a5ff;stroke-width:5}.gqa-cat[data-cat=accident] .gqa-cat-sprite{animation:gqa-cat-accident 2.5s ease-in-out}
.gqa-coffin-lid{transform-origin:30px 95px;transition:transform .7s ease-in-out}.gqa-scene[data-phase=opening] .gqa-coffin-lid,.gqa-scene[data-phase=climbing] .gqa-coffin-lid,.gqa-scene[data-phase=peeking] .gqa-coffin-lid{transform:translate(-22px,-22px) rotate(-30deg)}.gqa-scene:is([data-phase=sleeping],[data-phase=climbing],[data-phase=peeking]) .gqa-actor{opacity:.15;transform:translate(-50%,-65%) scale(.6)}.gqa-scene[data-phase=sleeping] .gqa-coffin::after{content:'z z Z';position:absolute;left:45%;top:25%;font:italic 20px Georgia,serif;color:#e0cae5;animation:gqa-snore 2s ease-in-out infinite}.gqa-coffee-smoke{opacity:.2}.gqa-scene:is([data-phase=brewing],[data-phase=sputtering]) .gqa-coffee-smoke{opacity:.85;animation:gqa-smoke 2.5s ease-out infinite}.gqa-scene[data-phase=sputtering] .gqa-coffee>svg{animation:gb-rattle .2s linear 4}.gqa-scene[data-phase=sputtering] .gqa-coffee-light{fill:#ea887e}.gqa-scene[data-phase=drinking] .gqa-coffee-light{fill:#c4d996}.gqa-reflection{opacity:.45;transition:opacity .8s}.gqa-mirror-void{opacity:0;transition:opacity .8s}.gqa-scene[data-phase=reflecting] .gqa-reflection{opacity:.9;animation:gqa-mirror 2s ease-in-out}.gqa-scene[data-phase=haunted] .gqa-mirror-void{opacity:1}.gqa-scene[data-phase=haunted] .gqa-reflection{opacity:0}.gqa-wardrobe-left,.gqa-wardrobe-right{transition:transform .6s;transform-box:fill-box;transform-origin:left center}.gqa-wardrobe-right{transform-origin:right center}.gqa-scene[data-activity=wardrobe] .gqa-wardrobe-left{transform:perspective(300px) rotateY(-65deg)}.gqa-scene[data-activity=wardrobe] .gqa-wardrobe-right{transform:perspective(300px) rotateY(65deg)}.gqa-scene[data-activity=complaints] .gqa-complaint-flap{transform:translateY(-10px) rotate(-8deg);transform-origin:center}.gqa-swept-dust{position:absolute;left:36%;top:86%;width:35px;height:10px;border-radius:50%;background:#b0a0ad55;opacity:0}.gqa-scene[data-activity=sweep] .gqa-swept-dust{opacity:1;box-shadow:5px -4px 4px #c0b0c955}
.gqa-portal{position:absolute;left:26%;top:51%;width:18%;height:37%;border:3px solid #c69bd9;border-radius:50%;background:radial-gradient(ellipse,#090710 25%,#84619d77 65%,#bd99da44);box-shadow:0 0 24px #ac7ed777;opacity:0;pointer-events:none;z-index:3}.gqa-scene[data-activity=portal] .gqa-portal{animation:gqa-portal 4.5s ease-in-out}.gqa-scene[data-phase=vanishing] .gqa-actor{opacity:0}.gqa-dust{position:absolute;inset:0;pointer-events:none}.gqa-dust i{position:absolute;left:20%;top:30%;width:3px;height:3px;border-radius:50%;background:#e8d0bb66;animation:gqa-drift 16s ease-in-out infinite}.gqa-dust i:nth-child(2){left:45%;top:15%;animation-delay:-5s}.gqa-dust i:nth-child(3){left:78%;top:48%;animation-delay:-9s}.gqa-dust i:nth-child(4){left:60%;top:60%;animation-delay:-3s}.gqa-dust i:nth-child(5){left:33%;top:71%;animation-delay:-12s}.gqa-candle-flame{transform-origin:center;animation:gqa-flicker 3s ease-in-out infinite}.gqa-scene[data-phase=idle] .gb-eyes{animation:gqa-blink 7s linear infinite}.gqa-scene[data-phase=idle] .gb-head{animation:gqa-sigh 11s ease-in-out infinite}.gqa-scene[data-phase=idle] .gb-feet{animation:gqa-tap 9s ease-in-out infinite}.gqa-scene[data-phase=walking] .gb-body{animation:gqa-waddle .45s ease-in-out infinite}
.gqa-speech{position:absolute;left:50%;top:4%;transform:translateX(-50%);max-width:72%;width:max-content;z-index:7;background:#f1e2ca;color:#332637;border:1px solid #bb9d79;border-radius:15px 15px 15px 3px;padding:9px 13px;font:italic 14px/1.4 Georgia,serif;box-shadow:0 4px 12px #100b1833;pointer-events:none}.gqa-speech::after{content:'';position:absolute;left:28%;bottom:-7px;width:12px;height:12px;background:#f1e2ca;transform:rotate(45deg);border-right:1px solid #bb9d79;border-bottom:1px solid #bb9d79}
.gqa-tools{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:10px 0}.gqa-tools button{font-size:11px!important;min-height:34px!important;padding:5px 10px!important}.gqa-settings{margin-top:6px}.gqa-settings>summary{font-size:12px;color:#cdb8d3;cursor:pointer;padding:8px 0}.gqa-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 0}.gqa-settings-grid label{display:flex;align-items:center;gap:8px;font-size:12px;margin:0;min-height:30px}.gqa-settings-grid select{max-width:150px}.gqa-settings-grid input[type=range]{max-width:90px}.gqa-settings-grid input[type=checkbox]{width:16px;height:16px;accent-color:#c8a16d}.gqa-drawer{background:#17131f;border:1px solid #78617e;border-radius:12px;padding:15px;margin:12px 0}.gqa-drawer header{display:flex;justify-content:space-between;gap:12px;align-items:center}.gqa-drawer h3{font:20px Georgia,serif;margin:0 0 12px;color:#e7caa1}.gqa-drawer small{display:block;font-size:11px;color:#bfaac8}.gqa-grievances{padding-left:22px;display:grid;gap:10px;font:italic 14px/1.5 Georgia,serif}.gqa-collection{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.gqa-collection label,.gqa-outfit-picker{display:grid;gap:5px;font-size:12px;margin:0}.gqa-collection select,.gqa-outfit-picker select{max-width:100%;width:100%;font-size:12px}.gqa-drawer-note,.gqa-save-warning{font-size:11px;color:#c8b5ca}.gqa-achievements{list-style:none;padding:0;display:grid;gap:12px}.gqa-basement{position:absolute;inset:0;z-index:9;background:radial-gradient(ellipse at 50% 100%,#74527966,transparent 70%),repeating-linear-gradient(0deg,#211e2c 0 45px,#443345 46px 48px);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px;color:#e7d8c1}.gqa-basement-art{position:relative;width:160px;height:180px;border:2px solid #8b6d72;border-radius:65px 65px 5px 5px;background:#120f1b;box-shadow:0 0 45px #c4a26c22}.gqa-basement-art span{position:absolute;top:20px;left:55px;font:22px Georgia,serif;color:#b7a17e}.gqa-basement-art i{position:absolute;bottom:40px;left:35px;width:90px;height:25px;background:#584057;border:2px solid #a08377;transform:rotate(-4deg)}.gqa-basement-art i+i{bottom:18px;left:55px;width:50px;height:35px;background:#ae9372;transform:rotate(4deg)}
.gqa-scene[data-coffin=velvet]{--gqa-coffin:#76506b}.gqa-scene[data-coffin=gold]{--gqa-coffin:#a18453}.gqa-scene[data-rug=moon]{--gqa-rug:#515a80}.gqa-scene[data-mug=cursed]{--gqa-mug:#8d5e8a}.gqa-scene[data-wallpaper=stars] .gqa-wallpaper{fill:#71658955;stroke:#b5a1cf;stroke-dasharray:2 30}.gqa-scene[data-wallpaper=ivy] .gqa-wallpaper{fill:#52756633;stroke:#a4b8a3;stroke-dasharray:10 12}.gqa-scene[data-lamp=antique] .gqa-lamp{filter:drop-shadow(0 0 15px #ffd39666)}.gqa-scene[data-plant=dead] .gqa-plant-leaves{display:none}.gqa-scene[data-plant=strange] .gqa-plant-leaves{filter:drop-shadow(0 0 4px #a7ce9977)}.gqa-scene[data-season=none] .gqa-pumpkin{display:none}.gqa-scene[data-painting=eye] .gqa-certificate>svg{filter:hue-rotate(40deg) drop-shadow(0 0 6px #b795d777)}.gqa-scene[data-skull=gold] .gqa-actor .gb-skull{filter:sepia(.55) saturate(1.4)}.gqa-scene[data-cat-toy=ghost] .gqa-cat-corner{filter:drop-shadow(0 0 6px #c9a9ee66)}
@keyframes gqa-flicker{50%{opacity:.7;transform:scaleY(.9)}}@keyframes gqa-drift{50%{transform:translate(15px,-25px);opacity:.3}}@keyframes gqa-blink{0%,45%,48%,100%{transform:scaleY(1)}46%,47%{transform:scaleY(.05);transform-origin:120px 90px}}@keyframes gqa-sigh{60%{transform:translateY(2px) rotate(-2deg)}}@keyframes gqa-tap{70%,80%{transform:translateY(-2px)}}@keyframes gqa-waddle{50%{transform:rotate(3deg) translateY(-2px)}}@keyframes gqa-smoke{to{transform:translateY(-17px);opacity:.1}}@keyframes gqa-snore{50%{transform:translateY(-10px);opacity:.4}}@keyframes gqa-mirror{50%{transform:translateX(3px);opacity:.6}}@keyframes gqa-cat-stretch{50%{transform:scaleX(1.2) scaleY(.8)}}@keyframes gqa-cat-step{50%{transform:translateY(-3px)}}@keyframes gqa-cat-nudge{50%{transform:rotate(12deg);transform-origin:center}}@keyframes gqa-cat-accident{50%{filter:drop-shadow(0 0 12px #b28be5);transform:translateY(-12px) rotate(-6deg)}}@keyframes gqa-portal{20%,70%{opacity:1;transform:scale(1.1)}100%{opacity:0}}@keyframes gqa-handbook{to{transform:translate(80px,40px) rotate(130deg);opacity:0}}
.grimble-home{height:86px;margin:6px 12px;overflow:hidden}.grimble-door{height:82px;box-sizing:border-box;transform:none}.gb-compact-mood{height:14px;max-width:125px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gb-mini{width:44px;flex:none}
@media(max-width:700px){.grimble-closet.gb-apartment-dialog{width:calc(100vw - 12px);max-width:calc(100vw - 12px);padding:10px;max-height:calc(100dvh - 12px)}.gb-apartment-dialog h2{font-size:23px}.gqa-header-actions{gap:4px}.gqa-header-actions button{padding:5px 7px!important;min-height:36px!important}.gqa-header-actions .gqa-mute-label{display:none}.gqa-scene{height:410px;border-radius:42px 42px 10px 10px}.gqa-actor{width:29%;height:35%}.gqa-cat{width:18%;height:17%}.gqa-coffin{left:0;top:51%;width:35%;height:35%}.gqa-coffee{left:62%;top:44%;width:23%;height:29%}.gqa-complaints{left:50%;top:37%;width:19%;height:26%}.gqa-mirror{left:35%;top:17%;width:22%;height:34%}.gqa-wardrobe{left:79%;top:22%;width:22%;height:47%}.gqa-certificate{left:19%;top:15%;width:20%;height:18%}.gqa-lamp{left:28%;top:41%;width:16%;height:28%}.gqa-plant{left:0;top:33%;width:18%;height:26%}.gqa-food{width:17%;height:13%;left:70%;top:84%}.gqa-speech{font-size:12px;max-width:82%;padding:7px 9px}.gqa-will{gap:6px;font-size:9px}.gqa-will meter{width:65px}.gqa-will .gqa-routine{font-size:10px;max-width:90px;text-align:right}.gqa-settings-grid,.gqa-collection{grid-template-columns:1fr}.gqa-object{min-width:40px!important}.gqa-pumpkin{width:17%}.gqa-drawer{padding:12px}}
@media(prefers-reduced-motion:reduce){.gb-apartment-dialog *,.gb-apartment-dialog *::after{animation:none!important;transition:none!important}}
.gqa-scene[data-motion=off] *,.gqa-scene[data-motion=off] *::after{animation:none!important;transition:none!important}
@layer surface-material.foundation{
 html:root[data-world='the-fuckening'][data-theme][data-mode] dialog.gb-apartment-dialog .gqa-object,html:root[data-world='the-fuckening'][data-theme][data-mode] dialog.gb-apartment-dialog :is(.gqa-actor,.gqa-cat){background:none!important;border:none!important;box-shadow:none!important}
 html:root[data-world='the-fuckening'][data-theme][data-mode] dialog.gb-apartment-dialog .gqa-speech{color:#332637!important}
 html:root[data-world='the-fuckening'][data-theme][data-mode] dialog.gb-apartment-dialog .gqa-object-label{color:#ffe3b6!important}
}
@media print{.gb-apartment-dialog{display:none!important}}
.gqe-encounter{position:fixed;z-index:28;pointer-events:none;isolation:isolate;font:12px system-ui,sans-serif}.gqe-actor{position:absolute;bottom:0;left:10px;width:85px;height:110px;display:block;pointer-events:none}.gqe-actor .grimble-character{width:100%;height:100%}.gqe-actor .gb-cat{display:none}.gqe-bubble{position:absolute;bottom:102px;left:0;margin:0;padding:7px 10px;border:1px solid #ab8d70;border-radius:12px 12px 12px 2px;background:#efe1ca;color:#332638;max-width:150px;font:italic 12px/1.3 Georgia,serif;pointer-events:none}.gqe-dismiss{position:absolute;right:0;top:0;width:32px;height:32px;min-height:32px;padding:0;border:1px solid #bc9b74;border-radius:50%;background:#302538;color:#f0d7af;font:22px system-ui;pointer-events:auto;cursor:pointer}.gqe-discover{position:absolute;bottom:0;left:0;width:100px;height:112px;min-height:0;padding:0;border:none;background:none;pointer-events:auto;cursor:pointer}.gqe-discover:focus-visible,.gqe-dismiss:focus-visible{outline:3px solid #f1be7a;outline-offset:2px}.gqe-cat{position:absolute;width:55px;height:50px;bottom:0;left:100px}.gqe-cat>svg{width:100%;height:100%}.gqe-encounter[data-motion=on] .gqe-actor{animation:gqe-peek 6s ease-in-out 1}.gqe-encounter[data-kind=failed][data-motion=on] .gb-head{animation:gb-rattle .15s linear 8}.gqe-encounter[data-kind=all-ready][data-motion=on] .gb-body{animation:gb-dance 2s ease-in-out 1}.gqe-encounter[data-kind=innocent] .gb-lids{transform:translateY(-3px)}
@keyframes gqe-peek{0%,100%{opacity:0;transform:translateY(15px) rotate(-9deg)}18%,82%{opacity:1;transform:translateY(0) rotate(0)}}
@media(max-width:700px){.gqe-actor{width:65px;height:88px}.gqe-discover{width:72px;height:90px}.gqe-bubble{bottom:85px;max-width:110px;font-size:10px;padding:5px}.gqe-cat{left:70px;width:40px;height:36px}.gqe-dismiss{width:28px;height:28px;min-height:28px;font-size:18px}}
@media(prefers-reduced-motion:reduce){.gqe-encounter *{animation:none!important;transition:none!important}}@media print{.gqe-encounter{display:none!important}}
/* The actor's transparent rectangle must never swallow furniture taps. Only
   his skull is a pointer target; the whole button remains keyboard accessible. */
.gqa-actor{pointer-events:none}.gqa-talk-target{position:absolute;left:34%;top:20%;width:32%;height:27%;border-radius:50%;pointer-events:auto;cursor:pointer}.gqa-talk-target:hover{box-shadow:0 0 9px #e0bd8544}
.gqa-scene[data-rug-lifted=true] .gqa-rug{transform:translate(-10px,-12px) rotate(-13deg)}.gqa-scene[data-lamp-lit=false] .gqa-lamp .gqa-candle-flame{opacity:.08;animation:none}.gqa-scene[data-fed=true] .gqa-food svg{filter:drop-shadow(0 0 6px #d2b38a99)}.gqa-scene[data-cat-mischief=knock] .gqa-coffee>svg{animation:gqa-cat-nudge 1.6s ease-in-out}.gqa-scene[data-cat-mischief=portal] .gqa-portal{animation:gqa-portal 4s ease-in-out}
[data-outfit=vacation] .gb-spectacles,[data-outfit=vacation] .gb-towel{display:block}[data-outfit=vacation] .gb-spectacles{stroke:#b7d6c4;stroke-width:4}[data-outfit=vacation] .gb-body>path:first-of-type{fill:#4e6a68}[data-outfit=ceremonial] .gb-body>path:first-of-type{fill:#6a405d;stroke:#c5a16a;stroke-width:3}[data-outfit=ceremonial] .gb-head>path:first-of-type{stroke:#d0af79}[data-outfit=sheet-ghost] .gb-body>path:first-of-type,[data-outfit=sheet-ghost] .gb-head>path:first-of-type{fill:#ccc1d0;stroke:#89758e}
.gqe-encounter[data-kind=walk][data-motion=on] .gqe-actor,.gqe-encounter[data-kind=walk][data-motion=on] .gqe-cat{animation:gqe-stroll 6s linear 1}.gqe-encounter[data-kind=innocent][data-motion=on] .gb-arm{animation:gb-shrug 1.4s ease-in-out 1}.gqe-encounter[data-kind=card-peek] .gqe-actor,.gqe-encounter[data-kind=sidebar-peek] .gqe-actor{animation:gqe-edge-peek 6s ease-in-out 1}.gqe-encounter[data-kind=productivity] .gb-head,.gqe-encounter[data-kind=schedule] .gb-head{animation:gb-read 2.5s ease-in-out 1}
@keyframes gqe-stroll{from{transform:translateX(0)}to{transform:translateX(calc(100vw - 130px))}}@keyframes gqe-edge-peek{0%,100%{transform:translateX(-12px) rotate(-13deg);opacity:0}20%,80%{transform:translateX(0) rotate(0);opacity:1}}
.gqa-eye-painting,.gqa-moon-rug,.gqa-ghost-toy{display:none}.gqa-scene[data-painting=eye] .gqa-eye-painting,.gqa-scene[data-rug=moon] .gqa-moon-rug,.gqa-scene[data-cat-toy=ghost] .gqa-ghost-toy{display:block}.gqa-scene[data-cat-toy=ghost] .gqa-yarn{display:none}.gqa-scene[data-wallpaper=stars] .gqa-wallpaper{fill:url(#gqa-stars);stroke:none}.gqa-scene[data-wallpaper=ivy] .gqa-wallpaper{fill:url(#gqa-ivy);stroke:none}.gqa-scene[data-skull=gold]{--gqa-spare:#d8b46c}.gqa-scene[data-skull=gold] .gqa-actor .gb-skull{filter:none}.gqa-cat[data-cat=scratch] .gqa-cat-sprite{animation:gqa-cat-step .2s ease-in-out 10}
.gqe-encounter[data-motion=off] *{animation:none!important;transition:none!important}
.gqa-prop{width:30px;height:50px}.gqa-prop>svg{width:100%;height:100%;display:none}.gqa-scene[data-activity=stripped] .gqa-prop::after,.gqa-scene[data-phase=reading] .gqa-prop::after,.gqa-scene[data-phase=throwing] .gqa-prop::after{content:none}.gqa-scene[data-activity=stripped] .gqa-shovel,.gqa-scene[data-phase=reading] .gqa-book,.gqa-scene[data-phase=throwing] .gqa-book{display:block}.gqa-scene:is([data-phase=sleeping],[data-phase=climbing],[data-phase=peeking]) .gqa-talk-target{pointer-events:none}
.gqa-will meter::-webkit-meter-bar{background:#382b44;border:0;border-radius:8px}.gqa-will meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#916ca7,#d8b784);border-radius:8px}
.gqe-encounter[data-kind=walk][data-motion=on] .gb-feet{animation:gb-walk .45s ease-in-out 13}.gqe-encounter[data-kind=walk][data-motion=on] .gb-body{animation:gqa-waddle .5s ease-in-out 12}
@media(max-width:700px){.gqe-dismiss{width:32px;height:32px;min-height:32px}}

/* While he visits furniture, his face must not intercept that object.
   The actor remains keyboard accessible throughout the routine. */
.gqa-scene:not([data-phase=idle]) .gqa-talk-target{pointer-events:none}

/* Storybook miniature: painted architecture, independent material objects and light. */
.grimble-closet.gb-apartment-dialog{width:min(1080px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:22px;background:radial-gradient(ellipse at 10% 0%,#46344866,transparent 65%),#1e1927;border:1px solid #a18772;box-shadow:0 24px 100px #000b,inset 0 0 0 5px #12101966;color:#eedfc9}
.gb-apartment-dialog::backdrop{background:#09070bd9;backdrop-filter:blur(5px)}
.gb-apartment-dialog h2{font-size:clamp(25px,3vw,38px);color:#efd3a0;letter-spacing:-.025em}
.gqa-header p{color:#baa48d;font-size:10px;letter-spacing:.2em}
.gqa-header-actions button,.gqa-tools button{border:1px solid #917563!important;background:linear-gradient(#493644,#2b2333)!important;color:#f3dfbd!important;border-radius:9px;min-height:44px!important;padding:9px 14px!important;box-shadow:inset 0 1px #ebcfa91c,0 3px 6px #0004!important}
.gqa-header-actions button[aria-pressed=true]{background:#78523e!important;border-color:#efc28a!important}
.gqa-header-actions button:focus-visible,.gqa-tools button:focus-visible{outline:3px solid #efc28a;outline-offset:3px}
.gqa-scene{height:auto;aspect-ratio:8/5;border-radius:50px 50px 12px 12px;border:1px solid #806853;box-shadow:0 12px 24px #09070e88,inset 0 0 45px #08060b;--gqa-depth-x:0px;--gqa-depth-y:0px;--gqa-shadow-x:5px}
.gqa-painted-room{position:absolute;inset:-5px;background:url('/assets/grimble/quarters-architecture.webp') center/100% 100%;transform:translate(calc(var(--gqa-depth-x)*-.35),calc(var(--gqa-depth-y)*-.35));pointer-events:none}
.gqa-architecture{opacity:0;pointer-events:none}
/* Wallpaper choices still add physical motifs over the painted plaster. */
.gqa-scene:is([data-wallpaper=stars],[data-wallpaper=ivy]) .gqa-architecture{opacity:.5}
.gqa-scene:is([data-wallpaper=stars],[data-wallpaper=ivy]) .gqa-architecture> :not(defs):not(.gqa-wallpaper){visibility:hidden}
.gqa-scene::after{content:'';position:absolute;inset:0;z-index:6;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 65px 12px #0d071564,inset 0 1px 2px #e5c08d55;background:linear-gradient(110deg,#b8c9ff09,transparent 35%,#edaa6508 60%,#100b1a22)}
.gqa-moonbeam{position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,#c8dcff30,transparent 64%);clip-path:polygon(13% 22%,24% 19%,62% 100%,19% 100%);mix-blend-mode:screen;transform:translate(calc(var(--gqa-depth-x)*-.6),0);opacity:.6}
.gqa-candle-pool{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 34% 59%,#ffc17a55,transparent 23%),radial-gradient(ellipse at 50% 9%,#f9b85f33,transparent 28%);mix-blend-mode:screen;opacity:.7;animation:gqa-light-breathe 7s ease-in-out infinite}
.gqa-scene[data-lamp-lit=false] .gqa-candle-pool{opacity:.15;animation:none}
.gqa-scene[data-atmosphere=false] :is(.gqa-candle-pool,.gqa-moonbeam){opacity:0}
.gqa-object>svg{filter:drop-shadow(calc(var(--gqa-shadow-x) + var(--gqa-depth-x)) 9px 3px #0805109c);transform:translate(calc(var(--gqa-depth-x)*.65),calc(var(--gqa-depth-y)*.65))}
.gqa-object:hover>svg,.gqa-object:focus-visible>svg{filter:drop-shadow(0 0 5px #eac38da0) drop-shadow(5px 9px 3px #08051088)}
.gqa-certificate>svg,.gqa-mirror>svg{transform:translate(calc(var(--gqa-depth-x)*.25),calc(var(--gqa-depth-y)*.25))}
.gqa-wardrobe>svg{transform:translate(calc(var(--gqa-depth-x)*.45),calc(var(--gqa-depth-y)*.45))}
.gqa-actor .gqa-character{filter:drop-shadow(calc(var(--gqa-depth-x) + 7px) 9px 3px #090510a0)}
.gqa-cat-sprite{filter:drop-shadow(6px 7px 3px #08051099)}
.gqa-object:hover,.gqa-object:focus-visible{z-index:6}
.gqa-object-label{bottom:100%;transform:translate(-50%,-3px);max-width:min(180px,44vw);font-size:11px;background:#211927f5;border-color:#bd9870;padding:6px 9px;box-shadow:0 3px 8px #0006;white-space:normal}
.gqa-coffin .gqa-object-label,.gqa-plant .gqa-object-label{left:15%;transform:translate(0,-3px)}
.gqa-wardrobe .gqa-object-label{left:auto;right:4%;transform:translate(0,-3px)}
.gqa-speech{transform:none;max-width:min(310px,72%);box-sizing:border-box;font:italic 14px/1.4 Georgia,serif;background:linear-gradient(#f7e9cc,#e6cea5);border-color:#b68e60;color:#332637;box-shadow:0 6px 12px #09071066;transition:left var(--gqa-walk-duration) linear,top var(--gqa-walk-duration) linear;overflow-wrap:anywhere}
.gqa-speech::after{left:var(--gqa-tail,28%);background:#e6cea5}
.gqa-dust{z-index:5;transform:translate(var(--gqa-depth-x),var(--gqa-depth-y))}.gqa-dust i{box-shadow:0 0 5px #ffe2a7;background:#ffe1a399}
.gqa-terminal-cursor{animation:gqa-terminal 3s steps(1) infinite}
.gqa-tools{padding:6px 0;margin:10px 0 4px;gap:10px}
.gqa-drawer{background:linear-gradient(135deg,#302337,#191421);border-color:#997b65;box-shadow:inset 0 1px #e7b77933,0 8px 20px #0004}
.gqa-drawer select{min-height:44px}.gqa-drawer header button{min-width:44px;min-height:44px}
@keyframes gqa-terminal{50%{opacity:0}}
@keyframes gqa-light-breathe{50%{opacity:.48}}
@media(max-width:700px){.grimble-closet.gb-apartment-dialog{width:calc(100vw - 12px);max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px);padding:10px}.gqa-scene{aspect-ratio:auto;height:410px;border-radius:30px 30px 10px 10px}.gqa-header{flex-wrap:wrap}.gqa-header-actions{margin-left:auto}.gqa-header-actions button{min-height:44px!important}.gqa-speech{font-size:12px;max-width:76%}.gqa-tools button{flex:1;padding:8px!important;font-size:11px!important}.gqa-object-label{font-size:10px}.gqa-will{flex-wrap:wrap}.gqa-will .gqa-routine{max-width:none}.gqa-settings-grid label{min-height:44px}}
@media(prefers-reduced-motion:reduce){.gqa-scene{--gqa-depth-x:0px!important;--gqa-depth-y:0px!important}.gqa-scene *{animation:none!important;transition:none!important}}
.gqa-scene[data-motion=off]{--gqa-depth-x:0px!important;--gqa-depth-y:0px!important}
.gqa-scene[data-motion=off] *{animation:none!important;transition:none!important}
.gqa-window{left:13%;top:15%;width:13%;height:31%;z-index:1}.gqa-clock{left:70%;top:21%;width:7%;height:11%;z-index:1}
.gqa-window:hover,.gqa-window:focus-visible,.gqa-clock:hover,.gqa-clock:focus-visible{border-radius:50%!important;box-shadow:0 0 18px #d7b4fa44!important}
@media(max-width:700px){.gqa-clock{min-width:32px!important;min-height:40px!important}}

/* Initial dialogue appears at its anchor immediately; only walking tracks travel. */
.gqa-speech{transition:none}
.gqa-scene[data-motion=on][data-phase=walking] .gqa-speech{transition:left var(--gqa-walk-duration) linear,top var(--gqa-walk-duration) linear}
/* Use the exposed lower pane; the crooked certificate overlaps its upper edge. */
.gqa-window{top:34%;height:11%;min-height:44px!important}


/* Source: grimble-dollhouse.css */
/* Architectural layers and individual furnishings: no flattened house image. */
.gdh-quarters{--gdh-gold:#c4a075;--gdh-lavender:#c3a8e2;color:#eadaca;font-family:Georgia,serif}.gdh-quarters [hidden]{display:none!important}.gdh-navigation{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.gdh-navigation label{display:grid;gap:4px;font:11px system-ui;flex:1}.gdh-navigation select{width:100%;min-height:44px}.gdh-quarters button{min-height:44px;touch-action:manipulation}.gdh-navigation>button{font:12px system-ui}.gdh-location{font:12px/1.5 system-ui;color:#d1b6df;min-height:20px;margin:10px 0}.gdh-overview{position:relative;padding:45px 6% 10px;background:radial-gradient(ellipse at 50% 70%,#6c456349,transparent 65%),#17131e;border-radius:18px;overflow:hidden;isolation:isolate}.gdh-roof{position:absolute;left:5%;right:5%;top:25px;height:125px;clip-path:polygon(50% 0,100% 70%,93% 100%,7% 100%,0 70%);background:repeating-linear-gradient(0deg,#483b51 0 7px,#201d2a 8px 11px);filter:drop-shadow(0 7px 4px #000);z-index:-1}.gdh-finial{position:absolute;top:4px;left:calc(50% - 10px);color:#d3b5eb;font-size:27px;text-shadow:0 0 14px #b394d6}.gdh-house{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:10px;background:linear-gradient(90deg,#6b4b40,#aa805d 3%,#34252c 5%,#34252c 95%,#ba9061 97%,#4b3436);border:2px solid #be966e;box-shadow:8px 12px 0 #16101e,12px 16px 22px #0008,inset 0 0 14px #000;transform:perspective(1500px) rotateY(-2deg)}.gdh-room{position:relative;isolation:isolate;height:155px;overflow:hidden!important;padding:0 0 7px!important;border:1px solid #b18a68!important;border-radius:2px!important;background:radial-gradient(ellipse at 25% 30%,#dfac674a,transparent 60%),repeating-linear-gradient(90deg,#654655 0 2px,#443242 2px 23px)!important;box-shadow:inset 9px 0 12px #09060eb0,inset 0 8px 13px #09060e8a,3px 4px 0 #100c16!important;text-align:center;color:#f3dfc2!important;display:flex;flex-direction:column;justify-content:end;align-items:center;transition:filter .2s,outline .2s}.gdh-room::after{content:'';position:absolute;bottom:34px;left:0;right:0;height:35%;background:repeating-linear-gradient(90deg,transparent 0 28px,#be97772c 29px 30px),linear-gradient(#54373b,#946e56);clip-path:polygon(9% 0,91% 0,100% 100%,0 100%);z-index:-1;border-top:2px solid #ac8664}.gdh-room:hover,.gdh-room:focus-visible{outline:2px solid #d7b9f2!important;outline-offset:1px;filter:brightness(1.2)}.gdh-room-attic{grid-column:1/-1;width:66%;justify-self:center;height:140px;border-radius:65% 65% 0 0!important;background:radial-gradient(ellipse at 50% 0,#9377bb77,transparent 70%),repeating-linear-gradient(45deg,#3a293a 0 15px,#543c47 16px 18px)!important}.gdh-room-basement{grid-column:1/-1;height:92px;background:repeating-linear-gradient(0deg,#34303b 0 18px,#1a1720 19px 21px)!important}.gdh-room-bath,.gdh-room-library,.gdh-room-entrance{filter:saturate(.55);background:radial-gradient(ellipse at 60% 20%,#ab87d222,transparent),#292333!important}.gdh-room-name,.gdh-room small{position:relative;z-index:2;max-width:100%;background:#18111de8;padding:2px 7px;line-height:1.3}.gdh-room-name{font-size:16px}.gdh-room small{font:10px/1.4 system-ui;color:#c5aabd}.gdh-resident{position:absolute;top:8px;left:8px;padding:3px 6px;border:1px solid #cab191;border-radius:20px;font:9px system-ui;background:#322738;color:#e7c7ff;z-index:4}.gdh-mini{position:absolute;inset:0 0 28px;pointer-events:none}.gdh-mini-window{position:absolute;left:42%;top:10%;width:18%;height:48%;border:3px solid #a58567;border-radius:50% 50% 0 0;background:radial-gradient(circle at 65% 25%,#ddc8f2 0 9%,transparent 10%),linear-gradient(120deg,#44365e,#151322);box-shadow:0 0 20px #b18bdb33}.gdh-mini-window::after{content:'';position:absolute;left:45%;height:100%;border-left:2px solid #b18c68}.gdh-mini-object{position:absolute;bottom:5%;width:30%;height:80%;filter:drop-shadow(4px 4px 3px #0009)}.gdh-mini-object svg{width:100%;height:100%}.gdh-mini-0{left:4%}.gdh-mini-1{left:34%;height:60%}.gdh-mini-2{left:66%}.gdh-mini-3{left:50%;height:40%}.gdh-plaque{text-align:center;font-size:13px;letter-spacing:.15em;color:#ddbc8c;padding-top:8px}.gdh-plaque span{display:block;font:italic 11px/1.8 Georgia;letter-spacing:0;color:#bd9bc7}.gdh-room-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0}.gdh-floor{font:10px system-ui;text-transform:uppercase;letter-spacing:.13em;color:#c3a3d7}.gdh-room-heading h3{margin:3px 0;font:26px Georgia;color:#efd5b1}.gdh-room-heading p{font:12px/1.5 Georgia;margin:0;color:#c7b5c9}.gdh-zoom{display:flex;align-items:center;gap:5px}.gdh-zoom button{width:44px;padding:0!important}.gdh-zoom output{font:11px system-ui;min-width:35px;text-align:center}.gdh-viewport{overflow:auto;border-radius:12px;border:1px solid #967557;max-height:75vh}.gdh-focus .gqa-scene{height:auto;aspect-ratio:8/5;min-height:380px;border-radius:0;max-width:none;border:0;background:#3c293d}.gdh-focus .gqa-painted-room{display:none}.gdh-focus .gqa-architecture{opacity:1!important;visibility:visible;transform:none}.gdh-focus .gqa-architecture>:not(defs):not(.gqa-wallpaper){visibility:visible!important}.gdh-focus .gqa-scene::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 28% 35%,#ffcc8333,transparent 60%),linear-gradient(115deg,#c8acf211,transparent 50%)}.gdh-focus .gqa-scene[data-shadow=moody]::after{box-shadow:inset 0 0 95px 20px #10071ba8;background:linear-gradient(100deg,#55306933,transparent)}.gdh-focus .gqa-scene[data-room=attic] .gqa-architecture{filter:hue-rotate(12deg)}.gdh-focus .gqa-scene[data-room=kitchen] .gqa-architecture{filter:sepia(.25)}.gdh-focus .gqa-scene[data-room=attic]{clip-path:polygon(0 15%,50% 0,100% 15%,100% 100%,0 100%)}.gdh-focus .gqa-object{min-width:44px!important;min-height:44px!important}.gdh-focus .gqa-object[hidden],.gdh-focus .gqa-actor[hidden],.gdh-focus .gqa-cat[hidden]{display:none!important}.gdh-focus .gqa-actor{width:21%;height:42%}.gdh-focus .gqa-coffin{left:4%;top:45%;width:33%;height:43%}.gdh-focus .gqa-mirror{left:43%;top:16%;width:20%;height:45%}.gdh-focus .gqa-wardrobe{left:72%;top:20%;width:25%;height:60%}.gdh-focus .gqa-coffee{left:8%;top:34%;width:32%;height:47%}.gdh-focus .gqa-complaints{left:70%;top:27%;width:23%;height:43%}.gdh-focus .gqa-pumpkin{left:76%;top:71%;width:16%;height:22%}.gdh-focus .gqa-stove{left:35%;top:28%;width:27%;height:48%}.gdh-focus .gqa-tea{left:44%;top:66%;width:27%;height:31%}.gdh-focus .gqa-sofa{left:9%;top:48%;width:39%;height:39%}.gdh-focus .gqa-hearth{left:48%;top:21%;width:29%;height:51%}.gdh-focus .gqa-lamp{left:2%;top:24%;width:16%;height:43%}.gdh-focus .gqa-plant{left:79%;top:27%;width:18%;height:36%}.gdh-focus .gqa-certificate{left:52%;top:13%;width:18%;height:20%}.gdh-focus .gqa-clock{left:79%;top:17%;width:8%;height:11%}.gdh-focus .gqa-telescope{left:8%;top:33%;width:34%;height:54%}.gdh-focus .gqa-trunk{left:59%;top:57%;width:34%;height:34%}.gdh-focus .gqa-books{left:47%;top:20%;width:24%;height:48%}.gdh-focus .gqa-rug{left:22%;top:75%;width:48%;height:23%}.gdh-focus .gqa-window{left:12%;top:16%;width:14%;height:26%}.gdh-focus .gqa-hearth{filter:drop-shadow(0 0 22px #edaa6166)}.gqa-scene[data-hearth-lit=false] .gdh-fire{opacity:.12}.gqa-scene[data-hearth-lit=false] .gqa-hearth{filter:none}.gqa-scene[data-activity=stargaze] .gqa-telescope{filter:drop-shadow(0 0 15px #ccabf3)}.gqa-scene[data-activity=rummage] .gqa-trunk{filter:drop-shadow(0 0 9px #c5a1dd)}.gdh-hotspots{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.gdh-hotspots button{font:11px/1.3 system-ui;padding:7px 10px!important;flex:1 1 auto}.gdh-tip,.gdh-room-notice{font:12px/1.5 system-ui;color:#c6b2cc}.gdh-quarters :focus-visible{outline:2px solid #e6c4ff!important;outline-offset:3px}.gdh-room-notice{padding:12px;border:1px solid #8d749c;border-radius:8px;background:#30243c}
@media(max-width:700px){.gdh-navigation{gap:6px}.gdh-navigation label{order:3;flex-basis:100%}.gdh-navigation>button{flex:1}.gdh-overview{padding:40px 7px 8px}.gdh-house{gap:6px;padding:7px;transform:none}.gdh-room{height:130px}.gdh-room-attic{height:125px;width:82%}.gdh-room-basement{height:85px}.gdh-room-name{font-size:13px}.gdh-room small{font-size:9px}.gdh-plaque{font-size:11px}.gdh-focus .gqa-scene{min-height:340px;aspect-ratio:1/1.12}.gdh-focus .gqa-actor{width:27%;height:35%}.gdh-room-heading{flex-wrap:wrap}.gdh-room-heading h3{font-size:23px}.gdh-hotspots button{flex:1 1 40%;text-align:left}.gdh-focus .gqa-object-label{display:none}.gdh-zoom{margin-left:auto}.gdh-resident{font-size:8px;top:5px;left:5px}}
@media(prefers-reduced-motion:reduce){.gdh-quarters *,.gdh-quarters *::before,.gdh-quarters *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Carved cornices, patterned paper, and an exposed gable give the overview depth. */
.gdh-navigation{position:sticky;top:0;z-index:12;background:#211b2bf5;padding:8px 0}.gdh-overview{padding-top:65px}.gdh-roof{top:18px;height:170px;background:repeating-linear-gradient(90deg,transparent 0 27px,#b595aa26 28px 30px),repeating-linear-gradient(0deg,#483b51 0 7px,#201d2a 8px 11px)}.gdh-house{border-top:5px double #d6b187;border-bottom:8px double #b48b64}.gdh-house::before,.gdh-house::after{content:'';position:absolute;top:0;bottom:0;width:7px;background:repeating-linear-gradient(0deg,#cfaa7d 0 4px,#5d4240 5px 12px);z-index:4;pointer-events:none}.gdh-house::before{left:-6px}.gdh-house::after{right:-6px}.gdh-room{height:122px;border-top:4px double #cba477!important;background:radial-gradient(ellipse at 20% 30%,#e6b16b55,transparent 65%),repeating-radial-gradient(ellipse at 50% 0,#ad819021 0 1px,transparent 2px 13px),repeating-linear-gradient(90deg,#654655 0 2px,#443242 2px 23px)!important}.gdh-room-attic{height:125px}.gdh-room-basement{height:75px}.gdh-mini-window{box-shadow:inset 4px 0 8px #0009,0 0 22px #c2a1ee44}.gdh-room-notice{position:sticky;bottom:0;z-index:10}.gdh-focus .gqa-scene[data-room=bedroom]::before{background:radial-gradient(ellipse at 15% 50%,#c9a8ee30,transparent 65%)}.gdh-focus .gqa-scene[data-room=sitting]::before{background:radial-gradient(ellipse at 63% 55%,#ffc77840,transparent 65%)}.gdh-focus .gqa-scene[data-room=sitting][data-hearth-lit=false]::before{background:radial-gradient(ellipse at 20% 30%,#bea1da18,transparent 60%)}
@media(max-width:700px){.gdh-room{height:125px}.gdh-room-attic{height:120px}.gdh-room-basement{height:75px}.gdh-navigation{padding-top:4px;gap:4px}.gdh-overview{padding-top:45px}}
.gdh-quarters[data-hearth-lit=false] .gdh-room-sitting .gdh-fire{opacity:.12}
.gdh-focus .gqa-certificate{top:4%;height:17%;left:53%;width:17%}
.gdh-focus .gqa-rug{left:38%;top:78%;width:42%;height:20%}
/* Expanded rooms have their own architectural shells and material palettes. */
.gdh-room-bath,.gdh-room-library,.gdh-room-entrance{filter:none;background:radial-gradient(ellipse at 20% 30%,#dfba7c4d,transparent 65%),repeating-linear-gradient(90deg,#4b3b51 0 2px,#3d303f 2px 23px)!important}
.gdh-room-bath{background:radial-gradient(ellipse at 20% 30%,#b1bfd34d,transparent 65%),#394b56!important}.gdh-room-library{background:radial-gradient(ellipse at 20% 30%,#e1b26e55,transparent 65%),#34443f!important}.gdh-room-entrance{background:radial-gradient(ellipse at 20% 30%,#c8a0dd44,transparent 65%),#533b48!important}.gdh-room-basement{height:135px!important;background:repeating-linear-gradient(0deg,#393444 0 18px,#252030 19px 21px)!important}.gdh-room-basement .gdh-mini{opacity:.45}.gdh-room-basement[aria-label='Enter discovered basement'] .gdh-mini{opacity:1}.gdh-room-basement .gdh-mini-window{display:none}.gdh-room-basement .gdh-mini-object{width:20%}.gdh-room-basement .gdh-mini-0{left:6%}.gdh-room-basement .gdh-mini-1{left:29%;height:80%}.gdh-room-basement .gdh-mini-2{left:53%}.gdh-room-basement .gdh-mini-3{left:77%;height:80%}
.gdh-special-architecture{display:none;position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.gqa-scene:is([data-room=bath],[data-room=library],[data-room=entrance],[data-room=basement]) .gqa-architecture{display:none!important}.gqa-scene:is([data-room=bath],[data-room=library],[data-room=entrance],[data-room=basement]) .gdh-special-architecture{display:block}.gdh-new-wall{fill:url(#gdh-library-paper)}.gqa-scene[data-room=bath] .gdh-new-wall{fill:url(#gdh-bath-tile)}.gqa-scene[data-room=entrance] .gdh-new-wall{fill:url(#gdh-entrance-paper)}.gqa-scene[data-room=basement] .gdh-new-wall{fill:url(#gdh-cellar-stone)}.gdh-cellar-arch,.gdh-bath-pipes{display:none}.gqa-scene[data-room=bath] .gdh-bath-pipes,.gqa-scene[data-room=basement] .gdh-cellar-arch{display:block}.gqa-scene[data-room=basement] .gdh-special-window{display:none}.gqa-scene[data-room=bath]::before{background:radial-gradient(ellipse at 25% 50%,#bad9ed30,transparent 60%)}.gqa-scene[data-room=library]::before{background:radial-gradient(ellipse at 80% 40%,#f5c17e44,transparent 55%)}.gqa-scene[data-room=library][data-library-lit=false]::before{background:linear-gradient(120deg,#b9a3e720,#0a081a33)}.gqa-scene[data-room=basement]::before{background:radial-gradient(ellipse at 25% 50%,#dba96e22,transparent 50%)}
.gdh-focus .gqa-tub{left:5%;top:43%;width:52%;height:49%}.gdh-focus .gqa-vanity{left:63%;top:13%;width:29%;height:51%}.gdh-focus .gqa-hamper{left:66%;top:67%;width:27%;height:29%}.gdh-focus .gqa-bookcase{left:5%;top:15%;width:37%;height:67%}.gdh-focus .gqa-reading-desk{left:43%;top:57%;width:39%;height:37%}.gdh-focus .gqa-library-lamp{left:77%;top:20%;width:20%;height:44%}.gdh-focus .gqa-front-door{left:31%;top:7%;width:36%;height:79%}.gdh-focus .gqa-mailbox{left:70%;top:28%;width:23%;height:37%}.gdh-focus .gqa-coatstand{left:4%;top:22%;width:24%;height:66%}.gdh-focus .gqa-doorbell{left:72%;top:6%;width:12%;height:20%}.gdh-focus .gqa-boiler{left:3%;top:27%;width:29%;height:56%}.gdh-focus .gqa-workbench{left:59%;top:59%;width:38%;height:36%}.gdh-focus .gqa-rune-console{left:31%;top:64%;width:28%;height:31%}.gdh-focus .gqa-cellar-cabinet{left:72%;top:9%;width:24%;height:46%}.gqa-cellar-return{position:absolute;left:2%;top:2%;z-index:8;font:11px system-ui!important;min-height:44px!important;max-width:40%}.gdh-room-status{margin:6px 0 12px;padding:8px 10px;border:1px solid #95769166;border-radius:8px;background:#322739;font:12px/1.5 system-ui;color:#e0cbe7}
.gdh-bath-water,.gdh-bath-bubbles,.gdh-bath-steam,.gdh-linen-folded{display:none}.gqa-scene[data-bath-full=true] :is(.gdh-bath-water,.gdh-bath-bubbles,.gdh-bath-steam),.gdh-quarters[data-bath-full=true] .gdh-mini :is(.gdh-bath-water,.gdh-bath-bubbles){display:block}.gqa-scene[data-motion=on][data-bath-full=true] .gdh-bath-steam{animation:gdh-steam 4s ease-in-out infinite}.gqa-scene[data-vanity-polished=true] .gdh-vanity-fog,.gdh-quarters[data-vanity-polished=true] .gdh-mini .gdh-vanity-fog{opacity:.08}.gqa-scene[data-linen-folded=true] .gdh-linen-loose,.gdh-quarters[data-linen-folded=true] .gdh-mini .gdh-linen-loose{display:none}.gqa-scene[data-linen-folded=true] .gdh-linen-folded,.gdh-quarters[data-linen-folded=true] .gdh-mini .gdh-linen-folded{display:block}.gqa-scene[data-library-lit=false] .gdh-reading-bulb,.gdh-quarters[data-library-lit=false] .gdh-mini .gdh-reading-bulb{fill:#756779;opacity:.35}.gqa-scene[data-library-lit=true] .gqa-library-lamp{filter:drop-shadow(0 0 20px #f8cc8244)}
.gdh-door-leaf{transform-box:fill-box;transform-origin:left;transition:transform .7s ease}.gqa-scene[data-door-open=true] .gdh-door-leaf,.gdh-quarters[data-door-open=true] .gdh-mini .gdh-door-leaf{transform:perspective(300px) rotateY(-68deg)}.gqa-scene[data-cloak-hung=false] .gdh-travel-cloak,.gdh-quarters[data-cloak-hung=false] .gdh-mini .gdh-travel-cloak{opacity:.08}.gqa-scene[data-activity=mail-reading] .gdh-post-envelope{transform:translateY(-8px)}.gqa-scene[data-activity=answering][data-motion=on] .gdh-bell-clapper{animation:gdh-bell .3s ease-in-out 4;transform-origin:81px 86px}.gqa-scene[data-activity=journaling] .gdh-journal-ink{stroke:#c5a1e8;stroke-width:3}
.gdh-boiler-needle{transform-origin:80px 66px;transition:transform .5s}.gdh-boiler-fire{opacity:.06}.gqa-scene[data-boiler='1'] .gdh-boiler-needle{transform:rotate(45deg)}.gqa-scene[data-boiler='2'] .gdh-boiler-needle{transform:rotate(85deg)}.gqa-scene:is([data-boiler='1'],[data-boiler='2']) .gdh-boiler-fire{opacity:1}.gqa-scene[data-boiler='2'] .gqa-boiler{filter:drop-shadow(0 0 14px #e9ae6c44)}.gqa-scene[data-repair-stage='0'] :is(.gdh-raven-body,.gdh-raven-head){opacity:.15}.gqa-scene[data-repair-stage='0'] .gdh-raven-wing{transform:translate(16px,22px) rotate(15deg)}.gqa-scene[data-repair-stage='1'] .gdh-raven-head{opacity:.15}.gqa-scene[data-repair-stage='3'] .gdh-raven-eye{fill:#f6ce7d;filter:drop-shadow(0 0 4px #f6ce7d)}.gqa-scene[data-repair-stage='3'][data-motion=on] .gdh-raven-head{animation:gdh-bell 2.6s ease-in-out 2;transform-origin:90px 65px}.gdh-cellar-portal{opacity:0;transition:opacity .5s}.gqa-scene[data-runes='3'] .gdh-cellar-portal{opacity:1;filter:drop-shadow(0 0 14px #b49cde88)}.gqa-scene:is([data-runes='1'],[data-runes='2'],[data-runes='3']) .gdh-rune-1{filter:drop-shadow(0 0 7px #dcc4ff)}.gqa-scene:is([data-runes='2'],[data-runes='3']) .gdh-rune-2{filter:drop-shadow(0 0 9px #dcc4ff)}.gqa-scene[data-runes='3'] .gdh-rune-3{filter:drop-shadow(0 0 7px #dcc4ff)}.gdh-cabinet-left,.gdh-cabinet-right{transform-box:fill-box;transform-origin:left;transition:transform .6s}.gdh-cabinet-right{transform-origin:right}.gqa-scene[data-cabinet-open=true] .gdh-cabinet-left{transform:perspective(300px) rotateY(-65deg)}.gqa-scene[data-cabinet-open=true] .gdh-cabinet-right{transform:perspective(300px) rotateY(65deg)}
@keyframes gdh-steam{50%{opacity:.15;transform:translateY(-7px)}}@keyframes gdh-bell{50%{rotate:7deg}}
@media(max-width:700px){.gdh-room-basement{height:125px!important}.gdh-room-status{font-size:11px}.gqa-cellar-return{font-size:10px!important;max-width:55%}.gdh-focus .gqa-doorbell{min-width:44px!important;min-height:44px!important}.gdh-focus .gqa-cellar-cabinet{left:69%;width:29%}.gdh-focus .gqa-workbench{left:56%;width:42%}}


/* Source: guest-experience.css */
.ge-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:12px}.ge-heading h2{margin:0;font-size:1.4rem}.ge-heading>span,.ge-note{font-size:.78rem;color:var(--muted,var(--text))}.ge-tabs{display:flex;flex-wrap:wrap;gap:5px;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:10px}.ge-tabs button{border:1px solid var(--border);border-radius:9px;padding:8px 12px;background:var(--panel);color:var(--text);font:inherit;cursor:pointer}.ge-tabs button[aria-selected=true]{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.ge-filters,.ge-list-toolbar,.ge-dates{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.ge-filters{margin-bottom:10px}.ge-filters label,.ge-list-toolbar label,.ge-card header label,.ge-match-actions label{display:grid;gap:3px;min-width:0;font-size:12px;font-weight:600}.ge-filters>label{flex:0 1 205px}.ge-filters small{flex-basis:100%;font-size:11px;opacity:.75}.ge-dates label{flex:1 1 130px;min-width:0}.ge-filters input,.ge-filters select,.ge-list-toolbar input,.ge-list-toolbar select,.ge-card select,.ge-match-actions input,.ge-match-actions textarea{box-sizing:border-box;min-width:0;max-width:100%;width:100%;min-height:36px;padding:5px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2,var(--panel));color:var(--text);font:inherit}.ge-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ge-metric,.ge-card{border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--text);padding:12px;min-width:0}.ge-metric{display:grid;gap:4px;text-align:left;font:inherit}.ge-metric small{font-size:.76rem}.ge-metric strong{font-size:1.35rem}.ge-metric span{font-size:.7rem;opacity:.8}.ge-metric:is(button),.ge-attention,.ge-person{cursor:pointer}.ge-card{margin-top:10px}.ge-card h3{margin:0;font-size:1rem}.ge-card header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.ge-card summary{padding:9px 0;cursor:pointer;overflow-wrap:anywhere}.ge-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ge-attention,.ge-person{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:9px 0;min-height:38px;border:0;border-bottom:1px solid var(--border);background:none;color:var(--text);font:inherit;font-size:.8rem}.ge-person>span,.ge-person>small{font-size:.72rem}.ge-person>span{width:100%}.ge-chart{display:block;max-height:180px;width:100%;color:var(--text)}.ge-chart circle:focus{outline:2px solid var(--text)}.ge-trend-points{display:flex;gap:5px;overflow:auto;padding:6px 0}.ge-trend-points button{flex:0 0 auto;display:grid;gap:3px;border:1px solid var(--border);border-radius:8px;padding:6px;background:var(--surface-2,var(--panel));color:var(--text);font-size:.75rem}.ge-list-toolbar{padding:8px 0}.ge-list-toolbar>label:first-child{flex:1 1 200px}.ge-list-toolbar>label{flex:0 1 150px}.ge-count{font-size:.78rem}.ge-review{border-bottom:1px solid var(--border);min-width:0}.ge-review>summary{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-height:38px;box-sizing:border-box;padding:7px 2px;cursor:pointer;font-size:.8rem;list-style:revert}.ge-review>summary>span:not(.ge-badge){flex:1;min-width:80px;overflow-wrap:anywhere}.ge-review>summary time{font-size:.73rem;opacity:.8}.ge-review>summary b{white-space:nowrap;font-size:.77rem}.ge-badge{display:inline-flex;align-items:center;min-height:21px;padding:1px 6px;border-radius:6px;background:color-mix(in srgb,var(--accent) 13%,var(--panel));color:var(--text);font-size:11px;font-weight:600}.ge-badge[data-status=needs-review]{border:1px solid var(--border)}.ge-review-detail{padding:8px;font-size:.8rem;overflow-wrap:anywhere}.ge-review-detail>p{margin:6px 0}.ge-candidates,.ge-match-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.ge-match-actions label{flex-basis:100%}.ge-match-actions>p,.ge-match-actions>[data-ge-reservations]{flex-basis:100%}.ge-review .button{max-width:100%;white-space:normal;overflow-wrap:anywhere;min-height:34px}.ge-review-detail details{margin:8px 0}.ge-tools{margin-top:12px}.ge-tools>summary{cursor:pointer;padding:10px 0;font-weight:600;font-size:.85rem}.ge-pagination{display:flex;justify-content:space-between;padding:10px 0}.ge-empty{padding:20px;text-align:center;font-size:.85rem}#guest-experience-view [hidden]{display:none!important}#guest-experience-view button:focus-visible,#guest-experience-view summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#guest-experience-view [data-ge-status-message]:not([hidden]){padding:8px;border-left:2px solid var(--accent);font-size:.8rem}
@media(max-width:760px){.ge-columns{grid-template-columns:1fr}.ge-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ge-filters>label{flex:1 1 180px}.ge-filters input,.ge-filters select,.ge-list-toolbar input,.ge-list-toolbar select,.ge-match-actions input,.ge-match-actions textarea{font-size:16px;min-height:44px}.ge-tabs button{min-height:44px;flex:1 1 145px}.ge-card{padding:10px}.ge-metric{padding:10px}.ge-metric strong{font-size:1.1rem}.ge-review .button{min-height:44px}.ge-dates{width:100%}}
@media(max-width:380px){.ge-filters>label,.ge-dates label{flex-basis:100%}.ge-review>summary{gap:6px}.ge-metric span{font-size:.68rem}}
.ge-role-editor{width:100%}.ge-role-editor fieldset{min-width:0;border:1px solid var(--border);border-radius:8px;padding:8px;margin:8px 0;display:grid;gap:7px}.ge-role-editor legend{font-weight:600}.ge-role-editor select{box-sizing:border-box;min-height:36px;max-width:100%;width:100%;background:var(--surface-2,var(--panel));color:var(--text);border:1px solid var(--border);border-radius:8px;padding:5px 8px;font:inherit}@media(max-width:760px){.ge-role-editor select{min-height:44px;font-size:16px}}


/* Source: grimble-rig.css */
/* Every moving part has its own pivot. The painted body is never a bust sticker. */
.gr-rig{overflow:visible;--gr-lid:27px;--gr-gaze-x:0px;--gr-jaw:0px;--gr-eye-scale:1}
.gr-rig .gr-figure,.gr-rig .gr-torso,.gr-rig .gr-head,.gr-rig .gr-arm,.gr-rig .gr-wrist,.gr-rig .gr-foot,.gr-rig .gr-finger,.gr-rig .gr-tip,.gr-rig .gr-jaw,.gr-rig .gr-eye,.gr-rig .gr-brow{transform-box:view-box}
.gr-rig .gr-torso{transform-origin:625px 1150px}.gr-rig .gr-head{transform-origin:653px 735px}.gr-rig .gr-arm-left{transform-origin:447px 792px}.gr-rig .gr-arm-right{transform-origin:870px 789px}.gr-rig .gr-wrist,.gr-rig .gr-finger{transform-origin:0 0}.gr-rig .gr-tip{transform-origin:0 30px}.gr-rig .gr-foot-left{transform-origin:529px 1168px}.gr-rig .gr-foot-right{transform-origin:778px 1168px}.gr-rig .gr-jaw{transform-origin:670px 667px;transform:translateY(var(--gr-jaw))}.gr-rig .gr-brow-left{transform-origin:550px 500px}.gr-rig .gr-brow-right{transform-origin:797px 495px}.gr-rig .gr-eye-left{transform-origin:551px 561px}.gr-rig .gr-eye-right{transform-origin:798px 558px}
.gr-rig .gr-lid-position{transform:translateY(var(--gr-lid))}.gr-rig .gr-gaze{transform:translateX(var(--gr-gaze-x))}.gr-rig :is(.gr-costume-sheet,.gr-costume-crown,.gr-costume-sash,.gr-spectacles,.gr-mug){display:none}
.gr-rig[data-outfit=sheet-ghost] .gr-costume-sheet,.gr-rig[data-outfit=ceremonial] :is(.gr-costume-crown,.gr-costume-sash),.gr-rig[data-outfit=inspection] .gr-spectacles,.gr-rig[data-outfit=management] .gr-spectacles{display:block}
.gr-rig[data-outfit=vacation] .gr-spectacles{display:block;fill:#23152de6;stroke:#c9af75}
.gr-rig[data-expression=happy],.gr-rig[data-expression=affectionate]{--gr-lid:0px}.gr-rig[data-expression=shocked],.gr-rig[data-expression=overwhelmed]{--gr-lid:-12px;--gr-jaw:32px}.gr-rig[data-expression=stressed]{--gr-lid:5px;--gr-jaw:14px}.gr-rig[data-expression=dead-inside]{--gr-lid:55px}.gr-rig[data-expression=judgment]{--gr-lid:46px}.gr-rig[data-expression=side-eye]{--gr-gaze-x:30px;--gr-lid:36px}.gr-rig[data-expression=suspicious]{--gr-gaze-x:17px;--gr-lid:29px}.gr-rig[data-expression=scheming]{--gr-gaze-x:-16px;--gr-lid:24px}.gr-rig[data-expression=crying]{--gr-lid:4px}
.gr-rig[data-expression=furious]{--gr-lid:36px;--gr-jaw:12px}.gr-rig[data-expression=furious] .gr-brow-left{transform:rotate(14deg)}.gr-rig[data-expression=furious] .gr-brow-right{transform:rotate(-14deg)}.gr-rig[data-expression=suspicious] .gr-brow-left,.gr-rig[data-expression=scheming] .gr-brow-left{transform:translateY(-18px) rotate(-8deg)}.gr-rig[data-expression=overwhelmed] .gr-brows{transform:translateY(-15px)}
/* CSS runs only while the existing lifecycle explicitly permits motion. */
.gr-rig[data-motion=on] .gr-blink{animation:gr-blink 6.7s ease-in-out infinite}.gr-rig[data-motion=on] .gr-torso{animation:gr-breathe 4.6s ease-in-out infinite}.gr-rig[data-motion=on] .gr-eye-right .gr-blink{animation-delay:.045s}.gr-rig[data-motion=on] .gr-finger-1{animation:gr-fidget 7.3s ease-in-out infinite}.gr-rig[data-motion=on] .gr-finger-2{animation:gr-fidget 7.3s .12s ease-in-out infinite}
.gr-rig[data-motion=on][data-speaking=true] .gr-jaw{animation:gr-talk .31s ease-in-out infinite}.gr-rig[data-motion=on][data-speaking=true] .gr-arm-right{animation:gr-explain 1.4s ease-in-out infinite}.gr-rig[data-motion=on][data-speaking=true] .gr-wrist-right{animation:gr-wrist 1.4s ease-in-out infinite}
.gr-rig[data-rig-action=coffee] .gr-mug,.gr-rig[data-rig-action=toast] .gr-mug{display:block}
.gr-rig[data-rig-action=sleep]{--gr-lid:105px}.gr-rig[data-rig-action=sleep] .gr-head{transform:rotate(7deg) translateY(9px)}
.gr-rig[data-motion=on][data-rig-action=coffee] .gr-arm-left{animation:gr-sip 2.1s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=coffee] .gr-wrist-left{animation:gr-drink-wrist 2.1s ease-in-out infinite}
.gr-rig[data-motion=on][data-rig-action=walk] .gr-foot-left{animation:gr-step .55s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=walk] .gr-foot-right{animation:gr-step .55s -.275s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=walk] .gr-arm-left{animation:gr-arm-step .55s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=walk] .gr-arm-right{animation:gr-arm-step .55s -.275s ease-in-out infinite}
.gr-rig[data-motion=on][data-rig-action=shrug] .gr-arm-left{animation:gr-shrug-left 1.5s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=shrug] .gr-arm-right{animation:gr-shrug-right 1.5s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=shrug] .gr-wrist{animation:gr-wrist 1.5s ease-in-out infinite}
.gr-rig[data-motion=on][data-rig-action=sweep] .gr-arm-right,.gr-rig[data-motion=on][data-rig-action=cat] .gr-arm-right{animation:gr-sweep .75s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=read] .gr-arm-left{animation:gr-read 2.2s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=read] .gr-head{animation:gr-nod 2.2s ease-in-out infinite}
.gr-rig[data-motion=on][data-rig-action=fire] .gr-arm,.gr-rig[data-motion=on][data-rig-action=rattle] .gr-arm{animation:gr-tantrum .24s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=fire] .gr-finger{animation:gr-clench .6s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=scream] .gr-jaw{animation:gr-gasp .9s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=skull] .gr-head{animation:gr-head-drop 1.7s ease-in-out 1}
.gr-rig[data-motion=on][data-rig-action=toast] .gr-arm-left{animation:gr-toast 1.5s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=confetti] .gr-arm-left{animation:gr-shrug-left .7s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=confetti] .gr-arm-right{animation:gr-shrug-right .7s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=confetti] .gr-wrist{animation:gr-wrist .4s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=hood] .gr-head,.gr-rig[data-motion=on][data-rig-action=peek] .gr-head{animation:gr-side-glance 1.8s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=collapse] .gr-torso{animation:gr-slump 2.3s ease-in-out 1}.gr-rig[data-motion=on][data-rig-action=ritual] .gr-arm-left{animation:gr-shrug-left 1.2s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=ritual] .gr-arm-right{animation:gr-shrug-right 1.2s ease-in-out infinite}.gr-rig[data-motion=on][data-rig-action=dust] .gr-figure{animation:gr-fade 1.8s ease-in-out 1}
@keyframes gr-blink{0%,40%,43%,75%,78%,100%{transform:translateY(0)}41.5%,76.5%{transform:translateY(112px)}}
@keyframes gr-breathe{50%{transform:scaleY(1.008) translateY(-2px)}}@keyframes gr-fidget{0%,68%,84%,100%{transform:rotate(0)}74%{transform:rotate(12deg)}}@keyframes gr-talk{0%,100%{transform:translateY(var(--gr-jaw))}50%{transform:translateY(calc(var(--gr-jaw) + 19px)) rotate(1deg)}}
@keyframes gr-explain{50%{transform:rotate(-24deg)}}@keyframes gr-wrist{50%{transform:rotate(22deg)}}@keyframes gr-sip{25%,65%{transform:rotate(74deg)}}@keyframes gr-drink-wrist{25%,65%{transform:rotate(-28deg)}}@keyframes gr-step{50%{transform:translateY(-18px) rotate(8deg)}}@keyframes gr-arm-step{50%{transform:rotate(8deg)}}@keyframes gr-shrug-left{35%,65%{transform:rotate(50deg)}}@keyframes gr-shrug-right{35%,65%{transform:rotate(-50deg)}}@keyframes gr-sweep{50%{transform:rotate(-29deg)}}@keyframes gr-read{40%,70%{transform:rotate(32deg)}}@keyframes gr-nod{40%,70%{transform:rotate(4deg)}}@keyframes gr-tantrum{50%{transform:translateY(-13px) rotate(8deg)}}@keyframes gr-clench{50%{transform:rotate(28deg)}}@keyframes gr-gasp{50%{transform:translateY(49px)}}@keyframes gr-head-drop{40%,65%{transform:translateY(62px) rotate(11deg)}}@keyframes gr-toast{35%,70%{transform:rotate(47deg)}}@keyframes gr-side-glance{40%,70%{transform:rotate(-5deg)}}@keyframes gr-slump{40%,70%{transform:scaleY(.88)}}@keyframes gr-fade{45%,70%{opacity:.18}}
/* Sidebar is a still portrait. Visitors use the same complete body. */
.grimble-door .gr-rig{width:54px;height:64px}.gr-rig[data-motion=off] *{animation:none!important;transition:none!important}
.gqa-actor:has(.gr-rig) .gqa-talk-target{left:33%;top:24%;width:35%;height:23%}
@media(prefers-reduced-motion:reduce){.gr-rig *{animation:none!important;transition:none!important}}
@media print{.gr-rig *{animation:none!important}}


/* Source: the-fuckening-depth.css */
/* Shared elevation material. Screen-only and opt-in to this world; room status
   colors, geometry, print, operational controls and character animation retain
   their existing owners. No extra DOM, pointer listeners or permanent layers. */
@media screen {
  html:root[data-world='the-fuckening'][data-theme][data-mode] {
    --fg-pink:#a32e50; --fg-plum:#77506b; --fg-purple:#7650b0;
    --fg-cyan:#236b85; --fg-green:#347244;
    --fg-crimson:var(--fg-pink); --fg-ice:var(--fg-cyan);
    --fg-shadow-ink:#22172438; --fg-shadow-core:#22172460;
    --fg-rim-opacity:.28; --fg-lift:-3px;--fg-side-base:#b3a5ab;
    --fg-depth-ease:cubic-bezier(.2,.7,.25,1);
  }
  html:root[data-world='the-fuckening'][data-theme][data-mode='dark'] {
    --fg-pink:#ff78b3; --fg-plum:#c080b9; --fg-purple:#c295ff;
    --fg-cyan:#85e7ff; --fg-green:#c4ee8c;
    --fg-shadow-ink:#10091570; --fg-shadow-core:#08060d8c;
    --fg-rim-opacity:.8;--fg-side-base:#302531;
  }
  html:root[data-world='the-fuckening'][data-theme][data-mode] :where(
    .sidebar,.topbar,.panel,.daily-room-operations,.metric,.room-card,
    .room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room,.grimble-door,.grimble-mobile-entry,
    .gb-apartment-dialog,.gqa-scene,.gqa-drawer
  ) {
    --fg-card-glow:var(--fg-plum);
    --fg-light-left:var(--fg-card-glow);--fg-light-right:var(--fg-purple);
    --fg-glass-side:color-mix(in srgb,var(--fg-card-glow) 14%,var(--fg-side-base));
    --fg-depth-rest:inset 0 1px 1px #fff9,
      inset 1px 0 1px color-mix(in srgb,var(--fg-card-glow) 85%,white),
      inset 0 -1px 2px #ffffff26,
      0 0 2px color-mix(in srgb,var(--fg-card-glow) 60%,transparent),
      -6px 0 16px -7px color-mix(in srgb,var(--fg-light-left) 70%,transparent),
      8px 4px 28px -10px color-mix(in srgb,var(--fg-light-right) 42%,transparent),
      -4px 6px 3px 2px color-mix(in srgb,var(--fg-glass-side) 72%,transparent),
      0 11px 9px -1px color-mix(in srgb,var(--fg-card-glow) 12%,transparent),
      0 6px 12px -4px var(--fg-shadow-core),
      0 22px 36px -12px var(--fg-shadow-ink),
      0 34px 64px -18px var(--fg-shadow-ink);
    --fg-depth-hover:inset 0 1px 2px #fffC,
      inset -1px 0 2px color-mix(in srgb,var(--fg-card-glow) 70%,white),
      inset 0 -1px 2px #ffffff35,
      0 0 3px color-mix(in srgb,var(--fg-card-glow) 80%,transparent),
      -8px 0 24px -6px color-mix(in srgb,var(--fg-light-left) 72%,transparent),
      10px 6px 38px -9px color-mix(in srgb,var(--fg-light-right) 55%,transparent),
      -5px 8px 4px 2px color-mix(in srgb,var(--fg-glass-side) 80%,transparent),
      0 10px 18px -5px var(--fg-shadow-core),
      0 30px 50px -12px var(--fg-shadow-ink);
    --fg-depth-press:inset 0 1px 2px #fff8,
      inset 1px 0 1px color-mix(in srgb,var(--fg-card-glow) 80%,white),
      0 0 2px color-mix(in srgb,var(--fg-card-glow) 60%,transparent),
      0 0 14px -3px color-mix(in srgb,var(--fg-card-glow) 40%,transparent),
      0 3px 8px -3px var(--fg-shadow-core),
      0 12px 24px -9px var(--fg-shadow-ink);
    --surface-shadow:var(--fg-depth-rest);
    --surface-hover-shadow:var(--fg-depth-hover);
    --surface-modal-shadow:var(--fg-depth-rest);
    --glass-reflection:radial-gradient(ellipse at var(--glass-x,35%) var(--glass-y,0%),color-mix(in srgb,var(--fg-card-glow) 12%,transparent),transparent 65%);
  }
  html:root[data-world='the-fuckening'][data-theme][data-mode] :is([data-today-card-id='departures'],[data-daily-operation='out-status'],.sidebar,.grimble-door) {--fg-card-glow:var(--fg-pink);}
  html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.combined-room-quick-panel,[data-today-card-id='personal-todo'],[data-daily-operation='inspections'],.gb-apartment-dialog,.gqa-scene) {--fg-card-glow:var(--fg-purple);}
  html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.room-card,.room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room,.room-note-badge-quick-panel,[data-daily-operation='total-checkouts']) {--fg-card-glow:var(--fg-cyan);}
  html:root[data-world='the-fuckening'][data-theme][data-mode] .daily-room-operations {--fg-card-glow:var(--fg-green);--fg-light-right:var(--fg-pink);}

  /* Continue the environment behind the rail instead of a flat black slab. */
  html:root[data-world='the-fuckening'][data-theme][data-mode] .app-shell {
    background:radial-gradient(ellipse at 88% 6%,#8b334a2b,transparent 40%),radial-gradient(ellipse at 12% 56%,#39796925,transparent 46%),radial-gradient(circle,#8c82761a .6px,transparent .9px) 0 0/5px 5px,var(--world-background);
  }
  @layer surface-material.foundation {
    html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.sidebar,.topbar) {
      background:var(--surface-panel)!important;
      border-color:color-mix(in srgb,var(--fg-card-glow) 38%,var(--fg-edge))!important;
      box-shadow:var(--fg-depth-rest)!important;
    }
    html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view :is(.panel,.daily-room-operations,.metric,.room-card,.room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room):not(:where(.print-preview-sheet *,#print-run-root *)),
    html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.grimble-door,.grimble-mobile-entry,.gb-apartment-dialog,.gqa-scene,.gqa-drawer) {
      border-color:color-mix(in srgb,var(--fg-card-glow) 42%,var(--fg-edge))!important;
      box-shadow:var(--fg-depth-rest)!important;
    }
    /* Nested rows need a smaller shadow budget and no additional backdrop blur. */
    html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view :is(.metric,.room-card,.room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room) {
      --fg-depth-rest:inset 0 1px 1px #ffffffa6,inset 3px 0 1px color-mix(in srgb,var(--fg-card-glow) 85%,white),inset 0 -1px 2px #ffffff1a,0 0 2px color-mix(in srgb,var(--fg-card-glow) 80%,transparent),-3px 0 12px -5px color-mix(in srgb,var(--fg-card-glow) 55%,transparent),0 7px 16px -8px var(--fg-shadow-core);
      --fg-depth-hover:inset 0 1px 2px #fffc,inset -1px 0 2px var(--fg-card-glow),0 0 3px color-mix(in srgb,var(--fg-card-glow) 80%,transparent),0 0 18px -2px color-mix(in srgb,var(--fg-card-glow) 60%,transparent),0 12px 22px -9px var(--fg-shadow-core);
      backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
    }
    html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view :is(.panel,.daily-room-operations,.metric,.room-card,.room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room):focus-within {
      box-shadow:var(--fg-depth-hover)!important;
    }
  }

  /* Edge-only mask: never paints over words or catches input. The slow opacity
     breath can composite without animating blur, shadows or layout. Only major
     surfaces receive it; dense room lists keep their static colored bevel. */
  html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.sidebar,.topbar,.daily-room-operations,[data-today-card-id],.gb-apartment-dialog,.gqa-scene)::after {
    content:'';position:absolute;inset:0;width:auto;height:auto;padding:1px;
    border:0;border-radius:inherit;pointer-events:none;z-index:1;
    background:linear-gradient(125deg,var(--fg-pink),transparent 24%,var(--fg-plum) 44%,var(--fg-purple) 65%,var(--fg-cyan) 88%,color-mix(in srgb,var(--fg-green) 50%,transparent));
    -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;
    opacity:var(--fg-rim-opacity);transform:none;filter:none;box-shadow:none;
  }
  html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.daily-room-operations,[data-today-card-id],.gqa-drawer) {position:relative;}
  html:root[data-world='the-fuckening'][data-theme][data-mode][data-decorative-animations='on'] :is(.sidebar,.topbar,.daily-room-operations,[data-today-card-id],.gb-apartment-dialog,.gqa-scene)::after {animation:fg-edge-breathe 16s ease-in-out infinite;}
  html:root[data-world='the-fuckening'][data-theme][data-mode] [data-today-card-id='departures']::after {animation-delay:-6s;}
  @keyframes fg-edge-breathe {0%,100%{opacity:var(--fg-rim-opacity)}50%{opacity:1}}

  html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.panel,.daily-room-operations,.metric,.room-card,.room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room,.grimble-door,.grimble-mobile-entry,.gqa-drawer) {
    transition:translate 190ms var(--fg-depth-ease),box-shadow 220ms var(--fg-depth-ease),border-color 180ms ease;
  }
  @media (hover:hover) and (pointer:fine) {
    @layer surface-material.foundation {
      html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view :is(.panel,.daily-room-operations,.metric,.room-card,.room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room):hover:not(:has(:is(.panel,.metric,.room-card,.room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room):hover)),
      html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.grimble-door,.gqa-drawer):hover {
        translate:0 var(--fg-lift);box-shadow:var(--fg-depth-hover)!important;
      }
      html:root[data-world='the-fuckening'][data-theme][data-mode][data-cursor-lighting='on'] #app-view .view :is(.panel,.daily-room-operations,.metric):hover {background:var(--glass-reflection),var(--surface-user-paint,var(--surface-panel))!important;}
    }
  }
  @layer surface-material.foundation {
    html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view :is(.panel,.daily-room-operations,.metric,.room-card,.room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room):active:not(:has(:is(.panel,.metric,.room-card,.room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room):active,input:focus,textarea:focus,select:focus)),
    html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.grimble-door,.grimble-mobile-entry):active {
      translate:0 1px;box-shadow:var(--fg-depth-press)!important;transition-duration:90ms;
    }
  }
  html:root[data-world='the-fuckening'] .sidebar .nav-item.active>span:first-child {color:var(--fg-pink)!important;}
  html:root[data-world='the-fuckening'] .nav-selection-indicator {background:var(--fg-pink)!important;box-shadow:0 0 10px color-mix(in srgb,var(--fg-pink) 55%,transparent)!important;}
  html:root[data-world='the-fuckening'] .fuckening-steam {stroke:var(--fg-pink);}
  html:root[data-world='the-fuckening'][data-theme][data-mode] .grimble-door {--fg-card-glow:#e5a971;--fg-light-right:var(--fg-plum);}
 html:root[data-world='the-fuckening'] .fuckening-caption::before {background:var(--fg-pink);}
  html:root[data-world='the-fuckening'] .fuckening-note::before {color:var(--fg-card-glow,var(--fg-green));}
  html:root[data-world='the-fuckening'] .grimble-home {overflow:visible;}
  @media (max-width:700px) {
    html:root[data-world='the-fuckening'][data-theme][data-mode] {--fg-lift:-2px;}
  }
  /* User motion controls and OS preference agree. Keep the tactile color/shadow
     feedback, without movement, looping light or a lingering touch hover. */
  html:root[data-world='the-fuckening'][data-decorative-animations='off'] :is(.panel,.daily-room-operations,.metric,.room-card,.room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room,.grimble-door,.grimble-mobile-entry,.gqa-drawer) {translate:none!important;transition:none!important;}
  html:root[data-world='the-fuckening'][data-decorative-animations='off'] :is(.sidebar,.topbar,.daily-room-operations,[data-today-card-id],.gb-apartment-dialog,.gqa-scene)::after {animation:none!important;}
  @media (prefers-reduced-motion:reduce) {
    html:root[data-world='the-fuckening'] :is(.panel,.daily-room-operations,.metric,.room-card,.room-list-row:not(.rooms-compact-row),.room-surface:not(.rooms-compact-row),.rooms-floor-list,.pr-room,.ab-room,.grimble-door,.grimble-mobile-entry,.gqa-drawer) {translate:none!important;transition:none!important;}
    html:root[data-world='the-fuckening'] :is(.sidebar,.topbar,.daily-room-operations,[data-today-card-id],.gb-apartment-dialog,.gqa-scene)::after {animation:none!important;}
  }
  @media (forced-colors:active) {
    html:root[data-world='the-fuckening'] :is(.sidebar,.topbar,.daily-room-operations,[data-today-card-id],.gb-apartment-dialog,.gqa-scene)::after {display:none;}
  }
}

/* Reference correction: polished glass volume and light spilled onto the page.
   Shadows diffuse at every elevation; there are no zero-blur black offsets. */
@media screen {
 html:root[data-world='the-fuckening'][data-theme][data-mode] {
  --fg-amber:#efc66c;
  --fg-environment:radial-gradient(ellipse at 88% 15%,#a63c702e,transparent 52%),radial-gradient(ellipse at 5% 50%,#804e9b22,transparent 46%),radial-gradient(circle,#ae889622 .65px,transparent 1px) 0 0/5px 5px,var(--world-background);
 }
 html:root[data-world='the-fuckening'][data-mode='light'] {--fg-amber:#9b711b;}
 html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.app-shell,.workspace) {background:var(--fg-environment)!important;}
 html:root[data-world='the-fuckening'][data-theme][data-mode] .topbar {--fg-card-glow:var(--fg-pink);--fg-light-right:var(--fg-pink);height:auto!important;min-height:88px;padding:14px 18px;flex-wrap:wrap;gap:14px;align-content:center;}
 html:root[data-world='the-fuckening'][data-theme][data-mode] .top-actions {flex-wrap:wrap;max-width:100%;min-width:0;gap:8px;}
 html:root[data-world='the-fuckening'][data-theme][data-mode] [data-daily-operation='arrivals-remaining'] {--fg-card-glow:var(--fg-amber);}
 html:root[data-world='the-fuckening'][data-theme][data-mode] .sidebar {
  --fg-depth-rest:inset 0 1px 2px #fff9,inset 1px 0 2px #ffc4e3b3,inset -1px 0 2px #b8dce955,0 0 0 1px #d59cb755,0 0 0 5px #94537926,-5px 9px 4px 3px #82476859,-3px 4px 10px 5px #ac507c26,-7px 0 24px -7px #ef66ab80,8px 12px 30px -10px #70558440,0 18px 45px -12px #1a09198c,0 30px 70px -18px #09071080;
 }
 @layer surface-material.foundation {
  html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view :is(.panel,.daily-room-operations,.metric):not(:where(.print-preview-sheet *,#print-run-root *)),
  html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.sidebar,.topbar,.grimble-door) {
   background:radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--fg-card-glow) 12%,transparent),transparent 44%),linear-gradient(135deg,#ffffff19,transparent 47%),var(--surface-user-paint,var(--surface-panel))!important;
   border-color:color-mix(in srgb,var(--fg-card-glow) 45%,var(--fg-edge))!important;
  }
  html:root[data-world='the-fuckening'][data-theme][data-mode='dark'] #app-view .view :is(.panel,.daily-room-operations,.metric):not(:where(.print-preview-sheet *,#print-run-root *)),
  html:root[data-world='the-fuckening'][data-theme][data-mode='dark'] :is(.sidebar,.topbar,.grimble-door) {
   --surface-panel:#17191de8;--surface-card:#17191de8;
  }
 }
 @layer theme-studio {
  html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view :is(.panel,.daily-room-operations):not(:where(.print-preview-sheet *,#print-run-root *)) {border-radius:18px!important;}
  html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .metric {border-radius:9px!important;}
  html:root[data-world='the-fuckening'][data-theme][data-mode] .sidebar {border-radius:22px!important;}
  html:root[data-world='the-fuckening'][data-theme][data-mode] .topbar {border-radius:16px!important;}
 }
 /* Bright upper-left glass reflection and a softer opposing colored bevel. */
 html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.sidebar,.topbar,.daily-room-operations,[data-today-card-id],.gb-apartment-dialog,.gqa-scene)::after {
  padding:1.5px 1px 1px 3px;background:linear-gradient(125deg,#fffd,color-mix(in srgb,var(--fg-card-glow) 75%,white) 6%,#ffffff26 28%,transparent 48%,color-mix(in srgb,var(--fg-card-glow) 45%,transparent) 78%,#ffffff33);
 }
 html:root[data-world='the-fuckening'][data-theme][data-mode] .daily-room-operations::after {background:linear-gradient(125deg,#e8ffbf,var(--fg-green) 12%,#ffffff26 36%,var(--fg-pink) 69%,#e7bf7955 90%,var(--fg-green));}
 html:root[data-world='the-fuckening'][data-theme][data-mode] .grimble-door {--fg-card-glow:#e5a971;--fg-light-right:var(--fg-plum);}
 html:root[data-world='the-fuckening'] .fuckening-caption::before {box-shadow:0 0 7px #ff78b3,0 0 20px #ff78b399;}
 @media (min-width:701px) and (max-width:1100px) {
  html:root[data-world='the-fuckening'][data-theme][data-mode] .topbar .top-actions {flex-basis:100%;}
 }
 @media (max-width:700px) {
  html:root[data-world='the-fuckening'][data-theme][data-mode] .topbar {min-height:94px;padding:12px;gap:10px;}
 }
 @media (prefers-reduced-transparency:reduce) {@layer surface-material.foundation {
  html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view :is(.panel,.daily-room-operations,.metric),html:root[data-world='the-fuckening'][data-theme][data-mode] :is(.sidebar,.topbar) {background:var(--world-surface)!important;}
 }}
}


/* Source: the-fuckening-electric.css */
/* The Fuckening renderer for the shared Atmosphere & Depth controls. Each
   discharge exists for 175–490ms; the quiet perimeter has no looping motion. */
@media screen {
 html:root[data-world='the-fuckening'][data-theme][data-mode] {
  --fg-depth-strength:var(--ad-depth,.9);--fg-light-strength:var(--ad-glow,.82);
  --fg-space-base:#101014;
  --fg-space: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27160%27%20height%3D%27160%27%3E%3Cpath%20d%3D%27M158%205h.7%20M32%2095h.7%20M146%209h.7%20M52%20131h.7%20M6%20109h.7%20M136%2071h.7%20M154%2081h.7%20M156%2011h.7%20M110%2021h.7%20M112%20111h.7%20M130%2057h.7%20M4%2083h.7%20M118%20125h.7%20M88%20119h.7%20M42%20129h.7%20M12%20123h.7%20M62%20133h.7%20M128%20127h.7%20M50%20105h.7%20M116%2035h.7%20M6%2013h.7%20M72%2071h.7%20M154%20145h.7%20M28%2011h.7%20M110%2053h.7%20M16%20143h.7%20M34%20153h.7%20M4%2051h.7%20M150%2029h.7%20M56%20151h.7%20M42%2033h.7%20M12%2059h.7%20M158%2037h.7%20M32%2031h.7%20M18%20105h.7%20M148%2035h.7%20M102%2045h.7%20M136%20135h.7%20M154%2017h.7%20M60%2043h.7%20M78%2085h.7%20M16%2047h.7%20M34%20121h.7%20M36%2051h.7%20M150%2029h.7%20M120%2023h.7%20M42%20129h.7%20M140%2059h.7%20M30%2069h.7%20M32%20159h.7%20M82%209h.7%20M52%2035h.7%20M6%2045h.7%20M136%207h.7%20M58%2017h.7%20M92%2075h.7%20M78%20117h.7%20M16%2015h.7%20M130%20121h.7%20M132%2019h.7%20M22%2061h.7%20M56%2087h.7%20M42%2097h.7%20M12%20155h.7%20M62%205h.7%20M64%2095h.7%20M18%20105h.7%20M116%2035h.7%20M102%2013h.7%20M72%20135h.7%20M58%2017h.7%20M92%2043h.7%20M14%20149h.7%20M48%2079h.7%20M34%20153h.7%20M100%2051h.7%20M118%20125h.7%20M88%2023h.7%20M42%2065h.7%20M44%20123h.7%20M30%2037h.7%20M32%2063h.7%20M18%2073h.7%20M116%2067h.7%20M6%2045h.7%20M40%207h.7%20M90%2017h.7%20M124%20139h.7%20M14%20149h.7%20M80%2047h.7%20M34%2057h.7%20M4%2083h.7%20M150%2093h.7%20M24%2087h.7%20M138%2097h.7%20M12%20155h.7%20M126%2069h.7%20M0%20127h.7%20M146%2041h.7%20M148%2067h.7%20M134%2077h.7%20M72%207h.7%20M26%20145h.7%20M156%2043h.7%20M46%2053h.7%20M80%20111h.7%20M34%20153h.7%20M4%2019h.7%20M118%20157h.7%20M24%2087h.7%20M74%2065h.7%20M108%2059h.7%20M126%2069h.7%20M64%2031h.7%20M18%20137h.7%20M84%2067h.7%20M38%2013h.7%20M40%2039h.7%20M122%2049h.7%20M92%2043h.7%27%20stroke%3D%27%23d9c6d2%27%20stroke-opacity%3D%27.045%27%20stroke-width%3D%27.6%27%2F%3E%3C%2Fsvg%3E") 0 0/160px 160px,
   radial-gradient(circle,#ccb1c01a .6px,transparent .95px) 0 0/6px 6px,
   radial-gradient(ellipse 78vw 70vh at 108% 10vh,#77304452,transparent 76%),
   radial-gradient(ellipse 75vw 95vh at -12% 62vh,#59316b45,transparent 78%),
   linear-gradient(90deg,#b4517a0f,transparent 24%,transparent 76%,#e881ab0c),
   radial-gradient(ellipse 60vw 80vh at 52% 38vh,#08090d80,transparent 80%),
   linear-gradient(112deg,#171019,#101014 38%,#101014 64%,#23131f);
 }
 @layer surface-material.foundation {
  html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view.app-shell {background:var(--fg-space),var(--fg-space-base)!important;}
  html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .workspace {background:transparent!important;}
  html:root[data-world='the-fuckening'][data-theme][data-mode] #dashboard-view {background:none!important;}
 }
 html:root[data-world='the-fuckening'][data-theme][data-mode='light'] {--fg-space-base:#e9e1e4;--fg-space:radial-gradient(ellipse at 100% 0,#a8497014,transparent 70%),radial-gradient(circle,#6b47551a .6px,transparent .95px) 0 0/6px 6px,linear-gradient(120deg,#eee6e9,#e9e1e4);}
 html:root[data-world='the-fuckening'][data-theme][data-mode] .fg-glass {
  isolation:isolate;--fg-edge-x:4px;--fg-edge-y:5px;
  --fg-edge-material:color-mix(in srgb,var(--world-surface) 78%,var(--world-deep));
  --fg-lift:calc(var(--ad-rise,3.6px) * -1);
  --fg-contact:0 3px 6px -2px rgb(0 0 0 / calc(var(--fg-depth-strength) * .58));
  --fg-directional:8px 12px 18px -6px rgb(0 0 0 / calc(var(--fg-depth-strength) * .64));
  --fg-ambient:0 23px 40px -12px rgb(0 0 0 / calc(var(--fg-depth-strength) * .62)),0 5px 22px -7px rgb(0 0 0 / calc(var(--fg-depth-strength) * .22));
  --fg-depth-rest:inset 0 1px 1px #ffffff75,inset 1px 0 1px color-mix(in srgb,var(--fg-card-glow) 32%,transparent),inset 0 -1px 1px #ffffff15,var(--fg-contact),var(--fg-directional),var(--fg-ambient)!important;
  --fg-depth-hover:inset 0 1px 2px #ffffff9c,0 6px 10px -3px rgb(0 0 0 / calc(var(--fg-depth-strength) * .65)),11px 18px 25px -8px rgb(0 0 0 / calc(var(--fg-depth-strength) * .7)),0 31px 52px -13px rgb(0 0 0 / calc(var(--fg-depth-strength) * .7))!important;
  --fg-depth-press:inset 0 1px 1px #ffffff8c,0 2px 5px -2px rgb(0 0 0 / calc(var(--fg-depth-strength) * .49)),4px 5px 9px -4px rgb(0 0 0 / calc(var(--fg-depth-strength) * .44)),0 11px 20px -9px rgb(0 0 0 / calc(var(--fg-depth-strength) * .49))!important;
 }
 html:root[data-world='the-fuckening'][data-theme][data-mode='dark'] .fg-glass {--fg-edge-material:#241b28;--surface-panel:color-mix(in srgb,#181a20 var(--ad-solid,82%),transparent);--surface-card:var(--surface-panel);}
 html:root[data-world='the-fuckening'][data-theme][data-mode] .fg-glass[data-fg-level='sidebar'] {
  position:fixed;--fg-edge-x:5px;--fg-edge-y:6px;
  --fg-contact:0 5px 9px -3px rgb(0 0 0 / calc(var(--fg-depth-strength) * .65));
  --fg-directional:13px 18px 27px -8px rgb(0 0 0 / calc(var(--fg-depth-strength) * .78));
  --fg-ambient:0 31px 58px -12px rgb(0 0 0 / calc(var(--fg-depth-strength) * .82)),0 0 30px -8px rgb(0 0 0 / calc(var(--fg-depth-strength) * .35));
 }
 html:root[data-world='the-fuckening'][data-theme][data-mode] .fg-glass[data-fg-level='tile'] {
  --fg-edge-x:3px;--fg-edge-y:4px;
  --fg-contact:0 2px 4px -1px rgb(0 0 0 / calc(var(--fg-depth-strength) * .55));
  --fg-directional:4px 6px 10px -3px rgb(0 0 0 / calc(var(--fg-depth-strength) * .58));
  --fg-ambient:0 12px 18px -7px rgb(0 0 0 / calc(var(--fg-depth-strength) * .5));
  --fg-depth-hover:inset 0 1px 1px #ffffffa6,0 5px 8px -3px rgb(0 0 0 / calc(var(--fg-depth-strength) * .56)),6px 9px 14px -5px rgb(0 0 0 / calc(var(--fg-depth-strength) * .56)),0 17px 24px -9px rgb(0 0 0 / calc(var(--fg-depth-strength) * .67))!important;
 }
 html:root[data-world='the-fuckening'][data-theme][data-mode] .fg-glass::after {animation:none!important;opacity:.16!important;}
 html:root[data-world='the-fuckening'][data-theme][data-mode] .fg-glass:where(.panel,.daily-room-operations,.metric,.grimble-door,.ad-preview-card) {position:relative;}
 html:root[data-world='the-fuckening'][data-theme][data-mode] .fg-glass:not(.gqa-scene,dialog) {overflow:visible;}
 html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .fg-glass>.fg-decoration {max-height:none!important;transform:none;overflow:visible;}
 html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .fg-glass>.fg-edge-depth {opacity:1;}
 html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .fg-glass>.fg-electric {opacity:1;}
 html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .fg-glass>.fg-front-reflection {opacity:0;}
 .fg-decoration {position:absolute;pointer-events:none!important;user-select:none;}
 .fg-edge-depth {inset:0;z-index:-1;box-sizing:border-box;border-radius:inherit;border-right:var(--fg-edge-x) solid color-mix(in srgb,var(--fg-card-glow) 10%,var(--fg-edge-material));border-bottom:var(--fg-edge-y) solid color-mix(in srgb,var(--fg-card-glow) 6%,var(--fg-edge-material));translate:var(--fg-edge-x) var(--fg-edge-y);box-shadow:inset -1px -1px 1px color-mix(in srgb,var(--fg-card-glow) 24%,transparent);}
 .fg-edge-depth::after {content:'';position:absolute;inset:0;border-radius:inherit;border-style:solid;border-width:0 var(--fg-edge-x) var(--fg-edge-y) 0;border-color:var(--fg-card-glow);mask-image:radial-gradient(circle 65px at var(--fg-strike-x) var(--fg-strike-y),#000,transparent);opacity:0;}
 html[data-world='the-fuckening'] .fg-glass>.fg-electric {inset:0;z-index:1;width:100%;height:100%;overflow:visible;opacity:1;}
 .fg-rest-rim {fill:none;stroke:var(--fg-card-glow);stroke-width:.7;opacity:calc(.12 + var(--fg-light-strength) * .14);}
 .fg-discharge {opacity:0;animation:fg-discharge-flash var(--fg-burst-duration) linear both;}
 .fg-arc,.fg-arc-branch,.fg-arc-bloom,.fg-arc-spark {fill:none;stroke:var(--fg-card-glow);stroke-linecap:butt;stroke-linejoin:miter;}
 .fg-arc {stroke-width:1.1;stroke-dasharray:260;animation:fg-discharge-race var(--fg-burst-duration) cubic-bezier(.12,.8,.3,1) both;}
 .fg-arc-bloom {stroke-width:5;opacity:.7;filter:blur(2.3px);}
 .fg-arc-core {fill:#fff;opacity:.96;}
 .fg-arc-branch {stroke-width:.65;opacity:.88;}
 .fg-arc-spark {stroke:#fff;stroke-width:.7;animation:fg-spark-drift var(--fg-burst-duration) ease-out both;}
 .fg-front-reflection {inset:2px;z-index:0;border-radius:inherit;opacity:0;background:radial-gradient(ellipse 105px 45px at var(--fg-strike-x) var(--fg-strike-y),color-mix(in srgb,var(--fg-card-glow) 23%,transparent),transparent 76%);}
 .fg-glass[data-fg-discharging]>.fg-front-reflection {animation:fg-discharge-reflect var(--fg-burst-duration) ease-out both;}
 .fg-glass[data-fg-discharging]>.fg-edge-depth::after {animation:fg-discharge-reflect var(--fg-burst-duration) ease-out both;}
 @keyframes fg-discharge-flash {0%{opacity:0}9%{opacity:calc(var(--fg-light-strength) * var(--fg-burst-strength))}22%{opacity:calc(var(--fg-light-strength) * .38)}29%{opacity:calc(var(--fg-light-strength) * var(--fg-burst-strength))}58%{opacity:calc(var(--fg-light-strength) * .65)}100%{opacity:0}}
 @keyframes fg-discharge-race {from{stroke-dashoffset:260}26%{stroke-dashoffset:200}48%,100%{stroke-dashoffset:0}}
 @keyframes fg-discharge-reflect {0%,100%{opacity:0}16%,32%{opacity:calc(var(--fg-light-strength) * .56)}58%{opacity:calc(var(--fg-light-strength) * .2)}}
 @keyframes fg-spark-drift {0%,24%{opacity:0;transform:translate(0,0)}34%{opacity:1}100%{opacity:0;transform:translate(var(--fg-spark-x),var(--fg-spark-y))}}
 @media(hover:hover) and (pointer:fine){html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .view .fg-glass:not(:has(.fg-glass:hover)):hover {transform:perspective(1400px) rotateX(calc(var(--ad-tilt,1.925deg) * .35));}}
 html:root[data-world='the-fuckening'][data-theme][data-mode] .fg-glass {transition:translate 190ms var(--fg-depth-ease),transform 190ms var(--fg-depth-ease),box-shadow 220ms var(--fg-depth-ease);}
 html:root[data-world='the-fuckening'][data-theme][data-mode] .fg-glass:active {transform:none;}
 html[data-world='the-fuckening'] .fg-glass>:is(.ad-light,.ad-sheen,.ad-glass) {display:none!important;}
 @layer surface-material.foundation {
  html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .fg-glass,html:root[data-world='the-fuckening'][data-theme][data-mode] .ad-preview-card.fg-glass {box-shadow:var(--fg-depth-rest)!important;}
  html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .fg-glass:focus-within {box-shadow:var(--fg-depth-hover)!important;}
  @media(hover:hover) and (pointer:fine){html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .fg-glass:hover:not(:has(.fg-glass:hover)) {box-shadow:var(--fg-depth-hover)!important;}}
  html:root[data-world='the-fuckening'][data-theme][data-mode] #app-view .fg-glass:active:not(:has(.fg-glass:active,input:focus,textarea:focus,select:focus)) {box-shadow:var(--fg-depth-press)!important;}
 }
 html[data-world='the-fuckening'][data-ad-enabled='false'] {--fg-depth-strength:0;}
 html[data-world='the-fuckening'][data-ad-enabled='false'] .fg-edge-depth {opacity:0!important;}
 html[data-world='the-fuckening'][data-ad-enabled='false'] .fg-glass {--fg-lift:0px;transform:none!important;}
 html[data-world='the-fuckening'] :is(dialog.fg-glass,.gqa-scene.fg-glass)>.fg-edge-depth {translate:0 0;z-index:1;}
 html[data-world='the-fuckening'][data-fg-paused='true'] :is(.fg-discharge,.fg-front-reflection) {animation:none!important;opacity:0!important;}
 html[data-world='the-fuckening'][data-decorative-animations='off'] .fg-glass {transform:none!important;}
 @media(prefers-reduced-motion:reduce){html[data-world='the-fuckening'] :is(.fg-discharge,.fg-front-reflection) {animation:none!important;opacity:0!important;}html[data-world='the-fuckening'] .fg-glass {transform:none!important;}}
 @media(forced-colors:active){.fg-decoration{display:none!important;}}
}
@media print {.fg-decoration{display:none!important;}}
@media screen {
 html[data-world='the-fuckening'] .ad-preview-card.fg-glass {--fg-card-glow:var(--fg-pink);}
 @layer surface-material.foundation {
  html:root[data-world='the-fuckening'][data-theme][data-mode] .ad-preview-card.fg-glass {background:var(--surface-panel)!important;border-color:color-mix(in srgb,var(--fg-pink) 35%,var(--fg-edge))!important;}
 }
}


/* Source: grimble-header.css */
/* Theme-only mascot branding. The existing sidebar toggle retains its position. */
html[data-world='the-fuckening'] .sidebar.has-grimble-brand > .brand{display:none!important}
html:not([data-world='the-fuckening']) .grimble-brand{display:none!important}
html[data-world='the-fuckening'] .grimble-brand{contain:layout style;flex:none;height:auto;margin:36px 0 16px;overflow:visible;min-width:0;max-width:100%;color:#f5e9f3}
html[data-world='the-fuckening'] .gh-door{position:relative;isolation:isolate;display:grid;grid-template-columns:72px minmax(0,1fr);gap:6px;align-items:center;box-sizing:border-box;width:100%;min-width:0;height:112px;min-height:0;padding:10px 9px 10px 2px;border:0!important;border-radius:20px!important;background:radial-gradient(ellipse at 15% 40%,#c461b41b,transparent 65%),linear-gradient(135deg,#ffffff0b,transparent 55%),#211d27dd!important;color:#f7eaf4!important;box-shadow:inset 0 1px 1px #f5d8ff24,inset 0 -2px 4px #09070c55,0 6px 14px #08060b35,0 12px 28px -15px #da66b66b,0 2px 18px -7px #925fc670!important;transform:none;text-align:left;font-family:system-ui,sans-serif;cursor:pointer;transition:translate .2s,filter .2s}
html[data-world='the-fuckening'] .gh-portrait{display:grid;place-items:center;width:72px;height:86px;filter:drop-shadow(0 0 9px #d16bb354) drop-shadow(0 5px 7px #110a2070)}
html[data-world='the-fuckening'] .gh-portrait svg{width:72px;height:80px;overflow:visible;animation:gh-idle 9s ease-in-out infinite}
html[data-world='the-fuckening'] .gh-copy{display:grid;gap:7px;min-width:0;max-width:100%}
html[data-world='the-fuckening'] .gh-copy strong{display:block;font:700 14px/1.15 Georgia,serif;letter-spacing:.13em;color:#f7e7f1!important;text-shadow:0 2px 7px #dc80ca40}
html[data-world='the-fuckening'] .gh-meter-row{display:flex;align-items:center;gap:6px;min-width:0}
html[data-world='the-fuckening'] .gh-track{height:5px;flex:1;min-width:12px;max-width:62px;border-radius:8px;background:#100d18;box-shadow:inset 0 1px 3px #0005;overflow:visible}
html[data-world='the-fuckening'] .gh-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#a986cb,#ec9bc6);box-shadow:0 0 8px #dd88bf5c;animation:gh-pulse 6s ease-in-out infinite}
html[data-world='the-fuckening'] .gh-meter-row output{font:600 11px/1.2 system-ui,sans-serif;color:#eed2ed;white-space:nowrap}
html[data-world='the-fuckening'] .gh-status{display:block;min-width:0;font:11px/1.4 system-ui,sans-serif;color:#d6bbd3!important;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:2.8em}
html[data-world='the-fuckening'] .gh-door:is(:focus-visible,:focus){outline:3px solid #efc4e8!important;outline-offset:3px}
html[data-world='the-fuckening'] .gh-portrait .gb-head{transform-box:fill-box;transform-origin:50% 85%;animation:gh-tilt 19s ease-in-out infinite}
html[data-world='the-fuckening'] .gh-portrait .gb-eyes{transform-box:fill-box;transform-origin:center;animation:gh-blink 11s linear infinite}
html[data-world='the-fuckening'] .grimble-brand[data-reacting='true'] .gh-portrait .gb-head{transform:rotate(-7deg);animation:none}
@media(hover:hover){html[data-world='the-fuckening'] .gh-door:hover{translate:0 -2px;filter:brightness(1.12)}html[data-world='the-fuckening'] .gh-door:hover .gb-head{animation:none;transform:rotate(6deg)}}
@media(min-width:701px){html[data-world='the-fuckening'][data-sidebar='collapsed'] .grimble-brand{margin:38px 0 12px}html[data-world='the-fuckening'][data-sidebar='collapsed'] .gh-door{display:grid;grid-template-columns:1fr;height:64px;padding:0;border-radius:17px!important}html[data-world='the-fuckening'][data-sidebar='collapsed'] .gh-copy{display:none}html[data-world='the-fuckening'][data-sidebar='collapsed'] .gh-portrait{width:100%;height:62px}html[data-world='the-fuckening'][data-sidebar='collapsed'] .gh-portrait svg{width:52px;height:60px}html[data-world='the-fuckening'][data-sidebar='collapsed'] .gh-portrait :is(.gb-arm,.gb-mug,.gb-prop,.gb-feet){visibility:hidden}}
/* Mobile retains the app's existing topbar access; the bottom navigation dock stays compact. */
@media(max-width:700px){html[data-world='the-fuckening'] .grimble-brand{display:none}}
@keyframes gh-idle{0%,100%{translate:0 0}50%{translate:0 -2px}}
@keyframes gh-tilt{0%,65%,85%,100%{rotate:0deg}72%,78%{rotate:-4deg}}
@keyframes gh-blink{0%,42%,44%,93%,95%,100%{scale:1 1}43%,94%{scale:1 .08}}
@keyframes gh-pulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.2)}}
html[data-world='the-fuckening'] .grimble-brand[data-animate='false'] *,html[data-world='the-fuckening'][data-decorative-animations='off'] .grimble-brand *{animation:none!important;transition:none!important;translate:none!important;rotate:none!important}
@media(prefers-reduced-motion:reduce){html[data-world='the-fuckening'] .grimble-brand *{animation:none!important;transition:none!important;translate:none!important;rotate:none!important}}
@media(forced-colors:active){html[data-world='the-fuckening'] .gh-door{border:1px solid ButtonText!important}html[data-world='the-fuckening'] .gh-track i{background:Highlight}}

@media(max-width:700px){html[data-world='the-fuckening'] .grimble-mobile-entry{display:inline-flex;align-items:center;gap:4px;max-width:110px;white-space:nowrap}html[data-world='the-fuckening'] .gh-mobile-face{display:block;width:28px;height:30px;flex:none;filter:drop-shadow(0 0 5px #d775ad60)}html[data-world='the-fuckening'] .gh-mobile-face svg{display:block;width:28px;height:30px}}
@media(min-width:701px){html[data-world='the-fuckening'][data-sidebar='collapsed'] .gh-portrait svg{overflow:hidden}}

/* Use the current production character rig without altering its apartment behavior. */
html[data-world='the-fuckening'] .gh-portrait .gr-rig{width:72px;height:80px}
html[data-world='the-fuckening'] .grimble-brand[data-animate='true'] .gh-portrait .gr-head{animation:gh-tilt 19s ease-in-out infinite!important}
html[data-world='the-fuckening'] .grimble-brand[data-animate='true'] .gh-portrait .gr-blink{animation:gr-blink 11s ease-in-out infinite!important}
@media(hover:hover){html[data-world='the-fuckening'] .gh-door:hover .gr-head{rotate:5deg}}
html[data-world='the-fuckening'] .grimble-brand[data-reacting='true'] .gh-portrait .gr-head{rotate:-5deg}
@media(min-width:701px){html[data-world='the-fuckening'][data-sidebar='collapsed'] .gh-portrait .gr-rig{width:52px;height:60px}}
@media(prefers-reduced-motion:reduce){html[data-world='the-fuckening'] .grimble-brand[data-animate='true'] .gh-portrait :is(.gr-head,.gr-blink){animation:none!important;rotate:none!important}}

/* The mascot owns one soft shadow; avoid a second atmosphere tray beneath it. */
@layer surface-material.foundation{html:root[data-world='the-fuckening'][data-ad-enabled='true'][data-theme][data-mode][data-ad-preset] #app-view .sidebar .grimble-brand.ad-surface{box-shadow:none!important;background:transparent!important;border-radius:20px!important}}
html[data-world='the-fuckening'] .grimble-brand > :is(.ad-light,.ad-glass,.ad-sheen){display:none!important}


/* Source: smart-laundry.css */
/* Operational controls inherit every world's material and palette. */
#linen-view .smart-laundry{padding:12px 16px;color:var(--text);font-size:13px;min-width:0;}
#linen-view .smart-laundry h3{font-size:15px;margin:0 0 8px;}
#linen-view .smart-laundry p{margin:5px 0;line-height:1.5;}
#linen-view .smart-laundry small{color:var(--muted);font-size:12px;line-height:1.5;}
#linen-view .smart-laundry-summary{display:grid;grid-template-columns:minmax(220px,1fr) minmax(300px,1.6fr);gap:12px 24px;margin:8px 16px 12px;padding:14px 16px;}
#linen-view .smart-laundry-summary>details{grid-column:1/-1;}
#linen-view .smart-readiness>div,#linen-view .smart-laundry-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;}
#linen-view .smart-readiness-state{font-size:12px;font-weight:650;color:var(--text);border-bottom:2px solid var(--accent);padding:3px 0;}
#linen-view [data-readiness="At Risk"]{border-color:var(--badge-warning-line,var(--accent));}
#linen-view [data-readiness="Behind"]{border-color:var(--danger);}
#linen-view .smart-laundry label{display:grid;gap:5px;min-width:0;font-size:12px;}
#linen-view .smart-laundry :is(input,select){min-width:0;width:100%;box-sizing:border-box;min-height:38px;padding:6px 8px;font:inherit;}
#linen-view .smart-laundry input[type=checkbox]{width:19px;height:19px;min-height:19px;accent-color:var(--accent);}
#linen-view .smart-laundry :is(button,input,select):focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
#linen-view .smart-laundry :is(button,input,select):disabled{opacity:.65;cursor:not-allowed;}
#linen-view .smart-laundry details{padding:9px 0;border-top:1px solid var(--border-soft);}
#linen-view .smart-laundry summary{cursor:pointer;min-height:36px;align-content:center;font-weight:650;}
#linen-view .smart-laundry summary small{margin-left:6px;font-weight:400;}
#linen-view .smart-machine-row{display:grid;grid-template-columns:minmax(120px,2fr) minmax(90px,1fr) minmax(80px,1fr) minmax(140px,1fr) auto;gap:10px;align-items:end;padding:8px 0;}
#linen-view .smart-machine-row .smart-check{display:flex;gap:7px;align-items:center;min-height:38px;}
#linen-view .smart-recipe-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;}
#linen-view .smart-recipe-fields>label:last-child{grid-column:1/-1;}
#linen-view :is(.smart-quantity-grid,.smart-load-quantities){display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px 12px;margin:10px 0;}
#linen-view .smart-machine-compat{display:flex;gap:16px;flex-wrap:wrap;margin:10px 0;}
#linen-view .smart-machine-compat fieldset{border:0;margin:0;padding:0;display:flex;gap:10px;flex-wrap:wrap;}
#linen-view .smart-machine-compat label{display:flex;align-items:center;gap:6px;}
#linen-view .smart-machine-compat legend{font-size:12px;color:var(--muted);margin-bottom:5px;}
#linen-view .smart-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0;align-items:center;}
#linen-view .smart-actions select{width:auto;max-width:100%;}
#linen-view .smart-laundry .button{min-height:38px;padding:7px 10px;white-space:normal;}
#linen-view .smart-run{padding:10px 0;border-top:1px solid var(--border-soft);}
#linen-view .smart-run>div:first-child{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;}
#linen-view .smart-run>div:first-child span{color:var(--muted);}
#linen-view [data-smart-notice]{overflow-wrap:anywhere;}
#linen-view [data-smart-notice]:empty{display:none;}
#linen-view [data-smart-notice] button{margin:5px;}
#linen-view [data-smart-save-status]{font-size:12px;color:var(--muted);}
#linen-view .smart-add-recipe{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
#linen-view .smart-add-recipe select{width:auto;}
#linen-view .smart-legacy-load{display:grid;gap:6px;padding:8px 0;}
@media(max-width:700px){
 #linen-view .smart-laundry-summary{grid-template-columns:minmax(0,1fr);margin:8px 12px;gap:14px;}
 #linen-view .smart-machine-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;}
 #linen-view .smart-machine-row>label:first-child{grid-column:1/-1;}
 #linen-view .smart-machine-row .button{justify-self:start;}
 #linen-view .smart-recipe-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
 #linen-view .smart-recipe-fields>label:first-child{grid-column:1/-1;}
 #linen-view .smart-laundry :is(button,input:not([type=checkbox]),select){min-height:44px;}
 #linen-view .smart-laundry{padding:10px 12px;}
 #linen-view .smart-actions>*{flex:1 1 130px;}
}
@media print{#linen-view .smart-laundry :is(input,button,select,[data-smart-notice]){display:none;}#linen-view .smart-laundry-summary{display:block;}}
/* Machine capacities reuse the load library and its verified machine limits. */
#linen-view .smart-machine-config{padding:4px 0 10px;border-bottom:1px solid var(--border-soft);}
#linen-view .smart-machine-capacities{margin:0 0 0 6px;}
#linen-view .smart-machine-capacities>summary{font-size:13px;}
#linen-view .smart-capacity-list{display:grid;gap:8px;margin:8px 0;}
#linen-view .smart-capacity-entry{padding:8px 0;min-width:0;}
#linen-view .smart-capacity-entry>div:first-child{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;}
#linen-view .smart-capacity-entry>p{overflow-wrap:anywhere;}
#linen-view .smart-capacity-add{display:flex;align-items:end;gap:8px 12px;flex-wrap:wrap;}
#linen-view .smart-capacity-add>label{flex:1 1 180px;}
#linen-view .smart-capacity-editor{padding:8px 0;}
#linen-view .smart-capacity-location{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
@media(max-width:700px){#linen-view .smart-capacity-add>.button{flex:1 1 130px;}#linen-view .smart-machine-capacities{margin-left:0;}#linen-view .smart-capacity-entry .smart-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}}

#linen-view .smart-recommendation,#linen-view .smart-readiness{min-width:0;overflow-wrap:anywhere;}
#linen-view .smart-laundry .smart-confirm{display:flex;align-items:center;gap:8px;margin:8px 0;}
@media(max-width:360px){#linen-view .smart-load-quantities{grid-template-columns:minmax(0,1fr);}}

/* Laundry follows the current world palette and stays clear of bottom navigation. */
#laundry-mini-monitor{position:fixed;inset:auto;margin:0;z-index:1500;width:280px;max-width:calc(100vw - 24px);border:1px solid var(--border-soft,var(--border));border-radius:14px;background:var(--panel,var(--surface,#20252d));color:var(--text);box-shadow:0 8px 30px #0003;font:13px/1.45 system-ui;isolation:isolate;overflow:hidden;}
#laundry-mini-monitor header{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--border-soft);}
#laundry-mini-monitor header strong{flex:1;}
#laundry-mini-monitor button{font:inherit;color:var(--text);background:var(--surface,var(--panel));border:1px solid var(--border-soft,var(--border));border-radius:8px;min-width:32px;min-height:32px;padding:4px 8px;cursor:pointer;}
#laundry-mini-monitor button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
#laundry-mini-monitor [data-laundry-drag]{cursor:move;touch-action:none;}
#laundry-mini-monitor .laundry-monitor-body{padding:8px 12px;max-height:min(460px,55dvh);overflow:auto;overscroll-behavior:contain;}
#laundry-mini-monitor p{margin:4px 0 8px;overflow-wrap:anywhere;}
#laundry-mini-monitor small,#laundry-mini-monitor article>span{color:var(--muted);display:block;}
#laundry-mini-monitor article{border-bottom:1px solid var(--border-soft);padding:8px 0;}
#laundry-mini-monitor .laundry-monitor-alert:empty{display:none;}
#laundry-mini-monitor .laundry-monitor-alert{margin-top:8px;color:var(--text);border-left:2px solid var(--accent);padding-left:8px;}
#laundry-mini-monitor[data-mode=icon]{width:38px;border-radius:50%;}
#laundry-mini-monitor .laundry-monitor-icon{width:36px;height:36px;padding:0;border:0;border-radius:50%;position:relative;}
#laundry-mini-monitor .laundry-monitor-icon span{position:absolute;right:0;top:0;border-radius:10px;background:var(--accent);color:var(--text);font-size:10px;min-width:14px;}
#linen-view .smart-countdown{font-variant-numeric:tabular-nums;color:var(--text);font-weight:600;}
#linen-view .smart-day-queue article{padding:10px 0;border-bottom:1px solid var(--border-soft);}
#linen-view .smart-day-queue article>div{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;}
@media(max-width:700px){#laundry-mini-monitor{right:max(12px,env(safe-area-inset-right));bottom:calc(86px + env(safe-area-inset-bottom));width:230px;}#laundry-mini-monitor [data-laundry-drag]{display:none;}#laundry-mini-monitor button{min-height:36px;}}
@media print{#laundry-mini-monitor{display:none!important;}}


/* Source: light-environments.css */
/* Daylight layers complement native scenes and consume each theme's own palette. */
@media screen{@layer surface-material.foundation{
 html:root[data-mode='light'][data-theme][data-light-environment][data-light-environment-effects='on']:not(.has-photo-background) #app-view > .workspace{background-image:var(--le-base)!important;background-color:var(--world-background,var(--bg))!important}
}}
.le-environment{position:fixed!important;inset:0!important;z-index:0!important;pointer-events:none!important;overflow:hidden;contain:strict;isolation:isolate;opacity:var(--le-background,.7)}
.le-environment>span{position:absolute;pointer-events:none!important;inset:0;display:block}
.le-texture{background-image:var(--le-texture);background-size:var(--le-size);opacity:.7;mask-image:linear-gradient(135deg,#0007,transparent 44%,#0009)}
.le-light{background:radial-gradient(ellipse at var(--le-x) var(--le-y),color-mix(in srgb,var(--world-accent-secondary,var(--accent)) 16%,transparent),transparent 64%);opacity:var(--le-lighting,.5)}
.le-particles{inset:-20px!important;background-image:radial-gradient(circle,color-mix(in srgb,var(--world-accent) 25%,transparent) 0 1px,transparent 2px);background-size:calc(1.9 * var(--le-particle-gap,83px)) var(--le-particle-gap,83px);opacity:calc(var(--le-motion,.2) * .4)}
.le-environment .le-mark{inset:auto 3% 6% auto!important;width:clamp(110px,16vw,220px);height:clamp(110px,16vw,220px);mask-image:var(--le-mark);mask-size:contain;mask-repeat:no-repeat;background:linear-gradient(130deg,var(--world-accent),var(--world-accent-secondary));opacity:calc(var(--le-lighting,.5) * .12);rotate:-12deg}
.le-environment[data-motion='on'] .le-particles{animation:le-day-drift 45s ease-in-out infinite alternate}
.le-environment[data-effects='off']{display:none}
.le-environment[data-motif='rainbow'] .le-light{background:conic-gradient(from 210deg at 75% 15%,#e9b4d52b,#dfd0962b,#9bd7c82b,#a6c2f32b,#d5b7ef2b,transparent 60%)}
.le-environment[data-motif='clouds'] .le-light,.le-environment[data-motif='cloud-lace'] .le-light{background:radial-gradient(ellipse at 25% 28%,#ffffffa6,transparent 35%),radial-gradient(ellipse at 75% 12%,color-mix(in srgb,var(--world-accent-secondary) 16%,#fff),transparent 50%)}
.le-environment[data-motif='gothic-dots'] .le-texture{background-image:radial-gradient(circle,color-mix(in srgb,var(--world-accent) 25%,transparent) .6px,transparent 1px);background-size:7px 7px}
.le-environment[data-motif='candy'] .le-texture{background-image:repeating-linear-gradient(125deg,transparent 0 18px,color-mix(in srgb,var(--world-accent-secondary) 9%,transparent) 19px 35px)}
@keyframes le-day-drift{to{translate:0 14px}}
@media(max-width:700px){.le-particles{display:none!important}.le-environment .le-mark{width:90px;height:90px;opacity:calc(var(--le-lighting,.5) * .08)}}
@media(prefers-reduced-motion:reduce),(update:slow){.le-environment *{animation:none!important;transition:none!important}}
html.world-page-hidden .le-environment *,html[data-background-animations='off'] .le-environment *,html[data-decorative-animations='off'] .le-environment *{animation:none!important}
@media(forced-colors:active),(prefers-reduced-transparency:reduce){.le-environment{display:none!important}}
@media print{.le-environment{display:none!important}}
/* The editor previews its selected mode without changing the app's appearance. */
.ad-mode-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,1fr);gap:14px;align-items:end}.ad-mode-note{font-size:.85rem;color:var(--muted);grid-column:1/-1}
.ad-preview[data-ad-preview-mode='light']{background:var(--ad-preview-background,#e5edf5);color:var(--ad-preview-ink,#25324a)}
.ad-preview[data-ad-preview-mode='light'] .ad-preview-card{--panel:var(--ad-preview-surface,#f6faff);background:var(--ad-preview-surface,#f6faff)!important;color:var(--ad-preview-ink,#25324a)!important}
.ad-preview[data-ad-preview-mode='dark']{background:var(--ad-preview-background,#141724);color:var(--ad-preview-ink,#e8edf5)}
.ad-preview .ad-kicker{color:inherit;opacity:.8}
@media(max-width:600px){.ad-mode-row{grid-template-columns:1fr}}
.ad-preview{--surface-control:var(--ad-preview-surface);--surface-ink:var(--ad-preview-ink);--world-text:var(--ad-preview-ink)}
.ad-preview .ad-preview-card{background:var(--ad-preview-surface)!important;color:var(--ad-preview-ink)!important}


/* Source: little-elsewhere.css */
/* Little Elsewhere — one ink-and-paper vocabulary, scoped to this world.
   The drawing never supplies room state; operational semantics keep their paint. */
@font-face{font-family:"Elsewhere Headings";src:url('/fonts/studio/patrick-hand-42156e008d.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap;}
.le-route-icon{display:none;}
@media screen {
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode],.world-preview[data-world='little-elsewhere'],.world-choice[data-world-id='little-elsewhere']{
  --le-ink:#463039;--le-scene-ink:#463039;--le-paper:#fff9f1;--le-cream:#e7dfb6;--le-turquoise:#58b5af;--le-leaf:#a8d9a4;--le-sage:#97b99b;--le-peach:#f5b783;--le-coral:#d97869;--le-wood:#c19a79;--le-window:#58b5af;--le-roof:#68515c;--le-ground:#d4dc8e;--le-selection:#f8d77a;--le-window-light:#f8d77a;--le-sidebar:#e7dfb6;
  --le-paper-shadow:3px 4px 0 #46303938;--le-depth:.38;--le-glow:.28;--le-motion:.32;--le-lighting:.35;--le-background:1;--le-elevation:1.4px;--le-speed:38s;--le-paper-weight:100%;
  --surface-blur:0px;--surface-edge:var(--le-ink);--surface-shadow:var(--le-paper-shadow);--surface-hover-shadow:4px 5px 0 #46303938;--surface-floating-shadow:4px 5px 0 #46303938;--surface-modal-shadow:5px 7px 0 #46303966;
 }
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'],.world-preview[data-world='little-elsewhere'][data-mode='dark'],.world-choice[data-world-id='little-elsewhere'][data-mode='dark']{
  --le-ink:#e0cfb4;--le-scene-ink:#372c38;--le-paper:#b9d2cc;--le-cream:#9baf9d;--le-turquoise:#548e91;--le-leaf:#628d79;--le-sage:#548270;--le-peach:#d3a57b;--le-coral:#b7786e;--le-wood:#997b6b;--le-window:#f8d77a;--le-roof:#58606a;--le-ground:#496a58;--le-selection:#476061;--le-sidebar:#24484b;--le-paper-shadow:3px 4px 0 #0b242d88;
 }
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode][data-ad-enabled='true']{
  --le-depth:var(--ad-depth);--le-glow:var(--ad-glow);--le-motion:var(--ad-motion);--le-background:var(--ad-background);--le-lighting:var(--ad-lighting);--le-elevation:var(--ad-rise);--le-speed:calc(var(--ad-period) * 2.7);--le-paper-weight:var(--ad-solid);
  --le-paper-shadow:calc(var(--le-depth) * 7px) calc(var(--le-depth) * 9px) 0 color-mix(in srgb,var(--le-scene-ink) 30%,transparent),inset 0 1px 0 color-mix(in srgb,var(--le-window-light) calc(var(--le-glow) * 40%),transparent);
 }
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] :is(body,.workspace){background:var(--world-background)!important;}
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] .workspace{position:relative;isolation:isolate;}
 html[data-theme='little-elsewhere'] .workspace > .view{position:relative;z-index:1;}
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] :is(.world-atmosphere,.wd-host,.le-environment){display:none!important;}
 html[data-theme='little-elsewhere'] .le-scene{position:fixed;inset:0 0 0 var(--sidebar-width,260px);z-index:0;overflow:hidden;pointer-events:none!important;opacity:var(--le-background);contain:strict;}
 html[data-theme='little-elsewhere'][data-sidebar='collapsed'] .le-scene{left:86px;}
 .le-scene svg{position:absolute;pointer-events:none;}
 .le-cloud{fill:var(--le-paper);stroke:var(--le-scene-ink);stroke-width:2.8;stroke-linejoin:round;stroke-linecap:round;width:270px;opacity:.9;top:-52px;}
 .le-cloud-one{left:7%;transform:rotate(-4deg);}
 .le-cloud-two{right:-65px;top:55px;width:225px;transform:rotate(8deg);}
 .le-street,.le-story-visitors{bottom:0;left:0;width:100%;height:clamp(130px,19vw,245px);}
 .le-scene .le-window{fill:var(--le-window);}
 .le-night-sky{top:18px;left:0;width:100%;height:240px;display:none;}
 html[data-theme='little-elsewhere'][data-mode='dark'] .le-night-sky{display:block;}
 html[data-theme='little-elsewhere'][data-mode='dark'] .le-cloud{fill:#41656a;opacity:.55;}
 html[data-theme='little-elsewhere'][data-mode='dark'] :is(.le-scene,.le-icon) .le-window{filter:drop-shadow(0 0 calc(1px + var(--le-glow) * var(--le-lighting) * 7px) color-mix(in srgb,#f8d77a calc(var(--le-glow) * 80%),transparent));}
 html[data-theme='little-elsewhere'][data-background-animations='off'] .le-scene{display:none;}
 html[data-theme='little-elsewhere'][data-atmosphere='off'] .le-scene{opacity:0;}
 /* The same paper is used in forms, tables and room views. No glossy overlay. */
 @layer surface-material.foundation {
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] #app-view :is(.view,.sidebar) :is(.panel,.ops-panel,.hk-live-panel,.metric,.metric-card,.stat-card,.room-card:not(.arrival-tier):not(.early-tier):not(.finished),.ab-room,.ab-column,.pr-room,.room-list-row,.summary-room-row,.adaptive-room-card,[data-surface='card'],[data-surface='panel'],[data-surface='dense']){
   background:var(--surface-user-paint,color-mix(in srgb,var(--le-card-paper,var(--world-surface)) var(--le-paper-weight),var(--world-elevated)))!important;border:2px solid var(--le-ink)!important;border-radius:var(--world-radius)!important;box-shadow:var(--le-paper-shadow)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  }
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] #app-view .view :is(.panel,.ops-panel,.hk-live-panel) > :is(.panel-head,.ops-panel-head,.hk-live-head){background:transparent!important;border-bottom:2px solid color-mix(in srgb,var(--le-ink) 25%,transparent)!important;box-shadow:none!important;}
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] #app-view .view :is(.panel-head h2,.panel-head h3,.card-disclosure-toggle,.today-card-collapse-toggle,.panel-head-title-button){background:transparent!important;box-shadow:none!important;text-shadow:none!important;}
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] #app-view :is(.panel-body,.panel-head,.summary-grid) :is(h2,h3,p,small,strong,span):not(.badge):not([class*='badge']):not(.room-status):not(.arrival-badge):not(.room-number-label):not(.room-identity-surface){box-shadow:none!important;}
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] #app-view .view :is(.panel,.room-card,.metric,.ab-room,.pr-room){background-image:var(--le-grain)!important;background-size:126px 126px!important;}
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel,dialog.ad-dialog){background:var(--le-sidebar)!important;border:2px solid var(--le-ink)!important;box-shadow:var(--le-paper-shadow)!important;backdrop-filter:none!important;}
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] #app-view :is(input,select,textarea):not([type='checkbox']):not([type='radio']):not([type='color']):not([type='range']){background:var(--world-surface)!important;color:var(--world-text)!important;border:2px solid var(--le-ink)!important;border-radius:7px 10px 6px 8px!important;box-shadow:1px 2px 0 color-mix(in srgb,var(--le-scene-ink) 15%,transparent)!important;backdrop-filter:none!important;}
 }
 html[data-theme='little-elsewhere']{--le-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='126' height='126'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cpath fill='%23463039' opacity='.045' filter='url(%23p)' d='M0 0h126v126H0z'/%3E%3C/svg%3E");}
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] .panel > .panel-head::before{content:none!important;}
 html[data-theme='little-elsewhere'] :is(.panel,.ops-panel,.hk-live-panel,.room-card,.metric){text-shadow:none!important;}
 html[data-theme='little-elsewhere'] :is(.panel-head h2,.panel-head h3,.topbar h1){font-family:var(--fs-heading,"Elsewhere Headings",Georgia,serif);font-weight:400;letter-spacing:.015em;}
 html[data-theme='little-elsewhere'] :is(.room-number,[data-room] strong,.metric strong,.nav-count){font-family:system-ui,sans-serif;font-variant-numeric:tabular-nums;}
 html[data-theme='little-elsewhere'] .le-card-sign{display:inline-flex;vertical-align:middle;width:38px;height:38px;flex:0 0 38px;margin-inline-end:9px;}
 html[data-theme='little-elsewhere'] .le-card-sign .le-icon{width:38px;height:38px;}
 html[data-theme='little-elsewhere'] [data-le-building]{position:relative;}
 html[data-theme='little-elsewhere'] .le-card-eave{position:absolute;inset:0 0 auto;height:13px;overflow:hidden;border-radius:var(--world-radius);pointer-events:none;}
 html[data-theme='little-elsewhere'] .le-card-eave svg{display:block;width:100%;height:13px;}
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] .view .panel-head > .le-card-eave{position:absolute!important;inset:0 0 auto!important;display:block!important;height:13px!important;width:100%!important;margin:0!important;padding:0!important;}
 html[data-theme='little-elsewhere'] [data-le-building] > .panel-head{padding-top:20px;}
 html[data-theme='little-elsewhere'] [data-le-building='notice']{--le-card-roof:var(--le-turquoise);}
 html[data-theme='little-elsewhere'] [data-le-building='broom']{--le-card-roof:var(--le-leaf);}
 html[data-theme='little-elsewhere'] [data-le-building='toolbox']{--le-card-roof:var(--le-wood);}
 html[data-theme='little-elsewhere'][data-mode='light'] [data-le-building='cottage']{--le-card-paper:#e7dfb6;}
 html[data-theme='little-elsewhere'][data-mode='light'] [data-le-building='notice']{--le-card-paper:#f1dfc1;}
 html[data-theme='little-elsewhere'][data-mode='light'] [data-le-building='broom']{--le-card-paper:#e5e8c8;}
 html[data-theme='little-elsewhere'] [data-le-building] > .panel-head h3{display:flex;align-items:center;flex-wrap:wrap;}
 html[data-theme='little-elsewhere'] :is(.button,.sidebar-toggle){border:2px solid var(--le-ink);border-radius:var(--world-control);text-shadow:none;box-shadow:2px 2px 0 color-mix(in srgb,var(--le-scene-ink) 23%,transparent);transition:transform 140ms ease,box-shadow 140ms ease;}
 html[data-theme='little-elsewhere'] .button:not(.primary):not(.danger):not(.success):not([aria-pressed='true']){background:var(--world-elevated);color:var(--world-text);}
 html[data-theme='little-elsewhere'] .button.primary{background:var(--world-accent);color:var(--world-on-accent);}
 html[data-theme='little-elsewhere'] .button.danger{background:var(--world-danger);color:var(--world-deep);}
 html[data-theme='little-elsewhere'] .button:disabled{opacity:.5;box-shadow:none;transform:none;}
 html[data-theme='little-elsewhere'] :is(button,input,select,textarea,a):focus-visible{outline:3px solid var(--world-accent);outline-offset:3px;}
 /* A compact directory of painted shop signs; the shared rail owns width. */
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] .sidebar{background-image:var(--le-grain)!important;border-radius:9px 14px 10px 6px!important;}
 html[data-theme='little-elsewhere'] .sidebar .brand{border-bottom:0!important;padding-bottom:5px;}
 html[data-theme='little-elsewhere'] .sidebar .brand :is(strong,h1){font-family:var(--fs-heading,"Elsewhere Headings",Georgia,serif);letter-spacing:.03em;}
 html[data-theme='little-elsewhere'] .le-directory-art{height:24px;flex:0 0 24px;overflow:hidden;padding-inline:12px;pointer-events:none;}
 html[data-theme='little-elsewhere'] .le-directory-vine{display:block;width:100%;height:24px;}
 html[data-theme='little-elsewhere'][data-sidebar='collapsed'] .le-directory-art{padding:0;height:14px;flex-basis:14px;}
 html[data-theme='little-elsewhere'] .nav-environment{display:none!important;}
 html[data-theme='little-elsewhere'] .nav-selection-indicator{display:none!important;}
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] :is(.nav-item,.mobile-nav-sheet-item){position:relative;background:transparent!important;border:2px solid transparent!important;border-radius:8px 12px 7px 10px!important;box-shadow:none!important;min-height:46px;gap:9px;overflow:visible;transform:none;}
 html[data-theme='little-elsewhere'] .sidebar nav{gap:3px;}
 html[data-theme='little-elsewhere'] :is(.nav-item,.mobile-nav-sheet-item) .nav-label{font-size:14px;font-weight:600;line-height:1.25;color:var(--world-text);}
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] :is(.nav-item,.mobile-nav-sheet-item) > :is(span:first-child,.world-mobile-icon){width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;filter:none!important;animation:none!important;}
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] :is(.nav-item,.mobile-nav-sheet-item).active{background:var(--le-selection)!important;border:2px solid var(--le-ink)!important;box-shadow:2px 3px 0 color-mix(in srgb,var(--le-scene-ink) 25%,transparent)!important;}
 html[data-theme='little-elsewhere'] :is(.nav-item,.mobile-nav-sheet-item).active::after{content:'';position:absolute;inset:3px;border:1px solid color-mix(in srgb,var(--le-ink) 32%,transparent);border-radius:5px 8px 4px 7px;pointer-events:none;}
 html[data-theme='little-elsewhere'] :is(.nav-item,.mobile-nav-sheet-item).active .le-window{fill:var(--le-window-light);}
 html[data-theme='little-elsewhere'] .le-icon{width:34px;height:34px;display:block;overflow:visible;flex-shrink:0;filter:none;}
 html[data-theme='little-elsewhere'] .le-icon-object{transform-origin:24px 35px;}
 html[data-theme='little-elsewhere'] .le-check{stroke:var(--world-success);}
 html[data-theme='little-elsewhere'] .le-chart{stroke:var(--world-accent);}
 html[data-theme='little-elsewhere'] .le-route-icon{display:inline-block;width:24px;height:24px;vertical-align:middle;margin-inline-end:6px;}
 html[data-theme='little-elsewhere'] .linen-workspace-tabs [data-linen-mode]{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:0;}
 html[data-theme='little-elsewhere'] .navigation-glass-tooltip{background:var(--world-surface);color:var(--world-text);border:2px solid var(--le-ink);border-radius:6px 9px 5px 7px;box-shadow:2px 3px 0 #46303938;backdrop-filter:none;}
 html[data-theme='little-elsewhere'][data-sidebar='collapsed'] .sidebar :is(.nav-item,.sidebar-toggle){border-radius:7px 9px 6px 8px!important;}
 html[data-theme='little-elsewhere'] .ad-preview-card{background:var(--world-surface)!important;color:var(--world-text);border:2px solid var(--le-ink);border-radius:13px 9px 15px 8px;box-shadow:calc(var(--ad-depth) * 7px) calc(var(--ad-depth) * 9px) 0 #46303944!important;}
 html[data-theme='little-elsewhere'] .ad-preview-card :is(.ad-light,.ad-sheen,.ad-glass){display:none;}
 html[data-theme='little-elsewhere'] .ad-preview-card::after{content:'⌂';font-size:38px;color:var(--le-window-light);text-shadow:0 0 calc(var(--ad-glow) * 9px) #f8d77a;justify-self:end;}
 html[data-theme='little-elsewhere'] .le-smoke{opacity:calc(var(--le-motion) * .6);}
 /* All movement is native CSS, controlled by the existing shared switches. */
 html[data-theme='little-elsewhere'][data-ad-motion='on'] .le-cloud{animation:le-cloud-drift var(--le-speed) ease-in-out infinite alternate;}
 html[data-theme='little-elsewhere'][data-ad-motion='on'] .le-cloud-two{animation-delay:-20s;animation-direction:alternate-reverse;}
 html[data-theme='little-elsewhere'][data-ad-motion='on'] :is(.le-tree-leaves,.le-hanging-linen){transform-box:fill-box;transform-origin:50% 100%;animation:le-leaf-sway 7s ease-in-out infinite alternate;}
 html[data-theme='little-elsewhere'][data-ad-motion='on'] .le-hanging-linen{transform-origin:50% 0;animation-delay:-3s;}
 html[data-theme='little-elsewhere'][data-ad-motion='on'] .le-smoke{animation:le-smoke 9s ease-out infinite;}
 html[data-theme='little-elsewhere'][data-ad-motion='on'] :is(.nav-item,.mobile-nav-sheet-item,.button):is(:hover,:focus-visible) .le-icon-object{animation:le-object-hello 360ms ease-out;}
 html[data-theme='little-elsewhere'][data-ad-motion='on'] :is(.nav-item,.mobile-nav-sheet-item):is(:hover,:focus-visible) .le-icon-moving{transform-box:fill-box;transform-origin:50% 0;animation:le-sign-sway 400ms ease-out;}
 html[data-theme='little-elsewhere'][data-ad-motion='on'] :is(.nav-item,.mobile-nav-sheet-item):is(:hover,:focus-visible) .le-window{fill:var(--le-window-light);}
 html[data-theme='little-elsewhere'][data-ad-motion='off'] .le-scene *,html[data-theme='little-elsewhere'][data-decorative-animations='off'] .le-icon *{animation:none!important;}
 @media(hover:hover) and (pointer:fine){
  html[data-theme='little-elsewhere'][data-ad-motion='on'] .button:not(:disabled):hover{transform:translateY(calc(var(--le-elevation) * -.5));}
  html[data-theme='little-elsewhere'][data-ad-motion='on'] .view .panel:hover{translate:0 calc(var(--le-elevation) * -.25);rotate:calc(var(--ad-tilt,0deg) * .05);}
  html[data-theme='little-elsewhere'] .button:not(:disabled):active{transform:translate(1px,1px);box-shadow:none;}
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] :is(.nav-item,.mobile-nav-sheet-item):hover:not(.active){background:color-mix(in srgb,var(--le-leaf) 32%,var(--le-sidebar))!important;}
 }
 @media(max-width:700px){
  html[data-theme='little-elsewhere'] .le-scene,html[data-theme='little-elsewhere'][data-sidebar='collapsed'] .le-scene{left:0;}
  html[data-theme='little-elsewhere'] :is(.le-street,.le-story-visitors){height:122px;width:650px;left:50%;transform:translateX(-50%);}
  html[data-theme='little-elsewhere'] .le-cloud-one{width:160px;left:-20px;top:15px;}
  html[data-theme='little-elsewhere'] .le-cloud-two{display:none;}
  html[data-theme='little-elsewhere'] .le-night-sky{height:160px;width:700px;left:-240px;}
  html[data-theme='little-elsewhere'] .le-card-sign,html[data-theme='little-elsewhere'] .le-card-sign .le-icon{width:28px;height:28px;flex-basis:28px;}
  html[data-theme='little-elsewhere'] .le-directory-art{display:none;}
  html[data-theme='little-elsewhere'] .le-route-icon{width:22px;height:22px;}
  html[data-theme='little-elsewhere'] .linen-workspace-tabs [data-linen-mode]{flex-direction:column;gap:2px;line-height:1.25;white-space:normal;}
  html[data-theme='little-elsewhere'] .linen-workspace-tabs .le-route-icon{margin:0;width:22px;height:22px;}
  html[data-theme='little-elsewhere'] .mobile-nav-sheet-item{min-height:48px;}
 }
}
/* Keep floor navigation warm; bed filters echo the blue Queen / green King room markers. */
@media screen {
 html[data-theme='little-elsewhere'] .daily-floor-filters {--le-floor-bg:#e7dfb6;--le-floor-text:#463039;--le-queen-bg:#cceaff;--le-queen-text:#123e68;--le-king-bg:#bff2cf;--le-king-text:#104b28;}
 html[data-theme='little-elsewhere'][data-mode='dark'] .daily-floor-filters {--le-floor-bg:#51483c;--le-floor-text:#fff3d7;--le-queen-bg:#24465d;--le-queen-text:#cceaff;--le-king-bg:#294d3b;--le-king-text:#bff2cf;}
 @layer surface-material.foundation {
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] #app-view .daily-floor-filters .daily-floor-button {background:var(--le-floor-bg)!important;color:var(--le-floor-text)!important;}
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] #app-view .daily-floor-filters .daily-floor-button.bed-q {background:var(--le-queen-bg)!important;color:var(--le-queen-text)!important;}
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] #app-view .daily-floor-filters .daily-floor-button.bed-k {background:var(--le-king-bg)!important;color:var(--le-king-text)!important;}
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] #app-view .daily-floor-filters .daily-floor-button[aria-pressed='true'] {box-shadow:inset 0 0 0 2px currentColor!important;}
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode] #app-view .daily-floor-filters .daily-floor-button:is(:hover,:focus-visible) {outline:2px solid currentColor;outline-offset:-3px;}
}
}
@keyframes le-cloud-drift{from{translate:calc(var(--le-motion) * -20px) 0;}to{translate:calc(var(--le-motion) * 22px) 0;}}
@keyframes le-leaf-sway{from{rotate:calc(var(--le-motion) * -2deg);}to{rotate:calc(var(--le-motion) * 2deg);}}
@keyframes le-smoke{0%{translate:0 2px;opacity:0;}30%{opacity:calc(var(--le-motion) * .6);}100%{translate:calc(var(--le-motion) * 9px) -10px;opacity:0;}}
@keyframes le-object-hello{0%,100%{transform:rotate(0);}40%{transform:rotate(calc(var(--le-motion) * -9deg)) translateY(-.5px);}70%{transform:rotate(calc(var(--le-motion) * 4deg));}}
@keyframes le-sign-sway{0%,100%{rotate:0deg;}40%{rotate:calc(var(--le-motion) * 12deg);}70%{rotate:calc(var(--le-motion) * -7deg);}}
@keyframes elsewhere-paper-breathe{0%,100%{opacity:.12;}50%{opacity:.18;}}
@media(prefers-reduced-motion:reduce),(update:slow){html[data-theme='little-elsewhere'] :is(.le-scene *,.le-icon *,.button,.nav-item,.mobile-nav-sheet-item){animation:none!important;transition:none!important;translate:none!important;rotate:none!important;}}
@media(forced-colors:active){html[data-theme='little-elsewhere'] .le-scene,html[data-theme='little-elsewhere'] .le-directory-art{display:none;}html[data-theme='little-elsewhere'] .le-icon{forced-color-adjust:auto;stroke:CanvasText;}html[data-theme='little-elsewhere'] .le-icon *{fill:Canvas;stroke:CanvasText;}html[data-theme='little-elsewhere'] :is(.nav-item,.mobile-nav-sheet-item).active{outline:3px solid Highlight!important;}}
@media print{.le-scene,.le-directory-art,.le-card-sign,.le-route-icon{display:none!important;}}

/* Approved nocturnal teal study. Keep the daytime paper and all scene art intact.
   Shared depth/glow controls still scale the authored light and shadow. */
@media screen {
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark']{
  --le-night-panel:linear-gradient(145deg,#163e46ee 0%,#102e36f5 50%,#0e2931ed 100%);
  --le-night-rail:linear-gradient(110deg,#12343d 0%,#0b242d 68%,#102f37 100%);
  --le-night-control:linear-gradient(135deg,#214c55,#153942);
  --le-night-shadow:0 calc(var(--le-depth) * 24px) calc(var(--le-depth) * 54px) #000c,
   0 calc(var(--le-depth) * 5px) calc(var(--le-depth) * 15px) #00191fe6,
   0 0 calc(var(--le-glow) * 20px) #42b9be29,
   inset 0 1px 1px #fff2, inset 0 -1px 1px #0008;
  --surface-shadow:var(--le-night-shadow);--surface-floating-shadow:var(--le-night-shadow);--surface-modal-shadow:var(--le-night-shadow);
 }
 @layer surface-material.foundation {
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'] #app-view :is(.view,.sidebar) :is(.panel,.ops-panel,.hk-live-panel,.font-studio,.daily-room-operations,.today-assigned-progress,.summary-card,.config-card,.reference-guide-card,.dc-card,.pet-tracker-card,.pet-tracker-content,.ca-workspace,.pr-summary,.pr-common,.metric,.metric-card,.stat-card,.room-card:not(.arrival-tier):not(.early-tier):not(.finished),.ab-room,.ab-column,.pr-room,.room-list-row,.summary-room-row,.adaptive-room-card,[data-surface='card'],[data-surface='panel'],[data-surface='dense']){
   background:var(--surface-user-paint,var(--le-night-panel))!important;
   box-shadow:var(--le-night-shadow)!important;
  }
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'] #app-view .view :is(.panel,.room-card,.metric,.ab-room,.pr-room){background-image:var(--le-grain),var(--le-night-panel)!important;background-size:126px 126px,100% 100%!important;}
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet,.notification-panel,#laundry-mini-monitor,.tselect-popup,.tselect-floating,dialog:not(.print-preview),[role='dialog']:not(.print-preview),[data-surface='elevated']){
   background:var(--le-night-rail)!important;box-shadow:var(--le-night-shadow)!important;
  }
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'] .sidebar{background-image:var(--le-grain),var(--le-night-rail)!important;}
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'] #app-view :is(input,select,textarea,.tselect-trigger):not([type='checkbox']):not([type='radio']):not([type='color']):not([type='range']){
   background:var(--le-night-control)!important;border-width:1px!important;
   box-shadow:inset 0 1px 2px #b5f6eb14,0 3px 7px #0006!important;
  }
  html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'] #themes-view .appearance-settings > .panel-body{
   margin:16px 18px 18px;padding:16px;border:1px solid #28707b80;border-radius:12px;
   background:linear-gradient(135deg,#08252b66,#08212999);box-shadow:inset 0 1px 12px #0002,0 4px 14px #0003;
  }
 }
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'] :is(.nav-item,.mobile-nav-sheet-item).active{
  background:linear-gradient(135deg,#32717a,#1c505a)!important;border-color:#f8d77a!important;
  box-shadow:0 6px 15px #0009,0 0 calc(var(--le-glow) * 22px) #57d4cf55,inset 0 2px 4px #e7fff747,inset 0 -2px 4px #001c2977!important;
 }
 html[data-theme='little-elsewhere'][data-mode='dark'] :is(.nav-item,.mobile-nav-sheet-item).active::after{border-color:#a5e8dd77;}
 @layer surface-material.foundation {
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'] :is(.button:not(.danger):not(.success):not([data-theme-tuner-open]):not([data-ad-open]),.sidebar-toggle){
  background:var(--le-night-control)!important;color:var(--world-text)!important;box-shadow:0 4px 9px #0007,inset 0 1px 2px #d5fff526!important;
 }
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'] :is([data-theme-tuner-open],[data-ad-open],.world-segmented button[aria-pressed='true']){
  background:linear-gradient(135deg,#28646d,#174a53)!important;border-color:#62bdbb!important;box-shadow:0 5px 12px #0008,0 0 calc(var(--le-glow) * 14px) #42b9be33,inset 0 1px 3px #d8ffed33!important;
 }
 }
 html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'] .ad-preview-card{background:var(--le-night-panel)!important;box-shadow:var(--le-night-shadow)!important;}
 @media(max-width:700px){html[data-world='little-elsewhere'][data-theme='little-elsewhere'][data-mode='dark'] #themes-view .appearance-settings > .panel-body{margin:10px;padding:12px;}}
}


/* Source: little-elsewhere-life.css */
/* Motion only. The existing Little Elsewhere ink, palette, type and artwork
   remain the source of truth. Visitors are hidden outside their brief visits. */
@media screen {
 html[data-theme='little-elsewhere'] :is(.le-butterfly,.le-floating-leaf,.le-building-sparkle){opacity:0;pointer-events:none;}
 html[data-theme='little-elsewhere'] .le-scene .le-smoke{opacity:0;animation:none;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'] .le-tree-leaves{animation-name:le-visible-sway;animation-duration:var(--le-tree-period,11s);animation-delay:var(--le-tree-delay,-3s);}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'] .le-cloud-one{animation-name:le-visible-cloud;animation-duration:calc(var(--le-speed) * .38);animation-delay:-4s;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'] .le-cloud-two{animation-name:le-visible-cloud;animation-duration:calc(var(--le-speed) * .51);animation-delay:-11s;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'] .le-hanging-linen{animation-duration:8.3s;animation-delay:-5s;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'] .le-flower{transform-box:fill-box;transform-origin:50% 100%;animation:le-flower-notice var(--le-flower-period,27s) ease-in-out var(--le-flower-delay,-5s) infinite;}
 html[data-theme='little-elsewhere'][data-le-interface-motion='on'] .le-vine-sprig{transform-box:fill-box;transform-origin:50% 50%;animation:le-vine-breathe 9.3s ease-in-out -7s infinite alternate;}
 html[data-theme='little-elsewhere'][data-le-interface-motion='on'] :is(.nav-item,.mobile-nav-sheet-item){transition:background-color 180ms steps(3,end),border-color 160ms ease-out,box-shadow 160ms ease-out;}
 html[data-theme='little-elsewhere'][data-le-interface-motion='on'] :is([data-ge-tab],[data-management-view],[data-hotel-ops],[data-linen-mode]):is(:hover,:focus-visible) .le-icon-object{animation:le-object-hello 360ms ease-out;}
 html[data-theme='little-elsewhere'][data-le-interface-motion='on'] :is(.button,.sidebar-toggle):not(:disabled):active{transform:translate(1px,2px) rotate(-.25deg);box-shadow:none;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'] .le-scene[data-le-visit='butterflies'] .le-butterfly{animation:le-butterfly-path 7.5s ease-in-out both;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'] .le-scene[data-le-visit='butterflies'] .le-butterfly-two{animation-name:le-butterfly-return;animation-delay:.4s;animation-duration:6.7s;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'] .le-scene[data-le-visit='butterflies'] .le-wing{transform-box:fill-box;transform-origin:100% 50%;animation:le-wing-flutter .38s ease-in-out infinite alternate;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'] .le-scene[data-le-visit='butterflies'] .le-wing-right{transform-origin:0 50%;animation-delay:-.17s;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'] .le-scene[data-le-visit='leaves'] .le-floating-leaf{animation:le-leaf-wander 6.5s ease-in-out both;}
 html[data-theme='little-elsewhere'] .le-floating-leaf-1{animation-delay:.7s!important;}
 html[data-theme='little-elsewhere'] .le-floating-leaf-2{animation-delay:1.3s!important;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'][data-ad-lighting='on'] .le-scene[data-le-visit='windows'] .le-street .le-window{animation:le-neighbor-home 6s ease-in-out var(--le-window-delay,0s) both;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'][data-ad-lighting='on'] .le-scene[data-le-visit='sparkles'] .le-building-sparkle{transform-box:fill-box;transform-origin:center;animation:le-ink-spark 4.8s ease-in-out both;}
 html[data-theme='little-elsewhere'] .le-building-sparkle-1{animation-delay:.7s!important;}
 html[data-theme='little-elsewhere'] .le-building-sparkle-2{animation-delay:1.4s!important;}
 html[data-theme='little-elsewhere'] .le-building-sparkle-3{animation-delay:2s!important;}
 html[data-theme='little-elsewhere'][data-le-world-motion='on'] .le-scene[data-le-visit='smoke'] .le-smoke{animation:le-chimney-puff 7s ease-out both;}
 html[data-theme='little-elsewhere'][data-le-world-motion='off'] .le-scene *{animation:none!important;}
 html[data-theme='little-elsewhere'][data-le-interface-motion='off'] :is(.le-vine-sprig,.le-icon-object,.button,.sidebar-toggle,.nav-item,.mobile-nav-sheet-item,.view .panel){animation:none!important;transition:none!important;translate:none!important;rotate:none!important;transform:none!important;}
 /* Keep the phone cloud in the open sky below the opaque header. */
 @media(max-width:700px){html[data-theme='little-elsewhere'] .le-cloud-one{top:140px;left:auto;right:-75px;width:160px;}html[data-theme='little-elsewhere'] :is(.le-butterfly-two,.le-floating-leaf-2,.le-building-sparkle-3){display:none;}}
}
@keyframes le-visible-cloud{from{translate:calc(var(--le-motion) * -90px) 0;}to{translate:calc(var(--le-motion) * 90px) 0;}}
@keyframes le-visible-sway{from{rotate:calc(var(--le-motion) * -9deg);}to{rotate:calc(var(--le-motion) * 9deg);}}
@keyframes le-flower-notice{0%,72%,100%{rotate:0deg;translate:0 0;}80%{rotate:calc(var(--le-motion) * -7deg);translate:0 calc(var(--le-motion) * -2px);}90%{rotate:calc(var(--le-motion) * 4deg);translate:0 0;}}
@keyframes le-vine-breathe{from{rotate:calc(var(--le-motion) * -7deg);}to{rotate:calc(var(--le-motion) * 7deg);}}
@keyframes le-butterfly-path{0%{opacity:0;translate:0 0;rotate:-6deg;}12%{opacity:.9;}40%{translate:calc(var(--le-motion) * 55px) calc(var(--le-motion) * -42px);rotate:8deg;}68%{translate:calc(var(--le-motion) * 135px) calc(var(--le-motion) * -10px);rotate:-4deg;opacity:.9;}100%{translate:calc(var(--le-motion) * 210px) calc(var(--le-motion) * -60px);rotate:9deg;opacity:0;}}
@keyframes le-butterfly-return{0%{opacity:0;translate:0 0;}14%{opacity:.85;}45%{translate:calc(var(--le-motion) * -55px) calc(var(--le-motion) * -36px);rotate:-8deg;}75%{opacity:.85;}100%{opacity:0;translate:calc(var(--le-motion) * -155px) calc(var(--le-motion) * 12px);rotate:5deg;}}
@keyframes le-wing-flutter{from{scale:1 1;}to{scale:.35 1;}}
@keyframes le-leaf-wander{0%{opacity:0;translate:0 0;rotate:-10deg;}15%{opacity:.85;}45%{translate:calc(var(--le-motion) * 45px) calc(var(--le-motion) * 40px);rotate:35deg;}78%{opacity:.8;translate:calc(var(--le-motion) * 15px) calc(var(--le-motion) * 85px);rotate:12deg;}100%{opacity:0;translate:calc(var(--le-motion) * 60px) calc(var(--le-motion) * 125px);rotate:65deg;}}
@keyframes le-neighbor-home{0%,100%{fill:var(--le-window);}25%,70%{fill:var(--le-window-light);filter:drop-shadow(0 0 calc(var(--le-glow) * var(--le-lighting) * 9px) var(--le-window-light));}}
@keyframes le-ink-spark{0%,35%,100%{opacity:0;scale:.65;}48%{opacity:.85;scale:1;}60%{opacity:.45;scale:.8;}72%{opacity:.8;scale:1.05;}}
@keyframes le-chimney-puff{0%{opacity:0;translate:0 5px;}18%{opacity:calc(var(--le-motion) * .65);}60%{opacity:calc(var(--le-motion) * .4);translate:calc(var(--le-motion) * 11px) -8px;}100%{opacity:0;translate:calc(var(--le-motion) * 24px) -22px;}}
@media(prefers-reduced-motion:reduce),(update:slow){html[data-theme='little-elsewhere'] :is(.le-scene *,.le-vine-sprig,.le-icon *,.button,.sidebar-toggle,.nav-item,.mobile-nav-sheet-item,.view .panel){animation:none!important;transition:none!important;translate:none!important;rotate:none!important;}}
@media(forced-colors:active){html[data-theme='little-elsewhere'] .le-story-visitors{display:none;}}
@media print{.le-story-visitors{display:none!important;}}


/* Source: room-number-depth.css */
/* The number and bed share one raised background; status badges stay separate. */
html[data-theme] .room-identity-surface {
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  gap:.4em;
  padding:4px 8px!important;
  border:1px solid color-mix(in srgb,currentColor 48%,var(--panel-bg,var(--surface)))!important;
  border-radius:6px!important;
  /* Reveal the actual card paint without compositing its transparency twice. */
  background:transparent!important;
  box-shadow:inset 0 1px 0 #ffffffa6,inset 0 -1px 0 #00000012,0 2px 0 color-mix(in srgb,currentColor 23%,transparent),0 3px 5px #00000016!important;
  color:inherit;
  font:inherit;
  line-height:1.25;
  white-space:nowrap;
  text-shadow:none;
  vertical-align:middle;
}
html[data-theme][data-mode='dark'] .room-identity-surface {
  /* Reveal the actual card paint without compositing its transparency twice. */
  background:transparent!important;
  box-shadow:inset 0 1px 0 #ffffff30,inset 0 -1px 0 #00000030,0 2px 0 #00000050,0 3px 6px #00000030!important;
}

/* Tint only the number itself; the raised surround still reveals the card. */
html[data-theme] .room-identity-surface > .room-number-label {
  display:inline; padding:2px 4px!important; margin:-2px -4px; border:0!important; border-radius:4px!important;
  background:color-mix(in srgb,currentColor 14%,transparent)!important; box-shadow:none!important; white-space:nowrap;
}
html[data-theme] .room-identity-surface > .room-bed-marker { margin:0; filter:none; }


/* Source: ghostwave.css */
/* Ghostwave's pixel art stays behind content. Shared material tokens remain the
   sole owners of card paint, blur, transparency, shadow and glow controls. */
@media screen {
 html[data-theme='ghostwave'] {--gw-landscape:url('/ghostwave-midnight.jpg');--gw-cloud:#9e87bd;--gw-moon:#ffdc92;}
 html[data-theme='ghostwave'][data-mode='light'] {--gw-landscape:url('/ghostwave-twilight.jpg');--gw-cloud:#e7d9f4;--gw-moon:#fff1b9;}
 html[data-theme='ghostwave'][data-world] .world-atmosphere {opacity:1;}
 html[data-theme='ghostwave'] .world-atmosphere > :not(.gw-world) {display:none!important;}
 html[data-theme='ghostwave'] .le-environment {display:none!important;}
 .gw-world {position:absolute;inset:0;pointer-events:none;overflow:hidden;contain:strict;}
 .gw-world * {pointer-events:none;}
 .gw-valley {position:absolute;inset:0;background:var(--gw-landscape) center/cover;image-rendering:auto;}
 .gw-moon-halo {position:absolute;inset:0;background:radial-gradient(ellipse at 74% 28%,#ffe4a51a,transparent 38%);animation:gw-breathe 12s ease-in-out infinite alternate;}
 .gw-star {position:absolute;color:#fff0b6;font-size:12px;text-shadow:0 0 8px #ffd68c80;animation:gw-twinkle calc(5s + var(--i)*.3s) ease-in-out calc(var(--i)*-.8s) infinite alternate;}
 .gw-cloud {position:absolute;width:240px;height:55px;background:var(--gw-cloud);opacity:.26;clip-path:polygon(0 65%,10% 65%,10% 40%,25% 40%,25% 20%,40% 20%,40% 0,60% 0,60% 20%,75% 20%,75% 40%,90% 40%,90% 65%,100% 65%,100% 100%,0 100%);animation:gw-cloud 65s ease-in-out infinite alternate;}
 .gw-cloud-a {left:52%;top:19%;}
 .gw-cloud-b {left:12%;top:35%;scale:.7;animation-delay:-32s;opacity:.18;}
 .gw-drifter {position:absolute;left:84%;top:64%;animation:gw-float 9s ease-in-out infinite alternate;filter:drop-shadow(0 0 10px #e3c4ff44);}
 .gw-drifter img {width:68px;height:auto;image-rendering:pixelated;}
 .gw-drifter-two {left:24%;top:80%;scale:.62;animation-delay:-4s;}
 .gw-lantern {position:absolute;width:16px;height:24px;border:3px solid #765477;background:#ffd993;box-shadow:0 0 18px #f2bb6b88,inset 0 0 0 2px #fff0b8;animation:gw-float 11s ease-in-out infinite alternate;}
 .gw-lantern:before {content:'';position:absolute;left:3px;top:-10px;width:4px;height:7px;border:2px solid #93798b;}
 .gw-lantern-a {left:93%;top:43%;}.gw-lantern-b {left:39%;top:58%;scale:.7;animation-delay:-5s;}
 .gw-pumpkins {position:absolute;right:4%;bottom:4%;display:flex;align-items:end;gap:16px;}
 .gw-pumpkins>span {position:relative;display:block;background:repeating-linear-gradient(90deg,#c27b58 0 7px,#d89060 7px 14px);border:4px solid #69475c;border-radius:9px;color:#ffe2a1;font:13px/1 monospace;padding:9px 7px 5px;text-align:center;box-shadow:0 0 22px #f5bd6755;animation:gw-breathe 7s ease-in-out infinite alternate;}
 .gw-pumpkins>span:before {content:'';position:absolute;width:6px;height:10px;background:#9ca47a;top:-12px;left:40%;}.gw-pumpkins b {display:block;margin-top:3px;}.gw-pumpkins>span+span {scale:.75;}
 .gw-vignette {position:relative;flex-shrink:0;height:145px;margin:0 0 12px;overflow:hidden;border:2px solid var(--world-border);border-radius:4px;background:var(--gw-landscape) center/cover;image-rendering:pixelated;box-shadow:inset 2px 2px #e8d4ff55,inset -2px -2px #1d153b88;}
 .gw-vignette img {position:absolute;width:66px;height:auto;left:23%;bottom:15px;animation:gw-float 8s ease-in-out infinite alternate;image-rendering:pixelated;filter:drop-shadow(0 0 8px #e7ceff66);}
 .gw-vignette>span {position:absolute;bottom:4px;left:0;right:0;text-align:center;background:#211a38de;color:#fff0d5;font:8px/1.5 ui-monospace,monospace;letter-spacing:.08em;}
 html[data-theme='ghostwave'] :is(.room-number,.room-number-text,.room-list-number,.room-number-badge,.summary-room-number,.arc-number,.work-room-number,.checkout-room-number) {border:2px solid var(--world-border);border-top-color:var(--world-highlight);border-left-color:var(--world-accent);border-radius:2px;padding:3px 7px;background:var(--surface-dense);box-shadow:inset 2px 2px 0 color-mix(in srgb,var(--world-highlight) 18%,transparent),inset -2px -2px 0 color-mix(in srgb,var(--world-deep) 55%,transparent),2px 2px 0 color-mix(in srgb,var(--world-deep) 60%,transparent);font-family:ui-monospace,monospace;font-weight:800;}
 html[data-theme='ghostwave'] :is(.finished,.inspected-room) :is(.room-number,.summary-room-number,.arc-number) {border-top-color:var(--success);}
 .gw-mascot {display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;margin-inline-start:auto;color:var(--world-secondary);font:11px/1.4 ui-monospace,monospace;}
 .gw-mascot[hidden] {display:none;}.gw-mascot img {width:30px;height:auto;image-rendering:pixelated;animation:gw-float 8s ease-in-out infinite alternate;}
 .gw-reply:empty {display:none;}.gw-reply {color:var(--world-text);max-width:28ch;}
 html[data-theme='ghostwave'] .daily-room-operations>header {gap:8px;flex-wrap:wrap;}
 html[data-ghostwave-moment] .gw-mascot img {animation:gw-wave 650ms ease-in-out 3;filter:drop-shadow(0 0 6px var(--world-highlight));}
 html[data-ghostwave-moment='inspected'] .gw-pumpkins>span {box-shadow:0 0 32px #ffdf92aa;color:#fff3bc;}
 html[data-ghostwave-motion='off'] :is(.gw-world,.gw-vignette,.gw-mascot),html[data-ghostwave-motion='off'] :is(.gw-world,.gw-vignette,.gw-mascot) * {animation:none!important;transition:none!important;}
 @keyframes gw-float {to{transform:translateY(-9px)}}
 @keyframes gw-cloud {to{transform:translateX(85px)}}
 @keyframes gw-twinkle {from{opacity:.35}to{opacity:.9}}
 @keyframes gw-breathe {to{opacity:.75}}
 @keyframes gw-wave {0%,100%{transform:rotate(0)}35%{transform:translateY(-4px) rotate(-10deg)}70%{transform:rotate(8deg)}}
 @media(max-width:980px){.gw-vignette{display:none}.gw-drifter-two{display:none}.gw-drifter{left:80%;top:77%}.gw-valley{background-position:65% center}.gw-mascot{margin-inline-start:0}.gw-star:nth-of-type(n+10){display:none}}
 @media(prefers-reduced-motion:reduce){:is(.gw-world,.gw-vignette,.gw-mascot),:is(.gw-world,.gw-vignette,.gw-mascot) *{animation:none!important;transition:none!important}}
 @media(forced-colors:active){.gw-world,.gw-vignette,.gw-mascot img{display:none}html[data-theme='ghostwave'] :is(.room-number,.summary-room-number,.arc-number){border:2px solid CanvasText;box-shadow:none}}
}
@media print{.gw-world,.gw-vignette,.gw-mascot{display:none!important}}

/* Ghostwave 2.0. Paint flows through the shared material owner so the room,
   spreadsheet and appearance controls keep the same transparency contract. */
@media screen {
 html[data-theme='ghostwave'] {
  --gw-rim:color-mix(in srgb,var(--world-accent) 58%,transparent);
  --gw-glint:color-mix(in srgb,var(--world-highlight) 22%,transparent);
  --surface-highlight:color-mix(in srgb,var(--world-accent) 24%,transparent);
  --surface-shadow:0 14px 32px -18px #130b29a6,0 0 14px -9px var(--gw-rim),inset 0 1px var(--surface-highlight),inset 1px 0 var(--surface-highlight),inset 0 -1px #130b2933;
  --surface-hover-shadow:0 16px 34px -18px #130b29a6,0 0 18px -6px var(--gw-rim),inset 0 1px var(--gw-glint);
  --surface-card:linear-gradient(135deg,var(--gw-glint),transparent 24%,transparent 80%,var(--surface-highlight)),color-mix(in srgb,var(--surface-tint) var(--surface-card-opacity),transparent);
  --surface-panel:linear-gradient(145deg,var(--surface-highlight),transparent 28%),color-mix(in srgb,var(--surface-tint) var(--surface-panel-opacity),transparent);
 }
 html[data-theme='ghostwave'][data-mode='light'] {
  --gw-glint:#ffffff66;
  --surface-shadow:0 14px 30px -20px #68408870,0 0 12px -8px #b27acb,inset 0 1px #ffffffc0,inset 1px 0 #ffffff80,inset 0 -1px #9165a92e;
 }
 html[data-theme='ghostwave'] :is(.daily-room-operations,.dc-master,.operations-sheet-host,.room-card,.summary-room-row,.panel) {border-radius:12px 5px 12px 5px;}
 /* Corner marks use a background, not extra DOM or an overlay over controls. */
 html[data-theme='ghostwave'] :is(.daily-room-operations,.dc-master,.operations-sheet-host) {
  --surface-panel:linear-gradient(var(--gw-rim),var(--gw-rim)) 7px 7px/12px 2px no-repeat,linear-gradient(var(--gw-rim),var(--gw-rim)) 7px 7px/2px 12px no-repeat,linear-gradient(var(--gw-rim),var(--gw-rim)) calc(100% - 7px) calc(100% - 7px)/12px 2px no-repeat,linear-gradient(var(--gw-rim),var(--gw-rim)) calc(100% - 7px) calc(100% - 7px)/2px 12px no-repeat,linear-gradient(145deg,var(--surface-highlight),transparent 28%),color-mix(in srgb,var(--surface-tint) var(--surface-panel-opacity),transparent);
 }
 html[data-theme='ghostwave'] .sidebar {background:var(--surface-panel);border:1px solid var(--gw-rim);box-shadow:var(--surface-shadow);backdrop-filter:blur(12px);}
 html[data-theme='ghostwave'] .nav-button {border-radius:7px 3px 7px 3px;}
 html[data-theme='ghostwave'] .nav-button.active {box-shadow:inset 3px 0 var(--world-accent),inset 0 1px var(--gw-glint),0 0 12px -7px var(--world-accent);}
 html[data-theme='ghostwave'] :is(.summary-room-row,.room-card) {position:relative;isolation:isolate;}
 html[data-theme='ghostwave'] :is(.summary-room-row,.room-card)::after {content:'';position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;background:linear-gradient(110deg,transparent 25%,var(--gw-glint) 48%,transparent 70%) -200% 0/250% 100% no-repeat;opacity:0;}
 @media(hover:hover) {
  html[data-theme='ghostwave'][data-ghostwave-motion='on'] :is(.summary-room-row,.room-card):hover::after {opacity:.6;animation:gw-shimmer 1.1s ease-out 1;}
 }
 /* Status depth is driven by saved accessible state, never a click timer. */
 @layer surface-material.foundation {
  html[data-theme='ghostwave'] #app-view :is(button[data-housekeeping-action='three-step'],button[data-daily-operation],button[data-daily-floor]) {
   background:linear-gradient(180deg,color-mix(in srgb,var(--world-elevated) 80%,var(--world-surface)),var(--world-surface))!important;
   color:var(--world-text)!important;border:1px solid var(--gw-rim)!important;
   box-shadow:inset 0 1px var(--gw-glint),0 3px 0 color-mix(in srgb,var(--world-deep) 80%,var(--world-border)),0 5px 8px #130b2933!important;transform:translateY(-1px)!important;
  }
  html[data-theme='ghostwave'] #app-view :is(button[data-housekeeping-action='three-step'],button[data-daily-operation],button[data-daily-floor]):is([aria-pressed='true'],:active:not(:disabled)) {
   background:linear-gradient(180deg,color-mix(in srgb,var(--world-surface) 90%,var(--world-text)),var(--world-surface))!important;
   box-shadow:inset 0 3px 5px #160d304d,inset 0 1px 2px #160d3040,0 1px 0 var(--gw-glint)!important;transform:translateY(2px)!important;font-weight:700;
  }
 }
 html[data-theme='ghostwave'] button:focus-visible {outline:3px solid var(--world-accent);outline-offset:3px;}
 .gw-vignette {height:128px;border-radius:8px 3px 8px 3px;}
 .gw-vignette img {left:calc(50% - 25px);width:50px;animation:gw-resident 31s steps(2,end) infinite;transform-origin:center bottom;}
 .gw-vignette .gw-day-label {display:none;}
 html[data-mode='light'] .gw-vignette .gw-day-label {display:block;background:#efddf6ed;color:#49325f;}
 html[data-mode='light'] .gw-vignette .gw-night-label {display:none;}
 .gw-mascot {position:relative;}
 .gw-release {display:none;position:absolute;left:0;bottom:10px;pointer-events:none;width:70px;height:70px;}
 .gw-release img {position:absolute;width:26px;left:18px;bottom:0;}
 .gw-release i {position:absolute;color:var(--world-accent-secondary);font:12px monospace;left:0;top:20px;}
 .gw-release i:nth-of-type(2) {left:45px;top:8px}.gw-release i:nth-of-type(3) {left:35px;top:42px}
 html[data-ghostwave-moment][data-ghostwave-motion='on'] .gw-release {display:block;animation:gw-release 1.8s ease-out both;}
 html[data-ghostwave-moment][data-ghostwave-motion='on'] .gw-release img {animation:none;}
 @keyframes gw-resident {0%,75%,100%{transform:translateY(0)}78%,82%{transform:translateY(-8px) rotate(-7deg)}80%,84%{transform:translateY(-8px) rotate(7deg)}88%{transform:translateY(0) scaleY(.85)}90%{transform:translateY(0)}}
 @keyframes gw-release {0%{opacity:0;transform:translateY(0) scale(.8)}18%{opacity:.85}100%{opacity:0;transform:translateY(-64px) scale(1)}}
 @keyframes gw-shimmer {from{background-position:200% 0}to{background-position:-100% 0}}
 @media(max-width:700px){html[data-theme='ghostwave']:not([data-ad-enabled='true']){--surface-active-blur:6px}.gw-moon-halo{animation:none}.gw-cloud-b,.gw-lantern-b{display:none}}
 html[data-ghostwave-motion='off'] .gw-release {display:none!important;}
 @media(prefers-reduced-motion:reduce){html[data-theme='ghostwave'] :is(.room-card,.summary-room-row)::after{animation:none!important;opacity:0!important}.gw-release{display:none!important}}
 @media(forced-colors:active){html[data-theme='ghostwave'] :is(.room-card,.summary-room-row)::after{display:none}html[data-theme='ghostwave'] #app-view button[aria-pressed='true']{border:3px double ButtonText!important}.gw-release{display:none!important}}
}
@media screen {
 @layer surface-material.foundation {
  html[data-theme='ghostwave'] :is(.sidebar,.topbar,.mobile-nav-bar,#mobile-nav-sheet) {
   background:var(--surface-user-paint,var(--surface-panel))!important;
   border-color:var(--gw-rim)!important;box-shadow:var(--surface-shadow)!important;
   color:var(--surface-ink)!important;
   backdrop-filter:blur(var(--surface-active-blur,var(--surface-blur)))!important;
   -webkit-backdrop-filter:blur(var(--surface-active-blur,var(--surface-blur)))!important;
  }
  html[data-theme='ghostwave'] :is(.daily-room-operations,.dc-master,.operations-sheet-host,.room-card,.summary-room-row,.panel) {border-radius:12px 5px 12px 5px!important;}
 }
}

/* Midnight motion: scoped to dark Ghostwave; the existing light scene is intact.
   Foreground decorations never intercept room actions or navigation. */
@media screen {
 .gw-spirits,.gw-sidebar-motes {display:none;pointer-events:none;}
 :root[data-world][data-theme='ghostwave'][data-mode='dark'] {
  --surface-tint:#382344;--surface-card-opacity:76%;--surface-panel-opacity:80%;
  --gw-rim:#cba5ef99;--gw-glint:#d5b0ff38;
  --surface-card:linear-gradient(135deg,#aa78d52b,transparent 42%,#7d4c9f1c),color-mix(in srgb,var(--surface-tint) var(--surface-card-opacity),transparent);
  --surface-shadow:0 18px 32px -18px #090418d9,0 0 16px -8px #bb82eaa6,inset 0 1px #efd4ff59,inset 1px 0 #d0a8f52e,inset 0 -2px #10091c66;
 }
 html[data-theme='ghostwave'][data-mode='dark'] .gw-moon-halo {
  background:radial-gradient(ellipse at 76% 28%,#fff0b869 0, #e6bcff24 23%,transparent 48%);
  animation:gw-midnight-moon 6s ease-in-out infinite alternate;
 }
 html[data-theme='ghostwave'][data-mode='dark'] .gw-cloud {opacity:.38;animation:gw-midnight-cloud 28s ease-in-out -8s infinite alternate;}
 html[data-theme='ghostwave'][data-mode='dark'] .gw-cloud-b {opacity:.26;animation-delay:-20s;}
 html[data-theme='ghostwave'][data-mode='dark'] .gw-star {font-size:15px;animation-name:gw-midnight-star;animation-duration:calc(2.4s + var(--i)*.14s);}
 html[data-theme='ghostwave'][data-mode='dark'] .gw-drifter {animation:gw-midnight-float 4.8s ease-in-out -1.8s infinite alternate;}
 html[data-theme='ghostwave'][data-mode='dark'] .gw-vignette > img {animation:gw-midnight-float 4s ease-in-out -1.2s infinite alternate;}
 html[data-theme='ghostwave'][data-mode='dark'] .gw-mascot > img {animation:gw-midnight-peek 6s ease-in-out -1s infinite;}
 html[data-theme='ghostwave'][data-mode='dark'] .gw-sidebar-motes {display:block;position:absolute;inset:0;overflow:hidden;background:none;}
 .gw-sidebar-motes i {position:absolute;bottom:12px;width:3px;height:3px;background:#ffe6ac;box-shadow:0 0 6px #f2c6ff;animation:gw-midnight-mote calc(4s + var(--i)*.5s) linear calc(var(--i)*-.9s) infinite;}
 html[data-theme='ghostwave'][data-mode='dark'] .gw-spirits {display:block;position:fixed;inset:0;z-index:2;overflow:hidden;}
 .gw-gutter-ghost {position:absolute;left:calc(var(--sidebar-width,260px) + 5px);top:73%;filter:drop-shadow(0 0 8px #dfb5ff99);animation:gw-midnight-float 5s ease-in-out -2s infinite alternate;}
 .gw-gutter-ghost img {width:36px;height:auto;image-rendering:pixelated;}
 html[data-theme='ghostwave'][data-mode='dark'] .daily-room-operations > header {position:relative;}
 html[data-theme='ghostwave'][data-mode='dark'] .nav-button.active {background:linear-gradient(105deg,#a77ac44d,#4c305f77);box-shadow:inset 3px 0 #e4bdff,inset 0 1px #edccff66,0 0 18px -5px #cf9cfc80;}
 html[data-theme='ghostwave'][data-mode='dark'] button:not(:disabled):active {translate:0 2px;filter:brightness(1.12);}
 html[data-ghostwave-motion='off'] :is(.gw-spirits,.gw-sidebar-motes),html[data-ghostwave-motion='off'] :is(.gw-spirits,.gw-sidebar-motes) * {animation:none!important;}
 html[data-ghostwave-motion='off'] .gw-sidebar-motes {display:none!important;}
 @keyframes gw-midnight-float {from{transform:translate(-5px,7px) rotate(-3deg)}to{transform:translate(9px,-18px) rotate(4deg)}}
 @keyframes gw-midnight-peek {0%,100%{transform:translateY(4px) rotate(-6deg)}45%,65%{transform:translateY(-9px) rotate(6deg)}}
 @keyframes gw-midnight-cloud {from{transform:translateX(-65px)}to{transform:translateX(110px)}}
 @keyframes gw-midnight-star {from{opacity:.18;transform:scale(.7)}to{opacity:1;transform:scale(1.15)}}
 @keyframes gw-midnight-moon {from{opacity:.35;transform:scale(.98)}to{opacity:.9;transform:scale(1.03)}}
 @keyframes gw-midnight-mote {0%{opacity:0;transform:translate(0,0)}20%,70%{opacity:.75}100%{opacity:0;transform:translate(12px,-100px)}}
 @media(max-width:980px){.gw-gutter-ghost{left:auto;right:8px;top:48%;}.gw-gutter-ghost img{width:27px;}}
 @media(prefers-reduced-motion:reduce){:is(.gw-spirits,.gw-sidebar-motes),:is(.gw-spirits,.gw-sidebar-motes) *{animation:none!important}.gw-sidebar-motes{display:none!important}}
 @media(forced-colors:active){.gw-spirits,.gw-sidebar-motes{display:none!important}}
}
@media print{.gw-spirits,.gw-sidebar-motes{display:none!important}}


/* Source: checkout-tactile.css */
/* The interactive wrapper must reveal the same card surface as its raised face. */
@layer daylight-foundation {
  html[data-theme][data-mode] #app-view #daily-operations-list [data-checkout-row] .summary-room-number:has(> .room-identity-surface) {
    background:transparent!important;
  }
}
/* Restore the raised room label treatment on Today checkout cards. */
html[data-theme][data-mode] #app-view #daily-operations-list [data-checkout-row] .room-identity-surface {
  padding:4px 8px!important;
  border:1px solid color-mix(in srgb,currentColor 48%,var(--panel-bg,var(--surface)))!important;
  border-radius:6px!important;
  /* Reveal the actual card paint without compositing its transparency twice. */
  background:transparent!important;
  box-shadow:inset 0 1px 0 #ffffffa6,inset 0 -1px 0 #00000012,0 2px 0 color-mix(in srgb,currentColor 23%,transparent),0 3px 5px #00000016!important;
}
html[data-theme][data-mode='dark'] #app-view #daily-operations-list [data-checkout-row] .room-identity-surface {
  box-shadow:inset 0 1px 0 #ffffff30,inset 0 -1px 0 #00000030,0 2px 0 #00000050,0 3px 6px #00000030!important;
}
html[data-theme][data-mode] #app-view #daily-operations-list [data-checkout-row] .room-bed-marker {
  filter:none;
}
/* Use the first paint layer so daylight and material theme rules cannot flatten these controls.
   Completion is read from the existing accessible state; no workflow changes. */
@layer daylight-foundation {
  html[data-theme][data-mode] #app-view #daily-operations-list [data-checkout-row] button:is([data-housekeeping-action="three-step"],[data-checkout-inspected],[data-manager-checkout-action="inspect"]) {
    --checkout-face:var(--panel-bg,var(--surface,#fff));
    --checkout-ink:var(--text,#202735);
    background:linear-gradient(180deg,color-mix(in srgb,var(--checkout-face) 90%,white),var(--checkout-face))!important;
    color:var(--checkout-ink)!important;
    border:1px solid color-mix(in srgb,var(--checkout-ink) 55%,var(--checkout-face))!important;
    box-shadow:inset 0 1px 0 #ffffff80,0 3px 0 color-mix(in srgb,var(--checkout-ink) 55%,var(--checkout-face)),0 5px 7px #00000026!important;
    transform:translateY(-1px)!important;
    text-shadow:none!important;
    opacity:1!important;
    transition:transform 100ms ease,box-shadow 100ms ease!important;
  }
  html[data-theme][data-mode] #app-view #daily-operations-list [data-checkout-row] button:is([data-housekeeping-action="three-step"],[data-checkout-inspected],[data-manager-checkout-action="inspect"])[aria-pressed="true"],
  html[data-theme][data-mode] #app-view #daily-operations-list [data-checkout-row] button:is([data-housekeeping-action="three-step"],[data-checkout-inspected],[data-manager-checkout-action="inspect"]):active:not(:disabled) {
    background:linear-gradient(180deg,color-mix(in srgb,var(--checkout-face) 95%,var(--world-accent,var(--accent))),color-mix(in srgb,var(--checkout-face) 97%,var(--world-accent,var(--accent))))!important;
    color:var(--checkout-ink)!important;
    border-color:color-mix(in srgb,var(--checkout-ink) 55%,var(--checkout-face))!important;
    box-shadow:inset 0 2px 4px #00000024,inset 0 1px 1px #00000016,0 1px 0 #ffffff55!important;
    transform:translateY(2px)!important;
    font-weight:700;
  }
  html[data-theme][data-mode] #app-view #daily-operations-list [data-checkout-row] button:is([data-housekeeping-action="three-step"],[data-checkout-inspected],[data-manager-checkout-action="inspect"]):focus-visible {
    outline:3px solid var(--checkout-ink)!important;
    outline-offset:3px!important;
  }
  html[data-theme][data-mode] #app-view #daily-operations-list [data-checkout-row] button:is([data-housekeeping-action="three-step"],[data-checkout-inspected],[data-manager-checkout-action="inspect"]):disabled {cursor:default;}
  @media(prefers-reduced-motion:reduce) {
    html[data-theme][data-mode] #app-view #daily-operations-list [data-checkout-row] button:is([data-housekeeping-action="three-step"],[data-checkout-inspected],[data-manager-checkout-action="inspect"]) {transition:none!important;}
  }
  @media(forced-colors:active) {
    html[data-theme][data-mode] #app-view #daily-operations-list [data-checkout-row] button:is([data-housekeeping-action="three-step"],[data-checkout-inspected],[data-manager-checkout-action="inspect"])[aria-pressed="true"] {border:3px double ButtonText!important;}
  }
}


/* Source: october-reverie.css */
/* October Reverie: isolated paints; semantic status badges keep their colors. */
html[data-world="october-reverie"]{--or-sky:#424552;--or-horizon:#695342;--or-house:#22232c;--or-roof:#171923;--or-window:#ffd184;--or-leaf:#e6aa49;--or-star:#ffe6a0;--or-pressed:#76502b}
html[data-world="october-reverie"][data-mode="light"]{--or-sky:#f0d38b;--or-horizon:#f6b95f;--or-house:#c6a173;--or-roof:#815c43;--or-window:#fff4c0;--or-leaf:#9b461f;--or-star:#9a5b1c;--or-pressed:#8c4b29}
#october-reverie-scene{position:absolute;inset:0;overflow:hidden;pointer-events:none;contain:layout paint;background:radial-gradient(ellipse at 15% 25%,#dfab5435,transparent 48%),linear-gradient(var(--or-sky),var(--or-horizon));isolation:isolate}
.or-town{position:absolute;bottom:0;left:0;width:100%;height:min(48vh,410px);fill:var(--or-house)}
.or-roof,.or-lamp{stroke:var(--or-roof);stroke-width:6;stroke-linejoin:round;fill:var(--or-roof)}
.or-ground{fill:var(--or-roof)}
.or-window{fill:var(--or-window);stroke:none;animation:or-window 7s ease-in-out infinite alternate;animation-delay:calc(var(--i,0)*-.7s)}
.or-lamp{transform:translateX(240px)}
.or-lamp .or-window{filter:drop-shadow(0 0 12px #ffba52)}
.or-leaf{position:absolute;left:var(--x);top:-8%;width:19px;height:26px;color:var(--or-leaf);animation:or-leaf var(--duration) linear infinite;animation-delay:var(--delay);opacity:.85}
.or-leaf:nth-of-type(3n){color:#bc7135;width:26px}.or-leaf svg{width:100%;height:100%;fill:currentColor}
.or-star{position:absolute;left:var(--x);top:var(--y);font-size:17px;color:var(--or-star);animation:or-star 9s ease-in-out infinite alternate;animation-delay:var(--delay);text-shadow:0 0 8px #efb55a70}
@keyframes or-leaf{0%{transform:translate3d(-35px,-20px,0) rotate(0)}25%{transform:translate3d(70px,28vh,0) rotate(130deg)}55%{transform:translate3d(-55px,57vh,0) rotate(280deg)}80%{transform:translate3d(85px,84vh,0) rotate(420deg)}100%{transform:translate3d(15px,110vh,0) rotate(560deg)}}
@keyframes or-star{from{opacity:.35;transform:translate3d(-12px,0,0) rotate(-15deg)}to{opacity:.95;transform:translate3d(22px,-22px,0) rotate(20deg)}}
@keyframes or-window{from{opacity:.68}to{opacity:1}}
html[data-world="october-reverie"] :is(.sidebar,.side-nav){background:linear-gradient(165deg,color-mix(in srgb,var(--world-surface) 96%,transparent),color-mix(in srgb,var(--world-deep) 85%,transparent));border-right:1px solid var(--world-border);box-shadow:12px 0 35px #14121b40}
html[data-world="october-reverie"] :is(.panel,.metric,.daily-room-operations,dialog){border:1px solid var(--world-border);box-shadow:0 20px 38px -17px #100e1575,inset 0 1px #ffe6ad40;border-radius:var(--world-radius)}
html[data-world="october-reverie"] :is(button,.button):not(.ui-badge):not(:disabled){box-shadow:0 4px 0 var(--or-pressed),0 8px 16px #17131c40,inset 0 1px #fff0c940;transition:transform 120ms ease,box-shadow 120ms ease}
html[data-world="october-reverie"] :is(button,.button):not(.ui-badge):not(:disabled):active{transform:translateY(3px);box-shadow:0 1px 0 var(--or-pressed),inset 0 2px 5px #1a101530}
html[data-world="october-reverie"] :is(button,input,select,textarea,a):focus-visible{outline:3px solid var(--world-accent);outline-offset:3px}
html[data-world="october-reverie"] .operations-sheet :is(th,td){background:var(--world-surface);color:var(--world-text);border-color:var(--world-border)}
html[data-world="october-reverie"] .operations-sheet th{background:var(--world-elevated)}
html[data-world="october-reverie"] .operations-sheet tr:nth-child(even) td{background:color-mix(in srgb,var(--world-elevated) 35%,var(--world-surface))}
html[data-world="october-reverie"] .operations-sheet :is(input,select,textarea){background:var(--world-surface);color:var(--world-text)}
#october-reverie-scene[data-still="true"] *{animation-play-state:paused!important}
html[data-world="october-reverie"][data-atmosphere="off"] #october-reverie-scene{display:none}
@media(prefers-reduced-motion:reduce){#october-reverie-scene *{animation:none!important}.or-leaf{top:calc(var(--i)*5%)}html[data-world="october-reverie"] :is(button,.button){transition:none!important}}
@media(max-width:700px){.or-leaf:nth-of-type(n+11),.or-star:nth-of-type(n+20){display:none}.or-town{width:180%;left:-40%}}
@media print{#october-reverie-scene{display:none}}


/* Source: moonlit-elsewhere.css */
/* Theme-owned illustration and geometry. Shared materials retain all user paints. */
@media screen {
html[data-world="moonlit-elsewhere"] {
 --me-ink:#231a38;--me-gold:#ffd394;--me-quilt:#654673;--me-leaf:#a5b38a;--me-hill:#45355f;--me-town:#2b2347;--me-river:#403257;
 --me-sky:linear-gradient(180deg,#211c40,#51325f 65%,#b46e8a);--me-edge:color-mix(in srgb,var(--world-highlight) 35%,transparent);
 --surface-shadow:inset 0 1px 1px var(--me-edge),inset 0 -2px 1px var(--surface-shadow-color),0 3px 0 var(--surface-shadow-color),0 14px 26px -14px var(--surface-shadow-color);
 --surface-hover-shadow:inset 0 1px 1px var(--me-gold),0 4px 0 var(--surface-shadow-color),0 19px 30px -15px var(--surface-shadow-color);
 --surface-floating-shadow:inset 0 1px var(--me-edge),0 12px 35px -8px var(--surface-shadow-color);
}
html[data-world="moonlit-elsewhere"][data-mode="light"] {
 --me-ink:#64486d;--me-gold:#dca24c;--me-quilt:#d5a6d4;--me-leaf:#78895e;--me-hill:#c9afd9;--me-town:#b494c3;--me-river:#dbc3e6;
 --me-sky:linear-gradient(180deg,#edcce9,#f4d4dd 60%,#ffdeb4);
}
#moonlit-elsewhere-scene{position:absolute;inset:0;overflow:hidden;contain:layout paint;pointer-events:none;background:var(--me-sky)}
.me-town{position:absolute;bottom:0;left:0;width:100%;height:min(46vh,420px);opacity:.8}
.me-moon{position:absolute;right:12%;top:12%;width:70px;height:70px;border-radius:50%;box-shadow:-16px 9px 0 0 var(--me-gold);transform:rotate(-16deg);filter:drop-shadow(0 0 18px #ffcf8f35)}
.me-star{position:absolute;color:var(--me-gold);font-size:10px;opacity:.6;animation:me-twinkle 16s ease-in-out infinite;animation-delay:calc(var(--i)*-1.7s)}
.me-firefly{position:absolute;width:3px;height:3px;background:var(--me-gold);border-radius:50%;box-shadow:0 0 9px 2px #ffd39465;animation:me-drift 22s ease-in-out infinite;animation-delay:calc(var(--i)*-3.2s)}
html[data-world="moonlit-elsewhere"] .sidebar{background:radial-gradient(ellipse at 10% 15%,#bb8bd51a,transparent 55%),linear-gradient(160deg,color-mix(in srgb,var(--world-surface) 98%,transparent),color-mix(in srgb,var(--world-deep) 94%,transparent));border-right:1px solid var(--surface-edge);box-shadow:8px 0 24px -12px var(--surface-shadow-color)}
.me-sidebar-trim{height:38px;position:relative;overflow:hidden;flex:none;pointer-events:none}
.me-sidebar-trim .me-vine{position:absolute;left:0;top:-17px;width:90px;height:125px;transform:rotate(-65deg)}
.me-sidebar-trim .me-lantern{position:absolute;right:24px;top:-29px;width:30px;height:68px}
html[data-world="moonlit-elsewhere"] .sidebar :is(.nav-button,.nav-item,[data-view]){border-radius:12px 9px 13px 10px;transition:background 180ms,box-shadow 180ms}
html[data-world="moonlit-elsewhere"] .sidebar :is([data-view].active,[data-view][aria-current="page"]){background:linear-gradient(110deg,color-mix(in srgb,var(--world-accent) 22%,var(--world-surface)),var(--world-elevated));box-shadow:inset 3px 0 var(--world-accent),inset 0 1px var(--me-edge),0 0 16px #f7bd6820;color:var(--world-text)}
html[data-world="moonlit-elsewhere"] .sidebar :is(.nav-group,.nav-section){border-bottom:1px solid var(--surface-edge);padding-bottom:6px}
html[data-world="moonlit-elsewhere"] :is(.panel,.ops-panel,.hk-live-panel,.daily-room-operations,.metric,.summary-card,.metric-card,.room-card,.reference-guide-card,.dc-card,.config-card,.lc-card,.it-card,.pr-room,.ab-room,.ab-column,[data-surface="card"],[data-surface="panel"]){border-radius:var(--world-radius);transition:box-shadow 180ms,translate 180ms}
/* Texture is a faint highlight in the panel header, never over table cells/text. */
html[data-world="moonlit-elsewhere"] :is(.panel,.ops-panel,.hk-live-panel) > :is(.panel-head,.hk-live-head){border-bottom:1px solid var(--surface-edge);background-image:radial-gradient(ellipse at top left,#ecb9eb10,transparent 75%);border-radius:inherit}
html[data-world="moonlit-elsewhere"] :is(.panel-head h3,.hk-live-head h2){font-family:var(--world-font,Georgia,serif)}
html[data-world="moonlit-elsewhere"] :is(.panel-head h3,.hk-live-head h2)::after{content:' ✧';color:var(--world-accent-secondary);font-size:.75em;opacity:.6}
@layer surface-material.foundation {
 html[data-world="moonlit-elsewhere"] #app-view .view :is(.panel,.daily-room-operations,.summary-room-row,.room-card,.ops-panel,.lc-card,.it-card,.reference-guide-card,.wo-metric){
  background:var(--surface-user-paint,radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--world-accent-secondary) 7%,transparent),transparent 65%),var(--surface-panel))!important;
  box-shadow:inset 0 1px 1px var(--me-edge),inset 0 -2px var(--surface-shadow-color),0 3px 0 var(--surface-shadow-color),0 14px 28px -12px var(--surface-shadow-color)!important;
 }
}
html[data-world="moonlit-elsewhere"] .checkout-row-header{border-radius:inherit}
html[data-world="moonlit-elsewhere"] .adaptive-room-card{border-radius:16px 13px 17px 12px}
html[data-world="moonlit-elsewhere"] .me-inn{background-image:radial-gradient(ellipse at 10% 0,#ecc6eb12,transparent 62%),radial-gradient(ellipse at 90% 20%,#ffd39415,transparent 45%)}
html[data-world="moonlit-elsewhere"] :is(button.button,.button.primary,.daily-operations-counter,.today-progress-stage,.arc-action,.arc-step){box-shadow:inset 0 1px var(--me-edge),0 3px 0 var(--surface-shadow-color),0 6px 10px -6px var(--surface-shadow-color);border-radius:11px 9px 12px 10px;transition:translate 130ms,box-shadow 130ms}
html[data-world="moonlit-elsewhere"] :is(button.button,.daily-operations-counter,.today-progress-stage,.arc-action,.arc-step):is(:active,[aria-pressed="true"]){translate:0 2px;box-shadow:inset 0 2px 4px var(--surface-shadow-color),inset 0 -1px var(--me-edge)}
html[data-world="moonlit-elsewhere"] :is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--world-accent);outline-offset:3px}

html[data-world="moonlit-elsewhere"] :is(.metric,.daily-operations-counter):nth-child(4n+1){border-top-color:var(--world-accent-secondary)}
html[data-world="moonlit-elsewhere"] :is(.metric,.daily-operations-counter):nth-child(4n+2){border-top-color:var(--world-accent)}
html[data-world="moonlit-elsewhere"] :is(.tselect-popup,.tselect-menu,.tselect-popover,[role="menu"],[role="listbox"],.dropdown-menu,.popover-panel){border:1px solid var(--surface-edge);border-radius:16px 13px 18px 12px;background:var(--surface-modal);color:var(--surface-ink);box-shadow:var(--surface-floating-shadow);animation:me-unfold 150ms ease-out}
html[data-world="moonlit-elsewhere"] :is(dialog,.modal-content){border-radius:22px;border-color:var(--surface-edge)}
html[data-world="moonlit-elsewhere"] :is(.arc-room,.arc-card,.room-list-row,.strip-room-row,.summary-room-row){border-radius:16px 13px 17px 12px}
html[data-world="moonlit-elsewhere"] :is(.arc-number,.room-number){font-weight:800;text-shadow:0 1px var(--me-edge),0 2px 3px var(--surface-shadow-color)}
html[data-world="moonlit-elsewhere"] .operations-sheet :is(th,td){border-color:var(--surface-edge)}
html[data-world="moonlit-elsewhere"] .operations-sheet tbody tr:nth-child(even){background:color-mix(in srgb,var(--world-accent-secondary) 5%,transparent)}
html[data-world="moonlit-elsewhere"] .operations-sheet thead{box-shadow:0 3px 8px -4px var(--surface-shadow-color)}
html[data-world="moonlit-elsewhere"] :is(.hotel-map-panel,.hotel-map-workspace,.map-workspace){background-image:radial-gradient(ellipse at top,#ba91d510,transparent 65%);border-radius:18px}
.me-inn{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:100px;margin:0 0 14px;padding:12px 24px;gap:12px;border:1px solid var(--surface-edge);border-radius:28px 22px 26px 20px;background:radial-gradient(ellipse at 85% 10%,#edb06815,transparent 55%),var(--surface-user-paint,var(--surface-panel));box-shadow:var(--surface-shadow);overflow:hidden;color:var(--surface-ink);isolation:isolate}
.me-inn-copy{position:relative;z-index:1;max-width:68%}.me-kicker{font-size:9px;font-weight:700;letter-spacing:.18em;color:var(--world-accent-secondary)}
.me-inn p{font-family:var(--world-font,Georgia,serif);font-size:clamp(16px,2vw,24px);line-height:1.15;margin:6px 0;color:var(--world-text)}
.me-day-copy{display:none;font-size:11px;color:var(--world-secondary)}
html[data-world="moonlit-elsewhere"][data-mode="light"] .me-day-copy{display:inline}
.me-nook{position:absolute;right:8px;bottom:0;width:255px;height:120px;pointer-events:none;z-index:0}
.me-arch{position:absolute;width:126px;height:122px;right:38px;top:-4px;border-radius:65px 65px 0 0;border:5px double var(--me-edge);background:radial-gradient(circle at 64% 29%,var(--me-gold) 0 10px,transparent 11px),var(--me-sky);box-shadow:inset 0 0 18px #1b123c55}
.me-nook .me-lantern{position:absolute;right:4px;top:-1px;width:40px;height:76px}.me-nook .me-vine{position:absolute;left:23px;top:-30px;width:80px;height:130px;transform-origin:top;animation:me-sway 16s ease-in-out infinite}
.me-dogs{position:absolute;bottom:-3px;right:8px;width:228px;height:84px;overflow:visible}.me-dog{transform-box:fill-box;transform-origin:50% 100%;animation:me-breathe 6s ease-in-out infinite}.me-percy{animation-delay:-2.4s;animation-duration:7s}
.me-lantern-light{animation:me-lantern 9s ease-in-out infinite;filter:drop-shadow(0 0 7px #ffc468)}
.me-celebration{position:absolute;bottom:6px;left:24px;color:var(--world-accent);font-size:11px;z-index:2;background:var(--surface-panel);border-radius:5px}
.me-celebrate{animation:me-welcome 2s ease-out 2}
@media(hover:hover){html[data-world="moonlit-elsewhere"] #app-view .view > .panel:hover{translate:0 -2px;box-shadow:var(--surface-hover-shadow)}html[data-world="moonlit-elsewhere"] .sidebar [data-view]:hover{box-shadow:inset 0 0 14px #f7bd6818}html[data-world="moonlit-elsewhere"] button.button:not(:disabled):hover{translate:0 -1px}}
@keyframes me-twinkle{0%,65%,100%{opacity:.25}75%{opacity:.85}}
@keyframes me-drift{0%,80%,100%{opacity:0;transform:translate(0,0)}20%,60%{opacity:.7}50%{transform:translate(18px,-25px)}}
@keyframes me-breathe{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.025)}}
@keyframes me-lantern{0%,100%{opacity:.84}48%{opacity:1}52%{opacity:.9}55%{opacity:1}}
@keyframes me-sway{0%,100%{rotate:-1deg}50%{rotate:1deg}}
@keyframes me-unfold{from{opacity:.2;scale:.98}to{opacity:1;scale:1}}
@keyframes me-welcome{50%{box-shadow:inset 0 0 18px #ffd39430,0 0 20px #ffd39430}}
html[data-world="moonlit-elsewhere"][data-moonlit-motion="off"] :is(.me-decoration,.me-inn,.me-sidebar-trim,.me-nook) *,html[data-world="moonlit-elsewhere"][data-moonlit-motion="off"] .me-inn{animation:none!important}
html[data-world="moonlit-elsewhere"][data-moonlit-motion="off"] :is(button,.panel,[role="menu"],[role="listbox"]){animation:none!important;transition:none!important}
html[data-world="moonlit-elsewhere"][data-theme-tuner-particles="off"] :is(.me-star,.me-firefly){display:none}
@media(prefers-reduced-motion:reduce){html[data-world="moonlit-elsewhere"] *,html[data-world="moonlit-elsewhere"] *::before,html[data-world="moonlit-elsewhere"] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:700px){.me-inn{min-height:86px;padding:10px 12px;margin-bottom:10px}.me-inn-copy{max-width:55%}.me-nook{right:0;scale:.6;transform-origin:right bottom}.me-sidebar-trim{display:none}.me-inn p{font-size:16px;max-width:200px}.me-day-copy{font-size:10px}.me-kicker{font-size:8px}.me-celebration{left:12px;font-size:10px}.me-star:nth-of-type(n+7),.me-firefly:nth-of-type(n+16){display:none}.me-town{width:170%;left:-35%;height:35vh}}
}
@media print{#moonlit-elsewhere-scene,.me-inn,.me-sidebar-trim{display:none!important}}

@media(max-width:700px){html[data-world="moonlit-elsewhere"] .wo-summary{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-world="moonlit-elsewhere"] .wo-metric{min-width:0;overflow-wrap:anywhere}}

@media(max-width:400px){html[data-world="moonlit-elsewhere"][data-mode="light"] .me-day-copy{display:none}}


/* Source: cartoon-gloss.css */
/* Additive gloss: no replacement of themed fills, borders or shadows. */
:root {
  --cartoon-gloss-intensity: .7;
  --cartoon-gloss-color: color-mix(in srgb, white 94%, var(--world-accent, var(--accent, white)));
}
html[data-theme="little-elsewhere"] { --cartoon-gloss-color: #fff8e5; }
html[data-theme="ghostwave"] { --cartoon-gloss-color: #effcff; }
html[data-theme="midnight-reverie"] { --cartoon-gloss-color: #f4edff; }
.cartoon-gloss-positioned { position: relative; }
.cartoon-gloss-host > .cartoon-gloss {
  position: absolute;
  inset: 0;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: inherit;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  opacity: calc(var(--cartoon-gloss-intensity) * .42);
}
.cartoon-gloss::before, .cartoon-gloss::after {
  content: "";
  position: absolute;
  top: 6px;
  width: min(38px, 18%);
  height: 21px;
  background: var(--cartoon-gloss-color);
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
}
.cartoon-gloss::before {
  left: 7px;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 26'%3E%3Cpath d='M3 21 Q1 3 21 3 L39 3 Q17 7 7 23 Q4 25 3 21Z' fill='none' stroke='white' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.cartoon-gloss::after {
  right: 8px;
  width: min(27px, 12%);
  opacity: .55;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 26'%3E%3Cpath d='M4 4 Q25 2 28 20' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}
/* One quiet gleam per hover, with no continuous animation or card movement. */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  html[data-cartoon-gloss="on"]:not([data-decorative-animations="off"]):not([data-animations="off"]):not([data-theme-tuner-motion="off"]):not(.world-focus-mode) .cartoon-gloss-host:hover > .cartoon-gloss {
    animation: cartoon-gloss-shimmer 900ms ease-in-out 1;
  }
}
@keyframes cartoon-gloss-shimmer {
  0%, 100% { opacity: calc(var(--cartoon-gloss-intensity) * .42); }
  45% { opacity: calc(var(--cartoon-gloss-intensity) * .62); }
}
@media (prefers-reduced-motion: reduce) {
  .cartoon-gloss-host > .cartoon-gloss { animation: none !important; }
}
@media (forced-colors: active), print {
  .cartoon-gloss-host > .cartoon-gloss { display: none; }
}


/* Source: moonwhisker-dreams.css */
@media screen {
html[data-world="moonwhisker-dreams"]{--mw-gold:#fff1be;--mw-pink:#f3a3c6;--mw-cloud-back:#263863;--mw-cloud-front:#17244c;--mw-sky:linear-gradient(180deg,#090e29,#17244c 72%,#304b70);--mw-edge:color-mix(in srgb,var(--world-highlight) 32%,transparent);--surface-shadow:inset 0 1px var(--mw-edge),0 4px 0 var(--surface-shadow-color),0 18px 32px -14px var(--surface-shadow-color);--surface-floating-shadow:inset 0 1px var(--mw-edge),0 16px 40px -10px var(--surface-shadow-color)}
html[data-world="moonwhisker-dreams"][data-mode="light"]{--mw-gold:#fff0c8;--mw-cloud-back:#e6b6df;--mw-cloud-front:#ffc2c5;--mw-sky:linear-gradient(180deg,#b7a3e5,#eed1ef 65%,#ffc2a1)}
#moonwhisker-scene{position:absolute;inset:0;overflow:hidden;contain:layout paint;background:var(--mw-sky);pointer-events:none}
.mw-clouds{position:absolute;bottom:-10px;left:-5%;width:110%;height:36%;animation:mw-cloud 90s ease-in-out infinite alternate;opacity:.85}
.mw-streetlamp{position:absolute;bottom:1%;right:2%;height:36%;width:auto;filter:drop-shadow(0 0 12px #fff1be20)}
html[data-world="moonwhisker-dreams"][data-mode="light"] .mw-streetlamp{opacity:.25}
.mw-star{position:absolute;font-size:9px;color:var(--mw-gold);animation:mw-twinkle calc(11s + var(--i)*.7s) ease-in-out infinite;animation-delay:calc(var(--i)*-2.3s)}
.mw-lantern{position:absolute;width:clamp(18px,2.5vw,36px);filter:drop-shadow(0 0 8px #ffc2a150);animation:mw-rise calc(36s + var(--i)*7s) ease-in-out infinite;animation-delay:calc(var(--i)*-11s)}
.mw-wish{position:absolute;color:var(--mw-gold);width:clamp(18px,2vw,28px);animation:mw-wish calc(30s + var(--i)*3s) ease-in-out infinite;animation-delay:calc(var(--i)*-7s)}
.mw-welcome{position:relative;isolation:isolate;display:flex;align-items:center;min-height:150px;margin:0 0 16px;padding:20px 26px;overflow:hidden;border:1px solid var(--surface-edge);border-radius:28px;background:radial-gradient(ellipse at 95% 10%,#f3a3c625,transparent 60%),var(--surface-user-paint,var(--surface-panel));box-shadow:var(--surface-shadow);color:var(--surface-ink)}
.mw-copy{position:relative;z-index:1;max-width:calc(100% - 205px)}.mw-kicker{font-size:10px;letter-spacing:.16em;font-weight:800;color:var(--world-accent-secondary)}.mw-copy p{font:clamp(18px,2vw,27px)/1.25 var(--world-font,Georgia,serif);margin:8px 0;color:var(--world-text)}.mw-copy small{color:var(--world-secondary);font-size:12px}.mw-light-name{display:none}html[data-mode="light"] .mw-light-name{display:block}html[data-mode="light"] .mw-dark-name{display:none}
.mw-moon-kitten{position:absolute;width:190px;height:175px;right:18px;bottom:-7px;pointer-events:none}.mw-crescent{position:absolute;inset:0;width:100%;filter:drop-shadow(0 0 15px #fff1be40)}.mw-kitten{position:absolute;right:25px;bottom:14px;width:118px;height:auto;overflow:visible;filter:drop-shadow(0 0 3px #b49bcd66)}.mw-tail{transform-origin:115px 140px;animation:mw-tail 9s ease-in-out infinite}.mw-eyes{transform-origin:90px 70px;animation:mw-blink 19s infinite}.mw-pupils{translate:var(--mw-look,0) 0}.mw-sleep-eyes{display:none}.mw-sparkles{position:absolute;left:8px;top:12px;color:var(--mw-gold);opacity:0;letter-spacing:10px}.mw-reaction{display:block;min-height:0;font-size:12px;color:var(--world-accent);margin-top:6px}
.mw-welcome[data-resting="true"] .mw-eyes{display:none}.mw-welcome[data-resting="true"] .mw-sleep-eyes{display:block}.mw-welcome[data-resting="true"] .mw-kitten{rotate:-8deg;translate:0 8px}.mw-welcome[data-reaction="stripped"] .mw-tail{animation:mw-tail .5s ease-in-out 5}.mw-welcome[data-reaction="cleaned"] .mw-kitten{animation:mw-purr .7s ease-in-out 4}.mw-welcome:is([data-reaction="finished"],[data-reaction="inspected"]) .mw-sparkles{animation:mw-shimmer 2s ease-out 2}
.mw-sidebar-peek{position:relative;height:32px;overflow:hidden;pointer-events:none;flex:none}.mw-sidebar-peek .mw-kitten{width:65px;right:25px;bottom:-55px}.mw-sidebar-peek>svg:not(.mw-kitten){position:absolute;left:26px;width:25px;color:var(--mw-gold);rotate:30deg}
html[data-world="moonwhisker-dreams"] .sidebar{background:linear-gradient(160deg,color-mix(in srgb,var(--world-surface) 98%,transparent),color-mix(in srgb,var(--world-deep) 96%,transparent));box-shadow:8px 0 24px -12px var(--surface-shadow-color)}
html[data-world="moonwhisker-dreams"] .sidebar :is([data-view].active,[aria-current="page"]){background:linear-gradient(110deg,color-mix(in srgb,var(--world-accent-secondary) 18%,var(--world-surface)),var(--world-elevated));box-shadow:inset 3px 0 var(--world-accent),inset 0 1px var(--mw-edge);border-radius:14px}
html[data-world="moonwhisker-dreams"] :is(.panel,.ops-panel,.hk-live-panel,.daily-room-operations,.metric,.summary-card,.metric-card,.room-card,.reference-guide-card,.dc-card,.config-card,.lc-card,.it-card,.pr-room,.ab-room,.ab-column,[data-surface="card"],[data-surface="panel"]){border-radius:22px}
@layer surface-material.foundation {html[data-world="moonwhisker-dreams"] #app-view .view :is(.panel,.daily-room-operations,.summary-room-row,.room-card,.ops-panel,.lc-card,.it-card,.reference-guide-card,.wo-metric,.wo-card){background:var(--surface-user-paint,radial-gradient(ellipse at top left,#f3a3c60c,transparent 65%),var(--surface-panel))!important;box-shadow:var(--surface-shadow)!important}}
html[data-world="moonwhisker-dreams"] :is(button.button,.button.primary,.daily-operations-counter,.today-progress-stage,.arc-action,.arc-step){border-radius:12px;box-shadow:inset 0 1px var(--mw-edge),0 3px 0 var(--surface-shadow-color),0 7px 12px -7px var(--surface-shadow-color);transition:translate 120ms,box-shadow 120ms}
html[data-world="moonwhisker-dreams"] :is(button.button,.daily-operations-counter,.today-progress-stage,.arc-action,.arc-step):not(:disabled):is(:active,[aria-pressed="true"]){translate:0 2px;box-shadow:inset 0 2px 4px var(--surface-shadow-color),0 1px 0 var(--surface-shadow-color)}
html[data-world="moonwhisker-dreams"] :is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--world-accent);outline-offset:3px}
html[data-world="moonwhisker-dreams"] :is(dialog,.modal-content,.tselect-popup,.popover-panel,[role="menu"],[role="listbox"]){border-radius:20px;border-color:var(--surface-edge)}
html[data-world="moonwhisker-dreams"] .operations-sheet :is(th,td){border-color:var(--surface-edge)}
html[data-world="moonwhisker-dreams"] .operations-sheet tbody tr:nth-child(even){background:color-mix(in srgb,var(--world-accent-secondary) 5%,transparent)}
html[data-world="moonwhisker-dreams"] .operations-sheet thead{box-shadow:0 3px 8px -4px var(--surface-shadow-color)}
@keyframes mw-tail{0%,70%,100%{transform:rotate(0)}80%{transform:rotate(9deg)}90%{transform:rotate(-5deg)}}
@keyframes mw-blink{0%,46%,48%,100%{transform:scaleY(1)}47%{transform:scaleY(.06)}}
@keyframes mw-twinkle{0%,65%,100%{opacity:.2}78%{opacity:.8}}
@keyframes mw-rise{0%,100%{opacity:0;transform:translate(0,70px) rotate(-5deg)}20%,75%{opacity:.7}90%{transform:translate(24px,-110px) rotate(5deg)}}
@keyframes mw-wish{0%,100%{opacity:.15;transform:translate(0,15px) rotate(-15deg)}50%{opacity:.7;transform:translate(28px,-40px) rotate(20deg)}}
@keyframes mw-cloud{to{transform:translateX(3%)}}
@keyframes mw-purr{50%{transform:translateY(-3px) rotate(3deg)}}
@keyframes mw-shimmer{15%,55%{opacity:1;transform:translateY(-5px)}100%{opacity:0;transform:translateY(-18px)}}
html[data-whisker-motion="off"] :is(#moonwhisker-scene,.mw-welcome,.mw-sidebar-peek) *,html[data-whisker-motion="off"] .mw-welcome{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){html[data-world="moonwhisker-dreams"] *,html[data-world="moonwhisker-dreams"] *::before,html[data-world="moonwhisker-dreams"] *::after{animation:none!important;transition:none!important}}
@media(max-width:600px){.mw-welcome{padding:16px;min-height:132px}.mw-copy{max-width:calc(100% - 100px)}.mw-moon-kitten{width:120px;height:125px;right:0;bottom:0}.mw-moon-kitten .mw-kitten{width:80px;right:17px;bottom:9px}.mw-kicker{font-size:8px;letter-spacing:.08em}.mw-copy small{font-size:10px}.mw-copy p{font-size:17px}.mw-lantern:nth-of-type(n+8),.mw-wish:nth-of-type(n+15){display:none}.mw-reaction{font-size:10px}}
}
@media print{#moonwhisker-scene,.mw-welcome,.mw-sidebar-peek{display:none!important}}

@media screen and (max-width:700px){html[data-world="moonwhisker-dreams"] .wo-summary{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-world="moonwhisker-dreams"] .wo-metric{min-width:0;overflow-wrap:anywhere}}
html[data-world="moonwhisker-dreams"][data-theme-tuner-particles="off"] :is(.mw-star,.mw-wish,.mw-lantern){display:none}

html[data-world="moonwhisker-dreams"][data-font-studio="on"] .mw-copy p{font-family:var(--fs-heading,var(--world-font));font-weight:var(--fs-heading-weight,600)}
