:root{--bg: #18181b;--panel: #1f1f23;--raised: #2a2a30;--border: #2e2e34;--text: #e4e4e7;--muted: #8b8b93;--accent: #fbbf24;--error: #f87171;color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.stage{position:relative;min-height:0;overflow:hidden}.surface{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.table{position:fixed;inset:0;overflow:hidden}.table .surface{cursor:grab}.conn{position:absolute;top:calc(.5rem + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.55rem;max-width:calc(100% - 1rem);padding:.3rem .4rem .3rem .65rem;background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:999px;font-size:.8rem;white-space:nowrap}.conn-dot{width:.5rem;height:.5rem;border-radius:50%;flex:none;background:var(--muted)}.conn-live .conn-dot{background:#4ade80}.conn-waiting .conn-dot{background:var(--accent);animation:conn-pulse 1.6s ease-in-out infinite}.conn-lost .conn-dot{background:var(--error)}@keyframes conn-pulse{50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.conn-waiting .conn-dot{animation:none}}.conn-text{overflow:hidden;text-overflow:ellipsis}.conn-lost .conn-text{color:var(--error)}.conn-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:var(--muted)}.conn-action{flex:none;background:var(--raised);border:1px solid var(--border);border-radius:999px;color:var(--text);font:inherit;font-size:.75rem;padding:.25rem .7rem}.conn-action:hover{border-color:var(--accent)}.table-tools{position:absolute;right:calc(.6rem + env(safe-area-inset-right,0px));bottom:calc(.6rem + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.table-tools button{background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:6px;color:var(--text);font:inherit;padding:.4rem .8rem}.table-tools button:hover{border-color:var(--accent)}.table-error{position:absolute;left:50%;bottom:calc(.8rem + env(safe-area-inset-bottom,0px));transform:translate(-50%);margin:0;padding:.35rem .7rem;background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--error);border-radius:6px;color:var(--error);font-size:.75rem}.join{position:fixed;inset:0;display:grid;place-items:center;padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top,0px));padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}.join-card{display:flex;flex-direction:column;width:min(22rem,100%);background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1.25rem}.join-title{margin:0 0 1rem;font-size:1.1rem;font-weight:600}.join-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.3rem}.join-optional{text-transform:none;letter-spacing:0;opacity:.7}.join-code,.join-name{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font:inherit;font-size:1rem;padding:.55rem .6rem;margin-bottom:1rem;-webkit-user-select:text;user-select:text}.join-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.35rem;letter-spacing:.14em;text-align:center}.join-code:focus,.join-name:focus{outline:none;border-color:var(--accent)}.join-go{background:var(--accent);border:1px solid var(--accent);border-radius:6px;color:#18181b;font:inherit;font-weight:600;font-size:1rem;padding:.6rem}.join-go:disabled{background:transparent;border-color:var(--border);color:var(--muted)}.join-notice{margin:.9rem 0 0;color:var(--error);font-size:.8rem;line-height:1.4}.join-relay{margin:.9rem 0 0;color:var(--muted);font-size:.75rem;overflow-wrap:anywhere}.join-relay strong{color:var(--text);font-weight:500}.join-gm{margin:.9rem 0 0;font-size:.8rem;color:var(--muted);text-align:center}.join-gm a{color:var(--accent)}
