@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,d09GMgABAAAAAAikABQAAAAADtAAAAg5AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbchwuP0hWQVJ8P01WQVI5BmA/U1RBVIEeAFQvbBEICoUMhA8LFAAwh0IBNgIkAyIEIAWFUgdlDAcb2wxRlHLSTCh+JpgqYzdCr74T1zFPDeljyGrzJCL6Ev8bD9Fava+qe3dnZu8TYRBRRkWdCpCOBCJhosglnmB+fp3vJiXGXwdGMZ0w+x/Y23aEczWThqTNJjW8hoicA6eO+L2oNF/ezlXBg1dQQRzciijV+BogZE/7tcrgVbTzMA0JUqWU99sevg1ROdGGhMSFRKWb7SFuSTKXaTxVNWQt4oUcFJHOcfztJwpMAFIIRQh0NtqvHHs8KUI6P+tvSN/b5hfSKnw6zG65Tv9ChClClRyg2f98xwIbLRcSTENItK/y7DZks80Z85XYtScLsB4BBMzQ5NT5aRoDQxMCxwrgEGzCUswXcBgPy0u/KUjEj8dZL+8xCYRYL+RHPgJHGlBAYzk7X91NAC4lYvTFq/YZItQ8JiYNyMczEzglmDgu1/Q3SpwjpG9/5vIC/Bw1r5Xb/z+gvhdTgCchp+WnWK4VQiMwW4vF8oEb7iaRmGmpjfY6Hm/ryUZAFNcCJqz6KmAQm1FsM4YxSb4nqBzFrxDW5IVDW2FYV5a3j8tjnBRK62xFBAHVkQeb0EjVUf6R9ZPlR/sezvNj9/qP+uF9dI9LzgYCrRaYLoXZWs0pm8EZxCQ77hUZhcT6FV8RA2IzMRTLGAF+NW/IC0G0J7xEdJTlxFjxoUL0/aaBFszEGK/jFyzG7F5mT1IWnnHsWpvysG5qN+1wWpWlEOTvCAqefEo+5tL51Awhm+QUTVlERij/2khmFpfNUZyMy/x19vPLJrLuFplzx4usvfiU5KSTNIIESAZJlaZL54BDLvXTolW7jhUlJ/boC/E2r3f/Moob9BwOt8yhsOIIrtl/m5t99aQHt+HKgxdkzrN7h8C8dqcLAS6VAL90JZjP3SJzTpxR+eXdp/kZJDV/9vP0A9iRc2B1S3WtovRJKXDM5d+dLucPWGFtJ7XKf9ECUF5473zeWztTPhmeMfwzT+THZrn43gebYz+Ly4j7DK7BeYtz/ATjbP0UrSo0VKWdQlZPNILyuPOOrrzlFcOlNGm4EXnAcb13l5ZPqkirmIRFXF68UPyyzswtb57BMO9zpvqxgWzQWM13JJT/5quUqb9+N6Nh6tSOJoPqVZyvLvSLP3Mzfr46ThMUMFrzXleofju3ZtTU2d/N6J+a8eNqre9Ys8nQNXROVvqPh8arIOjd1Lm5784FyJyaORJT9o9bDbagAgEBgAUWp8J+DvKlj0YDAHAA1FLZhqB9MSDAZyx2MCgAAIoBSH/cwTAOtiHgAtyMd1LgIpgR5MADgEgHB0PtL8JXmANmCnjwAAQDAPCM643XbH/Jy4eCA0rFAidCoKxMZ+EbmeGpDnp4Wl6NP4wWzYgoOt29C97eFosOGB2T/TEihQ2lyAD6jUZW4GX1RkxSvw0AQQzLPKvWaCRJ7e2gQn93n2MnKH3SxbB9XY8L27r63Lw7muvs0CpasL5edGIUoKurqNUHo9GVVyj6ukn0TWcU3IwWxt5enzUiJGQ4/Av/4mcZI+A6nIIrmPY1r3NJz5eTnTp68KCff/osZyKu8/lbkAIHRTMREKOj620IIr55I2rfFEJhodTOsoKKhIC1HVKh5fCRjpnqEKaDff2CkNJSF21lc5Wn23BmQp4/aZERuv9Fkb29pbGLaOul4kqwimZAER0OJwWgiC4uostcoNNp6P7+9tb2dsOwbVqjsxDr8bIhHYh5eR/5/J4C2w3favObEyLixKgQT55MnjR2SJS/m0o5dcrIBMgXLRgaKmKMAnzyRHRRwMOHz2t7eqDQNC0DLKt9/vDQ8Q9mu0ju4N01cpYl7gzTG487EvR6nYYGWUdtpcrFTcP0dbU006zlj5+0tXaeb221Vxaaayqvs9r6tO62GqmKckCPKBrabbX2ZlalkiSdzuHoVeu8g8KMMjQoMNBLw/5llDEcoVutaZawTE+lkjdYKwtfkIvnL1+/rmjqLkhm5H22UtNUZLX2n3GkwyZQSx0y1jMsqvBlWZOMkbsFJ2DXYeOnxMYO+x2LBg4YBDcVILBOrVJJ3MA4P0oNJjEZsR9ZlYebWh0R0d3t6enRIT08ud/EPHnzZkk7JdN3orubKI27TreIF+qp1VpD4NAZmWiZNS0lJczZCfBRBq/iAUDmJlQ4LDK6rY12w682zyCiaG1ekRS+8L0Gs+Bh8mhsp6BXoaqRyh0WpZ+fHLGboqhuRMbNzyJTNBaXepvU0FRe6u2jI6aopoZqCo1eJIzeeytbaixwCQRH/bPf7lSH/taU8jN8v2bNXPhpaUjp0/5/OF5XPsJQguCbLMePSjxuOhHIusnFZvcLOidWuVQq//pvp6nRf9enIdDmURIuFdDJKVnJTN+HFrXFE5FfUejiXEpT43gqttdcqhb6lwYO+oSGFnoxcqq97k4UacL1VDQup2q2k2mgc+SQ4c5ljBR8dlNjutXUaiymzkzd1cc6HO3t4ORlymXSHYxgb+dgsODi48GCwllYKYnEcTd3pop9olh0Zzq/FBfQHK2MrTK0bJvrHie6B5WJuioWP7yDs99Bd1NzhhkS4+vCYKo428WNdfjFOpnL0dcuhH0hO2y1fU59iBtcmXDzm2GVKN7qgKPbhUMvU84EOSpN7pkWeIL2gThy9mLbMUzl0S9BM7LTdqd0h+WXaOwFOhi9M+mwJ9brVHoU68Ll4BN1jqy/iAx4NN9Zjn3zNbBPCvdwUKo6nH5lzR07qi1IlGX/up0O2GK1ryOjRI1BDGM0POrqv72wCN93+6O++5iYzDPWzeb2o+Pbq66xzMvvzzCvpefZtX3vW9H/90t1Hg==)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-wght-normal-CiQTuMoU.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-ext-wght-normal-0BME-IPC.woff2)format("woff2-variations");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-wght-normal-DJzCSW5i.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-sans:"Onest Variable", Onest, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-size-display:2.25rem;--line-height-display:2.625rem;--font-weight-display:650;--font-size-h1:1.75rem;--line-height-h1:2.25rem;--font-weight-h1:650;--font-size-h2:1.375rem;--line-height-h2:1.875rem;--font-weight-h2:650;--font-size-h3:1.125rem;--line-height-h3:1.625rem;--font-weight-h3:600;--font-size-h4:1rem;--line-height-h4:1.5rem;--font-weight-h4:600;--font-size-body-lg:1.0625rem;--line-height-body-lg:1.625rem;--font-weight-body-lg:400;--font-size-body:.9375rem;--line-height-body:1.4rem;--font-weight-body:400;--font-size-body-sm:.8125rem;--line-height-body-sm:1.2rem;--font-weight-body-sm:400;--font-size-caption:.75rem;--line-height-caption:1rem;--font-weight-caption:400;--font-size-label:.8125rem;--line-height-label:1.125rem;--font-weight-label:500;--font-size-button:.875rem;--line-height-button:1.25rem;--font-weight-button:600;--font-size-input:.9375rem;--line-height-input:1.4rem;--font-weight-input:400;--color-bg-page:#0f1114;--color-bg-surface:#181b20;--color-bg-surface-soft:#1d2026;--color-bg-surface-muted:#22262d;--color-bg-raised:#20242a;--color-bg-sidebar:var(--color-bg-page);--color-bg-sidebar-hover:var(--color-bg-surface-muted);--color-bg-sidebar-active:var(--color-accent-soft);--color-text-primary:#e9ecf0;--color-text-secondary:#c3c9d2;--color-text-muted:#9aa2ae;--color-text-subtle:#6e7682;--color-text-on-dark:#e9ecf0;--color-text-on-sidebar:var(--color-text-muted);--color-text-on-sidebar-muted:var(--color-text-subtle);--color-border:#3a404a;--color-border-strong:#4e5561;--color-border-subtle:#30353e;--color-overlay:#050608b3;--color-ring-idle:#4a515c;--color-success:#4fc08a;--color-warning:#e8a548;--color-danger:#f0705e;--color-info:#7aa0f2;--color-success-text:var(--color-success);--color-success-bg:color-mix(in srgb, var(--color-success) 14%, transparent);--color-success-border:color-mix(in srgb, var(--color-success) 28%, transparent);--color-warning-text:var(--color-warning);--color-warning-bg:color-mix(in srgb, var(--color-warning) 14%, transparent);--color-warning-border:color-mix(in srgb, var(--color-warning) 28%, transparent);--color-danger-text:var(--color-danger);--color-danger-bg:color-mix(in srgb, var(--color-danger) 14%, transparent);--color-danger-border:color-mix(in srgb, var(--color-danger) 30%, transparent);--color-info-text:var(--color-info);--color-info-bg:color-mix(in srgb, var(--color-info) 14%, transparent);--color-info-border:color-mix(in srgb, var(--color-info) 28%, transparent);--eco-budget:#6c8ef5;--eco-food:#3dbe83;--eco-task:#f2873a;--eco-platform:#a3abb8;--color-accent-primary:var(--eco-budget);--color-accent-hover:color-mix(in srgb, var(--color-accent-primary) 86%, white);--color-accent-soft:color-mix(in srgb, var(--color-accent-primary) 16%, transparent);--color-accent-border:color-mix(in srgb, var(--color-accent-primary) 40%, transparent);--color-accent-on-primary:#0f1114;--color-brand-logo:var(--color-accent-primary);--gradient-accent-hero:var(--color-bg-surface);--gradient-accent-soft:var(--color-bg-surface);--gradient-card-default:var(--color-bg-surface);--gradient-card-hero:var(--color-bg-surface);--gradient-card-analytics:var(--color-bg-surface);--gradient-card-success:var(--color-bg-surface);--gradient-card-warning:var(--color-bg-surface);--gradient-card-danger:var(--color-bg-surface);--gradient-card-soft:var(--color-bg-surface);--color-text-on-card:var(--color-text-primary);--color-text-on-card-secondary:var(--color-text-secondary);--color-text-on-card-muted:var(--color-text-muted);--color-card-default:var(--color-bg-surface);--color-card-soft:var(--color-bg-surface);--color-card-tinted:var(--color-bg-surface);--color-card-hero:var(--color-bg-surface);--gradient-card-hero-blue:var(--color-bg-surface);--gradient-card-hero-green:var(--color-bg-surface);--gradient-card-hero-orange:var(--color-bg-surface);--gradient-accent-card:var(--color-bg-surface);--gradient-success-card:var(--color-bg-surface);--gradient-warning-card:var(--color-bg-surface);--gradient-danger-card:var(--color-bg-surface);--gradient-info-card:var(--color-bg-surface);--gradient-card-blue:var(--color-bg-surface);--gradient-card-green:var(--color-bg-surface);--gradient-card-orange:var(--color-bg-surface);--gradient-card-purple:var(--color-bg-surface);--gradient-card-pink:var(--color-bg-surface);--gradient-card-info:var(--color-bg-surface);--color-text-on-card-dark:var(--color-text-primary);--color-brand-primary:var(--color-accent-primary);--color-brand-primary-hover:var(--color-accent-hover);--color-brand-primary-soft:var(--color-accent-soft);--color-brand-border:var(--color-accent-border);--color-brand-on-primary:var(--color-accent-on-primary);--color-finance-income:var(--color-success);--color-finance-expense:var(--color-danger);--color-finance-saving:var(--eco-budget);--color-finance-debt:#a98bf5;--color-food-fresh:var(--color-success);--color-food-soon:var(--color-warning);--color-food-expired:var(--color-danger);--color-food-frozen:#6cb6e8;--color-task-low:var(--color-ring-idle);--color-task-medium:var(--color-ring-idle);--color-task-high:var(--eco-task);--color-task-urgent:var(--color-danger);--color-task-done:var(--color-success);--color-task-waiting:var(--color-text-muted);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-pill:999px;--shadow-none:none;--shadow-xs:none;--shadow-sm:none;--shadow-md:none;--shadow-lg:0 16px 40px #00000073, 0 2px 8px #0000004d;--layout-sidebar-width-open:232px;--layout-sidebar-width-collapsed:60px;--layout-content-padding-desktop:28px;--layout-content-padding-desktop-wide:36px;--layout-content-padding-mobile:16px;--layout-content-padding-mobile-wide:20px;--layout-content-max-width:1600px;--layout-top-bar-height:60px;--layout-bottom-nav-height:64px;--motion-duration-hover:.14s;--motion-duration-focus:.12s;--motion-duration-modal:.2s;--motion-duration-drawer:.2s;--motion-easing-default:cubic-bezier(.4, 0, .2, 1);--color-focus-ring:var(--color-accent-primary);--color-link:var(--color-accent-primary);--color-link-hover:var(--color-accent-hover)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-page:#f5f6f8;--color-bg-surface:#fff;--color-bg-surface-soft:#fafbfc;--color-bg-surface-muted:#eef0f3;--color-bg-raised:#fff;--color-text-primary:#14171c;--color-text-secondary:#3a414c;--color-text-muted:#5e6673;--color-text-subtle:#8a919c;--color-text-on-dark:#fff;--color-border:#e3e6eb;--color-border-strong:#cfd4db;--color-border-subtle:#eef0f3;--color-overlay:#14171c66;--color-ring-idle:#b8bec7;--color-success:#18794e;--color-warning:#b4610a;--color-danger:#c8321f;--color-info:#2f5bd8;--eco-budget:#2f5bd8;--eco-food:#1a8f5c;--eco-task:#e0620d;--eco-platform:#5e6673;--color-accent-hover:color-mix(in srgb, var(--color-accent-primary) 86%, black);--color-accent-soft:color-mix(in srgb, var(--color-accent-primary) 11%, transparent);--color-accent-on-primary:#fff;--color-food-frozen:#0b78b5;--color-finance-debt:#7c3aed;--shadow-lg:0 16px 40px #14171c29, 0 2px 8px #14171c14}@media (prefers-color-scheme:light){:root[data-theme=system]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-page:#f5f6f8;--color-bg-surface:#fff;--color-bg-surface-soft:#fafbfc;--color-bg-surface-muted:#eef0f3;--color-bg-raised:#fff;--color-text-primary:#14171c;--color-text-secondary:#3a414c;--color-text-muted:#5e6673;--color-text-subtle:#8a919c;--color-text-on-dark:#fff;--color-border:#e3e6eb;--color-border-strong:#cfd4db;--color-border-subtle:#eef0f3;--color-overlay:#14171c66;--color-ring-idle:#b8bec7;--color-success:#18794e;--color-warning:#b4610a;--color-danger:#c8321f;--color-info:#2f5bd8;--eco-budget:#2f5bd8;--eco-food:#1a8f5c;--eco-task:#e0620d;--eco-platform:#5e6673;--color-accent-hover:color-mix(in srgb, var(--color-accent-primary) 86%, black);--color-accent-soft:color-mix(in srgb, var(--color-accent-primary) 11%, transparent);--color-accent-on-primary:#fff;--color-food-frozen:#0b78b5;--color-finance-debt:#7c3aed;--shadow-lg:0 16px 40px #14171c29, 0 2px 8px #14171c14}}.theme-budget-tracker{--color-accent-primary:var(--eco-budget)}.theme-food-tracker{--color-accent-primary:var(--eco-food)}.theme-task-tracker{--color-accent-primary:var(--eco-task)}.theme-platform{--color-accent-primary:var(--eco-platform)}html{font-family:var(--font-sans);font-size:var(--font-size-body);line-height:var(--line-height-body);font-weight:var(--font-weight-body);color:var(--color-text-primary);background-color:var(--color-bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}h1,.h1{font-size:var(--font-size-h1);line-height:var(--line-height-h1);font-weight:var(--font-weight-h1);margin:0}h2,.h2,.top-bar-title{font-size:var(--font-size-h2);line-height:var(--line-height-h2);font-weight:var(--font-weight-h2);margin:0}h3,.h3{font-size:var(--font-size-h3);line-height:var(--line-height-h3);font-weight:var(--font-weight-h3);margin:0}h4,.h4{font-size:var(--font-size-h4);line-height:var(--line-height-h4);font-weight:var(--font-weight-h4);margin:0}p{font-size:var(--font-size-body);line-height:var(--line-height-body);font-weight:var(--font-weight-body);margin:0}small,.small,.caption{font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-caption)}.muted{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);font-weight:var(--font-weight-body-sm);color:var(--color-text-muted)}.error{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);font-weight:var(--font-weight-body-sm);color:var(--color-danger-text)}.ok{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);font-weight:var(--font-weight-body-sm);color:var(--color-success-text)}strong{font-weight:var(--font-weight-h4)}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm)}pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);margin:0}a{color:var(--color-link);text-decoration:none}a:hover{color:var(--color-link-hover)}label{font-size:var(--font-size-label);line-height:var(--line-height-label);font-weight:var(--font-weight-label);color:var(--color-text-secondary)}label span{font-size:inherit;line-height:inherit;font-weight:inherit}fieldset{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin:0}input,textarea,select{font-family:var(--font-sans);font-size:var(--font-size-input);line-height:var(--line-height-input);font-weight:var(--font-weight-input);color:var(--color-text-primary)}input::placeholder,textarea::placeholder{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);color:var(--color-text-muted)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:0}button{font-family:var(--font-sans);font-size:var(--font-size-button);line-height:var(--line-height-button);font-weight:var(--font-weight-button)}table{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);border-collapse:collapse}th{font-size:var(--font-size-label);line-height:var(--line-height-label);font-weight:var(--font-weight-label);color:var(--color-text-secondary)}td{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);font-weight:var(--font-weight-body-sm);color:var(--color-text-primary)}caption{font-size:var(--font-size-caption);line-height:var(--line-height-caption);color:var(--color-text-muted);caption-side:bottom}ul,ol{margin:0;padding:0}li{font-size:var(--font-size-body);line-height:var(--line-height-body)}hr{border:0;border-top:1px solid var(--color-border);margin:0}img,svg{max-width:100%;display:block}.sidebar-brand{font-size:var(--font-size-h3);line-height:var(--line-height-h3);font-weight:var(--font-weight-h1)}.sidebar-link{font-size:var(--font-size-body);line-height:var(--line-height-body);font-weight:500}td,.num,.amount,.money{font-variant-numeric:tabular-nums}.eyebrow{font-size:var(--font-size-label);line-height:var(--line-height-label);font-weight:var(--font-weight-label);color:var(--color-accent-primary)}.login-card h1,.login-card h2{font-size:var(--font-size-h2);line-height:var(--line-height-h2);font-weight:var(--font-weight-h2)}.login-card p,.login-card .muted{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm)}.settings-section h2,.settings-card h2,.modal-head h2,.modal h2,.modal-header h2{font-size:var(--font-size-h3);line-height:var(--line-height-h3);font-weight:var(--font-weight-h3)}.page-header h1,.page-header h2{font-size:var(--font-size-h2);line-height:var(--line-height-h2);font-weight:var(--font-weight-h2)}.toast,.toast.success{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm)}.empty{font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);color:var(--color-text-muted)}.badge,.expiry-status{font-size:var(--font-size-caption);line-height:var(--line-height-caption);font-weight:var(--font-weight-label)}body{background:var(--color-bg-page);color:var(--color-text-primary);margin:0}.app-shell{background:var(--color-bg-page);align-items:stretch;min-height:100dvh;display:flex}.app-body{flex-direction:column;flex:1;min-width:0;display:flex}.main,.content{width:100%;max-width:var(--layout-content-max-width);padding:var(--space-2) var(--layout-content-padding-desktop) var(--space-12);flex:1}.sidebar{width:var(--layout-sidebar-width-open);background:var(--color-bg-sidebar);height:100dvh;color:var(--color-text-on-sidebar);border-right:1px solid var(--color-border);transition:width var(--motion-duration-drawer) var(--motion-easing-default);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0;overflow:hidden}.sidebar--open{width:var(--layout-sidebar-width-open)}.sidebar--closed{width:var(--layout-sidebar-width-collapsed)}.sidebar-head{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3) var(--space-3);border-bottom:1px solid var(--color-border);display:flex}.sidebar--closed .sidebar-head{padding-inline:var(--space-2);flex-direction:column}.eco-switch{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.eco-mark{background:var(--eco-color,var(--color-accent-primary));width:30px;height:30px;color:var(--color-bg-page);border-radius:9px;flex:none;place-items:center;display:inline-grid}.eco-mark svg{stroke-width:2.1px;width:17px;height:17px}.eco-mark--sm{border-radius:7px;width:22px;height:22px}.eco-mark--sm svg{width:13px;height:13px}.eco-name{min-width:0;font-size:var(--font-size-body);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:650;overflow:hidden}.eco-siblings{gap:var(--space-1);display:flex}.eco-sibling{width:26px;height:26px;color:var(--eco-color);background:color-mix(in srgb, var(--eco-color) 14%, transparent);transition:background var(--motion-duration-hover) var(--motion-easing-default);border-radius:8px;place-items:center;display:inline-grid}.eco-sibling svg{stroke-width:2px;width:14px;height:14px}.eco-sibling:hover{background:color-mix(in srgb, var(--eco-color) 26%, transparent);color:var(--eco-color)}.sidebar--closed .eco-name,.sidebar--closed .eco-siblings{display:none}.sidebar-nav{padding:var(--space-3) var(--space-2);flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.sidebar-link{align-items:center;gap:var(--space-3);padding:7px var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);white-space:nowrap;transition:background var(--motion-duration-hover) var(--motion-easing-default), color var(--motion-duration-hover) var(--motion-easing-default);text-decoration:none;display:flex}.sidebar-link svg{stroke-width:1.75px;flex:none;width:18px;height:18px}.sidebar-link:hover{background:var(--color-bg-sidebar-hover);color:var(--color-text-primary)}.sidebar-link--active,.sidebar-link--active:hover{background:var(--color-accent-soft);color:var(--color-accent-primary);font-weight:600}.sidebar--closed .sidebar-link{justify-content:center;padding-inline:0}.sidebar--closed .sidebar-link span{display:none}.sidebar-foot{align-items:center;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--color-border);display:flex}.sidebar--closed .sidebar-foot{flex-direction:column}.sidebar--closed .sidebar-foot .sidebar-user{display:none}.sidebar-user{min-width:0;font-size:var(--font-size-caption);color:var(--color-text-subtle);flex-direction:column;flex:1;display:flex}.sidebar-user b{font-size:var(--font-size-body-sm);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.sidebar-user span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.top-bar{z-index:20;align-items:center;gap:var(--space-3);min-height:var(--layout-top-bar-height);max-width:var(--layout-content-max-width);width:100%;padding:var(--space-4) var(--layout-content-padding-desktop) var(--space-3);background:color-mix(in srgb, var(--color-bg-page) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;position:sticky;top:0}.top-bar-title{min-width:0;font-size:var(--font-size-h1);line-height:var(--line-height-h1);font-weight:var(--font-weight-h1);letter-spacing:-.01em;color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;overflow:hidden}.top-bar-sub{margin-left:var(--space-3);font-size:var(--font-size-body-sm);letter-spacing:0;color:var(--color-text-muted);font-weight:400}.top-bar-spacer{flex:1}.top-bar-actions{align-items:center;gap:var(--space-2);flex:none;display:flex}.avatar{border:1px solid var(--color-border);background:var(--color-bg-surface-muted);width:32px;height:32px;color:var(--color-text-secondary);font-size:var(--font-size-label);border-radius:50%;flex:none;place-items:center;padding:0;font-weight:600;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}button.avatar:hover:not(:disabled){background:var(--color-bg-raised);border-color:var(--color-border-strong)}.nav-user{display:none}.btn-logout{flex-shrink:0}.top-bar-menu,.sidebar-backdrop,.sidebar-burger,.bottom-nav,.more-sheet{display:none}@media (width<=48rem){.sidebar{display:none}.top-bar{padding:calc(var(--space-3) + env(safe-area-inset-top,0px)) var(--layout-content-padding-mobile) var(--space-2);min-height:56px}.top-bar-title{font-size:var(--font-size-h2);line-height:var(--line-height-h2)}.top-bar-primary{display:none}.main,.content{padding:var(--space-1) var(--layout-content-padding-mobile) calc(var(--layout-bottom-nav-height) + var(--space-8) + env(safe-area-inset-bottom,0px))}.bottom-nav{z-index:30;justify-content:space-around;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom,0px));background:color-mix(in srgb, var(--color-bg-surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--color-border);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-link{min-width:0;padding:var(--space-1) 0;border-radius:var(--radius-sm);color:var(--color-text-subtle);background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;font-size:.6875rem;font-weight:500;line-height:1.1;text-decoration:none;display:flex}.bottom-nav-link svg{stroke-width:1.75px;width:22px;height:22px}.bottom-nav-link span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.bottom-nav-link:hover:not(:disabled){color:var(--color-text-primary);background:0 0}.bottom-nav-link--active,.bottom-nav-link--active:hover:not(:disabled){color:var(--color-accent-primary);font-weight:600}.bottom-nav-fab{background:var(--color-accent-primary);width:46px;height:46px;color:var(--color-accent-on-primary);border:0;border-radius:15px;flex:none;place-items:center;padding:0;display:inline-grid}.bottom-nav-fab svg{stroke-width:2.2px;width:24px;height:24px}.more-sheet{z-index:60;background:var(--color-overlay);flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.more-sheet[hidden]{display:none}}.more-sheet-panel{gap:var(--space-1);max-height:85dvh;padding:var(--space-3) var(--space-3) calc(var(--space-4) + env(safe-area-inset-bottom,0px));background:var(--color-bg-surface);border-top:1px solid var(--color-border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;flex-direction:column;display:flex;overflow-y:auto}.more-sheet-grab{width:36px;height:4px;margin:0 auto var(--space-2);background:var(--color-border-strong);border-radius:2px}.more-sheet-section{padding:var(--space-3) var(--space-2) var(--space-1);font-size:var(--font-size-caption);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.more-sheet .sidebar-link{padding:10px var(--space-3)}.menu-pop{z-index:50;min-width:220px;padding:var(--space-2);background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);flex-direction:column;gap:2px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.menu-pop-head{padding:var(--space-2) var(--space-3) var(--space-3);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-1);font-size:var(--font-size-body-sm);color:var(--color-text-muted);overflow-wrap:anywhere}.menu-pop-head b{color:var(--color-text-primary);font-weight:600;display:block}.menu-item{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-secondary);background:0 0;border:0;justify-content:flex-start;font-weight:500;text-decoration:none}.menu-item svg{width:16px;height:16px}.menu-item:hover:not(:disabled){background:var(--color-bg-surface-muted);color:var(--color-text-primary);border-color:#0000}.menu-item--danger{color:var(--color-danger)}.rel{position:relative}button,.button-like{justify-content:center;align-items:center;gap:var(--space-2);min-height:36px;padding:var(--space-2) var(--space-4);font-family:inherit;font-size:var(--font-size-button);font-weight:var(--font-weight-button);border-radius:var(--radius-md);cursor:pointer;transition:background var(--motion-duration-hover) var(--motion-easing-default), border-color var(--motion-duration-hover) var(--motion-easing-default), color var(--motion-duration-hover) var(--motion-easing-default);border:1px solid #0000;display:inline-flex}button svg,.button-like svg{flex:none;width:16px;height:16px}button:focus-visible,.button-like:focus-visible,a:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}button{background:var(--color-bg-surface-muted);color:var(--color-text-primary);border-color:var(--color-border)}button:hover:not(:disabled){background:var(--color-bg-raised);border-color:var(--color-border-strong)}button[type=submit],button.primary,.btn-primary,.button-like{background:var(--color-accent-primary);color:var(--color-accent-on-primary);border-color:var(--color-accent-primary);text-decoration:none}button[type=submit]:hover:not(:disabled),button.primary:hover:not(:disabled),.btn-primary:hover:not(:disabled),.button-like:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-accent-on-primary)}.btn-secondary,button.secondary{background:var(--color-bg-surface-muted);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled),button.secondary:hover:not(:disabled){background:var(--color-bg-raised);border-color:var(--color-border-strong)}button.ghost,.btn-ghost{color:var(--color-accent-primary);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled),.btn-ghost:hover:not(:disabled){background:var(--color-accent-soft);border-color:#0000}button.danger,.btn-danger{color:var(--color-danger);border-color:var(--color-danger-border);background:0 0}button.danger:hover:not(:disabled),.btn-danger:hover:not(:disabled){background:var(--color-danger-bg);border-color:var(--color-danger)}.btn-icon{width:34px;height:34px;min-height:0;color:var(--color-text-muted);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon svg{width:18px;height:18px}.btn-icon:hover:not(:disabled){background:var(--color-bg-surface-muted);color:var(--color-text-primary);border-color:#0000}.btn-small{min-height:30px;padding:var(--space-1) var(--space-3);font-size:var(--font-size-body-sm)}.btn-icon-action{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:2rem;height:2rem;min-height:0;color:var(--color-text-muted);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon-action:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-bg-surface-muted)}.settings-download-stack{margin-top:var(--space-3)}.settings-download-btn{width:fit-content}label{gap:var(--space-1);font-size:var(--font-size-label);font-weight:var(--font-weight-label);color:var(--color-text-muted);flex-direction:column;display:flex}input,select,textarea,.input{width:100%;min-height:38px;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--font-size-input);color:var(--color-text-primary);background:var(--color-bg-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--motion-duration-hover) var(--motion-easing-default)}input:hover,select:hover,textarea:hover{border-color:var(--color-border-strong)}input:focus,select:focus,textarea:focus{border-color:var(--color-accent-primary);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--color-accent-primary)}input[type=color]{min-height:38px;padding:2px}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--color-text-muted) 50%), linear-gradient(135deg, var(--color-text-muted) 50%, transparent 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:2rem}textarea{resize:vertical;min-height:5rem}.checkbox-row,.radio-row,.checkbox-label{align-items:center;gap:var(--space-2);font-size:var(--font-size-body-sm);color:var(--color-text-secondary);flex-direction:row;display:flex}.checkbox-row input,.radio-row input{width:auto;accent-color:var(--color-accent-primary)}.toggle-switch{cursor:pointer;align-items:center;display:inline-flex}.toggle-switch-track{background:var(--color-border-strong);border-radius:var(--radius-pill);width:2.5rem;height:1.375rem;position:relative}.toggle-switch-track:after{content:"";background:var(--color-text-primary);width:1.125rem;height:1.125rem;transition:transform var(--motion-duration-hover) var(--motion-easing-default);border-radius:50%;position:absolute;top:2px;left:2px}.toggle-switch input:checked+.toggle-switch-track:after{background:var(--color-accent-on-primary);transform:translate(1.125rem)}.panel,.card,.surface{background:var(--color-bg-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:none}.card{padding:var(--space-5)}.surface{padding:var(--space-4)}.card .muted,.panel .muted{color:var(--color-text-muted)}.card a,.panel a{color:var(--color-link)}.card--default,.panel--default,.card--soft,.panel--soft,.card--hero,.panel--hero,.card--hero-blue,.panel--hero-blue,.card--hero-green,.panel--hero-green,.card--hero-orange,.panel--hero-orange,.card--analytics,.panel--analytics,.card--purple,.panel--purple,.card--info,.panel--info,.card--success,.panel--success,.card--green,.panel--green,.card--warning,.panel--warning,.card--orange,.panel--orange,.card--danger,.panel--danger,.card--blue,.panel--blue,.card--tinted,.panel--tinted,.card--pink,.panel--pink{background:var(--color-bg-surface)}.card--danger,.panel--danger{border-color:var(--color-danger-border)}.card--warning,.panel--warning{border-color:var(--color-warning-border)}.cards{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.section-title{justify-content:flex-start;align-items:baseline;gap:var(--space-3);margin:var(--space-2) 0 var(--space-2);font-size:var(--font-size-body-sm);color:var(--color-text-muted);padding-inline:2px;font-weight:600;display:flex}.section-title em{color:var(--color-text-subtle);font-style:normal;font-weight:500}.hero-metric{gap:var(--space-1);padding:var(--space-5);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.hero-metric-label{font-size:var(--font-size-body-sm);color:var(--color-text-muted);font-weight:500}.hero-metric-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:2.5rem;font-weight:650;line-height:1.1}.hero-metric-value small{color:var(--color-text-muted);margin-left:.25em;font-size:1.25rem;font-weight:500}.hero-metric-note{font-size:var(--font-size-body-sm);color:var(--color-text-muted)}.fact-strip{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid;overflow:hidden}.fact-strip>div{min-width:0;padding:var(--space-3) var(--space-4);box-shadow:-1px 0 0 var(--color-border);flex-direction:column;gap:2px;display:flex}.fact-strip span{font-size:var(--font-size-caption);color:var(--color-text-muted)}.fact-strip b{font-size:var(--font-size-body);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.progress{border-radius:var(--radius-pill);background:var(--color-bg-surface-muted);height:6px;overflow:hidden}.progress>i{border-radius:inherit;background:var(--color-accent-primary);height:100%;display:block}.list{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.list-row{align-items:center;gap:var(--space-3);min-width:0;min-height:52px;padding:var(--space-2) var(--space-4);text-align:left;color:var(--color-text-primary);display:flex}.list-row+.list-row{border-top:1px solid var(--color-border)}a.list-row,button.list-row,.list-row--link{width:100%;font-weight:inherit;font-size:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;justify-content:flex-start;text-decoration:none}.list>button.list-row+button.list-row,.list>a.list-row+a.list-row{border-top:1px solid var(--color-border)}a.list-row:hover,button.list-row:hover:not(:disabled),.list-row--link:hover{background:var(--color-bg-surface-soft);color:var(--color-text-primary);border-color:var(--color-border)}.list-row-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.list-row-title{font-size:var(--font-size-body);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.list-row-title--wrap{white-space:normal}.list-row-meta{align-items:center;gap:2px var(--space-2);font-size:var(--font-size-body-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.list-row-meta>*+:before{content:"·";margin-right:var(--space-2);color:var(--color-text-subtle)}.list-row-side{align-items:center;gap:var(--space-3);font-size:var(--font-size-body-sm);color:var(--color-text-muted);white-space:nowrap;flex:none;display:flex}.list-row-amount{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-weight:600}.list-row-icon{border-radius:var(--radius-md);width:36px;height:36px;color:var(--tone,var(--color-text-muted));background:color-mix(in srgb, var(--tone,var(--color-text-muted)) 15%, transparent);flex:none;place-items:center;display:inline-grid}.list-row-icon svg{width:18px;height:18px}.dot{background:var(--tone,var(--color-text-subtle));border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.with-dot{align-items:center;gap:6px;display:inline-flex}.tone-danger{color:var(--color-danger)!important}.tone-warning{color:var(--color-warning)!important}.tone-success{color:var(--color-success)!important}.tone-muted{color:var(--color-text-muted)!important}.chips{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.chip,button.chip{min-height:32px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);color:var(--color-text-secondary);font-size:var(--font-size-body-sm);white-space:nowrap;background:0 0;align-items:center;gap:6px;font-weight:500;display:inline-flex}.chip svg{width:14px;height:14px}button.chip:hover:not(:disabled){background:var(--color-bg-surface-muted);color:var(--color-text-primary);border-color:var(--color-border-strong)}.chip--active,button.chip--active,button.chip--active:hover:not(:disabled){background:var(--color-text-primary);border-color:var(--color-text-primary);color:var(--color-bg-page)}select.chip{border-radius:var(--radius-pill);background-color:#0000;width:auto;min-height:32px;padding-right:1.9rem}.pill{border-radius:var(--radius-pill);font-size:var(--font-size-caption);white-space:nowrap;color:var(--tone,var(--color-text-muted));background:color-mix(in srgb, var(--tone,var(--color-text-muted)) 15%, transparent);align-items:center;gap:5px;padding:2px 9px;font-weight:600;line-height:1.4;display:inline-flex}.pill--danger{--tone:var(--color-danger)}.pill--warning{--tone:var(--color-warning)}.pill--success{--tone:var(--color-success)}.pill--accent{--tone:var(--color-accent-primary)}.badge{padding:1px var(--space-2);font-size:var(--font-size-caption);border-radius:var(--radius-pill);background:var(--color-bg-surface-muted);color:var(--color-text-muted);white-space:nowrap;border:0;align-items:center;font-weight:600;display:inline-flex}.badge-urgent,.badge-overdue{background:var(--color-danger-bg);color:var(--color-danger)}.badge-high{background:var(--color-accent-soft);color:var(--color-accent-primary)}.badge-medium,.badge-low,.badge-status,.badge-date{background:var(--color-bg-surface-muted);color:var(--color-text-muted)}.badge-project{background:var(--color-bg-surface-muted);color:var(--color-text-secondary)}.segmented{border-radius:var(--radius-md);background:var(--color-bg-surface-muted);border:1px solid var(--color-border);flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented button{min-height:30px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);background:0 0;border:0;font-weight:500}.segmented button:hover:not(:disabled){color:var(--color-text-primary);background:0 0}.segmented button.segmented-active,.segmented .segmented-active,.segmented button[aria-pressed=true]{background:var(--color-bg-raised);color:var(--color-text-primary);box-shadow:0 0 0 1px var(--color-border-strong)}.table-wrap,.table-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.simple-table,table{border-collapse:collapse;width:100%;font-size:var(--font-size-body-sm)}.simple-table th,.simple-table td,table th,table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.simple-table th,table th{font-size:var(--font-size-caption);color:var(--color-text-subtle);text-transform:none;white-space:nowrap;background:0 0;font-weight:600}.simple-table tbody tr:last-child td,table tbody tr:last-child td{border-bottom:0}.simple-table tbody tr:hover,table tbody tr:hover{background:var(--color-bg-surface-soft)}.modal-backdrop,.modal-overlay{z-index:100;padding:8vh var(--space-4) var(--space-4);background:var(--color-overlay);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow:auto}.modal,.modal-card{background:var(--color-bg-raised);width:min(100%,30rem);max-width:720px;color:var(--color-text-primary);border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.modal-head,.modal-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.modal-actions,.modal-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-4);border-top:1px solid var(--color-border);background:0 0;display:flex}@media (width<=48rem){.modal-backdrop,.modal-overlay{padding:var(--space-8) 0 0;align-items:flex-end}.modal,.modal-card{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:none;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom,0px);border-bottom:0;overflow-y:auto}}.error{padding:var(--space-3) var(--space-4);font-size:var(--font-size-body-sm);color:var(--color-danger);background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius-md)}.ok,.toast.success{padding:var(--space-3) var(--space-4);color:var(--color-success);background:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:var(--radius-md)}.empty,.state{align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-6);color:var(--color-text-muted);text-align:center;border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:0 0;flex-direction:column;display:flex}.state svg{width:28px;height:28px;color:var(--color-text-subtle)}.state b{color:var(--color-text-primary);font-weight:600;font-size:var(--font-size-body)}.state--error{border-color:var(--color-danger-border)}.state--error svg{color:var(--color-danger)}.skeleton{border-radius:var(--radius-lg);background:linear-gradient(90deg, var(--color-bg-surface) 0%, var(--color-bg-surface-muted) 50%, var(--color-bg-surface) 100%);background-size:200% 100%;height:52px;animation:1.2s ease-in-out infinite skeleton;display:block}@keyframes skeleton{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}*{transition:none!important}}.login-wrap{min-height:100dvh;padding:var(--space-6);background:var(--color-bg-page);justify-content:center;align-items:center;display:flex}.login-card{gap:var(--space-3);width:min(100%,24rem);padding:var(--space-8) var(--space-6);text-align:left;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);flex-direction:column;display:flex}.login-divider{margin:var(--space-3) 0;border:none;border-top:1px solid var(--color-border)}.login-google,.login-dev-btn{width:100%;margin-top:var(--space-2)}.page-settings,.settings-page{gap:var(--space-4);max-width:34rem;display:grid}.settings-section,.settings-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.project-group{gap:var(--space-2);display:grid}.project-group h2{font-size:var(--font-size-body-sm);color:var(--color-text-muted);margin:0;font-weight:600}.task-desc{font-size:var(--font-size-body-sm);color:var(--color-text-muted);margin:2px 0 0}.muted{color:var(--color-text-muted);font-size:var(--font-size-body-sm)}.eyebrow{font-size:var(--font-size-caption);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.stack{gap:var(--space-4);display:grid}.stack-sm{gap:var(--space-2);display:grid}.toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.icon{flex:none;width:18px;height:18px}:root{--app-content-max-width:var(--layout-content-max-width)}*{box-sizing:border-box}body{color:var(--color-text-primary);background:var(--color-bg-page);margin:0}a{color:var(--color-link)}.brand-link{color:inherit;text-decoration:none}.brand-link:hover{text-decoration:underline}.btn-icon-action{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-surface);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon-action:hover:not(:disabled){background:var(--color-bg-surface-muted);border-color:var(--color-border-strong)}.btn-icon-action--danger:hover:not(:disabled){background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger-text)}.btn-icon-action:disabled{opacity:.45;cursor:not-allowed}.category-actions{gap:var(--space-1);flex-wrap:wrap;flex-shrink:0;display:flex}.categories-page-grid{gap:var(--space-4);grid-template-columns:1fr;margin-top:.75rem;display:grid}@media (width>=52rem){.categories-page-grid{grid-template-columns:1fr 1fr;align-items:start}}.top-nav nav{gap:var(--space-4);display:flex}h1{font-size:var(--font-size-display);line-height:var(--line-height-display);font-weight:var(--font-weight-display);margin:0 0 var(--space-6)}.panel{padding:var(--space-4);margin-bottom:var(--space-3)}.row.gap{gap:var(--space-3);flex-wrap:wrap;margin-bottom:.75rem;display:flex}label{gap:var(--space-1);flex-direction:column;display:flex}textarea{resize:vertical}.stack{gap:var(--space-2);flex-direction:column;display:flex}.kv{margin:0;padding:0;list-style:none}.kv li{justify-content:space-between;gap:var(--space-2);padding:var(--space-1) 0;border-bottom:1px solid var(--color-border);display:flex}.kv li:last-child{border-bottom:none}.big{font-size:var(--font-size-h2);font-weight:var(--font-weight-h2)}.page-planning-lists{gap:var(--space-4);flex-direction:column;display:flex}.list-item-create-form{gap:var(--space-3);grid-template-columns:minmax(12rem,2fr) minmax(11rem,1fr) auto;align-items:end;margin-bottom:.65rem;display:grid}.list-item-create-form--shopping{grid-template-columns:minmax(12rem,2fr) minmax(8rem,1fr) auto}.list-item-create-form-description{grid-column:1/-2}.list-item-summary{margin:0 0 .75rem}.list-item-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list-item-card{gap:var(--space-2) .75rem;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-surface);grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.list-item-card--done{background:var(--color-bg-surface-muted)}.list-item-card--done .list-item-check-row strong,.list-item-card--done .list-item-description{color:var(--color-text-muted);text-decoration:line-through}.list-item-check-row{align-items:flex-start;gap:var(--space-2);flex-direction:row;min-width:0;margin:0}.list-item-check-row input{width:auto;margin-top:.2rem}.list-item-check-row>span{min-width:0}.list-item-description{color:var(--color-text-secondary);white-space:pre-wrap;margin-top:.15rem;display:block}.list-item-meta-row{gap:var(--space-1) .9rem;color:var(--color-text-muted);font-size:var(--font-size-body-sm);flex-wrap:wrap;grid-column:1/2;display:flex}.list-item-actions{gap:var(--space-1);grid-area:1/2/span 2/3;display:flex}.list-item-edit-form{gap:var(--space-3);grid-column:1/-1;grid-template-columns:minmax(12rem,2fr) minmax(10rem,1fr);display:grid}.list-item-edit-form label:has(textarea){grid-column:1/-1}.list-item-edit-actions{gap:var(--space-2);grid-column:1/-1;justify-content:flex-end;display:flex}.table-wrap{overflow-x:auto}.simple-table{border-collapse:collapse;width:100%;font-size:var(--font-size-body-sm)}.simple-table th,.simple-table td{border:1px solid var(--color-border);padding:var(--space-1) .4rem;text-align:left;vertical-align:top}.simple-table th{background:var(--color-bg-surface-muted)}.simple-table th.col-amount,.simple-table td.col-amount,.simple-table th.tx-list-amount,.simple-table td.tx-list-amount,.tx-list-table th.tx-list-amount,.tx-list-table td.tx-list-amount,.page-expenses-income .tx-list-table th:nth-child(2),.page-expenses-income .tx-list-table td:nth-child(2){text-align:right;font-variant-numeric:tabular-nums}.page-home,.page-expenses-income,.page-categories{width:100%}.page-transfers .page-transfers-intro{margin-top:0}.page-transfers-intro{max-width:40rem;margin:0 0 1rem}.transfer-form{max-width:28rem}.transfer-form-hint{font-size:var(--font-size-body-sm);margin:-.25rem 0 .5rem}.transfer-form--wide{max-width:none}.transfer-form--wide>button{align-self:flex-start}.transfer-form-columns{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=48rem){.transfer-form-columns{gap:var(--space-2);grid-template-columns:minmax(0,1fr)}}.main:has(.page-expenses-income){max-width:var(--app-content-max-width)}:is(.main:has(.page-accounts),.main:has(.page-dashboard)){max-width:var(--app-content-max-width)}@media (width>=52rem){.page-expenses-income .home-grid-col{min-width:0}.page-expenses-income .home-grid{gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.page-expenses-income .panel-expenses-list{border-bottom:none;margin-bottom:0;padding-bottom:.5rem}.page-expenses-income .home-grid-col{gap:var(--space-3)}.tx-list-flow{gap:var(--space-1);flex-direction:column;display:flex}.tx-list-meta{font-size:var(--font-size-body-sm);margin:0}.tx-list-table-wrap{border:none;overflow:visible}.page-expenses-income .tx-list-table{table-layout:fixed;width:100%}.page-expenses-income .tx-list-date{width:7.5rem}.page-expenses-income .tx-list-flow{container-type:inline-size}@container (width<=44rem){.page-expenses-income .tx-list-table .col-comment{display:none}}@container (width<=34rem){.page-expenses-income .tx-list-table .col-account{display:none}}.page-expenses-income .tx-list-category,.page-expenses-income .tx-list-table th.tx-list-category,.page-expenses-income .tx-list-table td.tx-list-category{width:9rem}.page-expenses-income .col-account{text-overflow:ellipsis;white-space:nowrap;width:7.5rem;overflow:hidden}.page-expenses-income .tx-list-amount{text-align:right;width:6.5rem}.tx-list-filter-row{background:var(--color-bg-surface-muted)}.tx-list-filter-row td{padding:var(--space-2) .35rem;vertical-align:middle;border-bottom:1px solid var(--color-border)}.tx-list-filter-date-range,.tx-list-filter-amount-range{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.tx-list-filter-range-sep{color:var(--color-text-muted);font-size:var(--font-size-caption)}.tx-list-filter-select{width:100%;min-width:0;max-width:100%;font-size:var(--font-size-label);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-surface);padding:.3rem .4rem}.tx-list-filter-amount-input{width:100%;min-width:3.5rem;font-size:var(--font-size-label);padding:.3rem .4rem}.tx-list-filter-row .app-datetime-input{flex:5.5rem;min-width:0}.tx-list-filter-row .app-datetime-input-display{font-size:var(--font-size-caption);padding:.3rem .4rem}.tx-list-filter-clear{white-space:nowrap}.tx-list-empty-row{text-align:center;padding:var(--space-4) .5rem!important}.page-expenses-income .col-comment{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tx-list-table thead th{background:var(--color-bg-sidebar);color:var(--color-accent-on-primary);border-bottom:1px solid var(--color-bg-sidebar-active)}.tx-list-table tbody tr:last-child td{border-bottom:none}.tx-list-date{white-space:nowrap;font-variant-numeric:tabular-nums}.tx-list-amount{white-space:nowrap}.tx-category-cell{align-items:center;gap:.4rem;display:inline-flex}.tx-list-sentinel{height:1px;margin:0}.home-balance-row{gap:var(--space-3);flex-wrap:wrap;margin-bottom:1.25rem;display:flex}.status-quo-section{margin-bottom:var(--space-4)}.finance-hero,.dashboard-hero{gap:var(--space-6);padding:var(--space-6);border-radius:var(--radius-xl);background:var(--gradient-accent-hero);color:var(--color-text-on-card);box-shadow:var(--shadow-md);grid-template-columns:minmax(0,1.3fr) minmax(18rem,.7fr);align-items:stretch;display:grid}.finance-hero h2,.dashboard-hero h2{font-size:var(--font-size-h1);line-height:var(--line-height-h1);margin:0}.finance-hero p,.dashboard-hero p,.finance-hero .eyebrow,.dashboard-hero .eyebrow{color:var(--color-text-on-card-secondary)}.finance-hero-main,.dashboard-hero>div:first-child{gap:var(--space-3);flex-direction:column;display:flex}.finance-hero-actions{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.finance-hero-actions .button-like{text-decoration:none}.finance-hero-actions .btn-secondary{background:var(--color-bg-surface-muted);border-color:var(--color-border);color:var(--color-text-on-card)}.finance-hero-metrics,.dashboard-hero-metrics{gap:var(--space-3);display:grid}.finance-hero-metric,.dashboard-hero-metrics>div{gap:var(--space-1);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-surface-muted);display:grid}.finance-hero-metric span,.dashboard-hero-metrics span{color:var(--color-text-on-card-secondary);font-size:var(--font-size-caption);font-weight:var(--font-weight-label);text-transform:uppercase}.finance-hero-metric strong,.dashboard-hero-metrics strong{color:var(--color-text-on-card);font-size:var(--font-size-h3)}.finance-hero-metric--balance{border-left:4px solid var(--color-finance-saving)}.finance-hero-metric--expense{border-left:4px solid var(--color-finance-expense)}@media (width<=48rem){.finance-hero,.dashboard-hero{padding:var(--space-5);grid-template-columns:1fr}}.status-quo-heading{font-size:var(--font-size-h4);font-weight:var(--font-weight-h2);margin:0 0 1rem}.status-quo-context{gap:var(--space-3);flex-wrap:wrap;margin:0 0 1.15rem;display:flex}.status-quo-context-loading{font-size:var(--font-size-body);margin:0}.status-quo-context-item{gap:var(--space-1);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--gradient-card-default);box-shadow:var(--shadow-sm);color:var(--color-text-on-card);border:none;flex-direction:column;flex:10rem;display:flex}.status-quo-context-item--today{background:var(--gradient-card-success)}.status-quo-context-item--days{background:var(--gradient-card-warning)}.status-quo-context-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-h2);text-transform:uppercase;color:var(--color-text-on-card-secondary)}.status-quo-context-value{font-size:clamp(1.25rem,2.8vw,1.65rem);font-weight:var(--font-weight-h1);line-height:var(--line-height-h3);color:var(--color-text-on-card)}.status-quo-context-value--number{font-variant-numeric:tabular-nums;color:var(--color-text-on-card);font-size:clamp(1.75rem,4vw,2.35rem)}.home-summary-section{margin-bottom:1.5rem}.home-summary-heading{font-size:var(--font-size-h4);font-weight:var(--font-weight-h2);margin:0 0 .85rem}.status-quo-cards{gap:var(--space-3);flex-wrap:wrap;margin-bottom:.85rem;display:flex}.status-quo-tile{min-height:6.5rem}.status-quo-tile--income{background:var(--gradient-card-success);color:var(--color-text-on-card);border:none}.status-quo-tile--expense .home-balance-label,.status-quo-tile--mandatory .home-balance-label,.status-quo-tile--remaining .home-balance-label,.status-quo-tile--income .home-balance-label,.status-quo-tile--expense .home-balance-value,.status-quo-tile--mandatory .home-balance-value,.status-quo-tile--remaining .home-balance-value,.status-quo-tile--income .home-balance-value,.status-quo-tile--expense .home-balance-currency,.status-quo-tile--mandatory .home-balance-currency,.status-quo-tile--remaining .home-balance-currency,.status-quo-tile--income .home-balance-currency{color:var(--color-text-on-card)}.status-quo-tile--expense{background:var(--gradient-card-danger);color:var(--color-text-on-card);box-shadow:var(--shadow-sm);border:none}.status-quo-tile--mandatory{background:var(--gradient-card-warning);color:var(--color-text-on-card);box-shadow:var(--shadow-sm);border:none}.status-quo-tile--remaining{background:var(--gradient-card-success);color:var(--color-text-on-card);box-shadow:var(--shadow-sm);border:none}.status-quo-deviation--under{color:color-mix(in srgb, var(--color-finance-income) 55%, var(--color-text-on-card))}.status-quo-deviation--over{color:color-mix(in srgb, var(--color-finance-expense) 55%, var(--color-text-on-card))}.home-balance-tile{background:var(--gradient-card-default);width:min(100%,14rem);max-width:14rem;color:var(--color-text-on-card);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-sm);cursor:default;border:none;flex:0 auto}.home-balance-tile--total{background:var(--gradient-card-hero);color:var(--color-text-on-card);box-shadow:var(--shadow-sm);max-width:16rem}.home-balance-tile--total .home-balance-label,.home-balance-tile--total .home-balance-value,.home-balance-tile--total .home-balance-currency,.home-balance-tile--total .home-balance-breakdown,.home-balance-tile--total .muted{color:var(--color-text-on-card)}.home-balance-tile--total .home-balance-empty{color:var(--color-text-on-card-muted)}.home-balance-tile--has-tooltip{cursor:help}.home-balance-tile--default{background:var(--gradient-card-default)}.home-balance-tile--top-categories{background:var(--gradient-card-analytics);color:var(--color-text-on-card);min-height:8.5rem}.home-balance-tile--top-categories .home-balance-label,.home-balance-tile--top-categories .home-tile-sub,.home-balance-tile--top-categories .muted,.home-balance-tile--top-categories .home-top-category-item{color:var(--color-text-on-card-secondary)}.home-balance-tile--avg-daily{background:var(--gradient-card-warning);color:var(--color-text-on-card)}.home-tile-sub{font-size:var(--font-size-caption);opacity:.8;margin:-.15rem 0 .5rem}.home-balance-tile .home-tile-sub{color:var(--color-text-on-card-muted)}.home-top-categories{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.home-top-category-item{align-items:center;gap:var(--space-2);font-size:var(--font-size-body-sm);line-height:var(--line-height-body-sm);font-weight:var(--font-weight-label);display:flex}.home-top-category-item .category-swatch{border-radius:50%;flex-shrink:0;width:.65rem;height:.65rem}.home-top-category-item span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-balance-label{align-items:center;gap:var(--space-1);font-size:var(--font-size-button);opacity:.9;flex-wrap:wrap;margin:0 0 .35rem;display:flex}.home-balance-value{font-size:clamp(1.35rem,4vw,1.85rem);font-weight:var(--font-weight-h1);line-height:var(--line-height-h4);font-variant-numeric:tabular-nums;margin:0}.home-balance-currency{font-size:.65em;font-weight:var(--font-weight-h2);opacity:.95}.home-balance-breakdown{margin:var(--space-1) 0 0;font-size:var(--font-size-caption);line-height:var(--line-height-body-sm)}.home-balance-tile .muted{color:var(--color-text-on-card-muted)}.home-balance-empty{font-size:var(--font-size-button);opacity:.9;margin:0}.home-accounts-section{margin-bottom:1.25rem}.home-accounts-heading{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-h2);margin:0 0 .65rem}.home-accounts-tiles{gap:var(--space-3);flex-wrap:wrap;display:flex}.home-balance-tile--account{background:linear-gradient(135deg, var(--color-bg-sidebar-hover) 0%, var(--color-text-muted) 100%);box-shadow:var(--shadow-md)}.home-balance-tile--account-default{box-shadow:var(--shadow-md)}.home-account-badge{font-size:var(--font-size-caption);font-weight:var(--font-weight-h2);text-transform:uppercase;border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-bg-surface) 20%, transparent);line-height:var(--line-height-h3);padding:.12rem .4rem}.home-grid{grid-template-columns:1fr;gap:1.25rem;display:grid}@media (width>=52rem){.home-grid{grid-template-columns:1fr 1fr;align-items:start}}.home-grid-col{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.home-action-btn{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--font-size-button)}.modal-card{max-width:24rem;max-height:90dvh;padding:var(--space-4) var(--space-5);overflow-y:auto}.modal-head h2{font-size:var(--font-size-h4);margin:0}.checkbox-hint{width:100%;font-size:var(--font-size-label);margin-top:.15rem;display:block}.category-hidden-badge{color:var(--color-text-muted);font-style:italic}.grid-create-btn{background:var(--color-bg-surface);width:100%;color:var(--color-text-primary);border:1px dashed var(--color-border-strong);margin-bottom:.75rem}.grid-create-btn:hover{background:var(--color-bg-surface-muted);border-color:var(--color-border-strong)}.page-accounts h1{margin:0 0 1rem}.page-accounts-grid{grid-template-columns:1fr;align-items:start;gap:1.25rem;display:grid}@media (width>=64rem){.page-accounts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.page-accounts-col-toolbar{justify-content:flex-end;gap:.5rem;margin-bottom:.75rem;display:flex}.page-accounts-grid .panel h2{margin-bottom:.65rem}.accounts-grid--column,.currencies-grid--column{grid-template-columns:1fr}.exchange-rate-date-field{gap:var(--space-1);font-size:var(--font-size-button);flex-direction:column;margin-bottom:.35rem;display:flex}.exchange-rate-date-field input[type=date]{max-width:100%}.exchange-rate-date-hint{font-size:var(--font-size-label);margin:0 0 .75rem}.currencies-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));display:grid}.currency-card{background:var(--gradient-card-soft);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-on-card);padding:var(--space-3) .9rem}.currency-card h3,.currency-card p{color:var(--color-text-on-card)}.currency-card .muted{color:var(--color-text-on-card-muted)}.currency-card-code{font-size:var(--font-size-body-lg);margin:0 0 .35rem}.currency-card-name{font-size:var(--font-size-button);margin:0 0 .25rem}.currency-card-symbol{font-size:var(--font-size-label);margin:0}.page-accounts-rates-date{font-size:var(--font-size-body-sm);margin:0 0 .65rem}.exchange-rates-table-wrap{overflow-x:auto}.exchange-rates-table{border-collapse:collapse;width:100%;font-size:var(--font-size-button);background:var(--gradient-card-soft);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-on-card)}.exchange-rates-table th,.exchange-rates-table td{padding:var(--space-2) .75rem;text-align:left;border-bottom:1px solid var(--color-border);color:var(--color-text-on-card)}.exchange-rates-table th{font-weight:var(--font-weight-h2);background:var(--color-bg-surface-muted);color:var(--color-text-on-card-secondary)}.exchange-rates-table strong{color:var(--color-text-on-card)}.exchange-rates-table .muted{color:var(--color-text-on-card-muted)}.exchange-rates-table tbody tr:last-child td{border-bottom:none}.exchange-rates-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.accounts-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));display:grid}.account-card{background:var(--gradient-card-soft);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-on-card);padding:var(--space-3) 1rem}.account-card-top{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:.65rem;display:flex}.account-card-title{font-size:var(--font-size-body-lg);color:var(--color-text-on-card);margin:0}.modal-hint{font-size:var(--font-size-label);margin:0}.account-card-meta{gap:.4rem;margin:0;display:grid}.account-card-meta>div{justify-content:space-between;gap:var(--space-2);font-size:var(--font-size-body-sm);display:flex}.account-card-meta dt{color:var(--color-text-on-card-muted);font-weight:400}.account-card-meta dd{text-align:right;color:var(--color-text-on-card);margin:0}.account-card-balance{font-weight:var(--font-weight-h2)}.page-dashboard h1{margin:0 0 1rem}.dashboard-total{font-size:var(--font-size-button);margin:0 0 .75rem}.dashboard-filters{margin-bottom:1rem}.dashboard-avg-daily-card{max-width:18rem;margin-bottom:1.15rem}.dashboard-period-filter{gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.dashboard-period-btn{font-size:var(--font-size-body-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);cursor:pointer;padding:.4rem .75rem}.dashboard-period-btn:hover{background:var(--color-bg-surface-muted)}.dashboard-date-range{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.dashboard-date-range label{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-label);display:inline-flex}.dashboard-date-range input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-surface);min-height:2.25rem;color:var(--color-text-primary);font:inherit;padding:.35rem .55rem}.dashboard-date-range input:focus{border-color:var(--color-focus-ring);outline:none}.dashboard-panel-loading{margin:var(--space-2) 0 0}.dashboard-panel-categories,.dashboard-panel-bubbles,.dashboard-panel-daily{background:var(--gradient-card-analytics);color:var(--color-text-on-card);border:none;margin-top:0}.page-dashboard .dashboard-panel-categories h2,.page-dashboard .dashboard-panel-bubbles h2,.page-dashboard .dashboard-panel-daily h2,.page-dashboard .dashboard-panel-loading,.page-dashboard .dashboard-total{color:var(--color-text-on-card)}.page-dashboard .dashboard-avg-daily-card{background:var(--gradient-card-warning);color:var(--color-text-on-card);border:none}.page-home,.page-dashboard{gap:var(--space-4);flex-direction:column;display:flex}.dashboard-tiles-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width>=40rem){.dashboard-tiles-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.dashboard-tile{align-items:stretch;gap:var(--space-1);min-height:4.5rem;padding:var(--space-2) .55rem;background:var(--gradient-card-default);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);color:var(--color-text-on-card);cursor:pointer;font:inherit;text-align:left;flex-direction:column;min-width:0;transition:box-shadow .15s,opacity .15s,transform .15s;display:flex}.dashboard-tile:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.dashboard-tile[data-selected=true]{box-shadow:0 0 0 2px var(--color-accent-on-primary), var(--shadow-md)}.dashboard-tile[data-dimmed=true]{opacity:.42}.dashboard-tile--empty{background:var(--color-bg-surface-muted);cursor:default;opacity:.55;border-style:dashed;transform:none}.dashboard-selection-hint{align-items:center;gap:var(--space-2);margin:0 0 var(--space-3);color:var(--color-text-on-card-muted);font-size:var(--font-size-body-sm);flex-wrap:wrap;display:flex}.dashboard-selection-clear{border-color:var(--color-border);background:var(--color-bg-surface-muted);min-height:0;color:var(--color-text-on-card);font-size:var(--font-size-caption);padding:.25rem .55rem}.dashboard-selection-clear:hover:not(:disabled){background:var(--color-bg-surface-muted);border-color:var(--color-border)}.dashboard-tile-swatch{border:1px solid var(--color-border);border-radius:50%;flex-shrink:0;width:.75rem;height:.75rem}.dashboard-tile-name{color:var(--color-text-on-card);font-size:var(--font-size-caption);font-weight:var(--font-weight-label);line-height:var(--line-height-body-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dashboard-tile-amount{color:var(--color-text-on-card);font-size:var(--font-size-label);font-weight:var(--font-weight-h2);font-variant-numeric:tabular-nums;text-align:right;align-self:flex-end}.dashboard-bubble-wrap{width:100%;overflow-x:auto}.dashboard-bubble-chart{width:100%;min-width:320px;max-width:100%;margin:0 auto;display:block}.page-dashboard .dashboard-bubble-wrap,.page-dashboard .daily-chart-wrap{width:100%}@media (width>=56rem){.page-dashboard .dashboard-tiles-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.dashboard-bubble-circle{opacity:.92;transition:opacity .15s}.dashboard-bubble-group:hover .dashboard-bubble-circle{opacity:1;stroke:var(--color-border);stroke-width:2px}.dashboard-bubble-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-h2);pointer-events:none}.daily-chart-wrap{width:100%;overflow-x:auto}.daily-chart{width:100%;min-width:320px;max-width:720px;display:block}.daily-chart--wide,.page-dashboard .daily-chart{max-width:100%}.daily-chart-bar{fill:var(--color-accent-primary)}.daily-chart-bar:hover{fill:var(--color-accent-hover)}.daily-chart-axis,.daily-chart-label,.daily-chart-label-weekday{font-size:var(--font-size-caption);fill:var(--color-text-muted)}.category-list--readonly .category-list-item{border-bottom:1px solid var(--color-border)}.categories-row{gap:var(--space-3);grid-template-columns:1fr;margin-bottom:1rem;display:grid}@media (width>=44rem){.categories-row{grid-template-columns:1fr 1fr;align-items:start}}.category-form{max-width:20rem}.page-categories-hint{font-size:var(--font-size-button);margin:0 0 1rem}.category-list{margin:0;padding:0;list-style:none}.category-list--saving{opacity:.65;pointer-events:none}.category-list-item{justify-content:space-between;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--color-border);padding:.4rem 0;transition:background .12s,box-shadow .12s;display:flex}.category-list-item--dragging{opacity:.45}.category-list-item--drag-over{background:var(--color-accent-soft);box-shadow:var(--shadow-xs)}.category-drag-handle{border-radius:var(--radius-sm);width:1.5rem;height:1.5rem;color:var(--color-text-muted);font-size:var(--font-size-caption);line-height:var(--line-height-h3);cursor:grab;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.category-drag-handle:hover{background:var(--color-border);color:var(--color-text-secondary)}.category-drag-handle:active{cursor:grabbing}.category-drag-handle:disabled{opacity:.4;cursor:not-allowed}.category-list-item:last-child{border-bottom:none}.category-list-name{align-items:center;gap:.4rem;display:flex}.category-swatch{border:1px solid var(--color-border);border-radius:50%;flex-shrink:0;width:.75rem;height:.75rem}.color-palette-fieldset{border:none;margin:0;padding:0}.color-palette-fieldset legend{font-size:var(--font-size-button);margin-bottom:.35rem;padding:0}.color-palette-grid{gap:var(--space-2);flex-wrap:wrap;max-width:16rem;display:flex}.color-palette-swatch{border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;box-shadow:var(--shadow-xs);border:2px solid #0000;padding:0;transition:transform .12s,border-color .12s,box-shadow .12s}.color-palette-swatch:hover:not(:disabled){box-shadow:var(--shadow-xs);transform:scale(1.08)}.color-palette-swatch--selected{border-color:var(--color-accent-primary);box-shadow:var(--shadow-xs)}.color-palette-swatch:disabled{opacity:.55;cursor:not-allowed}.color-palette-label{margin:var(--space-2) 0 0;font-size:var(--font-size-body-sm);min-height:1.25rem}.color-palette-empty{margin:0}.col-actions{white-space:nowrap;width:1%}.table-actions{gap:var(--space-1);flex-wrap:wrap;justify-content:flex-end;display:flex}.page-expenses-income .col-actions{vertical-align:middle;width:4.75rem;min-width:4.75rem;max-width:4.75rem;padding:.2rem .25rem}.page-expenses-income .table-actions{gap:var(--space-1);flex-wrap:nowrap;justify-content:center}.virtual-tx-table{gap:var(--space-1);flex-direction:column;min-height:0;display:flex}.virtual-tx-meta{font-size:var(--font-size-body-sm);margin:0}.virtual-tx-scroll{overscroll-behavior:contain;max-height:min(60vh,520px);overflow:auto}.virtual-tx-scroll thead th{z-index:1;background:var(--color-bg-surface);box-shadow:var(--shadow-xs);position:sticky;top:0}.virtual-tx-spacer td{line-height:0}.page-expenses-income .table-actions .btn-small{flex-shrink:0}.ops-grid{gap:var(--space-4);grid-template-columns:1fr;margin-bottom:1rem;display:grid}@media (width>=44rem){.ops-grid{grid-template-columns:1fr 1fr;align-items:start}}.ops-col{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.ops-flash{font-size:var(--font-size-button);margin:0}.dashboard-block{border-top:1px solid var(--color-border);margin-top:.5rem;padding-top:.75rem}.dashboard-heading{font-size:var(--font-size-h4);margin:0 0 .65rem}.compact-table{font-size:var(--font-size-label)}.compact-table th,.compact-table td{padding:var(--space-1) var(--space-1)}.login-wrap{background:var(--color-bg-surface-muted)}.login-card h1{margin-top:0}.page-ai-chat h1{margin:0 0 .5rem}.page-ai-chat-intro{max-width:42rem;margin:0 0 1rem}.ai-chat-layout{gap:var(--space-4);grid-template-columns:16rem minmax(0,1fr);align-items:stretch;max-width:68rem;display:grid}.ai-chat-sidebar{gap:var(--space-3);padding:var(--space-3);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;min-width:0;max-height:min(75vh,44rem);display:flex}.ai-chat-sidebar-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.ai-chat-sidebar-head h2{font-size:var(--font-size-h4);margin:0}.ai-chat-list-close,.ai-chat-list-open{display:none}.ai-chat-new,.ai-chat-failed button{justify-content:center;align-items:center;gap:var(--space-1);display:inline-flex}.ai-chat-list-note{font-size:var(--font-size-button);margin:0}.ai-chat-list-note .error{margin:0 0 var(--space-2)}.ai-chat-list{gap:var(--space-1);flex-direction:column;flex:1;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.ai-chat-list-item{justify-content:space-between;align-items:baseline;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-primary);text-align:left;font-weight:inherit;background:0 0;border:1px solid #0000;display:flex}.ai-chat-list-item:hover:not(:disabled){background:var(--color-bg-surface-muted);border-color:#0000}.ai-chat-list-item--active,.ai-chat-list-item--active:hover:not(:disabled){background:var(--color-accent-soft);border-color:var(--color-accent-border)}.ai-chat-list-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ai-chat-list-date{font-size:var(--font-size-caption);color:var(--color-text-muted);flex-shrink:0}.ai-chat-panel{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:0;min-width:0;min-height:24rem;display:flex;overflow:hidden}.ai-chat-head{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);min-height:3.5rem;display:flex}.ai-chat-title{min-width:0;font-size:var(--font-size-h4);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;overflow:hidden}.ai-chat-head-actions{gap:var(--space-1);flex-shrink:0;display:flex}.ai-chat-rename{gap:var(--space-2);flex-wrap:wrap;flex:1;min-width:0;display:flex}.ai-chat-rename input{flex:10rem;min-width:0}.ai-chat-action-error{padding:var(--space-2) var(--space-4);margin:0}.ai-chat-messages{min-height:16rem;max-height:min(55vh,28rem);padding:var(--space-4);gap:var(--space-3);background:var(--color-bg-surface-muted);flex-direction:column;flex:1;display:flex;overflow-y:auto}.ai-chat-empty{text-align:center;font-size:var(--font-size-button);margin:auto}.ai-chat-empty .error{margin:0 0 var(--space-2)}.ai-chat-bubble{max-width:92%;padding:var(--space-3) .85rem;border-radius:var(--radius-md);border:1px solid var(--color-border)}.ai-chat-bubble p{margin:var(--space-1) 0 0;white-space:pre-wrap;line-height:var(--line-height-body)}.ai-chat-bubble-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-h2);text-transform:uppercase;color:var(--color-text-muted)}.ai-chat-bubble--user{background:var(--color-accent-soft);border-color:var(--color-info-border);align-self:flex-end}.ai-chat-bubble--assistant{background:var(--color-bg-surface);align-self:flex-start}.ai-chat-bubble--loading{opacity:.85}.ai-chat-bubble--failed{background:var(--color-danger-bg);border-color:var(--color-danger-border)}.ai-chat-failed{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--font-size-caption);color:var(--color-danger-text);flex-wrap:wrap;display:flex}.ai-chat-failed button{padding:var(--space-1) var(--space-2);font-size:var(--font-size-caption)}.ai-chat-compose{gap:var(--space-2);padding:var(--space-3) 1rem 1rem;border-top:1px solid var(--color-border);background:var(--color-bg-surface);flex-direction:column;display:flex}.ai-chat-input-label{gap:var(--space-1);font-size:var(--font-size-button);flex-direction:column;display:flex}.ai-chat-input-label textarea{resize:vertical;min-height:4.5rem}.ai-chat-compose-actions{justify-content:flex-end;display:flex}.page-settings h1{margin:0 0 1rem}.settings-section{max-width:36rem}.page-settings .settings-section+.settings-section{margin-top:1rem}.settings-section--stack .settings-row-label{margin-bottom:.35rem}.settings-download-block{align-items:center;gap:var(--space-3) 1rem;flex-wrap:wrap;margin-top:.75rem;display:flex}.settings-download-meta{font-size:var(--font-size-button);margin:0}.settings-download-status{margin:var(--space-3) 0 0}.settings-download-date{margin:var(--space-1) 0 0;font-size:var(--font-size-body-sm)}.settings-download-btn{text-decoration:none}.settings-row{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.settings-row-label{font-size:var(--font-size-body-lg);margin:0 0 .35rem}.settings-row-hint{font-size:var(--font-size-body-sm);line-height:var(--line-height-body);margin:0}.toggle-switch{cursor:pointer;flex-shrink:0;width:2.75rem;height:1.5rem;display:inline-flex;position:relative}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-switch-track{border-radius:var(--radius-pill);background:var(--color-border);width:100%;height:100%;transition:background .15s;display:block}.toggle-switch-track:after{content:"";background:var(--color-bg-surface);width:1.25rem;height:1.25rem;box-shadow:var(--shadow-xs);border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle-switch input:checked+.toggle-switch-track{background:var(--color-accent-primary)}.toggle-switch input:checked+.toggle-switch-track:after{transform:translate(1.25rem)}.toggle-switch input:focus-visible+.toggle-switch-track{outline:2px solid var(--color-focus-ring);outline-offset:2px}.app-datetime-input{width:100%;display:block;position:relative}.app-datetime-input-display{padding:var(--space-2) 2rem .45rem .5rem;pointer-events:none;font:inherit;color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.app-datetime-input-display--placeholder{color:var(--color-text-muted)}.app-datetime-input-native{color:#0000;caret-color:#0000;background:0 0;width:100%;position:relative}.app-datetime-input-native::-webkit-calendar-picker-indicator{cursor:pointer;opacity:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.app-datetime-input-native::-webkit-datetime-edit{opacity:0}.app-datetime-input-native::-webkit-datetime-edit-fields-wrapper{opacity:0}.app-datetime-input-native::-webkit-datetime-edit-text{opacity:0}.app-datetime-input-native::-webkit-datetime-edit-month-field{opacity:0}.app-datetime-input-native::-webkit-datetime-edit-day-field{opacity:0}.app-datetime-input-native::-webkit-datetime-edit-year-field{opacity:0}.app-datetime-input-native::-webkit-datetime-edit-hour-field{opacity:0}.app-datetime-input-native::-webkit-datetime-edit-minute-field{opacity:0}.app-datetime-input-native::-webkit-datetime-edit-ampm-field{opacity:0}.app-datetime-input-native:disabled{opacity:1;cursor:not-allowed}.app-datetime-input:has(.app-datetime-input-native:disabled) .app-datetime-input-display{color:var(--color-text-muted)}.page-mortgage-intro{max-width:42rem;margin-top:0}.mortgage-sections{gap:1.25rem}.credit-list{gap:var(--space-1);flex-direction:column;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.credit-list-item{justify-content:space-between;align-items:center;gap:var(--space-1) .75rem;width:100%;padding:var(--space-2) .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-surface-muted);color:var(--color-text-primary);cursor:pointer;text-align:left;flex-wrap:wrap;display:flex}.credit-list-item:hover{background:var(--color-accent-soft);border-color:var(--color-info-border)}.credit-list-item--active{border-color:var(--color-accent-primary);background:color-mix(in srgb, var(--color-accent-primary) 8%, transparent)}.credit-list-item-name{font-weight:var(--font-weight-h2)}.credit-add-btn{margin-top:.25rem}.mortgage-settings-form{max-width:52rem}.mortgage-settings-grid{gap:var(--space-2);grid-template-columns:1fr;margin-bottom:.5rem;display:grid}@media (width>=48rem){.mortgage-settings-grid{grid-template-columns:1fr 1fr}}.mortgage-settings-model{margin-bottom:.5rem}.mortgage-prepay-warning{margin:0 0 .75rem}.mortgage-form{max-width:28rem}.mortgage-settings-form.mortgage-form{max-width:52rem}.mortgage-hint{font-size:var(--font-size-body-sm);margin:0 0 .75rem}.mortgage-import-panel h2{margin-right:auto}.mortgage-panel-actions{justify-content:flex-end;margin:-.25rem 0 .5rem;display:flex}.mortgage-panel-hide{color:var(--color-text-primary);border-color:var(--color-border);background:0 0}.mortgage-show-import{margin-bottom:.75rem}.mortgage-file-input .button-like{padding:var(--space-2) 1rem;border-radius:var(--radius-sm);background:var(--color-accent-primary);color:var(--color-accent-on-primary);cursor:pointer;font-size:var(--font-size-button);display:inline-block}.mortgage-stats-grid{gap:var(--space-3) 1.25rem;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));margin:0;display:grid}.mortgage-stats-grid dt{font-size:var(--font-size-caption);color:var(--color-text-primary);margin-bottom:.15rem}.page-mortgage .simple-table th{color:var(--color-text-primary);background:var(--color-bg-surface-muted)}.mortgage-stats-grid dd{font-weight:var(--font-weight-h2);font-variant-numeric:tabular-nums;margin:0}.mortgage-toolbar{gap:var(--space-4);flex-wrap:wrap;margin-bottom:.75rem;display:flex}.mortgage-forecast-tabs{gap:var(--space-2);flex-wrap:wrap;margin-bottom:.75rem;display:flex}.mortgage-tab{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-surface);cursor:pointer;font-size:var(--font-size-body-sm);padding:.4rem .75rem}.mortgage-tab--active{border-color:var(--color-accent-primary);background:color-mix(in srgb, var(--color-accent-primary) 8%, transparent)}.mortgage-strategy-fieldset{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) 1rem}.mortgage-radio{align-items:center;gap:var(--space-2);margin:var(--space-1) 0;display:flex}.mortgage-prepay-result{border-top:1px solid var(--color-border);margin-top:1.25rem;padding-top:1rem}.mortgage-subheading{margin:var(--space-4) 0 .5rem;font-size:var(--font-size-button)}.main:has(.page-mortgage){max-width:var(--app-content-max-width)}.app-datetime-input-native:focus{border-color:var(--color-focus-ring);outline:none}.top-bar-menu,.sidebar-backdrop{display:none}@media (width<=48rem){.app-shell--mobile .sidebar-backdrop{z-index:40;background:var(--color-overlay);cursor:pointer;border:none;padding:0;display:block;position:fixed;inset:0}.app-shell--mobile .sidebar.sidebar--mobile{z-index:45;width:min(var(--layout-sidebar-width-open), 86vw);max-width:86vw;box-shadow:var(--shadow-lg);transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.app-shell--mobile .sidebar.sidebar--mobile.sidebar--open{transform:translate(0)}.app-shell--mobile .sidebar.sidebar--mobile.sidebar--closed{width:min(var(--layout-sidebar-width-open), 86vw)}.app-shell--mobile .sidebar.sidebar--mobile .sidebar-brand{display:block}.app-shell--mobile .sidebar.sidebar--mobile .sidebar-head{justify-content:space-between;padding-left:1rem;padding-right:1rem}.app-shell--mobile .app-body{width:100%;min-width:0}.app-shell--mobile .top-bar-menu{width:2.25rem;height:2.25rem;color:var(--color-text-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.app-shell--mobile .top-bar{padding:var(--space-2) .75rem;gap:var(--space-2)}.app-shell--mobile .top-bar-title{font-size:var(--font-size-body);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.app-shell--mobile .top-bar-spacer,.app-shell--mobile .nav-user{display:none}.app-shell--mobile .btn-logout{padding:var(--space-1) .55rem;font-size:var(--font-size-label);flex-shrink:0}.app-shell--mobile .main{padding:var(--space-3) .85rem 1.25rem;max-width:none}.page-planning-lists>.page-list-items+.page-list-items,.page-dashboard>.dashboard-avg-daily-card,.page-dashboard>.dashboard-panel-bubbles,.page-dashboard>.dashboard-panel-categories,.page-dashboard>.dashboard-panel-daily{margin-top:var(--space-4)}.dashboard-tiles-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-expenses-income .tx-list-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.page-expenses-income .tx-list-date,.page-expenses-income .tx-list-category,.page-expenses-income .col-account,.page-expenses-income .tx-list-amount,.page-expenses-income .col-actions{width:auto;min-width:0;max-width:none}.page-expenses-income .col-account,.page-expenses-income .col-comment{display:none}.page-expenses-income .table-actions{flex-wrap:wrap}.page-expenses-income .tx-list-table{table-layout:auto;min-width:18rem}.settings-row{gap:var(--space-3);flex-direction:column}.page-accounts-col-toolbar{justify-content:stretch}.page-accounts-col-toolbar .button-like,.page-accounts-col-toolbar button{width:100%}.list-item-create-form,.list-item-create-form--shopping,.list-item-edit-form,.list-item-card{grid-template-columns:1fr}.list-item-create-form-description,.list-item-actions,.list-item-meta-row{grid-column:auto}.list-item-actions{grid-row:auto;justify-content:flex-end}.modal-overlay{padding:var(--space-3);align-items:flex-end}.modal-card{border-bottom-right-radius:0;border-bottom-left-radius:0;width:100%;max-width:none;max-height:92dvh}.mortgage-toolbar{flex-direction:column;align-items:stretch}.mortgage-toolbar label{width:100%}.mortgage-forecast-tabs{gap:var(--space-1)}.mortgage-tab{text-align:center;padding:var(--space-2) .35rem;font-size:var(--font-size-label);flex:calc(50% - .35rem)}.home-balance-row{flex-direction:column;align-items:stretch}.home-balance-tile{width:100%;max-width:none}.ops-grid{grid-template-columns:1fr}.ai-chat-layout{grid-template-columns:minmax(0,1fr)}.ai-chat-panel{min-height:min(36rem,100dvh - 12rem)}.ai-chat-messages{max-height:max(16rem,100dvh - 24rem)}.ai-chat-list-open,.ai-chat-list-close{justify-content:center;align-items:center;gap:var(--space-1);flex-shrink:0;display:inline-flex}.ai-chat-sidebar{display:none}.ai-chat-sidebar--open{z-index:60;max-height:75dvh;padding:var(--space-4);border-radius:var(--radius-md) var(--radius-md) 0 0;border-width:1px 0 0;display:flex;position:fixed;bottom:0;left:0;right:0}.ai-chat-backdrop{z-index:59;background:#00000080;position:fixed;inset:0}.ai-chat-list-item{padding:var(--space-3)}.login-card{width:100%;max-width:none;margin:0}}@media (width<=26rem){.dashboard-tiles-grid{grid-template-columns:1fr}}.obligation-confirm-section{margin-bottom:var(--space-5)}.obligation-confirm-list{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));margin:0;padding:0;list-style:none;display:grid}.obligation-confirm-card{gap:var(--space-2);padding:var(--space-4);border:none;border-left:4px solid var(--color-finance-expense);border-radius:var(--radius-lg);background:var(--gradient-card-default);color:var(--color-text-on-card);display:grid}.obligation-confirm-card .muted{color:var(--color-text-on-card-secondary)}.obligation-confirm-head{gap:var(--space-1);display:grid}.obligation-confirm-question{margin:0}.obligation-confirm-amount{gap:var(--space-1);color:var(--color-text-on-card-secondary);font-size:var(--font-size-caption);display:grid}.obligation-confirm-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.obligation-children{flex-direction:column;gap:4px;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.obligation-children li{justify-content:space-between;gap:12px;display:flex}.obligation-children-inline{font-size:.8125rem;display:block}.btn-compact{margin-right:.375rem;padding:.25rem .625rem;font-size:.8125rem}.obligation-nested{padding-left:28px}.obligation-plan-totals{gap:var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.obligation-plan-accounts{margin:0 0 var(--space-4);gap:var(--space-2);padding:0;list-style:none;display:grid}.obligation-plan-accounts li{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;display:flex}.obligation-shortfall{color:var(--color-finance-expense);font-weight:var(--font-weight-label)}.obligation-row--paid td,.obligation-row--skipped td{color:var(--color-text-muted)}.finance-hero,.dashboard-hero{background:var(--color-bg-surface);border:1px solid var(--color-border);color:var(--color-text-primary);padding:var(--space-5)}.finance-hero h2,.dashboard-hero h2{font-size:var(--font-size-h2);line-height:var(--line-height-h2)}.finance-hero p,.dashboard-hero p{color:var(--color-text-muted)}.finance-hero-metric--balance,.finance-hero-metric--expense{border-left:1px solid var(--color-border)}.finance-hero-metric span,.dashboard-hero-metrics span,.status-quo-context-label{color:var(--color-text-muted);text-transform:none;font-weight:500;font-size:var(--font-size-body-sm)}.finance-hero-metric strong,.dashboard-hero-metrics strong{color:var(--color-text-primary);font-size:var(--font-size-h2);font-variant-numeric:tabular-nums;font-weight:650}.finance-hero-actions .btn-secondary{color:var(--color-text-primary)}.status-quo-heading,.home-summary-heading,.home-accounts-heading{font-size:var(--font-size-body-sm);color:var(--color-text-muted);margin-bottom:var(--space-2);font-weight:600}.status-quo-context{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:0;overflow:hidden}.status-quo-context-item,.status-quo-context-item--today,.status-quo-context-item--days{padding:var(--space-3) var(--space-4);box-shadow:-1px 0 0 var(--color-border);color:var(--color-text-primary);background:0 0;border-radius:0}.status-quo-context-value,.status-quo-context-value--number{font-size:var(--font-size-h3);line-height:var(--line-height-h3);color:var(--color-text-primary);font-weight:600}.status-quo-cards,.home-balance-row,.home-accounts-tiles{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));display:grid}.home-balance-tile,.home-balance-tile--total,.home-balance-tile--account,.home-balance-tile--account-default,.home-balance-tile--top-categories,.home-balance-tile--avg-daily,.status-quo-tile,.status-quo-tile--income,.status-quo-tile--expense,.status-quo-tile--mandatory,.status-quo-tile--remaining{background:var(--color-bg-surface);border:1px solid var(--color-border);width:auto;max-width:none;min-height:0;box-shadow:none;color:var(--color-text-primary);padding:var(--space-4)}.home-balance-tile--total{border-color:var(--color-accent-border)}.home-balance-label{color:var(--color-text-muted);font-size:var(--font-size-body-sm);opacity:1;font-weight:500}.home-balance-value{font-size:var(--font-size-h2);line-height:var(--line-height-h2);color:var(--color-text-primary);font-weight:650}.home-balance-currency{color:var(--color-text-muted);margin-left:.25em;font-size:.6em;font-weight:500}.status-quo-tile--expense .home-balance-label,.status-quo-tile--mandatory .home-balance-label,.status-quo-tile--remaining .home-balance-label,.status-quo-tile--income .home-balance-label,.home-balance-tile--total .home-balance-label,.home-balance-tile--top-categories .home-balance-label,.home-balance-tile--top-categories .home-tile-sub,.home-balance-tile--top-categories .muted,.home-balance-tile .muted,.home-tile-sub{color:var(--color-text-muted)}.status-quo-tile--expense .home-balance-value,.status-quo-tile--mandatory .home-balance-value,.status-quo-tile--remaining .home-balance-value,.status-quo-tile--income .home-balance-value,.home-balance-tile--total .home-balance-value{color:var(--color-text-primary)}.status-quo-tile--income .home-balance-value{color:var(--color-finance-income)}.home-action-btn{justify-content:center}.panel h2,.panel-title{font-size:var(--font-size-h3);line-height:var(--line-height-h3);font-weight:600}@media (width<=48rem){.tx-list-table .tx-list-filter-row,.tx-list-table thead tr:first-child{display:none}.tx-list-table,.tx-list-table tbody{display:block}.tx-list-table tbody tr{align-items:center;gap:2px var(--space-3);padding:var(--space-3) var(--space-1);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.tx-list-table tbody tr:last-child{border-bottom:0}.tx-list-table tbody td{border:0;padding:0;display:block;width:auto!important;max-width:none!important}.page-expenses-income .tx-list-table td.tx-list-category,.tx-list-table td.tx-list-category{min-width:0;font-weight:500;font-size:var(--font-size-body);flex:1 1 0;order:1}.page-expenses-income .tx-list-table td.tx-list-amount,.tx-list-table td.tx-list-amount{font-weight:600;font-size:var(--font-size-body);text-align:right;order:2}.tx-list-table td.tx-list-date{color:var(--color-text-muted);font-size:var(--font-size-caption);order:3}.page-expenses-income .tx-list-table td.col-account,.tx-list-table td.col-account{color:var(--color-text-muted);font-size:var(--font-size-caption);order:4;display:block!important}.page-expenses-income .tx-list-table td.col-comment,.tx-list-table td.col-comment{color:var(--color-text-muted);font-size:var(--font-size-caption);flex-basis:100%;order:5;display:block!important}.tx-list-table td.col-actions{order:6;margin-left:auto}.tx-list-table td.tx-list-empty-row{flex-basis:100%}}.page-aliases{width:100%}.aliases-toolbar{gap:var(--space-2);margin:var(--space-2) 0;flex-wrap:wrap;display:flex}.aliases-toolbar input[type=search]{flex:12rem;min-width:0}.aliases-table td{vertical-align:middle}.aliases-table .aliases-text-input,.aliases-table select{width:100%;min-width:8rem}.template-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.template-chip{font-size:var(--font-size-body-sm);background:var(--color-bg-surface-muted);color:inherit;border:1px solid var(--color-border);border-radius:999px;padding:.25rem .75rem}.template-chip--active{border-color:currentColor;font-weight:600}.page-expense-templates{width:100%}.templates-add{gap:var(--space-2);margin:var(--space-2) 0 var(--space-3);flex-wrap:wrap;display:flex}.templates-add>*{flex:10rem;min-width:0}.templates-table td{vertical-align:middle}.templates-table input,.templates-table select{width:100%;min-width:7rem}.page-budgets{gap:var(--space-3);flex-direction:column;width:100%;display:flex}.budget-overview{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid}.budget-overview>div{gap:var(--space-1);flex-direction:column;display:flex}.budget-list{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.budget-row{width:100%;padding:var(--space-2) var(--space-3);text-align:left;color:inherit;font:inherit;background:var(--color-bg-surface-muted);border:1px solid var(--color-border);border-radius:10px;display:block}.budget-row--static{cursor:default}.budget-progress-head,.budget-progress-foot{justify-content:space-between;gap:var(--space-2);font-size:var(--font-size-body-sm);flex-wrap:wrap;display:flex}.budget-progress-name{font-weight:600}.budget-bar{height:8px;margin:var(--space-1) 0;background:var(--color-border);border-radius:4px;position:relative}.budget-bar-fill{background:currentColor;border-radius:4px;height:100%}.budget-bar-today{background:var(--color-text-secondary,#b3bac5);width:2px;position:absolute;top:-2px;bottom:-2px}.budget-ok{color:#4fc08a}.budget-warn{color:#e8a548}.budget-over{color:#f0705e}.budget-suggestions{gap:var(--space-1);margin-top:var(--space-2);flex-direction:column;display:flex}.budget-home-link{font-size:var(--font-size-body-sm);margin-left:var(--space-1);font-weight:400}.page-home.stack,.page-dashboard.stack{gap:var(--space-5)}.page-dashboard .panel{margin-bottom:0}.page-dashboard .panel>h2{margin:0 0 var(--space-3);font-size:var(--font-size-body);font-weight:600}.home-allowance .progress{margin-top:var(--space-1);max-width:28rem}.home-week-value{font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:700;line-height:1.15}.home-week-value small{color:var(--color-text-muted);font-size:1rem;font-weight:500}.progress--danger>i{background:var(--color-danger)}.home-upcoming-side{font-size:var(--font-size-caption);justify-items:end;gap:2px;display:grid}.home-upcoming-side .list-row-amount{font-size:var(--font-size-body-sm)}.home-account-pill{margin-left:var(--space-2);vertical-align:1px}.home-rate{margin:var(--space-1) 2px 0;font-size:var(--font-size-caption)}.home-pace{gap:var(--space-3);margin:0;display:grid}.home-pace-text,.dashboard-pace-text{font-size:var(--font-size-body-sm);margin:0;line-height:1.5}.pace-chart{gap:var(--space-2);margin:0;display:grid}.pace-chart svg{width:100%;height:auto;display:block;overflow:visible}.pace-grid{stroke:var(--color-border-subtle);stroke-width:1px}.pace-axis{fill:var(--color-text-subtle);font-variant-numeric:tabular-nums;font-size:12px}.pace-line{fill:none;stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.pace-line--actual{stroke:var(--color-accent-primary);stroke-width:3px}.pace-line--previous{stroke:var(--color-text-subtle)}.pace-line--plan{stroke:var(--color-success);stroke-dasharray:6 6;stroke-width:2px}.pace-dot{fill:var(--color-accent-primary);stroke:var(--color-bg-surface);stroke-width:2px}.pace-legend{gap:var(--space-4);font-size:var(--font-size-caption);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.pace-key:before{content:"";vertical-align:middle;border-top:3px solid var(--color-accent-primary);width:16px;height:0;margin-right:6px;display:inline-block}.pace-key--previous:before{border-top-color:var(--color-text-subtle);border-top-width:2px}.pace-key--plan:before{border-top:2px dashed var(--color-success)}.chart-hit{fill:#0000;cursor:pointer;outline:none}.chart-hit:focus-visible{stroke:var(--color-accent-primary);stroke-width:1px}.chart-zero{stroke:var(--color-text-subtle);stroke-width:1px}.chart-dot{fill:var(--color-accent-primary);stroke:var(--color-bg-surface);stroke-width:2px}.chart-dot--estimated{fill:var(--color-bg-surface);stroke:var(--color-accent-primary)}.stack-col--active .pace-axis{fill:var(--color-text-primary);font-weight:600}.stack-readout{gap:var(--space-2);display:grid}.stack-readout-head{justify-content:space-between;gap:var(--space-3);font-size:var(--font-size-body-sm);font-variant-numeric:tabular-nums;display:flex}.stack-readout-note{font-size:var(--font-size-caption);margin:0}.stack-legend{gap:4px var(--space-4);font-size:var(--font-size-caption);grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));margin:0;padding:0;list-style:none;display:grid}.stack-legend li{align-items:center;gap:var(--space-2);display:flex}.stack-legend-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-secondary);flex:1;overflow:hidden}.stack-legend-value{font-variant-numeric:tabular-nums}.dashboard-panel-debt .fact-strip{margin-bottom:var(--space-3)}.debt-timeline{margin:var(--space-2) 0 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.debt-row{align-items:center;gap:var(--space-3);font-size:var(--font-size-body-sm);grid-template-columns:minmax(8rem,14rem) 1fr 6.5rem 7rem;display:grid}.debt-row-name,.debt-row-end{min-width:0;display:grid}.debt-row-name small,.debt-row-end small{font-size:var(--font-size-caption)}.debt-row-track{background:var(--color-bg-surface-muted);border-radius:4px;height:8px;display:block;overflow:hidden}.debt-row-bar{background:var(--color-finance-debt);border-radius:4px;height:100%;display:block}.debt-row-bar--open{opacity:.55;border-radius:4px 0 0 4px}.debt-row-amount{text-align:right;font-variant-numeric:tabular-nums}@media (width<=48rem){.debt-row{grid-template-columns:1fr auto}.debt-row-track{grid-area:2/1/auto/-1}.debt-row-end{grid-area:3/1}.debt-row-amount{grid-area:1/2}}.payday-fields{align-items:flex-end;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.payday-fields label{font-size:var(--font-size-body-sm);gap:4px;display:grid}.payday-fields input{width:5rem}.cat-bars{gap:2px;margin:0;padding:0;list-style:none;display:grid}.cat-bar{align-items:center;gap:var(--space-3);width:100%;padding:8px var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-body-sm);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(8rem,14rem) 1fr 8rem 3rem 4.5rem;justify-content:stretch;display:grid}.cat-bar:hover{background:var(--color-bg-surface-muted)}.cat-bar[aria-pressed=true]{background:var(--color-accent-soft)}.cat-bar--dim{opacity:.45}.cat-bar-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:inline-flex;overflow:hidden}.cat-bar-track{background:var(--color-bg-surface-muted);border-radius:999px;height:10px;overflow:hidden}.cat-bar-track>i{border-radius:inherit;height:100%;display:block}.cat-bar-amount{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.cat-bar-share{text-align:right;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.cat-bar-delta{text-align:right;color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:var(--font-size-caption)}.spend-cal{gap:6px var(--space-2);grid-template-columns:auto 1fr;display:grid}.spend-cal-days{color:var(--color-text-subtle);grid-template-rows:14px repeat(7,16px);gap:4px;font-size:11px;line-height:16px;display:grid}.spend-cal-days:before{content:""}.spend-cal-grid{grid-auto-columns:16px;grid-auto-flow:column;justify-content:start;gap:4px;display:grid;overflow-x:auto}.spend-cal-week{grid-template-rows:14px repeat(7,16px);gap:4px;display:grid;position:relative}.spend-cal-week:not(:has(.spend-cal-month)):before{content:""}.spend-cal-month{color:var(--color-text-subtle);white-space:nowrap;font-size:11px}.spend-cal-cell{background:var(--color-bg-surface-muted);border-radius:4px;width:16px;height:16px;display:block}.spend-cal-cell--l1{background:color-mix(in srgb, var(--color-accent-primary) 22%, var(--color-bg-surface-muted))}.spend-cal-cell--l2{background:color-mix(in srgb, var(--color-accent-primary) 42%, var(--color-bg-surface-muted))}.spend-cal-cell--l3{background:color-mix(in srgb, var(--color-accent-primary) 64%, var(--color-bg-surface-muted))}.spend-cal-cell--l4{background:color-mix(in srgb, var(--color-accent-primary) 84%, var(--color-bg-surface-muted))}.spend-cal-cell--l5{background:var(--color-danger)}.spend-cal-cell--future{border:1px dashed var(--color-border-subtle);background:0 0}.spend-cal-legend{color:var(--color-text-subtle);grid-column:2;align-items:center;gap:4px;font-size:11px;display:flex}.spend-cal-legend .spend-cal-cell{width:12px;min-width:12px}@media (width<=48rem){.cat-bar{grid-template-columns:minmax(0,1fr) auto 3.5rem;grid-template-areas:"name amount delta""track track track";row-gap:6px}.cat-bar-name{grid-area:name}.cat-bar-track{grid-area:track}.cat-bar-amount{grid-area:amount}.cat-bar-delta{grid-area:delta}.cat-bar-share{display:none}}.page-home .section-title,.page-dashboard .section-title{align-items:center}.section-link{font-size:var(--font-size-body-sm);color:var(--color-accent-primary);white-space:nowrap;align-items:center;gap:2px;margin-left:auto;font-weight:500;text-decoration:none;display:inline-flex}.section-link:hover{text-decoration:underline}.section-link .icon{width:16px;height:16px}.dashboard-filter-group{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.dashboard-period-filter{gap:var(--space-2);scrollbar-width:none;flex-wrap:nowrap;max-width:100%;display:flex;overflow-x:auto}.dashboard-period-btn{width:auto;min-height:0;font-size:var(--font-size-body-sm);border-radius:999px;flex:none;padding:6px 12px}.dashboard-period-btn--active{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:var(--color-accent-on-primary)}.dashboard-date-range{gap:var(--space-2);align-items:center;display:flex}.dashboard-date-range label{font-size:var(--font-size-body-sm);color:var(--color-text-muted);align-items:center;gap:6px;margin:0;display:inline-flex}.dashboard-date-range input{width:auto;min-height:0;font-size:var(--font-size-body-sm);padding:5px 8px}@media (width<=48rem){.dashboard-period-filter{width:100%}.dashboard-period-btn{width:auto!important}.dashboard-date-range{width:100%}.dashboard-date-range label{flex:1}.dashboard-date-range input{flex:1;width:100%}}
