.admin-badge[data-v-3b52c63e]{font-size:11px;color:var(--warn);border:1px solid var(--warn);border-radius:999px;padding:0 8px;vertical-align:2px;margin-left:4px}.mono[data-v-3b52c63e]{font-family:ui-monospace,Consolas,monospace;font-size:13px}.saved-rooms[data-v-3b52c63e]{display:flex;flex-direction:column;gap:8px}.saved-room[data-v-3b52c63e]{display:flex;align-items:center;gap:8px}.saved-join[data-v-3b52c63e]{flex:1;text-align:left}.invite-bar[data-v-98bb1b5f]{padding:8px 12px;background:var(--accent-weak);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.invite-row[data-v-98bb1b5f]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.invite-label[data-v-98bb1b5f]{font-size:13px;flex:none;width:62px}.invite-key[data-v-98bb1b5f]{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:4px 8px}.invite-hint[data-v-98bb1b5f]{margin:0;font-size:12px;color:var(--text-dim)}:root{--bg: #f3f5f7;--bg-card: #ffffff;--bg-input: #f0f2f5;--text: #1a1d21;--text-dim: #6b7280;--accent: #2563eb;--accent-weak: #dbeafe;--bubble-me: #2563eb;--bubble-me-text: #ffffff;--bubble-peer: #ffffff;--border: #e5e7eb;--ok: #16a34a;--warn: #d97706;--err: #dc2626;--shadow: 0 1px 3px rgb(0 0 0 / .08), 0 4px 16px rgb(0 0 0 / .06)}@media(prefers-color-scheme:dark){:root{--bg: #101317;--bg-card: #1a1f26;--bg-input: #232a33;--text: #e6e9ed;--text-dim: #9aa4b0;--accent: #3b82f6;--accent-weak: #1e3a5f;--bubble-me: #2563eb;--bubble-me-text: #ffffff;--bubble-peer: #222932;--border: #2a323d;--shadow: 0 1px 3px rgb(0 0 0 / .4)}}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}button{font:inherit;cursor:pointer}input,textarea{font:inherit;color:inherit}.btn{border:1px solid var(--border);background:var(--bg-card);color:var(--text);border-radius:8px;padding:8px 16px;transition:filter .15s,opacity .15s}.btn:hover:not(:disabled){filter:brightness(.96)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.btn.ghost:hover{background:var(--bg-input)}.btn.small{padding:4px 10px;font-size:13px;border-radius:6px}.btn.big{padding:12px 28px;font-size:16px}.btn.icon{padding:8px 10px;display:inline-flex;align-items:center}.input{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;padding:9px 12px;outline:none;min-width:0;flex:1}.input:focus{border-color:var(--accent)}.row{display:flex;gap:8px}.join-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px 16px}.join-card{width:100%;max-width:440px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:32px 28px}.logo{margin:0;font-size:26px;letter-spacing:.5px}.tagline{color:var(--text-dim);font-size:13.5px;margin:6px 0 24px}.join-section h2{font-size:15px;margin:0 0 4px}.join-section .hint{font-size:12.5px;color:var(--text-dim);margin:0 0 10px}.join-section .btn.big{width:100%}.divider{display:flex;align-items:center;gap:12px;color:var(--text-dim);font-size:12px;margin:20px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.auto-join{text-align:center;padding:8px 0 4px}.auto-join p{color:var(--text-dim);margin:0 0 12px}.join-foot{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:26px;color:var(--text-dim);font-size:12px}.room{height:100%;display:flex;flex-direction:column}.statusbar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-card);border-bottom:1px solid var(--border)}.status-mid{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.status-text{font-size:13.5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dot{width:9px;height:9px;border-radius:50%;flex:none}.dot.ok{background:var(--ok)}.dot.off{background:var(--warn)}.dot.busy{background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.dot.err{background:var(--err)}@keyframes pulse{50%{opacity:.35}}.role-badge{font-size:11.5px;background:var(--accent-weak);color:var(--accent);border-radius:999px;padding:1px 8px;flex:none}.status-actions{display:flex;gap:6px}.invite-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--accent-weak);border-bottom:1px solid var(--border);flex-wrap:wrap}.invite-label{font-size:13px}.invite-link{font-size:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:4px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.msg-list{flex:1;overflow-y:auto;padding:16px 12px 8px;display:flex;flex-direction:column;gap:10px}.msg-empty{margin:auto;color:var(--text-dim);font-size:13.5px}.msg-row{display:flex;flex-direction:column;max-width:78%}.msg-row.me{align-self:flex-end;align-items:flex-end}.msg-row.peer{align-self:flex-start;align-items:flex-start}.bubble{background:var(--bubble-peer);border:1px solid var(--border);border-radius:14px;padding:8px 12px;box-shadow:var(--shadow);overflow-wrap:anywhere;white-space:pre-wrap}.msg-row.me .bubble{background:var(--bubble-me);border-color:var(--bubble-me);color:var(--bubble-me-text)}.msg-row.me .bubble.file{background:var(--bg-card);color:var(--text);border-color:var(--border)}.bubble .meta,.meta{font-size:11px;color:var(--text-dim);margin-top:2px;display:inline-flex;gap:5px}.msg-row.me .meta .mark{color:inherit}.file-gone{color:var(--text-dim);font-size:13px}.file-card{width:min(320px,64vw);min-width:200px}.file-head{display:flex;align-items:center;gap:8px;min-width:0}.file-name{font-weight:500;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:var(--text-dim);font-size:12px;flex:none}.bar{height:5px;background:var(--bg-input);border-radius:3px;margin:8px 0 6px;overflow:hidden}.bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .2s}.file-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.file-state{font-size:12px;color:var(--text-dim)}.file-err{margin:6px 0 0;font-size:12px;color:var(--err)}.file-card.failed .file-name{color:var(--err)}.composer{display:flex;gap:8px;align-items:flex-end;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--bg-card);border-top:1px solid var(--border)}.composer-input{flex:1;resize:none;border:1px solid var(--border);background:var(--bg-input);border-radius:10px;padding:9px 12px;outline:none;max-height:140px}.composer-input:focus{border-color:var(--accent)}.drop-overlay{position:fixed;inset:0;background:#2563eb40;backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:50;pointer-events:none}.drop-box{background:var(--bg-card);border:2px dashed var(--accent);color:var(--accent);font-size:18px;padding:24px 48px;border-radius:16px}.toaster{position:fixed;top:14px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:100;width:min(480px,calc(100vw - 32px));pointer-events:none}.toast{background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:10px;box-shadow:var(--shadow);padding:9px 14px;font-size:13.5px}.toast.warn{border-left-color:var(--warn)}.toast.error{border-left-color:var(--err)}.toast-enter-active,.toast-leave-active{transition:all .25s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(-8px)}@media(max-width:560px){.msg-row{max-width:88%}.status-text{font-size:12.5px}.join-card{padding:24px 20px}}
