:root{--bg:#f8fafc;--bg-card:#ffffff;--bg-surface:#f1f5f9;--text:#0f172a;--text-muted:#64748b;--primary:#3b82f6;--income:#10b981;--expense:#ef4444;--border:#e2e8f0;--radius:16px;--font:'Inter',sans-serif;--font-heading:'Outfit',sans-serif}
[data-theme="dark"]{--bg:#0f172a;--bg-card:#1e293b;--bg-surface:#334155;--text:#f8fafc;--text-muted:#94a3b8;--border:#334155}
*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;transition:all 0.3s}
.container{max-width:1100px;margin:0 auto;padding:0 1.5rem}h1,h2,h3{font-family:var(--font-heading)}.text-muted{color:var(--text-muted)}.text-right{text-align:right}.mt-4{margin-top:1.5rem}.w-100{width:100%}.flex-bw{display:flex;justify-content:space-between;align-items:center}
.navbar{padding:1rem 0;border-bottom:1px solid var(--border)}.nav-inner{display:flex;justify-content:space-between;align-items:center}.brand{font-weight:700;font-size:1.4rem;color:var(--text);text-decoration:none;font-family:var(--font-heading)}.brand span{color:var(--primary)}.nav-links{display:flex;gap:1.5rem;align-items:center}.nav-links a{color:var(--text-muted);text-decoration:none;font-weight:500;transition:all 0.2s}.nav-links a:hover,.nav-links a.active{color:var(--primary)}.kofi-link{color:#ff5e5b!important}.icon-btn{background:none;border:none;color:var(--text);font-size:1.2rem;cursor:pointer;padding:0.5rem;border-radius:8px;transition:background 0.2s}.icon-btn:hover{background:var(--bg-surface)}.theme-btn{border:1px solid var(--border);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center}
.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin:2rem 0;flex-wrap:wrap;gap:1rem}.month-selector{display:flex;align-items:center;gap:1rem;background:var(--bg-card);padding:0.5rem;border-radius:12px;border:1px solid var(--border)}.month-selector h3{min-width:150px;text-align:center;font-weight:600}
.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}
.glass-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:0 4px 6px -1px rgba(0,0,0,0.05)}.summary-card{text-align:center}.sc-title{color:var(--text-muted);font-weight:500;font-size:0.95rem;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.5rem}.sc-val{font-size:2.2rem;font-weight:700;font-family:var(--font-heading)}.income .sc-val{color:var(--income)}.expenses .sc-val{color:var(--expense)}
.main-grid{display:grid;grid-template-columns:350px 1fr;gap:1.5rem;align-items:start}@media(max-width:900px){.main-grid{grid-template-columns:1fr}}
.btn{font-family:var(--font);font-weight:600;padding:0.75rem 1.5rem;border:none;border-radius:8px;cursor:pointer;transition:transform 0.1s,opacity 0.2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{opacity:0.9}.btn-secondary{background:var(--bg-surface);color:var(--text);border:1px solid var(--border)}.btn-sm{padding:0.4rem 0.8rem;font-size:0.85rem}
.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:0.4rem;font-size:0.85rem;color:var(--text-muted);font-weight:500}.form-group input,.form-group select{width:100%;padding:0.75rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font);outline:none;transition:border-color 0.2s}.form-group input:focus,.form-group select:focus{border-color:var(--primary)}
.type-toggle{display:flex;gap:0.5rem}.radio-btn{flex:1;cursor:pointer}.radio-btn input{display:none}.radio-btn span{display:block;text-align:center;padding:0.5rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;transition:all 0.2s}.radio-btn input:checked+span{background:var(--primary);color:#fff;border-color:var(--primary)}
.chart-container{position:relative;height:350px;width:100%;margin-top:1rem}
.table-responsive{overflow-x:auto;margin-top:1rem}.txn-table{width:100%;border-collapse:collapse}.txn-table th,.txn-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--border)}.txn-table th{color:var(--text-muted);font-weight:500;font-size:0.85rem;text-transform:uppercase}.txn-table tr:last-child td{border-bottom:none}.date-col{color:var(--text-muted);font-size:0.9rem}.desc-col{font-weight:500}.cat-badge{display:inline-block;padding:0.25rem 0.6rem;background:var(--bg-surface);border-radius:100px;font-size:0.8rem;color:var(--text-muted)}.amt-expense{color:var(--expense);font-weight:600}.amt-income{color:var(--income);font-weight:600}
.footer{margin-top:4rem;border-top:1px solid var(--border);padding:2rem 0;text-align:center}.footer-brand span{font-weight:700}
