:root{--bg:#f6f7f9;--panel:#fff;--text:#1a1d21;--muted:#6b7280;--line:#e5e7eb;--accent:#2563eb;--accent-text:#fff;--danger:#dc2626;--ok:#16a34a;--warn:#d97706;--radius:10px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#111318;--panel:#1b1f27;--text:#e8eaf0;--muted:#9aa3b2;--line:#2a303b;--accent:#3b82f6;--danger:#f87171}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-size:14px}button,input,select{font:inherit}.screen{min-height:100%;padding:24px;padding-top:calc(24px + env(safe-area-inset-top,0px));flex-direction:column;gap:16px;display:flex}.center{text-align:center;justify-content:center;align-items:center}.muted{color:var(--muted)}.row{align-items:center;gap:10px;display:flex}.spread{justify-content:space-between}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}h1{margin:0;font-size:20px}h2{margin:0 0 8px;font-size:15px}.btn{border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 14px}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.5;cursor:default}.input{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;width:100%;padding:10px 12px;font-size:16px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--pill);outline:none}.input.id{letter-spacing:2px;text-align:center;font-variant-numeric:tabular-nums;font-size:22px}.own-id{letter-spacing:3px;font-variant-numeric:tabular-nums;white-space:nowrap;-webkit-user-select:text;user-select:text;font-size:34px}.nowrap{white-space:nowrap}.tabular{font-variant-numeric:tabular-nums}.dot{background:var(--muted);border-radius:50%;width:9px;height:9px;display:inline-block}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.bad{background:var(--danger)}.tiles{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.tile{text-align:left;padding:12px}.tile .id{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;padding-right:30px;font-weight:600;overflow:hidden}.tile{position:relative}.tile-status{background:var(--muted);width:9px;height:9px;box-shadow:0 0 0 2px var(--panel);border-radius:50%;position:absolute;bottom:10px;right:10px}.tile-status.ok{background:var(--ok)}.tile-status.off{background:var(--muted);opacity:.55}.tile .muted:last-of-type{padding-right:16px}.overlay{z-index:20;padding:24px;padding:max(16px, env(safe-area-inset-top,0px)) 16px max(16px, env(safe-area-inset-bottom,0px));background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sheet{flex-direction:column;gap:12px;width:min(420px,100%);max-height:100%;display:flex;overflow-y:auto}.steps{flex-direction:column;gap:6px;display:flex}.step{color:var(--muted);align-items:center;gap:8px;display:flex}.step.active{color:var(--text);font-weight:600}.step.done{color:var(--ok)}.toggle{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.toggle:last-child{border-bottom:0}:root{--switch-off:#d1d5db}@media (prefers-color-scheme:dark){:root{--switch-off:#3a4150}}.toggle input[type=checkbox]{appearance:none;background:var(--switch-off);cursor:pointer;border-radius:999px;flex:none;width:46px;height:28px;margin:0 0 0 12px;transition:background .2s;position:relative}.toggle input[type=checkbox]:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .35s cubic-bezier(.34,1.56,.64,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000004d}.toggle input[type=checkbox]:checked{background:var(--ok)}.toggle input[type=checkbox]:checked:after{transform:translate(18px)}.toggle input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{position:fixed;inset:0;overflow:hidden}.pages{position:absolute;inset:0}.page{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none;width:100%;transition:left .42s cubic-bezier(.22,1,.36,1),visibility;position:absolute;top:0;bottom:0;left:0;overflow:hidden auto}.page::-webkit-scrollbar{display:none}.page.left{visibility:hidden;transition:left .42s cubic-bezier(.22,1,.36,1),visibility 0s .42s;left:-100%}.page.right{visibility:hidden;transition:left .42s cubic-bezier(.22,1,.36,1),visibility 0s .42s;left:100%}.page>.screen{max-width:680px;min-height:100%;padding-bottom:calc(124px + env(safe-area-inset-bottom,0px));margin:0 auto}.settings-page{flex-direction:column;gap:12px;display:flex}.settings-page .panel>div:last-child,.settings-page .panel .field:last-child{margin-bottom:0!important}.settings-page .panel>.toggle:last-child{padding-bottom:0}.settings-page .panel:empty{display:none}.saved{color:var(--ok);opacity:0;font-size:12px;transition:opacity .2s}.saved.on{opacity:1}.btn.wide{width:100%}.wrap{overflow-wrap:anywhere}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.choices{border:1px solid var(--line);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.choice{border:0;border-bottom:1px solid var(--line);background:var(--panel);width:100%;min-height:46px;color:var(--text);text-align:left;cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.choice:last-child{border-bottom:0}.choice:active{background:var(--bg)}.choice svg{fill:none;width:20px;height:20px;stroke:var(--accent);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;opacity:0;flex:none;transition:opacity .15s,transform .25s cubic-bezier(.34,1.56,.64,1);transform:scale(.6)}.choice.on svg{opacity:1;transform:scale(1)}:root{--glass:#ffffffb8;--glass-line:#00000014;--pill:#2563eb21}@media (prefers-color-scheme:dark){:root{--glass:#20252fb8;--glass-line:#ffffff1a;--pill:#3b82f638}}.tabbar{z-index:10;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));width:min(calc(100% - 24px), calc(var(--n) * 92px));background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(22px)saturate(180%);backdrop-filter:blur(22px)saturate(180%);border-radius:999px;padding:5px;transition:width .5s cubic-bezier(.34,1.4,.64,1);display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 30px #00000024,0 1px 3px #00000014}.tabbar-pill{background:var(--pill);pointer-events:none;border-radius:999px;transition:left .5s cubic-bezier(.34,1.56,.64,1),width .5s cubic-bezier(.34,1.4,.64,1);position:absolute;top:5px;bottom:5px}.tabbar-item{min-width:0;height:50px;color:var(--muted);cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;padding:0 2px;transition:color .25s,transform .2s;display:flex;position:relative}.tabbar-item:active{transform:scale(.92)}.tabbar-item.on{color:var(--accent)}.tabbar-item svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.tabbar-item span{white-space:nowrap;max-width:100%;font-size:10.5px;line-height:1.1;overflow:hidden}.statusbar-glass{z-index:9;height:env(safe-area-inset-top,0px);background:var(--glass);background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(22px)saturate(180%);backdrop-filter:blur(22px)saturate(180%);pointer-events:none;position:fixed;top:0;left:0;right:0}@media (width<=380px){.tabbar-item span{font-size:9.5px}.tabbar-item svg{width:20px;height:20px}}@media (prefers-reduced-motion:reduce){.page,.page.left,.page.right,.tabbar,.tabbar-pill,.choice svg{transition-duration:0s}}.field{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.field label{color:var(--muted);font-size:12px}.error{color:var(--danger)}.downloads{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.btn.download{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;text-decoration:none;display:flex}.btn.download .download-meta{opacity:.8;font-size:12px}.btn.download[aria-disabled=true]{color:var(--muted);cursor:default}.client-choice{text-align:center;flex-direction:column;align-items:center;gap:6px;font-size:14px;display:flex}.paywall{width:min(460px,100%);max-height:calc(100dvh - 48px);overflow-y:auto}.paywall-inner{flex-direction:column;gap:12px;display:flex}.overlay.full{background:var(--bg);justify-content:stretch;align-items:stretch;padding:0}.paywall.full{width:100%;max-width:none;height:100%;max-height:none;padding:calc(24px + env(safe-area-inset-top,0px)) max(24px, env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(24px, env(safe-area-inset-left,0px));border:0;border-radius:0}.paywall.full .paywall-inner{width:min(460px,100%);margin:auto}.paywall-brand{margin-bottom:8px;font-size:17px;font-weight:600}.ending{color:var(--warn);font-weight:600}.panel.ending{border-color:var(--warn)}.seat-picker{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.stepper{align-items:center;gap:6px;display:flex}.stepper .btn{width:40px;height:40px;padding:0;font-size:18px}.stepper .input{text-align:center;width:64px}.link{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.link.danger{color:var(--danger)}:root{--sab:env(safe-area-inset-bottom,0px)}html.in-session,html.in-session body{overscroll-behavior:none;height:100%;overflow:hidden}.session{color:#fff;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.session.kbd{--sab:0px}.stage{touch-action:none;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}canvas{background:#0b0d12;outline:1px solid #2a303b;max-width:100%;max-height:100%}.badge{background:#2a303b;border-radius:999px;padding:2px 8px;font-size:12px}.badge.direct{background:#14532d}.badge.relay{background:#78350f}.countdown{background:var(--line);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.countdown-bar{background:var(--accent);height:100%;transition:width 1s linear}.stage .frame{position:absolute;inset:0}.stage .frame canvas{outline:0;width:100%;max-width:none;height:100%;max-height:none;display:block}.stage .cursor{pointer-events:none;filter:drop-shadow(0 1px 1.5px #000000b3);position:absolute}.stage .cam-overlay{right:12px;bottom:calc(12px + var(--sab));aspect-ratio:4/3;z-index:3;background:#000;border-radius:10px;outline:1px solid #2a303b;width:min(28vw,220px);height:auto;position:absolute;box-shadow:0 4px 16px #00000080}.stage .help{max-width:300px;color:var(--text);font-size:13px;line-height:1.6;position:absolute;top:12px;right:12px}.stage .stage-fit{left:10px;bottom:calc(10px + var(--sab));position:absolute}.tool{color:#e8eaf0;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#1b1f27f2;border:1px solid #2a303b;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:44px;height:44px;padding:0;display:inline-flex;position:relative}.tool:hover{border-color:#9aa3b2}.tool.on{background:var(--accent);border-color:var(--accent);color:#fff}.tool.danger{color:#f87171}.tool:disabled{opacity:.4;cursor:default}.tool .cap{letter-spacing:.2px;font-variant-numeric:tabular-nums;font-size:9px;line-height:1}.tool:has(.cap) svg{width:18px;height:18px}.tool select{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}:root{--sal:env(safe-area-inset-left,0px);--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px)}.dock{--accent:#3b82f6;--pill:#3b82f638;z-index:4;touch-action:none;justify-content:flex-start;align-items:flex-start;transition:transform .3s cubic-bezier(.34,1.2,.64,1),opacity .2s;display:flex;position:absolute}.dock.left{left:var(--sal);top:var(--sat);bottom:var(--sab);flex-direction:row;padding:10px 0 10px 10px}.dock.bottom{left:var(--sal);right:var(--sar);bottom:var(--sab);flex-direction:column;padding:0 12px 12px}.dock.left.closed{opacity:0;pointer-events:none;transform:translate(-110%)}.dock.bottom.closed{opacity:0;pointer-events:none;transform:translateY(110%)}.dock-bar{box-sizing:border-box;-webkit-backdrop-filter:blur(22px)saturate(180%);backdrop-filter:blur(22px)saturate(180%);scrollbar-width:none;overscroll-behavior:contain;background:#1b1f27c7;border:1px solid #ffffff1a;border-radius:31px;gap:2px;max-width:100%;max-height:100%;margin:auto;padding:5px;display:grid;overflow:auto;box-shadow:0 8px 30px #00000059,0 1px 3px #0003}.dock-bar::-webkit-scrollbar{display:none}.dock.bottom .dock-bar{grid-auto-flow:row;grid-template-columns:repeat(var(--tracks,6), 62px)}.dock.left .dock-bar{grid-auto-flow:column;grid-template-rows:repeat(var(--tracks,6), 52px)}.dock-item{color:#b4bcc9;cursor:pointer;width:62px;height:52px;font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;padding:0 2px;transition:color .2s,background .2s,transform .15s;display:flex;position:relative}.dock-item:hover{color:#fff}.dock-item:active{transform:scale(.92)}.dock-item.on{color:var(--accent);background:var(--pill)}.dock-item.danger{color:#f87171}.dock-item:disabled{opacity:.4;cursor:default}.dock-item svg{width:22px;height:22px}.dock-label{white-space:nowrap;font-variant-numeric:tabular-nums;max-width:100%;font-size:10px;line-height:1.1;overflow:hidden}.dock-item select{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.dock-grab{z-index:4;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.dock-grab.left{left:var(--sal);width:22px;height:80px;margin-top:-40px;top:50%}.dock-grab.bottom{left:50%;bottom:var(--sab);width:90px;height:20px;margin-left:-45px}.dock-grab span{background:#e8eaf080;border-radius:3px;display:block;box-shadow:0 0 0 1px #0000004d}.dock-grab.left span{width:5px;height:40px;margin-left:5px}.dock-grab.bottom span{width:44px;height:5px;margin-bottom:6px}.dock-grab:hover span{background:#e8eaf0}.dock-pop{z-index:6;box-sizing:border-box;-webkit-backdrop-filter:blur(22px)saturate(180%);backdrop-filter:blur(22px)saturate(180%);color:#e8eaf0;background:#1b1f27eb;border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;gap:2px;min-width:210px;padding:8px;font-size:12px;display:flex;position:absolute;box-shadow:0 8px 30px #0006}.dock.left .dock-pop{margin-left:8px;top:50%;left:100%;transform:translateY(-50%)}.dock.bottom .dock-pop{max-width:calc(100vw - 24px);margin-bottom:8px;bottom:100%;left:50%;transform:translate(-50%)}.pop-row{font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:space-between;align-items:center;gap:14px;padding:5px 8px;display:flex}.pop-row>span:first-child{color:#9aa3b2}.pop-row .peer{font-variant-numeric:tabular-nums;letter-spacing:-.2px}.pop-row .badge{font-size:11px}.pop-note{color:#9aa3b2;white-space:normal;max-width:260px;padding:4px 8px 2px;font-size:11px;line-height:1.4}.shared-row{color:#9aa3b2;cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;min-height:40px;padding:8px 10px;display:flex}.shared-row:hover{color:#e8eaf0;background:#ffffff0f}.shared-row.on{color:#e8eaf0}.shared-row.on svg{color:var(--accent)}.shared-row svg{flex:none;width:18px;height:18px}.shared-row span:first-of-type{flex:1}.shared-state{color:#9aa3b2;font-variant-numeric:tabular-nums;font-size:11px}.kbbar{height:46px;padding:0 8px 0 max(8px, var(--sal));z-index:3;background:#1b1f27;border-top:1px solid #2a303b;flex:none;align-items:center;gap:8px;display:flex;position:relative}.kbbar .grow{flex:1}.seg{background:#ffffff14;border-radius:999px;gap:2px;padding:3px;display:flex}.seg button{color:#9aa3b2;height:30px;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;padding:0 14px;font-size:13px;transition:color .2s,background .2s}.seg button.on{color:#fff;background:#3b82f647}.kbbar-latched{color:#3b82f6;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.kbbar-hide{color:#e8eaf0;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff14;border:0;border-radius:10px;justify-content:center;align-items:center;width:40px;height:34px;display:flex}.kbbar-hide svg{width:20px;height:20px}.typebar-form{display:contents}.typebar-field{opacity:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.typebar-field input{color:#0000;caret-color:#0000;-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:0;width:100%;height:100%;padding:0;font-size:16px}.session.kb .dock,.session.kb .dock-grab,.session.kbd .dock,.session.kbd .dock-grab{display:none}.keypad{box-sizing:content-box;padding:6px max(8px, var(--sar)) calc(4px + var(--sab)) max(8px, var(--sal));touch-action:none;-webkit-user-select:none;user-select:none;background:#1b1f27;border-top:1px solid #2a303b;flex-direction:column;flex:none;gap:6px;display:flex}.keypad-fn{scrollbar-width:none;flex:none;gap:4px;display:flex;overflow-x:auto}.keypad-fn::-webkit-scrollbar{display:none}.keypad-fn .key{flex:none;width:46px;height:30px;font-size:11px}.keypad-main{flex:1;grid-template-columns:5fr 4fr;gap:10px;min-height:0;display:grid}.keypad-left{grid-template-rows:repeat(5,minmax(0,1fr));grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;display:grid}.keypad-main.mac{grid-template-columns:1fr 1fr}.keypad-left.mac{grid-template-columns:repeat(4,minmax(0,1fr))}.keypad-num{grid-template-rows:repeat(5,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.key{color:#e8eaf0;min-width:0;min-height:0;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none;white-space:nowrap;background:#2a303b;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:12px;display:flex;overflow:hidden;box-shadow:0 1px #0006}.key:active{box-shadow:none;background:#3a4150;transform:translateY(1px)}.key.mod{color:#b4bcc9;background:#222733}.key.mod.on{color:#fff;background:#3b82f6}.key.num{font-size:15px}.key svg{width:16px;height:16px}@media (width<=380px){.key{font-size:11px}.keypad-main{gap:6px}}@media (prefers-reduced-motion:reduce){.dock,.dock-item{transition-duration:0s}}.brand{align-items:center;gap:8px;display:inline-flex}.support{width:100%;max-width:520px;margin:0 auto}.support-number{letter-spacing:4px;text-align:center;padding:10px 0 4px;font-size:44px}.support-status{align-items:center;gap:8px;min-height:20px;margin-top:10px;display:flex}.support-foot{text-align:center;margin-top:auto;font-size:12px}.support-landing{text-align:left;width:100%;max-width:520px}.support-landing h1{margin-bottom:10px}.support-steps{flex-direction:column;gap:8px;margin:0;padding-left:22px;line-height:1.5;display:flex}.blurred{filter:blur(7px);-webkit-user-select:none;user-select:none}.tour{display:contents}.tour-dim{z-index:30;pointer-events:auto;background:#0000008c;position:fixed}.tour-ring{z-index:30;pointer-events:none;box-shadow:0 0 0 2px var(--accent);border-radius:10px;position:fixed}.tour-card{z-index:31;flex-direction:column;gap:10px;width:min(360px,100% - 32px);line-height:1.5;display:flex;position:fixed;box-shadow:0 10px 30px #00000040}.tour-card h2{margin:0}.tour-foot{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.tour-dots{align-items:center;gap:4px;margin-right:auto;font-size:12px;display:inline-flex}.tour-dots i{background:var(--line);border-radius:50%;width:6px;height:6px}.tour-dots i.on{background:var(--accent)}.tour-dots .muted{margin-left:4px}
