@font-face{font-family:Inter;src:url(/fonts/inter.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Fraunces;src:url(/fonts/fraunces.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root,[data-theme=classic]{--ink: #15233b;--ink-soft: #41506b;--muted: #8190a8;--paper: #f2f5f9;--surface: #ffffff;--line: #e2e8f1;--mint: #1fb6a6;--mint-dark: #169286;--coral: #e5654b;--coral-dark: #c84b33;--gold: #f2b441;--grade-good: #169286;--grade-ok: #b7791f;--grade-low: #c84b33;--focus-ring: rgba(31, 182, 166, .35);--radius: 14px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(21, 35, 59, .06), 0 8px 24px rgba(21, 35, 59, .06);--mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, monospace;--sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--display: "Fraunces", Georgia, "Times New Roman", serif}[data-theme=light]{--ink: #1b2430;--ink-soft: #4a5667;--muted: #8a95a5;--paper: #ffffff;--surface: #f7f9fc;--line: #e6ebf2;--mint: #2f6df0;--mint-dark: #1f55c8;--coral: #e0533f;--coral-dark: #bd3f2d;--gold: #e8a33d;--grade-good: #1f55c8;--grade-ok: #b7791f;--grade-low: #bd3f2d;--focus-ring: rgba(47, 109, 240, .32)}[data-theme=dark]{--ink: #e8edf5;--ink-soft: #aeb9c9;--muted: #76829a;--paper: #0e131b;--surface: #18202b;--line: #28323f;--mint: #2bd4bd;--mint-dark: #21a895;--coral: #f0775f;--coral-dark: #f0775f;--gold: #f2c14e;--grade-good: #2bd4bd;--grade-ok: #f2c14e;--grade-low: #f0775f;--focus-ring: rgba(43, 212, 189, .35)}[data-theme=mint]{--ink: #14342c;--ink-soft: #3a5a4f;--muted: #7da293;--paper: #eef7f1;--surface: #ffffff;--line: #d7e9df;--mint: #18a673;--mint-dark: #11815a;--coral: #e0664a;--coral-dark: #bd4d34;--gold: #edab3f;--grade-good: #11815a;--grade-ok: #b7791f;--grade-low: #bd4d34;--focus-ring: rgba(24, 166, 115, .32)}[data-theme=berry]{--ink: #2e1530;--ink-soft: #5c4060;--muted: #9b7fa0;--paper: #f7eef6;--surface: #ffffff;--line: #ecd9ec;--mint: #c0398a;--mint-dark: #9c2c70;--coral: #d8553f;--coral-dark: #b53f2c;--gold: #e89f5b;--grade-good: #9c2c70;--grade-ok: #b7791f;--grade-low: #b53f2c;--focus-ring: rgba(192, 57, 138, .32)}*{box-sizing:border-box}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;letter-spacing:-.02em}h1{font-family:var(--display);font-weight:600;font-variation-settings:"opsz" 144,"SOFT" 50;letter-spacing:-.01em}a{color:var(--mint-dark)}.muted{color:var(--muted)}.center{display:grid;place-items:center;min-height:100vh;color:var(--muted)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--display);font-weight:600;font-variation-settings:"opsz" 144,"SOFT" 50;letter-spacing:0}.brand-coin{width:2rem;height:2rem;display:inline-block;object-fit:contain}.topbar-user{display:flex;align-items:center;gap:1rem;font-size:.9rem;color:var(--ink-soft)}.container{max-width:980px;margin:0 auto;padding:1.75rem 1.5rem 4rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.4rem}.card+.card{margin-top:1.25rem}.card-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:1rem}.grade{font-weight:700}.grade.good{color:var(--grade-good)}.grade.ok{color:var(--grade-ok)}.grade.low{color:var(--grade-low)}.grade.none{color:var(--muted)}.grade-big{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700;letter-spacing:-.02em}.ledger{width:100%;border-collapse:collapse;font-size:.93rem}.ledger th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:0 .6rem .6rem;border-bottom:1px solid var(--line)}.ledger td{padding:.7rem .6rem;border-bottom:1px solid var(--line);vertical-align:middle}.ledger tr:last-child td{border-bottom:none}.ledger .amount{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.empty{padding:2rem .6rem;text-align:center;color:var(--muted)}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.85rem}.field label{font-size:.8rem;font-weight:600;color:var(--ink-soft)}input:not([type=checkbox]):not([type=radio]),select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.55rem .7rem;width:100%}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--mint);box-shadow:0 0 0 3px var(--focus-ring)}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:0;width:1.1rem;height:1.1rem;flex:none;border:1px solid var(--line);border-radius:5px;background:var(--surface);cursor:pointer;display:inline-grid;place-content:center;transition:border-color .12s ease,background .12s ease}input[type=checkbox]:before{content:"";width:.62rem;height:.62rem;transform:scale(0);transition:transform .1s ease-in-out;background:#fff;clip-path:polygon(14% 44%,0 65%,40% 100%,100% 16%,84% 0,39% 68%)}input[type=checkbox]:checked{background:var(--mint);border-color:var(--mint)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:hover{border-color:var(--mint)}input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.check{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none}.row{display:flex;gap:.75rem;flex-wrap:wrap}.row>.field{flex:1 1 140px}.row.tight{flex-wrap:nowrap}.field.flush{margin-bottom:0}.field.narrow{max-width:110px}.btn{font:inherit;font-weight:600;cursor:pointer;border:1px solid transparent;border-radius:var(--radius-sm);padding:.55rem 1rem;background:var(--mint);color:#fff;transition:background .12s ease,transform .05s ease;white-space:nowrap}.btn:hover{background:var(--mint-dark)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.btn.ghost{background:transparent;color:var(--ink-soft);border-color:var(--line)}.btn.ghost:hover{background:var(--paper)}.btn.danger{background:transparent;color:var(--coral-dark);border-color:transparent;padding:.3rem .5rem}.btn.danger:hover{background:#e5654b1a}.btn.small{padding:.35rem .7rem;font-size:.85rem}.btn.danger.small{padding:.35rem .6rem}.btn.block{width:100%}.tabs{display:flex;gap:.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--line)}.tab{font:inherit;font-weight:600;border:none;background:none;color:var(--muted);padding:.6rem .9rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--ink);border-bottom-color:var(--mint)}.tab:focus-visible{outline:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;box-shadow:0 0 0 3px var(--focus-ring)}.segment{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}.segment button{font:inherit;font-weight:600;border:none;background:transparent;color:var(--ink-soft);padding:.45rem .9rem;cursor:pointer;white-space:nowrap;transition:background .12s ease,color .12s ease}.segment button+button{border-left:1px solid var(--line)}.segment button:hover{background:var(--paper)}.segment button.active{background:var(--mint);color:#fff}.segment button.active:hover{background:var(--mint-dark)}.segment button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--focus-ring)}.error{background:#e5654b1a;color:var(--coral-dark);border-radius:var(--radius-sm);padding:.55rem .7rem;font-size:.9rem;margin-bottom:.85rem}.pill{display:inline-block;font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:999px;background:var(--paper);color:var(--ink-soft);text-transform:capitalize}.pill.off{background:#e5654b1f;color:var(--coral-dark)}.pill.on{background:#1fb6a624;color:var(--mint-dark)}.pill.tag{margin-left:.5rem}.cat-block{padding:.6rem 0 .2rem;border-top:1px solid var(--line)}.cat-block:first-of-type{border-top:none}.cat-head{margin-bottom:.4rem}.note-toggle{font:inherit;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:none;background:transparent;color:var(--muted);cursor:pointer;padding:.1rem .3rem;margin-left:.4rem;border-radius:4px}.note-toggle:hover{color:var(--ink-soft);background:var(--paper)}.note-toggle:focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus-ring)}.note-row td{color:var(--ink-soft);background:var(--paper);font-size:.9rem;white-space:normal;padding:.5rem .6rem}.note-row .note-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-right:.5rem}.report-only{display:none}.report-card{color:#111}.report-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #111;padding-bottom:.75rem;margin-bottom:1rem}.report-brand{font-family:var(--display);font-weight:600;font-size:1.4rem}.report-title{font-family:var(--display);font-size:1.1rem;font-weight:600;margin:0}.report-meta{text-align:right;font-size:.9rem;line-height:1.4}.report-overall{display:flex;justify-content:space-between;align-items:baseline;font-size:1.15rem;padding:.5rem 0 1rem}.report-subject{margin-bottom:1.25rem;break-inside:avoid}.report-subject-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #999;margin-bottom:.4rem}.report-subject-head h2{font-size:1rem}.report-table{width:100%;border-collapse:collapse;font-size:.88rem;margin-bottom:.5rem}.report-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#555;padding:.15rem .4rem;border-bottom:1px solid #ccc}.report-table td{padding:.2rem .4rem;border-bottom:1px solid #eee}.report-detail{margin:.25rem 0 .75rem .5rem}.report-detail-cat{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#555;margin-bottom:.15rem}.report-note{font-size:.8rem;font-style:italic;color:#444}.inline-form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.75rem .85rem;margin:.4rem 0}.inline-form .field{margin-bottom:.5rem}.summary-avg td{border-top:2px solid var(--line);font-weight:700}.summary-avg td:first-child{color:var(--muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.07em}.stack{display:flex;flex-direction:column;gap:.75rem}.between{display:flex;align-items:center;justify-content:space-between;gap:1rem}.right{text-align:right}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(140% 120% at 50% -30%,rgba(31,182,166,.12),transparent 60%),var(--paper)}.login-card{width:100%;max-width:360px}.login-head{text-align:center;margin-bottom:1.4rem}.login-head .brand{flex-direction:column;justify-content:center;gap:.5rem;font-size:1.7rem;margin-bottom:.3rem}.login-head .brand-coin{width:4rem;height:4rem}.login-head .muted{font-family:var(--display);font-style:italic;font-size:1.05rem}.theme-picker select{width:auto;padding:.3rem .5rem;font-size:.85rem;color:var(--ink-soft)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:640px){.container{padding:1.25rem 1rem 3rem}.topbar{padding:.8rem 1rem}.theme-picker{display:none}.between{flex-wrap:wrap}.ledger thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.ledger,.ledger tbody,.ledger tr,.ledger td{display:block;width:100%}.ledger tr{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.35rem .75rem;margin-bottom:.6rem}.ledger tr:last-child{margin-bottom:0}.ledger td{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px solid var(--line);text-align:right}.ledger tr td:last-child{border-bottom:none}.ledger td:before{content:attr(data-label);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);text-align:left}.ledger td.actions{justify-content:flex-end}.ledger td.actions:before{content:none}.ledger tr.note-row td{display:block;text-align:left;justify-content:flex-start}.ledger tr.note-row td:before{content:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media print{body{background:#fff;color:#111}.topbar{display:none!important}main.container>*,.stack>*{display:none!important}main.container>.stack,.stack>.report-only,.report-only{display:block!important}.container{max-width:none;margin:0;padding:0}@page{margin:1.5cm}}
