:root{--surface-1: #ffffff;--surface-2: #f7f8fa;--surface-3: #eef0f4;--border: #e2e5ea;--border-input: #8a93a3;--text: #1a1d23;--text-muted: #5b6472;--accent: #0f766e;--accent-soft: #d9f0ec;--on-accent: #ffffff;--ok: #15803d;--ok-text: #166534;--warn: #d97706;--warn-text: #92400e;--danger: #b91c1c;--radius: 10px;--radius-sm: 8px;--radius-pill: 999px;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-md: .875rem;--fs-lg: 1rem;--fs-xl: 1.25rem;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--surface-1: #16181d;--surface-2: #1c1f26;--surface-3: #262a33;--border: #2d323c;--border-input: #5c6575;--text: #e7e9ee;--text-muted: #9aa2b1;--accent: #25d366;--accent-soft: #17352a;--on-accent: #052e16;--ok: #22c55e;--ok-text: #22c55e;--warn: #f59e0b;--warn-text: #f59e0b;--danger: #f87171;--shadow: 0 1px 2px rgba(0, 0, 0, .3)}}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--surface-2);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:var(--fs-md);line-height:1.5;-webkit-font-smoothing:antialiased}.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.page-title{margin:0 0 4px;font-size:var(--fs-xl);font-weight:700}.page-subtitle{margin:0 0 20px;color:var(--text-muted)}[tabindex="-1"]:focus{outline:none}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.section-title{margin:0 0 8px;font-size:var(--fs-lg);font-weight:700}.section-head .section-title{margin:0}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-weight:600;font-size:var(--fs-sm)}.field__hint{font-size:var(--fs-xs);color:var(--text-muted)}.field__error{margin:0;font-size:var(--fs-xs);font-weight:600;color:var(--danger)}.input,.select,.textarea{width:100%;padding:9px 11px;border:1px solid var(--border-input);border-radius:var(--radius-sm);background:var(--surface-1);color:var(--text);font-size:var(--fs-md);font-family:inherit}.textarea{resize:vertical;min-height:90px}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.input--invalid{border-color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font-size:var(--fs-md);font-weight:600;font-family:inherit;text-decoration:none;cursor:pointer;transition:filter .15s ease}.btn:hover:not(:disabled,[aria-disabled=true]){filter:brightness(1.06)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn[aria-disabled=true],.checkbox[aria-disabled=true]{opacity:.55;cursor:progress}.btn--ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn--danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn--sm{padding:6px 11px;font-size:var(--fs-sm)}.checkbox{width:18px;height:18px;accent-color:var(--accent)}code{font-family:ui-monospace,SF Mono,Cascadia Code,Menlo,Consolas,monospace}.status{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:600;text-transform:capitalize;white-space:nowrap;border:1px solid var(--border)}.status__dot{width:8px;height:8px;border-radius:50%;background:currentColor}.status--connected{color:var(--ok-text);background:color-mix(in srgb,var(--ok) 12%,transparent)}.status--connecting{color:var(--warn-text);background:color-mix(in srgb,var(--warn) 12%,transparent)}.status--disconnected{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}.badge{display:inline-flex;align-items:center;gap:4px;flex:none;padding:1px 8px;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;line-height:1.5;white-space:nowrap}.badge--accent{background:var(--accent-soft);color:var(--accent)}.badge--danger{background:color-mix(in srgb,var(--danger) 12%,var(--surface-1));color:var(--danger)}.msg{margin:0;font-size:var(--fs-sm)}.msg--ok{color:var(--ok)}.msg--error{color:var(--danger)}.msg--muted{color:var(--text-muted)}
