@charset "UTF-8";
:root{--bg:#f4f6f5;--surface:#fff;--ink:#1b302b;--muted:#71817b;--line:#e2e8e4;--green:#16745c;--pale:#e9f4ee;--sidebar:#103b35;--shadow:0 5px 18px #1d453406;color-scheme:light;font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer}a{color:inherit;text-decoration:none}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1.1px;line-height:1.25;margin-bottom:9px;font-weight:650}h2{font-size:18px;letter-spacing:-.45px;font-weight:650;margin-bottom:20px}h3{font-size:15px;margin-top:28px}.muted{color:var(--muted)}.small,small{font-size:12px}.eyebrow{color:var(--muted);font-size:10px;letter-spacing:1.7px;font-weight:650;margin-bottom:9px}.tag{display:inline-flex;padding:5px 10px;border-radius:5px;background:var(--pale);color:var(--green);font-size:10px;font-weight:700;letter-spacing:1px}.brand{display:flex;align-items:center;gap:3px;font-size:22px;letter-spacing:-.7px;font-weight:650}.brand>span:last-child{font-weight:350}.brand-icon{font-size:26px;line-height:1;color:#b4e6c6;margin-right:8px}.primary,.secondary{border-radius:7px;padding:10px 16px;border:1px solid transparent;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:41px}.primary{background:var(--green);color:#fff}.primary:hover{background:#0e604b}.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.secondary:hover{border-color:var(--green)}button:disabled{opacity:.4;cursor:not-allowed}.wide{width:100%}label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600;margin-bottom:18px}input,select{min-height:42px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);padding:10px 12px;max-width:100%;min-width:0}input::placeholder{color:#8f9c96}input:focus,select:focus{border-color:var(--green)}.message{color:#ad3e31;font-size:13px;min-height:5px;overflow-wrap:anywhere}.message:empty{display:none}.login-layout{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:var(--sidebar);color:#fff;padding:48px 65px;display:flex;flex-direction:column;justify-content:space-between;gap:80px}.login-story h1{font-size:clamp(35px,3.5vw,59px);line-height:1.15;margin:20px 0}.login-story .eyebrow,.login-story small{color:#95b4a6}.intro{max-width:420px;color:#c0d4cb;font-size:16px}.login-story small{font-size:9px;letter-spacing:1.4px}.signal-art{height:150px;display:flex;align-items:center;gap:13px;margin:36px 0;background:repeating-linear-gradient(0deg,transparent,transparent 36px,#ffffff09 37px),repeating-linear-gradient(90deg,transparent,transparent 36px,#ffffff09 37px)}.signal-art span{display:block;width:17px;border:1px solid #95d2ad;border-radius:8px;background:#4f9f7622;height:35%}.signal-art span:nth-child(2n){height:60%}.signal-art span:nth-child(3n){height:85%}.signal-art span:nth-child(5){height:45%}.story-note{color:#9bbbaf;font-size:12px}.login-form{display:flex;align-items:center;justify-content:center;padding:50px}.login-inner{width:350px}.login-inner h2{font-size:28px;margin:19px 0 9px}.login-inner form{margin:35px 0 18px}.login-inner .small{margin-top:28px}.app-shell{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;background:var(--sidebar);color:#d1e1d8;padding:30px 21px;display:flex;flex-direction:column}.sidebar .brand{color:#fff;margin:0 5px 48px}.nav-label{font-size:9px;letter-spacing:1.2px;color:#82a496;margin:0 12px 15px}nav{display:flex;flex-direction:column;gap:5px}nav a{padding:12px 14px;display:flex;gap:13px;align-items:center;border-radius:6px;font-size:13px;color:#afcabd}nav a span{font-size:20px;line-height:1}nav a.active{color:#fff;background:#ffffff13;border-left:2px solid #96d8ac}nav a:hover{background:#ffffff0c}.sidebar-bottom{margin-top:auto}.safe-note{border-top:1px solid #ffffff18;padding:24px 11px 12px;margin-top:30px}.safe-note>span{font-size:19px;color:#b3e7c3;margin-right:8px}.safe-note strong{font-size:12px;font-weight:500}.safe-note p{font-size:11px;color:#89ac9a;margin:12px 0}.logout{border:0;background:transparent;color:#b9d1c4;padding:14px 12px;text-align:left}.workspace{min-width:0;padding:0 36px}.topbar{height:81px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin-bottom:33px}.topbar>div{display:flex;align-items:center;gap:20px}.avatar{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#e7eee9;color:var(--green);font-weight:600}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.page-heading .muted{margin-bottom:0;font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:24px}.stat{padding:23px;border:1px solid var(--line);border-radius:9px;background:var(--surface);display:flex;flex-direction:column;box-shadow:var(--shadow)}.stat>span{font-size:12px;color:var(--muted)}.stat strong{font-size:37px;letter-spacing:-1.5px;line-height:1.4;margin:8px 0}.stat small{color:var(--muted);font-size:10px}.stat.accent{background:var(--sidebar);color:#fff;border-color:var(--sidebar)}.stat.accent>span,.stat.accent small{color:#a6c4b4}.stat.accent strong{font-size:25px;margin:16px 0 17px;letter-spacing:-.5px}.two-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:22px}.panel{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:25px;margin-bottom:23px;min-width:0;box-shadow:var(--shadow)}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:21px}.panel-heading h2{margin-bottom:0}.panel-heading .eyebrow{margin-bottom:5px}.text-link{font-size:11px;color:var(--green);white-space:nowrap}.device-card{padding:16px 0;border-bottom:1px solid var(--line);display:flex;gap:13px;align-items:center}.device-card:last-child{border-bottom:0}.device-symbol{height:40px;width:40px;display:grid;place-items:center;background:var(--pale);color:var(--green);border-radius:7px;font-size:20px}.device-card h3{font-size:13px;margin:0}.device-card p{font-size:10px;color:var(--muted);margin:3px 0 0}.device-card>.status{margin-left:auto}.status{display:inline-flex;gap:6px;align-items:center;font-size:10px;color:var(--muted);white-space:nowrap}.status:before{content:'';width:6px;height:6px;border-radius:50%;background:#b6bdb9}.status.online{color:var(--green)}.status.online:before{background:#439e6e}.grade-row{display:grid;grid-template-columns:1fr auto;gap:7px;margin:17px 0;font-size:11px}.grade-track{grid-column:1/-1;height:7px;border-radius:5px;background:var(--bg);overflow:hidden}.grade-fill{height:100%;background:#39856a;border-radius:5px}.grade-fill.review{background:#d5af57}.grade-fill.reject{background:#bc7869}.grade-fill.insufficient{background:#9eaec3}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;white-space:nowrap}th{font-size:10px;color:var(--muted);font-weight:500;border-bottom:1px solid var(--line);padding:13px 10px;background:var(--bg)}td{padding:16px 10px;border-bottom:1px solid var(--line)}td small{display:block;color:var(--muted);font-size:10px}.grade{font-size:10px;padding:5px 9px;background:var(--pale);color:var(--green);border-radius:5px}.grade.review{background:#fbf4e3;color:#9b7317}.grade.reject{background:#f8ece8;color:#a45d48}.grade.insufficient{background:#edf0f4;color:#6b7d96}.empty{text-align:center;color:var(--muted);padding:40px 15px}.row-button{border:0;background:transparent;color:var(--green);font-size:11px;padding:5px}.toolbar{display:flex;align-items:center;gap:25px;margin-bottom:24px}.toolbar label{min-width:230px;margin:0}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:20px}.metric>span{color:var(--muted);font-size:11px}.metric strong{display:block;font-size:29px;letter-spacing:-1px;font-weight:500;margin-top:8px}.metric strong small{font-size:12px;letter-spacing:0;color:var(--muted);margin-left:7px}.metric .hint{font-size:9px;color:var(--muted);display:block;margin-top:7px}canvas{width:100%;height:260px;display:block}.chart-panel select{width:150px;font-size:11px}.filters{display:flex;align-items:flex-end;gap:13px;flex-wrap:wrap;margin-bottom:23px}.filters label{flex:1;min-width:130px;margin-bottom:0}.filters button{margin-bottom:0}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:22px;font-size:12px}.guidance p{color:var(--muted);max-width:850px;font-size:13px}dl{display:grid;grid-template-columns:1fr 1.4fr;gap:12px;font-size:12px;overflow-wrap:anywhere}dt{color:var(--muted)}dd{margin:0}.demo-banner{padding:12px 18px;background:#fff0ce;color:#895e0a;border:1px solid #efdaab;border-radius:6px;margin-bottom:22px;font-size:12px}footer{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);padding:8px 0 26px}dialog{border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:28px;width:min(580px,94vw);max-height:90dvh}dialog::backdrop{background:#0b242c80;backdrop-filter:blur(3px)}.device-actions{display:flex;gap:7px}.device-actions button{font-size:10px}.dark{--bg:#142823;--surface:#1b342d;--ink:#e0eae4;--muted:#9aafa3;--line:#314b40;--pale:#244e3d;color-scheme:dark}.compact td{padding-top:9px;padding-bottom:9px}
@media(min-width:1550px){.workspace{padding:0 55px}.panel{padding:29px}.page-heading{margin-top:40px}.stats{gap:24px}}
@media(max-width:1150px){.sidebar{padding:26px 14px}.app-shell{grid-template-columns:195px minmax(0,1fr)}.workspace{padding:0 24px}.stats{grid-template-columns:repeat(2,1fr)}.two-columns{grid-template-columns:1fr}.stat.accent strong{margin:10px 0}.panel-heading{flex-wrap:wrap}.login-story{padding:40px}.metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.login-layout{display:block}.login-story{padding:25px;gap:25px;min-height:330px}.login-story h1{font-size:33px;margin:14px 0}.login-story .intro{font-size:13px}.signal-art,.story-note,.login-story>small{display:none}.login-form{padding:35px 25px}.app-shell{display:block}.sidebar{position:static;height:auto;padding:18px 16px 10px;display:block}.sidebar .brand{font-size:20px;margin:0 0 17px}.nav-label,.sidebar-bottom{display:none}nav{display:flex;flex-direction:row;overflow:auto;gap:4px}nav a{font-size:10px;padding:9px;white-space:nowrap;gap:5px}nav a span{font-size:15px}.workspace{padding:0 16px}.topbar{height:60px;margin-bottom:23px}.page-heading{align-items:flex-start;gap:12px;margin-bottom:20px}h1{font-size:25px}.page-heading>.secondary{padding:8px 10px;font-size:10px;white-space:nowrap}.page-heading .muted{font-size:11px}.stats{gap:10px}.stat{padding:16px}.stat strong{font-size:32px}.stat.accent strong{font-size:21px}.panel{padding:18px}.metrics{gap:10px}.metric{padding:16px}.metric strong{font-size:25px}.toolbar{display:block}.toolbar>div{margin-top:15px;font-size:12px}.toolbar label{min-width:0}.filters{gap:10px}.filters label{min-width:calc(50% - 10px)}.filters button{flex:1}.topbar>div{gap:10px}.topbar .tag{font-size:8px}.panel h2{font-size:16px}footer{flex-direction:column;gap:5px}.panel-heading select{width:100%}dl{grid-template-columns:1fr 1.2fr}.pagination{justify-content:center}#logout{display:block}}

.message.muted{color:var(--muted)}
@media(max-width:700px){.topbar>span{display:none}.topbar{justify-content:flex-end}}

#cellDialog{width:min(1050px,94vw)}.device-card>div{min-width:0;overflow-wrap:anywhere}.row-button{min-height:36px}
