@media (prefers-color-scheme:light){pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}}@media (prefers-color-scheme:dark){pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}}:root{--bg:#e9eef4;--surface:#fff;--sunken:#f3f6f9;--ink:#18202b;--muted:#5a6677;--line:#d4dce5;--accent:#2f4fbf;--accent-ink:#fff;--danger:#b23a2e;--mine:#e3e9fb;--seal-l:42%;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#151a22;--surface:#1c222c;--sunken:#181d26;--ink:#e4e9f0;--muted:#95a1b2;--line:#2c3542;--accent:#8ea6ff;--accent-ink:#10162a;--danger:#f08a7c;--mine:#232c45;--seal-l:62%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}code,pre,.fp{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.9em}.sr-only{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}button,.button{border:1px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;text-decoration:none;display:inline-flex}button:disabled{opacity:.5;cursor:default}.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.danger{color:var(--danger)}button.danger:not(.ghost):not(.small){background:var(--danger);border-color:var(--danger);color:var(--surface)}.ghost{background:0 0;border-color:#0000}.ghost[aria-pressed=true]{background:var(--sunken);border-color:var(--line)}.small{padding:4px 10px;font-size:.875rem}.seal{--c:hsl(var(--hue) 55% var(--seal-l));border:2px dashed var(--c);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;display:inline-grid}.seal.verified{background:var(--c);border-style:solid}.seal.admin{border-radius:6px}.seal svg{fill:none;width:14px;height:14px;stroke:var(--surface);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.join{place-items:center;min-height:100%;padding:24px 16px;display:grid}.join-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;gap:14px;width:min(420px,100%);padding:28px 24px;display:grid}.join-card h1{letter-spacing:-.01em;margin:0;font-size:1.6rem}.lede{color:var(--muted);margin:0 0 6px}.join-card label{gap:4px;font-size:.9rem;font-weight:600;display:grid}.join-card input{border:1px solid var(--line);background:var(--sunken);border-radius:8px;padding:10px 12px;font-size:1rem;font-weight:400}.join-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.join-actions button{justify-content:center;padding:11px}.alert{border:1px solid var(--danger);color:var(--danger);border-radius:8px;margin:0;padding:10px 12px}.status{color:var(--muted);margin:0;font-size:.9rem}.room{grid-template:"bar bar""members chat"minmax(0,1fr)/260px minmax(0,1fr);height:100%;display:grid}.room.show-files{grid-template-columns:260px minmax(0,1fr) 320px;grid-template-areas:"bar bar bar""members chat files"}.bar{padding:8px 16px;padding-top:max(8px, env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--surface);grid-area:bar;align-items:center;gap:12px;display:flex}.bar h1{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.1rem;overflow:hidden}.bar-actions{gap:4px;margin-left:auto;display:flex}.badge.warn{color:var(--danger);font-size:.8rem}.side{background:var(--sunken);padding:16px;overflow-y:auto}.side-members{border-right:1px solid var(--line);grid-area:members}.side-files{border-left:1px solid var(--line);grid-area:files}.side h2{margin:0 0 10px;font-size:1rem}.side h3{color:var(--muted);margin:18px 0 6px;font-size:.9rem}.side ul{margin:0;padding:0;list-style:none}.count{color:var(--muted);font-weight:400}.hint,.empty{color:var(--muted);font-size:.85rem}.narrow-only{display:none}.members li{align-items:center;gap:10px;padding:7px 0;display:flex}.members li.invalid .nick{text-decoration:line-through}.who{flex:1;min-width:0;display:grid}.who .nick{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.tag,.meta{color:var(--muted);font-size:.8rem;font-weight:400}.sheet{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;max-width:min(420px,100vw - 32px);padding:20px 22px}.sheet::backdrop{background:#0a0e1473}.sheet h3{margin:0 0 8px}.big-code{letter-spacing:.08em;text-align:center;margin:14px 0;font:600 2rem/1.2 ui-monospace,SF Mono,Menlo,Consolas,monospace}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.files li{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 10px;padding:8px 0;display:grid}.files .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.files li>:is(button,.button,progress){grid-area:1/2/span 2}.files progress{width:90px}.meta.error{color:var(--danger);grid-column:1/-1}.chat{grid-area:chat;grid-template-rows:minmax(0,1fr) auto auto;min-height:0;display:grid}.messages{padding:16px max(16px,50% - 410px);overflow-y:auto}.empty-chat{color:var(--muted);text-align:center;max-width:46ch;margin:15vh auto}.message{max-width:72ch;margin-top:14px}.message.grouped{margin-top:4px}.message header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.message .seal{width:18px;height:18px}.message .nick{font-weight:600}.message .fp,.message time{color:var(--muted);font-size:.75rem}.message .body{background:var(--surface);border:1px solid var(--line);border-radius:4px var(--radius) var(--radius) var(--radius);overflow-wrap:anywhere;padding:8px 12px}.message.mine .body{background:var(--mine)}.body>:first-child{margin-top:0}.body>:last-child{margin-bottom:0}.body pre{border-radius:6px;margin:8px 0;overflow-x:auto}.body pre code.hljs{padding:10px 12px}.body :not(pre)>code{background:var(--sunken);border-radius:4px;padding:1px 4px}.body blockquote{border-left:3px solid var(--line);color:var(--muted);margin:6px 0;padding-left:10px}.body a{color:var(--accent)}.media{margin:0}.media :is(img,video){border-radius:var(--radius);background:var(--sunken);max-width:min(100%,480px);max-height:60vh;display:block}.media audio{width:min(100%,360px)}.media figcaption{margin-top:2px;font-size:.75rem}.media figcaption a{color:var(--muted)}.receiving,.failed,.unplayable{border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);align-items:center;gap:10px;margin:0;padding:10px 12px;font-size:.9rem;display:flex}.toast{background:var(--ink);color:var(--bg);border-radius:8px;justify-self:center;margin:0 16px 8px;padding:8px 12px}.composer{padding:10px 16px;padding-bottom:max(10px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);align-items:flex-end;gap:8px;display:flex}.composer textarea{resize:none;field-sizing:content;border:1px solid var(--line);background:var(--sunken);border-radius:8px;flex:1;min-height:42px;max-height:40vh;padding:9px 12px}.attach{padding:9px}.attach svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:22px;height:22px}@media (max-width:800px){.room,.room.show-files{grid-template-columns:minmax(0,1fr);grid-template-areas:"bar""chat"}.narrow-only{display:inline-flex}.bar{flex-wrap:wrap;gap:4px 12px}.bar-actions{flex-wrap:wrap;margin-left:-8px}.bar-actions button{padding:6px 8px}.side-members{display:none}.show-members .side-members,.show-files .side-files{z-index:1;border:0;grid-area:chat;display:block}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
