:root{--font-sans:-apple-system, "SF Pro Text", "Inter", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Berkeley Mono", ui-monospace, monospace;--fs:14px;--fs-label:10px;--lh:1.4;--space-1:1px;--space-2:2px;--space-3:3px;--space-4:4px;--space-6:6px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--space-32:32px;--space-36:36px;--pad:var(--space-12);--gap:var(--space-6);--radius-sm:2px;--radius:4px;--radius-md:6px;--color-bg:oklch(96.94% .006 250);--color-surface:oklch(100% 0 0);--color-surface-hover:oklch(93.83% .005 250);--color-fg:oklch(26.64% .009 230);--color-muted:oklch(52.12% .004 259);--color-muted-fg:oklch(48.67% .013 238);--color-border:oklch(84.43% .013 19);--color-disabled:oklch(93.83% .005 250);--color-primary:oklch(82.31% .005 327);--color-primary-border:oklch(64.34% .019 229);--color-primary-fg:oklch(27.33% .026 223);--color-primary-hover:oklch(77.82% .006 265);--color-focus-ring:oklch(64.34% .019 229/.25);--color-ghost-bg:oklch(64.34% .019 229/.08);--color-danger-fg:oklch(43.36% .128 15);--color-danger-border:oklch(63.73% .076 13);--color-danger-bg-hover:oklch(91.81% .044 22);--color-ok:oklch(59.2% .034 123);--color-toggle-off:oklch(88.85% .018 24);--color-tag-bg:oklch(93.83% .005 250);--color-badge-bg:oklch(91.3% .018 24);--color-badge-fg:oklch(48.67% .013 238);--color-badge-admin-bg:oklch(85.18% .045 22);--color-badge-admin-fg:oklch(40.57% .11 14);--color-badge-bot-bg:oklch(89.65% .041 38);--color-badge-bot-fg:oklch(43.75% .036 40);--color-av-bg:oklch(84.43% .013 19);--color-av-fg:oklch(27.33% .026 223);--color-chat-bg:oklch(93.83% .005 250);--color-them-bg:oklch(100% 0 0);--color-them-border:oklch(84.43% .013 19);--color-me-bg:oklch(82.31% .005 327);--color-me-border:oklch(64.34% .019 229);--color-me-fg:oklch(23.78% .028 218);--color-me-muted:oklch(48.29% .031 224);--color-rx-on-bg:oklch(86.75% .008 4);--color-reply-bg:oklch(64.34% .019 229/.1);--color-sticker-bg:oklch(96.94% .006 250);--color-status-bg:oklch(93.83% .005 250)}@media (width<=767.98px){:root{--space-4:5px;--space-6:7px;--space-8:10px;--space-12:14px;--fs:16px}}*,:before,:after{box-sizing:border-box}html,body{font-family:var(--font-sans);font-size:var(--fs);line-height:var(--lh);color:var(--color-fg);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{min-height:100vh}button,input,textarea,select{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}code,kbd,samp,pre{font-family:var(--font-mono)}a{color:var(--color-primary-border);text-decoration:none}a:hover{text-decoration:underline}.compact{--fs:12px;--pad:var(--space-8);--gap:var(--space-4)}.label{font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes exo-spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.exo-spinner{animation-duration:1.5s}}@keyframes exo-progress-slide{0%{transform:translate(-120%)}to{transform:translate(320%)}}@media (prefers-reduced-motion:reduce){.exo-progress--indeterminate:after{animation-duration:2.4s}}@keyframes exo-typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.exo-typing-indicator [data-dots] i{animation-duration:2.5s}}@media (width<=767.98px){.exo-layout-shell--view-chat>[slot=sidebar],.exo-layout-shell--view-sidebar>[slot=chat]{display:none}}@media (width>=768px){.exo-layout-shell{grid-template-columns:var(--exo-layout-sidebar-width) 1fr}.exo-layout-shell>[slot=sidebar]{grid-area:1/1}.exo-layout-shell>[slot=chat]{grid-area:1/2}.exo-layout-shell>[slot=footer]{display:block}}@keyframes exo-connection-status-pulse{0%,to{opacity:1}50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.exo-connection-status--reconnecting:before{animation:none}}html,body{height:100%}body{-webkit-user-select:none;user-select:none;margin:0}#app{height:100%}input,textarea,[contenteditable=true],.exo-selectable,.exo-message .msg-text,.exo-message .msg-text *{-webkit-user-select:text;user-select:text}.exo-avatar{width:24px;height:24px;font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-av-fg);background:var(--color-av-bg);vertical-align:middle;-webkit-user-select:none;user-select:none;text-transform:uppercase;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;line-height:1;display:inline-flex}.exo-avatar--sm{width:16px;height:16px;font-size:8px}.exo-avatar--lg{width:40px;height:40px;font-size:12px}.exo-avatar img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.exo-avatar-stack{vertical-align:middle;align-items:center;display:inline-flex}.exo-avatar-stack>.exo-avatar{border:2px solid var(--color-surface);margin-left:-6px}.exo-avatar-stack>.exo-avatar:first-child{margin-left:0}.exo-avatar-stack__overflow{min-width:24px;height:24px;padding:0 var(--space-4);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted-fg);background:var(--color-tag-bg);border:2px solid var(--color-surface);border-radius:999px;justify-content:center;align-items:center;margin-left:-6px;font-weight:600;display:inline-flex}.exo-badge{padding:1px var(--space-4);font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.05em;color:var(--color-badge-fg);background:var(--color-badge-bg);border-radius:var(--radius-sm);white-space:nowrap;vertical-align:middle;align-items:center;line-height:1.4;display:inline-flex}.exo-badge--admin{color:var(--color-badge-admin-fg);background:var(--color-badge-admin-bg)}.exo-badge--bot{color:var(--color-badge-bot-fg);background:var(--color-badge-bot-bg)}.exo-button{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-12);font-family:var(--font-sans);font-size:var(--fs);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-fg);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;vertical-align:middle;line-height:1;display:inline-flex}.exo-button:hover{background:var(--color-surface-hover)}.exo-button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.exo-button--primary{background:var(--color-primary);border-color:var(--color-primary-border);color:var(--color-primary-fg)}.exo-button--primary:hover{background:var(--color-primary-hover)}.exo-button--danger{background:var(--color-surface);border-color:var(--color-danger-border);color:var(--color-danger-fg)}.exo-button--danger:hover{background:var(--color-danger-bg-hover)}.exo-button--ghost{color:var(--color-fg);background:0 0;border-color:#0000}.exo-button--ghost:hover{background:var(--color-ghost-bg)}.exo-button--icon{padding:var(--space-4);aspect-ratio:1;background:0 0;border-color:#0000}.exo-button--icon:hover{background:var(--color-ghost-bg)}.exo-button--sm{font-size:var(--fs-label);padding:var(--space-4) var(--space-8)}.exo-button:disabled,.exo-button[aria-disabled=true]{background:var(--color-disabled);border-color:var(--color-border);color:var(--color-muted);cursor:not-allowed}.exo-button:disabled:hover,.exo-button[aria-disabled=true]:hover{background:var(--color-disabled)}.exo-chat-list-item{column-gap:var(--space-6);padding:var(--space-6) var(--space-8);font-family:var(--font-sans);color:var(--color-fg);cursor:pointer;border-bottom:1px solid var(--color-border);-webkit-user-select:none;user-select:none;grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;display:grid}.exo-chat-list-item:hover{background:var(--color-surface-hover)}.exo-chat-list-item:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.exo-chat-list-item--active{background:var(--color-surface-hover);border-left:2px solid var(--color-primary-border);padding-left:calc(var(--space-8) - 2px)}.exo-chat-list-item [data-avatar]{grid-area:1/1/span 2;align-self:center;align-items:center;display:flex}.exo-chat-list-item [data-name]{font-size:var(--fs);color:var(--color-fg);text-overflow:ellipsis;white-space:nowrap;grid-area:1/2;font-weight:600;overflow:hidden}.exo-chat-list-item--dm [data-name]:before{content:"@ ";color:var(--color-muted);font-family:var(--font-mono);font-weight:400}.exo-chat-list-item:not(.exo-chat-list-item--dm) [data-name]:before{content:"# ";color:var(--color-muted);font-family:var(--font-mono);font-weight:400}.exo-chat-list-item [data-preview]{font-size:var(--fs-label);color:var(--color-muted-fg);text-overflow:ellipsis;white-space:nowrap;grid-area:2/2;overflow:hidden}.exo-chat-list-item [data-unread]{min-width:18px;height:18px;padding:0 var(--space-4);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-primary-fg);background:var(--color-primary);border:1px solid var(--color-primary-border);border-radius:999px;grid-area:1/3/span 2;justify-content:center;align-self:center;align-items:center;font-weight:600;display:inline-flex}.exo-checkbox{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;vertical-align:middle;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex;position:relative}.exo-checkbox:before{content:"";background:var(--color-primary-border);border-radius:1px;width:8px;height:8px;transition:transform 60ms ease-out;transform:scale(0)}.exo-checkbox--checked:before{transform:scale(1)}.exo-checkbox--indeterminate:before{content:"";background:var(--color-primary-border);border-radius:1px;width:8px;height:2px;transform:scale(1)}.exo-checkbox:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.exo-checkbox--checked,.exo-checkbox--indeterminate{border-color:var(--color-primary-border)}.exo-checkbox--disabled{cursor:not-allowed;opacity:.5}.exo-composer-shell{align-items:flex-end;gap:var(--space-6);padding:var(--space-6) var(--space-8) calc(var(--space-6) + env(safe-area-inset-bottom,0px));background:var(--color-surface);border-top:1px solid var(--color-border);display:flex}.exo-composer-shell>textarea{min-height:calc(var(--fs) * var(--lh) + var(--space-6) * 2 + 2px);max-height:120px;padding:var(--space-6) var(--space-8);font-family:var(--font-sans);font-size:var(--fs);line-height:var(--lh);color:var(--color-fg);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);resize:none;outline:none;flex:1;overflow-y:auto}.exo-composer-shell>textarea:focus-visible{border-color:var(--color-primary-border);outline:2px solid var(--color-focus-ring)}.exo-composer-shell>button{padding:var(--space-6) var(--space-12);font-family:var(--font-sans);font-size:var(--fs);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;background:var(--color-surface);color:var(--color-fg);flex-shrink:0;line-height:1}.exo-composer-shell>button[data-action=attach]{width:28px;height:28px;padding:0;font-size:18px;line-height:1}.exo-composer-shell>button[data-action=send]{background:var(--color-primary);border-color:var(--color-primary-border);color:var(--color-primary-fg)}.exo-composer-shell>button[data-action=send]:hover{background:var(--color-primary-hover)}.exo-composer-shell>button[data-action=send]:disabled{background:var(--color-disabled);color:var(--color-muted);border-color:var(--color-border);cursor:not-allowed}.exo-composer-shell>button:hover{background:var(--color-surface-hover)}.exo-connection-status{align-items:center;gap:var(--space-6);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-fg);line-height:1.4;display:inline-flex}.exo-connection-status:before{content:"";background:var(--color-muted);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.exo-connection-status--connected{color:var(--color-ok)}.exo-connection-status--connected:before{background:var(--color-ok)}.exo-connection-status--reconnecting:before{background:var(--color-danger-fg);animation:.9s ease-in-out infinite exo-connection-status-pulse}.exo-connection-status[tabindex="0"]{cursor:pointer}.exo-connection-status--offline:before{background:var(--color-muted)}@media (prefers-reduced-motion:reduce){.exo-connection-status--reconnecting:before{animation:none}}.exo-dropdown-menu{min-width:160px;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);z-index:100;display:none;position:absolute;box-shadow:0 4px 12px oklch(0% 0 0/.08)}.exo-dropdown-menu--open{display:block}.exo-dropdown-menu>[data-menu-item],.exo-dropdown-menu>button,.exo-dropdown-menu>a{justify-content:space-between;align-items:center;gap:var(--space-8);width:100%;padding:var(--space-6) var(--space-8);font-family:var(--font-sans);font-size:var(--fs);color:var(--color-fg);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:0;line-height:1;text-decoration:none;display:flex}.exo-dropdown-menu>[data-menu-item]:hover,.exo-dropdown-menu>button:hover,.exo-dropdown-menu>a:hover{background:var(--color-surface-hover)}.exo-dropdown-menu>.danger,.exo-dropdown-menu>[data-menu-item].danger{color:var(--color-danger-fg)}.exo-dropdown-menu>.danger:hover{background:var(--color-danger-bg-hover)}.exo-dropdown-menu kbd{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted);padding:1px var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg)}.exo-dropdown-menu hr,.exo-dropdown-menu>[data-menu-separator]{height:1px;margin:var(--space-4) 0;background:var(--color-border);border:0;display:block}.exo-edit-strip{justify-content:space-between;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-8);font-size:var(--fs-label);color:var(--color-muted-fg);background:var(--color-reply-bg);border-top:1px solid var(--color-border);border-left:2px solid var(--color-primary-border);line-height:1.4;display:flex}.exo-edit-strip [data-label]{font-family:var(--font-mono);color:var(--color-primary-border);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.exo-edit-strip button[data-action=dismiss]{border-radius:var(--radius-sm);width:18px;height:18px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:14px;display:inline-flex}.exo-edit-strip button[data-action=dismiss]:hover{background:var(--color-surface-hover);color:var(--color-fg)}.exo-emoji-picker{z-index:100;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:0 2px 8px oklch(0% 0 0/.12)}.exo-emoji-picker .emoji-grid{gap:var(--space-2);grid-template-columns:repeat(6,1fr);display:grid}.exo-emoji-picker .emoji-grid button{all:unset;border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;display:flex}.exo-emoji-picker .emoji-grid button:hover{background:var(--color-surface-hover)}.exo-emoji-picker .emoji-grid button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.exo-forward-strip{justify-content:space-between;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-8);font-size:var(--fs-label);color:var(--color-muted-fg);background:var(--color-reply-bg);border-top:1px solid var(--color-border);border-left:2px solid var(--color-primary-border);line-height:1.4;display:flex}.exo-forward-strip [data-label]{font-family:var(--font-mono);color:var(--color-primary-border);white-space:nowrap;font-weight:600}.exo-forward-strip [data-sender]{font-family:var(--font-mono);color:var(--color-primary-border);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.exo-forward-strip [data-chat]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.exo-forward-strip button[data-action=dismiss]{border-radius:var(--radius-sm);width:18px;height:18px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:14px;display:inline-flex}.exo-forward-strip button[data-action=dismiss]:hover{background:var(--color-surface-hover);color:var(--color-fg)}.exo-icon{vertical-align:-.125em;width:1em;height:1em;color:inherit;flex-shrink:0;display:inline-flex}.exo-icon svg{fill:currentColor;width:100%;height:100%;display:block}.exo-input{width:100%;max-width:100%;display:inline-block}.exo-input>input{width:100%;padding:var(--space-6) var(--space-8);font-family:var(--font-sans);font-size:var(--fs);color:var(--color-fg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);outline:none;line-height:1.4;display:block}.exo-input>input::placeholder{color:var(--color-muted)}.exo-input>input:hover{border-color:var(--color-primary-border)}.exo-input>input:focus-visible{border-color:var(--color-primary-border);outline:2px solid var(--color-focus-ring);outline-offset:0}.exo-input>input:disabled{background:var(--color-disabled);color:var(--color-muted);cursor:not-allowed}.exo-input>input:read-only{background:var(--color-disabled)}.exo-kbd{min-width:16px;padding:1px var(--space-4);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted-fg);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 1px 0 var(--color-border);vertical-align:middle;justify-content:center;align-items:center;line-height:1.4;display:inline-flex}.exo-layout-shell{--exo-layout-sidebar-width:280px;grid-template-rows:1fr auto;grid-template-columns:1fr;width:100%;height:100%;display:grid;overflow:hidden}.exo-layout-shell>[slot=sidebar]{background:var(--color-bg);border-right:1px solid var(--color-border);flex-direction:column;grid-area:1/1;min-height:0;display:flex;overflow:hidden}.exo-layout-shell>[slot=chat]{background:var(--color-chat-bg);flex-direction:column;grid-area:1/1;min-height:0;display:flex;overflow:hidden}.exo-layout-shell>[slot=footer]{grid-area:2/1/auto/-1;display:none}@media (width<=767.98px){.exo-layout-shell--view-chat>[slot=sidebar],.exo-layout-shell--view-sidebar>[slot=chat]{display:none}}@media (width>=768px){.exo-layout-shell{grid-template-columns:var(--exo-layout-sidebar-width) 1fr}.exo-layout-shell>[slot=sidebar]{grid-area:1/1}.exo-layout-shell>[slot=chat]{grid-area:1/2}.exo-layout-shell>[slot=footer]{display:block}}.lightbox-backdrop{z-index:1000;background:#000000e6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-image{object-fit:contain;max-width:90vw;max-height:90vh}.lightbox-close{top:var(--space-12);right:var(--space-12);color:#fff;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:24px;display:flex;position:absolute}.lightbox-nav{color:#fff;cursor:pointer;border-radius:var(--radius);background:#ffffff1a;border:none;justify-content:center;align-items:center;width:48px;height:48px;font-size:32px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-prev{left:var(--space-12)}.lightbox-next{right:var(--space-12)}.exo-meeting-controls{gap:var(--space-6);padding:var(--space-6);padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(12px);background:#0a0a0ad9;border-top:1px solid #ffffff14;grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.exo-meeting-controls__btn{min-height:44px;padding:var(--space-6) var(--space-8);font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;border-radius:var(--radius);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff0f;border:1px solid #ffffff40;font-size:10px;line-height:1}.exo-meeting-controls__btn:hover{background:#ffffff1f}.exo-meeting-controls__btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.exo-meeting-controls__btn[aria-pressed=true]{background:#ffffff2e;border-color:#ffffff80}.exo-meeting-controls__btn--danger{color:#fca5a5;border-color:#ef444499}.exo-meeting-controls__btn--danger:hover{color:#fff;background:#ef4444d9;border-color:#ef4444d9}@media (width>=640px){.exo-meeting-controls{justify-content:center;gap:var(--space-12);padding:var(--space-12);padding-bottom:calc(var(--space-12) + env(safe-area-inset-bottom,0px));grid-auto-columns:max-content}.exo-meeting-controls__btn{min-width:128px;padding:var(--space-6) var(--space-16,16px)}}.exo-device-select{gap:var(--space-4);flex-direction:column;display:flex}.exo-device-select__label{font-family:var(--font-mono);color:var(--color-fg-muted);-webkit-user-select:none;user-select:none;font-size:10px}.exo-device-select__input{padding:var(--space-4) var(--space-6);font-family:var(--font-sans);font-size:var(--fs);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-fg);cursor:pointer;line-height:1}.exo-device-select__input:disabled{opacity:.5;cursor:not-allowed}.exo-device-select__input:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.exo-meeting{color:#fff;background:#0a0a0a;grid-template-rows:1fr auto;width:100%;height:100dvh;display:grid;overflow:hidden}.exo-meeting__error{place-content:center;gap:var(--space-12);padding:var(--space-12);text-align:center;grid-row:1/-1;display:grid}.exo-meeting__error p{font-family:var(--font-mono);color:#ffffffb3;max-width:40ch;margin:0;font-size:10px}.exo-meeting__error button{padding:var(--space-6) var(--space-12);font-family:var(--font-mono);border-radius:var(--radius);color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff4d;font-size:10px;line-height:1}.exo-meeting__error button:hover{background:#ffffff14}.exo-meeting-preview{gap:var(--space-12);padding:var(--space-12);padding-bottom:calc(var(--space-12) + env(safe-area-inset-bottom,0px));grid-row:1/-1;grid-template-rows:auto auto auto auto auto;align-content:start;width:100%;display:grid;overflow-y:auto}.exo-meeting-preview__video{aspect-ratio:3/4;border-radius:var(--radius);background:#000;border:1px solid #ffffff1f;place-items:center;display:grid;overflow:hidden}.exo-meeting-preview__video video{object-fit:cover;width:100%;height:100%}.exo-meeting-preview__camoff{font-family:var(--font-mono);color:#ffffff8c;font-size:10px}.exo-meeting-preview__controls{gap:var(--space-6);grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.exo-meeting-preview__controls button{min-height:44px;padding:var(--space-6) var(--space-8);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.02em;border-radius:var(--radius);color:#fff;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff40;font-size:10px;line-height:1}.exo-meeting-preview__controls button:hover{background:#ffffff1f}.exo-meeting-preview__controls button[aria-pressed=true]{background:#ffffff2e;border-color:#ffffff80}.exo-meeting-preview__devices{gap:var(--space-6);grid-template-columns:1fr;display:grid}.exo-meeting-preview .exo-device-select__label{color:#ffffff8c}.exo-meeting-preview .exo-device-select__input{color:#fff;background:#ffffff0f;border-color:#ffffff40}.exo-meeting-preview .exo-device-select__input option{color:#fff;background:#1a1a1a}.exo-meeting-preview__note{font-family:var(--font-mono);color:#ffffff8c;margin:0;font-size:10px;line-height:1.4}.exo-meeting-preview__actions{gap:var(--space-6);grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.exo-meeting-preview__actions button{min-height:44px;padding:var(--space-6) var(--space-8);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.02em;border-radius:var(--radius);color:#fff;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff40;font-size:10px;line-height:1}.exo-meeting-preview__actions button:hover:not(:disabled){background:#ffffff1f}.exo-meeting-preview__actions button:disabled{opacity:.4;cursor:not-allowed}@media (width>=640px){.exo-meeting-preview__video{aspect-ratio:16/9}.exo-meeting-preview__devices{grid-template-columns:repeat(3,1fr)}.exo-meeting-preview__actions{grid-auto-columns:max-content;grid-auto-flow:column;justify-content:flex-end}.exo-meeting-preview__actions button{min-width:128px}}.exo-meeting-stage{background:#0a0a0a;grid-template-rows:1fr;grid-template-columns:1fr;min-height:0;display:grid;overflow:hidden}.exo-meeting-stage__waiting,.exo-meeting-stage__remote,.exo-meeting-stage__local{grid-area:1/1}.exo-meeting-stage__waiting{font-family:var(--font-mono);color:#ffffff8c;text-align:center;padding:var(--space-12);place-self:center;font-size:10px}.exo-meeting-stage__remote{object-fit:cover;background:#000;width:100%;height:100%}.exo-meeting-stage__local{margin:var(--space-6);aspect-ratio:3/4;border-radius:var(--radius);object-fit:cover;z-index:1;background:#000;border:1px solid #ffffff40;place-self:start end;width:96px;box-shadow:0 4px 12px #0006}@media (width>=640px){.exo-meeting-stage__local{margin:var(--space-12);width:144px}}@media (width>=1024px){.exo-meeting-stage__local{width:192px}}.exo-message-bubble{max-width:80%;padding:var(--space-6) var(--space-12);font-size:var(--fs);line-height:var(--lh);color:var(--color-fg);background:var(--color-them-bg);border:1px solid var(--color-them-border);border-radius:var(--radius-sm) var(--radius-md) var(--radius-md) var(--radius-md);word-wrap:break-word;overflow-wrap:break-word;display:inline-block}.exo-message-bubble>p{margin:0}.exo-message-bubble--me{background:var(--color-them-bg);border-color:var(--color-them-border);color:var(--color-fg)}.exo-message-bubble--image,.exo-message-bubble--file{padding:var(--space-8) var(--space-12)}.exo-message-bubble [data-tombstone]{margin-left:var(--space-6);font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);display:inline-block}.exo-message-bubble--deleted{color:var(--color-muted);background:0 0;border-style:dashed;font-style:italic}.exo-message-bubble--deleted>:not([data-tombstone]){display:none}.exo-modal-backdrop{z-index:900;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:var(--space-16);background:oklch(0% 0 0/.55);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.exo-modal{background:var(--color-surface);color:var(--color-fg);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 12px 32px oklch(0% 0 0/.35)}.exo-modal--sm{width:320px}.exo-modal--md{width:480px}.exo-modal--lg{width:640px}.exo-modal-header{align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-8) var(--space-8) var(--space-12);border-bottom:1px solid var(--color-border);background:var(--color-bg);display:flex}.exo-modal-title{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.02em;text-transform:uppercase;color:var(--color-muted-fg);text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;margin:0;font-weight:600;overflow:hidden}.exo-modal-close{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--color-muted-fg);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.exo-modal-close svg{width:12px;height:12px;display:block}.exo-modal-close:hover{background:var(--color-surface-hover);color:var(--color-fg)}.exo-modal-close:focus-visible{border-color:var(--color-primary-border);box-shadow:0 0 0 2px var(--color-focus-ring);outline:none}.exo-modal-close:disabled{opacity:.5;cursor:not-allowed}.exo-modal-body{padding:var(--space-16);flex:auto;overflow-y:auto}.exo-modal-actions{padding:var(--space-12) var(--space-16);border-top:1px solid var(--color-border);justify-content:flex-end;gap:var(--space-8);flex:none;display:flex}@media (width<=639px){.exo-modal-backdrop{background:var(--color-bg);-webkit-backdrop-filter:none;backdrop-filter:none;justify-content:stretch;align-items:stretch;padding:0}.exo-modal,.exo-modal--sm,.exo-modal--md,.exo-modal--lg{width:100%;max-width:100%;max-height:100vh;box-shadow:none;border:none;border-radius:0}.exo-modal-actions{padding-bottom:calc(var(--space-12) + env(safe-area-inset-bottom))}}.exo-progress{--exo-progress-value:0%;background:var(--color-border);border-radius:var(--radius-sm);width:100%;height:4px;display:block;position:relative;overflow:hidden}.exo-progress:after{content:"";height:100%;width:var(--exo-progress-value);background:var(--color-primary-border);border-radius:var(--radius-sm);transition:width .12s ease-out;display:block}.exo-progress--indeterminate:after{width:33%;animation:1.1s ease-in-out infinite exo-progress-slide}@media (prefers-reduced-motion:reduce){.exo-progress--indeterminate:after{animation-duration:2.4s}}.exo-radio{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;vertical-align:middle;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.exo-radio:before{content:"";background:var(--color-primary-border);border-radius:50%;width:6px;height:6px;transition:transform 60ms ease-out;transform:scale(0)}.exo-radio--checked:before{transform:scale(1)}.exo-radio--checked{border-color:var(--color-primary-border)}.exo-radio:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.exo-radio--disabled{cursor:not-allowed;opacity:.5}.exo-reaction-chip{align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-6);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted-fg);background:var(--color-tag-bg);border:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;border-radius:3px;line-height:1.2;display:inline-flex}.exo-reaction-chip:hover{background:var(--color-surface-hover)}.exo-reaction-chip--active{background:var(--color-rx-on-bg);border-color:var(--color-primary-border);color:var(--color-fg)}.exo-reaction-chip:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.exo-reaction-chip [data-emoji]{font-family:var(--font-sans);font-size:12px;line-height:1}.exo-reaction-chip [data-count]{font-family:var(--font-mono)}.exo-reaction-chip [data-avatars]{align-items:center;gap:2px;display:inline-flex}.exo-reply-quote{padding:var(--space-4) var(--space-8);margin-bottom:var(--space-4);font-size:var(--fs-label);color:var(--color-muted-fg);background:var(--color-reply-bg);border-left:2px solid var(--color-primary-border);border-radius:var(--radius-sm);text-overflow:ellipsis;white-space:nowrap;max-width:100%;line-height:1.4;display:block;overflow:hidden}.exo-reply-quote [data-author]{font-family:var(--font-mono);color:var(--color-primary-border);margin-right:var(--space-4);font-weight:600;display:inline}.exo-reply-strip{justify-content:space-between;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-8);font-size:var(--fs-label);color:var(--color-muted-fg);background:var(--color-reply-bg);border-top:1px solid var(--color-border);border-left:2px solid var(--color-primary-border);line-height:1.4;display:flex}.exo-reply-strip [data-author]{font-family:var(--font-mono);color:var(--color-primary-border);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.exo-reply-strip button[data-action=dismiss]{border-radius:var(--radius-sm);width:18px;height:18px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:14px;display:inline-flex}.exo-reply-strip button[data-action=dismiss]:hover{background:var(--color-surface-hover);color:var(--color-fg)}.exo-select{width:100%;display:inline-block}.exo-select>select{width:100%;padding:var(--space-6) var(--space-24) var(--space-6) var(--space-8);font-family:var(--font-sans);font-size:var(--fs);color:var(--color-fg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--color-muted-fg) 50%), linear-gradient(135deg, var(--color-muted-fg) 50%, transparent 50%);background-position:calc(100% - 12px),calc(100% - 8px);background-repeat:no-repeat;background-size:4px 4px,4px 4px;outline:none;line-height:1.4;display:block}.exo-select>select:hover{border-color:var(--color-primary-border)}.exo-select>select:focus-visible{border-color:var(--color-primary-border);outline:2px solid var(--color-focus-ring)}.exo-select>select:disabled{background-color:var(--color-disabled);color:var(--color-muted);cursor:not-allowed}.exo-spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary-border);vertical-align:middle;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite exo-spinner-rotate;display:inline-block}@media (prefers-reduced-motion:reduce){.exo-spinner{animation-duration:1.5s}}.exo-status-bar{align-items:center;gap:var(--space-12);padding:var(--space-6) var(--space-8);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted-fg);background:var(--color-status-bg);border-top:1px solid var(--color-border);line-height:1.4;display:flex}.exo-status-bar>[slot=identity]{color:var(--color-fg);font-weight:600}.exo-status-bar>[slot=version]{color:var(--color-muted);margin-left:auto}.exo-sticker{background:var(--color-sticker-bg);border-radius:var(--radius-md);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:80px;height:80px;font-size:64px;line-height:1;display:inline-flex}.exo-sticker--lg{width:120px;height:120px;font-size:96px}.exo-sys-message{padding:var(--space-2) var(--space-12);margin:var(--space-8) auto;font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);background:var(--color-tag-bg);border-radius:999px;justify-content:center;align-items:center;line-height:1.4;display:inline-flex}.exo-sys-message--leave{color:var(--color-muted-fg)}.exo-tag{align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-6);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted-fg);background:var(--color-tag-bg);border-radius:var(--radius-sm);white-space:nowrap;line-height:1.4;display:inline-flex}.exo-tag>button[data-action=remove]{border-radius:var(--radius-sm);width:12px;height:12px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.exo-tag>button[data-action=remove]:hover{background:var(--color-surface-hover);color:var(--color-fg)}.exo-textarea{width:100%;display:block}.exo-textarea>textarea{width:100%;min-height:calc(var(--fs) * var(--lh) + var(--space-12));padding:var(--space-6) var(--space-8);font-family:var(--font-sans);font-size:var(--fs);line-height:var(--lh);color:var(--color-fg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical;outline:none;display:block}.exo-textarea>textarea::placeholder{color:var(--color-muted)}.exo-textarea>textarea:hover{border-color:var(--color-primary-border)}.exo-textarea>textarea:focus-visible{border-color:var(--color-primary-border);outline:2px solid var(--color-focus-ring);outline-offset:0}.exo-textarea>textarea:disabled{background:var(--color-disabled);color:var(--color-muted);cursor:not-allowed}.exo-textarea>textarea:read-only{background:var(--color-disabled)}.exo-textarea--autosize>textarea{resize:none;overflow-y:auto}.exo-toast{background:var(--color-surface);color:var(--color-fg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-8) var(--space-12);align-items:center;gap:var(--space-8);pointer-events:auto;cursor:pointer;border-left-width:2px;min-width:200px;max-width:360px;font-size:11px;display:flex;box-shadow:0 4px 12px oklch(0% 0 0/.25)}.exo-toast--error{border-left-color:var(--color-danger-border)}.exo-toast--success{border-left-color:var(--color-ok)}.exo-toast--info{border-left-color:var(--color-muted-fg)}.exo-toast-message{flex:auto}.exo-toast-close{color:var(--color-muted-fg);cursor:pointer;padding:0 var(--space-4);background:0 0;border:none;font-size:14px;line-height:1}.exo-toast-close:hover{color:var(--color-fg)}#exo-toast-root{z-index:1100;pointer-events:none;gap:6px;display:flex;position:fixed}@media (width>=640px){#exo-toast-root{flex-direction:column-reverse;align-items:flex-end;bottom:16px;right:16px}}@media (width<=639px){#exo-toast-root{left:8px;right:8px;top:calc(8px + env(safe-area-inset-top));flex-direction:column;align-items:stretch}}.exo-toggle{background:var(--color-toggle-off);cursor:pointer;vertical-align:middle;border-radius:999px;flex-shrink:0;width:26px;height:14px;display:inline-block;position:relative}.exo-toggle:after{content:"";background:var(--color-surface);border-radius:50%;width:10px;height:10px;transition:transform 80ms ease-out;position:absolute;top:2px;left:2px}.exo-toggle--checked{background:var(--color-primary-border)}.exo-toggle--checked:after{transform:translate(12px)}.exo-toggle:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.exo-toggle--disabled{cursor:not-allowed;opacity:.5}.exo-tooltip{padding:var(--space-4) var(--space-8);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-fg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);pointer-events:none;z-index:200;white-space:nowrap;line-height:1.4;display:none;position:absolute;box-shadow:0 2px 6px oklch(0% 0 0/.08)}.exo-tooltip--open{display:block}.exo-typing-indicator{align-items:center;gap:var(--space-6);padding:var(--space-4) var(--space-8);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted);display:inline-flex}.exo-typing-indicator [data-dots]{align-items:center;gap:2px;display:inline-flex}.exo-typing-indicator [data-dots] i{background:var(--color-muted);border-radius:50%;width:4px;height:4px;animation:.9s ease-in-out infinite exo-typing-bounce;display:inline-block}.exo-typing-indicator [data-dots] i:nth-child(2){animation-delay:.12s}.exo-typing-indicator [data-dots] i:nth-child(3){animation-delay:.24s}@media (prefers-reduced-motion:reduce){.exo-typing-indicator [data-dots] i{animation-duration:2.5s}}.exo-user-picker{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;min-width:200px;max-width:280px;display:flex;overflow:hidden;box-shadow:0 4px 12px #0000001f}.exo-user-picker__search{padding:var(--space-6) var(--space-8);border-bottom:1px solid var(--color-border)}.exo-user-picker__input{width:100%;font-family:var(--font-mono);font-size:var(--fs);color:var(--color-fg);background:0 0;border:none;outline:none}.exo-user-picker__input::placeholder{color:var(--color-muted-fg)}.exo-user-picker__list{max-height:240px;overflow-y:auto}.exo-user-picker__item{align-items:baseline;gap:var(--space-8);width:100%;padding:var(--space-6) var(--space-12);cursor:pointer;text-align:left;color:var(--color-fg);font-size:var(--fs);background:0 0;border:none;display:flex}.exo-user-picker__item:hover,.exo-user-picker__item:focus-visible{background:var(--color-hover);outline:none}.exo-user-picker__name{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.exo-user-picker__role{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted-fg);flex-shrink:0}.exo-user-picker__empty{padding:var(--space-12);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted-fg);text-align:center}.presence-dot{color:#4caf50;vertical-align:middle;font-size:9px}.presence-count{color:#4caf50;background:#4caf501f;border-radius:3px;margin-left:6px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:9px}.exo-layout-shell .exo-sidebar-header{min-height:calc(var(--space-36,36px) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--space-12) 0;border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;display:flex}.exo-layout-shell .exo-sidebar-title{font-family:var(--font-mono);font-size:var(--fs-label,10px);letter-spacing:.08em;color:var(--color-fg);text-transform:uppercase;font-weight:700}.exo-layout-shell .exo-chat-list{flex:1;min-height:0;overflow-y:auto}.exo-layout-shell .exo-sidebar-profile{align-items:center;gap:var(--space-8,8px);width:100%;min-height:calc(var(--fs) * var(--lh) + var(--space-6) * 4 + 2px + 1px);padding:var(--space-6) var(--space-12) calc(var(--space-6) + env(safe-area-inset-bottom,0px));box-sizing:border-box;border:0;border-top:1px solid var(--color-border);color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;flex-shrink:0;display:flex}.exo-layout-shell .exo-sidebar-profile:hover{background:var(--color-surface-hover)}.exo-layout-shell .exo-sidebar-profile-name{font-family:var(--font-mono);font-size:var(--fs-label,10px);font-weight:500}.exo-chat-list .exo-chat-item-link{color:inherit;text-decoration:none;display:block}.exo-chat-list .exo-chat-item-link:hover,.exo-chat-list .exo-chat-item-link:focus,.exo-chat-list .exo-chat-item-link:visited{color:inherit;text-decoration:none}.exo-update-banner{z-index:1000;align-items:center;gap:var(--space-12);padding:calc(var(--space-6) + env(safe-area-inset-top,0px)) var(--space-12) var(--space-6);background:var(--color-primary);border-bottom:1px solid var(--color-primary-border);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.08em;color:var(--color-primary-fg);text-transform:uppercase;font-weight:600;display:flex;position:fixed;top:0;left:0;right:0}.exo-update-banner__label{flex:1}.composer-staging{gap:var(--space-4);padding:var(--space-6) var(--space-12);border-top:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap;display:flex}.staging-item{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg);width:56px;height:56px;position:relative;overflow:hidden}.staging-thumb{object-fit:cover;width:100%;height:100%}.staging-file-icon{width:100%;height:100%;font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted);justify-content:center;align-items:center;display:flex}.staging-remove{background:var(--color-danger,#e44);color:#fff;text-align:center;cursor:pointer;border:none;border-radius:50%;width:16px;height:16px;padding:0;font-size:10px;line-height:16px;position:absolute;top:-2px;right:-2px}.staging-progress{background:var(--color-border);height:3px;position:absolute;bottom:0;left:0;right:0}.staging-progress-fill{background:var(--color-primary);height:100%;transition:width .2s}.staging-check{color:var(--color-primary);font-size:10px;position:absolute;bottom:2px;right:2px}.staging-item.staging-error{border-color:var(--color-danger,#e44)}.staging-error-overlay{color:#fff;font-family:var(--font-mono);pointer-events:none;background:oklch(0% 0 0/.35);justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex;position:absolute;inset:0}.fixed-chat-chrome{z-index:10;pointer-events:none;display:none;position:fixed;left:0;right:0}.fixed-chat-chrome--top{top:0}.fixed-chat-chrome--bottom{bottom:0}.fixed-chat-chrome .chat-header{align-items:center;gap:var(--space-8);min-height:calc(var(--space-36,36px) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--space-12) 0;border-bottom:1px solid var(--color-border);background:var(--color-chat-bg);font-weight:600;display:flex}.fixed-chat-chrome .chat-header .back-btn{display:inline-flex}@media (width<=767px){.fixed-chat-chrome{display:block}}.exo-message{display:block}.exo-message .msg-header{align-items:center;gap:var(--space-6,6px);margin-bottom:var(--space-2,2px);display:flex}.exo-message .msg-header-spacer{flex:1}.exo-message .sender{font-family:var(--font-mono,monospace);font-size:var(--fs-label,10px);color:var(--color-accent,oklch(56.3% .271 215));text-align:left;background:0 0;border:none;padding:0;font-weight:600}.exo-message .msg-body-area{align-items:flex-start;gap:var(--space-2,2px);flex-direction:column;margin-left:30px;display:flex}.exo-message .msg-meta{align-items:center;gap:var(--space-4,4px);display:flex}.exo-message .timestamp,.exo-message .edited-label{font-family:var(--font-mono,monospace);font-size:var(--fs-label,10px);color:var(--color-muted,oklch(52% 0 0))}.exo-message .sticker-body{text-align:center;padding:var(--space-6,6px) 0;font-size:48px;line-height:1;display:block}.exo-message .msg-body-area .exo-reactions{gap:var(--space-2,2px);flex-wrap:wrap;display:flex}.exo-message .check-marks{font-size:var(--fs-label,10px);color:var(--color-muted)}.exo-message .check-marks.read{color:var(--color-primary-border)}.exo-message .msg-deleted{color:var(--color-muted,oklch(52% 0 0));font-style:italic}.exo-message--system{justify-content:center;display:flex}.exo-message{-webkit-user-select:none;user-select:none}.exo-message .msg-text{-webkit-user-select:text;user-select:text}.exo-message .msg-text p{margin:0}.file-image-grid{gap:var(--space-6);margin:var(--space-12) 0;padding:var(--space-4) 0;border-radius:var(--radius);width:100%;max-width:400px;display:grid}.file-image-grid .file-image-thumb{all:unset;cursor:pointer;border-radius:var(--radius-sm);background:var(--color-bg);display:block;position:relative;overflow:hidden}.file-image-grid .file-image-thumb>img{object-fit:cover;width:100%;height:100%;display:block}.file-image-grid-1{grid-template-columns:1fr}.file-image-grid-1 .file-image-thumb>img{height:auto;max-height:400px}.file-image-grid-2{grid-template-columns:1fr 1fr;grid-auto-rows:200px}.file-image-grid-3{grid-template-rows:110px 110px;grid-template-columns:2fr 1fr;height:228px}.file-image-grid-3 .file-image-thumb:first-child{grid-area:1/1/3}.file-image-grid-4{grid-template-rows:160px 160px;grid-template-columns:1fr 1fr}.file-image-grid-5{grid-template-rows:160px 110px;grid-template-columns:repeat(6,1fr)}.file-image-grid-5 .file-image-thumb:first-child{grid-column:1/4}.file-image-grid-5 .file-image-thumb:nth-child(2){grid-column:4/7}.file-image-grid-5 .file-image-thumb:nth-child(3){grid-column:1/3}.file-image-grid-5 .file-image-thumb:nth-child(4){grid-column:3/5}.file-image-grid-5 .file-image-thumb:nth-child(5){grid-column:5/7}.file-image-grid-many{grid-template-rows:200px 110px auto;grid-template-columns:repeat(4,1fr)}.file-image-grid-many>.file-image-thumb:first-child{grid-area:1/1/auto/-1}.file-image-grid-many>.file-image-show-more{all:unset;min-height:var(--space-36,36px);padding:var(--space-6) var(--space-12);font-family:var(--font-mono);font-size:var(--fs-label,10px);text-transform:uppercase;letter-spacing:.08em;color:var(--color-fg);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;grid-area:3/1/auto/-1;justify-content:center;align-items:center;display:flex}.file-image-grid-many>.file-image-show-more:hover{background:var(--color-surface-hover)}.file-card{align-items:center;gap:var(--space-8);padding:var(--space-6);cursor:pointer;text-align:left;font:inherit;color:inherit;background:0 0;border:none;width:100%;display:flex}.file-card-icon{background:var(--color-bg);border-radius:var(--radius);width:32px;height:32px;font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.file-card-info{min-width:0}.file-card-name{font-size:var(--fs);color:var(--color-fg);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.file-card-size{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-muted)}.exo-message--meeting-invalid{font-family:var(--font-mono,monospace);font-size:var(--fs-label,10px);color:var(--color-muted-fg,oklch(52% 0 0));font-style:italic}.exo-message-meeting{gap:var(--space-6,6px);padding:var(--space-4,4px) 0;flex-direction:column;display:flex}.exo-message-meeting__title{font-family:var(--font-mono,monospace);font-size:var(--fs-label,10px);text-transform:lowercase;color:var(--color-muted-fg,oklch(52% 0 0));letter-spacing:.05em}.exo-message-meeting__join{font-family:var(--font-mono,monospace);font-size:var(--fs,14px);color:var(--color-accent,oklch(56.3% .271 215));text-decoration:none}.exo-message-meeting__join:hover{text-decoration:underline}.msg-menu-quick-react{gap:var(--space-2,2px);padding:var(--space-2) var(--space-4);display:flex}.msg-menu-quick-react>button{all:unset;border-radius:var(--radius,4px);cursor:pointer;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;line-height:1;display:flex}.msg-menu-quick-react>button:hover{background:var(--color-surface-hover)}.exo-user-popup{z-index:200;background:oklch(0% 0 0/.3);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.exo-user-popup .popup-card{background:var(--color-bg,oklch(100% 0 0));border:1px solid var(--color-border,oklch(90% 0 0));border-radius:var(--radius-8,8px);padding:var(--space-24,24px);text-align:center;align-items:center;gap:var(--space-8,8px);flex-direction:column;min-width:240px;display:flex;box-shadow:0 8px 24px oklch(0% 0 0/.12)}.exo-user-popup .popup-card .exo-avatar{margin-bottom:var(--space-8,8px)}.exo-user-popup .popup-name{font-weight:600;font-size:var(--font-size-lg,18px)}.exo-user-popup .popup-card .exo-button{width:100%;margin-top:var(--space-8,8px)}.exo-user-popup .presence-dot{color:#4caf50;vertical-align:middle;font-size:9px}.exo-chat{flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.exo-chat .chat-header{align-items:center;gap:var(--space-8);min-height:calc(var(--space-36,36px) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--space-12) 0;border-bottom:1px solid var(--color-border);font-weight:600;display:flex}.exo-chat .chat-header .back-btn{display:none}.exo-chat .chat-header .menu-wrapper{position:relative}.exo-chat .messages{padding:var(--spacing-md,16px);gap:var(--spacing-xs,4px);background:var(--color-surface);flex-direction:column;flex:1;display:flex;overflow-y:auto}.exo-chat .scroll-sentinel{flex-shrink:0;height:1px}.exo-chat .typing-row{flex-shrink:0}.exo-chat .presence-dot{color:#4caf50;vertical-align:middle;font-size:9px}@media (width<=767px){.exo-chat .chat-header .back-btn{display:inline-flex}}.exo-home{background:var(--color-surface);height:100%;color:var(--color-muted-fg);padding:var(--space-24);place-items:center;display:grid}.exo-home__inner{align-items:center;gap:var(--space-8);text-align:center;flex-direction:column;display:flex}.exo-home__brand{font-family:var(--font-mono);font-size:var(--fs);letter-spacing:.05em;color:var(--color-fg)}.exo-home__hint{font-size:var(--fs-label);font-family:var(--font-mono);text-transform:lowercase}.exo-login{height:100%;padding-top:env(safe-area-inset-top,0px);background:var(--color-bg);justify-content:center;align-items:center;display:flex}.exo-login .login-form{gap:var(--spacing-md,16px);width:100%;max-width:360px;padding:var(--spacing-lg,24px);background:var(--bg-primary,var(--color-bg,oklch(100% 0 0)));border-radius:var(--radius,8px);border:1px solid var(--border,var(--color-border,oklch(90% 0 0)));flex-direction:column;display:flex}.exo-login .login-form h1{font-size:var(--font-size-lg,18px);text-align:center}.exo-login .login-subtitle{text-align:center;color:var(--color-muted);font-size:var(--font-size-sm,13px)}.exo-login .login-error{color:oklch(50.63% .192 17);font-size:var(--font-size-sm,13px);text-align:center}.exo-theme-selector{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-8) var(--space-12);gap:var(--space-6);background:var(--color-surface);flex-direction:column;min-inline-size:0;display:flex}.exo-theme-selector>legend{font-family:var(--font-mono);font-size:var(--fs-label);text-transform:lowercase;color:var(--color-muted-fg);padding:0 var(--space-4)}.exo-theme-selector label{align-items:center;gap:var(--space-8);font-size:var(--fs);color:var(--color-fg);cursor:pointer;display:flex}.exo-profile{background:var(--color-surface);flex-direction:column;height:100%;display:flex;overflow-y:auto}.exo-profile .profile-header{align-items:center;gap:var(--space-12);height:var(--space-36,36px);padding:0 var(--space-12);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.exo-profile .profile-header h1{font-family:var(--font-mono);font-size:var(--fs-label,10px);letter-spacing:.08em;text-transform:uppercase;flex:1;margin:0;font-weight:700}.exo-profile .profile-loading{padding:var(--space-24,24px);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--fs-label,10px)}.exo-profile .profile-content{width:100%;max-width:560px;padding:var(--space-24,24px) var(--space-16,16px);gap:var(--space-24,24px);flex-direction:column;margin:0 auto;display:flex}.exo-profile .profile-section{gap:var(--space-8);padding:var(--space-16,16px);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;display:flex}.exo-profile .profile-section-title{font-family:var(--font-mono);font-size:var(--fs-label,10px);text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted);margin:0;font-weight:700}.exo-profile .profile-section-header{justify-content:space-between;align-items:center;gap:var(--space-8);display:flex}.exo-profile .profile-identity{align-items:center;gap:var(--space-12);flex-direction:row}.exo-profile .profile-identity-info{gap:var(--space-4,4px);flex-direction:column;flex:1;min-width:0;display:flex}.exo-profile .profile-name{color:var(--color-fg);word-break:break-word;font-size:18px;font-weight:600}.profile-name-edit{align-items:center;gap:var(--space-4);display:flex}.profile-name-input{font-family:var(--font-sans);font-size:var(--fs);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm,4px);background:var(--color-surface);color:var(--color-fg);width:180px}.exo-profile .profile-invites-left{font-family:var(--font-mono);font-size:var(--fs-label,10px);color:var(--color-muted)}.exo-profile .profile-invite-actions{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.exo-profile .profile-role-select{padding:var(--space-6) var(--space-8);font-family:var(--font-sans);font-size:var(--fs);color:var(--color-fg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.exo-profile .profile-empty{font-family:var(--font-mono);font-size:var(--fs-label,10px);color:var(--color-muted);margin:0}.exo-profile .profile-invite-list{gap:var(--space-8);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.exo-profile .invite-item{gap:var(--space-4,4px);padding:var(--space-8) var(--space-12);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-direction:column;display:flex}.exo-profile .invite-code-row{justify-content:space-between;align-items:center;gap:var(--space-8);display:flex}.exo-profile .invite-code-row code{font-family:var(--font-mono);font-size:var(--fs-label,10px);color:var(--color-fg);-webkit-user-select:text;user-select:text}.exo-profile .invite-status-row{align-items:center;gap:var(--space-8);font-family:var(--font-mono);font-size:var(--fs-label,10px);color:var(--color-muted);display:flex}.exo-profile .profile-danger-zone{align-items:flex-start}.profile-avatar-button{all:unset;cursor:pointer;border-radius:50%;display:inline-block}.profile-avatar-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
