:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f0f1f4;--border: #e4e6eb;--text: #14161a;--text-dim: #6b7078;--accent: #6366f1;--accent-2: #22c55e;--income: #16a34a;--expense: #e4453e;--shadow: 0 1px 2px rgba(20, 22, 26, .04), 0 8px 24px rgba(20, 22, 26, .06);--radius: 16px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #0b0d12;--surface: #161923;--surface-2: #1e222e;--border: #262b38;--text: #f2f3f5;--text-dim: #8b8fa3;--accent: #818cf8;--accent-2: #4ade80;--income: #4ade80;--expense: #fb7185;--shadow: 0 1px 2px rgba(0, 0, 0, .2), 0 12px 32px rgba(0, 0, 0, .35);color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}#root{min-height:100dvh}input,select,button{font-family:inherit;font-size:16px}.app-loading{min-height:100dvh;background:var(--bg)}.login-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 20% 10%,rgba(99,102,241,.16),transparent 40%),var(--bg)}.login-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:32px 28px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:8px}.login-brand h1{font-size:20px;font-weight:700;margin:0}.login-brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:18px}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-dim);font-weight:500}.login-card input{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;color:var(--text);outline:none}.login-card input:focus{border-color:var(--accent)}.login-error{color:var(--expense);font-size:13px;margin:0}.login-card button{margin-top:8px;padding:13px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--accent),#a78bfa);color:#fff;font-weight:600;cursor:pointer}.login-card button:disabled{opacity:.6}.app-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;position:sticky;top:0;background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;border-bottom:1px solid var(--border)}.app-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px}.app-brand .login-brand-mark{width:28px;height:28px;font-size:14px;border-radius:8px}.logout-btn{background:transparent;border:1px solid var(--border);color:var(--text-dim);padding:8px 14px;border-radius:8px;cursor:pointer}.logout-btn:hover{color:var(--text);border-color:var(--text-dim)}.app-main{max-width:560px;margin:0 auto;padding:20px 16px 80px;display:flex;flex-direction:column;gap:20px}.month-picker{display:flex;align-items:center;justify-content:center;gap:20px}.month-picker button{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.month-picker-label{font-size:17px;font-weight:600;min-width:160px;text-align:center}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 12px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow)}.summary-label{font-size:12px;color:var(--text-dim);font-weight:500}.summary-value{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}.summary-card.income .summary-value{color:var(--income)}.summary-card.expense .summary-value,.summary-card.balance.negative .summary-value{color:var(--expense)}.tx-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}.tx-type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--surface-2);padding:4px;border-radius:10px}.tx-type-toggle button{border:none;background:transparent;padding:10px;border-radius:8px;font-weight:600;color:var(--text-dim);cursor:pointer}.tx-type-toggle button.active.expense{background:var(--surface);color:var(--expense);box-shadow:var(--shadow)}.tx-type-toggle button.active.income{background:var(--surface);color:var(--income);box-shadow:var(--shadow)}.tx-form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tx-form input,.tx-form select{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px;color:var(--text);outline:none;min-width:0}.tx-form input:focus,.tx-form select:focus{border-color:var(--accent)}.tx-amount{font-weight:700}.tx-submit{border:none;border-radius:10px;padding:13px;font-weight:700;color:#fff;cursor:pointer}.tx-submit.expense{background:linear-gradient(135deg,var(--expense),#f97373)}.tx-submit.income{background:linear-gradient(135deg,var(--income),#4ade80)}.tx-submit:disabled{opacity:.6}.tx-empty{text-align:center;color:var(--text-dim);padding:32px 0;font-size:14px}.tx-list{display:flex;flex-direction:column;gap:18px}.tx-group-date{font-size:12px;font-weight:600;color:var(--text-dim);text-transform:capitalize;margin-bottom:8px;padding-left:4px}.tx-row{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:6px}.tx-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tx-category{font-weight:600;font-size:14px}.tx-note{font-size:12px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tx-amount-tag{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.tx-amount-tag.income{color:var(--income)}.tx-amount-tag.expense{color:var(--expense)}.tx-delete{width:26px;height:26px;border-radius:50%;border:none;background:var(--surface-2);color:var(--text-dim);font-size:16px;line-height:1;cursor:pointer;flex-shrink:0}.tx-delete:hover{background:var(--expense);color:#fff}
