body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--z-index-map-container:0;--z-index-map-controls:1000;--z-index-floating-widgets:1100;--z-index-ai-chat-window:1500;--z-index-modal-overlay-default:2000;--z-index-modal-content-default:2001;--z-index-group-setting:2010;--z-index-modal-overlay-profile:3000;--z-index-modal-content-profile:3001;--z-index-notifications:9999}.notifications-container{align-items:flex-end;bottom:10px;display:flex;flex-direction:column;gap:10px;position:fixed;right:10px;z-index:9999;z-index:var(--z-index-notifications)}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.notification{animation:slideInFromBottom .3s ease-out;border-radius:8px;box-shadow:0 2px 8px #00000026;color:#fff;font-weight:700;max-width:400px;min-width:200px;padding:12px 20px;pointer-events:auto;text-align:center;transition:all .3s ease}.notification-icon{animation:pulse 2s infinite;background-color:#eee;border:2px solid #fff;border-radius:50%;box-shadow:0 4px 8px #0003;cursor:pointer;height:50px;position:relative;transition:transform .2s ease;width:50px}.notification-icon:hover{transform:scale(1.1)}.notification-icon .notification-avatar{border-radius:50%;height:100%;object-fit:cover;width:100%}.notification-icon .badge{align-items:center;background-color:red;border:2px solid #fff;border-radius:50%;color:#fff;display:flex;font-size:12px;font-weight:700;height:20px;justify-content:center;position:absolute;right:-4px;top:-4px;width:20px}.notification.clickable{cursor:pointer;padding-right:35px;position:relative}.notification.clickable:after{content:"→";font-size:18px;opacity:.8;position:absolute;right:15px;top:50%;transform:translateY(-50%)}.notification.clickable:hover{box-shadow:0 4px 12px #0003;transform:translateX(5px)}.notification.info{background-color:#1890ffe6}.notification.error{background-color:#ff4d4fe6}.notification.message{background-color:#52c41ae6}@keyframes slideIn{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}#root,body,html{background-color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;height:100%;margin:0;overflow:hidden;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0);width:100%}.login-container{align-items:center;background-color:#f5f5f5;height:100vh;justify-content:center}.login-container,.user-form{display:flex;flex-direction:column}.user-form{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;gap:15px;min-width:300px;padding:20px}.user-form input,.user-form textarea{border:1px solid #ddd;border-radius:4px;font-size:16px;padding:10px}.user-form textarea{min-height:100px;resize:vertical}.user-form button{background-color:#1890ff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:10px}.user-form button:disabled{background-color:#ccc;cursor:not-allowed}.avatar-selector{text-align:center}.avatar-grid{grid-gap:10px;border:1px solid #eee;border-radius:8px;display:grid;gap:10px;grid-template-columns:repeat(4,1fr);margin-top:10px;max-height:150px;overflow-y:auto;padding:5px}.avatar-grid img{border:2px solid #0000;border-radius:50%;cursor:pointer;height:60px;padding:2px;width:60px}.avatar-grid img.selected{border-color:#1890ff}.custom-marker{align-items:center;background:#0000;border-radius:0;box-shadow:none;display:flex;flex-direction:column;padding:0}.custom-marker img{border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #7372724d;height:40px;width:40px}.custom-marker.current-user img{animation:halo-pulse 2s ease-in-out infinite;background:#e6f7ff;border:2px solid #1890ff}@keyframes halo-pulse{0%{box-shadow:0 0 0 0 #1890ffe6,0 2px 4px #0000004d}70%{box-shadow:0 0 0 20px #1890ff00,0 2px 4px #0000004d}to{box-shadow:0 0 0 0 #1890ff00,0 2px 4px #0000004d}}.custom-marker span{background-color:#3f3d3de6;border:1px solid #fff3;border-radius:12px;color:#e45f1c;font-size:13px;font-weight:500;margin-top:4px;min-width:30px;padding:3px 6px;text-align:center;text-shadow:0 1px 1px #00000080;white-space:nowrap}.top-left-controls{left:10px;z-index:0;z-index:var(--z-index-map-container)}.control-button{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background-color:#fff;border:none;border-radius:50%;box-shadow:0 2px 6px #0003;color:#333;font-size:28px;height:40px;transition:all .2s ease;width:40px}.map-marker{cursor:pointer;height:0;pointer-events:auto;position:relative;width:0}.marker-content{align-items:center;display:flex;flex-direction:column;left:0;position:absolute;top:0;transform:translate(-50%,-100%);transition:transform .3s ease}.map-marker:hover .marker-content{transform:translate(-50%,-105%)}.marker-avatar{background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0003;height:36px;margin-bottom:4px;overflow:hidden;position:relative;width:36px}.marker-avatar:after{border-left:6px solid #0000;border-right:6px solid #0000;border-top:6px solid #fff;bottom:-8px;content:"";left:50%;position:absolute;transform:translateX(-50%)}.marker-avatar img{height:100%;object-fit:cover;width:100%}.marker-name{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background-color:#000000b3;border-radius:10px;color:#fff;font-size:12px;max-width:120px;overflow:hidden;padding:2px 6px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.marker-status{color:#fff;font-size:11px;margin-left:4px}.map-marker.current-user .marker-avatar{animation:pulse 1.5s ease-in-out infinite;border-color:#1890ff}.map-marker.current-user .marker-name{background-color:#1890ffe6}@keyframes pulse{0%{box-shadow:0 0 0 0 #00a2ffcc;transform:scale(.9)}70%{box-shadow:0 0 0 15px #00a2ff00;transform:scale(1.05)}to{box-shadow:0 0 0 0 #00a2ff00;transform:scale(.9)}}.resuming-overlay{align-items:center;background-color:#000000b3;color:#fff;display:flex;flex-direction:column;font-size:1.2rem;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999;z-index:var(--z-index-notifications)}.resuming-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:40px;margin-bottom:20px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.app-layout{display:flex;flex-direction:column;height:100%;width:100%}.app-header{align-items:center;background-color:#fff;border-bottom:1px solid #eee;display:flex;justify-content:space-between;z-index:1100;z-index:var(--z-index-floating-widgets)}.main-content{flex-grow:1;overflow:hidden;position:relative}.map-layer{left:0;position:absolute;top:0;z-index:0;z-index:var(--z-index-map-container)}.map-container,.map-layer{height:100%;width:100%}.side-controls-container{display:flex;flex-direction:column;gap:12px;position:absolute;right:10px;top:15px;z-index:(0+1);z-index:(var(--z-index-map-container)1)}.fullscreen-panel{background-color:#f9f9f9;box-shadow:none;box-sizing:border-box;flex-direction:column;inset:0;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);transition:height .2s ease-out;z-index:2000}.top-right-button-01,.top-right-button-02,.top-right-button-03,.top-right-button-04,.top-right-button-05{background-color:#ecababe6;border:1px solid red;border-radius:20px;color:#000;font-size:14px;font-weight:700;padding:8px 12px;position:relative}.create-group-form,.group-list-modal{display:flex;flex-direction:column;max-height:80vh;max-width:90vw;min-width:320px}.create-group-btn{background-color:#4caf50;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;margin-bottom:15px;padding:10px;width:100%}.create-group-btn:hover{background-color:#45a049}.group-list{list-style:none;margin:0;overflow-y:auto;padding:0}.group-list li{align-items:center;border-bottom:1px solid #eee;cursor:pointer;display:flex;padding:10px}.group-list li:hover{background-color:#f5f5f5}.group-avatar{border-radius:50%;height:40px;margin-right:15px;width:40px}.group-name{flex-grow:1}.no-groups{color:#888;padding:20px;text-align:center}.unread-badge{background-color:#f44336;border-radius:50%;color:#fff;font-size:12px;margin-left:auto;padding:2px 6px}.group-name-input{border:1px solid #ccc;border-radius:5px;margin-bottom:15px;padding:10px;width:100%}.friend-select-list{border:1px solid #eee;list-style:none;margin-bottom:15px;max-height:200px;overflow-y:auto;padding:0}.friend-select-list li label{align-items:center;cursor:pointer;display:flex;padding:8px}.friend-select-list li label:hover{background-color:#f9f9f9}.friend-select-list img{border-radius:50%;height:30px;margin:0 10px;width:30px}.submit-create-btn{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;padding:12px;width:100%}.submit-create-btn:hover{background-color:#0056b3}.invite-btn{background-color:#007bff}.invite-panel{margin:15px 0}.modal-overlay.fullscreen{align-items:stretch;display:flex;justify-content:stretch;padding:0}.modal-overlay.fullscreen .modal-content.fullscreen{border:none;border-radius:0;box-shadow:none;height:100vh;max-height:none;max-width:none;width:100vw}.modal-content.fullscreen{display:flex;flex-direction:column}.modal-content.fullscreen .modal-body{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto}.modal-content.fullscreen .friend-select-list,.modal-content.fullscreen .group-list{flex-grow:1;max-height:none}.login-form .avatar-preview{align-items:center;display:flex;height:80px;justify-content:center;margin-left:auto;margin-right:auto;position:relative;width:80px}.login-form .avatar-preview img{height:100%;position:relative;width:100%;z-index:var(--z-index-floating-widgets)}.login-form .avatar-preview:before{background-color:#f0f2f5;border-radius:50%;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:var(--z-index-map-controls)}.auth-form .button{border:1px solid #0000;border-radius:50px;cursor:pointer;display:block;font-size:16px;font-weight:700;margin-left:auto;margin-right:auto;max-width:320px;padding:12px 20px;text-align:center;text-decoration:none;transition:all .2s ease-in-out;width:90%}.auth-form .button.primary{background-color:#007bff;border-color:#007bff;color:#fff;margin-top:15px}.auth-form .button.secondary{background-color:initial;border-color:#fea101;color:#6c757d;margin-top:10px}.auth-form .button.primary:hover{background-color:#0056b3;border-color:#0056b3}.auth-form .button.secondary:hover{background-color:#f8f9fa;border-color:#adb5bd}.auth-form .auth-links{margin-top:0;text-align:center;width:100%}.fullscreen-panel{animation:slideInUp .3s ease-out;background-color:#fff}.modal-overlay{align-items:center;z-index:var(--z-index-modal-content-default)}.modal-content{animation:slide-down .3s ease-out;background:#fff;border-radius:8px;box-shadow:0 5px 15px #0000004d;max-width:500px;padding:20px;width:90%}.modal-header{margin-bottom:20px;padding-bottom:10px}.modal-title{font-size:1.25rem;margin:0}.modal-close-button{background:none;border:none;color:#888;cursor:pointer;font-size:1.5rem}@keyframes slide-down{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.verification-code-group{align-items:center;box-sizing:border-box;display:flex;gap:10px;width:100%}.verification-code-group input{flex-grow:1;min-width:0;padding-right:12px}.verification-code-group .button-link-style{background:none;border:none;color:#007bff;cursor:pointer;flex-shrink:0;font-size:16px;padding:8px 0;white-space:nowrap}.verification-code-group .button-link-style:disabled{color:#999;cursor:not-allowed}.button{border:1px solid #0000;box-sizing:border-box;font-weight:500;margin-top:10px;padding:12px 20px;text-align:center;transition:background-color .2s,color .2s,border-color .2s;width:90%}.button:disabled{opacity:.6}.button.primary{background-color:#007bff;border-color:#007bff;color:#fff}.button.primary:hover:not(:disabled){background-color:#0056b3;border-color:#0056b3}.button.secondary{background-color:initial;border-color:#fea101;color:#6c757d;margin-top:10px}.button.secondary:hover:not(:disabled){background-color:#f0f8ff}.user-form{max-width:420px;width:100%}.register-form .emoji-area .emoji-mart-picker{max-height:200px!important;overflow:hidden!important}.auth-form.register-form{box-sizing:border-box;width:100%}.auth-form input[type=password],.auth-form input[type=tel],.auth-form input[type=text]{border:1px solid #ccc;margin-bottom:12px;padding:12px}.avatar-list-container{background:#ff00000d;border:2px dashed red;grid-auto-rows:44px;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));margin-bottom:20px;max-height:300px!important;overflow-x:hidden;overflow-y:auto!important}.avatar-area-wrapper{height:auto;max-height:none;overflow:visible}.avatar-item{display:block}.avatar-item.active{border-color:#007bff;box-shadow:0 0 0 4px #007bff14;transform:translateY(-2px)}.avatar-mode-toggle .btn{background-color:#f0f2f5;border:1px solid #dee2e6;border-radius:18px;color:#495057;font-weight:500;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.avatar-mode-toggle .btn:not(.active):hover{background-color:#e4e6e9}.avatar-mode-toggle .btn.active{background-color:#007bff;box-shadow:0 4px 12px #007bff33}.avatar-mode-toggle .btn:disabled{background-color:#6c757d;border-color:#6c757d;cursor:not-allowed;opacity:.65}.avatar-mode-toggle .avatar-preview{align-items:center;display:flex}.avatar-mode-toggle .avatar-preview img{height:40px;width:40px}.custom-avatar-preview-container{align-items:center;background-color:#f9f9f9;border:1px dashed #ccc;border-radius:12px;display:flex;flex-direction:column;justify-content:center;margin-top:10px;padding:20px;text-align:center}.custom-avatar-preview-image{border:4px solid #fff;border-radius:50%;box-shadow:0 4px 12px #0000001a;height:120px;margin-bottom:16px;object-fit:cover;width:120px}.custom-avatar-preview-text{color:#666;font-size:14px;margin:0}.emoji-area{border:1px solid #eca60e}.emoji-area .emoji-mart-picker{border:none!important;box-shadow:none!important;display:flex!important;flex-direction:column!important;max-height:140px!important;overflow:hidden!important;width:100%!important}.emoji-area .emoji-mart-nav{flex:0 0 auto}.emoji-area .emoji-mart-scroll{flex:1 1 auto;overflow-x:hidden;overflow-y:auto}.emoji-area .emoji-mart-footer,.emoji-area .emoji-mart-preview,.emoji-area .emoji-mart-search{display:none!important}.emoji-confirm-overlay{z-index:var(--z-index-floating-widgets)}.emoji-confirm-dialog{animation:fadeInScale .2s ease-out}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.emoji-confirm-dialog p{font-weight:500}.emoji-confirm-actions .btn{transition:all .2s ease}.emoji-confirm-actions .btn:active{transform:scale(.97)}.emoji-confirm-actions .btn-secondary:hover{background-color:#e4e6e9}.emoji-confirm-actions .btn-primary:hover{background-color:#218838}body,html{-webkit-overflow-scrolling:touch;height:100%;margin:0;overflow:auto;padding:0}.auth-container{align-items:center;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);box-sizing:border-box;display:flex;flex-direction:column;height:100vh;justify-content:flex-start;overflow-y:auto;padding:0}.auth-form-wrapper{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000001a;box-sizing:border-box;flex-shrink:0;max-width:420px;overflow:visible;padding:20px 15px 80px;width:100%}.auth-form-wrapper h2{color:#333;font-size:24px;font-weight:600;margin-bottom:20px;text-align:center}.auth-form input[type=password],.auth-form input[type=tel],.auth-form input[type=text]{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:16px;margin-bottom:15px;padding:12px 15px;transition:border-color .3s ease,box-shadow .3s ease;width:100%}.auth-form input[type=password]:focus,.auth-form input[type=tel]:focus,.auth-form input[type=text]:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff33;outline:none}.login-form .avatar-preview{margin-bottom:20px}.login-form .avatar-preview img{border-radius:50%;box-shadow:0 4px 10px #0000001a;height:80px;object-fit:cover;width:80px}.register-form .avatar-selector{margin-bottom:20px;text-align:left}.register-form .avatar-selector h3{color:#555;font-size:16px;font-weight:500;margin-bottom:10px;text-align:center}.register-form .avatar-grid{grid-gap:10px;border:1px solid #eee;border-radius:8px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));max-height:120px;overflow-y:auto;padding:5px}.register-form .avatar-grid img{aspect-ratio:1/1;border:3px solid #0000;border-radius:50%;cursor:pointer;height:auto;transition:border-color .3s ease,transform .2s ease;width:100%}.register-form .avatar-grid img:hover{transform:scale(1.1)}.register-form .avatar-grid img.selected{border-color:#007bff}.terms{align-items:center;color:#666;display:flex;font-size:14px;justify-content:center;margin-bottom:20px}.terms input[type=checkbox]{cursor:pointer;margin-right:8px}.terms a{color:#007bff;text-decoration:none;transition:color .3s ease}.terms a:hover{color:#0056b3}.button{background-color:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px;transition:background-color .3s ease,box-shadow .3s ease;width:100%}.button:hover:not(:disabled){background-color:#0056b3;box-shadow:0 4px 15px #007bff4d}.button:disabled{background-color:#a0cffa;cursor:not-allowed}.auth-links{font-size:14px;margin-top:20px}.auth-links a{color:#007bff;margin:0 10px;text-decoration:none}.auth-links a:hover{text-decoration:underline}.auth-links span{color:#ccc}@media (max-width:480px){.auth-form-wrapper{border-radius:0;box-shadow:none;min-height:100%;padding:22px 15px 20px}.auth-container{background:#fff}}.modal-footer-buttons{border-top:1px solid #eee;display:flex;gap:15px;justify-content:space-between;margin-top:20px;padding-top:20px}.button.button-secondary{background-color:#6c757d;color:#fff}.button.button-secondary:hover:not(:disabled){background-color:#5a6268;box-shadow:0 4px 15px #0003}.button.button-danger{background-color:#dc3545;color:#fff}.button.button-danger:hover:not(:disabled){background-color:#c82333;box-shadow:0 4px 15px #dc35454d}.login-mode-tabs{border-bottom:1px solid #eee;display:flex;margin-bottom:30px}.login-mode-tabs .tab{background:none;border:none;color:#666;cursor:pointer;flex:1 1;font-size:16px;font-weight:500;padding:15px 0;position:relative;text-align:center;transition:color .3s ease}.login-mode-tabs .tab.active{color:#007bff;font-weight:600}.login-mode-tabs .tab.active:after{background-color:#007bff;border-radius:3px;bottom:-1px;content:"";height:3px;left:20%;position:absolute;right:20%}.ali-style-form{margin-top:30px}.ali-input-group{align-items:center;border-bottom:1px solid #ddd;display:flex;margin-bottom:25px;transition:border-color .3s ease}.ali-input-group:focus-within{border-bottom-color:#007bff}.ali-input-prefix{color:#333;font-size:16px;padding-right:15px;white-space:nowrap}.ali-input-group input{background:none;border:none;flex-grow:1;font-size:16px;min-width:0;padding:12px 0;width:100%}.ali-input-group input:focus{outline:none}.ali-code-button-wrapper{border-left:1px solid #eee;flex-shrink:0;margin-left:15px;padding-left:15px}.ali-text-button{background:none;border:none;color:#007bff;cursor:pointer;font-size:16px;padding:0;transition:color .3s ease;white-space:nowrap}.ali-text-button:hover{color:#0056b3}.ali-text-button:disabled{color:#999;cursor:not-allowed}.ali-submit-button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;margin-top:10px;padding:12px;transition:background-color .3s ease;width:100%}.ali-submit-button:hover:not(:disabled){background-color:#0056b3}.ali-submit-button:disabled{background-color:#a0cffa;cursor:not-allowed}.ai-poi-marker{align-items:center;background:#fffc;border:1px solid #00000014;border-radius:50%;box-shadow:0 2px 6px #00000040;cursor:pointer;display:inline-flex;font-size:18px;height:34px;justify-content:center;line-height:1;transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none;width:34px}.ai-recommendation{background:#fff;border-radius:10px;bottom:20px;box-shadow:0 8px 30px #0000001f;color:#222;font-size:14px;left:20px;line-height:1.4;max-width:360px;padding:12px 14px;position:fixed;z-index:var(--z-index-ai-chat-window)}.ai-recommendation h3{font-size:16px;font-weight:600;margin:0 0 6px}.ai-recommendation p{margin:0;max-height:220px;overflow:auto;white-space:pre-wrap}.ai-assistant-panel{background:#f7f7f7;display:flex;flex-direction:column;height:100%;inset:0;overflow:hidden;position:absolute;width:100%;z-index:var(--z-index-floating-widgets)}.avatar{align-items:center;color:#fff;display:flex;font-size:14px;font-weight:700;justify-content:center}.avatar-ai{background-color:#6366f1}.avatar-user{background-color:#22c55e}.msg-content{line-height:1.5}.msg-content p{margin:0 0 .5em}.msg-content p:last-child{margin-bottom:0}.msg-content ol,.msg-content ul{margin:.5em 0;padding-left:20px}.ai-assistant-panel .toolbar{align-items:center;display:flex;gap:12px;justify-content:flex-start;margin-bottom:10px}.emoji-picker-container{max-height:250px}.toast{background:#000000b3;border-radius:8px;bottom:15%;color:#fff;font-size:14px;left:50%;opacity:0;padding:10px 16px;pointer-events:none;position:fixed;transform:translateX(-50%);transition:opacity .3s ease;z-index:9999}.toast.show{opacity:1}.info-card-actions{margin-top:15px}.video-call-modal{background:#fff;border-radius:10px;box-shadow:0 5px 15px #0000004d;max-height:90vh;max-width:1080px;padding:24px;text-align:center;width:96vw;z-index:var(--z-index-modal-content-profile)}.video-call-modal h2{margin-top:0}.video-container{background:#000;border-radius:8px;height:400px;margin:20px 0;overflow:hidden;position:relative;width:100%}.video-container video{min-height:200px}@media screen and (min-width:768px){.video-container{height:500px}}.remote-video{background-color:#000;display:block;height:100%;object-fit:cover;transform:scaleX(-1);width:100%}.local-video{border:2px solid #fff;border-radius:8px;bottom:15px;box-shadow:0 2px 5px #00000080;max-width:256px;position:absolute;right:15px;transform:scaleX(-1);-webkit-transform:scaleX(-1);width:30%}.hang-up-button{background-color:#f5222d;border:none;border-radius:25px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:12px 24px;transition:background-color .3s ease}.hang-up-button:hover{background-color:#cf1322}.accept-call-button{background-color:#4caf50;border:none;border-radius:25px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:12px 24px;transition:background-color .3s ease}.accept-call-button:hover{background-color:#45a049}.my-chat-panel{background:#f7f7f7;display:flex;flex-direction:column;height:100%;inset:0;overflow:hidden;position:absolute}.panel-header{flex-shrink:0;font-weight:600;padding:8px 12px}.header-tools{display:flex;gap:8px}.panel-body{padding:8px}.timestamp{margin:10px 0;text-align:center}.message-row{gap:8px;margin-bottom:12px;max-width:85%}.message-row.self{align-self:flex-end}.message-row.other{align-self:flex-start}.avatar{height:40px;width:40px}.msg-content{white-space:pre-wrap}.message-row.other .msg-content:before{border:6px solid #0000;border-right-color:#fff;content:"";left:-6px;position:absolute;top:10px}.message-row.self .msg-content:before{border:6px solid #0000;border-left-color:#a0e959;content:"";position:absolute;right:-6px;top:10px}.emoji-picker-container{margin-bottom:8px;max-height:300px;overflow-y:auto}@-webkit-keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size:12px;--rc-drag-handle-mobile-size:24px;--rc-drag-handle-bg-colour:#0003;--rc-drag-bar-size:6px;--rc-border-color:#ffffffb3;--rc-focus-color:#08f}.ReactCrop{cursor:crosshair;display:inline-block;max-width:100%;position:relative}.ReactCrop *,.ReactCrop :after,.ReactCrop :before{-webkit-box-sizing:border-box;box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit;overflow:hidden}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-height:inherit;max-width:100%}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{-ms-touch-action:none;touch-action:none}.ReactCrop__crop-mask{bottom:0;height:calc(100% + .5px);left:0;pointer-events:none;position:absolute;right:0;top:0;width:calc(100% + .5px)}.ReactCrop__crop-selection{cursor:move;left:0;position:absolute;top:0;-webkit-transform:translateZ(0);transform:translateZ(0)}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{border:1px solid #ffffffb3;border:1px solid var(--rc-border-color);bottom:-1px;content:"";left:-1px;opacity:.3;pointer-events:none;position:absolute;right:-1px;top:-1px}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed #fff}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){-webkit-animation:marching-ants 1s;animation:marching-ants 1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-play-state:running;animation-play-state:running;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-image:-webkit-gradient(linear,left top,right top,color-stop(50%,#fff),color-stop(50%,#444)),-webkit-gradient(linear,left top,right top,color-stop(50%,#fff),color-stop(50%,#444)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,#fff),color-stop(50%,#444)),-webkit-gradient(linear,left top,left bottom,color-stop(50%,#fff),color-stop(50%,#444));background-image:linear-gradient(90deg,#fff 50%,#444 0),linear-gradient(90deg,#fff 50%,#444 0),linear-gradient(180deg,#fff 50%,#444 0),linear-gradient(180deg,#fff 50%,#444 0);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:10px 1px,10px 1px,1px 10px,1px 10px;color:#fff}.ReactCrop__crop-selection:focus{outline:2px solid #08f;outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-hz:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-vt:before{background-color:#fff6;content:"";display:block;position:absolute}.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-vt:before{height:100%;width:1px}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:after,.ReactCrop__rule-of-thirds-hz:before{height:1px;width:100%}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{background-color:#0003;background-color:var(--rc-drag-handle-bg-colour);border:1px solid #ffffffb3;border:1px solid var(--rc-border-color);height:12px;height:var(--rc-drag-handle-size);position:absolute;width:12px;width:var(--rc-drag-handle-size)}.ReactCrop__drag-handle:focus{background:#08f;background:var(--rc-focus-color)}.ReactCrop .ord-nw{cursor:nw-resize;left:0}.ReactCrop .ord-n,.ReactCrop .ord-nw{top:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ReactCrop .ord-n{cursor:n-resize;left:50%}.ReactCrop .ord-ne{cursor:ne-resize;top:0}.ReactCrop .ord-e,.ReactCrop .ord-ne{right:0;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ReactCrop .ord-e{cursor:e-resize;top:50%}.ReactCrop .ord-se{bottom:0;cursor:se-resize;right:0;-webkit-transform:translate(50%,50%);transform:translate(50%,50%)}.ReactCrop .ord-s{cursor:s-resize;left:50%}.ReactCrop .ord-s,.ReactCrop .ord-sw{bottom:0;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}.ReactCrop .ord-sw{cursor:sw-resize;left:0}.ReactCrop .ord-w{cursor:w-resize;left:0;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{height:6px;height:var(--rc-drag-bar-size);left:0;top:0;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:100%}.ReactCrop__drag-bar.ord-e{height:100%;right:0;top:0;-webkit-transform:translate(50%);transform:translate(50%);width:6px;width:var(--rc-drag-bar-size)}.ReactCrop__drag-bar.ord-s{bottom:0;height:6px;height:var(--rc-drag-bar-size);left:0;-webkit-transform:translateY(50%);transform:translateY(50%);width:100%}.ReactCrop__drag-bar.ord-w{height:100%;left:0;top:0;-webkit-transform:translate(-50%);transform:translate(-50%);width:6px;width:var(--rc-drag-bar-size)}.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w,.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle{display:none}@media (pointer:coarse){.ReactCrop .ord-e,.ReactCrop .ord-n,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{height:24px;height:var(--rc-drag-handle-mobile-size);width:24px;width:var(--rc-drag-handle-mobile-size)}}.cropper-modal{max-height:80vh;max-width:500px}.cropper-modal .modal-body{align-items:center;background:#f0f0f0;display:flex;justify-content:center}.ReactCrop__image{max-height:70vh}.profile-form .form-group{margin-bottom:10px}.profile-form .form-label{flex-shrink:0;margin-bottom:0;padding-right:0;text-align:left;width:auto}.profile-form input[type=text],.profile-form textarea{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:16px;padding:10px;width:100%}.profile-form textarea{resize:vertical}.gender-options{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.gender-options label{align-items:center;cursor:pointer;display:flex;font-size:16px}.gender-options label span{white-space:nowrap}.gender-options input[type=radio]{margin-right:6px}.birthdate-selects{display:flex;gap:10px}.birthdate-selects select{-webkit-appearance:none;appearance:none;background-color:#fff;border:1px solid #ddd;border-radius:8px;flex:1 1;font-size:14px;padding:10px}.profile-form .form-row{align-items:center;display:flex;gap:12px;margin-bottom:12px}.profile-form .form-control-wrapper .avatar-selector-container{align-items:center;display:flex;flex-grow:1;gap:8px;min-width:0}.profile-form .form-control-wrapper .birthdate-selects,.profile-form .form-control-wrapper .gender-options,.profile-form .form-control-wrapper input{width:100%}.profile-form .avatar-section{margin-bottom:12px;margin-top:12px}.profile-form .avatar-section .form-label{color:#e39622;flex-shrink:1;font-size:16px;font-weight:600;margin-bottom:10px;padding-right:0;text-align:left;width:auto}.modal-overlay{align-items:stretch;background-color:#00000080;display:flex;justify-content:center;min-height:100vh;width:100vw}.modal-content.profile-page{align-self:stretch;background:#fff;border-radius:0;display:flex;flex-direction:column;height:100%;overflow:hidden;transition:max-height .3s ease;width:100%;z-index:var(--z-index-modal-content-default)}@media (min-width:768px){.modal-content.profile-page{align-self:auto;border-radius:12px;box-shadow:0 10px 40px #0003;height:auto;max-height:90vh;max-width:420px;width:90%}}.modal-header{border-bottom:1px solid #a09999;padding:8px 6px}.modal-header h2{color:#e39622;font-size:16px}.modal-header .close-button{background:none;border:none;color:#888;cursor:pointer;font-size:24px}.modal-body{padding:8px 6px 10px}.modal-footer{flex-shrink:0;padding-bottom:calc(16px + env(safe-area-inset-bottom));padding-top:6px}.modal-footer-content{display:flex;flex-direction:column;gap:12px;padding:0 12px}.modal-footer .button{border:1px solid #e7a940;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;padding:8px 14px;text-align:center;width:100%}.modal-footer .button-primary{background-color:#007bff;color:#fff}.modal-footer .button-danger,.modal-footer .button-secondary{background-color:#f0f2f5;color:#333}.modal-footer-subgroup{display:flex;gap:12px}.modal-footer-subgroup .button{flex-grow:1}.profile-form h3{color:#e39622;font-size:16px;font-weight:600;margin-bottom:12px;margin-top:12px}.profile-form input[type=text]{border:1px solid #e7a940;border-radius:12px;box-sizing:border-box;font-size:16px;margin-bottom:0;padding:10px;transition:border-color .2s,box-shadow .2s;width:100%}.profile-form input[type=text]:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff40;outline:none}.profile-form .form-label{color:#e39622;display:block;font-size:16px;font-weight:600;margin-bottom:12px}.user-info-card{font-family:sans-serif;padding:15px 20px;text-align:center}.user-info-card .user-avatar{border:2px solid #1890ff;border-radius:50%;height:60px;margin-bottom:10px;object-fit:cover;padding:2px;width:60px}.user-info-card h3{color:#333;font-size:18px;font-weight:600;margin:5px 0 10px}.user-info-card .user-meta{align-items:center;display:flex;gap:8px;justify-content:center;margin-bottom:15px}.user-info-card .user-meta span{border-radius:12px;color:#fff;display:inline-block;font-size:13px;font-weight:700;padding:3px 8px}.user-info-card .user-gender--male{background-color:#4a90e2}.user-info-card .user-gender--female{background-color:#e85d75}.user-info-card .user-meta-tag--private{background-color:#4a90e2}.user-info-card .user-age{background-color:#7ed321}.user-info-card .user-interests{color:#555;font-size:14px;line-height:1.5;margin:0}.user-info-card-overlay{align-items:center;animation:fadeIn .3s ease-out forwards;background-color:#0000;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:var(--z-index-map-infowindow)}.user-info-card-content{animation:popUp .3s ease-out .1s forwards;background:#fff;border-radius:16px;box-shadow:0 5px 15px #0000004d;max-width:350px;opacity:0;padding:25px 20px;position:relative;width:80%}@keyframes popUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.user-info-card-content .close-button{background:none;border:none;color:#aaa;cursor:pointer;font-size:24px;left:10px;line-height:1;position:absolute;top:10px}.user-info-card-inner-content{font-family:sans-serif;text-align:center}.info-card-actions{display:flex;gap:10px;justify-content:center;margin-top:20px}.info-card-action-button{border:none;border-radius:20px;color:#fff;cursor:pointer;flex-grow:1;font-size:14px;font-weight:700;max-width:120px;padding:8px 16px;transition:background-color .2s ease,transform .1s ease}.info-card-action-button:active{transform:translateY(1px)}.info-card-action-button--chat{background-color:#1890ff}.info-card-action-button--chat:hover{background-color:#40a9ff}.info-card-action-button--video{background-color:#4caf50}.info-card-action-button--video:hover{background-color:#45a049}.info-card-action-button--add{background-color:#4caf50}.info-card-action-button--add:hover{background-color:#45a049}.BMap_bubble_content{padding:0!important}.friend-request-form{align-items:center;display:flex;gap:10px;margin-top:15px}.friend-request-form input{border:1px solid #ccc;border-radius:20px;flex-grow:1;font-size:14px;min-width:0;padding:8px 12px}.friend-request-form button{background-color:#1890ff;border:none;border-radius:20px;color:#fff;cursor:pointer;flex-shrink:0;font-weight:700;padding:8px 16px;white-space:nowrap}.map-search-control{align-items:center;background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a,0 4px 8px #00000014;display:flex;left:70px;padding:4px;position:absolute;top:15px;transition:box-shadow .2s ease-in-out;z-index:var(--z-index-map-controls)}.map-search-control:focus-within{box-shadow:0 1px 3px #007bff33,0 4px 12px #007bff26}.map-search-control form{display:contents}.map-search-control .search-input{background-color:initial;border:none;color:#333;font-size:14px;outline:none;padding:2px;width:13vw}.map-search-control .search-button{align-items:center;background-color:initial;border:none;border-radius:6px;color:#555;cursor:pointer;display:flex;justify-content:center;padding:2px;transition:background-color .2s,color .2s}.map-search-control .search-button:hover{background-color:#f0f0f0;color:#007bff}.map-search-control .search-button:active{background-color:#e0e0e0}.user-list-modal-overlay{z-index:var(--z-index-modal-overlay-default)}.modal-content.user-list-modal{border-radius:0;display:flex;flex-direction:column;height:100vh;padding:0;width:100vw;z-index:var(--z-index-modal-content-default)}.user-list-modal .modal-header{border-bottom:1px solid #eee;flex-shrink:0;padding:15px 20px}.user-list-modal .modal-header h2{font-size:1.2rem;margin:0}.user-list-modal .modal-body{flex-grow:1;overflow-y:auto}.user-list-modal .list-empty{color:#888;padding:20px;text-align:center}.user-list-item{align-items:center;border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;padding:10px 8px;transition:background-color .2s}.user-list-item:hover{background-color:#f9f9f9}.user-list-item:last-child{border-bottom:none}.user-list-item.offline{opacity:.6}.avatar-container{flex-shrink:0;margin-right:12px;position:relative}.user-list-avatar{border-radius:50%;height:50px;object-fit:cover;width:50px}.status-indicator{border:1.5px solid #fff;border-radius:50%;bottom:0;box-sizing:border-box;height:18px;position:absolute;right:0;width:18px}.status-indicator.online{background-color:#2ecc71}.status-indicator.offline{background-color:#95a5a6}.user-info-container{display:flex;flex-direction:column;flex-grow:1;gap:4px;min-width:0}.user-info-main{align-items:center;display:flex;gap:6px}.user-list-name{color:#333;font-weight:700}.user-meta-tag{border-radius:8px;color:#fff;font-size:11px;padding:2px 6px}.gender-male{background-color:#5dade2}.gender-female{background-color:#ec7063}.age{background-color:#58d68d}.user-info-interests{color:#888;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-empty{color:#888;padding:20px;text-align:center}.modal-overlay{z-index:var(--z-index-modal-overlay-default)}.modal-content{z-index:var(--z-index-modal-content-default)}.friend-list-modal{border-radius:0;display:flex;flex-direction:column;height:100vh;width:100vw}.friend-tabs{border-bottom:1px solid #eee;display:flex;margin-bottom:10px}.friend-tab{border-bottom:2px solid #0000;color:#888;cursor:pointer;padding:10px 15px}.friend-tab.active{border-bottom-color:#007bff;color:#007bff}.friend-section{margin-bottom:20px}.friend-section h4{border-bottom:1px solid #f0f0f0;color:#666;font-size:14px;margin-bottom:10px;padding-bottom:5px}.friend-request-item{align-items:center;display:flex;padding:8px}.friend-request-item img{border-radius:50%;height:40px;margin-right:12px;width:40px}.request-info{flex-grow:1}.request-info span{font-weight:700}.request-info small{color:#888;display:block;font-style:italic}.request-actions button{border:none;border-radius:16px;cursor:pointer;margin-left:8px;padding:6px 12px}.request-actions button:first-child{background-color:#28a745;color:#fff}.request-actions button:last-child{background-color:#f0f0f0}.friend-list-item-actions{align-items:center;display:flex;gap:16px;margin-left:auto;padding-left:10px}.delete-button{background:none;border:1px solid #e74c3c;border-radius:16px;color:#000;cursor:pointer;font-size:13px;padding:4px 12px;transition:all .2s}.delete-button:hover{background-color:#c0392b;border-color:#c0392b;color:#fff}.toggle-switch{display:inline-block;height:22px;position:relative;width:40px}.toggle-switch input{height:0;opacity:0;width:0}.slider{background-color:#656464;border-radius:22px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:16px;left:3px;width:16px}input:checked+.slider{background-color:#f39c12}input:checked+.slider:before{transform:translateX(18px)}.toggle-container{align-items:center;display:flex;flex-direction:column;gap:4px}.toggle-label{color:#000;font-size:12px;transition:color .4s}.toggle-label.blocked{color:#f39c12}.confirmation-overlay{align-items:center;background-color:#0006;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:var(--z-index-group-setting)}.confirmation-dialog{background-color:#fff;border-radius:12px;box-shadow:0 4px 15px #00000026;max-width:320px;padding:24px;text-align:center;width:85%}.confirmation-dialog .modal-header h2{font-size:18px;font-weight:600;margin-bottom:16px;margin-top:0}.confirmation-dialog .modal-body p{color:#333;font-size:16px;line-height:1.6;margin-bottom:24px;margin-top:0}.confirmation-dialog .modal-actions{display:flex;justify-content:center}.confirmation-dialog .modal-actions button{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:500;padding:12px 15px;transition:background-color .2s;width:100%}.confirmation-dialog .confirm-button{background-color:#007bff;color:#fff}.confirmation-dialog .confirm-button:hover{background-color:#0056b3}.confirmation-dialog .cancel-button{background-color:#f0f0f0;color:#333;margin-right:10px}.confirmation-dialog .cancel-button:hover{background-color:#e0e0e0}.member-list{max-height:400px;overflow-y:auto}.invite-panel .button-group{display:flex;gap:12px;justify-content:flex-end;margin-top:15px}.cancel-invite-btn,.submit-invite-btn{border:1px solid #0000;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 20px;transition:background-color .2s ease,transform .1s ease}.cancel-invite-btn:active,.submit-invite-btn:active{transform:scale(.98)}.submit-invite-btn{background-color:#28a745;color:#fff}.submit-invite-btn:hover{background-color:#218838}.cancel-invite-btn{background-color:#f0f2f5;border:1px solid #dee2e6;color:#495057}.cancel-invite-btn:hover{background-color:#e4e6e9}.fullscreen-manager-overlay{background-color:#f7f7f7;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0;z-index:var(--z-index-group-setting)}.manager-content-container{display:flex;flex-direction:column;height:100%;width:100%}.modal-header{border-bottom:1px solid #eee;padding:15px}.member-manager{max-width:400px}.modal-body{padding:15px}.member-list{list-style:none;margin:0;padding:0}.member-list li{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;padding:10px}.member-avatar{border-radius:50%;height:35px;margin-right:12px;width:35px}.member-name{flex-grow:1}.modal-overlay{background-color:#0003;bottom:0;left:0;position:fixed;right:0;top:0;z-index:var(--z-index-group-setting)}.group-profile-header{align-items:center;display:flex;flex-grow:1;min-width:0}.group-main-avatar{border-radius:10px;flex-shrink:0;height:50px;margin-right:12px;width:50px}.group-info{display:flex;flex-direction:column;flex-grow:1;min-width:0}.group-info h2{font-size:18px;margin:0 0 4px}.group-description,.group-info h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-description{color:#666;font-size:13px;margin:0}.header-actions{align-items:center;display:flex;flex-shrink:0;margin-left:10px}.edit-group-btn,.save-group-btn{border:1px solid #0000;border-radius:8px;cursor:pointer;font-size:14px;font-weight:700;padding:8px 15px;white-space:nowrap}.edit-group-btn{background-color:#f0f0f0;border-color:#ccc;color:#333}.save-group-btn{background-color:#007bff;color:#fff}.group-name-input-in-header{border:1px solid #ccc;border-radius:4px;font-size:18px;font-weight:700;outline-color:#007bff;padding:8px 12px;width:100%}.edit-panel{background-color:#fafafa;border-bottom:1px solid #eee;flex-shrink:0;padding:15px}.form-group label{font-weight:700}.edit-panel textarea,.group-name-input{border:1px solid #ccc;border-radius:4px;font-size:16px;padding:8px;width:100%}.edit-panel textarea{resize:vertical}.invite-btn{background-color:#28a745;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;width:100%}.invite-btn,.invite-panel{margin-bottom:15px;padding:10px}.invite-panel{border:1px solid #ddd;border-radius:5px}.role-tag{border-radius:4px;font-size:12px;margin-right:10px;padding:2px 6px}.role-tag.owner{background-color:#ffc107;color:#333}.remove-member-btn{background-color:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:4px 8px}.remove-member-btn:hover{background-color:#d32f2f}.avatar-selector-container{box-sizing:border-box;width:100%}.avatar-list-container{grid-gap:10px;background:#fff;border:1px solid #ddd;border-radius:8px;box-sizing:border-box;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));max-height:150px;overflow-y:auto;padding:8px}.avatar-item{border:2px solid #0000;border-radius:8px;cursor:pointer;height:100%;object-fit:cover;transition:transform .12s ease,box-shadow .12s ease;width:100%}.avatar-item:hover{transform:translateY(-2px)}.emoji-area{background:#fff;border:1px solid #ddd;border-radius:8px;box-sizing:border-box;padding:6px;position:relative;width:100%}.emoji-area>em-emoji-picker{height:220px;width:100%!important}.avatar-mode-toggle{align-items:center;box-sizing:border-box;display:flex;gap:8px;margin-bottom:10px;width:100%}.avatar-mode-toggle .btn{background:#f8f8f8;border:1px solid #ccc;border-radius:16px;color:#333;cursor:pointer;font-size:14px;padding:6px 14px}.avatar-mode-toggle .btn.active{background:#007bff;border-color:#007bff;color:#fff}.avatar-mode-toggle .avatar-preview{margin-left:auto}.avatar-mode-toggle .avatar-preview img{border-radius:6px;height:36px;object-fit:cover;width:36px}.emoji-confirm-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#ffffffd9;border-radius:8px;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:var(--z-index-modal-overlay-default)}.emoji-confirm-dialog{align-items:center;background:#fff;border-radius:16px;box-shadow:0 12px 32px #0000001a;display:flex;flex-direction:column;padding:24px;text-align:center}.emoji-confirm-preview{height:64px;margin-bottom:16px;width:64px}.emoji-confirm-dialog p{color:#333;font-size:16px;margin:0}.emoji-confirm-actions{display:flex;gap:12px;margin-top:24px}.emoji-confirm-actions .btn{border:1px solid #0000;border-radius:16px;cursor:pointer;font-size:16px;font-weight:700;padding:10px 28px}.emoji-confirm-actions .btn-secondary{background-color:#f0f2f5;border-color:#dee2e6;color:#495057}.emoji-confirm-actions .btn-primary{background-color:#28a745;border-color:#28a745;color:#fff}.submit-invite-btn .cancel-invite-btn{background-color:#28a745;border:none;border-radius:16px;color:#fff;cursor:pointer;flex-grow:1;font-size:14px;font-weight:700;max-width:120px;padding:8px}.share-btn{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;margin-bottom:15px;padding:10px;width:100%}.group-chat-panel{display:flex;flex-direction:column;height:100%;inset:0;overflow:hidden;position:absolute}.panel-header{background-color:#fff;border-bottom:1px solid #e0e0e0;justify-content:space-between}.panel-header,.panel-header h3{align-items:center;display:flex}.panel-header h3{font-size:16px;font-weight:600;gap:8px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-header .channel-tag{border-radius:12px;color:#fff;flex-shrink:0;font-size:11px;font-weight:500;padding:3px 8px}.panel-header .broadcast-tag{background-color:#ff9800}.panel-header .group-tag{background-color:#4caf50}.panel-header-right{align-items:center;display:flex;gap:8px}.close-btn,.icon-btn{background:none;border:none;color:#555;cursor:pointer;font-size:20px;line-height:1;padding:5px}.panel-body{background-color:#e2e1e1;flex-grow:1;min-height:0;overflow-y:auto;padding:4px 4px 8px 8px}.messages-list{display:flex;flex-direction:column;gap:4px}.message-row{align-items:flex-end;display:flex;gap:4px;margin-bottom:0;max-width:100%}.message-row.self{gap:3px;justify-content:flex-end;margin-right:0;padding-right:0}.message-row.self .msg-bubble{margin-right:0;order:1}.message-row.self .avatar{margin-left:0;margin-right:0;order:2}.message-row.other{gap:3px;justify-content:flex-start;padding-left:0}.message-row.other .avatar{margin-right:0;order:1}.message-row.other .msg-bubble{order:2}.msg-bubble{border-radius:8px;display:flex;flex-direction:column;line-height:1.3;max-width:calc(100% - 30px);padding:6px 8px;word-break:break-word}.timestamp{align-self:center;color:#999;font-size:12px;margin:6px 0}.avatar{border-radius:6px;flex-shrink:0;height:36px;width:36px}.message-row.other .msg-content{background-color:#fff}.message-row.self .msg-content{background-color:#a0e959}.msg-content.is-single-emoji{background:none!important;font-size:48px;padding:0!important}.system-message{align-self:center;background-color:#e0e0e0;border-radius:12px;color:#555;font-size:12px;margin:5px 0;padding:4px 10px}.msg-name{color:#888;font-size:12px;margin-bottom:4px}.msg-content{border-radius:8px;padding:8px 12px;position:relative;word-break:break-word}.panel-footer{background-color:#fff;border-top:1px solid #e0e0e0;flex-shrink:0;padding:10px}.toolbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.toolbar-actions-left,.toolbar-actions-right{align-items:center;display:flex;gap:8px}.input-action-wrapper{align-items:flex-end;display:flex;gap:8px}.input-action-wrapper textarea{border:1px solid #ddd;border-radius:8px;flex-grow:1;font-size:14px;line-height:1.5;max-height:100px;min-height:22px;padding:8px 12px;resize:none}.input-action-wrapper button{background-color:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .2s}.input-action-wrapper button:disabled{background-color:#a5d6a7;cursor:not-allowed}.readonly-footer{background-color:#fafafa;color:#777;padding:15px;text-align:center}.pinned-link-bar{align-items:center;background-color:#eef5ff;border-bottom:1px solid #d4e3f7;color:#ea7006;cursor:pointer;display:flex;flex-shrink:0;font-size:14px;font-weight:700;justify-content:center;padding:8px 15px;position:relative;transition:background-color .2s}.pinned-link-bar:hover{background-color:#dbeaff}.pinned-link-bar .arrow-icon{font-size:24px;font-weight:700;position:absolute;right:15px;top:50%;transform:translateY(-50%)}.top-left-controls{display:flex;flex-direction:column;gap:10px;left:15px;position:absolute;top:15px;z-index:10}.control-button{-webkit-tap-highlight-color:transparent;align-items:center;background-color:#ffffffe6;border:1px solid #dbdbdb;border-radius:12px;box-shadow:0 2px 8px #00000014;cursor:pointer;display:flex;font-size:22px;height:44px;justify-content:center;padding:0;transition:all .2s ease-in-out;width:44px}.control-button:hover{background-color:#fff;box-shadow:0 4px 12px #0000001f;transform:translateY(-2px) scale(1.05)}.control-button:active{background-color:#f0f0f0;transform:translateY(0) scale(1)}.iframe-overlay{animation:fadeIn .3s ease-in-out;background-color:#000000b3;display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:var(--z-index-modal-content-profile)}.iframe-header{align-items:center;background:linear-gradient(180deg,#b0b3b5,#60676d);border-bottom:1px solid #4a627a;box-shadow:0 4px 12px #0000004d;color:#fff;display:flex;flex-shrink:0;justify-content:space-between;padding:10px 15px}.iframe-header .left-controls,.iframe-header .right-controls{display:flex;gap:12px}.iframe-btn{-webkit-tap-highlight-color:transparent;background:#0000;border:none;border-radius:12px;cursor:pointer;height:48px;padding:0;transition:background-color .15s ease-in-out;width:48px}.iframe-btn,.iframe-btn-icon{align-items:center;box-shadow:none;display:flex;justify-content:center}.iframe-btn-icon{background-color:initial;border:2px solid #ffffff80;border-radius:8px;color:#fffc;font-size:18px;height:32px;line-height:1;transition:all .2s cubic-bezier(.4,0,.2,1);width:32px}.iframe-btn:hover .iframe-btn-icon{background-color:#ffffff26;border-color:#ffffffe6;color:#fff;transform:scale(1.1)}.iframe-btn:active .iframe-btn-icon{background-color:#0000001a;border-color:#ffffffb3;transform:scale(.95);transition-duration:.1s}.iframe-content{background-color:#fff;flex-grow:1;height:100%;width:100%}.channel-list-content-wrapper{background-color:#f9f9f9;display:flex;flex-direction:column;height:100%;width:100%}.modal-header{align-items:center;background-color:#fff;border-bottom:1px solid #e0e0e0;display:flex;flex-shrink:0;justify-content:space-between;padding:12px 15px}.modal-body{flex-grow:1;overflow-y:auto;padding:0}.create-action-wrapper{background-color:#fff;border-bottom:1px solid #eee;padding:15px}.modal-header h2{font-size:18px;font-weight:600;margin:0}.channel-list-modal .modal-header{border-bottom:1px solid #e0e0e0;flex-shrink:0;padding:12px 15px}.channel-list-modal .modal-header h2{font-size:18px;font-weight:600}.create-new-full-btn{align-items:center;background-color:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:8px;justify-content:center;padding:12px;transition:background-color .2s;width:100%}.create-new-full-btn:hover{background-color:#45a049}.channel-list-modal .user-list{background-color:#fff;list-style:none;margin:0;padding-left:0}.channel-list-modal .user-list-item{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;gap:12px;padding:12px 15px}.channel-list-modal .user-list-item .avatar{border-radius:8px;flex-shrink:0;height:48px;width:48px}.channel-list-modal .user-info{display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-width:0}.list-item-actions{flex-shrink:0;margin-left:auto}.list-item-actions,.user-name-wrapper{align-items:center;display:flex;gap:8px}.user-name-wrapper{margin-bottom:4px}.user-name{color:#333;font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-tag{border-radius:4px;color:#fff;flex-shrink:0;font-size:10px;padding:2px 6px}.broadcast-tag{background-color:#ff9800}.group-tag{background-color:#4caf50}.channel-desc{-webkit-line-clamp:1;-webkit-box-orient:vertical;color:#888;display:-webkit-box;font-size:13px;margin-bottom:4px;overflow:hidden}.channel-members{color:#aaa;font-size:12px}.action-btn{border:none;border-radius:15px;color:#fff;cursor:pointer;flex-shrink:0;font-size:13px;font-weight:500;padding:6px 14px;transition:background-color .2s}.join-btn{background-color:#4caf50}.join-btn:hover{background-color:#45a049}.enter-btn{background-color:#008cba}.enter-btn:hover{background-color:#007ba7}.loading-text,.no-results-text{background-color:#f9f9f9;color:#999;padding:40px 20px;text-align:center}.fullscreen-panel{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:var(--z-index-modal-overlay-default)}.fullscreen-content{animation:slideInUp .3s ease-out;background-color:#f7f7f7;border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;max-height:100%;max-width:100%;width:100%}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.fullscreen-content form{display:flex;flex-direction:column;height:100%}.fullscreen-content .modal-header{background-color:#fff;flex-shrink:0;position:-webkit-sticky;position:sticky;top:0}.fullscreen-content .modal-body{flex-grow:1;overflow-y:auto;padding:20px 15px}.fullscreen-content .modal-footer{background-color:#fff;bottom:0;flex-shrink:0;position:-webkit-sticky;position:sticky}.create-form-modal.modal-content{background-color:#f7f7f7}.create-form-modal .modal-body{padding:20px 15px}.form-group{margin-bottom:15px}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:5px}.form-group input[type=text],.form-group textarea{border:1px solid #ccc;border-radius:5px;box-sizing:border-box;font-size:14px;padding:10px;width:100%}.form-group textarea{resize:vertical}.form-group-checkbox{align-items:center;display:flex;gap:8px;margin-top:20px}.form-group-checkbox label{color:#555;cursor:pointer;font-size:13px}.modal-footer{border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;padding:15px}.btn-cancel,.btn-confirm{border:none;border-radius:5px;cursor:pointer;font-weight:500;padding:8px 16px}.btn-cancel{background-color:#f0f0f0}.btn-confirm{background-color:#007bff;color:#fff}.btn-confirm:disabled{background-color:#a0cfff;cursor:not-allowed}.type-selector{display:flex;gap:15px;margin-top:10px}.type-option{border:2px solid #eee;border-radius:8px;cursor:pointer;flex:1 1;padding:15px;transition:all .2s ease-in-out}.type-option:hover{background-color:#f8f9fa;border-color:#007bff}.type-option.selected{background-color:#e7f3ff;border-color:#007bff;box-shadow:0 0 5px #007bff4d}.type-option h4{font-size:15px;margin:0 0 5px}.type-option p{color:#6c757d;font-size:12px;margin:0}.search-overlay{align-items:flex-start;animation:fadeIn .3s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:#0009;display:flex;height:100%;justify-content:center;left:0;padding-top:15vh;position:fixed;top:0;width:100%;z-index:var(--z-index-modal-content-default)}.search-panel{animation:slideDown .4s cubic-bezier(.25,.8,.25,1);background-color:#2c2c2e;border-radius:12px;box-shadow:0 10px 30px #00000080;display:flex;flex-direction:column;max-width:600px;overflow:hidden;width:90%}.search-panel input[type=text]{background-color:initial;border:none;border-bottom:1px solid #444;color:#fff;font-size:1.2rem;outline:none;padding:16px 20px;transition:border-color .2s ease;width:100%}.search-panel input[type=text]::placeholder{color:#888}.search-panel input[type=text]:focus{border-bottom-color:#007aff}.search-results{max-height:60vh;overflow-y:auto;padding:8px 0}.search-result-item{border-bottom:1px solid #3a3a3c;cursor:pointer;padding:12px 20px;transition:background-color .2s ease}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background-color:#3a3a3c}.search-result-item .message-content{color:#f2f2f7;font-size:1rem;line-height:1.4;margin:0 0 6px}.search-result-item .message-meta{color:#8e8e93;font-size:.75rem}@media (max-width:600px){.search-overlay{padding-top:5vh}.search-panel{border-radius:10px;width:95%}.search-panel input[type=text]{font-size:1rem;padding:14px 16px}.search-result-item{padding:10px 16px}}.search-loading{color:#888;font-style:italic;padding:20px;text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.search-results::-webkit-scrollbar{width:6px}.search-results::-webkit-scrollbar-track{background:#0000}.search-results::-webkit-scrollbar-thumb{background-color:#555;border-radius:3px}.search-results::-webkit-scrollbar-thumb:hover{background-color:#777}
/*# sourceMappingURL=main.3a2bb867.css.map*/