:root{--brand-primary: #0F172A;--brand-secondary: #3B82F6;--brand-accent: #10B981;--bg-primary: #F8FAFC;--bg-secondary: #FFFFFF;--bg-tertiary: #F1F5F9;--bg-dark: #0F172A;--text-primary: #0F172A;--text-secondary: #475569;--text-muted: #94A3B8;--text-inverse: #FFFFFF;--success: #10B981;--success-light: #D1FAE5;--warning: #F59E0B;--warning-light: #FEF3C7;--danger: #EF4444;--danger-light: #FEE2E2;--info: #3B82F6;--info-light: #DBEAFE;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--sidebar-width: 280px;--sidebar-collapsed-width: 80px;--header-height: 72px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--text-primary)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}.mono{font-family:Space Mono,monospace}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary);gap:var(--spacing-md)}.loading-spinner{width:48px;height:48px;border:3px solid var(--bg-tertiary);border-top-color:var(--brand-secondary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.layout{display:flex;min-height:100vh}.sidebar{position:fixed;left:0;top:0;width:var(--sidebar-width);height:100vh;background:linear-gradient(180deg,#1e3a5f,#0f172a);color:var(--text-inverse);display:flex;flex-direction:column;z-index:100;transition:transform var(--transition-normal),width var(--transition-normal)}.sidebar-header{padding:var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:var(--spacing-md);min-height:var(--header-height)}.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:var(--radius-sm);background:var(--bg-secondary);padding:4px}.brand-name{font-size:1.125rem;font-weight:700;letter-spacing:-.02em}.sidebar-nav{flex:1;padding:var(--spacing-md);overflow-y:auto}.nav-section{margin-bottom:var(--spacing-lg)}.nav-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-xs)}.nav-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);color:#ffffffb3;text-decoration:none;font-weight:500;transition:all var(--transition-fast);margin-bottom:var(--spacing-xs)}.nav-item:hover{background:#ffffff1a;color:var(--text-inverse)}.nav-item.active{background:var(--brand-secondary);color:var(--text-inverse)}.nav-item svg{width:20px;height:20px;flex-shrink:0}.sidebar-footer{padding:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}.user-info{display:flex;align-items:center;gap:var(--spacing-md)}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--brand-secondary);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem}.user-details{flex:1;min-width:0}.user-name{font-weight:600;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;color:var(--text-muted);text-transform:capitalize}.logout-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.logout-btn:hover{background:#ffffff1a;color:var(--text-inverse)}.main-content{flex:1;margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;height:var(--header-height);background:var(--bg-secondary);border-bottom:1px solid var(--bg-tertiary);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-xl);z-index:50}.header-left{display:flex;align-items:center;gap:var(--spacing-lg)}.mobile-menu-btn{display:none;background:transparent;border:none;padding:var(--spacing-sm);cursor:pointer;color:var(--text-primary)}.page-title{font-size:1.25rem;font-weight:600}.header-right{display:flex;align-items:center;gap:var(--spacing-md)}.date-picker{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--bg-tertiary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.date-picker:hover{background:var(--bg-primary)}.date-picker select{background:transparent;border:none;color:var(--text-primary);font-family:inherit;font-size:inherit;cursor:pointer;outline:none}.page-content{flex:1;padding:var(--spacing-xl)}.card{background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--bg-tertiary);overflow:hidden}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--bg-tertiary);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:1rem;font-weight:600}.card-body{padding:var(--spacing-lg)}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.kpi-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid var(--bg-tertiary);transition:all var(--transition-fast)}.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-md)}.kpi-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.kpi-icon.blue{background:var(--info-light);color:var(--info)}.kpi-icon.green{background:var(--success-light);color:var(--success)}.kpi-icon.yellow{background:var(--warning-light);color:var(--warning)}.kpi-icon.red{background:var(--danger-light);color:var(--danger)}.kpi-trend{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.75rem;font-weight:600;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.kpi-trend.up{background:var(--success-light);color:var(--success)}.kpi-trend.down{background:var(--danger-light);color:var(--danger)}.kpi-value{font-size:1.75rem;font-weight:700;margin-bottom:var(--spacing-xs);font-family:Space Mono,monospace}.kpi-label{font-size:.875rem;color:var(--text-secondary)}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.chart-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid var(--bg-tertiary)}.chart-card.full-width{grid-column:1 / -1}.chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg)}.chart-title{font-size:1rem;font-weight:600}.chart-legend{display:flex;gap:var(--spacing-md)}.legend-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.75rem;color:var(--text-secondary)}.legend-dot{width:8px;height:8px;border-radius:50%}.chart-container{height:300px;width:100%}.table-container{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--bg-tertiary)}.data-table th{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);background:var(--bg-tertiary)}.data-table td{font-size:.875rem}.data-table tbody tr:hover{background:var(--bg-tertiary)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.badge.success{background:var(--success-light);color:var(--success)}.badge.warning{background:var(--warning-light);color:var(--warning)}.badge.danger{background:var(--danger-light);color:var(--danger)}.badge.info{background:var(--info-light);color:var(--info)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-family:inherit;font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);border:none;outline:none}.btn-primary{background:var(--brand-secondary);color:var(--text-inverse)}.btn-primary:hover{background:#2563eb}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover{background:#e2e8f0}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:var(--spacing-sm);color:var(--text-secondary)}.form-input{width:100%;padding:var(--spacing-md);border:1px solid var(--bg-tertiary);border-radius:var(--radius-md);font-family:inherit;font-size:1rem;background:var(--bg-secondary);color:var(--text-primary);transition:all var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--brand-secondary);box-shadow:0 0 0 3px #3b82f61a}.form-input::placeholder{color:var(--text-muted)}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#faf9f6;padding:var(--spacing-lg);gap:var(--spacing-lg)}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:4px}.login-brand-name{font-size:1.125rem;font-weight:700;color:#0f172a;letter-spacing:-.01em}.login-brand-tag{font-size:.625rem;font-weight:700;color:#94a3b8;letter-spacing:.12em;text-transform:uppercase;margin-left:2px}.login-container{width:100%;max-width:420px}.login-card{background:#fff;border-radius:20px;padding:40px;border:1px solid #E2E8F0;box-shadow:0 4px 24px #0000000a}.login-header{text-align:center;margin-bottom:28px}.login-shield{width:48px;height:48px;margin:0 auto 16px;background:#eff6ff;border-radius:14px;display:flex;align-items:center;justify-content:center}.login-title{font-size:1.375rem;font-weight:700;margin-bottom:6px;color:#0f172a}.login-subtitle{color:#64748b;font-size:.875rem}.login-form{margin-bottom:20px}.login-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.login-field-label{font-size:.625rem;font-weight:700;color:#64748b;letter-spacing:.08em;text-transform:uppercase}.login-forgot{font-size:.625rem;font-weight:700;color:#94a3b8;letter-spacing:.06em;background:none;border:none;cursor:pointer;padding:0}.login-forgot:hover{color:#1e40af}.login-input{width:100%;padding:12px 16px;border:1px solid #E2E8F0;border-radius:12px;font-family:inherit;font-size:.9375rem;background:#f8fafc;color:#0f172a;transition:all .15s ease}.login-input:focus{outline:none;border-color:#1e40af;background:#fff;box-shadow:0 0 0 3px #1e40af14}.login-input::placeholder{color:#94a3b8}.login-submit-btn{width:100%;padding:14px;font-size:.9375rem;font-weight:600;font-family:inherit;background:#1e40af;color:#fff;border:none;border-radius:12px;cursor:pointer;transition:background .15s ease}.login-submit-btn:hover{background:#1e3a8a}.login-submit-btn:disabled{opacity:.6;cursor:not-allowed}.login-divider{display:flex;align-items:center;gap:12px;margin:20px 0}.login-divider span{font-size:.6875rem;font-weight:600;color:#94a3b8;letter-spacing:.06em;white-space:nowrap}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#e2e8f0}.login-social-buttons{display:flex;flex-direction:column;gap:10px}.login-social-btn{width:100%;padding:12px;font-size:.875rem;font-weight:600;font-family:inherit;background:#fff;color:#0f172a;border:1px solid #E2E8F0;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .15s ease}.login-social-btn:hover{background:#f8fafc;border-color:#cbd5e1}.login-social-btn:disabled{opacity:.6;cursor:not-allowed}.login-footer-text{text-align:center;margin-top:20px;font-size:.8125rem;color:#64748b}.login-footer-text a{color:#1e40af;text-decoration:none;font-weight:600}.login-footer-text a:hover{text-decoration:underline}.login-error{background:var(--danger-light);color:var(--danger);padding:12px;border-radius:12px;margin-bottom:20px;font-size:.875rem;text-align:center}.login-page-footer{display:flex;align-items:center;gap:12px;font-size:.75rem;color:#94a3b8}.login-page-footer a{color:#94a3b8;text-decoration:none}.login-page-footer a:hover{color:#64748b}.login-footer-dot{width:3px;height:3px;border-radius:50%;background:#cbd5e1}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:90}@media (max-width: 1200px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1024px){.charts-grid{grid-template-columns:1fr}}@media (max-width: 768px){:root{--sidebar-width: 280px}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay.open{display:block}.main-content{margin-left:0}.mobile-menu-btn{display:block}.header{padding:0 var(--spacing-md)}.page-content{padding:var(--spacing-md)}.kpi-grid{grid-template-columns:1fr}.kpi-value{font-size:1.5rem}.chart-container{height:250px}.date-picker{display:none}}@media (max-width: 480px){.login-card{padding:28px 20px}.login-brand-tag,.user-details{display:none}.header-right{gap:var(--spacing-sm)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease-out}.animate-slide-up{animation:slideUp var(--transition-normal) ease-out}.kpi-card:nth-child(1){animation-delay:0ms}.kpi-card:nth-child(2){animation-delay:50ms}.kpi-card:nth-child(3){animation-delay:.1s}.kpi-card:nth-child(4){animation-delay:.15s}.chart-skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-primary) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ai-insight-icon{transition:transform var(--transition-fast)}.ai-insight-card:hover .ai-insight-icon{transform:scale(1.1)}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--bg-tertiary);padding:var(--spacing-sm) 0;z-index:100}@media (max-width: 768px){.mobile-bottom-nav{display:flex;justify-content:space-around;align-items:center}.page-content{padding-bottom:80px}.ai-sidebar{display:none!important}.ask-ai-bar{position:fixed;bottom:60px;left:16px;right:16px;border-radius:12px}}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 16px;color:var(--text-muted);font-size:10px;font-weight:500;text-decoration:none;transition:color var(--transition-fast)}.mobile-nav-item.active{color:var(--brand-secondary)}.mobile-nav-item svg{width:20px;height:20px}.ai-summary-banner{animation:slideUp .4s ease-out}.metric-card-hover{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.metric-card-hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.chart-insight{position:relative;overflow:hidden}.chart-insight:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,#8b5cf6,#a78bfa);border-radius:0 3px 3px 0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:3px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@keyframes pulse{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 0 0 currentColor}50%{opacity:.6;transform:scale(1.2);box-shadow:0 0 12px 2px currentColor}}@keyframes fabPulse{0%,to{transform:scale(1);box-shadow:0 4px 20px #8b5cf666}50%{transform:scale(1.05);box-shadow:0 6px 30px #8b5cf699}}.pulse-dot{animation:pulse 2s ease-in-out infinite}@media (max-width: 480px){.charts-grid{grid-template-columns:1fr}.chart-container{height:180px}}
