:root{color-scheme:light;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;--afc-bg: #ffffff;--afc-surface: #f9fafb;--afc-text: #1a1d24;--afc-hint: #6b7280;--afc-faint: #9ca3af;--afc-border: #e5e7eb;--afc-track: #e5e7eb;--afc-accent: #0047ab;--afc-accent-deep: #002d6e;--afc-accent-soft: rgb(0 71 171 / 10%);--afc-accent-text: #ffffff;--afc-income: #059669;--afc-income-bg: #d1fae5;--afc-expense: #e11d48;--afc-expense-bg: #ffe4e6;--afc-expense-soft: #fff1f2;--afc-on-danger: #ffffff;--afc-series-1: #2a78d6;--afc-series-2: #eb6834;--afc-series-3: #1baf7a;--afc-series-4: #eda100;--afc-series-5: #e87ba4;--afc-series-6: #008300;--afc-series-7: #4a3aa7;--afc-series-8: #e34948;--afc-radius-lg: 24px;--afc-radius-md: 20px;--afc-radius-sm: 16px;--afc-space: 12px}:root[data-theme=dark]{color-scheme:dark;--afc-bg: #0f1116;--afc-surface: #171a21;--afc-text: #f2f4f8;--afc-hint: #9aa3b2;--afc-faint: #868fa0;--afc-border: #272c37;--afc-track: #272c37;--afc-accent: #4d8dff;--afc-accent-deep: #2f6fe0;--afc-accent-soft: rgb(77 141 255 / 16%);--afc-accent-text: #0b1220;--afc-income: #34d399;--afc-income-bg: rgb(52 211 153 / 18%);--afc-expense: #fb7185;--afc-expense-bg: rgb(251 113 133 / 18%);--afc-expense-soft: rgb(251 113 133 / 10%);--afc-on-danger: #2a0a12;--afc-series-1: #3987e5;--afc-series-2: #d95926;--afc-series-3: #199e70;--afc-series-4: #c98500;--afc-series-5: #d55181;--afc-series-6: #008300;--afc-series-7: #9085e9;--afc-series-8: #e66767}*{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;background:var(--afc-bg);color:var(--afc-text);-webkit-font-smoothing:antialiased}.body-scroll-locked{overflow:hidden}button{font:inherit;cursor:pointer}.app-shell{display:flex;flex-direction:column;min-height:var(--tg-viewport-stable-height, 100vh)}.screen{flex:1;max-width:480px;width:100%;margin:0 auto;padding:16px 16px calc(120px + max(env(safe-area-inset-bottom),var(--tg-safe-area-inset-bottom, 0px)));display:flex;flex-direction:column;gap:var(--afc-space)}.dashboard{display:flex;flex-direction:column;gap:var(--afc-space)}.card{background:var(--afc-surface);border:1px solid var(--afc-border);border-radius:var(--afc-radius-lg);padding:20px}.section-title{margin:0 0 12px;font-size:11px;font-weight:700;color:var(--afc-faint);text-transform:uppercase;letter-spacing:.1em}.empty-state{margin:4px 0;color:var(--afc-hint);font-size:14px}.balance-card{color:var(--afc-text);padding:20px 16px 8px;text-align:center}.balance-card-icon{display:none}.balance-card-label{margin:0;font-size:13px;color:var(--afc-hint)}.balance-card-row{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0}.balance-card-value{min-width:0;margin:6px 0 0;font-weight:700;letter-spacing:-.025em;white-space:nowrap}.balance-card-value--default{font-size:40px}.balance-card-value--medium{font-size:32px}.balance-card-value--small{font-size:26px}.balance-card-value--tiny{font-size:22px}.balance-card-toggle{flex-shrink:0;margin-top:6px;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:50%;background:transparent;color:var(--afc-faint);font-size:20px;transition:transform .15s cubic-bezier(.4,0,.2,1)}.balance-card-toggle:active{transform:scale(.9)}.balance-card-meta{margin:6px 0 0;font-size:12px;color:var(--afc-faint)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--afc-space)}.stats-card{min-width:0;background:var(--afc-surface);border:1px solid var(--afc-border);border-radius:var(--afc-radius-md);padding:16px}.stats-card-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:15px}.stats-card--income .stats-card-icon{background:var(--afc-income-bg);color:var(--afc-income)}.stats-card--expense .stats-card-icon{background:var(--afc-expense-bg);color:var(--afc-expense)}.stats-card-label{margin:8px 0 0;font-size:12px;font-weight:500;color:var(--afc-hint)}.stats-card-value{margin:2px 0 0;font-weight:700;letter-spacing:-.01em;color:var(--afc-text);white-space:nowrap}.stats-card-value--default{font-size:16px}.stats-card-value--medium{font-size:13px}.stats-card-value--small{font-size:12px}.stats-card-value--tiny{font-size:11px}.progress-block{display:flex;flex-direction:column;gap:8px}.progress-numbers{display:flex;align-items:baseline;gap:6px}.progress-current{font-size:18px;font-weight:700}.progress-target{font-size:13px;color:var(--afc-hint)}.progress-bar{height:10px;border-radius:999px;background:var(--afc-track);overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--afc-accent) 0%,var(--afc-accent-deep) 100%);transition:width .2s ease}.progress-fill--warn{background:var(--afc-expense)}.progress-fill--success{background:var(--afc-income)}.progress-footer{display:flex;justify-content:space-between;font-size:12px;color:var(--afc-hint)}.progress-text--warn{color:var(--afc-expense);font-weight:600}.progress-text--success{color:var(--afc-income);font-weight:600}.transaction-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.transaction-item{display:flex;align-items:center;gap:14px;background:var(--afc-surface);border:1px solid var(--afc-border);border-radius:var(--afc-radius-md);padding:14px}.transaction-icon{flex-shrink:0;width:46px;height:46px;border-radius:var(--afc-radius-sm);display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--afc-accent-soft);color:var(--afc-accent)}.transaction-icon--income{background:var(--afc-income-bg);color:var(--afc-income)}.transaction-icon--expense{background:var(--afc-accent-soft);color:var(--afc-accent)}.transaction-icon--neutral{background:var(--afc-surface);color:var(--afc-hint)}.transaction-details{flex:1;min-width:0}.transaction-title{margin:0;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-description{margin:2px 0 0;font-size:12px;color:var(--afc-hint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-date{margin:2px 0 0;font-size:12px;color:var(--afc-hint)}.transaction-amount{flex-shrink:0;font-size:14px;font-weight:700}.transaction-amount--income{color:var(--afc-income)}.transaction-amount--expense{color:var(--afc-expense)}.transaction-item-button{display:flex;align-items:center;gap:14px;width:100%;border:none;background:none;color:inherit;padding:0;text-align:left;border-radius:var(--afc-radius-sm)}.transaction-item{transition:transform .15s cubic-bezier(.4,0,.2,1)}.transaction-item:has(.transaction-item-button:active){transform:scale(.97)}.notifications{display:flex;flex-direction:column;gap:var(--afc-space)}.notification-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.notification-item{background:var(--afc-surface);border:1px solid var(--afc-border);border-radius:var(--afc-radius-md)}.notification-item--unread{background:var(--afc-accent-soft);border-color:#0047ab33}.notification-item-button{display:flex;align-items:flex-start;gap:10px;width:100%;border:none;background:none;color:inherit;padding:12px;text-align:left;border-radius:var(--afc-radius-md)}.notification-item-button:active{opacity:.6}.notification-dot{flex-shrink:0;width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--afc-accent)}.notification-content{flex:1;min-width:0}.notification-title{margin:0;font-size:14px;font-weight:500}.notification-item--unread .notification-title{font-weight:600}.notification-body{margin:2px 0 0;font-size:13px;color:var(--afc-hint)}.notification-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.notification-date{flex-shrink:0;font-size:12px;color:var(--afc-faint)}.goals{display:flex;flex-direction:column;gap:var(--afc-space)}.goal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:22px}.goal-list .goal-list{gap:6px}.goal-card{background:var(--afc-surface);border:1px solid var(--afc-border);border-radius:var(--afc-radius-lg);transition:transform .15s cubic-bezier(.4,0,.2,1)}.goal-card:has(.goal-card-button:active){transform:scale(.97)}.goal-card-button{display:block;width:100%;border:none;background:none;color:inherit;padding:20px;text-align:left;border-radius:var(--afc-radius-lg)}.goal-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.goal-card-title{margin:0;font-size:15px;font-weight:600}.goal-card-badge{flex-shrink:0;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--afc-income);background:var(--afc-income-bg);padding:4px 10px;border-radius:999px}.history{display:flex;flex-direction:column;gap:var(--afc-space)}.screen-header{display:flex;align-items:center;justify-content:space-between;padding:0;min-height:40px}.screen-header .section-title{margin:0}.screen-subtitle{margin:-6px 0 0;font-size:12px;color:var(--afc-faint)}.screen-header .screen-subtitle{margin:3px 0 0}.refresh-button{border:1px solid var(--afc-border);background:var(--afc-surface);color:var(--afc-text);border-radius:50%;width:40px;height:40px;font-size:18px;display:flex;align-items:center;justify-content:center;transition:transform .15s cubic-bezier(.4,0,.2,1)}.refresh-button:active{transform:scale(.9)}.search-screen{display:flex;flex-direction:column;gap:var(--afc-space)}.search-sticky{position:sticky;top:0;z-index:20;background:var(--afc-bg);padding:4px 0 8px;display:flex;flex-direction:column;gap:10px}.search-field{position:relative;display:flex;align-items:center}.search-input{width:100%;font:inherit;font-size:14px;background:var(--afc-surface);color:var(--afc-text);border:1px solid var(--afc-border);border-radius:999px;padding:12px 44px 12px 18px}.search-input:focus{outline:none;border-color:#0047ab7f}.search-clear{position:absolute;right:8px;border:none;background:var(--afc-bg);color:var(--afc-hint);width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px}.filter-chips{display:flex;gap:8px}.filter-chip{padding:8px 16px;border:1px solid var(--afc-border);border-radius:999px;background:var(--afc-surface);color:var(--afc-hint);font-size:12px;font-weight:700;white-space:nowrap}.filter-chip--active{border-color:var(--afc-accent);background:var(--afc-accent);color:var(--afc-accent-text)}.top-bar{width:100%;max-width:480px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 0}.top-bar-user{display:flex;align-items:center;gap:12px;min-width:0}.top-bar-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--afc-accent);color:var(--afc-accent-text);font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;object-fit:cover}.top-bar-user-text{min-width:0}.top-bar-hello{margin:0;font-size:11px;font-weight:500;color:var(--afc-hint)}.top-bar-name{margin:0;font-size:14px;font-weight:600;color:var(--afc-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-bar-actions{flex-shrink:0;display:flex;gap:8px}.top-bar-item{position:relative;border:1px solid var(--afc-border);background:var(--afc-surface);color:var(--afc-text);border-radius:50%;width:40px;height:40px;font-size:19px;display:flex;align-items:center;justify-content:center;transition:transform .15s cubic-bezier(.4,0,.2,1)}.top-bar-item:active{transform:scale(.9)}.top-bar-item--active{color:var(--afc-accent);border-color:#0047ab66}.bottom-nav{position:fixed;left:50%;bottom:calc(12px + max(env(safe-area-inset-bottom),var(--tg-safe-area-inset-bottom, 0px)));transform:translate(-50%) translateZ(0);width:90%;max-width:400px;height:68px;z-index:40;display:flex;justify-content:space-between;align-items:center;background:var(--afc-bg);border:1px solid var(--afc-border);border-radius:999px;padding:6px 10px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.bottom-nav-item{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;background:none;color:var(--afc-faint);padding:4px 1px;font-size:20px;border-radius:16px;transition:transform .15s cubic-bezier(.4,0,.2,1)}.bottom-nav-label{font-size:9px;line-height:1.1;font-weight:500;letter-spacing:-.02em;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.bottom-nav-item:active{transform:scale(.9)}.bottom-nav-item--active{color:var(--afc-accent)}.bottom-nav-item--active .bottom-nav-label{font-weight:600}.fab-button{position:fixed;right:24px;bottom:calc(96px + max(env(safe-area-inset-bottom),var(--tg-safe-area-inset-bottom, 0px)));width:56px;height:56px;border:none;border-radius:50%;background:var(--afc-accent);color:var(--afc-accent-text);font-size:24px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 15px -3px #0047ab40,0 4px 6px -4px #0047ab40;z-index:40;transform:translateZ(0);transition:transform .15s cubic-bezier(.4,0,.2,1)}.fab-button:active{transform:translateZ(0) scale(.9)}.fab-button--hidden{transform:translateZ(0) translateY(120px);opacity:0;pointer-events:none;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1)}body.fab-suppressed .fab-button{display:none}.state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 16px;gap:12px}.state-error button{padding:12px 24px;border:none;border-radius:999px;background:var(--afc-accent);color:var(--afc-accent-text);font-weight:600}.state-empty-icon{font-size:40px}.state-empty-icon .ph{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;font-size:30px;color:var(--afc-hint);background:var(--afc-surface);border:1px solid var(--afc-border)}.state-empty-title{margin:0;font-size:16px;font-weight:600}.state-empty-hint{margin:0;font-size:14px;color:var(--afc-hint);max-width:260px}.notification-item-open{margin:0 16px 14px 44px;padding:8px 18px;border:none;border-radius:999px;background:var(--afc-accent-soft);color:var(--afc-accent);font:inherit;font-weight:600;font-size:14px}.top-bar-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--afc-accent);box-shadow:0 0 0 2px var(--afc-bg)}.app-credit{margin:4px 0 0;padding-bottom:8px;text-align:center;font-size:12px;color:var(--afc-hint)}.app-credit button{padding:0;border:none;background:none;font:inherit;color:var(--afc-accent)}.onboarding-required-actions{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin-top:8px;width:100%;max-width:260px}.onboarding-required-actions button{padding:12px 24px;border:none;border-radius:999px;background:var(--afc-accent);color:var(--afc-accent-text);font-weight:600}.onboarding-required-actions .onboarding-required-secondary{background:none;color:var(--afc-hint);font-weight:500;font-size:14px}.analytics{display:flex;flex-direction:column;gap:var(--afc-space)}.kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kpi-grid--single{grid-template-columns:1fr}.kpi-card{min-width:0;background:var(--afc-surface);border:1px solid var(--afc-border);border-radius:var(--afc-radius-md);padding:16px}.kpi-card--income{background:var(--afc-income-bg);border-color:#05966933}.kpi-card--expense{background:var(--afc-expense-bg);border-color:#e11d4826}.kpi-card-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:16px;color:var(--afc-hint);background:var(--afc-surface);border:1px solid var(--afc-border)}.kpi-card--income .kpi-card-icon{color:var(--afc-income);background:var(--afc-income-bg);border-color:transparent}.kpi-card--expense .kpi-card-icon{color:var(--afc-expense);background:var(--afc-expense-bg);border-color:transparent}.kpi-card-label{margin:6px 0 0;font-size:12px;color:var(--afc-hint)}.kpi-card-value{margin:2px 0 0;font-size:18px;font-weight:700}.kpi-card--income .kpi-card-value{color:var(--afc-income)}.kpi-card--expense .kpi-card-value{color:var(--afc-expense)}.category-chart{display:flex;justify-content:center;padding:8px 0 16px}.pie-chart{max-width:100%;height:auto}.category-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.category-row{display:flex;align-items:center;gap:12px}.category-row-icon{flex-shrink:0;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;background:transparent;background:color-mix(in srgb,currentColor 15%,transparent)}.category-row-body{flex:1;min-width:0}.category-row-top{display:flex;justify-content:space-between;gap:8px;font-size:14px}.category-row-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-row-amount{flex-shrink:0;font-weight:600}.category-row-bar-track{margin-top:6px;height:6px;border-radius:3px;background:var(--afc-track);overflow:hidden}.category-row-bar-fill{height:100%;border-radius:3px}.category-row-percentage{flex-shrink:0;width:42px;text-align:right;font-size:13px;color:var(--afc-hint)}.expense-extremes{display:flex;flex-direction:column;gap:14px;margin-top:14px}.expense-extreme-label{margin:0 0 8px;font-size:12px;color:var(--afc-hint)}@keyframes afc-sheet-fade-in{0%{opacity:0}to{opacity:1}}@keyframes afc-sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottom-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:100;animation:afc-sheet-fade-in .16s ease-out}.bottom-sheet{width:100%;max-width:480px;max-height:88vh;overflow-y:auto;background:var(--afc-bg);border-radius:var(--afc-radius-lg) var(--afc-radius-lg) 0 0;padding:8px 20px calc(20px + max(env(safe-area-inset-bottom),var(--tg-safe-area-inset-bottom, 0px)));animation:afc-sheet-slide-up .22s cubic-bezier(.2,.8,.2,1);transition:transform .2s ease-out}.bottom-sheet-drag-zone{touch-action:none}.bottom-sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--afc-border);margin:0 auto 12px}.bottom-sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.bottom-sheet-title{margin:0;font-size:17px;font-weight:700}.bottom-sheet-close{border:1px solid var(--afc-border);background:var(--afc-surface);color:var(--afc-text);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px}.transaction-form{display:flex;flex-direction:column;gap:14px}.form-field{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;color:var(--afc-hint)}.card>.form-field+.form-field,.card>.form-field+.form-actions{margin-top:14px}.form-type-toggle{display:flex;gap:8px}.form-type-button{flex:1;min-width:0;padding:12px;border:1px solid var(--afc-border);border-radius:999px;background:var(--afc-surface);color:var(--afc-text);font-weight:600}.form-type-button--active.form-type-button--expense{border-color:var(--afc-expense);background:var(--afc-expense-bg);color:var(--afc-expense)}.form-type-button--active.form-type-button--income{border-color:var(--afc-income);background:var(--afc-income-bg);color:var(--afc-income)}.form-input{font:inherit;background:var(--afc-surface);color:var(--afc-text);border:1px solid var(--afc-border);border-radius:var(--afc-radius-sm);padding:12px 16px}.form-input:focus{outline:none;border-color:#0047ab7f}.form-input:disabled{opacity:.6}.form-textarea{resize:vertical;min-height:64px}.form-hint{margin:0;font-size:12px;color:var(--afc-hint)}.card>.form-hint{margin-bottom:14px}.card>.form-hint:last-child{margin-bottom:0}.form-hint--error{color:var(--afc-expense)}.form-actions{display:flex;gap:10px;margin-top:6px}.form-button{flex:1;min-width:0;padding:14px;border:none;border-radius:999px;font-weight:700;font-size:14px;transition:transform .15s cubic-bezier(.4,0,.2,1)}.form-button:active:not(:disabled){transform:scale(.95)}.form-button:disabled{opacity:.6}.form-button--primary{background:var(--afc-accent);color:var(--afc-accent-text)}.form-button--secondary{background:var(--afc-surface);border:1px solid var(--afc-border);color:var(--afc-text)}.form-button--danger{background:var(--afc-expense);color:var(--afc-on-danger)}.form-button--danger:disabled{background:var(--afc-expense-bg);color:var(--afc-expense)}.form-danger{display:flex;flex-direction:column;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--afc-border)}@keyframes afc-success-pop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}.save-success{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 0 20px}.save-success-icon{width:56px;height:56px;border-radius:50%;background:var(--afc-income-bg);color:var(--afc-income);font-size:26px;display:flex;align-items:center;justify-content:center;animation:afc-success-pop .38s cubic-bezier(.2,.8,.2,1)}.save-success-text{margin:0;font-weight:600}.settings{display:flex;flex-direction:column;gap:var(--afc-space)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--afc-border)}.settings-row:last-child{border-bottom:none;padding-bottom:0}.settings-row-label{color:var(--afc-hint);font-size:14px}.settings-row-value{font-weight:600;text-align:right}.transaction-details-screen{display:flex;flex-direction:column;gap:var(--afc-space)}.back-button{border:1px solid var(--afc-border);background:var(--afc-surface);color:var(--afc-text);border-radius:50%;width:40px;height:40px;font-size:18px;display:flex;align-items:center;justify-content:center;transition:transform .15s cubic-bezier(.4,0,.2,1)}.back-button:active{transform:scale(.9)}.transaction-details-hero{background:none;padding:24px 20px;text-align:center}.transaction-details-hero-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:var(--afc-radius-lg);font-size:40px;background:var(--afc-accent-soft);color:var(--afc-accent)}.transaction-details-hero--income .transaction-details-hero-icon{background:var(--afc-income-bg);color:var(--afc-income)}.transaction-details-hero-amount{margin:8px 0 0;font-size:30px;font-weight:700;letter-spacing:-.01em}.transaction-details-hero--income .transaction-details-hero-amount{color:var(--afc-income)}.transaction-details-hero--expense .transaction-details-hero-amount{color:var(--afc-expense)}.transaction-details-hero-title{margin:4px 0 0;font-size:14px;color:var(--afc-hint)}.form-button--danger{background:var(--afc-expense-soft);border:1px solid var(--afc-expense-bg);color:var(--afc-expense)}.insights{display:flex;flex-direction:column;gap:var(--afc-space)}.insights-intro{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;background:var(--afc-surface);border:1px solid var(--afc-border);border-radius:var(--afc-radius-lg);padding:32px 24px}.insights-intro-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin-bottom:4px;border-radius:50%;font-size:26px;color:var(--afc-accent);background:var(--afc-accent-soft)}.insights-intro-icon--error{color:var(--afc-expense);background:var(--afc-expense-bg)}.insights-intro-icon--pulse{animation:afc-insight-pulse 1.4s ease-in-out infinite}@keyframes afc-insight-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.92)}}.insights-intro-title{margin:0;font-size:16px;font-weight:600}.insights-intro-hint{margin:0;font-size:14px;color:var(--afc-hint);max-width:280px}.insights-summary{display:flex;flex-direction:column;gap:12px}.insights-paragraph{margin:0;font-size:14px;line-height:1.6;color:var(--afc-text)}.insights-change{margin:12px 0 0;font-size:13px;font-weight:600}.insights-change--up{color:var(--afc-expense)}.insights-change--down{color:var(--afc-income)}.insights-button{margin-top:4px}.danger-block{display:flex;flex-direction:column;gap:14px}.danger-text{margin:0;font-size:13px;line-height:1.5;color:var(--afc-hint)}.danger-text--strong{padding:12px;border:1px solid var(--afc-expense-bg);border-radius:var(--afc-radius-sm);background:var(--afc-expense-soft);color:var(--afc-expense);font-weight:500}.danger-done{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 0 12px;text-align:center}.danger-done-icon{font-size:40px;line-height:1;color:var(--afc-income)}.danger-done-title{margin:0;font-size:16px;font-weight:600;color:var(--afc-text)}.danger-done-text{margin:0;font-size:13px;line-height:1.5;color:var(--afc-hint)}.budget-block{display:flex;flex-direction:column;gap:10px}.budget-head{display:flex;align-items:center;gap:12px}.budget-amounts{flex:1;min-width:0}.budget-spent{margin:0;font-size:20px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}.budget-limit{margin:2px 0 0;font-size:12px;color:var(--afc-hint);white-space:nowrap}.budget-percent{flex-shrink:0;font-size:18px;font-weight:700;color:var(--afc-accent)}.budget-percent--warn{color:var(--afc-expense)}.budget-remaining{font-weight:600;color:var(--afc-text)}.budget-remaining--warn{color:var(--afc-expense)}.budget-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--afc-radius-sm);font-size:22px;background:var(--afc-accent-soft);color:var(--afc-accent)}.theme-toggle{display:flex;gap:8px}.theme-option{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border:1px solid var(--afc-border);border-radius:var(--afc-radius-sm);background:var(--afc-surface);color:var(--afc-hint);font-size:18px;transition:transform .15s cubic-bezier(.4,0,.2,1)}.theme-option:active{transform:scale(.96)}.theme-option--active{border-color:var(--afc-accent);background:var(--afc-accent-soft);color:var(--afc-accent)}.theme-option-label{max-width:100%;font-size:11px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-select,.form-month{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;padding-right:40px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:right 20px top 55%,right 15px top 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.form-month::-webkit-datetime-edit{width:100%}.form-month::-webkit-calendar-picker-indicator{opacity:0}.form-month::-webkit-inner-spin-button{display:none}.accounts-screen,.account-details-screen{display:flex;flex-direction:column;gap:var(--afc-space)}.accounts-total{display:flex;flex-wrap:wrap;gap:12px}.accounts-total-value{font-size:24px;font-weight:700;letter-spacing:-.02em}.account-list,.account-preview-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.bank-mark{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;font-weight:700;letter-spacing:-.02em;background:var(--bank-mark-bg, var(--afc-surface));color:var(--bank-mark-fg, var(--afc-hint));border:1px solid var(--bank-mark-border, var(--afc-border))}.account-card-button{width:100%;display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--afc-border);border-radius:var(--afc-radius-md);background:var(--afc-surface);color:var(--afc-text);text-align:left;transition:transform .15s cubic-bezier(.4,0,.2,1)}.account-card-button:active{transform:scale(.98)}.account-card--archived .bank-mark{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;font-weight:700;letter-spacing:-.02em;background:var(--bank-mark-bg, var(--afc-surface));color:var(--bank-mark-fg, var(--afc-hint));border:1px solid var(--bank-mark-border, var(--afc-border))}.bank-mark--md{width:40px;height:40px;font-size:15px}.bank-mark--lg{width:56px;height:56px;font-size:20px}.account-details-mark,.account-edit-mark{display:flex;justify-content:center;margin-bottom:4px}.account-edit-mark{margin-bottom:12px}.account-card-button{opacity:.55}.account-card-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--afc-radius-sm);font-size:22px;background:var(--afc-accent-soft);color:var(--afc-accent)}.account-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.account-card-name{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-card-meta{font-size:12px;color:var(--afc-hint)}.account-card-balance{flex-shrink:0;font-size:15px;font-weight:700;white-space:nowrap}.account-card-balance--negative,.account-balance--negative{color:var(--afc-expense)}.account-preview{display:flex;justify-content:space-between;gap:12px;font-size:14px}.account-preview-name{color:var(--afc-hint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-preview-balance{font-weight:600;white-space:nowrap}.accounts-open{display:block;width:100%;text-align:left;background:none;border:0;padding:0;color:inherit;font:inherit;transition:opacity .15s cubic-bezier(.4,0,.2,1)}.accounts-open:active{opacity:.6}.accounts-open-hint{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin:10px 0 0;font-size:13px;color:var(--afc-accent)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.goal-entry{display:flex;flex-direction:column;gap:6px}.goal-card-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;font-size:15px;color:var(--afc-hint);background:var(--afc-surface);border:1px solid var(--afc-border)}.goal-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.goal-type-tile{display:flex;align-items:center;gap:8px;min-width:0;padding:10px;border-radius:12px;border:1px solid var(--afc-border);background:var(--afc-surface);color:var(--afc-text);font-size:13px;text-align:left;transition:border-color .15s cubic-bezier(.4,0,.2,1),background .15s cubic-bezier(.4,0,.2,1)}.goal-type-tile--active{border-color:var(--afc-accent);background:var(--afc-accent-soft);color:var(--afc-accent)}.goal-type-icon{font-size:17px;flex-shrink:0}.goal-type-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.goal-forecast{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:14px;border:1px solid var(--afc-border);background:var(--afc-surface)}.goal-forecast-empty{margin:0;padding:10px 12px;border-radius:12px;border:1px dashed var(--afc-border);font-size:13px;color:var(--afc-hint)}.goal-forecast-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.goal-forecast-cell{display:flex;flex-direction:column;gap:2px;min-width:0}.goal-forecast-label{font-size:11px;color:var(--afc-hint)}.goal-forecast-value{font-size:15px;font-weight:600}.goal-forecast-value--warn{color:var(--afc-expense)}.goal-forecast-warning{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;color:var(--afc-expense)}.goal-forecast-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.goal-forecast-step{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12px;color:var(--afc-hint)}.goal-forecast-step-gain{color:var(--afc-income);white-space:nowrap}.goal-advice-button{align-self:flex-start;flex:0 0 auto;width:auto;padding:8px 14px;font-size:13px}.goal-advice{display:flex;flex-direction:column;gap:8px;padding-top:4px;border-top:1px solid var(--afc-border)}.goal-advice-text{margin:0;font-size:13px;line-height:1.5;color:var(--afc-text)}.import-preview-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.import-preview-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:14px}.import-preview-name{color:var(--afc-hint);overflow:hidden;text-overflow:ellipsis}.import-preview-flag{font-size:12px;color:var(--afc-expense)}.import-preview-amount{font-weight:600;white-space:nowrap}.account-create-form{margin-top:4px;padding-top:16px;border-top:1px solid var(--afc-border)}.account-create-form .form-label{font-size:13px;font-weight:600;color:var(--afc-text)}.account-manage-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--afc-border)}.account-manage-row--editing{flex-direction:column;align-items:stretch;gap:10px}.account-manage-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.account-manage-action{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--afc-border);border-radius:50%;background:var(--afc-bg);color:var(--afc-hint);font-size:16px}.transaction-account{margin:2px 0 0;font-size:12px;color:var(--afc-hint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-filter{display:flex;align-items:center;gap:10px;margin-bottom:var(--afc-space)}.account-filter-label{flex-shrink:0;font-size:12px;font-weight:600;color:var(--afc-hint)}.account-filter-select{flex:1;min-width:0;padding-top:10px;padding-bottom:10px;font-size:14px}.month-filter{display:flex;align-items:center;gap:6px;margin-bottom:var(--afc-space)}.month-filter-arrow{flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--afc-border);border-radius:var(--afc-radius-md);background:var(--afc-surface);color:var(--afc-text);font-size:15px;cursor:pointer}.month-filter-arrow:disabled{color:var(--afc-faint);cursor:default}.month-filter-label{flex:1;min-width:0;height:44px;padding:0 12px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--afc-border);border-radius:var(--afc-radius-md);background:var(--afc-surface);color:var(--afc-text);font-size:14px;font-weight:600;cursor:pointer}.month-filter-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-filter-label i{flex-shrink:0;font-size:12px;color:var(--afc-hint)}.month-filter-label--all{color:var(--afc-hint);font-weight:500}.period-picker{display:flex;flex-direction:column;gap:16px}.period-year{display:flex;align-items:center;justify-content:space-between;gap:12px}.period-year-label{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.period-months{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.period-month{height:44px;border:1px solid var(--afc-border);border-radius:var(--afc-radius-md);background:var(--afc-surface);color:var(--afc-text);font-size:14px;font-weight:500;cursor:pointer}.period-month:disabled{color:var(--afc-faint);background:transparent;border-color:transparent;cursor:default}.period-month--today{border-color:var(--afc-accent);color:var(--afc-accent)}.period-month--selected,.period-month--selected.period-month--today{background:var(--afc-accent);border-color:var(--afc-accent);color:var(--afc-accent-text);font-weight:600}.period-all{height:44px;border:1px solid var(--afc-border);border-radius:var(--afc-radius-md);background:var(--afc-surface);color:var(--afc-text);font-size:14px;font-weight:500;cursor:pointer}.period-all--selected{background:var(--afc-accent);border-color:var(--afc-accent);color:var(--afc-accent-text);font-weight:600}.screen-body{display:flex;flex-direction:column;gap:var(--afc-space);transition:opacity .14s ease}.screen-body--stale{opacity:.45;pointer-events:none}.recurring{display:flex;flex-direction:column;gap:var(--afc-space)}.recurring-list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.recurring-card{background:var(--afc-surface);border:1px solid var(--afc-border);border-radius:var(--afc-radius-lg);padding:18px 20px;display:flex;flex-direction:column;gap:12px}.recurring-card-header{display:flex;align-items:center;gap:12px}.recurring-card-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:50%;font-size:20px}.recurring-card-icon--expense{color:var(--afc-expense);background:var(--afc-expense-bg)}.recurring-card-icon--income{color:var(--afc-income);background:var(--afc-income-bg)}.recurring-card-heading{flex:1;min-width:0}.recurring-card-title{margin:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}.recurring-card-subtitle{margin:2px 0 0;font-size:12px;color:var(--afc-hint)}.recurring-badge{flex-shrink:0;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:4px 10px;border-radius:999px}.recurring-badge--active{color:var(--afc-income);background:var(--afc-income-bg)}.recurring-badge--paused{color:var(--afc-hint);background:color-mix(in srgb,var(--afc-hint) 12%,var(--afc-surface))}.recurring-card-amount{margin:0;font-size:22px;font-weight:700;color:var(--afc-expense)}.recurring-card-amount--income{color:var(--afc-income)}.recurring-card-facts{margin:0;display:flex;flex-direction:column;gap:6px}.recurring-fact{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px}.recurring-fact dt{color:var(--afc-hint)}.recurring-fact dd{margin:0;text-align:right;overflow-wrap:anywhere}.recurring-waiting{color:var(--afc-expense);font-weight:600}.recurring-card-actions{display:flex;flex-wrap:wrap;gap:8px}.recurring-card-actions .form-button{flex:1 1 auto;min-width:120px;font-size:13px;padding:10px 12px}.recurring-type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px}.recurring-type-option{padding:12px;border-radius:var(--afc-radius-sm);border:1px solid var(--afc-border);background:var(--afc-surface);color:var(--afc-hint);font-size:14px;font-weight:600}.recurring-type-option--active{border-color:var(--afc-accent);color:var(--afc-accent);background:var(--afc-accent-soft)}.recurring-warning{margin:0;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--afc-expense);background:var(--afc-expense-soft);border-radius:var(--afc-radius-sm);padding:10px 12px}.signal-list{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.signal-card{background:var(--afc-surface);border:1px solid var(--afc-border);border-left-width:3px;border-radius:var(--afc-radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.signal-card--critical{border-color:color-mix(in srgb,var(--afc-expense) 45%,var(--afc-border));border-left-color:var(--afc-expense);background:color-mix(in srgb,var(--afc-expense) 7%,var(--afc-surface))}.signal-card--warning{border-left-color:var(--afc-expense)}.signal-card--info{border-left-color:var(--afc-accent)}.signal-card--positive{border-left-color:var(--afc-income)}.signal-card-header{display:flex;align-items:flex-start;gap:10px}.signal-card-icon{flex-shrink:0;font-size:18px;line-height:1.2}.signal-card--critical .signal-card-icon,.signal-card--warning .signal-card-icon{color:var(--afc-expense)}.signal-card--info .signal-card-icon{color:var(--afc-accent)}.signal-card--positive .signal-card-icon{color:var(--afc-income)}.signal-card-title{margin:0;font-size:15px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.ai-goal-note{margin:0;font-size:13px;color:var(--afc-hint)}.ai-verdict{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:12px 14px;border-radius:var(--afc-radius-md);font-size:16px;font-weight:600;line-height:1.35}.ai-verdict-icon{flex-shrink:0;font-size:18px;line-height:1}.ai-verdict--critical{color:var(--afc-expense);background:color-mix(in srgb,var(--afc-expense) 12%,var(--afc-surface))}.ai-verdict--warning{color:var(--afc-text);background:color-mix(in srgb,var(--afc-expense) 7%,var(--afc-surface))}.ai-verdict--warning .ai-verdict-icon{color:var(--afc-expense)}.ai-verdict--calm{color:var(--afc-text);background:color-mix(in srgb,var(--afc-income) 9%,var(--afc-surface))}.ai-verdict--calm .ai-verdict-icon{color:var(--afc-income)}.signal-card-facts{margin:0;display:flex;flex-direction:column;gap:5px}.link-button{align-self:flex-start;margin-top:10px;padding:0;border:none;background:none;color:var(--afc-accent);font-size:13px;font-weight:500;cursor:pointer}.signal-fact{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px}.signal-fact dt{color:var(--afc-hint)}.signal-fact dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}.ai-prose{display:flex;flex-direction:column;gap:10px;margin-top:12px}.ai-prose-text{display:flex;flex-direction:column;gap:10px}.ai-prose-paragraph{margin:0;font-size:14px;line-height:1.55}.ai-prose-button{width:100%}.ai-facts-line{margin:10px 0 0;font-size:14px}.ai-facts-line--muted{color:var(--afc-hint);font-size:13px}.ai-up{color:var(--afc-expense)}.ai-down{color:var(--afc-income)}.ai-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.ai-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:14px}.ai-row-value{font-weight:600;text-align:right;white-space:nowrap}.ai-row-share{color:var(--afc-faint);font-weight:400;font-size:12px}.ai-goal-list{display:flex;flex-direction:column;gap:14px;list-style:none;margin:0;padding:0}.ai-goal{border:1px solid var(--afc-border);border-radius:var(--afc-radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.ai-goal-header{display:flex;align-items:center;gap:10px}.ai-goal-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:50%;font-size:16px;color:var(--afc-accent);background:var(--afc-accent-soft)}.ai-goal-title{margin:0;font-size:14px;font-weight:600}.pro-screen{display:flex;flex-direction:column;gap:var(--afc-space)}.pro-lead{color:var(--afc-hint);font-size:14px;line-height:1.5;margin:0}.pro-status{color:var(--afc-hint);font-size:14px;margin:0}.pro-status-active{color:var(--afc-income);font-weight:600}.pro-capabilities,.pro-free{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.pro-capabilities li{display:flex;flex-direction:column;gap:2px}.pro-capability-title{color:var(--afc-text);font-size:15px;font-weight:600}.pro-capability-description,.pro-free li{color:var(--afc-hint);font-size:14px;line-height:1.45}.pro-plans{display:grid;gap:16px 8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px}.pro-plan{position:relative;align-items:flex-start;background:var(--afc-surface);border:1px solid var(--afc-border);border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:12px;text-align:left}.pro-plan-selected{border-color:var(--afc-accent);box-shadow:inset 0 0 0 1px var(--afc-accent)}.pro-plan-planned{cursor:default;opacity:.6}.pro-plan-duration{color:var(--afc-text);font-size:14px;font-weight:600}.pro-plan-price{color:var(--afc-accent);font-size:18px;font-weight:700}.pro-plan-per-month,.pro-plan-soon{color:var(--afc-hint);font-size:12px}.pro-cta{background:var(--afc-accent);border:none;border-radius:12px;color:var(--afc-accent-text);cursor:pointer;font-size:16px;font-weight:600;padding:14px;width:100%}.pro-cta:disabled{background:var(--afc-track);color:var(--afc-faint);cursor:not-allowed}.pro-cta-note{margin-top:8px}.pro-renewal{color:var(--afc-hint);font-size:14px;line-height:1.5;margin:0 0 12px}.pro-legal a,.pro-inline-link{background:none;border:none;color:var(--afc-accent);cursor:pointer;font-size:14px;padding:0;text-decoration:underline}.pro-inline-link{margin-top:12px}.tool-list{display:flex;flex-direction:column;gap:4px}.tool-row{display:flex;align-items:flex-start;gap:12px;width:100%;padding:10px 0;border:none;background:none;text-align:left;color:var(--afc-text);cursor:pointer}.tool-row+.tool-row{border-top:1px solid var(--afc-border)}.tool-row>.ph{font-size:20px;color:var(--afc-accent);line-height:1.3}.tool-row>.ph-caret-right{margin-left:auto;color:var(--afc-faint);font-size:16px}.tool-row-body{display:flex;flex-direction:column;gap:2px;min-width:0}.tool-row-title{font-size:15px;font-weight:600;line-height:1.3}.tool-row-hint{color:var(--afc-hint);font-size:13px;line-height:1.4}.pro-plan-badge{position:absolute;top:-8px;right:8px;padding:2px 6px;border-radius:999px;background:var(--afc-income);color:var(--afc-on-danger);font-size:11px;font-weight:700;line-height:1.4;letter-spacing:-.01em;z-index:1}
