.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md,10px);padding:var(--space-md,16px) var(--space-lg,24px);border-top:3px solid var(--stat-color,var(--teal));transition:transform var(--transition-fast,.15s ease), box-shadow var(--transition-fast,.15s ease);flex-direction:column;gap:4px;display:flex}.stat-card:hover{box-shadow:var(--shadow-md,0 4px 12px #0000001f);transform:translateY(-1px)}.stat-card-header{justify-content:space-between;align-items:center;display:flex}.stat-card-label{font-size:var(--font-xs,11px);font-weight:var(--weight-semibold,600);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.stat-card-icon{color:var(--stat-color,var(--accent));opacity:.5}.stat-card-value{font-size:22px;font-weight:var(--weight-bold,700);color:var(--text-primary)}.stat-card-subtitle{font-size:var(--font-xs,11px);color:var(--text-muted);margin-top:2px}.stat-card-trend{font-size:var(--font-xs,11px);font-weight:var(--weight-semibold,600);border-radius:var(--radius-full,9999px);align-items:center;gap:4px;width:fit-content;margin-top:6px;padding:3px 10px;display:flex}.stat-card-trend.up{color:#10b981;background:#10b9811a}.stat-card-trend.down{color:#ef4444;background:#ef44441a}.stat-card-trend-arrow{font-size:13px;font-weight:var(--weight-bold,700)}.stat-card-trend.up .stat-card-trend-arrow{animation:2s ease-in-out infinite trend-bounce-up}.stat-card-trend.down .stat-card-trend-arrow{animation:2s ease-in-out infinite trend-bounce-down}@keyframes trend-bounce-up{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes trend-bounce-down{0%,to{transform:translateY(0)}50%{transform:translateY(2px)}}.chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md,10px);padding:var(--space-lg,24px)}.chart-card h3{font-size:var(--font-sm,12px);font-weight:var(--weight-bold,700);color:var(--text-muted);margin-bottom:var(--space-md,16px);text-transform:uppercase;letter-spacing:.4px}.chart-card-hdr{justify-content:space-between;align-items:center;margin-bottom:0;display:flex}.chart-card-hdr h3{margin-bottom:12px}.chart-expand-btn{border-radius:var(--radius-sm,6px);border:1px solid var(--border);background:var(--bg-hover);width:28px;height:28px;color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity var(--transition-fast,.15s ease), background var(--transition-fast,.15s ease);flex-shrink:0;justify-content:center;align-items:center;display:flex}.chart-card:hover .chart-expand-btn{opacity:.6}.chart-expand-btn:hover{background:var(--bg-card);color:var(--text-primary);opacity:1!important}.chart-fullscreen-backdrop{z-index:999;background:#000000b3;animation:.2s chartFadeIn;position:fixed;inset:0}.chart-fullscreen{inset:var(--space-lg,24px);z-index:1000;background:var(--bg-card);border-radius:var(--radius-lg,16px);border:1px solid var(--border);flex-direction:column;animation:.25s cubic-bezier(.32,.72,0,1) chartScaleIn;display:flex;position:fixed;overflow:hidden;box-shadow:0 24px 80px #0006}.chart-fullscreen-header{padding:var(--space-md,16px) var(--space-lg,24px);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.chart-fullscreen-header h3{font-size:var(--font-lg,16px);font-weight:var(--weight-bold,700);color:var(--text-primary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:0}.chart-fullscreen-body{padding:var(--space-lg,24px);flex:1;min-height:0;overflow:auto}.chart-fullscreen-body .recharts-responsive-container{min-height:500px;height:100%!important}.chart-fullscreen-body table{width:100%}.chart-fullscreen-body>div{height:100%}@keyframes chartFadeIn{0%{opacity:0}to{opacity:1}}@keyframes chartScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.data-table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md,10px);overflow:hidden}.data-table-toolbar{padding:12px var(--space-md,16px);border-bottom:1px solid var(--border)}.data-table-search{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm,6px);width:100%;max-width:300px;color:var(--text-primary);font-size:var(--font-base,13px);transition:border-color var(--transition-fast,.15s ease), box-shadow var(--transition-fast,.15s ease);outline:none;padding:8px 12px}.data-table-search:focus{border-color:var(--teal);box-shadow:0 0 0 3px #4f6bdb1f}.data-table-search::placeholder{color:var(--text-muted)}.data-table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;padding:12px var(--space-md,16px);font-size:var(--font-sm,12px);font-weight:var(--weight-semibold,600);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);background:var(--bg-primary);white-space:nowrap;-webkit-user-select:none;user-select:none}.data-table th.sortable{cursor:pointer;transition:color var(--transition-fast,.15s ease)}.data-table th.sortable:hover{color:var(--text-primary)}.sort-indicator{opacity:.6;margin-left:2px;font-size:11px}.data-table td{padding:12px var(--space-md,16px);font-size:var(--font-base,13px);color:var(--text-secondary);border-bottom:1px solid var(--border)}.data-table tr:last-child td{border-bottom:none}.data-table tr{transition:background var(--transition-fast,.15s ease)}.data-table tr:hover td{background:var(--bg-hover)}.data-table-empty{text-align:center;color:var(--text-muted);padding:40px var(--space-md,16px)!important}.data-table-pagination{padding:10px var(--space-md,16px);border-top:1px solid var(--border);font-size:var(--font-base,13px);color:var(--text-secondary);justify-content:space-between;align-items:center;display:flex}.data-table-page-size{align-items:center;gap:var(--space-sm,8px);display:flex}.data-table-page-size select{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm,6px);color:var(--text-primary);font-size:var(--font-sm,12px);padding:4px 8px}.data-table-page-nav{align-items:center;gap:10px;display:flex}.data-table-page-nav button{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-full,9999px);color:var(--text-secondary);font-size:var(--font-sm,12px);cursor:pointer;transition:all var(--transition-fast,.15s ease);padding:5px 12px}.data-table-page-nav button:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.data-table-page-nav button:disabled{opacity:.4;cursor:not-allowed}.filter-bar{align-items:center;gap:var(--space-md,16px);padding:10px var(--space-md,16px);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md,10px);flex-wrap:wrap;display:flex}.filter-bar-group{align-items:center;gap:var(--space-sm,8px);display:flex}.filter-bar-label{font-size:var(--font-xs,11px);color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.filter-bar-buttons{background:var(--bg-primary);border-radius:var(--radius-sm,6px);gap:2px;padding:2px;display:flex}.filter-bar-btn{color:var(--text-secondary);font-size:var(--font-sm,12px);cursor:pointer;transition:all var(--transition-fast,.15s ease);background:0 0;border:none;border-radius:4px;padding:5px 12px}.filter-bar-btn:hover{color:var(--text-primary)}.filter-bar-btn.active{background:var(--teal);color:#fff}.filter-bar-select{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm,6px);color:var(--text-primary);font-size:var(--font-sm,12px);min-width:120px;transition:border-color var(--transition-fast,.15s ease);outline:none;padding:5px 10px}.filter-bar-select:focus{border-color:var(--teal)}.placeholder-view{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md,10px);min-height:400px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.placeholder-view h2{font-size:var(--font-xl,20px);font-weight:var(--weight-semibold,600);color:var(--text-primary);margin-bottom:var(--space-sm,8px)}.placeholder-view p{font-size:var(--font-md,14px);color:var(--text-muted)}.error-banner{align-items:center;gap:var(--space-md,16px);padding:var(--space-md,16px) 20px;border-radius:var(--radius-md,10px);background:#ef44440d;border:1px solid #ef444426;border-left:4px solid #ef4444;display:flex}.error-banner-icon{color:#ef4444;opacity:.8;flex-shrink:0}.error-banner-content{flex:1}.error-banner-title{font-size:var(--font-md,14px);font-weight:var(--weight-semibold,600);color:#ef4444;margin-bottom:4px}.error-banner-message{font-size:var(--font-sm,12px);color:var(--text-secondary);line-height:1.4}.error-banner-retry{padding:8px var(--space-md,16px);border-radius:var(--radius-sm,6px);color:#ef4444;font-size:var(--font-sm,12px);font-weight:var(--weight-semibold,600);cursor:pointer;transition:all var(--transition-fast,.15s ease);background:#ef44441a;border:1px solid #ef444440;flex-shrink:0;align-items:center;gap:6px;display:flex}.error-banner-retry:hover{background:#ef44442e}[data-theme=light] .stat-card,[data-theme=light] .chart-card,[data-theme=light] .data-table-wrap,[data-theme=light] .filter-bar,[data-theme=light] .funnel-container,[data-theme=light] .realtime-counter,[data-theme=light] .health-service-card,[data-theme=light] .placeholder-view{box-shadow:var(--shadow-sm,0 1px 2px #0000000f)}.chart-card{transition:border-color .15s,box-shadow .15s}.chart-card:hover{border-color:var(--text-muted);box-shadow:0 4px 18px #00000014}.stat-card{transition:border-color .15s,box-shadow .15s,transform .15s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000001a}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent,#36a2eb);outline-offset:1px}.content-area{scroll-behavior:smooth}.content-area::-webkit-scrollbar{width:8px}.cmdk-results::-webkit-scrollbar{width:8px}.sidebar-nav::-webkit-scrollbar{width:8px}.content-area::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.cmdk-results::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.content-area::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
