:root{--bg: #12140f;--bg-elevated: #1a1e16;--bg-panel: #22281c;--border: #343c2c;--text: #e8eadf;--muted: #9aa38a;--accent: #c4a35a;--accent-dim: #8a7340;--danger: #c45a4a;--ok: #6a9a5a;--warn: #c4904a;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans", system-ui, sans-serif;--radius: 6px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--sans);background:radial-gradient(ellipse 80% 50% at 10% -10%,#2a3220 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 100% 0%,#2c2418 0%,transparent 45%),var(--bg);color:var(--text);line-height:1.45}button,input,select{font:inherit}a{color:var(--accent)}.app-shell{max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.topbar{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.75rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.brand{font-family:var(--mono);font-weight:600;font-size:1.05rem;letter-spacing:.04em;text-transform:uppercase}.brand span{color:var(--accent)}.muted{color:var(--muted);font-size:.875rem}.grid{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-bottom:1.5rem}.metric{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:.95rem 1rem}.metric .label{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.35rem}.metric .value{font-size:1.55rem;font-weight:600;font-variant-numeric:tabular-nums}.panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.15rem;margin-bottom:1rem}.panel h2{margin:0 0 .85rem;font-size:.95rem;font-family:var(--mono);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.panel h3{margin:1rem 0 .5rem;font-size:.85rem;color:var(--muted);font-weight:500}.two-col{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width: 800px){.two-col{grid-template-columns:1fr 1fr}}table{width:100%;border-collapse:collapse;font-size:.82rem;font-family:var(--mono)}th,td{text-align:left;padding:.45rem .4rem;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:500;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);border-radius:var(--radius);padding:.5rem .9rem;cursor:pointer;font-weight:500}.btn:hover{border-color:var(--accent-dim)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#1a160c}.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem}.field label{font-size:.8rem;color:var(--muted);font-family:var(--mono)}.field input,.field select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:.55rem .7rem}.field input:focus,.field select:focus{outline:1px solid var(--accent-dim);border-color:var(--accent-dim)}.row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(400px,100%);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem 1.5rem}.login-card h1{margin:0 0 .35rem;font-size:1.25rem;font-family:var(--mono)}.error{color:var(--danger);font-size:.85rem;margin:.5rem 0}.ok{color:var(--ok);font-size:.85rem}.badge{display:inline-block;font-family:var(--mono);font-size:.7rem;padding:.15rem .4rem;border-radius:3px;border:1px solid var(--border);color:var(--muted)}.badge.active{border-color:var(--ok);color:var(--ok)}.badge.expired{border-color:var(--danger);color:var(--danger)}.links{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.85rem}.confirm-box{margin-top:.75rem;padding:.75rem;border:1px dashed var(--danger);border-radius:var(--radius);background:#c45a4a14}pre.json{margin:0;padding:.75rem;background:var(--bg);border-radius:var(--radius);overflow:auto;font-size:.75rem;max-height:240px}.loading{padding:3rem 1rem;text-align:center;color:var(--muted);font-family:var(--mono)}.testing-banner h2{margin-bottom:.65rem}.testing-row{display:flex;gap:1rem;align-items:center}.testing-days{font-size:2.4rem;font-weight:700;font-variant-numeric:tabular-nums;font-family:var(--mono);color:var(--accent);min-width:3rem;line-height:1}.testing-label{font-weight:600}.testing-done .testing-days{color:var(--ok);font-size:1.25rem}.spark-bars{display:flex;align-items:flex-end;gap:2px;height:88px;padding-top:.5rem}.spark-bar{flex:1;min-width:2px;background:var(--accent-dim);border-radius:2px 2px 0 0;opacity:.85}.spark-bar:hover{background:var(--accent);opacity:1}.spark-meta{margin-top:.5rem;font-size:.8rem}
