.shell{grid-template-columns:250px minmax(0,1fr);min-height:100vh;display:grid}.main-col{flex-direction:column;min-width:0;display:flex}.page{min-width:0;animation:page-in .45s var(--ease-out-expo) both;flex:1;padding:22px 26px 40px}@keyframes page-in{0%{opacity:0;translate:0 8px}}.sidebar{border-right:1px solid var(--hairline);background:color-mix(in srgb, var(--bg-elev) 70%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.3);backdrop-filter:blur(14px)saturate(1.3);z-index:20;flex-direction:column;gap:22px;height:100vh;padding:20px 14px 16px;display:flex;position:sticky;top:0}html.theme-dark .sidebar{background:linear-gradient(color-mix(in srgb, var(--bg) 55%, transparent), color-mix(in srgb, var(--bg) 55%, transparent)), url(/bg-dark-hd-soft.webp) center / cover no-repeat fixed #00050f;border-right-color:#0000;box-shadow:inset -1px 0 #eaf0ff0f}.brand{align-items:center;gap:11px;padding:4px 8px;display:flex}.brand-sub{color:var(--ink-3);margin-top:1px;font-size:11px}.nav{flex-direction:column;gap:3px;display:flex}.nav-item{width:100%;color:var(--ink-2);font:inherit;text-align:left;animation:nav-item-in .55s var(--ease-out-expo) both;transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);background:0 0;border:1px solid #0000;border-radius:11px;align-items:center;gap:11px;padding:9px 12px;font-size:13.5px;display:flex}.nav-item svg{transition:transform .25s var(--ease), color .25s var(--ease);flex:none}.nav-item:hover{color:var(--ink);background:rgba(var(--accent-rgb), .08);transform:translate(3px)}.nav-item:hover svg{color:var(--accent);transform:scale(1.12)}.nav-item.active{color:var(--ink);background:linear-gradient(90deg, rgba(var(--accent-rgb), .16), rgba(var(--accent-rgb), .04));border-color:rgba(var(--accent-rgb), .28);box-shadow:inset 0 1px 0 0 var(--highlight), 0 6px 18px -12px var(--glow);font-weight:500}.nav-item.active svg{color:var(--accent)}@keyframes nav-item-in{0%{opacity:0;translate:-18px;scale:.95}}.nav-badge{color:#fff;background:var(--crit);min-width:20px;height:20px;box-shadow:0 0 0 3px var(--crit-soft);border-radius:99px;place-items:center;margin-left:auto;padding:0 6px;font:600 10.5px/1 JetBrains Mono,monospace;animation:1.4s ease-in-out infinite badge-pulse;display:grid}@keyframes badge-pulse{50%{box-shadow:0 0 0 6px #0000}}.sidebar-foot{flex-direction:column;gap:8px;margin-top:auto;display:flex}.company-chip{background:color-mix(in srgb, var(--ink) 4%, transparent);color:var(--ink-3);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.company-name{color:var(--ink);font-size:13px;font-weight:600}.company-user{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;max-width:170px;font-size:11.5px;overflow:hidden}.demo-pill{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, transparent);background:var(--warn-soft);align-self:flex-start;margin-left:12px}.topbar{z-index:15;background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.4);backdrop-filter:blur(12px)saturate(1.4);border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:14px;padding:16px 26px;display:flex;position:sticky;top:0;box-shadow:0 12px 24px -24px #02081e80}html.theme-dark .topbar{background:color-mix(in srgb, var(--bg) 52%, transparent);border-bottom-color:#eaf0ff0d}.topbar-title h1{margin-top:2px;font-size:24px;font-weight:500;line-height:1.1}.topbar-actions{align-items:center;gap:8px;display:flex}.bell b{color:#fff;background:var(--crit);border-radius:99px;place-items:center;min-width:18px;height:18px;padding:0 5px;font:600 10px/1 JetBrains Mono,monospace;display:grid;position:absolute;top:-5px;right:-5px}.bell.has-alarm{color:var(--crit);animation:1.2s ease-in-out infinite bell-ring}@keyframes bell-ring{0%,60%,to{rotate:0deg}10%{rotate:14deg}20%{rotate:-12deg}30%{rotate:8deg}40%{rotate:-4deg}}.sound-chip{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, transparent);background:var(--warn-soft);text-transform:none;letter-spacing:0;font-family:inherit;font-size:11.5px}.alarm-banner{z-index:14;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:alarm-in .5s var(--ease-out-expo) both, alarm-glow 1.4s ease-in-out infinite;background:linear-gradient(#ffffff24,#fff0 60%),linear-gradient(120deg,#e11d48eb,#be123ce6);border-radius:14px;align-items:center;gap:14px;margin:12px 26px 0;padding:12px 14px 12px 12px;display:flex;position:sticky;top:73px;box-shadow:0 16px 40px -16px #e11d48b3,inset 0 0 0 1px #ffffff2e}.alarm-banner.flash{animation:alarm-in .5s var(--ease-out-expo) both, alarm-shake .5s ease-in-out, alarm-glow 1.4s ease-in-out infinite}@keyframes alarm-in{0%{opacity:0;translate:0 -10px}}@keyframes alarm-glow{50%{box-shadow:0 16px 50px -10px #e11d48f2,inset 0 0 0 1px #ffffff47}}@keyframes alarm-shake{20%{translate:-6px}40%{translate:6px}60%{translate:-4px}80%{translate:3px}}.alarm-icon{background:#ffffff2e;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.alarm-icon svg{animation:.6s ease-in-out infinite alternate siren-wobble}@keyframes siren-wobble{0%{rotate:-10deg}to{rotate:10deg}}.alarm-text{flex:1;min-width:0}.alarm-kicker{color:#fffc}.alarm-main{margin-top:2px;font-size:15px;font-weight:600}.alarm-project,.alarm-dist{opacity:.9;font-weight:400}.alarm-more{background:#ffffff2e;border-radius:6px;margin-left:8px;padding:2px 7px;font:500 11px JetBrains Mono,monospace}.alarm-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.btn.btn-on-alarm,html.theme-dark .btn.btn-on-alarm{color:#fff;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#ffffff24;border-color:#ffffff4d}.btn.btn-on-alarm:hover{background:#ffffff3d;border-color:#fff}.btn.btn-alarm-ack,html.theme-dark .btn.btn-alarm-ack{color:#be123c;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border-color:#fff;font-weight:600;box-shadow:0 4px 14px -4px #00000059}.btn.btn-alarm-ack:hover{background:#fff1f2}.stat-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.stat-tile{text-align:left;font:inherit;color:var(--ink);transition:box-shadow .25s var(--ease), translate .25s var(--ease), border-color .25s var(--ease);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.stat-tile:not(:disabled):hover{translate:0 -2px}.stat-tile:disabled{cursor:var(--cursor-default);opacity:1}.stat-top{color:var(--ink-3);justify-content:space-between;align-items:center;display:flex}.stat-value{font-size:32px;font-weight:500;line-height:1}.stat-ok .stat-top svg{color:var(--ok)}.stat-crit .stat-value,.stat-crit .stat-top svg{color:var(--crit)}.stat-crit{box-shadow:var(--pane-edge), inset 0 0 0 1px rgba(var(--crit-rgb), .35), 0 0 26px -10px rgba(var(--crit-rgb), .6)!important}.stat-tile.is-active{box-shadow:var(--pane-edge), inset 0 0 0 1px rgba(var(--accent-rgb), .45), 0 0 22px -8px rgba(var(--accent-rgb), .5)!important}.overview{flex-direction:column;gap:16px;height:calc(100vh - 135px);min-height:560px;display:flex}.overview-grid{flex:1;grid-template-columns:minmax(0,1fr) 330px;gap:16px;min-height:0;display:grid}.map-card{padding:0;position:relative;overflow:hidden}.map-card .sc-map{border-radius:inherit;position:absolute;inset:0}.map-overlay-tl{z-index:500;position:absolute;top:12px;left:52px}.map-legend{z-index:500;color:#eaf0ff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a1020b8;border-radius:10px;align-items:center;gap:12px;padding:6px 11px;font-size:11.5px;display:flex;position:absolute;bottom:12px;left:12px}.map-legend span{align-items:center;gap:6px;display:inline-flex}.map-legend .pill{color:#eaf0ff;border-color:#fff3}.side-panel{flex-direction:column;gap:10px;padding:16px;display:flex;overflow-y:auto}.panel-head{justify-content:space-between;align-items:center;display:flex}.detail-card{animation:page-in .35s var(--ease-out-expo) both;flex-direction:column;gap:12px;display:flex}.detail-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.detail-head h3{margin-top:2px;font-size:19px;font-weight:500}.kv{border-bottom:1px dashed var(--hairline);justify-content:space-between;gap:12px;padding:7px 0;font-size:13px;display:flex}.kv span{color:var(--ink-3);align-items:center;gap:6px;display:inline-flex}.kv b{text-align:right;font-weight:500}.addr{color:var(--ink-2);align-items:flex-start;gap:7px;font-size:13px;display:flex}.addr svg{color:var(--accent);flex:none;margin-top:2px}.section-label{margin:6px 0 2px}.notes{background:color-mix(in srgb, var(--ink) 4%, transparent);color:var(--ink-2);white-space:pre-wrap;border-radius:10px;margin:8px 0 0;padding:10px 12px;font-size:13px}.crew-list{flex-direction:column;gap:4px;display:flex}.crew-row{width:100%;color:var(--ink);font:inherit;text-align:left;transition:background .2s var(--ease), border-color .2s var(--ease);background:0 0;border:1px solid #0000;border-radius:11px;align-items:center;gap:10px;padding:8px;display:flex}button.crew-row:hover{background:rgba(var(--accent-rgb), .08);border-color:rgba(var(--accent-rgb), .18)}.crew-row.crew-outside{background:var(--crit-soft);border-color:color-mix(in srgb, var(--crit) 30%, transparent)}.crew-row-text{flex:1;min-width:0}.crew-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:500;display:block;overflow:hidden}.crew-sub{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.site-list{flex-direction:column;gap:2px;display:flex}.site-row{color:var(--ink-2);font:inherit;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:9px;padding:8px;display:flex}.site-row:hover{background:rgba(var(--accent-rgb), .08);color:var(--ink)}.site-row svg{color:var(--accent);flex:none}.site-row-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.search{width:min(280px,100%);position:relative}.search svg{color:var(--ink-3);pointer-events:none;position:absolute;top:50%;left:11px;translate:0 -50%}.search input{border-radius:99px;padding-left:33px}.seg{background:color-mix(in srgb, var(--ink) 5%, transparent);border:1px solid var(--hairline);scrollbar-width:none;border-radius:99px;gap:2px;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.seg::-webkit-scrollbar{display:none}html.theme-dark .seg{background:#01030a4d;border-color:#eaf0ff12}.seg button{color:var(--ink-3);font:inherit;white-space:nowrap;transition:background .2s var(--ease), color .2s var(--ease);background:0 0;border:0;border-radius:99px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:500;display:inline-flex}.seg button:hover{color:var(--ink)}.seg button.on{color:var(--ink);background:var(--surface);box-shadow:0 1px 3px rgba(var(--shadow-ink-rgb), .15), var(--inner-hi)}html.theme-dark .seg button.on{background:#eaf0ff1a}.seg-count{background:color-mix(in srgb, var(--ink) 8%, transparent);border-radius:5px;padding:2px 5px;font:500 10px/1 JetBrains Mono,monospace}.card-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;display:grid}.project-card{text-align:left;font:inherit;color:var(--ink);animation:page-in .5s var(--ease-out-expo) both;transition:translate .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);flex-direction:column;gap:8px;padding:16px 16px 14px;display:flex}.project-card:hover{box-shadow:var(--pane-edge), 0 18px 36px -20px rgba(var(--accent-rgb), .45);translate:0 -2px}.project-card h3{margin-top:4px;font-size:18px;font-weight:500;line-height:1.2}.project-card-top{justify-content:space-between;gap:8px;display:flex}.project-card-foot{border-top:1px dashed var(--hairline);flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding-top:10px;display:flex}.project-card.has-alarm{box-shadow:var(--pane-edge), inset 0 0 0 1px rgba(var(--crit-rgb), .45), 0 0 24px -10px rgba(var(--crit-rgb), .6)}.avatar-stack{display:flex}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--bg-elev-solid);margin-left:-7px}.avatar-stack .avatar:first-child{margin-left:0}.avatar-stack .avatar-inside{box-shadow:0 0 0 2px var(--bg-elev-solid), inset 0 0 0 2px var(--ok)}.avatar-stack .avatar-outside{box-shadow:0 0 0 2px var(--bg-elev-solid), inset 0 0 0 2px var(--crit)}.table{overflow:hidden}.table-head,.table-row{grid-template-columns:minmax(220px,1.6fr) minmax(140px,1.2fr) minmax(120px,.9fr) minmax(120px,.8fr) minmax(150px,1fr);align-items:center;gap:14px;padding:10px 16px;display:grid}.table-head{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--hairline);padding-top:12px;padding-bottom:12px;font-family:JetBrains Mono,monospace;font-size:10px}.table-row{border:0;border-bottom:1px solid var(--hairline);width:100%;color:var(--ink);font:inherit;text-align:left;transition:background .2s var(--ease);background:0 0}.table-row:last-child{border-bottom:0}.table-row:hover{background:rgba(var(--accent-rgb), .06)}.table-row.row-alarm{background:var(--crit-soft)}.cell-person{align-items:center;gap:11px;min-width:0;display:flex}.cell-person>span:last-child{min-width:0}.cell-site{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cell-state{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#02061275;justify-content:center;align-items:center;padding:20px;animation:.25s both overlay-in;display:flex;position:fixed;inset:0}.overlay-drawer{justify-content:flex-end;padding:0}@keyframes overlay-in{0%{opacity:0}}.modal{background:var(--bg-elev-solid);width:min(560px,100%);max-height:calc(100vh - 40px);animation:pop-in .4s var(--ease-out-expo) both;box-shadow:var(--shadow-3);border-radius:18px;flex-direction:column;display:flex}html.theme-dark .modal,html.theme-dark .drawer{box-shadow:var(--glass-edge), 0 30px 70px -20px #000c;-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(#eaf0ff0d,#eaf0ff00 90px),#0a1020}.modal-wide{width:min(1040px,100%)}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 22px 12px;display:flex}.modal-head h2{font-size:22px;font-weight:500}.modal-head p{margin:4px 0 0;font-size:13px}.modal-body{padding:8px 22px 18px;overflow-y:auto}.modal-foot{border-top:1px solid var(--hairline);align-items:center;gap:10px;padding:14px 22px;display:flex}.confirm-box{gap:18px;width:min(420px,100%);padding:22px}.confirm-box p{margin:0;font-size:14.5px;line-height:1.5}.drawer{background:var(--bg-elev-solid);max-width:100vw;height:100vh;animation:drawer-slide .46s var(--ease-out-expo) both;border-radius:18px 0 0 18px;flex-direction:column;display:flex}@keyframes drawer-slide{0%{opacity:0;transform:translate(56px)}}.drawer-head{justify-content:space-between;align-items:flex-start;gap:14px;padding:22px 22px 12px;display:flex}.drawer-head h2{margin-top:6px;font-size:24px;font-weight:500;line-height:1.15}.drawer-body{flex-direction:column;flex:1;gap:16px;padding:4px 22px 30px;display:flex;overflow-y:auto}.drawer-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mini-map{height:240px;box-shadow:var(--pane-edge);border-radius:14px;flex:none;position:relative;overflow:hidden}.mini-map .sc-map{position:absolute;inset:0}.form-split{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:22px;display:grid}.search-row{gap:8px;display:flex}.search-row input{flex:1}.results{border:1px solid var(--hairline);background:color-mix(in srgb, var(--ink) 3%, transparent);border-radius:12px;flex-direction:column;gap:2px;max-height:190px;padding:6px;display:flex;overflow-y:auto}.result-row{color:var(--ink-2);font:inherit;text-align:left;background:0 0;border:0;border-radius:8px;align-items:flex-start;gap:8px;padding:8px;font-size:12.5px;display:flex}.result-row:hover{background:rgba(var(--accent-rgb), .1);color:var(--ink)}.result-row svg{color:var(--accent);flex:none;margin-top:2px}.picker-map{height:430px;box-shadow:var(--pane-edge);border-radius:14px;position:relative;overflow:hidden}.picker-map .sc-map{position:absolute;inset:0}.picker-map .leaflet-container{cursor:crosshair}.radius-input{align-items:center;gap:8px;display:flex}.radius-input span{color:var(--ink-3)}.check-list{border:1px solid var(--hairline);border-radius:12px;flex-direction:column;gap:2px;max-height:220px;padding:4px;display:flex;overflow-y:auto}.check-row{text-transform:none;letter-spacing:0;color:var(--ink);border-radius:9px;align-items:center;gap:10px;padding:7px 8px;font-size:13px;display:flex}.check-row:hover{background:rgba(var(--accent-rgb), .07)}.check-row.on{background:rgba(var(--accent-rgb), .1)}.check-row.on-off{border:1px solid var(--hairline)}.check-name{font-weight:500}.check-row .muted{text-align:right;margin-left:auto}.pair-box{flex-direction:column;gap:12px;display:flex}.pair-grid{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.pair-grid>.stack-sm{flex:1;min-width:200px}.pair-code{letter-spacing:.12em;color:var(--ink);font-size:28px;font-weight:600}.qr{box-sizing:content-box;background:#fff;border-radius:12px;flex:none;padding:8px;box-shadow:0 6px 20px -10px #00000080}.qr img{display:block}.link-code{background:color-mix(in srgb, var(--ink) 5%, transparent);word-break:break-all;color:var(--ink-2);border-radius:8px;padding:8px 10px;font:12px JetBrains Mono,monospace;display:block}.alert-list{flex-direction:column;display:flex;overflow:hidden}.alert-list.compact{gap:2px}.alert-row{border-bottom:1px solid var(--hairline);align-items:center;gap:13px;padding:12px 16px;display:flex}.alert-list.compact .alert-row{border-bottom:1px dashed var(--hairline);padding:8px 4px}.alert-row:last-child{border-bottom:0}.alert-icon{width:36px;height:36px;color:var(--ink-3);background:color-mix(in srgb, var(--ink) 5%, transparent);border-radius:11px;flex:none;place-items:center;display:grid}.compact .alert-icon{border-radius:9px;width:30px;height:30px}.alert-row.sev-alarm .alert-icon{color:var(--crit);background:var(--crit-soft)}.alert-row.kind-signal_lost .alert-icon,.alert-row.kind-location_off .alert-icon{color:var(--warn);background:var(--warn-soft)}.alert-row.kind-returned .alert-icon{color:var(--ok);background:var(--ok-soft)}.alert-row.kind-shift_start .alert-icon,.alert-row.kind-shift_end .alert-icon{color:var(--accent);background:var(--accent-soft)}.alert-row.is-open{background:linear-gradient(90deg, rgba(var(--crit-rgb), .12), transparent 70%)}.alert-row.is-open .alert-icon{box-shadow:0 0 0 3px var(--crit-soft);animation:1.4s ease-in-out infinite badge-pulse}.alert-body{flex:1;min-width:0}.alert-title{font-weight:500}.alert-sub{color:var(--ink-3);flex-wrap:wrap;gap:4px 12px;margin-top:2px;font-size:12px;display:flex}.alert-actions{flex:none;align-items:center;gap:8px;display:flex}.ack-note{align-items:center;gap:5px;display:inline-flex}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-items:start;gap:16px;display:grid}.settings-card{flex-direction:column;gap:14px;padding:18px 20px;display:flex}.card-title{letter-spacing:-.02em;align-items:center;gap:9px;font-family:Space Grotesk,sans-serif;font-size:17px;font-weight:500;display:flex}.card-title svg{color:var(--accent)}.settings-card p{margin:0}.settings-wide{grid-column:1/-1}.zone-settings{grid-template-columns:minmax(260px,.8fr) minmax(0,1.4fr);align-items:start;gap:26px;display:grid}.radius-control{align-items:center;gap:14px;display:flex}.radius-control .range{flex:1;min-width:80px}.radius-control .radius-input{flex:none}.radius-control .radius-input input{text-align:right;width:92px;font-family:JetBrains Mono,monospace;font-size:13px}.radius-control.compact .radius-input input{width:80px;padding:6px 9px}.zone-scale{border:1px solid var(--hairline);background:color-mix(in srgb, var(--ink) 3%, transparent);border-radius:12px;flex-direction:column;gap:4px;padding:10px 12px 8px;display:flex}html.theme-dark .zone-scale{background:#01030a40;border-color:#eaf0ff0f}.zone-scale svg{display:block}.zs-zone{fill:rgba(var(--accent-rgb), .12);stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:5 4;transition:r .25s var(--ease)}.zs-pitch{fill:color-mix(in srgb, var(--ok) 22%, transparent);stroke:var(--ok);stroke-width:1px}.zs-dot{fill:var(--accent)}.zone-list{border:1px solid var(--hairline);border-radius:12px;flex-direction:column;gap:2px;max-height:360px;padding:4px;display:flex;overflow-y:auto}.zone-row{transition:background .2s var(--ease);border-radius:10px;grid-template-columns:minmax(150px,1fr) minmax(200px,1.3fr) 80px;align-items:center;gap:14px;padding:8px 10px;display:grid}.zone-row:hover{background:rgba(var(--accent-rgb), .06)}.zone-row.is-dirty{background:rgba(var(--accent-rgb), .1)}.zone-row-name{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.zone-row-name .crew-name{max-width:100%}.zone-row-actions{justify-content:flex-end;gap:6px;display:flex}.zone-row-actions .icon-btn{border-radius:10px;width:32px;height:32px}.icon-btn-primary{color:#fff!important;background:linear-gradient(135deg, var(--accent), var(--accent-2))!important}@media (width<=960px){.zone-settings{grid-template-columns:1fr}}@media (width<=560px){.zone-row{grid-template-columns:minmax(0,1fr) auto}.zone-row .radius-control{grid-area:2/1/auto/-1}}.empty{text-align:center;color:var(--ink-3);flex-direction:column;align-items:center;gap:14px;padding:56px 20px;display:flex}.empty p{max-width:420px;margin:0;line-height:1.55}.empty-icon{width:54px;height:54px;color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 6%, transparent);border-radius:16px;place-items:center;display:grid}@media (width<=1180px){.overview-grid{grid-template-columns:minmax(0,1fr) 290px}.hide-md{display:none}.table-head,.table-row{grid-template-columns:minmax(200px,1.6fr) minmax(130px,1.1fr) minmax(110px,.8fr) minmax(140px,1fr)}}@media (width<=960px){.form-split{grid-template-columns:1fr}.picker-map{height:320px}.overview{height:auto}.overview-grid{grid-template-columns:1fr}.map-card{height:62vh;min-height:380px}.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.shell{padding-bottom:calc(64px + env(safe-area-inset-bottom));grid-template-columns:1fr}.sidebar{z-index:40;height:auto;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--hairline);flex-direction:row;gap:0;position:fixed;inset:auto 0 0}.brand,.sidebar-foot{display:none}.nav{flex-direction:row;justify-content:space-around;width:100%}.nav-item{flex-direction:column;flex:1;align-items:center;gap:3px;width:auto;padding:6px 4px;font-size:10.5px;position:relative}.nav-item:hover{transform:none}.nav-badge{min-width:17px;height:17px;margin:0;font-size:9.5px;position:absolute;top:0;right:18%}.topbar{padding:12px 16px}.topbar-title h1{font-size:20px}.sound-chip{display:none}.page{padding:16px 16px 30px}.alarm-banner{flex-wrap:wrap;margin:10px 16px 0;top:62px}.alarm-actions{justify-content:flex-start;width:100%}.hide-sm,.table-head{display:none}.table-row{grid-template-columns:minmax(0,1fr) auto}.table-row .cell-site{color:var(--ink-3);grid-area:2/1;padding-left:45px;font-size:12px}.table-row .cell-state{grid-area:1/2/span 2;align-items:flex-end}.drawer{border-radius:0}.grid-2{grid-template-columns:1fr}.overlay{padding:10px}.modal{max-height:calc(100dvh - 20px)}}.atlas-fab-wrap{z-index:90;position:fixed;bottom:14px;right:18px}.atlas-slot{flex:none}.atlas-fab{transition:transform .25s var(--ease);touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:24px;padding:0;display:block;position:relative}.atlas-fab:hover{transform:translateY(-3px)scale(1.03)}.atlas-fab:active{transform:scale(.97)}.atlas-fab-wrap.is-docked .atlas-fab:hover{transform:translateY(-2px)}.atlas-hold{pointer-events:none;background:rgba(var(--accent-rgb), .18);opacity:0;border-radius:3px;height:4px;transition:opacity .15s ease-out;position:absolute;bottom:-6px;left:24%;right:24%;overflow:hidden}.atlas-hold:after{content:"";transform-origin:0;background:linear-gradient(90deg, var(--accent), var(--accent-2));position:absolute;inset:0;transform:scaleX(0)}@keyframes atlas-hold-fill{to{transform:scaleX(1)}}.atlas-fab.is-arming .atlas-hold{opacity:1;transition-delay:.35s}.atlas-fab.is-arming .atlas-hold:after{animation:2.65s linear .35s forwards atlas-hold-fill}.atlas-fab.is-dragging{cursor:grabbing;transform:none}.atlas-fab.is-dragging .atlas{transform:translateY(-6px)scale(1.08);filter:drop-shadow(0 24px 26px #02081e80) drop-shadow(0 0 22px rgba(var(--accent-rgb), .6))!important}.atlas-fab:focus-visible{box-shadow:0 0 0 3px rgba(var(--accent-rgb), .55);outline:none}.atlas-fab:before{content:"";z-index:-1;background:radial-gradient(closest-side,#00000059,#0000);border-radius:50%;height:12px;position:absolute;bottom:2px;left:12%;right:12%}.atlas-fab.alarm:after{content:"";background:radial-gradient(closest-side, rgba(var(--crit-rgb), .35), transparent);z-index:-1;border-radius:50%;animation:1.4s ease-in-out infinite badge-pulse;position:absolute;inset:8% 4% 0}.atlas-badge{color:#fff;background:var(--crit);min-width:22px;height:22px;box-shadow:0 0 0 3px var(--bg-elev-solid);border-radius:99px;place-items:center;padding:0 6px;font:600 11px/1 JetBrains Mono,monospace;display:grid;position:absolute;top:6px;right:0}.atlas-tip{width:max-content;max-width:230px;color:var(--ink);cursor:var(--cursor-pointer);background:var(--bg-elev-solid);box-shadow:var(--shadow-3), inset 0 0 0 1px var(--hairline-strong);animation:pop-in .4s var(--ease-out-expo) both;border-radius:14px 14px 4px;padding:10px 13px;font-size:13px;line-height:1.4;position:absolute;bottom:calc(100% + 4px)}html.theme-dark .atlas-tip{box-shadow:var(--glass-edge), 0 18px 40px -16px #000c;background:linear-gradient(#eaf0ff0f,#eaf0ff00 60%),#0a1020}.atlas-tip.crit{color:#fff;background:linear-gradient(120deg,#e11d48f2,#be123cf2);box-shadow:0 12px 30px -10px #e11d48b3}.atlas-tip.tip-right{right:10px}.atlas-tip.tip-left{border-radius:14px 14px 14px 4px;left:10px}.atlas-panel{z-index:91;background:var(--bg-elev-solid);width:min(370px,100vw - 24px);max-height:min(620px,100vh - 170px);animation:pop-in .38s var(--ease-out-expo) both;transform-origin:100% 100%;box-shadow:var(--shadow-3);border-radius:18px;flex-direction:column;display:flex;position:fixed;bottom:136px;right:18px}html.theme-dark .atlas-panel{box-shadow:var(--glass-edge), 0 30px 70px -20px #000000d9;-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(#eaf0ff0d,#eaf0ff00 90px),#0a1020}.atlas-head{border-bottom:1px solid var(--hairline);align-items:center;gap:12px;padding:14px 14px 10px 16px;display:flex}.atlas-head>div{flex:1}.atlas-avatar{object-fit:cover;background:radial-gradient(circle at 50% 35%,#38bdf859,#0d1424e6 70%);border-radius:14px;width:44px;height:44px;box-shadow:inset 0 0 0 1px #eaf0ff1f}.atlas-title{font-size:18px;font-weight:600}.atlas-body{flex-direction:column;gap:14px;padding:12px 16px 16px;display:flex;overflow-y:auto}.atlas-say{background:rgba(var(--accent-rgb), .1);color:var(--ink-2);border-radius:4px 14px 14px;margin:0;padding:10px 12px;font-size:13.5px;line-height:1.45}.atlas-say b{color:var(--ink)}.atlas-label{margin-bottom:6px;display:block}.atlas-line{padding:3px 0;font-size:13px}.atlas-alarm{background:var(--crit-soft);border:1px solid color-mix(in srgb, var(--crit) 35%, transparent);border-radius:11px;align-items:center;gap:9px;margin-bottom:6px;padding:8px 8px 8px 10px;font-size:13px;display:flex}.atlas-alarm>svg{color:var(--crit);flex:none}.atlas-alarm-text{flex:1;min-width:0}.atlas-alarm .icon-btn{border-radius:9px;width:30px;height:30px}.atlas-todo{border:1px solid var(--hairline);width:100%;color:var(--ink);font:inherit;text-align:left;transition:background .2s var(--ease);background:0 0;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;padding:8px 10px;font-size:13px;display:flex}.atlas-todo:hover{background:rgba(var(--accent-rgb), .08)}.atlas-todo b{color:var(--warn);background:var(--warn-soft);border-radius:6px;padding:4px 7px;font:600 11px/1 JetBrains Mono,monospace}.atlas-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.atlas-actions .btn{justify-content:flex-start}.atlas-foot-hint{text-align:center;margin:0;font-size:11.5px}.empty .atlas{margin-bottom:-4px}@media (width>=821px){.nav-item.nav-tab-only{display:none}}@media (width<=820px){.atlas-fab-wrap{right:10px;bottom:calc(70px + env(safe-area-inset-bottom))}.atlas-panel{right:10px;bottom:calc(166px + env(safe-area-inset-bottom));max-height:calc(100dvh - 240px)}.atlas-tip{max-width:210px}}
