*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#6c63ff;--primary-dark:#5a52d5;--primary-light:#ede9ff;--accent:#ff6b6b;--bg:#0f0e17;--bg2:#16151f;--bg3:#1e1d2a;--bg4:#252334;--border:#2e2c3e;--text:#e0dff0;--text-dim:#9896aa;--text-muted:#6b6980;--success:#4ade80;--danger:#f87171;--sans:"Segoe UI", system-ui, sans-serif;font-family:var(--sans);color:var(--text);background:var(--bg);font-size:14px}body{direction:ltr;min-height:100vh;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}.home-page{background:linear-gradient(135deg,#0f0e17 0%,#1a1830 50%,#0f0e17 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.home-card{background:var(--bg2);border:1px solid var(--border);border-radius:16px;width:100%;max-width:480px;padding:36px;box-shadow:0 20px 60px #00000080}.home-logo{text-align:center;margin-bottom:28px}.logo-icon{margin-bottom:8px;font-size:48px;display:block}.home-logo h1{color:var(--primary);margin:0 0 4px;font-size:32px;font-weight:700}.home-logo p{color:var(--text-dim);font-size:13px}.home-form{flex-direction:column;gap:16px;display:flex}.field-group{flex-direction:column;flex:1;gap:6px;display:flex}.field-row{gap:12px;display:flex}label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}input[type=text],input[type=number],input[type=password]{background:var(--bg3);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:14px;transition:border-color .2s}input:focus{border-color:var(--primary)}input.error{border-color:var(--danger)}.field-error{color:var(--danger);font-size:11px}.cp-suggestions{background:var(--bg3);border:1px solid var(--border);z-index:100;border-radius:8px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 8px 24px #0006}.cp-suggestions li{cursor:pointer;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .15s;display:flex}.cp-suggestions li:hover{background:var(--bg4)}.cp-dep{color:var(--text-muted);margin-left:auto;font-size:11px}.sexe-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sexe-grid-3{grid-template-columns:repeat(3,1fr)}.trans-check{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-top:8px;font-size:13px;display:flex}.trans-check input[type=checkbox]{accent-color:#a855f7;cursor:pointer;width:16px;height:16px}.sexe-btn{background:var(--bg3);border:2px solid var(--border);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.sexe-btn:hover{border-color:var(--primary);background:var(--primary-light);color:var(--primary-dark)}.sexe-btn.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary)}.sexe-icon{font-size:22px}.sexe-icon-img{object-fit:contain;width:56px;height:56px}.trans-check-img{object-fit:contain;opacity:.75;width:28px;height:28px}.trans-check:has(input:checked) .trans-check-img{opacity:1}.trans-check:has(input:checked) span{color:#a855f7;font-weight:600}.btn-chattez{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;margin-top:4px;padding:14px;font-size:16px;font-weight:700;transition:background .2s,transform .1s}.btn-chattez:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-chattez:active{transform:translateY(0)}.disclaimer{color:var(--text-muted);text-align:center;font-size:11px;line-height:1.5}.chat-layout{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--bg2);border-right:1px solid var(--border);flex-direction:column;width:260px;min-width:260px;transition:width .25s,min-width .25s;display:flex;overflow:hidden}.sidebar-toggle-btn{display:none}.sidebar-inner{flex-direction:column;flex:1;display:flex;overflow:hidden}.sidebar-profile{border-bottom:1px solid var(--border);background:var(--bg3);align-items:center;gap:10px;padding:14px 12px;display:flex}.profile-icon{background:var(--primary-light);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:22px;display:flex}.sidebar-profile>div{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar-profile strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.sidebar-profile span{color:var(--text-dim);font-size:11px}.btn-logout{cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:background .15s,transform .1s;display:flex}.btn-logout:hover{background:var(--bg4);transform:scale(1.1)}.btn-logout-icon{object-fit:contain;pointer-events:none;width:26px;height:26px}.logout-confirm-box{text-align:center;gap:12px}.logout-confirm-icon{object-fit:contain;width:72px;height:72px;margin:0 auto 4px;display:block}.logout-confirm-box h3{color:var(--text);margin:0;font-size:18px}.logout-confirm-box p{color:var(--text-dim);margin:0;font-size:13px;line-height:1.5}.btn-danger{border:1px solid var(--danger);color:var(--danger);cursor:pointer;background:#f8717126;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;transition:background .15s}.btn-danger:hover{background:#f871714d}.room-list{flex-direction:column;flex:1;display:flex;overflow:hidden}.room-quick-jump{padding:0 10px 8px}.room-quick-jump select{background:var(--bg2);width:100%;color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;outline:none;padding:6px 8px;font-size:.78rem;transition:border-color .15s}.room-quick-jump select:hover,.room-quick-jump select:focus{border-color:var(--primary)}.room-quick-jump select option,.room-quick-jump select optgroup{background:var(--bg2);color:var(--text)}.room-list-header{justify-content:space-between;align-items:center;padding:12px 12px 8px;display:flex}.room-list-header h3{text-transform:uppercase;letter-spacing:.8px;color:var(--text-dim);font-size:11px;font-weight:600}.btn-create-room{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:600;transition:background .15s}.btn-create-room:hover{background:var(--primary-dark)}.create-room-form{flex-direction:column;gap:6px;padding:0 12px 10px;display:flex}.create-room-form input{padding:8px 10px;font-size:13px}.btn-primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px;font-size:13px;font-weight:600;transition:background .15s}.btn-primary:hover{background:var(--primary-dark)}.rooms-scroll{flex:1;padding:4px 8px 8px;overflow-y:auto}.rooms-empty{text-align:center;color:var(--text-muted);padding:24px 12px;font-size:13px;line-height:1.6}.room-separator{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:6px;padding:12px 10px 4px;font-size:.68rem;font-weight:700;display:flex}.room-separator:before,.room-separator:after{content:"";background:var(--border);flex:1;height:1px}.room-item{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:2px;padding:8px 10px;transition:background .15s;display:flex}.room-item:hover{background:var(--bg3)}.room-item.active{background:#6c63ff26;border-color:#6c63ff4d}.room-item.subscribed:not(.active){border-left:3px solid #6c63ff80}.room-item.subscribed.has-unread:not(.active){background:#f59e0b14;border-left:3px solid #f59e0b;animation:.25s badge-pop}.room-item.has-unread .room-sub-dot{background:#f59e0b}.room-item-info{flex-direction:column;flex:1;min-width:0;display:flex}.room-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex;overflow:hidden}.room-sub-dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.room-topic{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.room-item-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.room-unread-badge{color:#1a1a1a;text-align:center;background:#f59e0b;border-radius:10px;min-width:18px;padding:1px 6px;font-size:10px;font-weight:700;animation:.25s badge-pop}@keyframes badge-pop{0%{transform:scale(.6)}70%{transform:scale(1.15)}to{transform:scale(1)}}.room-count{color:var(--text-dim);flex-shrink:0;align-items:center;gap:4px;font-size:12px;display:flex}.dot-online{background:var(--success);border-radius:50%;width:7px;height:7px;display:inline-block}.chat-main{background:var(--bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.chat-welcome{flex:1;justify-content:center;align-items:center;display:flex}.welcome-content{text-align:center;max-width:400px;padding:32px}.welcome-content h2{color:var(--primary);margin-bottom:12px;font-size:24px}.welcome-content p{color:var(--text-dim);margin-bottom:8px;font-size:14px}.welcome-tips{flex-direction:column;gap:8px;margin-top:24px;display:flex}.tip{background:var(--bg2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:12px 16px;font-size:14px}.room-view{flex-direction:column;flex:1;display:flex;overflow:hidden}.cam-request-bar{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:8px 12px;display:flex}.cam-request-notif{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:.85rem;animation:.18s ease-out panel-in;display:flex}.cam-request-text{flex:1}.btn-cam-accept{background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:4px 14px;font-size:.8rem;font-weight:600;transition:background .15s}.btn-cam-accept:hover{background:var(--primary-dark)}.btn-cam-decline{color:var(--text-dim);border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:4px 14px;font-size:.8rem;transition:background .15s}.btn-cam-decline:hover{background:var(--bg3)}.room-header{border-bottom:1px solid var(--border);background:var(--bg2);flex-shrink:0;align-items:center;gap:10px;padding:14px;display:flex}.btn-room-leave{cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:background .15s,transform .1s;display:flex}.btn-room-leave:hover{background:#f871711f;transform:scale(1.1)}.room-item-leave-btn{cursor:pointer;opacity:.55;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;padding:2px;transition:background .15s,opacity .15s,transform .1s;display:flex}.room-item-leave-btn:hover{opacity:1;background:#f871712e;transform:scale(1.1)}.room-item-leave-btn-disabled{opacity:.2;cursor:not-allowed}.room-item-leave-btn-disabled:hover{opacity:.2;background:0 0;transform:none}.room-leave-icon{object-fit:contain;pointer-events:none;width:16px;height:16px}.room-header h2{margin:0;font-size:16px;font-weight:700}.room-header-topic{color:var(--text-dim);font-size:13px}.room-header-media{align-items:center;gap:6px;margin-left:auto;display:flex}.video-grid{background:#000;flex-wrap:wrap;flex-shrink:0;justify-content:flex-start;gap:2px;padding:2px;display:flex}.video-tile{background:#111;flex-shrink:0;width:160px;height:120px;position:relative;overflow:hidden}.video-tile video{object-fit:cover;width:100%;height:100%;display:block}.btn-switch-cam{cursor:pointer;color:#fff;z-index:10;background:#000000a6;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:flex;position:absolute;top:6px;right:6px}.btn-switch-cam:hover{background:#000000e6}.video-label{color:#fff;background:#0009;border-radius:4px;padding:2px 6px;font-size:11px;position:absolute;bottom:6px;left:8px}.media-controls{background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0;gap:8px;padding:8px 12px;display:flex}.ctrl-btn{background:var(--bg3);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:36px;padding:0;font-size:20px;transition:all .15s;display:flex;position:relative}.ctrl-btn.inactive{opacity:.55}.ctrl-btn.mic-on{border-color:var(--danger);background:#f871711f}.ctrl-btn.active:not(.mic-on){border-color:var(--primary);background:#6c63ff1f}.ctrl-btn.leave{color:var(--danger);background:#f871711a;border-color:#f871714d;gap:5px;width:auto;padding:0 10px;font-size:16px}.ctrl-btn.leave:hover{background:#f8717133}.ctrl-btn:hover{filter:brightness(1.15)}.room-users{border-bottom:1px solid var(--border);background:var(--bg2);flex-wrap:wrap;flex-shrink:0;gap:6px;min-height:36px;padding:8px 12px;display:flex}.user-chip{background:var(--bg3);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;align-items:flex-start;padding:4px 10px;font-size:12px;transition:all .15s;display:inline-flex}.user-chip-main{align-items:center;gap:5px;display:flex}.user-chip-age{color:var(--text-muted);padding-left:13px;font-size:.62rem;line-height:1.2}.user-chip:hover{border-color:var(--primary);color:var(--primary);background:#6c63ff1a}.chat-messages{flex-direction:column;flex:1;gap:8px;padding:16px;display:flex;overflow-y:auto}.msg-system{text-align:center;color:var(--text-muted);padding:4px 0;font-size:11px}.msg{flex-direction:column;max-width:70%;display:flex}.msg-me{align-self:flex-end}.msg-other{align-self:flex-start}.msg-author{color:var(--primary);cursor:pointer;margin-bottom:3px;font-size:11px;font-weight:600;transition:opacity .15s}.msg-author:hover{opacity:.7}.msg-bubble{background:var(--bg2);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:4px;padding:8px 12px;display:inline-flex}.msg-me .msg-bubble{background:#6c63ff26;border-color:#6c63ff4d}.msg-text{word-break:break-word;white-space:pre-wrap;font-size:14px;line-height:1.5}.msg-time{color:var(--text-muted);align-self:flex-end;font-size:10px}.chat-input{border-top:1px solid var(--border);background:var(--bg2);direction:ltr;flex-shrink:0;align-items:center;gap:6px;padding:10px 12px;display:flex}.input-text-wrapper{background:var(--bg3);border:1px solid var(--border);border-radius:20px;flex:1;align-items:center;min-width:0;transition:border-color .2s;display:flex;overflow:hidden}.input-text-wrapper:focus-within{border-color:var(--primary)}.input-text-wrapper.recording{border-color:#ef4444}.recording-content{flex:1;align-items:center;gap:8px;min-width:0;padding:4px 6px 4px 14px;display:flex;overflow:hidden}.input-text-wrapper input{color:var(--text);direction:ltr;unicode-bidi:embed;background:0 0;border:none;border-radius:0;outline:none;flex:1;min-width:0;padding:9px 14px;font-size:14px}.input-mic-btn{border:none;border-left:1px solid var(--border);color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;padding:0;font-size:17px;transition:background .15s,color .15s;display:flex}.input-mic-btn:hover{color:var(--text);background:#ffffff0d}.input-icon-btn{background:var(--bg3);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;padding:0;font-size:17px;transition:background .15s,transform .1s;display:flex}.input-icon-btn:hover,.input-icon-btn.active{background:var(--bg4);transform:scale(1.08)}.input-icon-btn.rec-cancel{color:#ef4444;background:#ef444426;border-color:#ef4444;font-size:13px}.input-icon-btn.rec-send{color:#4ade80;background:#4ade8026;border-color:#4ade80;font-size:13px}.ctrl-icon{object-fit:contain;pointer-events:none;width:26px;height:26px}.input-icon-img{object-fit:contain;pointer-events:none;width:22px;height:22px}.emoji-picker{background:var(--bg2);border-top:1px solid var(--border);flex-wrap:wrap;gap:2px;max-height:160px;padding:8px 10px;display:flex;overflow-y:auto}.emoji-item{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:22px;transition:background .1s,transform .1s;display:flex}.emoji-item:hover{background:var(--bg3);transform:scale(1.2)}.input-send-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;padding:0;font-size:16px;transition:background .15s,transform .1s;display:flex}.input-send-btn:hover{background:var(--primary-dark);transform:scale(1.08)}.recording-bar{background:var(--bg3);color:var(--text);border:1px solid #ef4444;border-radius:20px;flex:1;align-items:center;gap:8px;padding:9px 14px;display:flex}.rec-dot{background:#ef4444;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1s step-end infinite rec-blink}@keyframes rec-blink{0%,to{opacity:1}50%{opacity:0}}.rec-time{color:#ef4444;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px;font-weight:700}.rec-label{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.input-mic-btn.mic-active{color:#ef4444;background:#ef444433;border-left-color:#ef4444;animation:.7s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.msg-image{cursor:zoom-in;object-fit:cover;border-radius:10px;max-width:220px;max-height:220px;display:block}.msg-image-wrap{border-radius:10px;width:220px;height:160px;display:inline-block;position:relative;overflow:hidden}.msg-image-blurred{object-fit:cover;filter:blur(18px);cursor:default;width:100%;height:100%;transform:scale(1.05)}.msg-image-reveal-btn{cursor:pointer;background:#00000059;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.msg-image-reveal-btn:hover{background:#00000080}.msg-image-reveal-icon{font-size:1.8rem;line-height:1}.msg-image-reveal-label{color:#fff;letter-spacing:.02em;font-size:.78rem;font-weight:600}.img-confirm{background:#000000b3;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:12px;display:flex;position:absolute;inset:0}.img-confirm-text{color:#fff;text-align:center;font-size:.85rem;font-weight:600}.img-confirm-warning{color:#fbbf24;text-align:center;font-size:.72rem;line-height:1.3}.img-confirm-btns{gap:8px;display:flex}.img-confirm-yes{color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:20px;padding:5px 18px;font-size:.82rem;font-weight:700}.img-confirm-yes:hover{background:#16a34a}.img-confirm-no{color:#ccc;cursor:pointer;background:#4b5563;border:none;border-radius:20px;padding:5px 14px;font-size:.82rem;font-weight:600}.img-confirm-no:hover{background:#374151}.msg-image-protected{cursor:zoom-in;border-radius:10px;display:inline-block;position:relative;overflow:hidden}.msg-image-protected:after{content:"";position:absolute;inset:0}.msg-image-protected>*{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;cursor:inherit;display:block}.lightbox-overlay{z-index:9999;cursor:zoom-out;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-img-wrap{border-radius:8px;position:relative;overflow:hidden;box-shadow:0 8px 40px #000000b3}.lightbox-img-wrap:after{content:"";position:absolute;inset:0}.lightbox-img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;border-radius:8px;max-width:90vw;max-height:90vh;display:block}.audio-player{background:var(--bg3);border-radius:20px;align-items:center;gap:8px;min-width:200px;max-width:260px;padding:6px 12px;display:flex}.audio-play-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;flex-shrink:0;width:22px;padding:0;font-size:1rem;line-height:1}.audio-progress{cursor:pointer;height:4px;accent-color:var(--primary);flex:1;min-width:0}.audio-time{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:.68rem}.msg-bubble-media{gap:4px;background:0 0!important;border:none!important;padding:4px 0!important}.camera-overlay{z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.camera-overlay:not(.camera-native){background:#000000d1}.camera-overlay:not(.camera-native) .camera-frame{border-radius:24px;flex-shrink:0;width:340px;height:614px;box-shadow:0 24px 64px #000000d9,0 0 0 1.5px #ffffff1a}.camera-overlay.camera-native{background:#000}.camera-overlay.camera-native .camera-frame{border-radius:0;width:100%;height:100%}.camera-native .camera-bottom-bar{padding-bottom:48px}.camera-frame{background:#000;flex-direction:column;display:flex;position:relative;overflow:hidden}.camera-preview{object-fit:cover;flex:1;width:100%;display:block}.camera-preview::-webkit-media-controls{display:none!important}.camera-preview::-webkit-media-controls-enclosure{display:none!important}.cam-close-btn{color:#fff;cursor:pointer;z-index:1;background:#00000073;border:1.5px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;line-height:1;display:flex;position:absolute;top:16px;right:16px}.cam-close-btn:hover{background:#000000b3}.camera-bottom-bar{background:linear-gradient(#0000 0%,#000000a6 100%);justify-content:space-between;align-items:center;padding:20px 32px 36px;display:flex;position:absolute;bottom:0;left:0;right:0}.cam-btn-side{cursor:pointer;color:#fff;background:#ffffff26;border:2px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;transition:background .15s;display:flex}.cam-btn-side:hover{background:#ffffff47}.cam-btn-side .input-icon-img{width:26px;height:26px}.cam-btn-placeholder{pointer-events:none;background:0 0!important;border-color:#0000!important}.cam-btn-capture{cursor:pointer;background:#fff;border:5px solid #ffffff73;border-radius:50%;flex-shrink:0;width:76px;height:76px;transition:transform .1s,background .1s;box-shadow:0 0 0 3px #fff3}.cam-btn-capture:active{background:#ddd;transform:scale(.9)}.cam-btn-capture.recording{background:#ef44441f;border-color:#ef4444;animation:1s ease-in-out infinite cam-rec-pulse;box-shadow:0 0 0 4px #ef444459}@keyframes cam-rec-pulse{0%,to{box-shadow:0 0 0 5px #ef444459}50%{box-shadow:0 0 0 12px #ef44440f}}.cam-rec-indicator{z-index:2;white-space:nowrap;background:#0000008c;border:1.5px solid #ef444480;border-radius:20px;align-items:center;gap:8px;padding:6px 14px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.cam-rec-dot{background:#ef4444;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:1s ease-in-out infinite cam-dot-blink}@keyframes cam-dot-blink{0%,to{opacity:1}50%{opacity:.15}}.cam-rec-time-display{color:#fff;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.msg-video-placeholder{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 60%,#0f172a 100%);width:100%;height:100%}.msg-video{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#000;border-radius:10px;outline:none;max-width:220px;max-height:280px;display:block}.private-chat{flex-direction:column;flex:1;display:flex;overflow:hidden}.private-header{border-bottom:1px solid var(--border);background:var(--bg2);flex-shrink:0;align-items:center;gap:10px;padding:14px;font-size:14px;display:flex}.btn-close-private{cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:background .15s,transform .1s;display:flex}.btn-close-private:hover{background:#f871711f;transform:scale(1.1)}.private-inbox{z-index:40;pointer-events:none;flex-direction:row;align-items:flex-end;gap:8px;max-width:calc(100% - 24px);display:flex;position:absolute;bottom:80px;right:16px}.private-inbox-btn{background:var(--bg3);border:2px solid var(--border);width:50px;height:50px;color:var(--text);cursor:pointer;pointer-events:all;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.4rem;transition:transform .15s,background .2s,border-color .2s;display:flex;position:relative;box-shadow:0 3px 14px #0006}.private-inbox-btn:hover{transform:scale(1.08)}.private-inbox-btn-unread{background:#f59e0b;border-color:#d97706;animation:.3s cubic-bezier(.175,.885,.32,1.275) inbox-pop}@keyframes inbox-pop{0%{transform:scale(.8)}60%{transform:scale(1.1)}to{transform:scale(1)}}.inbox-total-badge{color:#fff;text-align:center;pointer-events:none;background:#ef4444;border-radius:10px;min-width:18px;padding:1px 5px;font-size:.62rem;font-weight:700;position:absolute;top:-4px;right:-4px}.private-inbox-panel{pointer-events:all;grid-template-rows:repeat(2,auto);grid-auto-flow:column;gap:5px;max-width:calc(100vw - 90px);animation:.15s ease-out forwards panel-in-mirror;display:grid;overflow:hidden}@keyframes panel-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes panel-in-mirror{0%{opacity:0;transform:scaleX(-1)scale(.95)}to{opacity:1;transform:scaleX(-1)scale(1)}}.inbox-item{background:var(--bg2);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:16px;align-items:center;gap:5px;max-width:170px;padding:4px 7px 4px 6px;transition:background .12s;display:flex;transform:scaleX(-1);box-shadow:0 2px 8px #0000004d}.inbox-item:hover{background:var(--bg3)}.inbox-item-unread{background:#f59e0b;border-color:#d97706}.inbox-item-active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.inbox-status{border-radius:50%;flex-shrink:0;width:6px;height:6px}.inbox-status-online{background:#4ade80}.inbox-status-offline{background:#6b7280}.inbox-item-pseudo{text-overflow:ellipsis;max-width:90px;font-size:.8rem;font-weight:600;overflow:hidden}.inbox-item-unread .inbox-item-pseudo{color:#1a1a1a!important}.inbox-unread-badge{color:#fff;text-align:center;background:#ef4444;border-radius:10px;flex-shrink:0;min-width:16px;padding:1px 5px;font-size:.6rem;font-weight:700}.inbox-close-btn{color:#ef4444;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:9px;line-height:1;transition:background .12s}.inbox-item-unread .inbox-close-btn{color:#7f1d1d}.inbox-close-btn:hover{background:#ef444433}.inbox-hidden-msg{color:var(--text-muted);background:var(--bg2);border:1px dashed var(--border);white-space:nowrap;cursor:default;border-radius:10px;align-self:center;padding:3px 8px;font-size:.65rem}.chat-main{position:relative}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}@media (width<=640px){.sidebar-toggle-btn{border:none;border-bottom:1px solid var(--border);width:44px;height:44px;color:var(--text-dim);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:18px;display:flex}.sidebar-toggle-btn:hover{color:var(--text);background:var(--bg3)}.sidebar.sidebar-collapsed{width:44px;min-width:44px}.sidebar.sidebar-collapsed .sidebar-inner{display:none}.msg{max-width:90%}.room-view,.private-chat{font-size:13px}.chat-input{gap:4px;padding:8px}.input-icon-btn{width:34px;height:34px;font-size:15px}.input-send-btn{width:34px;height:34px;font-size:14px}}.rate-limit-toast{color:#fecaca;z-index:3000;pointer-events:none;white-space:nowrap;background:#7f1d1d;border:1px solid #ef4444;border-radius:10px;padding:10px 20px;font-size:.85rem;font-weight:600;animation:.2s ease-out toast-in;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000080}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.modal-overlay{z-index:2000;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--bg2);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:12px;min-width:280px;max-width:360px;padding:24px;display:flex;box-shadow:0 8px 32px #00000080}.modal-box h3{color:var(--text);margin:0;font-size:1.05rem}.modal-box p{color:var(--text-muted);margin:0;font-size:.9rem}.modal-input{background:var(--bg3);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;padding:8px 12px;font-size:.9rem}.modal-input:focus{border-color:var(--primary)}.modal-error{color:#ef4444;font-size:.8rem}.modal-btns{justify-content:center;gap:8px;display:flex}.btn-secondary{background:var(--bg3);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:8px;padding:7px 16px;font-size:.85rem;transition:background .15s}.btn-secondary:hover{background:var(--bg4)}.room-lock{opacity:.8;margin-left:4px;font-size:.7rem}.private-header-info{flex-direction:column;gap:2px;display:flex}.private-header-age{color:var(--text-muted);font-size:.75rem}.sidebar-right-profile{border-bottom:1px solid var(--border);background:var(--bg3);flex-shrink:0;align-items:center;gap:8px;padding:12px 10px;display:flex}.sidebar-right-profile-info{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar-right-profile-info strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.sidebar-right-profile-info span{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.sidebar-right{background:var(--bg2);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;min-width:220px;transition:width .25s,min-width .25s;display:flex;overflow:hidden}.sidebar-right.sidebar-right-collapsed{width:40px;min-width:40px}.sidebar-right.sidebar-right-collapsed .sidebar-right-inner{display:none}.sidebar-right-toggle{border:none;border-bottom:1px solid var(--border);width:40px;height:40px;color:var(--text-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-self:flex-end;align-items:center;font-size:14px;transition:background .15s,color .15s;display:flex;position:relative}.sidebar-right-toggle:hover{background:var(--bg3);color:var(--text)}.sidebar-right-badge{color:#1a1a1a;pointer-events:none;background:#f59e0b;border-radius:8px;padding:1px 4px;font-size:.6rem;font-weight:700;position:absolute;top:4px;right:4px}.sidebar-right-inner{flex-direction:column;flex:1;display:flex;overflow-y:auto}.userlist-section{padding:0}.userlist-section-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;border-top:1px solid var(--border);align-items:center;gap:6px;padding:10px 12px 4px;font-size:.68rem;font-weight:700;display:flex}.userlist-section:first-child .userlist-section-header{border-top:none}.userlist-item{cursor:pointer;border-left:3px solid #0000;align-items:center;gap:7px;min-width:0;padding:7px 12px;transition:background .15s;display:flex}.userlist-item:not(.userlist-item-me):hover{background:var(--bg3);border-left-color:var(--primary)}.userlist-item-unread{background:#f59e0b1f;border-left-color:#f59e0b!important}.userlist-item-active{background:var(--primary-light);border-left-color:var(--primary)!important}.userlist-item-me{cursor:default;opacity:.75}.userlist-pseudo{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.82rem;font-weight:500;overflow:hidden}.userlist-item-unread .userlist-pseudo{font-weight:700;color:var(--text)!important}.userlist-you-badge{color:var(--text-muted);background:var(--bg3);border-radius:8px;flex-shrink:0;padding:1px 5px;font-size:.62rem}.userlist-age{color:var(--text-muted);flex-shrink:0;font-size:.68rem}.userlist-search-wrap{margin:6px 10px 4px;position:relative}.userlist-search{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);box-sizing:border-box;border-radius:8px;outline:none;padding:5px 26px 5px 9px;font-size:.75rem;transition:border-color .15s}.userlist-search:focus{border-color:var(--primary)}.userlist-search::placeholder{color:var(--text-muted)}.userlist-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:10px;line-height:1;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.userlist-search-clear:hover{background:var(--bg3);color:var(--text)}.userlist-no-result{color:var(--text-muted);padding:8px 12px;font-size:.75rem;font-style:italic}.userlist-ville{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:60px;font-size:.65rem;overflow:hidden}.userlist-close{color:var(--text-muted);cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:11px;line-height:1}.userlist-close:hover{color:#ef4444;opacity:1;background:#ef444433}.presence-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.presence-online{background:#4ade80}.presence-offline{background:#6b7280}.sidebar-right:not(.sidebar-right-collapsed) .sidebar-right-toggle{display:none}@media (width<=640px){.sidebar-right,.sidebar-right.sidebar-right-collapsed{width:40px;min-width:40px}.sidebar-right:not(.sidebar-right-collapsed){z-index:200;width:220px;min-width:220px;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 16px #0006}}
