:root{font-family:Segoe UI,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color:#ecfdf5;background:radial-gradient(circle at top left,rgba(74,222,128,.28),transparent 32%),radial-gradient(circle at top right,rgba(56,189,248,.14),transparent 28%),linear-gradient(180deg,#052e1f,#071a16);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}.icon{width:18px;height:18px;flex:0 0 auto}.icon--lg{width:22px;height:22px}.icon--xl{width:26px;height:26px}#root{min-height:100vh}.app-shell--call{height:100vh;overflow:hidden;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.call-shell-header{display:flex;justify-content:center;margin-bottom:8px}.call-shell-brand{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:18px;background:#071a16d1;border:1px solid rgba(134,239,172,.16);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.call-shell-brand__logo{width:32px;height:32px}.route-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:#d1fae5}.app-shell{min-height:100vh;padding:32px 20px 40px;background:radial-gradient(circle at top center,rgba(37,99,235,.08),transparent 28%),linear-gradient(180deg,#f8fafc,#eef2ff)}.app-shell--landing{min-height:100vh;padding:16px;background:radial-gradient(circle at top center,rgba(37,99,235,.08),transparent 28%),linear-gradient(180deg,#f8fafc,#eef2ff)}.hero{width:min(100%,1800px);margin:0 auto 24px}.hero__brand{display:flex;gap:18px;align-items:center}.hero__brand--link{color:inherit;text-decoration:none}.hero__logo{width:72px;height:72px;padding:12px;border-radius:24px;background:#dbeafe;box-shadow:0 18px 50px #0f172a14}.hero h1,.card h2{margin:0;color:#1e293b}.hero__subtitle,.card__text,.status-line,.inline-error,.invite-card small{color:#5b7197}.eyebrow{margin:0 0 6px;font-size:.8rem;text-transform:uppercase;letter-spacing:.16em;color:#86efac}.page{width:min(100%,1800px);margin:0 auto}.page--call{width:100%;max-width:none;height:calc(100vh - 84px)}.page--landing{width:min(100%,1320px)}.card{background:#071a16c7;border:1px solid rgba(134,239,172,.16);box-shadow:0 24px 80px #0000003d;border-radius:28px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.hero-card,.preview-card,.call-main,.card{padding:24px}.card__lead{margin-top:0;font-size:1.1rem}.landing-card{color:#1f2937;background:#ffffffe0;border:1px solid rgba(148,163,184,.25);border-radius:24px;padding:28px;box-shadow:0 20px 60px #0f172a14;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.landing-hero{display:grid;gap:22px}.landing-brand{display:flex;align-items:center;gap:18px}.landing-brand__logo{width:64px;height:64px;border-radius:18px;background:#dbeafe;padding:10px}.landing-brand h1,.landing-panel h2{margin:0;color:#1e293b}.landing-subtitle,.landing-notes p,.landing-list{color:#5b7197}.landing-subtitle{margin:8px 0 0;font-size:1.05rem}.landing-card .room-form{gap:0}.landing-card .field span{display:none}.landing-card .field__row{align-items:stretch}.landing-card .field input{background:#fffffff0;color:#0f172a;border-color:#94a3b859;min-height:58px;font-size:1rem}.landing-card .button{min-height:58px;border-radius:14px}.landing-card .button--ghost{color:#31517d;background:#ffffffe0;border-color:#94a3b852}.landing-notes{display:grid;gap:10px}.landing-notes p{margin:0;font-size:.98rem}.landing-panel{margin-top:28px;padding:20px;border-radius:18px;border:1px solid rgba(148,163,184,.26);background:#ffffffb8}.landing-list{margin:14px 0 0;padding-left:22px;line-height:1.8}.room-form,.field,.settings-panel,.control-stack{display:grid;gap:12px}.field span{font-size:.95rem;color:#ecfdf5e0}.field input,.field select{width:100%;border:1px solid rgba(167,243,208,.18);background:#06100ee0;color:#f0fdf4;padding:14px 16px;border-radius:16px;outline:none}.field__row,.toggle-row,.actions,.call-topbar,.call-topbar__actions{display:flex;gap:12px;flex-wrap:wrap}.call-topbar{align-items:end;justify-content:space-between}.call-summary{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.call-summary span{padding:8px 12px;border-radius:999px;background:#ecfdf514;color:#ecfdf5e0;font-size:.9rem}.button{border:0;border-radius:16px;padding:14px 18px;color:#052e1f;background:linear-gradient(135deg,#86efac,#34d399);font-weight:700}.button--icon{display:inline-flex;align-items:center;justify-content:center;gap:10px}.button--ghost{color:#d1fae5;background:#ecfdf514;border:1px solid rgba(167,243,208,.16)}.button--danger{color:#fff5f5;background:linear-gradient(135deg,#ef4444,#fb7185)}.button--primary{min-width:220px}.prejoin-layout,.call-layout{display:grid;gap:20px}.prejoin-layout{grid-template-columns:minmax(280px,.58fr) minmax(0,1.42fr);align-items:stretch;min-height:calc(100vh - 180px)}.prejoin-layout>*{min-width:0}.prejoin-layout--bright .card{color:#1f2937;background:#ffffffe0;border:1px solid rgba(148,163,184,.25);box-shadow:0 20px 60px #0f172a14;overflow:hidden}.prejoin-layout--bright .eyebrow,.prejoin-layout--bright .field span,.prejoin-layout--bright .inline-error{color:#5b7197}.prejoin-layout--bright .field input,.prejoin-layout--bright .field select{color:#0f172a;background:#fffffff0;border-color:#94a3b859}.call-layout{grid-template-columns:minmax(0,1fr);align-items:start;height:100%}.prejoin-header{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:24px}.prejoin-card{display:grid;align-content:start;grid-template-rows:auto auto auto auto 1fr auto;height:100%}.prejoin-controls{gap:14px;margin-top:6px}.prejoin-control{min-width:72px;background:#060c0beb;border-color:#0f172a1a;color:#ecfdf5}.prejoin-control.control-button--active{background:#334155f0;border-color:#47556973}.prejoin-join-button{min-height:56px;min-width:0;padding-inline:22px;background:linear-gradient(135deg,#22c55e,#16a34a);color:#f0fdf4}.prejoin-preview-card{display:grid;align-content:stretch;height:100%}.prejoin-preview-card .media-preview,.prejoin-preview-card .media-placeholder{height:100%;min-height:360px;min-width:0;max-width:100%}.actions{margin-top:18px}.media-preview,.media-placeholder{width:100%;aspect-ratio:16 / 10;border-radius:24px;background:#052e1fe0;object-fit:cover}.media-placeholder,.participant-tile__fallback{display:flex;align-items:center;justify-content:center;color:#bbf7d0;font-weight:800;font-size:2rem}.participant-tile__fallback span{font-size:clamp(2rem,6vw,4rem)}.participant-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:20px}.participant-tile{position:relative;overflow:hidden;border-radius:24px;background:#040f0ceb;min-height:240px;border:1px solid rgba(255,255,255,.06);transition:transform .22s ease,box-shadow .22s ease,opacity .22s ease;animation:tileFadeIn .24s ease}.participant-tile--interactive{cursor:pointer}.participant-tile--interactive:hover{transform:translateY(-1px)}.participant-tile__badge{position:absolute;top:14px;left:14px;padding:8px 10px;border-radius:999px;background:#10b981e0;color:#032015;font-size:.8rem;font-weight:800}.participant-tile__badge--hand{top:56px;background:#fbbf24f0;color:#231403;min-width:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:1.35rem;line-height:1}.participant-tile--speaking{box-shadow:0 0 0 2px #86efac8c}.participant-tile video,.participant-tile__fallback{width:100%;height:100%;object-fit:cover}.participant-tile__meta{position:absolute;left:16px;right:16px;bottom:16px;padding:10px 12px;border-radius:16px;background:#030a08b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:grid;gap:4px}.invite-card{margin-bottom:10px;padding:16px;border-radius:20px;background:#10b98124;border:1px dashed rgba(167,243,208,.3)}.invite-card strong{display:block;margin:8px 0;word-break:break-all}.control-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.control-strip--toolbar{grid-template-columns:repeat(7,minmax(0,1fr))}.control-button{min-height:72px;border:1px solid rgba(167,243,208,.16);border-radius:18px;background:#060c0be6;color:#ecfdf5;display:flex;align-items:center;justify-content:center;padding:14px 12px;text-align:center;transition:transform .18s ease,background .18s ease,border-color .18s ease}.control-button:hover{transform:translateY(-1px)}.control-button--active{background:linear-gradient(180deg,#10b98138,#34d3991f);border-color:#6ee7b773}.control-button--accent{background:linear-gradient(180deg,#fbbf2447,#f59e0b24);border-color:#fcd34d80;color:#fff7d6}.control-button--danger{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:#fecaca3d}.inline-error{margin-bottom:0}.inline-error--floating{margin-bottom:10px}.call-main{position:relative;display:grid;grid-template-rows:auto auto 1fr auto;gap:10px;height:100%;min-height:0;padding:12px 12px 92px;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:transparent}.call-summary,.call-topbar{display:none}.participant-grid--call{height:100%;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:0}.participant-grid--call .participant-tile{min-height:min(34vh,320px)}.call-stage{display:grid;grid-template-columns:minmax(0,1fr) clamp(136px,18vw,220px);gap:12px;min-height:0;height:100%;animation:stageFadeIn .24s ease}.call-stage__main,.call-stage__rail{min-height:0}.call-stage__main .participant-tile{height:100%;min-height:0}.call-stage__rail{display:grid;grid-auto-rows:minmax(0,1fr);gap:10px;overflow:hidden;align-content:stretch}.call-stage__rail .participant-tile{min-height:0;height:100%;aspect-ratio:1 / 1}.bottom-toolbar-wrap{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:20;margin-top:0;display:flex;justify-content:center}.bottom-toolbar-wrap .control-strip--toolbar{width:min(calc(100vw - 24px),760px);padding:8px;border-radius:18px;background:#060c0beb;border:1px solid rgba(167,243,208,.14);box-shadow:0 24px 60px #00000047;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:toolbarRise .24s ease}@keyframes tileFadeIn{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@keyframes stageFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes toolbarRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){.prejoin-layout,.call-layout{grid-template-columns:1fr}.call-layout{gap:14px}.control-strip--toolbar{grid-template-columns:repeat(7,minmax(0,1fr))}.call-stage{grid-template-columns:minmax(0,1fr) clamp(120px,20vw,168px)}}@media (max-width: 640px){.app-shell{padding:18px 14px 28px}.app-shell--call{padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.hero__brand{align-items:start}.hero__logo{width:58px;height:58px}.hero-card,.preview-card,.call-main,.card{padding:18px;border-radius:22px}.landing-card{padding:20px}.landing-brand{align-items:flex-start}.prejoin-layout{grid-template-columns:1fr;min-height:auto}.field__row,.toggle-row,.actions,.call-topbar,.call-topbar__actions,.call-summary{flex-direction:column}.control-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.control-button{min-height:64px;border-radius:18px;padding:10px 6px}.participant-grid{grid-template-columns:1fr}.prejoin-card,.prejoin-preview-card{height:auto}.prejoin-preview-card .media-preview,.prejoin-preview-card .media-placeholder{min-height:240px}.participant-tile__badge{font-size:.72rem;padding:6px 8px}.bottom-toolbar-wrap .control-strip--toolbar{width:min(calc(100vw - 16px),760px)}.call-stage{grid-template-columns:1fr;grid-template-rows:104px minmax(0,1fr)}.call-stage__rail{order:-1;grid-auto-flow:column;grid-auto-columns:104px;overflow-x:auto;overflow-y:hidden;align-items:stretch}.call-stage__rail .participant-tile{aspect-ratio:1 / 1}}@media (max-width: 420px){.app-shell{padding:12px 10px 20px}.hero__brand{gap:12px}.hero h1{font-size:1.35rem}.hero__subtitle{font-size:.92rem}.card{border-radius:18px}.landing-card .field__row{flex-direction:column}.control-strip{gap:8px}.call-main{padding-left:12px;padding-right:12px;padding-bottom:84px}.control-strip--toolbar{grid-template-columns:repeat(4,minmax(0,1fr))}.control-button{min-height:54px;padding:6px 4px}.icon--xl{width:22px;height:22px}}
