:root{--colors-primary: #5A00CF;--colors-primary-dark-text: #B794F6;--colors-income: #1E9E4A;--colors-income-dark: #4ADE80;--colors-expense: #E5383B;--colors-expense-dark: #FF6B6B;--colors-white: #FFFFFF;--colors-black: #000000;--colors-light-canvas: #F2F2F7;--colors-light-surface: #FFFFFF;--colors-light-text: #1C1C1E;--colors-light-text-muted: rgba(60, 60, 67, .6);--colors-light-text-tertiary: rgba(60, 60, 67, .4);--colors-light-separator: rgba(60, 60, 67, .1);--colors-dark-canvas: #000000;--colors-dark-surface: #1C1C1E;--colors-dark-text: #FFFFFF;--colors-dark-text-muted: rgba(235, 235, 245, .6);--colors-dark-text-tertiary: rgba(235, 235, 245, .35);--colors-dark-separator: rgba(84, 84, 88, .5);--colors-purple-tint-light: rgba(90, 0, 207, .1);--colors-purple-tint-dark: rgba(183, 148, 246, .18);--colors-control-light: rgba(120, 120, 128, .12);--colors-control-dark: rgba(120, 120, 128, .24);--colors-glass-light: rgba(255, 255, 255, .62);--colors-glass-dark: rgba(120, 120, 128, .26);--colors-glass-border-light: rgba(255, 255, 255, .7);--colors-glass-border-dark: rgba(255, 255, 255, .12);--colors-purple-ramp1: #5A00CF;--colors-purple-ramp2: #7B2FE3;--colors-purple-ramp3: #9A5CEC;--colors-purple-ramp4: #B98DF3;--colors-purple-ramp5: #D4B8F8;--colors-purple-ramp6: #9C9CA8;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--spacing-hero: 64px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-hero: 24px;--radius-round: 9999px;--typography-caption: 12px;--typography-body-compact: 16px;--typography-body: 17px;--typography-subtitle: 18px;--typography-title: 24px;--typography-hero: 32px;--sizes-app-max: 430px;--sizes-hit-target: 44px;--sizes-control: 48px;--sizes-fab: 56px;--sizes-icon-chip: 40px;--sizes-logo: 64px;--sizes-donut: 188px;--sizes-progress: 6px;--sizes-nav-pill-item: 44px;--sizes-bottom-sheet-max: 420px;--border-hairline: 1px;--shadow-surface-light: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 24px rgba(0, 0, 0, .04);--shadow-surface-dark: 0 1px 0 rgba(255, 255, 255, .04);--shadow-glass-light: 0 12px 40px rgba(90, 0, 207, .12);--shadow-glass-dark: 0 12px 40px rgba(0, 0, 0, .45);--shadow-primary: 0 8px 24px rgba(90, 0, 207, .35);--glass-blur: 20px;--glass-saturate: 180%;--theme-canvas: var(--colors-light-canvas);--theme-surface: var(--colors-light-surface);--theme-text: var(--colors-light-text);--theme-text-muted: var(--colors-light-text-muted);--theme-text-tertiary: var(--colors-light-text-tertiary);--theme-separator: var(--colors-light-separator);--theme-accent-text: var(--colors-primary);--theme-icon-chip: var(--colors-purple-tint-light);--theme-control: var(--colors-control-light);--theme-glass: var(--colors-glass-light);--theme-glass-border: var(--colors-glass-border-light);--theme-shadow-surface: var(--shadow-surface-light);--theme-shadow-glass: var(--shadow-glass-light);--theme-income: var(--colors-income);--theme-expense: var(--colors-expense)}[data-theme=dark]{--theme-canvas: var(--colors-dark-canvas);--theme-surface: var(--colors-dark-surface);--theme-text: var(--colors-dark-text);--theme-text-muted: var(--colors-dark-text-muted);--theme-text-tertiary: var(--colors-dark-text-tertiary);--theme-separator: var(--colors-dark-separator);--theme-accent-text: var(--colors-primary-dark-text);--theme-icon-chip: var(--colors-purple-tint-dark);--theme-control: var(--colors-control-dark);--theme-glass: var(--colors-glass-dark);--theme-glass-border: var(--colors-glass-border-dark);--theme-shadow-surface: var(--shadow-surface-dark);--theme-shadow-glass: var(--shadow-glass-dark);--theme-income: var(--colors-income-dark);--theme-expense: var(--colors-expense-dark)}*{box-sizing:border-box}html{background:var(--theme-canvas);color:var(--theme-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--typography-body);line-height:1.35}body{margin:0;min-block-size:100vh;background:var(--theme-canvas);color:var(--theme-text);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}a{color:inherit;text-decoration:none}#root{min-block-size:100vh}.app-loading,.login-screen,.app-shell{inline-size:min(100%,var(--sizes-app-max));min-block-size:100vh;margin-inline:auto;position:relative;overflow:hidden;background:var(--theme-canvas)}.app-loading{display:grid;place-items:center;color:var(--theme-accent-text);font-size:var(--typography-title);font-weight:700}.login-screen{padding:calc(env(safe-area-inset-top) + var(--spacing-hero)) var(--spacing-lg) var(--spacing-xxl);display:flex;flex-direction:column}.ambient{position:absolute;border-radius:var(--radius-round);pointer-events:none;background:var(--colors-purple-tint-light);filter:blur(var(--spacing-xxl))}[data-theme=dark] .ambient{background:var(--colors-purple-tint-dark)}.ambient-login-top{inset-block-start:calc(var(--spacing-xl) * -1);inset-inline-end:calc(var(--spacing-xxl) * -1);inline-size:calc(var(--spacing-hero) * 4);block-size:calc(var(--spacing-hero) * 4)}.ambient-login-side{inset-block-start:calc(var(--spacing-hero) * 4);inset-inline-start:calc(var(--spacing-hero) * -2);inline-size:calc(var(--spacing-hero) * 4);block-size:calc(var(--spacing-hero) * 4)}.login-brand{position:relative;display:flex;flex-direction:column;gap:var(--spacing-lg);margin-block-start:var(--spacing-lg)}.brand-mark{inline-size:var(--sizes-logo);block-size:var(--sizes-logo);border-radius:var(--radius-lg);background:var(--colors-primary);color:var(--colors-white);display:grid;place-items:center;font-size:var(--typography-hero);font-weight:700;box-shadow:var(--shadow-primary)}h1,h2,p{margin:0}.login-brand h1{font-size:var(--typography-hero);line-height:1.1}.login-brand p{margin-block-start:var(--spacing-sm);color:var(--theme-text-muted);font-size:var(--typography-body-compact)}.login-form{position:relative;margin-block-start:var(--spacing-xxl);display:flex;flex-direction:column;gap:var(--spacing-md)}.login-card{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.login-version{margin-block-start:auto;text-align:center;color:var(--theme-text-tertiary);font-size:var(--typography-caption)}.glass-card{position:relative;overflow:hidden;border-radius:var(--radius-hero);border:var(--border-hairline) solid var(--theme-glass-border);background:var(--theme-glass);box-shadow:var(--theme-shadow-glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}.card{border-radius:var(--radius-lg);background:var(--theme-surface);box-shadow:var(--theme-shadow-surface);border:var(--border-hairline) solid transparent;overflow:hidden}[data-theme=dark] .card{border-color:var(--theme-separator)}.button{min-block-size:var(--sizes-hit-target);border:0;border-radius:var(--radius-md);padding-inline:var(--spacing-md);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);cursor:pointer;font-weight:600;color:var(--theme-text);background:transparent}.button-primary{block-size:var(--sizes-control);color:var(--colors-white);background:var(--colors-primary);box-shadow:var(--shadow-primary)}.button-ghost{color:var(--theme-accent-text)}.button-icon{inline-size:var(--sizes-hit-target);block-size:var(--sizes-hit-target);padding:0;border-radius:var(--radius-round);color:var(--theme-text-muted)}.button:disabled{opacity:.45;cursor:not-allowed}.text-link{min-block-size:var(--sizes-hit-target);border:0;background:transparent;color:var(--theme-accent-text);font-weight:500}.field{display:flex;flex-direction:column;gap:var(--spacing-sm)}.field-label{color:var(--theme-text-muted);font-size:var(--typography-caption);font-weight:600}.input-shell,.select-shell{min-block-size:var(--sizes-control);border-radius:var(--radius-md);border:var(--border-hairline) solid var(--theme-separator);background:var(--theme-surface);display:flex;align-items:center;gap:var(--spacing-sm);padding-inline:var(--spacing-md)}.input,.select-shell select{inline-size:100%;border:0;outline:0;background:transparent;color:var(--theme-text)}.input-icon{color:var(--theme-text-tertiary)}.turnstile-box{min-block-size:var(--sizes-control)}.form-error{color:var(--theme-expense);font-size:var(--typography-caption);font-weight:600}.icon{inline-size:var(--typography-title);block-size:var(--typography-title);stroke-width:2}.app-shell{padding:calc(env(safe-area-inset-top) + var(--spacing-hero)) var(--spacing-md) var(--spacing-xxl)}.app-header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-block-end:var(--spacing-lg)}.eyebrow{display:block;color:var(--theme-text-muted);font-size:var(--typography-caption)}.app-header h1{margin-block-start:var(--spacing-xs);font-size:var(--typography-title);line-height:1.1}.nav-pill{border-radius:var(--radius-round);display:flex;align-items:center;padding:var(--spacing-xs);flex-shrink:0}.nav-pill-item{inline-size:var(--sizes-nav-pill-item);block-size:var(--sizes-nav-pill-item);display:grid;place-items:center;border-radius:var(--radius-round);color:var(--theme-text-muted)}.nav-pill-item[aria-current=page]{background:var(--colors-primary);color:var(--colors-white)}.nav-divider{inline-size:var(--border-hairline);block-size:var(--sizes-hit-target);background:var(--theme-separator);margin-inline:var(--spacing-xs)}.home-gradient{position:absolute;inset-block-start:0;inset-inline:0;block-size:calc(var(--spacing-hero) * 5);background:linear-gradient(var(--colors-purple-tint-light),transparent);pointer-events:none}[data-theme=dark] .home-gradient{background:linear-gradient(var(--colors-purple-tint-dark),transparent)}.balance-hero{padding:var(--spacing-lg)}.hero-topline,.today-row,.section-header{display:flex;justify-content:space-between;gap:var(--spacing-md);color:var(--theme-text-muted);font-size:var(--typography-caption);font-weight:600}.hero-balance{display:block;margin-block-start:var(--spacing-sm);font-size:var(--typography-hero);line-height:1.1}.split-grid{margin-block-start:var(--spacing-md);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-sm)}.split{border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md)}.split span{display:block;color:var(--theme-text-muted);font-size:var(--typography-caption)}.split strong{display:block;margin-block-start:var(--spacing-xs);font-size:var(--typography-subtitle)}.income-bg{background:color-mix(in srgb,var(--theme-income) 12%,transparent)}.income-bg strong,.income{color:var(--theme-income)}.expense-bg{background:color-mix(in srgb,var(--theme-expense) 10%,transparent)}.expense-bg strong,.expense{color:var(--theme-expense)}.today-row{padding:var(--spacing-md) var(--spacing-sm) 0}.today-row strong{color:var(--theme-text);font-size:var(--typography-body-compact)}.section-header{margin:var(--spacing-lg) var(--spacing-sm) var(--spacing-md);text-transform:uppercase}.section-header a{color:var(--theme-accent-text);text-transform:none}.list-card>*+*{border-block-start:var(--border-hairline) solid var(--theme-separator)}.transaction-row{min-block-size:var(--spacing-hero);padding:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-md)}.category-chip{inline-size:var(--sizes-icon-chip);block-size:var(--sizes-icon-chip);border-radius:var(--radius-md);display:grid;place-items:center;flex-shrink:0;color:var(--theme-accent-text);background:var(--theme-icon-chip)}.category-chip .icon{inline-size:var(--typography-subtitle);block-size:var(--typography-subtitle)}.transaction-main{flex:1;min-inline-size:0}.transaction-title{color:var(--theme-text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-meta{margin-block-start:var(--spacing-xs);color:var(--theme-text-muted);font-size:var(--typography-caption)}.transaction-amount{font-weight:700;white-space:nowrap}.fab{position:fixed;inset-inline-end:max(var(--spacing-lg),calc((100vw - var(--sizes-app-max)) / 2 + var(--spacing-lg)));inset-block-end:calc(env(safe-area-inset-bottom) + var(--spacing-xxl));inline-size:var(--sizes-fab);block-size:var(--sizes-fab);border-radius:var(--radius-lg);background:var(--colors-primary);color:var(--colors-white);box-shadow:var(--shadow-primary)}.sheet-backdrop,.modal-backdrop{position:fixed;inset:0;z-index:10;display:flex;align-items:flex-end;justify-content:center;background:color-mix(in srgb,var(--theme-canvas) 55%,transparent)}.bottom-sheet,.modal{inline-size:min(100%,var(--sizes-bottom-sheet-max));background:var(--theme-surface);border:var(--border-hairline) solid var(--theme-separator);box-shadow:var(--theme-shadow-glass)}.bottom-sheet{border-radius:var(--radius-hero) var(--radius-hero) 0 0;padding:var(--spacing-sm) var(--spacing-lg) calc(env(safe-area-inset-bottom) + var(--spacing-lg))}.modal{align-self:center;border-radius:var(--radius-hero);padding:var(--spacing-lg)}.sheet-handle{inline-size:var(--spacing-xxl);block-size:var(--spacing-xs);border-radius:var(--radius-round);background:var(--theme-separator);margin:0 auto var(--spacing-md)}.sheet-header,.modal-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);margin-block-end:var(--spacing-md)}.sheet-header h2,.modal-header h2{font-size:var(--typography-title)}.sheet-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-xs);padding:var(--spacing-xs);border-radius:var(--radius-md);background:var(--theme-control)}.sheet-form .segmented{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented-item{border:0;min-block-size:var(--sizes-hit-target);border-radius:var(--radius-sm);background:transparent;color:var(--theme-text-muted);font-weight:600}.segmented-item[aria-selected=true]{background:var(--theme-surface);color:var(--theme-text);box-shadow:var(--theme-shadow-surface)}.history-groups{margin-block-start:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg)}.group-label,.card-label{margin:0 var(--spacing-sm) var(--spacing-sm);color:var(--theme-text-muted);font-size:var(--typography-caption);font-weight:700;text-transform:uppercase}.analytics-top{display:flex;justify-content:flex-end;margin-block-end:var(--spacing-md)}.analytics-top span{min-block-size:var(--sizes-hit-target);display:inline-flex;align-items:center;padding-inline:var(--spacing-md);border-radius:var(--radius-round);background:var(--theme-control);font-weight:600}.analytics-card{border-radius:var(--radius-hero);padding:var(--spacing-lg);display:flex;flex-direction:column;align-items:center}.donut{inline-size:var(--sizes-donut);block-size:var(--sizes-donut);position:relative;margin-block:var(--spacing-md)}.donut-svg{inline-size:100%;block-size:100%}.donut-track,.donut-segment{fill:none;stroke-width:var(--spacing-lg)}.donut-track{stroke:var(--theme-control)}.donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.donut-center strong{font-size:var(--typography-title)}.donut-center span{color:var(--theme-text-muted);font-size:var(--typography-caption)}.analytics-list{margin-block-start:var(--spacing-md)}.category-breakdown{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md)}.category-breakdown-main{flex:1;min-inline-size:0}.category-line,.progress-line{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.category-line strong{white-space:nowrap}.progress-line{margin-block-start:var(--spacing-sm)}.progress-line span{flex:1;block-size:var(--sizes-progress);border-radius:var(--radius-round);overflow:hidden;background:var(--theme-control)}.progress-line i{display:block;block-size:100%;border-radius:var(--radius-round)}.progress-line em{inline-size:var(--spacing-xl);color:var(--theme-text-muted);font-size:var(--typography-caption);font-style:normal;text-align:end}.empty-state{padding:var(--spacing-lg);color:var(--theme-text-muted);text-align:center}
