*{box-sizing:border-box}:root{color:#d9e4f2;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#10151d;font:16px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#root{min-height:100svh}body,p{margin:0}button,input,select,textarea{font:inherit}.appShell{color:#d9e4f2;background:linear-gradient(#66778d38,#10151d00 360px),#10151d;min-height:100svh;padding:24px}.topBar,.panelHeader,.overviewGrid,.workspaceGrid,.commandRow,.listItem,.connectionBadge{display:flex}.topBar{justify-content:space-between;align-items:center;gap:18px;max-width:1440px;margin:0 auto 18px}.modeTabs,.filterTabs{background:#03070c3d;border:1px solid #d7e1ef1c;border-radius:8px;align-items:center;gap:4px;padding:4px;display:flex}.modeTabs button,.filterTabs button{color:#91a4bd;background:0 0;border-color:#0000;min-height:32px;padding:6px 10px}.modeTabs button.active,.filterTabs button.active{color:#eef7ff;background:#7cc9ff21;border-color:#7cc9ff4d}.eyebrow{color:#9db1c9;letter-spacing:0;text-transform:uppercase;margin:0 0 5px;font-size:12px;font-weight:650}.topBar h1,.panelHeader h2{color:#f5f8fc;margin:0}.topBar h1{font-size:34px;line-height:1.05}.connectionBadge{color:#d9e4f2;white-space:nowrap;background:#d7e1ef17;border:1px solid #d7e1ef29;border-radius:999px;align-items:center;gap:8px;padding:9px 13px;font-size:14px}.connectionBadge.connected{color:#8be1bd}.connectionBadge.error{color:#ffb2a8}.errorBanner{color:#ffd4ce;background:#ff645a24;border:1px solid #ff978c59;border-radius:8px;max-width:1440px;margin:0 auto 16px;padding:10px 12px}.overviewGrid{gap:12px;max-width:1440px;margin:0 auto 16px}.statusTile{background:#d7e1ef14;border:1px solid #d7e1ef24;border-radius:8px;flex:1;align-items:center;gap:13px;min-height:88px;padding:16px;display:flex}.statusTile p,.statusTile span,.listItem span,.cameraTile span,.panelHeader span,.safetyNote,.emptyState{color:#91a4bd;font-size:13px}.statusTile strong{color:#f5f8fc;font-size:22px;line-height:1.1;display:block}.statusTile.ok svg{color:#8be1bd}.statusTile.warning svg{color:#ffd166}.statusTile.danger svg,.listItem.warning svg,.listItem>svg{color:#ff8c7c}.workspaceGrid{align-items:flex-start;gap:16px;max-width:1440px;margin:0 auto}.floorPanel,.controlPanel{background:#0e141dbd;border:1px solid #d7e1ef24;border-radius:8px;box-shadow:0 20px 60px #00000047}.floorPanel{flex:1;min-width:0;padding:18px}.panelHeader{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.panelHeader.compact{margin-bottom:12px}.panelHeader h2{font-size:20px}.floorPlan{aspect-ratio:1/.72;background:radial-gradient(circle at 50% 44%,#8999b157,#0000 42%),linear-gradient(145deg,#526174,#2d3848 58%,#1d2634);border:1px solid #d7e1ef29;border-radius:8px;min-height:520px;position:relative;overflow:hidden}.floorPlan:before{content:"";opacity:.38;background-image:linear-gradient(#e1ebf914 1px,#0000 1px),linear-gradient(90deg,#e1ebf914 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0}.room{color:#e8f2ffc7;text-align:center;text-transform:uppercase;background:#212b3ab8;border:3px solid #aebed58a;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;box-shadow:inset 0 0 20px #00000042,0 0 0 1px #070a0f66}.room.alert{border-color:#ff8c7cc7}.room.motion,.room.open{border-color:#ffd166c2}.room.camera{border-color:#7cc9ffb3}.zonePin{color:#ffd6d1;background:#ff635633;border:1px solid #ff9285b8;border-radius:999px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.floorLegend{color:#9db1c9;white-space:nowrap;background:#05090e70;border:1px solid #d7e1ef21;border-radius:999px;align-items:center;gap:14px;padding:8px 12px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.floorLegend span{align-items:center;gap:6px;font-size:12px;display:inline-flex}.floorLegend i{border-radius:999px;width:8px;height:8px;display:inline-block}.okDot{background:#8be1bd}.warnDot{background:#ffd166}.cameraDot{background:#7cc9ff}.eventStrip{gap:8px;min-height:42px;margin-top:12px;display:flex;overflow-x:auto}.eventStrip>span{color:#91a4bd;padding:10px 2px;display:inline-flex}.eventStrip button{background:#dde8f712;border-color:#dde8f71f;flex:none;gap:8px}.eventStrip button svg{color:#ffd166}.eventStrip button span{color:#91a4bd;font-size:12px}.sideStack{gap:16px;width:min(420px,34vw);display:grid}.controlPanel{padding:16px}.alarmReadout{background:#05090e57;border:1px solid #d7e1ef1a;border-radius:8px;margin-bottom:12px;padding:14px}.alarmReadout span{color:#9db1c9;font-size:13px;display:block}.alarmReadout strong{color:#f5f8fc;font-size:26px;display:block}.commandRow{gap:8px;margin-bottom:10px}button{color:#f5f8fc;cursor:pointer;font:inherit;background:#dde8f71a;border:1px solid #dde8f72e;border-radius:7px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:8px 11px;display:inline-flex}button:hover:not(:disabled){background:#dde8f729}button:disabled{cursor:not-allowed;opacity:.45}.commandRow button{flex:1}.safetyNote{margin:0 0 12px;line-height:1.35}.listStack{gap:8px;display:grid}.listItem{background:#dde8f70f;border:1px solid #dde8f71a;border-radius:8px;align-items:center;gap:10px;min-height:58px;padding:10px}.listItem>div{flex:1;min-width:0}.listItem strong{color:#f5f8fc;text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.listItem span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.door>svg{color:#8be1bd}.iconButton{flex:none;width:34px;height:34px;min-height:34px;padding:0}.cameraGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.cameraTile{background:#dde8f70f;border:1px solid #dde8f71a;border-radius:8px;min-width:0;padding:10px}.cameraPreview{aspect-ratio:16/9;color:#9fd2ff;background:linear-gradient(135deg,#7cc9ff2e,#0000),#0a0f16;border-radius:6px;justify-content:center;align-items:center;margin-bottom:8px;display:flex}.cameraTile strong,.cameraTile span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.cameraTile strong{color:#f5f8fc;font-size:13px}@media (width<=980px){.appShell{padding:16px}.topBar,.workspaceGrid,.overviewGrid{flex-direction:column}.topBar{align-items:flex-start}.modeTabs,.filterTabs{max-width:100%;overflow-x:auto}.panelHeader{flex-direction:column;align-items:flex-start}.statusTile,.sideStack{width:100%}.floorPlan{min-height:430px}}
