:root{--bg-primary: #0f0d1a;--bg-surface: #1a1625;--bg-surface-rgb: 26, 22, 37;--bg-elevated: #241f36;--bg-hover: #2d2645;--accent-primary: #8b5cf6;--accent-primary-hover: #a78bfa;--accent-secondary: #6366f1;--accent-success: #10b981;--accent-success-light: #34d399;--accent-warning: #f59e0b;--accent-warning-light: #fbbf24;--accent-danger: #ef4444;--accent-danger-light: #fca5a5;--accent-info: #3b82f6;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--text-inverse: #0f172a;--glass-bg: rgba(255, 255, 255, .05);--glass-bg-hover: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .1);--glass-border-hover: rgba(255, 255, 255, .15);--gradient-primary: linear-gradient(135deg, #8b5cf6, #6366f1);--gradient-success: linear-gradient(135deg, #10b981, #34d399);--gradient-danger: linear-gradient(135deg, #ef4444, #f87171);--gradient-warning: linear-gradient(135deg, #f59e0b, #fbbf24);--gradient-surface: linear-gradient(135deg, #1e1b4b 0%, #312e81 50%, #1e1b4b 100%);--card-text-primary: #ffffff;--card-text-secondary: rgba(255, 255, 255, .75);--gradient-card-1: linear-gradient(135deg, #ff6b8b, #ff8e7a);--gradient-card-2: linear-gradient(135deg, #8b5cf6, #6366f1);--gradient-card-3: linear-gradient(135deg, #10b981, #059669);--gradient-card-4: linear-gradient(135deg, #0ea5e9, #3b82f6);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 4px 14px rgba(0, 0, 0, .15);--shadow-md: 0 8px 24px rgba(0, 0, 0, .25);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .35);--shadow-glow: 0 0 20px rgba(139, 92, 246, .3);--shadow-glow-success: 0 0 20px rgba(16, 185, 129, .3);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--accent-primary-transparent: rgba(139, 92, 246, .15);--font-primary: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--text-page-title: 28px;--text-section-title: 18px;--text-card-title: 15px;--text-amount-lg: 24px;--text-amount-md: 20px;--text-body: 13px;--text-meta: 12px;--text-caption: 12px;--weight-bold: 700;--weight-semibold: 600;--weight-medium: 500;--weight-regular: 400;--weight-title: 700;--weight-label: 600;--weight-body: 400;--bottom-nav-height: 72px;--sidebar-width: 280px;--header-height: 64px}:root[data-theme=light]{--bg-primary: #f8fafc;--bg-surface: #ffffff;--bg-surface-rgb: 255, 255, 255;--bg-elevated: #f1f5f9;--bg-hover: #e2e8f0;--accent-primary: #7c3aed;--accent-primary-hover: #6d28d9;--accent-secondary: #4f46e5;--accent-success: #059669;--accent-success-light: #10b981;--accent-warning: #d97706;--accent-warning-light: #f59e0b;--accent-danger: #dc2626;--accent-danger-light: #ef4444;--accent-info: #2563eb;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--text-inverse: #f8fafc;--glass-bg: rgba(0, 0, 0, .03);--glass-bg-hover: rgba(0, 0, 0, .05);--glass-border: rgba(0, 0, 0, .08);--glass-border-hover: rgba(0, 0, 0, .12);--gradient-primary: linear-gradient(135deg, #7c3aed, #4f46e5);--gradient-surface: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);--card-text-primary: #0f172a;--card-text-secondary: #475569;--gradient-card-1: linear-gradient(135deg, #ffccd5, #ffb3c1);--gradient-card-2: linear-gradient(135deg, #e8dbfc, #d8b4fe);--gradient-card-3: linear-gradient(135deg, #d1fae5, #a7f3d0);--gradient-card-4: linear-gradient(135deg, #e0f2fe, #bae6fd);--shadow-sm: 0 4px 14px rgba(0, 0, 0, .04);--shadow-md: 0 8px 24px rgba(0, 0, 0, .06);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .08);--shadow-glow: 0 0 20px rgba(124, 58, 237, .15);--shadow-glow-success: 0 0 20px rgba(5, 150, 105, .15)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;font-family:var(--font-primary)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;width:100%;max-width:100vw;overflow-x:hidden}body{font-family:var(--font-primary);font-size:var(--text-body);font-weight:var(--weight-body);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;overflow-x:hidden;width:100%;max-width:100vw}a{color:var(--accent-primary);text-decoration:none}a:hover{color:var(--accent-primary-hover)}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.glass-card{background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid transparent;border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.glass-card:hover{background:var(--glass-bg-hover);box-shadow:var(--shadow-md)}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-primary,.btn-secondary,.btn-ghost,.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;border-radius:16px;font-family:inherit;font-size:14px;font-weight:600;line-height:1;border:none;cursor:pointer;transition:all .2s ease;white-space:nowrap;text-decoration:none;-webkit-tap-highlight-color:transparent}.btn-primary{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;padding:0 24px;box-shadow:0 4px 14px #8b5cf64d}.btn-primary:hover{background:linear-gradient(135deg,#a78bfa,#818cf8);box-shadow:0 6px 20px #8b5cf673;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:0 2px 8px #8b5cf64d}.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--glass-border);padding:0 24px}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--glass-border-hover)}.btn-secondary:active{transform:scale(.98)}.btn-secondary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--glass-border);padding:0 20px}.btn-ghost:hover{background:var(--glass-bg);color:var(--text-primary);border-color:var(--glass-border-hover)}.btn-ghost:active{transform:scale(.98)}.btn-icon{width:48px;padding:0;background:var(--glass-bg);color:var(--text-secondary);border:1px solid var(--glass-border);flex-shrink:0}.btn-icon:hover{background:var(--glass-bg-hover);color:var(--text-primary);border-color:var(--glass-border-hover)}.btn-icon:active{transform:scale(.92)}.btn-icon-round{border-radius:50%}.form-input{width:100%;padding:12px 16px;background:var(--bg-elevated);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-body);font-weight:var(--weight-body);transition:all var(--transition-normal);outline:none}.form-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #8b5cf626}.form-input::placeholder{color:var(--text-muted)}.form-label{display:block;font-size:var(--text-body);font-weight:var(--weight-label);color:var(--text-secondary);margin-bottom:6px}.form-select{width:100%;padding:12px 16px;background:var(--bg-elevated);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-body);font-weight:var(--weight-body);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;cursor:pointer}.form-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #8b5cf626}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 15px #8b5cf633}50%{box-shadow:0 0 25px #8b5cf666}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-elevated) 25%,var(--bg-hover) 50%,var(--bg-elevated) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.animate-fade-in{animation:fadeIn .4s ease forwards}.animate-slide-up{animation:slideUp .5s ease forwards}.page-container{max-width:1200px;margin:0 auto;padding:16px 16px 32px;min-height:100vh;width:100%;box-sizing:border-box}.page-header{margin-bottom:24px}.page-title{font-size:var(--text-page-title);font-weight:var(--weight-title);color:var(--text-primary);line-height:1.2}.page-subtitle{font-size:var(--text-body);font-weight:var(--weight-body);color:var(--text-secondary);margin-top:4px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-label);white-space:nowrap;flex-shrink:0}.badge-success{background:#10b98126;color:var(--accent-success-light)}.badge-warning{background:#f59e0b26;color:var(--accent-warning-light)}.badge-danger{background:#ef444426;color:var(--accent-danger-light)}.badge-info{background:#3b82f626;color:var(--accent-info)}.badge-primary{background:#8b5cf626;color:var(--accent-primary-hover)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:2000;padding:0}@media (min-width: 768px){.modal-overlay{align-items:center}}.modal-content{background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@media (min-width: 768px){.modal-content{border-radius:var(--radius-lg)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--glass-border)}.modal-header h2{font-size:var(--text-card-title);font-weight:var(--weight-title)}.modal-body{padding:24px}.modal-close{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:all var(--transition-fast)}.modal-close:hover{background:var(--accent-danger);color:#fff;border-color:var(--accent-danger)}@media (min-width: 768px){.page-container{padding:24px 32px 32px}}.toast{position:fixed;top:16px;right:16px;z-index:9999;padding:14px 20px;border-radius:var(--radius-md);font-size:var(--text-body);font-weight:var(--weight-label);display:flex;align-items:center;gap:10px;animation:slideUp .3s ease;max-width:400px}.toast-success{background:#10b98126;border:1px solid rgba(16,185,129,.3);color:var(--accent-success-light)}.toast-error{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:var(--accent-danger-light)}.layout-container{min-height:100vh;position:relative;background:var(--bg-primary);width:100%;overflow-x:hidden}.layout-main{min-height:calc(100vh - 60px);width:100%}@media (max-width: 768px){.layout-main{padding-bottom:calc(var(--bottom-nav-height, 65px) + 16px)}}#root{width:100%;max-width:100vw;overflow-x:hidden}.report-metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.report-metrics-grid .metric-card{border-radius:14px;padding:12px 14px;min-width:0;overflow:hidden;transition:all .2s ease}.report-metrics-grid .metric-label{font-size:10px;font-weight:600;color:var(--text-muted);margin:0 0 4px;letter-spacing:.04em;text-transform:uppercase}.report-metrics-grid .metric-value{font-size:18px;font-weight:700;margin:0;letter-spacing:-.3px;line-height:1.2;word-break:break-all;overflow-wrap:break-word}@media (max-width: 600px){.report-metrics-grid{grid-template-columns:repeat(3,1fr);gap:8px}.report-metrics-grid .metric-card{padding:10px 8px}.report-metrics-grid .metric-label{font-size:9px}.report-metrics-grid .metric-value{font-size:clamp(10px,3.2vw,18px);letter-spacing:-.5px}}.fintech-dashboard-grid{display:grid;gap:20px}.fintech-summary-card{background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:20px;padding:16px;display:flex;flex-direction:column;justify-content:space-between;height:100%;min-height:105px;box-shadow:0 4px 18px #0000001f;transition:transform var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast);position:relative;overflow:hidden}.fintech-summary-card:hover{background:var(--bg-elevated);transform:translateY(-2px);border-color:#8b5cf640;box-shadow:0 8px 24px #8b5cf614}.fintech-insight-card{background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:20px;padding:20px;box-shadow:0 8px 30px #0000002e;transition:transform var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast);position:relative;overflow:hidden}.fintech-insight-card:hover{background:var(--bg-elevated);border-color:#8b5cf640}.fintech-chart-card{background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:20px;padding:20px;box-shadow:0 4px 18px #0000001f}.fintech-action-card{background:var(--bg-surface);border:1px solid var(--glass-border);border-radius:20px;padding:16px;cursor:pointer;transition:transform var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast);box-shadow:0 4px 18px #0000001f;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px}.fintech-action-card:hover{background:var(--bg-elevated);border-color:#8b5cf64d;transform:translateY(-2px)}.fintech-action-card:active{transform:scale(.97)}.fintech-page-title{font-size:var(--text-page-title);font-weight:700;color:var(--text-primary);line-height:1.2}.fintech-section-title{font-size:var(--text-section-title);font-weight:700;color:var(--text-primary);margin:0}.fintech-card-title{font-size:var(--text-card-title);font-weight:600;color:var(--text-secondary);margin:0}.fintech-body-text{font-size:var(--text-body);font-weight:400;color:var(--text-secondary);line-height:1.5}.fintech-caption-text{font-size:var(--text-caption);font-weight:500;color:var(--text-muted);line-height:1.4}@media (max-width: 1023px){.desktop-only-row{display:none!important}}@media (min-width: 1024px){.mobile-only-section{display:none!important}}.emergency-progress-track{width:100%;height:8px;background:var(--bg-hover);border-radius:4px;overflow:hidden;position:relative}.emergency-progress-bar{height:100%;background:var(--gradient-success);border-radius:4px;transition:width .8s ease}.investment-allocation-track{display:flex;height:12px;width:100%;border-radius:6px;overflow:hidden;background:var(--bg-hover)}.investment-allocation-segment{height:100%;transition:width .8s ease}.investment-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.spent-card-glow{background:var(--bg-surface);border:1px solid rgba(139,92,246,.16)!important;box-shadow:0 4px 24px #8b5cf60a!important}.spent-card-glow:hover{background:var(--bg-elevated);border-color:#8b5cf659!important;box-shadow:0 8px 32px #8b5cf614!important}.remaining-card-glow{background:var(--bg-surface);border:1px solid rgba(16,185,129,.16)!important;box-shadow:0 4px 24px #10b9810a!important}.remaining-card-glow:hover{background:var(--bg-elevated);border-color:#10b98159!important;box-shadow:0 8px 32px #10b98114!important}.today-card-glow{background:var(--bg-surface);border:1px solid rgba(59,130,246,.16)!important;box-shadow:0 4px 24px #3b82f60a!important}.today-card-glow:hover{background:var(--bg-elevated);border-color:#3b82f659!important;box-shadow:0 8px 32px #3b82f614!important}.health-card-glow{background:var(--bg-surface);border:1px solid rgba(139,92,246,.16)!important;box-shadow:0 4px 24px #8b5cf60a!important}.health-card-glow:hover{background:var(--bg-elevated);border-color:#8b5cf659!important;box-shadow:0 8px 32px #8b5cf614!important}@keyframes fadeInSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-slide-up{animation:fadeInSlideUp .6s cubic-bezier(.16,1,.3,1) forwards}@keyframes fadeInScaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in-scale-up{animation:fadeInScaleUp .5s cubic-bezier(.16,1,.3,1) forwards}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-down{animation:slideDown .3s ease-out forwards}
