@import"https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Noto+Sans+SC:wght@400;500;700&family=Outfit:wght@300;400;500;600;700;800&display=swap";html,body,#root{width:100%;height:100%;min-height:100%}._shell_kqq0e_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:20px}._backdrop_kqq0e_10{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0c0f8c;border:none;border-radius:0}._card_kqq0e_18{width:min(1080px,100%);max-height:calc(100dvh - 40px);z-index:1;display:grid;grid-template-rows:auto 1fr;overflow:hidden;padding:24px;animation:_adminModalEnter_kqq0e_1 .28s cubic-bezier(.2,.7,.2,1) both}@keyframes _adminModalEnter_kqq0e_1{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}._head_kqq0e_41{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}._close_kqq0e_48{padding:8px 14px;min-height:34px}._grid_kqq0e_53{display:grid;grid-template-columns:minmax(280px,340px) 1fr;gap:16px;min-height:0}._createForm_kqq0e_60,._userPanel_kqq0e_61{border:none;background:var(--bg-inset);border-radius:var(--radius-lg);padding:16px}._createForm_kqq0e_60{display:grid;align-content:start;gap:12px}._createForm_kqq0e_60 h4,._userPanel_kqq0e_61 h4{margin:0}._userPanel_kqq0e_61{display:grid;grid-template-rows:auto 1fr auto;gap:12px;min-height:0}._userPanel_kqq0e_61 .managed-list{max-height:none}._userHead_kqq0e_90{display:grid;gap:10px}._emptyState_kqq0e_95{margin:0;color:var(--text-secondary);padding:16px;border:none;background:var(--bg-elevated);border-radius:var(--radius-md)}._pagination_kqq0e_104{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--text-secondary);font-size:.84rem}._paginationActions_kqq0e_113{display:inline-flex;gap:8px}._paginationActions_kqq0e_113 .ghost-btn{min-height:32px;padding:0 12px}@media (max-width: 900px){._card_kqq0e_18{max-height:calc(100dvh - 24px)}._grid_kqq0e_53{grid-template-columns:1fr}._userPanel_kqq0e_61 .managed-list{max-height:34vh}}@media (max-width: 640px){._shell_kqq0e_1{padding:10px}._card_kqq0e_18{max-height:calc(100dvh - 20px)}._pagination_kqq0e_104{flex-direction:column;align-items:flex-start}}._shell_v7eek_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:20px}._backdrop_v7eek_10{position:absolute;top:0;right:0;bottom:0;left:0;border:none;border-radius:0;background:#0a0c0f8c}._card_v7eek_18{z-index:1;width:min(760px,100%);max-height:calc(100dvh - 40px);display:grid;grid-template-rows:auto 1fr;gap:18px;padding:24px;overflow:hidden;animation:_deviceModalEnter_v7eek_1 .28s cubic-bezier(.2,.7,.2,1) both}@keyframes _deviceModalEnter_v7eek_1{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}._head_v7eek_42,._headActions_v7eek_43,._deviceHead_v7eek_44,._badges_v7eek_45,._actions_v7eek_46{display:flex;align-items:center}._head_v7eek_42{justify-content:space-between;gap:12px}._headActions_v7eek_43{gap:8px}._close_v7eek_60{min-height:34px;padding:8px 14px}._emptyState_v7eek_65{margin:0;padding:16px;border:none;background:var(--bg-elevated);border-radius:var(--radius-md);color:var(--text-secondary)}._recoveryBox_v7eek_74{display:grid;gap:12px;padding:14px;border:none;border-radius:var(--radius-lg);background:var(--bg-inset)}._recoveryBox_v7eek_74 h4{margin:0 0 4px}._recoveryBox_v7eek_74 p{margin:0;color:var(--text-secondary)}._recoveryActions_v7eek_92{display:flex;gap:8px;align-items:center}._recoveryActions_v7eek_92 input{flex:1;min-width:0}._deviceList_v7eek_103{min-height:0;margin:0;padding:0;list-style:none;display:grid;gap:12px;overflow-y:auto}._deviceItem_v7eek_113{display:grid;gap:12px;padding:16px;border:none;border-radius:var(--radius-lg);background:var(--bg-elevated)}._deviceHead_v7eek_44{justify-content:space-between;gap:12px}._badges_v7eek_45{gap:8px}._currentBadge_v7eek_131,._activeBadge_v7eek_132,._revokedBadge_v7eek_133{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:var(--radius-full);font-size:.78rem;font-weight:700}._currentBadge_v7eek_131{background:var(--accent-primary-ghost);color:var(--accent-primary)}._activeBadge_v7eek_132{background:var(--bg-elevated);color:var(--accent-secondary);border:none}._revokedBadge_v7eek_133{background:var(--danger-soft);color:var(--danger)}._meta_v7eek_159{margin:0;display:grid;gap:8px}._meta_v7eek_159 div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px}._meta_v7eek_159 dt{color:var(--text-tertiary)}._meta_v7eek_159 dd{margin:0;min-width:0;overflow-wrap:anywhere}._actions_v7eek_46{gap:8px;align-items:end}._actions_v7eek_46 label{flex:1}._actions_v7eek_46 button{min-height:42px;white-space:nowrap}._danger_v7eek_195{color:var(--danger);border:none;background:var(--bg-elevated)}._danger_v7eek_195:hover:not(:disabled){background:var(--danger-soft)}@media (max-width: 720px){._shell_v7eek_1{padding:10px}._card_v7eek_18{max-height:calc(100dvh - 20px)}._deviceHead_v7eek_44,._actions_v7eek_46{align-items:stretch;flex-direction:column}._badges_v7eek_45{align-self:flex-start}}._shell_1tmu7_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:20px}._backdrop_1tmu7_10{position:absolute;top:0;right:0;bottom:0;left:0;border:none;border-radius:0;background:#0a0c0f8c}._card_1tmu7_18{z-index:1;width:min(480px,100%);max-height:calc(100dvh - 40px);display:grid;gap:20px;padding:24px;overflow-y:auto;animation:_profileModalEnter_1tmu7_1 .28s cubic-bezier(.2,.7,.2,1) both}@keyframes _profileModalEnter_1tmu7_1{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}._head_1tmu7_41{display:flex;align-items:center;justify-content:space-between;gap:12px}._close_1tmu7_48{min-height:34px;padding:8px 14px}._profileHeader_1tmu7_53{display:flex;align-items:center;gap:16px;padding:16px;border:none;border-radius:var(--radius-lg);background:var(--bg-inset)}._avatar_1tmu7_63{flex-shrink:0;width:64px;height:64px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700;color:#fff}._profileMeta_1tmu7_76{min-width:0;display:grid;gap:4px}._profileNameRow_1tmu7_82{display:flex;align-items:center;gap:8px;min-width:0}._profileName_1tmu7_82{font-size:1.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._roleBadge_1tmu7_96,._roleBadgeAdmin_1tmu7_97{display:inline-flex;align-items:center;min-height:22px;padding:0 10px;border-radius:var(--radius-full);font-size:.74rem;font-weight:700;flex-shrink:0}._roleBadge_1tmu7_96{background:var(--bg-elevated);color:var(--accent-secondary);border:none}._roleBadgeAdmin_1tmu7_97{background:var(--accent-primary-ghost);color:var(--accent-primary)}._profileDevice_1tmu7_119,._profileSeen_1tmu7_120{margin:0;font-size:.82rem;color:var(--text-secondary)}._profileSeen_1tmu7_120{color:var(--text-tertiary);font-size:.76rem}._section_1tmu7_131{display:grid;gap:12px;padding:16px;border:none;border-radius:var(--radius-lg);background:var(--bg-inset)}._section_1tmu7_131 h4{margin:0}._note_1tmu7_144{margin:0;font-size:.8rem;color:var(--text-tertiary)}._error_1tmu7_150{margin:0;font-size:.8rem;color:var(--danger)}._success_1tmu7_156{margin:0;font-size:.8rem;color:var(--accent-secondary)}@media (max-width: 640px){._shell_1tmu7_1{padding:10px}._card_1tmu7_18{max-height:calc(100dvh - 20px)}._profileHeader_1tmu7_53{flex-direction:column;align-items:flex-start}}._shell_dv7c7_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:24px}._backdrop_dv7c7_10{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0c0f8c;border:none;border-radius:0}._card_dv7c7_18{width:min(440px,100%);padding:24px;z-index:1;animation:_modalEnter_dv7c7_1 .28s cubic-bezier(.2,.7,.2,1) both}@keyframes _modalEnter_dv7c7_1{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}._head_dv7c7_37{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}._close_dv7c7_44{padding:8px 14px;min-height:34px}._tabs_dv7c7_49{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--bg-elevated);padding:6px;border-radius:var(--radius-lg);margin-bottom:24px}._tab_dv7c7_49{padding:10px;border-radius:var(--radius-md);font-weight:600;color:var(--text-secondary);background:transparent;transition:background-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}._tabActive_dv7c7_68{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}._form_dv7c7_74{display:flex;flex-direction:column;gap:16px}._stack_dv7c7_80{display:grid;gap:16px}._stack_1w0ev_1{position:fixed;right:20px;bottom:20px;display:grid;gap:10px;z-index:200}._toast_1w0ev_10{display:flex;align-items:center;gap:10px;width:min(340px,calc(100vw - 40px));padding:12px 14px;border-radius:var(--radius-md);border:none;background:var(--bg-surface);box-shadow:var(--shadow-lg)}._dot_1w0ev_23{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--text-tertiary)}._error_1w0ev_31 ._dot_1w0ev_23{background:var(--danger)}._info_1w0ev_35 ._dot_1w0ev_23{background:var(--accent-primary)}._toast_1w0ev_10 p{margin:0;flex:1;color:var(--text-primary);font-size:.9rem}._close_1w0ev_46{border:none;width:28px;height:28px;border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1}._close_1w0ev_46:hover{background:var(--bg-elevated);color:var(--text-primary)}@media (max-width: 640px){._stack_1w0ev_1{right:12px;left:12px;bottom:calc(12px + env(safe-area-inset-bottom))}._toast_1w0ev_10{width:100%}}._shell_30e3j_1{min-height:100dvh;display:grid;place-items:center;padding:24px;position:relative;overflow:hidden;background:var(--bg-base)}._orb_30e3j_12,._orbA_30e3j_13,._orbB_30e3j_14{display:none}._card_30e3j_18{width:min(440px,100%);padding:44px 40px;z-index:1;text-align:left;background:var(--bg-surface);border:none;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);animation:_loginEnter_30e3j_1 .45s cubic-bezier(.2,.7,.2,1) both}@keyframes _loginEnter_30e3j_1{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}._title_30e3j_42{margin:14px 0 0;font-size:clamp(2rem,4vw,2.6rem);line-height:1.08;font-weight:800;letter-spacing:-.03em;color:var(--text-primary)}._title_30e3j_42 span{display:block;font-size:.42em;margin-top:10px;font-weight:600;letter-spacing:.04em;color:var(--text-secondary)}._lead_30e3j_60{color:var(--text-secondary);font-size:.98rem;line-height:1.6;margin:16px 0 28px}._inviteHint_30e3j_67{margin-top:-12px;margin-bottom:22px;font-size:.88rem;border:none;border-left:3px solid var(--accent-primary);background:var(--accent-soft);color:var(--text-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:10px 12px}._form_30e3j_79{display:flex;flex-direction:column;gap:18px;text-align:left}._form_30e3j_79 ._primary-btn_30e3j_86{margin-top:4px;width:100%;padding:13px 22px;font-size:.98rem}@media (max-width: 640px){._card_30e3j_18{padding:30px 22px}}:root{--bg-base: #e6e8ee;--bg-canvas: #eef0f4;--bg-surface: #ffffff;--bg-elevated: #e9ebf1;--bg-elevated-hover: #dfe2ea;--bg-inset: #f3f4f7;--field-bg: #edeff4;--field-bg-hover: #e7e9f0;--bg-blur: 0px;--glow-mix-blend: normal;--text-primary: #14171c;--text-secondary: #565d6b;--text-tertiary: #888f9c;--border-color: transparent;--border-subtle: transparent;--border-strong: transparent;--divider: rgba(20, 23, 28, .06);--accent-primary: #4f46e5;--accent-primary-hover: #4338ca;--accent-primary-ghost: #e9e7fb;--accent-fill: #4f46e5;--accent-fill-hover: #4338ca;--accent-fill-active: #3730a3;--accent-on: #ffffff;--accent-soft: #eceafe;--accent-secondary: #0d9d6e;--accent-tertiary: #4f46e5;--danger: #dc2626;--danger-hover: #b91c1c;--danger-soft: #fbeaea;--warning: #b4690e;--warning-soft: #fbf0e0;--bubble-peer-bg: #ffffff;--bubble-peer-text: #14171c;--bubble-own-bg: #e9e7fb;--bubble-own-text: #221f4a;--bg-inverse: #14171c;--text-inverse: #f7f8fa;--gradient-primary: var(--accent-fill);--gradient-primary-hover: var(--accent-fill-hover);--gradient-success: var(--accent-secondary);--gradient-surface: var(--bg-surface);--shadow-bubble: 0 1px 1.5px rgba(20, 23, 28, .08);--shadow-sm: 0 1px 2px rgba(20, 23, 28, .06), 0 1px 1px rgba(20, 23, 28, .04);--shadow-md: 0 6px 20px -6px rgba(20, 23, 28, .12), 0 2px 6px -2px rgba(20, 23, 28, .06);--shadow-lg: 0 24px 50px -16px rgba(20, 23, 28, .2), 0 8px 20px -10px rgba(20, 23, 28, .1);--shadow-glass: var(--shadow-sm);--shadow-glass-hover: var(--shadow-md);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 22px;--radius-full: 9999px;--bubble-radius: 14px;--bubble-tail: 4px;--bubble-radius-peer: var(--bubble-tail) var(--bubble-radius) var(--bubble-radius) var(--bubble-radius);--bubble-radius-own: var(--bubble-radius) var(--bubble-tail) var(--bubble-radius) var(--bubble-radius);--control-size: 44px;--control-size-sm: 40px;--composer-radius: var(--radius-lg);--sheet-radius: var(--radius-xl);--transition-fast: .18s cubic-bezier(.2, .6, .2, 1);--transition-spring: .42s cubic-bezier(.2, .7, .2, 1);color-scheme:light}:root[data-theme=dark]{--bg-base: #0c0e12;--bg-canvas: #0f1217;--bg-surface: #16191f;--bg-elevated: #232831;--bg-elevated-hover: #2b313b;--bg-inset: #1a1e25;--field-bg: #20242c;--field-bg-hover: #272c35;--bg-blur: 0px;--glow-mix-blend: normal;--text-primary: #eef0f3;--text-secondary: #a4abb8;--text-tertiary: #6e7682;--border-color: transparent;--border-subtle: transparent;--border-strong: transparent;--divider: rgba(255, 255, 255, .07);--accent-primary: #8b93f8;--accent-primary-hover: #a5acfb;--accent-primary-ghost: #262a45;--accent-fill: #5b53ea;--accent-fill-hover: #6a63ef;--accent-fill-active: #4f46e5;--accent-on: #ffffff;--accent-soft: #20223a;--accent-secondary: #2ec293;--accent-tertiary: #8b93f8;--danger: #f26b6b;--danger-hover: #f87171;--danger-soft: #2a1618;--warning: #e0982f;--warning-soft: #2a2113;--bubble-peer-bg: #232831;--bubble-peer-text: #eef0f3;--bubble-own-bg: #322f66;--bubble-own-text: #eef0f8;--bg-inverse: #eef0f3;--text-inverse: #14171c;--gradient-primary: var(--accent-fill);--gradient-primary-hover: var(--accent-fill-hover);--gradient-success: var(--accent-secondary);--gradient-surface: var(--bg-surface);--shadow-bubble: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 8px 24px -8px rgba(0, 0, 0, .6), 0 2px 8px -4px rgba(0, 0, 0, .5);--shadow-lg: 0 28px 56px -18px rgba(0, 0, 0, .72), 0 10px 22px -10px rgba(0, 0, 0, .55);--shadow-glass: var(--shadow-sm);--shadow-glass-hover: var(--shadow-md);color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg-base: #0c0e12;--bg-canvas: #0f1217;--bg-surface: #16191f;--bg-elevated: #232831;--bg-elevated-hover: #2b313b;--bg-inset: #1a1e25;--field-bg: #20242c;--field-bg-hover: #272c35;--bg-blur: 0px;--glow-mix-blend: normal;--text-primary: #eef0f3;--text-secondary: #a4abb8;--text-tertiary: #6e7682;--border-color: transparent;--border-subtle: transparent;--border-strong: transparent;--divider: rgba(255, 255, 255, .07);--accent-primary: #8b93f8;--accent-primary-hover: #a5acfb;--accent-primary-ghost: #262a45;--accent-fill: #5b53ea;--accent-fill-hover: #6a63ef;--accent-fill-active: #4f46e5;--accent-on: #ffffff;--accent-soft: #20223a;--accent-secondary: #2ec293;--accent-tertiary: #8b93f8;--danger: #f26b6b;--danger-hover: #f87171;--danger-soft: #2a1618;--warning: #e0982f;--warning-soft: #2a2113;--bubble-peer-bg: #232831;--bubble-peer-text: #eef0f3;--bubble-own-bg: #322f66;--bubble-own-text: #eef0f8;--bg-inverse: #eef0f3;--text-inverse: #14171c;--gradient-primary: var(--accent-fill);--gradient-primary-hover: var(--accent-fill-hover);--gradient-success: var(--accent-secondary);--gradient-surface: var(--bg-surface);--shadow-bubble: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 8px 24px -8px rgba(0, 0, 0, .6), 0 2px 8px -4px rgba(0, 0, 0, .5);--shadow-lg: 0 28px 56px -18px rgba(0, 0, 0, .72), 0 10px 22px -10px rgba(0, 0, 0, .55);--shadow-glass: var(--shadow-sm);--shadow-glass-hover: var(--shadow-md);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;font-family:Outfit,Noto Sans SC,system-ui,-apple-system,sans-serif;color:var(--text-primary);background-color:var(--bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{overflow-x:hidden;overflow-y:hidden;overscroll-behavior-x:none;overscroll-behavior-y:none;width:100%;max-width:100vw}html.keyboard-open,html.keyboard-open body{position:fixed;width:100%;height:100%}h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.02em;margin-top:0}p{line-height:1.6}.kicker{margin:0;font-family:Space Mono,monospace;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-primary)}.glow-border{display:none}.panel-elevated{background:var(--bg-surface);border:none;box-shadow:var(--shadow-md);border-radius:var(--radius-xl);position:relative;transition:box-shadow var(--transition-fast)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}button,input,textarea{font:inherit;outline:none}button{border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;font-weight:600;line-height:1}button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none!important}button:active:not(:disabled){transform:translateY(1px)}input,textarea{width:100%;border-radius:var(--radius-md);border:none;background:var(--field-bg);color:var(--text-primary);padding:12px 14px;font-size:16px;transition:background-color var(--transition-fast),box-shadow var(--transition-fast)}textarea{resize:none;line-height:1.5;min-height:44px;max-height:200px}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}input:hover,textarea:hover{background:var(--field-bg-hover)}input:focus,textarea:focus{background:var(--bg-surface);box-shadow:0 0 0 2px var(--accent-primary)}button:focus-visible,input:focus-visible,textarea:focus-visible{box-shadow:0 0 0 2px var(--accent-primary)}label{display:grid;gap:8px;font-size:.88rem;font-weight:500;color:var(--text-secondary)}.primary-btn{color:var(--accent-on);padding:12px 22px;background:var(--accent-fill);border:none}.primary-btn:hover:not(:disabled){background:var(--accent-fill-hover)}.primary-btn:active:not(:disabled){background:var(--accent-fill-active)}.ghost-btn{color:var(--text-primary);padding:12px 18px;background:var(--bg-elevated);border:none}.ghost-btn:hover:not(:disabled){background:var(--bg-elevated-hover)}.skeleton{background:var(--bg-elevated);animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.chat-shell{height:100dvh;min-height:100dvh;padding:14px;display:grid;grid-template-columns:minmax(280px,336px) 1fr;gap:14px;position:relative;overflow:hidden!important;max-width:100vw;isolation:isolate;background:var(--bg-base)}.drawer-backdrop,.sidebar-toggle,.stage-glow,.stage-left,.stage-right{display:none}.sidebar{display:flex;flex-direction:column;gap:18px;padding:14px 10px;overflow-y:auto;z-index:10;height:calc(100dvh - 28px);min-height:0;background:transparent;box-shadow:none;animation:slide-right-in .4s cubic-bezier(.2,.7,.2,1) both}@keyframes slide-right-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.sidebar-head{padding:6px 8px 16px;border:none;background:transparent;box-shadow:none;margin-bottom:0}.sidebar-head h2{font-size:1.32rem;margin:4px 0 14px;letter-spacing:-.02em;font-weight:800}.sidebar-head>.ghost-btn:not(.sidebar-close){width:100%}.identity-line{font-size:.8rem;color:var(--text-tertiary);margin-bottom:12px;line-height:1.4}.identity-line strong{color:var(--text-secondary)}.profile-card-btn{display:flex;align-items:center;gap:12px;width:100%;margin:2px 0 12px;padding:10px 12px;border-radius:var(--radius-lg);background:var(--bg-surface);border:none;box-shadow:var(--shadow-sm);text-align:left;transition:background-color var(--transition-fast),box-shadow var(--transition-fast)}.profile-card-btn:hover:not(:disabled){box-shadow:var(--shadow-md)}.profile-card-avatar{flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:#fff}.profile-card-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.profile-card-name{font-size:.95rem;font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-card-role{font-size:.74rem;font-weight:600;color:var(--text-tertiary)}.sidebar-close{display:none}.sidebar-card{padding:0 8px;border:none;background:transparent;display:flex;flex-direction:column;gap:10px;box-shadow:none}.sidebar-card h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);margin:0;font-weight:700}.room-list{list-style:none;padding:0;margin:0;display:grid;gap:2px;max-height:360px;overflow-y:auto;overflow-x:hidden;overscroll-behavior-x:none;-webkit-overflow-scrolling:touch}.sidebar-card .room-search-input{width:100%;max-width:100%;box-sizing:border-box;background:var(--bg-surface);box-shadow:var(--shadow-sm)}.sidebar-card .room-search-input:focus{background:var(--bg-surface)}.room-search-input{width:100%;max-width:100%;box-sizing:border-box}.room-list-empty{margin:0;padding:14px;color:var(--text-secondary);background:var(--bg-elevated);border:none;border-radius:var(--radius-md);font-size:.84rem}.room-list button{width:100%;max-width:100%;padding:10px 12px;text-align:left;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-weight:500;font-size:.95rem;border:none;white-space:normal;display:grid;gap:4px;box-sizing:border-box;transition:background-color var(--transition-fast),color var(--transition-fast);line-height:1.4;position:relative;touch-action:pan-y}.room-list-main,.room-list-subline{display:flex;align-items:center;gap:8px;min-width:0}.room-list-main{justify-content:space-between}.room-list-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-list-activity,.room-list-subline{color:var(--text-tertiary);font-size:.78rem;font-weight:500}.room-list-activity{flex-shrink:0}.room-list-subline{justify-content:space-between}.room-unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--accent-fill);color:var(--accent-on);font-size:.72rem;font-weight:700}.room-list button:hover{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.room-list button.active{background:var(--accent-soft);color:var(--accent-primary);font-weight:700}.room-list button.active .room-list-activity,.room-list button.active .room-list-subline{color:var(--accent-primary);opacity:.8}.quick-actions{display:grid;gap:8px}.room-action-btn{width:100%}.admin-card{gap:16px}.admin-toggle{width:100%}.admin-content{display:grid;gap:14px}.managed-list{max-height:200px}.managed-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.managed-user-chip{min-width:0;text-align:left;background:var(--bg-elevated)!important;color:var(--text-primary)!important;border:none;pointer-events:none;padding:8px 12px;justify-content:flex-start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;word-break:keep-all}.managed-delete-btn{color:var(--danger);border:none;background:var(--bg-elevated);padding:8px 12px;white-space:nowrap}.managed-delete-btn:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.chat-main{display:grid;grid-template-rows:auto 1fr auto;gap:0;padding:0;z-index:10;position:relative;height:calc(100dvh - 28px);max-width:100%;min-height:0;overflow-x:hidden;background:var(--bg-surface);box-shadow:var(--shadow-md);border-radius:var(--radius-xl);animation:fade-slide-up .4s cubic-bezier(.2,.7,.2,1) both .05s}@keyframes fade-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.chat-header{display:flex;flex-direction:column;gap:0;margin:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--bg-surface);border:none;box-shadow:none;z-index:20;overflow:hidden;position:relative}.chat-body{display:flex;flex-direction:column;min-height:0;padding:10px 14px 0;position:relative;background:var(--bg-surface)}.chat-footer{display:flex;flex-direction:column;padding:10px 14px 14px;z-index:20;background:var(--bg-surface);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.chat-header-row-top{display:flex;align-items:center;gap:12px;padding:16px 18px 6px;border:none;min-height:0}.chat-title-group{min-width:0;flex:1}.chat-title-group h2{font-size:1.12rem;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em;font-weight:700}.room-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.room-action-pill{padding:5px 12px;font-size:.76rem;min-height:30px;border-radius:var(--radius-full)}.room-action-danger{color:var(--danger);background:transparent}.room-action-danger:hover:not(:disabled){background:var(--danger-soft)}.chat-header-row-status{display:flex;align-items:center;gap:8px;padding:4px 18px 14px;position:relative;flex-wrap:nowrap;overflow:visible}.status-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.search-inline{display:flex;align-items:center;gap:6px;margin-left:auto;flex:0 1 auto;min-width:0}.search-inline .room-search-input{width:150px;min-width:110px;max-width:190px;padding:6px 12px;font-size:.82rem;min-height:32px;border-radius:var(--radius-full);transition:width var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast)}.search-inline .room-search-input:focus{width:190px}.search-nav-group{display:flex;align-items:center;gap:4px;flex-shrink:0}.room-search-meta{font-size:.72rem;color:var(--text-tertiary);min-width:60px;white-space:nowrap;font-family:Space Mono,monospace}.room-search-nav{min-height:28px;padding:0 8px;font-size:.76rem}.status-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 12px;border-radius:var(--radius-full);background:var(--bg-elevated);border:none;font-family:Space Mono,monospace;font-size:.7rem;font-weight:700;color:var(--text-secondary);transition:background-color var(--transition-fast),color var(--transition-fast);white-space:nowrap;box-sizing:border-box}.status-pill i{width:8px;height:8px;border-radius:50%;display:inline-block}.status-pill.online{background:var(--bg-elevated)}.status-pill.online i{background:var(--accent-secondary);animation:secure-breathe 2.6s infinite ease-in-out}.status-pill.offline i{background:var(--danger)}.status-pill.reconnecting{background:var(--warning-soft);color:var(--warning)}.status-pill.reconnecting i{background:var(--warning);animation:reconnect-blink 1s ease-in-out infinite}@keyframes secure-breathe{0%,to{opacity:.55}50%{opacity:1}}@keyframes reconnect-blink{0%,to{opacity:.4}50%{opacity:1}}.peer-pill{cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.status-actions .status-pill.neutral{min-width:56px;background:var(--bg-elevated);color:var(--text-secondary)}.status-actions .status-pill.neutral:hover{background:var(--bg-elevated-hover);color:var(--text-primary)}.theme-pill{min-width:58px}.peer-pill.open{background:var(--accent-soft);color:var(--accent-primary)}.status-pill.neutral i{display:none}.admin-launch-btn{width:100%}.admin-modal-shell{z-index:120;padding:20px}.admin-modal-card{width:min(1080px,100%);max-height:calc(100dvh - 40px);display:grid;grid-template-rows:auto 1fr;overflow:hidden}.admin-modal-grid{display:grid;grid-template-columns:minmax(280px,340px) 1fr;gap:16px;min-height:0}.admin-create-form,.admin-user-panel{border:none;background:var(--bg-inset);border-radius:var(--radius-lg);padding:16px}.admin-create-form{display:grid;align-content:start;gap:12px}.admin-create-form h4,.admin-user-panel h4{margin:0}.admin-user-panel{display:grid;grid-template-rows:auto 1fr auto;gap:12px;min-height:0}.admin-user-panel .managed-list{max-height:none}.admin-user-head{display:grid;gap:10px}.admin-empty-state{margin:0;color:var(--text-secondary);padding:16px;border:none;background:var(--bg-elevated);border-radius:var(--radius-md)}.admin-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--text-secondary);font-size:.84rem}.admin-pagination-actions{display:inline-flex;gap:8px}.admin-pagination-actions .ghost-btn{min-height:32px;padding:0 12px}::-webkit-scrollbar{width:8px;height:0px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-elevated-hover);border-radius:var(--radius-full);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary);background-clip:padding-box}.message-list{background-color:var(--bg-canvas);background-image:none;border-radius:var(--radius-lg);border:none;box-shadow:none;padding:16px 18px;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;flex:1;min-height:0;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scroll-behavior:auto;overflow-anchor:auto;position:relative;scrollbar-gutter:stable both-edges}.message-list.room-switching{pointer-events:none}.room-switch-mask{position:absolute;top:12px;right:12px;bottom:12px;left:12px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-canvas);border:none;font-size:.82rem;font-weight:600;color:var(--text-secondary);letter-spacing:.02em;z-index:3;pointer-events:none}.timeline-item-shell{display:flex;flex-direction:column;padding-bottom:2px}.timeline-item-shell.last{padding-bottom:0}.message-list.history-loading:before{content:"";position:sticky;top:0;left:0;right:0;height:2px;display:block;background:var(--accent-primary);opacity:.5;pointer-events:none;z-index:2}.load-more-btn{align-self:center;margin-bottom:12px;padding:6px 16px;font-size:.8rem;background:var(--bg-surface);color:var(--text-secondary);border:none;box-shadow:var(--shadow-sm);border-radius:var(--radius-full);transition:background-color var(--transition-fast),color var(--transition-fast)}.load-more-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.history-loading-skeleton{display:grid;gap:12px;margin-bottom:24px;opacity:1;transition:opacity .22s ease;min-height:100px}.history-loading-skeleton.fade-out{opacity:0}.history-loading-skeleton span{display:block;width:60%;height:16px;border-radius:8px}.history-loading-skeleton span:nth-child(2){width:85%}.history-loading-skeleton span:nth-child(3){width:45%}.time-divider{display:flex;align-items:center;justify-content:center;margin:12px 0}.time-divider:before,.time-divider:after{display:none}.time-divider span{background:var(--bg-surface);border:none;box-shadow:var(--shadow-sm);padding:3px 12px;border-radius:var(--radius-full);font-size:.68rem;font-weight:600;color:var(--text-secondary);letter-spacing:0;white-space:nowrap}.unread-divider{display:flex;align-items:center;justify-content:center;gap:10px;margin:12px 0 8px}.unread-divider:before,.unread-divider:after{content:"";flex:0 1 96px;height:1px;background:var(--divider)}.unread-divider span{padding:3px 12px;border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent-primary);font-size:.68rem;font-weight:700;white-space:nowrap}.message-system-event{display:flex;justify-content:center;margin:4px 0 6px}.message-system-event span{display:inline-flex;align-items:center;justify-content:center;padding:4px 12px;border-radius:var(--radius-full);border:none;background:var(--bg-surface);box-shadow:var(--shadow-sm);color:var(--text-secondary);font-size:.72rem;font-weight:500;line-height:1.3;letter-spacing:.01em;white-space:nowrap}.message-system-event.jump-highlight span{background:var(--accent-soft);color:var(--accent-primary)}.bubble{display:flex;flex-direction:row;gap:8px;align-items:flex-end;margin-bottom:2px;width:100%}.message-list.room-switching .timeline-item-shell,.message-list.room-switching .bubble,.message-list.room-switching .bubble-main,.message-list.room-switching .history-loading-skeleton{animation:none!important;transition:none!important}.bubble.own{justify-content:flex-end}.bubble-avatar-container{flex-shrink:0;margin-bottom:0;display:flex;align-items:flex-end;align-self:flex-end;width:32px;height:32px}.bubble-content-wrapper{display:flex;flex-direction:column;max-width:72%;min-width:0}.bubble.own .bubble-content-wrapper{align-items:flex-end}.bubble-sender-name{display:block;font-size:.68rem;color:var(--accent-primary);margin-bottom:2px;margin-left:12px;font-weight:700;letter-spacing:.02em;opacity:1;overflow:visible;white-space:nowrap}.bubble-main{background:var(--bubble-peer-bg);border-radius:var(--bubble-radius-peer);padding:7px 11px 6px;border:none;box-shadow:var(--shadow-bubble);position:relative;box-sizing:border-box;transition:box-shadow .15s ease;word-break:break-word;overflow:visible;display:flex;flex-direction:column;min-width:0;color:var(--bubble-peer-text)}.bubble.own .bubble-main{background:var(--bubble-own-bg);color:var(--bubble-own-text);border-radius:var(--bubble-radius-own)}.bubble.failed .bubble-main{background:var(--danger-soft)}.bubble.own.failed .bubble-main{color:var(--text-primary)}.bubble.own.failed .bubble-meta-footer time{color:var(--text-tertiary)}.bubble.jump-highlight .bubble-main{animation:bubble-jump-highlight 1.6s ease both}.decrypt-failed-alert{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:start}.decrypt-failed-icon{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.67rem;font-weight:700;line-height:1;color:#fff;background:var(--danger);border:none;margin-top:1px}.decrypt-failed-copy{min-width:0}.decrypt-failed-title{margin:0;font-size:.74rem;line-height:1.25;font-weight:700;color:var(--danger)}.decrypt-failed-desc{margin:2px 0 0;font-size:.74rem;line-height:1.32;color:var(--text-secondary)}@keyframes message-pop-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes bubble-jump-highlight{0%{box-shadow:0 0 0 0 var(--accent-primary)}40%{box-shadow:0 0 0 3px var(--accent-soft)}to{box-shadow:var(--shadow-bubble)}}.bubble.pending{opacity:.6;transition:opacity .2s}.bubble.pending .bubble-text:after{content:"";display:inline-block;width:10px;height:10px;margin-left:6px;border:1.5px solid var(--bg-elevated-hover);border-top-color:var(--accent-primary);border-radius:50%;animation:spinner .7s linear infinite;vertical-align:text-bottom}@keyframes spinner{to{transform:rotate(360deg)}}.bubble-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:flex-end;gap:8px;max-width:100%}.bubble-row.own{grid-template-columns:auto minmax(0,1fr)}.bubble-row.peer{grid-template-columns:minmax(0,1fr) auto}.bubble-row.own .bubble-main{grid-column:2}.bubble-row.own .bubble-meta-footer{grid-column:1;grid-row:1}.bubble-row.peer .bubble-main{grid-column:1}.bubble-row.peer .bubble-meta-footer{grid-column:2;grid-row:1}.bubble-meta-external{display:flex;flex-direction:row;align-items:center;gap:4px;font-size:.65rem;white-space:nowrap;opacity:1;margin-bottom:0}.bubble-meta-external.own{justify-content:flex-end}.bubble-meta-external.peer{justify-content:flex-start}.bubble-meta-footer time,.bubble-meta-external time{font-family:Space Mono,monospace;font-size:.58rem;color:var(--text-tertiary)}.avatar-chip{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;flex-shrink:0}mark.search-highlight{background-color:var(--accent-fill);color:#fff;padding:0 2px;border-radius:2px}.edited-chip{font-size:.58rem;padding:0;border-radius:0;background:transparent;color:var(--text-tertiary);font-weight:500}.bubble strong{font-weight:600}.delivery-chip{width:18px;height:12px;padding:0;border-radius:0;background:transparent;color:var(--text-tertiary);font-weight:500;letter-spacing:0;position:relative;cursor:default;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.delivery-checks{position:relative;display:inline-block;width:17px;height:12px}.delivery-checks span{position:absolute;width:8px;height:4px;border-left:1.7px solid currentColor;border-bottom:1.7px solid currentColor;transform:rotate(-45deg);transform-origin:left bottom}.delivery-checks span:first-child{left:2px;top:3px}.delivery-checks span:last-child{left:7px;top:3px}.delivery-chip.sent .delivery-checks span:first-child{left:5px}.delivery-chip.sent .delivery-checks span:last-child{display:none}.delivery-chip .read-by-tooltip{visibility:hidden;position:absolute;bottom:110%;right:0;width:max-content;max-width:200px;background-color:var(--bg-inverse);color:var(--text-inverse);text-align:right;border-radius:6px;padding:6px 10px;z-index:10;opacity:0;transition:opacity .2s,visibility .2s;font-size:.75rem;font-weight:400;box-shadow:var(--shadow-md);line-height:1.4}.delivery-chip:hover .read-by-tooltip{visibility:visible;opacity:1}.delivery-chip .read-by-tooltip:after{content:"";position:absolute;top:100%;right:12px;margin-left:-5px;border-width:5px;border-style:solid;border-color:var(--bg-inverse) transparent transparent transparent}.delivery-chip.partial{color:var(--text-tertiary)}.delivery-chip.read{background:transparent;color:var(--accent-primary)}.bubble-meta-footer{display:inline-flex;align-items:center;gap:4px;align-self:end;min-height:13px;margin:0 0 1px;white-space:nowrap;line-height:1}.bubble-meta-footer.own{justify-self:end}.bubble-meta-footer.peer{justify-self:start;justify-content:flex-start}.delivery-chip.peer-status{cursor:default}.bubble-body{display:flex;flex-direction:column;gap:0;overflow:visible}.bubble-text{margin:0;line-height:1.4;white-space:pre-wrap;word-break:break-word;font-size:.9rem}.quote-preview-external{margin:0 0 4px;padding:5px 10px;border:none;border-left:3px solid var(--text-tertiary);background:var(--bg-inset);border-radius:0 8px 8px 0;font-size:.74rem;color:var(--text-secondary);font-style:normal;line-height:1.3;opacity:1;align-self:flex-start;max-width:90%}.bubble.own .quote-preview-external{align-self:flex-end;background:var(--accent-soft);border-left-color:var(--accent-primary);color:var(--accent-primary-hover)}.quote-preview-external p{margin:0}.bubble-actions-floating{position:absolute;bottom:100%;right:0;margin-bottom:8px;display:inline-flex;align-items:center;flex-wrap:nowrap;justify-content:flex-start;gap:2px;background:var(--bg-surface);padding:4px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:none;z-index:120;animation:fade-slide-up .15s cubic-bezier(.16,1,.3,1) forwards;max-width:min(420px,calc(100vw - 32px));overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.bubble-actions-floating::-webkit-scrollbar{display:none}.bubble-action-btn{padding:0 12px;font-size:.74rem;min-height:30px;border-radius:var(--radius-sm);font-weight:500;background:transparent;border:none;color:var(--text-primary);transition:background .15s,color .15s;white-space:nowrap;flex:0 0 auto}.bubble-action-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.bubble.own .bubble-action-btn{background:transparent;color:var(--text-primary)}.bubble.own .bubble-action-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.bubble-main{cursor:pointer}.bubble-main.active{box-shadow:0 0 0 2px var(--accent-primary)}.markdown-body{line-height:1.4;font-size:.9rem;white-space:normal;word-break:break-word;overflow:visible}.bubble.emoji-only .bubble-main{background:transparent!important;border:none!important;box-shadow:none!important;padding:2px 4px;min-height:auto;overflow:visible}.bubble.emoji-only .bubble-main:hover{box-shadow:none!important;transform:scale(1.08);transition:transform .15s ease}.bubble.emoji-only .markdown-body,.bubble.emoji-only .bubble-text{font-size:2.8rem;line-height:1.5;overflow:visible;display:block}.bubble.emoji-only .markdown-body p{margin:0;overflow:visible}.bubble.emoji-only.own .bubble-main{background:transparent!important;color:inherit;border:none!important;box-shadow:none!important}.bubble.emoji-only .bubble-body{gap:0;overflow:visible}.bubble.emoji-only .bubble-sender-name{margin-left:6px}.bubble.emoji-only .delivery-chip{background:transparent;color:var(--text-tertiary)}.bubble.emoji-only .bubble-meta-footer{margin:0}.bubble.emoji-only .bubble-meta-footer time{color:var(--text-tertiary);opacity:1}.bubble.emoji-only .bubble-actions{position:absolute;right:-4px;top:-4px}.markdown-body>*{margin:0}.markdown-body p{line-height:1.4}.markdown-body>*+*{margin-top:4px}.markdown-body ul,.markdown-body ol{padding-left:16px}.markdown-body code{font-family:Space Mono,monospace;font-size:.8rem;background:var(--bg-inset);border-radius:4px;padding:1px 4px}.markdown-body pre{overflow-x:auto;border-radius:10px;padding:10px 12px;background:var(--bg-inverse);color:var(--text-inverse);font-size:.8rem;line-height:1.5}.markdown-body pre code{background:transparent;color:inherit;padding:0}.markdown-body blockquote{border:none;border-left:2px solid var(--text-tertiary);background:var(--bg-inset);border-radius:0 6px 6px 0;padding:4px 8px}.markdown-body a{color:var(--accent-primary);text-decoration:underline;text-underline-offset:2px}.markdown-body img{width:min(300px,100%);max-width:100%;height:auto;display:block;border-radius:8px;border:none}.bubble.own .markdown-body code{background:#4f46e51f}.bubble.own .markdown-body blockquote{border-left-color:var(--accent-primary);background:#4f46e51a}.bubble.own .markdown-body a{color:var(--accent-primary-hover)}.empty-state{margin:auto;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;color:var(--text-tertiary);animation:fade-slide-up .6s ease both;padding:40px 20px}.empty-state p{max-width:280px;font-size:.9rem;line-height:1.5}.composer{background:transparent;border:none;border-radius:0;padding:0;display:flex;flex-direction:column;gap:6px;box-shadow:none;z-index:20;min-height:0;transition:none}.composer:focus-within{border:none;box-shadow:none}.composer-row{display:flex;flex-direction:row;gap:6px;align-items:flex-end;width:100%}.composer-input-wrapper{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;background:var(--field-bg);border:none;border-radius:var(--composer-radius);padding:0 14px;min-height:var(--control-size);box-shadow:none;transition:background-color var(--transition-fast),box-shadow var(--transition-fast)}.composer-input-wrapper:focus-within{background:var(--bg-surface);box-shadow:0 0 0 2px var(--accent-primary)}.mention-popover{position:absolute;bottom:calc(100% + 4px);left:0;width:max-content;max-width:250px;background:var(--bg-surface);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);max-height:150px;overflow-y:auto;z-index:2000;list-style:none;padding:4px 0;margin:0}.mention-popover li{padding:8px 12px;cursor:pointer;font-size:.9rem;color:var(--text-primary);transition:background .1s}.mention-popover li:hover{background:var(--bg-elevated)}.mention-popover li.active{background:var(--accent-soft);color:var(--accent-primary);font-weight:600}.emoji-picker-wrapper{position:relative;display:inline-flex;align-items:center;isolation:isolate;flex:0 0 auto}.emoji-trigger-btn{padding:0;min-height:var(--control-size-sm);min-width:var(--control-size-sm);font-size:1.2rem;border-radius:var(--radius-full);margin-right:0;color:var(--text-secondary);background:transparent!important;border:none!important;box-shadow:none!important;transition:background .12s,color .12s}.emoji-trigger-btn:hover{background:var(--bg-elevated)!important;color:var(--text-primary)}.emoji-picker-popover{position:fixed;bottom:auto;z-index:12000;box-shadow:var(--shadow-lg);border-radius:var(--radius-md);animation:fade-slide-up .15s ease-out forwards;overflow:visible;pointer-events:auto}.reply-inline{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-inset);border-radius:var(--radius-md);border:none;border-left:3px solid var(--accent-primary);font-size:.78rem;color:var(--text-secondary)}.reply-jump-btn{background:transparent;border:none;padding:0;border-radius:0;display:block;cursor:pointer;font-weight:500;color:inherit;font-size:.82rem;line-height:1.35;text-align:left;max-width:calc(100% - 74px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-jump-btn:hover{color:var(--accent-primary)}.reply-inline .ghost-btn{padding:4px 10px;font-size:.75rem;min-height:26px;background:var(--bg-elevated);border:none;box-shadow:none}.composer-input-wrapper textarea{border:none;background:transparent;box-shadow:none;padding:11px 0;min-height:26px;max-height:140px;font-size:.93rem;line-height:1.42;letter-spacing:.01em;resize:none;color:var(--text-primary)}.composer-input-wrapper textarea:hover{background:transparent}.composer-input-wrapper textarea::placeholder{color:var(--text-tertiary)}.crypto-init-hint{display:flex;align-items:center;gap:6px;font-size:.76rem;color:var(--text-tertiary);padding:4px 10px;background:var(--accent-soft);border-radius:var(--radius-sm);border:none}.crypto-init-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);animation:crypto-pulse 1.2s ease-in-out infinite;flex-shrink:0}@keyframes crypto-pulse{0%,to{opacity:.3}50%{opacity:1}}.composer-input-wrapper textarea:focus{box-shadow:none;border:none;outline:none}.composer-actions{display:flex;flex-direction:row;align-items:center;gap:6px;justify-content:flex-end;flex:0 0 auto}.queue-hint{font-size:.74rem;line-height:1;color:var(--text-secondary);background:var(--bg-elevated);border:none;border-radius:var(--radius-full);padding:5px 10px}.queue-retry-all-btn{min-height:32px;padding:0 12px;font-size:.76rem;border-radius:var(--radius-full);box-shadow:none}.send-btn{min-height:var(--control-size);min-width:var(--control-size);width:var(--control-size);height:var(--control-size);padding:0;font-size:.85rem;border-radius:var(--radius-full);gap:0;font-weight:600;letter-spacing:.01em;background:var(--accent-fill);color:var(--accent-on);border:none;box-shadow:none;transition:background-color .15s ease}.send-btn:hover:not(:disabled){transform:none;background:var(--accent-fill-hover);box-shadow:none}.send-btn:disabled{background:var(--bg-elevated-hover);color:var(--text-tertiary)}.send-icon{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid currentColor;transform:translate(1px)}.send-text{display:none}.queue-failed-panel{margin-top:10px;border:none;border-left:3px solid var(--danger);border-radius:var(--radius-md);background:var(--danger-soft);padding:10px 12px;display:grid;gap:8px}.queue-failed-panel h3{margin:0;font-size:.84rem;color:var(--danger)}.queue-failed-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.queue-failed-item{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:none;border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-sm);padding:8px 10px}.queue-failed-content p{margin:0;color:var(--text-primary);font-size:.84rem}.queue-failed-content small{color:var(--danger);font-size:.74rem}.queue-failed-actions{display:inline-flex;gap:6px}.queue-retry-btn,.queue-discard-btn{min-height:28px;padding:0 10px;font-size:.74rem}@keyframes slide-left-in{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}:root[data-theme=dark] .message-list{background-color:var(--bg-canvas)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .message-list{background-color:var(--bg-canvas)}}.popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90}.peer-popover{position:absolute;top:calc(100% + 10px);right:0;background:var(--bg-surface);border:none;border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-lg);z-index:100;min-width:280px;max-width:340px;animation:popover-enter .25s cubic-bezier(.2,.7,.2,1) both;transform-origin:top right}.peer-popover-floating{position:fixed;top:0;right:0;overflow-y:auto;overflow-x:hidden}@keyframes popover-enter{0%{opacity:0;transform:scale(.98) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.peer-popover ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.connection-metrics li{font-family:Space Mono,monospace;font-size:.75rem;color:var(--text-secondary);background:var(--bg-inset);padding:6px 10px;border-radius:var(--radius-sm);border:none}.connection-metrics+ul{margin-top:12px;padding-top:4px}.peer-popover>ul:not(.connection-metrics) li{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-inset);border-radius:var(--radius-md);border:none}.peer-popover .peer-meta{display:flex;flex-direction:column;font-weight:600}.peer-popover small{color:var(--text-tertiary);font-weight:400;font-size:.75rem}.peer-popover p{margin:0;color:var(--text-secondary)}.decrypt-pending{display:inline-flex;align-items:center;gap:5px;min-height:24px;border-radius:var(--radius-md);padding:8px 12px}.decrypt-pending span{width:6px;height:6px;border-radius:50%;background:var(--text-tertiary);animation:dot-hop .9s ease-in-out infinite}.decrypt-pending span:nth-child(2){animation-delay:.12s}.decrypt-pending span:nth-child(3){animation-delay:.24s}@keyframes dot-hop{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-4px);opacity:1}}.empty-illustration{width:84px;height:84px;border-radius:var(--radius-xl);position:relative;display:grid;place-items:center;background:var(--accent-soft);border:none;margin-bottom:4px}.lock-core{width:28px;height:28px;border-radius:8px;border:2.5px solid var(--accent-primary);position:relative;z-index:2}.lock-core:before{content:"";position:absolute;width:16px;height:12px;border-radius:10px 10px 0 0;border:2.5px solid var(--accent-primary);border-bottom:0;left:50%;transform:translate(-50%);top:-12px}.scan-ring{display:none}.message-end-anchor{height:1px;width:100%}.unread-jump-btn{position:absolute;right:24px;bottom:100px;z-index:35;min-height:36px;padding:0 16px;font-size:.82rem;border-radius:var(--radius-full);border:none;background:var(--accent-fill);color:var(--accent-on);box-shadow:var(--shadow-md);animation:unread-float-in .22s ease both}.typing-indicator{margin:0;padding:0 12px;font-size:.8rem;color:var(--text-tertiary);min-height:18px;font-style:italic}.unread-jump-btn:hover{transform:translateY(-1px);background:var(--accent-fill-hover)}@keyframes unread-float-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){.chat-shell{grid-template-columns:minmax(260px,300px) 1fr}}@media (max-width: 900px){.chat-shell{grid-template-columns:1fr;padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom) + var(--soft-keyboard-offset, 0px))}.sidebar-toggle{display:inline-flex;padding:8px 16px}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c0f80;z-index:50;opacity:0;pointer-events:none;transition:opacity .3s ease}.drawer-backdrop.open{opacity:1;pointer-events:auto}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(85vw,340px);height:100dvh;z-index:60;transform:translate(calc(-100% - 12px));transition:transform .32s cubic-bezier(.2,.7,.2,1),visibility 0s linear .32s;border-radius:0 var(--sheet-radius) var(--sheet-radius) 0;background:var(--bg-surface);box-shadow:var(--shadow-lg);margin:0;padding:24px;border:none;animation:none;visibility:hidden;pointer-events:none}.sidebar.open{visibility:visible;pointer-events:auto;transform:translate(0);transition-delay:0s,0s}.sidebar-close{display:inline-flex;position:absolute;top:16px;right:16px;z-index:10}.chat-main{height:calc(100dvh - 24px - env(safe-area-inset-bottom) - var(--soft-keyboard-offset, 0px));min-height:0}.chat-header-row-status{flex-wrap:wrap;gap:6px}.search-inline{width:100%;margin-left:0;margin-top:4px}.search-inline .room-search-input{flex:1;width:auto;min-width:0;max-width:none}.admin-modal-card{max-height:calc(100dvh - 24px)}.admin-modal-grid{grid-template-columns:1fr}.admin-user-panel .managed-list{max-height:34vh}}@media (max-width: 640px){.chat-shell{padding:8px;gap:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom) + var(--soft-keyboard-offset, 0px))}.chat-header-row-top{padding:12px 14px;gap:8px}.chat-header-row-status{padding:4px 14px 12px;gap:6px}.status-text{display:none}.search-inline{order:10;width:100%}.message-list{padding:12px}.bubble-content-wrapper{max-width:85%}.bubble-actions-floating{max-width:min(320px,calc(100vw - 24px))}.composer-actions{gap:6px}.composer-input-wrapper textarea{font-size:16px}.queue-failed-item{grid-template-columns:1fr}.queue-failed-actions{justify-content:flex-end}.toast-stack{top:auto;bottom:calc(90px + env(safe-area-inset-bottom));right:12px;left:12px;width:auto}.peer-popover,.peer-popover-floating{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;max-width:none;max-height:75vh;border-radius:var(--sheet-radius) var(--sheet-radius) 0 0;padding:24px 24px calc(24px + env(safe-area-inset-bottom));transform-origin:bottom center;box-shadow:var(--shadow-lg)}.unread-jump-btn{right:12px;bottom:calc(80px + env(safe-area-inset-bottom))}.admin-modal-shell{padding:8px}.admin-modal-card{max-height:calc(100dvh - 16px)}.admin-pagination{flex-direction:column;align-items:flex-start}.reply-inline{flex-wrap:wrap;row-gap:6px}.reply-jump-btn{max-width:100%}@keyframes popover-enter{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.emoji-picker-popover{position:fixed;z-index:12000;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:popover-enter .2s ease-out forwards;overflow:visible}.emoji-picker-popover .EmojiPickerReact{width:100%!important;max-width:min(320px,calc(100vw - 24px));border-radius:var(--radius-md)}}._shell_1up9k_1{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--bg-base)}._card_1up9k_9{width:min(440px,100%);padding:40px;text-align:left;background:var(--bg-surface);border:none;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}._title_1up9k_19{margin:14px 0 0;font-size:1.8rem;font-weight:800;letter-spacing:-.03em;color:var(--text-primary)}._lead_1up9k_27{color:var(--text-secondary);font-size:.98rem;line-height:1.6;margin:14px 0 28px}._card_1up9k_9 ._primary-btn_1up9k_34{width:100%;padding:13px 22px;font-size:.98rem}
