: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-500:#6f6658;--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-400:#a39d8f;--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:#067132;--color-hue-green-dark:#218041;--color-hue-plum-light:#77508e;--color-hue-plum-dark:#855d9e;--color-hue-copper-light:#d1791e;--color-hue-copper-dark:#c46d01;--color-hue-teal-light:#069fa4;--color-hue-teal-dark:#009ea3;--color-hue-gold-light:#9e9234;--color-hue-gold-dark:#948827;--color-hue-blue-light:#0275b3;--color-hue-blue-dark:#127bba;--color-hue-rose-light:#a13760;--color-hue-rose-dark:#a94d6e;--color-hue-rust-light:#a43f0b;--color-hue-rust-dark:#b34d1f;--color-hue-pink-light:#dc6c93;--color-hue-pink-dark:#cd5f85;--color-hue-mauve-light:#a087ac;--color-hue-mauve-dark:#947c9f;--color-hue-moss-light:#6f6901;--color-hue-moss-dark:#766f10;--color-hue-lavender-light:#9a75d6;--color-hue-lavender-dark:#916ccc;--color-hue-cocoa-light:#7b5243;--color-hue-cocoa-dark:#8d6353;--color-hue-periwinkle-light:#6a8deb;--color-hue-periwinkle-dark:#5f81dd;--color-hue-emerald-light:#21a566;--color-hue-emerald-dark:#0e9c5d;--color-hue-indigo-light:#5456b3;--color-hue-indigo-dark:#5f62c0;--color-hue-orchid-light:#b25ba5;--color-hue-orchid-dark:#ae58a2;--color-hue-slate-light:#485f80;--color-hue-slate-dark:#566d8f;--color-hue-clay-light:#be6c63;--color-hue-clay-dark:#b7665d;--color-hue-sage-light:#729779;--color-hue-sage-dark:#698e70;--color-hue-pine-light:#0d6c67;--color-hue-pine-dark:#257b75;--color-hue-olive-light:#658808;--color-hue-olive-dark:#658808;--color-hue-sand-light:#947c57;--color-hue-sand-dark:#917954;--color-hue-steel-light:#7297b4;--color-hue-steel-dark:#668ba8;--font-family-body:Lora, Georgia, serif;--font-family-heading:Lora, Georgia, serif;--font-family-display:Lora, 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-500);--color-text-over-glow:var(--color-ink-900);--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-rust:var(--color-hue-rust-light);--color-category-pink:var(--color-hue-pink-light);--color-category-mauve:var(--color-hue-mauve-light);--color-category-moss:var(--color-hue-moss-light);--color-category-lavender:var(--color-hue-lavender-light);--color-category-cocoa:var(--color-hue-cocoa-light);--color-category-periwinkle:var(--color-hue-periwinkle-light);--color-category-emerald:var(--color-hue-emerald-light);--color-category-indigo:var(--color-hue-indigo-light);--color-category-orchid:var(--color-hue-orchid-light);--color-category-slate:var(--color-hue-slate-light);--color-category-clay:var(--color-hue-clay-light);--color-category-sage:var(--color-hue-sage-light);--color-category-pine:var(--color-hue-pine-light);--color-category-olive:var(--color-hue-olive-light);--color-category-sand:var(--color-hue-sand-light);--color-category-steel:var(--color-hue-steel-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-400);--color-text-over-glow:var(--color-fog-300);--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-rust:var(--color-hue-rust-dark);--color-category-pink:var(--color-hue-pink-dark);--color-category-mauve:var(--color-hue-mauve-dark);--color-category-moss:var(--color-hue-moss-dark);--color-category-lavender:var(--color-hue-lavender-dark);--color-category-cocoa:var(--color-hue-cocoa-dark);--color-category-periwinkle:var(--color-hue-periwinkle-dark);--color-category-emerald:var(--color-hue-emerald-dark);--color-category-indigo:var(--color-hue-indigo-dark);--color-category-orchid:var(--color-hue-orchid-dark);--color-category-slate:var(--color-hue-slate-dark);--color-category-clay:var(--color-hue-clay-dark);--color-category-sage:var(--color-hue-sage-dark);--color-category-pine:var(--color-hue-pine-dark);--color-category-olive:var(--color-hue-olive-dark);--color-category-sand:var(--color-hue-sand-dark);--color-category-steel:var(--color-hue-steel-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);-webkit-tap-highlight-color:transparent;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}table,.ov-num,.txn-amt,.capsule-share-amount,.safe-row-amount,.pocket-line-amount,.import-preview{font-variant-numeric:tabular-nums}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}:root{--focus-border:color-mix(in srgb, var(--color-accent) 50%, var(--color-border));--focus-ring:0 0 0 3px color-mix(in srgb, var(--color-accent) 12%, transparent)}input,textarea,.select-trigger,.date-input-row{transition:border-color .18s,box-shadow .18s}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}.field-required{color:var(--color-accent);font-weight:var(--font-weight-semibold);margin-left:.2em}.field-optional{font-weight:var(--font-weight-regular);text-transform:none;letter-spacing:0}.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{border-color:var(--focus-border);box-shadow:var(--focus-ring);outline:none}.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);overscroll-behavior:contain;max-height:min(400px,60vh);position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.select-list{gap:var(--space-2);flex-direction:column;display:flex}.select-search{top:calc(-1 * var(--space-6));z-index:1;align-items:center;gap:var(--space-6);margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-6)) var(--space-4);padding:var(--space-8) var(--space-12);background:var(--color-surface);border-bottom:1px solid var(--color-border);color:var(--color-text-faint);display:flex;position:sticky}.select-search input{min-width:0;padding:var(--space-2) 0;font:inherit;color:var(--color-text);background:0 0;border:none;outline:none;flex:1;font-size:16px}.select-header{padding:var(--space-8) var(--space-8) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-faint)}.select-option mark{color:inherit;text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);background:0 0}.select-option.active{background:var(--color-hover)}.select-create-icon{background:var(--color-accent-soft);color:var(--color-accent-text)}.select-empty{padding:var(--space-8);color:var(--color-text-dim);font-size:var(--font-size-sm);margin:0}.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)}.select-tick{color:var(--color-accent);flex:none;margin-left:auto}.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,box-shadow .18s;display:flex}.date-input-row:hover{background:var(--color-bg);border-color:var(--color-text-faint)}.date-input-row:focus-within{border-color:var(--focus-border);box-shadow:var(--focus-ring)}.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)}.budget-form-note{margin:calc(-1 * var(--space-8)) 0 var(--space-16);font-size:var(--font-size-sm);color:var(--color-text-dim)}.field{margin-bottom:var(--space-14)}.field label,.field .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}.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-bg);color:var(--color-text);font:inherit}.field>input:focus-visible{border-color:var(--focus-border);box-shadow:var(--focus-ring);outline:none}.field.money{position:relative}.field.money .prefix{color:var(--color-text-faint);font-size:var(--font-size-md);position:absolute;top:35px;left:11px}.field.money>input{padding-left:var(--space-24);font-variant-numeric:tabular-nums}.field-pair{gap:0 var(--space-12);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.kind-choice{gap:var(--space-8);grid-template-columns:1fr 1fr;display:grid}.kind-option{align-items:center;gap:0 var(--space-8);padding:var(--space-10) var(--space-12);border-radius:var(--radius-lg);border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text);text-align:left;font:inherit;cursor:pointer;grid-template-columns:auto 1fr;transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out;display:grid}.kind-option svg{grid-row:span 2}.kind-name{font-family:var(--font-family-heading);font-weight:var(--font-weight-semibold)}.kind-note{font-size:var(--font-size-xs);color:var(--color-text-dim)}.kind-option:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.kind-fixed[aria-checked=true]{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent)}.kind-variable[aria-checked=true]{border-color:var(--color-expense);background:var(--color-expense-soft);color:var(--color-expense)}.form-actions{gap:var(--space-10);margin-top:var(--space-8);display:flex}.form-actions .submit-btn{flex:1}.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;border:none;font-family:inherit}.submit-btn:disabled{opacity:.6;cursor:default}.btn-danger-outline{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-danger);border-radius:var(--radius-md);padding:var(--space-12);font:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;flex:1}.btn-danger-outline:hover{border-color:var(--color-danger)}.budget-error{color:var(--color-danger);font-size:var(--font-size-sm);margin:0 0 var(--space-10)}.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}.quick-category{margin:calc(-1 * var(--space-4)) 0 var(--space-14);padding:var(--space-14) var(--space-16) var(--space-12);border-radius:var(--radius-xl);border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-accent-soft) 45%, var(--color-surface));animation:.2s ease-out both quick-category-in}@keyframes quick-category-in{0%{opacity:0;transform:translateY(-4px)}}.quick-category h3{font-family:var(--font-family-display);font-size:var(--font-size-lg);overflow-wrap:anywhere;margin:0}.quick-category-note{margin:var(--space-2) 0 var(--space-12);font-size:var(--font-size-sm);color:var(--color-text-dim)}.quick-category-unusual{margin:0 0 var(--space-10);padding:var(--space-8) var(--space-12);border-radius:var(--radius-md);background:var(--color-caution-soft);font-size:var(--font-size-sm)}.quick-category-actions{justify-content:flex-end;gap:var(--space-8);display:flex}@media (prefers-reduced-motion:reduce){.quick-category{animation:none}}.quick-category .optional-label{text-transform:none;font-weight:var(--font-weight-medium);color:var(--color-text-faint)}.vendor-field{position:relative}.vendor-field>input{width:100%}.vendor-suggest{z-index:30}.vendor-suggest .select-option{justify-content:space-between}.vendor-suggest-category{align-items:center;gap:var(--space-6);font-size:var(--font-size-sm);color:var(--color-text-dim);white-space:nowrap;display:inline-flex}.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;font-family:inherit;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,.modal-card .field>.vendor-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,.modal-card .field>.vendor-field>input:focus-visible{border-color:var(--focus-border);box-shadow:var(--focus-ring);outline:none}.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-family:inherit;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-family:inherit;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}.memory-note{align-items:center;gap:var(--space-6);margin:var(--space-6) 0 0;font-size:var(--font-size-sm);color:var(--color-accent-text);display:flex}.review-toggle{align-items:center;gap:var(--space-12);margin:var(--space-4) 0 var(--space-14);cursor:pointer;display:flex}.review-toggle input{opacity:0;width:1px;height:1px;position:absolute}.review-toggle-track{border-radius:var(--radius-pill);background:var(--color-border);flex:none;width:40px;height:24px;transition:background-color .18s;position:relative}.review-toggle-track:after{content:"";background:var(--color-surface);border-radius:50%;width:18px;height:18px;transition:transform .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.review-toggle input:checked+.review-toggle-track{background:var(--color-caution)}.review-toggle input:checked+.review-toggle-track:after{transform:translate(16px)}.review-toggle input:focus-visible+.review-toggle-track{outline:2px solid var(--color-accent);outline-offset:2px}.review-toggle-label{font-weight:var(--font-weight-semibold);display:block}.review-toggle-hint{font-size:var(--font-size-sm);color:var(--color-text-dim);display:block}.maybe-row{align-items:center;gap:var(--space-6);margin-top:var(--space-8);flex-wrap:wrap;display:flex}.maybe-label{font-size:var(--font-size-sm);color:var(--color-text-dim)}.maybe-chip{padding:var(--space-4) var(--space-10);border-radius:var(--radius-pill);border:1px solid var(--guess-color);background:var(--guess-soft);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer}.maybe-chip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.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:100px}.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:1680px;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-over-glow);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}}.nav-label-short{display:none}@media (width<=1000px){.nav-label-long{display:none}.nav-label-short{display:inline}}@media (width<=760px){.topbar{row-gap:var(--space-12);flex-wrap:wrap}.topnav{order:3;width:100%}.brand-name{display:inline}}@media (width<=480px){.topnav{justify-content:space-between}}@media (width<=360px){.brand-name{display:none}.topnav a{padding:var(--space-8) var(--space-6)}}.password-box{position:relative}.password-box input{width:100%;padding:var(--space-10) calc(var(--space-12) + 32px) 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;transition:border-color .18s,box-shadow .18s}.password-box input:focus-visible{border-color:var(--focus-border);box-shadow:var(--focus-ring);outline:none}.password-toggle{top:50%;right:var(--space-6);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;place-items:center;display:grid;position:absolute;transform:translateY(-50%)}.password-toggle:hover{color:var(--color-text)}.password-toggle:focus-visible{box-shadow:var(--focus-ring);color:var(--color-text);outline:none}.password-meter{gap:var(--space-4);margin-top:var(--space-8);grid-template-columns:repeat(4,1fr);display:grid}.password-meter span{background:var(--color-border);border-radius:2px;height:4px;transition:background-color .25s}.password-meter.weak .filled{background:var(--color-danger)}.password-meter.fair .filled{background:var(--color-caution)}.password-meter.strong .filled{background:var(--color-accent)}.password-strength{min-height:1.4em;margin:var(--space-4) 0 0;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.password-strength.weak{color:var(--color-danger)}.password-strength.fair{color:var(--color-caution)}.password-strength.strong{color:var(--color-accent)}.password-rules{margin:var(--space-6) 0 0;gap:var(--space-4);font-size:var(--font-size-sm);padding:0;list-style:none;display:grid}.password-rules li{align-items:center;gap:var(--space-8);color:var(--color-text-faint);transition:color .2s;display:flex}.rule-mark{border:1.5px solid;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;transition:background-color .2s,border-color .2s;display:grid}.password-rules .rule-met{color:var(--color-accent)}.password-rules .rule-met .rule-mark{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.password-rules .rule-unmet{color:var(--color-danger)}.password-rules .rule-nudged{animation:.32s ease-out rule-nudge}@keyframes rule-nudge{0%,to{transform:translate(0)}25%{transform:translate(-3px)}60%{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.password-rules .rule-nudged{animation:none}}.password-rules .rule-checking .rule-mark{border-style:dashed}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.take-home{gap:var(--space-12);flex-direction:column;display:flex}.take-home-switch{padding:var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);align-self:flex-start;display:inline-flex}.take-home-switch button{min-height:36px;padding:0 var(--space-16);border-radius:var(--radius-pill);color:var(--color-text-dim);font:inherit;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;transition:color 50ms;position:relative}.take-home-switch button.on{color:var(--color-accent-text);font-weight:var(--font-weight-semibold)}.take-home-switch-pill{border-radius:inherit;background:var(--color-selected,var(--color-accent-soft));position:absolute;inset:0}.take-home-switch-label{position:relative}.take-home-panels{display:grid}.take-home-panel{gap:var(--space-12);flex-direction:column;grid-area:1/1;min-width:0;display:flex}.take-home-panel.off{visibility:hidden}.take-home-panel>.take-home-money{flex:none}.take-home-money{align-items:center;gap:var(--space-6);flex:1;min-width:0;display:flex}.take-home-money span{color:var(--color-text-dim)}.take-home-money input{min-width:0;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;flex:1;transition:border-color .18s,box-shadow .18s}.take-home-money input:focus-visible{border-color:var(--focus-border);box-shadow:var(--focus-ring);outline:none}.take-home-range{align-items:center;gap:var(--space-10);display:flex}.take-home-to{color:var(--color-text-dim);font-size:var(--font-size-sm)}.take-home-slider{height:28px;margin:0 var(--space-4);cursor:pointer;touch-action:none;position:relative}.take-home-track{border-radius:var(--radius-pill);background:var(--color-border);position:absolute;inset:12px}.take-home-fill{border-radius:inherit;background:var(--color-accent);transition:opacity .18s;position:absolute;top:0;bottom:0}.take-home-slider.untouched .take-home-fill{opacity:.35}.take-home-slider input[type=range]{pointer-events:none;appearance:none;background:0 0;width:100%;margin:0;position:absolute;inset:0}.take-home-slider input[type=range]::-webkit-slider-runnable-track{background:0 0}.take-home-slider input[type=range]::-moz-range-track{background:0 0}.take-home-slider input[type=range]::-webkit-slider-thumb{border:2px solid var(--color-accent);background:var(--color-surface);cursor:grab;pointer-events:auto;appearance:none;border-radius:50%;width:24px;height:24px;box-shadow:0 1px 3px #0000002e}.take-home-slider input[type=range]::-moz-range-thumb{border:2px solid var(--color-accent);background:var(--color-surface);cursor:grab;pointer-events:auto;border-radius:50%;width:20px;height:20px;box-shadow:0 1px 3px #0000002e}.take-home-slider input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:var(--focus-ring), 0 1px 3px #0000002e}.take-home-slider input[type=range]:focus-visible{outline:none}.take-home-slider.untouched input[type=range]::-webkit-slider-thumb{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-border))}.take-home-note{min-height:1.5em;margin:calc(-1 * var(--space-8)) 0 0;font-size:var(--font-size-sm);color:var(--color-text-dim)}.signup{gap:var(--space-20);flex-direction:column;display:flex}.signup-head{justify-content:space-between;align-items:center;min-height:40px;display:flex}.signup-head[hidden]{display:none}.signup-head .brand-mark{border-radius:var(--radius-lg);width:40px;height:40px;font-size:var(--font-size-2xl)}.signup-count{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-dim);font-variant-numeric:tabular-nums}.signup-progress{height:8px;margin-top:calc(-1 * var(--space-8));border-radius:var(--radius-pill);background:var(--color-border);overflow:hidden}.signup-progress-fill{border-radius:inherit;background:var(--color-accent);transform-origin:0;height:100%;transition:transform .45s cubic-bezier(.22,1,.36,1)}.signup-stage{padding-inline:var(--space-8);margin-inline:calc(-1 * var(--space-8));transition:height .32s cubic-bezier(.22,1,.36,1);position:relative;overflow-x:clip}.signup-pane{width:100%}.signup-step{gap:var(--space-4);flex-direction:column;display:flex}@media (prefers-reduced-motion:reduce){.signup-stage,.signup-progress-fill{transition:none}}.signup-step h2{font-size:var(--font-size-4xl);line-height:1.15}.signup-lead{margin:var(--space-4) 0 var(--space-16);color:var(--color-text-dim)}.signup-back{align-self:flex-start;align-items:center;gap:var(--space-4);margin-bottom:var(--space-8);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-flex}.signup-goals,.signup-starts{gap:var(--space-8);margin-bottom:var(--space-16);flex-direction:column;display:flex}.signup-goal,.signup-start{align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-14);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background-color .15s;display:flex}.signup-goal:hover,.signup-start:hover{border-color:var(--color-accent)}.signup-goal.on{border-color:var(--color-accent);background:var(--color-accent-soft)}.signup-goal-icon{background:var(--color-accent-soft);width:36px;height:36px;color:var(--color-accent-text);border-radius:50%;flex:none;place-items:center;display:grid}.signup-goal.on .signup-goal-icon{background:var(--color-accent);color:var(--color-on-accent)}.signup-goal-title{align-items:center;gap:var(--space-6);font-weight:var(--font-weight-semibold);flex-wrap:wrap;display:flex}.signup-goal-detail{font-size:var(--font-size-sm);color:var(--color-text-dim);display:block}.signup-recommended{padding:var(--space-2) var(--space-8);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent-text);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);letter-spacing:.02em}.account-password-toggle{align-self:flex-start;align-items:center;gap:var(--space-4);width:fit-content;margin:0 0 var(--space-4);padding:var(--space-4) 0;color:var(--color-accent-text);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;border:none;display:inline-flex}.account-password-toggle:hover{text-decoration:underline}.account-password-toggle svg{transition:transform .42s cubic-bezier(.45,0,.2,1)}.account-password-toggle svg.open{transform:rotate(180deg)}.account-password{visibility:hidden;grid-template-rows:0fr;transition:grid-template-rows .42s cubic-bezier(.22,1,.36,1),visibility 0s .42s;display:grid}.account-password.open{visibility:visible;grid-template-rows:1fr;transition:grid-template-rows .42s cubic-bezier(.22,1,.36,1),visibility}.account-password-inner{min-height:0;margin:0 -8px;padding:0 8px;overflow:hidden}.account-password-body{padding-top:var(--space-8)}.signup-step .auth-links{justify-content:flex-start}@media (prefers-reduced-motion:reduce){.account-password,.account-password.open,.account-password-toggle svg{transition:none}}.field-hint{align-items:center;gap:var(--space-4);margin:var(--space-6) 0 0;font-size:var(--font-size-xs);color:var(--color-text-faint);display:flex}.field-hint.met{color:var(--color-accent-text)}.signup-skip{font:inherit;font-weight:var(--font-weight-semibold);color:var(--color-text-dim);cursor:pointer;background:0 0;border:none;align-self:center;text-decoration:underline}.signup-step h2:focus{outline:none}.signup-points{margin:0 0 var(--space-8);padding-left:var(--space-20);gap:var(--space-4);display:grid}.signup-promise{align-items:center;gap:var(--space-8);margin:0 0 var(--space-16);font-size:var(--font-size-sm);color:var(--color-text-dim);display:flex}.signup-name-preview{align-items:center;gap:var(--space-8);margin:var(--space-4) 0 var(--space-16);font-weight:var(--font-weight-semibold);display:flex}.signup-preview-mark{background:var(--color-accent);width:26px;height:26px;color:var(--color-on-accent);font-size:var(--font-size-sm);border-radius:7px;place-items:center;display:grid}.signup-chips{gap:var(--space-8);margin-bottom:var(--space-16);flex-wrap:wrap;display:flex}.signup-chips.small{margin:var(--space-8) 0 0}.signup-chip{min-height:44px;padding:0 var(--space-14);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);cursor:pointer;align-items:center;transition:border-color .15s,background-color .15s;display:inline-flex}.signup-chips.small .signup-chip{min-height:36px}.signup-chip:hover{border-color:var(--color-accent)}.signup-chip.on{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-text);font-weight:var(--font-weight-semibold)}.signup-chip input{opacity:0;pointer-events:none;position:absolute}.signup-chip:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}.signup-fieldset{margin:0 0 var(--space-8);border:none;padding:0}.signup-fieldset legend{margin-bottom:var(--space-8);font-weight:var(--font-weight-semibold)}.signup-money{align-items:center;gap:var(--space-6);display:flex}.signup-money span{color:var(--color-text-dim)}.signup-money input{min-width:0;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;flex:1;transition:border-color .18s,box-shadow .18s}.signup-money input:focus-visible{border-color:var(--focus-border);box-shadow:var(--focus-ring);outline:none}.signup-money input:disabled{background:var(--color-bg);color:var(--color-text-dim)}.signup-areas{margin-bottom:var(--space-16);flex-direction:column;display:flex}.signup-areas .signup-goal-grid{gap:var(--space-8)}.signup-areas-more{visibility:hidden;grid-template-rows:0fr;transition:grid-template-rows .42s cubic-bezier(.22,1,.36,1),visibility 0s .42s;display:grid}.signup-areas-more.open{visibility:visible;grid-template-rows:1fr;transition:grid-template-rows .42s cubic-bezier(.22,1,.36,1),visibility}.signup-areas-more-inner{min-height:0;overflow:hidden}.signup-areas-more-inner>.signup-goal-grid{padding-top:var(--space-8)}@media (width>=600px){.signup-areas .signup-goal-grid{gap:var(--space-12)}.signup-areas-more-inner>.signup-goal-grid{padding-top:var(--space-12)}}@media (prefers-reduced-motion:reduce){.signup-more-areas svg,.signup-areas-more,.signup-areas-more.open{transition:none}}.signup-more-areas .open{transform:rotate(180deg)}.signup-more-areas svg{transition:transform .42s cubic-bezier(.45,0,.2,1)}.signup-more-areas{align-self:flex-start;align-items:center;gap:var(--space-4);min-height:40px;margin-top:var(--space-16);padding:0 var(--space-16);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:border-color 50ms;display:inline-flex}.signup-more-areas:hover{border-color:var(--color-accent)}.signup-built{margin:var(--space-8) 0 var(--space-16);gap:var(--space-10);padding:0;list-style:none;display:grid}.signup-built li{gap:var(--space-10);align-items:flex-start;line-height:1.45;animation:.4s cubic-bezier(.22,1,.36,1) both signup-built-in;display:flex}.signup-built li>svg{color:var(--color-accent-text);flex:none;margin-top:3px}@keyframes signup-built-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.signup-built li{animation:none}}.signup-names+.field-error{margin:calc(-1 * var(--space-6)) 0 var(--space-12)}.signup-welcome,.signup-art,.signup-tile-art{--art-leather:#80512f;--art-leather-light:#9d6a41;--art-leather-shade:#653e23;--art-grain:#28140814;--art-velvet:#4f3670;--art-weave:#573c7a;--art-lilac:#dcc6ec;--art-blush:#d8a7c4;--art-emboss:#6d4426;--art-gold:#c9a24f;--art-gold-deep:#9c7a2f;--art-gold-shine:#f3dc9a;--art-stitch:#fdf8ee8c;--art-brass:#b08a3e;--art-bead:#7d5ba6;--art-bead-shine:#ffffffa6;--art-lining:#5e4485;--art-lavender:#b49ad8;--art-lavender-soft:#ece3f6;--art-coin:#e8c56a;--art-coin-edge:#b8913a;--art-coin-shine:#fbe7a8;--art-sage:#9cbca5;--art-sage-deep:#6f9a7c;--art-halo:#e3ede5;--art-paper:#fffdf8;--art-paper-shade:#ece2d0;--art-paper-edge:#d9c8ad;--art-glass-edge:#b9a3d9;--art-ink-soft:#c9b49a;--art-shadow:#241f181a}:root[data-theme=dark] .signup-welcome,:root[data-theme=dark] .signup-art,:root[data-theme=dark] .signup-tile-art{--art-halo:#22332a;--art-lavender-soft:#4a3d66;--art-paper:#f3ece0;--art-paper-shade:#d9ccb6;--art-paper-edge:transparent;--art-glass-edge:#6d5a91;--art-shadow:#00000059}.signup-art{width:min(250px,72%);height:auto;margin:0 auto var(--space-12);display:block;overflow:visible}.coin-purse .cp-coin,.coin-purse .cp-coin-flip,.coin-purse .cp-body,.coin-purse .cp-click,.coin-purse .cp-sparkle{transform-box:fill-box}.coin-purse .cp-back{transform-box:view-box;transform-origin:120px 124px;animation:3.4s both cp-back}.coin-purse .cp-bead-back{animation:3.4s both cp-bead-back}.coin-purse .cp-bead-front{animation:3.4s both cp-bead-front}.coin-purse .cp-coin{opacity:0;animation:3.4s both cp-coin}.coin-purse .cp-coin-flip{transform-origin:50%;animation:.42s linear 1.22s 2 both cp-flip}.coin-purse .cp-body{transform-origin:bottom;animation:3.4s both cp-squish}.coin-purse .cp-click{transform-origin:50%;opacity:0;animation:3.4s ease-out both cp-click}.coin-purse .cp-sparkle{transform-origin:50%;animation:3.4s cubic-bezier(.34,1.56,.64,1) both cp-sparkle}.coin-purse .cp-sparkle-2{animation-delay:80ms}.coin-purse .cp-sparkle-3{animation-delay:.16s}@keyframes cp-coin{0%{opacity:0;animation-timing-function:ease-out;transform:translateY(-96px)scale(.6)}10%{opacity:1;animation-timing-function:ease-in-out;transform:translateY(-104px)scale(1)}20%{opacity:1;animation-timing-function:ease-in-out;transform:translateY(-99px)scale(1)}30%{opacity:1;animation-timing-function:ease-in-out;transform:translateY(-104px)scale(1)}36%{opacity:1;animation-timing-function:cubic-bezier(.5,0,.9,.6);transform:translateY(-100px)scale(1)}56%{opacity:1;animation-timing-function:linear;transform:translateY(-16px)scale(1)}60%{opacity:1;transform:translateY(26px)scale(1)}62%,to{opacity:0;transform:translateY(26px)scale(1)}}@keyframes cp-flip{0%,to{transform:scaleX(1)}50%{transform:scaleX(.25)}}@keyframes cp-back{0%,16%{animation-timing-function:cubic-bezier(.45,0,.25,1);transform:scaleY(1)}34%,58%{animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:scaleY(1.46)}68%{animation-timing-function:ease-out;transform:scaleY(1.01)}70%{animation-timing-function:ease-out;transform:scaleY(.985)}73%,to{transform:scaleY(1)}}@keyframes cp-bead-back{0%,16%{animation-timing-function:cubic-bezier(.45,0,.25,1);transform:translate(0)}34%,58%{animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:translate(-2.5px,-21.6px)}68%{animation-timing-function:ease-out;transform:translate(-.2px,-.6px)}70%{animation-timing-function:ease-out;transform:translate(.8px,.8px)}73%,to{transform:translate(0)}}@keyframes cp-bead-front{0%,16%{animation-timing-function:cubic-bezier(.45,0,.25,1);transform:translate(0)}34%,58%{animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:translate(2.5px,3.5px)}68%{animation-timing-function:ease-out;transform:translate(.3px,.4px)}70%{animation-timing-function:ease-out;transform:translate(-.8px,-.6px)}73%,to{transform:translate(0)}}@keyframes cp-click{0%,69%{opacity:0;transform:scale(.5)}72%{opacity:1;transform:scale(1)}80%,to{opacity:0;transform:scale(1.35)}}@keyframes cp-squish{0%,69%{transform:scale(1)}74%{transform:scale(1.035,.955)}81%{transform:scale(.99,1.015)}87%,to{transform:scale(1)}}@keyframes cp-sparkle{0%,80%{opacity:0;transform:scale(0)}88%{opacity:1;transform:scale(1.25)}95%,to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.coin-purse *{animation:none!important}}.signup-art-head{justify-content:space-between;align-items:flex-end;gap:var(--space-16);margin-bottom:var(--space-12);display:flex}.signup-art.name-tag{width:112px;margin:0 var(--space-16) 0 0;flex-shrink:0}.name-tag .nt-initials{font-family:var(--font-family-display);letter-spacing:1px;font-size:26px;font-weight:600}@media (width>=1024px){.signup-names{column-gap:var(--space-16);grid-template-columns:1fr 1fr;display:grid}}@media (width<=420px){.signup-art.name-tag{width:84px}}.name-tag .nt-ring,.name-tag .nt-sparkle,.name-tag .nt-initials,.name-tag .nt-sprig{transform-box:fill-box;transform-origin:50%}.name-tag .nt-ring{animation:3s ease-out both nt-ring}.name-tag .nt-swing{transform-box:view-box;transform-origin:80px 16px;animation:3s both nt-swing}.name-tag .nt-sparkle{animation:3s cubic-bezier(.34,1.56,.64,1) both nt-sparkle}.name-tag .nt-sparkle-2{animation-delay:80ms}.name-tag .nt-sparkle-3{animation-delay:.16s}.name-tag .nt-initials{animation:.4s cubic-bezier(.55,0,.9,.5) both nt-press}@keyframes nt-ring{0%{opacity:0;transform:scale(.6)}8%,to{opacity:1;transform:scale(1)}}@keyframes nt-swing{0%{opacity:0;transform:rotate(50deg)}8%{opacity:0;animation-timing-function:ease-out;transform:rotate(50deg)}14%,18%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(50deg)}29%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(-28deg)}40%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(15deg)}51%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(-8deg)}62%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(4deg)}73%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(-1.8deg)}82%,to{opacity:1;transform:rotate(0)}}@keyframes nt-sparkle{0%,82%{opacity:0;transform:scale(0)}90%{opacity:1;transform:scale(1.25)}96%,to{opacity:1;transform:scale(1)}}@keyframes nt-press{0%{opacity:0;transform:scale(1.25)}70%{opacity:1;animation-timing-function:ease-out;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.name-tag *{animation:none!important}}.signup-art.compass,.signup-art.house,.signup-art.envelope{flex-shrink:0;width:112px;margin:0}@media (width<=420px){.signup-art.compass,.signup-art.house,.signup-art.envelope{width:84px}}.signup-goal-grid{grid-template-columns:1fr;display:grid}.signup-goal-grid .signup-goal{padding-right:var(--space-40);position:relative}@media (width>=600px){.signup-goal-grid{gap:var(--space-12);grid-template-columns:1fr 1fr}.signup-goal-grid .signup-goal{min-height:76px;padding:var(--space-14) var(--space-40) var(--space-14) var(--space-14)}.signup-goal-grid .signup-goal:last-child:nth-child(odd){grid-column:1/-1}}.signup-goal-corner{top:var(--space-10);right:var(--space-10);border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute}.signup-goal.on .signup-goal-corner{background:var(--color-accent);color:var(--color-on-accent);animation:.24s cubic-bezier(.55,0,.9,.5) both goal-check}@keyframes goal-check{0%{opacity:0;transform:scale(.4)}75%{opacity:1;animation-timing-function:ease-out;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.compass .gc-body,.compass .gc-sparkle,.compass .gc-bead{transform-box:fill-box;transform-origin:50%}.compass .gc-body{animation:3s ease-out both gc-appear}.compass .gc-needle{transform-box:view-box;transform-origin:80px 100px;animation:3s both gc-needle}.compass .gc-sparkle{animation:3s cubic-bezier(.34,1.56,.64,1) both nt-sparkle}.compass .gc-sparkle-2{animation-delay:80ms}.compass .gc-sparkle-3{animation-delay:.16s}.compass .gc-bead{opacity:0;transition:opacity .2s ease-out,transform .3s cubic-bezier(.55,0,.9,.5);transform:scale(1.5)}.compass .gc-bead.on{opacity:1;transform:scale(1)}@keyframes gc-appear{0%{opacity:0;transform:scale(.9)}10%,to{opacity:1;transform:scale(1)}}@keyframes gc-needle{0%,8%{opacity:0;transform:rotate(140deg)}14%,18%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(140deg)}32%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(-38deg)}44%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(20deg)}55%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(-10deg)}65%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(5deg)}74%{opacity:1;animation-timing-function:ease-in-out;transform:rotate(-2deg)}82%,to{opacity:1;transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.compass *,.signup-goal.on .signup-goal-corner{transition:none!important;animation:none!important}}.signup-tile-art{flex:none;width:48px;height:48px;display:grid}.signup-tile-art .signup-spot{width:100%;height:100%}.signup-goal.on .signup-tile-art{animation:.32s cubic-bezier(.55,0,.9,.5) both tile-art-snap}@keyframes tile-art-snap{0%{transform:scale(1)}45%{transform:scale(.9)}75%{animation-timing-function:ease-out;transform:scale(1.06)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.signup-goal.on .signup-tile-art{animation:none}}.house .hs-body,.house .hs-sparkle,.house .hs-click,.house .hs-smoke{transform-box:fill-box;transform-origin:bottom}.house .hs-body{animation:3s ease-out both hs-appear}.house .hs-door{transform-box:view-box;transform-origin:70px 152px;animation:3s both hs-door}.house .hs-click{opacity:0;transform-origin:0;animation:3s ease-out both hs-click}.house .hs-smoke{animation:3s ease-out both hs-smoke}.house .hs-sparkle{transform-origin:50%;animation:3s cubic-bezier(.34,1.56,.64,1) both nt-sparkle}.house .hs-sparkle-2{animation-delay:80ms}.house .hs-sparkle-3{animation-delay:.16s}.house .hs-light{opacity:0;transition:opacity .18s ease-out}.house .hs-light.on{opacity:1}@keyframes hs-appear{0%{opacity:0;transform:scale(.92)}10%{opacity:1;transform:scale(1)}58%{animation-timing-function:ease-out;transform:scale(1)}61%{animation-timing-function:ease-out;transform:scale(1.01,.985)}67%,to{opacity:1;transform:scale(1)}}@keyframes hs-door{0%{opacity:0;transform:scaleX(1)}10%,16%{opacity:1;animation-timing-function:cubic-bezier(.45,0,.25,1);transform:scaleX(1)}36%,46%{opacity:1;animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:scaleX(.14)}57%{opacity:1;animation-timing-function:ease-out;transform:scaleX(1.03)}61%,to{opacity:1;transform:scaleX(1)}}@keyframes hs-click{0%,57%{opacity:0;transform:scale(.6)}61%{opacity:1;transform:scale(1)}70%,to{opacity:0;transform:scale(1.15)}}@keyframes hs-smoke{0%,64%{opacity:0;transform:translateY(8px)scaleY(.6)}82%,to{opacity:1;transform:translateY(0)scaleY(1)}}@media (prefers-reduced-motion:reduce){.house *,.signup-tile-choice.on .signup-goal-corner{transition:none!important;animation:none!important}}.signup-pay{visibility:hidden;opacity:0;transition:opacity .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1),visibility 0s .28s;transform:translateY(8px)}.signup-pay.shown{visibility:visible;opacity:1;transition:opacity .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1);transform:none}@media (prefers-reduced-motion:reduce){.signup-pay{transition:none}}.envelope .ic-env,.envelope .ic-sparkle{transform-box:fill-box;transform-origin:50%}.envelope .ic-env{animation:3s ease-out both gc-appear}.envelope .ic-flap-out,.envelope .ic-flap-in{transform-box:view-box;transform-origin:68px 88px}.envelope .ic-flap-out{animation:3s both ic-flap-out}.envelope .ic-flap-in{animation:3s both ic-flap-in}.envelope .ic-note{animation:3s both ic-note}.envelope .ic-sparkle{animation:3s cubic-bezier(.34,1.56,.64,1) both nt-sparkle}.envelope .ic-sparkle-2{animation-delay:80ms}.envelope .ic-sparkle-3{animation-delay:.16s}@keyframes ic-flap-out{0%,16%{opacity:1;animation-timing-function:cubic-bezier(.45,0,.75,.5);transform:scaleY(1)}27%{opacity:1;transform:scaleY(0)}27.01%,to{opacity:0;transform:scaleY(0)}}@keyframes ic-flap-in{0%,27%{opacity:0;animation-timing-function:cubic-bezier(.25,.5,.25,1);transform:scaleY(0)}27.01%{opacity:1;animation-timing-function:cubic-bezier(.25,.5,.25,1);transform:scaleY(0)}40%,to{opacity:1;transform:scaleY(1)}}@keyframes ic-note{0%,42%{animation-timing-function:cubic-bezier(.22,1,.36,1);transform:translateY(34px)}66%,to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.envelope *,.signup-tile-choice.on .signup-goal-corner{transition:none!important;animation:none!important}}.signup-art.clasp{flex-shrink:0;width:112px;margin:0}@media (width<=420px){.signup-art.clasp{width:84px}}.clasp .cl-purse,.clasp .cl-body,.clasp .cl-click,.clasp .cl-sparkle{transform-box:fill-box}.clasp .cl-purse{transform-origin:bottom;animation:3.3s ease-out both cl-appear}.clasp .cl-back{transform-box:view-box;transform-origin:120px 124px;animation:3.3s both cl-back}.clasp .cl-bead-back{animation:3.3s both cl-bead-back}.clasp .cl-bead-front{animation:3.3s both cl-bead-front}.clasp .cl-body{transform-origin:bottom;animation:3.3s both cl-squish}.clasp .cl-click{transform-origin:50%;opacity:0;animation:3.3s ease-out both cl-click}.clasp .cl-latch{animation:3.3s both cl-latch}.clasp .cl-lock-click{transform-box:fill-box;transform-origin:50%;opacity:0;animation:3.3s ease-out both cl-lock-click}.clasp .cl-sway{transform-box:view-box;transform-origin:120px 82px;animation:3.3s both cl-sway}.clasp .cl-sparkle{transform-origin:50%;animation:3.3s cubic-bezier(.34,1.56,.64,1) both cl-sparkle}.clasp .cl-sparkle-2{animation-delay:80ms}.clasp .cl-sparkle-3{animation-delay:.16s}@keyframes cl-appear{0%{opacity:0;transform:scale(.94)}8%,to{opacity:1;transform:scale(1)}}@keyframes cl-back{0%,22%{animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:scaleY(1.46)}32%{animation-timing-function:ease-out;transform:scaleY(1.01)}34%{animation-timing-function:ease-out;transform:scaleY(.985)}37%,to{transform:scaleY(1)}}@keyframes cl-bead-back{0%,22%{animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:translate(-2.5px,-21.6px)}32%{animation-timing-function:ease-out;transform:translate(-.2px,-.6px)}34%{animation-timing-function:ease-out;transform:translate(.8px,.8px)}37%,to{transform:translate(0)}}@keyframes cl-bead-front{0%,22%{animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:translate(2.5px,3.5px)}32%{animation-timing-function:ease-out;transform:translate(.3px,.4px)}34%{animation-timing-function:ease-out;transform:translate(-.8px,-.6px)}37%,to{transform:translate(0)}}@keyframes cl-click{0%,33%{opacity:0;transform:scale(.5)}36%{opacity:1;transform:scale(1)}44%,to{opacity:0;transform:scale(1.35)}}@keyframes cl-squish{0%,33%{transform:scale(1)}38%{transform:scale(1.035,.955)}45%{transform:scale(.99,1.015)}51%,to{transform:scale(1)}}@keyframes cl-latch{0%,42%{animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:translateY(6px)}48%{animation-timing-function:ease-out;transform:translateY(-.6px)}51%,to{transform:translateY(0)}}@keyframes cl-lock-click{0%,47%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1)}58%,to{opacity:0;transform:scale(1.35)}}@keyframes cl-sway{0%,48%{animation-timing-function:ease-out;transform:rotate(0)}52%{animation-timing-function:ease-in-out;transform:rotate(7deg)}58%{animation-timing-function:ease-in-out;transform:rotate(-4.5deg)}64%{animation-timing-function:ease-in-out;transform:rotate(2.5deg)}70%{animation-timing-function:ease-in-out;transform:rotate(-1deg)}75%,to{transform:rotate(0)}}@keyframes cl-sparkle{0%,78%{opacity:0;transform:scale(0)}87%{opacity:1;transform:scale(1.25)}94%,to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.clasp *{animation:none!important}}.signup-welcome{text-align:center}.signup-welcome h2{font-size:var(--font-size-5xl,34px)}.signup-welcome .signup-lead{max-width:34em;margin-inline:auto}.signup-features{width:fit-content;margin:0 auto var(--space-16);gap:var(--space-10);text-align:left;padding:0;list-style:none;display:grid}.signup-features li{align-items:center;gap:var(--space-12);font-size:var(--font-size-lg);display:flex}.signup-welcome .signup-promise{justify-content:center}.signup-cta{padding-block:var(--space-14);font-size:var(--font-size-lg)}.signup{flex-direction:column;flex:1;display:flex}.signup-main{gap:var(--space-20);flex-direction:column;flex:1;display:flex}.signup-bar{margin-top:auto}.signup-main.is-welcome{justify-content:center}.signup-bar{justify-content:space-between;align-items:center;gap:var(--space-12);padding-top:var(--space-16);border-top:1px solid var(--color-border);display:flex}.signup-bar-back{align-items:center;gap:var(--space-6);padding:var(--space-10) var(--space-4);font:inherit;font-weight:var(--font-weight-semibold);color:var(--color-text-dim);cursor:pointer;background:0 0;border:none;display:inline-flex}.signup-bar-end{align-items:center;gap:var(--space-16);display:flex}.signup-bar .signup-skip{margin:0}.signup-next{padding:var(--space-12) var(--space-28);flex-grow:0;transition:background-color .2s,color .2s}.signup-next:disabled{opacity:1;background:color-mix(in srgb, var(--color-accent) 18%, var(--color-surface));color:color-mix(in srgb, var(--color-accent) 55%, var(--color-surface));cursor:not-allowed}.signup-bar-back:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-md)}@media (width<=600px){.signup-bar{z-index:2;margin-inline:calc(-1 * var(--space-20));padding:var(--space-12) var(--space-20) calc(var(--space-12) + env(safe-area-inset-bottom));background:var(--color-surface);position:sticky;bottom:0}}.signup-preview{display:none}@media (width>=1024px){.signup{grid-template-columns:minmax(480px,46%) 1fr;gap:0;min-height:100svh;display:grid}.signup-main{padding:var(--space-48) clamp(var(--space-40), 5vw, var(--space-64));background:var(--color-surface);box-shadow:1px 0 0 var(--color-border);z-index:1;position:relative}.signup-main>*{width:100%;max-width:520px;margin-inline:auto}.signup-main>.signup-stage{width:calc(min(100%, 520px) + 2 * var(--space-8));max-width:none;margin-inline:max(calc(-1 * var(--space-8)), calc((100% - 520px) / 2 - var(--space-8)))}.signup-preview{justify-content:flex-end;align-items:center;gap:var(--space-20);padding:var(--space-48) var(--space-48) 16vh;background:radial-gradient(circle at 20% 15%, var(--color-accent-soft), transparent 55%), radial-gradient(circle at 85% 90%, var(--color-cognac-soft,#8a5a341f), transparent 55%), var(--color-bg);flex-direction:column;display:flex}.signup-main:not(.is-welcome) .signup-stage{margin-block:auto}.signup-main:not(.is-welcome) .signup-bar{margin-top:0}.signup-main:not(.is-welcome) .signup-step h2{font-size:40px}.signup-main:not(.is-welcome) .field{margin-bottom:var(--space-20)}.signup-main:not(.is-welcome) .field label{font-size:var(--font-size-sm);margin-bottom:var(--space-8)}.signup-main:not(.is-welcome) .field>input,.signup-main:not(.is-welcome) .signup-money input{padding:var(--space-14) var(--space-16);font-size:var(--font-size-xl)}.signup-main:not(.is-welcome) .signup-art-head{margin-bottom:var(--space-24);flex-direction:column-reverse;align-items:flex-start;gap:0}.signup-name-preview{display:none}.signup-main:not(.is-welcome) .signup-art-head.beside{align-items:center;gap:var(--space-16);margin-bottom:var(--space-4);flex-direction:row}.signup-art-head.beside .signup-art.compass,.signup-art-head.beside .signup-art.house,.signup-art-head.beside .signup-art.envelope,.signup-art-head.beside .signup-art.clasp{width:132px;margin:0}.signup-art.name-tag,.signup-art.compass{width:144px;margin-bottom:calc(-1 * var(--space-24));align-self:flex-end}.signup{grid-template-rows:minmax(0,1fr);height:100svh;max-height:100svh}:root:has(.test-site-strip) .signup{height:calc(100svh - var(--test-site-strip-height));min-height:0;max-height:calc(100svh - var(--test-site-strip-height))}.signup-main{overscroll-behavior:contain;overflow-anchor:none;scrollbar-gutter:stable;min-height:0;overflow-y:auto}.signup-main>*{flex-shrink:0}.signup-main:not(.is-welcome) .signup-bar{bottom:calc(-1 * var(--space-48));padding-bottom:var(--space-48);margin-bottom:calc(-1 * var(--space-48));background:var(--color-surface);position:sticky}.signup-main.is-top:not(.is-welcome) .signup-stage{margin-block:0 auto}}@media (width<=1023px){html:has(.signup){scrollbar-gutter:stable}}.preview-caption{text-align:center;max-width:420px;font-family:var(--font-family-display);font-size:var(--font-size-lg);color:var(--color-text-dim);margin:0}.receipt{--paper:#fffbf2;--paper-ink:#3a2c20;--paper-faint:#8c7a66;--paper-rule:#d8c9b1;--receipt-shadow:0 10px 28px #241f1824;flex-direction:column;align-items:center;width:min(380px,100%);display:flex;position:relative}:root[data-theme=dark] .receipt{--paper:#efe5d3;--receipt-shadow:0 10px 28px #00000073}.receipt-feed{flex-direction:column;justify-content:flex-end;width:calc(88% + 56px);max-height:calc(100svh - 300px);margin-bottom:-12px;padding-inline:28px;display:flex;position:relative;overflow:hidden}.receipt-paper{transform-origin:0 100%;flex:none;overflow:hidden}.receipt-sheet{box-shadow:var(--receipt-shadow)}.receipt-sheet.torn .receipt-body{-webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/14px 100%;mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/14px 100%}.receipt-body{padding:var(--space-20) var(--space-24) var(--space-28);background:var(--paper);color:var(--paper-ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-sm);position:relative}.receipt-printer{z-index:1;border-radius:var(--radius-pill);width:100%;height:30px;box-shadow:inset 0 3px 0 #c9a24f, inset 0 -4px 6px #00000040, var(--receipt-shadow);background:#6e4429;position:relative}.receipt-slot{border-radius:var(--radius-pill);background:#2e1b10;height:5px;position:absolute;top:9px;left:8%;right:8%}.receipt-head{justify-items:center;gap:var(--space-4);padding-bottom:var(--space-12);border-bottom:1.5px dashed var(--paper-rule);text-align:center;display:grid}.receipt-head .brand-mark{width:30px;height:30px;font-size:var(--font-size-lg);border-radius:var(--radius-md)}.receipt-head strong{font-family:var(--font-family-display);font-size:var(--font-size-lg);letter-spacing:.06em}.receipt-date{font-size:var(--font-size-xs);color:var(--paper-faint)}.receipt-section{padding:var(--space-12) 0;border-bottom:1.5px dashed var(--paper-rule)}.receipt-section-title{margin:0 0 var(--space-6);font-size:var(--font-size-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-faint)}.receipt-section ul{margin:0;padding:0;list-style:none}.receipt-line{align-items:baseline;gap:var(--space-6);display:flex;overflow:hidden}.receipt-line>*{padding-block:3px}.receipt-dots{border-bottom:1.5px dotted var(--paper-rule);flex:1;min-width:12px;transform:translateY(-4px)}.receipt-dots.none{border-bottom-color:#0000}.receipt-value{text-align:right;text-wrap:balance;overflow-wrap:anywhere;min-width:0;font-weight:700}.receipt-more{color:var(--paper-faint);font-size:var(--font-size-xs);padding:var(--space-6) 0 0;text-align:right;margin:0}.receipt-total{padding:var(--space-12) 0 var(--space-4);letter-spacing:.06em;justify-content:space-between;align-items:baseline;font-weight:700;display:flex}.receipt-total strong{font-family:var(--font-family-display);font-size:var(--font-size-2xl);letter-spacing:0}.receipt-saving{padding:var(--space-4) 0;color:var(--paper-faint);justify-content:space-between;align-items:baseline;display:flex}.receipt-saving strong{color:var(--paper-ink)}.receipt-thanks{margin:var(--space-12) 0 0;text-align:center;color:var(--paper-faint);font-size:var(--font-size-xs)}.receipt-stamp{top:var(--space-14);left:var(--space-12);padding:var(--space-2) var(--space-10);border-radius:var(--radius-md);color:#7d5ba6;font-family:var(--font-family-display);font-size:var(--font-size-xs);letter-spacing:.14em;text-transform:uppercase;opacity:.6;pointer-events:none;border:2px solid #7d5ba6;font-weight:700;position:absolute;transform:rotate(-10deg)}@media (width>=1024px) and (height<=960px){.receipt-line>*{padding-block:1px}.receipt-section{padding:var(--space-8) 0}.receipt-head{padding-bottom:var(--space-8)}.receipt-total{padding-top:var(--space-8)}.receipt-body{padding-block:var(--space-14) var(--space-16)}.receipt-thanks{margin-top:var(--space-6)}.receipt-more{padding-top:var(--space-2)}}.receipt-stamp.receipt-stamp-saved{padding:var(--space-6) var(--space-20);white-space:nowrap;opacity:.75;border-width:3px;font-size:1.6rem;animation:.55s both receipt-stamp;top:60%;left:50%;transform:translate(-50%,-50%)rotate(-8deg)}@keyframes receipt-stamp{0%{opacity:0;animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:translate(-50%,-50%)rotate(-8deg)scale(1.7)}55%{opacity:.9;animation-timing-function:ease-out;transform:translate(-50%,-50%)rotate(-8deg)scale(.94,.9)}75%{opacity:.8;animation-timing-function:ease-in-out;transform:translate(-50%,-50%)rotate(-8deg)scale(1.02)}to{opacity:.75;transform:translate(-50%,-50%)rotate(-8deg)scale(1)}}@media (prefers-reduced-motion:reduce){.receipt-stamp.receipt-stamp-saved{animation:none}}.receipt.kept .receipt-feed,.receipt.kept .receipt-paper{overflow:visible}.receipt.kept .receipt-feed{z-index:2}.keep-purse{width:340px;margin:0;position:absolute;bottom:-151px;left:50%;translate:-50%}.keep-back{z-index:1}.keep-front{z-index:3}.keep-purse .kp-body,.keep-purse .kp-click,.keep-purse .kp-sparkle{transform-box:fill-box}.keep-purse:not(.rest){transform-origin:bottom;animation:4.6s ease-out both kp-appear}.keep-purse .kp-back{transform-box:view-box;transform-origin:120px 124px}.keep-purse:not(.rest) .kp-back{animation:4.6s both kp-back}.keep-purse:not(.rest) .kp-bead-back{animation:4.6s both kp-bead-back}.keep-purse:not(.rest) .kp-bead-front{animation:4.6s both kp-bead-front}.keep-purse .kp-body{transform-origin:bottom}.keep-purse:not(.rest) .kp-body{animation:4.6s both kp-squish}.keep-purse .kp-click{transform-origin:50%;opacity:0}.keep-purse:not(.rest) .kp-click{animation:4.6s ease-out both kp-click}.keep-purse .kp-sparkle{transform-origin:50%}.keep-purse:not(.rest) .kp-sparkle{animation:4.6s cubic-bezier(.34,1.56,.64,1) both kp-sparkle}.keep-purse:not(.rest) .kp-sparkle-2{animation-delay:80ms}.keep-purse:not(.rest) .kp-sparkle-3{animation-delay:.16s}@keyframes kp-appear{0%,10%{opacity:0;transform:scale(.94)}18%,to{opacity:1;transform:scale(1)}}@keyframes kp-back{0%,76%{animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:scaleY(1.46)}83%{animation-timing-function:ease-out;transform:scaleY(1.01)}84.5%{animation-timing-function:ease-out;transform:scaleY(.985)}87%,to{transform:scaleY(1)}}@keyframes kp-bead-back{0%,76%{animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:translate(-2.5px,-21.6px)}83%{animation-timing-function:ease-out;transform:translate(-.2px,-.6px)}84.5%{animation-timing-function:ease-out;transform:translate(.8px,.8px)}87%,to{transform:translate(0)}}@keyframes kp-bead-front{0%,76%{animation-timing-function:cubic-bezier(.55,0,.9,.5);transform:translate(2.5px,3.5px)}83%{animation-timing-function:ease-out;transform:translate(.3px,.4px)}84.5%{animation-timing-function:ease-out;transform:translate(-.8px,-.6px)}87%,to{transform:translate(0)}}@keyframes kp-click{0%,83%{opacity:0;transform:scale(.5)}85%{opacity:1;transform:scale(1)}91%,to{opacity:0;transform:scale(1.35)}}@keyframes kp-squish{0%,83%{transform:scale(1)}86.5%{transform:scale(1.035,.955)}90%{transform:scale(.99,1.015)}93%,to{transform:scale(1)}}@keyframes kp-sparkle{0%,91%{opacity:0;transform:scale(0)}96%{opacity:1;transform:scale(1.25)}98.5%,to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.keep-purse,.keep-purse *{animation:none!important}}.fold-stage{z-index:2;pointer-events:none;position:absolute}.fold-stage *{animation:none!important}.fold-rig,.fold-group{transform-style:preserve-3d;position:absolute;inset:0}.fold-face{backface-visibility:hidden;position:absolute;overflow:hidden}.fold-shadow{box-shadow:var(--receipt-shadow);position:absolute}.fold-back{background:color-mix(in srgb, var(--paper) 97%, #8c7a66);place-items:center;display:grid;transform:rotateY(180deg)}.fold-back.fold-back-x{transform:rotateX(180deg)}.fold-mark{opacity:.55}.preview-caption{min-height:1lh}.signup-spot{flex:none;width:52px;height:52px}.signup-login{justify-content:center;align-items:center;gap:var(--space-6);margin:var(--space-16) 0 0;color:var(--color-text-dim);flex-wrap:wrap;display:flex}.signup-login-link{align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-14);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-accent-text);font:inherit;font-weight:var(--font-weight-semibold);cursor:pointer;transition:border-color .15s,background-color .15s;display:inline-flex}.signup-login-link:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.signup-login-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.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{border-color:var(--focus-border);box-shadow:var(--focus-ring);outline:none}.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-notice{margin:0 0 var(--space-4);font-size:var(--font-size-md);color:var(--color-text-dim);text-align:center}.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}.auth-card-signup{max-width:580px;padding:var(--space-40) var(--space-48)}.auth-screen-signup{padding-top:max(var(--space-24), 8vh);align-items:flex-start}@media (width<=600px){.auth-screen-signup{align-items:stretch;padding:0}.auth-card.auth-card-signup{max-width:none;min-height:100svh;padding:var(--space-24) var(--space-20) 0;box-shadow:none;border:none;border-radius:0}}@media (width>=1024px){.auth-screen-signup{align-items:stretch;padding:0}.auth-card.auth-card-signup{max-width:none;min-height:100svh;box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.auth-card-signup:before,.auth-card-signup:after{display:none}}.auth-lead{margin:0 0 var(--space-14);font-size:var(--font-size-md);color:var(--color-text-dim);text-align:center;line-height:1.45}.auth-links{justify-content:center;gap:var(--space-4) var(--space-16);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.auth-links .auth-toggle:disabled{opacity:.6;cursor:default}.code-boxes{max-width:22rem;position:relative}.code-boxes-input{z-index:1;opacity:0;cursor:text;border:0;width:100%;height:100%;padding:0;font-size:16px;position:absolute;inset:0}.code-boxes-cells{pointer-events:none;grid-template-columns:repeat(3, 1fr) var(--space-8) repeat(3, 1fr);gap:var(--space-8);display:grid}.code-box:nth-child(4){grid-column:5}.code-box{aspect-ratio:5/6;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:var(--font-family-display);font-variant-numeric:tabular-nums;place-items:center;font-size:1.6rem;font-weight:600;transition:border-color .15s,box-shadow .15s;display:grid;position:relative}.code-box.current{border-color:var(--focus-border);box-shadow:var(--focus-ring)}.code-box.current:not(.filled):after{content:"";background:var(--color-accent);border-radius:1px;width:2px;height:40%;animation:1.1s step-end infinite code-caret}@keyframes code-caret{50%{opacity:0}}.code-boxes.invalid .code-box{border-color:var(--color-danger)}.code-boxes.checking .code-box{opacity:.6}@media (prefers-reduced-motion:reduce){.code-box.current:not(.filled):after{animation:none}}.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-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);cursor:pointer;border:none;flex-grow:1}.btn-danger:hover{opacity:.92}.still-there-time{font-variant-numeric:tabular-nums}.still-there:focus{outline:none}.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.taken{cursor:not-allowed;opacity:.35;background-image:linear-gradient(135deg, transparent 45%, var(--color-surface) 45%, var(--color-surface) 55%, transparent 55%)!important}.color-picker-option.taken:hover{transform:none}.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{border-color:var(--focus-border);box-shadow:var(--focus-ring);outline:none}.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}.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}.side-panel-scrim{z-index:45;background:color-mix(in srgb, var(--color-ink-900) 32%, transparent);position:fixed;inset:0}.side-panel{z-index:46;overscroll-behavior:contain;width:min(420px,100%);padding:var(--space-24) var(--space-24) calc(var(--space-24) + env(safe-area-inset-bottom,0px));background:var(--color-surface);border-left:1px solid var(--color-card-edge);border-radius:var(--radius-card) 0 0 var(--radius-card);box-shadow:-18px 0 40px -24px var(--color-card-shadow);position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.side-panel-grab{width:40px;height:5px;margin:calc(-1 * var(--space-12)) auto var(--space-12);border-radius:var(--radius-pill);background:var(--color-border);display:none}.side-panel-head{align-items:center;gap:var(--space-12);margin-bottom:var(--space-20);display:flex}.side-panel-head h2{min-width:0;font-family:var(--font-family-display);font-size:var(--font-size-3xl);overflow-wrap:anywhere;flex:1}.side-panel-close{border:1px solid var(--color-border);background:var(--color-surface);width:34px;height:34px;color:var(--color-text-dim);cursor:pointer;border-radius:50%;flex:none;place-items:center;display:grid}.side-panel-close:hover{color:var(--color-text)}.side-panel-close:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (width<=620px){.side-panel{border-left:0;border-top:1px solid var(--color-card-edge);border-radius:var(--radius-card) var(--radius-card) 0 0;width:100%;max-height:90dvh;box-shadow:0 -18px 40px -24px var(--color-card-shadow);top:auto;left:0}.side-panel-grab{display:block}}.budget-status{color:var(--color-text-dim);padding:var(--space-24) var(--space-4)}.page-head{margin-bottom:var(--space-24)}.budget-head{justify-content:space-between;align-items:flex-end;gap:var(--space-12);flex-wrap:wrap;display:flex}.budget-actions{gap:var(--space-8);display:flex}.budget-btn{align-items:center;gap:var(--space-6);padding:var(--space-10) var(--space-16);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-family:var(--font-family-heading);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);cursor:pointer;display:inline-flex}.budget-btn.primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.budget-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.budget-summary{align-items:center;gap:var(--space-16) var(--space-32);padding:var(--space-4) var(--space-2) var(--space-24);margin-bottom:var(--space-20);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.budget-summary-total{gap:var(--space-2);padding-right:var(--space-32);border-right:1px solid var(--color-border);display:grid}.budget-eyebrow{font-family:var(--font-family-heading);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-over-glow)}.budget-total{font-family:var(--font-family-display);font-size:42px;font-weight:var(--font-weight-semibold);line-height:1.1}.budget-summary-note{font-size:var(--font-size-sm);color:var(--color-text-over-glow)}.budget-kinds{gap:var(--space-12) var(--space-14);flex-wrap:wrap;display:flex}.kind-filter{isolation:isolate;align-items:center;gap:1px var(--space-14);padding:var(--space-12) var(--space-20) var(--space-12) var(--space-12);border:1px solid var(--color-card-edge);background:linear-gradient(170deg, var(--color-card-face-hi), var(--color-surface) 50%, var(--color-card-face-lo));box-shadow:inset 0 1px 0 var(--color-card-highlight), 0 3px 0 var(--color-card-wall), 0 6px 14px -6px var(--color-card-shadow);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:24px;grid-template-columns:auto auto;transition:transform .15s ease-out,box-shadow .15s ease-out,border-color .15s ease-out;display:grid;position:relative}.kind-filter:before{content:"";z-index:-1;border-radius:inherit;opacity:0;transition:opacity .15s ease-out;position:absolute;inset:0}.kind-filter-fixed:before{background:var(--color-accent-soft)}.kind-filter-variable:before{background:var(--color-expense-soft)}@media (hover:hover){.kind-filter:hover{box-shadow:inset 0 1px 0 var(--color-card-highlight), 0 4px 0 var(--color-card-wall), 0 10px 18px -8px var(--color-card-shadow);transform:translateY(-1px)}}.kind-filter:active,.kind-filter[aria-pressed=true]{box-shadow:inset 0 2px 4px var(--color-card-shade);transform:translateY(3px)}.kind-filter[aria-pressed=true]:before{opacity:1}.kind-filter-fixed[aria-pressed=true]{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-border))}.kind-filter-variable[aria-pressed=true]{border-color:color-mix(in srgb, var(--color-expense) 45%, var(--color-border))}.kind-filter:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.kind-filter-icon{border-radius:50%;grid-row:1/span 2;place-items:center;width:42px;height:42px;display:grid}.kind-filter-fixed .kind-filter-icon{background:var(--color-accent-soft);color:var(--color-accent)}.kind-filter-variable .kind-filter-icon{background:var(--color-expense-soft);color:var(--color-expense)}.kind-filter-top{align-items:baseline;gap:0 var(--space-10);flex-wrap:wrap;min-width:0;display:flex}.kind-filter-label{font-family:var(--font-family-heading);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.1em;text-transform:uppercase}.kind-filter-fixed .kind-filter-label{color:var(--color-accent)}.kind-filter-variable .kind-filter-label{color:var(--color-expense)}.kind-filter-value{font-family:var(--font-family-display);font-size:27px;font-weight:var(--font-weight-semibold);line-height:1.15}.kind-filter-share,.kind-filter-note{font-size:var(--font-size-sm);color:var(--color-text-faint)}.kind-filter-note{grid-column:2}.budget-over-income,.budget-needs-note{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-toolbar{justify-content:space-between;align-items:center;gap:var(--space-12);margin-bottom:var(--space-16);flex-wrap:wrap;display:flex}.budget-toolbar h2{font-family:var(--font-family-display);font-size:var(--font-size-3xl)}.budget-toolbar-actions{align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.budget-sort{align-items:center;gap:var(--space-8);min-width:250px;display:flex}.budget-sort>:last-child{flex:1;min-width:0}.budget-sort-label{font-size:var(--font-size-sm);color:var(--color-text-dim);white-space:nowrap}.budget-pockets{gap:var(--space-14);grid-template-columns:minmax(0,1fr);display:grid}.budget-pocket{padding:var(--space-12) var(--space-16);grid-template-columns:minmax(0,1fr);transition:opacity .15s ease-out;display:grid}.budget-pocket.is-loose{box-shadow:none;border-style:dashed;border-color:var(--color-border);background:0 0}.budget-pocket.is-empty{opacity:.45}.pocket-head{align-items:center;gap:var(--space-8);min-width:0;display:flex}.pocket-heading{min-width:0;font:inherit;flex:1;margin:0}.pocket-toggle{align-items:center;gap:var(--space-12);width:100%;padding:var(--space-4);border-radius:var(--radius-xl);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;grid-template-columns:auto auto minmax(0,1fr) minmax(60px,260px) auto;grid-template-areas:"chevron icon title bar total";display:grid}.pocket-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.pocket-chevron{border:1px solid var(--color-border);background:var(--color-surface);width:28px;height:28px;color:var(--color-text-dim);border-radius:50%;grid-area:chevron;place-items:center;transition:transform .25s,background-color 50ms;display:grid;transform:rotate(-90deg)}.pocket-toggle:hover .pocket-chevron{background:var(--color-hover)}.is-expanded .pocket-chevron{transform:none}.pocket-toggle .pocket-icon{grid-area:icon}.pocket-icon{border-radius:50%;flex:none;place-items:center;width:38px;height:38px;display:grid}.pocket-title{grid-area:title;min-width:0;display:grid}.pocket-name-text{font-family:var(--font-family-display);font-size:19px;font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;line-height:1.25;overflow:hidden}.pocket-count,.pocket-total-note{font-size:var(--font-size-xs);color:var(--color-text-over-glow)}.pocket-total{text-align:right;grid-area:total;display:grid}.pocket-amount{font-family:var(--font-family-display);font-size:22px;font-weight:var(--font-weight-semibold);white-space:nowrap}.pocket-edit{width:32px;height:32px;color:var(--color-text-faint);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.pocket-edit:hover{color:var(--color-text);background:var(--color-bg)}.pocket-edit:focus-visible{outline:2px solid var(--color-accent)}.pocket-bar{border-radius:var(--radius-pill);grid-area:bar;gap:2px;height:10px;display:flex;overflow:hidden}.pocket-bar i{min-width:3px;transition:opacity .15s ease-out;display:block}.pocket-body{gap:var(--space-10);padding-top:var(--space-10);grid-template-columns:minmax(0,1fr);animation:.32s both pocket-body-in;display:grid}@keyframes pocket-body-in{0%{opacity:0}}.pocket-lines{gap:2px var(--space-20);grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));margin:0;padding:0;list-style:none;display:grid}.pocket-lines li{transition:opacity .15s ease-out}.only-fixed .kind-variable,.only-variable .kind-fixed{opacity:.25}.pocket-line{align-items:center;gap:var(--space-10);width:100%;min-width:0;padding:var(--space-8);border-radius:var(--radius-lg);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.pocket-line:hover{background:color-mix(in srgb, var(--color-accent-soft) 60%, transparent)}.pocket-line:focus-visible{outline:2px solid var(--color-accent)}.pocket-dot{border-radius:50%;flex:none;width:9px;height:9px}.pocket-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pocket-line-amount{font-family:var(--font-family-heading);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;margin-left:auto}.pocket-needs{padding:2px var(--space-8);border-radius:var(--radius-pill);background:var(--color-caution-soft);color:var(--color-caution);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;margin-left:auto}.kind-tag{padding:2px var(--space-8) 2px var(--space-6);border-radius:var(--radius-pill);font-family:var(--font-family-heading);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.kind-tag-fixed{background:var(--color-accent-soft);color:var(--color-accent)}.kind-tag-variable{background:var(--color-expense-soft);color:var(--color-expense)}.pocket-add{justify-content:center;align-items:center;gap:var(--space-6);padding:var(--space-8);border:1px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);cursor:pointer;background:0 0;display:flex}.pocket-add:hover{color:var(--color-text);border-color:var(--color-text-faint)}.pocket-add:focus-visible{outline:2px solid var(--color-accent)}@media (width<=620px){.budget-summary-total{border-right:0;width:100%;padding-right:0}.budget-total{font-size:clamp(28px,10vw,36px)}.kind-filter-value{font-size:clamp(22px,7.5vw,27px)}.kind-filter{min-width:0}.budget-kinds{width:100%;display:grid}.kind-filter{grid-template-columns:auto 1fr}.budget-sort{flex:210px;min-width:0}.budget-toolbar-actions{width:100%}.pocket-toggle{row-gap:var(--space-10);grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"chevron icon title total""bar bar bar bar"}}@media (prefers-reduced-motion:reduce){.kind-filter,.kind-filter:before,.budget-pocket,.pocket-bar i,.pocket-lines li,.pocket-chevron{transition:none}.pocket-body{animation:none}}.pocket-line .kind-tag,.pocket-line-amount,.pocket-needs{flex:none}.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)}.is-columns{gap:var(--space-20);grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));align-items:start;display:grid}.is-card{padding:var(--space-20) var(--space-24)}.is-card-head{justify-content:space-between;align-items:flex-start;gap:var(--space-12);margin-bottom:var(--space-12);display:flex}.is-card-head h2{font-size:var(--font-size-2xl);margin:0}.is-month-total{margin:var(--space-4) 0 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.is-month-total span{font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);color:var(--color-text-dim)}.is-empty{color:var(--color-text-dim);font-size:var(--font-size-sm);margin:0}.is-list{margin:0;padding:0;list-style:none}.is-row{align-items:center;gap:var(--space-10) var(--space-12);padding:var(--space-14) 0;border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main log""months months";display:grid}.is-row-main{align-items:center;gap:var(--space-12);min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;grid-area:main;padding:0;display:flex}.is-row-main:focus-visible,.is-log:focus-visible,.is-month:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-md)}.is-row-text{min-width:0;display:grid}.is-row-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md)}.is-row-how{font-size:var(--font-size-sm);color:var(--color-text-dim)}.is-log{padding:var(--space-6) var(--space-12);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;grid-area:log}.is-months{gap:var(--space-4);grid-area:months;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.is-month{width:100%;padding:var(--space-6) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font:inherit;text-align:center;cursor:pointer;border:none;display:grid}.is-month:disabled{cursor:default;color:var(--color-text-faint)}.is-month-label{font-size:var(--font-size-xs);color:var(--color-text-dim)}.is-month-amount{font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=520px){.is-months{grid-template-columns:repeat(3,minmax(0,1fr))}.is-months>li:nth-child(-n+3){display:none}}.is-method-hint{margin-top:var(--space-8)}.is-check{gap:var(--space-8);margin-bottom:var(--space-14);font-size:var(--font-size-sm);align-items:center;display:flex}.is-form-actions{justify-content:space-between;align-items:center;gap:var(--space-12);margin-top:var(--space-8);display:flex}.is-remove{color:var(--color-danger);font:inherit;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;text-decoration:underline}.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)}.import-memory{margin:0 0 var(--space-16);padding:var(--space-10) var(--space-14);border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-accent-text)}.import-memory p{align-items:center;gap:var(--space-6);flex-wrap:wrap;margin:0;display:flex}.import-memory table{margin-top:var(--space-10);color:var(--color-text)}.import-groups{margin:var(--space-12) 0;gap:var(--space-8);padding:0;list-style:none;display:grid}.import-group{padding:var(--space-12) var(--space-14);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.import-group:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.import-group-head{justify-content:space-between;align-items:baseline;gap:var(--space-12);margin-bottom:var(--space-8);display:flex}.import-group-vendor{font-weight:var(--font-weight-semibold);overflow-wrap:anywhere;min-width:0}.import-group-meta{font-size:var(--font-size-sm);color:var(--color-text-dim);font-variant-numeric:tabular-nums;flex:none}.import-group-actions{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.import-guess{align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-12) var(--space-6) var(--space-6);border-radius:var(--radius-pill);border:1px solid var(--guess-color);background:var(--guess-soft);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;display:inline-flex}.import-guess svg{color:var(--guess-color)}.import-guess kbd{background:var(--color-surface);width:18px;height:18px;color:var(--color-text-dim);font:inherit;font-size:var(--font-size-xs);border-radius:50%;place-items:center;display:inline-grid}.import-guess:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.import-group-other{flex:180px;min-width:180px;max-width:260px}.import-group-rows{margin-top:var(--space-10)}.import-guessed{margin-left:var(--space-6);padding:0 var(--space-6);border-radius:var(--radius-pill);background:var(--color-bg);color:var(--color-text-dim);font-size:var(--font-size-xs)}.import-similar{align-items:center;gap:var(--space-10);margin:var(--space-12) 0;padding:var(--space-10) var(--space-14);border-radius:var(--radius-lg);background:var(--color-accent-soft);flex-wrap:wrap;display:flex}.import-similar p{flex:200px;margin:0}.import-similar .btn-primary{flex-grow:0}@media (hover:none){.import-keys-hint{display:none}}.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)}.settings-card+.settings-card{margin-top:var(--space-20)}.settings-intro{margin:calc(-1 * var(--space-8)) 0 var(--space-16)}.settings-about-row{padding:var(--space-12) 0;border-top:1px solid var(--color-border)}.settings-about-row .signup-chips{margin-top:var(--space-8)}.settings-names{column-gap:var(--space-16);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.settings-name-actions{align-items:center;gap:var(--space-12);display:flex}.settings-name-actions .settings-hint{margin:0}.settings-name-actions .btn-primary{padding-inline:var(--space-32);flex-grow:0}.recalc-card{margin:var(--space-4) 0 var(--space-12);padding:var(--space-14) var(--space-16);border-radius:var(--radius-lg);background:var(--color-accent-soft)}.recalc-card p{margin:0 0 var(--space-6)}.recalc-list{margin:var(--space-10) 0;gap:var(--space-6);padding:0;list-style:none;display:grid}.recalc-list label{align-items:center;gap:var(--space-8);cursor:pointer;flex-wrap:wrap;display:flex}.recalc-list input{accent-color:var(--color-accent)}.recalc-name{font-weight:var(--font-weight-semibold)}.recalc-yours{font-size:var(--font-size-xs);color:var(--color-text-dim)}.recalc-amounts{font-variant-numeric:tabular-nums;margin-left:auto}.recalc-actions{align-items:center;gap:var(--space-12);display:flex}.recalc-actions .btn-primary{padding-inline:var(--space-20);flex-grow:0}.settings-take-home{max-width:420px;margin-top:var(--space-8)}.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-family:var(--font-family-heading);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dim);margin:0}.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-amount.unspent{color:var(--color-income)}.safe-result{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-dim)}.safe-result.unspent{color:var(--color-income)}.safe-result.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-toggle-row{margin-top:auto;margin-right:calc(-1 * var(--space-12));margin-bottom:calc(-1 * var(--space-12));justify-content:flex-end;display:flex}.safe-expand{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}.safe-expand:hover{background:var(--color-hover)}.safe-card.is-open .safe-expand{transform:rotate(180deg)}.safe-card.is-open .safe-list{animation:.32s both safe-list-in}@keyframes safe-list-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.safe-card.is-open .safe-list{animation:none}}.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.unspent{color:var(--color-income)}.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-3xl);text-wrap:balance;max-width:46ch;margin:0;line-height:1.35}.flow-figure{font-weight:var(--font-weight-bold)}.flow-figure.spent{color:var(--color-expense)}.flow-figure.saved,.flow-figure.income{color:var(--color-income)}.flow-figure.kept{color:var(--color-rebate)}.flow-figure.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-labels{width:100%;height:100%;display:block;position:absolute;inset:0}.flow-stage canvas{display:block;position:absolute;top:0}.flow-text{font-family:var(--font-family-body);font-variant-numeric:proportional-nums}.flow-caption{paint-order:stroke;stroke:var(--color-surface);stroke-width:5px;stroke-linejoin:round}.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}}.flow-tappable{cursor:pointer}.flow-toggle{aspect-ratio:1;border-radius:var(--radius-md);color:var(--color-text-dim);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:color .15s ease-out;display:grid;position:absolute;transform:translate(-50%,-50%)}.flow-toggle:hover,.flow-toggle.is-open{color:var(--color-text)}.flow-toggle:hover svg{stroke-width:2.4px}.flow-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:0}.flow-toggle:disabled{pointer-events:none}.flow-toggle svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:90%;height:90%}.flow-fullname{max-width:min(280px,90%);padding:var(--space-6) var(--space-10);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);font-family:var(--font-family-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:right;color:var(--color-text);cursor:pointer;margin:0;line-height:1.35;position:absolute;box-shadow:0 6px 18px -8px #00000059}.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}.month-picker-panel .cal-month-cell{font:inherit;font-size:var(--font-size-sm);color:var(--color-text);background:0 0;border:none}.month-picker-panel .cal-month-cell:not(:disabled):hover{background:var(--color-hover)}.month-picker-panel .cal-month-cell:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.month-picker-panel .cal-month-cell.selected,.month-picker-panel .cal-month-cell.selected:hover{background:var(--color-accent);color:var(--color-on-accent);font-weight:var(--font-weight-bold)}.month-picker-panel .cal-month-cell:disabled{color:var(--color-text-faint);opacity:.45;cursor:default;background:0 0}.month-picker-panel .cal-nav:disabled{opacity:.35;cursor:default}.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-month-wrap{container-type:inline-size}.ov-month{gap:var(--space-24);grid-template-columns:minmax(0,1fr);grid-template-areas:"hero""chart""spent""groups""saved";align-items:start;display:grid}.ov-month>*{min-width:0}.ov-month.lead-spent{grid-template-areas:"spent""chart""hero""groups""saved"}.ov-month.lead-groups{grid-template-areas:"groups""hero""chart""spent""saved"}.ov-month.lead-saved{grid-template-areas:"saved""hero""chart""spent""groups"}.ov-hero-row{gap:var(--space-24);grid-area:hero;grid-template-columns:minmax(0,1fr);display:grid}.ov-month .ov-cashflow{grid-area:chart;margin-bottom:0}.ov-spent{grid-area:spent}.ov-by-group{grid-area:groups}.ov-saved{grid-area:saved}.ov-hero-row .coin-strip{align-self:center;margin-bottom:0}@container (width>=760px){.ov-hero-row{grid-template-columns:minmax(0,1fr) auto}.ov-hero-row .coin-strip{width:calc(3 * 130px + 2 * var(--space-14))}.ov-hero-row .coin-strip-row{--coins-per-row:3}.ov-hero-row .coin-tile{max-width:130px}}@container (width>=1100px){.ov-month{grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-areas:"hero hero""chart chart""groups spent""groups saved"}.ov-month.lead-spent{grid-template-areas:"chart chart""hero hero""groups spent""groups saved"}.ov-month.lead-groups{grid-template-areas:"groups spent""groups saved""hero hero""chart chart"}.ov-month.lead-saved{grid-template-areas:"saved saved""hero hero""chart chart""groups spent"}.ov-hero-row .coin-strip{width:calc(3 * 150px + 2 * var(--space-14))}.ov-hero-row .coin-tile{max-width:150px}}@container (width>=1500px){.ov-month{grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:"hero hero""chart spent""groups saved"}.ov-month.lead-spent{grid-template-areas:"chart spent""hero hero""groups saved"}.ov-month.lead-groups{grid-template-areas:"groups saved""hero hero""chart spent"}.ov-month.lead-saved{grid-template-areas:"saved saved""hero hero""chart spent""groups groups"}.ov-hero-row .coin-strip{width:calc(6 * 150px + 5 * var(--space-14))}.ov-hero-row .coin-strip-row{--coins-per-row:6}}.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-cashflow{margin-bottom:var(--space-24)}.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}}.year-stepper .cal-nav:disabled{opacity:.35;cursor:default}.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}.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)}.ov-kinds{gap:var(--space-10);margin:var(--space-4) 0 var(--space-12);flex-wrap:wrap;display:flex}.ov-kind{isolation:isolate;align-items:baseline;gap:var(--space-8);padding:var(--space-8) var(--space-14);border:1px solid var(--color-card-edge);background:linear-gradient(170deg, var(--color-card-face-hi), var(--color-surface) 50%, var(--color-card-face-lo));box-shadow:inset 0 1px 0 var(--color-card-highlight), 0 3px 0 var(--color-card-wall), 0 6px 14px -6px var(--color-card-shadow);font:inherit;font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:18px;transition:transform .15s ease-out,box-shadow .15s ease-out;display:flex;position:relative}.ov-kind b{font-size:var(--font-size-lg)}.ov-kind.fixed span{color:var(--color-income)}.ov-kind.variable span{color:var(--color-expense)}.ov-kind:before{content:"";z-index:-1;border-radius:inherit;opacity:0;transition:opacity .15s ease-out;position:absolute;inset:0}.ov-kind.fixed:before{background:var(--color-accent-soft)}.ov-kind.variable:before{background:var(--color-expense-soft)}.ov-kind:active,.ov-kind[aria-pressed=true]{box-shadow:inset 0 2px 4px var(--color-card-shade);transform:translateY(3px)}.ov-kind[aria-pressed=true]:before{opacity:1}.ov-kind:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ov-groups-scroll{overflow-x:auto}.ov-groups .ov-table{min-width:560px}.ov-group-row td{font-weight:var(--font-weight-bold);background:color-mix(in oklab, var(--color-accent-soft) 45%, transparent)}.ov-group-toggle{align-items:center;gap:var(--space-8);min-height:24px;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.ov-group-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.ov-group-chevron{color:var(--color-text-dim);transition:transform .2s ease-out}.ov-group-toggle[aria-expanded=false] .ov-group-chevron{transform:rotate(-90deg)}.ov-group-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.ov-cat-row td:first-child{padding-left:var(--space-40)}.ov-cat-row td{transition:opacity .15s ease-out}.ov-groups.only-fixed .ov-cat-row.variable td,.ov-groups.only-variable .ov-cat-row.fixed td{opacity:.25}.ov-kind-tag{margin-left:var(--space-8);padding:1px var(--space-8);border-radius:var(--radius-pill);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);white-space:nowrap}.ov-kind-tag.fixed{background:var(--color-accent-soft);color:var(--color-income)}.ov-kind-tag.variable{background:var(--color-expense-soft);color:var(--color-expense)}.ov-savings-total{margin:var(--space-4) 0 0;font-size:var(--font-size-4xl);font-weight:var(--font-weight-semibold)}.ov-savings-total small{margin-left:var(--space-8);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);color:var(--color-text-dim)}.ov-savings ul{margin:var(--space-14) 0 0;gap:var(--space-12);padding:0;list-style:none;display:grid}.ov-savings-pool{gap:var(--space-6);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:grid}.ov-savings-row{justify-content:space-between;gap:var(--space-8);display:flex}.ov-savings-track{border-radius:var(--radius-pill);background:var(--color-border);height:8px;overflow:hidden}.ov-savings-track i{border-radius:var(--radius-pill);background:var(--color-income);height:100%;display:block}.ov-savings-target{font-size:var(--font-size-sm);color:var(--color-text-faint)}@media (prefers-reduced-motion:reduce){.ov-kind,.ov-kind:before,.ov-group-chevron,.ov-cat-row td{transition:none}}.ov-groups td:first-child{font-variant-numeric:proportional-nums}@media (width<=640px){.ov-groups .ov-table{display:table}.ov-groups .ov-table thead{display:table-header-group}.ov-groups .ov-table tbody{display:table-row-group}.ov-groups .ov-table tfoot{display:table-footer-group}.ov-groups .ov-table tr{padding:0;display:table-row}.ov-groups .ov-table td{padding:var(--space-10) var(--space-8);border-bottom:1px solid var(--color-border);display:table-cell}.ov-groups .ov-table td:first-child{font-size:inherit;padding-bottom:var(--space-10)}.ov-groups .ov-cat-row td:first-child{font-weight:inherit;padding-left:var(--space-40)}.ov-groups .ov-table td[data-label]:before{content:none}}.review-inbox{width:440px}.review-card{margin:var(--space-12) 0 var(--space-16);padding:var(--space-16);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.review-vendor{font-family:var(--font-family-heading);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.review-date{margin-bottom:var(--space-12);font-size:var(--font-size-sm);color:var(--color-text-dim)}.review-amount{margin-bottom:var(--space-12)}.review-current{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.review-label{font-size:var(--font-size-sm);color:var(--color-text-dim)}.review-pill{align-items:center;gap:var(--space-6);padding:var(--space-4) var(--space-12);border-radius:var(--radius-pill);border:1px solid var(--guess-color);background:var(--guess-soft);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:inline-flex}.review-pill svg{color:var(--guess-color)}.review-yes{width:100%;padding-block:var(--space-12)}.review-or{margin:var(--space-16) 0 var(--space-8);font-size:var(--font-size-sm);color:var(--color-text-dim)}.review-alternatives{align-items:center;gap:var(--space-8);margin-top:var(--space-12);flex-wrap:wrap;display:flex}.review-or+.review-alternatives{margin-top:0}.review-other{flex:180px;min-width:160px}.review-skip{margin:var(--space-16) auto 0;display:block}.review-finished{justify-items:center;gap:var(--space-12);padding:var(--space-16) 0 var(--space-4);text-align:center;display:grid}.review-finished svg{color:var(--color-accent)}.review-finished p{margin:0}.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-over-glow);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}.filter-search{align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-4) var(--space-4) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-faint);flex:100%;display:flex}.filter-search:focus-within{border-color:var(--color-accent)}.filter-search input{min-width:0;padding:var(--space-8) 0;font:inherit;color:var(--color-text);background:0 0;border:none;outline:none;flex:1;font-size:16px}.filter-search input::-webkit-search-cancel-button{display:none}.review-chip{align-items:center;gap:var(--space-6);margin-left:auto;margin-bottom:var(--space-4);padding:var(--space-6) var(--space-12);border-radius:var(--radius-pill);border:1px solid var(--color-border);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-caution);cursor:pointer;background:0 0;display:inline-flex}.review-chips{gap:var(--space-8);flex-wrap:wrap;margin-left:auto;display:flex}.review-chips .review-chip{margin-left:0}.review-chip.review-go{color:var(--color-text)}.review-chip.on{background:var(--color-caution-soft);border-color:var(--color-caution)}.txn-flag{color:var(--color-caution);margin-right:var(--space-6);vertical-align:-1px}.card-list.refreshing{opacity:.55;transition:opacity .15s}.result-line{font-size:var(--font-size-sm);color:var(--color-text-over-glow);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{align-items:center;gap:var(--space-4);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);color:var(--color-text);padding:var(--space-4) var(--space-8);border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0;display:inline-flex}.badge-dot{border-radius:50%;flex:none;width:7px;height:7px}.txn-meta{align-items:center;gap:var(--space-8);flex-shrink:0;min-width:0;display:flex}.txn-date-inline{font-size:var(--font-size-sm);color:var(--color-text-faint);white-space:nowrap;display:none}@media (width<=600px){.txn-date{display:none}.txn-date-inline{display:inline}.txn-main{align-items:flex-start;gap:var(--space-4);flex-direction:column}.txn-vendor,.txn-meta{max-width:100%}.txn-meta{flex-shrink:1}.badge{text-overflow:ellipsis;min-width:0;overflow:hidden}}.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)}:root{--test-site-strip-height:24px}.test-site-strip{box-sizing:border-box;height:var(--test-site-strip-height);background:var(--color-caution-soft);color:var(--color-caution);border-bottom:1px solid var(--color-caution);font-family:var(--font-family-heading);font-size:var(--font-size-xs);letter-spacing:.04em;text-align:center;justify-content:center;align-items:center;padding:0 16px;font-weight:600;display:flex}:root:has(.test-site-strip) .auth-screen{min-height:calc(100svh - var(--test-site-strip-height))}:root:has(.test-site-strip) .auth-card.auth-card-signup{min-height:calc(100svh - var(--test-site-strip-height))}:root:has(.test-site-strip) .app-shell{min-height:calc(100svh - var(--test-site-strip-height))}
