:root{--bg: #07071a;--surface: #0f0f2a;--surface2: #16163a;--border: #2a2a5a;--accent: #4a9eff;--accent-hover: #70b8ff;--text: #d0d0f0;--text-muted: #7070a0;--success: #3ddc84;--danger: #ff5555;--warning: #ffaa33;--ready-color: #3ddc84;--host-color: #ffaa33}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Courier New,Lucida Console,monospace;min-height:100vh;font-size:14px}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3{font-weight:400;letter-spacing:.05em}button{cursor:pointer;font-family:inherit;font-size:13px;border:1px solid var(--accent);background:transparent;color:var(--accent);padding:8px 20px;letter-spacing:.1em;text-transform:uppercase;transition:background .15s,color .15s}button:hover:not(:disabled){background:var(--accent);color:var(--bg)}button:disabled{opacity:.4;cursor:not-allowed}button.danger{border-color:var(--danger);color:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger);color:var(--bg)}button.success{border-color:var(--success);color:var(--success)}button.success:hover:not(:disabled){background:var(--success);color:var(--bg)}input,select{background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:8px 12px;font-family:inherit;font-size:13px;width:100%;outline:none;transition:border-color .15s}input:focus,select:focus{border-color:var(--accent)}input::placeholder{color:var(--text-muted)}label{display:block;color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}.card{background:var(--surface);border:1px solid var(--border);padding:24px}.error{color:var(--danger);font-size:12px;margin-top:8px}.field{margin-bottom:16px}.tag{display:inline-block;font-size:10px;padding:2px 8px;border:1px solid;text-transform:uppercase;letter-spacing:.1em}.tag.host{border-color:var(--host-color);color:var(--host-color)}.tag.ready{border-color:var(--ready-color);color:var(--ready-color)}.tag.waiting{border-color:var(--text-muted);color:var(--text-muted)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.online{background:var(--success)}.dot.offline{background:var(--text-muted)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes heatBlink{0%,to{opacity:1}50%{opacity:.4}}
