:root{
  --bg:#F2F4F1;--panel:#FFFFFF;--ink:#17231F;--muted:#66736D;--line:#DCE1DC;--hi:#EAF3EC;
  --fk:#2A6FDB;--az:#E58A00;--ms:#B3266F;--today:#17231F;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#101815;--panel:#18231F;--ink:#E9EFEB;--muted:#93A199;--line:#2A3833;--hi:#1F332A;
  --fk:#6AA0FF;--az:#F5A62E;--ms:#E86AA8;--today:#E9EFEB}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
.wrap{max-width:980px;margin:0 auto;padding:28px 18px 60px}
h1,h2,.big{font-weight:800;letter-spacing:-.02em;margin:0}
.num{font-variant-numeric:tabular-nums}
header{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:22px}
header h1{font-size:clamp(1.2rem,3.2vw,1.6rem);font-weight:600;color:var(--muted)}
.big{font-size:clamp(2.6rem,9vw,4.6rem);line-height:1}
.big small{font-size:.4em;font-weight:600;color:var(--muted);margin-right:.25em}
.auth{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:0 0 20px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;font-size:.92rem}
.auth form{margin:0}.auth .sp{flex:1}
.st{color:var(--muted)}.st.warn{color:var(--az);font-weight:600}.st.err{color:var(--ms);font-weight:600}
button{font:inherit;font-size:.9rem;background:none;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:6px 14px;cursor:pointer}
button:hover{border-color:var(--ink)}
button.pri{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}
.split{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--line);margin:16px 0 10px}
.split i{display:block;height:100%}
.legend{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:.92rem}
.legend b{font-weight:600}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;background:var(--c)}
.fk{--c:var(--fk)}.az{--c:var(--az)}.ms{--c:var(--ms)}
.split i,.track i{background:var(--c)}
section{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-top:18px}
h2{font-size:1.15rem;font-weight:600;margin-bottom:14px}
.bars{display:grid;gap:8px}
.bar{display:grid;grid-template-columns:5.6em 1fr 6.8em;gap:12px;align-items:center;padding:5px 6px;margin:0 -6px;border-radius:8px;color:inherit;text-decoration:none}
.bar:hover{background:var(--hi)}
.bar[aria-current=page]{background:var(--hi);outline:2px solid var(--ink)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--fk);outline-offset:1px}
.track{display:flex;height:18px;background:var(--line);border-radius:4px;overflow:hidden}
.track i{display:block}
.bar .amt{text-align:right;font-weight:600}
.tools{display:flex;margin-bottom:12px}
.tools label{display:flex;gap:8px;align-items:center;font-size:.92rem;color:var(--muted);cursor:pointer}
.scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;min-width:560px}
th,td{padding:6px 8px;text-align:right;border-bottom:1px solid var(--line)}
th{font-weight:600;font-size:.88rem;color:var(--muted)}
th:first-child,td:first-child,th:nth-child(2),td:nth-child(2){text-align:left}
th.fk{color:var(--fk)}th.az{color:var(--az)}th.ms{color:var(--ms)}
td:nth-child(2){color:var(--muted);font-size:.9rem}
tr.paid td{background:var(--hi)}
tr.today td:first-child{box-shadow:inset 4px 0 0 var(--today);font-weight:600}
tr.sun td:nth-child(2){font-style:italic}
tr.saving td.t{opacity:.5}
tr.error td.t{color:var(--ms)}
td input{width:100%;min-width:76px;max-width:120px;font:inherit;text-align:right;background:transparent;color:var(--ink);border:1px solid transparent;border-radius:6px;padding:4px 6px}
td input::placeholder{color:var(--line)}
td input:hover{border-color:var(--line)}
td input:focus{border-color:var(--ink);background:var(--panel)}
td.t{font-weight:600}
tfoot td{border-bottom:0;border-top:2px solid var(--ink);font-weight:800;padding-top:10px}
.note{font-size:.85rem;color:var(--muted);margin-top:14px}
#lock{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
#lock form{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px;width:min(380px,100%)}
#lock h1{font-size:1.4rem}
#lock .sub{margin:4px 0 6px;color:var(--muted);font-size:.92rem}
#lock label{display:block;font-size:.88rem;color:var(--muted);margin-top:12px}
#lock input{width:100%;font:inherit;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-top:4px}
#lock .err{color:var(--ms);font-size:.88rem;min-height:1.3em;margin:10px 0 0}
#lock .row{display:flex;justify-content:flex-end;margin-top:18px}
@media (max-width:520px){.bar{grid-template-columns:4.6em 1fr 6em;gap:8px}section{padding:14px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
