:root { --bg: #0f1115; --bg-elev: #161a22; --bg-elev-2: #1d222d; --border: #2a3140; --text: #e6e9ef; --text-dim: #9aa3b2; --accent: #4ea34e; --accent-hover: #5cbf5c; --danger: #d4564f; --warn: #d9a441; --radius: 8px; --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; --mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace; } * { box-sizing: border-box; } html, body, #app { margin: 0; height: 100%; background: var(--bg); color: var(--text); font-family: var(--font); font-size: 14px; line-height: 1.5; } button { font-family: inherit; font-size: 13px; padding: 8px 14px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--bg-elev-2); color: var(--text); cursor: pointer; transition: background 0.12s ease, border-color 0.12s ease; } button:hover:not(:disabled) { background: #262d3c; border-color: #3a4253; } button:disabled { opacity: 0.45; cursor: not-allowed; } button.primary { background: var(--accent); border-color: var(--accent); color: #0f1115; font-weight: 600; } button.primary:hover:not(:disabled) { background: var(--accent-hover); border-color: var(--accent-hover); } button.danger { border-color: var(--danger); color: var(--danger); } input { font-family: inherit; font-size: 13px; padding: 8px 10px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--bg); color: var(--text); width: 100%; } input:focus { outline: none; border-color: var(--accent); } .dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; vertical-align: middle; margin-right: 6px; } .dot.on { background: var(--accent); box-shadow: 0 0 6px var(--accent); } .dot.off { background: var(--text-dim); } .dot.warn { background: var(--warn); }