@charset "UTF-8";
:root {
  --bg:#07101e; --paper:#101e31; --ink:#e5efff; --muted:#7d91ad;
  --line:rgba(134,177,225,.13); --cyan:#71dbff; --purple:#a695ff;
  --red:#ff7886; --green:#70e2c3; --soft:rgba(91,185,232,.09);
  font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ink); font-synthesis:none; color-scheme:dark;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); font-size:14px; -webkit-tap-highlight-color:transparent; }
button,input,textarea,select { font:inherit; }
button,a,input,textarea,select,summary { touch-action:manipulation; }
button { border:0; background:none; color:inherit; cursor:pointer; }
button:disabled { opacity:.45; cursor:wait; }
a { color:var(--cyan); text-decoration:none; }
a:hover { color:#c5f2ff; }
h1,h2,h3,p { margin-top:0; }
h2 { font-size:18px; font-weight:600; margin-bottom:14px; }
h3 { font-size:13px; font-weight:550; }
p { line-height:1.8; }
small { font-size:11px; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,g[role=button]:focus-visible { outline:2px solid var(--cyan); outline-offset:4px; }
button:hover { filter:brightness(1.12); }
.icon { width:20px; height:20px; vertical-align:middle; flex:none; }
.muted,.hint { color:var(--muted); }
.hint { font-size:12px; line-height:1.9; }
.eyebrow { color:#718eae; font-size:9px; letter-spacing:.17em; font-weight:500; }
.primary,.secondary { min-height:42px; padding:11px 17px; display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:10px; font-size:12px; font-weight:600; }
.primary { color:#081525; background:linear-gradient(105deg,#8bdefc,#80bbff); border:1px solid #a9e2ff; box-shadow:0 3px 19px #5fc9ff19,inset 0 1px #d6f6ff70; }
.secondary { color:#b4c9e8; border:1px solid #7fa6d238; background:#17283e; }
.primary .icon,.secondary .icon { width:16px; height:16px; }
.wide { width:100%; }
.inline { display:inline-flex; }
.text-button { padding:5px 0; display:inline-flex; align-items:center; gap:5px; color:#93c7ef; font-size:11px; white-space:nowrap; }
.text-button .icon { width:13px; height:13px; }
.round-button,.icon-button { width:39px; height:39px; display:inline-flex; align-items:center; justify-content:center; flex:none; border-radius:50%; background:#15253b9c; border:1px solid #7c9fcd29; position:relative; color:#a6b9d5; }
.round-button .icon,.icon-button .icon { width:17px; height:17px; }
.round-button:hover,.icon-button:hover { background:#233c59; color:#c0ecff; }
.tag { padding:5px 9px; background:#62bcf21c; border:1px solid #72c7fa26; border-radius:6px; display:inline-flex; color:#9dcbed; font-size:10px; line-height:1.4; }
.avatar,.contact-avatar { width:31px; height:31px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:linear-gradient(140deg,#284667,#282b50); color:#b8deff; border:1px solid #a4c1e42a; font-size:11px; flex:none; }
.brand { display:flex; align-items:center; gap:10px; white-space:nowrap; }
.brand-mark { width:37px; height:40px; display:inline-flex; align-items:center; justify-content:center; color:#97e6ff; border:1px solid #9cdbff34; border-radius:11px; background:linear-gradient(145deg,#1d4159,#1b2344); box-shadow:0 0 25px #489bdb13; }
.brand-mark svg { width:31px; height:31px; }
.brand strong { display:block; font-size:16px; font-weight:550; letter-spacing:.05em; }
.brand small { display:block; font-size:8px; letter-spacing:.11em; color:#7a91af; margin-top:5px; }
.loading { height:100dvh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; color:#819ab8; background:radial-gradient(ellipse at center,#152d47,var(--bg) 65%); }
/* One continuous spatial workspace. */
.workstation { width:100%; height:100dvh; min-height:610px; position:relative; overflow:hidden; isolation:isolate; background:radial-gradient(ellipse at 35% 35%,#142b433d,transparent 52%),radial-gradient(ellipse at 76% 35%,#24244b50,transparent 50%),#08111f; }
.workstation:before { content:""; position:absolute; inset:0; z-index:-1; background-image:radial-gradient(#82b8eb45 .6px,transparent .7px); background-size:59px 71px; opacity:.23; mask-image:linear-gradient(transparent,#000 25%,#000 75%,transparent); }
.ambient-orbit { position:absolute; width:65vw; height:65vw; border:1px solid #6f9acb08; border-radius:50%; z-index:-1; pointer-events:none; }
.orbit-one { left:4%; top:12%; transform:rotateX(63deg) rotateZ(-35deg); box-shadow:0 0 0 70px #739fc703,0 0 0 145px #739fc703; }
.orbit-two { right:-27%; top:-30%; border-color:#8d77f009; box-shadow:0 0 0 80px #bda2ff03; }
.command-header { height:81px; padding:0 28px; display:flex; align-items:center; gap:30px; position:relative; z-index:10; border-bottom:1px solid #7f9cc510; background:linear-gradient(#08111fe6,#08111f50); }
.venue-id { display:flex; align-items:center; gap:8px; border-left:1px solid #829bb52c; padding-left:28px; }
.venue-id>span { width:5px; height:5px; border-radius:50%; background:var(--cyan); box-shadow:0 0 10px #68c3f4a0; }
.venue-id b { font-size:12px; font-weight:500; color:#c2d1e9; }
.venue-id small { font-size:10px; color:#647c9d; margin-left:7px; }
.header-actions { margin-left:auto; display:flex; align-items:center; gap:10px; }
.connection { color:#7e98ad; display:flex; align-items:center; gap:6px; font-size:10px; margin-right:10px; }
.connection i { width:4px; height:4px; border-radius:50%; background:#c4a46e; box-shadow:0 0 0 3px #c4a46e0e; }
.connection.live i { background:#76d7be; box-shadow:0 0 0 3px #76d7be0c; }
.notification-dot { width:5px; height:5px; border-radius:50%; background:var(--red); position:absolute; right:5px; top:5px; box-shadow:0 0 10px #ff788668; }
.operator-pill { display:flex; align-items:center; gap:8px; margin-left:6px; text-align:left; }
.operator-pill b { display:block; font-size:11px; font-weight:500; margin-bottom:4px; }
.operator-pill small { font-size:9px; color:#738ba8; display:block; }
.scene-heading { position:absolute; z-index:4; left:30px; top:112px; pointer-events:none; }
.scene-heading .eyebrow { font-size:8px; letter-spacing:.2em; }
.scene-heading h1 { font-size:28px; font-weight:500; letter-spacing:.12em; margin:13px 0 10px; }
.scene-heading p { color:#7f96b2; font-size:10px; margin:0; display:flex; align-items:center; }
.scene-heading b { color:#b6dcf3; font-weight:500; margin-left:4px; }
.heading-divider { height:9px; width:1px; margin:0 9px; background:#7397bd3d; }
.situation-strip { position:absolute; z-index:7; left:30px; top:231px; display:flex; flex-wrap:wrap; gap:7px; max-width:420px; }
.situation-chip { display:flex; align-items:center; gap:6px; padding:8px 11px; min-height:32px; color:#8fa8c6; background:#0c1c2dc7; border:1px solid #7ba2cc26; border-radius:7px; backdrop-filter:blur(12px); font-size:9px; }
.situation-chip .icon { width:12px; height:12px; color:#718caa; }
.situation-chip b { font-weight:600; color:#b3d9ef; }
.situation-chip.attention { border-color:#cba87a44; color:#c9ad86; background:#352e263d; }
.situation-chip.attention .icon,.situation-chip.attention b { color:#e3c599; }
.setup-chip { font-size:9px; color:#9e9ac8; border-color:#9e90df23; }
.priority-ribbon { position:absolute; z-index:7; left:249px; top:116px; padding:12px; display:flex; align-items:center; gap:10px; max-width:310px; text-align:left; border:1px solid #88b4e02d; background:linear-gradient(125deg,#142c42d9,#101c2ee8); border-radius:10px; backdrop-filter:blur(15px); box-shadow:0 8px 30px #03081429; }
.ribbon-indicator { width:5px; height:5px; border-radius:50%; background:#80caed; flex:none; box-shadow:0 0 12px #80caed80; }
.priority-ribbon small { display:block; color:#7fa1c0; font-size:8px; margin-bottom:6px; }
.priority-ribbon b { display:block; color:#c9dded; font-size:10px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:225px; }
.priority-ribbon>.icon { width:13px; height:13px; color:#718fad; }
.required-ribbon { border-color:#c1a47f33; }
.required-ribbon .ribbon-indicator { background:#e4bd83; box-shadow:0 0 12px #e4bd8375; }
.scene-canvas { position:absolute; top:95px; bottom:147px; left:12px; right:343px; overflow:hidden; touch-action:none; cursor:grab; }
.scene-canvas.dragging { cursor:grabbing; }
.ground-grid { position:absolute; left:-20%; width:145%; height:90%; bottom:-30%; transform:perspective(550px) rotateX(61deg) rotateZ(-18deg); transform-origin:center; background-image:linear-gradient(#608cb41b 1px,transparent 1px),linear-gradient(90deg,#608cb41b 1px,transparent 1px); background-size:55px 55px; mask-image:radial-gradient(ellipse,#000 10%,transparent 68%); pointer-events:none; }
.map-camera { position:absolute; inset:-10px; transform:translate(var(--pan-x,0px),var(--pan-y,0px)) scale(var(--zoom,1)); transform-origin:50% 52%; will-change:transform; }
.floor-scene { width:100%; height:100%; display:block; overflow:visible; user-select:none; }
.floor-layer { transition:transform .68s cubic-bezier(.2,.75,.15,1),opacity .48s ease,visibility .5s; transform-origin:440px 230px; }
.mode-all .layer-4 { transform:translate(0,286px); }
.mode-all .layer-5 { transform:translate(0,-12px); }
.mode-4 .layer-4,.mode-5 .layer-5 { transform:translate(0,160px) scale(1.18); }
.mode-4 .layer-5 { transform:translate(0,-150px) scale(.94); opacity:0; visibility:hidden; pointer-events:none; }
.mode-5 .layer-4 { transform:translate(0,550px) scale(.94); opacity:0; visibility:hidden; pointer-events:none; }
.scene-shadow { fill:#000; opacity:.28; filter:url(#soft-glow); }
.level-connectors { stroke:#71b2e41d; stroke-width:1; stroke-dasharray:4 8; fill:none; transition:opacity .3s; }
.floor-scene:not(.mode-all) .level-connectors { opacity:0; }
.slab-shadow { fill:#01091299; filter:url(#soft-glow); }
.slab-front { fill:#0d2538; stroke:#37738b44; stroke-width:.8; }
.slab-side { fill:#101a31; stroke:#51639445; stroke-width:.8; }
.slab-top { stroke:#5c9bba63; stroke-width:1; }
.slab-grid { opacity:.65; }
.slab-edge { stroke:#62c3e8; stroke-opacity:.49; stroke-width:1.3; fill:none; }
.corridor-track { fill:none; stroke:#55b0d524; stroke-width:13; }
.corridor-flow { fill:none; stroke:#71d4ec8c; stroke-width:.8; stroke-dasharray:8 14; animation:corridor-flow 14s linear infinite; }
@keyframes corridor-flow { to { stroke-dashoffset:-220; } }
.floor-tag path { fill:#17314b; stroke:#68b9df55; stroke-width:1; }
.floor-tag>text { fill:#cce9ff; font-size:20px; font-weight:500; letter-spacing:.02em; }
.floor-tag .floor-tag-sub { fill:#5c7fa3; font-size:7px; letter-spacing:.17em; }
.room-unit.exam { cursor:pointer; }
.room-wall { stroke:#5c8ba62c; stroke-width:.7; }
.front-wall { fill:#142a40; }
.side-wall { fill:#0d1d32; }
.window-line { stroke:#5c8bac60; stroke-width:3.3; stroke-dasharray:5 3; }
.room-roof { fill:url(#roof-gradient); stroke:#7496b270; stroke-width:.9; transition:fill .2s,stroke .2s; }
.room-unit.assigned .room-roof { fill:url(#roof-area); stroke:#71bed393; }
.room-unit.assigned .front-wall { fill:#184454; }
.room-unit.assigned .window-line { stroke:#59b3c1a0; }
.room-unit.own .room-roof { stroke:#c7d5b4; stroke-width:1.7; }
.room-unit.own .front-wall { fill:#34504e; }
.room-unit.selected .room-roof { fill:url(#roof-active); stroke:#9beaff; stroke-width:1.7; filter:drop-shadow(0 0 5px #64caff35); }
.room-unit.selected .front-wall { fill:#24667c; }
.room-unit.selected .side-wall { fill:#193d62; }
.room-unit.selected .window-line { stroke:#95e7ff; }
.room-unit.exam:hover .room-roof { stroke:#c8f1ff; stroke-width:1.6; }
g[role=button]:focus-visible { outline:none; }
g[role=button]:focus-visible>.room-roof { stroke:#c3f3ff; stroke-width:2.6; filter:drop-shadow(0 0 7px #70cfff60); }
.room-unit.facility .room-roof { fill:#1a2b3a; stroke:#5b758c66; }
.room-unit.facility .room-wall { fill:#101e2e; }
.desk-tile { fill:#b1dcf3; opacity:.11; }
.room-number { fill:#c4d9ec; font-family:Inter,"Segoe UI",sans-serif; font-size:16px; font-weight:550; pointer-events:none; letter-spacing:.025em; }
.room-unit.assigned .room-number { fill:#c1f0ff; }
.room-unit.selected .room-number { fill:#fff; }
.room-sub { fill:#668cae; font-family:Inter,"Microsoft YaHei",sans-serif; font-size:8px; pointer-events:none; }
.room-unit.assigned .room-sub { fill:#87bbd8; }
.room-unit.selected .room-sub { fill:#b6e2ef; }
.facility-label { fill:#68829e; font-size:8px; writing-mode:vertical-rl; letter-spacing:2px; pointer-events:none; }
.own-pin circle:first-child { fill:#d5dba8; filter:drop-shadow(0 0 6px #ceda9c50); }
.own-pin circle:nth-child(2) { fill:#4b6354; }
.own-pin path { stroke:#d5dba8; stroke-width:1; }
.room-beacon { cursor:pointer; }
.room-beacon>path { stroke:#ff7b8e; stroke-width:1; opacity:.65; }
.beacon-wave { fill:#f9678542; animation:beacon 2s ease-out infinite; transform-box:fill-box; transform-origin:center; }
.beacon-core { fill:#ff9ba6; filter:drop-shadow(0 0 7px #ff557b); }
.room-beacon rect { fill:#662b45; stroke:#ff819b80; stroke-width:.6; }
.room-beacon text { fill:#ffd6df; font-size:10px; font-weight:600; }
@keyframes beacon { 0% { opacity:.8; transform:scale(.5); } 100% { opacity:0; transform:scale(1.8); } }
.map-controls { position:absolute; top:114px; right:358px; z-index:7; display:flex; flex-direction:column; align-items:center; gap:14px; }
.floor-switch { padding:4px; background:#122239cc; border:1px solid #7699c329; border-radius:22px; display:flex; flex-direction:column; gap:3px; box-shadow:0 6px 20px #0002; backdrop-filter:blur(18px); }
.floor-switch button { width:43px; min-height:42px; border-radius:18px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:#6f87a5; font-size:11px; }
.floor-switch button .icon { width:16px; height:16px; }
.floor-switch button:has(.icon) span { font-size:8px; }
.floor-switch button.active { background:linear-gradient(145deg,#305171,#263658); color:#c4ecff; box-shadow:inset 0 0 0 1px #a0d2ff2c,0 2px 8px #030b1533; }
.camera-controls { display:flex; flex-direction:column; gap:7px; }
.camera-controls .round-button { width:36px; height:36px; background:#112239ba; backdrop-filter:blur(10px); }
.camera-controls .icon { width:15px; height:15px; }
.scene-legend { position:absolute; z-index:5; left:30px; bottom:162px; display:flex; align-items:center; gap:17px; color:#7e98b4; font-size:9px; }
.scene-legend>span { display:flex; align-items:center; gap:6px; }
.scene-legend small { font-size:8px; color:#465f7c; margin-left:8px; }
.legend-own,.legend-area,.legend-dot { width:5px; height:5px; display:inline-block; border-radius:50%; flex:none; }
.legend-own { background:#d2d9aa; box-shadow:0 0 8px #d2d9aa30; }
.legend-area { background:#64c7e8; }
.legend-dot { background:var(--red); box-shadow:0 0 7px #ff7d8722; }
.scene-coordinate { position:absolute; left:30px; bottom:140px; font-family:Consolas,monospace; font-size:7px; letter-spacing:.16em; color:#3a5876; }
.scene-coordinate>span { margin-left:20px; }
/* Information belongs to the selected room. */
.context-dock { position:absolute; z-index:8; top:108px; right:24px; bottom:151px; width:302px; padding:18px; border:1px solid #779cc52c; background:linear-gradient(145deg,#152338e8,#0c192bec); border-radius:19px; box-shadow:0 20px 70px #00000030,inset 0 1px #b5ceec08; backdrop-filter:blur(24px); overflow:auto; scrollbar-width:thin; scrollbar-color:#344c69 transparent; }
.dock-cap { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.dock-kicker { color:#7fa9c5; font-size:9px; letter-spacing:.12em; }
.dock-source { width:26px; height:26px; border-color:transparent; background:transparent; }
.dock-source .icon { width:14px; height:14px; }
.dock-expand { display:none; }
.dock-title { display:flex; align-items:center; justify-content:space-between; margin:13px 0 18px; gap:10px; }
.dock-title h2 { font-size:38px; line-height:1; letter-spacing:-.04em; font-weight:400; margin:0; font-family:Inter,"Segoe UI",sans-serif; }
.dock-title h2>span { font-size:24px; margin-right:3px; color:#6d8da8; }
.room-health { display:flex; align-items:center; gap:5px; color:#6c8b99; font-size:8px; }
.room-health i { width:4px; height:4px; background:#6eae9e; border-radius:50%; }
.room-health.has-issue { color:#bc8799; }
.room-health.has-issue { min-height:20px; padding:2px 0; }
.room-health.has-issue i { background:#fa8392; box-shadow:0 0 8px #fa839260; }
.room-health>.icon { width:9px; height:9px; }
.room-counts { display:grid; grid-template-columns:1fr 1fr 1fr; padding:14px 0; margin-bottom:18px; border-radius:10px; border:1px solid #73a2ca1c; background:linear-gradient(120deg,#16324766,#19294633); }
.room-counts>div { text-align:center; border-right:1px solid #88b1da16; }
.room-counts>div:last-child { border:0; }
.room-counts b { display:block; color:#d5f1ff; font-size:23px; font-weight:450; line-height:1.1; font-family:Inter,"Segoe UI",sans-serif; }
.room-counts span { display:block; font-size:8px; color:#7796b3; margin-top:8px; }
.section-line { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.section-line h2,.section-line h3 { margin:0; }
.room-contacts .section-line { margin-bottom:9px; }
.room-contacts h3 { color:#7d98b3; font-size:9px; font-weight:400; }
.room-contacts .text-button { font-size:8px; }
.support-heading { margin-top:15px; }
.pending-assignment { color:#a69a79; font-size:8px; }
.contact-card { display:flex; align-items:center; gap:11px; padding:16px; border:1px solid #789bc02c; border-radius:11px; background:#12243a99; min-width:0; }
.contact-card>div { flex:1; min-width:0; }
.contact-card b { display:block; color:#c2d8ef; font-size:12px; font-weight:500; margin-bottom:5px; }
.contact-card div>span { display:block; font-size:10px; color:#6f8cac; margin-bottom:5px; }
.contact-card div>a { font-family:Inter,"Segoe UI",sans-serif; font-size:11px; letter-spacing:.035em; color:#82a7c8; }
.contact-avatar { width:34px; height:34px; background:#203952; color:#9bc5e2; }
.tech-avatar { background:#28304e; color:#b8acee; }
.call-button { width:32px; height:32px; display:flex; align-items:center; justify-content:center; flex:none; border-radius:50%; background:#406c8d17; border:1px solid #82c4e820; color:#82c5e4; }
.call-button .icon { width:14px; height:14px; }
.contact-card.compact { padding:7px 0; border:0; border-radius:0; background:none; gap:9px; }
.compact .contact-avatar { width:27px; height:27px; font-size:9px; }
.compact b { font-size:10px; margin-bottom:4px; }
.compact div>span { display:inline; font-size:8px; margin-right:6px; }
.compact div>a { font-size:8px; letter-spacing:0; }
.compact .call-button { width:26px; height:26px; }
.compact .call-button .icon { width:11px; height:11px; }
.mobile-contacts { display:none; }
.room-case-list { margin:17px 0 13px; }
.room-case { display:flex; align-items:center; gap:8px; width:100%; text-align:left; padding:10px 0; border-top:1px solid #8ca8ce15; }
.room-case>span { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; color:#a2bad2; }
.room-case>small { font-size:8px; color:#d1b391; }
.room-case>.icon { width:11px; height:11px; color:#597795; }
.dock-actions { display:flex; align-items:center; gap:8px; }
.dock-actions>.primary { flex:1; min-height:38px; font-size:11px; padding:9px 11px; }
.dock-actions>.round-button { width:36px; height:36px; border-radius:10px; background:#223b554d; }
.room-cases-button>span { position:absolute; top:-3px; right:-3px; background:#70394a; font-size:8px; border-radius:4px; padding:1px 3px; }
.point-leads { border-top:1px solid #8299bf18; padding-top:14px; margin-top:16px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.point-leads>.text-button { font-size:8px; color:#6f8baa; }
.point-leads>div { display:flex; gap:10px; }
.point-leads a { display:flex; align-items:center; gap:5px; color:#8fa8c4; font-size:8px; }
.point-leads a>span { width:20px; height:20px; display:flex; align-items:center; justify-content:center; color:#a2bfe0; font-size:8px; border-radius:50%; background:#253450; }
.dock-empty { text-align:center; color:#6b87a5; padding:60px 0 40px; }
.dock-empty>.icon { width:36px; height:36px; stroke-width:1; color:#55799b; margin-bottom:20px; }
.dock-empty h2 { font-size:16px; color:#b8cbe0; font-weight:400; }
.dock-empty p { font-size:11px; line-height:2; }
.scope-restricted { padding:28px 0; text-align:center; }
.scope-restricted>.icon { color:#6889b0; width:28px; height:28px; margin-bottom:12px; }
.scope-restricted p { color:#8298b4; font-size:11px; line-height:2; }
/* Only the two next actions are permanently visible. */
.next-strip { position:absolute; z-index:9; bottom:20px; left:26px; right:24px; min-height:109px; padding:18px 21px; display:flex; align-items:center; gap:23px; border:1px solid #829dc22d; border-radius:17px; background:linear-gradient(110deg,#172438d9,#0f1a2edc); box-shadow:0 12px 60px #01050d25,inset 0 1px #e1edff07; backdrop-filter:blur(22px); }
.next-strip-label { color:#819cb8; font-size:10px; display:flex; flex-direction:column; align-items:center; gap:11px; flex:none; padding-right:18px; border-right:1px solid #91b3d221; }
.next-strip-label>.icon { width:18px; height:18px; color:#88b9d7; }
.next-event-grid { flex:1; min-width:0; display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.next-event { display:flex; align-items:center; text-align:left; gap:17px; min-width:0; padding:0; }
.next-event:first-child { padding-right:24px; border-right:1px solid #91b3d21c; }
.next-event-time { flex:none; }
.next-event-time b { font-size:29px; letter-spacing:-.04em; font-weight:400; display:block; line-height:1.2; color:#e2edff; }
.next-event-time span { display:block; font-size:8px; color:#738ba7; margin-top:8px; }
.next-event.imminent .next-event-time b { color:#91dcff; }
.next-event-content { flex:1; min-width:0; }
.next-event-content small { display:block; font-size:8px; color:#897da9; margin-bottom:6px; }
.next-event-content h3 { color:#bccfe7; font-size:11px; font-weight:500; margin:0 0 6px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.next-event-content p { margin:0; color:#5e7b99; font-size:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.next-event>.icon { width:13px; height:13px; color:#557291; }
.all-schedule { display:flex; align-items:center; gap:8px; color:#86a6c6; font-size:9px; padding-left:17px; border-left:1px solid #91b3d221; flex:none; min-height:47px; }
.all-schedule>.icon { width:16px; height:16px; }
.all-schedule>.icon:last-child { width:12px; height:12px; }
.schedule-complete { font-size:12px; color:#83a5be; grid-column:span 2; display:flex; align-items:center; gap:12px; }
.schedule-complete .icon { width:17px; height:17px; color:#7dd1bc; }
/* Context sheets retain the map behind them. */
.modal-open { overflow:hidden; }
.modal-backdrop { position:fixed; inset:0; z-index:50; background:#020714a3; backdrop-filter:blur(9px); display:flex; align-items:center; justify-content:center; padding:25px; }
.modal { max-width:530px; width:100%; max-height:calc(100dvh - 50px); display:flex; flex-direction:column; border:1px solid #92b2df3a; border-radius:21px; overflow:hidden; box-shadow:0 20px 100px #0008; background:linear-gradient(145deg,#152339,#0e1a2d); }
.wide-modal { max-width:840px; }
.modal>header { display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid #7e9cbe21; padding:16px 23px; flex:none; }
.modal>header h2 { margin:0; font-size:15px; font-weight:500; letter-spacing:.025em; }
.modal>header .icon-button { height:31px; width:31px; border-color:#88a1c315; background:#2c3e582e; }
.modal-body { padding:23px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#425875 transparent; }
.page-heading { display:flex; justify-content:flex-end; align-items:center; gap:15px; margin-bottom:15px; }
.page-heading>div { display:none; }
.page-heading:has(>.primary) { margin-bottom:18px; }
.page-heading:not(:has(>button)) { display:none; }
.panel { padding:21px; border:1px solid #7c9abf20; border-radius:12px; background:#192c4338; min-width:0; }
.panel h2 { font-size:14px; font-weight:500; margin-bottom:17px; }
.panel>.section-line { margin-bottom:15px; }
.settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
.span-two { grid-column:span 2; }
.identity { display:flex; align-items:center; gap:13px; margin:20px 0; }
.large.avatar { width:43px; height:43px; font-size:13px; }
.identity h3 { font-size:16px; margin:0 0 6px; font-weight:500; }
.identity p { color:#7f97b6; font-size:11px; margin:0; }
.definition { display:flex; align-items:baseline; justify-content:space-between; gap:15px; padding:12px 0; border-bottom:1px solid #87a4c517; font-size:10px; line-height:1.9; }
.definition>span { color:#6887a7; white-space:nowrap; }
.definition>b { font-size:10px; font-weight:400; color:#a2bad5; text-align:right; overflow-wrap:anywhere; }
.settings-grid .primary { margin-top:15px; }
.settings-grid .text-button { margin:8px 12px 0 0; font-size:10px; }
.settings-grid .hint { font-size:10px; margin-top:16px; }
.settings-grid .stack-form { margin-top:20px; }
.inline-form { display:flex; align-items:flex-end; gap:13px; flex-wrap:wrap; border-top:1px solid #8cacc41a; padding-top:20px; margin:22px 0; }
.inline-form>label:not(.checkbox) { width:120px; }
.inline-form .checkbox { margin-bottom:11px; font-size:10px; }
.inline-form .primary { margin:0; }
.stack-form { display:flex; flex-direction:column; gap:19px; }
.assign-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:17px; margin:23px 0; }
.assign-grid label>span { display:flex; justify-content:space-between; gap:5px; }
.assign-grid small { font-size:8px; color:#4c7094; }
.assign-grid label { font-size:10px; }
.assign-grid select { min-height:37px!important; font-size:10px!important; }
.table-scroll { overflow:auto; max-width:100%; }
table { width:100%; border-collapse:collapse; margin-top:15px; font-size:10px; }
th { padding:10px; color:#6486aa; text-align:left; font-weight:400; background:#0a17297a; white-space:nowrap; }
td { padding:12px 10px; border-bottom:1px solid #718ba31e; color:#91adc9; line-height:1.8; }
td .text-button { margin:0!important; }
.audit-list { max-height:260px; overflow:auto; }
.audit-list>div { display:flex; align-items:center; gap:16px; padding:11px 0; border-bottom:1px solid #8ca3c00d; font-size:10px; }
.audit-list time { min-width:90px; color:#557798; }
.audit-list b { font-weight:400; min-width:45px; color:#abc6de; }
.audit-list>div>span { color:#7c9cb8; }
.inbox-panel { padding:0; border:0; background:none; }
.inbox-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:10px; border-bottom:1px solid #7f9abe25; padding-bottom:16px; }
.filter-tabs { display:flex; align-items:center; gap:20px; }
.filter-tabs button { min-height:35px; font-size:11px; color:#6489a9; padding:8px 0; border-bottom:2px solid transparent; white-space:nowrap; }
.filter-tabs button.active { color:#9adaf5; border-color:#7cc8ea; }
.filter-tabs button span { font-size:8px; color:#7799b9; border-radius:4px; padding:2px 4px; margin-left:3px; background:#31557730; }
.search { max-width:205px; min-height:36px!important; font-size:10px!important; }
.case-row { display:flex; align-items:center; gap:11px; width:100%; padding:17px 0; text-align:left; border-bottom:1px solid #7997b51c; min-width:0; }
.case-kind { width:32px; height:34px; border-radius:8px; display:flex; align-items:center; justify-content:center; flex:none; background:#294d6b50; color:#81badb; }
.case-kind.technical { background:#4d365c4f; color:#b19dc6; }
.case-kind .icon { width:16px; height:16px; }
.case-main { flex:1; min-width:0; }
.case-row-title { display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12px; color:#afc5de; line-height:1.7; }
.case-row.unread .case-row-title { color:#dfedff; }
.case-main>small { display:block; font-size:9px; color:#5e80a2; margin-top:6px; line-height:1.8; }
.case-row>.icon { width:12px; height:12px; color:#456c91; }
.unread-dot { width:4px; height:4px; border-radius:50%; background:#77d9ff; flex:none; }
.required-tag { color:#e1bf9a; border:1px solid #b18b5d40; background:#765a3033; border-radius:4px; font-size:8px; padding:1px 4px; font-weight:500; }
.status { padding:4px 7px; border-radius:5px; color:#8aa3bc; font-size:9px; background:#2345663b; white-space:nowrap; flex:none; }
.status.open { color:#c9ac89; background:#80643c24; }
.status.handling { color:#8bc4ef; background:#3576a331; }
.status.escalated { color:#f19fad; background:#aa52602e; }
.status.resolved { color:#83d4bc; background:#387d6d29; }
.status.closed { color:#758ba5; background:#566e8c29; }
.empty { text-align:center; color:#64809f; padding:45px 15px; }
.empty>.icon { width:30px; height:30px; stroke-width:1.1; color:#426788; margin-bottom:15px; }
.empty h3 { font-size:13px; font-weight:400; color:#91adc9; margin-bottom:8px; }
.empty p { font-size:11px; margin:0; color:#4e7395; }
.contact-groups>section { margin-bottom:25px; }
.contact-groups>section>h3 { color:#7595b4; margin:0 0 13px; font-size:11px; }
.contact-groups>section>.contact-card { margin:9px 0; }
.contact-groups .section-line { margin-bottom:14px; }
.contact-groups .section-line h2 { font-size:14px; }
.contact-groups .section-line>.muted { font-size:10px; }
.contact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
/* The full schedule is a transient sheet. */
.schedule-layout { display:block; }
.schedule-panel { border:0; padding:0; background:none; }
.schedule-aside { display:none; }
.schedule-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-bottom:20px; margin-bottom:8px; border-bottom:1px solid #7795b421; }
.date-tabs { display:flex; gap:9px; }
.date-tabs>button { padding:10px 14px; border-radius:9px; text-align:left; color:#6383a2; }
.date-tabs>button.active { color:#a2d9f4; background:#29547540; }
.date-tabs b { display:block; font-size:14px; font-weight:400; }
.date-tabs small { display:block; margin-top:6px; color:#6386a7; font-size:8px; }
.segmented { display:inline-flex; border:1px solid #7f9cc626; padding:3px; border-radius:8px; background:#101f33; }
.segmented button { min-height:29px; padding:5px 13px; border-radius:5px; font-size:10px; color:#5b7d9f; }
.segmented button.active { background:#2c4868; color:#badff5; }
.timeline { padding:20px 5px 5px; }
.timeline-day { display:flex; align-items:baseline; gap:12px; color:#a3cee9; font-size:14px; padding:5px 0 20px; margin-top:8px; font-weight:400; }
.timeline-day>span { color:#527e9f; font-size:9px; }
.schedule-preference { margin-left:18px; font-size:10px; }
.timeline-event { display:flex; gap:20px; align-items:flex-start; position:relative; width:100%; text-align:left; padding:0 0 30px; }
.timeline-event:before { content:""; position:absolute; top:7px; left:73px; width:1px; height:100%; background:#47729738; }
.timeline-event:last-child:before { display:none; }
.timeline-time { color:#b7d7f4; font-size:17px; width:49px; flex:none; line-height:1.4; font-weight:400; }
.timeline-time small { display:block; color:#597a9b; font-size:9px; margin-top:5px; }
.timeline-pin { width:9px; height:9px; border-radius:50%; border:2px solid #567d9e; background:#101e33; margin-top:5px; z-index:1; flex:none; }
.timeline-event.next .timeline-pin { background:#85d5f7; border-color:#85d5f7; box-shadow:0 0 0 4px #4aa7df18,0 0 13px #8cdfff45; }
.timeline-content { flex:1; min-width:0; }
.event-group { color:#5f8aab; font-size:9px; }
.timeline-content h3 { font-size:12px; font-weight:500; color:#bad0e9; margin:7px 0; line-height:1.7; }
.timeline-content p { color:#6786a7; font-size:10px; line-height:1.9; margin:0 0 8px; }
.event-reminder { color:#577fa0; font-size:9px; display:inline-flex; align-items:center; gap:5px; }
.event-reminder .icon { width:11px; height:11px; }
.timeline-event>.icon { width:13px; height:13px; margin-top:30px; color:#4d7597; }
.timeline-event.past { opacity:.52; }
.event-modal-time { font-family:Inter,"Segoe UI",sans-serif; color:#b1e5ff; font-size:32px; font-weight:400; margin:23px 0 14px; }
.event-body,.message-body { color:#a0b7d2; font-size:12px; line-height:2.1; white-space:pre-wrap; overflow-wrap:anywhere; padding:20px 0; }
.modal-body>h2 { font-size:17px; line-height:1.8; color:#d1e3f7; }
.modal-body>h3 { font-size:12px; color:#779bb8; margin-top:24px; }
.upcoming-row { display:flex; gap:17px; align-items:center; width:100%; text-align:left; padding:16px 0; border-top:1px solid #7a9abe20; }
.upcoming-row b { font-size:15px; color:#9cccdf; font-weight:400; }
.upcoming-row>span { flex:1; color:#7e9fbc; font-size:11px; line-height:1.8; }
.upcoming-row>.icon { width:12px; height:12px; color:#4e7194; }
/* Forms and ticket details. */
label { display:flex; flex-direction:column; gap:9px; color:#9ab1cc; font-size:12px; }
input:not([type=checkbox]):not([type=radio]),textarea,select { width:100%; min-height:42px; border:1px solid #7896bc37; border-radius:8px; background:#0b192c; color:#c4d8ed; padding:10px 12px; font-size:12px; outline-offset:2px; }
input::placeholder,textarea::placeholder { color:#3d6085; }
textarea { min-height:90px; resize:vertical; line-height:1.9; }
select { padding-right:25px; }
input[type=checkbox],input[type=radio] { width:16px; height:16px; accent-color:#70bde7; flex:none; }
input[type=checkbox] { margin:0; }
.checkbox { flex-direction:row; align-items:center; gap:8px; min-height:27px; line-height:1.7; cursor:pointer; font-size:11px; }
.checkbox small { display:block; font-size:9px; color:#5a7fa0; }
.form-error { font-size:11px; color:#ee98a4; line-height:1.8; }
.form-error:empty { display:none; }
.type-choice { display:flex; gap:11px; }
.type-choice>label { flex:1; }
.type-choice>label>input { opacity:0; position:absolute; width:1px; height:1px; }
.type-choice>label>span { padding:15px; border:1px solid #6b89ad32; border-radius:10px; cursor:pointer; color:#6f91b0; font-size:12px; }
.type-choice>label>input:checked+span { border-color:#7ccbf282; background:#2b648733; color:#b1dff5; }
.type-choice>label>input:focus-visible+span { outline:2px solid var(--cyan); }
.type-choice .icon { width:15px; height:15px; margin-right:5px; }
.type-choice small { display:block; margin-top:8px; font-size:9px; color:#587d9f; line-height:1.7; }
.target-details { border:1px solid #7393b62c; border-radius:9px; padding:13px; }
details>summary { color:#82b3d3; font-size:11px; line-height:1.9; cursor:pointer; }
.target-rooms { display:flex; flex-wrap:wrap; gap:10px 16px; padding:14px 0; border-bottom:1px solid #7c9ec323; }
.target-people { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding-top:15px; max-height:230px; overflow:auto; }
.target-people>.checkbox { font-size:10px; }
.target-people .checkbox span { overflow-wrap:anywhere; }
.target-people input[type=checkbox] { width:14px; height:14px; }
.target-details+.checkbox { margin-top:16px; }
#message-targets>label { margin-bottom:17px; }
.two-columns { display:grid; grid-template-columns:1fr 1fr; gap:17px; }
.case-detail h1 { font-size:22px; line-height:1.7; font-weight:500; margin:20px 0 9px; color:#e4efff; }
.case-detail .hint { font-size:10px; }
.message-body { border-bottom:1px solid #7c9bc425; }
.ack-banner { display:flex; align-items:center; gap:9px; padding:14px; margin:20px 0; border-radius:10px; background:#76613b1f; border:1px solid #ac8f5e31; color:#ccb18c; font-size:11px; flex-wrap:wrap; }
.ack-banner>.icon { width:16px; height:16px; }
.ack-banner>.primary { margin-left:auto; min-height:32px; padding:7px 12px; font-size:10px; }
.receipts { margin:22px 0; }
.receipt-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; margin:18px 0; padding:15px; background:#16324b38; border:1px solid #7e9bbc17; border-radius:9px; }
.receipt-grid b { display:block; font-size:10px; font-weight:400; color:#a2c4dc; margin-bottom:5px; }
.receipt-grid small { color:#5f84a2; font-size:9px; }
.case-actions { display:flex; gap:9px; flex-wrap:wrap; border-bottom:1px solid #7b9ac226; padding-bottom:22px; margin-bottom:23px; }
.case-actions>.secondary { min-height:34px; font-size:10px; padding:8px 12px; }
.danger-text { color:#df9ba9; }
.discussion-title { color:#91b3d2; font-size:12px; margin:24px 0; }
.update { display:flex; gap:14px; margin:18px 0; }
.update-dot { width:6px; height:6px; border-radius:50%; background:#668dab; flex:none; margin-top:6px; }
.update>div { flex:1; min-width:0; }
.update b { font-size:11px; font-weight:500; color:#a3c5df; }
.update time { color:#4f7799; font-size:9px; margin-left:13px; }
.update p { color:#7f9dba; font-size:12px; line-height:2; white-space:pre-wrap; overflow-wrap:anywhere; margin:8px 0; }
#reply-form { border-top:1px solid #7d9ac320; padding-top:22px; margin-top:20px; }
.notice-row { display:flex; gap:13px; align-items:flex-start; padding:19px 0; width:100%; text-align:left; border-bottom:1px solid #81a0c722; }
.notice-row>span:nth-child(2) { flex:1; min-width:0; }
.notice-row b { font-size:12px; line-height:1.8; font-weight:400; color:#8eaecc; }
.notice-row.unread b { color:#cee7f7; }
.notice-row p { font-size:11px; color:#5d82a4; margin:5px 0; line-height:1.9; }
.notice-row small { color:#3f658a; font-size:9px; }
.notice-row>.unread-dot { margin-top:7px; }
.source-map { width:100%; display:block; height:auto; border-radius:8px; }
.invite-code { font-family:Consolas,monospace; font-size:17px!important; margin:10px 0 20px; }
#toast { position:fixed; left:50%; bottom:27px; z-index:100; max-width:min(530px,calc(100% - 30px)); background:#183753ed; border:1px solid #80bad747; border-radius:11px; color:#c3e6f9; padding:13px 20px; font-size:12px; line-height:1.8; box-shadow:0 8px 40px #0005; backdrop-filter:blur(15px); transform:translate(-50%,20px); opacity:0; pointer-events:none; transition:.2s; }
#toast.show { opacity:1; transform:translate(-50%,0); }
#toast.error { background:#4f293ded; color:#ffd1da; border-color:#ce7e9540; }
.room-shortcuts { display:none; }
/* Invitation and device binding use the same spatial language. */
.login-page { min-height:100dvh; display:grid; grid-template-columns:1.15fr 1fr; background:radial-gradient(ellipse at 30% 40%,#183e5c6b,transparent 60%),radial-gradient(ellipse at 70% 80%,#312d5c50,transparent 65%),#091321; }
.login-intro { position:relative; padding:55px 10% 35px; display:flex; flex-direction:column; overflow:hidden; }
.login-intro>.brand { margin-bottom:90px; }
.login-intro .eyebrow { font-size:8px; color:#5b83a2; }
.login-intro h1 { font-size:clamp(32px,3.3vw,52px); font-weight:450; line-height:1.6; letter-spacing:.04em; color:#dcecff; margin-bottom:22px; z-index:1; }
.login-intro>p { color:#678aab; font-size:13px; line-height:2; z-index:1; }
.login-mini { display:flex; align-items:center; gap:11px; color:#537b9d; font-size:10px; margin-top:14px; }
.login-mini>span:not(.mini-dot) { margin-left:10px; }
.mini-dot { width:4px; height:4px; border-radius:50%; background:#7bd7e5; }
.login-art { position:absolute; width:105%; height:64%; bottom:-3%; right:-22%; opacity:.55; pointer-events:none; }
.login-art .floor-scene { pointer-events:none; }
.login-note { margin-top:auto; padding-top:30px; color:#385b7c; font-size:9px; letter-spacing:.08em; z-index:1; }
.login-main { position:relative; display:flex; align-items:center; justify-content:center; padding:70px 45px; background:#07101a38; border-left:1px solid #7c9fc519; }
.login-card { width:100%; max-width:350px; }
.login-card h2 { font-size:26px; font-weight:450; margin:25px 0 13px; }
.login-card>p { font-size:12px; color:#6f8ba8; margin-bottom:30px; }
.login-card form { display:flex; flex-direction:column; gap:21px; }
.login-card .primary { margin-top:5px; min-height:47px; }
.login-security { display:flex; gap:10px; border-top:1px solid #7293b526; margin-top:29px; padding-top:23px; }
.login-security .icon { color:#4e789a; width:17px; height:17px; margin-top:4px; }
.login-security p { color:#476d8d; font-size:10px; line-height:2; }
.login-main footer { position:absolute; bottom:30px; font-size:9px; color:#365a79; }
.steps { display:flex; gap:20px; margin:20px 0; font-size:10px; color:#4c6d8d; }
.steps b { color:#87c1de; font-weight:400; }
.onboard-map { background:#12243a40; border:1px solid #648eb525; border-radius:13px; padding:13px; margin-bottom:22px; }
.onboard-map .section-line { font-size:10px; color:#749bb7; }
.onboard-map>.floor-scene { height:215px; margin-top:-20px; margin-bottom:-10px; }
.onboard-map .floor-tag { display:none; }
.login-card>.text-button { margin-top:15px; }
@media(min-width:1500px) {
  .context-dock { width:330px; padding:22px; }
  .scene-canvas { right:370px; left:45px; }
  .map-controls { right:387px; }
  .room-counts { padding:17px 0; }
  .compact b { font-size:11px; }
  .compact div>span,.compact div>a { font-size:9px; }
  .contact-card.compact { padding:9px 0; }
  .scene-heading { left:39px; top:122px; }
  .situation-strip { left:39px; top:243px; }
  .priority-ribbon { left:272px; top:123px; }
}
@media(max-width:1200px) {
  .venue-id small { display:none; }
  .command-header { gap:22px; padding:0 24px; }
  .venue-id { padding-left:22px; }
  .context-dock { width:280px; right:20px; padding:16px; }
  .scene-canvas { right:305px; left:0; }
  .map-controls { right:315px; }
  .scene-heading { left:25px; top:108px; }
  .scene-heading h1 { font-size:25px; }
  .situation-strip { left:25px; top:221px; max-width:285px; }
  .priority-ribbon { top:109px; left:221px; max-width:250px; padding:10px; }
  .priority-ribbon b { max-width:175px; }
  .scene-legend { left:25px; gap:12px; }
  .scene-legend small { display:none; }
  .scene-coordinate { left:25px; }
  .next-strip { padding:17px; gap:17px; left:22px; right:20px; }
  .next-event { gap:12px; }
  .next-event-grid { gap:17px; }
  .next-event-time b { font-size:25px; }
  .next-event-content h3 { font-size:10px; }
  .next-event-content p { font-size:8px; }
  .next-event:first-child { padding-right:17px; }
  .all-schedule { flex-direction:column; gap:6px; padding-left:14px; }
  .all-schedule>.icon:last-child { display:none; }
}
@media(max-width:980px) {
  .command-header { height:72px; padding:0 19px; gap:15px; }
  .venue-id { padding-left:15px; }
  .venue-id b { font-size:10px; }
  .header-actions { gap:7px; }
  .operator-pill>span:last-child { display:none; }
  .connection { font-size:9px; margin-right:3px; }
  .manual-shortcut { display:none; }
  .brand strong { font-size:14px; }
  .brand small { font-size:7px; }
  .brand-mark { width:32px; height:35px; }
  .brand-mark svg { width:27px; height:27px; }
  .header-actions>.round-button { width:34px; height:34px; }
  .context-dock { width:260px; right:17px; top:96px; bottom:145px; padding:15px; }
  .scene-canvas { right:278px; top:95px; }
  .map-controls { right:286px; top:100px; }
  .floor-switch button { width:35px; min-height:36px; font-size:10px; }
  .camera-controls { gap:6px; }
  .camera-controls .round-button { width:31px; height:31px; }
  .scene-heading { top:100px; left:22px; }
  .scene-heading h1 { font-size:23px; }
  .situation-strip { left:22px; top:206px; max-width:260px; gap:5px; }
  .situation-chip { padding:7px 9px; font-size:8px; }
  .priority-ribbon { top:101px; left:220px; max-width:230px; }
  .scene-coordinate { display:none; }
  .next-strip { left:18px; right:17px; min-height:103px; gap:13px; }
  .next-strip-label { font-size:9px; padding-right:13px; }
  .next-event-grid { gap:13px; }
  .next-event:first-child { padding-right:13px; }
  .next-event-content p { display:none; }
  .next-event-time b { font-size:22px; }
  .next-event-time span { font-size:7px; }
  .next-event-content small { font-size:7px; }
  .next-event>.icon { display:none; }
  .next-event-content h3 { margin-bottom:0; }
  .all-schedule { font-size:8px; padding-left:12px; }
  .scene-legend { bottom:144px; left:23px; font-size:8px; }
  .room-health { font-size:7px; }
  .dock-title h2 { font-size:34px; }
  .point-leads a { font-size:7px; }
}
@media(max-width:860px) {
  .workstation { min-height:650px; }
  .command-header { height:67px; padding:0 20px; }
  .scene-heading { top:90px; left:24px; }
  .scene-heading .eyebrow { font-size:7px; }
  .scene-heading h1 { font-size:24px; margin:10px 0 9px; }
  .scene-heading p { font-size:9px; }
  .scene-canvas { top:91px; bottom:348px; left:4%; right:4%; }
  .map-controls { right:23px; top:92px; }
  .floor-switch { padding:3px; border-radius:19px; }
  .floor-switch button { min-height:37px; width:36px; border-radius:16px; }
  .camera-controls { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
  .camera-controls .round-button { width:29px; height:29px; }
  .reset-camera { display:none; }
  .camera-controls [data-action=locate-room] { grid-column:span 2; justify-self:center; }
  .situation-strip { top:109px; left:165px; max-width:calc(100% - 245px); }
  .priority-ribbon { top:73px; left:24px; right:108px; max-width:none; padding:8px 10px; min-height:30px; }
  .priority-ribbon>span:nth-child(2) { flex:1; min-width:0; }
  .priority-ribbon small { display:none; }
  .priority-ribbon b { max-width:none; }
  .workstation:has(.priority-ribbon) .scene-heading { top:119px; }
  .workstation:has(.priority-ribbon) .situation-strip { top:138px; }
  .workstation:has(.priority-ribbon) .scene-canvas { top:131px; }
  .priority-ribbon b { max-width:195px; }
  .setup-chip { display:none; }
  .context-dock { left:22px; right:22px; bottom:140px; top:auto; width:auto; height:193px; border-radius:16px; padding:14px 17px; overflow:hidden; transition:height .35s ease; }
  .context-dock.is-expanded { height:min(66dvh,540px); overflow:auto; }
  .dock-cap { position:absolute; top:14px; left:17px; right:17px; }
  .dock-kicker { font-size:8px; }
  .dock-source { display:none; }
  .dock-expand { display:flex; width:26px; height:23px; border:0; background:none; margin-left:auto; }
  .dock-expand .icon { width:15px; height:15px; transition:transform .3s; }
  .is-expanded .dock-expand .icon { transform:rotate(180deg); }
  .dock-title { position:absolute; top:45px; left:17px; margin:0; display:block; }
  .dock-title h2 { font-size:32px; }
  .dock-title h2>span { font-size:20px; }
  .room-health { margin-top:10px; font-size:7px; }
  .room-counts { margin:22px 0 10px 126px; height:56px; padding:9px 0; border-radius:8px; }
  .room-counts b { font-size:20px; }
  .room-counts span { font-size:7px; margin-top:5px; }
  .desktop-contacts { display:none; }
  .mobile-contacts { display:flex; gap:10px; margin-top:12px; padding-top:0; width:calc(100% - 140px); }
  .quick-contact { display:flex; align-items:center; gap:7px; flex:1; min-width:0; }
  .quick-contact .contact-avatar { width:25px; height:25px; font-size:8px; }
  .quick-contact>span:nth-child(2) { min-width:0; }
  .quick-contact b { display:block; font-size:10px; font-weight:400; color:#a8c7df; white-space:nowrap; }
  .quick-contact small { display:block; font-size:7px; color:#537c9c; margin-top:4px; white-space:nowrap; }
  .quick-contact>.icon { width:12px; height:12px; color:#7cbbdb; margin-left:2px; }
  .room-case-list { display:none; }
  .dock-actions { position:absolute; right:17px; bottom:49px; gap:6px; }
  .dock-actions>.primary { min-height:32px; font-size:9px; padding:8px 9px; gap:3px; }
  .dock-actions>.primary .icon { width:12px; height:12px; }
  .dock-actions>.round-button { width:29px; height:29px; border-radius:8px; }
  .dock-actions>.round-button .icon { width:13px; height:13px; }
  .room-cases-button { display:none; }
  .point-leads { position:absolute; left:17px; right:17px; bottom:11px; margin:0; padding-top:9px; }
  .point-leads>.text-button { font-size:8px; }
  .point-leads a { font-size:8px; }
  .point-leads a>span { width:19px; height:19px; }
  .is-expanded .desktop-contacts { display:block; margin-top:18px; padding-top:15px; border-top:1px solid #7a9ac023; }
  .is-expanded .mobile-contacts { display:none; }
  .is-expanded .room-case-list { display:block; }
  .is-expanded .dock-title { top:45px; }
  .is-expanded .dock-actions { position:static; margin-bottom:49px; margin-top:15px; }
  .is-expanded .dock-actions>.primary { min-height:37px; font-size:11px; }
  .is-expanded .room-cases-button { display:flex; }
  .is-expanded .point-leads { position:static; margin-top:-35px; }
  .is-expanded .room-contacts h3 { font-size:11px; }
  .is-expanded .compact b { font-size:12px; }
  .is-expanded .compact div>span,.is-expanded .compact div>a { font-size:10px; }
  .is-expanded .contact-card.compact { padding:10px 0; }
  .scene-legend { bottom:345px; left:24px; font-size:8px; }
  .scene-legend small { display:none; }
  .next-strip { bottom:15px; left:22px; right:22px; min-height:110px; padding:14px 16px; gap:14px; border-radius:15px; }
  .next-strip-label { font-size:8px; padding-right:13px; }
  .next-event { gap:10px; }
  .next-event-time b { font-size:24px; }
  .next-event-content h3 { font-size:10px; }
  .scope-restricted { padding:58px 0 40px; }
  .scope-restricted>.icon { display:none; }
  .scope-restricted p { font-size:10px; }
  .dock-empty { display:flex; align-items:center; justify-content:center; gap:20px; padding:30px 0; height:100%; flex-wrap:wrap; }
  .dock-empty>.icon { width:26px; height:26px; margin:0; }
  .dock-empty h2 { margin:0; font-size:14px; }
  .dock-empty p { font-size:10px; margin:0; }
  .dock-empty .text-button { flex-basis:100%; justify-content:center; margin-top:-10px; }
}
@media(max-width:560px) {
  .workstation { min-height:630px; }
  .command-header { height:63px; padding:0 17px; gap:10px; }
  .venue-id { display:none; }
  .brand-mark { width:29px; height:32px; border-radius:9px; }
  .brand-mark svg { width:25px; height:25px; }
  .brand { gap:8px; }
  .brand strong { font-size:13px; }
  .brand small { font-size:6px; letter-spacing:.09em; margin-top:4px; }
  .header-actions { gap:7px; }
  .header-actions>.round-button { width:31px; height:31px; }
  .header-actions .icon { width:14px; height:14px; }
  .operator-pill { display:none; }
  .connection { font-size:7px; gap:4px; margin-right:3px; }
  .connection i { width:3px; height:3px; }
  .scene-heading { top:85px; left:19px; }
  .scene-heading .eyebrow { font-size:6px; letter-spacing:.15em; }
  .scene-heading h1 { font-size:23px; letter-spacing:.07em; margin:10px 0 8px; }
  .scene-heading p { font-size:8px; }
  .situation-strip { top:104px; left:139px; gap:5px; max-width:calc(100% - 195px); }
  .situation-chip { min-height:28px; padding:7px 8px; font-size:8px; gap:4px; }
  .situation-chip .icon { width:10px; height:10px; }
  .situation-chip>span { display:none; }
  .priority-ribbon { top:70px; left:16px; right:16px; padding:8px 10px; max-width:none; border-radius:8px; }
  .priority-ribbon small { font-size:7px; margin-bottom:5px; }
  .priority-ribbon b { font-size:9px; max-width:none; }
  .priority-ribbon>.icon { width:10px; height:10px; }
  .scene-canvas { top:113px; bottom:327px; left:0; right:0; }
  .workstation:has(.priority-ribbon) .scene-heading { top:113px; }
  .workstation:has(.priority-ribbon) .situation-strip { top:132px; }
  .workstation:has(.priority-ribbon) .scene-canvas { top:150px; }
  .map-controls { top:90px; right:16px; gap:11px; }
  .floor-switch button { width:32px; min-height:33px; font-size:9px; }
  .floor-switch button .icon { width:14px; height:14px; }
  .floor-switch button:has(.icon) span { font-size:7px; }
  .camera-controls { gap:5px; }
  .camera-controls .round-button { width:26px; height:26px; }
  .camera-controls .icon { width:11px; height:11px; }
  .scene-legend { left:19px; bottom:330px; gap:13px; font-size:7px; }
  .legend-own,.legend-area,.legend-dot { width:4px; height:4px; }
  .context-dock { left:13px; right:13px; bottom:133px; height:181px; padding:12px 14px; border-radius:15px; }
  .dock-cap { top:11px; left:14px; right:14px; }
  .dock-kicker { font-size:7px; }
  .dock-title { top:38px; left:14px; }
  .dock-title h2 { font-size:31px; }
  .dock-title h2>span { font-size:18px; }
  .room-health { font-size:6px; margin-top:9px; }
  .room-counts { margin:20px 0 8px 119px; height:52px; padding:8px 0; }
  .room-counts b { font-size:19px; }
  .room-counts span { font-size:6px; margin-top:6px; }
  .mobile-contacts { width:calc(100% - 54px); gap:16px; margin-top:13px; }
  .quick-contact { gap:6px; }
  .quick-contact b { font-size:10px; }
  .quick-contact small { font-size:8px; margin-top:3px; }
  .quick-contact>.icon { width:11px; height:11px; }
  .quick-contact .contact-avatar { width:24px; height:24px; font-size:8px; }
  .dock-actions { right:14px; bottom:47px; }
  .dock-actions>.primary { width:30px; height:30px; padding:0; min-height:30px; border-radius:9px; font-size:0; gap:0; }
  .dock-actions>.primary .icon { width:15px; height:15px; }
  .dock-actions>.round-button { width:28px; height:28px; display:none; }
  .point-leads { left:14px; right:14px; bottom:10px; padding-top:7px; }
  .point-leads>.text-button { font-size:7px; }
  .point-leads a { font-size:7px; gap:4px; }
  .point-leads a>span { width:18px; height:18px; font-size:7px; }
  .is-expanded .dock-title { top:38px; }
  .is-expanded .dock-actions>.primary { width:auto; height:auto; font-size:11px; gap:7px; }
  .is-expanded .dock-actions>.round-button { display:flex; }
  .next-strip { left:13px; right:13px; bottom:12px; min-height:108px; padding:12px; display:block; border-radius:14px; }
  .next-strip-label { flex-direction:row; gap:5px; border:0; font-size:7px; padding:0; margin-bottom:11px; }
  .next-strip-label>.icon { width:10px; height:10px; }
  .next-event-grid { gap:13px; }
  .next-event { display:block; position:relative; min-height:57px; }
  .next-event:first-child { padding-right:12px; }
  .next-event-time { display:flex; align-items:baseline; gap:7px; margin-bottom:7px; }
  .next-event-time b { font-size:21px; }
  .next-event-time span { font-size:6px; margin:0; }
  .next-event-content h3 { font-size:10px; line-height:1.65; white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .next-event-content small { display:none; }
  .all-schedule { position:absolute; top:9px; right:12px; display:flex; flex-direction:row; padding:0; gap:4px; min-height:17px; border:0; font-size:7px; }
  .all-schedule>.icon { width:10px; height:10px; }
  .all-schedule>.icon:first-child { display:none; }
  .all-schedule>.icon:last-child { display:block; }
  .schedule-complete { font-size:10px; padding:12px 0 5px; }
  .modal-backdrop { padding:0; align-items:flex-end; }
  .modal { max-height:calc(100dvh - 20px); border-radius:20px 20px 0 0; border-bottom:0; padding-bottom:env(safe-area-inset-bottom); }
  .modal>header { padding:14px 18px; }
  .modal>header h2 { font-size:14px; }
  .modal-body { padding:20px 18px; }
  .settings-grid { grid-template-columns:1fr; gap:13px; }
  .span-two { grid-column:span 1; }
  .panel { padding:17px; }
  .assign-grid { grid-template-columns:1fr 1fr; gap:16px; }
  .assign-grid select { min-height:40px!important; }
  .target-people { grid-template-columns:1fr 1fr; }
  .type-choice { gap:8px; }
  .type-choice>label>span { font-size:11px; padding:12px; }
  .type-choice small { font-size:8px; line-height:1.9; }
  .receipt-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .case-detail h1 { font-size:19px; }
  .case-actions { gap:8px; }
  .case-actions>.secondary { font-size:9px; padding:8px 10px; }
  .ack-banner { font-size:10px; padding:12px; gap:7px; }
  .case-row-title { font-size:11px; }
  .case-row>.icon { display:none; }
  .case-main>small { font-size:8px; }
  .case-row { gap:9px; padding:16px 0; }
  .status { font-size:8px; padding:4px 6px; }
  .filter-tabs { gap:15px; overflow:auto; width:100%; }
  .filter-tabs button { font-size:10px; }
  .search { max-width:none; }
  .contact-grid { grid-template-columns:1fr; }
  .contact-card { padding:15px; }
  .contact-card div>span { font-size:9px; }
  .schedule-toolbar { gap:15px; flex-direction:column; align-items:stretch; }
  .schedule-toolbar .segmented { align-self:flex-start; }
  .date-tabs { justify-content:space-between; }
  .date-tabs>button { padding:10px 12px; flex:1; }
  .date-tabs b { font-size:13px; }
  .timeline-event { gap:14px; }
  .timeline-time { width:42px; font-size:15px; }
  .timeline-event:before { left:60px; }
  .timeline-content h3 { font-size:11px; }
  .timeline-content p { font-size:10px; }
  .timeline-event>.icon { display:none; }
  .event-modal-time { font-size:29px; }
  .event-body { font-size:12px; }
  .audit-list>div { font-size:9px; gap:10px; }
  .audit-list time { min-width:87px; }
  .audit-list b { min-width:34px; }
  #toast { bottom:20px; padding:12px 17px; font-size:11px; }
  .login-page { display:block; }
  .login-intro { min-height:270px; padding:30px 25px 25px; }
  .login-intro>.brand { margin-bottom:37px; }
  .login-intro h1 { font-size:27px; line-height:1.6; margin:8px 0 0; }
  .login-intro>p,.login-mini,.login-note { display:none; }
  .login-intro .eyebrow { font-size:6px; }
  .login-art { height:88%; width:105%; right:-38%; bottom:-30%; opacity:.65; }
  .login-main { padding:26px 25px 70px; border-top:1px solid #6c9ac320; border-left:0; display:block; }
  .login-card { max-width:none; }
  .login-card h2 { font-size:23px; margin-top:18px; }
  .login-card>p { font-size:11px; margin-bottom:23px; }
  .login-main footer { left:25px; bottom:22px; font-size:8px; }
  .login-security { margin-top:24px; padding-top:20px; }
  .onboard-map { margin:0 -7px 22px; padding:12px 8px; }
  .onboard-map>.floor-scene { height:230px; margin-top:-30px; margin-bottom:-25px; }
  .onboard-map .room-shortcuts { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin-top:8px; }
  .onboard-map .room-shortcuts button { min-height:35px; font-size:9px; border:1px solid #638cb52a; border-radius:7px; background:#17314944; color:#789dbb; }
  .onboard-map .room-shortcuts button.active { background:#2e5f7b60; color:#b3e5fa; border-color:#89d6ed5b; }
  .login-page:has(.onboard-map) .login-intro { min-height:170px; }
  .login-page:has(.onboard-map) .login-intro>.brand { margin-bottom:25px; }
  .login-page:has(.onboard-map) .login-intro h1 { font-size:20px; }
}
@media(max-height:720px) and (max-width:860px) {
  .scene-heading { top:79px; }
  .scene-heading h1 { font-size:19px; margin:8px 0 5px; }
  .scene-heading p { font-size:7px; }
  .situation-strip { top:96px; }
  .priority-ribbon { top:70px; }
  .scene-canvas { top:91px; bottom:300px; }
  .context-dock { bottom:123px; height:166px; }
  .room-counts { margin-top:18px; height:46px; padding:6px 0; }
  .room-counts b { font-size:18px; }
  .dock-title { top:35px; }
  .dock-title h2 { font-size:28px; }
  .mobile-contacts { margin-top:9px; }
  .dock-actions { bottom:43px; }
  .point-leads { bottom:7px; }
  .next-strip { min-height:101px; bottom:10px; }
  .scene-legend { bottom:297px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
