:root{color:#eaf2f5;font-synthesis:none;text-rendering:optimizelegibility;background:#071119;font-family:Fira Sans,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:#071119;min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}code,.mono{font-family:Fira Code,SFMono-Regular,Consolas,monospace}::selection{color:#081117;background:#dcae47}:root{--bg:#071119;--sidebar:#0a1720;--surface:#0e202a;--surface-2:#122832;--border:#263d49;--border-hi:#365361;--text:#eaf2f5;--muted:#8fa4ae;--green:#65d69d;--green-bg:#12392c;--amber:#e2ad43;--amber-hi:#f2c25e;--red:#f07070;--red-bg:#3b1e24;--blue:#73b8da;--shadow:0 18px 50px #02070a66}.app-shell{background:radial-gradient(circle at 78% -10%,#12313e99,transparent 32%),var(--bg);grid-template-rows:66px 1fr;grid-template-columns:230px 1fr;min-height:100vh;display:grid}.skip-link{z-index:100;background:var(--amber);color:#0a1318;border-radius:6px;padding:10px 14px;font-weight:700;position:fixed;top:-60px;left:16px}.skip-link:focus{top:10px}aside{border-right:1px solid var(--border);z-index:20;background:linear-gradient(#0d1d26,#08131b);flex-direction:column;grid-row:1/3;height:100vh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid var(--border);align-items:center;gap:11px;height:66px;padding:0 17px;display:flex}.brand-mark{background:var(--amber);color:#081117;border-radius:7px;place-items:center;width:34px;height:34px;font-size:19px;font-weight:900;display:grid}.brand strong{letter-spacing:.1em;font-size:13px;display:block}.brand small{color:var(--muted);letter-spacing:.12em;margin-top:2px;font-size:9px;display:block}nav{gap:3px;padding:16px 10px;display:grid}nav button{color:#9db0ba;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:11px;height:44px;padding:0 12px;transition:background .18s,color .18s;display:flex}nav button:hover{color:var(--text);background:#142832}nav button.active{color:#e5fff1;box-shadow:inset 3px 0 var(--green);background:#194431}.icon{flex:none}.sidebar-foot{border-top:1px solid var(--border);margin-top:auto;padding:15px 18px 20px}.sidebar-foot span,.sidebar-foot small{display:block}.sidebar-foot span{font-size:11px;font-weight:700}.sidebar-foot small{color:var(--muted);margin-top:4px;font-size:10px}header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:15;background:#0a171fcc;grid-column:2;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.bus-switch{border:1px solid var(--border);border-radius:7px;display:flex;overflow:hidden}.bus-switch button{border:0;border-right:1px solid var(--border);height:36px;color:var(--muted);background:#0e202a;padding:0 18px;font-size:12px;font-weight:700}.bus-switch button:last-child{border:0}.bus-switch button.active{color:#e9fff2;background:#215540}.header-status{align-items:center;gap:13px;display:flex}.endpoint{color:var(--muted);font:11px Fira Code,monospace}.status-pill{border:1px solid var(--border);text-transform:capitalize;background:#101f28;border-radius:999px;align-items:center;gap:7px;padding:6px 10px;font-size:11px;font-weight:700;display:inline-flex}.status-dot{background:var(--red);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #f0707020}.status-pill.ok .status-dot{background:var(--green);box-shadow:0 0 0 3px #65d69d20}.mode-label{color:var(--muted);border-left:1px solid var(--border);padding-left:7px;font-weight:500}.menu-button,.mobile-title{display:none}main{grid-column:2;min-width:0;padding:28px}.page-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:21px;display:flex}.page-heading h1{letter-spacing:-.02em;margin:4px 0 7px;font-size:26px;line-height:1.15}.page-heading p{color:var(--muted);margin:0;font-size:13px}.eyebrow{color:#7f99a5;letter-spacing:.16em;text-transform:uppercase;font-size:9px;font-weight:800;display:block}button{border-radius:6px;min-height:44px}.primary,.secondary,.small-button,.text-button{justify-content:center;align-items:center;gap:8px;font-weight:700;display:inline-flex}.primary{background:var(--amber);color:#10191e;border:1px solid #f1c25e;padding:0 15px}.primary:hover{background:var(--amber-hi)}.secondary{border:1px solid var(--border-hi);color:var(--text);background:#10222c;padding:0 14px}.secondary:hover{background:#152c37;border-color:#5c7784}.primary.compact,.secondary.compact{min-height:36px;font-size:11px}.text-button{min-height:32px;color:var(--blue);background:0 0;border:0;padding:0 5px}.small-button{border:1px solid var(--border-hi);min-height:32px;color:var(--text);background:#142b35;padding:0 10px;font-size:11px}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;display:grid}.metric,.panel{border:1px solid var(--border);background:linear-gradient(145deg,#10242e,#0c1d26);border-radius:8px;box-shadow:0 12px 30px #02080b20}.metric{min-height:94px;padding:14px 16px}.metric>span{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:700;display:block}.metric strong{margin-top:8px;font-size:24px;display:inline-block}.metric small{color:var(--green);margin-left:8px}.ok-text{color:var(--green)!important}.warn-text{color:var(--amber)!important}.bad-text{color:var(--red)!important}.overview-grid{grid-template-columns:1.6fr .8fr;gap:12px;margin-bottom:12px;display:grid}.overview-grid.lower{grid-template-columns:1.65fr .75fr}.panel{min-width:0;padding:17px}.panel-title{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px;display:flex}.panel-title h2,.panel h2{margin:3px 0 0;font-size:15px}.target-chip,.address-badge{color:#b8c8ce;border:1px solid var(--border-hi);background:#182f39;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700}.level-row{align-items:center;gap:16px;margin:20px 0;display:flex}.level-row strong{color:var(--amber);min-width:55px;font-size:24px}input[type=range]{accent-color:var(--amber);width:100%;min-height:22px}.button-row{flex-wrap:wrap;gap:8px;display:flex}.helper{color:#718a96;margin:13px 0 0;font:10px Fira Code,monospace}.relay-mini{grid-template-columns:1fr 1fr;gap:8px;display:grid}.relay-mini div{background:#0a1921;border:1px solid #213744;border-radius:6px;justify-content:space-between;padding:10px;display:flex}.relay-mini span{color:var(--muted);font-size:11px}.relay-mini b{font-size:11px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:650px}th{text-align:left;color:#738b96;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--border);padding:9px 8px;font-size:9px}td{border-bottom:1px solid #1a303a;padding:11px 8px;font-size:11px}tbody tr:last-child td{border:0}td code{color:#a9c4cf}td strong{font-size:11px}.bar{vertical-align:middle;background:#253b45;border-radius:4px;width:55px;height:4px;margin-right:7px;display:inline-block}.bar i{background:var(--amber);border-radius:4px;height:100%;display:block}.state{align-items:center;gap:5px;display:inline-flex}.state:before{content:"";background:#6b7d84;border-radius:50%;width:6px;height:6px}.state.ok:before{background:var(--green)}.state.bad{color:var(--red)}.state.bad:before{background:var(--red)}.event-list{display:grid}.event{border-bottom:1px solid #1d333d;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;padding:10px 0;display:grid}.event:last-child{border:0}.event-icon{width:30px;height:30px;color:var(--blue);background:#163649;border-radius:6px;place-items:center;display:grid}.event-icon.occupancy{color:var(--green);background:#173c2f}.event strong,.event b{font-size:11px}.event p{color:var(--muted);margin:3px 0 0;font-size:9px}.event b{color:#b9cbd2}.empty{text-align:center;color:var(--muted);place-items:center;padding:32px 12px;display:grid}.empty strong{color:var(--text);margin-top:9px;font-size:13px}.empty p{max-width:260px;font-size:11px}.skeleton-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.skeleton-grid i{background:linear-gradient(90deg,#10232c,#18333e,#10232c) 0 0/200%;border-radius:8px;height:94px;animation:1.4s infinite shimmer;display:block}@keyframes shimmer{to{background-position:-200%}}.toolbar{justify-content:space-between;align-items:flex-end;margin-bottom:12px;display:flex}.toolbar label,.form-grid label,.form-panel>label,.modal label{color:#9eb0b9;gap:6px;font-size:11px;font-weight:700;display:grid}.toolbar input{width:260px}.toolbar>span{color:var(--muted);font-size:11px}input,select{border:1px solid var(--border-hi);height:44px;color:var(--text);background:#081820;border-radius:6px;outline:none;padding:0 11px}input:focus,select:focus,button:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.card-grid{grid-template-columns:repeat(4,1fr);gap:11px;display:grid}.group-card p{color:var(--muted);font-size:11px}.group-card .button-row{margin-top:16px}.scene-grid{grid-template-columns:repeat(8,1fr);gap:10px;display:grid}.scene-card{border:1px solid var(--border);min-height:120px;color:var(--text);background:linear-gradient(145deg,#10242e,#0b1b24);flex-direction:column;justify-content:space-between;align-items:flex-start;padding:13px;display:flex}.scene-card:hover{border-color:var(--amber);transform:translateY(-1px)}.scene-card span,.scene-card small{color:var(--muted);letter-spacing:.12em;font-size:9px}.scene-card strong{color:var(--amber);font:26px Fira Code,monospace}.warning{color:#f4ce82;background:#302516;border:1px solid #76552b;border-radius:7px;align-items:center;gap:12px;margin-bottom:12px;padding:13px 15px;display:flex}.warning strong{font-size:12px}.warning span{color:#d4b978;font-size:11px}.relay-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.relay-card{justify-content:space-between;align-items:center;min-height:115px;display:flex}.toggle{background:#1b3039;border:1px solid #49606a;border-radius:99px;width:58px;height:32px;min-height:32px;padding:3px}.toggle i{background:#9badb5;border-radius:50%;width:24px;height:24px;transition:transform .18s,background .18s;display:block}.toggle.on{background:#174f38;border-color:#3c9f70}.toggle.on i{background:var(--green);transform:translate(24px)}.weekday-field{border:0;margin:6px 0 20px;padding:0}.weekday-field legend{color:var(--muted);margin-bottom:9px;font-size:11px;font-weight:700}.weekday-row{flex-wrap:wrap;gap:7px;display:flex}.weekday-row button{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);border-radius:7px;padding:8px 10px;font-weight:700}.weekday-row button.active{background:var(--accent);border-color:var(--accent);color:#fff}.schedule-list{gap:10px;display:grid}.schedule-item{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:13px;display:flex}.schedule-item p{color:var(--text);margin:5px 0}.schedule-item small{color:var(--muted)}.schedule-item .button-row{flex-wrap:nowrap;margin:0}.console-grid,.connection-grid{grid-template-columns:1.05fr .95fr;gap:12px;display:grid}.form-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;display:grid}.check{align-items:center;gap:9px;margin:12px 0;display:flex!important}.check input{width:18px;height:18px;accent-color:var(--amber)}.frame-preview{background:#07161e;border:1px solid #2e4855;border-radius:6px;margin:14px 0;padding:11px}.frame-preview span{color:#68828e;letter-spacing:.13em;margin-bottom:7px;font-size:8px;display:block}.frame-preview code{color:#c4d7de;word-break:break-all;font-size:10px}.history{display:grid}.history>div{border-bottom:1px solid #1b313b;grid-template-columns:8px 1fr auto;align-items:center;gap:10px;padding:10px 0;display:grid}.history-state{background:var(--amber);border-radius:50%;width:6px;height:6px}.history-state.completed{background:var(--green)}.history-state.failed{background:var(--red)}.history strong{text-transform:capitalize;font-size:11px}.history p{color:var(--muted);margin:3px 0;font-size:9px}.history code{font-size:9px}.danger-check{background:#291f19;border:1px solid #6d4930;border-radius:6px;padding:11px}.danger-check span strong,.danger-check span small{display:block}.danger-check span small{color:#b99d84;margin-top:3px}.diagnostics dl{margin:0}.diagnostics dl div{border-bottom:1px solid #1d333d;justify-content:space-between;gap:20px;padding:12px 0;font-size:11px;display:flex}.diagnostics dt{color:var(--muted)}.diagnostics dd{text-align:right;margin:0}.verified{background:#102f25;border:1px solid #295d46;border-radius:6px;gap:11px;margin-top:15px;padding:12px;display:flex}.verified>span{color:var(--green);font-weight:900}.verified strong{font-size:11px}.verified p{color:#8fbaa5;margin:4px 0 0;font-size:9px}.connection-error{background:var(--red-bg);color:#ffdce0;border:1px solid #7d3d48;border-radius:6px;gap:4px;margin-top:14px;padding:11px;font-size:11px;display:grid}.connection-error span{color:#e6aeb5}.banner{z-index:50;color:#dffff0;max-width:420px;box-shadow:var(--shadow);background:#123428;border:1px solid #367356;border-radius:7px;align-items:center;gap:14px;padding:12px 12px 12px 15px;font-size:12px;display:flex;position:fixed;top:80px;right:24px}.banner.error{background:var(--red-bg);color:#ffdce0;border-color:#7d3d48}.banner button{width:28px;min-height:28px;color:inherit;background:0 0;border:0;font-size:20px}.modal-backdrop{z-index:60;background:#02080cb8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--border-hi);width:min(480px,100%);box-shadow:var(--shadow);background:#10242e;border-radius:9px;padding:24px;position:relative}.modal h2{margin:6px 0 22px;font-size:20px}.modal-close{width:36px;min-height:36px;color:var(--muted);background:0 0;border:0;font-size:23px;position:absolute;top:10px;right:12px}.modal label input{margin-top:12px}.modal .button-row{margin-top:18px}.scrim{display:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1150px){.scene-grid{grid-template-columns:repeat(4,1fr)}.card-grid{grid-template-columns:repeat(3,1fr)}.overview-grid.lower{grid-template-columns:1fr}.relay-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=850px){.app-shell{grid-template-rows:60px 1fr;grid-template-columns:1fr}aside{width:230px;transition:left .2s;position:fixed;left:-240px}aside.open{box-shadow:var(--shadow);left:0}aside.open~.scrim{z-index:19;background:#02070a88;border:0;border-radius:0;display:block;position:fixed;inset:0}header,main{grid-column:1}.menu-button{color:var(--text);background:0 0;border:0;width:44px;font-size:20px;display:block}.mobile-title{font-size:12px;font-weight:700;display:block}.bus-switch{margin-left:auto}.endpoint,.header-status .mode-label{display:none}header{gap:10px;padding:0 12px}.metrics-grid{grid-template-columns:1fr 1fr}.overview-grid,.console-grid,.connection-grid{grid-template-columns:1fr}.card-grid{grid-template-columns:1fr 1fr}.page-heading{align-items:flex-end}main{padding:20px}}@media (width<=560px){.status-pill{padding:5px 7px}.status-pill .mode-label,.mobile-title{display:none}.metrics-grid,.card-grid,.relay-grid,.form-grid{grid-template-columns:1fr}.scene-grid{grid-template-columns:repeat(2,1fr)}.page-heading{display:block}.page-heading>button{margin-top:14px}.toolbar{align-items:stretch;gap:10px;display:grid}.toolbar input{width:100%}.banner{top:70px;left:12px;right:12px}.panel{padding:14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.controller-select select{background:var(--surface-2);border:1px solid var(--border);min-width:270px;color:var(--text);border-radius:7px;padding:8px 10px}.controller-overview{gap:14px;display:grid}.controller-summary{margin-bottom:14px}.monitor-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 12px;display:grid}.monitor-details div{background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:9px}.monitor-details dt{color:var(--muted);text-transform:uppercase;font-size:10px}.monitor-details dd{margin:4px 0 0;font-size:12px}.controller-card>.button-row{margin-top:14px}.auth-shell,.account-page{background:var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{gap:16px;width:min(440px,100%);display:grid}.auth-card .brand{position:static}.auth-card .system-version{color:var(--text);letter-spacing:.04em;margin-top:5px;font-size:10px}.language-select{align-items:center;gap:8px;display:flex}.language-select select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:7px}.account-page{display:block}.account-bar{align-items:center;gap:16px;margin-bottom:20px;display:flex}.account-bar div{display:grid}.account-bar small{color:var(--muted)}
