:root{--ink:#0f172a;--ink-muted:#475569;--ink-tertiary:#94a3b8;--bg:#fff;--surface:#f8fafc;--surface-elevated:#f1f5f9;--rule:#e2e8f0;--rule-strong:#cbd5e1;--accent:#0369a1;--accent-hover:#075985;--accent-subtle:#e0f2fe;--accent-surface:#bae6fd;--accent-ink:#fff;--success:#059669;--success-subtle:#d1fae5;--warning:#f59e0b;--warning-subtle:#fef3c7;--danger:#ef4444;--danger-subtle:#fee2e2;--font-xs:.75rem;--font-sm:.875rem;--font-base:1rem;--font-lg:1.125rem;--font-xl:1.25rem;--font-2xl:1.5rem;--font-3xl:1.875rem;--font-4xl:2.25rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--measure:60ch;scrollbar-color:var(--rule-strong) transparent;caret-color:var(--accent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ink:#f8fafc;--ink-muted:#cbd5e1;--ink-tertiary:#64748b;--bg:#0f172a;--surface:#1e293b;--surface-elevated:#334155;--rule:#334155;--rule-strong:#475569;--accent:#38bdf8;--accent-hover:#7dd3fc;--accent-subtle:#0c4a6e;--accent-surface:#075985;--accent-ink:#0f172a;--success:#34d399;--success-subtle:#064e3b;--warning:#fbbf24;--warning-subtle:#78350f;--danger:#f87171;--danger-subtle:#7f1d1d}}*,:before,:after{box-sizing:border-box}html{overflow-x:clip}body{-webkit-font-smoothing:antialiased;color:var(--ink);background:var(--bg);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6}.screen{min-height:100vh}p{text-wrap:pretty}h1,h2,h3{text-wrap:balance}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:var(--accent);text-underline-offset:.18em}.num{font-variant-numeric:tabular-nums}button,[role=button],summary,select,input[type=checkbox],input[type=radio]{min-height:44px}button{min-width:44px}input,select,textarea{font:inherit;font-size:max(1rem,16px)}img,video,canvas,svg{max-width:100%;height:auto}pre{overflow-x:auto}@media (width<=480px){.screen{padding-inline:1rem}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.app{flex-direction:column;min-height:100vh;display:flex}.app-content{flex:1;padding-bottom:72px}@media (width>=768px){.app-content{padding-bottom:0}}.tab-bar{background-color:var(--surface);border-top:1px solid var(--rule);z-index:10;height:60px;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-button{color:var(--ink-muted);font-size:var(--font-sm);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-1);background:0 0;border:none;flex-direction:column;flex:1;min-height:44px;font-weight:500;display:flex;position:relative}@media (prefers-reduced-motion:no-preference){.tab-button{transition:color .15s cubic-bezier(.4,0,.2,1)}}.tab-button:hover{color:var(--accent-hover)}.tab-button.active{color:var(--accent)}.tab-button.active:after{content:"";background-color:var(--accent);height:2px;position:absolute;bottom:0;left:0;right:0}@media (width>=768px){.tab-bar{border-top:none;border-bottom:1px solid var(--rule);height:auto;padding:0 var(--space-6);position:static}.tab-button{padding:var(--space-4) var(--space-6);flex-direction:row;flex:none}}.screen{max-width:1200px;padding:var(--space-6);min-height:100vh;margin:0 auto}.screen-title{font-size:var(--font-2xl);color:var(--ink);margin-bottom:var(--space-6);font-weight:700;line-height:1.3}.card{background-color:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.card-title{font-size:var(--font-lg);color:var(--ink);margin-bottom:var(--space-4);font-weight:600;line-height:1.3}.budget-card{text-align:center;padding:var(--space-8)}.budget-amount{font-size:var(--font-4xl);margin-bottom:var(--space-2);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.2}.budget-amount.status-success{color:var(--success)}.budget-amount.status-warning{color:var(--warning)}.budget-amount.status-danger{color:var(--danger)}.budget-label{font-size:var(--font-sm);color:var(--ink-muted);margin-bottom:var(--space-4)}.budget-limit{font-size:var(--font-base);color:var(--ink-muted)}.budget-limit strong{color:var(--ink);font-weight:600}.chart-card{margin-top:var(--space-6)}.dashboard-grid{gap:var(--space-6);grid-template-columns:1fr;display:grid}@media (width>=768px){.dashboard-grid{grid-template-columns:1fr 1.5fr}}.form{gap:var(--space-4);flex-direction:column;display:flex}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--font-sm);color:var(--ink-muted);font-weight:500}.form-input{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--font-base);color:var(--ink);background-color:var(--bg);border:1px solid var(--rule-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);width:100%;min-height:44px}@media (prefers-reduced-motion:no-preference){.form-input{transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}}.form-input:focus{border-color:var(--accent);outline:none}.form-input::placeholder{color:var(--ink-tertiary)}.form-helper{font-size:var(--font-xs);color:var(--ink-muted)}.form-error{font-size:var(--font-sm);color:var(--danger)}.form-row{gap:var(--space-4);align-items:flex-end;display:flex}@media (width<=640px){.form-row{flex-direction:column;align-items:stretch}}.btn{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--font-base);border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-2);border:none;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}@media (prefers-reduced-motion:no-preference){.btn{transition:background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1),color .15s cubic-bezier(.4,0,.2,1)}}.btn-primary{background-color:var(--accent);color:#fff}.btn-primary:hover{background-color:var(--accent-hover)}.btn-primary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-secondary{border:1px solid var(--rule-strong);color:var(--ink);background-color:#0000}.btn-secondary:hover{background-color:var(--surface)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{background-color:#dc2626}.btn-icon{padding:var(--space-2);border-radius:var(--radius-md);cursor:pointer;min-width:44px;min-height:44px;color:var(--ink-muted);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}@media (prefers-reduced-motion:no-preference){.btn-icon{transition:background-color .15s cubic-bezier(.4,0,.2,1),color .15s cubic-bezier(.4,0,.2,1)}}.btn-icon:hover{background-color:var(--surface-elevated);color:var(--danger)}.purchase-list{flex-direction:column;display:flex}.purchase-item{align-items:center;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--rule);min-height:44px;display:flex}.purchase-item:last-child{border-bottom:none}.purchase-details{flex:1;min-width:0}.purchase-description{font-size:var(--font-base);color:var(--ink);margin-bottom:var(--space-1);font-weight:400}.purchase-date{font-size:var(--font-xs);color:var(--ink-muted)}.purchase-amount{font-size:var(--font-lg);color:var(--ink);font-variant-numeric:tabular-nums;margin-right:var(--space-2);font-weight:600}.empty-state{text-align:center;padding:var(--space-12) var(--space-6)}.empty-icon{font-size:var(--font-4xl);margin-bottom:var(--space-4)}.empty-title{font-size:var(--font-xl);color:var(--ink);margin-bottom:var(--space-2);font-weight:600}.empty-description{font-size:var(--font-base);color:var(--ink-muted);margin-bottom:var(--space-6)}.section{margin-bottom:var(--space-8)}.section:last-child{margin-bottom:0}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background-color:var(--surface)}::-webkit-scrollbar-thumb{background-color:var(--rule-strong);border-radius:var(--radius-sm);border:2px solid var(--surface)}::-webkit-scrollbar-thumb:hover{background-color:var(--ink-muted)}@media (width<=480px){body,.container,[class*=container],section,header,footer,nav,main,article{padding-inline:max(1rem,16px)}}
