:root{--bg:#0f1115;--panel:#161922;--panel2:#1d212c;--text:#e7ecf2;--muted:#8a93a3;--accent:#6fa8ff;--danger:#ff6b6b;--warn:#e69138;--good:#4cc9a4;--border:#2a2f3d}*{box-sizing:border-box}html,body,#root{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}.root{max-width:1400px;margin:0 auto;padding:1.5rem}.topbar{justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:1.5rem;display:flex}.topbar h1{margin:0 0 .25rem;font-size:1.5rem}.sub{color:var(--muted);margin:.25rem 0 .75rem;font-size:.9rem}.grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=1100px){.grid{grid-template-columns:repeat(3,1fr);align-items:start}.grid>section:nth-child(2){grid-column:span 2}.grid>section:nth-child(3),.grid>section:nth-child(4),.grid>section:nth-child(5),.grid>section:nth-child(6){grid-column:1/-1}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem}.panel h2{margin:0 0 .25rem;font-size:1.05rem}.panel h3{margin:1rem 0 .5rem;font-size:.95rem}.panel.empty{text-align:center;padding:3rem}.uploader{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.uploader button{background:var(--accent);color:#08111d;cursor:pointer;border:none;border-radius:6px;padding:.45rem .9rem;font-weight:600}.uploader button:disabled{opacity:.6;cursor:wait}.uploader button.link{color:var(--muted);background:0 0;padding:.2rem .4rem;font-weight:400;text-decoration:underline}.meta{color:var(--muted);font-size:.85rem}.err{color:var(--danger);font-size:.9rem}.controls{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:.5rem;font-size:.9rem;display:flex}.controls select,.inputs input{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.3rem .5rem}.inputs{flex-wrap:wrap;gap:1rem;margin:.5rem 0 1rem;display:flex}.inputs label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.inputs input{width:9rem}.totals{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;margin:.5rem 0 1rem;display:grid}.card{background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem}.card-label{color:var(--muted);font-size:.8rem}.card-value{margin-top:.1rem;font-size:1.4rem;font-weight:600}.card-hint{color:var(--muted);font-size:.75rem}.stat-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:.5rem 0 1rem;display:grid}table{border-collapse:collapse;width:100%;margin-top:.5rem;font-size:.85rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.4rem .6rem}th{color:var(--muted);background:var(--panel2);font-weight:500;position:sticky;top:0}tr.row-warn td{background:#e6913814}tr.row-over td{background:#ff6b6b1f}details{margin-top:.75rem}details summary{cursor:pointer;color:var(--accent);font-size:.9rem}.password-gate{background:var(--bg);z-index:9999;place-items:center;display:grid;position:fixed;inset:0}.password-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:min(380px,90vw);padding:2rem 2.25rem;box-shadow:0 12px 40px #0009}.password-card h1{margin:0 0 .25rem;font-size:1.2rem}.password-card form{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.password-card input[type=password]{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.55rem .75rem;font-size:.95rem}.password-card button{background:var(--accent);color:#08111d;cursor:pointer;border:none;border-radius:6px;padding:.55rem .9rem;font-weight:600}.password-card button:disabled{opacity:.6;cursor:not-allowed}.number-detail{background:var(--panel2);border:1px solid var(--border);border-radius:6px;margin-top:1rem;padding:1rem 1.25rem}.number-detail.floating{z-index:999;background:var(--panel);width:min(560px,90vw);max-height:80vh;margin:0;overflow:auto;box-shadow:0 12px 40px #0009}.number-detail-head{justify-content:space-between;align-items:center;display:flex}.number-detail h3{color:var(--accent);margin:0;font-size:1.1rem}.number-detail h4{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:1rem 0 .25rem;font-size:.9rem;font-weight:500}
