:root{--bg:#f6f4ee;--panel:#fff;--ink:#17202a;--muted:#6b7480;--line:#e4e0d6;--accent:#1f6f5f;--accent-ink:#fff;--good:#1f6f5f;--warn:#9a6b1d;--bad:#a33a2f;--badge-high:#f4d9d5;--badge-high-ink:#7a2a21;--badge-medium:#f6e6c6;--badge-medium-ink:#6d4b0f;--badge-low:#e2ede8;--badge-low-ink:#24523f;--badge-info:#e6e9ef;--badge-info-ink:#3b4757;--radius:12px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f1720;--panel:#172131;--ink:#e9edf2;--muted:#9aa5b3;--line:#26323f;--accent:#7fb6a4;--accent-ink:#0f1720;--good:#7fb6a4;--warn:#d9b46a;--bad:#e08a80;--badge-high:#4a2420;--badge-high-ink:#f4c9c3;--badge-medium:#4a3a1a;--badge-medium-ink:#f0d9a3;--badge-low:#1e3a30;--badge-low-ink:#b6dccb;--badge-info:#253141;--badge-info-ink:#c4cdd9}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font:16px/1.45 var(--font);-webkit-text-size-adjust:100%;margin:0}button{font:inherit;color:inherit}h1,h2{letter-spacing:-.01em;margin:0;font-weight:650}h2{font-size:1.05rem}a{color:var(--accent)}.shell{flex-direction:column;min-height:100dvh;display:flex}.top{z-index:2;background:var(--bg);border-bottom:1px solid var(--line);padding:env(safe-area-inset-top) 0 0;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:12px 16px 6px;display:flex}.brand h1{font-size:1.5rem}.brand.small{padding:10px 16px 4px;font-weight:650}.brand img{border-radius:8px}.env{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border:1px solid var(--line);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:.7rem}.tabs{scrollbar-width:none;gap:4px;padding:4px 12px 8px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:999px;flex:none;padding:8px 12px;font-weight:550}.tabs button.on{background:var(--panel);color:var(--ink);box-shadow:0 1px 0 var(--line)}.content{flex:1;width:100%;max-width:760px;margin:0 auto;padding:16px 16px 24px}.composer{padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);gap:8px;display:flex;position:sticky;bottom:0}.composer input{border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;border-radius:999px;flex:1;padding:10px 12px}.composer input:disabled{color:var(--muted)}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px;display:grid}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-height:92px;padding:12px 14px}.tile-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.tile-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:4px 0 2px;font-size:1.55rem;font-weight:650}.tile-meta{color:var(--muted);font-size:.75rem}.tone-good .tile-value{color:var(--good)}.tone-warn .tile-value{color:var(--warn)}.tone-bad .tile-value{color:var(--bad)}.stale{color:var(--warn)}.section{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:14px 14px 10px}.section-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.aside{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.list{margin:0;padding:0;list-style:none}.row{border-top:1px solid var(--line);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.row:first-child{border-top:0}.row-main{flex:1;min-width:0}.row-title{flex-wrap:wrap;align-items:center;gap:6px;font-weight:600;display:flex}.row-sub{color:var(--muted);font-size:.82rem}.row-amount{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:600}.row-amount.neg,.neg,.row.overdue .row-title{color:var(--bad)}.pair{color:var(--muted);font-variant-numeric:tabular-nums;gap:16px;margin-bottom:6px;font-size:.9rem;display:flex}.badge{text-transform:uppercase;letter-spacing:.06em;background:var(--badge-info);color:var(--badge-info-ink);border-radius:999px;padding:1px 7px;font-size:.68rem;font-weight:650;display:inline-block}.badge-high{background:var(--badge-high);color:var(--badge-high-ink)}.badge-medium{background:var(--badge-medium);color:var(--badge-medium-ink)}.badge-low{background:var(--badge-low);color:var(--badge-low-ink)}.empty{color:var(--muted);margin:6px 0 10px}.muted{color:var(--muted)}.small{font-size:.82rem}.center{text-align:center}.error{color:var(--bad)}.error .btn{margin-top:6px}.issues{margin:0 0 12px;padding:0;list-style:none}.issue{padding:6px 0}.btn{background:var(--panel);border:1px solid var(--line);color:var(--ink);cursor:pointer;border-radius:10px;padding:9px 14px}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:600}.btn:disabled{opacity:.6;cursor:default}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:6px 0;font-weight:550}.link.danger{color:var(--bad)}.toolbar{align-items:center;gap:12px;margin-bottom:12px;display:flex}.toggle{color:var(--muted);align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.segmented{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:3px;display:inline-flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:6px 12px;font-weight:550}.segmented button.on{background:var(--accent);color:var(--accent-ink)}.signin{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.signin-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:100%;max-width:380px;padding:24px}.signin-card .brand{padding:0 0 16px}.signin form{flex-direction:column;gap:12px;display:flex}.signin label{color:var(--muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.signin input{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:10px 12px;font-size:1.05rem}
