:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ink:#17211b;--ink-secondary:#46524b;--muted:#68736c;--paper:#f4f6f2;--card:#fff;--raised:#fff;--sunken:#eef1ec;--line:#dfe6e1;--line-strong:#cbd6ce;--green:#1f7653;--green-strong:#16593e;--green-soft:#e3f1e9;--green-border:#c3e0d0;--warn:#8a5a00;--warn-soft:#fbf0d8;--warn-mark:#d9982a;--danger:#a3362b;--danger-soft:#fbe7e4;--danger-mark:#c4483a;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:36px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-pill:999px;--invert-bg:#17211b;--invert-ink:#fff;--panel-bg:#17211b;--panel-ink:#fff;--panel-muted:#c8d0cb;--panel-border:#526159;--shadow-sm:0 1px 2px #17211b0d;--shadow-md:0 1px 2px #17211b0a, 0 8px 20px -12px #17211b29;font-feature-settings:"cv11", "ss01";font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ink:#e8efe9;--ink-secondary:#b3c0b7;--muted:#8a978f;--paper:#0f1512;--card:#171f1a;--raised:#1c261f;--sunken:#131b16;--line:#26312a;--line-strong:#35443a;--green:#55b98a;--green-strong:#6fcfa0;--green-soft:#14261d;--green-border:#24402f;--warn:#e0ac52;--warn-soft:#2a2114;--warn-mark:#d9982a;--danger:#f09183;--danger-soft:#2c1815;--danger-mark:#c4483a;--invert-bg:#e8efe9;--invert-ink:#0f1512;--panel-bg:#1c261f;--panel-ink:#e8efe9;--panel-muted:#9aa8a0;--panel-border:#35443a;--shadow-sm:0 1px 2px #0006;--shadow-md:0 1px 2px #00000059, 0 10px 24px -14px #000000b3}}:where(a,button,input,select,[tabindex]):focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:var(--r-sm)}@media (prefers-reduced-motion:no-preference){.card,.budget-card{transition:box-shadow .18s,border-color .18s}}*{box-sizing:border-box}body{color:var(--ink);background:var(--paper);margin:0}button,select,input{font:inherit}.shell{width:min(1120px,100%);margin:0 auto;padding:24px 18px 56px}.header{justify-content:space-between;align-items:center;gap:var(--s5);padding-bottom:var(--s3);margin-bottom:var(--s5);border-bottom:1px solid var(--line);display:flex}.header-account{align-items:center;gap:var(--s3);min-width:0;display:flex}.header-account .user-email{text-overflow:ellipsis;white-space:nowrap;max-width:190px;overflow:hidden}.main-nav{align-items:center;gap:2px;display:flex}.main-nav a{color:var(--ink-secondary);border-radius:var(--r-pill);white-space:nowrap;padding:7px 12px;font-size:.84rem;font-weight:600;text-decoration:none}.main-nav a:hover{background:var(--sunken);color:var(--ink)}.main-nav .nav-short{display:none}.main-nav a[aria-current=page]{background:var(--invert-bg);color:var(--invert-ink);font-weight:650}.main-nav a[aria-current=page]:hover{background:var(--invert-bg);color:var(--invert-ink)}.brand{letter-spacing:-.04em;font-size:1.35rem;font-weight:750}.brand-link{color:inherit;text-decoration:none}.badge{background:var(--green-soft);color:var(--green);border-radius:999px;padding:7px 11px;font-size:.78rem;font-weight:650}h1{letter-spacing:-.03em;margin:0 0 var(--s1);font-size:clamp(1.35rem,3.2vw,1.75rem);font-weight:680;line-height:1.15}.intro{color:var(--muted);margin:0 0 var(--s5);font-size:.86rem}.filters{gap:var(--s2);margin-bottom:var(--s4);grid-template-columns:repeat(4,1fr) auto;display:grid}.filters[data-auto-submit=on] .filter-button{display:none}.filters[data-auto-submit=on]{grid-template-columns:repeat(4,1fr)}.filters select,.filters input{border:1px solid var(--line);background:var(--card);width:100%;color:var(--ink);border-radius:12px;padding:11px}.grid{grid-template-columns:repeat(12,1fr);gap:14px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4);box-shadow:var(--shadow-sm)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong)}.metric{grid-column:span 4}.full{grid-column:1/-1}.balance-row{border-top:1px solid var(--line);grid-template-columns:1fr auto auto auto;align-items:baseline;gap:18px;padding:11px 0;font-size:.88rem;display:grid}.balance-row:first-of-type{border-top:none}.balance-row .balance-name{font-weight:620}.balance-row .balance-secondary{color:var(--muted);font-size:.8rem}.balance-total{justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:6px;display:flex}.trend{gap:var(--s2);display:grid}.trend-bars{gap:var(--s2);grid-auto-columns:1fr;grid-auto-flow:column;align-items:end;min-height:150px;display:grid}.trend-bar{grid-template-rows:auto 1fr auto;justify-items:center;gap:6px;min-width:0;display:grid}.trend-value{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.72rem}.trend-column{background:var(--sunken);border-radius:var(--r-sm);align-items:flex-end;width:100%;max-width:54px;height:100px;display:flex;overflow:hidden}.trend-column span{background:var(--line-strong);border-radius:inherit;width:100%;display:block}.trend-bar-current .trend-column span{background:var(--green)}.trend-bar-current .trend-value{color:var(--ink);font-weight:680}.trend-bar-current .trend-month{color:var(--green);font-weight:650}.trend-month{color:var(--muted);text-transform:capitalize;font-size:.72rem}.trend-caption{color:var(--muted);margin:0;font-size:.76rem}.chart-figure{margin:4px 0 0}.balance-chart{width:100%;height:auto;display:block;overflow:visible}.chart-grid{stroke:var(--line);stroke-width:1px}.chart-zero{stroke:var(--line-strong);stroke-width:1.5px}.chart-area{fill:var(--green-soft);opacity:.55}.chart-line{fill:none;stroke:var(--green);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-line-estimated{stroke-dasharray:5 4}.chart-endpoint{fill:var(--green);stroke:var(--card);stroke-width:2px}.chart-label{fill:var(--ink);font-size:11px;font-weight:650}.chart-axis{fill:var(--muted);font-size:10px}.chart-frame{position:relative}.balance-chart:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:10px}.chart-crosshair{stroke:var(--green);stroke-width:1px;stroke-dasharray:3 3;opacity:.5}.chart-focus{fill:var(--green);stroke:var(--card);stroke-width:2px}.chart-tooltip{background:var(--invert-bg);color:var(--invert-ink);border-radius:var(--r-sm);pointer-events:none;white-space:nowrap;gap:1px;padding:7px 10px;display:grid;position:absolute;top:0;transform:translate(-50%);box-shadow:0 6px 18px #17211b2e}.chart-tooltip strong{letter-spacing:-.02em;font-size:.9rem;font-weight:700}.chart-tooltip span{color:var(--muted);font-size:.7rem}.chart-caption{color:var(--muted);margin:8px 0 0;font-size:.76rem;line-height:1.45}.balance-total strong{letter-spacing:-.045em;font-size:1.75rem;font-weight:730}.wide{grid-column:span 7}.side{grid-column:span 5}.label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:var(--s2);font-size:.74rem;font-weight:600}.value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:680}.metric:first-of-type{background:var(--raised);border-color:var(--green-border)}.metric:first-of-type .value{letter-spacing:-.045em;color:var(--ink);font-size:2.35rem;font-weight:720}.metric:first-of-type .label{color:var(--green);font-weight:650}.trend{margin-top:var(--s2);color:var(--muted);font-size:.78rem}.positive{color:var(--green)}.bar-row{align-items:center;gap:var(--s3);margin:var(--s3) 0;grid-template-columns:110px 1fr auto;font-size:.84rem;display:grid}.bar-row strong{font-variant-numeric:tabular-nums}.bar{border-radius:var(--r-pill);background:var(--sunken);height:7px;overflow:hidden}.bar span{border-radius:inherit;background:var(--green);height:100%;display:block}.pagination{justify-content:center;align-items:center;gap:var(--s3);margin-top:var(--s4);display:flex}.subscriptions{display:grid}.subscription-row{gap:2px var(--s3);border-top:1px solid var(--line);grid-template-columns:1fr auto;padding:11px 0;font-size:.88rem;display:grid}.subscription-row .balance-secondary{grid-column:1}.subscription-row strong{text-align:right;font-variant-numeric:tabular-nums;grid-area:span 2/2;align-self:center}.subscription-name{font-weight:620}.subscription-change{color:var(--warn);margin-top:2px;font-size:.74rem;font-style:normal;display:block}.transaction-days{gap:var(--s4);display:grid}.transaction-day{justify-content:space-between;align-items:baseline;gap:var(--s3);border-bottom:1px solid var(--line);color:var(--muted);letter-spacing:.03em;text-transform:uppercase;padding-bottom:6px;font-size:.74rem;font-weight:600;display:flex}.transaction-day-total{font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0}.amount-credit{color:var(--green)}.transactions{margin:0;padding:0;list-style:none}.transaction{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:4px 16px;padding:13px 0;display:grid}.transaction:last-child,.transaction-days section:last-child .transaction:last-child{border-bottom:0}.merchant{font-weight:650}.meta{color:var(--muted);align-items:center;gap:6px;font-size:.78rem;display:inline-flex}.category-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.amount{font-variant-numeric:tabular-nums;text-align:right;grid-area:span 2/2;align-self:center;font-weight:650}.empty{color:var(--muted)}.chat{gap:var(--s3);display:grid}.chat-history{gap:var(--s2);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.chat-history-item{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:var(--r-pill);text-overflow:ellipsis;white-space:nowrap;max-width:220px;padding:6px 12px;font-size:.78rem;text-decoration:none;overflow:hidden}.chat-history-item:hover{border-color:var(--green);color:var(--green)}.chat-history-active{background:var(--green-soft);border-color:var(--green-border);color:var(--green);font-weight:620}.chat-thread{gap:var(--s3);min-height:320px;max-height:58vh;padding:var(--s4);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);align-content:start;display:grid;overflow-y:auto}.chat-message{max-width:78%;padding:11px var(--s3);border-radius:var(--r-md);white-space:pre-wrap;font-size:.9rem;line-height:1.5}.chat-user{background:var(--invert-bg);color:var(--invert-ink);border-bottom-right-radius:var(--s1);justify-self:end}.chat-assistant{background:var(--sunken);color:var(--ink);border-bottom-left-radius:var(--s1);justify-self:start}.chat-pending{color:var(--muted);font-style:italic}.chat-caret{vertical-align:text-bottom;background:var(--green);width:2px;height:1em;margin-left:2px;display:inline-block}@media (prefers-reduced-motion:no-preference){.chat-caret{animation:1s steps(2,start) infinite chat-blink}@keyframes chat-blink{50%{opacity:0}}}.chat-empty{gap:var(--s3);color:var(--muted);font-size:.86rem;display:grid}.chat-suggestions{gap:var(--s2);flex-wrap:wrap;display:flex}.chat-suggestion{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:var(--r-pill);cursor:pointer;padding:8px 13px;font-size:.82rem}.chat-suggestion:hover:not(:disabled){border-color:var(--green);color:var(--green)}.chat-suggestion:disabled{opacity:.5;cursor:default}.chat-form{gap:var(--s2);grid-template-columns:1fr auto;display:grid}.chat-form input{border:1px solid var(--line);background:var(--card);border-radius:var(--r-md);padding:12px var(--s3);color:var(--ink);min-width:0}.chat-note{color:var(--muted);margin:0;font-size:.74rem;line-height:1.5}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skeleton{background:var(--sunken);border-radius:var(--r-sm)}.skeleton-brand{width:92px;height:26px}.skeleton-nav{width:168px;height:20px}.skeleton-title{width:min(320px,60%);height:26px;margin-bottom:var(--s5)}.skeleton-panel{border-radius:var(--r-lg);height:86px;margin-bottom:var(--s4)}.skeleton-label{width:44%;height:11px;margin-bottom:var(--s3)}.skeleton-value{width:62%;height:30px}.skeleton-chart{height:168px}.skeleton-row{height:15px;margin:var(--s3) 0}.skeleton-row:nth-child(3){width:88%}.skeleton-row:nth-child(4){width:71%}.skeleton-row:nth-child(5){width:80%}@media (prefers-reduced-motion:no-preference){.skeleton{animation:1.4s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.55}}}.amount-origin{color:var(--muted);text-align:right;margin-top:1px;font-size:.72rem;font-weight:500;display:block}.user-email{color:var(--muted);font-size:.72rem}.primary,.filter-button,.secondary-button,.small-button,.danger-button,.primary-link,.chat-suggestion,.chat-history-item{justify-content:center;align-items:center;gap:var(--s2);border-radius:var(--r-md);cursor:pointer;border:1px solid #0000;font-weight:650;line-height:1;text-decoration:none;display:inline-flex}@media (prefers-reduced-motion:no-preference){.primary,.filter-button,.secondary-button,.small-button,.danger-button,.primary-link,.chat-suggestion{transition:background-color .15s,border-color .15s,color .15s,transform 60ms}}.primary:active,.filter-button:active,.secondary-button:active,.small-button:active,.danger-button:active,.chat-suggestion:active{transform:translateY(1px)}.primary,.filter-button,.primary-link{background:var(--invert-bg);color:var(--invert-ink);padding:12px var(--s4);min-height:44px}.primary:hover:not(:disabled),.filter-button:hover:not(:disabled),.primary-link:hover{background:var(--green-strong);color:#fff}.primary-link{margin-top:var(--s3)}.secondary-button{border-color:var(--panel-border);color:var(--panel-ink);padding:11px var(--s3);background:0 0;min-height:44px;font-size:.82rem}.secondary-button:hover{border-color:var(--panel-ink)}.small-button{background:var(--invert-bg);color:var(--invert-ink);padding:10px var(--s3);min-height:38px;font-size:.82rem}.small-button:hover:not(:disabled){background:var(--green-strong);color:#fff}.danger-button{background:var(--danger-soft);color:var(--danger);padding:10px var(--s3);min-height:38px;font-size:.82rem}.danger-button:hover:not(:disabled){border-color:var(--danger)}.primary:disabled,.filter-button:disabled,.small-button:disabled,.danger-button:disabled,.chat-suggestion:disabled{opacity:.5;cursor:not-allowed;transform:none}.primary:disabled{cursor:wait}.text-button{color:var(--ink-secondary);cursor:pointer;padding:var(--s2) 0;background:0 0;border:0;font-weight:600}.text-button:hover{color:var(--danger)}.auth-shell,.empty-shell{place-items:center;min-height:100dvh;padding:20px;display:grid}.auth-card,.empty-card{background:var(--card);border:1px solid var(--line);border-radius:24px;width:min(440px,100%);padding:clamp(24px,8vw,42px)}.auth-card h1,.empty-card h1{margin-top:32px;font-size:2.2rem}.auth-card>p,.empty-card>p{color:var(--muted);line-height:1.55}.auth-form{gap:10px;margin-top:26px;display:grid}.auth-form label{color:var(--muted);font-size:.82rem}.auth-form input{border:1px solid var(--line);border-radius:12px;min-width:0;padding:13px}.provider-group{margin-top:28px}.provider-form{gap:10px;display:grid}.provider-button{width:100%;min-height:46px;padding:12px var(--s4);border:1px solid var(--line-strong);background:var(--card);color:var(--ink);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:10px;font-size:.9rem;font-weight:600;display:flex}.provider-button:hover:not(:disabled){background:var(--sunken);border-color:var(--ink-secondary)}.provider-button:disabled{opacity:.55;cursor:progress}.provider-mark{flex:none;width:18px;height:18px}.provider-divider{align-items:center;gap:var(--s3);margin:var(--s5) 0 0;color:var(--muted);font-size:.76rem;display:flex}.provider-divider:before,.provider-divider:after{content:"";background:var(--line);flex:1;height:1px}.auth-secondary{width:100%;min-height:46px;padding:12px var(--s4);border:1px solid var(--line-strong);background:var(--sunken);color:var(--ink);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;display:flex}.auth-secondary:hover:not(:disabled){border-color:var(--ink-secondary)}.auth-secondary:disabled{opacity:.55;cursor:progress}.detail-list{margin:var(--s3) 0 0;gap:14px;display:grid}.detail-list>div{gap:2px;display:grid}.detail-list dt{color:var(--muted);font-size:.76rem}.detail-list dd{margin:0;font-weight:600}.hint{color:var(--muted);margin:var(--s4) 0 0;font-size:.78rem;line-height:1.5}.danger-zone{border-color:var(--danger-mark)}.danger-zone>p{max-width:68ch;color:var(--ink-secondary);font-size:.88rem;line-height:1.6}.label-danger{color:var(--danger)}.delete-form{margin-top:var(--s4);gap:10px;max-width:420px;display:grid}.delete-form label{color:var(--muted);font-size:.82rem}.delete-form label strong{color:var(--ink);font-weight:600}.delete-form input{border:1px solid var(--line-strong);background:var(--card);color:var(--ink);border-radius:12px;min-width:0;padding:12px}.delete-actions{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.delete-actions .danger-button:disabled{opacity:.5;cursor:not-allowed}.header .user-email{text-decoration:none}.header .user-email:hover{color:var(--ink)}.header .user-email[aria-current=page]{color:var(--green)}.auth-switch{justify-content:space-between;gap:var(--s3);margin-top:var(--s2);flex-wrap:wrap;display:flex}.text-link{color:var(--green);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:.82rem;font-weight:600;text-decoration:underline}.text-link:hover{color:var(--green-strong)}.password-form{margin-top:var(--s3);max-width:380px}.card>.small-button{margin-top:var(--s4)}.form-error{color:var(--danger);font-size:.84rem}.form-success{color:var(--green);font-size:.84rem}.empty-card{text-align:center}.empty-card .primary{width:100%;margin:14px 0}.empty-icon{background:var(--green-soft);width:56px;height:56px;color:var(--green);border-radius:50%;place-items:center;margin:32px auto 0;font-size:1.5rem;display:grid}.privacy-note{font-size:.78rem}.centered-card{margin:32px auto}.banking-card{background:var(--panel-bg);color:var(--panel-ink);border-radius:var(--r-lg);padding:var(--s4) var(--s5);margin-bottom:var(--s4);box-shadow:var(--shadow-md)}.banking-head{justify-content:space-between;align-items:center;gap:20px;display:flex}.banking-head>div{align-items:center;gap:10px;display:flex}.banking-head h2{margin:0;font-size:1rem}.banking-card>p,.banking-card small{color:var(--panel-muted);font-size:.82rem}.banking-card>p{margin:var(--s3) 0 0}.sandbox-badge{background:var(--green-soft);color:var(--green);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:4px 7px;font-size:.65rem;font-weight:800}.bank-list{margin:var(--s3) 0 0;gap:2px;padding:0;list-style:none;display:grid}.bank-row{border-top:1px solid color-mix(in srgb, var(--panel-ink) 14%, transparent);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.bank-identity{gap:3px;min-width:0;display:grid}.bank-identity strong{font-size:.92rem}.bank-identity small{display:block}.bank-row-actions{flex-shrink:0;gap:9px;display:flex}.bank-row-actions form{display:flex}.sync-control{text-align:center;gap:5px;display:grid}.sync-control small{max-width:220px;color:var(--panel-muted);font-size:.72rem}.secondary-button{border:1px solid var(--panel-border);border-radius:var(--r-md);padding:11px var(--s3);color:var(--panel-ink);cursor:pointer;background:0 0;align-items:center;font-size:.82rem;font-weight:650;text-decoration:none;display:inline-flex}.bank-error{color:var(--danger)!important}.card-heading a,.empty a{color:var(--green);font-size:.84rem;font-weight:650;text-decoration:none}.card-heading{justify-content:space-between;align-items:center;display:flex}.budget-filters{grid-template-columns:1fr 1fr auto;gap:10px;margin-bottom:18px;display:grid}.budget-filters input,.budget-filters select{border:1px solid var(--line);background:var(--card);border-radius:12px;min-width:0;padding:11px}.budget-list{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.add-budget-card{gap:var(--s5);background:var(--green-soft);border:1px solid var(--green-border);border-radius:var(--r-lg);padding:var(--s5);margin-bottom:var(--s4);grid-template-columns:minmax(180px,.75fr) 2fr;display:grid}.add-budget-card h2{margin:3px 0 5px;font-size:1.25rem}.add-budget-card p{color:var(--muted);margin:0;font-size:.84rem;line-height:1.45}.add-budget-form{grid-template-columns:1.3fr .65fr 1fr auto;align-items:end;gap:10px;display:grid}.add-budget-form label{color:var(--muted);gap:5px;font-size:.75rem;display:grid}.add-budget-form select,.add-budget-form input{border:1px solid var(--green-border);background:var(--card);width:100%;min-width:0;color:var(--ink);border-radius:10px;padding:10px}.budget-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4);box-shadow:var(--shadow-sm)}.budget-head,.budget-stats,.budget-actions,.budget-actions form,.budget-summary,.budget-summary div{justify-content:space-between;align-items:center;gap:10px;display:flex}.budget-head div{gap:4px;display:grid}.budget-head span,.budget-stats,.budget-summary small{color:var(--muted);font-size:.78rem}.budget-progress{background:var(--sunken);border-radius:var(--r-pill);height:7px;margin:var(--s4) 0;overflow:hidden}.budget-progress span{background:var(--green);border-radius:inherit;height:100%;display:block}.budget-stats span{gap:3px;display:grid}.budget-stats span:last-child{text-align:right}.budget-stats strong{color:var(--ink);font-size:.92rem}.budget-actions{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.budget-actions form:first-child{flex:1}.budget-actions input{border:1px solid var(--line);border-radius:10px;width:100%;min-width:0;padding:9px}.small-button,.danger-button{cursor:pointer;border:0;border-radius:10px;padding:9px 11px;font-weight:650}.small-button{background:var(--invert-bg);color:var(--invert-ink)}.danger-button{background:var(--danger-soft);color:var(--danger)}.budget-summary{border-bottom:1px solid var(--line);padding:11px 0}.budget-summary:last-child{border-bottom:0}.budget-summary div{flex-direction:column;align-items:flex-end;gap:2px}.budget-warning .budget-progress span{background:var(--warn-mark)}.budget-warning .budget-head b,.budget-summary.budget-warning strong{color:var(--warn)}.budget-over{border-color:var(--danger-mark)}.budget-over .budget-progress span{background:var(--danger-mark)}.budget-over .budget-head b,.budget-summary.budget-over strong{color:var(--danger)}.categorization-callout{border:1px solid var(--green-border);border-radius:var(--r-md);background:var(--green-soft);color:var(--ink);justify-content:space-between;gap:16px;margin-bottom:18px;padding:14px 16px;font-size:.86rem;text-decoration:none;display:flex}.categorization-callout b{color:var(--green)}.alerts{gap:8px;margin-bottom:18px;display:grid}.alert{border:1px solid var(--danger-mark);border-radius:var(--r-md);background:var(--danger-soft);color:var(--ink);align-items:center;gap:12px;padding:12px 14px;font-size:.86rem;text-decoration:none;display:flex}.alert-mark{background:var(--danger-mark);color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:.78rem;font-weight:700;line-height:1;display:grid}.alert-text{gap:2px;min-width:0;display:grid}.alert-text strong{letter-spacing:.02em;font-size:.8rem}.alert-text span{color:var(--muted)}.alert-go{color:var(--muted);flex:none;margin-left:auto}.alert:hover .alert-go{color:var(--ink)}.budget-habit{color:var(--muted);margin:6px 0 0;font-size:.76rem;line-height:1.45}.budget-habit-tight{color:var(--warn)}.add-budget-hint{color:var(--muted);grid-column:1/-1;margin:0;font-size:.74rem}.categorization-hero{border-radius:var(--r-lg);background:var(--panel-bg);color:var(--panel-ink);justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;padding:22px;display:flex}.categorization-hero strong{font-size:2.4rem;line-height:1;display:block}.categorization-hero p{margin:var(--s1) 0 0;color:var(--panel-muted)}.summary-banner{background:var(--green-soft);border-radius:12px;padding:12px 14px}.merchant-corrections{display:grid}.merchant-correction{border-bottom:1px solid var(--line);grid-template-columns:1fr minmax(160px,.5fr) auto;align-items:center;gap:12px;padding:12px 0;display:grid}.merchant-correction:last-child{border-bottom:0}.merchant-correction span{gap:3px;min-width:0;display:grid}.merchant-correction small{color:var(--muted)}.merchant-correction select{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);min-width:0;padding:9px}.categorization-section,.audit-report{margin-top:18px}.categorization-section h2,.audit-report h2{margin:3px 0 0;font-size:1.15rem}.categorization-filters{grid-template-columns:1.5fr 1fr 1fr;gap:10px;margin:18px 0 8px;display:grid}.categorization-filters input,.categorization-filters select,.classification-form select{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);width:100%;min-width:0;color:var(--ink);padding:10px}.merchant-list,.rules-list,.audit-results{display:grid}.merchant-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(180px,1.2fr) minmax(160px,.8fr) minmax(360px,1.4fr);align-items:center;gap:14px;padding:14px 0;display:grid}.merchant-row:last-child,.rule-row:last-child,.audit-result:last-child{border-bottom:0}.merchant-row-copy,.merchant-classification,.rule-row>div,.audit-result>div{gap:3px;min-width:0;display:grid}.merchant-row small,.rule-row small,.audit-result small{color:var(--muted);overflow-wrap:anywhere;font-size:.75rem}.classification-form{grid-template-columns:1fr 1fr auto;align-items:center;gap:8px;display:grid}.rule-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,1fr) auto auto minmax(340px,1.5fr);align-items:center;gap:14px;padding:14px 0;display:grid}.rule-dates{min-width:145px}.rule-actions{grid-column:1/-1;justify-content:flex-end;flex-direction:row!important;gap:12px!important;display:flex!important}.audit-metrics{grid-template-columns:repeat(5,1fr);gap:10px;margin:18px 0;display:grid}.audit-metrics div{border:1px solid var(--line);background:var(--paper);border-radius:12px;gap:4px;padding:12px;display:grid}.audit-metrics span{color:var(--muted);font-size:.72rem}.audit-metrics strong{font-size:1.3rem}.audit-result{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:16px;padding:12px 0;display:grid}@media (max-width:720px){.shell{padding-top:18px;padding-bottom:84px}.header{gap:var(--s3)}.main-nav{z-index:20;background:var(--card);border-top:1px solid var(--line);padding:var(--s1) var(--s2) calc(var(--s1) + env(safe-area-inset-bottom));justify-content:space-around;gap:0;position:fixed;inset:auto 0 0;box-shadow:0 -2px 14px -8px #17211b4d}.main-nav a{min-height:44px;padding:0 var(--s2);border-radius:var(--r-sm);align-items:center;font-size:.74rem;display:flex}.main-nav .nav-long{display:none}.main-nav .nav-short{display:inline}.main-nav a[aria-current=page],.main-nav a[aria-current=page]:hover{background:var(--green-soft);color:var(--green)}.balance-row{gap:var(--s1) var(--s3);grid-template-columns:1fr auto}.balance-row .balance-name{grid-column:1}.balance-row strong{grid-area:1/2}.balance-row .balance-secondary{grid-column:1/-1}.balance-row .balance-secondary:empty{display:none}.chat-thread{max-height:52vh;padding:var(--s3)}.chat-message{max-width:88%}.chat-suggestion,.chat-history-item{align-items:center;min-height:44px;display:inline-flex}.chat-form input{padding:13px var(--s3)}.trend-bars{gap:var(--s1);min-height:130px}.trend-column{height:84px}.trend-value{font-size:.64rem}.filters{grid-template-columns:1fr 1fr}.filter-button{grid-column:1/-1}.budget-list{grid-template-columns:1fr}.add-budget-card{grid-template-columns:1fr;gap:16px}.add-budget-form{grid-template-columns:1fr 1fr}.add-budget-form label:first-child,.add-budget-form .primary{grid-column:1/-1}.budget-filters{grid-template-columns:1fr 1fr}.budget-filters .filter-button{grid-column:1/-1}.header{gap:var(--s3);flex-wrap:wrap}.main-nav{scrollbar-width:none;order:3;width:100%;padding-bottom:2px;overflow-x:auto}.main-nav::-webkit-scrollbar{display:none}.header-account{margin-left:auto}.header-account .user-email{max-width:130px}.banking-head{flex-direction:column;align-items:stretch;gap:12px}.banking-head .primary,.banking-head .secondary-button{justify-content:center;width:100%}.bank-row{flex-direction:column;align-items:stretch;gap:10px}.bank-row-actions .primary,.bank-row-actions .secondary-button,.bank-row-actions button{justify-content:center;width:100%}.secondary-button{justify-content:center}.categorization-callout,.categorization-hero{flex-direction:column;align-items:stretch}.merchant-correction{grid-template-columns:1fr auto}.merchant-correction span,.metric,.wide,.side{grid-column:1/-1}.metric{grid-column:span 6}.metric:first-of-type{grid-column:1/-1}.bar-row{grid-template-columns:92px 1fr auto}.categorization-filters,.merchant-row,.rule-row,.audit-result{grid-template-columns:1fr}.classification-form{grid-template-columns:1fr 1fr}.classification-form .small-button{grid-column:1/-1}.audit-metrics{grid-template-columns:1fr 1fr}.rule-actions{justify-content:stretch;flex-direction:column!important}.rule-actions form,.rule-actions button{width:100%}}@media (max-width:440px){.metric{grid-column:1/-1}}
