:root{font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;color:#172033;background:#f3f6fb}*{box-sizing:border-box}body{margin:0}header{height:64px;padding:0 18px;background:linear-gradient(135deg,#1769e0,#3389ff);color:white;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:4;box-shadow:0 4px 18px #1769e033}header h1{font-size:20px;margin:0}header span{font-size:12px;background:#ffffff22;padding:6px 10px;border-radius:99px}main{max-width:720px;margin:auto;padding:16px 14px 48px}.card{background:white;border-radius:18px;padding:18px;margin-bottom:14px;box-shadow:0 5px 22px #2d559112}.card h2{font-size:18px;margin:0 0 14px}.login{margin-top:12vh}label{display:block;font-size:13px;color:#667085}input{width:100%;font:inherit;padding:13px;margin:8px 0 14px;border:1px solid #d8dfeb;border-radius:12px}.primary,button{border:0;border-radius:12px;padding:12px 16px;font:inherit;cursor:pointer}.primary{width:100%;background:#1769e0;color:white;font-weight:700}.hint,.muted{color:#738097;font-size:13px}.device{position:relative}.device .small{position:absolute;right:14px;top:14px}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#9aa4b4;margin-right:8px}.dot.online{background:#18b76a;box-shadow:0 0 0 4px #18b76a1f}.muted{margin:8px 0 0 18px}.small{padding:7px 11px;background:#eef4ff;color:#1769e0;font-size:13px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.action{min-height:112px;background:white;color:#172033;box-shadow:0 5px 22px #2d559112;display:flex;flex-direction:column;align-items:flex-start;font-weight:700;text-align:left}.action span{font-size:25px;color:#1769e0;margin-bottom:10px}.action small{font-weight:400;color:#7a879a;margin-top:5px}.action.safe span{color:#14a56a}.action.danger span{color:#ed3f4f}.progress{display:flex;align-items:center;gap:14px}.progress p{margin:5px 0 0;color:#738097}.spinner{width:30px;height:30px;border:3px solid #dce8fa;border-top-color:#1769e0;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.row{display:flex;align-items:center;justify-content:space-between}.row h2{margin:0}.phone{background:#101318;border-radius:14px;padding:8px;margin-top:12px;min-height:260px;display:flex;justify-content:center}.phone img{display:block;max-width:100%;max-height:64vh;object-fit:contain;cursor:crosshair}.remoteButtons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.remoteButtons button{padding:9px 5px;background:#edf3fc;color:#32425e;font-size:13px}.history{margin-top:12px}.job{padding:12px 0;border-top:1px solid #edf0f5}.job:first-child{border-top:0}.jobTop{display:flex;justify-content:space-between;gap:10px}.status{font-size:12px;border-radius:99px;padding:3px 8px;background:#eef2f8}.status.succeeded{color:#087a47;background:#e6f8ef}.status.failed{color:#b42336;background:#ffeaed}.shots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:9px}.shots img{width:100%;border-radius:8px;background:#eee}.link{display:block;margin:20px auto;background:transparent;color:#6b7688}dialog{border:0;border-radius:20px;max-width:380px;width:calc(100% - 32px);padding:22px;box-shadow:0 20px 80px #0005}dialog::backdrop{background:#11182799}.dialogActions{display:flex;justify-content:flex-end;gap:8px}.dangerButton{background:#df3043;color:#fff;font-weight:700}#toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:#172033;color:#fff;padding:11px 16px;border-radius:12px;opacity:0;pointer-events:none;transition:.2s;z-index:9;max-width:85%;text-align:center}#toast.show{opacity:1}@media(max-width:400px){.actions{grid-template-columns:1fr}.remoteButtons{grid-template-columns:1fr 1fr}}
[hidden]{display:none!important}button:disabled{opacity:.45;cursor:wait}body.remote-open{overflow:hidden}.remote{position:fixed;inset:0;z-index:20;margin:0;border-radius:0;background:#101827;color:#eef4ff;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));height:100dvh;display:flex;flex-direction:column;gap:8px}.remote .row{flex:none}.remote h2{font-size:18px}.remote small{color:#a8bdd9;font-size:12px}.remoteInfo{font-size:13px;color:#b9cce5;min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:8px}.remote .phone{flex:1;min-height:0;min-width:0;margin:0;padding:0;border-radius:10px;align-items:center;overflow:hidden;position:relative}.remote .phone img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:fill;touch-action:none;user-select:none;-webkit-user-select:none;cursor:crosshair}.remote .phone img:not([src]){display:none}.remote.busy .phone{box-shadow:inset 0 0 0 2px #619af0}.remote.busy .phone img{cursor:wait}.phone img.stale{opacity:.72}#screenEmpty{color:#91a1b6;font-size:14px}.remoteOptions{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:#9bb0cb}.remoteOptions label{display:flex;align-items:center;gap:6px;color:#dce8fa;white-space:nowrap}.remoteOptions input{width:18px;height:18px;padding:0;margin:0;accent-color:#4c96ff}.remote .remoteButtons{grid-template-columns:repeat(4,1fr);gap:8px;margin:0;flex:none}.remote .remoteButtons button{padding:13px 5px;background:#253a57;color:#f0f6ff;font-size:14px}.remote .remoteButtons button:last-child{background:#246ee5}.remote .small{background:#263d5f;color:#edf5ff}#toast{z-index:40}#touchMark{position:fixed;width:30px;height:30px;border:3px solid #65a9ff;background:#65a9ff44;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:35}#failure{border-left:4px solid #dd7b32}#failure p{font-size:14px;line-height:1.6}.job details{margin-top:8px;color:#476487;font-size:13px}.job summary{cursor:pointer;padding:7px 0}.progress{flex-wrap:wrap}.shots img{object-fit:contain;max-height:240px}.remoteOptions span{text-align:right}@media(min-width:800px){.remote{padding-left:max(24px,calc((100vw - 900px)/2));padding-right:max(24px,calc((100vw - 900px)/2))}}@media(max-height:500px){.remote{gap:4px}.remoteOptions{display:none}.remoteInfo{min-height:22px}.remote .remoteButtons button{padding:7px}.remote h2{font-size:15px}}
