:root{--bg:#0a0f1e;--surface:#121a30;--surface-2:#0e1526;--border:#223052;--border-soft:#1a2540;--text:#dfe7f5;--muted:#8ea0c4;--accent:#3b82f6;--accent-2:#38bdf8;--ok:#34d399;--warn:#fbbf24;--bad:#f87171;--radius:12px}*{box-sizing:border-box}body{background:radial-gradient(1200px 600px at 80% -10%, #38bdf814, transparent), radial-gradient(900px 500px at 0% 0%, #3b82f61a, transparent), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif}header{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-soft);background:#0e1526d9;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;padding:.85rem 1.25rem;display:flex;position:sticky;top:0}button{cursor:pointer;color:#fff;background:linear-gradient(180deg, var(--accent-2), var(--accent));border:none;border-radius:8px;padding:.5rem .95rem;font-size:.9rem;font-weight:600;transition:filter .15s,transform 50ms}button:hover{filter:brightness(1.08)}button:active{transform:translateY(1px)}header label{color:var(--muted);-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;font-size:.9rem;display:inline-flex}header input[type=checkbox]{accent-color:var(--accent-2);width:16px;height:16px}header span{color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.35rem .8rem;font-size:.85rem;font-weight:600}main{max-width:1400px;margin:0 auto;padding:1.25rem}.dash-grid{grid-template-columns:repeat(auto-fit,minmax(280px,340px));justify-content:center;align-items:start;gap:1rem;display:grid}.card{background:linear-gradient(180deg, var(--surface), var(--surface-2));border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:0 8px 24px #00000040}.card-wide{grid-column:1/-1}.card h2{letter-spacing:.08em;text-transform:uppercase;text-align:center;color:var(--accent-2);margin:0 0 .75rem;font-size:.72rem;font-weight:700}.kv{flex-direction:column;gap:.15rem;margin:0;display:flex}.kv-row{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:1rem;padding:.35rem 0;display:flex}.kv-row:last-child{border-bottom:none}.kv dt{color:var(--muted);font-size:.85rem}.kv dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-size:.9rem;font-weight:600}.pill{border:1px solid #0000;border-radius:999px;padding:.15rem .6rem;font-size:.78rem;font-weight:700;display:inline-block}.pill.ok{color:var(--ok);background:#34d3991f;border-color:#34d3994d}.pill.warn{color:var(--warn);background:#fbbf241f;border-color:#fbbf244d}.pill.bad{color:var(--bad);background:#f8717124;border-color:#f8717159}.pill.muted{color:var(--muted);border-color:var(--border);background:#8ea0c41a}.cells-head{text-align:center;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.5rem 1.5rem;display:flex}.cells-title{font-size:1.15rem;font-weight:700}.cells-pack-label{letter-spacing:.03em}.cells-pack-v{color:var(--accent-2)}.cells-stats{color:var(--muted);gap:1.1rem;font-size:.85rem;display:flex}.cells-stats b{color:var(--text);font-variant-numeric:tabular-nums}.cells-stats .good b{color:var(--ok)}.cells-stats .bad b{color:var(--bad)}.cells-note{color:var(--muted);text-align:center;margin:.35rem 0 1.25rem;font-size:.8rem}.cells-row{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:.7rem;display:flex}.cell{flex-direction:column;align-items:center;gap:.3rem;width:46px;display:flex}.cell-battery{flex-direction:column;align-items:center;display:flex}.cell-nub{background:linear-gradient(#c7d3ec,#7f8fb4);border-radius:3px 3px 1px 1px;width:16px;height:6px;box-shadow:0 1px #0006}.cell-body{background:linear-gradient(90deg, #00000059 0%, #ffffff1a 22%, #ffffff05 50%, #00000059 100%), var(--surface-2);border:1px solid #33456b;border-radius:9px;width:40px;height:116px;position:relative;overflow:hidden;box-shadow:inset 0 2px 5px #00000080,0 2px 6px #00000059}.cell-fill{border-top:2px solid #ffffff73;transition:height .4s,background .3s;position:absolute;bottom:0;left:0;right:0}.cell-fill.green{background:linear-gradient(#86efac,#16a34a);box-shadow:0 0 14px #22c55e66}.cell-fill.yellow{background:linear-gradient(#fde047,#ca8a04);box-shadow:0 0 14px #eab30866}.cell-fill.red{background:linear-gradient(#fca5a5,#dc2626);box-shadow:0 0 14px #ef444473}.cell-body:after{content:"";pointer-events:none;background:linear-gradient(#ffffff59,#ffffff0a);border-radius:6px;width:7px;height:100%;position:absolute;top:0;left:5px}.cell.weak .cell-body{border-color:var(--warn);box-shadow:inset 0 2px 5px #00000080, 0 0 0 1px var(--warn), 0 0 14px #fbbf2459}.cell.strong .cell-body{border-color:var(--ok);box-shadow:inset 0 2px 5px #00000080, 0 0 0 1px var(--ok)}.cell-value{font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:600}.cell-label{color:var(--muted);font-size:.7rem}#app>div>section{background:linear-gradient(180deg, var(--surface), var(--surface-2));border:1px solid var(--border);border-radius:var(--radius);text-align:center;max-width:900px;margin:1rem auto;padding:1rem 1.1rem;box-shadow:0 8px 24px #00000040}#app>div>section h2{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-2);margin:0 0 .75rem;font-size:.72rem;font-weight:700}#app>div>section button{margin:0 .4rem .4rem 0}pre{background:var(--surface-2);border:1px solid var(--border);color:var(--text);text-align:left;border-radius:8px;max-height:260px;margin:.6rem 0 0;padding:.85rem;font-family:SF Mono,Monaco,Menlo,Ubuntu Mono,monospace;font-size:.82rem;line-height:1.5;overflow:auto}input,select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;margin-right:.4rem;padding:.45rem .6rem;font-size:.9rem}input::placeholder{color:var(--muted)}input:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #3b82f640}.landing{text-align:center;max-width:640px;margin:3.5rem auto;padding:0 1rem}.landing h1{color:var(--text);margin:0 0 .5rem;font-size:1.6rem}.landing h2{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-2);text-align:center;margin:1.8rem 0 .7rem;font-size:.72rem;font-weight:700}.landing p{color:var(--muted);margin:.4rem 0}.landing-muted{font-size:.85rem}.landing-steps{text-align:left;color:var(--text);max-width:460px;margin:0 auto;padding-left:1.3rem;line-height:1.9;display:inline-block}.landing-browsers{flex-wrap:wrap;justify-content:center;gap:.6rem;margin:.8rem 0;padding:0;list-style:none;display:flex}.landing-browsers li{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:.3rem .85rem;font-size:.85rem;font-weight:600}.landing-wiring{background:linear-gradient(180deg, var(--surface), var(--surface-2));border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.4rem;margin:0 auto;padding:1rem 1.4rem;display:inline-flex}.port-svg{width:100%;max-width:360px;height:auto;margin:.3rem auto .8rem;display:block}.port-housing{fill:var(--surface-2);stroke:var(--border);stroke-width:2px}.port-pin-label{fill:#0a1020;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:11px;font-weight:700}.port-legend{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:.5rem 1rem;margin:0 0 .4rem;font-size:.78rem;display:flex}.port-legend span{align-items:center;gap:.35rem;display:inline-flex}.port-legend .dot{border-radius:3px;width:10px;height:10px;display:inline-block}.wire-row{justify-content:flex-start;align-items:center;gap:.6rem;display:flex}.wire-row .from{color:var(--text);text-align:right;min-width:110px;font-weight:600}.wire-row .arrow{color:var(--accent-2)}.wire-row .to{color:var(--muted)}.fw-warn{color:var(--bad);background:#f8717114;border:1px solid #f871714d;border-radius:8px;max-width:640px;margin:0 auto .8rem;padding:.6rem .8rem;font-size:.85rem}input[type=file]{color:var(--muted)}.fw-bar{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;max-width:640px;height:10px;margin:.7rem auto 0;overflow:hidden}.fw-bar-fill{background:linear-gradient(90deg, var(--accent-2), var(--accent));width:0;height:100%;transition:width .2s}button[data-danger=high]{background:linear-gradient(#fb7185,#ef4444)}button[data-danger=medium]{color:#1a1200;background:linear-gradient(#fbbf24,#f59e0b)}button[data-danger=low]{background:linear-gradient(180deg, var(--accent-2), var(--accent))}
