:root{--bg:#edf1f2;--card:#ffffff;--ink:#172024;--muted:#5b676c;--faint:#8b979c;--line:#cbd4d7;--est:#a7b0b4;--owe:#c43c2f;--back:#3f8a5a;--new:#2d6a9a;--more:#c98a1c;--less:#1d7f80;--owe-bg:#fbe9e6;--back-bg:#e5f2e9;--focus:#2d6a9a;--odo:#172024;--odo-ink:#f3f5f5;--sans:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;--cond:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111719;--card:#1a2225;--ink:#e8eef0;--muted:#a3afb4;--faint:#75838a;--line:#2d383c;--est:#66737a;--owe:#e0645a;--back:#5fb07c;--new:#5b9bd0;--more:#e2ab45;--less:#4fb5b5;--owe-bg:#3a1d1a;--back-bg:#16301f;--focus:#5b9bd0;--odo:#05090a;--odo-ink:#e8eef0;color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font:400 17px/1.55 var(--sans);-webkit-font-smoothing:antialiased}.page{max-width:760px;margin:0 auto;padding:40px 20px 72px}h1,h2,h3{font-weight:600;line-height:1.2;margin:0}h1{font-family:var(--cond);font-size:44px;letter-spacing:-.01em}h2{font-size:20px}h3{font-size:19px}p{margin:0}em{font-style:normal;color:var(--faint);font-weight:400;font-size:.8em;margin-left:6px}.help{color:var(--muted);font-size:15px;margin-top:4px}a,button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.langs{display:flex;justify-content:flex-end;gap:2px;margin:-16px 0 20px}.langs button{background:none;border:0;border-radius:6px;padding:4px 10px;font-size:14px;color:var(--muted);cursor:pointer}.langs button:hover{color:var(--ink)}.langs button[aria-pressed=true]{color:var(--ink);font-weight:600;background:color-mix(in srgb,var(--ink) 7%,transparent)}.langs.pending{opacity:.6}.intro p{color:var(--muted);margin-top:12px;max-width:60ch}.step{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}.stepno{display:inline-grid;place-items:center;width:26px;height:26px;margin-right:10px;border-radius:50%;background:var(--ink);color:var(--bg);font-size:14px;vertical-align:2px}.readings{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:16px;gap:16px;margin-top:16px}fieldset{border:1px solid var(--line);border-radius:12px;padding:14px 16px 16px;margin:0;background:var(--card)}legend{font-weight:600;padding:0 6px}label{display:grid;grid-gap:4px;gap:4px;font-size:14px;color:var(--muted);margin-top:10px}input{font:500 17px var(--sans);color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:9px 12px;width:100%;min-width:0}input:hover{border-color:var(--faint)}.datefield{position:relative;display:grid;grid-gap:4px;gap:4px;font-size:14px;color:var(--muted);margin-top:10px}.datebtn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;font:500 17px var(--sans);color:var(--ink);background:var(--card);text-align:left;border:1px solid var(--line);border-radius:8px;padding:9px 12px;cursor:pointer}.datebtn:hover{border-color:var(--faint)}.datebtn[aria-expanded=true]{border-color:var(--ink)}.datebtn.empty{color:var(--faint);font-weight:400}.datebtn svg{color:var(--muted);flex:none}.datepop{position:absolute;top:calc(100% + 6px);left:0;z-index:20;padding:8px 12px 12px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px color-mix(in srgb,var(--ink) 16%,transparent)}.datepop .rdp-root{--rdp-accent-color:var(--ink);--rdp-accent-background-color:color-mix(in srgb,var(--ink) 8%,transparent);--rdp-today-color:var(--new);--rdp-day-height:38px;--rdp-day-width:38px;--rdp-day_button-height:36px;--rdp-day_button-width:36px;--rdp-day_button-border-radius:8px;--rdp-nav_button-height:2rem;--rdp-nav_button-width:2rem;--rdp-nav-height:2.5rem;--rdp-disabled-opacity:0.3;color:var(--ink);font-size:15px}.datepop .rdp-caption_label{font:600 17px var(--sans)}.datepop .rdp-weekday{color:var(--faint);font-size:12px;font-weight:500;opacity:1}.datepop .rdp-chevron{fill:var(--muted)}.datepop .rdp-day_button:hover:not([disabled]){background:var(--rdp-accent-background-color)}.datepop .rdp-today:not(.rdp-selected) .rdp-day_button{font-weight:600}.datepop .rdp-selected{font-size:inherit;font-weight:600}.datepop .rdp-selected .rdp-day_button{background:var(--ink);color:var(--card);border-color:var(--ink)}.money,.unit{display:flex;align-items:center;gap:8px}.money span,.unit span{color:var(--muted);font-size:15px}.money input{text-align:right;width:130px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.money.wide{margin-top:12px}.presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:10px;gap:10px;margin-top:14px}.preset{margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;display:grid;grid-gap:2px;gap:2px}.preset input{position:absolute;opacity:0;width:1px}.preset strong{color:var(--ink);font-size:17px}.preset.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.preset:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.custom{max-width:320px;margin-top:14px}.custom small{color:var(--faint)}.bills{list-style:none;padding:0;margin:14px 0 0;border:1px solid var(--line);border-radius:12px;background:var(--card)}.bills li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px}.bills li+li{border-top:1px solid var(--line)}.bills li div{display:grid}.bills small{color:var(--muted);font-size:14px}.bills li.optional{background:color-mix(in srgb,var(--new) 6%,transparent);border-radius:0 0 12px 12px}.bills li{flex-wrap:wrap}.warn{flex-basis:100%;padding:8px 12px;font-size:14px;color:var(--ink);border-left:3px solid var(--owe);border-radius:0 6px 6px 0;background:color-mix(in srgb,var(--owe) 6%,transparent)}.howto,.warn{margin-top:10px}.howto{padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-size:15px}.howto summary{cursor:pointer;font-weight:500;color:var(--ink)}.howto ol,.howto ul{margin:10px 0 0;padding-left:20px;display:grid;grid-gap:6px;gap:6px}.howto .help{margin-top:10px}.howto a{color:var(--new)}.howto .is{font-style:italic;color:var(--muted)}.lines{margin-top:16px}.lines summary{cursor:pointer;font-weight:500}.lines .help{margin-top:8px}.error{margin-top:24px;padding:12px 16px;border-radius:8px;background:var(--owe-bg);color:var(--owe)}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.primary{background:var(--ink);color:var(--bg);border:0;border-radius:10px;padding:12px 22px;font-weight:600;cursor:pointer}.primary:disabled{opacity:.7;cursor:progress}.ghost{background:transparent;border:1px solid var(--line);border-radius:10px;padding:11px 18px;cursor:pointer;text-decoration:none;color:var(--ink)}.ghost:hover{border-color:var(--faint)}.danger{background:var(--owe);color:#fff;border:0;border-radius:10px;padding:12px 20px;font-weight:600;cursor:pointer}.confirm{width:min(420px,calc(100vw - 32px));padding:22px 24px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);box-shadow:0 20px 50px color-mix(in srgb,var(--ink) 25%,transparent)}.confirm::-webkit-backdrop{background:color-mix(in srgb,#000 40%,transparent)}.confirm::backdrop{background:color-mix(in srgb,#000 40%,transparent)}.confirm p{margin-top:8px;color:var(--muted);font-size:16px}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.confirm .confirm-actions .ghost{padding:11px 18px;font-size:17px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.topbar .brand{font-family:var(--cond);font-weight:600;font-size:20px}.topbar div{display:flex;gap:8px}.topbar .ghost{padding:7px 14px;font-size:15px}.hero{margin-top:36px}.odos{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;grid-gap:16px;gap:16px}.odo{margin:0}.odo figcaption{font-size:14px;color:var(--muted);display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.odo figcaption span{color:var(--ink);font-weight:500}.odo-digits{display:flex;align-items:center;gap:3px;background:var(--odo);border-radius:10px;padding:8px}.odo-digits span{flex:1 1;text-align:center;font:600 40px/1.1 var(--cond);color:var(--odo-ink);background:color-mix(in srgb,var(--odo-ink) 8%,transparent);border-radius:4px;padding:4px 0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.odo-digits em{color:var(--faint);font-size:14px;margin:0 4px 0 6px}.odo-gap{display:grid;justify-items:center;padding-bottom:12px;text-align:center}.odo-gap strong{font:600 26px var(--cond);color:var(--new);white-space:nowrap}.odo-gap span{font-size:14px;color:var(--muted)}.equation{margin-top:20px;font-size:18px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.calibrated{margin-top:6px;font-size:14px;color:var(--muted)}.check a{color:inherit}.equation strong{color:var(--ink);font-size:22px}.warn-banner{margin-top:28px;padding:14px 20px;border-left:4px solid var(--owe);border-radius:0 8px 8px 0;background:color-mix(in srgb,var(--owe) 6%,var(--card));font-size:15px}.warn-banner ul{margin:8px 0 10px;padding-left:20px;color:var(--muted)}.warn-banner a{color:var(--owe);font-weight:500}.warn-banner+.verdict{margin-top:16px}.verdict{margin-top:28px;padding:18px 20px;border-left:4px solid var(--ink);background:var(--card)}.verdict p:first-child{font-size:19px;font-weight:500;max-width:62ch}.check{margin-top:10px;font-size:15px}.check.ok{color:var(--back)}.check.off{color:var(--owe)}.breakdown,.paid{margin-top:44px}.paid-bar{gap:2px;margin-top:14px;border-radius:8px}.paid-bar,.seg{display:flex;overflow:hidden}.seg{min-width:4px;height:44px;align-items:center;justify-content:center;container-type:inline-size}.seg span{font-size:14px;font-weight:600;white-space:nowrap;padding:0 6px}.seg b{font-weight:500}@container (max-width: 150px){.seg b{display:none}}.seg.est{background:var(--est);color:#1c2427}.seg.owe{background:var(--owe);color:#fff}.seg.back{background:var(--back);color:#fff}.legend{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;color:var(--muted)}.legend li{display:flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:2px}.legend i.est{background:var(--est)}.legend i.owe{background:var(--owe)}.legend i.back{background:var(--back)}.legend .rounding{color:var(--faint)}.paid .help{margin-top:8px}.chart{width:100%;height:auto;margin-top:12px;overflow:visible}.chart .gridline{stroke:var(--line);stroke-width:.5}.chart .axis{stroke:var(--faint);stroke-width:1}.chart .tick{fill:var(--faint);font-size:12px}.chart .col{cursor:pointer;outline:none}.chart .hit{fill:transparent;stroke:transparent}.chart .col:hover .hit{fill:color-mix(in srgb,var(--ink) 4%,transparent)}.chart .col.sel .hit,.chart .col:focus-visible .hit{stroke:var(--new);stroke-width:1.5;fill:color-mix(in srgb,var(--new) 6%,transparent)}.chart .bar.est{fill:var(--est)}.chart .bar.owe{fill:var(--owe)}.chart .bar.back{fill:var(--back);fill-opacity:.35;stroke:var(--back);stroke-dasharray:3 2}.chart .bar.new{fill:var(--new)}.chart .bar.more{fill:var(--more)}.chart .bar.less{fill:var(--less);fill-opacity:.3;stroke:var(--less);stroke-dasharray:3 2}.chart .col.next .bar{opacity:.8}.chart .divider{stroke:var(--faint);stroke-width:1;stroke-dasharray:4 4}.chart .in.more{fill:#1c2427}.chart .in.less,.chart .out.less{fill:var(--less)}.chart .out.more{fill:var(--more)}.chart .in{font-size:12px;font-weight:600}.chart .in.est{fill:#1c2427}.chart .in.new,.chart .in.owe{fill:#fff}.chart .in.back{fill:var(--back)}.chart .out{font-size:12px;font-weight:600}.chart .out.owe{fill:var(--owe)}.chart .out.back{fill:var(--back)}.chart .out.est{fill:var(--muted)}.chart .out.new{fill:var(--new)}.chart .total{font-weight:600}.chart .mlabel,.chart .total{fill:var(--ink);font-size:13px}.chart .mdays{fill:var(--faint);font-size:12px}.detail{margin-top:8px;padding:18px 20px;background:var(--card);border-radius:12px;border:1px solid var(--line)}.detail h3 span{color:var(--muted);font-weight:400}.math{display:grid;grid-template-columns:max-content 1fr;grid-gap:6px 20px;gap:6px 20px;margin:14px 0 0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.math dt{color:var(--muted)}.math dd{margin:0;font-weight:500}.math .owe{color:var(--owe)}.math .more{color:var(--more)}.math .less{color:var(--less)}.math small{color:var(--muted);font-weight:400;font-size:14px}.math .back{color:var(--back)}.breakdown .after,.why{margin-top:12px}.why{font-size:15px;color:var(--muted);max-width:64ch}.ahead{margin-top:44px}.upcoming{list-style:none;padding:0;margin:14px 0 12px;display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-gap:10px;gap:10px}.upcoming li{display:grid;align-content:start;grid-gap:2px;gap:2px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:12px}.upcoming li.first{border-top:3px solid var(--new)}.upcoming span{font-size:14px;color:var(--muted)}.upcoming strong{font:600 28px/1.15 var(--cond);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.upcoming small{font-size:13px;color:var(--muted)}.upcoming small.owe{color:var(--owe)}.upcoming small.back{color:var(--back)}.note{margin-top:44px;padding-top:20px;border-top:1px solid var(--line);display:grid;grid-gap:10px;gap:10px;font-size:15px;color:var(--muted)}.sources h2{font-size:15px;color:var(--ink)}.sources ul{margin:6px 0 0;padding-left:18px;display:grid;grid-gap:4px;gap:4px}.sources a{color:var(--new)}.sources p{margin-top:6px;color:var(--faint);font-size:14px}@media (max-width:620px){h1{font-size:36px}.odos{grid-template-columns:1fr}.odo-gap{justify-items:start;padding:0;grid-template-columns:auto auto;gap:10px;align-items:baseline}.odo-digits span{font-size:34px}.math{grid-template-columns:1fr;gap:2px}.upcoming{grid-template-columns:1fr 1fr}.upcoming li.first{grid-column:1/-1}.math dd{margin-bottom:8px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}