:root{color-scheme:light;--black-0: #0b0e11;--black-50: #2b2f36;--black-100: #474d57;--black-200: #5e6673;--black-300: #76808f;--black-400: #929aa5;--black-500: #aeb4bc;--black-600: #caced3;--black-700: #e6e8ea;--black-800: #eceef1;--black-900: #f7f8fa;--black-1000: #ffffff;--bg: var(--black-1000);--bg-sidebar: var(--black-900);--bg-elevated: var(--black-1000);--bg-hover: var(--black-800);--bg-active: var(--black-700);--bg-input: var(--black-900);--fg: var(--black-0);--fg-strong: var(--black-0);--fg-muted: var(--black-200);--fg-subtle: var(--black-300);--fg-faint: var(--black-400);--border: rgba(0,0,0,.08);--border-strong: rgba(0,0,0,.14);--brand: #f84600;--brand-hover: #c63a00;--brand-fg: #ffffff;--brand-soft: #fff0db;--brand-soft-fg: #8f2a00;--green-100: #00de73;--red-50: #ffdce3;--red-100: #ff375b;--red-300: #a21e39;--orange-50: #fff0db;--orange-200: #f97300;--radius-sm: 6px;--radius: 10px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0,0,0,.04);--shadow: 0 4px 16px rgba(0,0,0,.08);--shadow-lg: 0 12px 40px rgba(0,0,0,.16);--t: .15s ease;--font-sans: "Google Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--black-0: #ffffff;--black-50: #e6e8ea;--black-100: #caced3;--black-200: #aeb4bc;--black-300: #929aa5;--black-400: #76808f;--black-500: #5e6673;--black-600: #474d57;--black-700: #2b2f36;--black-800: #1e2026;--black-900: #14151a;--black-1000: #0b0e11;--bg: var(--black-900);--bg-sidebar: var(--black-1000);--bg-elevated: var(--black-800);--bg-hover: var(--black-700);--bg-active: var(--black-600);--bg-input: var(--black-800);--border: rgba(255,255,255,.08);--border-strong: rgba(255,255,255,.14);--brand-soft: rgba(248,70,0,.16);--brand-soft-fg: #ffa97a;--red-50: rgba(255,55,91,.16)}}*,*:before,*:after{box-sizing:border-box}html,body{height:100vh;margin:0;overflow:hidden}body{font-family:var(--font-sans);font-size:14px;line-height:1.5;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,textarea{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:transparent;border-radius:10px;border:2px solid transparent;background-clip:padding-box}*:hover>::-webkit-scrollbar-thumb,::-webkit-scrollbar:hover ::-webkit-scrollbar-thumb,.rooms-scroll::-webkit-scrollbar-thumb,.details-sidebar::-webkit-scrollbar-thumb,#msgs::-webkit-scrollbar-thumb{background:var(--black-600);background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--black-500);background-clip:padding-box}#app{display:grid;grid-template-columns:256px 1fr 304px;height:100vh}#app.hidden{display:none}@media(max-width:960px){#app{grid-template-columns:224px 1fr}.details-sidebar{display:none}}@media(max-width:640px){#app{grid-template-columns:1fr}.rooms-sidebar{display:none}}.rooms-sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.ws-title{padding:18px 16px 14px;display:flex;align-items:center;gap:12px;color:var(--fg-strong);text-decoration:none;transition:opacity var(--t)}.ws-title:hover{opacity:.85}.ws-title .ws-icon{height:36px;width:auto;display:block;flex-shrink:0}.ws-title .ws-divider{width:1px;height:32px;background:var(--border-strong);flex-shrink:0}.ws-title .ws-stack{display:flex;flex-direction:column;gap:4px;min-width:0}.ws-title .ws-wordmark{height:12px;width:auto;display:block}.ws-title .ws-sub{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);line-height:1}.rooms-scroll{flex:1;overflow-y:auto;padding:4px 8px 12px}.create-room-btn{width:calc(100% - 4px);margin:6px 2px 12px;padding:8px 10px;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--brand);color:var(--brand-fg);border:none;border-radius:var(--radius-sm);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background var(--t)}.create-room-btn:hover{background:var(--brand-hover)}.create-room-btn .plus{font-size:16px;font-weight:700;line-height:1}.rooms-sidebar section{margin-bottom:16px}.rooms-sidebar h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-faint);margin:8px 0 4px;padding:4px 10px}.room-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--radius-sm);cursor:pointer;color:var(--fg-muted);font-size:13.5px;user-select:none;transition:background var(--t),color var(--t)}.room-item:hover{background:var(--bg-hover);color:var(--fg-strong)}.room-item.active{background:var(--bg-active);color:var(--fg-strong);font-weight:500}.room-item .hash{width:16px;text-align:center;color:var(--fg-faint);flex-shrink:0;font-weight:400}.room-item.active .hash{color:var(--brand)}.room-item .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-item .vis-badge{font-size:10px;padding:1px 5px;border-radius:999px;background:var(--brand-soft);color:var(--brand-soft-fg);letter-spacing:.02em;font-weight:500;flex-shrink:0}.rooms-empty{color:var(--fg-faint);font-size:12px;padding:6px 10px}.chat-main{display:grid;grid-template-rows:auto auto 1fr auto;min-width:0;min-height:0;background:var(--bg)}.chat-header{display:flex;align-items:center;gap:10px;padding:16px 24px;border-bottom:1px solid var(--border);background:var(--bg);min-height:60px}.chat-header .hash{color:var(--fg-faint);font-weight:400;font-size:18px}.chat-header .room-name{font-weight:600;font-size:16px;letter-spacing:-.01em;color:var(--fg-strong)}.chat-header .vis-badge{font-size:11px;padding:3px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand-soft-fg);letter-spacing:.02em;font-weight:500}.chat-header .join-btn{margin-left:8px;font-size:12.5px;padding:5px 12px;border-radius:999px;border:1px solid var(--brand);background:var(--bg);color:var(--brand);font-weight:500;cursor:pointer;transition:background var(--t),color var(--t)}.chat-header .join-btn:hover{background:var(--brand);color:var(--brand-fg)}.chat-header .archived-badge{font-size:11px;background:var(--red-50);color:var(--red-300);padding:3px 8px;border-radius:999px;font-weight:600;letter-spacing:.02em}.chat-header .me{margin-left:auto;color:var(--fg-subtle);font-size:12px;padding:4px 10px;border-radius:999px;background:var(--black-900);border:1px solid var(--border)}.chat-header .me:empty{display:none}body.visitor #my-rooms-section{display:none}body.visitor .chat-header .me{background:var(--brand-soft);color:var(--brand-soft-fg);border-color:transparent}#banner{padding:10px 24px;background:var(--orange-50);color:var(--brand-soft-fg);font-size:13px;display:none;border-bottom:1px solid var(--border)}#banner.on{display:block}#msgs{overflow-y:auto;padding:20px 24px 24px;min-height:0;display:flex;flex-direction:column;gap:2px}.msg{display:flex;gap:12px;padding:2px 0;max-width:100%}.msg.group-start{padding-top:12px}.msg .avatar{width:36px;height:36px;border-radius:8px;background:var(--black-800);flex-shrink:0;overflow:hidden}.msg .avatar img{width:100%;height:100%;display:block}.msg .avatar.hidden-slot{background:transparent;visibility:hidden}.msg .body{flex:1;min-width:0}.msg .hdr{font-size:13px;margin-bottom:3px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.msg .hdr .user{font-weight:600;color:var(--fg-strong)}.msg .hdr .you{font-weight:400;color:var(--fg-faint);font-size:11px}.msg .hdr .via{font-size:10px;color:var(--fg-subtle);padding:1px 7px;background:var(--black-800);border-radius:999px;letter-spacing:.02em;font-weight:500}.msg .hdr .ts{color:var(--fg-faint);font-size:11px}.msg .content{white-space:normal;word-wrap:break-word;overflow-wrap:anywhere;font-size:14px;line-height:1.55;color:var(--fg)}.msg .content>*:first-child{margin-top:0}.msg .content>*:last-child{margin-bottom:0}.msg .content p{margin:0 0 6px}.msg .content ul,.msg .content ol{margin:4px 0;padding-left:22px}.msg .content li{margin:2px 0}.msg .content li>p{margin:0}.msg .content h1,.msg .content h2,.msg .content h3,.msg .content h4,.msg .content h5,.msg .content h6{margin:8px 0 4px;font-weight:600;line-height:1.3}.msg .content h1{font-size:1.25em}.msg .content h2{font-size:1.15em}.msg .content h3{font-size:1.05em}.msg .content h4,.msg .content h5,.msg .content h6{font-size:1em}.msg .content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92em;background:#7f7f7f24;padding:1px 5px;border-radius:4px}.msg .content pre{margin:6px 0;padding:8px 10px;background:#7f7f7f1a;border-radius:6px;overflow-x:auto;max-width:100%}.msg .content pre code{background:none;padding:0;border-radius:0;font-size:.9em;white-space:pre}.msg .content blockquote{margin:4px 0;padding:2px 10px;border-left:3px solid rgba(127,127,127,.35);color:inherit;opacity:.85}.msg .content table{border-collapse:collapse;margin:6px 0;font-size:.95em}.msg .content th,.msg .content td{border:1px solid rgba(127,127,127,.35);padding:3px 8px;text-align:left}.msg .content th{background:#7f7f7f1a}.msg .content a{color:var(--brand);text-decoration:underline}.msg .content a:hover{text-decoration:none}.msg .content img{max-width:100%;height:auto;border-radius:4px}.msg .content hr{border:none;border-top:1px solid rgba(127,127,127,.3);margin:8px 0}.msg .content del{opacity:.7}.msg .content input[type=checkbox]{margin-right:4px;vertical-align:middle}.msg .content a.tf-card{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;margin:2px 0;border:1px solid rgba(127,127,127,.3);border-radius:8px;background:#7f7f7f0f;color:var(--fg);text-decoration:none;max-width:360px;vertical-align:middle;font-size:.95em;line-height:1.3}.msg .content a.tf-card:hover{border-color:var(--brand);background:#7f7f7f1f;text-decoration:none}.msg .content a.tf-card .tf-icon{font-size:1.15em;flex:0 0 auto}.msg .content a.tf-card .tf-body{display:inline-flex;flex-direction:column;min-width:0;flex:1 1 auto}.msg .content a.tf-card .tf-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg .content a.tf-card .tf-code{font-family:var(--mono, ui-monospace, "SF Mono", Menlo, monospace);font-size:.8em;opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg .content a.tf-card .tf-action{flex:0 0 auto;font-size:.85em;color:var(--brand);padding-left:6px;border-left:1px solid rgba(127,127,127,.25)}.msg.mine{flex-direction:row-reverse}.msg.mine .body{display:flex;flex-direction:column;align-items:flex-end;max-width:78%;flex:0 1 auto}.msg.mine .hdr{justify-content:flex-end}.msg.mine .content{background:var(--brand-soft);color:var(--brand-soft-fg);padding:8px 14px;border-radius:14px 4px 14px 14px}.msg.sys{justify-content:center;color:var(--fg-faint);font-size:12px;padding:6px 0}.thinking-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.thinking-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:11px;line-height:1.4;background:var(--bg-soft, rgba(127,127,127,.12));color:var(--fg-faint);border:1px solid var(--border, rgba(127,127,127,.18));transition:background .2s,color .2s,border-color .2s}.thinking-chip.is-thinking:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand, #5b8def);animation:thinking-pulse 1.2s ease-in-out infinite}.thinking-chip.is-silent{opacity:.7}.thinking-chip-retry{margin-left:6px;padding:1px 7px;border-radius:999px;border:1px solid var(--border-strong, rgba(127,127,127,.28));background:transparent;color:var(--brand);font:inherit;font-size:10.5px;font-weight:600;cursor:pointer;line-height:1.2;transition:background .15s,color .15s,border-color .15s}.thinking-chip-retry:hover:not(:disabled){background:var(--brand);color:var(--brand-fg);border-color:var(--brand)}.thinking-chip-retry:disabled{opacity:.55;cursor:progress}.thinking-chip.is-sending:before,.thinking-chip.is-broadcasting:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand, #5b8def);animation:thinking-pulse 1.2s ease-in-out infinite;display:inline-block;margin-right:4px}.thinking-chip.is-no_credits{color:var(--amber-300, #e6b450);border-color:var(--amber-700, rgba(230,180,80,.4))}.thinking-chip.is-failed{color:var(--red-300, #f59a9a);border-color:var(--red-700, rgba(245,154,154,.4))}.composer-status{padding:4px 24px 0;min-height:22px}.composer-status[hidden]{display:none}.live-reply-bubble{margin-top:6px;padding:6px 10px;border-left:2px solid var(--brand, #5b8def);background:var(--bg-soft, rgba(91,141,239,.04));border-radius:4px;font-size:12px;color:var(--fg-faint)}.live-reply-bubble .live-reply-header{display:flex;gap:8px;align-items:baseline;cursor:pointer;user-select:none}.live-reply-bubble .lr-name{font-weight:600;color:var(--fg)}.live-reply-bubble .lr-stage{flex:1;color:var(--fg)}.live-reply-bubble .lr-meta{font-variant-numeric:tabular-nums;opacity:.7;font-size:11px}.live-reply-bubble .lr-toggle{opacity:.5}.live-reply-bubble[data-expanded="1"] .live-reply-header{margin-bottom:6px}.live-reply-bubble[data-stage=reasoning] .lr-stage:after,.live-reply-bubble[data-stage=tooling] .lr-stage:after,.live-reply-bubble[data-stage=composing] .lr-stage:after{content:"▍";margin-left:2px;opacity:.5;animation:live-reply-cursor 1s steps(1) infinite}@keyframes live-reply-cursor{50%{opacity:0}}.live-reply-details{display:flex;flex-direction:column;gap:8px}.live-reply-thinking .lr-section-label,.live-reply-tool-card .lr-tool-header,.live-reply-text{color:var(--fg)}.live-reply-thinking .lr-thinking-text{white-space:pre-wrap;color:var(--fg-faint);font-style:italic;font-size:11px;max-height:120px;overflow-y:auto;padding:4px 6px;background:var(--bg-elev-1, rgba(0,0,0,.04));border-radius:3px}.live-reply-tool-card{padding:4px 8px;border-radius:3px;border:1px solid var(--border, rgba(127,127,127,.18));background:var(--bg-elev-1, rgba(0,0,0,.02));font-size:11px}.live-reply-tool-card.status-running{border-color:var(--brand, #5b8def)}.live-reply-tool-card.status-ok{border-color:var(--green-700, rgba(120,200,120,.4))}.live-reply-tool-card.status-error{border-color:var(--red-700, rgba(245,154,154,.4))}.live-reply-tool-card .lr-tool-header{display:flex;gap:6px;align-items:baseline;margin-bottom:2px}.live-reply-tool-card .lr-tool-name{font-weight:600}.live-reply-tool-card .lr-tool-status{font-size:10px;opacity:.7;text-transform:uppercase}.live-reply-tool-card .lr-tool-args,.live-reply-tool-card .lr-tool-output{font-family:var(--font-mono, monospace);white-space:pre-wrap;word-break:break-word;color:var(--fg-faint)}.live-reply-tool-card .lr-tool-error{color:var(--red-300, #f59a9a);font-family:var(--font-mono, monospace)}.live-reply-text{white-space:pre-wrap;padding:4px 6px;background:var(--bg-elev-1, rgba(0,0,0,.04));border-radius:3px}@keyframes thinking-pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.6);opacity:1}}.frozen-trace{margin-top:6px;font-size:11px}.frozen-trace-summary{cursor:pointer;color:var(--fg-faint);padding:2px 0;list-style:none;user-select:none}.frozen-trace-summary::-webkit-details-marker{display:none}.frozen-trace-summary:before{content:"▸ "}.frozen-trace[open]>.frozen-trace-summary{color:var(--fg);margin-bottom:4px}.frozen-trace[open]>.frozen-trace-summary:before{content:"▾ "}.load-older-btn-row{display:flex;justify-content:center;padding:12px 0}.load-older-btn{font-size:12px;padding:6px 14px;border-radius:999px;border:1px solid var(--border, rgba(255, 255, 255, .12));background:var(--bg-elev-1, rgba(255, 255, 255, .04));color:var(--fg-faint);cursor:pointer;transition:background 80ms ease,color 80ms ease}.load-older-btn:hover{background:var(--bg-hover, rgba(255, 255, 255, .08));color:var(--fg)}.load-older-btn:disabled{opacity:.6;cursor:progress}.composer-wrap{position:relative}.composer-locked-overlay{position:absolute;inset:0;z-index:5;background:#0000008c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:12px 24px;cursor:not-allowed}.composer-locked-overlay[hidden]{display:none}.composer-locked-msg{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--fg);max-width:600px}.composer-locked-icon{font-size:18px}.composer-locked-text{flex:1}.composer-locked-cta{flex-shrink:0;padding:6px 14px;border-radius:999px;background:var(--brand, #f84600);color:#fff;font-weight:500;text-decoration:none;cursor:pointer;transition:opacity 80ms ease}.composer-locked-cta:hover{opacity:.9}.composer{padding:14px 24px 20px;background:var(--bg);display:flex;gap:10px;align-items:flex-end;position:relative;transition:background 80ms ease}.composer.drop-target{background:var(--bg-elev-1, rgba(102, 153, 255, .08));outline:2px dashed var(--accent, #4a8cff);outline-offset:-6px}.composer.drop-target:before{content:"📎 drop to attach";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;font-weight:600;color:var(--accent, #4a8cff);background:var(--bg);opacity:.85}.thinking-chip.is-uploading:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent, #4a8cff);margin-right:6px;animation:thinking-pulse 1.2s infinite}.thinking-chip.is-failed{background:var(--red-100, rgba(220, 80, 80, .18));color:var(--red-300, #d04040)}.archive-file-list{list-style:none;margin:12px 0 0;padding:0;max-height:280px;overflow-y:auto;border:1px solid var(--border, rgba(0, 0, 0, .1));border-radius:4px}.archive-file-list li{padding:8px 12px;border-bottom:1px solid var(--border, rgba(0, 0, 0, .08));display:flex;flex-direction:column;gap:2px}.archive-file-list li:last-child{border-bottom:none}.archive-file-list .af-name{font-weight:500;word-break:break-all}.archive-file-list .af-meta{font-size:11px;color:var(--fg-faint)}.composer-mount{flex:1;min-width:0}.composer-editor{min-height:44px;max-height:200px;overflow-y:auto;border:1px solid var(--border-strong);border-radius:var(--radius);padding:11px 14px;font-size:14px;line-height:1.5;background:var(--bg-input);color:var(--fg);outline:none;transition:border-color var(--t),box-shadow var(--t)}.composer-editor:focus,.composer-editor.ProseMirror-focused{border-color:var(--brand);box-shadow:0 0 0 3px #f846001f}.composer-mount.is-disabled .composer-editor{background:var(--black-800);color:var(--fg-faint);cursor:not-allowed}.composer-editor p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--fg-faint);float:left;height:0;pointer-events:none}.composer-editor p{margin:0}.composer-mention-chip{display:inline-flex;align-items:center;gap:4px;vertical-align:baseline;padding:1px 6px 1px 2px;background:var(--accent-bg, rgba(74, 140, 255, .14));color:var(--accent, #4a8cff);border-radius:999px;font-weight:500;line-height:1.3;cursor:default;user-select:none}.composer-mention-chip.is-broadcast{padding-left:6px}.composer-mention-chip-avatar{width:16px;height:16px;border-radius:50%;object-fit:cover;flex-shrink:0}.composer-mention-chip-name{white-space:nowrap}.composer-mention-chip [data-uid-badges]{display:inline-flex;gap:2px}.composer-mention-chip .composer-uid-badge{display:inline-flex;align-items:center;justify-content:center;width:11px;height:11px;font-size:8px;line-height:1;border-radius:50%;color:#fff;font-weight:700}.tippy-box[data-theme~=composer-mention]{background:transparent;box-shadow:none;padding:0}.tippy-box[data-theme~=composer-mention]>.tippy-content{padding:0}.composer-mention-popup{background:var(--bg-elevated, #1e1e22);border:1px solid var(--border, rgba(255, 255, 255, .1));border-radius:var(--radius);padding:4px;min-width:240px;max-width:360px;max-height:280px;overflow-y:auto;box-shadow:0 8px 28px #00000059;font-size:13px}.composer-mention-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;color:var(--fg)}.composer-mention-item.selected,.composer-mention-item:hover{background:var(--bg-hover, rgba(255, 255, 255, .08))}.composer-mention-avatar{width:20px;height:20px;border-radius:50%;object-fit:cover;flex-shrink:0}.composer-mention-name{font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-mention-kind{font-size:10px;color:var(--fg-faint);text-transform:uppercase;letter-spacing:.04em}.composer-mention-online{width:7px;height:7px;border-radius:50%;background:#4caf50}.composer-uid-badges{display:inline-flex;gap:2px}.composer-uid-badge{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;font-size:10px;line-height:1;border-radius:50%;color:#fff;font-weight:700}.composer-mention-empty{padding:8px;color:var(--fg-faint);font-style:italic}button.primary,button.secondary{font-weight:500;font-size:13.5px;padding:0 18px;height:44px;border-radius:var(--radius);cursor:pointer;white-space:nowrap;transition:background var(--t),border-color var(--t),color var(--t),opacity var(--t)}button.primary{border:1px solid transparent;background:var(--brand);color:var(--brand-fg);box-shadow:0 1px 2px #f846002e}button.primary:hover:not(:disabled){background:var(--brand-hover)}button.primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}button.secondary{border:1px solid var(--border-strong);background:var(--bg);color:var(--fg)}button.secondary:hover{background:var(--bg-hover)}.details-sidebar{background:var(--bg-sidebar);border-left:1px solid var(--border);overflow-y:auto;min-height:0;padding:20px 16px;font-size:13.5px}.details-sidebar section{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--border)}.details-sidebar section:last-child{border-bottom:none;margin-bottom:0}.details-sidebar h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-faint);margin:0 0 10px;padding:0 4px;display:flex;align-items:center;gap:6px}.details-sidebar h3 .right{margin-left:auto}.info-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:5px 4px}.info-row .k{color:var(--fg-subtle);font-size:12.5px;flex-shrink:0}.info-row .v{font-weight:500;text-align:right;color:var(--fg);overflow-wrap:anywhere;max-width:70%}.info-row .v.mono{font-family:var(--font-mono);font-size:12px;font-weight:400;color:var(--fg-muted)}.rules-box{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font-size:12.5px;line-height:1.5;color:var(--fg);white-space:pre-wrap;word-break:break-word;max-height:240px;overflow-y:auto}.rules-box.empty-state{color:var(--fg-faint);font-style:italic}.member-section{margin-bottom:8px}.member-section-header{display:flex;align-items:center;gap:6px;padding:4px;cursor:pointer;color:var(--fg-faint);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;user-select:none;border-radius:var(--radius-sm)}.member-section-header:hover{background:var(--bg-hover)}.member-section-header .caret{width:10px;display:inline-block;text-align:center;color:var(--fg-faint)}.member-section-header .title{flex:1}.member-section-header .count{color:var(--fg-faint);font-weight:500}.member-section-body{display:block}.member-section-body[hidden]{display:none}.member-row{display:flex;align-items:center;gap:10px;padding:7px 4px;border-radius:var(--radius-sm);line-height:1.3;transition:background var(--t)}.member-row:hover{background:var(--bg-hover)}.member-row.self,.member-row.self:hover{background:var(--brand-soft)}.member-row.agent-twin{opacity:.85}.member-row.agent-twin .uid{font-weight:400}.member-row .avatar-sm{width:30px;height:30px;border-radius:6px;background:var(--black-800);flex-shrink:0;overflow:hidden;position:relative}.member-row .avatar-sm img{width:100%;height:100%;display:block}.member-row .avatar-sm.online:after{content:"";position:absolute;right:-2px;bottom:-2px;width:10px;height:10px;border-radius:50%;background:var(--green-100);border:2px solid var(--bg-sidebar)}.member-row .meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.member-row .uid{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;color:var(--fg-strong)}.member-row .status{font-size:11px;color:var(--fg-subtle)}.member-row .tag{font-size:9.5px;padding:2px 7px;border-radius:999px;font-weight:600;letter-spacing:.04em;flex-shrink:0}.member-row .tag.owner{background:var(--brand-soft);color:var(--brand-soft-fg)}.member-row .tag.stale{background:var(--red-50);color:var(--red-300)}.member-row .tag.kind{background:var(--black-800);color:var(--fg-subtle);letter-spacing:.02em;text-transform:none;font-weight:500}.member-row .tag.kind.starchild_agent{background:var(--brand-soft);color:var(--brand-soft-fg)}.member-row .tag.kind.starchild_user{background:#d4f5fc;color:#004f6e}.member-row .tag.kind.external_agent,.member-row .tag.kind.external_user{background:var(--black-800);color:var(--fg-subtle)}@media(prefers-color-scheme:dark){.member-row .tag.kind.starchild_user{background:#00a9de29;color:#66cce6}}.empty{color:var(--fg-faint);font-size:12px;padding:8px 4px}.icon-btn{background:transparent;border:none;padding:4px 6px;color:var(--fg-subtle);cursor:pointer;font-size:13px;border-radius:var(--radius-sm);transition:background var(--t),color var(--t)}.icon-btn:hover{background:var(--bg-hover);color:var(--fg-strong)}.boot-error{display:flex;height:100vh;align-items:center;justify-content:center;padding:40px 24px;text-align:center}.boot-error.hidden{display:none}.boot-error .card{max-width:560px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 36px;box-shadow:var(--shadow)}.boot-error h1{margin:0 0 12px;font-size:18px;font-weight:600;color:var(--fg-strong)}.boot-error p{margin:0;color:var(--fg-muted);font-size:14px;line-height:1.55}.boot-error p+p{margin-top:12px}.boot-error-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:20px 0 4px}.boot-error-btn{display:inline-flex;align-items:center;padding:10px 20px;border-radius:var(--radius, 6px);font-weight:500;font-size:14px;text-decoration:none;transition:background 80ms ease,border-color 80ms ease,opacity 80ms ease}.boot-error-btn.primary{background:var(--brand, #f84600);color:#fff;border:1px solid var(--brand, #f84600)}.boot-error-btn.primary:hover{opacity:.9}.boot-error-btn.secondary{background:transparent;color:var(--fg);border:1px solid var(--border-strong, rgba(255, 255, 255, .18))}.boot-error-btn.secondary:hover{background:var(--bg-hover, rgba(255, 255, 255, .06))}.boot-error-btn[hidden]{display:none}.boot-error .public-rooms-section{margin-top:24px;text-align:left}.boot-error .public-rooms-section h2{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em}.boot-error #public-rooms-anonymous{max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:6px}.modal-backdrop{position:fixed;inset:0;background:#0b0e1180;backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal-backdrop.on{display:flex}.modal{background:var(--bg-elevated);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:640px;max-width:100%;max-height:85vh;display:flex;flex-direction:column}.modal.wide{width:820px}.modal-header{padding:20px 24px 14px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:17px;font-weight:600;margin:0;flex:1;color:var(--fg-strong)}.modal-close{background:transparent;border:none;font-size:22px;color:var(--fg-subtle);cursor:pointer;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background var(--t),color var(--t)}.modal-close:hover{background:var(--bg-hover);color:var(--fg-strong)}.modal-body{padding:18px 24px;overflow-y:auto;flex:1}.modal-body .meta{font-size:12.5px;color:var(--fg-subtle);margin-bottom:12px}.modal-body textarea{width:100%;min-height:280px;max-height:480px;font-family:var(--font-mono);font-size:13px;line-height:1.55;border:1px solid var(--border-strong);border-radius:var(--radius);padding:12px 14px;background:var(--bg-input);color:var(--fg);outline:none;resize:vertical;transition:border-color var(--t),box-shadow var(--t)}.modal-body textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #f846001f}.modal-body .hint{font-size:12px;color:var(--fg-subtle);margin-top:10px;line-height:1.5}.modal-body .field-label{display:block;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-muted);margin:0 0 6px}.modal-body input[type=text]{width:100%;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-input);color:var(--fg);font-family:inherit;font-size:14px;outline:none;transition:border-color var(--t),box-shadow var(--t)}.modal-body input[type=text]:focus{border-color:var(--brand);box-shadow:0 0 0 3px #f846001f}.visibility-fieldset{border:none;padding:0;margin:18px 0 0;display:flex;flex-direction:column;gap:8px}.visibility-fieldset legend{padding:0;margin-bottom:8px}.vis-option{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;transition:border-color var(--t),background var(--t)}.vis-option:hover{background:var(--bg-hover)}.vis-option input[type=radio]{margin:2px 0 0;accent-color:var(--brand);cursor:pointer;flex-shrink:0}.vis-option:has(input[type=radio]:checked){border-color:var(--brand);background:var(--brand-soft)}.vis-text{flex:1;min-width:0}.vis-title{font-size:14px;font-weight:600;color:var(--fg-strong);margin-bottom:3px}.vis-desc{font-size:12.5px;color:var(--fg-subtle);line-height:1.4}#create-room-err{margin-top:14px}.modal-footer{padding:14px 24px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;align-items:center;gap:8px}.modal-footer .char-count{margin-right:auto;font-size:12px;color:var(--fg-subtle);font-family:var(--font-mono)}.modal-footer button{height:38px;padding:0 16px}.auto-attach-status:not([hidden]){display:flex;align-items:center;gap:12px;padding:14px 16px;margin-bottom:20px;background:var(--brand-soft);border:1px solid rgba(248,70,0,.25);border-radius:var(--radius);color:var(--fg-strong);font-size:14px;line-height:1.4}.auto-attach-status.success{background:#00de731a;border-color:#00de7359}.auto-attach-status.timeout{background:#ff375b14;border-color:#ff375b4d}.auto-attach-spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(248,70,0,.25);border-top-color:var(--brand);animation:auto-attach-spin .8s linear infinite;flex-shrink:0}.auto-attach-status.success .auto-attach-spinner,.auto-attach-status.timeout .auto-attach-spinner{border:none;animation:none;position:relative;width:18px;height:18px}.auto-attach-status.success .auto-attach-spinner:before{content:"✓";color:var(--green-100);font-weight:700;font-size:18px;line-height:1}.auto-attach-status.timeout .auto-attach-spinner:before{content:"!";color:var(--red-100);font-weight:700;font-size:18px;line-height:1}@keyframes auto-attach-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.join-section{margin-bottom:18px}.join-section h4{font-size:13px;font-weight:600;margin:0 0 8px;color:var(--fg-strong);display:flex;align-items:center;gap:6px}.join-section .desc{font-size:12.5px;color:var(--fg-subtle);margin-bottom:8px;line-height:1.5}.cmd-box{position:relative;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:10px 56px 10px 12px;font-family:var(--font-mono);font-size:12.5px;line-height:1.55;color:var(--fg);overflow-wrap:anywhere;word-break:normal}.cmd-box .cmd-text{display:block;white-space:pre-wrap}.cmd-box .copy-btn{position:absolute;top:6px;right:6px;background:var(--bg-elevated);border:1px solid var(--border);color:var(--fg-subtle);cursor:pointer;font-size:11px;padding:3px 8px;border-radius:var(--radius-sm);transition:background var(--t),color var(--t)}.cmd-box .copy-btn:hover{background:var(--bg-hover);color:var(--fg-strong)}.cmd-box .copy-btn.copied{background:var(--brand-soft);color:var(--brand-soft-fg);border-color:transparent}.join-info{font-size:12px;color:var(--fg-subtle);padding:8px 10px;background:var(--bg-input);border-radius:var(--radius-sm)}.mention{color:var(--accent, #4a8cff);background:var(--accent-bg, rgba(74, 140, 255, .1));border-radius:3px;padding:0 4px;font-weight:500;cursor:default}[data-uid-badges]{display:inline-flex;gap:2px;vertical-align:baseline;line-height:1}[data-uid-badges]:not(:empty){margin-left:4px}.uid-badge{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;font-size:10px;line-height:1;border-radius:50%;font-weight:700;color:#fff;cursor:default;user-select:none}.uid-badge.is-verified{background:#1d9bf0}.uid-badge.is-official{background:#f5a623}.mention-popup{position:absolute;z-index:100;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);max-height:240px;overflow-y:auto;min-width:220px;max-width:360px;padding:4px 0}.mention-popup[hidden]{display:none}.mention-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:13px;line-height:1.3}.mention-item:hover,.mention-item.selected{background:var(--bg-hover)}.mention-item .mi-avatar{width:22px;height:22px;border-radius:4px;background:var(--black-800);flex-shrink:0;overflow:hidden}.mention-item .mi-avatar img{width:100%;height:100%;display:block}.mention-item .mi-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--fg-strong)}.mention-item .mi-kind{font-size:10.5px;color:var(--fg-faint);flex-shrink:0}.mention-item .mi-online{width:6px;height:6px;border-radius:50%;background:var(--green-100);flex-shrink:0}.mention-item.broadcast .mi-avatar.broadcast-glyph{display:flex;align-items:center;justify-content:center;background:var(--brand-soft, rgba(91,141,239,.12));font-size:16px}.mention-item.broadcast .mi-name{font-weight:600}.mention-item.broadcast .mi-kind{color:var(--brand, #5b8def);font-weight:500}.mention-empty{padding:8px 12px;font-size:12px;color:var(--fg-faint);font-style:italic}.msg.deleted .content{color:var(--fg-faint);font-style:italic}.msg.deleted .content:before{content:"[deleted]"}.msg .edited-badge{font-size:10.5px;color:var(--fg-faint);margin-left:6px;font-style:italic}.msg.mentions-me .body{border-left:3px solid var(--brand);padding-left:8px;background:var(--brand-soft);border-radius:4px}.msg.sys{justify-content:center;color:var(--fg-faint);font-size:11.5px;font-style:italic;padding:8px 0}.msg.sys .avatar,.msg.sys .hdr{display:none}.msg .msg-actions{position:absolute;top:-2px;right:0;display:none;gap:4px;padding:2px 4px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.msg{position:relative}.msg:hover .msg-actions{display:flex}.msg .msg-actions button{background:transparent;border:none;cursor:pointer;padding:2px 6px;font-size:12px;color:var(--fg-subtle);border-radius:var(--radius-sm)}.msg .msg-actions button:hover{background:var(--bg-hover);color:var(--fg-strong)}.msg .reactions-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.msg .reaction-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;background:var(--black-800);border:1px solid transparent;border-radius:999px;font-size:11.5px;cursor:pointer;user-select:none;transition:background var(--t),border-color var(--t)}.msg .reaction-chip:hover{background:var(--bg-hover)}.msg .reaction-chip.by-me{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-soft-fg)}.msg .reaction-chip .rc-count{font-weight:500;color:var(--fg-subtle)}.msg .reaction-chip.by-me .rc-count{color:var(--brand-soft-fg)}.msg .reaction-add{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:1px dashed var(--border-strong);border-radius:999px;font-size:11px;color:var(--fg-faint);cursor:pointer}.msg .reaction-add:hover{background:var(--bg-hover);color:var(--fg-strong)}.emoji-picker{position:absolute;z-index:100;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px;display:flex;gap:2px}.emoji-picker[hidden]{display:none}.emoji-picker button{background:transparent;border:none;cursor:pointer;padding:4px 6px;font-size:16px;border-radius:var(--radius-sm)}.emoji-picker button:hover{background:var(--bg-hover)}.msg .edit-area{width:100%;min-height:40px;max-height:200px;font-family:var(--font-sans);font-size:14px;line-height:1.5;padding:6px 8px;border:1px solid var(--brand);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--fg);outline:none;resize:vertical;box-sizing:border-box}.msg .edit-controls{display:flex;gap:6px;margin-top:4px;font-size:11.5px;color:var(--fg-subtle)}.msg .edit-controls button{padding:3px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--fg);cursor:pointer;font-size:11.5px}.msg .edit-controls button.primary-sm{background:var(--brand);color:var(--brand-fg);border-color:transparent}.msg .edit-controls .hint{margin-left:auto;align-self:center}.member-row{cursor:pointer}.chat-header .mentions-counter{font-size:11px;padding:2px 8px;background:var(--brand);color:var(--brand-fg);border-radius:999px;font-weight:600;cursor:pointer}.chat-header .mentions-counter[hidden]{display:none}.chat-header .mentions-filter-btn{font-size:11.5px;padding:3px 9px;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg);color:var(--fg-subtle);cursor:pointer}.chat-header .mentions-filter-btn.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-soft-fg)}
