*{box-sizing:border-box}:root{--bg: #0a0a0a;--bg-gradient-start: #18181b;--bg-gradient-mid: #27272a;--bg-gradient-end: #09090b;--surface: rgba(39, 39, 42, .6);--surface-elevated: rgba(63, 63, 70, .6);--surface-card: rgba(39, 39, 42, .7);--border: rgba(113, 113, 122, .3);--border-strong: rgba(161, 161, 170, .4);--text: #fafafa;--text-secondary: #a1a1aa;--muted: #71717a;--muted-dim: #52525b;--accent: #e4e4e7;--accent-dim: #d4d4d8;--accent-soft: rgba(228, 228, 231, .15);--highlight: #fafafa;--success: #22c55e;--success-soft: rgba(34, 197, 94, .2);--destructive: #ef4444;--destructive-soft: rgba(239, 68, 68, .15);--radius: 10px;--radius-lg: 12px;--radius-xl: 16px;--shadow-card: 0 4px 24px rgba(0, 0, 0, .4);--hover-bg: rgba(63, 63, 70, .5);--active-bg: rgba(244, 244, 245, .95);--active-text: #18181b}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:linear-gradient(135deg,var(--bg-gradient-start) 0%,var(--bg-gradient-mid) 50%,var(--bg-gradient-end) 100%);background-attachment:fixed;color:var(--text);min-height:100vh;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer;transition:filter .15s ease,opacity .15s ease,background .15s ease}button:not(:disabled):hover{filter:brightness(1.1)}input,select{font:inherit}.nav-tab{transition:background .15s ease,color .15s ease,filter .15s ease}.nav-tab:hover{background:var(--hover-bg)!important;filter:brightness(1.08)}button.nav-tab:disabled:hover{filter:none}select{transition:filter .15s ease;cursor:pointer}select:hover{filter:brightness(1.08)}.card-style{background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.btn-primary{background:linear-gradient(to right,#e4e4e7,#d4d4d8);color:#18181b;border:none;font-weight:600}.btn-primary:hover{background:linear-gradient(to right,#f4f4f5,#e4e4e7)}.btn-accent{background:linear-gradient(to right,#16a34a,#10b981);color:#fff;border:none;font-weight:600}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes liveDotBlink{0%,to{opacity:1}50%{opacity:.4}}.live-indicator{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--destructive);margin-left:8px}.live-indicator:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--destructive);animation:liveDotBlink 1.2s ease-in-out infinite}
