:root{--background: oklch(.12 0 0);--card: oklch(.16 0 0);--foreground: oklch(.9 0 0);--muted: oklch(.2 0 0);--muted-fg: oklch(.62 0 0);--primary: oklch(.72 .17 70);--primary-fg: oklch(.14 0 0);--destructive: oklch(.55 .22 25);--ok: oklch(.75 .15 150);--border: oklch(.26 0 0);--font-display: "JetBrains Mono", ui-monospace, monospace;--font-body: "DM Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh}body{background:var(--background);color:var(--foreground);font-family:var(--font-body);font-size:15px}button{font:inherit;cursor:pointer;background:none;color:inherit;border:none}input{font:inherit}.shell{max-width:1080px;margin:0 auto;padding:0 14px 60px}.hdr{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:16px 2px 10px;border-bottom:1px solid var(--border)}.hdr h1{font-family:var(--font-display);font-size:15px;letter-spacing:.18em;text-transform:uppercase;margin:0}.hdr h1 b{color:var(--primary)}.hdr .who{font-size:12px;color:var(--muted-fg)}.hdr .who button{color:var(--muted-fg);text-decoration:underline;padding:6px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto}.tabs button{font-family:var(--font-display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:12px 14px;min-height:44px;color:var(--muted-fg);border-bottom:2px solid transparent;white-space:nowrap}.tabs button.active{color:var(--foreground);border-bottom-color:var(--primary)}.banner{display:flex;gap:10px;align-items:center;margin:14px 0 0;padding:12px 14px;background:color-mix(in oklab,var(--primary) 10%,var(--background));border:1px solid color-mix(in oklab,var(--primary) 45%,var(--border));font-size:13px}.banner b{font-family:var(--font-display)}.banner.overdue{background:color-mix(in oklab,var(--destructive) 12%,var(--background));border-color:color-mix(in oklab,var(--destructive) 55%,var(--border))}.section-label{font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-fg);margin:22px 0 8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.navbtns{display:inline-flex;gap:4px}.navbtns button{min-height:34px;min-width:34px;padding:4px 10px;border:1px solid var(--border);background:var(--card);font-family:var(--font-display);font-size:12px}.navbtns button.active{border-color:var(--primary);color:var(--primary)}.navbtns button:disabled{opacity:.35;cursor:default}.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--border);border:1px solid var(--border)}.tile{background:var(--card);padding:12px 14px;display:flex;flex-direction:column;gap:4px}.tile .lbl{font-family:var(--font-display);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-fg);white-space:nowrap}.tile .val{font-family:var(--font-display);font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}.tile .val.pos{color:var(--ok)}.tile .val.neg{color:var(--destructive)}.tile .val.accent{color:var(--primary)}.tile .sub{font-size:11px;color:var(--muted-fg)}.card{background:var(--card);border:1px solid var(--border);padding:14px 16px;margin-top:10px}.card h3{font-family:var(--font-display);font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin:0 0 8px}.muted{color:var(--muted-fg);font-size:12px}.mono{font-family:var(--font-display);font-variant-numeric:tabular-nums}.rows{display:flex;flex-direction:column}.row{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--border);font-size:14px}.row:last-child{border-bottom:none}.row .grow{flex:1;min-width:0}.row .title{font-weight:500}.row .amt{font-family:var(--font-display);font-weight:700;white-space:nowrap}.badge{font-family:var(--font-display);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--border);color:var(--muted-fg);white-space:nowrap}.badge.ok{color:var(--ok);border-color:color-mix(in oklab,var(--ok) 50%,var(--border))}.badge.warn{color:var(--primary);border-color:color-mix(in oklab,var(--primary) 50%,var(--border))}.badge.locked{color:var(--muted-fg)}.btn{font-family:var(--font-display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:10px 16px;min-height:44px;border:1px solid var(--border);background:var(--card);color:var(--foreground)}.btn.primary{background:var(--primary);color:var(--primary-fg);border-color:var(--primary)}.btn:disabled{opacity:.4;cursor:default}.btn.small{min-height:36px;padding:6px 12px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login form{width:100%;max-width:340px;background:var(--card);border:1px solid var(--border);padding:26px;display:flex;flex-direction:column;gap:12px}.login h1{font-family:var(--font-display);font-size:16px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 4px;text-align:center}.login h1 b{color:var(--primary)}.login input{background:var(--background);border:1px solid var(--border);color:var(--foreground);padding:12px;min-height:44px}.login .err{color:var(--destructive);font-size:13px}.empty{text-align:center;padding:36px 10px;color:var(--muted-fg);border:1px dashed var(--border);margin-top:10px;font-size:13px}.filelist button.dl{display:flex;width:100%;text-align:left;align-items:center;gap:10px;padding:12px 10px;border-bottom:1px solid var(--border);min-height:48px}.filelist button.dl:hover{background:var(--muted)}.filelist .fn{font-family:var(--font-display);font-size:11px;color:var(--muted-fg)}@media (max-width: 560px){.strip{grid-template-columns:repeat(2,1fr)}}
