:root{--bg-primary: #0a0a0f;--bg-secondary: #111118;--bg-card: #16161f;--bg-card-hover: #1c1c28;--bg-elevated: #1e1e2a;--border: #2a2a3a;--border-hover: #3a3a4f;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-indigo: #6366f1;--accent-indigo-dim: rgba(99, 102, 241, .15);--accent-cyan: #06b6d4;--accent-cyan-dim: rgba(6, 182, 212, .15);--accent-emerald: #10b981;--accent-emerald-dim: rgba(16, 185, 129, .15);--accent-amber: #f59e0b;--accent-amber-dim: rgba(245, 158, 11, .15);--accent-rose: #f43f5e;--accent-rose-dim: rgba(244, 63, 94, .15);--accent-violet: #8b5cf6;--accent-violet-dim: rgba(139, 92, 246, .15);--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow: 0 4px 20px rgba(0,0,0,.3);--transition: .15s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased}.app-layout{display:flex;min-height:100vh}.sidebar{width:240px;min-width:240px;background:var(--bg-secondary);border-right:1px solid var(--border);padding:20px 0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-header{padding:0 20px 20px;border-bottom:1px solid var(--border);margin-bottom:8px}.sidebar-header h1{font-size:18px;font-weight:700;background:linear-gradient(135deg,var(--accent-indigo),var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.3px}.sidebar-header .subtitle{font-size:11px;color:var(--text-muted);margin-top:2px}.nav-section{padding:8px 12px}.nav-section-label{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted);padding:8px 8px 4px;font-weight:600}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius);cursor:pointer;font-size:13px;color:var(--text-secondary);transition:all var(--transition);-webkit-user-select:none;user-select:none}.nav-item:hover{background:var(--bg-card);color:var(--text-primary)}.nav-item.active{background:var(--accent-indigo-dim);color:var(--accent-indigo);font-weight:600}.nav-item .icon{font-size:16px;width:20px;text-align:center}.sidebar-footer{margin-top:auto;padding:12px 20px;border-top:1px solid var(--border)}.data-source-badge{font-size:10px;color:var(--text-muted);display:flex;align-items:center;gap:6px}.data-source-badge .dot{width:6px;height:6px;border-radius:50%;background:var(--accent-emerald);display:inline-block}.main-content{flex:1;padding:24px 32px;max-width:1400px;overflow-x:hidden}.page-header{margin-bottom:24px}.page-header h2{font-size:24px;font-weight:700;letter-spacing:-.5px}.page-header .description{font-size:13px;color:var(--text-secondary);margin-top:4px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:border-color var(--transition)}.card:hover{border-color:var(--border-hover)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.card-title{font-size:14px;font-weight:600;color:var(--text-primary)}.card-subtitle{font-size:11px;color:var(--text-muted)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:24px}.kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;display:flex;flex-direction:column;gap:4px}.kpi-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;font-weight:600}.kpi-value{font-size:28px;font-weight:700;letter-spacing:-1px;line-height:1.1}.kpi-value.indigo{color:var(--accent-indigo)}.kpi-value.cyan{color:var(--accent-cyan)}.kpi-value.emerald{color:var(--accent-emerald)}.kpi-value.amber{color:var(--accent-amber)}.kpi-value.rose{color:var(--accent-rose)}.kpi-value.violet{color:var(--accent-violet)}.kpi-detail{font-size:11px;color:var(--text-secondary)}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.charts-grid.three-col{grid-template-columns:repeat(3,1fr)}.charts-grid .full-width{grid-column:1 / -1}.insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:24px}.insight-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;display:flex;gap:12px;align-items:flex-start}.insight-icon{font-size:24px;line-height:1;flex-shrink:0}.insight-content h4{font-size:13px;font-weight:600;margin-bottom:4px}.insight-content p{font-size:12px;color:var(--text-secondary);line-height:1.5}.insight-card.positive{border-left:3px solid var(--accent-emerald)}.insight-card.warning{border-left:3px solid var(--accent-amber)}.insight-card.info{border-left:3px solid var(--accent-indigo)}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;padding:10px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th:hover{color:var(--text-secondary)}.data-table td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text-secondary);vertical-align:top}.data-table tr:hover td{background:var(--bg-card-hover);color:var(--text-primary)}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.3px}.tag.indigo{background:var(--accent-indigo-dim);color:var(--accent-indigo)}.tag.cyan{background:var(--accent-cyan-dim);color:var(--accent-cyan)}.tag.emerald{background:var(--accent-emerald-dim);color:var(--accent-emerald)}.tag.amber{background:var(--accent-amber-dim);color:var(--accent-amber)}.tag.rose{background:var(--accent-rose-dim);color:var(--accent-rose)}.tag.violet{background:var(--accent-violet-dim);color:var(--accent-violet)}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;align-items:center}.filter-chip{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:12px;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);-webkit-user-select:none;user-select:none}.filter-chip:hover{border-color:var(--accent-indigo);color:var(--text-primary)}.filter-chip.active{background:var(--accent-indigo-dim);border-color:var(--accent-indigo);color:var(--accent-indigo)}.search-input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;color:var(--text-primary);font-size:13px;outline:none;transition:border-color var(--transition);width:240px}.search-input:focus{border-color:var(--accent-indigo)}.search-input::placeholder{color:var(--text-muted)}.progress-bar{height:8px;background:var(--bg-primary);border-radius:4px;overflow:hidden;display:flex}.progress-segment{height:100%;transition:width .3s ease}.heatmap-grid{display:grid;grid-template-columns:50px repeat(24,1fr);gap:2px;font-size:10px}.heatmap-label{display:flex;align-items:center;color:var(--text-muted);font-weight:500}.heatmap-cell{aspect-ratio:1;border-radius:3px;transition:all var(--transition);cursor:pointer;position:relative}.heatmap-cell:hover{transform:scale(1.3);z-index:1}.entry-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:8px;cursor:pointer;transition:all var(--transition)}.entry-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.entry-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.entry-id{font-size:12px;font-weight:700;color:var(--accent-indigo);font-family:JetBrains Mono,SF Mono,monospace}.entry-title{font-size:14px;font-weight:600;flex:1}.entry-meta{display:flex;gap:12px;font-size:11px;color:var(--text-muted);flex-wrap:wrap}.entry-summary{font-size:12px;color:var(--text-secondary);margin-top:8px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tooltip{position:absolute;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;font-size:12px;color:var(--text-primary);box-shadow:var(--shadow);z-index:100;pointer-events:none;white-space:nowrap}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.datasource-panel{margin-top:24px}.file-drop{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:40px;text-align:center;cursor:pointer;transition:all var(--transition)}.file-drop:hover,.file-drop.drag-over{border-color:var(--accent-indigo);background:var(--accent-indigo-dim)}.file-drop p{color:var(--text-secondary);font-size:14px}.file-drop .hint{font-size:12px;color:var(--text-muted);margin-top:8px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);transition:all var(--transition)}.btn:hover{border-color:var(--accent-indigo);background:var(--accent-indigo-dim)}.btn.primary{background:var(--accent-indigo);border-color:var(--accent-indigo);color:#fff}.btn.primary:hover{background:#5558e6}.pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;font-size:13px;color:var(--text-secondary)}.pagination button{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);padding:6px 12px;border-radius:var(--radius);cursor:pointer;font-size:12px}.pagination button:hover:not(:disabled){border-color:var(--accent-indigo);color:var(--text-primary)}.pagination button:disabled{opacity:.3;cursor:not-allowed}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent-indigo);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1200px){.charts-grid,.charts-grid.three-col{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media(max-width:768px){.sidebar{display:none}.main-content{padding:16px}}select{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;color:var(--text-primary);font-size:12px;outline:none;cursor:pointer}select:focus{border-color:var(--accent-indigo)}
