:root{--ink:#1d2733;--muted:#5b6875;--accent:#1f6feb;--accent-contrast:#fff;--danger:#b42318;--warn-bg:#fff7e0;--warn-ink:#6b4c07;--line:#d8dfe6;--surface:#fff;--surface-ink:#1d2733;--surface-muted:#5b6875;--surface-line:#d8dfe6}@media (prefers-color-scheme:dark){:root{--ink:#e6ebf2;--muted:#9aa7b4;--accent:#6d9fff;--accent-contrast:#0b1220;--danger:#ff8a80;--warn-bg:#3a2f12;--warn-ink:#ffd68a;--line:#2c3641;--surface:#232d38;--surface-ink:#e6ebf2;--surface-muted:#9aa7b4;--surface-line:#3d4a57}}*{box-sizing:border-box}body{color:var(--ink);background:inherit;margin:0;font:16px/1.5 system-ui,sans-serif}.layout{max-width:56rem;margin:0 auto;padding:0 1rem 3rem}header{border-bottom:1px solid var(--line);align-items:baseline;gap:1.5rem;padding:1rem 0;display:flex}header h1{margin:0;font-size:1.25rem}header a{color:inherit;text-decoration:none}nav{gap:1rem;display:flex}nav a{color:var(--muted);text-decoration:none}nav a.active{color:var(--ink);font-weight:600}article{padding-top:1.5rem}table{border-collapse:collapse;width:100%;margin-top:1rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.4rem .75rem .4rem 0}th{color:var(--muted);font-size:.85rem;font-weight:600}td{font-variant-numeric:tabular-nums}dl{grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:0;display:grid}dt{color:var(--muted)}dd{font-variant-numeric:tabular-nums;margin:0}.banner{border-radius:8px;align-items:center;gap:1rem;margin-top:1rem;padding:.6rem .9rem;display:flex}.banner-warning{background:var(--warn-bg);color:var(--warn-ink)}.banner p{flex:1;margin:0}.curve-controls{flex-wrap:wrap;gap:1.5rem;display:flex}.curve-controls label{min-width:14rem;margin:.75rem 0}.curve-view h3{margin-top:1.5rem;font-size:1rem}.curve-total{color:var(--muted)}.period-legend{color:var(--muted);gap:1.25rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.period-legend li{align-items:center;gap:.4rem;display:flex}.period-swatch{border-radius:3px;width:.85rem;height:.85rem;display:inline-block}button{font:inherit;color:var(--accent-contrast);background:var(--accent);cursor:pointer;border:none;border-radius:6px;padding:.4rem .9rem}button:disabled{opacity:.6;cursor:default}label{color:var(--muted);margin:.75rem 0;font-size:.9rem;display:block}input{width:100%;font:inherit;color:var(--ink);border:1px solid var(--line);background:0 0;border-radius:6px;margin-top:.25rem;padding:.5rem .6rem;display:block}.gate{max-width:22rem;margin:6rem auto}.gate h1{font-size:1.5rem}.gate-error{color:var(--danger);font-weight:600}.modal-backdrop{background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--surface);width:24rem;max-width:calc(100vw - 2rem);color:var(--surface-muted);border:1px solid var(--surface-line);border-radius:12px;padding:1.25rem 1.5rem}.modal h2{color:var(--surface-ink);margin:0 0 .25rem}.modal form{margin-top:.5rem}.modal-actions{gap:.75rem;margin-top:1rem;display:flex}.modal-actions button[type=button]{color:var(--surface-ink);border:1px solid var(--surface-line);background:0 0}.muted{color:var(--muted);font-size:.9rem}caption{text-align:left;color:var(--muted);padding-bottom:.25rem;font-size:.9rem}.bill-totals dt,.bill-totals dd:last-of-type{font-weight:600}.row-actions{align-items:center;gap:.5rem;display:inline-flex}.row-actions input{width:auto;margin-top:0;padding:.25rem .4rem}
