:root{color-scheme:dark;font-family:Inter,Segoe UI,system-ui,sans-serif;background:#0b101b;color:#e6ebf5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 15% 0%,#17233a 0,transparent 55%)}[hidden]{display:none!important}header{max-width:1280px;margin:auto;padding:26px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;gap:12px;align-items:center}.brand strong{font-size:19px;letter-spacing:-.5px}.brand small{display:block;font-size:12px;color:#8d9bb4;margin-top:4px}.logo{font-weight:900;font-size:24px;display:grid;place-items:center;width:44px;height:44px;background:#436dfa;border-radius:13px}.badge{font-size:12px;padding:8px 12px;border:1px solid #35415a;border-radius:20px;white-space:nowrap}.badge.online{color:#85e7be;border-color:#285f51;background:#112d28}main{max-width:1280px;margin:auto;padding:12px 24px 32px}.card{background:#131c2c;border:1px solid #29344b;border-radius:16px}.auth{max-width:440px;margin:7vh auto;padding:32px}.eyebrow{font-size:11px;letter-spacing:2px;color:#8da8ff}h1{font-size:28px;letter-spacing:-1px;margin:14px 0}p{color:#a4b1c7;line-height:1.6}form label{display:block;font-size:14px;margin-top:20px}input:not([type=checkbox]),textarea,select{font:inherit;background:#0c1422;color:#eef2ff;border:1px solid #39465f;border-radius:8px;padding:12px;max-width:100%}form input{display:block;width:100%;margin-top:8px}input:focus,textarea:focus,button:focus-visible,select:focus{outline:2px solid #7494ff;outline-offset:2px}button{font:inherit;font-weight:600;font-size:13px;min-height:44px;padding:10px 16px;color:#dde6f9;background:#1c2b43;border:1px solid #3a4b69;border-radius:9px;cursor:pointer}button:hover{background:#2b4060}button:disabled{opacity:.4;cursor:not-allowed}.primary{background:#4168ee;color:white;border-color:#6384f5}.primary:hover{background:#5279ff}form button{width:100%;margin-top:26px}.toolbar{padding:18px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.toolbar small{display:block;color:#9baac4;margin-top:6px;font-size:12px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.quiet{background:transparent;color:#a4b3ce}.viewer{background:#05080f;min-height:300px;aspect-ratio:16/9;border:1px solid #2b3951;border-radius:14px;overflow:auto;position:relative;display:grid;place-items:center}.viewer img{width:100%;height:auto;max-height:none;display:block;touch-action:pinch-zoom;user-select:none;cursor:crosshair}.viewer img.dragging{touch-action:none}#placeholder{text-align:center;padding:30px;max-width:430px}.monitor-icon{font-size:66px;color:#4c6799}#placeholder h2{font-size:20px}#placeholder p{font-size:14px}#stale{position:absolute;left:12px;top:12px;font-size:12px;padding:8px 12px;background:#15213bea;border-radius:8px;pointer-events:none}.control-panel{padding:18px;margin-top:14px}.control-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.toggle{display:inline-flex;gap:9px;align-items:center;font-size:13px;min-height:44px}.toggle input{width:20px;height:20px;accent-color:#5279ff}.hint{font-size:12px;margin-top:7px}.keyrow{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.textsend{display:flex;gap:8px;margin-top:16px}.textsend textarea{flex:1;resize:vertical;font-size:14px}.message{text-align:center;font-size:14px;padding:10px;border-radius:10px;overflow-wrap:anywhere}.message.error{background:#411f2d;color:#ffc3ce}.footnote{font-size:12px;text-align:center;max-width:740px;margin:20px auto}footer{max-width:1280px;margin:auto;padding:20px 24px;border-top:1px solid #202d45;font-weight:800;letter-spacing:2px;font-size:12px;color:#7b8faa}footer span{font-weight:400}footer small{float:right;letter-spacing:0;font-weight:400}@media(max-width:640px){header{padding:18px 14px}.brand small{font-size:10px}.brand strong{font-size:16px}main{padding:6px 12px 22px}.auth{padding:24px;margin:4vh auto}.toolbar{display:block;padding:14px}.actions{margin-top:15px}.actions button,.actions select{flex:1}.viewer{min-height:210px}.control-panel{padding:12px}.control-heading{align-items:flex-start}.control-heading button{font-size:11px;padding:8px}.textsend{display:block}.textsend textarea,.textsend button{width:100%}.textsend button{margin-top:8px}.keyrow button{flex:1;padding:9px 10px}footer{padding:18px 14px}}

/* Shared by the normal page and the actual fullscreen element. */
.remote-stage{border:1px solid #2b3951;border-radius:14px;overflow:hidden;background:#05080f}
.stage-content{display:flex;flex-direction:column;min-width:0;min-height:0}
.remote-stage .viewer{border:0;border-radius:0;overflow:hidden;min-height:200px;position:relative;aspect-ratio:16/9}
.remote-stage .viewer img{position:absolute;inset:0;width:100%;height:100%;max-height:100%;object-fit:contain;cursor:default;touch-action:pinch-zoom;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.remote-stage .viewer.controlling img{touch-action:none;cursor:none}
.remote-stage .viewer img:focus{outline:none}
.remote-cursor{position:absolute;pointer-events:none;z-index:3;filter:drop-shadow(0 1px 2px #000b)}
.stage-tools{display:flex;gap:6px;align-items:center;overflow-x:auto;flex-shrink:0;padding:8px;background:#111b2bea;scrollbar-width:thin}
.stage-tools button{flex-shrink:0;white-space:nowrap;font-size:12px;min-width:44px;padding:8px 12px}
.stage-tools button[aria-pressed=true],.stage-tools button[aria-expanded=true]{background:#28477d;border-color:#648cf4;color:#fff}
.keyboard-button{display:flex;align-items:center;gap:7px}
.keyboard-dock{flex-shrink:0;padding:8px;background:#142139;border-top:1px solid #344765}
.keyboard-dock textarea{display:block;resize:none;width:100%;min-height:40px;max-height:44px;font-size:16px;line-height:20px;padding:10px;border-color:#5579c6;scrollbar-width:none;caret-color:#b4c9ff}
.native-keys{display:flex;gap:5px;overflow-x:auto;padding-top:6px}
.native-keys button{flex:1;flex-shrink:0;white-space:nowrap;min-height:40px;padding:7px 10px;font-size:12px}
.stage-message{flex-shrink:0;min-height:24px;margin:0;padding:5px 12px;background:#10192a;color:#95aacb;font-size:11px;line-height:1.4;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage-message.error{color:#ffc3ce;background:#411f2d}
#rotateHint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:4;max-width:90%;width:max-content;border:1px solid #456293;border-radius:20px;padding:8px 14px;font-size:12px;color:#e8efff;background:#15213bea;pointer-events:none}
.screen-immersive{overflow:hidden;overscroll-behavior:none}
.remote-stage.immersive{position:fixed;z-index:10000;top:var(--vtop,0px);left:var(--vleft,0px);width:var(--vwidth,100vw);height:var(--vheight,100dvh);border:0;border-radius:0;background:#05080f}
.remote-stage.immersive .stage-content{height:100%;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}
.remote-stage.immersive .viewer{flex:1;aspect-ratio:auto;min-height:0}
.remote-stage:fullscreen{background:#05080f}
.remote-stage:fullscreen .stage-content{height:var(--vheight,100dvh);max-height:100%}
.remote-stage:-webkit-full-screen .stage-content{height:var(--vheight,100dvh);max-height:100%}
.remote-stage.immersive .stage-tools{padding-top:5px;padding-bottom:5px}
.remote-stage.immersive .stage-message{font-size:10px;padding-top:3px;padding-bottom:3px;min-height:20px}
@media(max-width:640px){.stage-tools{gap:5px;padding:6px}.stage-tools button{padding:8px 10px}.remote-stage .viewer{min-height:180px}.keyboard-dock{padding:6px}.native-keys button{padding:7px 8px}.stage-message{font-size:10px}}
@media(orientation:landscape) and (max-height:520px){.remote-stage.immersive .stage-tools{gap:5px;padding:3px 6px}.remote-stage.immersive .stage-tools button{min-height:40px;padding:6px 10px}.remote-stage.immersive .stage-message{display:none}.keyboard-dock textarea{min-height:36px;max-height:36px;padding:7px 10px}.native-keys{padding-top:4px}.native-keys button{min-height:34px;padding:5px 10px}}
