:root{--primary:#6c5ce7;--primary-light:#a29bfe;--danger:#ff6b6b;--success:#00d2d3;--text:#2d3436;--text-light:#636e72;--bg:#f8f9fa;--card-bg:#fff;--border:#e9ecef;--shadow:0 2px 12px #00000014;--shadow-lg:0 4px 24px #0000001f;--radius:12px;--radius-sm:8px;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;margin:0}#root{min-height:100vh}.app{max-width:960px;margin:0 auto;padding:0 20px 40px}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:20px 0 16px;display:flex}.app-header h1{color:var(--primary);margin:0;font-size:24px;font-weight:700}.header-actions{align-items:center;gap:12px;display:flex}.month-nav{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:4px 8px;display:flex}.btn-nav{cursor:pointer;color:var(--primary);background:0 0;border:none;border-radius:4px;padding:2px 8px;font-size:20px;transition:background .2s}.btn-nav:hover{background:var(--primary-light);color:#fff}.month-label{text-align:center;min-width:80px;font-size:14px;font-weight:600}.btn-export{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:4px;padding:8px 16px;font-size:14px;font-weight:500;transition:background .2s,transform .1s;display:flex}.btn-export:hover{background:var(--primary-light)}.btn-export:active{transform:scale(.97)}.tab-nav{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);gap:4px;margin-bottom:20px;padding:4px;display:flex}.tab-btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-light);background:0 0;border:none;flex:1;padding:10px 16px;font-size:14px;font-weight:500;transition:all .2s}.tab-btn:hover{background:var(--bg)}.tab-btn.active{background:var(--primary);color:#fff;box-shadow:var(--shadow)}.section-title{color:var(--text);margin-bottom:16px;font-size:18px;font-weight:600}.chart-total{text-align:center;color:var(--primary);margin-bottom:8px;font-size:22px;font-weight:700}.empty-state{text-align:center;color:var(--text-light);padding:40px 20px;font-size:14px}.dashboard-grid{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.chart-container,.budget-progress{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.chart-tooltip{border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);background:#fff;flex-direction:column;gap:4px;padding:10px 14px;font-size:13px;display:flex}.legend-text{color:var(--text);font-size:13px}.expense-form{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.form-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;display:grid}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-light);font-size:13px;font-weight:600}.form-group input,.form-group select{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:var(--bg);outline:none;padding:10px 14px;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6c5ce726}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;padding:12px;font-size:16px;font-weight:600;transition:background .2s,transform .1s}.btn-primary:hover{background:var(--primary-light)}.btn-primary:active{transform:scale(.98)}.expense-section{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.expense-list{flex-direction:column;gap:8px;display:flex}.expense-item{border-radius:var(--radius-sm);border:1px solid var(--border);align-items:center;gap:12px;padding:12px;transition:background .2s;display:flex}.expense-item:hover{background:var(--bg)}.expense-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.expense-info{flex:1;min-width:0}.expense-description{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.expense-meta{align-items:center;gap:8px;margin-top:2px;display:flex}.expense-category-badge{border-radius:20px;padding:1px 8px;font-size:12px;font-weight:500}.expense-date{color:var(--text-light);font-size:12px}.expense-amount{color:var(--text);white-space:nowrap;font-size:16px;font-weight:700}.btn-delete{color:var(--text-light);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:14px;transition:color .2s,background .2s}.expense-item:hover .btn-delete{opacity:1}.btn-delete:hover{color:var(--danger);background:#ff6b6b1a}.budget-bars{flex-direction:column;gap:14px;display:flex}.budget-bar-item{flex-direction:column;gap:4px;display:flex}.budget-bar-header{justify-content:space-between;align-items:center;font-size:13px;display:flex}.budget-cat-name{font-weight:600}.budget-amount{color:var(--text-light);font-weight:500}.budget-amount.over-budget{color:var(--danger);font-weight:700}.progress-track{background:var(--bg);border-radius:20px;height:10px;overflow:hidden}.progress-fill{border-radius:20px;height:100%;transition:width .8s cubic-bezier(.25,.46,.45,.94)}.progress-fill.over-budget{animation:1.5s ease-in-out infinite pulse;background:linear-gradient(90deg, var(--danger), #ff8e8e)!important}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.budget-warning{color:var(--danger);font-size:12px;font-weight:600}.budget-settings{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.budget-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.budget-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;border-top:3px solid;flex-direction:column;gap:6px;padding:16px;transition:box-shadow .2s;display:flex}.budget-card:hover{box-shadow:var(--shadow)}.budget-card-icon{font-size:28px}.budget-card-name{font-size:14px;font-weight:600}.budget-card-value{color:var(--text-light);font-size:13px}.budget-card-value.not-set{opacity:.6;font-style:italic}.budget-edit-row{gap:4px;margin-top:4px;display:flex}.budget-edit-row input{border:1px solid var(--border);border-radius:4px;outline:none;flex:1;padding:6px 8px;font-size:13px}.budget-edit-row input:focus{border-color:var(--primary)}.budget-card-actions{justify-content:center;gap:4px;margin-top:4px;display:flex}.btn-sm{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;color:var(--text);border-radius:4px;padding:6px 14px;font-size:13px;transition:all .2s}.btn-sm:hover{border-color:var(--primary);color:var(--primary)}.btn-save{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-save:hover{background:var(--primary-light);border-color:var(--primary-light);color:#fff}.btn-danger{color:var(--danger)}.btn-danger:hover{border-color:var(--danger);color:var(--danger);background:#ff6b6b0d}@media (width<=768px){.app{padding:0 12px 32px}.app-header{flex-direction:column;align-items:flex-start}.header-actions{justify-content:space-between;width:100%}.dashboard-grid,.form-grid{grid-template-columns:1fr}.tab-btn{padding:8px 10px;font-size:13px}.expense-item{gap:8px;padding:10px}.btn-delete{opacity:1}.budget-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (width<=480px){.budget-grid{grid-template-columns:1fr 1fr}.tab-btn span,.tab-btn{font-size:12px}}
