@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#1a1d27;--surface-2:#222535;--border:#2e3247;--accent:#f97316;--accent-soft:#f973161f;--accent-hover:#ea6a0a;--danger:#ef4444;--danger-soft:#ef44441f;--success:#22c55e;--success-soft:#22c55e1f;--text-primary:#f1f5f9;--text-muted:#8892a4;--radius:14px;--radius-sm:8px;--shadow:0 4px 24px #0006;--transition:.2s ease}html,body,#root{height:100%}body{background-color:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,sans-serif;line-height:1.6}.app-header{border-bottom:1px solid var(--border);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(135deg,#1a1d27 0%,#0f1117 100%);padding:1.25rem 1rem;position:sticky;top:0}.header-inner{max-width:90%;margin:0 auto}.logo{align-items:center;gap:.75rem;display:flex}.logo-icon{font-size:2rem;line-height:1}.app-title{background:linear-gradient(90deg,#f97316,#fb923c);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.35rem;font-weight:800;line-height:1.2}.app-subtitle{color:var(--text-muted);font-size:.75rem;font-weight:400}.dashboard{min-height:100vh}.main-content{flex-direction:column;gap:1.25rem;max-width:90%;margin:0 auto;padding:1.25rem 1rem 4rem;display:flex}.dashboard-grid{grid-template-columns:1fr;align-items:stretch;gap:1.5rem;display:grid}@media (width>=1120px){.dashboard-grid{grid-template-columns:1fr 1.3fr;gap:2rem}}.dashboard-form-section,.dashboard-history-section,.dashboard-chart-section{flex-direction:column;gap:1.5rem;min-width:0;display:flex}.form-card,.expense-list,.expense-list-empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;flex:1;padding:1.25rem;display:flex}.expense-list-items{flex:1;margin-bottom:1rem;padding-right:.25rem;overflow-y:auto}.expense-list-items::-webkit-scrollbar{width:6px}.expense-list-items::-webkit-scrollbar-track{background:0 0}.expense-list-items::-webkit-scrollbar-thumb{background-color:#ffffff1a;border-radius:10px}.expense-list-items::-webkit-scrollbar-thumb:hover{background-color:#fff3}.expense-list .pagination-controls{margin-top:auto}.summary-banner{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.summary-chip{align-items:center;gap:.5rem;font-size:.95rem;display:flex}.chip-label{color:var(--text-muted);font-weight:500}.chip-value{color:var(--text-primary);font-weight:600}.profit-chip{border-left:1px solid var(--border);padding-left:1rem}.form-title,.list-title{color:var(--text-primary);margin-bottom:1rem;font-size:1rem;font-weight:700}.form-grid{flex-direction:column;display:flex}.form-group{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.form-group label{color:var(--text-muted);font-size:.85rem;font-weight:600}.form-group input:not([type=radio]){background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);transition:border-color var(--transition), box-shadow var(--transition);-webkit-appearance:none;outline:none;padding:.9rem 1rem;font-family:Inter,sans-serif;font-size:1rem}.form-group input:not([type=radio])::placeholder{color:#4b5468}input[type=month]::-webkit-calendar-picker-indicator{filter:invert();cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{filter:invert();cursor:pointer}.recharts-wrapper *,.recharts-surface{outline:none!important}.form-group input:not([type=radio]):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-group input:not([type=radio]).input-error{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.form-group input[type=radio]{cursor:pointer;accent-color:var(--accent);width:1.1rem;height:1.1rem}.error-msg{color:var(--danger);font-size:.78rem;font-weight:500}.input-hint{color:var(--success);font-size:.78rem;font-weight:500}.preview-total{background:var(--accent-soft);border-radius:var(--radius-sm);color:var(--accent);text-align:center;border:1px solid #f973164d;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.form-actions{gap:.75rem;display:flex}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition), transform var(--transition), box-shadow var(--transition);border:none;flex:1;padding:.95rem 1rem;font-family:Inter,sans-serif;font-size:1rem;font-weight:700;box-shadow:0 4px 16px #f9731659}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 20px #f9731673}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--surface-2);color:var(--text-muted);border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition), color var(--transition);padding:.95rem 1.25rem;font-family:Inter,sans-serif;font-size:.95rem;font-weight:600}.btn-secondary:hover{background:var(--border);color:var(--text-primary)}.expense-list-empty{text-align:center;color:var(--text-muted);padding:2.5rem 1rem}.empty-icon{margin-bottom:.5rem;font-size:2.5rem;display:block}.expense-item-simple{cursor:pointer;transition:background var(--transition);border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:.5rem;display:flex}.expense-item-simple:hover{background:#ffffff08}.expense-item-simple:last-child{border-bottom:none}.expense-date-simple{color:var(--text-primary);align-items:center;gap:.75rem;font-weight:500;display:flex}.expense-financials-simple{align-items:center;gap:.75rem;font-size:.95rem;font-weight:600;display:flex}.income-simple{color:var(--success)}.cost-simple{color:var(--danger)}.divider{color:#fff3;font-weight:300}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:450px;max-height:90vh;animation:.3s cubic-bezier(.16,1,.3,1) modal-pop;overflow-y:auto;box-shadow:0 20px 25px -5px #00000080}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:0 0}.modal-content::-webkit-scrollbar-thumb{background-color:#ffffff1a;border-radius:10px}.modal-content::-webkit-scrollbar-thumb:hover{background-color:#fff3}@keyframes modal-pop{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h3{color:var(--text-primary);margin:0;font-size:1.25rem}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.5rem;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:1.5rem}.modal-footer{border-top:1px solid var(--border);background:var(--surface-2);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);padding:1.25rem 1.5rem}.expense-date-icon{background:#ffffff0d;border-radius:50%;padding:.5rem;font-size:1.5rem}.expense-date-main{color:var(--text-primary);font-size:1.05rem;font-weight:700}.expense-profit-badge{border-radius:20px;padding:.4rem .8rem;font-size:.85rem;font-weight:700}.profit-positive{background:var(--success-soft);color:var(--success);border:1px solid #22c55e33}.profit-negative{background:var(--danger-soft);color:var(--danger);border:1px solid #ef444433}.expense-financials-grid{border-radius:var(--radius-sm);background:#0003;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;padding:1rem;display:grid}.financial-stat{flex-direction:column;display:flex}.financial-stat .stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem;font-size:.75rem}.financial-stat .stat-value{font-size:1.25rem;font-weight:800}.financial-stat .stat-value.income{color:var(--success)}.financial-stat .stat-value.cost{color:var(--danger)}.expense-breakdown{flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;display:flex}.breakdown-item{color:var(--text-muted);background:#ffffff0d;border-radius:6px;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.85rem;display:flex}.breakdown-icon{font-size:.9rem}.expense-item-actions{gap:.5rem;display:flex}.btn-edit,.btn-delete{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition), transform var(--transition);border:none;flex:1;padding:.5rem .75rem;font-family:Inter,sans-serif;font-size:.8rem;font-weight:600}.btn-edit{background:var(--success-soft);color:var(--success);border:1px solid #22c55e40}.btn-edit:hover{background:#22c55e38;transform:translateY(-1px)}.btn-delete{background:var(--danger-soft);color:var(--danger);border:1px solid #ef444440}.btn-delete:hover{background:#ef444438;transform:translateY(-1px)}@media (width<=380px){.summary-grid{grid-template-columns:1fr 1fr}.summary-stat:first-child{grid-column:1/-1}}.pagination-controls{border-top:1px solid var(--border);justify-content:center;align-items:center;gap:1.5rem;margin-top:2rem;padding-top:1.5rem;display:flex}.page-info{color:var(--text-muted);font-size:.9rem;font-weight:500}.btn-page{background:var(--surface-2);border:1.5px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);padding:.5rem 1rem;font-size:.9rem;font-weight:500}.btn-page:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--surface)}.btn-page:disabled{opacity:.5;cursor:not-allowed}.desktop-nav{align-items:center;gap:.5rem;display:flex}.mobile-menu-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:.5rem;display:none}.mobile-menu{display:none}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.donut-container{flex-direction:row}.donut-legend{flex-direction:column;flex:0 0 100px}.scrollable-chart-wrapper{-webkit-overflow-scrolling:touch;width:100%;height:100%;overflow:auto hidden}.scrollable-chart-inner{min-width:100%;height:100%}.monthly-chart-card{height:320px}@media (width<=768px){.desktop-nav{display:none!important}.mobile-menu-btn{justify-content:center;align-items:center;display:flex!important}.mobile-menu{border-bottom:1px solid var(--border);z-index:99;background:#1a1d27;flex-direction:column;gap:1rem;width:100%;padding:1.5rem;animation:.25s cubic-bezier(.16,1,.3,1) forwards slideDown;display:flex;position:absolute;top:100%;left:0;box-shadow:0 10px 15px -3px #00000080}.add-expense-text{display:none}.btn-add-expense{padding:.75rem!important}.summary-banner{grid-template-columns:1fr 1fr;gap:1rem;padding:1.25rem!important;display:grid!important}.profit-chip{border-left:none!important;padding-left:0!important}}@media (width<=480px){.summary-banner{grid-template-columns:1fr!important}.expense-item-simple{flex-direction:column;align-items:flex-start;gap:.5rem}.expense-financials-simple{justify-content:space-between;width:100%}.donut-container{gap:1.5rem;flex-direction:column-reverse!important}.donut-legend{justify-content:center;width:100%;flex-direction:row!important;flex:none!important}.scrollable-chart-inner{min-width:600px}.chart-header{flex-direction:column;gap:1rem;align-items:flex-start!important}.expense-controls{justify-content:space-between;width:100%}.income-chart-controls{flex-direction:column;width:100%;align-items:flex-start!important;gap:.75rem!important}.chart-header select,.chart-header input{flex:1;width:100%}.monthly-chart-card{height:380px!important}}@media (width<=410px){.expense-controls{flex-direction:column;align-items:stretch!important;gap:.75rem!important}.expense-controls button{justify-content:center;width:100%}.breakdown-item,.breakdown-category-header{flex-direction:column;gap:.25rem;align-items:flex-start!important}}@keyframes drive-across{0%{opacity:0;transform:translate(-100px)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(300px)}}.vehicle-animate{will-change:transform, opacity;z-index:2;animation:3.5s ease-in-out infinite drive-across}
