:root{--bg: #f5f6f8;--surface: #ffffff;--border: #e3e6eb;--text: #1c2230;--muted: #6b7280;--accent: #0f766e;--accent-hover: #115e59;--accent-soft: #ccfbf1;--danger: #b91c1c;--danger-soft: #fef2f2;--radius: 12px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0f1216;--surface: #181c22;--border: #2a3039;--text: #e6e8eb;--muted: #9aa3ae;--accent: #2dd4bf;--accent-hover: #5eead4;--accent-soft: #134e4a;--danger: #f87171;--danger-soft: #3b1414;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}h1,h2{margin:0;line-height:1.2}h1{font-size:1.75rem}h2{font-size:1.1rem;margin-bottom:16px}.muted{color:var(--muted)}.small{font-size:.85rem}.app{max-width:1080px;margin:0 auto;padding:32px 16px 64px}.app-header{margin-bottom:24px}.app-header p{margin:4px 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;min-width:0}.summary{display:grid;grid-template-columns:1fr 1fr 2fr;gap:16px;margin-bottom:16px}.stat{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.stat-value{font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums}.stat-sub{font-size:.85rem}.categories ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}.bar-label{display:flex;justify-content:space-between;font-size:.85rem;font-variant-numeric:tabular-nums}.bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:2px}.bar>div{height:100%;background:var(--accent);border-radius:3px}.layout{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}.form{display:grid;gap:14px}.form .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}label{display:grid;gap:6px;font-size:.85rem;font-weight:600}input,select{font:inherit;font-weight:400;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 11px;width:100%;min-width:0}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}.field-error{margin:0;color:var(--danger);font-size:.85rem}.btn{font:inherit;font-weight:600;border-radius:8px;padding:10px 16px;cursor:pointer;border:1px solid transparent}.btn.primary{background:var(--accent);color:var(--surface)}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.6;cursor:default}.btn.ghost{background:transparent;border-color:currentColor;color:inherit;padding:6px 12px}.banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:var(--radius);margin-bottom:16px}.banner.error{background:var(--danger-soft);color:var(--danger)}.list-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.list-header h2{margin:0}.filters{display:flex;gap:8px}.filters input{width:180px}.filters select{width:auto}.expense-list{list-style:none;margin:0;padding:0}.expense{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border)}.expense:first-child{border-top:none}.expense-main{display:grid;gap:4px;min-width:0}.expense-desc{font-weight:500;overflow-wrap:anywhere}.expense-meta{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted)}.chip{background:var(--accent-soft);color:var(--text);padding:1px 8px;border-radius:999px;font-weight:500}.expense-amount{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.empty{color:var(--muted);text-align:center;padding:40px 0;margin:0}.list-footer{margin:8px 0 0;padding-top:12px;border-top:1px solid var(--border);text-align:right;font-size:.85rem}@media(max-width:860px){.summary{grid-template-columns:1fr 1fr}.categories{grid-column:1 / -1}.layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:480px){.filters{width:100%}.filters input{flex:1;width:auto}.stat-value{font-size:1.3rem}}
