/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial}}}@layer theme{:root,:host{--font-sans:"Source Sans 3", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-blue-500:oklch(62.3% .214 259.815);--color-blue-700:oklch(48.8% .243 264.376);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--spacing:.25rem;--leading-normal:1.5;--radius-3xl:1.5rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.block{display:block}.flex{display:flex}.hidden{display:none}.table{display:table}.min-h-0{min-height:0}.w-\[500px\]{width:500px}.w-full{width:100%}.max-w-\[100vw\]{max-width:100vw}.max-w-\[300px\]{max-width:300px}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-3{gap:calc(var(--spacing) * 3)}.gap-9{gap:calc(var(--spacing) * 9)}.gap-16{gap:calc(var(--spacing) * 16)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.self-stretch{align-self:stretch}.overflow-x-auto{overflow-x:auto}.rounded-3xl{border-radius:var(--radius-3xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.stroke-gray-600{stroke:var(--color-gray-600)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-4{padding-inline:calc(var(--spacing) * 4)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-center{text-align:center}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.text-blue-700{color:var(--color-blue-700)}.text-gray-700{color:var(--color-gray-700)}@media (hover:hover){.group-hover\:stroke-current:is(:where(.group):hover *){stroke:currentColor}.hover\:underline:hover{text-decoration-line:underline}}@media (prefers-color-scheme:dark){.dark\:block{display:block}.dark\:hidden{display:none}.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:stroke-gray-300{stroke:var(--color-gray-300)}.dark\:text-blue-500{color:var(--color-blue-500)}.dark\:text-gray-200{color:var(--color-gray-200)}}}:root{--topbar-height:64px;--bg-1:#eefaf9;--bg-2:#fdf8ef;--bg-blob-1:#d5f5f4;--bg-blob-2:#ffecc8;--ink-1:#0f172a;--ink-2:#334155;--line:#dbe8e6;--line-strong:#b6cfca;--surface:#ffffffdb;--surface-strong:#fff;--surface-muted:#ffffffbd;--brand:#0e7490;--brand-strong:#155e75;--accent:#ca8a04;--on-brand:#f8fafc;--status-bg:#ffffffb8;--status-text:#0b3a46;--notice-bg:#fffbeb;--notice-line:#f4d28b;--notice-text:#854d0e;--overlay:#02061759;--shadow-soft:0 16px 34px -30px #0f172ab3;--shadow-strong:0 22px 44px -28px #020617e6;--shadow-toast:0 10px 15px -3px #0f172a38, 0 4px 6px -4px #0f172a4d;--focus-ring:#0e749029;--toast-success-line:#22c55e;--toast-error-line:#ef4444;--toast-info-line:#38bdf8;--ok-ink:#0f766e;--ok-1:#0f766e;--ok-2:#0e7490;--warn-ink:#a16207;--warn-1:#ca8a04;--warn-2:#d97706;--danger-ink:#b91c1c;--danger-1:#dc2626;--danger-2:#b91c1c}:root[data-theme=dark]{--bg-1:#051418;--bg-2:#101826;--bg-blob-1:#0e3641;--bg-blob-2:#3a2c15;--ink-1:#e2e8f0;--ink-2:#b7c7d8;--line:#2a3b52;--line-strong:#3a536f;--surface:#0f172ad1;--surface-strong:#0f172a;--surface-muted:#0f172ab8;--brand:#0891b2;--brand-strong:#0e7490;--accent:#f59e0b;--on-brand:#e2e8f0;--status-bg:#0f172ab8;--status-text:#bfe5ef;--notice-bg:#854d0e38;--notice-line:#f59e0b8c;--notice-text:#fdd39f;--overlay:#0206179e;--shadow-soft:0 16px 34px -30px #020617e6;--shadow-strong:0 22px 44px -28px #020617;--shadow-toast:0 10px 15px -3px #00000073, 0 4px 6px -4px #00000080;--focus-ring:#0891b23d;--toast-success-line:#4ade80;--toast-error-line:#f87171;--toast-info-line:#7dd3fc;--ok-ink:#5eead4;--ok-1:#14b8a6;--ok-2:#06b6d4;--warn-ink:#fcd34d;--warn-1:#f59e0b;--warn-2:#f97316;--danger-ink:#fca5a5;--danger-1:#ef4444;--danger-2:#dc2626}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink-1);background:radial-gradient(circle at 14% 16%, var(--bg-blob-1) 0%, transparent 38%), radial-gradient(circle at 86% 8%, var(--bg-blob-2) 0%, transparent 30%), linear-gradient(145deg, var(--bg-1), var(--bg-2));margin:0;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;transition:background .2s,color .2s}.home-shell{max-width:920px;padding:calc(var(--topbar-height) + .55rem) 1rem 4rem;margin:0 auto}.topbar{z-index:20;border-bottom:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:100%;box-shadow:var(--shadow-soft);position:fixed;top:0;left:0;right:0}.topbar-inner{width:100%;min-height:var(--topbar-height);justify-content:space-between;align-items:center;gap:1rem;padding:.68rem 1rem;display:flex}.topbar-brand{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.topbar-logo,.topbar-logo svg{width:28px;height:28px;color:var(--brand,#0b74de);display:block}.topbar-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1rem;font-weight:600;overflow:hidden}.topbar-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.home-hero{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:1.2rem;display:flex}.home-content{animation:.32s both home-fade-in}@keyframes home-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.home-loading{color:var(--ink-2);flex-direction:column;justify-content:center;align-items:center;gap:.9rem;padding:4.5rem 1rem;font-size:.95rem;display:flex}.home-loading-spinner{border:3px solid var(--line-strong);border-top-color:var(--brand);border-radius:999px;width:30px;height:30px;animation:.7s linear infinite home-spin}@keyframes home-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.home-content{animation:none}.home-loading-spinner{animation-duration:1.4s}}.home-brand{letter-spacing:-.02em;margin:0;font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif;font-size:clamp(2rem,3.6vw,2.85rem);line-height:1.04}.home-subtitle{color:var(--ink-2);margin:.35rem 0 0;font-size:1rem}.status-chip{background:var(--status-bg);border:1px solid var(--line);color:var(--status-text);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);border-radius:999px;padding:.5rem .85rem;font-size:.95rem}.panel-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;margin-top:1rem;display:grid}.home-tabs{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-top:.9rem;padding:.25rem;display:flex;position:relative}.home-tabs-thumb{background:var(--surface-strong);width:calc(33.333% - .1667rem);box-shadow:var(--shadow-soft);border-radius:9px;transition:transform .22s cubic-bezier(.4,0,.2,1);position:absolute;top:.25rem;bottom:.25rem;left:.25rem}.home-tabs-row{align-items:center;gap:.7rem;margin-top:.9rem;display:flex}.home-tabs-row .home-tabs{width:100%;margin-top:0}.home-tab-btn{z-index:1;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.9rem;font-weight:600;transition:color .16s;display:inline-flex;position:relative}.home-tab-btn:hover:not(.home-tab-btn-active),.home-tab-btn-active{color:var(--ink-1)}.icon-btn{border:1px solid var(--line-strong);background:var(--surface-muted);width:2.2rem;height:2.2rem;color:var(--ink-1);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;font-size:1rem;display:inline-flex}.icon-btn:hover{border-color:var(--line)}.icon-btn-primary{background:linear-gradient(135deg, var(--brand), var(--brand-strong));color:var(--on-brand);border-color:#0000}.icon-btn-primary:hover{filter:brightness(1.06);border-color:#0000}.panel{border:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-soft);border-radius:16px;grid-column:1/-1;padding:1.1rem}.panel-household-main,.panel-transactions-main{grid-column:1/-1}.panel-transactions-main{padding:.85rem}.panel-transactions-main .panel-header h2{font-size:1.08rem}.panel-transactions-main>p{margin-top:.3rem;font-size:.86rem}.panel h2{margin:0;font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif;font-size:1.2rem}.panel-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.panel-header-action{align-items:center;display:inline-flex}.panel-header-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.invite-link-row{gap:.5rem;margin-top:.9rem;display:flex}.invite-link-row .field-input{flex:1;margin-top:0}.field{color:var(--ink-1);margin-top:.95rem;font-size:.95rem;font-weight:600;display:block}.field-input{border:1px solid var(--line-strong);background:var(--surface-strong);width:100%;color:var(--ink-1);border-radius:10px;outline:none;margin-top:.35rem;padding:.62rem .72rem;font-size:1rem}.field-input:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--focus-ring)}.field-help-text{color:var(--ink-2);margin:.35rem 0 0;font-size:.8rem}.autocomplete-wrap{position:relative}.autocomplete-menu{z-index:60;border:1px solid var(--line);background:var(--surface-strong);box-shadow:var(--shadow-soft);border-radius:10px;max-height:180px;padding:.2rem;position:absolute;top:calc(100% + .3rem);left:0;right:0;overflow:auto}.autocomplete-option{width:100%;color:var(--ink-1);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.45rem .5rem;font-size:.92rem}.autocomplete-option:hover{background:var(--surface-muted)}.actions{flex-wrap:wrap;gap:.7rem;margin-top:1rem;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:10px;align-items:center;gap:.35rem;padding:.33rem .95rem;font-size:.95rem;font-weight:600;display:inline-flex}.btn:disabled{opacity:.62;cursor:not-allowed}.btn-primary{color:var(--on-brand);background:linear-gradient(135deg, var(--brand), var(--brand-strong))}.btn-secondary{color:var(--ink-1);border-color:var(--line-strong);background:var(--surface-muted)}.btn-link{color:var(--brand-strong);background:0 0;border:none;padding:0;text-decoration:underline}.btn-danger{color:var(--on-brand);background:linear-gradient(135deg, var(--danger-1), var(--danger-2))}.transaction-delete-link{color:var(--danger-ink);margin-right:auto}.transaction-delete-confirm{color:var(--ink-2);gap:.7rem;margin-top:.4rem;display:grid}.transaction-delete-confirm .actions{margin-top:0}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-shell{justify-content:center;padding:clamp(1.25rem,4vw,3rem) 0 1rem;display:flex}.auth-card{border:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:min(420px,100%);box-shadow:var(--shadow-strong);border-radius:20px;padding:1.85rem 1.75rem}.auth-card-header{text-align:center;margin-bottom:1.1rem}.auth-icon{background:linear-gradient(135deg, var(--brand), var(--brand-strong));width:48px;height:48px;color:var(--on-brand);border-radius:14px;justify-content:center;align-items:center;margin-bottom:.7rem;display:inline-flex}.auth-title{letter-spacing:-.01em;margin:0;font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif;font-size:1.45rem}.auth-subtitle{color:var(--ink-2);margin:.35rem 0 0;font-size:.92rem}.auth-tabs{border:1px solid var(--line);background:var(--surface-muted);border-radius:12px;margin-bottom:1.2rem;padding:.25rem;display:flex;position:relative}.auth-tab-thumb{background:linear-gradient(135deg, var(--brand), var(--brand-strong));width:calc(50% - .25rem);box-shadow:var(--shadow-soft);border-radius:9px;transition:transform .22s cubic-bezier(.4,0,.2,1);position:absolute;top:.25rem;bottom:.25rem;left:.25rem}.auth-tab{z-index:1;color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:.45rem .6rem;font-size:.92rem;font-weight:600;transition:color .16s;position:relative}.auth-tab:hover:not(.auth-tab-active){color:var(--ink-1)}.auth-tab-active{color:var(--on-brand)}.field-icon-wrap{align-items:center;display:flex;position:relative}.field-icon{color:var(--ink-2);pointer-events:none;position:absolute;left:.7rem}.field-input-icon{padding-left:2.15rem}.field-input-icon-right{padding-right:2.3rem}.field-icon-toggle{color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.3rem;display:inline-flex;position:absolute;right:.5rem}.field-icon-toggle:hover{color:var(--ink-1)}.auth-forgot-row{justify-content:flex-end;margin-top:.45rem;display:flex}.auth-forgot-row .btn-link{font-size:.85rem}.auth-card .actions{flex-direction:column;align-items:stretch}.auth-card .actions .btn-primary{justify-content:center}.auth-card .actions .btn-link{align-self:center}.auth-confirm{text-align:center;color:var(--ink-2);gap:.7rem;display:grid}.auth-confirm-icon{color:var(--ok-ink);justify-self:center}.auth-error{color:var(--danger-ink)}.auth-footnote{color:var(--ink-2);justify-content:center;align-items:center;gap:.35rem;margin:1.3rem 0 0;font-size:.78rem;display:flex}.settings-overlay{background:var(--overlay);-webkit-backdrop-filter:blur(10px);z-index:40;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.settings-modal{border:1px solid var(--line);background:var(--surface-strong);width:min(460px,100%);box-shadow:var(--shadow-strong);border-radius:14px;padding:1rem}.transaction-modal{width:min(560px,100%)}.income-fill-modal{width:min(760px,100%)}.settings-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.settings-header h2{margin:0;font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif;font-size:1.2rem}.settings-subtitle{color:var(--ink-2);margin:.35rem 0 0}.settings-note{color:var(--notice-text);background:var(--notice-bg);border:1px solid var(--notice-line);border-radius:8px;margin-top:.8rem;padding:.45rem .55rem;font-size:.9rem}.toast-stack{z-index:45;gap:.8rem;width:min(360px,100vw - 2rem);display:grid;position:fixed;top:4.55rem;right:1rem}.toast-card{border:1px solid var(--line);background:var(--surface-strong);color:var(--ink-1);box-shadow:var(--shadow-toast);border-left-width:4px;border-radius:12px;justify-content:space-between;align-items:center;gap:.85rem;padding:.85rem 1rem;display:flex}.toast-card p{margin:0;font-size:.92rem;line-height:1.42}.toast-success{border-left-color:var(--toast-success-line)}.toast-error{border-left-color:var(--toast-error-line)}.toast-info{border-left-color:var(--toast-info-line)}.toast-close{border:1px solid var(--line);background:var(--surface-muted);color:var(--ink-2);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.toast-close:hover{background:var(--surface-strong);border-color:var(--line-strong);color:var(--ink-1)}.meta-pill{border:1px solid var(--notice-line);background:var(--notice-bg);color:var(--notice-text);border-radius:999px;align-items:center;gap:.45rem;margin-top:.75rem;padding:.35rem .65rem;font-size:.86rem;display:inline-flex}.household-bubble-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.9rem;display:flex}.household-summary-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;margin-top:.9rem;display:flex}.budget-cycle-card{border:1px solid var(--line);background:var(--surface-muted);border-radius:12px;margin-top:.8rem;padding:.8rem .9rem}.budget-cycle-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;display:flex}.budget-cycle-title{color:var(--ink-1);margin:0;font-weight:700}.budget-cycle-copy{color:var(--ink-2);margin:.15rem 0 0;font-size:.86rem}.budget-cycle-track{background:var(--surface-strong);border-radius:999px;height:8px;margin-top:.6rem}@supports (color:color-mix(in lab, red, red)){.budget-cycle-track{background:color-mix(in oklab, var(--surface-strong) 55%, var(--line) 45%)}}.budget-cycle-track{overflow:hidden}.budget-cycle-fill{border-radius:inherit;background:linear-gradient(135deg, var(--accent), var(--brand));height:100%;display:block}.household-categories-wrap{margin-top:.8rem}.household-switcher-list{gap:.55rem;margin-top:.9rem;display:grid}.household-switcher-option{border:1px solid var(--line-strong);background:var(--surface-strong);color:var(--ink-1);text-align:left;cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:.6rem;padding:.75rem .9rem;font-size:.95rem;font-weight:600;transition:border-color .12s,background .12s;display:flex}.household-switcher-option:hover{border-color:var(--brand)}.household-switcher-option-active{border-color:var(--brand);background:var(--surface-muted);color:var(--brand-strong)}.household-switcher-option:disabled{opacity:.6;cursor:not-allowed}.income-fill-list{gap:.75rem;max-height:min(60vh,720px);margin-top:.9rem;padding-right:.1rem;display:grid;overflow:auto}.income-fill-row{border:1px solid var(--line);background:var(--surface-muted);border-radius:12px;padding:.8rem}.income-fill-row-header{justify-content:space-between;align-items:flex-start;gap:.8rem;display:flex}.income-fill-name{color:var(--ink-1);margin:0;font-weight:700}.income-fill-meta{color:var(--ink-2);margin:.12rem 0 0;font-size:.84rem}.income-fill-total{color:var(--ink-1);margin:0;font-weight:700}.income-fill-controls{gap:.45rem;margin-top:.65rem;display:grid}.income-fill-option{color:var(--ink-1);align-items:center;gap:.5rem;font-size:.92rem;display:flex}.income-fill-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem;margin-top:1rem;padding-top:.85rem;display:flex}.income-fill-footer-label{color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.82rem}.income-fill-footer-total{color:var(--ink-1);margin:.1rem 0 0;font-size:1.18rem;font-weight:800}.household-categories-label{color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.85rem;font-weight:600}.category-time-indicator-note{color:var(--ink-2);margin:.28rem 0 0;font-size:.78rem}.budget-stack{gap:.65rem;margin-top:.85rem;display:grid}.budget-row{border:1px solid var(--line);background:var(--surface-muted);border-radius:10px;padding:.55rem .65rem}.budget-row-compact{background:0 0;border:none;border-radius:0;padding:.42rem 0}.budget-row-compact .budget-row-title{font-size:1.1rem;font-weight:600}.budget-row-compact .budget-row-value{font-size:.84rem}.budget-row-compact .progress-track{background:var(--surface-strong);border:none;border-radius:5px}@supports (color:color-mix(in lab, red, red)){.budget-row-compact .progress-track{background:color-mix(in oklab, var(--surface-strong) 55%, var(--line) 45%)}}.budget-row-compact+.budget-row-compact,.budget-category-block+.budget-category-block{border-top:1px solid var(--line)}.budget-category-trigger{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0;display:block}.budget-category-trigger:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}.budget-category-trigger-active{opacity:.98}.category-transactions-list{border-top:1px dashed var(--line);margin-top:.18rem;margin-bottom:.3rem}.category-transactions-header{border-bottom:1px solid var(--line);grid-template-columns:110px minmax(140px,1fr) minmax(90px,auto);gap:.45rem;padding:.28rem 0;display:grid}@supports (color:color-mix(in lab, red, red)){.category-transactions-header{border-bottom:1px solid color-mix(in oklab, var(--line) 72%, transparent)}}.category-transactions-header p{color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:.71rem;font-weight:700}.category-transactions-header-amount{text-align:right;justify-self:end}.category-transactions-more-row{border-top:1px solid var(--line);margin-top:.1rem;padding-top:.2rem}@supports (color:color-mix(in lab, red, red)){.category-transactions-more-row{border-top:1px solid color-mix(in oklab, var(--line) 70%, transparent)}}.category-transactions-more-row .btn-link{font-size:.78rem}.category-transaction-row{grid-template-columns:110px minmax(140px,1fr) minmax(90px,auto);align-items:center;gap:.45rem;padding:.32rem 0;display:grid}.category-transaction-row+.category-transaction-row{border-top:1px solid var(--line)}@supports (color:color-mix(in lab, red, red)){.category-transaction-row+.category-transaction-row{border-top:1px solid color-mix(in oklab, var(--line) 75%, transparent)}}.category-transaction-main{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.8rem;overflow:hidden}.category-transaction-date{color:var(--ink-2);white-space:nowrap;margin:0;font-size:.8rem}.category-transaction-amount{color:var(--ink-1);text-align:right;justify-self:end;margin:0;font-size:.8rem;font-weight:600}.budget-row-header{justify-content:space-between;align-items:center;gap:.65rem;display:flex}.budget-row-title{color:var(--ink-1);white-space:nowrap;margin:0;font-weight:600}.budget-row-value{color:var(--ink-2);margin:0;font-size:.86rem}.budget-row-value-ok{color:var(--ok-ink);text-align:right}.budget-row-value-warning{color:var(--warn-ink);text-align:right}.budget-row-value-danger{color:var(--danger-ink);text-align:right}.budget-row-detail{color:var(--ink-2);margin:.25rem 0 0;font-size:.8rem}.progress-track{border:1px solid var(--line);background:var(--surface-strong);border-radius:6px;width:100%;height:10px;position:relative;overflow:visible}.progress-fill{z-index:1;border-radius:6px;height:100%;display:block;position:relative}.progress-fill-ok{background:linear-gradient(135deg, var(--ok-1), var(--ok-2))}.progress-fill-warning{background:linear-gradient(135deg, var(--warn-1), var(--warn-2))}.progress-fill-danger{background:linear-gradient(135deg, var(--danger-1), var(--danger-2))}.progress-fill-negative{position:absolute;left:auto;right:0}.progress-expected-line{z-index:1000;background:currentColor;border-radius:2px;width:4px;height:18px;position:absolute;bottom:-40%;transform:translate(-50%)}.progress-expected-marker{pointer-events:none;z-index:3;color:var(--expected-color,#1e90ff);stroke:currentColor;fill:none;margin-bottom:0;transition:left .12s linear;position:absolute;bottom:100%;transform:translate(-50%)}.progress-expected-marker svg{width:16px;height:16px;display:block}.progress-expected-marker:after{content:"";background:currentColor;border-radius:1px;width:2px;height:6px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.transaction-list{gap:0;margin-top:.6rem;display:grid}.transaction-table-header{border-bottom:1px solid var(--line);grid-template-columns:120px minmax(180px,1.4fr) minmax(120px,1fr) minmax(110px,auto) 36px;gap:.55rem;padding:.2rem .4rem .5rem;display:grid}.transaction-table-header p{color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:.75rem;font-weight:700}.transaction-table-header-amount{text-align:right}.transaction-table-header-edit{text-align:center}.transaction-row{background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .4rem;transition:background .12s;display:flex}.transaction-row:hover{background:var(--surface-muted)}.transaction-row-grid{grid-template-columns:120px minmax(180px,1.4fr) minmax(120px,1fr) minmax(110px,auto) 36px;gap:.55rem;display:grid}.transaction-row+.transaction-row{border-top:1px solid var(--line)}.transaction-cell-date,.transaction-cell-description{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.8rem;overflow:hidden}.transaction-cell-category{border:1px solid var(--line);background:var(--surface-muted);width:fit-content;max-width:100%;color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;margin:0;padding:.15rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex;overflow:hidden}.transaction-main{flex:1;min-width:0}.transaction-actions{justify-content:center;align-items:center;gap:.35rem;display:inline-flex}.transaction-edit-btn{width:1.9rem;height:1.9rem;color:var(--ink-2);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:0;line-height:1;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.transaction-edit-btn:hover{background:var(--surface-strong);border-color:var(--line-strong);color:var(--ink-1)}.transaction-split-editor{border:1px solid var(--line);background:var(--surface-muted);border-radius:12px;gap:.55rem;margin-top:1rem;padding:.7rem;display:grid}.transaction-split-editor-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.transaction-split-editor-header p{color:var(--ink-1);margin:0;font-weight:700}.transaction-split-row{grid-template-columns:minmax(0,1fr) 120px auto;align-items:center;gap:.45rem;display:grid}.transaction-split-row .field-input{margin-top:0}.transaction-split-total{color:var(--ink-2);text-align:right;margin:.1rem 0 0;font-size:.84rem}.transaction-title{color:var(--ink-1);margin:0;font-size:.9rem;font-weight:600}.transaction-line{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.8rem;overflow:hidden}.transaction-amount{color:var(--ink-1);text-align:right;margin:0;font-size:.88rem;font-weight:700}.editor-list{gap:.8rem;margin-top:.8rem;display:grid}.editor-row{border:1px solid var(--line);background:var(--surface-muted);border-radius:12px;padding:.55rem .65rem}.editor-row-dragging{opacity:.66;border-style:dashed}.editor-row-top{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.editor-grip{color:var(--ink-2)}.editor-hint{color:var(--ink-2);margin:0;font-size:.8rem}.editor-grid{gap:.35rem;margin-top:.35rem;display:grid}.category-strip{gap:.65rem;margin-top:.85rem;display:grid}.category-chip{border:1px solid var(--line);background:var(--surface-muted);border-radius:12px;width:100%;padding:.42rem .55rem}.category-chip-dragging{opacity:.66;border-style:dashed}.category-chip-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.category-chip-header.compact{gap:.6rem}.category-chip-main{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.category-chip-title{color:var(--ink-1);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.1rem;font-weight:700;overflow:hidden}.category-chip-grip{color:var(--ink-2);align-items:center;display:inline-flex}.category-chip-meta{color:var(--ink-2);white-space:nowrap;margin:0;font-size:.82rem}.category-chip-actions{align-items:center;gap:.35rem;margin-top:.55rem;display:inline-flex}.category-chip-actions.compact{margin-top:0}.category-chip-actions.compact .icon-btn{width:1.95rem;height:1.95rem}.category-dialog-overlay{z-index:50;background:var(--overlay);-webkit-backdrop-filter:blur(10px);place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.category-dialog{border:1px solid var(--line);background:var(--surface-strong);width:min(460px,100%);box-shadow:var(--shadow-strong);border-radius:14px;padding:1rem}.category-dialog-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.category-dialog-header h2{margin:0;font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif;font-size:1.2rem}.category-dialog-text{color:var(--ink-2);margin:.75rem 0 0}.category-list{gap:.55rem;margin-top:1rem;display:grid}.category-empty{color:var(--ink-2);margin:0;font-size:.92rem}.category-row{border:1px solid var(--line);background:var(--surface-muted);border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .65rem;display:flex}.category-name{color:var(--ink-1);margin:0;font-weight:600}.category-period{color:var(--ink-2);margin:.2rem 0 0;font-size:.84rem}.category-amount{color:var(--ink-1);margin:0;font-weight:700}@media (width>=860px){.panel-auth,.panel-onboarding{grid-column:span 7}.panel-state,.panel-account{grid-column:span 5}}@media (width<=640px){.home-shell{padding-top:calc(var(--topbar-height) + .4rem)}.status-chip{border-radius:12px;width:100%}.topbar{top:0}.topbar-title{font-size:1rem}.toast-stack{top:4.2rem}.transaction-table-header{display:none}.transaction-row{padding:.5rem .4rem}.transaction-row-grid{grid-template-columns:auto 1fr auto;grid-template-areas:"desc desc amount""date cat edit";align-items:center;gap:.15rem .5rem}.transaction-cell-date{color:var(--ink-2);grid-area:date;font-size:.72rem}.transaction-cell-description{color:var(--ink-1);grid-area:desc;font-size:.86rem;font-weight:600}.transaction-cell-category{min-width:0;color:var(--ink-2);background:0 0;border:none;border-radius:0;grid-area:cat;padding:0;font-size:.72rem;font-weight:500}.transaction-cell-category:not(:empty):before{content:"·";margin-right:.3rem}.transaction-amount{grid-area:amount;font-size:.86rem}.transaction-actions{grid-area:edit;justify-content:flex-end;align-self:center}.transaction-edit-btn{width:1.6rem;height:1.6rem}.transaction-split-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"category category""amount remove";gap:.4rem}.transaction-split-row select{grid-area:category}.transaction-split-row input{grid-area:amount}.transaction-split-row button{grid-area:remove;justify-self:end}.settings-overlay{padding:.6rem}.settings-modal{padding:.85rem}.settings-modal .actions{flex-direction:column-reverse;align-items:stretch}.settings-modal .actions .btn{justify-content:center;width:100%}}.budget-row-title{white-space:nowrap;min-width:0}.budget-row-value{text-overflow:ellipsis;white-space:nowrap;text-align:right;max-width:50vw;font-size:.76rem;overflow:hidden}.budget-row-topline{justify-content:space-between;align-items:center;margin-top:.4rem;margin-bottom:.25rem;display:flex}.budget-row-barline{align-items:center;gap:0;display:flex}.budget-row-value-sub{text-align:right;opacity:.7;white-space:nowrap;flex:0 0 70px;font-size:.8rem;margin-top:0!important}.budget-row-barline{align-items:center;display:flex}@media (width<=430px){.transaction-row{padding:.42rem .35rem}.transaction-row-grid{column-gap:.4rem}.transaction-cell-date,.transaction-cell-category{font-size:.68rem}.transaction-cell-description,.transaction-amount{font-size:.82rem}.transaction-split-row{grid-template-columns:1fr}.transaction-split-total{text-align:left}.category-transactions-header,.category-transaction-row{grid-template-columns:74px minmax(0,1fr) minmax(72px,auto);gap:.3rem}.category-transactions-header p{font-size:.67rem}.category-transaction-date,.category-transaction-main,.category-transaction-amount{font-size:.74rem}}.panel p.category-transaction-credit{color:var(--ok-ink);font-weight:700}.panel p{color:var(--ink-2)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}
