:root{--ink:#17131c;--purple:#28113f;--purple-2:#44206b;--gold:#f1b82d;--gold-soft:#fff4cf;--paper:#f7f7fa;--panel:#fff;--line:#e5e2ea;--muted:#6d6875;--good:#18794e;--bad:#b42318;--shadow:0 16px 42px rgba(35,17,55,.1)}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,p{margin-top:0}h1{font-family:Oswald,sans-serif;letter-spacing:.01em}.eyebrow{margin:0 0 7px;color:#745e86;font-size:.72rem;font-weight:700;letter-spacing:.13em}.muted{color:var(--muted)}
.signin-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 75% 15%,#59327b 0,transparent 34%),linear-gradient(145deg,#170923,#301449 70%,#1b0c29)}.signin-card{width:min(430px,100%);padding:46px;border:1px solid rgba(255,255,255,.14);border-radius:22px;background:rgba(255,255,255,.97);box-shadow:0 30px 80px rgba(0,0,0,.35)}.signin-card h1{font-size:2.6rem;margin-bottom:12px}.signin-card .button{width:100%;margin-top:20px}
.brand-logo{display:block;width:82px;height:82px;object-fit:contain}.brand-logo.small{width:52px;height:52px;flex:0 0 auto}
.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;padding:24px 18px;background:var(--purple);color:white;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.brand strong,.brand span{display:block}.brand strong{font-family:Oswald;font-size:1.2rem}.brand span{color:#c8b9d2;font-size:.8rem}.sidebar nav{display:grid;gap:7px}.nav-item{padding:12px 14px;border:0;border-radius:9px;background:transparent;color:#d8cde0;text-align:left;font-weight:600}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.1);color:white}.nav-item.active{box-shadow:inset 3px 0 var(--gold)}.sidebar-footer{margin-top:auto;padding:18px 8px 0;border-top:1px solid rgba(255,255,255,.15);font-size:.75rem;overflow-wrap:anywhere}.link-button,.text-button{border:0;background:none;color:inherit}.link-button{display:block;padding:10px 0;color:var(--gold)}
.content{margin-left:242px;padding:30px 34px 50px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}.topbar h1{margin:0;font-size:2rem}.actions,.section-actions,.toolbar{display:flex;align-items:center;gap:12px}.sync-status{color:var(--muted);font-size:.78rem}.button{border:1px solid transparent;border-radius:8px;padding:10px 15px;font-weight:700}.button.primary{background:var(--purple-2);color:white}.button.primary:hover{background:var(--purple)}.button.secondary{border-color:var(--line);background:white;color:var(--ink)}.button:disabled{cursor:not-allowed;opacity:.5}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric,.panel{border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:0 4px 14px rgba(35,17,55,.035)}.metric{padding:22px}.metric span,.metric small{display:block;color:var(--muted)}.metric span{font-size:.78rem;font-weight:600}.metric strong{display:block;margin:11px 0 6px;font-family:Oswald;font-size:2rem}.metric small{font-size:.72rem}.panel-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin-top:16px}.panel{padding:22px}.panel-heading,.section-actions,.toolbar{justify-content:space-between}.panel-heading{display:flex;align-items:flex-start;gap:12px}.panel-heading h2{font-size:1.05rem}.text-button{color:var(--purple-2);font-weight:700}.empty-state{padding:30px 12px;color:var(--muted);text-align:center}.list-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:13px 0;border-top:1px solid var(--line)}.list-row strong,.list-row span{display:block}.list-row span{margin-top:4px;color:var(--muted);font-size:.75rem}
.section-actions,.toolbar{margin-bottom:16px}.section-actions p{margin:0;color:var(--muted)}.search{display:grid;gap:5px;flex:1}.search label{font-size:.72rem;font-weight:700;color:var(--muted)}input,select,textarea{min-height:42px;border:1px solid #d8d3de;border-radius:8px;background:white;padding:9px 11px;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid rgba(68,32,107,.14);border-color:var(--purple-2)}.table-panel{padding:0;overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{padding:14px 16px;background:#faf9fb;color:var(--muted);font-size:.69rem;text-transform:uppercase;letter-spacing:.06em}td{padding:15px 16px;border-top:1px solid var(--line);font-size:.82rem;vertical-align:middle}.device-name strong,.device-name span{display:block}.device-name span{color:var(--muted);font-size:.72rem;margin-top:3px}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eeeaf2;color:var(--purple-2);font-size:.67rem;font-weight:700}.badge.good{background:#e7f6ee;color:var(--good)}.badge.warn{background:var(--gold-soft);color:#785500}.badge.bad{background:#feeceb;color:var(--bad)}
dialog{width:min(610px,calc(100% - 32px));padding:0;border:0;border-radius:15px;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(18,9,25,.65)}dialog form{padding:25px}.dialog-heading,.dialog-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dialog-heading h2{margin:0}.icon-button{border:0;background:none;font-size:1.8rem;line-height:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:24px 0}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:.75rem;font-weight:700}.field small{color:var(--muted)}textarea{min-height:90px;resize:vertical}.dialog-actions{justify-content:flex-end;margin-top:18px}.form-status{min-height:18px;margin:12px 0 0;color:var(--bad);font-size:.78rem}.toast{position:fixed;right:24px;bottom:24px;max-width:390px;padding:13px 17px;border-radius:8px;background:var(--ink);color:white;box-shadow:var(--shadow);opacity:0;transform:translateY(15px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}
@media(max-width:1000px){.metric-grid{grid-template-columns:1fr 1fr}.panel-grid{grid-template-columns:1fr}.sidebar{width:200px}.content{margin-left:200px;padding:24px}.topbar{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.sidebar{position:static;width:auto;min-height:auto}.sidebar nav{grid-template-columns:repeat(4,1fr)}.nav-item{text-align:center;padding:10px 5px;font-size:.75rem}.sidebar-footer{display:none}.content{margin:0;padding:20px 14px}.metric-grid{grid-template-columns:1fr 1fr}.actions{flex-wrap:wrap}.sync-status{width:100%}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.topbar h1{font-size:1.7rem}td,th{white-space:nowrap}}
