@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Roboto+Mono:wght@400;500;600&display=swap";:root{--color-red:#ef4444;--color-amber:#f59e0b;--color-green:#10b981;--color-blue:#3b82f6;--color-gray:#6b7280;--bg-app:#0f1115;--bg-panel:#181b21;--bg-panel-hover:#1f232b;--border-subtle:#2a2f38;--border-focus:#3b4252;--text-main:#f9fafb;--text-muted:#9ca3af;--text-dim:#4b5563;--font-sans:"Inter", system-ui, sans-serif;--font-mono:"Roboto Mono", monospace;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--transition-fast:.15s ease;--transition-normal:.25s ease}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-app);color:var(--text-main);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5;overflow-x:hidden}.app-container{height:100vh;display:flex;overflow:hidden}.main-content{background-color:var(--bg-app);flex-direction:column;flex:1;display:flex;overflow:hidden}.view-container{padding:var(--space-4);gap:var(--space-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--border-focus)}h1{letter-spacing:-.025em;margin-bottom:var(--space-2);font-size:1.25rem;font-weight:600}h2{letter-spacing:-.025em;font-size:1.1rem;font-weight:600}h3{color:var(--text-muted);font-size:.9rem;font-weight:600}.text-caption{color:var(--text-muted);font-size:.75rem}.text-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.text-red{color:var(--color-red)}.text-amber{color:var(--color-amber)}.text-green{color:var(--color-green)}.text-blue{color:var(--color-blue)}.text-gray{color:var(--color-gray)}.panel{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;display:flex}.data-table-container{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-panel);width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}.data-table th{padding:var(--space-3) var(--space-4);color:var(--text-muted);border-bottom:1px solid var(--border-subtle);text-transform:uppercase;letter-spacing:.05em;z-index:10;background:#0003;font-size:.75rem;font-weight:600;position:sticky;top:0}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background:var(--bg-panel-hover)}.badge{letter-spacing:.025em;border:1px solid var(--border-subtle);background:#ffffff0d;border-radius:12px;align-items:center;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-red{color:var(--color-red);background:#ef44441a;border-color:#ef44444d}.badge-amber{color:var(--color-amber);background:#f59e0b1a;border-color:#f59e0b4d}.badge-green{color:var(--color-green);background:#10b9811a;border-color:#10b9814d}.badge-blue{color:var(--color-blue);background:#3b82f61a;border-color:#3b82f64d}.badge-gray{color:var(--color-gray);background:#6b72801a;border-color:#6b72804d}.status-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dot-red{background:var(--color-red);box-shadow:0 0 8px var(--color-red)}.dot-amber{background:var(--color-amber);box-shadow:0 0 8px var(--color-amber)}.dot-green{background:var(--color-green);box-shadow:0 0 8px var(--color-green)}.dot-blue{background:var(--color-blue);box-shadow:0 0 8px var(--color-blue)}.dot-gray{background:var(--color-gray)}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.split-view{gap:var(--space-4);grid-template-columns:1fr 350px;height:100%;display:grid}.split-view-equal{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade{animation:fadeIn var(--transition-fast) forwards}
