:root{--color-paper-0:#fff;--color-paper-50:#fdfcf8;--color-paper-100:#f6f4ef;--color-paper-150:#f1ebdf;--color-paper-200:#ece4d5;--color-paper-250:#f3efe6;--color-paper-300:#e6e1d6;--color-paper-400:#ddd3c1;--color-ink-400:#948b7c;--color-ink-600:#6b6255;--color-ink-900:#241f18;--color-forest-50:#e6ebe4;--color-forest-700:#33503f;--color-forest-800:#2f4a3a;--color-forest-900:#22362a;--color-cognac-50:#f0e4d6;--color-cognac-300:#c9926a;--color-cognac-700:#8a5a34;--color-cognac-800:#5a3a22;--color-cognac-900:#33261c;--color-brass-50:#f2e9d4;--color-brass-300:#c9ab72;--color-brass-600:#a97f2e;--color-brass-700:#856424;--color-brass-900:#332b1b;--color-brick-50:#f3ded8;--color-brick-300:#df9480;--color-brick-400:#f2755b;--color-brick-700:#a8432f;--color-brick-800:#7c2c1e;--color-brick-900:#3a2320;--color-sage-100:#c5ddcc;--color-sage-300:#9cbca5;--color-sage-700:#3b493f;--color-sage-900:#233229;--color-sage-950:#142019;--color-night-500:#2d3932;--color-night-600:#2c3830;--color-night-700:#26302a;--color-night-750:#212b25;--color-night-800:#1a221d;--color-night-900:#121814;--color-night-950:#101512;--color-night-975:#0f1411;--color-fog-100:#e4ddd0;--color-fog-300:#aba493;--color-fog-500:#8b8576;--color-alpha-white-06:#ffffff0f;--color-alpha-white-10:#ffffff1a;--color-alpha-white-12:#ffffff1f;--color-alpha-white-60:#fff9;--color-alpha-black-08:#00000014;--color-alpha-black-40:#0006;--color-alpha-black-50:#00000080;--color-alpha-ink-28:#241f1847;--color-alpha-ink-30:#241f184d;--color-alpha-paper-45:#f6f4ef73;--color-alpha-night-70:#121814b3;--color-alpha-umber-07:#785f3c12;--color-alpha-umber-16:#785f3c29;--color-alpha-umber-18:#785f3c2e;--color-alpha-umber-shadow:#3c28144d;--color-alpha-white-08:#ffffff14;--color-alpha-white-20:#fff3;--color-alpha-black-35:#00000059;--color-alpha-black-85:#000000d9;--color-hue-green-light:#287c42;--color-hue-green-dark:#519962;--color-hue-plum-light:#875093;--color-hue-plum-dark:#9d6aa9;--color-hue-copper-light:#b66b31;--color-hue-copper-dark:#c27c4a;--color-hue-teal-light:#009c9c;--color-hue-teal-dark:#00a0a1;--color-hue-gold-light:#a88a30;--color-hue-gold-dark:#ae8e38;--color-hue-blue-light:#3275b4;--color-hue-blue-dark:#528dc9;--color-hue-rose-light:#b5596a;--color-hue-rose-dark:#be6877;--color-hue-indigo-light:#555ba8;--color-hue-indigo-dark:#6b71cb;--color-hue-olive-light:#6b7d2a;--color-hue-olive-dark:#819144;--color-hue-sand-light:#8c7a4f;--color-hue-sand-dark:#a38b56;--color-hue-slate-light:#5b6b7c;--color-hue-slate-dark:#72869b;--color-hue-cocoa-light:#7a5640;--color-hue-cocoa-dark:#b08a70;--font-family-body:"Work Sans", system-ui, sans-serif;--font-family-heading:Manrope, system-ui, sans-serif;--font-family-display:Fraunces, Georgia, serif;--font-size-2xs:11px;--font-size-xs:12px;--font-size-sm:13px;--font-size-md:14px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:20px;--font-size-3xl:24px;--font-size-4xl:28px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-14:14px;--space-16:16px;--space-20:20px;--space-24:24px;--space-28:28px;--space-32:32px;--space-40:40px;--space-48:48px;--space-64:64px;--radius-xs:6px;--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--radius-xl:14px;--radius-pill:999px;--radius-card:32px;--radius-card-small:20px;--color-bg:var(--color-paper-100);--color-surface:var(--color-paper-50);--color-border:var(--color-paper-300);--color-hover:var(--color-paper-200);--color-text:var(--color-ink-900);--color-text-dim:var(--color-ink-600);--color-text-faint:var(--color-ink-400);--color-accent:var(--color-forest-700);--color-accent-soft:var(--color-forest-50);--color-accent-text:var(--color-forest-900);--color-income:var(--color-forest-700);--color-income-soft:var(--color-forest-50);--color-expense:var(--color-cognac-700);--color-expense-soft:var(--color-cognac-50);--color-caution:var(--color-cognac-700);--color-caution-soft:var(--color-cognac-50);--color-rebate:var(--color-brass-700);--color-rebate-soft:var(--color-brass-50);--color-danger:var(--color-brick-700);--color-danger-soft:var(--color-brick-50);--color-on-accent:var(--color-paper-50);--color-overlay:var(--color-alpha-paper-45);--color-shadow:var(--color-alpha-ink-28);--color-hover-glass:var(--color-alpha-white-60);--color-swatch-edge:var(--color-alpha-black-08);--color-glow-1:var(--color-forest-700);--color-glow-2:var(--color-cognac-700);--color-on-danger:var(--color-paper-50);--color-selected:var(--color-forest-50);--color-card-face-hi:var(--color-paper-0);--color-card-face-lo:var(--color-paper-150);--color-card-edge:var(--color-alpha-umber-16);--color-card-highlight:var(--color-paper-0);--color-card-shade:var(--color-alpha-umber-07);--color-card-wall:var(--color-paper-400);--color-card-wall-line:var(--color-alpha-umber-18);--color-card-shadow:var(--color-alpha-umber-shadow);--color-category-green:var(--color-hue-green-light);--color-category-plum:var(--color-hue-plum-light);--color-category-copper:var(--color-hue-copper-light);--color-category-teal:var(--color-hue-teal-light);--color-category-gold:var(--color-hue-gold-light);--color-category-blue:var(--color-hue-blue-light);--color-category-rose:var(--color-hue-rose-light);--color-category-indigo:var(--color-hue-indigo-light);--color-category-olive:var(--color-hue-olive-light);--color-category-sand:var(--color-hue-sand-light);--color-category-slate:var(--color-hue-slate-light);--color-category-cocoa:var(--color-hue-cocoa-light);--color-progress-calm:var(--color-forest-700);--color-progress-warm:var(--color-brass-600);--color-progress-over:var(--color-brick-700);--color-progress-overflow:var(--color-brick-800);--color-flow-glass:var(--color-paper-250);--color-flow-savings:var(--color-forest-700);--color-flow-kept:var(--color-brass-600)}:root[data-theme=dark]{--color-bg:var(--color-night-900);--color-surface:var(--color-night-800);--color-border:var(--color-night-600);--color-hover:var(--color-night-700);--color-text:var(--color-fog-100);--color-text-dim:var(--color-fog-300);--color-text-faint:var(--color-fog-500);--color-accent:var(--color-sage-300);--color-accent-soft:var(--color-sage-900);--color-accent-text:var(--color-sage-100);--color-income:var(--color-sage-300);--color-income-soft:var(--color-sage-900);--color-expense:var(--color-cognac-300);--color-expense-soft:var(--color-cognac-900);--color-caution:var(--color-cognac-300);--color-caution-soft:var(--color-cognac-900);--color-rebate:var(--color-brass-300);--color-rebate-soft:var(--color-brass-900);--color-danger:var(--color-brick-300);--color-danger-soft:var(--color-brick-900);--color-on-accent:var(--color-sage-950);--color-overlay:var(--color-alpha-night-70);--color-shadow:var(--color-alpha-black-50);--color-hover-glass:var(--color-alpha-white-06);--color-swatch-edge:var(--color-alpha-white-12);--color-glow-1:var(--color-forest-800);--color-glow-2:var(--color-cognac-800);--color-on-danger:var(--color-night-900);--color-selected:var(--color-sage-700);--color-card-face-hi:var(--color-night-500);--color-card-face-lo:var(--color-night-950);--color-card-edge:var(--color-alpha-white-08);--color-card-highlight:var(--color-alpha-white-20);--color-card-shade:var(--color-alpha-black-35);--color-card-wall:var(--color-night-975);--color-card-wall-line:var(--color-alpha-white-10);--color-card-shadow:var(--color-alpha-black-85);--color-category-green:var(--color-hue-green-dark);--color-category-plum:var(--color-hue-plum-dark);--color-category-copper:var(--color-hue-copper-dark);--color-category-teal:var(--color-hue-teal-dark);--color-category-gold:var(--color-hue-gold-dark);--color-category-blue:var(--color-hue-blue-dark);--color-category-rose:var(--color-hue-rose-dark);--color-category-indigo:var(--color-hue-indigo-dark);--color-category-olive:var(--color-hue-olive-dark);--color-category-sand:var(--color-hue-sand-dark);--color-category-slate:var(--color-hue-slate-dark);--color-category-cocoa:var(--color-hue-cocoa-dark);--color-progress-calm:var(--color-sage-300);--color-progress-warm:var(--color-brass-300);--color-progress-over:var(--color-brick-300);--color-progress-overflow:var(--color-brick-400);--color-flow-glass:var(--color-night-750);--color-flow-savings:var(--color-sage-300);--color-flow-kept:var(--color-brass-300)}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--color-text);background:var(--color-bg);font:16px/1.5 var(--font-family-body);font-variant-numeric:tabular-nums;-webkit-tap-highlight-color:transparent;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{min-height:100svh;margin:0}h1,h2,h3{font-family:var(--font-family-display);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.card{border-radius:var(--radius-card);background:linear-gradient(160deg, var(--color-card-face-hi) 0%, var(--color-surface) 45%, var(--color-card-face-lo) 100%);border:1px solid var(--color-card-edge);box-shadow:inset 0 1px 0 var(--color-card-highlight), inset 0 -1px 0 var(--color-card-shade), 0 4px 0 var(--color-card-wall), 0 5px 0 var(--color-card-wall-line), 0 16px 28px -16px var(--color-card-shadow);position:relative;overflow:hidden}.coin{aspect-ratio:1;box-sizing:border-box;text-align:center;background:radial-gradient(circle at 32% 24%, var(--color-card-face-hi) 0%, var(--color-surface) 52%, var(--color-card-face-lo) 100%);border:1px solid var(--color-card-edge);box-shadow:inset 0 1px 0 var(--color-card-highlight), inset 0 -1px 0 var(--color-card-shade), 0 4px 0 var(--color-card-wall), 0 5px 0 var(--color-card-wall-line), 0 16px 28px -16px var(--color-card-shadow);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;overflow:hidden;container-type:inline-size}.coin.coin-rebate{background:radial-gradient(circle at 32% 24%, color-mix(in srgb, var(--color-rebate-soft) 45%, var(--color-card-face-hi)) 0%, color-mix(in srgb, var(--color-rebate-soft) 55%, var(--color-surface)) 52%, color-mix(in srgb, var(--color-rebate-soft) 45%, var(--color-card-face-lo)) 100%)}.card.card-small{border-radius:var(--radius-card-small)}.keep-alive-group{position:relative}.keep-alive.is-hidden{visibility:hidden;pointer-events:none;height:0;position:absolute;top:0;left:0;right:0;overflow:hidden}.select-wrap{position:relative}.select-trigger{align-items:center;gap:var(--space-8);width:100%;padding:var(--space-8) var(--space-12);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;text-align:left;transition:border-color 50ms;display:flex}.select-trigger:hover{border-color:var(--color-text-faint)}.select-trigger:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.select-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:27px;height:27px;display:flex}.select-dot{width:9px;height:9px;margin:0 var(--space-8);border-radius:50%;flex-shrink:0}.select-label{font-family:var(--font-family-heading);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);flex:1}.select-chevron{color:var(--color-text-faint);flex-shrink:0}.select-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 8px 24px -12px var(--color-shadow);padding:var(--space-6);gap:var(--space-2);overscroll-behavior:contain;flex-direction:column;max-height:min(400px,60vh);display:flex;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.select-panel.opens-up{top:auto;bottom:calc(100% + 6px)}.select-option{align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-8);border-radius:var(--radius-sm);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;border-left:3px solid #0000;transition:background-color 50ms;display:flex}.select-option:hover{background:var(--color-hover)}.select-option.selected{border-left-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-text)}.select-option.selected:hover{background:var(--color-accent-soft)}.select-option-label{font-family:var(--font-family-heading);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md)}.date-input-row{align-items:center;gap:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding-left:var(--space-10);transition:border-color 50ms,background-color 50ms;display:flex}.date-input-row:hover{background:var(--color-bg);border-color:var(--color-text-faint)}.date-input-row:focus-within{border-color:var(--color-accent)}.date-text-input{min-width:0;padding:var(--space-8) 0;font-size:var(--font-size-md);color:var(--color-text);background:0 0;border:none;flex-grow:1;width:auto;font-family:inherit}.date-text-input:focus{outline:none}.cal-icon{width:30px;height:30px;color:var(--color-text-faint);pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.cal-panel{padding:var(--space-10);width:232px}.cal-header{margin-bottom:var(--space-8);padding:0 var(--space-2);justify-content:space-between;align-items:center;display:flex}.cal-nav{border-radius:var(--radius-xs);cursor:pointer;width:26px;height:26px;color:var(--color-text-dim);background:0 0;border:none;justify-content:center;align-items:center;transition:background-color 50ms,color 50ms;display:flex}.cal-nav:hover{background:var(--color-bg);color:var(--color-text)}.cal-label-btn{cursor:pointer;align-items:center;gap:var(--space-4);font-family:var(--font-family-heading);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--color-text);padding:var(--space-4) var(--space-6);border-radius:var(--radius-xs);background:0 0;border:none;transition:background-color 50ms;display:flex}.cal-label-btn:hover{background:var(--color-bg)}.cal-label-btn .chevron{color:var(--color-text-faint)}.cal-weekdays{margin-bottom:var(--space-4);grid-template-columns:repeat(7,1fr);display:grid}.cal-weekdays span{text-align:center;font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);color:var(--color-text-faint);text-transform:uppercase}.cal-grid{gap:var(--space-2);grid-template-columns:repeat(7,1fr);display:grid}.cal-day{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text);justify-content:center;align-items:center;transition:background-color 50ms,color 50ms;display:flex}.cal-day:hover{background:var(--color-hover)}.cal-day.blank{cursor:default;pointer-events:none}.cal-day.selected{background:var(--color-accent);color:var(--color-on-accent);font-weight:var(--font-weight-bold)}.cal-day.selected:hover{background:var(--color-accent)}.cal-year-row{justify-content:center;align-items:center;gap:var(--space-16);margin-bottom:var(--space-8);display:flex}.cal-year-label{font-family:var(--font-family-heading);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--color-text);text-align:center;min-width:40px}.cal-month-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.cal-month-cell{padding:var(--space-8) var(--space-4);text-align:center;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text);transition:background-color 50ms,color 50ms}.cal-month-cell:hover{background:var(--color-hover)}.cal-month-cell.selected{background:var(--color-accent);color:var(--color-on-accent);font-weight:var(--font-weight-bold)}.cal-month-cell.selected:hover{background:var(--color-accent)}.overlay-backdrop{background:var(--color-overlay);-webkit-backdrop-filter:blur(14px)saturate(115%);backdrop-filter:blur(14px)saturate(115%);padding:var(--space-24);z-index:50;overscroll-behavior:contain;display:flex;position:fixed;inset:0;overflow-y:auto}.overlay-backdrop>*{margin:auto}.modal-card{width:400px;max-width:100%;padding:var(--space-24);position:relative;overflow:visible}.modal-card h2{font-size:var(--font-size-xl);margin:0 0 var(--space-4);padding-right:var(--space-32)}.modal-card .hint{font-size:var(--font-size-sm);color:var(--color-text-dim);margin:0 0 var(--space-20)}.modal-close{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:8px;right:8px}.modal-close:hover{background:var(--color-hover-glass);color:var(--color-text)}.modal-card .field{margin-bottom:var(--space-14)}.modal-card .field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-dim);margin-bottom:var(--space-6);text-transform:uppercase;letter-spacing:.04em;display:block}.modal-card .field>input{width:100%;padding:var(--space-8) var(--space-12);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit}.modal-card .field>input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.modal-card .field.money{position:relative}.modal-card .field.money .prefix{color:var(--color-text-faint);font-size:var(--font-size-md);position:absolute;top:33px;left:11px}.modal-card .field.money>input{padding-left:var(--space-24)}.modal-error{margin:0 0 var(--space-12);font-size:var(--font-size-sm);color:var(--color-danger)}.modal-footer{gap:var(--space-10);margin-top:var(--space-6);display:flex}.btn-secondary{align-items:center;gap:var(--space-6);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-10) var(--space-16);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text-dim);cursor:pointer;display:inline-flex}.btn-primary{background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-md);padding:var(--space-10) var(--space-16);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);cursor:pointer;border:none;flex-grow:1}.btn-primary:disabled{opacity:.6;cursor:default}.modal-card .form-note{font-size:var(--font-size-xs);color:var(--color-text-faint);margin-top:var(--space-10);text-align:center}.unusual-confirm p{margin:0 0 var(--space-12);padding:var(--space-10) var(--space-12);border-radius:var(--radius-md);background:var(--color-caution-soft);color:var(--color-text);font-size:var(--font-size-md);line-height:1.45}.account-menu{position:relative}.account-menu-panel{top:calc(100% + var(--space-8));z-index:40;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:220px;box-shadow:0 8px 24px -12px var(--color-shadow);padding:var(--space-6);position:absolute;right:0}.account-menu-who{padding:var(--space-8) var(--space-10) var(--space-10);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border);flex-direction:column;min-width:0;display:flex}.account-menu-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);color:var(--color-text)}.account-menu-email{font-size:var(--font-size-sm);color:var(--color-text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-menu-item{align-items:center;gap:var(--space-10);width:100%;font:inherit;font-size:var(--font-size-md);color:var(--color-text);text-align:left;padding:var(--space-8) var(--space-10);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;transition:background 50ms;display:flex}.account-menu-item:hover,.account-menu-item:focus-visible{background:var(--color-hover);outline:none}.sliding-pill{z-index:0;pointer-events:none;position:absolute;top:0;left:0}.sliding-pill>span{height:calc(var(--pill-h,0) * 1px);background:var(--color-selected);will-change:transform;transition:opacity .15s;position:absolute;top:0;left:0}.sliding-pill-cap{width:calc(var(--pill-h,0) * 1px);border-radius:50%}.sliding-pill-middle{transform-origin:0 0;width:1px}.app-shell{min-height:100svh;position:relative;overflow-x:hidden}.bg-blob{filter:blur(100px);opacity:.56;z-index:0;pointer-events:none;border-radius:50%;width:560px;height:560px;position:fixed}.bg-blob-accent{background:var(--color-glow-1);animation:17s ease-in-out infinite drift-accent;top:-160px;left:-160px}.bg-blob-warn{background:var(--color-glow-2);animation:21s ease-in-out infinite drift-warn;bottom:-160px;right:-160px}@keyframes drift-accent{0%,to{transform:translate(0)scale(1)}50%{transform:translate(60px,40px)scale(1.15)}}@keyframes drift-warn{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-50px,-60px)scale(1.1)}}@media (prefers-reduced-motion:reduce){.bg-blob-accent,.bg-blob-warn{animation:none}}.app-content{z-index:1;max-width:1200px;padding:var(--space-24) var(--space-16) var(--space-64);margin:0 auto;position:relative}.topbar{justify-content:space-between;align-items:center;gap:var(--space-16);margin-bottom:var(--space-28);display:flex}.brand{align-items:center;gap:var(--space-10);display:flex}.brand-mark{border-radius:var(--radius-md);background:var(--color-accent);width:30px;height:30px;color:var(--color-on-accent);font-family:var(--font-family-heading);font-weight:var(--font-weight-extrabold);font-size:var(--font-size-lg);justify-content:center;align-items:center;display:flex}.brand-name{font-family:var(--font-family-heading);font-weight:var(--font-weight-bold);font-size:var(--font-size-lg)}.topnav{gap:var(--space-4);display:flex;position:relative}.topnav a{z-index:1;color:var(--color-text-dim);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);padding:var(--space-8) var(--space-14);border-radius:var(--radius-pill);text-decoration:none;transition:color .2s;position:relative}.topnav a.active{color:var(--color-accent-text)}.topnav a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.topbar-right{align-items:center;gap:var(--space-12);display:flex}.btn-add-slot{flex-shrink:0;justify-content:flex-end;width:234px;display:flex}.btn-add{background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-pill);box-sizing:border-box;height:50px;padding:0 var(--space-12);box-shadow:0 8px 20px -10px var(--color-shadow);cursor:pointer;border:none;align-items:center;max-width:50px;transition:max-width .6s;display:inline-flex;overflow:hidden}.btn-add:hover,.btn-add:focus-visible{max-width:234px}.btn-add-icon{flex-shrink:0;display:flex}.btn-add-label{margin-left:var(--space-8);opacity:0;white-space:nowrap;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);transition:opacity .25s}.btn-add:hover .btn-add-label,.btn-add:focus-visible .btn-add-label{opacity:1;transition:opacity .4s .18s}.avatar{background:var(--color-surface);border:1px solid var(--color-border);width:32px;height:32px;font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-dim);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:border-color 50ms;display:flex}.avatar:hover{border-color:var(--color-text-faint)}@media (width<=640px){.topbar{gap:var(--space-8)}.brand-name{display:none}.topnav a{padding:var(--space-8) var(--space-8);font-size:var(--font-size-sm)}.btn-add-slot{width:40px}.btn-add{justify-content:center;width:40px;max-width:40px;height:40px;padding:0}.btn-add:hover,.btn-add:focus-visible{max-width:40px}.btn-add-label{display:none}}.auth-screen{min-height:100svh;padding:var(--space-24);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.auth-card{z-index:1;width:100%;max-width:380px;padding:var(--space-32);gap:var(--space-20);flex-direction:column;display:flex;position:relative}.auth-brand{align-items:center;gap:var(--space-10);flex-direction:column;display:flex}.auth-brand .brand-mark{border-radius:var(--radius-xl);width:48px;height:48px;font-size:var(--font-size-3xl)}.auth-brand h1{font-size:var(--font-size-2xl)}.auth-card form{gap:var(--space-4);flex-direction:column;display:flex}.auth-card .field{margin-bottom:var(--space-14)}.auth-card .field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-dim);margin-bottom:var(--space-6);text-transform:uppercase;letter-spacing:.04em;display:block}.auth-card .field>input{width:100%;padding:var(--space-10) var(--space-12);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit}.auth-card .field>input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.auth-card .field-row{gap:var(--space-12);grid-template-columns:1fr 1fr;display:grid}.field-error{margin:var(--space-6) 0 0;font-size:var(--font-size-xs);color:var(--color-danger)}.auth-error{margin:0 0 var(--space-4);font-size:var(--font-size-md);color:var(--color-danger);text-align:center}.auth-card .btn-primary{margin-top:var(--space-6)}.auth-toggle{font:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-dim);cursor:pointer;background:0 0;border:none;align-self:center;padding:0;text-decoration:underline}.color-picker-swatch{border:1px solid var(--color-swatch-edge);border-radius:50%;flex-shrink:0;width:20px;height:20px}.color-picker-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:240px;max-width:calc(100vw - 24px);box-shadow:0 8px 24px -12px var(--color-shadow);padding:var(--space-10);position:absolute;top:calc(100% + 6px);right:0}.color-picker-grid{gap:var(--space-8);grid-template-columns:repeat(auto-fill,minmax(28px,1fr));display:grid}.color-picker-option{cursor:pointer;border:2px solid #0000;border-radius:50%;width:26px;height:26px;padding:0}.color-picker-option:hover{transform:scale(1.1)}.color-picker-option.selected{border-color:var(--color-text);box-shadow:0 0 0 2px var(--color-surface) inset}.color-picker-custom{margin-top:var(--space-10);padding-top:var(--space-10);border-top:1px solid var(--color-border)}.color-picker-custom-label{font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-6);display:block}.color-picker-custom-row{align-items:center;gap:var(--space-6);display:flex}.color-picker-native{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex-shrink:0;width:30px;height:30px;padding:0}.color-picker-native::-webkit-color-swatch-wrapper{padding:var(--space-2)}.color-picker-native::-webkit-color-swatch{border-radius:var(--radius-xs);border:none}.color-picker-hex-input{min-width:0;padding:var(--space-8) var(--space-8);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);flex:1}.color-picker-hex-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.color-picker-apply{padding:var(--space-8) var(--space-10);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-on-accent);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);cursor:pointer;border:none;flex-shrink:0}.color-picker-error{margin:var(--space-6) 0 0;font-size:var(--font-size-xs);color:var(--color-danger)}.color-picker-clear{width:100%;margin-top:var(--space-10);padding-top:var(--space-8);border:none;border-top:1px solid var(--color-border);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-dim);cursor:pointer;text-align:center;background:0 0;text-decoration:underline;display:block}.confirm-dialog{width:360px}.confirm-message{font-size:var(--font-size-md);color:var(--color-text-dim);margin:0 0 var(--space-20);line-height:1.45}.btn-danger{background:var(--color-danger);color:var(--color-on-danger);border-radius:var(--radius-md);padding:var(--space-10) var(--space-16);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);cursor:pointer;border:none;flex-grow:1}.btn-danger:hover{opacity:.92}.icon-picker-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:280px;max-width:calc(100vw - 24px);box-shadow:0 8px 24px -12px var(--color-shadow);padding:var(--space-10);position:absolute;top:calc(100% + 6px);right:0}.icon-picker-search{align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-10);margin-bottom:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-faint);display:flex}.icon-picker-search input{min-width:0;font:inherit;font-size:var(--font-size-sm);color:var(--color-text);background:0 0;border:none;outline:none;flex:1}.icon-picker-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(32px,1fr));max-height:220px;display:grid;overflow:hidden auto}.icon-picker-option{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-dim);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:background-color 50ms,border-color 50ms;display:flex}.icon-picker-option:hover{background:var(--color-hover)}.icon-picker-option.selected{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-text)}.icon-picker-empty{padding:var(--space-24) 0;text-align:center;font-size:var(--font-size-sm);color:var(--color-text-faint);margin:0}.icon-picker-actions{gap:var(--space-4);margin-top:var(--space-8);padding-top:var(--space-8);border-top:1px solid var(--color-border);display:flex}.icon-picker-clear{font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-dim);cursor:pointer;text-align:center;padding:var(--space-2) var(--space-4);background:0 0;border:none;flex:1;text-decoration:underline;display:block}.budget-status{color:var(--color-text-dim);padding:var(--space-24) var(--space-4)}.budget-error{margin:0 0 var(--space-12);font-size:var(--font-size-md);color:var(--color-danger)}.page-head{margin-bottom:var(--space-24)}.summary-row{gap:var(--space-12);margin-bottom:var(--space-20);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=560px){.summary-row{grid-template-columns:1fr 1fr}}.summary-tile{padding:var(--space-14) var(--space-16)}.summary-label{font-size:var(--font-size-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-faint);font-weight:var(--font-weight-bold);margin-bottom:var(--space-6)}.summary-value{font-family:var(--font-family-heading);font-size:var(--font-size-2xl);font-weight:var(--font-weight-extrabold)}.budget-layout{gap:var(--space-20);grid-template-columns:1fr 340px;align-items:start;display:grid}@media (width<=760px){.budget-layout{grid-template-columns:1fr}}.group{margin-bottom:var(--space-24)}.group-head{align-items:center;gap:var(--space-8);margin-bottom:var(--space-10);padding:0 var(--space-4);display:flex}.group-head .dot{border-radius:50%;width:8px;height:8px}.group-head h2{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-dim)}.group-head .count{font-size:var(--font-size-xs);color:var(--color-text-faint)}.cat-row{justify-content:space-between;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-16);border-bottom:1px solid var(--color-border);border-radius:var(--radius-md);transition:filter .15s,opacity .15s,background-color .15s;display:flex}.cat-row:last-child{border-bottom:none}.cat-row-editing{background:var(--color-accent-soft)}.unfocused{filter:blur(3px);opacity:.5;pointer-events:none}.cat-left{align-items:center;gap:var(--space-12);min-width:0;display:flex}.cat-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md)}.badge{font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);padding:var(--space-4) var(--space-8);border-radius:var(--radius-pill);white-space:nowrap}.cat-right{align-items:center;gap:var(--space-14);display:flex}.cat-budget{text-align:right}.cat-budget .amt{font-weight:var(--font-weight-bold);font-size:var(--font-size-md)}.cat-budget .sub{font-size:var(--font-size-2xs);color:var(--color-text-faint)}.no-budget{color:var(--color-text-faint);font-size:var(--font-size-sm)}.icon-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:all 50ms;display:flex}.icon-btn.danger:hover{background:var(--color-expense-soft);color:var(--color-danger)}.icon-btn.icon-btn-active,.icon-btn.icon-btn-active:hover{background:var(--color-accent);color:var(--color-on-accent)}.cancel-edit-btn{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;padding:var(--space-10);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-dim);cursor:pointer;margin-top:var(--space-8);background:0 0}.cancel-edit-btn:hover{background:var(--color-hover)}.panel{padding:var(--space-20);z-index:2;position:sticky;top:20px;overflow:visible}.panel h2{font-size:var(--font-size-lg);margin-bottom:var(--space-4)}.panel .hint{font-size:var(--font-size-sm);color:var(--color-text-dim);margin:0 0 var(--space-16)}.field{margin-bottom:var(--space-14)}.field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-dim);margin-bottom:var(--space-6);text-transform:uppercase;letter-spacing:.04em;display:block}.optional-label{text-transform:none;font-weight:var(--font-weight-medium);color:var(--color-text-faint)}.field>input{width:100%;padding:var(--space-8) var(--space-12);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit}.field>input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.field.money{position:relative}.field.money .prefix{color:var(--color-text-faint);font-size:var(--font-size-md);position:absolute;top:33px;left:11px}.field.money>input{padding-left:var(--space-24)}.submit-btn{background:var(--color-accent);width:100%;color:var(--color-on-accent);border-radius:var(--radius-md);padding:var(--space-12);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);cursor:pointer;margin-top:var(--space-4);border:none;font-family:inherit}.submit-btn:disabled{opacity:.6;cursor:default}.form-note{font-size:var(--font-size-xs);color:var(--color-text-faint);margin-top:var(--space-10);text-align:center}.budget-over-income{align-items:flex-start;gap:var(--space-10);margin:0 0 var(--space-16);padding:var(--space-12) var(--space-16);border-radius:var(--radius-lg);background:var(--color-caution-soft);color:var(--color-text);font-size:var(--font-size-md);line-height:1.45;display:flex}.budget-over-income svg{color:var(--color-caution);flex-shrink:0;margin-top:2px}.budget-unusual{margin:0 0 var(--space-10);padding:var(--space-10) var(--space-12);border-radius:var(--radius-md);background:var(--color-caution-soft);font-size:var(--font-size-sm);line-height:1.45}.budget-unusual-change{font:inherit;font-weight:var(--font-weight-semibold);color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.view-toggle{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:var(--space-4);gap:var(--space-2);flex-shrink:0;display:inline-flex;position:relative}.view-toggle-btn{z-index:1;padding:var(--space-8) var(--space-14);border-radius:var(--radius-pill);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-dim);cursor:pointer;background:0 0;border:none;transition:color .2s;position:relative}.view-toggle-btn.active{color:var(--color-accent-text)}.settings-card{padding:var(--space-20) var(--space-24);max-width:720px}.settings-card h2{font-size:var(--font-size-2xl);margin-bottom:var(--space-16)}.settings-row{justify-content:space-between;align-items:center;gap:var(--space-16);flex-wrap:wrap;display:flex}.settings-label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md)}.settings-hint{margin:var(--space-2) 0 0;font-size:var(--font-size-sm);color:var(--color-text-dim)}.settings-error{margin:var(--space-12) 0 0;font-size:var(--font-size-sm);color:var(--color-danger)}.capsule-share{gap:var(--space-14);flex-direction:column;display:flex;container-type:inline-size}.capsule-share-head{justify-content:space-between;align-items:baseline;gap:var(--space-12);flex-wrap:wrap;display:flex}.capsule-share-total{font-family:var(--font-family-display);font-size:var(--font-size-4xl);font-weight:var(--font-weight-medium);line-height:1}.capsule-share-period{font-size:var(--font-size-sm);color:var(--color-text-dim)}.capsule-share-bar{border-radius:var(--radius-pill);gap:2px;height:30px;display:flex;overflow:hidden}.capsule-share-piece{cursor:pointer;border:none;flex-basis:0;min-width:3px;padding:0;transition:opacity .15s}span.capsule-share-piece{cursor:default}.capsule-share-piece:focus-visible{outline:2px solid var(--color-text);outline-offset:-2px}.capsule-share-legend{gap:var(--space-2) var(--space-24);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}@container (width>=480px){.capsule-share-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}.capsule-share-row{align-items:center;gap:var(--space-8);padding:var(--space-6) var(--space-8);border-radius:var(--radius-sm);transition:opacity .15s,background-color 50ms;display:flex}.capsule-share-row.clickable{cursor:pointer}.capsule-share-row.clickable:hover{background:var(--color-hover)}.capsule-share-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.capsule-share-name{min-width:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.capsule-share-amount{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.capsule-share-percent{text-align:right;width:34px;font-size:var(--font-size-xs);color:var(--color-text-faint)}.chart-carousel{padding:var(--space-16) var(--space-20) var(--space-20);margin-bottom:var(--space-16);touch-action:pan-y}.chart-carousel:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.chart-carousel-head{justify-content:center;align-items:center;gap:var(--space-8);display:flex}.chart-carousel-title{font-size:var(--font-size-xl);text-align:center;min-width:0}.chart-carousel-arrow{padding:var(--space-6);border-radius:var(--radius-pill);color:var(--color-text-faint);opacity:.7;cursor:pointer;background:0 0;border:none;transition:opacity 50ms,color 50ms;display:flex}.chart-carousel-arrow:hover,.chart-carousel-arrow:focus-visible{opacity:1;color:var(--color-text)}.chart-carousel-dots{justify-content:center;gap:var(--space-6);margin:var(--space-6) 0 var(--space-12);display:flex}.chart-carousel-dot{background:var(--color-border);cursor:pointer;border:none;border-radius:50%;width:7px;height:7px;padding:0}.chart-carousel-dot.is-current{background:var(--color-text-dim)}.chart-carousel-body{animation:.18s ease-out chart-carousel-in}@keyframes chart-carousel-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.chart-carousel-body{animation:none}}.coin-strip{margin-bottom:var(--space-24);container-type:inline-size}.coin-strip-row{--coins-per-row:7;--coin-gap:var(--space-14);justify-content:center;gap:var(--space-20) var(--coin-gap);flex-wrap:wrap;display:flex}@container (width<=860px){.coin-strip-row{--coins-per-row:4}}@container (width<=640px){.coin-strip-row{--coins-per-row:3;--coin-gap:var(--space-10)}}.coin-tile{flex:0 0 calc((100% - (var(--coins-per-row) - 1) * var(--coin-gap)) / var(--coins-per-row));gap:2px;max-width:180px}.coin-tile>*{max-width:78%}.coin-label{font-size:clamp(9px,7.4cqi,12px);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-faint);line-height:1.2}.coin-value{font-family:var(--font-family-display);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:2px 0;line-height:1.1}.coin-sub{color:var(--color-text-faint);font-size:clamp(9px,7cqi,11.5px);line-height:1.25}.coin-spark{width:62%;height:14px;margin:2px 0 1px;overflow:visible}.coin-spark polyline{fill:none;stroke:var(--color-text-faint);stroke-width:1.4px;stroke-linejoin:round;stroke-linecap:round}.coin-spark circle{fill:var(--color-text-dim)}.safe-card{gap:var(--space-6);padding:var(--space-24) var(--space-28) var(--space-28);flex-direction:column;min-height:290px;display:flex;position:relative}.safe-heading{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-dim)}.safe-target{align-items:center;gap:var(--space-10);display:flex}.safe-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.safe-target .safe-dot{width:18px;height:18px}.safe-target-name{font-family:var(--font-family-display);font-size:var(--font-size-4xl);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.15;overflow:hidden}.safe-amount-row{align-items:baseline;gap:var(--space-4) var(--space-12);margin-top:var(--space-12);flex-wrap:wrap;display:flex}.safe-amount{font-family:var(--font-family-display);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:1}.safe-amount.over{color:var(--color-danger)}.safe-per{font-size:var(--font-size-lg);color:var(--color-text-dim)}.safe-badge{align-self:center;align-items:center;gap:var(--space-6);padding:var(--space-4) var(--space-12);border-radius:var(--radius-pill);background:var(--color-danger-soft);color:var(--color-danger);font-size:15px;font-weight:var(--font-weight-bold);display:inline-flex}.safe-detail{font-size:var(--font-size-md);color:var(--color-text-dim)}.safe-expand{right:var(--space-16);bottom:var(--space-16);border:1px solid var(--color-border);background:var(--color-surface);width:34px;height:34px;color:var(--color-text-dim);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:transform .25s,background-color 50ms;display:flex;position:absolute}.safe-expand:hover{background:var(--color-hover)}.safe-card.is-open .safe-expand{transform:rotate(180deg)}.safe-list{margin-top:var(--space-16);padding-top:var(--space-12);padding-bottom:var(--space-24);border-top:1px solid var(--color-border)}.safe-list ul{margin:0;padding:0;list-style:none}.safe-row{align-items:center;gap:var(--space-10);padding:var(--space-6) var(--space-4);border-radius:var(--radius-sm);display:flex}.safe-row.pinned{background:var(--color-selected)}.safe-row-name{min-width:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.safe-row-amount{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.safe-row-amount.over{color:var(--color-danger)}.safe-row-per{font-weight:var(--font-weight-regular);color:var(--color-text-faint)}.safe-pin{width:30px;height:30px;color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.safe-pin:hover,.safe-pin[aria-pressed=true]{color:var(--color-accent)}.safe-note{margin:var(--space-12) var(--space-4) 0;font-size:var(--font-size-sm);color:var(--color-text-dim);line-height:1.45}.flow{gap:var(--space-12);flex-direction:column;display:flex}.flow-takeaway{font-family:var(--font-family-display);font-size:var(--font-size-xl);max-width:70ch;margin:0;line-height:1.4}.flow-takeaway .over{color:var(--color-danger)}.flow-guard{padding:var(--space-10) var(--space-14);border-radius:var(--radius-lg);background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-dim);font-size:var(--font-size-md);max-width:70ch;margin:0}.flow-guard b{color:var(--color-text)}.flow-scroll{overscroll-behavior-x:contain;overflow-x:auto}.flow-stage{aspect-ratio:960/760;width:100%;min-width:640px;max-width:860px;margin:0 auto;position:relative}.flow-stage canvas,.flow-labels{width:100%;height:100%;display:block;position:absolute;inset:0}.flow-text{font-family:var(--font-family-body)}.flow-number{font-family:var(--font-family-display);font-weight:var(--font-weight-semibold)}.flow-fallback{padding:var(--space-20);text-align:center;color:var(--color-text-dim);place-items:center;margin:0;display:grid;position:absolute;inset:0}.flow-probe{width:0;height:0;position:absolute;overflow:hidden}.flow-empty{padding:var(--space-24) 0 var(--space-8);color:var(--color-text-dim);max-width:60ch;margin:0}.flow-hint{font-size:var(--font-size-sm);color:var(--color-text-dim);margin:0;display:none}@media (width<=720px){.flow-hint{display:block}}.dot-ring{flex-shrink:0;display:block}.dot-ring-overflow{fill:var(--color-progress-overflow);stroke:var(--color-surface)}.dot-ring-label{fill:var(--color-text);font-family:var(--font-family-body);font-weight:var(--font-weight-medium)}.dot-ring-percent{fill:var(--color-text-dim)}.month-picker{display:inline-flex}.month-picker-trigger{align-items:center;gap:var(--space-4);padding:0 var(--space-6);margin:0 calc(-1 * var(--space-6));border-radius:var(--radius-sm);font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;display:inline-flex}.month-picker-chevron{color:var(--color-text-faint);flex-shrink:0}.month-picker-panel{width:232px;left:0}.ov-status{color:var(--color-text-dim);padding:var(--space-24) var(--space-4)}.ov-title{align-items:center;gap:var(--space-6);display:flex}.year-stepper{align-items:center;gap:var(--space-2);display:inline-flex}.ov-hero-row{gap:var(--space-24);margin-bottom:var(--space-24);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.ov-hero-row .coin-strip{align-self:center;margin-bottom:0}.ov-hero-row .coin-tile{max-width:136px}@media (width<=900px){.ov-hero-row{grid-template-columns:minmax(0,1fr)}}.ov-grid{gap:var(--space-16);grid-template-columns:360px 1fr;align-items:start;display:grid}@media (width<=900px){.ov-grid{grid-template-columns:1fr}}.ov-col-left,.ov-col-right{gap:var(--space-16);flex-direction:column;min-width:0;display:flex}.ov-pair-row{gap:var(--space-16);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=640px){.ov-pair-row{grid-template-columns:1fr}}.ov-section{padding:var(--space-20)}.ov-section h2{font-size:var(--font-size-lg)}.ov-section-head{align-items:center;gap:var(--space-8);margin-bottom:var(--space-14);display:flex}.ov-section-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.ov-table{border-collapse:collapse;width:100%;font-size:var(--font-size-md)}.ov-table th{text-align:left;font-size:var(--font-size-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-faint);font-weight:var(--font-weight-bold);padding:0 var(--space-8) var(--space-8);border-bottom:1px solid var(--color-border)}.ov-table td{padding:var(--space-8) var(--space-8);border-bottom:1px solid var(--color-border)}.ov-table tbody tr.clickable{cursor:pointer;transition:background-color 50ms}.ov-table tbody tr.clickable:hover{background:var(--color-hover)}.ov-table tfoot td{border-bottom:none;border-top:1px solid var(--color-border);font-weight:var(--font-weight-bold);padding-top:var(--space-10)}.ov-num{text-align:right;font-family:var(--font-family-heading)}.ov-typical{color:var(--color-text-dim)}.ov-no-budget{color:var(--color-text-faint);font-size:var(--font-size-sm)}.ov-used-bar-row{align-items:center;gap:var(--space-8);display:flex}.ov-used-bar-track{border-radius:var(--radius-pill);background:var(--color-border);flex:1;height:8px;overflow:hidden}.ov-used-bar-fill{height:100%}.ov-used-percent{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-align:right;min-width:36px;color:var(--color-income)}.ov-used-percent.over{color:var(--color-danger)}.ov-used-percent.ov-share-percent{color:var(--color-text-dim)}@media (width<=640px){.ov-table thead{display:none}.ov-table,.ov-table tbody,.ov-table tfoot,.ov-table tr{width:100%;display:block}.ov-table tr{padding:var(--space-10) 0;border-bottom:1px solid var(--color-border)}.ov-table tfoot tr{border-bottom:none;border-top:1px solid var(--color-border);padding-top:var(--space-10)}.ov-table td{justify-content:space-between;align-items:center;gap:var(--space-12);padding:var(--space-4) 0;border-bottom:none;display:flex}.ov-table td:first-child{font-weight:var(--font-weight-bold);font-size:var(--font-size-md);padding-bottom:var(--space-6)}.ov-table td[data-label]:before{content:attr(data-label);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-faint);flex-shrink:0}.ov-table td:empty{display:none}.ov-table td .ov-used-bar-row{flex:1;max-width:180px}}.ov-charts-row svg:focus,.ov-charts-row svg :focus{outline:none}.chart-tooltip{align-items:flex-start;gap:var(--space-4);padding:var(--space-10) var(--space-12);flex-direction:column}.chart-tooltip-label{font-family:var(--font-family-heading);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--color-text);margin-bottom:var(--space-2)}.chart-tooltip-row{align-items:center;gap:var(--space-8);width:100%;display:flex}.chart-tooltip-row .donut-tooltip-label{flex:1}.recharts-default-legend{padding-top:var(--space-8)!important}.recharts-legend-item-text{color:var(--color-text-dim)!important;font-size:var(--font-size-xs)!important}.import-card{width:760px;max-height:85vh;overflow-y:auto}.import-dropzone{align-items:center;gap:var(--space-10);width:100%;padding:var(--space-40) var(--space-20);border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-dim);font:inherit;font-size:var(--font-size-md);cursor:pointer;background:0 0;flex-direction:column;transition:border-color 50ms,background-color 50ms;display:flex}.import-dropzone:hover{border-color:var(--color-accent);background:var(--color-hover)}.import-dropzone:disabled{cursor:default;opacity:.7}.import-error{margin:var(--space-10) 0 0;font-size:var(--font-size-sm);color:var(--color-danger)}.import-sheet-list{gap:var(--space-8);flex-direction:column;display:flex}.import-sheet-option{padding:var(--space-12) var(--space-14);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:center;transition:background-color 50ms;display:flex}.import-sheet-option:hover{background:var(--color-hover)}.import-sheet-name{font-weight:var(--font-weight-bold);color:var(--color-text)}.import-sheet-meta{font-size:var(--font-size-sm);color:var(--color-text-faint)}.import-back{margin-bottom:var(--space-12);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-dim);cursor:pointer;background:0 0;border:none;padding:0;display:inline-block}.import-mapping-grid{gap:var(--space-4) var(--space-16);grid-template-columns:1fr 1fr;display:grid}.import-optional{text-transform:none;font-weight:var(--font-weight-medium);color:var(--color-text-faint)}.import-preview{margin-top:var(--space-6)}.import-preview-head{font-size:var(--font-size-2xs);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-bold);color:var(--color-text-faint);margin-bottom:var(--space-8)}.import-preview-more{margin:var(--space-8) 0 0;font-size:var(--font-size-sm);color:var(--color-text-faint)}.import-unmapped{color:var(--color-text-faint)}.import-invalid{color:var(--color-danger);-webkit-text-decoration:underline wavy var(--color-danger);text-decoration:underline wavy var(--color-danger);text-underline-offset:3px;text-decoration-thickness:1px}.import-actions{margin-top:var(--space-20);align-items:flex-end;gap:var(--space-8);flex-direction:column;display:flex}.import-actions .btn-primary{padding:var(--space-10) var(--space-20);flex-grow:0}.import-progress{margin:0 0 var(--space-16);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-dim)}.import-section{margin-bottom:var(--space-20)}.import-section-head{font-size:var(--font-size-2xs);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-bold);color:var(--color-text-faint);margin-bottom:var(--space-10)}.import-value-map-list{flex-direction:column;display:flex}.import-value-map-row{justify-content:space-between;align-items:center;gap:var(--space-14);padding:var(--space-8) 0;border-bottom:1px solid var(--color-border);display:flex}.import-value-map-row:last-child{border-bottom:none}.import-value-map-source{align-items:baseline;gap:var(--space-8);min-width:0;display:flex}.import-value-map-text{font-weight:var(--font-weight-semibold);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.import-value-map-count{font-size:var(--font-size-xs);color:var(--color-text-faint);flex-shrink:0}.import-value-map-row .select-wrap{flex-shrink:0;width:210px}.import-value-map-row-expanded{align-items:stretch;gap:var(--space-10);flex-direction:column}.import-value-map-row-expanded .import-value-map-source{justify-content:space-between}.import-inline-create{padding:var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.import-inline-create-grid{gap:var(--space-4) var(--space-14);grid-template-columns:1fr 1fr;display:grid}.import-inline-create .field{margin-bottom:var(--space-10)}.import-inline-create-actions{justify-content:flex-end;gap:var(--space-8);margin-top:var(--space-4);display:flex}.import-inline-create-actions .btn-primary,.import-inline-create-actions .btn-secondary{padding:var(--space-8) var(--space-14);font-size:var(--font-size-sm);flex-grow:0}.import-bulk-assign-bar{align-items:center;gap:var(--space-10);margin-bottom:var(--space-10);flex-wrap:wrap;display:flex}.import-bulk-assign-bar .select-wrap{width:190px}.import-bulk-assign-bar .btn-primary{padding:var(--space-8) var(--space-14);font-size:var(--font-size-sm);flex-grow:0}.import-link{font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-dim);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.import-row-list{border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:240px;padding:0 var(--space-12);overflow-y:auto}.import-checkbox-col{width:28px}.import-checkbox-col input[type=checkbox]{accent-color:var(--color-accent);cursor:pointer;width:15px;height:15px}.import-all-resolved{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-income);text-align:center;padding:var(--space-20) 0}.import-skip-reasons{margin:0 0 var(--space-16);font-size:var(--font-size-sm);color:var(--color-text-dim);gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.import-duplicate-badge{margin-left:var(--space-8);padding:var(--space-2) var(--space-8);border-radius:var(--radius-pill);background:var(--color-caution-soft);color:var(--color-caution);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.03em;vertical-align:middle;display:inline-block}.import-progress-view{padding:var(--space-40) var(--space-24);text-align:center}.import-progress-icon{color:var(--color-accent);margin-bottom:var(--space-16);justify-content:center;display:flex}.import-progress-track{border-radius:var(--radius-pill);background:var(--color-border);height:10px;margin-bottom:var(--space-10);overflow:hidden}.import-progress-fill{border-radius:var(--radius-pill);background:var(--color-accent);height:100%}.import-progress-label{font-family:var(--font-family-heading);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);color:var(--color-text);justify-content:space-between;align-items:baseline;margin:0;display:flex}.import-progress-percent{color:var(--color-text-faint);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.import-results{padding:var(--space-8) 0}.import-results-success{align-items:center;gap:var(--space-8);margin:0 0 var(--space-8);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-income);display:flex}.import-results-failures p{align-items:center;gap:var(--space-6);display:flex}.import-results-failures ul{margin:var(--space-6) 0 0;padding-left:var(--space-20);font-size:var(--font-size-sm);color:var(--color-text-dim)}.page-head{justify-content:space-between;align-items:flex-start;gap:var(--space-16);margin-bottom:var(--space-20);flex-wrap:wrap;display:flex}.page-head h1{font-size:var(--font-size-4xl);margin-bottom:var(--space-4)}.page-head p{color:var(--color-text-dim);font-size:var(--font-size-md);margin:0}.txn-status{color:var(--color-text-dim);padding:var(--space-24) var(--space-4)}.txn-error{margin:0 0 var(--space-12);font-size:var(--font-size-md);color:var(--color-danger)}.filter-bar{padding:var(--space-14) var(--space-16);gap:var(--space-12);margin-bottom:var(--space-16);z-index:2;flex-wrap:wrap;align-items:flex-end;display:flex;overflow:visible}.filter-field{gap:var(--space-6);flex-direction:column;min-width:170px;display:flex}.filter-field label{font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.04em}.filter-clear{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-dim);padding-bottom:var(--space-8);cursor:pointer;text-decoration:underline}.result-line{font-size:var(--font-size-sm);color:var(--color-text-dim);margin:0 0 var(--space-10) var(--space-4)}.result-line .num{color:var(--color-text);font-weight:var(--font-weight-bold);font-family:var(--font-family-heading)}.card-list{overflow:hidden}.card-list .txn-row{position:absolute;top:0;left:0;right:0}.txn-row{align-items:center;gap:var(--space-14);padding:var(--space-12) var(--space-16);border-bottom:1px solid var(--color-border);display:flex}.txn-row.is-last{border-bottom:none}.txn-more-link{margin:var(--space-16) auto 0;font:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-accent);cursor:pointer;padding:var(--space-8) var(--space-12);border-radius:var(--radius-pill);background:0 0;border:none;display:block}.txn-more-link:hover{background:var(--color-accent-soft)}.txn-date{width:60px;font-size:var(--font-size-sm);color:var(--color-text-faint);flex-shrink:0}.txn-main{align-items:center;gap:var(--space-10);flex-grow:1;min-width:0;display:flex}.txn-vendor{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.badge{font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);padding:var(--space-4) var(--space-8);border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0}.txn-amt{font-weight:var(--font-weight-bold);font-size:var(--font-size-md);font-family:var(--font-family-heading);text-align:right;flex-shrink:0;min-width:84px}.txn-actions{gap:var(--space-4);flex-shrink:0;display:flex}.icon-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--color-hover-glass);color:var(--color-text)}.icon-btn.danger:hover{color:var(--color-danger)}.error-screen{max-width:560px;padding:var(--space-24) var(--space-16);color:var(--color-text);margin:0 auto}.error-screen pre{white-space:pre-wrap;word-break:break-word;padding:var(--space-12);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);font-size:var(--font-size-sm)}
