:root{--bg:#0b0c10;--surface:#15171c;--surface-2:#1d2027;--border:#2a2e37;--text:#e8eaf0;--muted:#8b90a0;--accent:#3ddc84;--accent-ink:#062b17;--danger:#ff5d5d;--warn:#ffb347;--radius:10px;--font:"Inter", system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--gutter:16px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);font-size:14px}button,input,select{font:inherit;color:inherit}a{color:var(--accent)}.mono{font-family:var(--mono)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{grid-template-rows:auto 1fr;height:100vh;display:grid}.topbar{padding:10px var(--gutter);border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;align-items:center;gap:12px;display:flex}.brand{color:inherit;align-items:center;gap:8px;margin-right:auto;text-decoration:none;display:flex}.brand-dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 12px var(--accent);border-radius:50%}.brand-name{font-weight:600}.brand-sub{color:var(--muted);font-size:12px}.topbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.kbd{font-family:var(--mono);color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:0 5px;font-size:11px}.workspace{grid-template-columns:minmax(0,1fr) 340px;min-height:0;display:grid}.editor-pane{border-right:1px solid var(--border);flex-direction:column;min-width:0;min-height:0;display:flex}#editor{flex:1;min-height:0;overflow:auto}#editor .cm-editor{height:100%;font-size:13px}#editor .cm-scroller{font-family:var(--mono)}.statusbar{padding:6px var(--gutter);border-top:1px solid var(--border);background:var(--surface);color:var(--muted);align-items:center;gap:14px;font-size:12px;display:flex}.sidebar{padding:var(--gutter);gap:var(--gutter);background:var(--bg);align-content:start;display:grid;overflow-y:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:10px;padding:14px;display:grid}.card h2{letter-spacing:.02em;color:var(--muted);text-transform:uppercase;font-size:13px;font-weight:600}.field{color:var(--muted);gap:4px;font-size:12px;display:grid}.field input,.field select,select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:6px;width:100%;padding:7px 9px}.field input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}.row{align-items:end;gap:8px;display:flex}.row>.field{flex:1}.check{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.check input{width:auto}.note{color:var(--muted);font-size:12px;line-height:1.5}.connection:not([hidden]){gap:10px;display:grid}details#manual summary{cursor:pointer}.manual-fields{gap:10px;margin-top:10px;display:grid}.note code{font-family:var(--mono);background:var(--surface-2);border-radius:4px;padding:1px 4px;font-size:11px}.btn{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:8px;padding:8px 14px}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:0 0}.btn:disabled{opacity:.45;cursor:not-allowed}.segmented{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;display:inline-flex;overflow:hidden}.segmented label{cursor:pointer}.segmented input{opacity:0;pointer-events:none;position:absolute}.segmented span{color:var(--muted);white-space:nowrap;padding:8px 12px;display:block}.segmented label+label span{border-left:1px solid var(--border)}.segmented input:checked+span{background:var(--surface);color:var(--accent);font-weight:600}.segmented input:focus-visible+span{outline:2px solid var(--accent);outline-offset:-2px}.status-dot{background:var(--muted);border-radius:50%;width:9px;height:9px;display:inline-block}.status-dot--on{background:var(--accent);box-shadow:0 0 8px var(--accent)}.status-dot--wait{background:var(--warn)}.status-dot--off{background:var(--danger)}.kv{grid-template-columns:auto 1fr;gap:4px 12px;font-size:12px;display:grid}.kv dt{color:var(--muted)}.value{font-family:var(--mono);overflow-wrap:anywhere;font-size:12px}.value--good{color:var(--accent)}.value--bad{color:var(--danger)}.log{gap:4px;max-height:220px;font-size:12px;list-style:none;display:grid;overflow-y:auto}.log-item{background:var(--surface-2);border-radius:6px;grid-template-columns:auto 1fr;gap:8px;padding:4px 6px;display:grid}.log-item time{color:var(--muted);font-family:var(--mono);font-size:11px}.log-item span{overflow-wrap:anywhere}.log-item--ok span{color:var(--accent)}.log-item--bad span{color:var(--danger)}.preview-canvas{aspect-ratio:1;background:#050506;border-radius:6px;width:100%;display:block}.console{font-family:var(--mono);color:var(--muted);background:var(--surface-2);white-space:pre-wrap;overflow-wrap:anywhere;scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:6px;max-height:140px;padding:6px 8px;font-size:11px;line-height:1.5;overflow:auto}.console:empty,.kv:empty,.note:empty,.value:empty{display:none}.ref{color:var(--muted);font-size:12px;line-height:1.6}.ref code{font-family:var(--mono);color:var(--text);font-size:11px}.ref dt{color:var(--text);margin-top:4px;font-weight:500}@media (width<=900px){.app{height:auto;min-height:100vh}.workspace{grid-template-columns:1fr}.editor-pane{border-right:0;border-bottom:1px solid var(--border);height:60vh}}
