html,body{height:100%}body{-webkit-font-smoothing:antialiased}img,video{display:block;max-width:100%}button{cursor:pointer;font:inherit;border:none;background:none}input,textarea{font:inherit}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:root{--bg: #0f1621;--sidebar-bg: #17212b;--header-bg: #17212b;--input-bg: #17212b;--msg-out: #2b5278;--msg-in: #182533;--accent: #5288c1;--accent-hover: #4a7ab5;--text-primary: #e8eaed;--text-secondary: #7d9db5;--text-meta: #6b8da8;--online: #4dcd5e;--danger: #e53935;--border: rgba(255,255,255,.06);--hover: rgba(255,255,255,.05);--active-conv: rgba(82,136,193,.15);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 14px;--fs-md: 15px;--fs-lg: 17px;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--lh-base: 1.5;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--r-xl: 18px;--r-bubble: 18px;--r-bubble-sm: 6px;--t-fast: .15s ease;--t-base: .2s ease;--sidebar-w: 320px;--header-h: 56px;--composer-min-h: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}button{cursor:pointer;border:none;outline:none;background:none;font-family:inherit}input,textarea,select{font-family:inherit}a{text-decoration:none;color:inherit}html,body,#app{height:100dvh;background:var(--bg);color:var(--text-primary);font-family:var(--font);font-size:var(--fs-base);line-height:var(--lh-base);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#ffffff24}.chat-layout{display:flex;height:100%;overflow:hidden}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--sidebar-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100%;overflow:hidden;flex-shrink:0}.sidebar-header{height:var(--header-h);min-height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-4);border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-primary);letter-spacing:-.3px}.sidebar-new-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:color var(--t-fast),background var(--t-fast);flex-shrink:0}.sidebar-new-btn:hover{color:var(--accent);background:var(--hover)}.sidebar-search{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-search-input{width:100%;height:34px;padding:0 var(--sp-3) 0 36px;background:#ffffff0f;border:none;border-radius:20px;color:var(--text-primary);font-size:var(--fs-base);outline:none;transition:background var(--t-fast);position:relative}.sidebar-search-input::placeholder{color:var(--text-secondary)}.sidebar-search-input:focus{background:#ffffff17}.sidebar-search-wrap{position:relative}.sidebar-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none;display:flex;align-items:center}.conv-list{flex:1;overflow-y:auto;overflow-x:hidden}.conv-list-empty{padding:var(--sp-8) var(--sp-4);color:var(--text-secondary);font-size:var(--fs-sm);text-align:center}.conv-item{display:flex;align-items:center;gap:var(--sp-3);padding:10px var(--sp-4);cursor:pointer;transition:background var(--t-fast);position:relative;min-height:72px}.conv-item:hover{background:var(--hover)}.conv-item.active{background:var(--active-conv)}.conv-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);border-radius:0 2px 2px 0}.conv-avatar{width:48px;height:48px;min-width:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:var(--fw-semibold);color:#fff;flex-shrink:0;-webkit-user-select:none;user-select:none}.conv-avatar[data-color="0"]{background:#e17055}.conv-avatar[data-color="1"]{background:#6c5ce7}.conv-avatar[data-color="2"]{background:#00b894}.conv-avatar[data-color="3"]{background:#0984e3}.conv-avatar[data-color="4"]{background:#fd79a8}.conv-avatar[data-color="5"]{background:#fdcb6e;color:#2d3436}.conv-avatar[data-color="6"]{background:#55efc4;color:#2d3436}.conv-avatar[data-color="7"]{background:#a29bfe}.avatar-sm{width:36px;height:36px;min-width:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:var(--fw-semibold);color:#fff;flex-shrink:0;-webkit-user-select:none;user-select:none}.avatar-sm[data-color="0"]{background:#e17055}.avatar-sm[data-color="1"]{background:#6c5ce7}.avatar-sm[data-color="2"]{background:#00b894}.avatar-sm[data-color="3"]{background:#0984e3}.avatar-sm[data-color="4"]{background:#fd79a8}.avatar-sm[data-color="5"]{background:#fdcb6e;color:#2d3436}.avatar-sm[data-color="6"]{background:#55efc4;color:#2d3436}.avatar-sm[data-color="7"]{background:#a29bfe}.avatar-md{width:40px;height:40px;min-width:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:var(--fw-semibold);color:#fff;flex-shrink:0;-webkit-user-select:none;user-select:none}.avatar-md[data-color="0"]{background:#e17055}.avatar-md[data-color="1"]{background:#6c5ce7}.avatar-md[data-color="2"]{background:#00b894}.avatar-md[data-color="3"]{background:#0984e3}.avatar-md[data-color="4"]{background:#fd79a8}.avatar-md[data-color="5"]{background:#fdcb6e;color:#2d3436}.avatar-md[data-color="6"]{background:#55efc4;color:#2d3436}.avatar-md[data-color="7"]{background:#a29bfe}.conv-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.conv-name{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-preview{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-meta{display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-1);flex-shrink:0;min-width:40px}.conv-time{font-size:var(--fs-xs);color:var(--text-meta);white-space:nowrap}.conv-unread{background:var(--accent);color:#fff;border-radius:10px;padding:2px 6px;font-size:11px;font-weight:var(--fw-semibold);min-width:20px;text-align:center;line-height:16px}.sidebar-footer{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.sidebar-user{flex:1;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-icon-btn{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:color var(--t-fast),background var(--t-fast);flex-shrink:0}.sidebar-icon-btn:hover{color:var(--text-primary);background:var(--hover)}.sidebar-icon-btn.danger:hover{color:var(--danger);background:#e539351a}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg);height:100%;overflow:hidden}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-secondary);gap:var(--sp-3)}.chat-empty-icon{width:80px;height:80px;border-radius:50%;background:#5288c11a;display:flex;align-items:center;justify-content:center;color:var(--accent);opacity:.7}.chat-empty-text{font-size:var(--fs-md);color:var(--text-secondary);opacity:.7}.chat-header{height:var(--header-h);min-height:var(--header-h);display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);background:var(--header-bg);border-bottom:1px solid var(--border);flex-shrink:0;z-index:10}.btn-back{width:36px;height:36px;border-radius:50%;display:none;align-items:center;justify-content:center;color:var(--accent);transition:background var(--t-fast);flex-shrink:0}.btn-back:hover{background:var(--hover)}.chat-header-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.chat-header-name{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.chat-header-status{font-size:var(--fs-xs);color:var(--text-meta);margin-top:1px}.chat-header-status.online{color:var(--online)}.message-list{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--sp-4) var(--sp-5);display:flex;flex-direction:column}.date-separator{display:flex;align-items:center;justify-content:center;margin:var(--sp-4) 0 var(--sp-3)}.date-separator-pill{background:#5288c12e;color:var(--text-meta);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:4px 12px;border-radius:12px;-webkit-user-select:none;user-select:none}.message-wrap{display:flex;flex-direction:column;margin-bottom:8px;animation:msgIn .18s ease both}.message-wrap.grouped{margin-bottom:4px}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-wrap.own{align-items:flex-end}.message-wrap.other{align-items:flex-start}.message-sender{font-size:var(--fs-xs);color:var(--accent);margin-bottom:3px;padding:0 var(--sp-2);font-weight:var(--fw-medium)}.message-bubble{max-width:68%;padding:8px 12px;border-radius:var(--r-bubble);font-size:var(--fs-base);line-height:var(--lh-base);word-break:break-word;overflow-wrap:break-word;position:relative}.message-bubble.own{background:var(--msg-out);color:var(--text-primary);border-bottom-right-radius:var(--r-bubble-sm)}.message-bubble.own.tail:after{content:"";position:absolute;bottom:0;right:-7px;width:12px;height:18px;background:var(--msg-out);clip-path:polygon(0 0,0 100%,100% 100%)}.message-bubble.other{background:var(--msg-in);color:var(--text-primary);border-bottom-left-radius:var(--r-bubble-sm)}.message-bubble.other.tail:after{content:"";position:absolute;bottom:0;left:-7px;width:12px;height:18px;background:var(--msg-in);clip-path:polygon(100% 0,100% 100%,0 100%)}.message-bubble.pending{opacity:.6}.message-bubble.failed{box-shadow:inset 0 0 0 1px var(--danger)}.message-bubble.decrypt-failed{opacity:.5}.message-footer{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:4px;float:right;margin-left:8px;margin-bottom:-2px}.message-time{font-size:var(--fs-xs);color:#ffffff73;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1}.message-lock{font-size:9px;color:#ffffff59;line-height:1}.message-status{font-size:var(--fs-xs);color:#ffffff73;line-height:1}.message-status.read{color:var(--accent)}.message-meta{font-size:var(--fs-xs);color:var(--text-meta);padding:2px var(--sp-2);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:4px}.message-retry{font-size:var(--fs-xs);color:var(--danger);cursor:pointer}.media-audio{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r-bubble);min-width:240px;max-width:300px;position:relative}.media-audio.own{background:var(--msg-out);border-bottom-right-radius:var(--r-bubble-sm)}.media-audio.own.tail:after{content:"";position:absolute;bottom:0;right:-7px;width:12px;height:18px;background:var(--msg-out);clip-path:polygon(0 0,0 100%,100% 100%)}.media-audio.other{background:var(--msg-in);border-bottom-left-radius:var(--r-bubble-sm)}.media-audio.other.tail:after{content:"";position:absolute;bottom:0;left:-7px;width:12px;height:18px;background:var(--msg-in);clip-path:polygon(100% 0,100% 100%,0 100%)}.media-play-btn{width:40px;height:40px;min-width:40px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;transition:opacity var(--t-fast),transform var(--t-fast);flex-shrink:0}.media-play-btn:hover{opacity:.85;transform:scale(1.04)}.media-play-btn:active{transform:scale(.96)}.waveform{flex:1;display:flex;align-items:center;gap:2px;height:32px;cursor:pointer;padding:0 2px}.wave-bar{width:2px;border-radius:1px;background:#fff3;transition:background 60ms;flex-shrink:0}.wave-bar.played{background:var(--accent)}.wave-bar.other-played{background:#ffffff8c}.media-dur{font-size:var(--fs-xs);color:#ffffff80;font-variant-numeric:tabular-nums;min-width:32px;text-align:right;flex-shrink:0}.media-video-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative}.media-video-circle{width:200px;height:200px;border-radius:50%;overflow:hidden;position:relative;cursor:pointer;background:#000;border:2px solid rgba(255,255,255,.08);flex-shrink:0}.media-video-circle video{width:100%;height:100%;object-fit:cover;display:block}.media-video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000004d;border-radius:50%;transition:opacity var(--t-fast);color:#fff}.media-video-dur{position:absolute;bottom:12px;right:12px;background:#0000008c;color:#fff;font-size:var(--fs-xs);padding:2px 6px;border-radius:8px;font-variant-numeric:tabular-nums}.composer{min-height:var(--composer-min-h);padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border);background:var(--sidebar-bg);display:flex;align-items:flex-end;gap:var(--sp-1);flex-shrink:0}.composer-attach-btn{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:color var(--t-fast);flex-shrink:0}.composer-attach-btn:hover{color:var(--accent)}.composer-input-wrap{flex:1;min-width:0;position:relative;display:flex;align-items:flex-end;background:#ffffff0f;border-radius:22px;padding:4px 12px;transition:background var(--t-fast)}.composer-input-wrap:focus-within{background:#ffffff14}.composer-textarea{flex:1;resize:none;min-height:36px;max-height:160px;padding:6px 0;background:transparent;border:none;color:var(--text-primary);font-size:var(--fs-base);line-height:1.5;outline:none;overflow-y:auto;font-family:var(--font)}.composer-textarea::placeholder{color:var(--text-secondary)}.composer-right{display:flex;align-items:center;gap:var(--sp-1);margin-left:var(--sp-1);flex-shrink:0}.composer-media-btn{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:color var(--t-fast),background var(--t-fast),transform var(--t-fast);flex-shrink:0;touch-action:none}.composer-media-btn:hover{color:var(--accent)}.composer-media-btn.recording{color:var(--danger)}.composer-send-btn{width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;transition:opacity var(--t-fast),transform var(--t-fast),background var(--t-fast);flex-shrink:0}.composer-send-btn:hover{background:var(--accent-hover)}.composer-send-btn:active{transform:scale(.92)}.rec-bar{flex:1;display:flex;align-items:center;gap:var(--sp-3);min-height:44px}.rec-pulse{width:12px;height:12px;border-radius:50%;background:var(--danger);animation:recPulse 1.2s ease-in-out infinite;flex-shrink:0}@keyframes recPulse{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 #e5393580}50%{opacity:.8;transform:scale(.9);box-shadow:0 0 0 6px #e5393500}}.rec-timer{font-size:var(--fs-md);color:var(--danger);font-variant-numeric:tabular-nums;font-weight:var(--fw-medium);min-width:44px;flex-shrink:0}.rec-slide-hint{flex:1;display:flex;align-items:center;gap:var(--sp-1);color:var(--text-secondary);font-size:var(--fs-sm);justify-content:center}.rec-cancel-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:color var(--t-fast),background var(--t-fast);flex-shrink:0}.rec-cancel-btn:hover{color:var(--danger);background:#e539351a}.login-wrap{height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{width:100%;max-width:360px;padding:40px 32px;background:var(--sidebar-bg);border:1px solid var(--border);border-radius:20px}.login-logo{text-align:center;margin-bottom:32px}.login-logo-icon{width:72px;height:72px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:#fff}.login-logo-title{font-size:22px;font-weight:var(--fw-semibold);color:var(--text-primary);letter-spacing:-.4px}.login-logo-sub{font-size:var(--fs-sm);color:var(--text-secondary);margin-top:4px}.login-form{display:flex;flex-direction:column;gap:var(--sp-3)}.login-input{width:100%;height:48px;padding:0 var(--sp-4);background:#ffffff0f;border:1px solid var(--border);border-radius:var(--r-lg);color:var(--text-primary);font-size:var(--fs-base);outline:none;transition:border-color var(--t-fast),background var(--t-fast)}.login-input:focus{border-color:var(--accent);background:#ffffff14}.login-input::placeholder{color:var(--text-secondary)}.login-submit-btn{width:100%;height:48px;border-radius:var(--r-lg);background:var(--accent);color:#fff;font-size:var(--fs-md);font-weight:var(--fw-semibold);border:none;cursor:pointer;transition:opacity var(--t-fast),background var(--t-fast);margin-top:4px}.login-submit-btn:hover{background:var(--accent-hover)}.login-submit-btn:active{opacity:.85}.login-submit-btn:disabled{opacity:.5;cursor:not-allowed}.login-error{color:var(--danger);font-size:var(--fs-sm);text-align:center;min-height:20px}.login-footer{margin-top:var(--sp-5);text-align:center;font-size:var(--fs-xs);color:var(--text-secondary);opacity:.6}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--sp-4)}.modal{background:var(--sidebar-bg);border:1px solid var(--border);border-radius:16px;padding:var(--sp-5);width:400px;max-width:100%;max-height:80dvh;display:flex;flex-direction:column;gap:var(--sp-3);box-shadow:0 20px 60px #00000080}.modal-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-primary);flex-shrink:0}.modal-type-toggle{display:flex;gap:var(--sp-1);background:#ffffff0a;border-radius:var(--r-lg);padding:3px;flex-shrink:0}.modal-type-btn{flex:1;height:34px;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);transition:background var(--t-fast),color var(--t-fast)}.modal-type-btn:hover{color:var(--text-primary)}.modal-type-btn.active{background:var(--accent);color:#fff}.modal-group-name{width:100%;height:40px;padding:0 var(--sp-3);background:#ffffff0f;border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-primary);font-size:var(--fs-base);outline:none;transition:border-color var(--t-fast);flex-shrink:0}.modal-group-name:focus{border-color:var(--accent)}.modal-group-name::placeholder{color:var(--text-secondary)}.user-select-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1;min-height:80px}.user-select-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);cursor:pointer;transition:background var(--t-fast)}.user-select-item:hover{background:var(--hover)}.user-select-item.selected{background:#5288c126}.user-select-item-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--text-secondary);display:flex;align-items:center;justify-content:center;margin-left:auto;flex-shrink:0;transition:border-color var(--t-fast),background var(--t-fast)}.user-select-item.selected .user-select-item-check{background:var(--accent);border-color:var(--accent);color:#fff}.user-select-item-name{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text-primary)}.user-select-item-sub{font-size:var(--fs-xs);color:var(--text-secondary);margin-top:1px}.modal-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);flex-shrink:0}.modal-btn{height:36px;padding:0 var(--sp-4);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:var(--fw-medium);transition:background var(--t-fast),opacity var(--t-fast)}.modal-btn.cancel{color:var(--text-secondary);background:transparent}.modal-btn.cancel:hover{background:var(--hover);color:var(--text-primary)}.modal-btn.confirm{background:var(--accent);color:#fff}.modal-btn.confirm:hover{background:var(--accent-hover)}.modal-btn.confirm:disabled{opacity:.5;cursor:not-allowed}.video-rec-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;z-index:200;display:flex;align-items:center;justify-content:center}.video-rec-wrap{display:flex;flex-direction:column;align-items:center;gap:40px;padding:var(--sp-8) var(--sp-4)}.video-rec-circle{position:relative;width:min(72vw,320px);height:min(72vw,320px);border-radius:50%;overflow:hidden;border:3px solid rgba(82,136,193,.4)}.video-rec-preview{width:100%;height:100%;object-fit:cover;display:block;transform:scaleX(-1)}.video-rec-ring-anim{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:3px solid var(--danger);animation:ringPulse 1.4s ease-out infinite;pointer-events:none}@keyframes ringPulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(1.06)}to{opacity:0;transform:scale(1.06)}}.video-rec-controls{display:flex;align-items:center;justify-content:center;gap:48px;position:relative}.video-rec-timer{position:absolute;top:-36px;left:50%;transform:translate(-50%);color:#ffffffd9;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;font-weight:var(--fw-medium);white-space:nowrap;transition:opacity var(--t-fast);background:#00000080;padding:3px 10px;border-radius:12px}.video-rec-cancel{width:48px;height:48px;border-radius:50%;background:#ffffff1a;color:#fff;display:flex;align-items:center;justify-content:center;transition:background var(--t-fast)}.video-rec-cancel:hover{background:#ffffff2e}.video-rec-btn{width:72px;height:72px;border-radius:50%;background:var(--danger);border:5px solid rgba(255,255,255,.15);cursor:pointer;transition:transform var(--t-fast),background var(--t-fast),border-radius var(--t-fast);position:relative}.video-rec-btn:not(.recording):hover{transform:scale(1.06)}.video-rec-btn.recording{background:#fff;border-color:var(--danger);border-radius:14px;transform:scale(.82);animation:recRing 1.2s ease-out infinite}@keyframes recRing{0%{box-shadow:0 0 #e5393580}70%{box-shadow:0 0 0 14px #e5393500}to{box-shadow:0 0 #e5393500}}.video-rec-confirm{display:flex;gap:var(--sp-3)}.video-rec-action{padding:12px var(--sp-5);border-radius:var(--r-lg);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;transition:opacity var(--t-fast),background var(--t-fast)}.video-rec-action.cancel{background:#ffffff1a;color:#fff}.video-rec-action.cancel:hover{background:#ffffff2e}.video-rec-action.send{background:var(--accent);color:#fff}.video-rec-action.send:hover{background:var(--accent-hover)}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--hover);color:var(--text-primary);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:var(--fw-medium);transition:background var(--t-fast);white-space:nowrap;border:1px solid var(--border)}.btn:hover{background:#ffffff1a}.btn-primary{background:var(--accent);color:#fff;border-color:transparent}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:#e539351a}.input{width:100%;padding:var(--sp-2) var(--sp-3);background:#ffffff0d;border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-primary);font-size:var(--fs-base);outline:none;transition:border-color var(--t-fast)}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-secondary)}@media (max-width: 768px){input,textarea,select{font-size:16px!important}.chat-layout{position:relative;overflow:hidden}.sidebar{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;min-width:unset;z-index:10;transform:translate(0);transition:transform var(--t-base)}.sidebar.hidden{transform:translate(-100%)}.chat-main{position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(100%);transition:transform var(--t-base)}.chat-main.visible{transform:translate(0)}.btn-back{display:flex}.message-bubble{max-width:82%}.message-list{padding:var(--sp-3)}.media-audio{min-width:200px}.media-video-circle{width:160px;height:160px}.composer{padding:var(--sp-2) var(--sp-2);padding-bottom:calc(var(--sp-2) + env(safe-area-inset-bottom))}.conv-list{padding-bottom:env(safe-area-inset-bottom)}.sidebar-footer{padding-bottom:calc(var(--sp-3) + env(safe-area-inset-bottom))}.modal{width:calc(100vw - 32px)}.login-card{padding:var(--sp-6) var(--sp-4)}}
