:root{--color-primary-50: #eef2ff;--color-primary-300: #a5b4fc;--color-primary-400: #818cf8;--color-primary-500: #6366f1;--color-primary-600: #5b54e6;--color-primary-700: #4f46e5;--color-accent: var(--color-primary-500);--color-accent-hover: var(--color-primary-400);--color-accent-active: var(--color-primary-600);--color-accent-soft: rgba(99, 102, 241, .16);--gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--gradient-logo: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 50%, #ec4899 100%);--gradient-hero: linear-gradient(135deg, #6366f1 0%, #8b5cf6 45%, #ec4899 100%);--gradient-warm: linear-gradient(135deg, #f59e0b 0%, #ef4444 50%, #ec4899 100%);--color-bg: #0b0b12;--color-bg-elevated: #101019;--color-bg-subtle: #0b0b12;--color-surface-1: #16161f;--color-surface-2: #1e1e2a;--color-surface-3: #282836;--color-border: rgba(255, 255, 255, .08);--color-border-strong: rgba(255, 255, 255, .16);--color-overlay: rgba(6, 6, 12, .72);--glass-bg: rgba(22, 22, 31, .72);--glass-border: rgba(255, 255, 255, .1);--glass-blur: 20px;--color-text: #f4f4f8;--color-text-on-light: #16161f;--color-text-muted: rgba(244, 244, 248, .64);--color-text-subtle: rgba(244, 244, 248, .42);--color-success: #34d399;--color-warning: #fbbf24;--color-danger: #f43f5e;--color-danger-hover: #fb5a72;--color-info: #60a5fa;--focus-ring: 0 0 0 3px var(--color-accent-soft);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--shadow-glow: 0 8px 32px rgba(99, 102, 241, .35);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .22s cubic-bezier(.4, 0, .2, 1);--transition-slow: .32s cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-base: 1;--z-controls: 100;--z-overlay: 1000;--z-modal: 1100;--z-toast: 1200;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg-subtle)}code{font-family:var(--font-mono)}#root{min-height:100vh;min-height:100dvh}@media (max-width: 768px){input,textarea,select{font-size:16px}}.error-boundary{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:radial-gradient(900px 600px at 20% -10%,rgba(99,102,241,.18),transparent 60%),var(--color-bg, #0b0b12);padding:var(--space-5, 20px)}.error-boundary-card{background:var(--color-surface-1, #16161f);border:1px solid var(--color-border, rgba(255, 255, 255, .08));border-radius:var(--radius-lg, 14px);box-shadow:var(--shadow-lg, 0 12px 40px rgba(0, 0, 0, .5));padding:var(--space-10, 40px);max-width:440px;width:100%;text-align:center;color:var(--color-text, #f4f4f8)}.error-boundary-card h1{margin:0 0 var(--space-3, 12px);font-size:var(--text-2xl, 1.5rem);font-weight:var(--font-semibold, 600)}.error-boundary-card p{margin:0 0 var(--space-6, 24px);color:var(--color-text-muted, rgba(244, 244, 248, .64));font-size:var(--text-sm, .875rem)}.error-boundary-actions{display:flex;gap:var(--space-3, 12px);justify-content:center}.error-boundary-btn{padding:var(--space-3, 12px) var(--space-5, 20px);border-radius:var(--radius-md, 10px);font-size:var(--text-base, 1rem);font-weight:var(--font-semibold, 600);cursor:pointer;border:none;text-decoration:none;display:inline-flex;align-items:center}.error-boundary-btn.primary{background:var(--gradient-primary, linear-gradient(135deg, #6366f1, #8b5cf6));color:#fff}.error-boundary-btn.secondary{background:var(--color-surface-2, #1e1e2a);color:var(--color-text, #f4f4f8);border:1px solid var(--color-border-strong, rgba(255, 255, 255, .16))}.ui-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:var(--z-overlay)}.ui-modal-content{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:var(--z-modal)}.ui-modal-panel{position:relative;width:min(440px,100%);max-height:min(85dvh,calc(100dvh - 2 * var(--space-6)));overflow-y:auto;background:var(--color-surface-1);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6)}.ui-modal-title{margin:0 0 var(--space-2);font-size:var(--text-xl);font-weight:var(--font-semibold)}.ui-modal-description{margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted)}.ui-modal-close{position:absolute;top:var(--space-4);right:var(--space-4);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-full);background:var(--color-surface-2);color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.ui-modal-close:hover{background:var(--color-surface-3);color:var(--color-text)}.ui-modal-close:focus-visible,.ui-modal-content :focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ui-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.qr-modal-panel{text-align:center}.qr-modal-panel .ui-modal-title{color:var(--color-success)}.qr-code-container{background:#fff;padding:var(--space-5);border-radius:var(--radius-md);display:inline-block;margin-bottom:var(--space-6)}.meeting-id-display{background:var(--color-surface-2);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-5)}.meeting-id-label{display:block;font-size:var(--text-xs);color:var(--color-text-subtle);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:1px}.meeting-id-value{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);word-break:break-all;font-family:var(--font-mono)}.qr-modal-actions{display:flex;gap:var(--space-3);margin-bottom:var(--space-5)}.qr-btn{flex:1;padding:var(--space-4) var(--space-5);border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:background var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base)}.qr-btn.copy-btn{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border-strong)}.qr-btn.copy-btn:hover{background:var(--color-surface-3)}.qr-btn.join-btn{background:var(--gradient-primary);color:#fff}.qr-btn.join-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.qr-modal-note{font-size:var(--text-sm);color:var(--color-text-subtle);margin:0}@media (max-width: 480px){.qr-code-container svg{width:160px!important;height:160px!important}.qr-modal-actions{flex-direction:column}}.logo-container{display:flex;align-items:center;gap:12px}.logo-icon{flex-shrink:0}.logo-text{display:flex;flex-direction:column;line-height:1.2}.logo-name{font-weight:700;background:linear-gradient(135deg,#3b82f6,#8b5cf6,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-tagline{font-size:.7em;color:#fff9;font-weight:400}.logo-small .logo-name{font-size:1rem}.logo-small .logo-tagline{display:none}.logo-medium .logo-name{font-size:1.5rem}.logo-large .logo-name{font-size:2rem}.logo-large .logo-tagline{font-size:.8rem}.logo-container:hover .logo-icon{transform:scale(1.05);transition:transform .2s ease}.logo-icon{transition:transform .2s ease}.home-page{min-height:100vh;min-height:100dvh;background:radial-gradient(900px 600px at 20% -10%,rgba(99,102,241,.18),transparent 60%),var(--color-bg);display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.home-container{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-10);max-width:500px;width:100%;border:1px solid var(--glass-border)}.home-header{text-align:center;margin-bottom:var(--space-10)}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.user-info{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2)}.user-name{color:var(--color-text-muted);font-weight:var(--font-medium);font-size:var(--text-sm)}.logout-btn{background:transparent;color:var(--color-accent);border:1px solid var(--color-accent);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.logout-btn:hover{background:var(--color-accent);color:var(--color-text)}.logout-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.home-header h1{color:var(--color-text);font-size:var(--text-3xl);margin-bottom:var(--space-2);font-weight:var(--font-semibold)}.home-header p{color:var(--color-text-muted);font-size:var(--text-base);margin:0}.input-section{margin-bottom:var(--space-8)}.input-group input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--text-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-sizing:border-box;background:var(--color-surface-2);color:var(--color-text)}.action-section{margin-top:var(--space-8)}.primary-btn{width:100%;background:var(--gradient-primary);color:var(--color-text);border:none;padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast);margin-bottom:var(--space-5)}.primary-btn:disabled{background:var(--color-surface-3);color:var(--color-text-subtle);cursor:not-allowed;transform:none;box-shadow:none}.secondary-btn{width:100%;background:transparent;color:var(--color-accent);border:1px solid var(--color-accent);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast)}.secondary-btn:hover{background:var(--color-accent);color:var(--color-text)}.secondary-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.divider{text-align:center;margin:var(--space-8) 0;position:relative}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--color-border)}.divider span{background:var(--color-surface-1);padding:0 var(--space-5);color:var(--color-text-subtle);font-weight:var(--font-medium)}.join-section{margin-top:var(--space-5)}.trust-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2) var(--space-4);list-style:none;margin:var(--space-8) 0 0 0;padding:var(--space-5) 0 0 0;border-top:1px solid var(--color-border)}.trust-strip li{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm)}.trust-strip li:before{content:"✓";color:var(--color-success);font-weight:var(--font-bold)}@media (max-width: 600px){.home-container{padding:var(--space-8) var(--space-5);margin:var(--space-2)}.home-header h1{font-size:var(--text-3xl)}}.join-meeting-page{min-height:100vh;min-height:100dvh;background:radial-gradient(900px 600px at 20% -10%,rgba(99,102,241,.18),transparent 60%),var(--color-bg);display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.join-container{background:var(--color-surface-1);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-10);max-width:500px;width:100%;border:1px solid var(--color-border)}.join-header{text-align:center;margin-bottom:var(--space-10);position:relative}.back-btn{position:absolute;left:0;top:0;background:none;border:none;color:var(--color-accent);font-size:var(--text-base);cursor:pointer;padding:var(--space-2) 0;font-weight:var(--font-medium)}.join-header h1{color:var(--color-text);font-size:var(--text-4xl);margin-bottom:var(--space-2);font-weight:var(--font-semibold)}.join-header p{color:var(--color-text-muted);font-size:var(--text-base);margin:0}.join-form{margin-bottom:var(--space-8)}.input-group{margin-bottom:var(--space-5)}.input-group label{display:block;margin-bottom:var(--space-2);color:var(--color-text-muted);font-weight:var(--font-medium)}.input-group input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:var(--text-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-sizing:border-box;background:var(--color-surface-2);color:var(--color-text)}.input-group input::placeholder{color:var(--color-text-subtle)}.input-group input:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--focus-ring)}.input-group input.error{border-color:var(--color-danger)}.validation-status{display:flex;align-items:center;margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm)}.spinner{width:16px;height:16px;border:2px solid var(--color-border-strong);border-top:2px solid var(--color-accent);border-radius:var(--radius-full);animation:spin 1s linear infinite;margin-right:var(--space-2)}.error-message{background:#f43f5e26;color:var(--color-danger);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);margin-bottom:var(--space-5);border:1px solid rgba(244,63,94,.3)}.primary-btn{width:100%;background:var(--gradient-primary);color:var(--color-text);border:none;padding:var(--space-4) var(--space-5);border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.primary-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-glow)}.join-info{border-top:1px solid var(--color-border);padding-top:var(--space-8)}.join-info h3{color:var(--color-text);margin-bottom:var(--space-4);font-size:var(--text-lg)}.join-info ul{list-style:none;padding:0;margin:0}.join-info li{padding:var(--space-2) 0;color:var(--color-text-muted);position:relative;padding-left:var(--space-6);font-size:var(--text-sm)}.join-info li:before{content:"•";position:absolute;left:0;color:var(--color-accent);font-weight:var(--font-bold)}@media (max-width: 600px){.join-container{padding:var(--space-8) var(--space-5);margin:var(--space-2)}.join-header h1{font-size:var(--text-2xl)}.back-btn{position:static;margin-bottom:var(--space-5);text-align:left}}.participant-list{height:100%;display:flex;flex-direction:column;background:var(--color-surface-1)}.participant-list .panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5);border-bottom:1px solid var(--color-border)}.participant-list .panel-header h3{margin:0;color:var(--color-text);font-size:var(--text-xl);font-weight:var(--font-semibold)}.participant-list .close-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.participant-list .close-btn svg{width:20px;height:20px}.participant-list .close-btn:hover{color:var(--color-text);background:var(--color-surface-2)}.participant-list .close-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.panel-content{flex:1;padding:var(--space-4);overflow-y:auto}.no-participants{text-align:center;color:var(--color-text-muted);padding:var(--space-10) var(--space-5)}.no-participants p{margin:0;font-size:var(--text-sm)}.participant-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-2);background:var(--color-surface-2);transition:background var(--transition-fast)}.participant-item:hover{background:var(--color-surface-3)}.participant-item.current-user{background:var(--color-accent-soft);border:1px solid var(--color-border-strong)}.participant-item:last-child{margin-bottom:0}.participant-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-weight:var(--font-semibold);color:var(--color-text);font-size:var(--text-lg);flex-shrink:0}.participant-info{flex:1;min-width:0}.participant-list .participant-name{position:static;inset:auto;background:none;padding:0;display:flex;align-items:center;gap:var(--space-2);color:var(--color-text);font-weight:var(--font-medium);font-size:var(--text-sm);margin-bottom:var(--space-1);min-width:0}.participant-list .participant-name .name-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.host-badge{display:inline-block;padding:var(--space-1) var(--space-2);background:var(--color-accent-soft);color:var(--color-primary-300);font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px}.participant-status{display:flex;gap:var(--space-2);align-items:center}.status-indicator{display:flex;align-items:center;justify-content:center;transition:opacity var(--transition-fast)}.status-indicator svg{width:16px;height:16px}.status-indicator.on{opacity:1;color:var(--color-success)}.status-indicator.off{opacity:.9;color:var(--color-text-subtle)}.status-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);background:var(--color-surface-3)}.status-btn svg{width:18px;height:18px}.status-btn.on{color:var(--color-success);background:#34d39926}.status-btn.on:hover{background:#34d3994d;transform:scale(1.05)}.status-btn.off{color:var(--color-warning);background:#fbbf2429}.status-btn.off:hover{background:#fbbf244d;transform:scale(1.05)}.status-btn:active{transform:scale(.95)}.status-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.panel-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border)}.meeting-id{margin:0;color:var(--color-text-muted);font-size:var(--text-xs);text-align:center}.panel-content::-webkit-scrollbar{width:6px}.panel-content::-webkit-scrollbar-track{background:var(--color-surface-2);border-radius:var(--radius-sm)}.panel-content::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-sm)}.panel-content::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle)}.host-controls{display:flex;gap:var(--space-1);margin-left:auto}.host-control-btn{width:32px;height:32px;border-radius:var(--radius-sm);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);background:var(--color-surface-3);color:var(--color-text)}.host-control-btn svg{width:16px;height:16px}.host-control-btn:hover{transform:scale(1.1)}.host-control-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.host-control-btn.mute-btn{background:#fbbf2433}.host-control-btn.mute-btn:hover{background:#fbbf2466}.host-control-btn.video-off-btn{background:var(--color-accent-soft)}.host-control-btn.video-off-btn:hover{background:#6366f166}.host-control-btn.transfer-btn{background:#34d39933}.host-control-btn.transfer-btn:hover{background:#34d39966}.host-control-btn.kick-btn{background:#f43f5e33}.host-control-btn.kick-btn:hover{background:#f43f5e66}.host-hint{margin:var(--space-2) 0 0 0;color:var(--color-text-muted);font-size:var(--text-xs);text-align:center;font-style:italic}.confirm-dialog-panel{width:min(320px,100%)!important}.confirm-dialog-panel p{margin:0 0 var(--space-5) 0;color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.5}.confirm-dialog-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.confirm-dialog-actions button{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);border:none;cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast)}.confirm-dialog-actions button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.confirm-dialog-actions .cancel-btn{background:var(--color-surface-2);color:var(--color-text)}.confirm-dialog-actions .cancel-btn:hover{background:var(--color-surface-3)}.confirm-dialog-actions .confirm-btn{background:var(--color-accent);color:var(--color-text)}.confirm-dialog-actions .confirm-btn:hover{background:var(--color-accent-hover)}.confirm-dialog-actions .confirm-btn.danger{background:var(--color-danger)}.confirm-dialog-actions .confirm-btn.danger:hover{background:var(--color-danger-hover)}.participant-item.phone-participant{background:var(--color-accent-soft);border:1px solid var(--color-border-strong)}.participant-item.phone-participant.connected{background:#34d3991a;border-color:#34d3994d}.participant-item.phone-participant.dialing,.participant-item.phone-participant.ringing{background:#fbbf241a;border-color:#fbbf244d}.participant-avatar.phone-avatar{background:var(--gradient-primary)}.participant-avatar.phone-avatar svg{width:20px;height:20px}.phone-participant-name{color:var(--color-text);font-weight:var(--font-semibold);font-size:var(--text-sm);flex-shrink:0;display:inline-block}.participant-list .participant-item.phone-participant .participant-name{flex-wrap:wrap}.phone-badge{display:inline-block;padding:var(--space-1) var(--space-2);background:var(--color-accent-soft);color:var(--color-primary-300);font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-full);margin-left:var(--space-1);flex-shrink:0}.participant-list .call-status{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted)}.participant-list .call-status.connected{color:var(--color-success)}.participant-list .call-status.dialing,.participant-list .call-status.ringing{color:var(--color-warning)}.participant-list .call-status.failed{color:var(--color-danger)}.status-spinner svg{width:14px;height:14px;animation:spin 1s linear infinite}.host-control-btn.end-call-btn{background:#f43f5e33}.host-control-btn.end-call-btn:hover{background:var(--color-danger)}.host-control-btn.end-call-btn svg{color:var(--color-danger)}.host-control-btn.end-call-btn:hover svg{color:var(--color-text)}.add-phone-section{border-top:1px solid var(--color-border);padding:var(--space-4)}.add-phone-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-accent-soft);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-primary-300);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.add-phone-btn:hover{background:#6366f14d;border-color:var(--color-accent);color:var(--color-text)}.add-phone-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.add-phone-btn svg{width:18px;height:18px}.add-phone-form{background:var(--color-surface-2);border-radius:var(--radius-md);overflow:hidden}.add-phone-form .form-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-accent-soft);border-bottom:1px solid var(--color-border-strong)}.add-phone-form .form-header span{color:var(--color-primary-300);font-size:var(--text-sm);font-weight:var(--font-medium)}.close-form-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.close-form-btn svg{width:16px;height:16px;color:var(--color-text-muted)}.close-form-btn:hover{background:var(--color-surface-3)}.close-form-btn:hover svg{color:var(--color-text)}.close-form-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.form-fields{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.form-fields input{padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);transition:all var(--transition-fast)}.form-fields input::placeholder{color:var(--color-text-subtle)}.form-fields input:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--focus-ring)}.form-fields input:focus-visible{outline:none;box-shadow:var(--focus-ring)}.form-fields input:disabled{opacity:.6;cursor:not-allowed}.dial-error{padding:var(--space-2) var(--space-3);background:#f43f5e26;border:1px solid rgba(244,63,94,.3);border-radius:var(--radius-sm);color:var(--color-danger);font-size:var(--text-sm)}.call-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-success);border:none;border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast)}.call-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.call-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.call-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.call-btn svg{width:16px;height:16px}.participant-list .btn-spinner svg{width:16px;height:16px;animation:spin 1s linear infinite}.hand-badge{font-size:var(--text-sm);line-height:1;flex-shrink:0}.chat-panel{height:100%;display:flex;flex-direction:column;background:var(--color-surface-1)}.chat-panel .panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5);border-bottom:1px solid var(--color-border)}.chat-panel .panel-header h3{margin:0;color:var(--color-text);font-size:var(--text-xl);font-weight:var(--font-semibold)}.chat-panel .close-btn{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-2xl);cursor:pointer;padding:var(--space-1);line-height:1;transition:color var(--transition-fast)}.chat-panel .close-btn:hover{color:var(--color-text)}.chat-panel .close-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.chat-messages{flex:1;padding:var(--space-5);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4)}.empty-chat{text-align:center;color:var(--color-text-muted);margin-top:var(--space-10)}.empty-chat p{margin:0 0 var(--space-2) 0;font-weight:var(--font-medium)}.empty-chat small{font-size:var(--text-xs);color:var(--color-text-subtle)}.message{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);max-width:85%;word-wrap:break-word}.own-message{align-self:flex-end;background:var(--color-accent-soft);border:1px solid var(--color-border-strong)}.other-message{align-self:flex-start;background:var(--color-surface-2);border:1px solid var(--color-border)}.message-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.sender-name{font-weight:var(--font-semibold);color:var(--color-accent);font-size:var(--text-xs)}.own-message .sender-name{color:var(--color-primary-300)}.timestamp{font-size:var(--text-xs);color:var(--color-text-subtle)}.chat-input{padding:var(--space-5);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2)}.chat-input textarea{background:var(--color-surface-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-3);color:var(--color-text);font-family:inherit;font-size:var(--text-sm);resize:none;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.chat-input textarea::placeholder{color:var(--color-text-subtle)}.chat-input textarea:focus{border-color:var(--color-accent);box-shadow:var(--focus-ring)}.chat-input textarea:focus-visible{outline:none;box-shadow:var(--focus-ring)}.send-btn{align-self:flex-end;background:var(--color-accent);color:var(--color-text);border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:background-color var(--transition-fast)}.send-btn:hover:not(:disabled){background:var(--color-accent-hover)}.send-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.send-btn:disabled{background:var(--color-surface-3);cursor:not-allowed}.message-item{display:flex;flex-direction:column;gap:var(--space-1)}.message-header{display:flex;align-items:center;gap:var(--space-2)}.message-sender{font-weight:var(--font-semibold);color:var(--color-accent);font-size:var(--text-sm)}.message-time{font-size:var(--text-xs);color:var(--color-text-muted)}.message-content{color:var(--color-text);line-height:1.4;font-size:var(--text-sm);word-wrap:break-word}.meeting-info-content{padding:0}.info-section{margin-bottom:var(--space-5)}.info-section label{display:block;font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.5px}.info-row{display:flex;align-items:center;gap:var(--space-3);background:var(--color-surface-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm)}.info-value{flex:1;color:var(--color-text);font-size:var(--text-sm);word-break:break-all}.info-value.monospace{font-family:var(--font-mono);font-size:var(--text-lg);letter-spacing:1px}.info-value.link-value{font-size:var(--text-sm);color:var(--color-primary-300)}.copy-btn{background:var(--color-accent-soft);border:1px solid rgba(99,102,241,.4);color:var(--color-primary-300);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.copy-btn:hover{background:#6366f14d;border-color:#6366f199}.copy-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.copy-btn.copied{background:#34d39933;border-color:#34d39966;color:var(--color-success)}.qr-section{text-align:center;margin:var(--space-6) 0;padding:var(--space-5);background:var(--color-surface-2);border-radius:var(--radius-lg)}.qr-section label{display:block;font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-4);text-transform:uppercase;letter-spacing:.5px}.qr-container{display:inline-block;padding:var(--space-3);background:#fff;border-radius:var(--radius-lg)}.qr-hint{margin:var(--space-4) 0 0 0;font-size:var(--text-sm);color:var(--color-text-subtle)}.share-actions{display:flex;gap:var(--space-3);margin-top:var(--space-6)}.meeting-info-panel .share-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:14px var(--space-5);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast)}.meeting-info-panel .share-btn .icon{font-size:1.1rem}.meeting-info-panel .share-btn.primary{background:var(--gradient-primary);color:var(--color-text)}.meeting-info-panel .share-btn.primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}.meeting-info-panel .share-btn.primary:focus-visible{outline:none;box-shadow:var(--focus-ring)}.meeting-info-panel .share-btn.secondary{background:var(--color-surface-3);color:var(--color-text);border:1px solid var(--color-border-strong)}.meeting-info-panel .share-btn.secondary:hover{background:var(--color-surface-2)}.meeting-info-panel .share-btn.secondary:focus-visible{outline:none;box-shadow:var(--focus-ring)}@media (max-width: 480px){.share-actions{flex-direction:column}.qr-container{padding:var(--space-2)}.qr-container svg{width:120px!important;height:120px!important}}.meeting-room-page{height:100vh;height:100dvh;background:radial-gradient(1200px 800px at 15% -10%,rgba(99,102,241,.1),transparent 60%),radial-gradient(1000px 700px at 110% 110%,rgba(139,92,246,.08),transparent 55%),var(--color-bg);color:var(--color-text);overflow:hidden;overscroll-behavior:none;display:flex;flex-direction:column;position:relative}.meeting-room-page.fullscreen-mode{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;height:100dvh;z-index:calc(var(--z-toast) + 100)}.meeting-header-minimal{position:absolute;top:0;left:0;right:0;padding:calc(12px + env(safe-area-inset-top,0px)) calc(20px + env(safe-area-inset-right,0px)) 12px calc(20px + env(safe-area-inset-left,0px));background:linear-gradient(to bottom,rgba(6,6,12,.85),transparent);display:flex;justify-content:space-between;align-items:center;z-index:var(--z-controls);opacity:0;transform:translateY(-100%);transition:opacity var(--transition-slow),transform var(--transition-slow)}.meeting-header-minimal.visible{opacity:1;transform:translateY(0)}.header-hover-zone{position:absolute;top:0;left:0;right:0;height:60px;z-index:calc(var(--z-controls) - 1)}.header-left{display:flex;align-items:center;gap:12px}.meeting-id-badge{background:var(--glass-bg);border:1px solid var(--glass-border);padding:6px 12px;border-radius:var(--radius-full);font-size:var(--text-sm);font-family:var(--font-mono);font-weight:var(--font-medium);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.participant-count{background:var(--color-accent-soft);color:var(--color-primary-300);padding:4px 10px;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold)}.header-right{display:flex;gap:8px}.header-btn{width:36px;height:36px;background:#ffffff1a;border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-btn svg{width:18px;height:18px}.header-btn:hover{background:#fff3;transform:scale(1.05)}.meeting-layout{display:flex;flex:1;min-height:0;overflow:hidden}.main-content{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;position:relative}.video-area-fullscreen{flex:1;display:flex;align-items:center;justify-content:center;position:relative;background:var(--color-surface-1);overflow:hidden}.participants-grid{width:100%;height:100%;display:grid;gap:var(--space-3);padding:var(--space-4);box-sizing:border-box;place-content:center;place-items:center}.participants-grid.scrollable{place-content:start stretch;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--space-16) + env(safe-area-inset-bottom,0px))}.participants-grid.scrollable>.participant-video{height:100%}.participants-grid>.participant-video{width:100%;height:100%;max-width:min(100%,1100px);max-height:100%;justify-self:center;align-self:center}.participants-grid.solo-mode{grid-template-columns:1fr;grid-template-rows:1fr}.participant-video{position:relative;container-type:size;background:var(--color-surface-1);border-radius:var(--radius-lg);overflow:hidden;width:100%;height:100%;min-height:0;min-width:0;border:1px solid var(--color-border);box-shadow:var(--shadow-md);transition:box-shadow var(--transition-base)}.participant-video video{width:100%;height:100%;object-fit:cover}.participant-video.speaking{box-shadow:0 0 0 2px var(--color-accent),var(--shadow-glow)}.participant-name{position:absolute;bottom:0;left:0;right:0;padding:var(--space-3) var(--space-4);background:linear-gradient(transparent,#06060cd9);display:flex;align-items:center;gap:var(--space-2)}.participant-name span{font-size:var(--text-sm);font-weight:var(--font-medium)}.participant-name .name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge.host{background:var(--color-accent-soft);color:var(--color-primary-300);padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold)}.icon-muted{margin-left:auto;opacity:.85}.icon-muted svg{width:16px;height:16px;color:var(--color-danger)}.tile-status-cluster{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-2);flex-shrink:0}.conn-quality{display:inline-flex;align-items:center}.conn-quality.conn-excellent,.conn-quality.conn-good{color:var(--color-success)}.conn-quality.conn-poor{color:var(--color-warning);background:#fbbf242e;border-radius:var(--radius-sm);padding:1px 3px}.conn-quality.conn-lost{color:var(--color-danger);background:#f43f5e2e;border-radius:var(--radius-sm);padding:1px 3px;animation:connLostPulse 1.2s ease-in-out infinite}@keyframes connLostPulse{0%,to{opacity:1}50%{opacity:.45}}.hand-indicator{display:inline-flex;align-items:center;color:var(--color-warning);background:#fbbf242e;border-radius:var(--radius-sm);padding:1px 3px}.hand-indicator svg{width:15px;height:15px}.reaction-control{position:relative;display:flex;align-items:center}.reaction-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay)}.reaction-picker{position:absolute;bottom:calc(100% + var(--space-3));left:50%;transform:translate(-50%);display:flex;gap:var(--space-2);padding:var(--space-2);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);z-index:calc(var(--z-overlay) + 1);animation:reactionPickerIn var(--transition-base);max-width:calc(100vw - var(--space-4));flex-wrap:wrap;justify-content:center}@keyframes reactionPickerIn{0%{opacity:0;transform:translate(-50%) translateY(6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.reaction-emoji-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:1.4rem;background:transparent;border:none;border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.reaction-emoji-btn:hover{background:#ffffff1a;transform:scale(1.15)}.reaction-emoji-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.reaction-float-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:var(--z-controls)}.reaction-float{position:absolute;bottom:90px;left:50%;font-size:2.2rem;animation:reactionFloat 2.6s ease-out forwards}@keyframes reactionFloat{0%{opacity:0;transform:translate(-50%) scale(.6)}12%{opacity:1;transform:translate(-50%,-20px) scale(1)}to{opacity:0;transform:translate(-50%,-220px) scale(.9)}}.reaction-float:nth-child(2n){margin-left:40px}.reaction-float:nth-child(3n){margin-left:-50px}.reaction-float:nth-child(4n){margin-left:80px}.reaction-float:nth-child(5n){margin-left:-90px}.participant-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);background:radial-gradient(circle at 50% 40%,rgba(99,102,241,.12),transparent 60%),linear-gradient(135deg,var(--color-surface-1) 0%,var(--color-surface-2) 100%)}.placeholder-avatar{width:clamp(64px,28cqmin,180px);height:clamp(64px,28cqmin,180px);border-radius:var(--radius-full);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:clamp(1.6rem,13cqmin,4.5rem);font-weight:var(--font-semibold);box-shadow:var(--shadow-glow)}.connecting-status{margin-top:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-accent-soft);color:var(--color-primary-300);font-size:var(--text-sm);font-weight:var(--font-medium);animation:pulse 1.5s ease-in-out infinite}.solo-view{width:100%;height:100%;position:relative;background:var(--color-bg);border-radius:12px;overflow:hidden}.solo-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.solo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-surface-1) 0%,var(--color-surface-2) 100%)}.solo-avatar{width:150px;height:150px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:600;box-shadow:0 20px 60px #6366f14d}.solo-overlay{position:absolute;bottom:0;left:0;right:0;padding:24px;background:linear-gradient(transparent,#000c);display:flex;justify-content:space-between;align-items:flex-end}.solo-info{display:flex;align-items:center;gap:12px}.solo-name{font-size:1.2rem;font-weight:600;color:#fff}.solo-muted svg{width:20px;height:20px;color:var(--color-danger)}.solo-waiting{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.solo-waiting p{margin:0;color:var(--color-text-muted);font-size:.9rem}.share-btn-mini{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#6366f1cc;border:none;border-radius:8px;color:#fff;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.share-btn-mini svg{width:14px;height:14px}.share-btn-mini:hover{background:#6366f1;transform:translateY(-1px)}.waiting-room{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-surface-1) 0%,var(--color-surface-2) 100%)}.waiting-content{text-align:center}.waiting-avatar{width:100px;height:100px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:600;margin:0 auto 24px;box-shadow:0 10px 40px #6366f14d}.waiting-content h2{font-size:1.5rem;font-weight:600;margin-bottom:8px;color:#fff}.waiting-content p{color:var(--color-text-muted);margin-bottom:24px}.share-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:var(--gradient-primary);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.share-btn svg{width:18px;height:18px}.share-btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px #6366f166}.screen-share-layout{display:flex;flex-direction:column;width:100%;height:100%}.screen-share-main{flex:1;min-height:0;position:relative;background:#000;border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center}.screen-share-main video{width:100%;height:100%;object-fit:contain}.screen-share-self{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-3);padding:var(--space-8);max-width:420px;color:var(--color-text)}.screen-share-self-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:var(--radius-full);background:var(--color-accent-soft);color:var(--color-primary-300);margin-bottom:var(--space-2)}.screen-share-self-icon svg{width:34px;height:34px}.screen-share-self h3{margin:0;font-size:var(--text-xl);font-weight:var(--font-semibold)}.screen-share-self p{margin:0;font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5}.participants-strip{height:120px;display:flex;gap:4px;overflow-x:auto;flex-shrink:0;padding:4px 0}.participants-strip::-webkit-scrollbar{height:4px}.participants-strip::-webkit-scrollbar-track{background:transparent}.participants-strip::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.strip-tile{width:160px;min-width:160px;height:100%;border-radius:8px;overflow:hidden;position:relative;background:var(--color-surface-1)}.strip-tile video{width:100%;height:100%;object-fit:cover}.strip-tile.speaking{box-shadow:0 0 0 2px var(--color-success)}.strip-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-surface-1) 0%,var(--color-surface-2) 100%)}.strip-avatar{width:40px;height:40px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600}.strip-name{position:absolute;bottom:0;left:0;right:0;padding:4px 8px;background:linear-gradient(transparent,#000c);display:flex;align-items:center;gap:4px;font-size:.7rem;font-weight:500}.strip-name .icon-muted svg{width:12px;height:12px}.screen-share-badge{position:absolute;top:16px;left:16px;background:#34d399e6;padding:8px 16px;border-radius:8px;font-size:.85rem;font-weight:600;z-index:11}.screen-share-stop-btn{position:absolute;top:16px;right:16px;display:flex;align-items:center;gap:6px;padding:8px 16px;background:#f43f5ee6;border:none;border-radius:8px;color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;z-index:11}.screen-share-stop-btn svg{width:16px;height:16px}.screen-share-stop-btn:hover{background:#f43f5e;transform:scale(1.02)}.screen-share-error-toast{position:fixed;top:80px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:12px 20px;background:#f43f5ef2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;box-shadow:0 8px 32px #0000004d;z-index:var(--z-toast);animation:slideDown .3s ease;max-width:90%}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toast-icon svg{width:20px;height:20px;color:#fff}.toast-message{color:#fff;font-size:.9rem;font-weight:500;line-height:1.4}.toast-close{background:#fff3;border:none;border-radius:6px;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.toast-close svg{width:16px;height:16px;color:#fff}.toast-close:hover{background:#ffffff4d}.ctrl-btn.unsupported{opacity:.6}.ctrl-unsupported-indicator{position:absolute;top:4px;right:4px;width:8px;height:8px;background:var(--color-danger);border-radius:50%;border:2px solid rgba(0,0,0,.5)}.self-view-floating{position:absolute;width:160px;height:120px;background:var(--color-surface-1);border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #00000080;border:2px solid rgba(255,255,255,.1);z-index:calc(var(--z-controls) - 10);cursor:grab;transition:box-shadow .2s,border-color .2s}.self-view-floating:hover{border-color:#6366f180;box-shadow:0 12px 40px #0009}.self-view-floating.dragging{cursor:grabbing;box-shadow:0 16px 50px #000000b3;border-color:#6366f1cc;transform:scale(1.02)}.self-view-floating.speaking{border-color:var(--color-success);box-shadow:0 0 0 2px var(--color-success),0 8px 32px #34d3994d}.self-view-floating video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.self-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-surface-2) 0%,var(--color-surface-1) 100%)}.self-avatar{width:50px;height:50px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:600}.self-label{position:absolute;bottom:0;left:0;right:0;padding:6px 10px;background:linear-gradient(transparent,#000c);display:flex;align-items:center;justify-content:space-between;font-size:.75rem;font-weight:500}.self-muted svg{width:14px;height:14px;color:var(--color-danger)}.drag-handle{position:absolute;top:6px;left:50%;transform:translate(-50%);width:30px;height:4px;background:#ffffff4d;border-radius:2px;opacity:0;transition:opacity .2s}.self-view-floating:hover .drag-handle{opacity:1}@media (hover: none){.drag-handle{opacity:.6}}.controls-minimal{position:absolute;bottom:calc(24px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(140%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(140%);border-radius:var(--radius-xl);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);z-index:var(--z-controls);transition:opacity var(--transition-slow),transform var(--transition-slow)}.controls-minimal.visible{opacity:1;transform:translate(-50%) translateY(0)}.controls-minimal.hidden{opacity:0;transform:translate(-50%) translateY(100px);pointer-events:none}.ctrl-btn{width:48px;height:48px;background:#ffffff14;border:none;border-radius:var(--radius-lg);color:var(--color-text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base);position:relative}.ctrl-btn svg{width:22px;height:22px}.ctrl-btn:hover{background:#ffffff29;transform:translateY(-2px)}.ctrl-btn:active{transform:scale(.95)}.ctrl-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.ctrl-btn.off{background:#fbbf242e;color:var(--color-warning)}.ctrl-btn.off:hover{background:#fbbf2447}.ctrl-btn.active{background:var(--color-accent-soft);color:var(--color-primary-300)}.ctrl-btn.leave{background:#f43f5e38;color:var(--color-danger)}.ctrl-btn.leave:hover{background:var(--color-danger);color:#fff}.ctrl-divider{width:1px;height:28px;background:var(--color-border-strong);margin:0 var(--space-1)}.ctrl-badge{position:absolute;top:-4px;right:-4px;background:var(--gradient-primary);color:#fff;font-size:.65rem;font-weight:var(--font-bold);padding:2px 6px;border-radius:var(--radius-full);min-width:18px;text-align:center;box-shadow:var(--shadow-sm)}.toggle-controls-minimal{position:absolute;bottom:calc(var(--space-2) + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);width:48px;height:20px;background:#00000080;border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;z-index:61;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base)}.toggle-controls-minimal:hover{background:#000000b3;border-color:var(--color-border-strong)}@media (hover: none),(max-width: 768px){.toggle-controls-minimal{width:64px;height:28px}}.toggle-controls-minimal.hidden-state{bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));background:var(--color-accent-soft);border-color:var(--color-accent)}.toggle-arrow{font-size:10px}.sidebar{width:0;background:var(--color-surface-1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid rgba(255,255,255,.1);transition:width .3s ease;overflow:hidden;flex-shrink:0;position:relative}.sidebar.visible{width:320px;z-index:calc(var(--z-controls) + 50)}.connecting-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay)}.connecting-content{text-align:center;color:var(--color-text)}.connecting-logo{display:block;margin:0 auto var(--space-6);filter:drop-shadow(0 8px 24px rgba(99,102,241,.35));animation:connecting-logo-float 2.4s ease-in-out infinite}@keyframes connecting-logo-float{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-6px) scale(1.03)}}@media (prefers-reduced-motion: reduce){.connecting-logo{animation:none}}.connecting-content h2{margin:0 0 var(--space-3) 0;font-size:var(--text-2xl, 1.5rem);font-weight:600}.connecting-content p{margin:0;color:var(--color-text-muted)}.error-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay)}.error-content{background:var(--color-surface-1);padding:32px;border-radius:16px;text-align:center;max-width:400px;width:90%;border:1px solid rgba(255,255,255,.1)}.error-content h3{margin:0 0 16px;color:var(--color-danger);font-size:1.3rem}.error-content p{margin:0 0 24px;color:var(--color-text-muted);line-height:1.5}.error-content button{background:var(--color-accent);color:#fff;border:none;padding:12px 28px;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.error-content button:hover{background:var(--color-accent-active);transform:translateY(-1px)}.meeting-ended-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000eb;display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);animation:fadeIn .3s ease}.meeting-ended-content{background:var(--color-surface-1);padding:40px 32px;border-radius:16px;text-align:center;max-width:380px;width:90%;border:1px solid rgba(255,255,255,.1)}.meeting-ended-icon{width:48px;height:48px;margin:0 auto 16px;color:var(--color-danger-hover)}.meeting-ended-icon svg{width:100%;height:100%}.meeting-ended-content h3{margin:0 0 12px;color:#fff;font-size:1.4rem;font-weight:600}.meeting-ended-content p{margin:0 0 8px;color:var(--color-text-muted);line-height:1.5;font-size:.95rem}.meeting-ended-countdown{color:var(--color-text-muted)!important;font-size:.85rem!important;margin-bottom:20px!important}.meeting-ended-content button{background:var(--color-accent);color:#fff;border:none;padding:12px 28px;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.meeting-ended-content button:hover{background:var(--color-accent-active);transform:translateY(-1px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}@media (max-width: 768px){.meeting-header-minimal{padding:calc(var(--space-2) + env(safe-area-inset-top,0px)) var(--space-4) var(--space-2)}.header-btn{width:40px;height:40px}.header-btn svg{width:16px;height:16px}.participants-strip{height:90px}.strip-tile{width:120px;min-width:120px}.strip-avatar{width:32px;height:32px;font-size:.85rem}.strip-name{font-size:var(--text-xs);padding:3px 6px}.screen-share-badge{top:12px;left:12px;padding:6px 12px;font-size:.75rem}.screen-share-stop-btn{top:12px;right:12px;padding:6px 12px;font-size:.75rem}.screen-share-stop-btn svg{width:14px;height:14px}.screen-share-error-toast{top:60px;padding:10px 16px;gap:10px}.toast-message{font-size:.8rem}.toast-icon svg{width:18px;height:18px}.participants-grid{gap:4px;padding:0}.participant-video{border-radius:8px}.participant-name{padding:var(--space-2) var(--space-3)}.participant-name span{font-size:var(--text-sm)}.self-view-floating{width:120px;height:90px;border-radius:8px}.self-avatar{width:40px;height:40px;font-size:1rem}.self-label{padding:4px 8px;font-size:.7rem}.controls-minimal{bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 2 * var(--space-3));padding:var(--space-2) var(--space-3);gap:var(--space-2);border-radius:var(--radius-lg)}.ctrl-btn{width:44px;height:44px;border-radius:var(--radius-md)}.ctrl-btn svg{width:20px;height:20px}.ctrl-divider{height:24px}.sidebar{width:100%;height:0;border-left:none;border-top:1px solid var(--glass-border);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);position:absolute;bottom:0;left:0;right:0;z-index:calc(var(--z-controls) + 1);padding-bottom:env(safe-area-inset-bottom,0px)}.sidebar.visible{width:100%;height:60vh;height:60dvh;box-shadow:var(--shadow-lg)}.waiting-avatar{width:80px;height:80px;font-size:2rem}.waiting-content h2{font-size:1.2rem}.waiting-content p{font-size:.9rem;padding:0 20px}.share-btn{padding:10px 20px;font-size:.9rem}}@media (max-width: 480px){.controls-minimal{padding:var(--space-2);gap:var(--space-1)}.ctrl-btn{width:44px;height:44px;border-radius:var(--radius-md)}.ctrl-btn svg{width:20px;height:20px}.ctrl-divider{height:20px;margin:0 2px}.self-view-floating{width:110px;height:82px}}@media (max-height: 500px) and (orientation: landscape){.participants-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.self-view-floating{width:120px;height:90px}.participants-strip{height:80px}.strip-tile{width:110px;min-width:110px}.screen-share-badge{top:8px;left:8px;padding:4px 10px;font-size:.7rem}.screen-share-stop-btn{top:8px;right:8px;padding:4px 10px;font-size:.7rem}.screen-share-stop-btn span{display:none}.screen-share-error-toast{top:40px;padding:8px 14px}.controls-minimal{bottom:12px;padding:6px 12px}.ctrl-btn{width:36px;height:36px}}.leave-modal-content{padding:0}.leave-modal-content p{color:#ffffffb3;font-size:14px;margin:0 0 20px;line-height:1.5}.leave-modal-actions{display:flex;flex-direction:column;gap:12px}.leave-btn{display:flex;align-items:center;gap:16px;width:100%;padding:16px 20px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;cursor:pointer;transition:all .2s;text-align:left}.leave-btn:hover{background:#ffffff1a;border-color:#fff3}.leave-btn .btn-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;flex-shrink:0}.leave-btn .btn-icon svg{width:22px;height:22px;color:#fff}.leave-btn.just-leave .btn-icon{background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-active) 100%)}.leave-btn.end-all .btn-icon{background:linear-gradient(135deg,var(--color-danger) 0%,var(--color-danger-hover) 100%)}.leave-btn .btn-text{display:flex;flex-direction:column;gap:4px}.leave-btn .btn-title{color:#fff;font-size:15px;font-weight:600}.leave-btn .btn-desc{color:#ffffff80;font-size:12px}.leave-btn.just-leave:hover{border-color:var(--color-accent);box-shadow:0 0 0 1px #6366f14d}.leave-btn.end-all:hover{border-color:var(--color-danger);box-shadow:0 0 0 1px #ef44444d}@media (max-width: 480px){.leave-modal{margin:12px}.leave-modal-header{padding:16px 20px}.leave-modal-content{padding:20px}.leave-btn{padding:14px 16px;gap:12px}.leave-btn .btn-icon{width:40px;height:40px}}.prejoin-page{min-height:100vh;min-height:100dvh;background:radial-gradient(900px 600px at 20% -10%,rgba(99,102,241,.18),transparent 60%),var(--color-bg);display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.prejoin-container{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-10);max-width:800px;width:100%}.prejoin-header{text-align:center;margin-bottom:var(--space-10);position:relative}.back-btn{position:absolute;left:0;top:0;background:none;border:none;color:var(--color-accent);font-size:var(--text-base);cursor:pointer;padding:var(--space-2) 0;font-weight:var(--font-medium);transition:color var(--transition-fast)}.back-btn:hover{color:var(--color-accent-hover)}.back-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.prejoin-header h1{color:var(--color-text);font-size:var(--text-4xl);margin-bottom:var(--space-2);font-weight:var(--font-semibold)}.prejoin-header p{color:var(--color-text-muted);font-size:var(--text-base);margin:0}.prejoin-content{display:grid;grid-template-columns:1fr 300px;gap:var(--space-10);margin-bottom:var(--space-8)}.video-preview{display:flex;flex-direction:column;gap:var(--space-5)}.video-container{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:var(--radius-lg);overflow:hidden;display:flex;align-items:center;justify-content:center}.preview-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.loading-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);color:var(--color-text)}.spinner{width:40px;height:40px;border:3px solid var(--color-border-strong);border-top:3px solid var(--color-accent);border-radius:var(--radius-full);animation:spin 1s linear infinite}.video-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);color:var(--color-text)}.avatar{width:80px;height:80px;border-radius:var(--radius-full);background:var(--color-accent);display:flex;align-items:center;justify-content:center;font-size:var(--text-3xl);font-weight:var(--font-semibold);color:var(--color-text)}.media-controls{display:flex;gap:var(--space-4);justify-content:center}.control-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-5);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-base);min-width:100px}.control-btn-icon{display:inline-flex}.control-btn-icon svg{width:26px;height:26px}.control-btn.active{background:var(--color-accent-soft);color:var(--color-primary-300)}.control-btn.inactive{background:#fbbf242e;color:var(--color-warning)}.control-btn:disabled{background:var(--color-surface-3);color:var(--color-text-subtle);cursor:not-allowed}.control-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.control-btn span{font-size:var(--text-sm);font-weight:var(--font-medium)}.audio-meter-section{margin-top:var(--space-5);padding:var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md)}.audio-meter-section label{display:block;margin-bottom:var(--space-2);color:var(--color-text);font-weight:var(--font-medium);font-size:var(--text-sm)}.audio-meter-container{display:flex;flex-direction:column;gap:var(--space-2)}.audio-meter{height:12px;background:var(--color-surface-3);border-radius:var(--radius-sm);overflow:hidden}.audio-meter-fill{height:100%;background:linear-gradient(90deg,var(--color-success) 0%,#38a169 50%,#2f855a 100%);border-radius:var(--radius-sm);transition:width .05s ease-out}.audio-level-text{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center}.test-speaker-btn{margin-top:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:2px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-base)}.test-speaker-btn:hover:not(:disabled){background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text)}.test-speaker-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.test-speaker-btn:disabled{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text);cursor:not-allowed;opacity:.7}.device-settings{background:var(--color-surface-2);border:1px solid var(--color-border);padding:var(--space-6);border-radius:var(--radius-lg)}.device-settings h3{margin:0 0 var(--space-5) 0;color:var(--color-text);font-size:var(--text-xl)}.device-group{margin-bottom:var(--space-5)}.device-group label{display:block;margin-bottom:var(--space-2);color:var(--color-text);font-weight:var(--font-medium);font-size:var(--text-sm)}.device-group select{width:100%;padding:var(--space-3);border:2px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);background:var(--color-surface-2);color:var(--color-text);cursor:pointer;transition:all var(--transition-base)}.device-group select:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--focus-ring)}.device-group select:disabled{background:var(--color-surface-3);color:var(--color-text-subtle);cursor:not-allowed}.error-message{background:#f43f5e1f;color:var(--color-danger);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-5);border:1px solid rgba(244,63,94,.3)}.meeting-info{background:var(--color-surface-2);border:1px solid var(--color-border);padding:var(--space-6);border-radius:var(--radius-lg);margin-bottom:var(--space-8)}.meeting-info h3{margin:0 0 var(--space-5) 0;color:var(--color-text);font-size:var(--text-xl)}.info-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.info-item:last-child{border-bottom:none}.info-item .label{color:var(--color-text-muted);font-weight:var(--font-medium)}.info-item .value{color:var(--color-text);font-weight:var(--font-semibold)}.primary-btn{width:100%;background:var(--gradient-primary);color:var(--color-text);border:none;padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-lg);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-base)}.primary-btn:hover:not(:disabled){box-shadow:var(--shadow-glow)}.primary-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.primary-btn:disabled{background:var(--color-surface-3);color:var(--color-text-subtle);cursor:not-allowed}@media (max-width: 900px){.prejoin-content{grid-template-columns:1fr;gap:var(--space-8)}.video-preview{order:-1}}@media (max-width: 600px){.prejoin-container{padding:var(--space-8) var(--space-5);margin:var(--space-2)}.prejoin-header h1{font-size:var(--text-3xl)}.back-btn{position:static;margin-bottom:var(--space-5);text-align:left}.media-controls{flex-direction:column;align-items:center}.control-btn{width:100%;max-width:200px}}.auth-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-10);background:radial-gradient(900px 600px at 20% -10%,rgba(99,102,241,.18),transparent 60%),radial-gradient(800px 600px at 110% 110%,rgba(139,92,246,.14),transparent 55%),var(--color-bg);padding:var(--space-10) var(--space-5)}.auth-features{width:100%;max-width:880px;text-align:center}.auth-features-title{color:var(--color-text);font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0 0 var(--space-6)}.auth-features-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.auth-feature{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);text-align:left;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);transition:border-color var(--transition-base),transform var(--transition-base)}.auth-feature:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.auth-feature-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-accent)}.auth-feature-text{display:flex;flex-direction:column;gap:2px;min-width:0}.auth-feature-name{color:var(--color-text);font-weight:var(--font-semibold);font-size:var(--text-sm)}.auth-feature-desc{color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.5}.auth-features-trust{margin:var(--space-6) 0 0;color:var(--color-text-subtle);font-size:var(--text-xs)}@media (max-width: 760px){.auth-features-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.auth-features-grid{grid-template-columns:1fr}.auth-features-title{font-size:var(--text-lg)}}.auth-container{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-10);width:100%;max-width:420px;border:1px solid var(--glass-border)}.auth-logo{display:flex;justify-content:center;margin-bottom:24px}.auth-header{text-align:center;margin-bottom:32px}.auth-header h1{color:#fff;font-size:28px;font-weight:700;margin-bottom:8px}.auth-header p{color:#fff9;font-size:14px}.auth-form{display:flex;flex-direction:column;gap:20px}.auth-form .input-group{display:flex;flex-direction:column;gap:6px}.auth-form .input-group label{color:#fffc;font-weight:500;font-size:14px}.auth-form .input-group input{padding:12px 16px;border:1px solid rgba(255,255,255,.15);border-radius:10px;font-size:16px;transition:border-color .2s,box-shadow .2s;background:#ffffff0d;color:#fff}.auth-form .input-group input::placeholder{color:#a0aec0}.auth-form .input-group input:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--focus-ring)}.auth-form .input-group input:disabled{opacity:.5;cursor:not-allowed}.auth-form .error-message{background:#f43f5e1f;color:var(--color-danger);padding:12px 16px;border-radius:var(--radius-sm);font-size:var(--text-sm);border:1px solid rgba(244,63,94,.3)}.auth-form .success-message{background:#34d3991f;color:var(--color-success);padding:12px 16px;border-radius:var(--radius-sm);font-size:var(--text-sm);border:1px solid rgba(52,211,153,.3)}.verification-code-input{font-size:24px!important;letter-spacing:8px;text-align:center;font-family:monospace}.resend-btn{margin-top:12px;background:transparent!important;color:var(--color-accent)!important;border:1px solid var(--color-accent)!important}.resend-btn:hover:not(:disabled){background:var(--color-accent-soft)!important}.secondary-btn{background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border-strong)}.secondary-btn:hover:not(:disabled){background:var(--color-surface-3)}.auth-btn{padding:14px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:8px}.auth-btn.primary-btn{background:var(--gradient-primary);color:#fff}.auth-btn.primary-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-glow)}.auth-btn:focus-visible,.auth-link:focus-visible,.guest-toggle-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.auth-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-footer{text-align:center;margin-top:24px;padding-top:24px;border-top:1px solid var(--color-border)}.auth-footer p{color:var(--color-text-muted);font-size:var(--text-sm)}.auth-link{color:var(--color-accent);text-decoration:none;font-weight:var(--font-semibold);transition:color var(--transition-fast)}.auth-link:hover{color:var(--color-accent-hover);text-decoration:underline}.guest-divider{display:flex;align-items:center;text-align:center;margin:32px 0;gap:16px}.guest-divider:before,.guest-divider:after{content:"";flex:1;height:1px;background:#ffffff26;min-width:20px}.guest-divider span{color:#ffffff80;font-size:13px;text-transform:uppercase;letter-spacing:1px;white-space:nowrap;flex-shrink:0}.guest-section{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:8px;overflow:hidden;transition:background var(--transition-slow)}.guest-section.collapsed,.guest-section.expanded{padding:0}.guest-toggle-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 24px;background:transparent;border:none;cursor:pointer;font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-success);transition:background var(--transition-base)}.guest-toggle-btn:hover{background:#34d3991a}.guest-toggle-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--color-success);color:var(--color-bg);border-radius:var(--radius-full);font-size:18px;font-weight:700;line-height:1}.guest-toggle-hint{font-size:var(--text-sm);font-weight:400;color:var(--color-text-muted);margin-left:4px}.guest-form-container{padding:0 24px 24px;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.guest-section h2{color:var(--color-text);font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:8px;text-align:center}.guest-section>p{color:var(--color-text-muted);font-size:var(--text-sm);text-align:center;margin-bottom:20px}.guest-form{display:flex;flex-direction:column;gap:16px}.guest-form .input-group{display:flex;flex-direction:column;gap:6px}.guest-form .input-group label{color:var(--color-text);font-weight:var(--font-medium);font-size:var(--text-sm)}.guest-form .input-group input{padding:12px 16px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:var(--text-base);transition:border-color var(--transition-base),box-shadow var(--transition-base);background:var(--color-surface-2);color:var(--color-text)}.guest-form .input-group input::placeholder{color:var(--color-text-subtle)}.guest-form .input-group input:focus{outline:none;border-color:var(--color-success);box-shadow:0 0 0 3px #34d39929}.guest-form .input-group input:disabled{opacity:.5;cursor:not-allowed}.guest-form .error-message{background:#f43f5e1f;color:var(--color-danger);padding:12px 16px;border-radius:var(--radius-sm);font-size:var(--text-sm);border:1px solid rgba(244,63,94,.3)}.auth-btn.guest-btn{background:linear-gradient(135deg,#34d399,#10b981);color:var(--color-bg)}.auth-btn.guest-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #34d39959}@media (max-width: 480px){.auth-container{padding:24px;margin:10px}.auth-header h1{font-size:24px}.guest-toggle-btn{padding:14px 16px;font-size:15px}.guest-form-container{padding:0 16px 16px}.guest-section h2{font-size:18px}}.info-message{padding:16px;border-radius:12px;font-size:14px}.info-message.approval-pending{background:linear-gradient(135deg,#fbbf241a,#f59e0b1a);border:1px solid rgba(251,191,36,.3);display:flex;align-items:flex-start;gap:12px}.approval-icon{font-size:28px;line-height:1}.approval-text{flex:1;color:#fbbf24}.approval-text strong{display:block;color:#f59e0b;margin-bottom:4px;font-size:15px}.approval-text p{margin:0;color:#fbbf24e6;line-height:1.5}.auth-header .approval-note{font-size:12px;color:#fbbf24cc;margin-top:8px;padding:6px 12px;background:#fbbf241a;border-radius:6px;border:1px solid rgba(251,191,36,.2)}.guest-join-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:radial-gradient(900px 600px at 20% -10%,rgba(99,102,241,.18),transparent 60%),var(--color-bg);padding:var(--space-5)}.guest-join-container{width:100%;max-width:420px;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);box-shadow:var(--shadow-lg)}.loading-state{text-align:center;padding:var(--space-10) 0;color:var(--color-text)}.loading-state .spinner{width:50px;height:50px;border:4px solid var(--color-border-strong);border-top:4px solid var(--color-accent);border-radius:var(--radius-full);animation:spin 1s linear infinite;margin:0 auto var(--space-5)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-state p{color:var(--color-text-muted);margin:0}.error-state{text-align:center;padding:var(--space-8) 0;color:var(--color-text)}.error-state .error-icon{width:60px;height:60px;background:#f43f5e29;border:2px solid var(--color-danger);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--color-danger);margin:0 auto var(--space-5)}.error-state h2{margin:0 0 var(--space-2) 0;font-size:var(--text-2xl)}.error-state p{color:var(--color-text-muted);margin:0 0 var(--space-6) 0}.error-actions{display:flex;gap:var(--space-3);justify-content:center}.login-link-btn,.register-link-btn{padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-semibold);text-decoration:none;transition:all var(--transition-base)}.login-link-btn{background:var(--gradient-primary);color:var(--color-text)}.login-link-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}.login-link-btn:focus-visible,.register-link-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.register-link-btn{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border-strong)}.register-link-btn:hover{background:var(--color-surface-3)}.guest-join-header{text-align:center;margin-bottom:var(--space-8)}.guest-join-header h1{margin:0 0 var(--space-2) 0;font-size:var(--text-3xl);font-weight:var(--font-semibold);color:var(--color-text)}.guest-join-header p{margin:0;color:var(--color-text-muted);font-size:var(--text-base)}.meeting-preview{background:var(--color-accent-soft);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center;margin-bottom:var(--space-6)}.meeting-badge{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:1px;color:var(--color-text-subtle);margin-bottom:var(--space-2)}.meeting-id{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);font-family:var(--font-mono);word-break:break-all}.participant-info{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-success)}.guest-form{margin-bottom:var(--space-6)}.guest-form .input-group{margin-bottom:var(--space-5)}.guest-form label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);margin-bottom:var(--space-2)}.guest-form input{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-base);transition:all var(--transition-base);box-sizing:border-box}.guest-form input:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--focus-ring)}.guest-form input::placeholder{color:var(--color-text-subtle)}.error-message{background:#f43f5e1f;border:1px solid rgba(244,63,94,.3);color:var(--color-danger);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-5)}.join-btn{width:100%;padding:var(--space-4);border:none;border-radius:var(--radius-md);font-size:var(--text-lg);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-base)}.join-btn.primary-btn{background:var(--gradient-primary);color:var(--color-text)}.join-btn.primary-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-glow)}.join-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.join-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.guest-footer{text-align:center;padding-top:var(--space-5);border-top:1px solid var(--color-border)}.guest-footer p{margin:0 0 var(--space-2) 0;font-size:var(--text-sm);color:var(--color-text-subtle)}.auth-links{display:flex;align-items:center;justify-content:center;gap:var(--space-4)}.auth-links .auth-link{color:var(--color-accent);text-decoration:none;font-weight:var(--font-medium);font-size:var(--text-sm);transition:color var(--transition-base)}.auth-links .auth-link:hover{color:var(--color-accent-hover)}.auth-links .auth-link:focus-visible{outline:none;box-shadow:var(--focus-ring)}.auth-links .divider{color:var(--color-text-subtle)}@media (max-width: 480px){.guest-join-container{padding:var(--space-8) var(--space-5)}.guest-join-header h1{font-size:var(--text-2xl)}.error-actions{flex-direction:column}.login-link-btn,.register-link-btn{width:100%;text-align:center}}.App{min-height:100vh;min-height:100dvh}
