:root{--text:#3f3f46;--text-muted:#8b8b93;--bg:#fafafa;--panel:#fff;--border:#e4e4e7;--accent:#2563eb;--positive:#16a34a;--negative:#dc2626;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}.login-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;width:320px;padding:32px;display:flex}.login-card h1{margin:0;font-size:22px}.login-card .subtitle{color:var(--text-muted);margin:0 0 8px;font-size:14px}.login-card input{border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:14px}.login-card button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:600}.error{color:var(--negative);min-height:16px;margin:0;font-size:13px}.topbar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:24px;padding:12px 24px;display:flex}.topbar h1{margin:0;font-size:18px}.tabs{flex:1;gap:4px;display:flex}.tab-btn{color:var(--text-muted);background:0 0;border:none;border-radius:8px;padding:8px 14px;font-size:14px}.tab-btn:hover{background:var(--bg)}.tab-btn.active{color:var(--accent);background:#eef2ff;font-weight:600}.icon-btn{color:var(--text-muted);background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:16px}.icon-btn:hover{background:var(--bg)}.main{max-width:900px;margin:0 auto;padding:32px}.content-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.main h2{margin:0 0 12px;font-size:18px}.totals-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:32px;display:grid}.total-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.total-currency{letter-spacing:.05em;color:var(--text-muted);margin-bottom:10px;font-size:12px;font-weight:700}.total-row{justify-content:space-between;padding:4px 0;font-size:14px;display:flex}.total-row.net{border-top:1px solid var(--border);margin-top:6px;padding-top:8px;font-weight:600}.amount{font-variant-numeric:tabular-nums}.amount.positive{color:var(--positive)}.amount.negative{color:var(--negative)}.sub-row{background:var(--panel);border:1px solid var(--border);border-radius:8px;align-items:center;gap:12px;margin-bottom:6px;padding:10px 12px;display:flex}.sub-name{flex:1;font-size:14px}.sub-date{color:var(--text-muted);font-size:12px}.entry-form{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;gap:8px;margin-bottom:20px;padding:16px;display:flex}.entry-form input,.entry-form select{border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:13px}.entry-form input[type=text],.entry-form input[type=number]{flex:1;min-width:100px}.entry-form button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600}.task-list{flex-direction:column;gap:6px;display:flex}.task-row{background:var(--panel);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.task-row.sub-inactive{opacity:.5}.task-title{flex:1}.task-due{color:var(--text-muted);font-size:12px}.tx-category{color:var(--text-muted);background:var(--bg);border-radius:999px;padding:2px 8px;font-size:12px}.kind-badge{border-radius:6px;padding:3px 6px;font-size:10px;font-weight:700}.kind-badge.kind-income{color:var(--positive);background:#dcfce7}.kind-badge.kind-expense{color:var(--negative);background:#fee2e2}.text-btn{color:var(--text-muted);background:0 0;border:none;font-size:12px}.text-btn:hover{color:var(--accent)}.task-delete{color:var(--text-muted);background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:18px;line-height:1}.task-delete:hover{color:var(--negative);background:#fef2f2}.empty-hint{color:var(--text-muted);padding:8px 10px;font-size:13px}@media (width<=640px){.topbar{flex-wrap:wrap}.tabs{order:3;width:100%}}
