:root{color-scheme:dark;--bg:#090e18;--panel:#141e2c;--border:#28364a;--text:#f3f7ff;--muted:#a5b4ca;--blue:#8cb3ff;--accent:#5e94ff;--safe-bottom:env(safe-area-inset-bottom,0px);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft Yahei",sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100svh;min-height:100dvh;color:var(--text);background:radial-gradient(ellipse 550px 380px at 55% -3%,#213657 0%,transparent 78%),var(--bg);-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{touch-action:manipulation;cursor:pointer}button:disabled{opacity:.43;cursor:not-allowed}input,select{font-size:16px}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #9bbdff;outline-offset:2px}[hidden]{display:none!important}.app-shell{width:100%;max-width:520px;min-height:100svh;min-height:100dvh;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 14px) 16px calc(var(--safe-bottom) + 18px)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}.brand{display:flex;align-items:center;gap:10px}.brand-icon{height:34px;width:34px;border-radius:11px;display:grid;place-items:center;color:#bdd5ff;background:#233858;font-size:24px}.brand strong{display:block;font-size:15px;letter-spacing:.01em}.brand small{display:block;color:#95a5bc;font-size:11px;margin-top:3px}.network-indicator{display:flex;align-items:center;gap:6px;color:#a8b5ca;font-size:11px;white-space:nowrap}.dot{width:7px;height:7px;background:#6a7890;border-radius:100%}.dot.good{background:#53d3a1;box-shadow:0 0 8px #53d3a1}.landing{padding:clamp(36px,8vh,90px) 4px 32px}.hero-symbol{width:72px;height:72px;border-radius:25px;background:linear-gradient(145deg,#375991,#24416b);display:grid;place-items:center;font-size:47px;color:#bfd2ff;box-shadow:0 12px 36px #0004}.eyebrow{font-size:10px;letter-spacing:.19em;color:#96b9ff;font-weight:750}.landing>.eyebrow{margin:28px 0 8px}.landing h1{font-size:clamp(38px,11vw,55px);line-height:1.12;letter-spacing:-.035em;margin:8px 0 16px}.landing h1 span{color:#90b5ff}.intro{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 30px}.create-form{display:flex;flex-direction:column;gap:10px}.create-form label,.setting-label{font-weight:650;font-size:13px;color:#d3e0f2}.create-form input,.invite-input,select{display:block;width:100%;min-width:0;padding:14px 12px;background:#121e2c;border:1px solid #344560;border-radius:12px;color:var(--text);outline:0}.primary,.secondary{border-radius:12px;min-height:45px;padding:11px 14px;font-weight:700;font-size:14px;border:1px solid transparent}.primary{background:#6b9dfa;color:#091b38}.secondary{background:#273a52;border-color:#354f6b;color:#d9e8fc}.large{min-height:54px;font-size:16px;width:100%}.assurances{display:flex;flex-wrap:wrap;gap:11px;color:#97aaca;font-size:11px;margin-top:27px}.room{padding-top:16px}.room-info{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 2px 10px}.room-info h2{font-size:18px;line-height:1.3;margin:3px 0 5px}.room-info p{font-size:11px;color:#a9b5c9;margin:0;line-height:1.45;max-width:250px}.status-pill{font-size:11px;white-space:nowrap;color:#c8d8f6;padding:7px 11px;border-radius:40px;border:1px solid #3b516e;background:#213248}.call-stage{height:clamp(310px,61dvh,690px);border-radius:22px;overflow:hidden;position:relative;border:1px solid #2d3a4c;background:#0e1623;box-shadow:0 14px 35px #0004}.remote-tile{position:absolute;inset:0;overflow:hidden}.remote-tile video{width:100%;height:100%;display:block;object-fit:cover}.tile-empty{position:absolute;inset:0;display:flex;flex-direction:column;gap:11px;align-items:center;justify-content:center;text-align:center;background:linear-gradient(135deg,#141f2f,#172537);pointer-events:none}.tile-empty .avatar{height:100px;width:100px;background:#273d5c;color:#7b94b9;font-size:62px;border-radius:50%;display:grid;place-items:center}.tile-empty strong{font-size:14px;font-weight:650}.tile-empty span{font-size:11px;color:#9baac0}.tile-caption,.local-caption{position:absolute;bottom:10px;left:12px;padding:4px 9px;background:#070a0dbb;border:1px solid #ffffff18;border-radius:7px;font-size:11px}.local-tile{position:absolute;right:13px;top:13px;width:30%;max-width:145px;height:39%;max-height:220px;border-radius:15px;overflow:hidden;background:#1e2c3b;border:2px solid #8295ad7a;box-shadow:0 7px 24px #0006;z-index:1}.local-tile video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.local-tile.rear-camera video{transform:none}.local-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;position:absolute;inset:0;color:#9aacc9;background:linear-gradient(140deg,#293d55,#141f2d)}.local-placeholder span{font-size:42px}.local-placeholder small{font-size:10px}.local-caption{left:7px;bottom:7px;padding:3px 7px}.sound-unlock{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);background:#172942ed;border:1px solid #7296c7;border-radius:16px;color:#eff6ff;padding:12px 14px;white-space:nowrap;font-size:13px;z-index:2}.pending-card{margin-top:10px;padding:13px;background:#1e3048;border:1px solid #56789e;border-radius:14px;display:grid;gap:11px}.pending-card strong{display:block;font-size:14px}.pending-card small{display:block;color:#b3c4d8;margin-top:5px;font-size:11px}.approval-buttons{display:flex;gap:9px}.approval-buttons button{flex:1}.ready-card{margin-top:12px;border:1px solid #2c4260;border-radius:15px;background:#142236;padding:13px;display:grid;gap:11px;text-align:center}.ready-card span{color:#b0c1d8;font-size:12px}.call-actions{position:sticky;bottom:calc(env(safe-area-inset-bottom,0px) + 6px);display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin:12px -5px 0;padding:10px 5px;background:#101925f2;border:1px solid #2a3b52;border-radius:20px;box-shadow:0 8px 30px #0007;backdrop-filter:blur(14px);z-index:5}.action-button{border:0;border-radius:12px;min-width:0;min-height:62px;background:transparent;color:#bbcae0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:7px 1px;font-size:10px;white-space:nowrap}.action-symbol{display:grid;place-items:center;height:30px;width:33px;border-radius:50%;background:#2a3a52;color:#e5efff;font-size:20px}.action-button.is-off .action-symbol{background:#713c49}.action-button.end-action .action-symbol{background:#b84156;color:white}.action-button.end-action{color:#ffbac4}.toast{min-height:12px;padding:12px 3px;font-size:12px;color:#ffe0a8;line-height:1.5}footer{font-size:10px;text-align:center;color:#7d8ea9;line-height:1.65;margin:25px 5px}.sheet-backdrop{position:fixed;inset:0;background:#000a;z-index:20;backdrop-filter:blur(3px)}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;max-width:520px;margin:auto;padding:17px 20px calc(env(safe-area-inset-bottom,0px) + 23px);background:#142236;border:1px solid #3a4e68;border-radius:22px 22px 0 0;box-shadow:0 -16px 40px #0009;z-index:21}.sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.sheet-header h3{font-size:18px;margin:0}.sheet-close{font-size:30px;line-height:1;background:transparent;color:#d6e3f5;border:0;min-width:44px;min-height:44px}.sheet-hint{color:#9aacc5;font-size:12px;line-height:1.6}.setting-row{display:flex;align-items:center;justify-content:space-between;margin-top:24px;color:#deebfc;font-size:13px}.setting-row output{color:#9fc5ff}.bottom-sheet input[type=range]{width:100%;height:36px;accent-color:#79a8ff;touch-action:pan-y}.setting-label{display:block;margin:15px 0 8px}.bottom-sheet select{appearance:none}.sheet-done{width:100%;margin-top:14px}.sheet-buttons{display:flex;gap:10px;margin-top:14px}.sheet-buttons button{flex:1}.invite-input{font-size:13px;user-select:all}.bottom-sheet:focus{outline:none}body.sheet-open{overflow:hidden}@media(max-height:690px){.room{padding-top:8px}.room-info{padding-bottom:7px}.call-stage{height:clamp(285px,54dvh,520px)}.landing{padding-top:30px}}@media(min-width:600px){.app-shell{border-left:1px solid #27384b;border-right:1px solid #27384b}.call-stage{height:min(64dvh,660px)}}

#cameraSource{position:fixed;width:2px;height:2px;left:-100px;top:0;opacity:0;pointer-events:none}

.call-stage .ready-card,.call-stage .pending-card{position:absolute;left:13px;right:13px;bottom:14px;z-index:3;box-shadow:0 8px 30px #0008;margin:0;background:#17283eeF;backdrop-filter:blur(10px)}.call-stage .pending-card{z-index:4}.call-stage .ready-card{padding:12px}.call-stage .ready-card .large{min-height:50px}

.back-home{background:transparent;border:0;padding:6px 0;color:#b5d2ff;font-size:12px;text-decoration:underline}

/* iPhone Safari: clear touch targets and visible recovery path. */
.ios-notice{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:6px 0 0;border:1px solid #5c739a;background:#253247;border-radius:13px;padding:12px;font-size:12px;line-height:1.5;color:#e0ebff}
.ios-notice button{min-height:44px;width:100%}
.ios-safari .call-actions{bottom:calc(env(safe-area-inset-bottom,0px) + 6px)}
@media(max-width:390px){.action-button{font-size:9px}.action-symbol{width:30px;height:28px}}
