.login-page{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-bg{position:absolute;inset:0;overflow:hidden}.login-bg-orb{filter:blur(100px);border-radius:50%;animation:20s ease-in-out infinite orbFloat;position:absolute}.login-bg-orb--1{background:var(--accent-primary);opacity:.08;width:500px;height:500px;animation-delay:0s;top:-15%;right:-10%}.login-bg-orb--2{background:var(--accent-secondary);opacity:.06;width:400px;height:400px;animation-delay:-7s;bottom:-10%;left:-5%}.login-bg-orb--3{background:var(--accent-primary);opacity:.04;width:300px;height:300px;animation-delay:-14s;top:40%;left:50%}@keyframes orbFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-20px)scale(1.05)}66%{transform:translate(-20px,15px)scale(.95)}}.login-bg-pattern{background-image:radial-gradient(circle at 1px 1px, var(--border-color) 1px, transparent 0);opacity:.4;background-size:40px 40px;position:absolute;inset:0}.login-topbar{top:var(--space-lg);right:var(--space-lg);gap:var(--space-sm);z-index:10;display:flex;position:absolute}.login-locale-btn,.login-theme-btn{align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-secondary);letter-spacing:.03em;transition:all var(--duration-fast) var(--ease-out);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:.8rem;font-weight:600;display:flex}.login-locale-btn:hover,.login-theme-btn:hover{background:var(--bg-surface-hover);border-color:var(--border-hover);color:var(--text-primary)}.login-card{width:100%;max-width:420px;padding:var(--space-2xl) var(--space-xl);background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg), var(--shadow-glow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:5;position:relative}.login-header{text-align:center;margin-bottom:var(--space-xl)}.login-logo{margin-bottom:var(--space-md);display:inline-flex}.login-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-primary);margin-bottom:var(--space-xs);font-size:2rem;font-weight:700}.login-subtitle{color:var(--text-tertiary);font-size:.9rem;line-height:1.5}.login-mode-toggle{background:var(--bg-input);border-radius:var(--radius-md);margin-bottom:var(--space-lg);padding:3px;display:flex;position:relative}.login-mode-btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:calc(var(--radius-md) - 2px);color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-out);z-index:1;flex:1;font-size:.85rem;font-weight:600;display:flex}.login-mode-btn.active{color:var(--text-primary)}.login-mode-indicator{background:var(--bg-surface);border-radius:calc(var(--radius-md) - 2px);width:calc(50% - 3px);height:calc(100% - 6px);box-shadow:var(--shadow-sm);transition:transform var(--duration-normal) var(--ease-spring);position:absolute;top:3px;left:3px}.login-mode-indicator.right{transform:translate(100%)}.login-fields{gap:var(--space-md);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.login-field{align-items:center;gap:var(--space-sm);padding:0 var(--space-md);background:var(--bg-input);border-radius:var(--radius-md);height:52px;transition:all var(--duration-fast) var(--ease-out);border:1.5px solid #0000;display:flex;position:relative}.login-field:focus-within{border-color:var(--accent-primary);background:var(--bg-surface);box-shadow:0 0 0 2px var(--accent-primary-soft);z-index:1}.login-field-icon{color:var(--text-tertiary);transition:color var(--duration-fast);flex-shrink:0}.login-field:focus-within .login-field-icon{color:var(--accent-primary)}.login-field input{background:0 0;flex:1;height:100%;font-size:.95rem}.login-field input::placeholder{color:var(--text-tertiary)}.login-field input:focus-visible,.login-field :focus-visible{outline:none}.login-field-action{color:var(--text-tertiary);padding:var(--space-sm);border-radius:var(--radius-sm);transition:color var(--duration-fast);justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.login-field-action:hover{color:var(--text-secondary)}.login-error{color:var(--accent-danger);text-align:center;margin-bottom:var(--space-md);font-size:.85rem;overflow:hidden}.login-submit{justify-content:center;align-items:center;gap:var(--space-sm);background:var(--accent-primary);color:#fff;border-radius:var(--radius-md);width:100%;height:52px;transition:all var(--duration-fast) var(--ease-out);font-size:.95rem;font-weight:700;display:flex;position:relative;overflow:hidden}.login-submit:before{content:"";background:linear-gradient(135deg,#0000 30%,#ffffff1a 50%,#0000 70%);transition:transform .6s;position:absolute;inset:0;transform:translate(-100%)}.login-submit:hover:before{transform:translate(100%)}.login-submit:hover{background:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:0 4px 20px #c85a3a4d}.login-submit:active{transform:translateY(0)}.login-submit:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-spinner{border:2.5px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:22px;height:22px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-forgot{text-align:center;width:100%;margin-top:var(--space-md);padding:var(--space-sm) 0;min-height:44px;color:var(--text-tertiary);transition:color var(--duration-fast);font-size:.85rem;display:block}.login-forgot:hover{color:var(--accent-primary)}.login-2fa-header{text-align:center;margin-bottom:var(--space-lg)}.login-2fa-icon{background:var(--accent-primary-soft);width:56px;height:56px;color:var(--accent-primary);border-radius:var(--radius-lg);margin-bottom:var(--space-md);justify-content:center;align-items:center;display:inline-flex}.login-2fa-label{color:var(--text-secondary);font-size:.9rem}.login-code-inputs{gap:var(--space-sm);margin-bottom:var(--space-lg);justify-content:center;display:flex}.login-code-digit{text-align:center;width:48px;height:56px;font-size:1.4rem;font-weight:700;font-family:var(--font-body);background:var(--bg-input);border-radius:var(--radius-md);color:var(--text-primary);transition:all var(--duration-fast) var(--ease-out);border:1.5px solid #0000}.login-code-digit:focus{border-color:var(--accent-primary);background:var(--bg-surface);box-shadow:0 0 0 3px var(--accent-primary-soft);outline:none}.login-footer{align-items:center;gap:var(--space-md);margin-top:var(--space-xl);display:flex}.login-footer-line{background:var(--border-color);flex:1;height:1px}.login-footer-badge{align-items:center;gap:var(--space-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:600;display:flex}@media (width<=480px){.login-page{padding:var(--space-lg) var(--space-md);padding-top:calc(var(--space-3xl) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0px));align-items:center;min-height:100dvh}.login-card{width:100%;max-width:100%;padding:var(--space-xl) var(--space-lg);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin:0}.login-title{font-size:1.5rem}.login-field{height:52px}.login-submit{height:52px;font-size:1rem}.login-code-digit{width:46px;height:54px;font-size:1.3rem}.login-topbar{top:calc(var(--space-md) + env(safe-area-inset-top,0px));right:var(--space-md)}}@media (width<=480px) and (height<=680px){.login-page{align-items:flex-end;padding:0}.login-card{border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom,0px))}}@media (width>=481px) and (width<=900px){.login-page{padding:var(--space-xl)}.login-card{max-width:440px}}@media (height<=500px) and (orientation:landscape){.login-page{padding:var(--space-md);align-items:flex-start;overflow-y:auto}.login-card{max-width:480px;margin:auto}.login-header{margin-bottom:var(--space-md)}.login-logo svg{width:36px;height:36px}.login-title{font-size:1.3rem}.login-subtitle{display:none}.login-footer{margin-top:var(--space-md)}}.avatar{flex-shrink:0;position:relative}.avatar--sm{width:32px;height:32px}.avatar--md{width:44px;height:44px}.avatar--lg{width:52px;height:52px}.avatar--xl{width:80px;height:80px}.avatar-inner{border-radius:var(--radius-full);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.avatar--sm .avatar-initials{font-size:.7rem;font-weight:700}.avatar--md .avatar-initials{font-size:.85rem;font-weight:700}.avatar--lg .avatar-initials{font-size:1rem;font-weight:700}.avatar--xl .avatar-initials{font-size:1.5rem;font-weight:700}.avatar-initials{color:#fff;letter-spacing:.03em;text-shadow:0 1px 2px #00000026}.avatar-status{border:2.5px solid var(--bg-surface);width:12px;height:12px;transition:background var(--duration-fast);border-radius:50%;position:absolute;bottom:0;right:0}.avatar--sm .avatar-status{border-width:2px;width:10px;height:10px}.avatar--xl .avatar-status{border-width:3px;width:16px;height:16px}.avatar-status--online{background:var(--accent-success)}.avatar-status--offline{background:var(--text-tertiary)}.avatar-status--away{background:var(--accent-secondary)}.avatar-status--dnd{background:var(--accent-danger)}.search-highlight-mark{background:var(--accent-primary-soft);color:var(--accent-primary);border-radius:2px;padding:0 1px;font-weight:700}.create-group-overlay{z-index:1000;background:var(--bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.create-group-modal{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:440px;max-height:80vh;box-shadow:var(--shadow-lg), var(--shadow-glow);flex-direction:column;display:flex;position:relative;overflow:hidden}.create-group-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.create-group-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;font-size:1.35rem;font-weight:700}.create-group-close{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-tertiary);transition:all var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex}.create-group-close:hover{background:var(--bg-input);color:var(--text-primary)}.create-group-body{padding:var(--space-lg) var(--space-xl);gap:var(--space-lg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.create-group-field{gap:var(--space-sm);flex-direction:column;display:flex}.create-group-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:600}.create-group-input-wrap{align-items:center;gap:var(--space-sm);padding:0 var(--space-md);background:var(--bg-input);border-radius:var(--radius-md);height:48px;transition:all var(--duration-fast) var(--ease-out);border:1.5px solid #0000;display:flex;position:relative}.create-group-input-wrap:focus-within{border-color:var(--accent-primary);background:var(--bg-surface);box-shadow:0 0 0 3px var(--accent-primary-soft)}.create-group-input-icon{color:var(--text-tertiary);transition:color var(--duration-fast);flex-shrink:0}.create-group-input-wrap:focus-within .create-group-input-icon{color:var(--accent-primary)}.create-group-input{background:0 0;flex:1;height:100%;font-size:.95rem}.create-group-input::placeholder{color:var(--text-tertiary)}.create-group-char-count{color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.75rem}.create-group-char-count.near-limit{color:var(--accent-secondary)}.create-group-char-count.at-limit{color:var(--accent-danger)}.create-group-members-header{justify-content:space-between;align-items:center;display:flex}.create-group-members-count{color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-size:.8rem}.create-group-member-list{flex-direction:column;gap:2px;display:flex}.create-group-member{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;display:flex}.create-group-member:hover{background:var(--bg-surface-hover)}.create-group-member.selected{background:var(--accent-primary-soft)}.create-group-member-info{flex:1;min-width:0}.create-group-member-name{color:var(--text-primary);font-size:.925rem;font-weight:600;line-height:1.3}.create-group-member-role{color:var(--text-tertiary);font-size:.8rem;line-height:1.3}.create-group-checkbox{border:2px solid var(--border-hover);width:20px;height:20px;transition:all var(--duration-fast) var(--ease-spring);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.create-group-member.selected .create-group-checkbox{background:var(--accent-primary);border-color:var(--accent-primary)}.create-group-checkbox-icon{color:#fff;opacity:0;transition:all var(--duration-fast) var(--ease-spring);transform:scale(0)}.create-group-member.selected .create-group-checkbox-icon{opacity:1;transform:scale(1)}.create-group-footer{justify-content:flex-end;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-top:1px solid var(--border-color);display:flex}.create-group-cancel{padding:var(--space-sm) var(--space-lg);color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out);font-size:.9rem;font-weight:600}.create-group-cancel:hover{color:var(--text-primary);background:var(--bg-input)}.create-group-submit{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-xl);background:var(--accent-primary);color:#fff;border-radius:var(--radius-md);height:44px;transition:all var(--duration-fast) var(--ease-out);font-size:.9rem;font-weight:700;display:flex;position:relative;overflow:hidden}.create-group-submit:before{content:"";background:linear-gradient(135deg,#0000 30%,#ffffff1a 50%,#0000 70%);transition:transform .6s;position:absolute;inset:0;transform:translate(-100%)}.create-group-submit:hover:not(:disabled):before{transform:translate(100%)}.create-group-submit:hover:not(:disabled){background:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:0 4px 20px #c85a3a4d}.create-group-submit:active:not(:disabled){transform:translateY(0)}.create-group-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.create-group-selected-chips{gap:var(--space-xs);flex-wrap:wrap;display:flex}.create-group-chip{background:var(--accent-primary-soft);color:var(--accent-primary);border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);align-items:center;gap:4px;padding:3px 10px 3px 12px;font-size:.78rem;font-weight:600;display:inline-flex}.create-group-chip:hover{background:var(--accent-primary);color:#fff}.create-group-chip-x{align-items:center;display:flex}@media (width<=480px){.create-group-modal{margin:var(--space-md);border-radius:var(--radius-lg);max-height:90vh}.create-group-header,.create-group-body,.create-group-footer{padding-left:var(--space-lg);padding-right:var(--space-lg)}}@media (width<=768px){.create-group-overlay{align-items:flex-end}.create-group-modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:100%;max-height:90vh;padding-bottom:calc(var(--space-xl) + var(--safe-area-bottom))}}.cm-overlay{z-index:8000;background:var(--bg-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:var(--space-md);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cm-modal{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:440px;box-shadow:var(--shadow-lg), var(--shadow-glow);position:relative;overflow:hidden}.cm-header{align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-color);display:flex}.cm-header-icon{border-radius:var(--radius-md);background:var(--accent-primary-soft);width:44px;height:44px;color:var(--accent-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.cm-header-text{flex:1;min-width:0}.cm-title{font-family:var(--font-display);color:var(--text-primary);font-size:1.25rem;font-weight:700;line-height:1.2}.cm-subtitle{color:var(--text-tertiary);margin-top:2px;font-size:.8rem}.cm-close{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-tertiary);transition:all var(--duration-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:flex}.cm-close:hover{background:var(--bg-input);color:var(--text-primary)}.cm-body{padding:var(--space-lg) var(--space-xl) var(--space-xl);gap:var(--space-lg);flex-direction:column;display:flex}.cm-body--success{text-align:center;padding-top:var(--space-xl);padding-bottom:var(--space-2xl);align-items:center}.cm-field{gap:var(--space-sm);flex-direction:column;display:flex;overflow:hidden}.cm-label{align-items:center;gap:var(--space-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:600;display:flex}.cm-label-value{color:var(--accent-primary);margin-left:auto;font-size:.9rem;font-weight:700}.cm-input{width:100%;height:48px;padding:0 var(--space-md);background:var(--bg-input);border-radius:var(--radius-md);color:var(--text-primary);transition:all var(--duration-fast) var(--ease-out);border:1.5px solid #0000;font-size:.95rem}.cm-input::placeholder{color:var(--text-tertiary)}.cm-input:focus{border-color:var(--accent-primary);background:var(--bg-surface);box-shadow:0 0 0 3px var(--accent-primary-soft);outline:none}.cm-type-toggle{gap:var(--space-sm);display:flex}.cm-type-btn{justify-content:center;align-items:center;gap:var(--space-sm);background:var(--bg-input);border-radius:var(--radius-md);height:44px;color:var(--text-tertiary);transition:all var(--duration-fast) var(--ease-out);border:1.5px solid #0000;flex:1;font-size:.88rem;font-weight:600;display:flex}.cm-type-btn:hover{color:var(--text-secondary);border-color:var(--border-hover)}.cm-type-btn--active{background:var(--accent-primary-soft);color:var(--accent-primary);border-color:var(--accent-primary)}.cm-type-btn--active:hover{color:var(--accent-primary)}.cm-slider{appearance:none;background:var(--bg-input);border-radius:var(--radius-full);cursor:pointer;outline:none;width:100%;height:6px}.cm-slider::-webkit-slider-thumb{appearance:none;background:var(--accent-primary);border:3px solid var(--bg-surface);width:22px;height:22px;box-shadow:var(--shadow-sm);cursor:grab;transition:transform var(--duration-fast) var(--ease-out);border-radius:50%}.cm-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.cm-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.05)}.cm-slider::-moz-range-thumb{background:var(--accent-primary);border:3px solid var(--bg-surface);width:22px;height:22px;box-shadow:var(--shadow-sm);cursor:grab;border-radius:50%}.cm-slider-labels{color:var(--text-tertiary);justify-content:space-between;padding:0 2px;font-size:.75rem;display:flex}.cm-checkbox-label{align-items:center;gap:var(--space-sm);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.9rem;font-weight:500;display:flex}.cm-checkbox{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.cm-checkbox-visual{border:2px solid var(--border-hover);color:#fff;width:20px;height:20px;transition:all var(--duration-fast) var(--ease-out);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.cm-checkbox:checked+.cm-checkbox-visual{background:var(--accent-primary);border-color:var(--accent-primary)}.cm-error{color:var(--accent-danger);text-align:center;font-size:.85rem;overflow:hidden}.cm-create-btn{justify-content:center;align-items:center;gap:var(--space-sm);background:var(--accent-primary);color:#fff;border-radius:var(--radius-md);width:100%;height:50px;transition:all var(--duration-fast) var(--ease-out);font-size:.95rem;font-weight:700;display:flex;position:relative;overflow:hidden}.cm-create-btn:before{content:"";background:linear-gradient(135deg,#0000 30%,#ffffff1a 50%,#0000 70%);transition:transform .6s;position:absolute;inset:0;transform:translate(-100%)}.cm-create-btn:hover:before{transform:translate(100%)}.cm-create-btn:hover{background:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:0 4px 20px #c85a3a4d}.cm-create-btn:active{transform:translateY(0)}.cm-create-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.cm-spinner-icon{animation:.8s linear infinite cm-spin}@keyframes cm-spin{to{transform:rotate(360deg)}}.cm-success-icon{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;width:64px;height:64px;margin-bottom:var(--space-sm);border-radius:50%;justify-content:center;align-items:center;display:flex}.cm-success-title{font-family:var(--font-display);color:var(--text-primary);font-size:1.3rem;font-weight:700}.cm-success-type{align-items:center;gap:var(--space-xs);color:var(--text-tertiary);font-size:.82rem;font-weight:500;display:flex}.cm-link-box{background:var(--bg-input);border:1.5px solid var(--border-color);border-radius:var(--radius-md);width:100%;margin-top:var(--space-sm);align-items:center;gap:4px;padding:4px;display:flex}.cm-link-text{height:40px;padding:0 var(--space-md);color:var(--accent-primary);cursor:text;background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:.85rem;font-weight:500}.cm-copy-btn{border-radius:calc(var(--radius-md) - 4px);background:var(--accent-primary);color:#fff;width:40px;height:40px;transition:all var(--duration-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:flex}.cm-copy-btn:hover{background:var(--accent-primary-hover)}.cm-copy-btn--copied,.cm-copy-btn--copied:hover{background:var(--accent-success)}.cm-password-note{align-items:center;gap:var(--space-xs);color:var(--text-tertiary);font-size:.8rem;font-weight:500;display:flex}.cm-action-buttons{gap:var(--space-sm);margin-top:var(--space-sm);flex-direction:column;display:flex}.cm-join-btn{width:100%;min-height:48px;padding:var(--space-sm) var(--space-md);justify-content:center;align-items:center;gap:var(--space-sm);background:var(--accent-primary);color:#fff;border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out);white-space:nowrap;font-size:.9rem;font-weight:700;display:flex}.cm-join-btn:hover{background:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:0 4px 16px #c85a3a4d}.cm-join-alt-btn{width:100%;height:40px;color:var(--text-tertiary);border-radius:var(--radius-md);transition:color var(--duration-fast);background:0 0;font-size:.82rem;font-weight:500}.cm-join-alt-btn:hover{color:var(--text-secondary)}@media (width<=480px){.cm-modal{border-radius:var(--radius-lg)}.cm-header{padding:var(--space-md) var(--space-lg)}.cm-body{padding:var(--space-md) var(--space-lg) var(--space-lg)}}.bottom-sheet-root{z-index:200;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet-backdrop{background:#00000080;position:absolute;inset:0}.bottom-sheet{background:var(--bg-surface);width:100%;padding-bottom:var(--safe-area-bottom,0px);touch-action:none;border-radius:20px 20px 0 0;flex-direction:column;display:flex;position:relative;overflow:hidden}.bottom-sheet-handle-area{cursor:grab;flex-shrink:0;justify-content:center;padding:12px 0 4px;display:flex}.bottom-sheet-handle-area:active{cursor:grabbing}.bottom-sheet-handle{border-radius:var(--radius-full);background:var(--text-tertiary);opacity:.5;width:36px;height:4px}.bottom-sheet-header{padding:var(--space-sm) var(--space-lg);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.bottom-sheet-title{color:var(--text-primary);font-size:1rem;font-weight:700}.bottom-sheet-close{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-tertiary);transition:all var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex}.bottom-sheet-close:hover{background:var(--bg-input);color:var(--text-primary)}.bottom-sheet-content{padding:0 var(--space-lg) var(--space-lg);-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.dnd-settings{gap:var(--space-lg);padding:var(--space-lg);flex-direction:column;display:flex}.dnd-settings__section{gap:var(--space-md);flex-direction:column;display:flex}.dnd-settings__section-title{font-family:var(--font-display);color:var(--text-primary);font-size:1.15rem;font-weight:600}.dnd-settings__row{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;display:flex}.dnd-settings__row-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.dnd-settings__label{color:var(--text-primary);font-size:.9rem;font-weight:600}.dnd-settings__sublabel{color:var(--text-tertiary);font-size:.78rem;line-height:1.4}.dnd-settings__toggle{cursor:pointer;flex-shrink:0;width:40px;height:22px;position:relative}.dnd-settings__toggle input{opacity:0;width:0;height:0;position:absolute}.dnd-settings__toggle-track{border-radius:var(--radius-full);background:var(--bg-tertiary);transition:background var(--duration-normal) var(--ease-out);position:absolute;inset:0}.dnd-settings__toggle input:checked+.dnd-settings__toggle-track{background:var(--accent-primary)}.dnd-settings__toggle-thumb{width:18px;height:18px;transition:transform var(--duration-normal) var(--ease-spring);pointer-events:none;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.dnd-settings__toggle input:checked~.dnd-settings__toggle-thumb{transform:translate(18px)}.dnd-settings__permission-btn{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);color:var(--accent-primary);background:var(--accent-primary-soft);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast), color var(--duration-fast);white-space:nowrap;border:none;font-size:.8rem;font-weight:600;display:inline-flex}.dnd-settings__permission-btn:hover{background:var(--accent-primary);color:var(--text-inverse)}.dnd-settings__permission-btn:disabled{opacity:.5;cursor:default}.dnd-settings__permission-btn:disabled:hover{background:var(--accent-primary-soft);color:var(--accent-primary)}.dnd-settings__volume-row{align-items:center;gap:var(--space-md);padding:0 0 var(--space-xs);display:flex}.dnd-settings__volume-label{color:var(--text-tertiary);text-align:right;font-variant-numeric:tabular-nums;min-width:28px;font-size:.78rem}.dnd-settings__volume-slider{appearance:none;border-radius:var(--radius-full);background:var(--bg-tertiary);cursor:pointer;outline:none;flex:1;height:4px}.dnd-settings__volume-slider::-webkit-slider-thumb{appearance:none;background:var(--accent-primary);cursor:pointer;width:16px;height:16px;transition:transform var(--duration-fast) var(--ease-spring);border-radius:50%;box-shadow:0 1px 4px #0003}.dnd-settings__volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.dnd-settings__volume-slider::-moz-range-thumb{background:var(--accent-primary);cursor:pointer;border:none;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #0003}.dnd-settings__volume-slider::-moz-range-track{border-radius:var(--radius-full);background:var(--bg-tertiary);height:4px}.dnd-settings__schedule{gap:var(--space-sm);padding-top:var(--space-xs);flex-direction:column;display:flex}.dnd-settings__presets{gap:var(--space-sm);flex-wrap:wrap;display:flex}.dnd-settings__preset-btn{padding:var(--space-xs) var(--space-sm);color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast), color var(--duration-fast), border-color var(--duration-fast);white-space:nowrap;font-size:.78rem;font-weight:600}.dnd-settings__preset-btn:hover{background:var(--bg-surface-hover);border-color:var(--border-hover)}.dnd-settings__preset-btn--active{background:var(--accent-primary-soft);color:var(--accent-primary);border-color:var(--accent-primary)}.dnd-settings__time-inputs{align-items:center;gap:var(--space-sm);display:flex}.dnd-settings__time-input{width:100px;padding:var(--space-xs) var(--space-sm);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);text-align:center;transition:border-color var(--duration-fast);font-size:.85rem;font-weight:500}.dnd-settings__time-input:focus{border-color:var(--accent-primary);outline:none}.dnd-settings__time-separator{color:var(--text-tertiary);font-size:.85rem;font-weight:500}.dnd-settings__divider{background:var(--border-color);height:1px;margin:var(--space-xs) 0;border:none}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:10;flex-direction:column;height:100dvh;display:flex;position:relative}.sidebar-header{padding:var(--space-md) var(--space-md) 0;flex-shrink:0}.sidebar-header-top{margin-bottom:var(--space-md);padding:0 var(--space-xs);justify-content:space-between;align-items:center;display:flex}.sidebar-brand{align-items:center;gap:var(--space-sm);display:flex}.sidebar-brand-icon{display:flex}.sidebar-brand-text{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;font-size:1.35rem;font-weight:700}.sidebar-settings-btn{border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-tertiary);transition:all var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex}.sidebar-settings-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-search{align-items:center;gap:var(--space-sm);height:40px;padding:0 var(--space-md);background:var(--bg-input);border-radius:var(--radius-md);margin-bottom:var(--space-sm);transition:all var(--duration-fast) var(--ease-out);display:flex;position:relative}.sidebar-search:focus-within{background:var(--bg-surface);box-shadow:0 0 0 2px var(--accent-primary-soft)}.sidebar-search-icon{color:var(--text-tertiary);flex-shrink:0}.sidebar-search input{flex:1;height:100%;font-size:.87rem}.sidebar-search input::placeholder{color:var(--text-tertiary)}.sidebar-search-clear{background:var(--bg-tertiary);width:32px;height:32px;color:var(--text-tertiary);border-radius:50%;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.sidebar-dropdown{padding:var(--space-xs) var(--space-md);overflow:hidden}.sidebar-dropdown-item{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--duration-fast);font-size:.87rem;display:flex}.sidebar-dropdown-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-dropdown-item--danger:hover{color:var(--accent-danger)}.sidebar-dropdown-divider{background:var(--border-color);height:1px;margin:var(--space-xs) 0}.sidebar-new-group{gap:var(--space-xs);padding:var(--space-xs) var(--space-md);display:flex}.sidebar-new-group-btn{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);color:var(--accent-primary);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out);flex:1;font-size:.85rem;font-weight:600;display:flex}.sidebar-new-group-btn:hover{background:var(--accent-primary-soft)}.sidebar-chats{padding:var(--space-xs) var(--space-sm);flex:1;overflow-y:auto}.sidebar-chat{align-items:center;gap:var(--space-md);width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);text-align:left;transition:all var(--duration-fast) var(--ease-out);cursor:pointer;display:flex}.sidebar-chat:hover{background:var(--bg-surface-hover)}.sidebar-chat.active{background:var(--accent-primary-soft)}.sidebar-chat-body{flex:1;min-width:0}.sidebar-chat-top{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:2px;display:flex}.sidebar-chat-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:.93rem;font-weight:600;display:flex;overflow:hidden}.sidebar-chat-pin{color:var(--accent-secondary);flex-shrink:0;transform:rotate(45deg)}.sidebar-chat-group-icon{color:var(--accent-primary);flex-shrink:0}.sidebar-chat-time{color:var(--text-tertiary);flex-shrink:0;font-size:.75rem;font-weight:500}.sidebar-chat-bottom{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.sidebar-chat-preview{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.82rem;overflow:hidden}.sidebar-chat-badge{min-width:20px;height:20px;color:var(--badge-text);background:var(--badge-bg);border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;padding:0 6px;font-size:.7rem;font-weight:700;display:flex}.sidebar-footer{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-color);flex-shrink:0;display:flex}.sidebar-footer-info{flex-direction:column;display:flex}.sidebar-footer-name{color:var(--text-primary);font-size:.87rem;font-weight:600}.sidebar-footer-role{color:var(--text-tertiary);font-size:.75rem}@media (width<=768px){.sidebar{width:100%;height:100%;padding-bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom));border-right:none}.sidebar-header{padding-top:calc(var(--space-md) + var(--safe-area-top))}.sidebar-search{border-radius:var(--radius-lg);height:44px;margin:0 var(--space-sm) var(--space-sm)}.sidebar-chat{padding:var(--space-md) var(--space-md);gap:var(--space-md);border-radius:var(--radius-lg);min-height:72px}.sidebar-chat .avatar{width:52px;height:52px}.sidebar-chat .avatar-initials,.sidebar-chat-name{font-size:1rem}.sidebar-chat-preview{font-size:.87rem}.sidebar-chat-badge{min-width:22px;height:22px;font-size:.75rem}.sidebar-new-group-btn{padding:var(--space-md);font-size:.9rem}.sidebar-footer{display:none}.sidebar-dropdown{padding:var(--space-xs) var(--space-sm)}.sidebar-dropdown-item{padding:var(--space-md);border-radius:var(--radius-md);font-size:.93rem}}.sidebar-new-chat-overlay{z-index:250;background:var(--bg-secondary);position:fixed;inset:0}.sidebar-new-chat-panel{flex-direction:column;height:100dvh;display:flex}.sidebar-new-chat-header{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-md);padding-top:calc(var(--space-md) + var(--safe-area-top));border-bottom:1px solid var(--border-color);flex-shrink:0;display:flex}.sidebar-new-chat-back{border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-secondary);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;display:flex}.sidebar-new-chat-back:active{background:var(--bg-tertiary)}.sidebar-new-chat-title{color:var(--text-primary);font-size:1.1rem;font-weight:700}.sidebar-new-chat-list{padding:var(--space-sm);-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.sidebar-new-chat-user{align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md);border-radius:var(--radius-lg);text-align:left;min-height:64px;transition:background var(--duration-fast) var(--ease-out);-webkit-tap-highlight-color:transparent;display:flex}.sidebar-new-chat-user:hover{background:var(--bg-surface-hover)}.sidebar-new-chat-user:active{background:var(--accent-primary-soft)}.sidebar-new-chat-user-info{flex-direction:column;min-width:0;display:flex}.sidebar-new-chat-user-name{color:var(--text-primary);font-size:1rem;font-weight:600}.sidebar-new-chat-user-role{color:var(--text-tertiary);font-size:.82rem}.sidebar-new-chat-empty{padding:var(--space-2xl) var(--space-lg);color:var(--text-tertiary);text-align:center;font-size:.9rem}.bottom-nav{display:none}@media (width<=768px){.bottom-nav{height:calc(64px + var(--safe-area-bottom,0px));padding-bottom:var(--safe-area-bottom,0px);background:var(--bg-surface);border-top:1px solid var(--border-color);-webkit-backdrop-filter:blur(20px);z-index:100;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-tab{min-height:48px;color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-out);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 0;display:flex;position:relative}.bottom-nav-tab.active{color:var(--accent-primary)}.bottom-nav-indicator{background:var(--accent-primary);width:6px;height:6px;animation:bottomNavDotIn var(--duration-fast) var(--ease-spring);border-radius:50%;position:absolute;top:2px;left:50%;transform:translate(-50%)scaleX(1)}@keyframes bottomNavDotIn{0%{transform:translate(-50%)scale(0)}to{transform:translate(-50%)scale(1)}}.bottom-nav-icon-wrap{width:28px;height:28px;transition:transform var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex;position:relative}.bottom-nav-tab.active .bottom-nav-icon-wrap{transform:scale(1.1)}.bottom-nav-badge{color:#fff;background:var(--accent-danger,#c04b4b);border-radius:var(--radius-full);justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.65rem;font-weight:700;line-height:1;display:flex;position:absolute;top:-4px;right:-10px}.bottom-nav-label{text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:600;line-height:1}}.chat-header{align-items:center;gap:var(--space-sm);height:var(--header-height);padding:0 var(--space-lg);background:var(--bg-surface);border-bottom:1px solid var(--border-color);animation:fadeIn .3s var(--ease-out);flex-shrink:0;display:flex}.chat-header-back{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-secondary);transition:all var(--duration-fast);justify-content:center;align-items:center;display:none}.chat-header-back:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.chat-header-info{align-items:center;gap:var(--space-md);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);transition:background var(--duration-fast);cursor:pointer;flex:1;display:flex}.chat-header-info:hover{background:var(--bg-surface-hover)}.chat-header-text{text-align:left;flex-direction:column;display:flex}.chat-header-name{color:var(--text-primary);font-size:.95rem;font-weight:700}.chat-header-status{color:var(--text-tertiary);transition:color var(--duration-fast);font-size:.78rem}.chat-header-status.online{color:var(--accent-success)}.chat-header-actions{gap:var(--space-xs);display:flex}.chat-header-action{border-radius:var(--radius-md);width:40px;height:40px;color:var(--text-secondary);transition:all var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex}.chat-header-action:hover:not(:disabled){background:var(--accent-primary-soft);color:var(--accent-primary)}.chat-header-action:disabled{opacity:.3;cursor:not-allowed}@media (width<=768px){.chat-header{padding:0 var(--space-sm);padding-top:var(--safe-area-top);height:calc(var(--header-height) + var(--safe-area-top))}.chat-header-back{width:44px;height:44px;display:flex}.chat-header-name{font-size:1rem}.chat-header-action{width:44px;height:44px}}.message-menu-backdrop{z-index:999;background:var(--bg-overlay);opacity:.3;pointer-events:none;position:fixed;inset:0}.message-menu{z-index:1000;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);width:200px;box-shadow:var(--shadow-lg);flex-direction:column;padding:8px;display:flex;position:fixed}.message-menu-item{align-items:center;gap:var(--space-sm);height:44px;padding:0 var(--space-md);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;font-size:.875rem;font-weight:500;display:flex}.message-menu-item:hover{background:var(--accent-primary-soft);color:var(--accent-primary)}.message-menu-item:active{transform:scale(.98)}.message-menu-item--danger{color:var(--accent-danger)}.message-menu-item--danger:hover{color:var(--accent-danger);background:#c04b4b1a}.message-menu-item svg{opacity:.85;flex-shrink:0}.message-menu-item:hover svg{opacity:1}@media (width<=768px){.message-menu-backdrop{z-index:300}.message-menu{bottom:calc(16px + env(safe-area-inset-bottom,0px));border-radius:var(--radius-xl);width:auto;padding:var(--space-sm);z-index:301;position:fixed;top:auto;left:16px;right:16px}.message-menu-item{border-radius:var(--radius-md);height:52px;padding:0 var(--space-lg);font-size:.95rem}}.scroll-to-bottom{bottom:var(--space-lg);right:var(--space-lg);z-index:10;background:var(--accent-primary);color:#fff;cursor:pointer;width:44px;height:44px;box-shadow:var(--shadow-md);transition:background var(--duration-fast) var(--ease-out);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.scroll-to-bottom:hover{background:var(--accent-primary-hover)}.scroll-to-bottom:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.scroll-to-bottom-badge{border-radius:var(--radius-full);background:var(--badge-bg);min-width:20px;height:20px;color:var(--badge-text);font-family:var(--font-body);text-align:center;box-shadow:0 0 0 2px var(--bg-chat);padding:0 5px;font-size:.65rem;font-weight:700;line-height:20px;position:absolute;top:-4px;right:-4px}.typing-indicator{align-items:flex-start;gap:var(--space-xs);padding:0 var(--space-md) var(--space-sm);flex-direction:column;display:flex}.typing-indicator-bubble{background:var(--msg-other-bg);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-sm);box-shadow:var(--shadow-sm);align-items:center;gap:4px;padding:10px 14px;display:flex}.typing-dot{background:var(--text-tertiary);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite typingBounce;display:block}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.typing-indicator-text{font-family:var(--font-body);color:var(--text-tertiary);padding-left:var(--space-xs);font-size:.7rem}.mention-tag{background:var(--accent-primary-soft);color:var(--accent-primary);cursor:pointer;transition:opacity var(--duration-fast) var(--ease-out);border-radius:3px;padding:0 4px;font-weight:600}.mention-tag:hover{opacity:.85}.mention-tag--self{background:var(--accent-primary);color:#fff}.media-viewer-overlay{z-index:9500;touch-action:none;-webkit-user-select:none;user-select:none;scrollbar-width:none;background:#000000f2;position:fixed;inset:0;overflow:hidden}.media-viewer-overlay::-webkit-scrollbar{display:none}.media-viewer-top{z-index:2;padding:var(--space-md) var(--space-lg);padding-top:calc(var(--space-md) + var(--safe-area-top,0px));pointer-events:auto;background:linear-gradient(#0009 0%,#0000 100%);justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.media-viewer-info{flex-direction:column;gap:2px;min-width:0;display:flex}.media-viewer-sender{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.media-viewer-time{color:#fff9;font-size:.78rem}.media-viewer-close{border-radius:var(--radius-full);color:#fff;cursor:pointer;width:44px;height:44px;transition:background var(--duration-fast) var(--ease-out);background:#ffffff1a;flex-shrink:0;justify-content:center;align-items:center;display:flex}.media-viewer-close:hover{background:#fff3}.media-viewer-content{z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.media-viewer-track{cursor:grab;align-items:center;height:100%;display:flex}.media-viewer-track:active{cursor:grabbing}.media-viewer-slide{width:100vw;height:100%;padding:60px var(--space-lg);flex-shrink:0;justify-content:center;align-items:center;display:flex}.media-viewer-image{object-fit:contain;border-radius:var(--radius-sm);transform-origin:50%;max-width:100%;max-height:100%;transition:opacity var(--duration-normal) var(--ease-out)}.media-viewer-video{object-fit:contain;border-radius:var(--radius-sm);outline:none;max-width:100%;max-height:100%}.media-viewer-loader{z-index:0;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.media-viewer-spinner{border:3px solid #ffffff26;border-top-color:#fff;border-radius:50%;width:40px;height:40px;animation:.8s linear infinite media-viewer-spin}@keyframes media-viewer-spin{to{transform:rotate(360deg)}}.media-viewer-bottom{z-index:2;align-items:center;gap:var(--space-sm);padding:var(--space-lg);padding-bottom:calc(var(--space-lg) + var(--safe-area-bottom,0px));pointer-events:auto;background:linear-gradient(#0000 0%,#0009 100%);flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.media-viewer-caption{color:#ffffffe6;text-align:center;max-width:600px;font-size:.9rem;line-height:1.45}.media-viewer-counter{color:#ffffff80;font-variant-numeric:tabular-nums;font-size:.82rem}.media-viewer-nav{z-index:3;border-radius:var(--radius-full);color:#ffffff80;cursor:pointer;width:44px;height:44px;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out);opacity:0;background:#ffffff14;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.media-viewer-overlay:hover .media-viewer-nav{opacity:1}.media-viewer-nav:hover{color:#fff;background:#ffffff2e}.media-viewer-nav--prev{left:var(--space-md)}.media-viewer-nav--next{right:var(--space-md)}@media (width<=768px){.media-viewer-slide{padding:56px var(--space-sm)}.media-viewer-top{padding:var(--space-sm) var(--space-md);padding-top:calc(var(--space-sm) + var(--safe-area-top,0px))}.media-viewer-bottom{padding:var(--space-md);padding-bottom:calc(var(--space-md) + var(--safe-area-bottom,0px))}.media-viewer-nav{opacity:.7;width:36px;height:36px}.media-viewer-nav--prev{left:var(--space-xs)}.media-viewer-nav--next{right:var(--space-xs)}}.message-list{background:var(--bg-chat);flex:1;position:relative;overflow:hidden auto}.message-list:before{content:"";pointer-events:none;background:radial-gradient(ellipse 80% 50% at 20% 80%, var(--accent-primary-soft), transparent), radial-gradient(ellipse 60% 40% at 80% 20%, var(--accent-secondary-soft), transparent);opacity:.5;position:absolute;inset:0}.message-list-inner{padding:var(--space-md) var(--space-xl);flex-direction:column;justify-content:flex-end;min-height:100%;display:flex;position:relative}.message-date-divider{margin:var(--space-lg) 0 var(--space-md);justify-content:center;display:flex}.message-date-divider span{padding:var(--space-xs) var(--space-md);color:var(--text-tertiary);background:var(--bg-surface);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);letter-spacing:.02em;font-size:.75rem;font-weight:600}.message{gap:var(--space-sm);margin-bottom:var(--space-xs);max-width:75%;display:flex}.message--own{flex-direction:row-reverse;align-self:flex-end}.message--other{align-self:flex-start}.message--continuation{margin-top:-2px}.message-avatar{flex-shrink:0;align-self:flex-end;margin-bottom:2px}.message-avatar-spacer{flex-shrink:0;width:32px}.message-bubble{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);word-wrap:break-word;box-shadow:var(--shadow-sm);line-height:1.45;position:relative}.message--own .message-bubble{background:var(--msg-own-bg);color:var(--msg-own-text);border-bottom-right-radius:var(--radius-sm)}.message--own.message--continuation .message-bubble{border-top-right-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}.message--other .message-bubble{background:var(--msg-other-bg);color:var(--msg-other-text);border-bottom-left-radius:var(--radius-sm)}.message--other.message--continuation .message-bubble{border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm)}.message-sender{color:var(--accent-primary);margin-bottom:2px;font-size:.78rem;font-weight:700;display:block}.message--own .message-sender{color:#ffffffb3}.message-text{font-size:.9rem}.message-meta{float:right;margin-left:var(--space-md);align-items:center;gap:3px;margin-top:4px;display:inline-flex}.message-edited{opacity:.5;margin-left:4px;font-size:.68rem;font-style:italic}.message-time{opacity:.6;font-size:.68rem;font-weight:500}.message-status{opacity:.7;display:flex}.message--own .message-status{color:#fffc}.message-bubble:after{content:"";border-radius:inherit;opacity:0;transition:opacity var(--duration-fast);pointer-events:none;position:absolute;inset:0}.message--other .message-bubble:hover:after{opacity:1;background:#00000005}.message--own .message-bubble:hover:after{opacity:1;background:#ffffff0d}.message-reply-quote{gap:var(--space-sm);padding:var(--space-xs) 0 var(--space-sm);margin-bottom:var(--space-xs);cursor:pointer;display:flex}.message-reply-bar{background:var(--accent-primary);border-radius:2px;flex-shrink:0;width:3px}.message--own .message-reply-bar{background:#ffffff80}.message-reply-content{flex-direction:column;min-width:0;display:flex}.message-reply-name{color:var(--accent-primary);font-size:.72rem;font-weight:700}.message--own .message-reply-name{color:#ffffffb3}.message-reply-text{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:.78rem;overflow:hidden}.message--own .message-reply-text{color:#ffffff80}.voice-inline{align-items:center;gap:var(--space-sm);min-width:180px;padding:2px 0;display:flex}.voice-inline-btn{background:var(--accent-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.voice-inline--own .voice-inline-btn{background:#ffffff40}.voice-inline-wave{flex:1;align-items:center;gap:1.5px;height:28px;display:flex}.voice-inline-bar{background:var(--text-tertiary);opacity:.3;border-radius:2px;width:2.5px;transition:opacity .15s}.voice-inline-bar--filled{opacity:1;background:var(--accent-primary)}.voice-inline--own .voice-inline-bar{background:#ffffff4d}.voice-inline--own .voice-inline-bar--filled{background:#fff}.voice-inline-time{opacity:.6;white-space:nowrap;min-width:30px;font-size:.7rem;font-weight:600}.message-media{margin:var(--space-xs) 0;border-radius:var(--radius-md);overflow:hidden}.message-media-img{border-radius:var(--radius-md);cursor:pointer;max-width:280px;max-height:300px;display:block}.message-media-video{border-radius:var(--radius-md);max-width:280px;max-height:300px;display:block}.message-voice{align-items:center;gap:var(--space-xs);display:flex}.message-voice audio{border-radius:var(--radius-md)}.message-voice-duration{opacity:.6;white-space:nowrap;font-size:.75rem}.message-file-link{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);word-break:break-all;background:#0000000d;font-size:.85rem;text-decoration:underline;display:inline-flex}.message--own .message-file-link{color:inherit;background:#ffffff1a}@media (width<=768px){.message-media-img,.message-media-video{max-width:220px}.message{max-width:88%}.message-list-inner{padding:var(--space-sm) var(--space-md)}.message-bubble{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);font-size:.93rem;line-height:1.5}.message-text{font-size:.95rem}.message-bubble:active{opacity:.85;transition:all .1s;transform:scale(.98)}}.emoji-picker{bottom:100%;right:var(--space-lg);width:320px;height:380px;margin-bottom:var(--space-sm);background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;transform-origin:100% 100%;flex-direction:column;display:flex;position:absolute;overflow:hidden}.emoji-picker-search{padding:var(--space-sm) var(--space-sm) 0;flex-shrink:0}.emoji-picker-search input{width:100%;padding:var(--space-sm) var(--space-md);color:var(--text-primary);background:var(--bg-input);border-radius:var(--radius-md);font-size:.82rem;line-height:1.4;font-family:var(--font-body);transition:all var(--duration-fast) var(--ease-out);border:1.5px solid #0000}.emoji-picker-search input::placeholder{color:var(--text-tertiary)}.emoji-picker-search input:focus{border-color:var(--accent-primary);background:var(--bg-surface);box-shadow:0 0 0 3px var(--accent-primary-soft);outline:none}.emoji-picker-grid-container{padding:var(--space-xs) var(--space-sm);flex:1;overflow-y:auto}.emoji-picker-category-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);padding:var(--space-sm) var(--space-xs) var(--space-xs);-webkit-user-select:none;user-select:none;font-size:.7rem;font-weight:700}.emoji-picker-grid{grid-template-columns:repeat(8,1fr);gap:2px;display:grid}.emoji-picker-emoji{border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;width:36px;height:36px;transition:transform var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;font-size:1.35rem;line-height:1;display:flex}.emoji-picker-emoji:hover{background:var(--accent-primary-soft);transform:scale(1.2)}.emoji-picker-emoji:active{transform:scale(.95)}.emoji-picker-tabs{border-top:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;display:flex}.emoji-picker-tab{height:40px;color:var(--text-tertiary);transition:color var(--duration-fast) var(--ease-out);flex:1;justify-content:center;align-items:center;display:flex;position:relative}.emoji-picker-tab:hover{color:var(--text-secondary)}.emoji-picker-tab.active{color:var(--accent-primary)}.emoji-picker-tab.active:after{content:"";background:var(--accent-primary);border-radius:0 0 2px 2px;height:2px;position:absolute;top:-1px;left:20%;right:20%}.emoji-picker-empty{padding:var(--space-xl);justify-content:center;align-items:center;gap:var(--space-sm);color:var(--text-tertiary);text-align:center;-webkit-user-select:none;user-select:none;flex-direction:column;font-size:.82rem;display:flex}.emoji-picker-empty-icon{opacity:.5;font-size:2rem}@media (width<=768px){.emoji-picker{border-radius:var(--radius-xl) var(--radius-xl) 0 0;z-index:500;width:100%;max-width:100%;height:55vh;margin-bottom:0;position:fixed;bottom:0;left:0;right:0}.emoji-picker-grid{padding:var(--space-xs) 0;grid-template-columns:repeat(7,1fr);gap:4px}.emoji-picker-emoji{aspect-ratio:1;width:100%;height:auto;font-size:1.6rem}.emoji-picker-tabs{padding-bottom:env(safe-area-inset-bottom,0px)}.emoji-picker-tab{height:44px}}.reply-preview{align-items:center;gap:var(--space-sm);height:48px;padding:var(--space-sm) var(--space-lg);background:var(--bg-surface);border-bottom:1px solid var(--border-color);display:flex;overflow:hidden}.reply-preview-accent{border-radius:var(--radius-full);background:var(--accent-primary);flex-shrink:0;width:4px;height:28px}.reply-preview-content{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.reply-preview-sender{color:var(--accent-primary);font-size:.78rem;font-weight:700;line-height:1.2}.reply-preview-text{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;line-height:1.3;overflow:hidden}.reply-preview-close{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:flex}.reply-preview-close:hover{color:var(--text-secondary);background:var(--bg-surface-hover)}.reply-preview-close:active{transform:scale(.92)}@media (width<=768px){.reply-preview{padding:var(--space-sm) var(--space-md);margin:0 var(--space-sm);border-radius:var(--radius-md)}.reply-preview-text{font-size:.87rem}}.voice-recorder{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-surface);border-top:1px solid var(--border-color);display:flex;position:relative;overflow:hidden}.voice-recorder:before{content:"";pointer-events:none;background:#c83c3c0d;position:absolute;inset:0}.voice-recorder__indicator{align-items:center;gap:var(--space-sm);flex-shrink:0;display:flex}.voice-recorder__dot{border-radius:var(--radius-full);background:var(--accent-danger);width:10px;height:10px;animation:1.2s ease-in-out infinite voiceRecorderPulse}@keyframes voiceRecorderPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.voice-recorder__label{color:var(--accent-danger);white-space:nowrap;font-size:.8125rem;font-weight:500}.voice-recorder__waveform{flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;height:36px;display:flex}.voice-recorder__bar{border-radius:var(--radius-full);background:var(--accent-primary);opacity:.6;width:3px;animation:voiceRecorderBar var(--bar-duration) ease-in-out infinite alternate;animation-delay:var(--bar-delay);will-change:height}@keyframes voiceRecorderBar{0%{height:var(--bar-min)}to{height:var(--bar-max)}}.voice-recorder__timer{font-variant-numeric:tabular-nums;color:var(--text-primary);text-align:center;min-width:40px;transition:color var(--duration-fast) var(--ease-out);flex-shrink:0;font-size:.875rem;font-weight:600}.voice-recorder__timer--warning{color:var(--accent-danger)}.voice-recorder__actions{align-items:center;gap:var(--space-sm);flex-shrink:0;display:flex}.voice-recorder__btn-cancel{border-radius:var(--radius-full);background:var(--bg-tertiary);width:36px;height:36px;color:var(--text-secondary);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex}.voice-recorder__btn-cancel:hover{background:var(--accent-danger);color:var(--text-inverse)}.voice-recorder__btn-send{border-radius:var(--radius-full);background:var(--accent-primary);width:36px;height:36px;color:var(--text-inverse);transition:background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);justify-content:center;align-items:center;display:flex}.voice-recorder__btn-send:hover{background:var(--accent-primary-hover);transform:scale(1.05)}@media (width<=768px){.voice-recorder{padding:var(--space-md);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom,0px));min-height:64px}.voice-recorder__waveform{gap:3px}.voice-recorder__timer{font-size:1.1rem}.voice-recorder__btn-cancel,.voice-recorder__btn-send{width:44px;height:44px}}.video-recorder-backdrop{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.video-recorder{background:var(--bg-surface);border-radius:var(--radius-lg);width:92vw;max-width:480px;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:relative;overflow:hidden}.video-recorder__close{top:var(--space-sm);right:var(--space-sm);z-index:2;border-radius:var(--radius-full);color:#fff;width:32px;height:32px;transition:background var(--duration-fast) var(--ease-out);background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute}.video-recorder__close:hover{background:#000000a6}.video-recorder__preview{aspect-ratio:16/9;width:100%;color:var(--text-tertiary);transition:border-color var(--duration-fast) var(--ease-out);background:#111;border:3px solid #0000;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.video-recorder__preview--recording{border-color:var(--accent-danger);animation:1.4s ease-in-out infinite videoRecorderBorderPulse}@keyframes videoRecorderBorderPulse{0%,to{border-color:var(--accent-danger)}50%{border-color:#c04b4b59}}.video-recorder__preview-placeholder{align-items:center;gap:var(--space-sm);color:#ffffff59;flex-direction:column;display:flex}.video-recorder__preview-placeholder span{font-size:.8125rem}.video-recorder__controls{justify-content:center;align-items:center;gap:var(--space-lg);padding:var(--space-lg);background:var(--bg-surface);display:flex}.video-recorder__record-btn{border-radius:var(--radius-full);border:3px solid var(--accent-danger);width:64px;height:64px;transition:transform var(--duration-fast) var(--ease-spring);background:0 0;justify-content:center;align-items:center;display:flex;position:relative}.video-recorder__record-btn:hover{transform:scale(1.06)}.video-recorder__record-btn:active{transform:scale(.95)}.video-recorder__record-inner{border-radius:var(--radius-full);background:var(--accent-danger);width:28px;height:28px;transition:border-radius var(--duration-normal) var(--ease-out), width var(--duration-normal) var(--ease-out), height var(--duration-normal) var(--ease-out)}.video-recorder__record-btn--recording .video-recorder__record-inner{border-radius:4px;width:20px;height:20px}.video-recorder__record-btn--recording:after{content:"";border-radius:var(--radius-full);border:2px solid var(--accent-danger);animation:1.6s ease-out infinite videoRecorderRingPulse;position:absolute;inset:-6px}@keyframes videoRecorderRingPulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.25)}}.video-recorder__timer{font-variant-numeric:tabular-nums;color:var(--text-primary);text-align:center;min-width:44px;transition:color var(--duration-fast) var(--ease-out);font-size:.875rem;font-weight:600}.video-recorder__timer--warning{color:var(--accent-danger)}.video-recorder__timer-spacer{min-width:44px}.video-recorder__done-controls{justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--bg-surface);display:flex}.video-recorder__btn{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);transition:background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-spring);font-size:.875rem;font-weight:600;display:flex}.video-recorder__btn:hover{transform:scale(1.03)}.video-recorder__btn--retake{background:var(--bg-tertiary);color:var(--text-primary)}.video-recorder__btn--retake:hover{background:var(--bg-input)}.video-recorder__btn--send{background:var(--accent-primary);color:var(--text-inverse)}.video-recorder__btn--send:hover{background:var(--accent-primary-hover)}.video-recorder__preview-recorded{background:#00000059;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.video-recorder__play-icon{border-radius:var(--radius-full);width:48px;height:48px;color:var(--accent-primary);background:#ffffffd9;justify-content:center;align-items:center;display:flex}@media (width<=768px){.video-recorder{border-radius:0;width:100%;max-width:100%;height:100%;max-height:100%}.video-recorder__controls{padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom,0px))}}.mention-suggestions{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:260px;max-height:220px;box-shadow:var(--shadow-lg);z-index:50;padding:var(--space-xs) 0;position:absolute;overflow-y:auto}.mention-suggestions-empty{padding:var(--space-sm) var(--space-md);color:var(--text-tertiary);text-align:center;font-size:.82rem}.mention-suggestion-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);text-align:left;width:100%;color:inherit;font:inherit;background:0 0;border:none;display:flex}.mention-suggestion-item:hover,.mention-suggestion-item--highlighted{background:var(--accent-primary-soft)}.mention-suggestion-info{flex-direction:column;min-width:0;display:flex}.mention-suggestion-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:600;overflow:hidden}.mention-suggestion-role{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.media-preview{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);background:var(--bg-surface);border-bottom:1px solid var(--border-color);display:flex;overflow:hidden}.media-preview-thumb{border-radius:var(--radius-md);background:var(--bg-tertiary);flex-shrink:0;width:80px;height:80px;overflow:hidden}.media-preview-thumb img{object-fit:cover;width:100%;height:100%;display:block}.media-preview-thumb--video{position:relative}.media-preview-thumb--video:after{content:"";border-radius:var(--radius-md);background:#00000040;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.media-preview-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.media-preview-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.media-preview-size{color:var(--text-secondary);align-items:center;gap:4px;font-size:.78rem;display:flex}.media-preview-size .compressed{color:var(--accent-success);font-weight:600}.media-preview-size .arrow{color:var(--text-tertiary)}.media-preview-actions{align-items:center;gap:var(--space-sm);flex-shrink:0;display:flex}.media-preview-send{border-radius:var(--radius-full);background:var(--accent-primary);color:#fff;cursor:pointer;width:40px;height:40px;transition:all var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex;box-shadow:0 2px 8px #c85a3a40}.media-preview-send:hover{background:var(--accent-primary-hover);transform:scale(1.05);box-shadow:0 4px 16px #c85a3a59}.media-preview-send:active{transform:scale(.95)}.media-preview-cancel{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex}.media-preview-cancel:hover{color:var(--text-secondary);background:var(--bg-surface-hover)}.media-preview-cancel:active{transform:scale(.92)}@media (width<=768px){.media-preview{padding:var(--space-sm) var(--space-md);margin:0 var(--space-sm);border-radius:var(--radius-md)}.media-preview-thumb{width:64px;height:64px}.media-preview-send{width:44px;height:44px}}.chat-input-wrapper{background:var(--bg-surface);border-top:1px solid var(--border-color);padding:var(--space-sm) var(--space-lg);flex-shrink:0;position:relative}.chat-input{align-items:flex-end;gap:var(--space-xs);min-height:48px;display:flex}.chat-input-btn{border-radius:var(--radius-md);width:40px;height:40px;color:var(--text-tertiary);transition:all var(--duration-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-input-btn:hover{color:var(--text-secondary);background:var(--bg-surface-hover)}.chat-input-btn.active{color:var(--accent-primary);background:var(--accent-primary-soft)}.chat-input-field{flex:1;align-items:flex-end;display:flex}.chat-input-field textarea{resize:none;width:100%;padding:var(--space-sm) var(--space-md);color:var(--text-primary);background:var(--bg-input);border-radius:var(--radius-lg);max-height:120px;font-size:.9rem;line-height:1.45;font-family:var(--font-body);transition:all var(--duration-fast) var(--ease-out);border:1.5px solid #0000}.chat-input-field textarea::placeholder{color:var(--text-tertiary)}.chat-input-field textarea:focus{border-color:var(--accent-primary);background:var(--bg-surface);box-shadow:0 0 0 3px var(--accent-primary-soft);outline:none}.chat-input-send{border-radius:var(--radius-full);background:var(--accent-primary);color:#fff;width:40px;height:40px;transition:all var(--duration-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 2px 8px #c85a3a40}.chat-input-send:hover{background:var(--accent-primary-hover);transform:scale(1.05);box-shadow:0 4px 16px #c85a3a59}.chat-input-send:active{transform:scale(.95)}.chat-input-mic:hover{color:var(--accent-primary)}.chat-attach-menu{bottom:100%;left:var(--space-lg);gap:var(--space-sm);padding:var(--space-sm);background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin-bottom:var(--space-sm);display:flex;position:absolute}.chat-attach-item{padding:var(--space-md);border-radius:var(--radius-md);color:#fff;transition:all var(--duration-fast);flex-direction:column;align-items:center;gap:4px;min-width:72px;font-size:.72rem;font-weight:600;display:flex}.chat-attach-item:hover{transform:translateY(-2px)}.chat-attach-item--photo{background:var(--accent-primary)}.chat-attach-item--video{background:var(--accent-secondary);color:var(--text-primary)}.chat-attach-item--file{background:#5b7ba8}@media (width<=768px){.chat-input-wrapper{padding:var(--space-sm) var(--space-sm);padding-bottom:calc(var(--space-sm) + var(--safe-area-bottom))}.chat-input{gap:var(--space-xs);min-height:52px}.chat-input-btn{width:44px;height:44px}.chat-input-field textarea{padding:var(--space-sm) var(--space-md);min-height:44px;font-size:1rem}.chat-input-send{width:44px;height:44px}.chat-attach-menu{left:var(--space-sm);right:var(--space-sm);border-radius:var(--radius-xl);width:auto;padding:var(--space-md);gap:var(--space-md)}.chat-attach-item{padding:var(--space-lg) var(--space-sm);border-radius:var(--radius-lg);flex:1;min-width:0}}.contact-panel{width:var(--contact-panel-width);background:var(--bg-secondary);border-left:1px solid var(--border-color);flex-direction:column;flex-shrink:0;height:100vh;display:flex;overflow:hidden}.contact-panel-header{height:var(--header-height);padding:0 var(--space-lg);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.contact-panel-header h3{font-size:.95rem;font-weight:700}.contact-panel-close{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-tertiary);transition:all var(--duration-fast);justify-content:center;align-items:center;display:flex}.contact-panel-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.contact-panel-content{padding:var(--space-lg);flex:1;overflow-y:auto}.contact-panel-profile{text-align:center;margin-bottom:var(--space-xl);flex-direction:column;align-items:center;display:flex}.contact-panel-name{font-family:var(--font-display);margin-top:var(--space-md);color:var(--text-primary);font-size:1.5rem;font-weight:700}.contact-panel-status{color:var(--text-tertiary);margin-top:2px;font-size:.82rem}.contact-panel-status.online{color:var(--accent-success)}.contact-panel-role{margin-top:var(--space-sm);padding:var(--space-xs) var(--space-md);color:var(--accent-primary);background:var(--accent-primary-soft);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;display:inline-block}.contact-panel-actions{justify-content:center;gap:var(--space-lg);margin-bottom:var(--space-xl);display:flex}.contact-panel-action{align-items:center;gap:var(--space-xs);padding:var(--space-sm);border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--duration-fast);flex-direction:column;font-size:.72rem;font-weight:600;display:flex}.contact-panel-action:hover{color:var(--accent-primary);background:var(--accent-primary-soft)}.contact-panel-section{margin-bottom:var(--space-xl)}.contact-panel-section-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-md);font-size:.78rem;font-weight:700}.contact-panel-info-item{padding:var(--space-sm) 0;border-bottom:1px solid var(--border-color);flex-direction:column;display:flex}.contact-panel-info-item:last-child{border-bottom:none}.contact-panel-info-label{color:var(--text-tertiary);margin-bottom:2px;font-size:.75rem;font-weight:500}.contact-panel-info-value{color:var(--text-primary);font-size:.9rem}.contact-panel-members{gap:var(--space-xs);flex-direction:column;display:flex}.contact-panel-member{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-sm);border-radius:var(--radius-md);transition:background var(--duration-fast);display:flex}.contact-panel-member:hover{background:var(--bg-tertiary)}.contact-panel-member-info{flex-direction:column;display:flex}.contact-panel-member-name{color:var(--text-primary);font-size:.87rem;font-weight:600}.contact-panel-member-role{color:var(--text-tertiary);font-size:.75rem}.contact-panel-media-grid{gap:var(--space-xs);grid-template-columns:repeat(3,1fr);display:grid}.contact-panel-media-item{aspect-ratio:1;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--duration-fast);cursor:pointer;justify-content:center;align-items:center;display:flex}.contact-panel-media-item:hover{background:var(--bg-input);color:var(--accent-primary)}.contact-panel-encryption{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md);color:var(--accent-success);border-radius:var(--radius-md);margin-top:var(--space-md);background:#5a9e6f14;font-size:.75rem;font-weight:600;display:flex}.contact-panel-backdrop{display:none}@media (width<=1024px){.contact-panel{z-index:30;box-shadow:var(--shadow-lg);position:absolute;top:0;right:0}}@media (width<=768px){.contact-panel-backdrop{z-index:199;background:#00000080;display:block;position:fixed;inset:0}.contact-panel{border-left:none;border-top:1px solid var(--border-color);z-index:200;border-radius:20px 20px 0 0;width:100%;height:auto;max-height:85vh;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.contact-panel-header{background:var(--bg-secondary);z-index:1;padding:var(--space-sm) var(--space-lg);height:auto;position:sticky;top:0}.contact-panel-header:before{content:"";background:var(--text-tertiary);width:36px;height:4px;margin:var(--space-sm) auto var(--space-md);opacity:.5;border-radius:2px;display:block}.contact-panel-content{padding:var(--space-md) var(--space-lg);padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom,0px))}.contact-panel-profile{margin-bottom:var(--space-lg)}.contact-panel-name{font-size:1.3rem}.contact-panel-actions{gap:var(--space-xl);margin-bottom:var(--space-lg)}.contact-panel-action{padding:var(--space-md);min-width:72px}.contact-panel-member{padding:var(--space-md) var(--space-sm);min-height:52px}.contact-panel-member-name{font-size:.93rem}.contact-panel-media-grid{grid-template-columns:repeat(4,1fr)}}.empty-state{background:var(--bg-chat);flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.empty-state-bg{position:absolute;inset:0}.empty-state-circle{border:1px solid var(--border-color);border-radius:50%;animation:6s ease-in-out infinite emptyPulse;position:absolute}.empty-state-circle--1{width:300px;height:300px;animation-delay:0s;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-state-circle--2{width:450px;height:450px;animation-delay:-2s;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-state-circle--3{width:600px;height:600px;animation-delay:-4s;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes emptyPulse{0%,to{opacity:.3;transform:translate(-50%,-50%)scale(1)}50%{opacity:.1;transform:translate(-50%,-50%)scale(1.05)}}.empty-state-content{text-align:center;flex-direction:column;align-items:center;display:flex;position:relative}.empty-state-icon{margin-bottom:var(--space-lg)}.empty-state-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:var(--space-sm);opacity:.7;font-size:1.8rem;font-weight:700}.empty-state-text{color:var(--text-tertiary);font-size:.9rem}@media (width<=768px){.empty-state{display:none}}.chat-view{flex:1;min-width:0;height:100dvh;display:flex;position:relative}.chat-view-main{flex-direction:column;flex:1;min-width:0;display:flex}.admin-dashboard{gap:var(--space-lg);animation:fadeIn .3s var(--ease-out);flex-direction:column;display:flex}.admin-section-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin-bottom:var(--space-xs);font-size:.7rem;font-weight:600}.admin-card-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:var(--space-md);font-size:1.15rem;font-weight:700}.admin-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.admin-empty-hint{color:var(--text-tertiary);text-align:center;padding:var(--space-lg) 0;font-size:.85rem}.admin-stats-grid{gap:var(--space-md);grid-template-columns:repeat(4,1fr);display:grid}.admin-stat-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm);gap:var(--space-sm);transition:box-shadow var(--duration-normal) var(--ease-out), border-color var(--duration-normal) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.admin-stat-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-hover)}.admin-stat-icon{border-radius:var(--radius-sm);background:var(--accent-primary-soft);width:40px;height:40px;color:var(--accent-primary);justify-content:center;align-items:center;display:flex}.admin-stat-body{flex-direction:column;gap:2px;display:flex}.admin-stat-value{color:var(--text-primary);letter-spacing:-.02em;font-size:2rem;font-weight:800;line-height:1.1}.admin-stat-label{color:var(--text-tertiary);font-size:.8rem;font-weight:500}.admin-stat-trend{top:var(--space-md);right:var(--space-md);border-radius:var(--radius-full);letter-spacing:.01em;padding:3px 8px;font-size:.72rem;font-weight:700;position:absolute}.admin-stat-trend--up{color:var(--accent-success);background:#5a9e6f1a}.admin-stat-trend--down{color:var(--accent-danger);background:#c04b4b1a}.admin-dashboard-grid{gap:var(--space-lg);grid-template-columns:1.6fr 1fr;display:grid}.admin-chart-card{min-height:280px}.admin-bar-chart{align-items:flex-end;gap:var(--space-sm);height:200px;padding-top:var(--space-sm);display:flex}.admin-bar-col{align-items:center;gap:var(--space-xs);flex-direction:column;flex:1;height:100%;display:flex}.admin-bar-value{color:var(--text-tertiary);min-height:16px;font-size:.68rem;font-weight:700}.admin-bar-track{border-radius:var(--radius-sm) var(--radius-sm) 4px 4px;background:var(--bg-tertiary);flex-direction:column;flex:1;justify-content:flex-end;width:100%;max-width:48px;display:flex;overflow:hidden}.admin-bar-fill{background:linear-gradient(180deg, var(--accent-primary), var(--accent-secondary));border-radius:var(--radius-sm) var(--radius-sm) 0 0;width:100%;min-height:4px;transition:height .6s var(--ease-out)}.admin-bar-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:600}.admin-online-users{gap:var(--space-sm);flex-direction:column;display:flex}.admin-online-user{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out);display:flex}.admin-online-user:hover{background:var(--bg-surface-hover)}.admin-online-user-info{flex-direction:column;gap:1px;display:flex}.admin-online-user-name{color:var(--text-primary);font-size:.85rem;font-weight:600}.admin-online-user-role{color:var(--text-tertiary);font-size:.72rem}.admin-activity-list{flex-direction:column;gap:0;display:flex}.admin-activity-row{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-sm);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out);display:flex}.admin-activity-row:hover{background:var(--bg-surface-hover)}.admin-activity-row:not(:last-child){border-bottom:1px solid var(--border-color)}.admin-activity-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.admin-activity-icon--info{background:var(--accent-primary-soft);color:var(--accent-primary)}.admin-activity-icon--warning{background:var(--accent-secondary-soft);color:var(--accent-secondary)}.admin-activity-icon--error{color:var(--accent-danger);background:#c04b4b1a}.admin-activity-body{flex:1;min-width:0}.admin-activity-text{color:var(--text-secondary);font-size:.82rem;line-height:1.4}.admin-activity-text strong{color:var(--text-primary);font-weight:600}.admin-activity-time{color:var(--text-tertiary);white-space:nowrap;flex-shrink:0;font-size:.72rem}@media (width<=1100px){.admin-stats-grid{grid-template-columns:repeat(2,1fr)}.admin-dashboard-grid{grid-template-columns:1fr}}.admin-users{gap:var(--space-lg);animation:fadeIn .3s var(--ease-out);flex-direction:column;display:flex}.admin-users-header{justify-content:space-between;align-items:flex-end;gap:var(--space-md);flex-wrap:wrap;display:flex}.admin-users-actions{align-items:center;gap:var(--space-sm);display:flex}.admin-users-search{align-items:center;gap:var(--space-sm);background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);transition:border-color var(--duration-fast) var(--ease-out);display:flex}.admin-users-search:focus-within{border-color:var(--accent-primary)}.admin-users-search-icon{color:var(--text-tertiary);flex-shrink:0}.admin-users-search input{color:var(--text-primary);width:180px;font-size:.85rem;font-family:var(--font-body);background:0 0;border:none}.admin-users-search input::placeholder{color:var(--text-tertiary)}.admin-btn{align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:.82rem;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap;border:none;display:inline-flex}.admin-btn--primary{background:var(--accent-primary);color:#fff}.admin-btn--primary:hover{background:var(--accent-primary-hover)}.admin-btn--ghost{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0}.admin-btn--ghost:hover{background:var(--bg-surface-hover);border-color:var(--border-hover)}.admin-btn--danger{background:var(--accent-danger);color:#fff}.admin-btn--danger:hover{opacity:.9}.admin-table-wrap{padding:0;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.85rem}.admin-table thead th{text-align:left;padding:var(--space-sm) var(--space-md);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);border-bottom:1px solid var(--border-color);white-space:nowrap;font-size:.72rem;font-weight:600;font-family:var(--font-body)}.admin-table tbody tr{transition:background var(--duration-fast) var(--ease-out)}.admin-table tbody tr:hover{background:var(--bg-surface-hover)}.admin-table tbody tr:nth-child(2n){background:var(--bg-primary)}.admin-table tbody tr:nth-child(2n):hover{background:var(--bg-surface-hover)}.admin-table tbody td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-color);color:var(--text-secondary);vertical-align:middle}.admin-table-empty{text-align:center;color:var(--text-tertiary);font-style:italic;padding:var(--space-2xl) var(--space-md)!important}.admin-user-cell{align-items:center;gap:var(--space-sm);display:flex}.admin-user-cell-info{flex-direction:column;gap:1px;display:flex}.admin-user-cell-name{color:var(--text-primary);font-size:.85rem;font-weight:600}.admin-user-cell-email{color:var(--text-tertiary);font-size:.72rem}.admin-td-role{color:var(--text-primary);font-weight:500}.admin-td-contact{font-size:.82rem}.admin-badge{border-radius:var(--radius-full);letter-spacing:.02em;white-space:nowrap;align-items:center;padding:3px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.admin-badge--online{color:var(--accent-success);background:#5a9e6f1f}.admin-badge--offline{background:var(--bg-tertiary);color:var(--text-tertiary)}.admin-badge--blocked{color:var(--accent-danger);background:#c04b4b1a}.admin-badge--role-admin{background:var(--accent-primary-soft);color:var(--accent-primary)}.admin-badge--role-member{background:var(--accent-secondary-soft);color:var(--accent-secondary)}.admin-action-buttons{align-items:center;gap:4px;display:flex}.admin-icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-tertiary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.admin-icon-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.admin-icon-btn--danger:hover{color:var(--accent-danger);background:#c04b4b1a}.admin-modal-backdrop{background:var(--bg-overlay);z-index:1000;padding:var(--space-lg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.admin-modal--sm{max-width:400px}.admin-modal-header{padding:var(--space-lg) var(--space-lg) var(--space-sm);justify-content:space-between;align-items:center;display:flex}.admin-modal-title{font-family:var(--font-display);color:var(--text-primary);font-size:1.15rem;font-weight:700}.admin-modal-close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.admin-modal-close:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.admin-modal-body{padding:var(--space-md) var(--space-lg)}.admin-confirm-text{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.admin-confirm-text strong{color:var(--text-primary)}.admin-modal-form{padding:var(--space-md) var(--space-lg) var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.admin-form-field{gap:var(--space-xs);flex-direction:column;display:flex}.admin-form-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:600}.admin-form-input,.admin-form-select{padding:var(--space-sm) var(--space-md);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.88rem;font-family:var(--font-body);transition:border-color var(--duration-fast) var(--ease-out);appearance:none}.admin-form-input:focus,.admin-form-select:focus{border-color:var(--accent-primary);outline:none}.admin-form-input::placeholder{color:var(--text-tertiary)}.admin-form-select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239A8B7F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.admin-modal-actions{justify-content:flex-end;gap:var(--space-sm);padding-top:var(--space-sm);display:flex}.admin-groups{gap:var(--space-lg);animation:fadeIn .3s var(--ease-out);flex-direction:column;display:flex}.admin-groups-header{justify-content:space-between;align-items:flex-end;gap:var(--space-md);display:flex}.admin-groups-grid{gap:var(--space-md);flex-direction:column;display:flex}.admin-group-card{padding:0;overflow:hidden}.admin-group-card-header{width:100%;padding:var(--space-lg);cursor:pointer;text-align:left;font-family:var(--font-body);transition:background var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex}.admin-group-card-header:hover{background:var(--bg-surface-hover)}.admin-group-card-info{flex-direction:column;gap:2px;display:flex}.admin-group-name{font-family:var(--font-display);color:var(--text-primary);font-size:1.1rem;font-weight:700}.admin-group-meta{color:var(--text-tertiary);font-size:.78rem}.admin-group-card-right{align-items:center;gap:var(--space-md);display:flex}.admin-group-avatar-stack{align-items:center;display:flex}.admin-group-avatar-item{border:2px solid var(--bg-surface);border-radius:var(--radius-full);margin-left:-8px;position:relative}.admin-group-avatar-item:first-child{margin-left:0}.admin-group-avatar-more{border-radius:var(--radius-full);background:var(--bg-tertiary);width:32px;height:32px;color:var(--text-tertiary);border:2px solid var(--bg-surface);justify-content:center;align-items:center;margin-left:-8px;font-size:.68rem;font-weight:700;display:flex}.admin-group-chevron{color:var(--text-tertiary);transition:transform var(--duration-fast) var(--ease-out);align-items:center;display:flex}.admin-group-members{overflow:hidden}.admin-group-members-inner{border-top:1px solid var(--border-color);padding:var(--space-sm)}.admin-group-member-row{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--ease-out);justify-content:space-between;align-items:center;display:flex}.admin-group-member-row:hover{background:var(--bg-surface-hover)}.admin-group-member-left{align-items:center;gap:var(--space-sm);display:flex}.admin-group-member-info{flex-direction:column;gap:1px;display:flex}.admin-group-member-name{color:var(--text-primary);font-size:.85rem;font-weight:600}.admin-group-member-role{color:var(--text-tertiary);font-size:.72rem}.admin-group-member-actions{align-items:center;gap:var(--space-xs);display:flex}.admin-moderator-toggle{border-radius:var(--radius-full);cursor:pointer;border:1px solid var(--border-color);color:var(--text-tertiary);transition:all var(--duration-fast) var(--ease-out);font-size:.7rem;font-weight:600;font-family:var(--font-body);background:0 0;align-items:center;gap:4px;padding:4px 10px;display:inline-flex}.admin-moderator-toggle:hover{border-color:var(--accent-secondary);color:var(--accent-secondary)}.admin-moderator-toggle--active{background:var(--accent-secondary-soft);color:var(--accent-secondary);border-color:#0000}.admin-member-checkboxes{border:1px solid var(--border-color);border-radius:var(--radius-sm);max-height:260px;padding:var(--space-xs);flex-direction:column;gap:2px;display:flex;overflow-y:auto}.admin-member-checkbox{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);display:flex}.admin-member-checkbox:hover{background:var(--bg-surface-hover)}.admin-member-checkbox input[type=checkbox]{border:2px solid var(--border-hover);appearance:none;cursor:pointer;background:var(--bg-input);width:16px;height:16px;transition:all var(--duration-fast) var(--ease-out);border-radius:4px;flex-shrink:0;position:relative}.admin-member-checkbox input[type=checkbox]:checked{background:var(--accent-primary);border-color:var(--accent-primary)}.admin-member-checkbox input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}.admin-member-checkbox-info{flex-direction:column;gap:1px;display:flex}.admin-member-checkbox-name{color:var(--text-primary);font-size:.85rem;font-weight:600}.admin-member-checkbox-role{color:var(--text-tertiary);font-size:.72rem}.admin-settings{gap:var(--space-lg);max-width:760px;animation:fadeIn .3s var(--ease-out);flex-direction:column;display:flex}.admin-settings-header{gap:var(--space-xs);flex-direction:column;display:flex}.admin-settings-section{flex-direction:column;gap:0;display:flex}.admin-settings-section-title{font-family:var(--font-display);color:var(--text-primary);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-color);margin-bottom:0;font-size:1rem;font-weight:700}.admin-setting-row{justify-content:space-between;align-items:center;gap:var(--space-lg);padding:var(--space-md) 0;border-bottom:1px solid var(--border-color);display:flex}.admin-setting-row:last-child{padding-bottom:var(--space-xs);border-bottom:none}.admin-setting-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.admin-setting-name{color:var(--text-primary);font-size:.88rem;font-weight:600}.admin-setting-desc{color:var(--text-tertiary);font-size:.78rem;line-height:1.4}.admin-toggle{border-radius:var(--radius-full);cursor:pointer;background:var(--bg-tertiary);width:40px;height:22px;transition:background var(--duration-fast) var(--ease-out);border:none;flex-shrink:0;padding:0;position:relative}.admin-toggle--on{background:var(--accent-primary)}.admin-toggle-thumb{border-radius:var(--radius-full);width:18px;height:18px;transition:transform var(--duration-fast) var(--ease-spring);pointer-events:none;background:#fff;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.admin-toggle--on .admin-toggle-thumb{transform:translate(18px)}.admin-setting-number-wrap{flex-shrink:0}.admin-setting-number{width:72px;padding:var(--space-xs) var(--space-sm);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);text-align:center;font-size:.85rem;font-weight:600;font-family:var(--font-body);transition:border-color var(--duration-fast) var(--ease-out);-moz-appearance:textfield}.admin-setting-number::-webkit-inner-spin-button{opacity:1}.admin-setting-number::-webkit-outer-spin-button{opacity:1}.admin-setting-number:focus{border-color:var(--accent-primary);outline:none}.admin-setting-select{padding:var(--space-xs) var(--space-sm);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.85rem;font-weight:500;font-family:var(--font-body);cursor:pointer;appearance:none;transition:border-color var(--duration-fast) var(--ease-out);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239A8B7F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;flex-shrink:0;padding-right:32px}.admin-setting-select:focus{border-color:var(--accent-primary);outline:none}.admin-setting-row--backup{flex-wrap:wrap}.admin-backup-actions{align-items:center;gap:var(--space-sm);flex-shrink:0;display:flex}@media (width<=600px){.admin-setting-row{align-items:flex-start;gap:var(--space-sm);flex-direction:column}.admin-backup-actions{width:100%}.admin-backup-actions .admin-btn{flex:1;justify-content:center}}.admin-audit{gap:var(--space-lg);animation:fadeIn .3s var(--ease-out);flex-direction:column;display:flex}.admin-audit-header{justify-content:space-between;align-items:flex-end;gap:var(--space-md);display:flex}.admin-audit-filters{align-items:flex-end;gap:var(--space-md);flex-wrap:wrap;display:flex}.admin-audit-filter{gap:var(--space-xs);flex-direction:column;display:flex}.admin-audit-filter-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-size:.7rem;font-weight:600}.admin-audit-filter-input{width:180px}.admin-audit-filter-select{min-width:160px}.admin-audit-row--warning{background:var(--accent-secondary-soft)!important}.admin-audit-row--error{background:#c04b4b0f!important}.admin-audit-row--warning:hover,.admin-audit-row--error:hover{filter:brightness(.97)}.admin-audit-action-badge{border-radius:var(--radius-full);letter-spacing:.02em;white-space:nowrap;align-items:center;padding:2px 8px;font-size:.68rem;font-weight:600;display:inline-flex}.admin-audit-action-badge--info{background:var(--accent-primary-soft);color:var(--accent-primary)}.admin-audit-action-badge--warning{background:var(--accent-secondary-soft);color:var(--accent-secondary)}.admin-audit-action-badge--error{color:var(--accent-danger);background:#c04b4b1f}.admin-audit-td-time{white-space:nowrap;color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-size:.8rem}.admin-audit-td-user{color:var(--text-primary);white-space:nowrap;font-weight:600}.admin-audit-td-details{color:var(--text-secondary);max-width:320px;font-size:.82rem}.admin-audit-td-ip code{color:var(--text-tertiary);background:var(--bg-tertiary);border-radius:4px;padding:2px 6px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.75rem}.admin-audit-pagination{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.admin-audit-page-info{color:var(--text-tertiary);font-size:.8rem}.admin-audit-page-nav{align-items:center;gap:var(--space-sm);display:flex}.admin-page-btn{align-items:center;gap:4px;display:inline-flex}.admin-page-btn:disabled{opacity:.4;cursor:not-allowed}.admin-audit-table th:first-child,.admin-audit-table td:first-child{padding-left:var(--space-lg)}.admin-audit-table th:last-child,.admin-audit-table td:last-child{padding-right:var(--space-lg)}@media (width<=800px){.admin-audit-filters{flex-direction:column;align-items:stretch}.admin-audit-filter-input,.admin-audit-filter-select{width:100%;min-width:unset}.admin-audit-td-details{max-width:200px}}.admin-layout{background:var(--bg-primary);width:100vw;height:100vh;display:flex;overflow:hidden}.admin-sidebar{background:var(--bg-surface);border-right:1px solid var(--border-color);width:260px;min-width:260px;height:100%;padding:var(--space-md) 0;flex-direction:column;display:flex;overflow-y:auto}.admin-sidebar-brand{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);margin-bottom:var(--space-lg);display:flex}.admin-sidebar-logo{flex-shrink:0;justify-content:center;align-items:center;display:flex}.admin-sidebar-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;font-size:1.35rem;font-weight:700}.admin-sidebar-nav{padding:0 var(--space-sm);flex-direction:column;flex:1;gap:2px;display:flex}.admin-nav-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);text-align:left;width:100%;font-size:.9rem;font-weight:500;font-family:var(--font-body);background:0 0;border:none;line-height:1.4;display:flex}.admin-nav-item:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.admin-nav-item--active{background:var(--accent-primary-soft);color:var(--accent-primary);font-weight:600}.admin-nav-item--active:hover{background:var(--accent-primary-soft);color:var(--accent-primary)}.admin-nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:24px;display:flex}.admin-nav-label{white-space:nowrap}.admin-sidebar-bottom{padding:var(--space-sm);border-top:1px solid var(--border-color);margin-top:var(--space-sm);padding-top:var(--space-md)}.admin-nav-item--back{color:var(--text-tertiary)}.admin-nav-item--back:hover{color:var(--accent-primary);background:var(--accent-primary-soft)}.admin-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.admin-header{padding:var(--space-md) var(--space-xl);height:var(--header-height);min-height:var(--header-height);background:var(--bg-surface);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.admin-header-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;font-size:1.4rem;font-weight:700}.admin-header-user{align-items:center;gap:var(--space-sm);display:flex}.admin-header-user-info{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.admin-header-user-name{color:var(--text-primary);font-size:.85rem;font-weight:600}.admin-header-user-role{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:500}.admin-content{padding:var(--space-xl);background:var(--bg-primary);flex:1;overflow-y:auto}.incoming-call-overlay{z-index:9000;-webkit-backdrop-filter:blur(20px);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.incoming-call-content{flex-direction:column;align-items:center;gap:16px;display:flex}.incoming-call-avatar-area{justify-content:center;align-items:center;width:200px;height:200px;margin-bottom:8px;display:flex;position:relative}.incoming-call-avatar{z-index:2;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:relative;box-shadow:0 8px 32px #0000004d}.incoming-call-avatar-initials{color:#fff;font-family:var(--font-body);letter-spacing:.03em;text-shadow:0 1px 3px #0003;-webkit-user-select:none;user-select:none;font-size:2.4rem;font-weight:700}.incoming-call-rings{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.incoming-call-ring{border:2px solid #ffffff40;border-radius:50%;animation:2.4s ease-out infinite incomingRingPulse;position:absolute}.incoming-call-ring--1{width:120px;height:120px;animation-delay:0s}.incoming-call-ring--2{width:120px;height:120px;animation-delay:.8s}.incoming-call-ring--3{width:120px;height:120px;animation-delay:1.6s}@keyframes incomingRingPulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}.incoming-call-name{color:#fff;font-family:var(--font-display);letter-spacing:.01em;text-align:center;font-size:2rem;font-weight:600}.incoming-call-type{color:#fff9;text-align:center;margin-bottom:24px;font-size:.95rem;font-weight:500}.incoming-call-actions{align-items:center;gap:48px;display:flex}.incoming-call-btn{cursor:pointer;color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;transition:transform .2s,box-shadow .2s;display:flex}.incoming-call-btn:hover{transform:scale(1.08)}.incoming-call-btn:active{transform:scale(.96)}.incoming-call-btn--decline{background:#c04b4b;box-shadow:0 4px 20px #c04b4b66}.incoming-call-btn--decline:hover{box-shadow:0 6px 28px #c04b4b8c}.incoming-call-btn--accept{background:#5a9e6f;animation:2s ease-in-out infinite acceptBtnPulse;box-shadow:0 4px 20px #5a9e6f66}.incoming-call-btn--accept:hover{animation:none;box-shadow:0 6px 28px #5a9e6f8c}@keyframes acceptBtnPulse{0%,to{box-shadow:0 4px 20px #5a9e6f66}50%{box-shadow:0 4px 32px #5a9e6fa6}}.call-view{z-index:9000;color:#fff;font-family:var(--font-body);background:#0a0a0a;flex-direction:column;align-items:center;display:flex;position:fixed;inset:0}.call-view-timer{color:#ffffffb3;letter-spacing:.06em;font-variant-numeric:tabular-nums;text-align:center;padding-top:32px;padding-bottom:16px;font-size:1.1rem;font-weight:500}.call-view-main{flex:1;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.call-audio-content{flex-direction:column;align-items:center;gap:20px;display:flex}.call-audio-avatar{border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;display:flex;box-shadow:0 8px 32px #0006}.call-audio-avatar-initials{color:#fff;letter-spacing:.03em;text-shadow:0 1px 3px #0003;-webkit-user-select:none;user-select:none;font-size:2rem;font-weight:700}.call-audio-name{color:#fff;font-family:var(--font-display);text-align:center;font-size:1.6rem;font-weight:600}.call-sound-bars{justify-content:center;align-items:center;gap:4px;height:32px;margin-top:4px;display:flex}.call-sound-bar{background:#fff;border-radius:2px;width:4px;animation:1s ease-in-out infinite alternate soundBarBounce}.call-sound-bar--1{height:12px;animation-duration:.6s}.call-sound-bar--2{height:20px;animation-duration:.8s;animation-delay:.1s}.call-sound-bar--3{height:28px;animation-duration:.5s;animation-delay:.2s}.call-sound-bar--4{height:16px;animation-duration:.7s;animation-delay:50ms}.call-sound-bar--5{height:24px;animation-duration:.9s;animation-delay:.15s}@keyframes soundBarBounce{0%{height:8px}to{height:28px}}.call-video-content{width:100%;height:100%;position:relative}.call-video-remote{background:#111;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;height:100%;display:flex}.call-video-remote-label{color:#fff3;letter-spacing:.04em;font-size:.95rem;font-weight:500}.call-video-caller-label{color:#fff;text-shadow:0 1px 4px #00000080;font-size:1rem;font-weight:600;position:absolute;top:20px;left:20px}.call-video-self{background:#1a1a1a;border:1px solid #ffffff1a;border-radius:12px;justify-content:center;align-items:center;width:120px;height:90px;display:flex;position:absolute;bottom:20px;right:20px;overflow:hidden;box-shadow:0 4px 16px #0006}.call-video-self-avatar{border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.call-video-self-initial{color:#fff;-webkit-user-select:none;user-select:none;font-size:1rem;font-weight:700}.call-view-controls{justify-content:center;align-items:center;gap:20px;padding:24px 0 40px;display:flex}.call-control-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:background .2s,transform .15s;display:flex}.call-control-btn:hover{background:#ffffff40}.call-control-btn:active{transform:scale(.93)}.call-control-btn--active{background:#e05050cc}.call-control-btn--active:hover{background:#e05050e6}.call-control-btn--end{background:#e05050;width:60px;height:60px;box-shadow:0 4px 20px #e0505059}.call-control-btn--end:hover{background:#e86060;box-shadow:0 6px 28px #e0505080}.calls-page{background:var(--bg-primary);flex-direction:column;flex:1;height:100dvh;display:flex;overflow-y:auto}.calls-page-header{padding:var(--space-lg) var(--space-lg) var(--space-md);padding-top:calc(var(--space-lg) + var(--safe-area-top));flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.calls-page-title{font-family:var(--font-display);color:var(--text-primary);font-size:1.8rem;font-weight:700}.calls-page-test{border-radius:var(--radius-full);background:var(--accent-primary);color:#fff;width:44px;height:44px;transition:all var(--duration-fast);justify-content:center;align-items:center;display:flex}.calls-page-test:active{transform:scale(.92)}.calls-page-filters{gap:var(--space-sm);padding:0 var(--space-lg) var(--space-md);flex-shrink:0;display:flex}.calls-filter{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);color:var(--text-secondary);background:var(--bg-input);transition:all var(--duration-fast);font-size:.85rem;font-weight:600}.calls-filter.active{background:var(--accent-primary);color:#fff}.calls-filter:active{transform:scale(.95)}.calls-list{padding:0 var(--space-sm);padding-bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom) + var(--space-md));flex:1}.call-item{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-md);border-radius:var(--radius-lg);transition:background var(--duration-fast);min-height:68px;display:flex}.call-item:active{background:var(--bg-surface-hover)}.call-item-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.call-item-name{color:var(--text-primary);font-size:.95rem;font-weight:600}.call-item-name.missed{color:var(--accent-danger)}.call-item-meta{color:var(--text-tertiary);align-items:center;gap:4px;font-size:.8rem;display:flex}.call-direction{flex-shrink:0}.call-direction--incoming{color:var(--accent-success)}.call-direction--outgoing{color:var(--accent-primary)}.call-direction--missed{color:var(--accent-danger)}.call-item-right{align-items:flex-end;gap:var(--space-xs);flex-direction:column;display:flex}.call-item-time{color:var(--text-tertiary);font-size:.75rem;font-weight:500}.call-item-action{border-radius:var(--radius-full);width:40px;height:40px;color:var(--accent-primary);transition:all var(--duration-fast);justify-content:center;align-items:center;display:flex}.call-item-action:active{background:var(--accent-primary-soft);transform:scale(.9)}.calls-empty{justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-3xl);color:var(--text-tertiary);flex-direction:column;display:flex}.calls-empty p{font-size:.9rem}@media (width>=769px){.calls-page{border-left:1px solid var(--border-color)}.calls-page-header{padding-top:var(--space-lg)}.calls-list{padding-bottom:var(--space-lg)}}.notification-toast{align-items:flex-start;gap:var(--space-sm);width:360px;max-width:360px;padding:var(--space-md);background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;position:relative;overflow:hidden}.notification-toast:hover{background:var(--bg-surface-hover)}.notification-toast__icon{border-radius:var(--radius-full);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:40px;min-width:40px;height:40px;display:flex}.notification-toast--message .notification-toast__icon{background:var(--accent-primary)}.notification-toast--call .notification-toast__icon{background:var(--accent-success)}.notification-toast--system .notification-toast__icon{background:var(--accent-secondary)}.notification-toast__content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.notification-toast__header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.notification-toast__title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:700;overflow:hidden}.notification-toast__time{color:var(--text-tertiary);white-space:nowrap;flex-shrink:0;font-size:.7rem}.notification-toast__body{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8125rem;line-height:1.4;display:-webkit-box;overflow:hidden}.notification-toast__dismiss{top:var(--space-sm);right:var(--space-sm);border-radius:var(--radius-full);width:22px;height:22px;color:var(--text-tertiary);cursor:pointer;opacity:0;transition:opacity var(--duration-fast), background var(--duration-fast), color var(--duration-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.notification-toast:hover .notification-toast__dismiss{opacity:1}.notification-toast__dismiss:hover{background:var(--bg-tertiary);color:var(--text-primary)}.notification-toast__progress{border-radius:0 1px 0 0;height:2px;animation:5s linear forwards toast-progress;position:absolute;bottom:0;left:0}.notification-toast--message .notification-toast__progress{background:var(--accent-primary)}.notification-toast--call .notification-toast__progress{background:var(--accent-success)}.notification-toast--system .notification-toast__progress{background:var(--accent-secondary)}@keyframes toast-progress{0%{width:100%}to{width:0%}}.notification-container{top:var(--space-md);right:var(--space-md);z-index:9998;gap:var(--space-sm);pointer-events:none;flex-direction:column;display:flex;position:fixed}.notification-container>*{pointer-events:auto}.install-prompt{--install-bg:var(--color-surface,#241f1c);--install-text:var(--color-text-primary,#f0e6d8);--install-text-muted:var(--color-text-secondary,#f0e6d899);--install-accent:var(--color-terracotta,#c85a3a);--install-accent-alt:var(--color-amber,#d4a853);--install-accent-hover:#b5492c;--install-border:var(--color-border,#f0e6d814);--install-radius:14px;z-index:9999;padding:.75rem 1rem;position:fixed;top:0;left:0;right:0}.install-prompt__content{background:var(--install-bg);border:1px solid var(--install-border);border-radius:var(--install-radius);align-items:center;gap:.75rem;max-width:480px;margin:0 auto;padding:.75rem 1rem;display:flex;box-shadow:0 4px 24px #0006,0 1px 3px #0003}.install-prompt__icon{flex-shrink:0;width:32px;height:32px}.install-prompt__text{color:var(--install-text);flex:1;min-width:0;font-size:.875rem;font-weight:500;line-height:1.3}.install-prompt__install-btn{background-color:var(--install-accent);color:var(--install-text);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;flex-shrink:0;padding:.4375rem 1rem;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background-color .2s}.install-prompt__install-btn:hover{background-color:var(--install-accent-hover)}.install-prompt__install-btn:focus-visible{outline:2px solid var(--install-accent-alt);outline-offset:2px}.install-prompt__dismiss-btn{width:28px;height:28px;color:var(--install-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .2s,background-color .2s;display:flex}.install-prompt__dismiss-btn:hover{color:var(--install-text);background-color:#f0e6d814}.install-prompt__dismiss-btn:focus-visible{outline:2px solid var(--install-accent-alt);outline-offset:2px}@media (width<=480px){.install-prompt{padding:.5rem}.install-prompt__content{gap:.5rem;padding:.625rem .75rem}.install-prompt__text{font-size:.8125rem}.install-prompt__install-btn{padding:.375rem .75rem;font-size:.75rem}}.ml-page{z-index:8500;background:var(--bg-primary);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ml-bg{background:radial-gradient(ellipse at 20% 50%, var(--accent-primary-soft) 0%, transparent 50%), radial-gradient(ellipse at 80% 20%, var(--accent-secondary-soft) 0%, transparent 50%);position:absolute;inset:0}.ml-container{z-index:1;gap:var(--space-xl);width:100%;max-width:860px;padding:var(--space-lg);display:flex;position:relative}.ml-preview{gap:var(--space-md);flex-direction:column;flex:1;display:flex}.ml-preview-screen{aspect-ratio:16/10;border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-lg);background:#111;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.ml-preview-video-el{object-fit:cover;border-radius:inherit;width:100%;height:100%;transform:scaleX(-1)}.ml-media-error{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);color:var(--accent-danger);border-radius:var(--radius-md);background:#c04b4b14;font-size:.82rem;display:flex}.ml-preview-video{justify-content:center;align-items:center;gap:var(--space-md);background:linear-gradient(145deg,#0d0d0d 0%,#1a1a1a 100%);flex-direction:column;width:100%;height:100%;display:flex;position:relative}.ml-preview-avatar{border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;display:flex;box-shadow:0 8px 32px #0006}.ml-preview-initials{color:#fff;letter-spacing:.03em;-webkit-user-select:none;user-select:none;font-size:1.8rem;font-weight:700}.ml-preview-camera-label{color:#ffffff40;letter-spacing:.04em;font-size:.78rem;font-weight:500}.ml-preview-off{align-items:center;gap:var(--space-sm);color:#ffffff4d;flex-direction:column;font-size:.85rem;font-weight:500;display:flex}.ml-mic-indicator{bottom:var(--space-md);left:var(--space-md);align-items:center;gap:var(--space-xs);color:#ffffffb3;font-size:.78rem;display:flex;position:absolute}.ml-mic-bar{background:#ffffff26;border-radius:2px;width:60px;height:4px;overflow:hidden}.ml-mic-fill{background:var(--accent-success);border-radius:2px;height:100%}.ml-preview-name{bottom:var(--space-md);right:var(--space-md);padding:var(--space-xs) var(--space-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-sm);color:#fff;background:#00000080;font-size:.8rem;font-weight:600;position:absolute}.ml-controls{justify-content:center;gap:var(--space-sm);display:flex}.ml-control-btn{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);transition:all var(--duration-fast) var(--ease-out);font-size:.82rem;font-weight:600;display:flex}.ml-control-btn:hover{background:var(--bg-surface-hover);border-color:var(--border-hover)}.ml-control-btn--off{color:var(--accent-danger);background:#c04b4b1a;border-color:#c04b4b4d}.ml-control-btn--off:hover{background:#c04b4b26}.ml-info{flex-direction:column;flex-shrink:0;width:280px;display:flex}.ml-info-content{gap:var(--space-lg);padding-top:var(--space-md);flex-direction:column;flex:1;display:flex}.ml-title{font-family:var(--font-display);color:var(--text-primary);font-size:1.5rem;font-weight:700;line-height:1.2}.ml-subtitle{color:var(--text-tertiary);font-size:.88rem;line-height:1.5}.ml-participants{gap:var(--space-md);flex-direction:column;display:flex}.ml-participants-label{align-items:center;gap:var(--space-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600;display:flex}.ml-participant-list{gap:var(--space-sm);flex-direction:column;display:flex}.ml-participant-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex}.ml-participant-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.6rem;font-weight:700;display:flex}.ml-participant-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.85rem;font-weight:500;overflow:hidden}.ml-participant-badge{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-input);border-radius:var(--radius-sm);padding:2px 6px;font-size:.65rem;font-weight:600}.ml-error{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--accent-danger);background:#c04b4b1a;font-size:.85rem;font-weight:500;display:flex}.ml-join-btn{justify-content:center;align-items:center;gap:var(--space-sm);background:var(--accent-primary);color:#fff;border-radius:var(--radius-md);width:100%;height:52px;transition:all var(--duration-fast) var(--ease-out);margin-top:var(--space-lg);font-size:.95rem;font-weight:700;display:flex;position:relative;overflow:hidden}.ml-join-btn:before{content:"";background:linear-gradient(135deg,#0000 30%,#ffffff1a 50%,#0000 70%);transition:transform .6s;position:absolute;inset:0;transform:translate(-100%)}.ml-join-btn:hover:before{transform:translate(100%)}.ml-join-btn:hover{background:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:0 4px 20px #c85a3a4d}.ml-join-btn:active{transform:translateY(0)}.ml-join-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.ml-btn-spinner{animation:.8s linear infinite mlSpin}@keyframes mlSpin{to{transform:rotate(360deg)}}.ml-active{z-index:9000;color:#fff;font-family:var(--font-body);background:#0a0a0a;flex-direction:column;align-items:center;display:flex;position:fixed;inset:0}.ml-active-timer{color:#fff9;letter-spacing:.06em;font-variant-numeric:tabular-nums;padding-top:28px;padding-bottom:12px;font-size:1rem;font-weight:500}.ml-active-main{width:100%;padding:var(--space-lg);flex:1;justify-content:center;align-items:center;display:flex}.ml-active-grid{gap:8px;width:100%;max-width:900px;max-height:100%;padding:8px;display:grid}.ml-active-grid[data-count="1"]{grid-template-columns:1fr}.ml-active-grid[data-count="2"],.ml-active-grid[data-count="3"]{grid-template-columns:1fr 1fr}.ml-active-grid[data-count="3"] .ml-active-tile:last-child{grid-column:1/-1;justify-self:center;max-width:50%}.ml-active-grid[data-count="4"]{grid-template-columns:1fr 1fr}.ml-active-audio-grid{justify-content:center;align-items:center;gap:var(--space-xl);padding:var(--space-lg);flex-wrap:wrap;display:flex}.ml-active-tile{aspect-ratio:4/3;border-radius:var(--radius-lg);justify-content:center;align-items:center;gap:var(--space-sm);background:#151515;border:1px solid #ffffff0f;flex-direction:column;display:flex;position:relative;overflow:hidden}.ml-active-audio-grid .ml-active-tile{aspect-ratio:auto;background:0 0;border:none;width:120px;height:160px}.ml-active-tile-video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.ml-active-tile-video.mirror{transform:scaleX(-1)}.ml-active-tile-avatar{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.2rem;font-weight:700;display:flex}.ml-active-audio-grid .ml-active-tile-avatar{width:80px;height:80px;font-size:1.6rem}.ml-active-tile-name{color:#fff;border-radius:var(--radius-sm);text-overflow:ellipsis;white-space:nowrap;background:#00000080;max-width:calc(100% - 16px);padding:2px 8px;font-size:.78rem;font-weight:600;position:absolute;bottom:8px;left:8px;overflow:hidden}.ml-active-audio-grid .ml-active-tile-name{color:#ffffffb3;background:0 0;padding:0;font-size:.82rem;position:static}.ml-tile-mute-icon{color:#f55;background:#00000080;border-radius:50%;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;top:8px;right:8px}.ml-tile-connecting{color:#ffffff80;position:absolute;top:8px;left:8px}.ml-active-reconnecting{margin-left:var(--space-sm);color:orange;font-size:.75rem;animation:1.5s ease-in-out infinite pulse}@media (width<=480px){.ml-active-grid[data-count="2"]{grid-template-columns:1fr}.ml-active-grid[data-count="3"] .ml-active-tile:last-child{max-width:100%}.ml-active-tile{aspect-ratio:4/3}}@media (width<=400px){.ml-active-grid{grid-template-columns:1fr!important}}.ml-active-audio{justify-content:center;align-items:center;gap:var(--space-2xl);flex-wrap:wrap;display:flex}.ml-active-audio-participant{align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.ml-active-audio-avatar{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:88px;height:88px;font-size:1.8rem;font-weight:700;display:flex;box-shadow:0 8px 32px #0006}.ml-active-audio-name{font-family:var(--font-display);color:#ffffffd9;font-size:1.1rem;font-weight:600}.ml-active-info-bar{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);color:#fff6;font-size:.78rem;font-weight:500;display:flex}.ml-active-info-sep{background:#fff3;border-radius:50%;width:3px;height:3px}.ml-active-controls{justify-content:center;align-items:center;gap:16px;padding:20px 0 36px;display:flex}.ml-active-ctrl{color:#fff;background:#ffffff1f;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:background .2s,transform .15s;display:flex}.ml-active-ctrl:hover{background:#ffffff38}.ml-active-ctrl:active{transform:scale(.93)}.ml-active-ctrl--off{background:#e05050cc}.ml-active-ctrl--off:hover{background:#e05050e6}.ml-active-ctrl--end{background:#e05050;width:60px;height:60px;box-shadow:0 4px 20px #e0505059}.ml-active-ctrl--end:hover{background:#e86060;box-shadow:0 6px 28px #e0505080}@media (width<=768px){.ml-container{flex-direction:column;max-width:480px}.ml-info{width:100%}.ml-preview-screen{aspect-ratio:16/9}.ml-active-grid{grid-template-columns:1fr;max-width:400px}.ml-active-audio{gap:var(--space-xl)}.ml-active-audio-avatar{width:64px;height:64px;font-size:1.3rem}}.jm-page{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.jm-bg{position:absolute;inset:0;overflow:hidden}.jm-bg-orb{filter:blur(100px);border-radius:50%;animation:20s ease-in-out infinite jmOrbFloat;position:absolute}.jm-bg-orb--1{background:var(--accent-primary);opacity:.08;width:500px;height:500px;animation-delay:0s;top:-15%;right:-10%}.jm-bg-orb--2{background:var(--accent-secondary);opacity:.06;width:400px;height:400px;animation-delay:-7s;bottom:-10%;left:-5%}.jm-bg-orb--3{background:var(--accent-primary);opacity:.04;width:300px;height:300px;animation-delay:-14s;top:40%;left:50%}@keyframes jmOrbFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-20px)scale(1.05)}66%{transform:translate(-20px,15px)scale(.95)}}.jm-bg-pattern{background-image:radial-gradient(circle at 1px 1px, var(--border-color) 1px, transparent 0);opacity:.4;background-size:40px 40px;position:absolute;inset:0}.jm-card{width:100%;max-width:440px;padding:var(--space-2xl) var(--space-xl);background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg), var(--shadow-glow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:5;position:relative}.jm-card--loading{justify-content:center;align-items:center;min-height:200px;display:flex}.jm-loading-content{align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.jm-loading-spinner{color:var(--accent-primary);animation:.8s linear infinite jmSpin}@keyframes jmSpin{to{transform:rotate(360deg)}}.jm-loading-text{color:var(--text-tertiary);font-size:.9rem;font-weight:500}.jm-card--error{text-align:center;align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.jm-error-icon{width:64px;height:64px;color:var(--accent-danger);background:#c04b4b1a;border-radius:50%;justify-content:center;align-items:center;display:flex}.jm-error-title{font-family:var(--font-display);color:var(--text-primary);font-size:1.5rem;font-weight:700}.jm-error-message{color:var(--text-secondary);font-size:.95rem;line-height:1.5}.jm-error-hint{color:var(--text-tertiary);max-width:320px;font-size:.82rem;line-height:1.5}.jm-header{text-align:center;margin-bottom:var(--space-lg)}.jm-logo{margin-bottom:var(--space-sm);display:inline-flex}.jm-brand{font-family:var(--font-display);color:var(--text-tertiary);letter-spacing:.02em;font-size:1rem;font-weight:600}.jm-meeting-info{text-align:center;margin-bottom:var(--space-xl)}.jm-meeting-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:var(--space-md);font-size:1.6rem;font-weight:700;line-height:1.2}.jm-meeting-meta{justify-content:center;align-items:center;gap:var(--space-lg);flex-wrap:wrap;display:flex}.jm-meeting-host,.jm-meeting-type,.jm-meeting-count{align-items:center;gap:var(--space-xs);color:var(--text-tertiary);font-size:.82rem;font-weight:500;display:flex}.jm-participants-preview{gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.jm-participant-chip{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--accent-primary-soft);border-radius:var(--radius-full);color:var(--accent-primary);font-size:.78rem;font-weight:600;display:flex}.jm-participant-dot{background:var(--accent-success);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite jmDotPulse}@keyframes jmDotPulse{0%,to{opacity:1}50%{opacity:.4}}.jm-form{gap:var(--space-md);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.jm-field{align-items:center;gap:var(--space-sm);padding:0 var(--space-md);background:var(--bg-input);border-radius:var(--radius-md);height:52px;transition:all var(--duration-fast) var(--ease-out);border:1.5px solid #0000;display:flex;position:relative}.jm-field:focus-within{border-color:var(--accent-primary);background:var(--bg-surface);box-shadow:0 0 0 3px var(--accent-primary-soft)}.jm-field-icon{color:var(--text-tertiary);transition:color var(--duration-fast);flex-shrink:0}.jm-field:focus-within .jm-field-icon{color:var(--accent-primary)}.jm-field input{background:0 0;flex:1;height:100%;font-size:.95rem}.jm-field input:focus-visible{outline:none}.jm-field input::placeholder{color:var(--text-tertiary)}.jm-error-inline{color:var(--accent-danger);text-align:center;font-size:.85rem;overflow:hidden}.jm-join-btn{justify-content:center;align-items:center;gap:var(--space-sm);background:var(--accent-primary);color:#fff;border-radius:var(--radius-md);width:100%;height:52px;transition:all var(--duration-fast) var(--ease-out);font-size:.95rem;font-weight:700;display:flex;position:relative;overflow:hidden}.jm-join-btn:before{content:"";background:linear-gradient(135deg,#0000 30%,#ffffff1a 50%,#0000 70%);transition:transform .6s;position:absolute;inset:0;transform:translate(-100%)}.jm-join-btn:hover:before{transform:translate(100%)}.jm-join-btn:hover{background:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:0 4px 20px #c85a3a4d}.jm-join-btn:active{transform:translateY(0)}.jm-join-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.jm-join-btn:disabled:hover:before{transform:translate(-100%)}.jm-btn-spinner{animation:.8s linear infinite jmSpin}.jm-footer{align-items:center;gap:var(--space-md);display:flex}.jm-footer-line{background:var(--border-color);flex:1;height:1px}.jm-footer-badge{align-items:center;gap:var(--space-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:600;display:flex}@media (width<=480px){.jm-card{margin:var(--space-md);padding:var(--space-xl) var(--space-lg);border-radius:var(--radius-lg)}.jm-meeting-title{font-size:1.3rem}.jm-meeting-meta{gap:var(--space-md)}}.app-layout{background:var(--bg-primary);height:100dvh;display:flex;overflow:hidden}@media (width<=768px){.app-layout{position:relative}.app-layout .sidebar{z-index:20;width:100%;transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}.app-layout.mobile-chat-open .sidebar{pointer-events:none;transform:translate(-100%)}.app-layout .chat-view{z-index:10;width:100%;position:absolute;inset:0}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-body:"Manrope", system-ui, -apple-system, sans-serif;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 8px 32px #0000001f;--shadow-glow:0 0 40px #c85a3a26;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--sidebar-width:360px;--contact-panel-width:340px;--header-height:64px}:root,[data-theme=light]{--bg-primary:#fbf7f0;--bg-secondary:#f5ede3;--bg-tertiary:#ede4d8;--bg-chat:#f8f3eb;--bg-surface:#fff;--bg-surface-hover:#f9f4ec;--bg-input:#f0e9df;--bg-overlay:#3b2c2466;--text-primary:#2c1e16;--text-secondary:#6b5a4e;--text-tertiary:#9a8b7f;--text-inverse:#fbf7f0;--accent-primary:#c85a3a;--accent-primary-hover:#b5482a;--accent-primary-soft:#c85a3a1a;--accent-secondary:#d4a853;--accent-secondary-soft:#d4a8531f;--accent-success:#5a9e6f;--accent-danger:#c04b4b;--border-color:#6b5a4e1f;--border-hover:#6b5a4e40;--msg-own-bg:#c85a3a;--msg-own-text:#fff;--msg-other-bg:#fff;--msg-other-text:#2c1e16;--scrollbar-track:transparent;--scrollbar-thumb:#6b5a4e33;--scrollbar-thumb-hover:#6b5a4e59;--grain-opacity:.03;--badge-bg:#c85a3a;--badge-text:#fff}[data-theme=dark]{--bg-primary:#141210;--bg-secondary:#1c1916;--bg-tertiary:#252220;--bg-chat:#181614;--bg-surface:#201d1a;--bg-surface-hover:#2a2724;--bg-input:#252220;--bg-overlay:#0009;--text-primary:#f0e6d8;--text-secondary:#a89888;--text-tertiary:#6f6259;--text-inverse:#141210;--accent-primary:#e07a5f;--accent-primary-hover:#e8967f;--accent-primary-soft:#e07a5f1f;--accent-secondary:#e8b94d;--accent-secondary-soft:#e8b94d1a;--accent-success:#6bb580;--accent-danger:#e06060;--border-color:#a898881a;--border-hover:#a8988833;--msg-own-bg:#c85a3a;--msg-own-text:#fff;--msg-other-bg:#252220;--msg-other-text:#f0e6d8;--scrollbar-track:transparent;--scrollbar-thumb:#a8988826;--scrollbar-thumb-hover:#a898884d;--grain-opacity:.04;--badge-bg:#e07a5f;--badge-text:#141210}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-body);color:var(--text-primary);background:var(--bg-primary);height:100vh;transition:background var(--duration-slow) var(--ease-out), color var(--duration-slow) var(--ease-out);font-weight:400;line-height:1.5;overflow:hidden}#root{height:100vh;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::selection{background:var(--accent-primary-soft);color:var(--accent-primary)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:var(--radius-sm)}input,textarea,button{font-family:var(--font-body);font-size:inherit;color:inherit;background:0 0;border:none;outline:none}button{cursor:pointer}a{color:var(--accent-primary);text-decoration:none}.grain-overlay{pointer-events:none;z-index:9999;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes typingDot{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.stagger-children>*{animation:slideUp .4s var(--ease-out) both}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:40ms}.stagger-children>:nth-child(3){animation-delay:80ms}.stagger-children>:nth-child(4){animation-delay:.12s}.stagger-children>:nth-child(5){animation-delay:.16s}.stagger-children>:nth-child(6){animation-delay:.2s}.stagger-children>:nth-child(7){animation-delay:.24s}.stagger-children>:nth-child(8){animation-delay:.28s}.stagger-children>:nth-child(9){animation-delay:.32s}.stagger-children>:nth-child(10){animation-delay:.36s}:root{--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);--safe-area-right:env(safe-area-inset-right,0px);--bottom-nav-height:64px;--min-touch-target:44px}@supports (height:100dvh){#root,body{height:100dvh}}@media (width<=768px){button,a,.sidebar-chat,.chat-header,.bottom-nav{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}html{font-size:16px}input,textarea,select{font-size:16px!important}*{-webkit-overflow-scrolling:touch}::-webkit-scrollbar{display:none}*{scrollbar-width:none}}@media (width>=769px) and (width<=960px){:root{--sidebar-width:300px}}@media (horizontal-viewport-segments:2){.app-layout{gap:env(viewport-segment-left 1 0,0px)}}@media (vertical-viewport-segments:2){.app-layout{flex-direction:column}}
