:root{--bg:#0f1420;--card:#1a2130;--card-stale:#251a1a;--text:#e6e9ef;--muted:#8a93a6;--accent:#4cc9f0;--warn:#f7b955;--bad:#ef5b6b;--good:#5bd6a0}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}header{border-bottom:1px solid #232b3b;align-items:baseline;gap:1rem;padding:1.25rem 1.5rem;display:flex}header h1{letter-spacing:.5px;margin:0;font-size:1.4rem}.status{color:var(--muted);font-size:.85rem}.status.ok{color:var(--good)}.status.err{color:var(--bad)}.filters{flex-wrap:wrap;gap:.5rem;padding:1rem 1.5rem 0;display:flex}.filters:empty{display:none}.chip{color:var(--text);cursor:pointer;background:#232b3b;border:1px solid #2f3a52;border-radius:999px;padding:.3rem .85rem;font-size:.82rem;transition:opacity .15s,background .15s}.chip:before{content:"✓ ";color:var(--good)}.chip.off{opacity:.5;background:0 0}.chip.off:before{content:""}.chip.reset{color:var(--muted);border-style:dashed}.chip.reset:before{content:""}.cat-badge{color:var(--accent);cursor:pointer;background:#2a3550;border:1px solid #34436a;border-radius:6px;margin-top:.4rem;padding:.15rem .55rem;font-family:inherit;font-size:.72rem;display:inline-block}.cat-badge:hover{border-color:var(--accent)}.cat-badge.unset{color:var(--muted);border-style:dashed}.inline-edit{font:inherit;color:var(--text);border:1px solid var(--accent);background:#0f1420;border-radius:6px;outline:none;width:100%;max-width:100%;padding:.15rem .4rem}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;padding:1.5rem;display:grid}.card{background:var(--card);cursor:pointer;border:1px solid #28324a;border-radius:12px;padding:1rem 1.1rem;transition:transform 80ms,border-color .2s}.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card.stale{background:var(--card-stale);border-color:#5a3030}.card .name{cursor:text;font-size:1.05rem;font-weight:600;display:inline-block}.card .name:hover{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.card .mac{color:var(--muted);font-family:ui-monospace,monospace;font-size:.72rem}.card.unknown .name{color:var(--warn)}.temp{margin:.5rem 0 .2rem;font-size:2.4rem;font-weight:700}.temp small{color:var(--muted);font-size:1rem;font-weight:400}.spark{width:100%;height:44px;margin:.2rem 0 .1rem}.spark-empty{height:44px;color:var(--muted);align-items:center;margin:.2rem 0 .1rem;font-size:.72rem;display:flex}.chart-empty{width:min(620px,78vw);height:300px;color:var(--muted);justify-content:center;align-items:center;font-size:.9rem;display:flex}.recharts-tooltip-item{color:var(--text)!important}.metrics{color:var(--muted);flex-wrap:wrap;gap:.4rem 1rem;margin-top:.6rem;font-size:.85rem;display:flex}.metrics b{color:var(--text);font-weight:600}.age{color:var(--muted);margin-top:.6rem;font-size:.75rem}.age.stale{color:var(--bad)}.batt-good{color:var(--good)}.batt-warn{color:var(--warn)}.batt-bad{color:var(--bad)}footer{color:var(--muted);border-top:1px solid #232b3b;padding:1rem 1.5rem;font-size:.8rem}dialog{background:var(--card);color:var(--text);border:1px solid #28324a;border-radius:12px;max-width:90vw;padding:1.25rem}dialog::backdrop{background:#0009}.dialog-head{justify-content:space-between;align-items:center;display:flex}.dialog-head h2{margin:0;font-size:1.1rem}.dialog-head button{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1.1rem}.range-buttons{gap:.4rem;margin:.75rem 0;display:flex}.range-buttons button{color:var(--muted);cursor:pointer;background:#232b3b;border:1px solid #2f3a52;border-radius:6px;padding:.25rem .7rem;font-size:.8rem}.range-buttons button.active{background:var(--accent);color:#061018;border-color:var(--accent)}
