*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#4a90d9;--primary-dark:#357abd;--danger:#e74c3c;--success:#27ae60;--warning:#f39c12;--bg:#f5f6fa;--card-bg:#fff;--text:#2c3e50;--text-light:#7f8c8d;--border:#e0e0e0;--shadow:0 2px 8px #00000014;--radius:12px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans SC,sans-serif;line-height:1.6}.loading-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:380px;padding:32px 24px}.auth-header{text-align:center;margin-bottom:28px}.auth-header h1{color:var(--primary);margin-bottom:6px;font-size:28px}.auth-subtitle{color:var(--text-light);font-size:14px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-footer{text-align:center;color:var(--text-light);margin-top:20px;font-size:14px}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text);font-size:13px;font-weight:600}.form-group input,.form-group select{border:1px solid var(--border);color:var(--text);background:var(--card-bg);border-radius:8px;outline:none;padding:10px 14px;font-size:15px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4a90d91f}.btn-primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px 20px;font-size:15px;font-weight:600;transition:background .2s}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-outline{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:10px 16px;font-size:14px;transition:all .2s}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-outline:disabled{opacity:.6;cursor:not-allowed}.btn-full{width:100%;padding:14px;font-size:16px}.link-btn{color:var(--primary);cursor:pointer;font-size:inherit;background:0 0;border:none;text-decoration:underline}.link-btn:hover{color:var(--primary-dark)}.btn-back{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:15px}.btn-back:disabled{opacity:.4;cursor:not-allowed}.error-msg{color:var(--danger);background:#fdedec;border-radius:8px;padding:10px 14px;font-size:14px}.success-msg{color:var(--success);background:#e8f8f0;border-radius:8px;padding:10px 14px;font-size:14px}.dashboard{max-width:600px;margin:0 auto;padding:0 16px 80px}.dashboard-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:16px;padding:20px 0 16px;display:flex}.dashboard-header h1{color:var(--primary);font-size:20px}.user-name{color:var(--text-light);font-size:13px}.header-actions{gap:8px;display:flex}.summary-cards{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.summary-cards .card:last-child:nth-child(3){grid-column:1/-1}.card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card-label{color:var(--text-light);margin-bottom:4px;font-size:12px}.card-amount{font-size:22px;font-weight:700}.card-expense .card-amount{color:var(--danger)}.card-income .card-amount{color:var(--success)}.card-info .card-amount{color:var(--primary)}.action-bar{gap:10px;margin-bottom:16px;display:flex}.action-bar .btn-primary{flex:1}.transaction-list{margin-top:8px}.transaction-list h2{color:var(--text);margin-bottom:12px;font-size:16px}.count{color:var(--text-light);font-weight:400}.empty-state{text-align:center;color:var(--text-light);padding:40px 20px;font-size:14px}.transaction-item{background:var(--card-bg);box-shadow:var(--shadow);border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:14px 16px;display:flex}.transaction-item.deleted{opacity:.4}.tx-date{color:var(--text-light);margin-bottom:2px;font-size:12px}.tx-category{font-size:14px;font-weight:500}.tx-right{text-align:right}.tx-amount{font-size:16px;font-weight:700}.tx-amount.income{color:var(--success)}.tx-amount.expense{color:var(--danger)}.tx-note{color:var(--text-light);margin-top:2px;font-size:12px}.page-container{max-width:600px;margin:0 auto;padding:0 16px 80px}.page-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:20px;padding:20px 0 16px;display:flex}.page-header h2{font-size:18px}.type-toggle{gap:8px;display:flex}.type-btn{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;border-radius:8px;flex:1;padding:10px;font-size:14px;font-weight:600;transition:all .2s}.type-btn.expense.active{border-color:var(--danger);color:var(--danger);background:#fdedec}.type-btn.income.active{border-color:var(--success);color:var(--success);background:#e8f8f0}.tx-form{flex-direction:column;gap:16px;display:flex}.loading{text-align:center;color:var(--text-light);padding:40px;font-size:14px}
