:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#f4f5f7)var(--lightningcss-dark,#111316);--card:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1a1d21);--border:var(--lightningcss-light,#dfe2e7)var(--lightningcss-dark,#2c3138);--text:var(--lightningcss-light,#15181d)var(--lightningcss-dark,#e8eaed);--muted:var(--lightningcss-light,#667080)var(--lightningcss-dark,#939caa);--accent:var(--lightningcss-light,#0f7a3d)var(--lightningcss-dark,#3ecf7a);--accent-text:var(--lightningcss-light,#fff)var(--lightningcss-dark,#07210f);--danger:var(--lightningcss-light,#b42318)var(--lightningcss-dark,#ff8a80);--mono:ui-monospace, SFMono-Regular, Menlo, monospace;font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}h1,h2{margin:0}h1{font-size:1.1rem}h1 span{color:var(--accent);font-weight:500}h2{margin-bottom:.75rem;font-size:1rem}code,.log,dd{font-family:var(--mono)}.muted{color:var(--muted);font-size:.875rem}[role=alert]{color:var(--danger)}.success{color:var(--accent)}.topbar{border-bottom:1px solid var(--border);background:var(--card);justify-content:space-between;align-items:center;padding:.75rem 1.25rem;display:flex}.user{align-items:center;gap:.75rem;font-size:.875rem;display:flex}main{max-width:1100px;margin:0 auto;padding:1.25rem}.grid{gap:1.25rem;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.25rem;overflow-x:auto}.card.center{text-align:center;max-width:420px;margin:4rem auto}button{font:inherit;border:1px solid var(--border);color:inherit;cursor:pointer;background:0 0;border-radius:7px;padding:.45rem .9rem}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);padding:.7rem 1.4rem;font-weight:600}button:disabled{opacity:.55;cursor:not-allowed}.firmware{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;margin-bottom:1rem;display:flex}.identity{border:1px solid var(--border);border-left:5px solid var(--border);border-radius:8px;gap:.15rem;margin-bottom:1rem;padding:1rem 1.25rem;display:grid}.identity.running{border-left-color:var(--muted)}.identity.done{border-left-color:var(--accent)}.identity.failed{border-left-color:var(--danger)}.identity .label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.75rem}.identity .value{font-family:var(--mono);font-size:clamp(2rem,6vw,3.25rem);font-weight:700;line-height:1.1}.chip{grid-template-columns:max-content 1fr;gap:.2rem 1rem;margin:0 0 1rem;font-size:.875rem;display:grid}.chip dt{color:var(--muted)}.chip dd{margin:0}.steps{gap:.35rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.steps li:before{content:"○";width:1.4rem;color:var(--muted);display:inline-block}.steps li.pending{color:var(--muted)}.steps li.current{font-weight:600}.steps li.current:before{content:"◉";color:var(--text)}.steps li.complete:before{content:"✓";color:var(--accent)}.steps li.failed{color:var(--danger)}.steps li.failed:before{content:"✕";color:var(--danger)}.progress{color:var(--muted);align-items:center;gap:.5rem;margin-left:.75rem;font-size:.875rem;font-weight:400;display:inline-flex}progress{accent-color:var(--accent);width:160px}.actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.actions label{font-size:.875rem}details summary{cursor:pointer;color:var(--muted);font-size:.875rem}.log{background:var(--bg);white-space:pre-wrap;border-radius:6px;max-height:220px;margin:.5rem 0 0;padding:.75rem;font-size:.75rem;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.45rem .6rem}th{color:var(--muted);font-weight:500}fieldset.meter{border:1px solid var(--border);border-radius:8px;gap:.6rem;margin:0 0 1rem;padding:.75rem 1rem 1rem;display:grid}fieldset.meter legend{color:var(--muted);padding:0 .4rem;font-size:.8rem}fieldset.meter label{gap:.25rem;font-size:.875rem;display:grid}fieldset.meter select,fieldset.meter input{font:inherit;border:1px solid var(--border);background:var(--bg);color:inherit;border-radius:6px;padding:.4rem .5rem}fieldset.meter .serial{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;gap:.75rem;margin-top:.6rem;display:grid}
