:root{--bg:#f6f7f9;--surface-sunken:#f1f4f8;--border:#e3e8ef;--border-strong:#cbd5e1;--input-border:#cbd5e1;--ink:#10151f;--ink-muted:#5a6678;--ink-faint:#8a94a6;--text:var(--ink);--muted:var(--ink-muted);--money-out:#a4161a;--money-in:#15803d;--gain:var(--money-in);--loss:var(--money-out);--accent:#1d4ed8;--accent-weak:#eef2ff;--primary:var(--accent);--primary-600:#1e3a8a;--warn:#a35a00;--warn-weak:#fdf5e6;--danger:#a4161a;--danger-weak:#fdecec;--state-include-bg:#e7f5ec;--state-include-border:#15803d;--state-exclude-bg:#fdecec;--state-exclude-border:#a4161a;--font-ui:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-num:ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--r-sm:6px;--r:10px;--r-lg:14px;--shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.1)}*{box-sizing:border-box}#react-target,body,html{height:100%}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,Noto Sans,Apple Color Emoji,Segoe UI Emoji;margin:0}.container{margin:0 auto;max-width:1040px;padding:0 20px;width:100%}.app-header{background:var(--panel);border-bottom:1px solid var(--border)}.app-header .container{padding:20px}.app-header h1{font-size:22px;letter-spacing:.2px;margin:0}.subtitle{color:var(--muted);font-size:14px;margin:6px 0 0}main .panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:18px}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}button{background:var(--primary);border:1px solid var(--primary);border-radius:10px;color:#fff;cursor:pointer;font-weight:600;padding:10px 14px;transition:background .15s ease,transform .05s ease}button:hover{background:var(--primary-600)}button:active{transform:translateY(1px)}button[disabled]{cursor:not-allowed;opacity:.6}.btn-secondary{background:#f1f5f9;border:1px solid var(--border);color:#0f172a}.btn-secondary:hover{background:#e2e8f0}.btn-icon{background:#eef2f7;border:1px solid var(--border);border-radius:9999px;color:#0f172a;line-height:1;padding:6px 8px}.btn-icon:hover{background:#e2e8f0}.cat-card{background:var(--panel);border:2px solid var(--border);border-radius:14px;box-shadow:var(--shadow);display:block;padding:12px;transition:transform 80ms ease,box-shadow .12s ease,border-color .12s ease}.cat-card:hover{box-shadow:0 6px 18px rgba(16,24,40,.12);transform:translateY(-1px)}.cat-card .meta{align-items:center;display:flex;gap:8px;justify-content:space-between}.cat-card .name{color:var(--muted);font-size:12px;letter-spacing:.4px;text-transform:uppercase}.cat-card .value{color:var(--text);font-weight:800;margin-top:6px}.cat-card .count{color:#475569;font-size:12px;font-weight:800;margin-top:6px}.pill{background:#f1f5f9;border:1px solid var(--border);border-radius:9999px;color:#0f172a;justify-content:center}.badge-excluded,.pill{align-items:center;display:inline-flex;font-size:11px;padding:2px 8px}.badge-excluded{background:#fee2e2;border:1px solid #fecaca;border-radius:9999px;color:#991b1b;gap:6px}.btn-danger{background:#ef4444;border-color:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626;border-color:#dc2626}input:not([type=checkbox]):not([type=radio]),select{background:#fff;border:1px solid var(--input-border);border-radius:10px;color:var(--text);padding:10px 12px}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.12);outline:none}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--border);padding:10px}th{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}tbody tr:hover{background:#f8fafc}.table-compact td,.table-compact th{padding:8px}.truncate{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.label-cell{font-size:13px;line-height:1.4;max-width:0;white-space:normal;word-break:break-word}.section-header{align-items:center;display:flex;gap:12px}.muted{color:var(--muted);font-size:12px}.amount.positive{color:#15803d;font-weight:700}.amount.negative{color:#b91c1c;font-weight:700}.app-footer{border-top:1px solid var(--border)}.app-footer .container{color:var(--muted);font-size:13px;padding:16px}.section{margin:var(--s5) 0}.section-header-enhanced{border-bottom:1px solid var(--border);color:var(--ink);font-size:15px;font-weight:600;letter-spacing:.01em;margin-bottom:var(--s3);padding:0 0 var(--s2)}.section-content{padding:0}.section--misclassification{border-left:3px solid var(--warn);padding-left:var(--s4)}.section--misclassification .section-header-enhanced{color:var(--warn)}.summary-total{margin-bottom:12px}.total-amount{color:var(--text);font-size:28px;font-variant-numeric:tabular-nums;font-weight:800;margin-bottom:6px}.total-amount.positive{color:var(--gain)}.total-amount.negative{color:var(--loss)}.date-range{align-items:center;background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.3);border-radius:6px;display:flex;flex-wrap:wrap;gap:8px;padding:6px 10px}.date-label{color:#92400e;font-size:12px;font-weight:600}.date-values{background:hsla(0,0%,100%,.7);border-radius:3px;color:#451a03;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;font-weight:600;padding:2px 6px}.period-info{color:#a16207;font-size:11px;font-style:italic;font-weight:500;margin-left:auto}.averages-container{display:flex;flex-direction:column;gap:8px}.average-row{align-items:center;background:hsla(0,0%,100%,.6);border:1px solid rgba(251,191,36,.2);border-radius:6px;display:flex;flex-wrap:wrap;gap:8px;padding:8px 10px}.row-label{color:#92400e;flex-shrink:0;font-size:12px;font-weight:600;min-width:140px}.average-item{align-items:center;background:hsla(0,0%,100%,.4);border:1px solid rgba(251,191,36,.3);border-radius:4px;display:flex;gap:6px;padding:4px 8px}.average-label{color:#92400e;font-size:11px;font-weight:500}.average-value{color:#451a03;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;font-weight:700}:root{--gain:#15803d;--loss:#b91c1c}.amount,.average-value,.cat-card .value,.pill,.total-amount{font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto}.table-compact thead th{background:#fff;position:sticky;top:0;z-index:1}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.summary-band{align-items:flex-start;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:var(--s5);margin-bottom:var(--s5);padding:var(--s5) 0 var(--s4)}.band-figure{font-family:var(--font-num);font-size:32px;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.2}.total-amount{font-size:22px}.empty-state{color:var(--ink-muted);padding:var(--s5) 0;text-align:center}.skeleton{animation:skeleton-sweep 1.2s ease-in-out infinite;background:linear-gradient(90deg,var(--border) 25%,var(--surface-sunken) 50%,var(--border) 75%);background-size:200% 100%;border-radius:4px;display:inline-block;vertical-align:middle}.skeleton--figure{height:32px;width:140px}.skeleton--note{height:12px;margin-top:4px;width:96px}.skeleton--tile{height:56px;width:100%}.skeleton--chart{display:block;height:180px;width:100%}.skeleton--row{height:14px;width:100%}@keyframes skeleton-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.popover{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r);box-shadow:0 8px 24px rgba(16,24,40,.12);color:var(--ink);font-size:13px;line-height:1.5;max-width:320px;padding:var(--s3);position:absolute;z-index:9999}.popover__title{border-bottom:1px solid var(--border);font-weight:600;margin-bottom:var(--s2);padding-bottom:var(--s1)}.popover__row{margin:var(--s1) 0}.popover__why{color:var(--ink-muted);font-size:12px}:root{--bg:#fff;--panel:#fff;--surface:#fff;--surface-sunken:#f5f5f7;--border:#e8e8ec;--border-strong:#c9c9d0;--input-border:#d8d8df;--ink:#18181b;--ink-muted:#62626c;--ink-faint:#71717a;--accent:#242428;--accent-weak:#f5f5f7;--primary:#242428;--primary-600:#3f3f46;--state-include-bg:#f0f0f3;--state-include-border:#242428;--state-exclude-bg:#fafafa;--state-exclude-border:#71717a;--shadow:none;--font-num:var(--font-ui);color-scheme:light}body{background:#fff;line-height:1.5}button,input,select{font:inherit;font-size:13px}button{border-radius:7px;font-weight:500}button:active{transform:none}input:not([type=checkbox]):not([type=radio]),select{border-radius:7px;max-width:100%}a{color:inherit}[hidden]{display:none!important}.app-root{display:grid;grid-template-columns:208px minmax(0,1fr);min-height:100vh}.app-sidebar{background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:44px;padding:36px 20px}.brand{font:500 38px/1 Georgia,serif;letter-spacing:-2px;padding-left:12px;text-decoration:none}.app-sidebar nav{display:grid;gap:7px}.app-sidebar nav button{background:transparent;border:1px solid transparent;color:var(--ink-muted);padding:11px 13px;text-align:left}.app-sidebar nav button:hover,.app-sidebar nav button[aria-current=page]{background:var(--surface-sunken);color:var(--ink)}.app-sidebar nav button[aria-current=page]{font-weight:600}.sidebar-account{color:var(--ink-muted);display:grid;font-size:12px;gap:8px;margin-top:auto}.account-email{overflow-wrap:anywhere}.app-main{margin:0 auto;max-width:1600px;min-width:0;padding:30px clamp(20px,4vw,64px);width:100%}.app-topline{color:var(--ink-muted);display:flex;flex-wrap:wrap;font-size:12px;gap:12px;justify-content:space-between;margin-bottom:34px}.page-heading{margin-bottom:28px}.page-heading h1{font:400 clamp(27px,3vw,36px)/1.2 Georgia,serif;letter-spacing:-.8px;margin:0 0 10px}.page-heading p{color:var(--ink-muted);margin:0}.app-main h2{font-size:16px;font-weight:600;margin:0}.app-footer{color:var(--ink-muted);font-size:12px;margin-top:40px;padding:20px 0}.btn-icon,.btn-secondary{background:#fff;border:1px solid var(--border);color:var(--ink)}.btn-icon:hover,.btn-secondary:hover{background:var(--surface-sunken)}.btn-icon{border-radius:6px;min-height:28px;min-width:28px}main .panel{border:0;box-shadow:none;padding:0}.signed-out .panel{border:1px solid var(--border);border-radius:10px;padding:28px}.section-header{flex-wrap:wrap}.section-header-enhanced{font-size:16px;padding-bottom:12px}.section{margin:28px 0}.summary-band{padding-top:0}.band-figure{font-family:var(--font-ui);font-size:28px;font-weight:500;letter-spacing:-.6px}.cat-card{border-radius:8px;border-width:1px;box-shadow:none}.cat-card:hover{box-shadow:none;transform:none}.cat-card .value{font-size:20px;font-weight:500}.cat-card .name{font-size:13px;letter-spacing:0;text-transform:none}.category-filters{margin-top:20px}.category-filters summary{color:var(--ink-muted);cursor:pointer;font-size:13px;padding:12px 0}.badge-excluded,.pill{background:var(--surface-sunken);border-color:var(--border);color:var(--ink-muted)}.toolbar label{align-items:center;display:flex;flex-wrap:wrap;font-size:13px;gap:8px}.toolbar{gap:10px}.table-compact th{font-size:11px;letter-spacing:0;text-align:left;text-transform:none}.table-compact td{padding:14px 8px}.table-compact{min-width:700px}.table-compact .label-cell{font-size:13px}.amount.negative{color:var(--ink);font-weight:500}.amount.positive{color:var(--money-in);font-weight:500}.average-item,.average-row,.date-range{background:var(--surface-sunken);border-color:var(--border)}.average-label,.average-value,.date-label,.date-values,.period-info,.row-label{color:var(--ink-muted)}.dashboard-metrics{border-bottom:1px solid var(--border);border-top:1px solid var(--border);display:grid;gap:24px;grid-template-columns:1.4fr 1fr 1fr;padding:26px 0 30px}.metric-label,.metric-note{color:var(--ink-muted);font-size:12px}.metric-value{font-size:clamp(24px,2.7vw,32px);font-variant-numeric:tabular-nums;letter-spacing:-1px;margin:7px 0}.metric-value--main{font-size:clamp(30px,3.5vw,42px);line-height:1.2}.overview-controls{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:22px}.overview-controls label{align-items:center;display:flex;font-size:13px;gap:10px}.overview-grid{display:grid;gap:36px;grid-template-columns:1.5fr 1fr;margin-top:30px}.overview-card{border:1px solid var(--border);border-radius:10px;padding:24px}.overview-card p{color:var(--ink-muted)}.spending-list{display:grid;gap:20px;margin-top:22px}.spending-label{display:flex;font-size:14px;font-variant-numeric:tabular-nums;gap:12px;justify-content:space-between}.spending-track{background:var(--surface-sunken);border-radius:4px;height:6px;margin-top:8px;overflow:hidden}.spending-track span{background:var(--accent);display:block;height:100%}.classification-callout{align-items:center;background:var(--surface-sunken);border-radius:8px;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-top:30px;padding:20px}.classification-callout p{color:var(--ink-muted);font-size:12px;margin:4px 0 0}.account-row{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:22px 0}.account-row p{color:var(--ink-muted);font-size:12px;margin:5px 0}.account-balance{font-size:24px;font-variant-numeric:tabular-nums;text-align:right}.skip-link{background:#fff;left:20px;padding:12px;position:absolute;top:-100px;z-index:20000}.skip-link:focus{top:10px}@media (max-width:1000px){.dashboard-metrics{grid-template-columns:1fr 1fr}.dashboard-metrics>div:first-child{grid-column:1/-1}}@media (max-width:760px){.app-root{grid-template-columns:minmax(0,1fr)}.app-sidebar{border-bottom:1px solid var(--border);border-right:0;gap:18px;padding:20px}.brand{font-size:32px;padding:0}.app-sidebar nav{gap:2px;grid-template-columns:repeat(4,minmax(0,1fr))}.app-sidebar nav button{font-size:12px;padding:10px 3px;text-align:center}.sidebar-account{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.sidebar-account>span:first-child{display:none}.app-main{padding:24px 18px}.app-topline{margin-bottom:24px}.overview-grid{gap:24px;grid-template-columns:minmax(0,1fr)}.dashboard-metrics{gap:20px 12px}.account-balance{text-align:left}input,select{font-size:16px!important}button{min-height:40px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}button.brand{background:transparent;border:0;color:var(--ink);font:500 38px/1 Georgia,serif;text-align:left}.salary-forecast{color:var(--ink-muted);font-size:12px;font-variant-numeric:tabular-nums;margin-top:12px}