:root{color-scheme:dark;--bg: #1e1e1e;--surface: #262626;--surface-2: #2f2f2f;--line: #383838;--line-strong: #4a4a4a;--ink: #e9e9e9;--ink-2: #b5b5b5;--ink-3: #9a9a9a;--accent: #d4a12b;--accent-ink: #e6b843;--accent-soft: rgba(212, 161, 43, .18);--accent-contrast: #1a1a1a;--ok: #43c15f;--danger: #f25c4a;--danger-soft: rgba(240, 106, 90, .16);--warn: #d4a12b;--warn-soft: rgba(212, 161, 43, .18);--rail-bg: #161616;--panel-bg: #1b1b1b;--font: "IBM Plex Sans", "Segoe UI", Roboto, system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;--radius: 10px}:root[data-theme=light]{color-scheme:light;--bg: #f4f4f5;--surface: #ffffff;--surface-2: #ececee;--line: #d9dadd;--line-strong: #bdbfc4;--ink: #1c1d1f;--ink-2: #4b4e55;--ink-3: #6b7079;--accent: #b8860b;--accent-ink: #8a6508;--accent-soft: rgba(184, 134, 11, .14);--accent-contrast: #ffffff;--ok: #1e8e4b;--danger: #b42318;--danger-soft: #fee4e2;--warn: #b45309;--warn-soft: #fbebd2;--rail-bg: #e9e9eb;--panel-bg: #f0f0f2}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent-ink)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{margin:0;line-height:1.2;text-wrap:balance}h1{font-size:22px}h2{font-size:18px}h3{font-size:15px}.shell{display:grid;grid-template-columns:76px 240px minmax(0,1fr);grid-template-rows:52px minmax(0,1fr);min-height:100vh}.topbar{grid-column:1 / -1;display:grid;grid-template-columns:316px minmax(0,1fr) auto;align-items:center;gap:16px;padding:0 16px 0 0;background:var(--rail-bg);border-bottom:1px solid var(--line)}.topbar .brand{padding-left:16px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:-.01em}.brand .mark{width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--accent-contrast);display:grid;place-items:center;font-size:15px;font-weight:700}.global-search{position:relative;display:flex;align-items:center;max-width:720px;width:100%}.global-search .search-icon{position:absolute;left:12px;color:var(--ink-3)}.global-search input{width:100%;padding:8px 64px 8px 40px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.global-search input::placeholder{color:var(--ink-3)}.global-search kbd{position:absolute;right:10px;font-family:var(--mono);font-size:11px;color:var(--ink-2);border:1px solid var(--line-strong);border-radius:5px;padding:1px 6px}.topbar-right{display:flex;align-items:center;gap:8px}.topbar-user{display:inline-flex;border-radius:50%}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ink-2);cursor:pointer}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.rail{background:var(--rail-bg);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:stretch;padding:10px 6px;gap:2px}.rail-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:10px;color:var(--ink-2);text-decoration:none;font-size:10.5px;letter-spacing:.02em;text-transform:uppercase;text-align:center}.rail-item:hover{background:var(--surface-2);color:var(--ink)}.rail-item[data-current=true]{background:var(--accent-soft);color:var(--accent-ink)}.rail-soon{opacity:.45;cursor:default}.panel{background:var(--panel-bg);border-right:1px solid var(--line);padding:14px 10px;display:flex;flex-direction:column;gap:6px;min-height:0}.panel-title{font-weight:700;font-size:15px;padding:6px 8px 4px}.panel-title.muted{font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;margin-top:10px}.panel-group{display:flex;flex-direction:column;gap:1px}.panel-group a,.panel-group span{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:13.5px}.panel-group a:hover{background:var(--surface-2)}.panel-group a[data-status=active]{background:var(--surface-2);color:var(--accent-ink);font-weight:600}.panel-muted span{color:var(--ink-3)}.panel-footer{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px 8px 4px;border-top:1px solid var(--line)}.panel-user{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{padding:24px 28px;max-width:1180px;width:100%;min-width:0}@media(max-width:900px){.shell{grid-template-columns:64px minmax(0,1fr)}.panel{display:none}.topbar{grid-template-columns:auto minmax(0,1fr) auto}.brand-name{display:none}}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-header p{margin:4px 0 0;color:var(--ink-2)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card-body{padding:18px}.empty{padding:40px 20px;text-align:center;color:var(--ink-2)}.empty h2{color:var(--ink);margin-bottom:6px}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;text-decoration:none;color:var(--ink)}.btn:hover{border-color:var(--ink-3)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-sm{padding:5px 10px;font-size:13px}.btn[disabled]{opacity:.6;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-weight:600;font-size:13px}.field .hint{color:var(--ink-3);font-size:12px}.input,select.input{padding:8px 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);width:100%}.input[readonly]{background:var(--surface-2);color:var(--ink-2)}.avatar{border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:inline-grid;place-items:center;font-weight:600;overflow:hidden;flex:none}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid var(--line);color:var(--ink-2)}.pill-ok{background:#3fbf6b29;color:var(--ok);border-color:transparent}.pill-warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.pill-muted{background:var(--surface-2)}.pill-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:10px 12px;border-top:1px solid var(--line);vertical-align:middle}.table th{border-top:0;color:var(--ink-2);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em}.table tr:hover td{background:var(--surface-2)}.table-wrap{overflow-x:auto}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar .input{width:auto;min-width:220px}.grid-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.person{display:flex;gap:12px;align-items:center;padding:12px;text-decoration:none;color:inherit}.person:hover{border-color:var(--line-strong)}.person .name{font-weight:600}.person .sub{color:var(--ink-3);font-size:12.5px}.kv{display:grid;grid-template-columns:160px 1fr;gap:8px 16px}.kv dt{color:var(--ink-3)}.kv dd{margin:0}.alert{padding:10px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);margin-bottom:14px}.alert-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.alert-ok{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px}.tabs a{padding:8px 12px;text-decoration:none;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs a[data-status=active]{color:var(--accent-ink);border-bottom-color:var(--accent);font-weight:600}.dialog-backdrop{position:fixed;inset:0;background:#00000059;display:grid;place-items:center;z-index:50}.dialog{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;width:min(480px,92vw)}.dialog h2{margin-bottom:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.menu{display:inline-flex;gap:6px;flex-wrap:wrap}.mono{font-family:var(--mono);font-size:12.5px}.muted{color:var(--ink-3)}.signin{min-height:100vh;display:grid;place-items:center;padding:20px}.signin .card{width:min(420px,100%);text-align:center}.signin .brand{justify-content:center;margin-bottom:8px;font-size:22px}.signin p{color:var(--ink-2)}.signin .btn{width:100%;justify-content:center;margin-top:16px}.connection-strip{padding:6px 16px;font-size:12px;font-weight:600;color:#1e1e1e;background:var(--accent);text-align:center}.main-flush{padding:0;max-width:none;display:flex;min-height:0;height:calc(100vh - 52px)}.conversation{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;width:100%;min-width:0}.conversation-placeholder{padding:40px 28px;width:100%}.conversation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--surface)}.conversation-head h1{font-size:17px;margin:0}.conversation-head p{margin:2px 0 0;font-size:13px}.conversation-meta{font-size:12.5px;white-space:nowrap}.conversation-list{overflow-y:auto;min-height:0}.conversation-row{display:grid!important;grid-template-columns:32px minmax(0,1fr) auto auto auto;align-items:center;gap:8px;padding:6px 8px!important;border-radius:8px;color:var(--ink);text-decoration:none}.conversation-row:hover{background:var(--surface-2)}.conversation-row[data-status=active]{background:var(--surface-2);color:var(--accent-ink);font-weight:600}.conversation-icon{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--surface-2);color:var(--ink-2);font-size:15px}.conversation-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draft-marker{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--warn)}.muted-marker{font-size:12px;opacity:.7}.badge{min-width:20px;text-align:center;padding:1px 6px;border-radius:10px;background:var(--line-strong);color:var(--ink);font-size:11.5px;font-weight:700}.badge.badge-mention{background:var(--accent);color:var(--accent-contrast)}.rail-icon{position:relative;display:inline-grid;place-items:center}.rail-badge{position:absolute;top:-6px;right:-10px;min-width:16px;padding:0 4px;border-radius:9px;background:var(--line-strong);color:var(--ink);font-size:10px;font-weight:700;line-height:16px;text-align:center}.rail-badge.rail-badge-mention{background:var(--accent);color:var(--accent-contrast)}.message-scroller{overflow-y:auto;min-height:0;padding:12px 20px}.message-more{display:grid;place-items:center;padding-bottom:10px}.message-empty{text-align:center;padding:24px 0}.messages{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.message{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:4px 44px 4px 4px;border-radius:8px}.message[data-grouped=true]{margin-top:0}.message:not([data-grouped=true]){margin-top:10px}.message:hover{background:var(--surface)}.message[data-mentions-me=true]{background:var(--accent-soft)}.message[data-mentions-me=true] .message-head time,.message[data-mentions-me=true] .message-edited,.message[data-mentions-me=true] .message-gutter-time{color:var(--ink-2)}.message-avatar{display:grid;place-items:start center;padding-top:2px}.message-gutter-time{font-size:10.5px;color:var(--ink-3);opacity:0;padding-top:4px}.message:hover .message-gutter-time{opacity:1}.message-head{display:flex;align-items:center;gap:8px}.message-author{font-weight:600}.message-head time{font-size:11.5px;color:var(--ink-3)}.message-edited{font-size:11px;color:var(--ink-3);margin-left:2px}.message-actions{position:absolute;top:-12px;right:8px;display:none;gap:2px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:2px;max-width:calc(100% - 16px);flex-wrap:wrap;justify-content:flex-end}.message:hover .message-actions,.message:focus-within .message-actions{display:flex}.message-pending{opacity:.6}.system-line{display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 0;color:var(--ink-3);font-size:12.5px}.richdoc>:first-child{margin-top:0}.richdoc>:last-child{margin-bottom:0}.richdoc p{margin:2px 0;overflow-wrap:anywhere}.richdoc ul,.richdoc ol{margin:4px 0;padding-left:22px}.richdoc blockquote{margin:4px 0;padding-left:10px;border-left:3px solid var(--line-strong);color:var(--ink-2)}.rd-code,.composer-input code{background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-family:var(--mono);font-size:12.5px}.rd-pre,.composer-input pre{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;overflow-x:auto;font-family:var(--mono);font-size:12.5px}.mention{background:var(--accent-soft);color:var(--accent-ink);border-radius:4px;padding:0 3px;font-weight:600}.reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.reaction{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:11px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);cursor:pointer;font-size:12.5px}.reaction[data-reacted=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.reaction-count{font-variant-numeric:tabular-nums}.typing{min-height:18px;padding:0 20px;font-size:12.5px;color:var(--ink-3)}.composer{border-top:1px solid var(--line);background:var(--surface);padding:8px 20px 12px;position:relative}.composer[data-editing=true]{background:var(--warn-soft)}.composer-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding-bottom:6px}.composer-toolbar .icon-btn[data-active=true]{background:var(--accent-soft);color:var(--accent-ink)}.composer-link{display:flex;gap:6px;align-items:center;margin-left:6px}.composer-link .input{width:260px;padding:4px 8px}.composer-input{min-height:44px;max-height:40vh;overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:8px 10px;outline:none}.composer-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.composer-footer{display:flex;align-items:center;gap:12px;padding-top:6px}.composer-count{font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.composer-count[data-state=near]{color:var(--warn)}.composer-count[data-state=over]{color:var(--danger);font-weight:600}.composer-hint{font-size:11.5px}.composer-footer>.btn,.composer-actions{margin-left:auto}.composer-actions{display:flex;gap:6px}.emoji-popover{position:absolute;bottom:100%;left:12px;z-index:30;box-shadow:0 12px 32px #00000073;border-radius:10px;overflow:hidden}.message-actions .emoji-popover{inset:100% 0 auto auto}.search-person{display:flex;align-items:center;gap:10px;min-width:0;width:100%;text-align:left}.profile-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.conversation[data-members=true]{grid-template-columns:minmax(0,1fr) 260px;grid-template-areas:"head head" "list members" "typing members" "composer members"}.conversation[data-members=true]>.conversation-head{grid-area:head}.conversation[data-members=true]>.message-scroller{grid-area:list}.conversation[data-members=true]>.typing{grid-area:typing}.conversation[data-members=true]>.composer{grid-area:composer}.conversation-headings{min-width:0}.conversation-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.members-panel{grid-area:members;border-left:1px solid var(--line);background:var(--panel-bg);padding:12px;overflow-y:auto;min-height:0}.members-head{display:flex;align-items:center;justify-content:space-between}.members-head h2{font-size:14px;margin:0}.members-subtitle{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:14px 0 4px}.members-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.members-list li{display:flex;align-items:center;gap:8px;padding:4px 2px}.member-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-actions{display:flex;gap:4px}.members-former .member-name{color:var(--ink-2)}.members-add{margin-top:12px}.channel-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.channel-card h2{font-size:15px;margin:0 0 4px}.channel-card p{margin:0 0 8px;font-size:13px}.panel-action{display:flex;align-items:center;gap:8px;padding:7px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-size:13.5px;text-align:left;cursor:pointer}.panel-action:hover{background:var(--surface-2)}.picked-people{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.picked-people .pill{cursor:pointer;border:0}.new-divider{display:flex;align-items:center;gap:10px;margin:10px 0 2px;color:var(--danger);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em}.new-divider:before,.new-divider:after{content:"";flex:1;height:1px;background:var(--danger);opacity:.5}.mentions{position:relative}.mentions .icon-btn{position:relative;font-weight:700}.mentions-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:40;width:320px;max-height:420px;overflow-y:auto;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 40px #00000073}.mentions-list{list-style:none;margin:0;padding:0}.mentions-list a{display:block;padding:8px;border-radius:8px;color:var(--ink);text-decoration:none}.mentions-list a:hover{background:var(--surface-2)}.mention-preview{color:var(--ink-2);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mention-suggest{position:fixed;z-index:60;min-width:220px;max-height:260px;overflow-y:auto;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 40px #00000073}.mention-option{display:block;width:100%;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left;font-size:13.5px;cursor:pointer}.mention-option[data-selected=true],.mention-option:hover{background:var(--accent-soft);color:var(--accent-ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.messages:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.message:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.conversation[data-thread=true]{grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"head thread" "list thread" "typing thread" "composer thread"}.conversation[data-thread=true][data-members=true]{grid-template-columns:minmax(0,1fr) 380px 240px;grid-template-areas:"head thread members" "list thread members" "typing thread members" "composer thread members"}.conversation[data-thread=true]>.conversation-head{grid-area:head}.conversation[data-thread=true]>.message-scroller{grid-area:list}.conversation[data-thread=true]>.typing{grid-area:typing}.conversation[data-thread=true]>.composer{grid-area:composer}.thread-panel{grid-area:thread;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border-left:1px solid var(--line);background:var(--panel-bg);min-height:0}.thread-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line)}.thread-head h2{margin:0;font-size:14px}.thread-scroller{overflow-y:auto;min-height:0;padding:10px 12px}.thread-divider{display:flex;align-items:center;gap:10px;margin:10px 0;color:var(--ink-3);font-size:11.5px}.thread-divider:after{content:"";flex:1;height:1px;background:var(--line)}.thread-readonly{padding:12px 14px;border-top:1px solid var(--line)}.thread-summary{display:flex;align-items:center;gap:8px;margin-top:6px;padding:3px 8px 3px 3px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--accent-ink);font-size:12.5px;font-weight:600;cursor:pointer}.thread-summary:hover{border-color:var(--line);background:var(--surface-2)}.thread-faces{display:inline-flex}.thread-faces .avatar{width:20px!important;height:20px!important;font-size:9px!important;margin-right:-6px;border:1px solid var(--surface)}.thread-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.thread-list-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.thread-list-head .btn{margin-left:auto}.thread-list-link{text-decoration:none;color:var(--ink)}.thread-list-root{display:flex;gap:10px;align-items:flex-start}.toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}.thread-composer{border-top:1px solid var(--line)}.thread-composer .composer{border-top:none}.thread-composer .toggle{padding:0 14px 10px}.quoted{display:block;margin:2px 0 6px;padding:4px 10px;border-left:3px solid var(--line-strong, var(--line));color:var(--ink-2);font-size:12.5px}.quoted-author{display:block;font-weight:600;color:var(--ink-3)}.quoted-text{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.composer[data-dragging=true]{outline:2px dashed var(--accent);outline-offset:-4px}.upload-tray{list-style:none;margin:0;padding:6px 12px 0;display:flex;flex-wrap:wrap;gap:8px}.upload-chip{display:flex;align-items:center;gap:8px;max-width:320px;padding:4px 4px 4px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);font-size:12.5px}.upload-chip[data-status=failed]{border-color:var(--danger, #b3261e);color:var(--danger, #b3261e)}.upload-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-meta{color:var(--ink-3)}.upload-progress{width:60px;height:6px}.attachments{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.attachment-image img,.attachment-video video{max-width:min(420px,100%);max-height:320px;border-radius:10px;border:1px solid var(--line);display:block}.attachment-image figcaption,.attachment-video figcaption{margin-top:3px;font-size:12px}.attachment-file{display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:460px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.attachment-text{display:flex;flex-direction:column;min-width:0;flex:1}.attachment-text .muted{font-size:11.5px}.attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-pdf{flex-basis:100%;width:100%;height:420px;border:1px solid var(--line);border-radius:8px}.section-head{margin:22px 0 10px;font-size:14px}.message[data-highlighted=true]{background:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:8px}.permalink-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-4px 0 8px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);font-size:12.5px}.pinned-panel .pin-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.pin{display:flex;align-items:flex-start;gap:6px}.pin-body{flex:1;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:inherit;padding:6px 8px;font:inherit;cursor:pointer;min-width:0}.pin-author{display:block;font-weight:600;font-size:12px;color:var(--ink-2)}.forward-list{list-style:none;margin:8px 0 0;padding:0;max-height:260px;overflow-y:auto}.forward-target{width:100%;text-align:left;padding:7px 9px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;font:inherit;cursor:pointer}.forward-target:hover{border-color:var(--line);background:var(--surface-2)}.composer-quote{display:flex;align-items:flex-start;gap:8px;padding:8px 12px 0}.composer-quote .quoted{flex:1;margin:0}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);z-index:40;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:13px;box-shadow:0 6px 22px #00000059}.unreads{padding:18px 22px;max-width:900px}.unreads-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.unreads-head h1{font-size:18px;margin:0}.unreads-head .btn{margin-left:auto}.unread-groups{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.unread-group-head{display:flex;align-items:center;gap:8px}.unread-group-head h2{font-size:14px;margin:0}.unread-messages{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.unread-message{display:block;padding:6px 8px;border-radius:8px;color:inherit;text-decoration:none}.unread-message:hover{background:var(--surface-2)}.unread-author{font-weight:600;font-size:12.5px;color:var(--ink-2)}.composer-note{grid-area:composer;margin:0;padding:14px 16px;border-top:1px solid var(--line);color:var(--ink-3);font-size:13px}.conversation-headings h1 .pill{margin-left:8px;vertical-align:middle;font-size:11px}.rd-code{margin:6px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface-2)}.rd-code-head{display:flex;align-items:center;justify-content:space-between;padding:3px 6px 3px 10px;border-bottom:1px solid var(--line);font-size:11.5px;color:var(--ink-3)}.rd-code .rd-pre{margin:0;border:none;border-radius:0;background:transparent;overflow-x:auto}.composer-language{height:26px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-size:12px}.hljs-comment,.hljs-quote{color:#7b8794;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-section,.hljs-doctag,.hljs-name{color:#c792ea}.hljs-string,.hljs-attr,.hljs-addition,.hljs-regexp{color:#a5d6a7}.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-meta{color:#f5b971}.hljs-title,.hljs-function .hljs-title,.hljs-class .hljs-title{color:#82aaff}.hljs-type,.hljs-built_in,.hljs-builtin-name{color:#7fdbca}.hljs-deletion{color:#ef9a9a}.link-preview{display:flex;gap:10px;align-items:flex-start;max-width:460px;margin-top:6px;padding:8px 10px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;background:var(--surface-2);color:inherit;text-decoration:none}.link-preview:hover{background:var(--surface-3, var(--surface-2))}.link-preview-image{width:72px;height:72px;object-fit:cover;border-radius:6px;flex:none}.link-preview-text{display:flex;flex-direction:column;gap:2px;min-width:0}.link-preview-site{font-size:11.5px;color:var(--ink-3)}.link-preview-title{font-weight:600;font-size:13px}.link-preview-description{font-size:12.5px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.palette-open{position:absolute;right:6px;background:none;border:0;padding:2px;cursor:pointer}.search-screen,.files-screen,.storage-page{display:flex;flex-direction:column;gap:14px;min-width:0}.search-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px}.search-head h1{margin:0;font-size:20px}.search-form{display:flex;gap:8px;flex:1;min-width:260px}.search-input{flex:1}.search-tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line)}.search-tabs .tab{padding:8px 12px;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--ink-2);cursor:pointer;font:inherit}.search-tabs .tab-active{color:var(--accent-ink);border-bottom-color:var(--accent);font-weight:600}.search-count{margin-left:auto;font-size:13px}.search-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.search-filters .field{margin-bottom:0;min-width:150px}.search-filters .field-check{flex-direction:row;align-items:center;gap:6px}.search-filters-note{flex-basis:100%;margin:0;font-size:12px}.search-chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 6px 3px 10px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface-2);font-size:13px}.chip-remove{background:none;border:0;color:var(--ink-2);cursor:pointer;font-size:15px;line-height:1;padding:0 2px}.search-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.search-result-link{display:block;padding:12px 14px;color:inherit;text-decoration:none;background:none;border:0;width:100%;text-align:left;cursor:pointer;font:inherit}.search-result-link:hover{background:var(--surface-2)}.search-result-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}.search-result-author{font-weight:600}.search-result-where{color:var(--ink-2);font-size:13px}.search-result-when{margin-left:auto;color:var(--ink-3);font-size:12px}.search-result-excerpt{margin:0;color:var(--ink);line-height:1.5}.search-result-files{margin:6px 0 0;font-size:12px}.search-person-text{display:flex;flex-direction:column;gap:2px;min-width:0}mark.search-hit{background:var(--accent-soft);color:var(--accent-ink);border-radius:3px;padding:0 1px}.file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.file-row{display:flex;align-items:center;gap:12px;padding:10px 12px}.file-row-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0;color:inherit;text-decoration:none}.file-thumb{width:48px;height:48px;border-radius:8px;object-fit:cover;background:var(--surface-2);flex:none}.file-thumb-kind{display:grid;place-items:center;font-size:11px;color:var(--ink-3);text-transform:uppercase}.file-row-text{display:flex;flex-direction:column;gap:2px;min-width:0}.file-row-text .name{font-weight:600;overflow-wrap:anywhere}.files-panel{overflow-y:auto}.palette{position:fixed;top:14vh;left:50%;transform:translate(-50%);width:min(680px,92vw);background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 24px 60px #0000007f;padding:12px;z-index:60}.palette-input{font-size:15px}.palette-hint{margin:6px 2px 8px;font-size:12px}.palette-list{list-style:none;margin:0;padding:0;max-height:52vh;overflow-y:auto}.palette-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;min-width:0}.palette-item-active{background:var(--accent-soft)}.palette-kind{flex:none;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);min-width:92px}.palette-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-message{color:var(--ink-2)}.palette-where{margin-left:auto;flex:none;color:var(--ink-2);font-size:12px}.palette-empty{padding:10px;font-size:13px}.banner{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius);margin-bottom:14px;border:1px solid var(--line-strong)}.banner-warn{background:var(--warn-soft);border-color:var(--warn)}.banner-danger{background:var(--danger-soft);border-color:var(--danger)}.storage-summary{display:flex;flex-wrap:wrap;gap:28px}.storage-number{font-size:22px;font-weight:600}.storage-meter{width:220px;height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-top:6px}.storage-fill{display:block;height:100%;background:var(--ok)}.storage-fill-warn{background:var(--warn)}.storage-fill-danger{background:var(--danger)}.palette-error{margin:0 2px 8px;color:var(--danger);font-size:13px}.call-panel{position:fixed;right:16px;bottom:16px;z-index:40;width:min(360px,calc(100vw - 32px));padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 12px 32px #00000073;display:grid;gap:8px}.call-panel-problem{display:block;color:var(--danger)}.call-people{display:grid;gap:8px}.call-person{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px}.call-person video{width:100%;border-radius:8px;background:var(--surface-2)}.call-status{margin:0;font-variant-numeric:tabular-nums;color:var(--ink-2)}.call-sharing{margin:0;padding:4px 8px;border-radius:6px;background:var(--surface-2);color:var(--warn);font-size:13px}.call-problem{margin:0;color:var(--danger);font-size:13px}.call-controls,.call-actions,.call-devices{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.call-devices select{padding:4px 6px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink);font-size:12px}.call-add{position:relative}.call-add-menu{position:absolute;right:0;bottom:calc(100% + 6px);width:240px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);display:grid;gap:6px}.call-add-menu ul{margin:0;padding:0;list-style:none;display:grid;gap:4px}.call-incoming{position:fixed;inset:0 0 auto 50%;transform:translate(-50%);z-index:50;margin-top:12vh;width:min(380px,calc(100vw - 32px));padding:20px;border:1px solid var(--accent);border-radius:12px;background:var(--surface);box-shadow:0 16px 48px #0000008c;text-align:center;display:grid;gap:10px}.call-incoming-actions{display:flex;justify-content:center;gap:8px}.call-line{gap:8px}.channel-call{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:8px 10px;border:1px solid var(--accent);border-radius:8px;background:var(--accent-soft);font-size:13px}.channel-call span{flex:1;min-width:0}.meeting{display:grid;gap:8px}.meeting-people{margin:0;padding:0;list-style:none;display:grid;gap:6px;max-height:40vh;overflow-y:auto}.meeting-person{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;font-size:13px}.meeting-person[data-speaking=true]{background:var(--accent-soft)}.meeting-person video{width:100%;border-radius:8px;background:var(--surface-2)}.meeting-screen{margin:0;display:grid;gap:4px}.meeting-screen video{width:100%;max-height:45vh;border-radius:8px;background:var(--surface-2);object-fit:contain}.meeting-screen figcaption{font-size:12px}.meeting-note{font-size:12px}.presence-dot{display:inline-block;flex:0 0 auto;border-radius:999px;margin-right:6px;vertical-align:baseline;box-sizing:border-box}.presence-online{background:var(--ok)}.presence-away{background:var(--warn)}.presence-offline{background:transparent;border:2px solid var(--line-strong)}.presence-in-call{background:var(--accent);box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--accent)}.status-badge{display:inline-flex;align-items:baseline;gap:4px;margin-left:6px;font-weight:400;font-size:13px;color:var(--ink-2);min-width:0}.status-badge .status-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:18ch}.local-time{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.local-time[data-outside=true]{color:var(--warn)}.activity-list,.saved-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.activity-row .activity-link{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;color:inherit;text-decoration:none}.activity-row .activity-link:hover{background:var(--surface-2)}.activity-text{display:grid;gap:2px;min-width:0}.activity-what{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-weight:500}.activity-preview{color:var(--ink-2);max-height:4.5em;overflow:hidden}.saved-row .saved-link{display:grid;gap:4px;color:inherit;text-decoration:none}.saved-row .row{margin-top:8px}.call-self{position:absolute;right:12px;bottom:12px;width:160px;max-width:34%;aspect-ratio:4 / 3;object-fit:cover;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface-2);transform:scaleX(-1);z-index:2}.call-panel-expanded{inset:0;width:100%;max-width:none;height:100%;border-radius:0;border:none;z-index:60;display:grid;grid-template-rows:auto 1fr auto;gap:12px;padding:20px;cursor:default}.call-panel-expanded .call-people,.call-panel-expanded .meeting-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;align-content:start;overflow-y:auto;min-height:0}.call-panel-expanded video[data-peer],.call-panel-expanded video[data-testid=meeting-video]{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:8px;background:#000}.call-panel-expanded .meeting-screen video,.call-panel-expanded video[data-screen]{width:100%;max-height:60vh;object-fit:contain;background:#000}.call-panel-expanded .call-self{width:220px;max-width:22%}.call-panel[data-expanded=false]{cursor:zoom-in}
