:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--radius-xs: 6px;--radius-sm: 9px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-panel: 18px;--radius-full: 999px;--nav-width: 72px;--panel-width: 312px;--dur-fast: .14s;--dur: .22s;--dur-slow: .34s;--ease: cubic-bezier(.32, .72, 0, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--shell-gap: 12px;--shell-pad: 12px;--overlay-inset: 16px;--overlay-radius: 16px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--rail-bg: #f4f6fb;--rail-bg-top: #f8fafd;--rail-border: rgba(15, 23, 42, .07);--rail-text: #5c687c;--rail-text-hover: #0f1626;--rail-active-bg: rgba(8, 145, 178, .1);--rail-active-text: #0891b2;--rail-divider: rgba(15, 23, 42, .08);--ring: 0 0 0 3px rgba(var(--primary-rgb), .16)}:root,:root[data-theme=light]{--bg-app: #e7ebf3;--bg-rail: #f5f6fb;--bg-panel: #f8fafd;--bg-content: #ffffff;--bg-card: #ffffff;--bg-hover: rgba(16, 24, 40, .05);--bg-active: rgba(8, 145, 178, .09);--bg-input: #eef1f7;--bg-overlay: rgba(12, 17, 29, .46);--text-1: #0f1626;--text-2: #48546a;--text-3: #66718a;--text-inverse: #ffffff;--border: rgba(15, 23, 42, .075);--border-strong: rgba(15, 23, 42, .14);--primary: #0891b2;--primary-rgb: 8, 145, 178;--primary-strong: #0e7490;--primary-weak: #e0f5fb;--primary-contrast: #ffffff;--accent: #0891b2;--accent-weak: #e0f5fb;--bubble-me: linear-gradient(135deg, #0891b2 0%, #2563eb 100%);--bubble-me-text: #ffffff;--bubble-me-sheen: linear-gradient(180deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, 0) 55%);--bubble-other: #ffffff;--bubble-other-text: #101426;--danger: #ef4444;--danger-weak: #fdecec;--success: #16a34a;--success-weak: #e8f7ee;--warning: #d97706;--warning-weak: #fdf3e3;--shadow-1: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 3px rgba(15, 23, 42, .04);--shadow-2: 0 10px 30px -12px rgba(15, 23, 42, .2), 0 2px 6px rgba(15, 23, 42, .05);--shadow-3: 0 28px 64px -24px rgba(15, 23, 42, .36);--shadow-panel: 0 1px 2px rgba(15, 23, 42, .04), 0 18px 44px -26px rgba(15, 23, 42, .22);--bg-chat: linear-gradient(180deg, #f6fafd 0%, #ffffff 46%);--scrollbar: rgba(15, 23, 42, .18);--glass: rgba(255, 255, 255, .78);--entry-gradient-request: linear-gradient(135deg, #f97316, #fb923c);--entry-gradient-group: linear-gradient(135deg, #0ea5e9, #38bdf8);--entry-gradient-block: linear-gradient(135deg, #64748b, #94a3b8)}:root[data-theme=dark]{--bg-app: #06090f;--bg-rail: #0b0f17;--bg-panel: #0f131c;--bg-content: #141926;--bg-card: #1a2030;--bg-hover: rgba(255, 255, 255, .055);--bg-active: rgba(34, 211, 238, .14);--bg-input: #1c2232;--bg-overlay: rgba(0, 0, 0, .62);--text-1: #eef2fa;--text-2: #a7b1c4;--text-3: #8b93a7;--text-inverse: #0a0c12;--border: rgba(255, 255, 255, .075);--border-strong: rgba(255, 255, 255, .15);--primary: #22d3ee;--primary-rgb: 34, 211, 238;--primary-strong: #67e8f9;--primary-weak: #0f252a;--primary-contrast: #0a0c12;--accent: #22d3ee;--accent-weak: #0f252a;--bubble-me: linear-gradient(135deg, #0e7490 0%, #1d4ed8 100%);--bubble-me-text: #ffffff;--bubble-me-sheen: linear-gradient(180deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, 0) 55%);--bubble-other: #202636;--bubble-other-text: #eef1f8;--danger: #f87171;--danger-weak: #3a1d1d;--success: #4ade80;--success-weak: #14301d;--warning: #fbbf24;--warning-weak: #3a2e14;--shadow-1: 0 1px 2px rgba(0, 0, 0, .42);--shadow-2: 0 12px 32px -14px rgba(0, 0, 0, .62), 0 2px 8px rgba(0, 0, 0, .34);--shadow-3: 0 32px 72px -28px rgba(0, 0, 0, .8);--shadow-panel: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 24px 56px -34px rgba(0, 0, 0, .9);--bg-chat: linear-gradient(180deg, #151b28 0%, #141926 46%);--scrollbar: rgba(255, 255, 255, .18);--glass: rgba(20, 25, 38, .78);--rail-bg: #090d14;--rail-bg-top: #0d1320;--rail-border: rgba(255, 255, 255, .075);--rail-text: #8693a9;--rail-text-hover: #e9eef9;--rail-active-bg: rgba(34, 211, 238, .17);--rail-active-text: #67e8f9;--rail-divider: rgba(255, 255, 255, .09)}:root[data-accent=green]{--primary: #059669;--primary-rgb: 5, 150, 105;--primary-strong: #047857;--primary-weak: #e6f7f0;--accent: #059669;--accent-weak: #e6f7f0;--bubble-me: linear-gradient(135deg, #059669 0%, #0d9488 100%)}:root[data-theme=dark][data-accent=green]{--primary: #34d399;--primary-rgb: 52, 211, 153;--primary-strong: #6ee7b7;--primary-weak: #0f2a20;--accent: #34d399;--accent-weak: #0f2a20;--bubble-me: linear-gradient(135deg, #059669 0%, #0f766e 100%)}:root[data-accent=orange]{--primary: #ea580c;--primary-rgb: 234, 88, 12;--primary-strong: #c2410c;--primary-weak: #ffefe6;--accent: #ea580c;--accent-weak: #ffefe6;--bubble-me: linear-gradient(135deg, #ea580c 0%, #dc2626 100%)}:root[data-theme=dark][data-accent=orange]{--primary: #fb923c;--primary-rgb: 251, 146, 60;--primary-strong: #fdba74;--primary-weak: #2a1a0f;--accent: #fb923c;--accent-weak: #2a1a0f;--bubble-me: linear-gradient(135deg, #ea580c 0%, #b91c1c 100%)}:root[data-accent=pink]{--primary: #db2777;--primary-rgb: 219, 39, 119;--primary-strong: #be185d;--primary-weak: #fce7f3;--accent: #db2777;--accent-weak: #fce7f3;--bubble-me: linear-gradient(135deg, #db2777 0%, #9333ea 100%)}:root[data-theme=dark][data-accent=pink]{--primary: #f472b6;--primary-rgb: 244, 114, 182;--primary-strong: #f9a8d4;--primary-weak: #2a1422;--accent: #f472b6;--accent-weak: #2a1422;--bubble-me: linear-gradient(135deg, #be185d 0%, #7e22ce 100%)}:root[data-accent=cyan]{--primary: #0891b2;--primary-rgb: 8, 145, 178;--primary-strong: #0e7490;--primary-weak: #e0f5fb;--accent: #0891b2;--accent-weak: #e0f5fb;--bubble-me: linear-gradient(135deg, #0891b2 0%, #2563eb 100%)}:root[data-theme=dark][data-accent=cyan]{--primary: #22d3ee;--primary-rgb: 34, 211, 238;--primary-strong: #67e8f9;--primary-weak: #0f252a;--accent: #22d3ee;--accent-weak: #0f252a;--bubble-me: linear-gradient(135deg, #0e7490 0%, #1d4ed8 100%)}:root[data-accent=indigo]{--primary: #4f46e5;--primary-rgb: 79, 70, 229;--primary-strong: #4338ca;--primary-weak: #eef0fe;--accent: #4f46e5;--accent-weak: #eef0fe;--bubble-me: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%)}:root[data-theme=dark][data-accent=indigo]{--primary: #818cf8;--primary-rgb: 129, 140, 248;--primary-strong: #a5b4fc;--primary-weak: #1a1b3a;--accent: #818cf8;--accent-weak: #1a1b3a;--bubble-me: linear-gradient(135deg, #4338ca 0%, #6d28d9 100%)}:root[data-accent=blue]{--primary: #2563eb;--primary-rgb: 37, 99, 235;--primary-strong: #1d4ed8;--primary-weak: #e6edfd;--accent: #2563eb;--accent-weak: #e6edfd;--bubble-me: linear-gradient(135deg, #2563eb 0%, #0ea5e9 100%)}:root[data-theme=dark][data-accent=blue]{--primary: #60a5fa;--primary-rgb: 96, 165, 250;--primary-strong: #93c5fd;--primary-weak: #13203a;--accent: #60a5fa;--accent-weak: #13203a;--bubble-me: linear-gradient(135deg, #1d4ed8 0%, #0284c7 100%)}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0;padding:0}body{font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--text-1);background:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}h1,h2,h3,h4,h5,p{margin:0}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}input:focus,textarea:focus,button:focus,[tabindex]:focus{outline:none}input:focus-visible,textarea:focus-visible,button:focus-visible,[tabindex]:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-xs)}.chat-header-info:focus-visible,.announcement-bar:focus-visible,.e2ee-banner:focus-visible,.switch:focus-visible,.reply-quote:focus-visible,.voice-bubble:focus-visible,.msg-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}a{color:var(--primary);text-decoration:none}img{max-width:100%;display:block}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:var(--radius-full);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar);border:1px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}.panel-body,.content-scroll,.msg-list,.settings-section,.ai-messages,.legal-body,.modal-body{overscroll-behavior:contain}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-1{flex:1;min-width:0}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-2{color:var(--text-2)}.text-3{color:var(--text-3)}.mono{font-family:var(--font-mono)}.rotate-180{transform:rotate(180deg)}::selection{background:var(--bg-active)}body,.app-shell,.panel,.chat-window{transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 15px;border-radius:var(--radius-sm);font-weight:550;font-size:13.5px;transition:all var(--dur-fast) var(--ease);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,rgba(255,255,255,.08),transparent),var(--primary);color:var(--primary-contrast);box-shadow:0 1px 2px rgba(var(--primary-rgb),.28),inset 0 1px #ffffff24}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,rgba(255,255,255,.1),transparent),var(--primary-strong);box-shadow:0 6px 16px -6px rgba(var(--primary-rgb),.55);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-1)}.btn-soft{background:var(--primary-weak);color:var(--primary)}.btn-soft:hover:not(:disabled){filter:brightness(.97)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.06)}.btn-outline{border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text-1)}.btn-outline:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-sm{height:30px;padding:0 12px;font-size:13px}.btn-lg{height:42px;padding:0 22px;font-size:15px}.btn-block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;color:var(--text-2);transition:all var(--dur-fast) var(--ease);flex-shrink:0;position:relative}.icon-btn:hover{background:var(--bg-hover);color:var(--text-1)}.icon-btn:active{transform:scale(.94)}.icon-btn:disabled{opacity:.38;cursor:not-allowed;background:none;color:var(--text-3)}.icon-btn:disabled:hover{background:none;color:var(--text-3)}.icon-btn:disabled:active{transform:none}.icon-btn.active{background:var(--bg-active);color:var(--primary)}.icon-btn-sm{width:26px;height:26px}.input,.textarea{width:100%;height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text-1);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.textarea{height:auto;min-height:84px;padding:10px 12px;resize:vertical;line-height:1.6}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12)}.input-wrap{position:relative;display:flex;align-items:center}.input-wrap.has-icon .input{padding-left:36px}.input-wrap .input-icon{position:absolute;left:10px;color:var(--text-3);display:flex;pointer-events:none}.input-wrap.has-suffix .input{padding-right:32px}.input-suffix{position:absolute;right:8px;display:flex;align-items:center}.input-clear{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--radius-full);color:var(--text-3);background:var(--bg-hover)}.input-clear:hover{color:var(--text-1);background:var(--border-strong)}.search-input .input{height:36px;border-radius:10px;background:var(--bg-input);border-color:transparent;font-size:13px}.search-input .input:hover{background:var(--bg-hover)}.search-input .input:focus{background:var(--bg-card);border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12)}.field{display:flex;flex-direction:column;gap:6px;text-align:left}.field-label{font-size:13px;color:var(--text-2);font-weight:500}.field-hint{font-size:12px;color:var(--text-3)}.field-error{font-size:12px;color:var(--danger)}.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:#fff;font-weight:600;flex-shrink:0;-webkit-user-select:none;user-select:none;width:40px;height:40px;font-size:15px}.avatar-media{position:absolute;top:0;right:0;bottom:0;left:0;display:inline-flex;align-items:center;justify-content:center;border-radius:inherit;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar svg{width:50%;height:50%}.avatar-round{border-radius:var(--radius-full)}.avatar-group{border-radius:var(--radius-md)}.avatar-xs{width:24px;height:24px;font-size:11px;border-radius:var(--radius-sm)}.avatar-sm{width:32px;height:32px;font-size:13px}.avatar-lg{width:56px;height:56px;font-size:20px;border-radius:var(--radius-lg)}.avatar-xl{width:80px;height:80px;font-size:28px;border-radius:var(--radius-xl)}.online-dot{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:var(--radius-full);background:var(--success);border:2px solid var(--bg-panel);transition:background var(--dur) var(--ease)}.avatar-off .online-dot{background:var(--text-3)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--danger);color:#fff;font-size:11px;font-weight:600;line-height:1}.badge-dot{min-width:8px;height:8px;padding:0}.badge-muted{background:var(--text-3)}.badge-primary{background:var(--primary)}.nav-badge{position:absolute;top:2px;right:2px;pointer-events:none;box-shadow:0 0 0 2px var(--rail-bg)}.modal-mask,.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--overlay-inset);animation:mask-in var(--dur-fast) var(--ease);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@keyframes mask-in{0%{opacity:0}to{opacity:1}}.modal{width:min(440px,calc(100vw - var(--overlay-inset) - var(--overlay-inset)));max-height:min(82vh,720px);background:var(--bg-content);border-radius:var(--overlay-radius);box-shadow:var(--shadow-3);display:flex;flex-direction:column;overflow:hidden;animation:modal-in var(--dur) var(--ease-spring);border:1px solid var(--border)}@keyframes modal-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-lg{width:min(640px,calc(100vw - var(--overlay-inset) - var(--overlay-inset)))}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;flex-shrink:0}.modal-title{font-size:16px;font-weight:600}.modal-body{padding:4px 20px 20px;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px 18px;flex-shrink:0}.drawer-mask{align-items:stretch;justify-content:flex-end;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0}.drawer{width:min(360px,90vw);height:100%;background:var(--bg-content);box-shadow:var(--shadow-3);display:flex;flex-direction:column;animation:drawer-in var(--dur) var(--ease);border-left:1px solid var(--border)}@keyframes drawer-in{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}.menu{position:fixed;z-index:1100;min-width:168px;padding:6px;background:var(--bg-content);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-2);animation:menu-in var(--dur-fast) var(--ease)}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.menu:focus,.menu:focus-visible{outline:none}.menu-item{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border-radius:7px;color:var(--text-1);font-size:13px;transition:background var(--dur-fast) var(--ease)}.menu-item:hover,.menu-item:focus-visible{background:var(--bg-hover)}.menu-item:focus-visible{outline-offset:-2px}.menu-item.danger{color:var(--danger)}.menu-item.danger:hover{background:var(--danger-weak)}.menu-item:disabled{opacity:.45;cursor:not-allowed}.menu-divider{height:1px;margin:5px 6px;background:var(--border)}.switch{position:relative;width:40px;height:22px;border-radius:var(--radius-full);background:var(--border-strong);transition:background var(--dur) var(--ease);flex-shrink:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform var(--dur) var(--ease-spring)}.switch.on{background:var(--primary)}.switch.on:after{transform:translate(18px)}.tabs{display:flex;gap:3px;padding:3px;background:var(--bg-input);border-radius:9px}.tab{flex:1;height:30px;border-radius:7px;font-size:13px;color:var(--text-2);transition:all var(--dur-fast) var(--ease);display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;padding:0 10px}.tab:hover{color:var(--text-1)}.tab.active{background:var(--bg-card);color:var(--text-1);box-shadow:var(--shadow-1);font-weight:500}.spinner{width:20px;height:20px;border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.spinner-sm{width:14px;height:14px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.loading-line{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;color:var(--text-3);font-size:12.5px}.page-fallback{flex:1;min-width:0;min-height:0;height:100%;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--text-3);font-size:13px;opacity:0;animation:page-fallback-in .2s var(--ease) .15s forwards}.page-fallback.fullscreen{height:100vh;background:var(--bg-app)}@keyframes page-fallback-in{to{opacity:1}}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 24px;color:var(--text-3);text-align:center;height:100%}.empty-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:20px;background:var(--bg-input);color:var(--text-3);margin-bottom:4px}.empty-icon svg{opacity:.72}.empty-title{font-size:14px;font-weight:600;color:var(--text-2)}.empty-desc{font-size:12.5px;max-width:260px;line-height:1.65}.empty-action{display:flex;justify-content:center;margin-top:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-hover) 25%,rgba(127,140,180,.14) 50%,var(--bg-hover) 75%);background-size:200% 100%;animation:shimmer 1.4s ease infinite}@keyframes shimmer{to{background-position:-200% 0}}.divider{height:1px;background:var(--border);flex-shrink:0}.kbd{padding:1px 6px;font-size:11px;border-radius:var(--radius-xs);border:1px solid var(--border-strong);border-bottom-width:2px;background:var(--bg-input);color:var(--text-2);font-family:var(--font-mono)}.chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 10px;border-radius:var(--radius-full);background:var(--bg-input);color:var(--text-2);font-size:12.5px}.chip-primary{background:var(--primary-weak);color:var(--primary)}.chip-btn{border:1px solid transparent;cursor:pointer;font-family:inherit;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.chip-btn:hover{background:var(--bg-hover)}.chip-btn.chip-primary{border-color:var(--primary)}.page-enter{animation:page-in var(--dur) var(--ease)}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-shell{display:flex;height:100vh;background:radial-gradient(1100px 520px at 22% -12%,rgba(var(--primary-rgb),.07),transparent 62%),radial-gradient(900px 500px at 100% 110%,rgba(var(--primary-rgb),.05),transparent 58%),var(--bg-app);overflow:hidden}.nav-rail{width:calc(var(--nav-width) + var(--safe-left));flex-shrink:0;background:linear-gradient(180deg,var(--rail-bg-top) 0%,var(--rail-bg) 46%,var(--rail-bg) 100%);border-right:1px solid var(--rail-border);display:flex;flex-direction:column;align-items:center;padding:calc(14px + var(--safe-top)) 0 calc(12px + var(--safe-bottom)) var(--safe-left);gap:4px;z-index:20;position:relative}.nav-rail:after{content:"";position:absolute;top:0;right:0;bottom:0;width:1px;background:linear-gradient(180deg,var(--rail-border),transparent 28%,transparent 72%,var(--rail-border));pointer-events:none}.rail-avatar{cursor:pointer;border-radius:var(--radius-md);transition:transform var(--dur) var(--ease)}.rail-avatar:hover{transform:scale(1.06)}.rail-avatar:active{transform:scale(.98)}.rail-divider{width:26px;height:1px;flex-shrink:0;margin:8px 0;background:var(--rail-divider)}.nav-item{position:relative;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--rail-text);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.nav-item:hover{background:var(--bg-hover);color:var(--rail-text-hover)}.nav-item.active{background:var(--rail-active-bg);color:var(--rail-active-text)}.nav-item.active:before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:var(--radius-full);background:var(--primary);animation:rail-indicator var(--dur) var(--ease-spring)}@keyframes rail-indicator{0%{height:4px;opacity:0}to{height:18px;opacity:1}}.nav-item:active{transform:scale(.94)}.nav-item[data-tip]:after{content:attr(data-tip);position:absolute;left:calc(100% + 14px);top:50%;transform:translate(-4px,-50%);padding:5px 10px;border-radius:8px;background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-2);color:var(--text-1);font-size:12px;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);z-index:40}.nav-item[data-tip]:hover:after{opacity:1;transform:translateY(-50%)}.rail-spacer{flex:1}.rail-footer{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding-top:8px;margin-top:6px;border-top:1px solid var(--rail-divider)}.shell-body{flex:1;min-width:0;display:flex;flex-direction:column;padding-top:var(--safe-top);padding-right:var(--safe-right);padding-bottom:var(--safe-bottom)}.shell-main{flex:1;min-height:0;display:flex}.conn-banner{flex:none;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 12px;font-size:12.5px;animation:conn-banner-in var(--dur) var(--ease)}.conn-banner.is-reconnecting{color:var(--warning);background:var(--warning-weak)}.conn-banner.is-offline{color:var(--danger);background:var(--danger-weak)}@keyframes conn-banner-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.conn-retry{font-size:12.5px;color:inherit;text-decoration:underline;text-underline-offset:2px}.conn-retry:hover{opacity:.8}.workspace{flex:1;min-width:0;display:flex;gap:var(--shell-gap);padding:var(--shell-pad)}.panel{width:var(--panel-width);flex-shrink:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);display:flex;flex-direction:column;overflow:hidden;position:relative}.panel-header{padding:18px 14px 10px;display:flex;flex-direction:column;gap:12px;flex-shrink:0;position:relative}.panel-header:after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--border) 12%,var(--border) 88%,transparent);pointer-events:none}.panel-title-row{display:flex;align-items:center;justify-content:space-between;padding:0 2px;gap:8px}.panel-title{display:flex;align-items:center;gap:8px;min-width:0;font-size:18px;font-weight:680;letter-spacing:-.3px;color:var(--text-1)}.panel-subtitle{margin-left:0;font-size:11px;line-height:18px;color:var(--text-2);font-weight:550;letter-spacing:0;white-space:nowrap;padding:0 7px;border-radius:var(--radius-full);background:var(--bg-input)}.panel-actions{display:flex;align-items:center;gap:0;padding:2px;border-radius:10px;background:var(--bg-input);flex-shrink:0}.panel-actions .icon-btn{width:28px;height:28px;border-radius:8px}.panel-actions .icon-btn:hover,.panel-actions .icon-btn.active{background:var(--bg-card);box-shadow:var(--shadow-1)}.panel-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:2px 8px 12px;scrollbar-gutter:stable}.panel-body-indexed{padding-right:34px}.content-area{flex:1;min-width:0;min-height:0;background:var(--bg-content);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);display:flex;flex-direction:column;overflow:hidden;position:relative}.list-item{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--dur-fast) var(--ease);position:relative}.list-item:hover{background:var(--bg-hover)}.list-item.active{background:var(--bg-active)}.list-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.list-item-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;font-weight:500;color:var(--text-1)}.list-item-title .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item-time{font-size:11.5px;color:var(--text-3);flex-shrink:0;font-variant-numeric:tabular-nums}.list-item-desc{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--text-3);min-height:18px}.list-item-desc .preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.list-item-actions{display:none;position:absolute;right:8px;top:50%;transform:translateY(-50%);gap:2px}.list-item:hover .list-item-actions,.list-item:focus-within .list-item-actions{display:flex}.section-label{padding:6px 12px;font-size:12px;font-weight:600;color:var(--text-3);letter-spacing:.5px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;border-radius:var(--radius-md);transition:background var(--dur-fast) var(--ease)}.setting-row:hover{background:var(--bg-hover)}.setting-row-main{display:flex;flex-direction:column;gap:2px;min-width:0}.setting-row-title{font-size:14px;color:var(--text-1);font-weight:500}.setting-row-desc{font-size:12.5px;color:var(--text-3)}.content-header{height:62px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 22px;border-bottom:1px solid var(--border);background:var(--glass);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);z-index:10}.content-header-title{font-size:16px;font-weight:650;letter-spacing:-.2px;display:flex;align-items:center;gap:9px}.content-scroll{flex:1;overflow-y:auto;padding:24px 28px}.content-narrow{max-width:760px;margin:0 auto}.chat-mobile-back,.detail-mobile-back{display:none}.content-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:40px 24px;color:var(--text-3);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;background:var(--bg-chat)}.content-empty:before{content:"";position:absolute;width:540px;height:540px;border-radius:50%;background:radial-gradient(circle,rgba(var(--primary-rgb),.08),transparent 62%);pointer-events:none}.content-empty>*{position:relative}.content-empty-logo{width:88px;height:88px;border-radius:26px;background:linear-gradient(150deg,rgba(var(--primary-rgb),.18),rgba(var(--primary-rgb),.05));border:1px solid rgba(var(--primary-rgb),.16);box-shadow:0 22px 52px -30px rgba(var(--primary-rgb),.7),inset 0 1px #ffffffa6;display:flex;align-items:center;justify-content:center;color:var(--primary);margin-bottom:2px}:root[data-theme=dark] .content-empty-logo{box-shadow:0 22px 52px -30px #000000e6,inset 0 1px #ffffff14}.content-empty h2{font-size:20px;color:var(--text-1);font-weight:680;letter-spacing:-.4px}.content-empty p{font-size:13px;max-width:380px;line-height:1.7;text-align:center}.empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;padding:0 24px;max-width:760px}.empty-action{display:flex;align-items:center;gap:10px;min-width:196px;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);text-align:left;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.empty-action:hover{border-color:rgba(var(--primary-rgb),.45);box-shadow:var(--shadow-2);transform:translateY(-1px)}.empty-action-icon{width:34px;height:34px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--primary-weak);color:var(--primary);display:flex;align-items:center;justify-content:center}.empty-action-main{display:flex;flex-direction:column;gap:1px;min-width:0}.empty-action-main strong{font-size:13.5px;font-weight:600;color:var(--text-1)}.empty-action-main em{font-style:normal;font-size:11.5px;color:var(--text-3);white-space:nowrap}.kbd{margin-left:auto;padding:2px 6px;border:1px solid var(--border-strong);border-radius:5px;background:var(--bg-input);font-family:var(--font-mono);font-size:10.5px;line-height:1.4;color:var(--text-3);white-space:nowrap}.friend-number{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--radius-full);border:1px solid var(--border);background:var(--bg-card);font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-2);transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.friend-number:hover{border-color:var(--primary);color:var(--primary)}.letter-header{position:sticky;top:0;z-index:2;padding:5px 12px;font-size:12px;font-weight:600;color:var(--text-3);letter-spacing:.5px;background:var(--bg-panel)}.letter-header.star{color:var(--warning)}.member-index-bar{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-2);z-index:6;-webkit-user-select:none;user-select:none;touch-action:none}.member-index-bar .index-item{width:16px;height:15px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:500;color:var(--text-3);border-radius:var(--radius-full);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.member-index-bar .index-item:hover,.member-index-bar .index-item.active{background:var(--primary);color:var(--primary-contrast)}.member-index-bar .index-bubble{position:absolute;right:34px;top:50%;transform:translateY(-50%);min-width:42px;height:42px;padding:0 12px;border-radius:var(--radius-md);background:var(--bg-overlay);color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;pointer-events:none}@media (max-width: 1100px){:root{--panel-width: 268px}}@media (max-width: 860px){:root{--panel-width: 236px;--nav-width: 60px;--shell-gap: 9px;--shell-pad: 9px}.app-shell{height:100dvh}.panel-subtitle{display:none}}@media (max-width: 640px){:root{--nav-width: 52px}.app-shell{flex-direction:row}.nav-rail{width:calc(var(--nav-width) + var(--safe-left));height:100%;flex-direction:column;gap:3px;padding:calc(8px + var(--safe-top)) 4px calc(8px + var(--safe-bottom)) calc(4px + var(--safe-left))}.rail-divider{display:none}.rail-avatar{margin-bottom:12px}.nav-item[data-tip]:after{display:none}.nav-item{width:100%;height:42px;flex:none;justify-content:center}.nav-item.active:before{left:-4px;height:16px}.panel-subtitle{display:inline-flex;align-items:center}.shell-body{flex:1;min-width:0;min-height:0}.workspace{padding:0;gap:0}.workspace.switchable>.panel,.workspace.switchable>.content-area{width:100%;flex:1 1 100%;border:none;border-radius:0}.workspace.standalone-page>.content-area{border:none;border-radius:0}.workspace.switchable:not(.pane-open)>.content-area{display:none}.workspace.switchable.pane-open>.panel{display:none}.workspace.switchable.pane-open .chat-mobile-back,.workspace.switchable.pane-open .detail-mobile-back{display:inline-flex}input:not([type=checkbox]):not([type=radio]),textarea,select{font-size:16px}.composer-textarea{font-size:16px}.modal-mask{padding:calc(var(--overlay-inset) + var(--safe-top)) var(--overlay-inset) calc(var(--overlay-inset) + var(--safe-bottom))}.modal{width:100%;max-width:100%;max-height:calc(100dvh - var(--overlay-inset) - var(--overlay-inset) - var(--safe-top) - var(--safe-bottom));border-radius:var(--overlay-radius)}.modal-header{padding:16px 18px 10px}.modal-title{font-size:16px}.modal-header .icon-btn{width:36px;height:36px}.modal-body{padding:2px 18px 16px}.modal-footer{padding:10px 18px 16px;gap:10px;flex-wrap:wrap}.modal-footer .btn{min-height:40px;min-width:84px}.menu{max-width:calc(100vw - 24px)}.menu-item{padding:9px 10px;font-size:13.5px}.image-viewer{padding:calc(44px + var(--safe-top)) 12px calc(76px + var(--safe-bottom))}.member-index-bar{right:0;padding:5px 2px}.panel-body-indexed{padding-right:24px}.content-empty{gap:22px}.content-empty h2{margin-bottom:4px}.content-empty p{margin-top:-6px;line-height:1.7}.empty-actions{flex-direction:column;width:100%;padding:0 18px}.empty-action{width:100%}}.conv-item{display:flex;align-items:center;gap:12px;padding:10px 11px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);position:relative}.conv-item:hover{background:var(--bg-hover)}.conv-item.active{background:linear-gradient(90deg,rgba(var(--primary-rgb),.1),rgba(var(--primary-rgb),.025) 72%,transparent)}.conv-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:22px;border-radius:var(--radius-full);background:var(--primary)}.conv-item.active .conv-name{color:var(--primary);font-weight:620}.conv-item.active .conv-preview{color:var(--text-2)}.conv-item.pinned .conv-name{font-weight:600}.conv-group-label{display:flex;align-items:center;gap:6px;padding:12px 12px 4px;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--text-3);-webkit-user-select:none;user-select:none}.conv-group-label>span{margin-left:auto;padding:0 6px;border-radius:var(--radius-full);background:var(--bg-input);font-size:10.5px;font-weight:550;line-height:16px;color:var(--text-3)}.conv-draft-tag{color:var(--danger);font-weight:600;margin-right:4px}.conv-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.conv-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.conv-name{font-size:13.5px;font-weight:560;letter-spacing:-.1px;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:5px}.conv-time{font-size:11px;letter-spacing:.1px;color:var(--text-3);flex-shrink:0;font-variant-numeric:tabular-nums}.conv-preview{font-size:12.5px;line-height:18px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.conv-filters{display:flex;align-items:center;gap:3px;margin-top:-2px}.conv-filter{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:500;color:var(--text-3);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.conv-filter:hover:not(:disabled){background:var(--bg-hover);color:var(--text-1)}.conv-filter.active{background:var(--bg-card);color:var(--text-1);font-weight:600;box-shadow:var(--shadow-1),inset 0 0 0 1px var(--border)}.conv-filter:disabled{opacity:.45;cursor:default}.conv-filter-count{min-width:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--bg-input);font-size:10.5px;font-weight:600;line-height:16px;text-align:center;font-variant-numeric:tabular-nums;color:var(--text-2)}.conv-filter.active .conv-filter-count{background:var(--primary-weak);color:var(--primary)}.conv-filter-count.accent{background:var(--danger-weak);color:var(--danger)}.conv-filter-archive{margin-left:auto}.search-kbd{font-family:var(--font-mono);font-size:10px;line-height:14px;padding:1px 5px;border-radius:5px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-3);white-space:nowrap}.conv-badges{display:flex;align-items:center;gap:4px;flex-shrink:0}.conv-icon{color:var(--text-3);display:inline-flex}.conv-dot-unread{width:9px;height:9px;border-radius:50%;background:var(--danger);flex-shrink:0}.conv-skeleton-row{display:flex;align-items:center;gap:11px;padding:10px}.conv-skeleton-avatar{width:40px;height:40px;border-radius:var(--radius-md);flex-shrink:0}.conv-skeleton-row .conv-main{justify-content:center;gap:6px;height:40px}.conv-skeleton-line{height:12px;border-radius:6px}.conv-skeleton-line.sm{height:10px;opacity:.72}.chat-window{flex:1;display:flex;flex-direction:column;min-height:0;position:relative;background:var(--bg-content)}.chat-window:before{content:"";position:absolute;left:0;right:0;top:64px;height:16px;z-index:11;pointer-events:none;background:linear-gradient(180deg,var(--bg-content),transparent)}.chat-header{height:64px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 18px 0 20px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(var(--primary-rgb),.035),transparent),var(--glass);-webkit-backdrop-filter:blur(16px) saturate(1.15);backdrop-filter:blur(16px) saturate(1.15);z-index:12}.chat-header .avatar{box-shadow:0 0 0 1px var(--border),var(--shadow-1)}.chat-header-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;cursor:pointer;border-radius:var(--radius-sm)}.chat-header-name{font-size:15.5px;font-weight:660;letter-spacing:-.2px;display:flex;align-items:center;gap:7px;overflow:hidden}.chat-header-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--dur-fast) var(--ease)}.chat-header-info:hover .chat-header-name-text{color:var(--primary)}.chat-header-kind{flex-shrink:0;padding:0 6px;height:17px;display:inline-flex;align-items:center;border-radius:5px;background:var(--bg-input);border:1px solid var(--border);color:var(--text-3);font-size:10px;font-weight:600;letter-spacing:.3px}.chat-header-sub{font-size:11.5px;color:var(--text-3);height:16px;display:flex;align-items:center;gap:5px}.chat-header-actions{display:flex;align-items:center;gap:1px;padding:3px;border-radius:12px;background:var(--bg-input);flex-shrink:0}.chat-header-actions .icon-btn{width:30px;height:30px;border-radius:9px}.chat-header-actions .icon-btn:hover{background:var(--bg-card);box-shadow:var(--shadow-1);color:var(--text-1)}.chat-header-actions .icon-btn.active{background:var(--bg-card);box-shadow:var(--shadow-1);color:var(--primary)}:root[data-theme=dark] .chat-header-actions .icon-btn:hover,:root[data-theme=dark] .chat-header-actions .icon-btn.active{background:#ffffff12}.chat-drop-mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;pointer-events:none;background:rgba(var(--primary-rgb),.06);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);animation:drop-fade-in var(--dur-fast) var(--ease)}@keyframes drop-fade-in{0%{opacity:0}to{opacity:1}}.chat-drop-mask:after{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:2px dashed rgba(var(--primary-rgb),.45);border-radius:var(--radius-lg)}.chat-drop-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 30px;border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-3);text-align:center;animation:pill-in var(--dur) var(--ease-spring)}.chat-drop-icon{width:44px;height:44px;margin-bottom:6px;border-radius:var(--radius-md);background:var(--primary-weak);color:var(--primary);display:flex;align-items:center;justify-content:center}.chat-drop-card strong{font-size:14.5px;color:var(--text-1)}.chat-drop-hint{font-size:12px;color:var(--text-3)}.msg-scroll{flex:1;min-height:0;background:var(--bg-chat)}.msg-scroll.msg-scroll-center{display:flex;flex-direction:column}.msg-scroll.msg-scroll-center>.empty{flex:1}.chat-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;background:var(--bg-content);overflow:hidden;transition:opacity .18s var(--ease)}.chat-loading-overlay.leaving{opacity:0;pointer-events:none}.chat-loading-header{height:64px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 20px;border-bottom:1px solid var(--border)}.chat-loading-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:16px;padding:18px 20px;overflow:hidden}.chat-loading-body .msg-skeleton-row{flex:1 1 54px;min-height:54px;align-items:center}.chat-loading-footer{position:absolute;left:0;right:0;bottom:0;padding:14px 16px 18px;border-top:1px solid var(--border);background:var(--bg-content)}.chat-loading-avatar{width:36px;height:36px;border-radius:10px;flex-shrink:0}.chat-loading-bar{height:12px;border-radius:6px}.chat-loading-input{height:42px;border-radius:12px}.msg-skeleton-row{display:flex;gap:10px;align-items:flex-start}.msg-skeleton-row.me{flex-direction:row-reverse}.msg-skeleton-avatar{width:36px;height:36px;border-radius:10px;flex-shrink:0}.msg-skeleton-bubble{height:38px;border-radius:14px;max-width:62%}.msg-skeleton-row:nth-child(6n+1) .msg-skeleton-bubble{width:46%}.msg-skeleton-row:nth-child(6n+2) .msg-skeleton-bubble{width:64%}.msg-skeleton-row:nth-child(6n+3) .msg-skeleton-bubble{width:38%}.msg-skeleton-row:nth-child(6n+4) .msg-skeleton-bubble{width:72%}.msg-skeleton-row:nth-child(6n+5) .msg-skeleton-bubble{width:52%}.msg-skeleton-row:nth-child(6n+6) .msg-skeleton-bubble{width:60%}.msg-list{width:100%;height:100%;overflow-x:hidden;scrollbar-width:none;opacity:0;transition:opacity .16s var(--ease)}.msg-list::-webkit-scrollbar{display:none}.msg-list.msg-list-ready{opacity:1}.msg-viewport{padding:14px 0 22px}.self-destruct-countdown{font-size:11px;opacity:.8;margin-left:6px;font-variant-numeric:tabular-nums;white-space:nowrap}.msg-row.me .self-destruct-countdown{color:var(--primary-contrast)}.msg-list-end{text-align:center;padding:12px 0 4px;font-size:11.5px;color:var(--text-3);opacity:.85;-webkit-user-select:none;user-select:none}.msg-divider{display:flex;align-items:center;gap:12px;padding:20px 20px 8px}.msg-divider:before,.msg-divider:after{content:"";flex:1;height:1px;min-width:24px;background:linear-gradient(90deg,transparent,var(--border-strong))}.msg-divider:after{background:linear-gradient(90deg,var(--border-strong),transparent)}.msg-divider span{flex-shrink:0;font-size:11.5px;font-variant-numeric:tabular-nums;color:var(--text-3);background:none;padding:0;border-radius:var(--radius-full)}.msg-system{display:flex;justify-content:center;padding:5px 16px}.msg-system>span{max-width:78%;font-size:11.5px;color:var(--text-3);background:var(--bg-hover);padding:3px 10px;border-radius:var(--radius-full);text-align:center;word-break:break-word}.unread-divider{display:flex;align-items:center;gap:10px;padding:14px 20px 6px;color:var(--primary);font-size:11px;font-weight:600;letter-spacing:.02em}.unread-divider>span{flex-shrink:0;padding:2px 9px;border-radius:var(--radius-full);background:var(--primary-weak)}.unread-divider:before,.unread-divider:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--primary-rgb),.5),transparent)}.msg-row{display:flex;gap:10px;padding:4px 20px;position:relative}.msg-row.msg-animate-in{animation:msg-in var(--dur) var(--ease)}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.msg-row.me{flex-direction:row-reverse}.msg-row.grouped{padding-top:0}.msg-row.grouped .msg-avatar-holder{visibility:hidden;height:0;overflow:hidden}.msg-avatar-holder{width:36px;flex-shrink:0;cursor:pointer}.msg-body{min-width:0;max-width:min(66%,600px);display:flex;flex-direction:column;gap:4px}.msg-row.me .msg-body{align-items:flex-end}.msg-sender{font-size:12px;color:var(--text-3);padding:0 4px}.msg-bubble-line{display:flex;align-items:flex-end;gap:8px;position:relative;max-width:100%}.msg-row.me .msg-bubble-line{flex-direction:row-reverse}.bubble{position:relative;padding:9px 14px;border-radius:6px 14px 14px;background:var(--bubble-other);color:var(--bubble-other-text);box-shadow:var(--shadow-1);font-size:14px;line-height:1.6;letter-spacing:.01em;word-break:break-word;white-space:pre-wrap;min-width:0}.msg-row.me .bubble{background:var(--bubble-me);color:var(--bubble-me-text);border-top-left-radius:14px;border-top-right-radius:6px;isolation:isolate}.msg-row.me .bubble:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--bubble-me-sheen);pointer-events:none;z-index:-1}.bubble:not(.bubble-media):not(.bubble-sticker):not(.bubble-recalled){box-shadow:inset 0 0 0 1px var(--border),0 1px 2px #0f172a0a}.msg-row.me .bubble:not(.bubble-media):not(.bubble-sticker):not(.bubble-recalled){box-shadow:0 2px 8px -4px rgba(var(--primary-rgb),.55),inset 0 1px #ffffff1a}.bubble.no-tail,.msg-row.grouped .bubble{border-top-left-radius:14px;border-top-right-radius:14px}.bubble-media{padding:0;background:none!important;box-shadow:none;overflow:visible}.bubble-sticker{background:none!important;box-shadow:none;padding:0;font-size:42px;line-height:1.2}.bubble-recalled{background:none!important;box-shadow:none;padding:2px 0}.bubble-recalled .recalled-text{font-size:12.5px;color:var(--text-3);background:var(--bg-hover);padding:3px 10px;border-radius:var(--radius-full)}.bubble-violation{border:1px dashed var(--danger)}.bubble-highlight .bubble,.bubble-highlight .voice-bubble,.bubble-highlight .file-bubble,.bubble-highlight .img-bubble,.bubble-highlight .video-bubble{animation:bubble-flash 1.8s var(--ease)}@keyframes bubble-flash{0%,40%{box-shadow:0 0 0 3px rgba(var(--primary-rgb),.45)}to{box-shadow:var(--shadow-1)}}.reply-quote{display:flex;gap:8px;padding:6px 10px;margin:-2px 0 6px;border-radius:var(--radius-sm);background:#7f8cb41f;border-left:3px solid var(--primary);font-size:12.5px;cursor:pointer;max-width:100%}.msg-row.me .reply-quote{background:#ffffff29;border-left-color:#ffffffbf}.reply-quote-main{min-width:0}.reply-quote-name{font-weight:600;color:var(--primary);margin-bottom:1px}.msg-row.me .reply-quote-name{color:#ffffffeb}.reply-quote-text{color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-row.me .reply-quote-text{color:#ffffffbf}.msg-meta{position:absolute;bottom:2px;display:flex;align-items:center;gap:4px;font-size:10.5px;color:var(--text-3);transition:opacity var(--dur-fast) var(--ease);white-space:nowrap}.msg-row:not(.me) .msg-meta{left:calc(100% + 8px)}.msg-row.me .msg-meta{right:calc(100% + 8px)}.msg-meta .meta-time{opacity:0;transition:opacity var(--dur-fast) var(--ease)}@media (hover: hover){.msg-row:hover .msg-meta .meta-time{opacity:1}}.msg-meta.always .meta-time,.msg-row.meta-open .msg-meta .meta-time{opacity:1}.msg-meta .edited-tag{font-style:normal}.status-icon.read{color:var(--primary)}.status-icon.failed{color:var(--danger)}.status-wrap{display:inline-flex;align-items:center;cursor:default}.status-wrap.clickable{cursor:pointer}.status-wrap.clickable:hover .status-icon{color:var(--primary)}.msg-actions{position:absolute;bottom:calc(100% + 2px);display:flex;align-items:center;gap:1px;padding:3px;background:var(--bg-content);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-2);opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);transform:translateY(3px);z-index:7}.msg-row:not(.me) .msg-actions{left:0}.msg-row.me .msg-actions{right:0}.msg-row:hover .msg-actions{opacity:1;pointer-events:auto;transform:translateY(0)}.mention{color:var(--primary);font-weight:600}.msg-row.me .mention{color:#fff;background:#ffffff2e;border-radius:4px;padding:0 3px}.msg-link{color:var(--primary);text-decoration:underline;text-underline-offset:2px;word-break:break-all}.msg-row.me .msg-link{color:#fff;font-weight:550}.reactions-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.reaction-chip{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:var(--radius-full);background:var(--bg-input);border:1px solid transparent;font-size:12px;color:var(--text-2);transition:all var(--dur-fast) var(--ease)}.reaction-chip:hover{border-color:var(--primary)}.reaction-chip.reacted{background:var(--primary-weak);border-color:var(--primary);color:var(--primary)}.msg-system{display:flex;justify-content:center;padding:8px 0}.msg-system span{font-size:12px;color:var(--text-3);max-width:70%;text-align:center}.img-bubble{position:relative;border-radius:13px;overflow:hidden;cursor:zoom-in;background:var(--bg-input);max-width:100%;box-shadow:var(--shadow-1)}.img-bubble.loading{background:linear-gradient(90deg,var(--bg-hover) 25%,rgba(127,140,180,.16) 50%,var(--bg-hover) 75%);background-size:200% 100%;animation:shimmer 1.4s ease infinite}.img-bubble img{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s var(--ease),transform var(--dur-slow) var(--ease)}.img-bubble.loaded img{opacity:1}.img-bubble:hover img{transform:scale(1.02)}.media-size-unknown{min-width:140px;min-height:96px}.file-bubble{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:13px;background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-1);min-width:220px;max-width:320px;cursor:pointer;transition:border-color var(--dur-fast) var(--ease)}.file-bubble:hover{border-color:var(--primary)}.file-icon-box{width:42px;height:42px;border-radius:var(--radius-sm);background:var(--primary-weak);display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0}.file-info{min-width:0;flex:1}.file-name{font-size:13.5px;font-weight:550;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{font-size:11.5px;color:var(--text-3);margin-top:2px}.voice-bubble{display:flex;align-items:center;gap:9px;padding:9px 14px;border-radius:15px;background:var(--bubble-other);box-shadow:var(--shadow-1);cursor:pointer;min-width:96px;color:var(--text-1)}.msg-row.me .voice-bubble{background:var(--bubble-me);color:var(--bubble-me-text)}.voice-wave{display:flex;align-items:center;gap:2.5px;height:16px}.voice-wave i{width:3px;border-radius:2px;background:currentColor;animation:voice-wave 1s ease-in-out infinite}.voice-wave i:nth-child(1){height:7px;animation-delay:0s}.voice-wave i:nth-child(2){height:14px;animation-delay:.15s}.voice-wave i:nth-child(3){height:10px;animation-delay:.3s}.voice-wave i:nth-child(4){height:15px;animation-delay:.45s}.voice-wave.paused i{animation-play-state:paused}@keyframes voice-wave{0%,to{transform:scaleY(.7)}50%{transform:scaleY(1.15)}}.video-bubble{position:relative;border-radius:13px;overflow:hidden;cursor:pointer;max-width:100%;background:#000;box-shadow:var(--shadow-1)}.video-bubble.loading{background:linear-gradient(90deg,#1a1d28 25%,#2a2e3d,#1a1d28 75%);background-size:200% 100%;animation:shimmer 1.4s ease infinite}.video-bubble video,.video-bubble img{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s var(--ease)}.video-bubble.loaded video,.video-bubble.loaded img{opacity:1}.video-play-mask{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;background:#0000002e;transition:background var(--dur-fast) var(--ease)}.video-bubble:hover .video-play-mask{background:#0000004d}.video-duration{position:absolute;right:8px;bottom:8px;padding:2px 7px;border-radius:var(--radius-full);background:#0000008c;color:#fff;font-size:11px}.bot-card-bubble{padding:12px 14px;border-radius:13px;background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-1);max-width:340px}.bot-card-title{font-weight:650;margin-bottom:6px;display:flex;align-items:center;gap:6px;color:var(--text-1)}.bot-card-desc{font-size:12.5px;color:var(--text-2);white-space:pre-wrap}.bot-card-actions{display:flex;border-top:1px solid var(--border);margin:10px -14px -12px}.bot-card-btn{flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:9px 8px;border:none;background:transparent;color:var(--primary);font-size:13px;cursor:pointer;transition:background var(--dur-fast) var(--ease)}.bot-card-btn+.bot-card-btn{border-left:1px solid var(--border)}.bot-card-btn:hover:not(:disabled){background:var(--bg-hover)}.bot-card-btn:disabled{opacity:.55;cursor:default}.bot-card-footer{margin-top:8px;padding-top:7px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text-3)}.bot-card-actions+.bot-card-footer{border-top:none;margin:10px -14px -12px;padding:0 14px 10px}.typing-dots{display:inline-flex;align-items:center;gap:3px}.typing-dots i{width:4.5px;height:4.5px;border-radius:50%;background:var(--text-3);animation:typing-bounce 1.2s infinite}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-3px);opacity:1}}.msg-select-dot{width:26px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.msg-row.selecting{cursor:pointer}.msg-row.selecting .msg-actions{display:none}.msg-row.selecting:hover{background:var(--bg-hover);border-radius:10px}.msg-row.selected{background:var(--bg-active);border-radius:10px}.selection-bar{position:absolute;left:50%;transform:translate(-50%);bottom:92px;z-index:40;display:flex;align-items:center;gap:4px;padding:7px 12px;background:var(--bg-content);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-3);animation:pill-in var(--dur) var(--ease-spring);white-space:nowrap}.selection-bar .sel-count{font-size:13px;font-weight:600;padding:0 8px 0 4px}.sel-btn{height:30px;padding:0 12px;border-radius:var(--radius-full);font-size:13px;color:var(--text-2);transition:all var(--dur-fast) var(--ease)}.sel-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-1)}.sel-btn:disabled{opacity:.4;cursor:not-allowed}.sel-btn.danger{color:var(--danger)}.sel-sep{width:1px;height:18px;background:var(--border-strong);flex-shrink:0}.pin-chip{color:var(--warning);display:inline-flex;align-items:center;align-self:flex-end;padding-bottom:4px;opacity:.85;flex-shrink:0}.scroll-bottom-pill{position:absolute;right:22px;bottom:150px;z-index:30;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:var(--radius-full);background:var(--bg-content);border:1px solid var(--border);box-shadow:var(--shadow-2);color:var(--text-2);font-size:12.5px;cursor:pointer;animation:pill-in var(--dur) var(--ease-spring);transition:all var(--dur-fast) var(--ease)}.scroll-bottom-pill:hover{color:var(--primary);border-color:var(--primary)}.scroll-bottom-pill.has-new{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast)}@keyframes pill-in{0%{opacity:0;transform:translateY(10px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.composer{flex-shrink:0;padding:10px 16px 14px;border-top:1px solid var(--border);background:var(--bg-content);position:relative;z-index:15}.composer-card{border:1px solid var(--border-strong);border-radius:14px;background:var(--bg-card);box-shadow:var(--shadow-1);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.composer-card:focus-within{border-color:rgba(var(--primary-rgb),.5);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1),var(--shadow-2)}.composer-upload-progress{position:relative;height:28px;margin-bottom:8px;border-radius:var(--radius-sm);background:var(--bg-input);overflow:hidden}.composer-upload-progress-bar{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--primary),var(--primary-strong));transition:width .2s var(--ease)}.composer-upload-progress-text{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;height:100%;font-size:12px;color:var(--text-1);font-weight:600}.composer-toolbar{display:flex;align-items:center;gap:1px;padding:6px 8px 0}.composer-toolbar .icon-btn{width:30px;height:30px;border-radius:8px;color:var(--text-3)}.composer-toolbar .icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-1)}.composer-toolbar .icon-btn.active{background:var(--primary-weak);color:var(--primary)}.composer-toolbar-spacer{flex:1}.composer-hint{padding-right:6px;font-size:10.5px;color:var(--text-3);letter-spacing:.01em;white-space:nowrap;-webkit-user-select:none;user-select:none}.composer-more{display:flex}.composer-tools-scroll{display:contents}.composer-body{padding:2px 8px 8px}.composer-muted-banner{display:flex;align-items:center;justify-content:center;min-height:40px;font-size:13px;color:var(--warning)}.announcement-content{font-size:13.5px;line-height:1.8;white-space:pre-wrap;color:var(--text-1)}.announcement-confirm-row{margin-top:18px;text-align:right}.composer-input-wrap{display:flex;align-items:flex-end;gap:10px}.composer-textarea{flex:1;height:38px;padding:7px 8px;border-radius:10px;background:transparent;border:1px solid transparent;resize:none;line-height:1.6;font-size:14.5px;color:var(--text-1);transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease);overflow-y:auto;scrollbar-width:none}.composer-textarea::-webkit-scrollbar{width:0;height:0}.composer-textarea:focus{background:transparent;border-color:transparent;box-shadow:none}.composer-textarea::placeholder{color:var(--text-3)}.composer-send{width:34px;height:34px;margin-bottom:2px;border-radius:10px;background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:var(--primary-contrast);display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast) var(--ease);flex-shrink:0;box-shadow:0 4px 12px -4px rgba(var(--primary-rgb),.65)}.composer-send:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 6px 16px -4px rgba(var(--primary-rgb),.7)}.composer-send:active:not(:disabled){transform:translateY(0) scale(.97)}.composer-send:disabled{background:var(--bg-input);color:var(--text-3);box-shadow:none;cursor:not-allowed}.composer-banner{display:flex;align-items:center;gap:10px;margin:0 0 8px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--bg-input);border-left:3px solid var(--primary);font-size:12.5px;color:var(--text-2);animation:pill-in var(--dur-fast) var(--ease)}.composer-banner .banner-main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-banner .banner-title{color:var(--primary);font-weight:600;margin-right:6px}.mention-panel{position:absolute;left:14px;right:14px;bottom:calc(100% + 6px);max-height:240px;overflow-y:auto;background:var(--bg-content);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-2);padding:5px;z-index:40;animation:menu-in var(--dur-fast) var(--ease)}.mention-panel-header{position:sticky;top:-5px;z-index:2;margin:-5px -5px 4px;padding:9px 11px;font-size:12px;font-weight:600;color:var(--text-2);background:var(--bg-content);border-bottom:1px solid var(--border)}.mention-item{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--radius-xs);cursor:pointer;font-size:13.5px}.mention-item:hover,.mention-item.active{background:var(--bg-active)}.mention-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emoji-panel{position:absolute;bottom:calc(100% + 8px);left:0;width:352px;max-width:calc(100vw - 24px);height:372px;max-height:min(372px,62vh);background:var(--bg-content);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);display:flex;flex-direction:column;overflow:hidden;z-index:50;animation:panel-pop var(--dur) var(--ease-spring)}@keyframes panel-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.emoji-mart-host{flex:1;min-height:0;display:flex}.emoji-mart-host>div{flex:1;min-width:0;display:flex}.emoji-mart-host em-emoji-picker{flex:1 1 0;min-width:0;width:100%;height:100%;border-radius:0;box-shadow:none;--font-family: var(--font-sans);--font-size: 14px;--rgb-accent: 8, 145, 178;--rgb-color: 16, 20, 38;--rgb-background: 255, 255, 255;--rgb-input: 240, 242, 248}html[data-theme=dark] .emoji-mart-host em-emoji-picker{--rgb-accent: 34, 211, 238;--rgb-color: 238, 241, 248;--rgb-background: 22, 25, 38;--rgb-input: 30, 34, 51}.emoji-panel-loading{flex:1;display:flex;align-items:center;justify-content:center;font-size:12.5px;color:var(--text-3)}.emoji-panel-foot{flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;padding:4px 8px;border-top:1px solid var(--border)}.emoji-panel-close{width:26px;height:26px;border-radius:var(--radius-xs);display:inline-flex;align-items:center;justify-content:center;font-size:13px;color:var(--text-3);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.emoji-panel-close:hover{background:var(--bg-hover);color:var(--text-1)}.emoji-cell{height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:21px;cursor:pointer;transition:background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease-spring)}.emoji-cell:hover{background:var(--bg-hover);transform:scale(1.18)}.image-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1500;display:flex;align-items:center;justify-content:center;background:#080a12eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:mask-in var(--dur) var(--ease);cursor:zoom-out}.image-viewer img{max-width:92vw;max-height:90vh;border-radius:var(--radius-sm);box-shadow:var(--shadow-3);animation:modal-in var(--dur) var(--ease-spring);object-fit:contain}.photo-viewer.has-bar{padding:56px 24px 96px}.photo-viewer.has-bar .photo-viewer-img{max-width:100%;max-height:100%}.photo-viewer.has-bar .photo-viewer-count{bottom:92px}.image-viewer-toolbar{position:absolute;top:calc(16px + var(--safe-top));right:calc(16px + var(--safe-right));display:flex;gap:8px}.image-viewer-toolbar .icon-btn{background:#ffffff1f;color:#fff;width:38px;height:38px}.image-viewer-toolbar .icon-btn:hover{background:#ffffff38}.photo-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1600;display:flex;align-items:center;justify-content:center;background:#080a12f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:mask-in var(--dur) var(--ease);cursor:zoom-out;-webkit-user-select:none;user-select:none;touch-action:pan-y}.photo-viewer-img{max-width:92vw;max-height:88vh;border-radius:var(--radius-sm);box-shadow:var(--shadow-3);object-fit:contain;animation:modal-in var(--dur) var(--ease-spring);cursor:default;-webkit-user-drag:none;touch-action:pan-y}.photo-viewer-spinner{position:absolute;display:flex;align-items:center;justify-content:center}.photo-viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:#ffffff1f;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease)}.photo-viewer-nav:hover:not(:disabled){background:#ffffff3d}.photo-viewer-nav:disabled{opacity:.28;cursor:default}.photo-viewer-nav.prev{left:20px}.photo-viewer-nav.next{right:20px}.photo-viewer-count{position:absolute;bottom:calc(22px + var(--safe-bottom));left:50%;transform:translate(-50%);padding:5px 14px;border-radius:var(--radius-full);background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#ffffffeb;font-size:12.5px;font-variant-numeric:tabular-nums}.photo-viewer-toolbar{position:absolute;top:calc(16px + var(--safe-top));right:calc(16px + var(--safe-right));display:flex;gap:8px}.photo-viewer-toolbar .icon-btn{background:#ffffff1f;color:#fff;width:38px;height:38px}.photo-viewer-toolbar .icon-btn:hover{background:#ffffff38}.voice-recorder{display:flex;align-items:center;gap:12px;padding:8px 4px}.voice-rec-time{font-variant-numeric:tabular-nums;font-size:14px;color:var(--text-2);min-width:44px}.voice-rec-visual{flex:1;height:36px;border-radius:var(--radius-sm);background:var(--bg-input);display:flex;align-items:center;justify-content:center;gap:3px;overflow:hidden}.voice-rec-visual i{width:3px;border-radius:2px;background:var(--primary);transition:height .12s var(--ease)}.group-avatar-upload{display:inline-block;border-radius:var(--radius-lg);overflow:hidden}.group-avatar-upload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000059;color:#fff;opacity:0;transition:opacity var(--dur-fast) var(--ease);border-radius:var(--radius-lg)}.group-avatar-upload:hover .group-avatar-upload-overlay{opacity:1}.chat-info-drawer{width:min(340px,90vw);position:relative}.info-drawer-header{position:relative;padding:16px 18px 14px;display:flex;flex-direction:column;gap:0;border-bottom:1px solid var(--border);background:linear-gradient(160deg,rgba(var(--primary-rgb),.06),rgba(var(--primary-rgb),.04))}.info-drawer-back{position:absolute;top:10px;right:10px}.info-drawer-header-main{display:flex;align-items:center;gap:12px}.info-drawer-avatar-wrap{position:relative;line-height:0;flex-shrink:0}.info-drawer-header-info{display:flex;flex-direction:column;gap:4px;min-width:0}.info-drawer-name{font-size:16px;font-weight:650;display:flex;align-items:center;gap:6px}.info-drawer-meta{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-3);flex-wrap:wrap}.number-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius-full);background:var(--bg-hover);border:1px solid var(--border);font-size:12px;color:var(--text-2);cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.number-chip:hover{background:var(--bg-active);border-color:var(--primary);color:var(--primary)}.number-chip-label{opacity:.7}.number-chip-value{font-weight:600;letter-spacing:.3px}.info-section{padding:14px 16px;margin:10px 12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md)}.info-section-title{font-size:12px;font-weight:600;color:var(--text-3);margin-bottom:10px;letter-spacing:.4px;display:flex;align-items:center;gap:6px}.info-section-title:before{content:"";width:3px;height:11px;border-radius:2px;background:var(--primary);opacity:.7}.member-grid{display:flex;flex-direction:column;gap:2px}.member-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--dur-fast) var(--ease)}.member-row:hover{background:var(--bg-hover)}.member-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.member-row-name{font-size:14px;font-weight:550;color:var(--text-1);display:flex;align-items:center;gap:5px}.member-row-sub{font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-row-more{flex-shrink:0;width:30px;height:30px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text-3);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.member-row-more:hover{background:var(--bg-active);color:var(--text-1)}.member-group-title{position:sticky;top:0;z-index:1;margin:4px 0 6px;padding:3px 0;font-size:11.5px;font-weight:600;color:var(--text-3);letter-spacing:.5px;background:var(--bg-content)}.member-cell-name{font-size:11.5px;color:var(--text-2);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-role{font-size:10px;padding:0 5px;border-radius:var(--radius-full);background:var(--primary-weak);color:var(--primary)}.member-role.owner{background:var(--warning-weak);color:var(--warning)}.member-role.bot{background:var(--bg-active);color:var(--text-2)}.member-role.muted{background:var(--danger-weak);color:var(--danger)}.member-row-btn{width:100%;border:none;background:transparent;font:inherit;color:inherit;text-align:left}.member-scroll-wrap{position:relative}.member-scroll-box{max-height:min(420px,58vh);overflow-y:auto;overscroll-behavior:contain;padding-right:34px}.group-member-dialog .member-scroll-box{max-height:min(540px,62vh)}.detail-empty{padding:14px 6px;text-align:center;font-size:12.5px;color:var(--text-3)}.tag-badge{font-size:10px;padding:1px 6px;border-radius:var(--radius-full);font-weight:600;white-space:nowrap;flex-shrink:0}.tag-owner{background:var(--primary-weak);color:var(--primary)}.tag-admin{background:#f59e0b1f;color:#d97706}html[data-theme=dark] .tag-admin{background:#fbbf2426;color:#fbbf24}.group-item{position:relative}.group-item .group-item-action{flex-shrink:0;width:28px;height:28px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text-3);display:none;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.group-item:hover .group-item-action{display:inline-flex}.group-item .group-item-action:hover{background:var(--bg-active);color:var(--text-1)}.group-item.active .group-item-action{color:var(--text-2)}.friend-item{position:relative}.entry-tile.entry-request{background:var(--entry-gradient-request)}.entry-tile.entry-group{background:var(--entry-gradient-group)}.entry-tile.entry-block{background:var(--entry-gradient-block)}.friend-item .friend-item-action{flex-shrink:0;width:28px;height:28px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text-3);display:none;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.friend-item:hover .friend-item-action{display:inline-flex}.friend-item .friend-item-action:hover{background:var(--bg-active);color:var(--text-1)}.friend-item.active .friend-item-action{color:var(--text-2)}.quick-react-bar{display:flex;gap:1px}.quick-react-bar .emoji-cell{height:30px;width:30px;font-size:17px}.e2ee-banner{display:flex;align-items:center;gap:8px;padding:7px 16px;font-size:12.5px;color:var(--success);background:var(--success-weak, rgba(16, 185, 129, .1));border-bottom:1px solid var(--border);cursor:pointer}.e2ee-banner-link{margin-left:auto;color:var(--accent);font-weight:500}.e2ee-lock-badge{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:var(--success-weak, rgba(16, 185, 129, .12));color:var(--success)}.e2ee-security{display:flex;flex-direction:column;gap:12px}.e2ee-security-tip{font-size:13px;line-height:1.7;color:var(--text-3)}.e2ee-warning{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;font-size:12.5px;line-height:1.6;color:var(--danger);background:var(--danger-weak, rgba(239, 68, 68, .1));border-radius:var(--radius-sm)}.e2ee-code-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:14px;background:var(--bg-input);border-radius:var(--radius-md)}.e2ee-code-cell{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;letter-spacing:.06em;text-align:center;color:var(--text-1);font-weight:600}.e2ee-copy-btn{align-self:center;font-size:12.5px;color:var(--accent);background:transparent}.e2ee-fingerprint{display:flex;flex-direction:column;gap:6px;font-size:12px}.e2ee-fingerprint>div{display:flex;justify-content:space-between;gap:10px}.e2ee-fp-label{color:var(--text-3);flex-shrink:0}.e2ee-fp-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-2);word-break:break-all;text-align:right}.e2ee-status{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12.5px;color:var(--text-3)}.e2ee-status.verified{color:var(--success)}.doodle{display:flex;flex-direction:column;gap:12px}.doodle-toolbar{display:flex;align-items:center;gap:14px}.doodle-colors,.doodle-sizes{display:flex;align-items:center;gap:8px}.doodle-color{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);transition:transform var(--dur-fast) var(--ease)}.doodle-color.active{transform:scale(1.18);border-color:var(--accent)}.doodle-size{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--bg-input)}.doodle-size i{display:block;background:var(--text-2);border-radius:50%}.doodle-size.active{background:var(--accent-weak)}.doodle-size.active i{background:var(--accent)}.doodle-clear{margin-left:auto;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-2);background:transparent}.doodle-clear:hover{background:var(--bg-hover);color:var(--danger)}.doodle-canvas{width:100%;height:auto;aspect-ratio:560 / 360;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);touch-action:none;cursor:crosshair}.ai-tool-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;margin-bottom:14px}.ai-tool-action{display:flex;flex-direction:column;gap:3px;align-items:flex-start;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;text-align:left;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.ai-tool-action:hover{border-color:var(--border-strong);background:var(--bg-hover)}.ai-tool-action.active{border-color:var(--primary);background:var(--primary-weak)}.ai-tool-action-label{font-size:13.5px;font-weight:600;color:var(--text-1)}.ai-tool-action.active .ai-tool-action-label{color:var(--primary)}.ai-tool-action-hint{font-size:11.5px;line-height:1.45;color:var(--text-3)}.ai-tool-input{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-input)}.ai-tool-textarea{width:100%;border:none;outline:none;resize:vertical;min-height:92px;padding:11px 13px;font-size:14px;line-height:1.7;font-family:inherit;color:var(--text-1);background:transparent}.ai-tool-textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ai-tool-input:focus-within{border-color:var(--primary)}.ai-tool-input-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 11px;border-top:1px solid var(--border);background:var(--bg-card)}.ai-tool-counter{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.ai-tool-result{margin-top:14px;min-height:104px;padding:13px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card)}.ai-tool-result-text{font-size:14px;line-height:1.8;white-space:pre-wrap;word-break:break-word;color:var(--text-1)}.ai-tool-placeholder{font-size:13px;color:var(--text-3);text-align:center;padding:26px 0}.ai-tool-mode-tabs{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--border);padding-bottom:0}.ai-tool-mode-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;background:transparent;font-size:14px;font-weight:600;color:var(--text-3);padding:8px 14px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.ai-tool-mode-tab:hover{color:var(--text-1)}.ai-tool-mode-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.ai-tool-summary-hint{font-size:13.5px;color:var(--text-3);line-height:1.7;padding:16px 4px;text-align:center}.folder-create{display:flex;align-items:center;gap:8px}.folder-create .input{flex:1}.folder-tip{margin:10px 0 12px;font-size:12.5px;line-height:1.6;color:var(--text-3)}.folder-list{display:flex;flex-direction:column;gap:6px}.folder-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.folder-item-btn{width:100%;cursor:pointer;text-align:left;font-family:inherit}.folder-item-btn:hover:not(:disabled){border-color:var(--primary);background:var(--bg-hover)}.folder-item-btn:disabled{opacity:.6;cursor:not-allowed}.folder-item.active{border-color:var(--primary);background:var(--primary-weak)}.folder-item-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.folder-item-name{font-size:14px;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-item-count{display:inline-flex;align-items:center;gap:3px;font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.folder-item.active .folder-item-count{color:var(--primary)}.folder-unassigned{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding:9px 12px;border-radius:var(--radius-sm);background:var(--bg-input);font-size:13px;color:var(--text-2)}.group-folder-section{margin-bottom:4px}.group-folder-header{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-2);transition:background var(--dur-fast) var(--ease)}.group-folder-header:hover{background:var(--bg-hover)}.group-folder-name{flex:1;font-size:13px;font-weight:600;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-folder-count{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.group-folder-body{padding-left:2px}.organize-block{margin-bottom:16px}.organize-block:last-child{margin-bottom:0}.organize-block-title{margin-bottom:8px;font-size:12.5px;font-weight:600;color:var(--text-3)}.organize-hint{margin:0;font-size:12.5px;line-height:1.6;color:var(--text-3)}.organize-star{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-2);font-size:13.5px;font-family:inherit;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.organize-star:hover{border-color:var(--border-strong);background:var(--bg-hover)}.organize-star.active{border-color:var(--warning);background:var(--warning-weak);color:var(--warning)}.organize-chips{display:flex;flex-wrap:wrap;gap:7px}.organize-chip{padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-card);color:var(--text-2);font-size:13px;font-family:inherit;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.organize-chip:hover{border-color:var(--primary);color:var(--primary)}.organize-chip.active{border-color:var(--primary);background:var(--primary-weak);color:var(--primary);font-weight:600}.organize-tag-list{display:flex;flex-direction:column;gap:4px;max-height:208px;overflow-y:auto}.organize-tag-item{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease)}.organize-tag-item:hover{background:var(--bg-hover)}.organize-tag-item.active{border-color:var(--primary);background:var(--primary-weak)}.organize-tag-name{flex:1;font-size:13.5px;color:var(--text-1)}.organize-tag-item.active .organize-tag-name{color:var(--primary);font-weight:600}.organize-tag-count{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.organize-filter-row{display:flex;flex-wrap:wrap;gap:6px;padding:0 10px 8px}.organize-filter-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-card);color:var(--text-3);font-size:12px;font-family:inherit;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.organize-filter-chip:hover{border-color:var(--primary);color:var(--primary)}.organize-filter-chip.active{border-color:var(--primary);background:var(--primary-weak);color:var(--primary);font-weight:600}.list-star{display:inline-flex;align-items:center;margin-right:4px;color:var(--warning);vertical-align:-1px}.tabs-row{display:flex;gap:4px;margin-bottom:14px;padding:3px;border-radius:var(--radius-sm);background:var(--bg-input)}.tab-item{flex:1;padding:7px 10px;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-2);font-size:13.5px;font-family:inherit;cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.tab-item.active{background:var(--bg-card);color:var(--primary);font-weight:600;box-shadow:var(--shadow-1)}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;max-height:420px;overflow-y:auto}.album-cell{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-input);cursor:zoom-in;transition:transform var(--dur-fast) var(--ease)}.album-cell:hover{transform:scale(1.02)}.album-cell img{width:100%;height:100%;object-fit:cover;display:block}.media-file-list{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow-y:auto}.media-file-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:inherit;text-decoration:none;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.media-file-item:hover{border-color:var(--primary);background:var(--bg-hover)}.media-file-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--primary-weak);color:var(--primary)}.media-file-main{flex:1;min-width:0}.media-file-name{font-size:13.5px;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-file-meta{margin-top:2px;font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-file-dl{color:var(--text-3);flex-shrink:0}.photo-viewer-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;background:#0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:default}.photo-viewer-name{font-size:13.5px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-viewer-meta{margin-top:2px;font-size:12px;color:#ffffffa6}.export-desc{margin:0 0 14px;font-size:13.5px;line-height:1.7;color:var(--text-2)}.export-all-row{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-1);cursor:pointer}.export-all-row input{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.export-date-row{display:flex;gap:12px;margin-top:14px}.export-date-row .field{flex:1}.export-date-row .input{width:100%}.export-tip{margin:12px 0 0;font-size:12px;line-height:1.6;color:var(--text-3)}.rule-type-grid{display:flex;flex-wrap:wrap;gap:6px}.rule-type-chip{padding:6px 13px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-card);color:var(--text-2);font-size:13px;font-family:inherit;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.rule-type-chip:hover{border-color:var(--primary);color:var(--primary)}.rule-type-chip.active{border-color:var(--primary);background:var(--primary-weak);color:var(--primary);font-weight:600}.rule-advanced{display:flex;gap:12px}.rule-advanced .field{flex:1}.rule-tip{padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-input);font-size:12.5px;line-height:1.6;color:var(--text-3)}.rule-list{display:flex;flex-direction:column;gap:8px;max-height:440px;overflow-y:auto}.rule-item{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);transition:border-color var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease)}.rule-item.disabled{opacity:.55}.rule-item-main{flex:1;min-width:0}.rule-item-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.rule-tag{flex-shrink:0;padding:2px 7px;border-radius:var(--radius-xs);background:var(--primary-weak);color:var(--primary);font-size:11.5px;font-weight:600}.rule-pattern{font-family:var(--font-mono);font-size:13px;color:var(--text-1);word-break:break-all}.rule-scope{flex-shrink:0;padding:2px 6px;border-radius:var(--radius-xs);background:var(--bg-input);color:var(--text-3);font-size:11px}.rule-item-meta{margin-top:5px;font-size:12px;color:var(--text-3)}.rule-reply{margin-top:6px;padding:7px 9px;border-radius:var(--radius-sm);background:var(--bg-input);font-size:12.5px;line-height:1.6;color:var(--text-2);white-space:pre-wrap;word-break:break-word}.bot-edit-avatar{display:flex;align-items:center;gap:14px;margin-bottom:18px}.bot-config-panel{display:flex;flex-direction:column;gap:12px;max-height:480px;overflow-y:auto;padding-right:2px}.bot-command-help{padding:11px 13px;border-radius:var(--radius-md);background:var(--bg-input);font-size:12.5px;line-height:1.75;color:var(--text-2)}.bot-command-help-title{font-weight:600;color:var(--text-1);margin-bottom:4px}.bot-command-help ul{margin:0;padding-left:18px}.bot-command-help code{padding:1px 5px;border-radius:var(--radius-xs);background:var(--bg-card);color:var(--primary);font-family:var(--font-mono);font-size:12px}.bot-log-panel{min-height:180px}.bot-log-list{display:flex;flex-direction:column;gap:5px;max-height:440px;overflow-y:auto}.bot-log-item{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font-size:12.5px}.bot-log-item.failed{border-color:var(--danger);background:var(--danger-weak)}.bot-log-time{flex-shrink:0;color:var(--text-3);font-variant-numeric:tabular-nums}.bot-log-tag{flex-shrink:0;padding:2px 7px;border-radius:var(--radius-xs);background:var(--primary-weak);color:var(--primary);font-size:11.5px;font-weight:600}.bot-log-text{flex:1;min-width:0;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bot-log-bot{margin-left:6px;color:var(--text-3);font-size:11.5px}.bot-log-err{margin-left:6px;color:var(--danger);font-size:11.5px}.bot-log-dur{flex-shrink:0;color:var(--text-3);font-variant-numeric:tabular-nums}.chat-header-info:hover,.announcement-bar:hover,.e2ee-banner:hover,.reply-quote:hover,.voice-bubble:hover,.msg-link:hover{background:var(--bg-hover)}.chat-header-info,.announcement-bar,.e2ee-banner,.reply-quote,.voice-bubble,.msg-link{transition:background var(--dur-fast) var(--ease)}.e2ee-banner.pending{color:var(--warning);background:var(--warning-weak);cursor:default}.e2ee-banner.pending:hover{background:var(--warning-weak)}.e2ee-banner-action{margin-left:auto;padding:2px 10px;font-size:12px;font-weight:500;color:inherit;background:transparent;border:1px solid currentColor;border-radius:var(--radius-full);cursor:pointer;transition:background var(--dur-fast) var(--ease)}.e2ee-banner-action:hover{background:var(--bg-hover)}.switch:not(.on):hover:not(:disabled){background:var(--bg-hover)}.switch.on:hover:not(:disabled){background:var(--primary-strong)}.switch{transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.captcha-box:hover,.qr-login-refresh:hover{opacity:.85}.captcha-box,.qr-login-refresh{cursor:pointer;transition:opacity var(--dur-fast) var(--ease)}.image-confirm-preview{display:flex;align-items:center;justify-content:center;background:var(--bg-app);border-radius:var(--radius-sm);overflow:hidden}.image-confirm-preview img{max-width:100%;max-height:56vh;object-fit:contain}.image-confirm-original{display:inline-flex;align-items:center;gap:8px;margin-right:auto;min-width:0;padding:0;border:none;background:transparent;color:var(--text-1);font-size:13px;cursor:pointer}.image-confirm-check{width:18px;height:18px;border-radius:var(--radius-xs);border:1.6px solid var(--border-strong);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--primary-contrast);transition:all var(--dur-fast) var(--ease)}.image-confirm-check.checked{background:var(--primary);border-color:var(--primary)}.image-confirm-size{font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 640px){.photo-viewer-nav{display:none}.photo-viewer-img{max-width:100vw;max-height:84vh;border-radius:0}.photo-viewer-count{bottom:calc(16px + var(--safe-bottom))}.hide-mobile-action{display:none}.msg-row{padding-left:12px;padding-right:12px;gap:8px}.msg-avatar-holder{width:32px}.msg-body{max-width:calc(100% - 104px)}.msg-row.me .msg-body{max-width:calc(100% - 126px)}.bubble{font-size:15px;line-height:1.58}.file-bubble{min-width:0}.msg-viewport{padding-top:8px}.search-kbd{display:none}.emoji-panel{left:-10px;max-width:calc(100vw - 20px)}.composer{padding:8px 10px 10px}.composer-toolbar{padding:5px 6px 0}.composer-hint{display:none}.composer-body{padding:2px 6px 6px}.composer-input-wrap{gap:8px}.composer-textarea{height:38px;padding:7px 8px;font-size:16px}.composer-send{width:34px;height:34px}.composer-banner{margin:0 0 6px;padding:7px 10px}.composer-tools-scroll{display:flex;align-items:center;gap:2px;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.composer-tools-scroll::-webkit-scrollbar{display:none}.composer-tools-scroll>*{flex-shrink:0}.composer-toolbar .spacer{display:none}}.auth-page{height:100dvh;width:100%;max-width:100vw;overflow:hidden;overscroll-behavior:none;display:flex;align-items:center;justify-content:center;padding:calc(40px + var(--safe-top)) calc(24px + var(--safe-right)) calc(40px + var(--safe-bottom)) calc(24px + var(--safe-left));background:var(--bg-app);position:relative}.auth-page:before,.auth-page:after{content:"";position:absolute;border-radius:50%;filter:blur(72px);pointer-events:none}.auth-page:before{width:420px;height:420px;top:-130px;left:-110px;background:radial-gradient(circle,color-mix(in srgb,var(--primary) 42%,transparent),transparent 70%)}.auth-page:after{width:460px;height:460px;bottom:-170px;right:-130px;background:radial-gradient(circle,color-mix(in srgb,var(--primary) 28%,transparent),transparent 70%)}.auth-box{position:relative;z-index:1;display:flex;width:min(960px,100%);min-height:596px;max-height:100%;border-radius:20px;overflow:hidden;background:var(--bg-card);border:1px solid var(--border-strong);box-shadow:var(--shadow-3)}.auth-hero{flex:1.05 1 0;min-width:0;position:relative;overflow:hidden;background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 34px),repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 34px),linear-gradient(155deg,color-mix(in srgb,var(--primary) 82%,#0b1220 18%) 0%,var(--primary) 52%,color-mix(in srgb,var(--primary) 72%,#1d4ed8 28%) 100%);display:flex;flex-direction:column;justify-content:space-between;padding:44px 40px;color:#fff}.auth-hero:before{content:"";position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.15),transparent 62%);top:-150px;right:-120px}.auth-hero:after{content:"";position:absolute;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.1),transparent 60%);bottom:-140px;left:-110px}.auth-hero-logo{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:700;position:relative;z-index:1}.auth-hero-logo-mark{width:42px;height:42px;border-radius:13px;background:#ffffff2e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center}.auth-hero-main{position:relative;z-index:1;max-width:420px}.auth-hero-eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#ffffffb8}.auth-hero-eyebrow:before{content:"";width:18px;height:1px;background:#fff9}.auth-hero-main h1{font-size:31px;font-weight:750;line-height:1.3;letter-spacing:.3px;margin-bottom:14px}.auth-hero-main p{font-size:14.5px;opacity:.86;line-height:1.7}.auth-hero-points{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}.auth-hero-point{padding:6px 13px;border-radius:var(--radius-full);background:#ffffff24;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:12.5px;display:flex;align-items:center;gap:6px}.auth-hero-footer{font-size:12px;opacity:.65;position:relative;z-index:1}.auth-panel{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;padding:44px 40px;overflow-y:auto;background:var(--bg-card)}.auth-card{width:min(372px,100%);animation:page-in var(--dur) var(--ease)}.auth-title{font-size:26px;font-weight:750;margin-bottom:6px}.auth-subtitle{font-size:13.5px;color:var(--text-3);margin-bottom:28px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-captcha-row{display:flex;gap:10px}.captcha-box{width:116px;height:38px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;background:var(--bg-card);flex-shrink:0}.captcha-box svg{width:100%;height:100%}.auth-footer-row{display:flex;justify-content:space-between;font-size:13px;color:var(--text-3);margin-top:4px}.auth-switch{margin-top:24px;text-align:center;font-size:13.5px;color:var(--text-3)}.auth-switch a{font-weight:600}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--text-3);font-size:12px;margin:4px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-oauth{display:flex;gap:10px}.auth-tabs{margin-bottom:22px}.code-btn{height:38px;padding:0 14px;border-radius:var(--radius-sm);background:var(--primary-weak);color:var(--primary);font-size:13px;font-weight:500;flex-shrink:0;transition:all var(--dur-fast) var(--ease);white-space:nowrap}.code-btn:hover:not(:disabled){filter:brightness(.96)}.code-btn:disabled{opacity:.55;cursor:not-allowed}.settings-layout{display:flex;gap:var(--shell-gap);padding:var(--shell-pad);flex:1;min-width:0;height:100%;background:transparent}.settings-nav{width:var(--panel-width);flex-shrink:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);padding:14px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.settings-user-card{display:flex;align-items:center;gap:11px;margin:2px 2px 10px;padding:11px 12px;border-radius:12px;background:linear-gradient(135deg,rgba(var(--primary-rgb),.12),rgba(var(--primary-rgb),.02) 78%);border:1px solid rgba(var(--primary-rgb),.13)}.settings-user-main{min-width:0;display:flex;flex-direction:column;gap:2px}.settings-user-name{font-size:14px;font-weight:650;color:var(--text-1);letter-spacing:-.1px}.settings-user-id{font-size:11.5px;color:var(--text-3);font-variant-numeric:tabular-nums}.settings-nav-item{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;color:var(--text-2);font-size:13.5px;transition:all var(--dur-fast) var(--ease);cursor:pointer}.settings-nav-group{padding:12px 12px 2px;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--text-3);-webkit-user-select:none;user-select:none}.settings-nav-item:hover{background:var(--bg-hover);color:var(--text-1)}.settings-nav-item.active{background:var(--bg-card);color:var(--primary);font-weight:600;box-shadow:var(--shadow-1),inset 0 0 0 1px rgba(var(--primary-rgb),.14)}:root[data-theme=dark] .settings-nav-item.active{background:rgba(var(--primary-rgb),.12);box-shadow:inset 0 0 0 1px rgba(var(--primary-rgb),.2)}.settings-content{flex:1;min-width:0;background:var(--bg-content);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);overflow-y:auto;display:flex;flex-direction:column}.settings-desktop-head{flex-shrink:0}.settings-back{display:none}.settings-section{width:100%;max-width:720px;margin:0 auto;padding:26px 32px 40px;flex:1;min-height:0;overflow-y:auto}.settings-section h2{display:none}.settings-section .section-desc{font-size:13px;color:var(--text-3);margin-bottom:20px}.settings-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:6px 8px;margin-bottom:16px;box-shadow:0 1px 2px #0f172a08}.profile-hero{display:flex;align-items:center;gap:18px;padding:20px;border-radius:14px;background:linear-gradient(135deg,rgba(var(--primary-rgb),.1),rgba(var(--primary-rgb),.02) 72%);border:1px solid rgba(var(--primary-rgb),.14);margin-bottom:20px}.content-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.detail-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:6px 8px;margin-bottom:16px;box-shadow:0 1px 2px #1014260a}.detail-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px 6px}.detail-card-head .info-section-title{margin-bottom:0}.detail-card-body{padding:2px 0 8px}.detail-hero-main .number-chip{margin-top:8px}.detail-row-desc{display:block;margin-top:3px;font-size:12px;font-weight:400;color:var(--text-3)}.notice-text{padding:2px 12px 12px;font-size:13px;line-height:1.75;color:var(--text-2);white-space:pre-wrap;word-break:break-word}.detail-hero{display:flex;align-items:center;gap:16px;padding:18px;border-radius:var(--radius-md);background:linear-gradient(135deg,rgba(var(--primary-rgb),.09),rgba(var(--primary-rgb),.09));border:1px solid var(--border);margin-bottom:16px}.detail-hero-main{flex:1;min-width:0}.detail-hero-name{font-size:18px;font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-hero-meta{font-size:12.5px;color:var(--text-3);margin-top:4px}.detail-hero-sign{font-size:13px;color:var(--text-2);margin-top:8px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.detail-actions{display:flex;gap:10px;margin-bottom:18px}.detail-actions .btn{flex:1;height:40px;font-size:14px}.detail-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease)}.detail-row+.detail-row{border-top:1px solid var(--border)}.detail-row.clickable{cursor:pointer}.detail-row.clickable:hover{background:var(--bg-hover)}.detail-row-label{font-size:13.5px;color:var(--text-2);flex-shrink:0}.detail-row-value{font-size:13.5px;color:var(--text-1);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.detail-row-action{font-size:12.5px;color:var(--primary);flex-shrink:0}.detail-hint{font-size:12.5px;color:var(--text-3);text-align:center;line-height:1.7;padding:4px 12px 8px}.profile-hero-name{font-size:19px;font-weight:700}.profile-hero-meta{font-size:12.5px;color:var(--text-3);margin-top:4px}.avatar-edit{position:relative;display:inline-flex}.avatar-edit-overlay{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#00000059;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;opacity:0;transition:opacity var(--dur-fast) var(--ease)}.avatar-edit:hover .avatar-edit-overlay,.avatar-edit:focus-visible .avatar-edit-overlay{opacity:1}.search-page{display:flex;flex-direction:column;height:100%}.search-toolbar{display:flex;flex-direction:column;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.search-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-select{height:32px;padding:0 9px;border-radius:8px;border:1px solid transparent;background:var(--bg-input);color:var(--text-2);font-size:12.5px;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.filter-select:hover{background:var(--bg-hover)}.filter-select:focus{background:var(--bg-card);border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12)}.select-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;min-width:96px;height:32px;padding:0 9px;border-radius:8px;border:1px solid transparent;background:var(--bg-input);color:var(--text-2);font-size:12.5px;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.select-trigger:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border)}.select-trigger:disabled{opacity:.6;cursor:not-allowed}.select-trigger svg{flex-shrink:0;color:var(--text-3)}.select-trigger-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-results{flex:1;overflow-y:auto;padding:10px 14px}.search-result{padding:12px 14px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--dur-fast) var(--ease)}.search-result:hover{background:var(--bg-hover)}.search-result-head{display:flex;align-items:center;gap:8px;margin-bottom:5px}.search-result-conv{font-size:12px;color:var(--primary);background:var(--primary-weak);padding:1px 8px;border-radius:var(--radius-full)}.search-result-time{margin-left:auto;font-size:11.5px;color:var(--text-3)}.search-result-content{font-size:13.5px;color:var(--text-2);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-result-content mark{background:#f59e0b47;color:inherit;border-radius:3px;padding:0 1px}.notice-actions{display:flex;justify-content:flex-end;align-items:center;gap:2px;padding:0 6px 6px}.notice-action{padding:4px 9px;border-radius:var(--radius-xs);font-size:12.5px;color:var(--primary);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.notice-action:hover{background:var(--bg-hover)}.notice-action.danger{color:var(--danger)}.notice-item{display:flex;gap:12px;padding:14px 16px;border-radius:var(--radius-md);transition:background var(--dur-fast) var(--ease);cursor:pointer;position:relative}.notice-item:hover{background:var(--bg-hover)}.notice-item.unread:before{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--danger)}.notice-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px}.notice-main{flex:1;min-width:0}.notice-title{font-size:14px;font-weight:600;margin-bottom:3px;display:flex;justify-content:space-between;gap:10px}.notice-time{font-size:11.5px;color:var(--text-3);font-weight:400;flex-shrink:0}.notice-content{font-size:13px;color:var(--text-2);line-height:1.6}.accent-swatch{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 6px;border:2px solid transparent;border-radius:12px;background:var(--bg-card);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.accent-swatch:hover{border-color:var(--border-strong)}.accent-swatch.active{border-color:var(--primary);background:var(--primary-weak);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.16)}.accent-swatch.active:hover{border-color:var(--primary)}.accent-swatch-dot{position:relative;width:32px;height:32px;border-radius:50%;box-shadow:inset 0 -2px 6px #0000002e,0 1px 3px #0000001f}.accent-swatch.active .accent-swatch-dot{box-shadow:inset 0 -2px 6px #0000002e,0 0 0 2px var(--bg-card),0 0 0 4px var(--primary)}.accent-swatch.active .accent-swatch-dot:after{content:"";position:absolute;left:50%;top:46%;width:9px;height:5px;margin:-4px 0 0 -5px;border-left:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:rotate(-45deg)}.accent-swatch-label{font-size:12px;color:var(--text-2)}.accent-swatch.active .accent-swatch-label{color:var(--primary);font-weight:600}.accent-swatch-dot-custom{position:relative;overflow:hidden;background-image:linear-gradient(135deg,#ffffffd9,#ffffffd9 50%,#0000002e 50%,#0000002e)}.accent-color-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:0;border:none;opacity:0;cursor:pointer}.accent-custom-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:0 16px 16px;font-size:12px}.accent-custom-hex{font-family:var(--font-mono);font-size:12px;padding:2px 8px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg-input);color:var(--text-1)}.fav-item{padding:13px 16px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);margin-bottom:10px;transition:all var(--dur-fast) var(--ease);position:relative}.fav-item:hover{border-color:var(--primary);box-shadow:var(--shadow-1)}.fav-item-head{display:flex;align-items:center;gap:8px;margin-bottom:7px;font-size:12px;color:var(--text-3)}.fav-item-content{font-size:13.5px;line-height:1.65;color:var(--text-1);white-space:pre-wrap;word-break:break-word}.fav-item-actions{position:absolute;top:10px;right:10px;display:none}.fav-item:hover .fav-item-actions,.fav-item:focus-within .fav-item-actions{display:flex}.fav-thumb{display:block;width:100%;max-width:320px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);overflow:hidden;cursor:zoom-in;transition:border-color var(--dur-fast) var(--ease)}.fav-thumb:hover{border-color:var(--primary)}.fav-thumb img{display:block;width:100%;max-height:260px;object-fit:cover}.fav-item-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.fav-item-file{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--text-3)}.announcement-bar{display:flex;align-items:center;gap:9px;padding:9px 16px;background:linear-gradient(90deg,#f59e0b1f,#f59e0b0a);border-bottom:1px solid var(--border);font-size:12.5px;color:var(--text-2);cursor:pointer}.announcement-bar .ann-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-page{display:flex;flex-direction:column;flex:1;min-height:0}.ai-messages{flex:1;overflow-y:auto;padding:22px 0;background:var(--bg-chat)}.ai-msg{display:flex;gap:12px;padding:8px max(24px,calc((100% - 780px)/2));align-items:flex-start}.ai-msg.user{flex-direction:row-reverse}.ai-avatar{width:34px;height:34px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px}.ai-avatar.assistant{background:var(--bubble-me);color:#fff}.ai-avatar.user{background:var(--bg-input);color:var(--text-2)}.ai-bubble{padding:11px 15px;border-radius:14px;font-size:14px;line-height:1.7;white-space:pre-wrap;word-break:break-word;background:var(--bg-panel);border:1px solid var(--border);flex:0 1 auto;width:fit-content;max-width:min(640px,82%)}.ai-msg.user .ai-bubble{background:var(--bubble-me);color:var(--bubble-me-text);border-color:transparent;box-shadow:0 4px 14px -8px rgba(var(--primary-rgb),.7);margin-left:auto}.ai-msg.assistant .ai-bubble{margin-right:auto}.ai-bubble.md{white-space:normal}.md-body>:first-child{margin-top:0}.md-body>:last-child{margin-bottom:0}.md-body p{margin:6px 0}.md-h{font-weight:600;margin:10px 0 4px;line-height:1.4}.md-h1{font-size:17px}.md-h2{font-size:15.5px}.md-h3{font-size:14.5px}.md-h4{font-size:14px}.md-body ul,.md-body ol{margin:6px 0;padding-left:22px}.md-body li{margin:2px 0}.md-code-block{margin:8px 0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-input);border:1px solid var(--border);overflow-x:auto;font-family:Consolas,Courier New,monospace;font-size:12.5px;line-height:1.6;white-space:pre}.md-inline-code{padding:1px 5px;border-radius:4px;background:var(--bg-input);border:1px solid var(--border);font-family:Consolas,Courier New,monospace;font-size:.92em}.md-link{color:var(--primary);text-decoration:underline;word-break:break-all}.form-stack{display:flex;flex-direction:column;gap:14px}.user-pick-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.user-pick-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease)}.user-pick-item:hover{background:var(--bg-hover)}.check-dot{width:20px;height:20px;border-radius:50%;border:1.6px solid var(--border-strong);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;transition:all var(--dur-fast) var(--ease)}.check-dot.checked{background:var(--primary);border-color:var(--primary)}.selected-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:26px}.selected-chip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border-radius:var(--radius-full);background:var(--primary-weak);color:var(--primary);font-size:12.5px}.selected-chip button{display:flex;opacity:.6}.selected-chip button:hover{opacity:1}.link-result{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-input);font-size:13px;word-break:break-all}.link-result code{flex:1;font-size:12px;color:var(--text-2)}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}.auth-agreement{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.65;color:var(--text-3);cursor:pointer;-webkit-user-select:none;user-select:none}.auth-agreement input{margin-top:2px;width:15px;height:15px;accent-color:var(--accent);flex-shrink:0;cursor:pointer}.auth-agreement .agreement-link{color:var(--accent);text-decoration:none}.auth-agreement .agreement-link:hover{text-decoration:underline}.auth-qr-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--text-2);background:transparent}.auth-qr-link:hover{color:var(--accent)}.qr-login{display:flex;flex-direction:column;align-items:center;gap:12px;padding:6px 0 2px}.qr-login-frame{width:200px;height:200px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;position:relative;overflow:hidden}.qr-login-frame svg{width:188px;height:188px}.qr-login-mask{filter:blur(3px);opacity:.35}.qr-login-refresh{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:13px;color:#1f2937;background:#ffffffb8;-webkit-backdrop-filter:none;backdrop-filter:none}.qr-login-status{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--text-2);font-weight:500}.qr-dot{width:8px;height:8px;border-radius:50%;background:var(--text-3)}.qr-dot-pending{background:var(--warning);animation:qr-pulse 1.4s infinite}.qr-dot-scanned{background:var(--accent);animation:qr-pulse 1s infinite}.qr-dot-confirmed{background:var(--success)}.qr-dot-expired,.qr-dot-cancelled{background:var(--danger)}@keyframes qr-pulse{0%,to{opacity:1}50%{opacity:.35}}.qr-login-code{font-size:13px;color:var(--text-2);background:var(--bg-input);padding:6px 14px;border-radius:999px}.qr-login-code b{color:var(--accent);letter-spacing:2px;font-weight:700}.qr-login-expire,.qr-login-device{font-size:12px;color:var(--text-3)}.qr-login-tip{font-size:12px;color:var(--text-3);text-align:center;line-height:1.6;max-width:280px}.qr-login-mode{font-size:12.5px;color:var(--primary);background:var(--primary-weak);border-radius:var(--radius-full);padding:6px 14px;transition:opacity var(--dur-fast) var(--ease)}.qr-login-mode:hover:not(:disabled){opacity:.85}.qr-login-mode:disabled{opacity:.5;cursor:default}.qr-confirm-icon{width:64px;height:64px;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-weak);color:var(--accent);margin:0 auto}.qr-confirm-safe{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--warning);margin-top:14px}.qr-confirm-done{padding-top:8px}.qr-confirm-done h3{font-size:18px;font-weight:700;margin-top:14px}.qr-confirm-done p{font-size:13.5px;color:var(--text-3);margin-top:8px}.qr-confirm-check{width:66px;height:66px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:34px;color:#fff;background:var(--success);animation:qr-scale-in .3s var(--ease)}@keyframes qr-scale-in{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.service-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;vertical-align:middle}.deletion-banner{display:flex;flex-direction:column;gap:5px;padding:12px 14px;border:1px solid var(--warning);border-radius:var(--radius-md);background:var(--warning-weak)}.deletion-banner-title{font-size:13.5px;font-weight:600;color:var(--warning)}.deletion-banner-row{font-size:12.5px;line-height:1.6;color:var(--text-2)}.ai-quick-prompts{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:640px;margin:22px auto 0;padding:0 20px}.ai-quick-prompt{padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--bg-card);color:var(--text-2);font-size:13px;font-family:inherit;cursor:pointer;box-shadow:var(--shadow-1);transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.ai-quick-prompt:hover{border-color:rgba(var(--primary-rgb),.45);background:var(--primary-weak);color:var(--primary);transform:translateY(-1px)}.reads-progress{display:flex;align-items:center;gap:10px;margin-top:14px}.reads-progress-bar{flex:1;height:6px;border-radius:var(--radius-full);background:var(--bg-input);overflow:hidden}.reads-progress-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--primary),#7c5cfc);transition:width var(--dur-slow) var(--ease)}.reads-progress-text{flex-shrink:0;font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.qrscan-state{display:flex;align-items:center;justify-content:center;gap:8px;padding:48px 0;color:var(--text-3);font-size:13px}.qrscan-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:26px 18px;text-align:center}.qrscan-name{margin:0;font-size:17px;font-weight:650;color:var(--text-1)}.qrscan-sub{margin:0;font-size:12.5px;color:var(--text-3)}.qrscan-note{margin:0;max-width:420px;font-size:12.5px;color:var(--text-2);line-height:1.7;white-space:pre-wrap;word-break:break-word}.qrscan-meta{width:100%;max-width:380px;border:1px solid var(--border);border-radius:var(--radius-md);padding:2px 12px;text-align:left}.qrscan-meta>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:13px;color:var(--text-2);border-bottom:1px dashed var(--border)}.qrscan-meta>div:last-child{border-bottom:none}.qrscan-meta b{color:var(--text-1);font-weight:500}.qrscan-form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:8px;text-align:left}.qrscan-actions{display:flex;gap:10px;width:100%;max-width:380px;margin-top:6px}.qrscan-hint{margin:0;font-size:12.5px;color:var(--warning)}.qrscan-done{font-size:14px;color:var(--text-1);padding:10px 0 2px}.scan-view{display:flex;flex-direction:column;gap:14px;padding:18px 0;align-items:center}.scan-card{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:30px 22px 26px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-1)}.scan-hero{width:76px;height:76px;border-radius:var(--radius-full);display:grid;place-items:center;background:var(--primary-weak);color:var(--primary)}.scan-card h3{margin:0;font-size:17px;font-weight:700}.scan-desc{margin:0;font-size:13px;color:var(--text-3);line-height:1.7}.scan-actions{width:100%;display:flex;flex-direction:column;gap:10px;margin-top:4px}.scan-error{margin:0;font-size:12.5px;color:var(--danger)}.scan-divider{width:100%;max-width:420px;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-3)}.scan-divider:before,.scan-divider:after{content:"";flex:1;height:1px;background:var(--border)}.scan-manual{width:100%;max-width:420px;display:flex;flex-direction:column;gap:8px}.qr-box{display:flex;justify-content:center;padding:6px 0 2px}.qr-box svg{width:208px;height:208px;border-radius:10px;background:#fff;padding:8px;box-sizing:content-box;box-shadow:var(--shadow-1)}.transfer-page{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-app);color:var(--text-1)}.transfer-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + var(--safe-top)) calc(20px + var(--safe-right)) 12px calc(20px + var(--safe-left));background:var(--bg-card);border-bottom:1px solid var(--border)}.transfer-brand{display:flex;align-items:center;gap:10px;min-width:0}.transfer-brand>div{display:flex;flex-direction:column;min-width:0}.transfer-brand strong{font-size:15px;font-weight:650;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transfer-brand span{font-size:12px;color:var(--text-3)}.transfer-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.transfer-main{flex:1;width:100%;max-width:860px;margin:0 auto;padding:24px calc(20px + var(--safe-right)) calc(56px + var(--safe-bottom)) calc(20px + var(--safe-left));display:flex;flex-direction:column;gap:20px}.transfer-dropzone{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:40px 24px;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-card);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.transfer-dropzone:hover,.transfer-dropzone.dragging{border-color:var(--primary);background:var(--primary-weak)}.transfer-dropzone:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.transfer-upload-icon{width:64px;height:64px;border-radius:var(--radius-full);display:grid;place-items:center;background:var(--primary-weak);color:var(--primary)}.transfer-dropzone h1{font-size:17px;font-weight:700;margin:0}.transfer-dropzone p{font-size:13px;color:var(--text-3);margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transfer-progress{width:min(320px,100%);height:6px;border-radius:var(--radius-full);background:var(--bg-input);overflow:hidden}.transfer-progress span{display:block;height:100%;border-radius:var(--radius-full);background:var(--primary);transition:width .2s var(--ease)}.transfer-tips{font-size:12px;color:var(--text-3);margin-top:2px}.transfer-history{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px 8px}.transfer-history-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.transfer-history-head>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}.transfer-history-head h2{font-size:15px;font-weight:650;margin:0}.transfer-history-head span{font-size:12px;color:var(--text-3)}.transfer-head-actions{flex-shrink:0}.transfer-list{display:flex;flex-direction:column}.transfer-item{display:flex;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid var(--border)}.transfer-item:last-child{border-bottom:none}.transfer-file-icon{width:40px;height:40px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--bg-input);color:var(--text-2);flex-shrink:0}.transfer-file-icon.image{background:var(--primary-weak);color:var(--primary)}.transfer-file-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.transfer-file-main strong{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transfer-file-main span{font-size:12px;color:var(--text-3);display:flex;align-items:center;gap:6px}.transfer-file-main span i{font-style:normal;opacity:.5}.transfer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;background:#10142680;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.transfer-overlay>div{display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff;text-align:center}.transfer-overlay strong{font-size:16px;font-weight:650}.transfer-overlay span{font-size:12.5px;opacity:.8}@media (max-width: 900px){.auth-page{padding:calc(24px + var(--safe-top)) calc(16px + var(--safe-right)) calc(24px + var(--safe-bottom)) calc(16px + var(--safe-left))}.auth-box{width:min(440px,100%);min-height:0}.auth-hero{display:none}.auth-panel{padding:34px 26px}.panel{width:260px}}@media (max-width: 640px){.settings-content{overflow-y:hidden}.settings-section{overflow-y:auto}.settings-layout{height:100%;width:100%;padding:0;gap:0}.settings-layout .settings-nav,.settings-layout .settings-content{width:100%;flex:1 1 100%;border:none;border-radius:0}.settings-layout:not(.pane-open) .settings-content{display:none}.settings-layout.pane-open .settings-nav{display:none}.settings-layout.pane-open .settings-back{display:inline-flex}.settings-section{padding:18px 16px}.filter-select,.select-trigger{height:36px}.search-filters input[type=date].filter-select{flex:1 1 0;min-width:0;width:auto;padding:0 6px}.search-filters>.text-3{flex:none}.content-header{height:auto;min-height:56px;padding:8px 12px;flex-wrap:wrap;gap:8px;row-gap:6px}.content-header-title{font-size:15px;flex:1 1 auto;min-width:0}.content-header-actions{width:100%;justify-content:flex-end;gap:6px}.content-header-actions .btn{flex:1;padding:0 10px}.content-scroll{padding:12px 12px 20px}.detail-hero{gap:12px;padding:14px;margin-bottom:12px}.detail-hero-name{font-size:16.5px}.detail-row{flex-direction:column;align-items:flex-start;gap:3px;padding:11px 12px}.detail-row-value{text-align:left;white-space:normal;word-break:break-word;width:100%}.detail-row-action{align-self:flex-end;margin-top:-18px}.detail-actions{flex-direction:column;gap:10px;width:100%;max-width:480px;margin:0 auto 20px}.detail-actions .btn{flex:none;width:100%;height:44px;font-size:14.5px;border-radius:var(--radius-md)}.member-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}.member-cell-name{font-size:13px}.transfer-header{padding:calc(10px + var(--safe-top)) calc(14px + var(--safe-right)) 10px calc(14px + var(--safe-left))}.transfer-header-actions .btn{padding:0 10px}.transfer-main{padding:16px calc(14px + var(--safe-right)) calc(40px + var(--safe-bottom)) calc(14px + var(--safe-left));gap:16px}.transfer-dropzone{padding:30px 16px}.transfer-dropzone h1{font-size:16px}.transfer-item{gap:10px;padding:9px 0}.transfer-file-icon{width:36px;height:36px}}@media (max-width: 480px){.auth-panel{padding:24px 16px}.auth-form,.auth-card,.auth-captcha-row,.auth-tabs{min-width:0}.input,.auth-captcha-row .input{width:100%;min-width:0}.captcha-box{width:104px;flex-shrink:0}.auth-tabs{font-size:13px}}.legal-page{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--bg-app);z-index:40}.legal-header{min-height:calc(56px + var(--safe-top));flex-shrink:0;display:flex;align-items:center;gap:12px;padding:var(--safe-top) calc(18px + var(--safe-right)) 0 calc(18px + var(--safe-left));border-bottom:1px solid var(--border);background:var(--bg-panel)}.legal-header-title{flex:1;font-size:15px;font-weight:600;text-align:center}.legal-back{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--text-2);background:transparent;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.legal-back:hover{background:var(--bg-hover);color:var(--text-1)}.legal-body{flex:1;overflow-y:auto;padding:30px calc(20px + var(--safe-right)) calc(80px + var(--safe-bottom)) calc(20px + var(--safe-left))}.legal-grid{max-width:1080px;margin:0 auto;display:flex;gap:36px;align-items:flex-start}.legal-main{flex:1;min-width:0;max-width:760px}.legal-doc-title{font-size:26px;font-weight:700;color:var(--text-1);letter-spacing:-.01em}.legal-doc-subtitle{font-size:13.5px;color:var(--text-3);margin-top:8px}.legal-meta{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;font-size:12.5px;color:var(--text-3)}.legal-intro{margin-top:20px;font-size:14px;line-height:1.9;color:var(--text-2);padding:16px 18px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md)}.legal-toc-inline{margin-top:22px;padding:14px 18px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel)}.legal-toc-inline .legal-toc-head{font-size:13px;font-weight:600;color:var(--text-2);margin-bottom:8px}.legal-toc-inline ol{margin:0;padding-left:18px;font-size:13px;line-height:2;color:var(--text-2)}.legal-toc-inline li{cursor:pointer}.legal-toc-inline li:hover{color:var(--accent)}.legal-section{margin-top:34px;scroll-margin-top:16px}.legal-section h2,.legal-contact h2{font-size:17px;font-weight:650;color:var(--text-1);margin-bottom:12px;padding-left:11px;border-left:3px solid var(--accent);line-height:1.3}.legal-p{font-size:14px;line-height:1.95;color:var(--text-2);margin:10px 0}.legal-p strong,.legal-list strong{color:var(--text-1);font-weight:600}.legal-list{margin:10px 0;padding-left:22px;font-size:14px;line-height:1.95;color:var(--text-2)}.legal-list li{margin:6px 0}.legal-note{margin:12px 0;padding:12px 16px;font-size:13.5px;line-height:1.85;color:var(--text-2);background:var(--warning-weak, rgba(245, 158, 11, .09));border-left:3px solid var(--warning);border-radius:var(--radius-sm)}.legal-table-wrap{overflow-x:auto;margin:14px 0}.legal-table{width:100%;border-collapse:collapse;font-size:13px}.legal-table th,.legal-table td{border:1px solid var(--border);padding:9px 12px;text-align:left;color:var(--text-2);line-height:1.7}.legal-table th{background:var(--bg-input);font-weight:600;color:var(--text-1)}.legal-contact{margin-top:34px;padding-top:22px;border-top:1px solid var(--border)}.legal-contact p{font-size:14px;line-height:1.9;color:var(--text-2)}.legal-contact a{color:var(--accent)}.legal-aside{width:232px;flex-shrink:0;position:sticky;top:0}.legal-aside-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel);padding:14px 8px;max-height:calc(100vh - 120px);overflow-y:auto}.legal-aside-title{font-size:12.5px;font-weight:600;color:var(--text-3);padding:0 12px 8px}.legal-aside ul{margin:0;padding:0;list-style:none}.legal-aside li{font-size:13px;padding:7px 12px;border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;line-height:1.4;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.legal-aside li:hover{background:var(--bg-hover);color:var(--text-1)}.legal-aside li.active{background:var(--accent-weak);color:var(--accent);font-weight:600}@media (max-width: 900px){.legal-aside{display:none}.legal-body{padding:20px 14px 60px}}
