:root{--bg:#f6f8fb;--bg-soft:#eef4ff;--surface:#fff;--surface-muted:#f8fafc;--surface-strong:#eef6ff;--text:#334155;--text-muted:#64748b;--heading:#0f172a;--border:#e2e8f0;--border-strong:#cbd5e1;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-soft:#dbeafe;--success:#047857;--success-soft:#d1fae5;--danger:#be123c;--danger-soft:#ffe4e6;--warning:#b45309;--warning-soft:#fef3c7;--shadow-soft:0 1px 2px #0f172a0a, 0 18px 42px #0f172a14;--shadow-tight:0 1px 2px #0f172a14;--radius:8px;--font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--text);background:var(--bg);font:16px/1.5 var(--font);letter-spacing:0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:linear-gradient(#eef4ffdb 0%,#f6f8fbf5 34%,#f8fafc 100%);min-width:320px;min-height:100svh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.62}a{color:inherit}#root{min-height:100svh}h1,h2,p{margin:0}h1,h2,strong{color:var(--heading)}h1{font-size:2rem;font-weight:780;line-height:1.12}h2{font-size:1rem;font-weight:760;line-height:1.35}.app-shell{grid-template-columns:280px minmax(0,1fr);min-height:100svh;display:grid}.app-sidebar{z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffe0;border-right:1px solid #cbd5e1b8;height:100svh;padding:18px;position:sticky;top:0}.sidebar-inner{grid-template-rows:auto auto 1fr auto;gap:18px;min-height:100%;display:grid}.mobile-topbar,.mobile-scrim{display:none}.brand-lockup{min-width:0;color:inherit;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-lockup>span:last-child{gap:1px;min-width:0;display:grid}.brand-mark,.login-icon{border-radius:var(--radius);color:#fff;background:linear-gradient(135deg,#1d4ed8,#2563eb 58%,#0891b2);flex:none;justify-content:center;align-items:center;width:42px;height:42px;font-weight:800;display:inline-flex;box-shadow:0 10px 22px #2563eb3d}.brand-name{color:var(--heading);font-weight:820;display:block}.brand-context,.eyebrow,.page-description,.panel-header p,.list-content span,.settings-row span,.settings-summary,.state-block p,.danger-panel p,.placeholder-panel p,.placeholder-status{color:var(--text-muted)}.brand-context,.eyebrow{font-size:.79rem}.eyebrow{color:var(--accent-strong);letter-spacing:.06em;text-transform:uppercase;margin-bottom:5px;font-weight:850}.primary-nav{align-content:start;gap:6px;display:grid}.nav-link,.button,.icon-button,.text-link{border-radius:var(--radius);border:1px solid #0000;text-decoration:none;transition:background-color .16s,border-color .16s,box-shadow .16s,color .16s,transform .16s}.nav-link,.button,.text-link{justify-content:center;align-items:center;gap:8px;display:inline-flex}.nav-link{color:#475569;white-space:nowrap;background:0 0;min-height:42px;padding:9px 11px;font-weight:760}.nav-link:hover{color:var(--accent-strong);background:var(--accent-soft)}.nav-link.active{color:#fff;background:var(--accent);box-shadow:0 12px 24px #2563eb38}.nav-button{width:100%;color:var(--text-muted);justify-content:flex-start}.nav-button:hover{color:var(--danger);background:var(--danger-soft)}.sidebar-card{border-radius:var(--radius);background:linear-gradient(#eff6ff,#fff);border:1px solid #bfdbfe;align-self:end;gap:12px;padding:14px;display:grid}.sidebar-card strong{font-size:.92rem;display:block}.sidebar-card p{color:var(--text-muted);font-size:.84rem}.sidebar-card-icon{border-radius:var(--radius);width:34px;height:34px;color:var(--accent-strong);background:var(--accent-soft);justify-content:center;align-items:center;display:inline-flex}.sidebar-card-action{width:100%}.app-main{width:min(1280px,100%);margin:0 auto;padding:34px 32px 58px}.standalone-shell,.login-shell{place-items:center;min-height:100svh;padding:24px;display:grid}.login-shell{background:linear-gradient(135deg, #2563eb1f, #10b98114), var(--bg)}.login-panel{border-radius:var(--radius);width:min(440px,100%);box-shadow:var(--shadow-soft);background:#fffffff0;border:1px solid #e2e8f0eb;padding:28px}.login-heading{align-items:center;gap:14px;margin-bottom:26px;display:flex}.page-section{gap:24px;display:grid}.narrow-section{width:min(780px,100%);margin:0 auto}.page-header,.panel-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-title-group{gap:4px;min-width:0;display:grid}.page-description{max-width:680px;font-size:.98rem}.page-actions,.panel-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:inline-flex}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;display:grid}.dashboard-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-card,.panel,.state-block{border-radius:var(--radius);background:#fffffff5;border:1px solid #e2e8f0f5}.summary-card,.panel{box-shadow:var(--shadow-tight)}.summary-card{gap:10px;min-height:128px;padding:17px;display:grid;overflow:hidden}.summary-card p{color:var(--text-muted);font-size:.86rem;font-weight:760}.summary-card strong{overflow-wrap:anywhere;font-size:1.34rem;line-height:1.18;display:block}.summary-card-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.summary-card-icon,.insight-icon{border-radius:var(--radius);width:36px;height:36px;color:var(--accent-strong);background:var(--accent-soft);flex:none;justify-content:center;align-items:center;display:inline-flex}.summary-card-meta{color:var(--text-muted);background:var(--surface-muted);border-radius:999px;padding:3px 7px;font-size:.75rem;font-weight:800}.summary-card-detail{min-height:2.35em;color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.82rem;font-weight:680;display:-webkit-box;overflow:hidden}.summary-card.expense .summary-card-icon,.insight-card.expense .insight-icon{color:var(--danger);background:var(--danger-soft)}.summary-card.income .summary-card-icon{color:var(--success);background:var(--success-soft)}.summary-card.balance .summary-card-icon,.insight-card.balance .insight-icon{color:var(--accent-strong);background:var(--accent-soft)}.summary-card.neutral .summary-card-icon,.insight-card.neutral .insight-icon{color:var(--warning);background:var(--warning-soft)}.insight-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.insight-card{border-radius:var(--radius);background:#ffffffe0;border:1px solid #e2e8f0f5;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:12px;padding:16px;display:grid}.insight-card p,.chart-center-label span,.chart-legend-label{color:var(--text-muted);font-size:.82rem;font-weight:740}.insight-card strong{text-overflow:ellipsis;white-space:nowrap;margin-top:2px;display:block;overflow:hidden}.insight-card span:last-child{color:var(--text-muted);margin-top:3px;font-size:.84rem;display:block}.content-grid{gap:18px;display:grid}.dashboard-chart-grid,.two-column-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.wide-panel{grid-column:1/-1}.panel{min-width:0;padding:20px}.dashboard-card{min-height:100%}.panel-header{margin-bottom:16px}.panel .state-block{box-shadow:none;background:0 0;border:0;padding:24px 0 8px}.state-block{box-shadow:var(--shadow-tight);align-items:flex-start;gap:16px;padding:22px;display:flex}.state-icon,.list-icon{color:var(--accent);flex:none}.state-icon{width:26px;height:26px}.loading-state .state-icon{color:var(--accent)}.error-state .state-icon{color:var(--danger)}.state-action{margin-top:14px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.button{min-height:42px;padding:9px 14px;font-weight:820}.button:hover:not(:disabled){transform:translateY(-1px)}.primary-button{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-strong));box-shadow:0 10px 22px #2563eb33}.primary-button:hover{box-shadow:0 14px 28px #2563eb3d}.secondary-button{color:var(--heading);border-color:var(--border);background:var(--surface)}.secondary-button:hover{border-color:var(--border-strong);background:var(--surface-muted)}.danger-button{color:#fff;background:var(--danger)}.danger-button:hover{background:#9f1239}.icon-button{width:40px;height:40px;color:var(--text-muted);background:var(--surface);border-color:var(--border);justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover{color:var(--accent-strong);background:#eff6ff;border-color:#93c5fd}.text-link{min-height:34px;color:var(--accent-strong);font-weight:820}.text-link:hover{color:var(--accent)}.row-title-link{color:var(--heading);text-overflow:ellipsis;white-space:nowrap;font-weight:820;text-decoration:none;overflow:hidden}.row-title-link:hover{color:var(--accent-strong)}.item-list,.chip-list,.settings-list,.category-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.list-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:62px;padding:11px;display:grid}.list-row:hover{background:#fbfdff;border-color:#cbd5e1}.management-row>.category-color{justify-self:center}.list-row .row-actions{justify-self:end}.transaction-row{grid-template-columns:40px minmax(0,1fr) auto 40px}.recurring-row{grid-template-columns:40px minmax(0,1fr) auto auto}.inactive-row{background:var(--surface-muted)}.list-icon{border-radius:var(--radius);background:var(--surface-strong);justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.list-content{gap:2px;min-width:0;display:grid}.list-content strong,.list-content span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.amount{color:var(--heading);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:860}.income-text{color:var(--success)}.expense-text{color:var(--danger)}.category-list{gap:12px}.category-row{grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.category-row span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.category-color{border-radius:50%;flex:none;width:12px;height:12px;display:inline-block;box-shadow:0 0 0 2px #0f172a14}.category-badge,.category-inline{align-items:center;gap:8px;min-width:0;max-width:100%;display:inline-flex}.category-badge span:last-child,.category-inline{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-with-list{gap:18px;display:grid}.chart-frame{width:100%;min-width:0;position:relative}.trend-chart-frame{overflow:hidden}.chart-center-label{pointer-events:none;text-align:center;width:min(150px,42%);display:grid;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.chart-center-label strong{font-size:1rem}.chart-tooltip{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft);gap:3px;padding:9px 10px;display:grid}.chart-tooltip span{color:var(--text-muted);font-weight:800}.chart-detail-list{padding-top:2px}.comparison-stack{gap:18px;display:grid}.comparison-row{gap:9px;display:grid}.comparison-row>div:first-child,.net-summary{justify-content:space-between;align-items:center;gap:14px;display:flex}.comparison-row span,.net-summary span{color:var(--text-muted);font-weight:800}.comparison-track{background:#eef2f7;border-radius:999px;height:13px;overflow:hidden}.comparison-fill{border-radius:inherit;min-width:0;height:100%;display:block}.income-fill{background:linear-gradient(90deg,#10b981,#047857)}.expense-fill{background:linear-gradient(90deg,#fb7185,#be123c)}.net-summary{border-top:1px solid var(--border);padding-top:14px}.chip-list{flex-wrap:wrap;display:flex}.chip{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);align-items:center;gap:8px;max-width:100%;min-height:36px;padding:7px 10px;font-weight:700;display:inline-flex}.chip span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.default-pill{color:var(--success);background:var(--success-soft);border-radius:999px;padding:3px 7px;font-size:.76rem;font-weight:850}.settings-list{gap:0}.settings-row{border-bottom:1px solid var(--border);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;display:grid}.settings-row:first-child{padding-top:0}.settings-row:last-child{border-bottom:0;padding-bottom:0}.settings-summary{flex-wrap:wrap;justify-content:flex-end;gap:8px;font-size:.84rem;font-weight:800;display:flex}.settings-summary span,.placeholder-status{background:var(--surface-muted);border-radius:999px;min-height:28px;padding:4px 8px}.settings-form{gap:16px;display:grid}.settings-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.settings-form .form-field>span:first-child{align-items:center;gap:8px;display:inline-flex}.checkbox-field{align-content:start}.checkbox-inline{width:fit-content;min-height:44px;color:var(--heading);align-items:center;gap:10px;font-weight:800;display:inline-flex}.checkbox-inline input{width:18px;height:18px}.readonly-value{border:1px solid var(--border);border-radius:var(--radius);min-height:44px;color:var(--heading);background:var(--surface-muted);align-items:center;padding:9px 11px;font-weight:800;display:flex}.placeholder-panel{align-content:start;gap:14px;display:grid}.placeholder-icon,.placeholder-status{align-items:center;gap:8px;width:fit-content;display:inline-flex}.placeholder-icon{border-radius:var(--radius);width:40px;height:40px;color:var(--accent-strong);background:var(--accent-soft);justify-content:center}.danger-placeholder-icon{color:var(--danger);background:var(--danger-soft)}.success-placeholder-icon{color:var(--success);background:var(--success-soft)}.placeholder-status{color:var(--success);background:var(--success-soft);font-weight:800}.danger-panel{background:snow;border-color:#fecdd3;gap:16px;display:grid}.login-form{gap:14px;display:grid}.field-label{color:var(--heading);font-weight:800}.password-field{position:relative}.password-field input{border:1px solid var(--border-strong);border-radius:var(--radius);width:100%;min-height:46px;color:var(--heading);background:var(--surface);padding:10px 52px 10px 12px}.password-field .icon-button{position:absolute;top:3px;right:3px}.password-field input:focus,.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.button:focus-visible,.icon-button:focus-visible,.nav-link:focus-visible,.text-link:focus-visible,.brand-lockup:focus-visible{outline-offset:2px;outline:3px solid #2563eb3d}.form-error,.notice-message,.success-message{border-radius:var(--radius);padding:10px 12px;font-weight:740}.form-error{color:var(--danger);background:var(--danger-soft)}.notice-message{color:var(--warning);background:var(--warning-soft);margin-bottom:16px}.success-message{color:var(--success);background:var(--success-soft);justify-content:space-between;align-items:center;gap:12px;display:flex}.success-message button{color:inherit;background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline}.login-button{width:100%}.login-secondary-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.login-secondary-actions .text-link{background:0 0;border:0;padding:0 2px}.code-input{text-align:center;letter-spacing:.16em;font-weight:850}.transaction-detail{align-items:flex-start;gap:14px;display:flex}.transaction-detail p{color:var(--text-muted);margin:4px 0 8px}.transaction-form,.filter-bar{gap:18px;display:grid}.form-grid,.filter-grid{gap:16px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-grid{grid-template-columns:1.4fr repeat(3,minmax(140px,1fr))}.form-field{gap:7px;min-width:0;display:grid}.form-field>span:first-child,.segmented-field legend{color:var(--heading);font-weight:800}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--border-strong);border-radius:var(--radius);width:100%;min-height:44px;color:var(--heading);background:var(--surface);padding:9px 11px;transition:border-color .16s,box-shadow .16s}.form-field input:hover,.form-field select:hover,.form-field textarea:hover,.password-field input:hover{border-color:#94a3b8}.form-field textarea{resize:vertical;min-height:112px}.field-hint,.field-error{font-size:.84rem}.field-hint{color:var(--text-muted)}.field-error{color:var(--danger);font-weight:700}.segmented-field{border:0;gap:8px;margin:0;padding:0;display:grid}.segmented-control{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);grid-template-columns:repeat(2,minmax(0,150px));gap:8px;padding:4px;display:inline-grid}.segment-option{border-radius:calc(var(--radius) - 2px);min-height:40px;color:var(--text-muted);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:8px 12px;font-weight:820;display:inline-flex;position:relative}.segment-option.active{color:var(--accent-strong);background:var(--surface);box-shadow:var(--shadow-tight);border-color:#bfdbfe}.segment-option:focus-within{outline-offset:2px;outline:3px solid #2563eb40}.segment-option input{opacity:0;pointer-events:none;position:absolute}.form-actions,.filter-actions,.dialog-actions,.pagination-bar,.row-actions{align-items:center;gap:10px;display:flex}.form-actions,.filter-actions{flex-wrap:wrap;justify-content:flex-end}.transactions-panel{gap:16px;display:grid}.transactions-header{margin-bottom:0}.table-scroll{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.transactions-table{border-collapse:collapse;background:var(--surface);width:100%;min-width:860px}.transactions-table th,.transactions-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:13px 12px}.transactions-table th{color:var(--text-muted);background:var(--surface-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.76rem;font-weight:860}.transactions-table tbody tr:last-child td{border-bottom:0}.transactions-table tbody tr:hover td{background:#fbfdff}.table-title-cell,.transaction-card-main>div,.transaction-card-title{gap:3px;min-width:0;display:grid}.table-title-cell strong,.table-title-cell span,.transaction-card-title strong,.transaction-card-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.table-title-cell span,.transaction-card-main span,.transaction-meta dt{color:var(--text-muted)}.type-badge{border-radius:999px;align-items:center;width:fit-content;min-height:26px;padding:3px 8px;font-size:.76rem;font-weight:900;display:inline-flex}.type-badge.expense{color:var(--danger);background:var(--danger-soft)}.type-badge.income{color:var(--success);background:var(--success-soft)}.danger-icon-button:hover{color:var(--danger);background:var(--danger-soft);border-color:#fda4af}.mobile-transaction-list{gap:12px;margin:0;padding:0;list-style:none;display:none}.transaction-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:14px;padding:14px;display:grid}.transaction-card-main,.transaction-card-footer{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.transaction-card-main{justify-content:flex-start}.transaction-card-title{grid-template-columns:minmax(0,1fr) auto;align-items:center}.transaction-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;display:grid}.transaction-meta div{gap:2px;min-width:0;display:grid}.transaction-meta dt{letter-spacing:.04em;text-transform:uppercase;font-size:.76rem;font-weight:800}.transaction-meta dd{min-width:0;color:var(--heading);align-items:center;gap:6px;margin:0;font-weight:700;display:inline-flex}.pagination-bar{justify-content:space-between;padding-top:4px}.pagination-bar span{color:var(--text-muted);font-weight:800}.dialog-backdrop{z-index:50;background:#0f172a70;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.dialog-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(460px,100%);box-shadow:var(--shadow-soft);gap:18px;padding:20px;display:grid}.dialog-header{grid-template-columns:42px minmax(0,1fr) 40px;align-items:start;gap:12px;display:grid}.dialog-header p{color:var(--text-muted);margin-top:4px}.dialog-icon{border-radius:var(--radius);width:42px;height:42px;color:var(--danger);background:var(--danger-soft);justify-content:center;align-items:center;display:inline-flex}.dialog-actions{flex-wrap:wrap;justify-content:flex-end}@media (width<=1180px){.dashboard-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.insight-grid{grid-template-columns:1fr}}@media (width<=980px){h1{font-size:1.7rem}.app-shell{display:block}.mobile-topbar{z-index:35;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;border-bottom:1px solid #e2e8f0e6;justify-content:space-between;align-items:center;min-height:68px;padding:10px 16px;display:flex;position:sticky;top:0}.mobile-menu-button{display:inline-flex}.mobile-scrim.open{z-index:36;background:#0f172a52;border:0;display:block;position:fixed;inset:0}.app-sidebar{z-index:40;visibility:hidden;pointer-events:none;width:min(320px,100% - 44px);height:100svh;transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.app-sidebar.open{visibility:visible;pointer-events:auto;transform:translate(0)}.app-main{width:100%;padding:24px 16px 42px}.page-header,.panel-header{flex-direction:column;align-items:flex-start}.page-actions,.panel-actions{justify-content:flex-start}.dashboard-chart-grid,.two-column-grid,.form-grid,.filter-grid,.settings-form-grid{grid-template-columns:1fr}.settings-summary{justify-content:flex-start}.segmented-control{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}}@media (width<=680px){.dashboard-summary-grid,.summary-grid{grid-template-columns:1fr}.login-shell,.standalone-shell{padding:16px}.login-panel,.panel,.state-block{padding:18px}.summary-card{min-height:116px}.page-actions,.page-actions .button,.filter-actions .button,.form-actions .button,.placeholder-panel .button,.pagination-bar .button{width:100%}.list-row,.transaction-row,.recurring-row{grid-template-columns:40px minmax(0,1fr)}.list-row .row-actions,.list-row .amount,.transaction-row .amount,.transaction-row .icon-button{grid-column:2;justify-self:start}.category-row{grid-template-columns:16px minmax(0,1fr)}.category-row strong{grid-column:2}.chart-center-label{width:min(140px,52%);top:40%}.comparison-row>div:first-child,.net-summary{flex-direction:column;align-items:flex-start;gap:4px}.settings-row{grid-template-columns:40px minmax(0,1fr)}.settings-row strong{grid-column:2}.desktop-transactions{display:none}.mobile-transaction-list{display:grid}.transaction-card-main,.transaction-card-footer,.pagination-bar,.success-message{flex-direction:column;align-items:stretch}.transaction-card-title,.transaction-meta{grid-template-columns:1fr}.row-actions,.dialog-actions,.filter-actions,.form-actions,.dialog-actions .button{width:100%}}
