:root{--ink:#14261f;--ink-soft:#4a5c53;--ink-faint:#7d8b83;--paper:#edf1e7;--card:#fbfcf8;--rule:#c3cdba;--rule-faint:#dde3d6;--ledger:#1c5e4a;--ledger-dim:#d5e3dc;--amber:#b4690e;--amber-dim:#f7e8cf;--flag:#9b2226;--flag-dim:#f6dcdc;--mono:ui-monospace,"SF Mono",SFMono-Regular,"Cascadia Mono",Menlo,Consolas,monospace;--ui:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--rule-height:2.75rem}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ui);font-size:15px;line-height:1.45;-webkit-tap-highlight-color:transparent}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}.topbar{display:flex;align-items:baseline;gap:.75rem;padding:.6rem 1rem;background:var(--ink);font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}.topbar,.topbar a{color:var(--paper)}.topbar a{text-decoration:none;opacity:.65}.topbar a:focus-visible,.topbar a:hover{opacity:1}.topbar .spacer{margin-left:auto}.topbar .actor{color:#a9d6c5}.page{max-width:62rem;margin:0 auto;padding:1.5rem 1rem 5rem}.label-head{border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);padding:.9rem 0 1rem;margin-bottom:1.5rem}.label-head h1{margin:0;font-size:clamp(1.75rem,5vw,2.6rem);font-weight:650;letter-spacing:-.025em;line-height:1}.label-head .eyebrow{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.5rem}.label-head p{margin:.6rem 0 0;color:var(--ink-soft);max-width:46ch}.field{display:block;margin-bottom:1rem}.field>span{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.35rem}button,input,select,textarea{font:inherit;color:inherit}input,select{width:100%;padding:.55rem .7rem;background:var(--card);border:1px solid var(--rule);border-radius:2px;box-shadow:inset 0 -2px 0 var(--rule-faint)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--ledger);outline-offset:1px}.grid-2{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:1fr 1fr}@media (max-width:34rem){.grid-2{grid-template-columns:1fr}}button{cursor:pointer;border-radius:2px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:.5rem .9rem;font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--ledger);border-color:var(--ledger);padding:.75rem 1.5rem;font-size:.85rem}button.quiet{background:transparent;color:var(--ink);border-color:var(--rule)}button.link{background:none;border:none;padding:0;color:var(--flag);text-transform:none;letter-spacing:0;font-family:var(--ui);font-size:.85rem;text-decoration:underline}.ledger{background-color:var(--card);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--rule-height) - 1px),var(--rule-faint) calc(var(--rule-height) - 1px),var(--rule-faint) var(--rule-height));border-top:1px solid var(--rule);border-bottom:2px solid var(--ink)}.ledger-row{display:grid;grid-template-columns:1.6rem minmax(0,1fr) 5rem 4.5rem 9.5rem 6rem 1.5rem;align-items:center;grid-gap:.5rem;gap:.5rem;height:var(--rule-height);padding:0 .7rem;font-size:.9rem}.ledger-row .no{font-family:var(--mono);font-size:.72rem;color:var(--ink-faint)}.ledger-row .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.ledger-row .name small{display:block;font-weight:400;font-size:.7rem;color:var(--ink-faint);letter-spacing:.02em}.ledger-row input{padding:.25rem .4rem;box-shadow:none;text-align:right;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ledger-row .money{text-align:right}.ledger-empty{height:var(--rule-height);display:flex;align-items:center;padding:0 .7rem;color:var(--ink-faint);font-size:.88rem}@media (max-width:44rem){.ledger-row{grid-template-columns:1.4rem minmax(0,1fr) 4.5rem 4rem 1.5rem;height:auto;padding:.5rem .7rem}.ledger{background-image:none}.ledger-row+.ledger-row{border-top:1px solid var(--rule-faint)}.effect{grid-column:2/-1}}.effect{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.76rem;letter-spacing:-.01em;text-align:right;color:var(--ink-soft);white-space:nowrap}.effect .arrow{color:var(--ink-faint);margin:0 .3em}.effect .after{font-weight:600;color:var(--ledger)}.effect.negative .after{color:var(--flag)}.effect.negative:after{content:" below zero";color:var(--flag);font-size:.68rem}.effect.none{color:var(--ink-faint)}.effect.none:before{content:"—"}.totals{display:grid;grid-template-columns:1fr auto;grid-gap:.2rem 2rem;gap:.2rem 2rem;margin:1.25rem 0 0;padding:0 .7rem;font-size:.9rem}.totals dt{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.totals dd,.totals dt{font-family:var(--mono)}.totals dd{margin:0;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.totals .grand dd,.totals .grand dt{font-size:1.15rem;color:var(--ink);font-weight:650;padding-top:.4rem;border-top:1px solid var(--rule);margin-top:.3rem;letter-spacing:.04em}.actions{display:flex;align-items:center;gap:1rem;margin-top:1.5rem;padding:0 .7rem}.results{list-style:none;margin:.25rem 0 0;padding:0;border:1px solid var(--rule);background:var(--card);max-height:15rem;overflow-y:auto}.results li+li{border-top:1px solid var(--rule-faint)}.results button{display:flex;width:100%;gap:.75rem;align-items:baseline;background:none;border:none;color:inherit;text-align:left;text-transform:none;letter-spacing:0;font-family:var(--ui);font-size:.9rem;padding:.5rem .7rem}.results button:hover{background:var(--ledger-dim)}.results .meta{margin-left:auto;font-family:var(--mono);font-size:.74rem;color:var(--ink-soft);white-space:nowrap}.results .sched{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;padding:.05rem .3rem;background:var(--amber-dim);color:var(--amber);border:1px solid var(--amber)}.notice{padding:.7rem .9rem;margin-bottom:1.25rem;border-left:3px solid var(--ledger);background:var(--ledger-dim);font-size:.9rem}.notice.error{border-left-color:var(--flag);background:var(--flag-dim)}.notice.warn{border-left-color:var(--amber);background:var(--amber-dim)}.notice .num{font-weight:600}.scrim{position:fixed;inset:0;background:rgba(20,38,31,.55);display:grid;place-items:center;padding:1rem;z-index:20}.prompt{background:var(--card);border:2px solid var(--ink);padding:1.5rem;width:min(24rem,100%)}.prompt h2{margin:0 0 .3rem;font-size:1.2rem}.prompt p{margin:0 0 1.1rem;color:var(--ink-soft);font-size:.88rem}.prompt input[type=password]{text-align:center;font-family:var(--mono);font-size:1.5rem;letter-spacing:.5em;text-indent:.5em}.prompt .row{display:flex;gap:.6rem;margin-top:1.1rem}.prompt .row button{flex:1 1}.tiles{display:grid;grid-gap:1px;gap:1px;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));background:var(--rule);border:1px solid var(--rule)}.tile{display:block;background:var(--card);padding:1.25rem;text-decoration:none;color:inherit}.tile:hover{background:var(--ledger-dim)}.tile strong{display:block;font-size:1.1rem;margin-bottom:.3rem}.tile span{color:var(--ink-soft);font-size:.86rem}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}