:root{--font-heading:"Bricolage Grotesque", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--color-bg:#f3f2ef;--color-surface:#fff;--color-border:#dedbd4;--color-border-soft:#e4e1da;--color-border-faint:#ecebe6;--color-ink:#16181c;--color-ink-muted:#6f6a60;--color-ink-faint:#a9a396;--color-ink-faintest:#c0bab0;--color-placeholder:#8e887c;--color-accent:#3b4ee0;--color-accent-contrast:#fff;--color-danger:#b23b3b;--color-danger-bg:#b23b3b14;--cat-1:#3b4ee0;--cat-2:#c9762f;--cat-3:#2e9d96;--cat-4:#9b7de0;--cat-5:#1f8f63;--cat-neutral:#b3ada2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--color-bg:#14161a;--color-surface:#1c1f26;--color-border:#262a31;--color-border-soft:#2a2e37;--color-border-faint:#23262d;--color-ink:#e9eaed;--color-ink-muted:#9aa1ac;--color-ink-faint:#787f8b;--color-ink-faintest:#565c66;--color-placeholder:#6b7280;--color-danger:#e0837e;--color-danger-bg:#e0837e1f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{min-height:100vh;display:flex}.rail{background:var(--color-bg);border-right:1px solid var(--color-border-soft);flex-direction:column;flex:none;align-items:center;gap:14px;width:64px;padding:18px 0;display:flex}.rail-mark{width:26px;height:26px;margin-bottom:8px}.rail-icon{width:36px;height:36px;color:var(--color-ink-faintest);cursor:pointer;background:0 0;border:none;border-radius:9px;place-items:center;font-family:inherit;font-size:15px;text-decoration:none;display:grid}.rail-icon.is-active{background:var(--color-accent);color:#fff}.rail-icon[disabled]{cursor:default;opacity:.55}.rail-spacer{margin-top:auto}.rail-toggle{color:var(--color-ink-faint);cursor:pointer;background:0 0;border:none;margin:0 auto 12px;padding:6px;font-size:14px;display:block}.rail-avatar{background:var(--color-border-soft);width:28px;height:28px;color:var(--color-ink);cursor:pointer;border:none;border-radius:50%;place-items:center;font-family:inherit;font-size:11px;font-weight:600;display:grid}@media (width<=720px){.shell{flex-direction:column}.rail{border-right:none;border-bottom:1px solid var(--color-border-soft);flex-direction:row;width:auto;padding:10px 14px}.rail-mark{margin-bottom:0}.rail-spacer{align-items:center;gap:10px;margin-top:0;margin-left:auto;display:flex}.rail-toggle{margin:0}}.main{flex:1;min-width:0;max-width:1180px;padding:40px 46px 60px}.main:focus{outline:none}@media (width<=720px){.main{padding:28px 20px 40px}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:30px;display:flex}.eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-faint);font-size:10px}.tabs{font-family:var(--font-mono);color:var(--color-ink-faint);flex-wrap:wrap;gap:16px;font-size:11.5px;display:flex}.tabs a{color:inherit;text-decoration:none}.tabs a.is-active{color:var(--color-ink);border-bottom:1.5px solid var(--color-ink);padding-bottom:2px}.page-title{font-family:var(--font-heading);letter-spacing:-.03em;margin:0;font-size:26px;font-weight:600}.btn{font-family:var(--font-body);cursor:pointer;border:1px solid #0000;border-radius:9px;align-items:center;gap:8px;padding:10px 16px;font-size:13.5px;font-weight:600;line-height:1.2;display:inline-flex}.btn-primary{background:var(--color-accent);color:#fff}.btn-secondary{border-color:var(--color-ink);color:var(--color-ink);background:0 0;font-weight:500}.btn-outline{border-color:var(--color-border);color:var(--color-ink-muted);background:0 0;font-weight:500}.btn-quiet{border-color:var(--color-border);color:var(--color-placeholder);background:0 0;font-weight:500}.btn-icon{background:var(--color-surface);border:1px solid var(--color-border);width:28px;height:28px;color:var(--color-ink-muted);cursor:pointer;border-radius:8px;place-items:center;padding:0;font-size:12px;display:grid}.btn:disabled{opacity:.5;cursor:default}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:24px 26px 26px}.form-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;flex-direction:column;gap:16px;margin-bottom:22px;padding:22px 24px;display:flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;display:grid}.form-actions{gap:10px;display:flex}.field{flex-direction:column;gap:6px;display:flex}fieldset.field{border:none;min-width:0;margin:0;padding:0}.field-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink-faint);font-size:10px}legend.field-label{padding:0}input,select,textarea{font-family:var(--font-body);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-ink);border-radius:8px;padding:10px 12px;font-size:14px}input::placeholder{color:var(--color-ink-faintest)}input[type=color]{cursor:pointer;width:52px;height:40px;padding:4px}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px}.actions-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.filters-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.filters-bar input,.filters-bar select{padding:8px 10px;font-size:13px}.toggle-field{color:var(--color-ink-muted);font-size:13px;font-family:var(--font-mono);align-items:center;gap:8px;display:inline-flex}.toggle-field input{width:auto;accent-color:var(--color-accent);padding:0}.list-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.list-empty{color:var(--color-ink-faint);font-size:13.5px;font-family:var(--font-mono);padding:22px 18px}.row{border-top:1px solid var(--color-border-faint);align-items:center;gap:12px;padding:13px 16px;display:flex}.row:first-child{border-top:none}.row-actions{opacity:0;pointer-events:none;align-items:center;gap:6px;transition:opacity .12s;display:flex}.row-actions .btn{height:28px;padding:0 12px;font-size:12.5px}.row:hover .row-actions,.row:focus-within .row-actions,.row-actions.is-always-visible{opacity:1;pointer-events:auto}.row-main{flex:1;min-width:0;font-size:14px}.row-sub{color:var(--color-placeholder);font-size:12.5px}.row-amount{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--color-ink-muted);text-align:right;min-width:92px;font-size:15px;font-weight:600}.row-amount.is-income{color:var(--color-ink);font-weight:800}@media (width<=720px){.row{flex-wrap:wrap;row-gap:8px}.row-main{flex-basis:100%;order:1}.row-amount{order:2}.row-actions{opacity:1;pointer-events:auto;order:3;margin-left:auto}}.direction-badge{border:1.5px solid var(--color-border-soft);width:22px;height:22px;color:var(--color-ink-muted);border-radius:50%;flex:none;place-items:center;font-size:11px;display:grid}.direction-badge.is-income{background:var(--color-ink);color:var(--color-bg);border-color:#0000}.chip{color:#fff;border-radius:7px;flex:none;place-items:center;width:26px;height:26px;font-size:14px;font-weight:700;display:grid}.chip svg{width:14px;height:14px}.icon-picker{flex-wrap:wrap;gap:8px;display:flex}.icon-picker-option{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:9px;place-items:center;padding:4px;display:grid}.icon-picker-option:hover{background:var(--color-ink-faintest)}.icon-picker-option.is-selected{border-color:var(--color-accent)}.chip-inline{border:1px solid var(--color-border);font-family:var(--font-mono);border-radius:10px;align-items:center;gap:8px;padding:9px 12px;font-size:12.5px;display:inline-flex}.chip-dot{border-radius:4px;flex:none;width:12px;height:12px}.inactive-tag{font-family:var(--font-mono);color:var(--color-ink-faint);border:1px solid var(--color-border);border-radius:5px;padding:2px 6px;font-size:10.5px}.bar-track{background:var(--color-border-soft);border-radius:4px;height:8px;display:flex;overflow:hidden}.bar-track span{height:100%;display:block}.bar-legend{color:var(--color-ink-muted);flex-wrap:wrap;gap:16px;margin-top:10px;font-size:12px;display:flex}.bar-legend .chip-dot{margin-right:6px}.alert{border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.alert-error{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger)}.alert-success{background:var(--color-border-soft);color:var(--color-ink);border:1px solid var(--color-border)}.toast{background:var(--color-ink);color:var(--color-bg);z-index:100;border-radius:9px;align-items:center;gap:12px;padding:10px 12px 10px 16px;font-size:13px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000002e}.toast button{color:inherit;cursor:pointer;font-size:12px;font-family:var(--font-body);background:0 0;border:1px solid #80808080;border-radius:6px;padding:4px 9px}.auth-screen{background:var(--color-bg);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;width:100%;max-width:360px;padding:36px 32px}.auth-mark{align-items:center;gap:9px;margin-bottom:28px;display:flex}.auth-mark img{width:24px;height:24px}.auth-mark span:last-child{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--color-ink);font-size:17px;font-weight:800}.auth-card form{flex-direction:column;gap:14px;display:flex}.auth-card .btn-primary{justify-content:center;padding:12px 16px}.auth-link{text-align:center;color:var(--color-ink-muted);margin:16px 0 0;font-size:13px}.auth-link a{color:var(--color-accent);font-weight:600}.summary-card{padding:30px 34px 32px}.summary-headline{flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:6px;display:flex}.summary-figure{font-family:var(--font-heading);letter-spacing:-.04em;font-size:52px;font-weight:800;line-height:.95}.summary-caption{color:var(--color-ink-muted);padding-bottom:6px;font-size:15px}.summary-detail{font-family:var(--font-mono);color:var(--color-ink-faint);margin-bottom:20px;font-size:12px}.summary-grid{grid-template-columns:1fr 1fr;gap:40px;margin-top:30px;display:grid}@media (width<=720px){.summary-grid{grid-template-columns:1fr;gap:28px}.summary-figure{font-size:34px}}.category-row{flex-direction:column;gap:6px;display:flex}.category-row-head{align-items:center;gap:10px;display:flex}.category-row-head .row-main{font-size:13.5px}.category-row-head .row-amount{font-family:var(--font-mono);color:var(--color-ink);font-size:12.5px;font-weight:400}
