@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg-base:#0a0c12;--bg-surface:#12151f;--bg-card:#1a1d2e;--bg-card-hover:#1f2235;--bg-input:#0f1219;--bg-input-focus:#13172211;--accent-1:#6c63ff;--accent-2:#4ecdc4;--accent-3:#ff6b9d;--grad-brand:linear-gradient(135deg, #6c63ff 0%, #4ecdc4 100%);--grad-income:linear-gradient(135deg, #11998e 0%, #38ef7d 100%);--grad-expense:linear-gradient(135deg, #f7971e 0%, #ff6b6b 100%);--grad-balance:linear-gradient(135deg, #6c63ff 0%, #a855f7 100%);--text-primary:#f0f2ff;--text-secondary:#a8afc9;--text-muted:#5a6080;--text-income:#38ef7d;--text-expense:#ff6b6b;--border:#ffffff12;--border-focus:#6c63ff99;--shadow-card:0 8px 32px #0006;--shadow-glow:0 0 24px #6c63ff33;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--transition:.2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg-base);color:var(--text-primary);background-image:radial-gradient(80% 50% at 20% -20%,#6c63ff1f 0%,#0000 60%),radial-gradient(60% 40% at 80% 100%,#4ecdc414 0%,#0000 60%);background-attachment:fixed;min-height:100vh;font-family:Inter,system-ui,sans-serif;line-height:1.6}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-surface)}::-webkit-scrollbar-thumb{background:var(--accent-1);border-radius:3px}.app-wrapper{max-width:1200px;margin:0 auto;padding:24px 20px 60px}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px;display:flex}.app-title{background:var(--grad-brand);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;background-clip:text;font-size:1.6rem;font-weight:800}.app-subtitle{color:var(--text-muted);margin-top:2px;font-size:.8rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:box-shadow var(--transition), border-color var(--transition);padding:24px}.card:hover{box-shadow:var(--shadow-card), var(--shadow-glow);border-color:#6c63ff26}.user-selector-bar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);align-items:center;gap:12px;margin-bottom:28px;padding:14px 20px;display:flex}.user-avatar{background:var(--grad-brand);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1rem;font-weight:700;display:flex}.user-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:500}select,input[type=text],input[type=number],input[type=date],input[type=month]{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color var(--transition), box-shadow var(--transition);outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:.92rem}select,input[type=text],input[type=number]{appearance:none}input[type=date],input[type=month]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer;opacity:.6}input[type=month]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer;opacity:.6}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}input[type=month]::-webkit-calendar-picker-indicator:hover{opacity:1}select{cursor:pointer}select:focus,input:focus{border-color:var(--accent-1);box-shadow:0 0 0 3px #6c63ff2e}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px;font-size:.78rem;font-weight:600;display:block}.form-group,.select-wrapper{position:relative}.select-wrapper:after{content:"▾";color:var(--text-muted);pointer-events:none;font-size:.8rem;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.transaction-form{margin-bottom:28px}.transaction-form .card{padding:28px}.form-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:20px;font-size:1rem;font-weight:700;display:flex}.form-title .icon{font-size:1.1rem}.form-grid{grid-template-columns:120px 1fr 140px 150px 1fr 110px;align-items:end;gap:12px;display:grid}@media (width<=1000px){.form-grid{grid-template-columns:120px 1fr 140px 150px}.form-grid .form-group:nth-child(5){grid-column:1/4}.form-grid .btn-add{grid-column:4}}@media (width<=640px){.form-grid{grid-template-columns:1fr 1fr}.form-grid .form-group:nth-child(5){grid-column:unset}.form-grid .btn-add{grid-column:1/-1}}@media (width<=420px){.form-grid{grid-template-columns:1fr}}.report-filter-bar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding:14px 20px;display:flex}.report-filter-title{color:var(--text-primary);align-items:center;gap:8px;font-size:.95rem;font-weight:700;display:flex}.report-filter-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-family:inherit;font-size:.88rem;font-weight:600;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--grad-brand);color:#fff;box-shadow:0 4px 16px #6c63ff59}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 24px #6c63ff80}.btn-danger{color:#ff6b6b;border-radius:var(--radius-sm);background:#ff6b6b1f;border:1px solid #ff6b6b40;padding:6px 10px;font-size:.8rem}.btn-danger:hover{background:#ff6b6b38;border-color:#ff6b6b80}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:#ffffff0a}.btn-ghost:hover{color:var(--text-primary);background:#ffffff14}.type-pill-income{color:var(--text-income);background:#38ef7d1f;border:1px solid #38ef7d40}.type-pill-expense{color:var(--text-expense);background:#ff6b6b1f;border:1px solid #ff6b6b40}.summary-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px;display:grid}@media (width<=640px){.summary-grid{grid-template-columns:1fr}}.summary-card{border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-card);transition:transform var(--transition);padding:22px 24px;position:relative;overflow:hidden}.summary-card:hover{transform:translateY(-3px)}.summary-card:before{content:"";opacity:.08;border-radius:inherit;position:absolute;inset:0}.summary-card.income{background:var(--bg-card)}.summary-card.income:before{background:var(--grad-income)}.summary-card.expense{background:var(--bg-card)}.summary-card.expense:before{background:var(--grad-expense)}.summary-card.balance{background:var(--bg-card)}.summary-card.balance:before{background:var(--grad-balance)}.summary-icon{margin-bottom:10px;font-size:1.6rem}.summary-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:6px;font-size:.75rem;font-weight:600}.summary-value{letter-spacing:-.5px;font-size:1.5rem;font-weight:800;line-height:1}.summary-card.income .summary-value{color:var(--text-income)}.summary-card.expense .summary-value{color:var(--text-expense)}.summary-card.balance .summary-value{background:var(--grad-balance);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.charts-grid{grid-template-columns:1fr 1.6fr;gap:20px;margin-bottom:28px;display:grid}@media (width<=800px){.charts-grid{grid-template-columns:1fr}}.chart-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:20px;font-size:.95rem;font-weight:700;display:flex}.chart-title .dot{background:var(--grad-brand);border-radius:50%;width:8px;height:8px;display:inline-block}.recharts-tooltip-wrapper{outline:none}.custom-tooltip{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;font-size:.83rem}.custom-tooltip .tt-label{color:var(--text-secondary);margin-bottom:4px}.custom-tooltip .tt-value{color:var(--text-primary);font-weight:700}.custom-tooltip .tt-income{color:var(--text-income)}.custom-tooltip .tt-expense{color:var(--text-expense)}.pie-legend{flex-direction:column;gap:8px;max-height:180px;margin-top:16px;padding-right:4px;display:flex;overflow-y:auto}.pie-legend-item{justify-content:space-between;align-items:center;gap:8px;font-size:.8rem;display:flex}.pie-legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.pie-legend-name{color:var(--text-secondary);flex:1}.pie-legend-value{color:var(--text-primary);white-space:nowrap;font-weight:600}.table-section{margin-bottom:20px}.table-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.filter-tabs{gap:6px;display:flex}.filter-tab{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border-radius:20px;padding:6px 14px;font-family:inherit;font-size:.8rem;font-weight:600}.filter-tab.active,.filter-tab:hover{background:var(--accent-1);color:#fff;border-color:var(--accent-1)}.filter-tab.income.active{color:var(--text-income);background:#38ef7d33;border-color:#38ef7d66}.filter-tab.expense.active{color:var(--text-expense);background:#ff6b6b33;border-color:#ff6b6b66}.transactions-table{border-collapse:collapse;width:100%;font-size:.875rem}.transactions-table th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:10px 14px;font-size:.72rem;font-weight:600}.transactions-table td{vertical-align:middle;border-bottom:1px solid #ffffff0a;padding:12px 14px}.transactions-table tr:last-child td{border-bottom:none}.transactions-table tbody tr:hover td{background:#6c63ff0a}.amount-income{color:var(--text-income);font-weight:700}.amount-expense{color:var(--text-expense);font-weight:700}.category-badge{color:var(--text-secondary);background:#ffffff0f;border-radius:20px;align-items:center;gap:5px;padding:3px 10px;font-size:.75rem;font-weight:500;display:inline-flex}.category-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.type-tag{text-transform:uppercase;letter-spacing:.06em;border-radius:20px;padding:3px 9px;font-size:.72rem;font-weight:700}.type-tag.income{color:var(--text-income);background:#38ef7d1f}.type-tag.expense{color:var(--text-expense);background:#ff6b6b1f}.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px}.empty-icon{opacity:.4;margin-bottom:12px;font-size:3rem}.empty-text{font-size:.95rem}.loading-spinner{border:2px solid #fff3;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{z-index:9999;flex-direction:column;gap:10px;display:flex;position:fixed;top:20px;right:20px}.toast{background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--accent-1);border-radius:var(--radius-sm);color:var(--text-primary);box-shadow:var(--shadow-card);min-width:240px;max-width:340px;padding:12px 18px;font-size:.87rem;animation:.25s slideIn}.toast.success{border-left-color:#38ef7d}.toast.error{border-left-color:#ff6b6b}@keyframes slideIn{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:translate(0)}}.section-divider{background:var(--border);height:1px;margin:8px 0 24px}.hide-mobile{display:initial}@media (width<=640px){.hide-mobile{display:none}.app-title{font-size:1.3rem}}
