:root{--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-surface: #ffffff;--border-subtle: #e2e8f0;--border-strong: #cbd5e1;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--accent-primary: #0f172a;--accent-brand: #3b82f6;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;background:var(--bg-secondary);color:var(--text-primary);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.bg-dot-pattern{background-image:radial-gradient(#cbd5e1 1px,transparent 1px);background-size:24px 24px}.glass{background:#ffffffe6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle)}.clean-border-b{border-bottom:1px solid var(--border-subtle)}.clean-border-r{border-right:1px solid var(--border-subtle)}.clean-editor{background:#fff;color:#0f172a;caret-color:#3b82f6;font-family:Fira Code,monospace;font-feature-settings:"liga" 1,"calt" 1;line-height:1.6}.clean-editor::placeholder{color:#cbd5e1}.clean-editor:focus{outline:none}.clean-editor::selection{background:#e2e8f0;color:#0f172a}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.connected{background:#10b981;box-shadow:0 0 0 2px #10b98133}.status-dot.disconnected{background:#ef4444}.status-dot.reconnecting{background:#f59e0b;animation:pulse 2s infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-slideUp{animation:slideUp .3s ease-out}.animate-scaleIn{animation:scaleIn .2s ease-out}::selection{background:#cbd5e1;color:#0f172a}
