:root{--color-ledger-ink:#f5f8fc;--color-body-ink:#dbe5f1;--color-muted-ink:#a8b6c7;--color-soft-ink:#7f91a6;--color-cool-porcelain:#17212b;--color-surface:#1e2a36;--color-surface-soft:#23313f;--color-surface-muted:#182532;--color-blue-tint:#203a56;--color-telegram-blue:#3390ec;--color-telegram-blue-strong:#62b0ff;--color-telegram-blue-soft:#40698f;--color-border-strong:#334457;--color-border-soft:#2b3a4a;--color-border-input:#3a4d60;--color-success:#8ee6b3;--color-success-fill:#3ed47f;--color-danger:#ff9a91;--color-danger-fill:#ff6b61;--color-danger-tint:#3b2429;--color-danger-surface:#2c2026;--color-danger-border:#70414a;--shadow-hero:0 24px 80px #00000052;--shadow-panel:0 18px 56px #00000042;--shadow-compact:0 12px 36px #00000038;--shadow-modal:0 26px 90px #0000008f;--radius-field:12px;--radius-message:16px;--radius-item:18px;--radius-card:20px;--radius-shell:24px;--radius-hero:28px;--radius-pill:999px;--space-xs:6px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-page:24px;--space-panel:clamp(20px, 5vw, 32px);--space-hero:clamp(24px, 6vw, 48px);--ease-out:cubic-bezier(.22, 1, .36, 1);--duration-fast:.16s;--z-modal-backdrop:40;--z-modal:50;color:var(--color-body-ink);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:radial-gradient(circle at top, #3390ec1f, transparent 34rem), var(--color-cool-porcelain);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--color-cool-porcelain)}body{background:radial-gradient(circle at 50% -8rem,#3390ec29,#0000 34rem),linear-gradient(#17212b 0%,#111922 100%);min-width:320px;min-height:100vh;margin:0}button,input,select{-webkit-tap-highlight-color:transparent}h1,h2,h3{text-wrap:balance}p,li,small{text-wrap:pretty}.app-shell{min-height:100vh;padding:var(--space-page);place-items:center;display:grid}.dashboard-shell{align-content:start;gap:var(--space-xl);place-items:stretch stretch}.hero-card{border:1px solid var(--color-border-strong);border-radius:var(--radius-hero);background:linear-gradient(180deg, #213040 0%, var(--color-surface) 100%);width:min(100%,720px);box-shadow:var(--shadow-hero);padding:var(--space-hero)}.brand-header{align-items:center;gap:14px;margin-bottom:28px;display:flex}.brand-header.compact{margin-bottom:0}.brand-logo{border:1px solid var(--color-border-soft);border-radius:var(--radius-message);background:var(--color-surface-muted);object-fit:cover;flex:none;width:56px;height:56px}.brand-name,.brand-tagline{margin:0}.brand-name{color:var(--color-ledger-ink);font-size:1.05rem;font-weight:800;line-height:1.2}.brand-tagline{color:var(--color-muted-ink);margin-top:3px;font-size:.9rem;line-height:1.35}.dashboard-brand{border:1px solid var(--color-border-strong);border-radius:var(--radius-shell);width:min(100%,960px);box-shadow:var(--shadow-compact);padding:var(--space-lg) var(--space-xl);background:#1e2a36eb}.page-panel{display:contents}.page-panel[hidden]{display:none}.page-header,.page-menu,.transactions-section{border:1px solid var(--color-border-strong);border-radius:var(--radius-shell);width:min(100%,960px);box-shadow:var(--shadow-panel);padding:var(--space-panel);background:#1e2a36f5}.page-header{align-items:flex-start;gap:18px;display:flex}.page-header>div{flex:1}.page-header h1{letter-spacing:-.025em;font-size:1.75rem}.page-header p:last-child,.section-description{max-width:64ch;margin:var(--space-md) 0 0;color:var(--color-muted-ink);line-height:1.6}.page-menu .section-header{margin-bottom:var(--space-lg)}.page-menu .section-header h2{color:var(--color-ledger-ink);letter-spacing:-.02em;margin:0;font-size:1.4rem}.page-menu-grid{gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.page-menu-card{gap:var(--space-sm);border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:linear-gradient(180deg, #263645 0%, var(--color-surface-soft) 100%);width:100%;min-height:132px;color:var(--color-body-ink);text-align:left;transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);padding:18px;display:grid}.page-menu-card span,.page-menu-card small{display:block}.page-menu-card span{color:var(--color-ledger-ink);font-size:1.05rem;font-weight:800}.page-menu-card small{color:var(--color-muted-ink);font-size:.9rem;font-weight:500;line-height:1.5}h1{color:var(--color-ledger-ink);letter-spacing:-.035em;margin:0;font-size:2.25rem;line-height:1.05}.description{max-width:56ch;margin:var(--space-xl) 0 28px;color:var(--color-muted-ink);font-size:1.05rem;line-height:1.7}.summary-grid{gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.summary-grid>div{border:1px solid var(--color-border-soft);border-radius:var(--radius-item);background:var(--color-surface-muted);padding:var(--space-lg)}dt{color:var(--color-muted-ink);font-size:.85rem}dd{margin:var(--space-xs) 0 0;color:var(--color-ledger-ink);font-size:1.25rem;font-weight:800}.note{color:var(--color-muted-ink);margin:28px 0 0;font-size:.95rem;line-height:1.6}.access-denied{border-color:var(--color-danger-border);background:var(--color-danger-surface)}.dashboard-overview,.transactions-section{width:min(100%,960px)}.dashboard-overview .summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-grid{margin-top:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.dashboard-card{border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:var(--color-surface-soft);padding:var(--space-lg)}.dashboard-card h2{color:var(--color-ledger-ink);margin:0 0 14px;font-size:1.05rem}.muted-text{color:var(--color-muted-ink);margin:0;line-height:1.6}.trend-list,.recent-list{gap:var(--space-md);margin:0;padding:0;list-style:none;display:grid}.recent-list li,.trend-list li{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.trend-list span,.recent-list span{color:var(--color-muted-ink);text-transform:capitalize}.recent-list strong,.trend-list strong{color:var(--color-ledger-ink);white-space:nowrap}.progress-track{border-radius:var(--radius-pill);background:var(--color-blue-tint);height:8px;margin:var(--space-sm) 0 4px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--color-telegram-blue);height:100%;display:block}.budget-progress{max-width:360px}.category-donut-wrap{gap:10px;display:grid}.category-donut{justify-self:center;width:min(100%,280px);height:auto;overflow:visible}.category-donut-track,.category-slice{fill:none;stroke-width:20px}.category-donut-track{stroke:var(--color-blue-tint)}.category-slice{transform-origin:60px 60px;cursor:pointer;stroke:var(--slice-color);stroke-linecap:butt;transition:filter var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out), stroke-width var(--duration-fast) var(--ease-out);outline:none;transform:rotate(-90deg)}.category-donut.has-active-category .category-slice:not(.is-selected){opacity:.45}.category-slice:hover,.category-slice:focus-visible,.category-slice.is-selected{filter:drop-shadow(0 3px 8px #0f172a2e);opacity:1;stroke-width:23px}.category-slice-0{--slice-color:oklch(58% .2 255)}.category-slice-1{--slice-color:oklch(64% .17 155)}.category-slice-2{--slice-color:oklch(72% .17 75)}.category-slice-3{--slice-color:oklch(62% .2 30)}.category-slice-4{--slice-color:oklch(60% .16 205)}.category-slice-5{--slice-color:oklch(56% .12 285)}.category-donut-label,.category-donut-value{fill:var(--color-muted-ink);text-anchor:middle}.category-donut-label{font-size:.66rem;font-weight:700}.category-donut-value{fill:var(--color-ledger-ink);font-size:.82rem;font-weight:800}.category-active-detail{align-items:end;gap:2px var(--space-sm);border:1px solid var(--color-border-soft);border-radius:var(--radius-message);background:var(--color-surface-muted);padding:10px var(--space-md);grid-template-columns:minmax(0,1fr) auto;display:grid}.category-active-detail span{color:var(--color-ledger-ink);text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;font-size:.95rem;font-weight:800;overflow:hidden}.category-active-detail strong{color:var(--color-ledger-ink);white-space:nowrap;font-size:.95rem}.category-active-detail small{color:var(--color-muted-ink);grid-column:1/-1;font-size:.78rem}.category-legend{gap:var(--space-xs);grid-template-columns:repeat(auto-fit,minmax(112px,1fr));margin:0;padding:0;list-style:none;display:grid}.category-legend li{min-width:0}.category-legend-button{align-items:center;gap:var(--space-xs);border:1px solid var(--color-border-soft);border-radius:var(--radius-message);background:var(--color-surface-muted);width:100%;min-height:32px;padding:5px var(--space-sm);text-align:left;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.category-legend-button.is-selected{border-color:var(--color-telegram-blue-soft);background:var(--color-surface-muted)}.category-legend-dot{border-radius:var(--radius-pill);background:var(--slice-color);width:9px;height:9px}.category-legend-name{color:var(--color-muted-ink);text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;font-size:.78rem;font-weight:700;overflow:hidden}.category-legend strong{color:var(--color-ledger-ink);white-space:nowrap;font-size:.78rem}.chart-legend{align-items:center;gap:var(--space-sm);margin:-4px 0 var(--space-md);color:var(--color-muted-ink);flex-wrap:wrap;font-size:.85rem;font-weight:600;display:flex}.legend-dot{border-radius:var(--radius-pill);width:8px;height:8px}.income-dot,.income-bar{background:var(--color-success-fill)}.expense-dot,.expense-bar{background:var(--color-danger-fill)}.trend-list span,.trend-list strong{font-size:.82rem}.trend-bars{border-radius:var(--radius-pill);background:var(--color-blue-tint);flex:1;gap:4px;min-width:128px;padding:4px;display:grid;overflow:hidden}.trend-bars span{border-radius:var(--radius-pill);min-width:2px;height:7px;display:block}.recent-card{margin-top:14px}.over-budget{border-color:var(--color-danger-border);background:var(--color-danger-surface)}.simple-list{gap:var(--space-sm);color:var(--color-muted-ink);margin:0;padding-inline-start:var(--space-xl);line-height:1.6;list-style:outside;display:grid}.chat-history{gap:10px;margin:0 0 14px;padding:0;list-style:none;display:grid}.chat-bubble{border-radius:var(--radius-message);padding:var(--space-md) var(--space-lg);line-height:1.7;display:block}.chat-user{justify-content:flex-end;display:flex}.chat-user .chat-bubble{color:#f4f8fd;text-align:left;background:#2b5278;max-width:min(82%,36rem)}.chat-assistant .chat-bubble{border:1px solid var(--color-border-soft);max-width:68ch;color:var(--color-body-ink);background:#202c38}.advisor-formatted-text{gap:.7rem;font-size:.98rem;line-height:1.75;display:grid}.advisor-formatted-text p,.advisor-formatted-text ul,.advisor-formatted-text ol{margin:0}.advisor-formatted-text ul,.advisor-formatted-text ol{gap:6px;padding-inline-start:var(--space-lg);display:grid}.advisor-formatted-text strong{color:var(--color-ledger-ink);font-weight:700}.chat-empty{margin-bottom:14px}.chat-form{align-items:center;gap:10px;display:flex}.chat-form input{flex:1}.section-header,.transaction-item,.transaction-actions,.form-actions{align-items:center;display:flex}.section-header{justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-xl)}.section-header h2{color:var(--color-ledger-ink);margin:0;font-size:clamp(1.4rem,4vw,2rem)}.metric-card{border-radius:var(--radius-item);background:var(--color-surface-muted);min-width:180px;padding:14px var(--space-lg)}.metric-card span{color:var(--color-muted-ink);font-size:.8rem;display:block}.metric-card strong{color:var(--color-ledger-ink);margin-top:4px;font-size:1.1rem;display:block}.manual-entry-actions{margin-bottom:var(--space-lg);justify-content:flex-end;display:flex}.transaction-form{border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:var(--color-surface-soft);padding:var(--space-lg)}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}label{gap:var(--space-xs);color:var(--color-muted-ink);font-size:.9rem;font-weight:600;display:grid}input,select{border:1px solid var(--color-border-input);border-radius:var(--radius-field);width:100%;min-height:44px;color:var(--color-body-ink);font:inherit;padding:10px var(--space-md);background:#172331}input::placeholder{color:var(--color-muted-ink);opacity:1}input:focus,select:focus,button:focus-visible{outline-offset:2px;outline:3px solid #3390ec57}.form-actions{margin-top:var(--space-lg);justify-content:flex-end;gap:10px}button{border-radius:var(--radius-pill);cursor:pointer;min-height:44px;font:inherit;padding:10px var(--space-lg);transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);border:0;font-weight:700}button:disabled{cursor:wait;opacity:.65}.primary-button{background:var(--color-telegram-blue);color:#f8fbff}.secondary-button{border:1px solid var(--color-border-soft);background:var(--color-blue-tint);color:var(--color-telegram-blue-strong)}.danger-button{border:1px solid var(--color-danger-border);background:var(--color-danger-tint);color:var(--color-danger)}.small{min-height:36px;padding:7px var(--space-md);font-size:.85rem}.inline-error,.list-state{border-radius:var(--radius-message);margin:var(--space-lg) 0 0;padding:14px var(--space-lg)}.inline-error{background:var(--color-danger-tint);color:var(--color-danger)}.list-state{border:1px solid var(--color-border-soft);background:var(--color-surface-muted);color:var(--color-muted-ink)}.success-state{border:1px solid color-mix(in srgb, var(--color-success-fill) 42%, transparent);background:color-mix(in srgb, var(--color-success-fill) 12%, var(--color-surface));color:var(--color-success)}.state-with-action{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.transaction-list{gap:10px;margin:18px 0 0;padding:0;list-style:none;display:grid}.transaction-list.compact{gap:var(--space-sm)}.transaction-item{border:1px solid var(--color-border-soft);border-radius:var(--radius-item);background:var(--color-surface-soft);padding:14px var(--space-lg);justify-content:space-between;gap:14px}.transaction-list.compact .transaction-item{padding:var(--space-md) 14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.transaction-list.compact .transaction-main strong,.transaction-list.compact .transaction-meta-main{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.transaction-list.compact .transaction-meta{align-items:center;gap:var(--space-xs);white-space:nowrap;min-width:0;font-size:.875rem;line-height:1.35;display:flex}.transaction-list.compact .transaction-meta-main{align-items:center;gap:var(--space-xs);min-width:0;display:inline-flex}.transaction-list.compact .transaction-meta-main>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.transaction-type-symbol{border-radius:var(--radius-pill);background:var(--color-surface-muted);flex:none;place-items:center;width:18px;height:18px;font-size:.8rem;font-weight:800;line-height:1;display:inline-grid}.transaction-type-symbol.income{color:var(--color-success)}.transaction-type-symbol.expense{color:var(--color-danger)}.transaction-list.compact .transaction-meta time{color:var(--color-muted-ink);flex:none}.transaction-list.compact .transaction-meta time:before{content:"·";margin-right:var(--space-xs);color:var(--color-muted-ink)}.transaction-list.compact .transaction-actions{place-items:center end;gap:var(--space-xs);grid-template-columns:repeat(2,auto);min-width:max-content;display:grid}.transaction-list.compact .transaction-actions .income,.transaction-list.compact .transaction-actions .expense{grid-column:1/-1}.transaction-item strong,.transaction-item span{display:block}.transaction-main{min-width:0}.transaction-item strong{color:var(--color-ledger-ink)}.transaction-item div>span,.transaction-meta{color:var(--color-muted-ink);text-transform:capitalize;margin-top:4px;font-size:.88rem}.transaction-meta time{text-transform:none}.transaction-actions{justify-content:flex-end;gap:var(--space-sm);text-align:right}.income,.transaction-actions .income{color:var(--color-success);font-weight:800}.expense,.transaction-actions .expense{color:var(--color-danger);font-weight:800}.pagination-controls{justify-content:flex-end;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);display:flex}.pagination-controls span{color:var(--color-muted-ink);font-size:.9rem;font-weight:700}.settings-help{margin-top:var(--space-md)}.modal-backdrop{z-index:var(--z-modal-backdrop);padding:var(--space-xl);background:#060c12b8;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.modal-dialog{z-index:var(--z-modal);border:1px solid var(--color-border-strong);border-radius:var(--radius-shell);background:var(--color-surface);width:min(100%,760px);box-shadow:var(--shadow-modal);padding:clamp(18px,4vw,28px);position:relative}.modal-header{justify-content:space-between;align-items:flex-start;gap:var(--space-lg);margin-bottom:18px;display:flex}.modal-header h2{color:var(--color-ledger-ink);letter-spacing:-.02em;margin:0;font-size:1.4rem}@media (hover:hover){.page-menu-card:hover{border-color:var(--color-telegram-blue-soft);background:var(--color-surface-muted);transform:translateY(-1px)}button:not(:disabled):hover{transform:translateY(-1px)}.primary-button:not(:disabled):hover{background:color-mix(in srgb, var(--color-telegram-blue) 86%, white)}.secondary-button:not(:disabled):hover{background:color-mix(in srgb, var(--color-blue-tint) 72%, var(--color-surface))}.danger-button:not(:disabled):hover{background:color-mix(in srgb, var(--color-danger-tint) 72%, var(--color-danger-border))}}button:not(:disabled):active,.page-menu-card:active{transform:translateY(0)}@media (width<=760px){.dashboard-overview .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.page-menu-grid{grid-template-columns:1fr}.dashboard-overview.hero-card{padding:var(--space-xl)}.dashboard-overview .description{margin:var(--space-md) 0 var(--space-lg)}.dashboard-overview .summary-grid>div{padding:14px}.dashboard-overview dd{font-size:1.05rem}.dashboard-grid{gap:var(--space-md);margin-top:var(--space-lg)}.dashboard-card{padding:14px}.trend-list,.recent-list{gap:10px}.category-legend{gap:var(--space-xs)}.category-donut{width:min(100%,248px)}.page-header,.section-header,.transaction-item,.transaction-actions,.modal-header,.state-with-action{flex-direction:column;align-items:stretch}.transaction-list.compact .transaction-item{align-items:center;gap:var(--space-sm);grid-template-columns:minmax(0,1fr) auto}.transaction-list.compact .transaction-actions{text-align:right;align-items:center}.page-header .secondary-button,.modal-header .secondary-button{align-self:flex-start}.pagination-controls{justify-content:space-between}.form-grid{grid-template-columns:1fr}.metric-card{min-width:0}.small{min-height:44px}.transaction-list.compact .small{padding-inline:10px}}@media (width<=640px){.app-shell{padding:var(--space-lg)}.chat-form{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.checkbox-label{align-items:center;gap:var(--space-sm);display:flex}.checkbox-label input{width:auto}.savings-summary-card{gap:var(--space-md);display:grid}.savings-summary-card>div:first-child{justify-content:space-between;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.savings-summary-card strong{color:var(--color-ledger-ink)}.savings-summary-card small{color:var(--color-muted-ink);line-height:1.5}
