:root{color-scheme:light dark;--accent: #1c598c;--accent-soft: #d7e6f3;--revenue: #179662;--expense: #b84a38;--bg: #f3f5f7;--card: #ffffff;--text: #15202b;--muted: #667685;--border: rgba(15, 23, 32, .08);--shadow: 0 10px 30px rgba(21, 32, 43, .08);font-family:SF Pro Text,Segoe UI,system-ui,sans-serif}@media(prefers-color-scheme:dark){:root{--accent: #66a8d9;--accent-soft: #1b2c3b;--revenue: #4dc794;--expense: #eb7a6c;--bg: #101418;--card: #1b2026;--text: #f4f7fa;--muted: #9aa8b5;--border: rgba(255, 255, 255, .08);--shadow: 0 10px 30px rgba(0, 0, 0, .28)}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}h1,h2,p{margin:0}.app-shell,.login-shell{min-height:100dvh}.login-shell{display:grid;place-items:center;padding:24px}.login-card,.card{background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}.login-card{width:min(420px,100%);padding:28px;display:grid;gap:14px}.app-shell{padding:calc(18px + env(safe-area-inset-top)) 16px calc(92px + env(safe-area-inset-bottom))}.top-bar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.top-bar h1{font-size:28px;letter-spacing:-.03em}.eyebrow{color:var(--accent);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.muted{color:var(--muted)}.pill{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.content,.stack{display:grid;gap:14px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.card{padding:16px}.metric p,.year-select,label{display:grid;gap:6px;color:var(--muted);font-size:13px}.metric strong{color:var(--text);font-size:18px}.metric.revenue strong{color:var(--revenue)}.metric.expense strong{color:var(--expense)}input,select,textarea,button{border-radius:12px;border:1px solid var(--border)}input,select,textarea{width:100%;padding:12px;background:var(--bg);color:var(--text)}button{background:var(--accent-soft);color:var(--accent);font-weight:700;padding:12px 14px}.primary,.login-card button[type=submit]{background:var(--accent);color:#fff;border:0}.primary.expense{background:var(--expense)}.primary.revenue{background:var(--revenue)}.ghost{background:transparent}.danger{background:#b84a381f;color:var(--expense);border-color:transparent}.list,.bars,.breakdown,.chip-row,.inline-form,.sheet-actions{display:flex;gap:10px}.list{flex-direction:column}.row,.chip-row,.inline-form{width:100%;align-items:center;justify-content:space-between}.row{text-align:left;background:var(--card);padding:14px}.row p,.row small,.empty{color:var(--muted);font-size:13px;margin-top:4px}.amount{text-align:right;font-weight:700}.amount.expense{color:var(--expense)}.amount.revenue{color:var(--revenue)}.bars{align-items:flex-end;min-height:140px}.bar-col{flex:1;display:grid;justify-items:center;gap:6px;font-size:10px;color:var(--muted)}.bar-track{width:100%;height:110px;background:var(--bg);border-radius:10px 10px 4px 4px;display:flex;align-items:flex-end;overflow:hidden}.bar-fill{width:100%;background:var(--expense)}.breakdown{align-items:center}.pie{width:92px;height:92px;border-radius:50%;flex:0 0 92px}.breakdown ul{list-style:none;padding:0;margin:0;flex:1}.breakdown li,.chip-row{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:8px 0}.swatch{width:10px;height:10px;border-radius:50%}.table-card{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:8px 6px;text-align:left;border-bottom:1px solid var(--border)}.tab-bar{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);background:var(--card);border-top:1px solid var(--border);padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.tab-bar button{border:0;background:transparent;color:var(--muted);display:grid;gap:2px;font-size:11px;padding:6px 0}.tab-bar button.active{color:var(--accent)}.tab-bar span{font-size:16px}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a101673;display:grid;align-items:end;padding:12px 12px calc(12px + env(safe-area-inset-bottom));z-index:20}.sheet-card{display:grid;gap:12px}.sheet-actions{justify-content:flex-end;flex-wrap:wrap}.banner{padding:10px 12px;border-radius:12px;margin-bottom:12px}.error{color:var(--expense)}@media(max-width:720px){.metrics{grid-template-columns:1fr}}
