:root{color:#dbe4f0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#08111f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}#root{min-height:100vh}.login-shell,.app-shell{--bg:#0f1115;--panel:#181a1ff0;--panel-soft:#24272dd1;--text:#f3f4f6;--muted:#9ca3af;--border:#9ca3af3d;--accent:#d1d5db;--accent-strong:#f9fafb;--accent-text:#111827;--warning:#b45309;--danger:#b91c1c;min-height:100vh;color:var(--text);background:var(--bg)}.theme-light{--bg:#f5f5f2;--panel:#fffffff5;--panel-soft:#eeeeeaf0;--text:#1f2933;--muted:#5f6670;--border:#1f29332e;--accent:#2f3337;--accent-strong:#111315;--accent-text:#fff}.theme-knicks{--bg:#f7f8fb;--panel:#fffffff5;--panel-soft:#eef2f7f0;--text:#14213d;--muted:#596579;--border:#006bb640;--accent:#006bb6;--accent-strong:#f58426;--accent-text:#fff}.login-shell{place-items:center;padding:2rem;display:grid}.login-card,.panel,.metric,.device-card{border:1px solid var(--border);background:var(--panel);box-shadow:none}.login-card{border-radius:.35rem;width:min(28rem,100%);padding:2rem}.login-card label{color:var(--text);gap:.45rem;margin:1rem 0;display:grid}input{border:1px solid var(--border);color:var(--text);background:var(--panel-soft);border-radius:.25rem;padding:.85rem 1rem}select{border:1px solid var(--border);color:var(--text);background:var(--panel-soft);border-radius:.25rem;padding:.7rem .9rem}button,.button-link{color:var(--accent-text);background:var(--accent);border:0;border-radius:.25rem;width:fit-content;padding:.78rem 1rem;font-weight:700;text-decoration:none}button.secondary,.button-link.secondary,.sidebar button{color:var(--text);background:var(--panel-soft)}button:disabled{cursor:not-allowed;opacity:.48}.app-shell{grid-template-columns:17rem 1fr;display:grid}.sidebar{border-right:1px solid var(--border);flex-direction:column;gap:.75rem;height:100vh;padding:1.5rem;display:flex;position:sticky;top:0}.brand-block h1,.topbar h2,.login-card h1{color:var(--text);margin:0}.nav-list{gap:.5rem;display:grid}.sidebar button{text-align:left;text-transform:capitalize;width:100%}.sidebar button.active{color:var(--accent-text);background:var(--accent-strong)}.sidebar-footer{border-top:1px solid var(--border);gap:.75rem;margin-top:auto;padding-top:1rem;display:grid}.sidebar-footer>div:first-child{gap:.15rem;display:grid}.sidebar-footer strong{color:var(--text)}.sidebar-footer small,.signed-in-label{color:var(--muted)}.theme-switcher{grid-template-columns:repeat(3,1fr);gap:.35rem;display:grid}.theme-switcher button{text-align:center;padding:.45rem}.content{padding:1.5rem}.topbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.grid,.device-grid,.site-list,.admin-grid,.settings-grid,.reports-grid,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.device-grid{grid-template-columns:1fr}.metric,.panel,.device-card{border-radius:.35rem;padding:1.25rem}.metric strong{color:var(--text);margin-top:.5rem;font-size:2.5rem;display:block}.metric.good strong{color:var(--accent-strong)}.metric.warning strong,.error{color:#fbbf24}.panel{grid-column:1/-1}.panel h3,.device-card h3{color:var(--text);margin:0 0 1rem}.button-row,.detail-header,.assignment-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.button-row.compact{justify-content:flex-start;gap:.5rem}.button-row.wrap{flex-wrap:wrap}.stack{gap:.8rem;display:grid}.row,.assignment-card,.assignment-row,.mini-device{background:var(--panel-soft);border-radius:.25rem;gap:.2rem;padding:.9rem;display:grid}.row strong{color:var(--text)}.row>div:first-child,.assignment-card>div:first-child,.assignment-row>div:first-child{gap:.2rem;display:grid}.row span,.row p,.assignment-card span,.assignment-row span,.admin-user-summary span,.site-device-group span,.muted{color:var(--muted)}.row-action{margin-top:.4rem}.eyebrow{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .35rem;font-size:.75rem;font-weight:800}.pill,.status{width:fit-content;color:var(--accent-text);background:var(--accent);border-radius:.2rem;padding:.32rem .65rem;font-size:.8rem;font-weight:700;display:inline-flex}.pill.subtle{color:var(--text);background:var(--panel-soft);border:1px solid var(--border)}.status.online{color:#0f5132;background:#d1e7dd}.status.idle{color:#1e3a8a;background:#dbeafe}.status.charging{color:#065f46;background:#ccfbf1}.status.cleaning{color:#5b21b6;background:#ede9fe}.status.warning{color:#664d03;background:#fff3cd}.status.fault,.status.offline{color:#842029;background:#f8d7da}.notice{border:1px solid var(--border);color:var(--text);background:var(--panel-soft);border-radius:.25rem;margin-bottom:1rem;padding:.85rem 1rem}.device-card{grid-template-columns:minmax(12rem,1.2fr) 1fr auto;align-items:center;gap:1rem;display:grid}.device-card.expanded{border-color:var(--accent)}.site-list,.settings-grid,.reports-grid,.admin-grid{grid-template-columns:1fr}.mini-device-list{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.75rem;display:grid}.mini-device{border:1px solid var(--border);color:var(--text);text-align:left}.mini-device small{color:var(--muted)}.detail-panel{border:1px solid var(--border);background:var(--panel);border-radius:.35rem;margin-top:1rem;padding:1.25rem}.detail-header{margin-bottom:1rem}.detail-header h3{color:var(--text);margin:0;font-size:1.6rem}.detail-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;display:grid}.summary-actions,.capability-list,.diagnostic-grid{gap:.6rem;display:grid}.summary-actions{flex-wrap:wrap;justify-content:flex-end;display:flex}.summary-strip{flex-wrap:wrap;align-items:stretch;gap:.5rem;display:flex}.summary-strip>.status{align-items:center;min-height:2.6rem}.summary-item{border:1px solid var(--border);background:var(--panel-soft);border-radius:.25rem;align-content:center;min-height:2.6rem;padding:.45rem .65rem;display:grid}.summary-item small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:800}.summary-item strong{color:var(--text);font-size:.9rem}.capability-list{border:1px solid var(--border);color:var(--muted);background:var(--panel-soft);border-radius:.25rem;padding:.85rem}.raw-disclosure{border:1px solid var(--border);background:var(--panel-soft);border-radius:.25rem;padding:.75rem}.raw-disclosure summary{cursor:pointer;color:var(--text);font-weight:700}.raw-disclosure .raw-json{margin-top:.75rem}.log-table{gap:.35rem;display:grid}.log-table-header,.log-table-row{border-radius:.25rem;grid-template-columns:minmax(9rem,.9fr) 7rem minmax(10rem,1fr) minmax(14rem,1.5fr);align-items:center;gap:.75rem;padding:.65rem .75rem;display:grid}.log-table-header{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:800}.log-table-row{background:var(--panel-soft)}.log-table-row strong{color:var(--text)}.log-table-row span{color:var(--muted)}.assignment-card,.admin-list-row,.site-device-group{gap:1rem}.admin-list-row,.site-device-group{border:1px solid var(--border);background:var(--panel-soft);border-radius:.3rem;gap:.9rem;padding:1rem;display:grid}.admin-user-summary{gap:.3rem;display:grid}.admin-user-summary strong,.site-device-group strong{color:var(--text)}.inline-meta{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.site-access-list,.site-device-tree,.form-grid{gap:.6rem;display:grid}.site-access-list{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.site-access-list label{border:1px solid var(--border);color:var(--text);background:var(--panel);border-radius:.25rem;align-items:flex-start;gap:.55rem;padding:.65rem;display:flex}.site-access-list label.locked{opacity:.62}.site-access-list label.selected{border-style:dashed}.site-access-list label span{gap:.12rem;display:grid}.site-access-list small,.reset-password-box small{color:var(--muted)}.reset-password-box{border:1px solid var(--border);background:var(--panel);border-radius:.25rem;gap:.3rem;width:fit-content;max-width:100%;padding:.7rem;display:grid}.reset-password-box code{overflow-wrap:anywhere;color:var(--text)}.compact-row{grid-template-columns:minmax(12rem,1fr) auto;padding:.7rem}.compact-form{max-width:38rem}.form-grid label{color:var(--text);gap:.35rem;display:grid}.checkbox-grid{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.7rem;display:grid}.checkbox-grid label{color:var(--text);align-items:center;gap:.5rem;display:flex}.checkbox-grid input{width:1rem;height:1rem}dl{grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0;display:grid}dt{color:var(--muted)}dd{color:var(--text);margin:0}.raw-json{border:1px solid var(--border);max-height:22rem;color:var(--text);background:var(--panel-soft);white-space:pre-wrap;border-radius:.25rem;margin:0;padding:.9rem;overflow:auto}@media (width<=860px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.grid{grid-template-columns:1fr}.button-row,.detail-header,.summary-grid,.assignment-row,.device-card{flex-direction:column;align-items:flex-start;display:flex}.button-row.compact{align-items:flex-start}.log-table-header{display:none}.log-table-row{grid-template-columns:1fr}.panel{grid-column:span 1}}.bot-tabs,.map-chip-list{flex-wrap:wrap;gap:.5rem;display:flex}.bot-tabs{border:1px solid var(--border);background:var(--panel-soft);border-radius:.3rem;grid-column:1/-1;padding:.4rem}.bot-tabs button.active{color:var(--accent-text);background:var(--accent-strong)}.history-list{gap:.55rem;display:grid}.history-row{background:var(--panel-soft);border-radius:.25rem;grid-template-columns:minmax(9rem,.8fr) 8rem minmax(10rem,1fr) minmax(13rem,1.4fr);align-items:start;gap:.7rem;padding:.75rem;display:grid}.history-row strong{color:var(--text)}.history-row span,.history-row small{color:var(--muted)}.history-row .raw-disclosure{grid-column:1/-1}.map-chip-list{align-items:center}.map-image{border:1px solid var(--border);background:var(--panel-soft);border-radius:.35rem;width:min(100%,42rem)}.guide-shell{--bg:#f7f7f3;--panel:#fff;--panel-soft:#f0f1ec;--text:#17202a;--muted:#5f6670;--border:#17202a2e;--accent:#17202a;--accent-strong:#0f172a;--accent-text:#fff;min-height:100vh;color:var(--text);background:var(--bg);padding:2rem}.guide-header,.guide-page,.guide-footer,.guide-nav{width:min(68rem,100%);margin-inline:auto}.guide-header{border:1px solid var(--border);background:var(--panel);border-radius:.4rem;justify-content:space-between;gap:1rem;padding:1.5rem;display:flex}.guide-header h1{color:var(--text);margin:0}.guide-header p{color:var(--muted)}.guide-actions{flex-wrap:wrap;place-content:flex-start flex-end;gap:.5rem;display:flex}.guide-nav{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.guide-nav a{border:1px solid var(--border);color:var(--text);background:var(--panel);border-radius:999px;padding:.55rem .8rem;font-weight:700;text-decoration:none}.guide-nav a.active{color:var(--accent-text);background:var(--accent)}.guide-page{gap:1rem;margin-top:1rem;display:grid}.guide-section{border:1px solid var(--border);background:var(--panel);break-inside:avoid;border-radius:.4rem;padding:1.4rem}.guide-section h2{margin-top:0}.guide-section li,.guide-section p{line-height:1.55}.guide-checklist{gap:.65rem;display:grid}.guide-checklist label{border:1px solid var(--border);background:var(--panel-soft);border-radius:.3rem;grid-template-columns:auto 1fr;gap:.65rem;padding:.8rem;display:grid}.guide-checklist input{width:1.1rem;height:1.1rem;margin-top:.15rem}.guide-checklist span{gap:.15rem;display:grid}.guide-checklist small,.guide-footer{color:var(--muted)}.guide-footer{padding:1rem 0}@media (width<=860px){.history-row{grid-template-columns:1fr}.guide-header{flex-direction:column}.guide-actions{justify-content:flex-start}}@media print{.guide-shell{color:#111827;background:#fff;min-height:auto;padding:0}.guide-actions,.guide-nav{display:none}.guide-header,.guide-page,.guide-footer{width:100%}.guide-header,.guide-section{box-shadow:none;border-color:#d1d5db}.guide-header{border-width:0 0 1px;padding:0 0 1rem}.guide-section{page-break-inside:avoid;break-inside:avoid;margin-top:.75rem;padding:1rem}.guide-checklist label{background:#fff}.pill,.status{color:#111827;background:#fff;border:1px solid #d1d5db}}
