:root{--bg: #f7f8fb;--surface: #ffffff;--ink: #181a26;--ink-muted: #6c7086;--border: #e6e8f0;--accent: #6e62f5;--accent-soft: rgba(110, 98, 245, .12);--income: #1a9c6b;--income-soft: rgba(26, 156, 107, .14);--expense: #e0505a;--expense-soft: rgba(224, 80, 90, .14);--radius: 18px;--shadow: 0 1px 2px rgba(24, 26, 38, .04), 0 10px 30px -12px rgba(24, 26, 38, .12);--font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #0f1117;--surface: #171926;--ink: #e8e9f3;--ink-muted: #8d90a8;--border: #2a2d40;--accent: #8d7fff;--accent-soft: rgba(141, 127, 255, .16);--income: #3ecf8e;--income-soft: rgba(62, 207, 142, .16);--expense: #f27482;--expense-soft: rgba(242, 116, 130, .16);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 30px -12px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);line-height:1.5}button{font-family:inherit}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--ink-muted)}.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:36px 32px;max-width:340px;width:100%;text-align:center}.auth-icon{font-size:36px;margin-bottom:8px}.auth-card h1{font-size:20px;margin:0 0 6px}.auth-card p{color:var(--ink-muted);font-size:14px;margin:0 0 20px}.auth-card input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--bg);color:var(--ink);font-size:15px;margin-bottom:12px}.auth-card button{width:100%;padding:12px;border-radius:12px;border:none;background:var(--accent);color:#fff;font-weight:700;font-size:15px;cursor:pointer}.auth-card button:disabled{opacity:.6}.auth-error{color:var(--expense);font-size:13px;margin-bottom:10px}.dashboard{max-width:720px;margin:0 auto;padding:24px 18px 100px}.dash-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dash-header h1{font-size:20px;margin:0}button.ghost{background:none;border:1px solid var(--border);color:var(--ink-muted);padding:8px 14px;border-radius:10px;cursor:pointer;font-size:13px;font-weight:600}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.tile-label{font-size:12px;color:var(--ink-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.tile-balance{font-size:19px;font-weight:800;margin:6px 0}.tile-balance[data-negative=true]{color:var(--expense)}.tile-detail{display:flex;gap:10px;font-size:12px;font-weight:600}.tile-detail .in{color:var(--income)}.tile-detail .out{color:var(--expense)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:16px}.card-title{font-size:14px;font-weight:700;margin-bottom:12px}.trend-chart{width:100%;height:auto}.bar-income{fill:var(--income)}.bar-expense{fill:var(--expense)}.chart-day{font-size:9px;fill:var(--ink-muted)}.chart-legend{display:flex;gap:16px;margin-top:8px;font-size:12px;color:var(--ink-muted)}.chart-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.chart-legend .dot.income{background:var(--income)}.chart-legend .dot.expense{background:var(--expense)}.tx-form-row{display:flex;gap:10px;margin-bottom:10px}.tx-form select,.tx-form input{flex:1;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--ink);font-size:14px;min-width:0}.tx-form-actions{display:flex;gap:10px}.tx-form-actions button[type=submit]{padding:10px 18px;border-radius:10px;border:none;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}.tx-list{display:flex;flex-direction:column;gap:4px}.empty{color:var(--ink-muted);font-size:14px;padding:12px 0}.tx-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);gap:8px}.tx-row:last-child{border-bottom:none}.tx-row-main{display:flex;align-items:center;gap:10px;min-width:0}.tx-badge{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;flex:none}.tx-badge.income{background:var(--income-soft);color:var(--income)}.tx-badge.expense{background:var(--expense-soft);color:var(--expense)}.tx-note{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tx-meta{font-size:11.5px;color:var(--ink-muted)}.tx-row-actions{display:flex;align-items:center;gap:8px;flex:none}.tx-amount{font-weight:700;font-size:14px;white-space:nowrap}.tx-amount.income{color:var(--income)}.tx-amount.expense{color:var(--expense)}.tx-row-actions button{background:none;border:none;cursor:pointer;font-size:14px;color:var(--ink-muted);padding:4px}@media (max-width: 480px){.tiles{grid-template-columns:1fr}.tx-note{max-width:140px}}.bottom-nav{position:fixed;left:0;right:0;bottom:0;max-width:720px;margin:0 auto;display:flex;justify-content:space-around;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -2px 12px #0000000d;padding:8px 0 calc(8px + env(safe-area-inset-bottom));z-index:10}.bottom-nav-item{background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ink-muted);font-size:11px;font-weight:600;cursor:pointer;padding:4px 22px;border-radius:10px}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-icon{font-size:20px}.month-picker{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.month-picker .ghost{font-size:20px;line-height:1;padding:6px 16px}.month-label{font-weight:700;font-size:15px;text-transform:capitalize}.month-summary{text-align:center}.month-balance{font-size:26px;font-weight:800;margin:6px 0}.month-balance[data-negative=true]{color:var(--expense)}.month-detail{justify-content:center}.cat-breakdown{display:flex;flex-direction:column;gap:12px}.cat-row-head{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:4px;text-transform:capitalize}.cat-bar-track{height:6px;border-radius:4px;background:var(--border);overflow:hidden}.cat-bar-fill{height:100%;background:var(--expense);border-radius:4px}
