:root{color:#edf2f7;background:#080d18;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}.center-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#17233c,#0b1120 60%)}.card{width:min(100%,440px);padding:42px;border:1px solid #26334c;border-radius:24px;background:#111b2feb;box-shadow:0 24px 80px #0000004d}.join-card{text-align:center}.join-card h1{font-size:clamp(22px,4vw,30px);white-space:nowrap}.brand-mark{display:inline-grid;place-items:center;width:52px;height:52px;margin-bottom:20px;border-radius:16px;color:#07111f;background:#7dd3fc;font-size:24px}.eyebrow{margin:0 0 10px;color:#7dd3fc;font-size:12px;font-weight:800;letter-spacing:.16em}h1{margin:0 0 12px;font-size:clamp(28px,5vw,38px);letter-spacing:-.04em}.muted,.hint{color:#93a4bc}.hint{margin:18px 0 0;font-size:12px}input{width:100%;border:1px solid #34445f;border-radius:12px;padding:13px 14px;color:#fff;background:#0d172a;outline:none}input:focus{border-color:#7dd3fc;box-shadow:0 0 0 3px #7dd3fc1f}.join-card input{margin:10px 0 12px}.primary-button{width:100%;margin-top:12px;border:0;border-radius:12px;padding:14px;color:#07111f;background:#7dd3fc;font-weight:800}.primary-button:disabled{cursor:not-allowed;opacity:.45}.error{margin:10px 0;color:#fda4af;font-size:14px}.call-page{min-height:100vh;background:#080d18}.topbar{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;height:72px;padding:0 28px;border-bottom:1px solid #1b2940;color:#c7d2e3;background:#0a111fe0}.topbar-brand,.topbar-actions,.topbar-brand>div,.chat-header>div:first-child{display:flex;align-items:center}.topbar-brand{gap:12px}.topbar-brand strong{display:block;color:#f4f8ff;font-size:14px;letter-spacing:-.01em}.topbar-brand span{display:flex;align-items:center;gap:5px;margin-top:3px;color:#778aa7;font-size:11px}.mini-logo{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(125,211,252,.35);border-radius:11px;color:#07111f;background:linear-gradient(135deg,#7dd3fc,#a7f3d0);font-size:15px;box-shadow:0 8px 24px #22d3ee26}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#34d399;box-shadow:0 0 10px #34d399}.topbar-actions{gap:10px}.chat-toggle,.leave-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #2c3b55;color:#dce7f5;background:#141f33}.chat-toggle{position:relative;gap:8px;border-radius:10px;padding:9px 13px;font-size:13px}.chat-toggle:hover,.icon-button:hover{border-color:#4e668a;background:#1a2a43}.leave-button{gap:7px;border-color:#71364a;border-radius:10px;padding:9px 14px;color:#fda4af;background:#68243a38;font-size:13px}.leave-button:hover{background:#912e4c59}.unread-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border:2px solid #111b2e;border-radius:999px;color:#fff;background:#fb7185;font-size:10px;font-weight:800;line-height:1}.chat-toggle>.unread-badge{position:absolute;top:-7px;right:-7px}.call-layout{display:grid;grid-template-columns:minmax(0,1fr) 344px;min-height:calc(100vh - 72px);transition:grid-template-columns .24s ease}.call-layout.chat-is-closed{grid-template-columns:minmax(0,1fr) 0}.video-area{display:flex;min-width:0;min-height:calc(100vh - 72px);flex-direction:column;padding:22px;background:radial-gradient(circle at 50% 35%,rgba(27,46,76,.38),transparent 50%)}.video-stage{display:flex;flex:1;min-height:0;align-items:center;justify-content:center;overflow:hidden}.video-stage.video-stage-scroll{overflow:auto;align-items:flex-start}.video-grid{display:grid;width:100%;max-width:1280px;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;align-content:center}.participant-tile{position:relative;aspect-ratio:16 / 9;min-height:0;overflow:hidden;border:1px solid #293b59;border-radius:20px;background:linear-gradient(145deg,#142039,#0e1729);box-shadow:0 18px 50px #0000002e}.participant-tile:after{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px #ffffff06;content:""}.participant-tile video{display:block;width:100%;height:100%;min-height:0;object-fit:contain;background:#111a2b}.participant-tile-portrait video{object-fit:contain;background:radial-gradient(circle,#223754,#0d1728 78%)}.participant-tile audio{display:none}.camera-off{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#8fa0b8;background:radial-gradient(circle,#1b2a45,#10192b 75%);font-size:13px}.camera-off:before{display:grid;place-items:center;width:54px;height:54px;margin-bottom:12px;border-radius:50%;color:#b9c6d8;background:#243752;content:"◌";font-size:24px}.participant-name{position:absolute;z-index:1;right:13px;bottom:13px;left:13px;display:inline-flex;width:max-content;max-width:calc(100% - 26px);overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:9px;padding:7px 10px;color:#fff;background:#050a14a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.controls-wrap{display:flex;justify-content:center;padding:22px 0 4px}.controls{display:flex;align-items:center;justify-content:center;gap:10px;padding:7px;border:1px solid #263650;border-radius:18px;background:#0f192bd1;box-shadow:0 14px 40px #0003;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.control-button{position:relative;display:inline-flex;align-items:center;gap:9px;min-height:48px;border:1px solid transparent;border-radius:13px;padding:8px 14px;color:#dce7f5;background:transparent;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.control-button:hover{border-color:#334b6d;background:#1b2b46;transform:translateY(-1px)}.control-button.off{color:#fda4af;border-color:#71364a;background:#68243a73}.control-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;color:#c8d7eb;background:#20324f}.control-button.off .control-icon{color:#fda4af;background:#a0304f52}.control-label{font-size:12px;font-weight:650;white-space:nowrap}.control-badge{position:absolute;top:-7px;right:-6px}.mic-control-group{display:flex;min-height:48px;border:1px solid rgba(125,211,252,.28);border-radius:13px;background:transparent;transition:background .18s ease,border-color .18s ease,transform .18s ease}.mic-control-group{max-width:220px}.mic-control-group:hover{border-color:#334b6d;background:#1b2b46;transform:translateY(-1px)}.mic-control-group.off{border-color:#71364a;background:#68243a73}.mic-control-group .mic-toggle{flex:3 1 auto;min-width:0;border:0;border-radius:12px 0 0 12px;background:linear-gradient(90deg,rgba(52,211,153,.55) calc(var(--mic-level, 0) * 100%),transparent calc(var(--mic-level, 0) * 100%))}.mic-control-group .mic-toggle{overflow:hidden}.mic-control-group .control-label{overflow:hidden;text-overflow:ellipsis}.mic-control-group .mic-toggle:hover{border-color:transparent;filter:brightness(1.12);transform:none}.mic-control-group.off .mic-toggle{border-color:transparent;background:transparent}.camera-control:not(.off){border-color:#7dd3fc52;box-shadow:0 0 0 1px #7dd3fc14}.audio-device-select,.prejoin-device-select{min-width:0;border:0;color:#cfe0f2;background:transparent;outline:none;cursor:pointer}.audio-device-select{flex:1 1 25%;width:46px;min-height:46px;border-left:1px solid #304766;border-radius:0 12px 12px 0;padding:0 6px;color:#9edcf3}.audio-device-select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-device-select:hover,.audio-device-select:focus{background:#7dd3fc1f}.audio-device-select option,.prejoin-device-select option{color:#e8f1fc;background:#122039}.device-error{margin:8px 0 0;color:#fda4af;font-size:12px;text-align:left}.mic-level-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px}.chat-panel{display:flex;min-width:0;min-height:0;flex-direction:column;overflow:hidden;border-left:1px solid #1d2b43;background:#0d1627;transition:opacity .2s ease,transform .24s ease}.chat-panel-hidden{opacity:0;pointer-events:none;transform:translate(18px)}.chat-header{display:flex;align-items:center;justify-content:space-between;min-height:76px;padding:16px 18px;border-bottom:1px solid #1d2b43}.chat-header>div:first-child{gap:10px;min-width:0}.chat-title-icon{display:grid;flex:0 0 auto;place-items:center;width:34px;height:34px;border-radius:10px;color:#7dd3fc;background:#17334b}.chat-header h2{margin:0;color:#f0f5fc;font-size:16px}.chat-header p{margin:3px 0 0;overflow:hidden;color:#6f829e;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.icon-button{width:32px;height:32px;border-radius:9px}.messages{flex:1;overflow-y:auto;padding:20px 17px;scrollbar-color:#314766 transparent;scrollbar-width:thin}.empty-chat{display:grid;height:100%;place-items:center;margin:0;color:#6f829e;text-align:center;font-size:13px}.message{display:flex;flex-direction:column;gap:5px;max-width:88%;margin:0 0 16px;color:#ced9e8;font-size:13px}.message strong{color:#7dd3fc;font-size:11px;font-weight:700}.message span{border:1px solid #253957;border-radius:12px 12px 12px 3px;padding:10px 12px;background:#17263d;overflow-wrap:anywhere;line-height:1.4}.message.own{margin-left:auto;align-items:flex-end}.message.own strong{color:#a7f3d0}.message.own span{border-color:#17647d;border-radius:12px 12px 3px;background:#12485e}.chat-input{display:flex;gap:8px;padding:14px;border-top:1px solid #1d2b43;background:#0b1423}.chat-input input{min-width:0;border-color:#2b3e5b;padding:11px 12px;font-size:13px}.chat-input button{display:grid;flex:0 0 auto;place-items:center;width:43px;border:0;border-radius:11px;color:#06111c;background:#7dd3fc;transition:transform .18s ease,opacity .18s ease}.chat-input button:hover:not(:disabled){transform:translateY(-1px)}.chat-input button:disabled{opacity:.35;cursor:not-allowed}@media(max-width:900px){.topbar{padding:0 16px}.call-layout,.call-layout.chat-is-closed{display:block;position:relative}.video-area{min-height:calc(100vh - 72px);padding:14px}.chat-panel{position:absolute;z-index:4;top:0;right:0;bottom:0;width:min(92vw,360px);min-height:calc(100vh - 72px);box-shadow:-18px 0 50px #00000059}.chat-panel-hidden{display:none}.video-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.participant-tile,.participant-tile video{min-height:0}}@media(max-width:600px){.join-card h1{font-size:21px}.topbar{height:64px}.topbar-brand span{font-size:10px}.top-chat-toggle span{display:none}.top-chat-toggle,.leave-button{width:38px;padding:8px}.leave-button{font-size:0}.controls{gap:5px;border-radius:15px}.control-button{min-height:44px;padding:7px 9px}.control-label{display:none}.control-icon{width:31px;height:31px}.mic-control-group{min-height:44px}.mic-control-group .mic-toggle{padding:7px 6px 7px 9px}.audio-device-select{min-height:42px;width:34px;padding:0 3px}.video-grid{grid-template-columns:1fr}.participant-tile,.participant-tile video{min-height:0}}.prejoin-preview{position:relative;overflow:hidden;min-height:206px;margin-top:8px;border:1px solid #2d405d;border-radius:14px;background:#0b1423}.camera-preview{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:radial-gradient(circle,#1b2a45,#0e1728 78%)}.camera-preview video{display:block;width:100%;height:100%;object-fit:cover}.camera-preview-off{display:grid;height:100%;place-content:center;justify-items:center;gap:8px;color:#8193ac}.camera-preview-off span{font-size:11px}.prejoin-preview-controls{position:absolute;z-index:2;right:8px;bottom:8px;left:8px;display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:6px}.preview-mic-group{display:grid;min-width:0;grid-template-columns:116px minmax(0,1fr);border:1px solid rgba(125,211,252,.28);border-radius:10px;background:#0a1423d6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.preview-mic-group.is-off{border-color:#fb718573}.preview-device-button{position:relative;display:inline-flex;flex:0 0 116px;width:116px;min-width:116px;align-items:center;gap:6px;overflow:hidden;border:0;border-radius:9px 0 0 9px;padding:7px 9px;color:#e4edf8;background:linear-gradient(90deg,rgba(52,211,153,.6) calc(var(--mic-level, 0) * 100%),transparent calc(var(--mic-level, 0) * 100%));font-size:11px;font-weight:650}.preview-device-button:after{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 0 0 1px #7dd3fc1f;pointer-events:none;content:""}.preview-mic-group.is-off .preview-device-button{background:#68243a61}.preview-device-button:hover{filter:brightness(1.12)}.preview-device-button>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-mic-group.is-off .preview-device-button{color:#fda4af}.preview-device-select-wrap{position:relative;min-width:0;overflow:hidden;border-left:1px solid #304766;border-radius:0 9px 9px 0;background:#0b142380}.preview-device-select-wrap:after{position:absolute;top:50%;right:7px;width:0;height:0;border-top:5px solid #9edcf3;border-right:4px solid transparent;border-left:4px solid transparent;pointer-events:none;content:"";transform:translateY(-25%)}.preview-device-select{width:100%;min-width:0;height:100%;overflow:hidden;border:0;padding:0 23px 0 7px;color:#cfe0f2;background:transparent;outline:none;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;-webkit-appearance:none;-moz-appearance:none;appearance:none}.preview-device-select-wrap:hover,.preview-device-select-wrap:focus-within{background:#7dd3fc24}.preview-device-select option{color:#e8f1fc;background:#122039}.preview-camera-button{width:100px;min-width:100px;justify-content:center;border:1px solid rgba(125,211,252,.28);border-radius:10px;background:#0a1423d6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.preview-camera-button.is-off{border-color:#fb718573;color:#fda4af}.controls-wrap{position:fixed;z-index:10;right:0;bottom:18px;left:0;pointer-events:none}.controls{pointer-events:auto}.call-device-error{position:absolute;right:0;bottom:calc(100% + 8px);left:0;margin:auto;color:#fda4af;font-size:12px;text-align:center;text-shadow:0 1px 8px #080d18}.video-area{padding-bottom:96px}.leave-control{color:#fda4af;border-color:#71364a;background:#68243a52}.leave-control:hover{border-color:#a94a65;background:#912e4c7a}.video-stage{padding:4px 4px 12px;scrollbar-color:#314766 transparent;scrollbar-width:thin}.video-grid{align-content:center}.video-grid.participants-1{grid-template-columns:minmax(280px,860px);justify-content:center}.video-grid.participants-2,.video-grid.participants-3,.video-grid.participants-4{grid-template-columns:repeat(2,minmax(0,1fr))}.video-grid.participants-5-plus{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}.video-grid.participants-5-plus .participant-tile{min-height:0}.video-grid.has-pinned .participant-tile:first-child{grid-column:span 2;min-height:0}.pin-button{position:absolute;z-index:3;top:13px;right:13px;display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(255,255,255,.14);border-radius:9px;color:#b9cbe0;background:#050a1494;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .18s ease,color .18s ease,background .18s ease}.participant-tile:hover .pin-button,.pin-button.is-pinned{opacity:1}.pin-button:hover,.pin-button.is-pinned{color:#07111f;background:#7dd3fc}.participant-tile-pinned{border-color:#67d4f7;box-shadow:0 0 0 1px #67d4f74d,0 20px 60px #0000003d}@media(max-width:900px){.controls-wrap{bottom:12px}.video-area{padding-bottom:84px}.video-grid.participants-5-plus{grid-template-columns:1fr}.video-grid.has-pinned .participant-tile:first-child{grid-column:auto;min-height:0}}@media(max-width:600px){.card{padding:28px 20px}.prejoin-preview{min-height:190px}.prejoin-preview-controls{grid-template-columns:minmax(0,1fr) 86px}.preview-mic-group{grid-template-columns:96px minmax(0,1fr)}.preview-device-button{width:96px;min-width:96px;padding:7px 6px}.preview-device-select-wrap{min-width:0}.preview-device-select{padding:0 18px 0 4px;font-size:10px}.preview-camera-button{width:86px;min-width:86px;padding:7px 4px}.controls-wrap{bottom:8px}.controls{max-width:calc(100vw - 18px);overflow-x:auto}.control-button{flex:0 0 auto}.video-area{padding-bottom:76px}.video-grid.participants-2,.video-grid.participants-3,.video-grid.participants-4{grid-template-columns:1fr}.pin-button{opacity:1}}
