:root{--bg:#f6f7fb;--surface:#fff;--surface-muted:#f1f5f9;--surface-strong:#eaf2ff;--text:#1f2937;--text-muted:#64748b;--heading:#0f172a;--border:#d9e1ea;--border-strong:#b8c4d2;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-soft:#dbeafe;--success:#0f766e;--success-soft:#d9f4ec;--danger:#b42318;--danger-soft:#fee4e2;--warning:#a15c07;--warning-soft:#fff1d6;--shadow:0 14px 34px #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:var(--bg);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:.65}a{color:inherit}#root{min-height:100svh}h1,h2,p{margin:0}h1,h2,strong{color:var(--heading)}h1{font-size:2rem;font-weight:700;line-height:1.15}h2{font-size:1.05rem;font-weight:700;line-height:1.3}.app-shell{min-height:100svh}.app-header{z-index:20;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;align-items:center;gap:20px;min-height:72px;padding:12px 24px;display:flex;position:sticky;top:0}.brand-lockup{align-items:center;gap:12px;min-width:210px;display:flex}.brand-mark,.login-icon{border-radius:var(--radius);color:#fff;background:var(--accent);justify-content:center;align-items:center;width:42px;height:42px;font-weight:800;display:inline-flex}.brand-name{color:var(--heading);font-weight:800}.brand-context,.eyebrow,.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:.82rem}.eyebrow{text-transform:uppercase;margin-bottom:4px;font-weight:800}.primary-nav{justify-content:flex-end;align-items:center;gap:6px;width:100%;display:flex}.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,color .16s}.nav-link,.button,.text-link{justify-content:center;align-items:center;gap:8px;display:inline-flex}.nav-link{min-height:40px;color:var(--text-muted);white-space:nowrap;background:0 0;padding:8px 11px;font-weight:700}.nav-link:hover,.nav-link.active{color:var(--accent-strong);background:var(--accent-soft)}.nav-button{color:var(--danger);margin-left:6px}.mobile-menu-button,.icon-button.mobile-menu-button{display:none}.app-main{width:min(1180px,100%);margin:0 auto;padding:32px 24px 56px}.standalone-shell,.login-shell{place-items:center;min-height:100svh;padding:24px;display:grid}.login-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(440px,100%);box-shadow:var(--shadow);padding:28px}.login-heading{align-items:center;gap:14px;margin-bottom:26px;display:flex}.page-section{gap:24px;display:grid}.narrow-section{width:min(760px,100%);margin:0 auto}.page-header,.panel-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.summary-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;display:grid}.summary-card,.panel,.state-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.summary-card{border-top-width:4px;min-height:112px;padding:18px}.summary-card p{color:var(--text-muted);font-size:.88rem;font-weight:700}.summary-card strong{overflow-wrap:anywhere;margin-top:12px;font-size:1.35rem;line-height:1.2;display:block}.dashboard-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.summary-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.summary-card-icon{border-radius:var(--radius);width:34px;height:34px;color:var(--accent-strong);background:var(--accent-soft);flex:none;justify-content:center;align-items:center;display:inline-flex}.summary-card-detail{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:9px;font-size:.82rem;font-weight:700;display:-webkit-box;overflow:hidden}.summary-card.expense{border-top-color:var(--danger)}.summary-card.income{border-top-color:var(--success)}.summary-card.balance{border-top-color:var(--accent)}.summary-card.neutral{border-top-color:var(--warning)}.content-grid{gap:18px;display:grid}.dashboard-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.two-column-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wide-panel{grid-column:1/-1}.panel{padding:20px}.panel-header{margin-bottom:16px}.panel .state-block{box-shadow:none;background:0 0;border:0;padding:24px 0 8px}.state-block{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:800}.primary-button{color:#fff;background:var(--accent)}.primary-button:hover{background:var(--accent-strong)}.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:#8f1d14}.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);border-color:var(--accent)}.text-link{color:var(--accent-strong);font-weight:800}.row-title-link{color:var(--heading);text-overflow:ellipsis;white-space:nowrap;font-weight:800;text-decoration:none;overflow:hidden}.row-title-link:hover{color:var(--accent-strong);text-decoration:underline}.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:58px;padding:10px;display:grid}.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}.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{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800}.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%;width:12px;height:12px;display:inline-block;box-shadow:0 0 0 2px #0f172a14}.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 span,.chart-legend-label{color:var(--text-muted);font-size:.82rem;font-weight:700}.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);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:var(--surface-muted);border-radius:999px;height:14px;overflow:hidden}.comparison-fill{border-radius:inherit;min-width:0;height:100%;display:block}.income-fill{background:var(--success)}.expense-fill{background:var(--danger)}.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:6px;padding:2px 6px;font-size:.76rem;font-weight:800}.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}.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:#f3b4ae;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{outline-offset:2px;outline:3px solid #2563eb40}.form-error,.notice-message,.success-message{border-radius:var(--radius);padding:10px 12px;font-weight:700}.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%}.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}.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{grid-template-columns:repeat(2,minmax(0,150px));gap:8px;display:inline-grid}.segment-option{border:1px solid var(--border);border-radius:var(--radius);min-height:42px;color:var(--text-muted);background:var(--surface);justify-content:center;align-items:center;padding:8px 12px;font-weight:800;display:inline-flex;position:relative}.segment-option.active{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-soft)}.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:12px}.transactions-table th{color:var(--text-muted);background:var(--surface-muted);text-transform:uppercase;font-size:.82rem;font-weight:800}.transactions-table tbody tr:last-child td{border-bottom:0}.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)}.category-inline{align-items:center;gap:8px;min-width:0;max-width:100%;display:inline-flex}.danger-icon-button:hover{color:var(--danger);border-color:var(--danger)}.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{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:#0f172a6b;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);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<=1080px){.summary-grid,.dashboard-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=860px){h1{font-size:1.65rem}.app-header{flex-wrap:wrap;padding:10px 16px}.brand-lockup{flex:auto;min-width:0}.mobile-menu-button,.icon-button.mobile-menu-button{display:inline-flex}.primary-nav{flex:1 0 100%;justify-content:flex-start;align-items:stretch;padding-top:10px;display:none}.primary-nav.open{gap:8px;display:grid}.nav-link,.nav-button{justify-content:flex-start;width:100%;margin-left:0}.app-main{padding:24px 16px 40px}.page-header,.panel-header{flex-direction:column;align-items:flex-start}.summary-grid,.dashboard-summary-grid,.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<=560px){.login-shell,.standalone-shell{padding:16px}.login-panel,.panel,.state-block{padding:18px}.summary-card{min-height:94px}.list-row,.transaction-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,.filter-actions .button,.form-actions .button,.placeholder-panel .button,.pagination-bar .button{width:100%}}
