:root{color-scheme:light;--page: #f9f9f7;--surface-1: #fcfcfb;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #898781;--grid: #e1e0d9;--baseline: #c3c2b7;--border: rgba(11, 11, 11, .1);--series-1: #2a78d6;--series-2: #eb6834;--delta-good: #006300;--delta-bad: #d03b3b;--status-good: #0ca30c;--status-warning: #fab219;--status-critical: #d03b3b}@media (prefers-color-scheme: dark){:root:where(:not([data-theme=light])){color-scheme:dark;--page: #0d0d0d;--surface-1: #1a1a19;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--grid: #2c2c2a;--baseline: #383835;--border: rgba(255, 255, 255, .1);--series-1: #3987e5;--series-2: #d95926;--delta-good: #0ca30c;--delta-bad: #d03b3b}}:root[data-theme=dark]{color-scheme:dark;--page: #0d0d0d;--surface-1: #1a1a19;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--grid: #2c2c2a;--baseline: #383835;--border: rgba(255, 255, 255, .1);--series-1: #3987e5;--series-2: #d95926;--delta-good: #0ca30c;--delta-bad: #d03b3b}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--page);color:var(--text-primary);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.45}.page{margin:0 auto;padding:20px 28px 40px}.topbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between}.brand h1{margin:0;font-size:20px;font-weight:650}.tagline{margin:2px 0 0;color:var(--text-muted);font-size:13px}.tagline.is-error{color:var(--delta-bad)}.topbar-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{display:inline-block;padding:6px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-1);color:var(--text-primary);font:inherit;cursor:pointer}.btn:hover{border-color:var(--baseline)}.btn:disabled{opacity:.5;cursor:default}.filters{margin:18px 0 14px}.range-group{display:inline-flex;gap:2px;border:1px solid var(--border);border-radius:10px;padding:2px;background:var(--surface-1)}.range-btn{border:0;background:transparent;color:var(--text-secondary);font:inherit;padding:5px 12px;border-radius:8px;cursor:pointer}.range-btn:hover{color:var(--text-primary)}.range-btn.is-active{background:var(--page);color:var(--text-primary);font-weight:600;box-shadow:inset 0 0 0 1px var(--border)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:14px}.tile{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.tile .label{color:var(--text-secondary);font-size:13px}.tile .value{font-weight:600;font-size:26px;margin-top:2px}.tile.hero .value{font-size:clamp(26px,3.4vw,40px);font-weight:650;line-height:1.1}.tile .delta{font-size:13px;margin-top:4px;color:var(--text-muted)}.tile .delta .dir-good{color:var(--delta-good);font-weight:600}.tile .delta .dir-bad{color:var(--delta-bad);font-weight:600}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card-balance{grid-column:1 / -1}@media (min-width: 1100px){.grid{grid-template-columns:repeat(3,1fr)}.card-balance{grid-column:span 2}}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:16px;position:relative;min-width:0}.card-wide{grid-column:1 / -1}.card h2{margin:0 0 10px;font-size:15px;font-weight:600}@media (max-width: 760px){.grid{grid-template-columns:1fr}}.empty-state{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:48px 24px;text-align:center}.empty-state h2{margin:0 0 6px;font-size:18px}.empty-state p{color:var(--text-secondary);margin:0 0 18px}.empty-state .actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.chart{position:relative;width:100%}.chart svg{display:block;width:100%;height:auto}.chart svg:focus-visible{outline:2px solid var(--series-1);outline-offset:2px;border-radius:8px}.chart text{font-family:inherit}.axis-label{fill:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums}.direct-label{fill:var(--text-secondary);font-size:11px;font-weight:600}.gridline{stroke:var(--grid);stroke-width:1}.baseline-line,.crosshair{stroke:var(--baseline);stroke-width:1}.legend{display:flex;gap:16px;margin-top:8px;flex-wrap:wrap}.legend .key{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:13px}.legend .swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.tooltip{position:absolute;pointer-events:none;background:var(--surface-1);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 14px #0000001f;padding:8px 10px;font-size:12px;min-width:120px;z-index:5;display:none}.tooltip .tt-title{color:var(--text-muted);margin-bottom:4px}.tooltip .tt-row{display:flex;align-items:center;gap:6px;margin-top:2px}.tooltip .tt-key{width:10px;height:0;border-top:3px solid;border-radius:2px}.tooltip .tt-value{font-weight:650;color:var(--text-primary);margin-left:auto;font-variant-numeric:tabular-nums}.tooltip .tt-label{color:var(--text-secondary)}.data-table{margin-top:10px}.data-table summary{color:var(--text-muted);font-size:12px;cursor:pointer}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--text-muted);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--grid)}td{padding:6px 8px;border-bottom:1px solid var(--grid)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.tx-table .amount-pos{color:var(--delta-good);font-weight:600}.tx-table td:first-child{white-space:nowrap}.tx-scroll{max-height:620px;overflow-y:auto}.tx-scroll thead th{position:sticky;top:0;background:var(--surface-1);z-index:1}.tx-end{text-align:center;color:var(--text-muted);font-size:12px;padding:14px 0 4px;margin:0}.table-scroll{overflow-x:auto}.cat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--baseline);margin-right:6px}.foot{margin-top:20px;color:var(--text-muted);font-size:12px}.foot code{font-size:11px}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-label{color:var(--text-muted);font-size:13px}.select{padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-1);color:var(--text-primary);font:inherit;cursor:pointer}.filter-label+.select{margin-right:8px}.input{padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--page);color:var(--text-primary);font:inherit;width:100%;max-width:100%}.input:disabled{opacity:.6}.input-emoji{width:56px;text-align:center}.input-num{width:110px;text-align:right;font-variant-numeric:tabular-nums}.input-select{width:auto;padding:3px 6px;font-size:13px}.form-label{display:block;margin:10px 0 4px;color:var(--text-secondary);font-size:13px}.form-error{color:var(--delta-bad);font-size:13px}.hint{color:var(--text-muted);font-size:12px}.btn-small{padding:3px 10px;font-size:13px}.btn-icon{padding:3px 9px}.btn-primary{border-color:var(--series-1);font-weight:600}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px;z-index:20}.modal{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:24px;width:100%;max-width:460px;max-height:84vh;overflow-y:auto;box-shadow:0 12px 40px #00000040}.modal-wide{max-width:860px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-head h2{margin:0;font-size:17px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.modal-toolbar{display:flex;align-items:center;gap:10px;margin-top:10px}.logo-choices{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.logo-choice{display:flex;flex-direction:column;align-items:center;gap:4px;width:124px;padding:10px 8px;text-align:center;cursor:pointer;background:var(--surface-1);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font:inherit}.logo-choice:hover{border-color:var(--series-1)}.logo-choice img{width:40px;height:40px;object-fit:contain;border-radius:6px}.logo-choice-name{font-size:12px;font-weight:650;overflow-wrap:anywhere}.logo-choice .hint{font-size:11px;overflow-wrap:anywhere}.cat-icon{display:inline-block;width:18px;text-align:center}img.cat-icon{width:18px;height:18px;border-radius:4px;vertical-align:-4px;object-fit:cover}.cat-icon-cell{display:flex;align-items:center;gap:8px;white-space:nowrap}.cat-table th{padding:10px 12px}.cat-table td{vertical-align:middle;padding:10px 12px}.cat-table .input{padding:8px 10px}.cat-table .input-num{width:130px}.cat-table .btn-small{padding:6px 12px}.detail-payee-edit{display:flex;gap:8px;align-items:center}.cat-cell{white-space:nowrap}.cat-cell .cat-icon{margin-right:4px}.budget-list{display:flex;flex-direction:column;gap:12px}.budget-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}.budget-name{color:var(--text-secondary)}.budget-nums strong{font-variant-numeric:tabular-nums}.meter{height:8px;border-radius:4px;background:var(--grid);overflow:hidden}.meter-fill{height:100%;border-radius:4px}.total-row td{font-weight:650;border-top:1px solid var(--baseline)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:var(--surface-1);border:1px solid var(--border);border-radius:14px;padding:32px 28px;max-width:380px;text-align:center}.login-card h1{margin:0 0 6px;font-size:22px}.login-card p{color:var(--text-secondary)}.btn-discord{display:inline-block;padding:10px 22px;margin:14px 0 8px;text-decoration:none;font-size:15px}.login-card code{font-size:12px;word-break:break-all}.user-chip{display:inline-flex;align-items:center;gap:8px;padding:3px 10px 3px 4px;border-radius:999px}.avatar{width:24px;height:24px;border-radius:50%}.avatar-lg{width:44px;height:44px}.user-name{color:var(--text-secondary);font-size:13px}.user-menu{position:relative;display:inline-block}.chev{color:var(--text-muted);font-size:10px}.menu-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:190px;padding:6px;background:var(--surface-1);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #00000047}.menu-item{display:block;width:100%;padding:9px 12px;text-align:left;border:0;border-radius:7px;background:none;color:var(--text-primary);font:inherit;font-size:13px;cursor:pointer}.menu-item:hover{background:color-mix(in srgb,var(--series-1) 12%,transparent)}.menu-item:focus-visible{outline:2px solid var(--series-1);outline-offset:-2px}.settings-section{padding:16px 0;border-bottom:1px solid var(--grid)}.settings-section:last-of-type{border-bottom:0;padding-bottom:4px}.settings-section h3{margin:0 0 2px;font-size:14px}.settings-section>.hint{margin:0 0 10px}.settings-field{display:flex;gap:16px;align-items:center;padding:7px 0;flex-wrap:wrap}.settings-field-label{display:flex;flex-direction:column;width:190px;flex-shrink:0;font-size:13px}.settings-field-control{flex:1;min-width:220px}.settings-account{display:flex;align-items:center;gap:12px;margin-bottom:8px}.settings-account-name{font-weight:650;font-size:15px}.settings-colors{display:inline-flex;align-items:center;gap:14px}.color-pick{display:inline-flex;align-items:center;gap:6px}.color-pick input[type=color]{width:34px;height:26px;padding:0;border:1px solid var(--border);border-radius:6px;background:none;cursor:pointer}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.segmented-btn{padding:6px 14px;border:0;background:none;color:var(--text-secondary);font:inherit;font-size:13px;cursor:pointer}.segmented-btn+.segmented-btn{border-left:1px solid var(--border)}.segmented-btn.is-active{background:var(--page);color:var(--text-primary);font-weight:600}.accent-grid{display:flex;gap:8px;flex-wrap:wrap}.accent-swatch{display:inline-flex;width:46px;height:26px;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:7px;cursor:pointer;background:none}.accent-swatch.is-active{outline:2px solid var(--text-primary);outline-offset:1px}.accent-half{flex:1}.danger-confirm{padding:12px 14px;border:1px solid var(--status-critical);border-radius:10px;background:color-mix(in srgb,var(--status-critical) 8%,transparent)}.danger-confirm p{margin:0 0 8px;font-size:13px}.wiz-backdrop{background:#0000009e}.wiz{max-width:720px}.wiz .modal-head{align-items:flex-start}.wiz .modal-head h2{margin-bottom:2px}.wiz-body{min-height:320px}.wiz-body h3{margin:4px 0 8px;font-size:15px}.wiz-body p{margin:0 0 10px;font-size:13px;color:var(--text-secondary);line-height:1.5}.wiz-ok{color:var(--delta-good);font-weight:600}.wiz-steps{display:flex;gap:6px;list-style:none;margin:0 0 16px;padding:0 0 14px;border-bottom:1px solid var(--grid);flex-wrap:wrap}.wiz-steps li{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);padding-right:8px}.wiz-steps li.is-at{color:var(--text-primary);font-weight:650}.wiz-steps li.is-done{color:var(--text-secondary)}.wiz-dot{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--page);box-shadow:inset 0 0 0 1px var(--border);font-size:11px}.wiz-steps li.is-at .wiz-dot{background:var(--series-1);color:#fff;box-shadow:none}.wiz-steps li.is-done .wiz-dot{background:transparent;color:var(--delta-good)}.wiz-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:12px}.wiz-choices-wide{grid-template-columns:1fr}.wiz-choice{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:none;color:var(--text-primary);font:inherit;cursor:pointer}.wiz-choice:hover{background:color-mix(in srgb,var(--series-1) 7%,transparent)}.wiz-choice.is-active{border-color:var(--series-1);box-shadow:inset 0 0 0 1px var(--series-1)}.wiz-choice-title{font-weight:650;font-size:13.5px}.wiz-choice-detail{margin-top:4px}.wiz-choice-palette{align-items:center}.wiz-swatch{display:flex;width:100%;height:22px;border-radius:6px;overflow:hidden}.wiz-swatch>span{flex:1}.tx-row{cursor:pointer}.tx-row:hover td{background:color-mix(in srgb,var(--series-1) 6%,transparent)}.tx-row:focus-visible{outline:2px solid var(--series-1);outline-offset:-2px}.payee-cell{white-space:nowrap}.payee-cell .cat-icon{margin-right:6px}.payee-scroll{max-height:55vh;overflow-y:auto;margin-top:10px}.detail-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.detail-logo{font-size:26px;width:40px;text-align:center}img.detail-logo{width:40px;height:40px;border-radius:8px;object-fit:cover}.detail-payee{font-weight:650;font-size:16px}.detail-amount{margin-left:auto;font-weight:650;font-size:20px;font-variant-numeric:tabular-nums}.detail-amount.amount-pos{color:var(--delta-good)}.detail-row{display:flex;gap:12px;padding:7px 0;border-bottom:1px solid var(--grid);align-items:center}.detail-row:last-of-type{border-bottom:0}.detail-label{color:var(--text-muted);font-size:13px;width:120px;flex-shrink:0}.detail-value{min-width:0;flex:1}.detail-code{font-size:12px;word-break:break-all;color:var(--text-secondary)}.btn-danger{border-color:var(--status-critical);color:var(--status-critical)}.modal-actions-spacer{flex:1}@media (max-width: 640px){.page{padding:12px 12px 28px}.topbar{flex-direction:column}.topbar-actions{width:100%}.topbar-actions .btn{flex:1 1 auto;padding:8px 10px;text-align:center}.filters{gap:6px}.filter-label{display:none}.select{flex:1 1 40%;min-width:0}.card,.tile{padding:12px}.tile.hero .value{font-size:30px}.tile .value{font-size:22px}.modal-backdrop{padding:4vh 8px 8px}.modal{padding:14px}th,td{padding:6px}.brand h1{font-size:18px}}
