:root{color-scheme:dark;--accent: #4f8dff;--accent-2: #7a5cff;--accent-press: #3f7ae6;--green: #34d399;--amber: #fbbf24;--red: #f87171;--bg: #0b0d12;--text: #eef1f6;--text-2: #c4cad6;--muted: #8b93a3;--glass: rgba(23, 26, 34, .66);--glass-2: rgba(44, 49, 62, .6);--field: rgba(255, 255, 255, .06);--field-hover: rgba(255, 255, 255, .1);--stroke: rgba(255, 255, 255, .12);--stroke-2: rgba(255, 255, 255, .07);--radius-s: 10px;--radius-m: 14px;--radius-l: 20px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .35);--shadow-2: 0 2px 6px rgba(0, 0, 0, .35), 0 24px 64px rgba(0, 0, 0, .5);--blur: blur(28px) saturate(170%);--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--ease: cubic-bezier(.22, .9, .24, 1)}@media (prefers-color-scheme: light){:root{color-scheme:light;--bg: #eef0f5;--text: #161a22;--text-2: #3c4250;--muted: #69707f;--glass: rgba(255, 255, 255, .72);--glass-2: rgba(255, 255, 255, .85);--field: rgba(20, 24, 34, .05);--field-hover: rgba(20, 24, 34, .09);--stroke: rgba(16, 20, 30, .13);--stroke-2: rgba(16, 20, 30, .07);--shadow-1: 0 1px 2px rgba(20, 26, 40, .08), 0 8px 24px rgba(20, 26, 40, .1);--shadow-2: 0 2px 6px rgba(20, 26, 40, .1), 0 24px 64px rgba(20, 26, 40, .18)}}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI Variable,Segoe UI,system-ui,Roboto,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased;accent-color:var(--accent);-webkit-tap-highlight-color:transparent}.mono{font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:11.5px;word-break:break-all}::selection{background:color-mix(in srgb,var(--accent) 35%,transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}*{scrollbar-width:thin;scrollbar-color:var(--stroke) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--stroke);border-radius:99px}*::-webkit-scrollbar-track{background:transparent}#stage{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}#screen{width:100%;height:100%;object-fit:contain;background:#000;cursor:none;touch-action:none;-webkit-user-select:none;user-select:none}.hud{position:absolute;top:calc(8px + var(--safe-t));left:8px;padding:5px 11px;border-radius:9px;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--stroke);font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--text-2);pointer-events:none;box-shadow:var(--shadow-1);z-index:30;letter-spacing:.1px}.hud.hidden{display:none}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:60;background:var(--bg);overflow:hidden}.overlay.hidden{display:none}.aurora{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;pointer-events:none;filter:blur(70px);opacity:.55}.aurora:before,.aurora:after{content:"";position:absolute;border-radius:50%}.aurora:before{width:52vmax;height:52vmax;left:-8vmax;top:-14vmax;background:radial-gradient(circle at 30% 30%,rgba(79,141,255,.5),transparent 62%)}.aurora:after{width:46vmax;height:46vmax;right:-10vmax;bottom:-16vmax;background:radial-gradient(circle at 70% 70%,rgba(122,92,255,.42),transparent 62%)}@media (prefers-color-scheme: light){.aurora{opacity:.35}}.card{position:relative;display:grid;gap:12px;width:min(392px,calc(100vw - 32px));padding:30px 28px 24px;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--stroke);border-radius:var(--radius-l);box-shadow:var(--shadow-2)}.screen[hidden]{display:none!important}.screen.wide{width:min(760px,calc(100vw - 32px));max-height:min(86vh,720px);overflow-y:auto}.brand{display:grid;justify-items:center;gap:4px;margin-bottom:8px}.logo{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(140deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 45%,transparent),inset 0 1px #ffffff59}.logo svg{width:30px;height:30px}.logo.sm{width:40px;height:40px;border-radius:12px}.logo.sm svg{width:22px;height:22px}.card h1{margin:6px 0 0;font-size:22px;font-weight:700;letter-spacing:-.3px;text-align:center}.card .sub{margin:0;color:var(--muted);font-size:13px;text-align:center}.card label{display:grid;gap:6px;font-size:12px;font-weight:600;color:var(--text-2)}.card input{padding:12px 13px;background:var(--field);border:1px solid var(--stroke);border-radius:var(--radius-s);color:var(--text);font-size:14px;font-weight:400;transition:border-color .15s,background .15s}.card input::placeholder{color:color-mix(in srgb,var(--muted) 70%,transparent)}.card input:hover{background:var(--field-hover)}.card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.hint{margin:2px 0 0;font-size:11.5px;color:var(--muted);text-align:center;min-height:1em}.muted{color:var(--muted)}.dash-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dash-id{display:flex;align-items:center;gap:12px}.dash-id h1{margin:0;text-align:left;font-size:19px}.dash-id .sub{margin:1px 0 0;text-align:left;font-size:12.5px}.dash-foot{margin:4px 2px 0;font-size:12px;color:var(--muted)}.host-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:10px}.host-card{display:flex;flex-direction:column;gap:3px;padding:16px;border-radius:var(--radius-m);background:var(--field);border:1px solid var(--stroke-2);cursor:pointer;transition:transform .16s var(--ease),background .16s,border-color .16s,box-shadow .16s}.host-card:hover{background:var(--field-hover);border-color:var(--stroke);transform:translateY(-2px);box-shadow:var(--shadow-1)}.host-card:active{transform:translateY(0) scale(.99)}.host-card .top{display:flex;align-items:center;gap:8px}.host-card .name{font-weight:650;font-size:15px;letter-spacing:-.1px}.host-card .meta{font-size:12px;color:var(--muted)}.host-card .cta{margin-top:10px;font-size:13px;color:var(--accent);font-weight:650}.host-card .cta:after{content:" →";transition:margin .16s}.host-card:hover .cta:after{margin-left:3px}.btn{all:unset;text-align:center;padding:11px 16px;border-radius:var(--radius-s);cursor:pointer;font-weight:650;font-size:14px;letter-spacing:.1px;transition:transform .12s,filter .15s,background .15s}.btn:active{transform:scale(.985)}.btn.lg{padding:13px 16px;margin-top:4px}.btn.blue{background:linear-gradient(180deg,var(--accent),var(--accent-press));color:#fff;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent),inset 0 1px #ffffff40}.btn.blue:hover{filter:brightness(1.07)}.btn.red{background:linear-gradient(180deg,var(--red),color-mix(in srgb,var(--red) 80%,#000));color:#fff}.btn.ghost{background:var(--field);border:1px solid var(--stroke);color:var(--text-2)}.btn.ghost:hover{background:var(--field-hover);color:var(--text)}.btn.sm{padding:8px 13px;font-size:13px}.pill{position:absolute;top:calc(12px + var(--safe-t));left:50%;transform:translate(-50%);display:flex;gap:8px;align-items:center;padding:7px 15px;border-radius:999px;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--stroke);font-size:12.5px;font-weight:550;color:var(--text-2);box-shadow:var(--shadow-1);transition:opacity .3s;z-index:40;white-space:nowrap;max-width:calc(100vw - 24px);overflow:hidden;text-overflow:ellipsis}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none;transition:background .2s}.dot.live,.dot.ok{background:var(--green);box-shadow:0 0 10px color-mix(in srgb,var(--green) 70%,transparent)}.dot.warn{background:var(--amber);box-shadow:0 0 10px color-mix(in srgb,var(--amber) 50%,transparent)}.dot.bad{background:var(--red);box-shadow:0 0 10px color-mix(in srgb,var(--red) 60%,transparent)}.handle{position:absolute;top:var(--safe-t);left:50%;transform:translate(-50%);width:160px;height:28px;display:grid;place-items:center;cursor:pointer;z-index:45}.handle:after{content:"";width:44px;height:5px;border-radius:3px;background:color-mix(in srgb,var(--muted) 55%,transparent);transition:.2s}.handle:hover:after{background:var(--muted);width:56px}.handle.hidden{pointer-events:none;opacity:0}.dock{position:absolute;top:calc(10px + var(--safe-t));left:50%;transform:translate(-50%,-150%) scale(.98);opacity:0;width:min(600px,calc(100vw - 20px));padding:10px 12px;border-radius:var(--radius-l);background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--stroke);box-shadow:var(--shadow-2);z-index:46;transition:transform .32s var(--ease),opacity .22s}.dock.show{transform:translate(-50%) scale(1);opacity:1}.dock-row{display:flex;gap:8px;align-items:center}.dock-info{display:flex;gap:8px;align-items:center;margin-right:auto;min-width:0;font-size:12.5px;font-weight:550;color:var(--text-2)}.dock-info span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-row.quick{margin-top:10px;padding-top:10px;border-top:1px solid var(--stroke-2)}.q-label{font-size:12px;font-weight:600;color:var(--muted)}.dock-row.quick input[type=range]{flex:1;min-width:60px}.ic{all:unset;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;cursor:pointer;color:var(--text-2);background:var(--field);border:1px solid var(--stroke-2);transition:background .15s,color .15s,transform .12s,border-color .15s;flex:none}.ic svg{width:19px;height:19px}.ic:hover{background:var(--field-hover);color:var(--text);border-color:var(--stroke)}.ic:active{transform:scale(.92)}.ic.active{background:var(--accent);color:#fff;border-color:transparent}.ic.danger{color:var(--red)}.ic.danger:hover{background:color-mix(in srgb,var(--red) 16%,transparent);border-color:color-mix(in srgb,var(--red) 35%,transparent);color:var(--red)}.modeseg{display:flex;gap:2px;padding:3px;background:var(--field);border:1px solid var(--stroke-2);border-radius:11px}.modeseg button{all:unset;padding:6px 11px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;border-radius:8px;transition:.15s}.modeseg button.on{background:var(--accent);color:#fff;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 40%,transparent)}.drawer{position:absolute;top:0;right:0;bottom:0;width:400px;max-width:92vw;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border-left:1px solid var(--stroke);box-shadow:var(--shadow-2);transform:translate(106%);transition:transform .32s var(--ease);display:flex;flex-direction:column;z-index:70}.drawer.show{transform:translate(0)}.drawer-head{display:flex;align-items:center;padding:calc(14px + var(--safe-t)) 16px 6px}.drawer-head h2{margin:0;flex:1;font-size:18px;font-weight:700;letter-spacing:-.2px}.tabs{display:flex;gap:2px;margin:6px 14px 10px;padding:3px;background:var(--field);border-radius:11px;overflow-x:auto}.tabs button{all:unset;flex:1;text-align:center;padding:7px 10px;border-radius:8px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;transition:.15s}.tabs button.on{background:var(--glass-2);color:var(--text);box-shadow:var(--shadow-1)}.drawer-body{padding:2px 14px calc(22px + var(--safe-b));overflow-y:auto}.pane{display:none}.pane.on{display:block;animation:pane-in .22s var(--ease)}@keyframes pane-in{0%{opacity:0;transform:translateY(4px)}}.grp{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);margin:18px 4px 8px}.item{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:var(--radius-s);background:var(--field);border:1px solid var(--stroke-2);margin-bottom:7px;font-size:13.5px}.item .lbl{flex:1;font-weight:550}.item .lbl small{display:block;color:var(--muted);font-size:11.5px;font-weight:400;margin-top:1px}.item input[type=range]{width:132px}.disabled{opacity:.4;pointer-events:none;filter:grayscale(.5)}select{background:var(--glass-2);color:var(--text);border:1px solid var(--stroke);border-radius:9px;padding:8px 10px;font-size:13px;font-weight:550;max-width:58%}input[type=range]{height:4px;cursor:pointer}.sw{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:44px;height:26px;border-radius:999px;background:color-mix(in srgb,var(--muted) 38%,transparent);position:relative;cursor:pointer;transition:background .2s;flex:none}.sw:after{content:"";position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .2s var(--ease);box-shadow:0 1px 3px #0006}.sw:checked{background:var(--green)}.sw:checked:after{left:20px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:8px}.tile{all:unset;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;padding:14px 6px;border-radius:var(--radius-m);background:var(--field);border:1px solid var(--stroke-2);cursor:pointer;font-size:12px;font-weight:550;text-align:center;transition:background .15s,transform .12s,border-color .15s}.tile:hover{background:var(--field-hover);border-color:var(--stroke)}.tile:active,.tile.down{transform:scale(.95)}.tile .e{font-size:20px}.tile.bad{color:var(--red)}.tile.bad:hover{background:color-mix(in srgb,var(--red) 12%,transparent);border-color:color-mix(in srgb,var(--red) 30%,transparent)}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;background:#04060a80;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transition:opacity .2s;pointer-events:none}.scrim.show{opacity:1;pointer-events:auto}.modal{width:min(360px,calc(100vw - 40px));padding:26px 22px 20px;border-radius:var(--radius-l);text-align:center;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--stroke);box-shadow:var(--shadow-2);transform:scale(.95) translateY(6px);transition:transform .22s var(--ease)}.scrim.show .modal{transform:scale(1) translateY(0)}.modal-icon{font-size:34px}.modal h3{margin:12px 0 4px;font-size:17.5px;font-weight:700;letter-spacing:-.2px}.modal p{margin:0 0 18px;color:var(--muted);font-size:13px}.modal-btns{display:flex;gap:10px}.modal-btns .btn{flex:1}.toasts{position:fixed;left:50%;bottom:calc(20px + var(--safe-b));transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;z-index:90;pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}.toast{padding:10px 17px;border-radius:11px;font-size:13px;font-weight:550;box-shadow:var(--shadow-2);background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--stroke);color:var(--text);opacity:0;transform:translateY(10px) scale(.98);transition:opacity .25s,transform .28s var(--ease)}.toast.in{opacity:1;transform:translateY(0) scale(1)}.toast.error{border-color:color-mix(in srgb,var(--red) 45%,transparent);color:var(--red)}.trackpad{position:absolute;left:10px;right:10px;bottom:calc(12px + var(--safe-b));height:300px;border-radius:var(--radius-l);background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--stroke);box-shadow:var(--shadow-2);display:none;flex-direction:column;overflow:hidden;z-index:42;touch-action:none}.trackpad.show{display:flex}.tp-area{flex:1;display:grid;place-items:center;text-align:center;padding:0 24px;color:var(--muted);font-size:13px}.tp-btns{display:flex;gap:2px;height:56px;border-top:1px solid var(--stroke-2)}.tp-btns button{all:unset;flex:1;display:grid;place-items:center;background:var(--field);font-size:13px;font-weight:600;color:var(--muted)}.tp-btns button.down{background:var(--accent);color:#fff}.gamepad{position:absolute;top:0;right:0;bottom:0;left:0;display:none;z-index:42;touch-action:none}.gamepad.show{display:block}.gamepad .stick{position:absolute;bottom:calc(110px + var(--safe-b));width:124px;height:124px;border-radius:50%;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--stroke);box-shadow:var(--shadow-1)}.gamepad .stick.l{left:22px}.gamepad .stick.r{right:22px}.gamepad .stick [data-knob]{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:color-mix(in srgb,var(--text) 35%,transparent);border:1px solid var(--stroke)}.gamepad .face{position:absolute;right:150px;bottom:calc(150px + var(--safe-b));width:132px;height:132px}.gamepad .face button{all:unset;position:absolute;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--glass-2);border:1px solid var(--stroke);cursor:pointer}.gamepad .face .y{left:44px;top:0;color:var(--amber)}.gamepad .face .x{left:0;top:44px;color:var(--accent)}.gamepad .face .b{right:0;top:44px;color:var(--red)}.gamepad .face .a{left:44px;bottom:0;color:var(--green)}.gamepad .dpad{position:absolute;left:150px;bottom:calc(150px + var(--safe-b));width:132px;height:132px}.gamepad .dpad button{all:unset;position:absolute;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--glass-2);border:1px solid var(--stroke);cursor:pointer;color:var(--muted)}.gamepad .dpad [data-btn=UP]{left:44px;top:0}.gamepad .dpad [data-btn=LEFT]{left:0;top:44px}.gamepad .dpad [data-btn=RIGHT]{right:0;top:44px}.gamepad .dpad [data-btn=DOWN]{left:44px;bottom:0}.gamepad .shoulder{position:absolute;top:calc(20px + var(--safe-t));display:flex;gap:8px}.gamepad .shoulder.l{left:20px}.gamepad .shoulder.r{right:20px}.gamepad .sh{all:unset;padding:10px 16px;border-radius:12px;background:var(--glass-2);border:1px solid var(--stroke);color:var(--muted);cursor:pointer;font-size:13px;font-weight:600}.gamepad .center{position:absolute;left:50%;transform:translate(-50%);bottom:calc(30px + var(--safe-b));display:flex;gap:14px}.gamepad .center button{all:unset;width:44px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--glass-2);border:1px solid var(--stroke);color:var(--muted);cursor:pointer}.gamepad button.down{background:var(--accent);color:#fff}.touch-only{display:none!important}@media (pointer: coarse){.touch-only{display:revert!important}.modeseg.touch-only{display:flex!important}.ic{width:42px;height:42px}.item{padding:13px}select,.tabs button{font-size:13px}}@media (max-width: 560px){.drawer{top:auto;left:0;right:0;bottom:0;width:100%;max-width:100%;max-height:82vh;border-left:none;border-top:1px solid var(--stroke);border-radius:var(--radius-l) var(--radius-l) 0 0;transform:translateY(106%)}.drawer.show{transform:translateY(0)}.host-list{grid-template-columns:1fr}.card{padding:24px 20px 20px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
