*{box-sizing:border-box}body{margin:0;background:#fff;color:#17212f;font:15px/1.5 system-ui,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button,.upload{cursor:pointer}button{padding:8px 13px;background:#fff;border:1px solid #cbd3dd;border-radius:6px;color:inherit}button:hover{background:#f0f4f8}button:disabled{cursor:default;opacity:.5}input,textarea,select{padding:9px 11px;border:1px solid #cbd3dd;border-radius:6px;background:white;color:inherit}input:focus,textarea:focus,button:focus-visible{outline:2px solid #236cd0;outline-offset:2px}label{display:block}label input{display:block;width:100%;margin-top:5px}a{color:#225fa9;text-decoration:none}a:hover{text-decoration:underline}[hidden]{display:none!important}#login{min-height:100vh;display:grid;place-items:center}#loginForm{width:300px;padding:10px}#loginForm label{margin-bottom:18px}#loginForm button{width:100%;background:#252b34;color:white;border-color:#252b34}#loginError{font-size:13px;color:#ab2929;min-height:20px}header{display:flex;gap:22px;align-items:center;padding:20px 28px;border-bottom:1px solid #e5eaf0}header strong{font-size:22px}#count{color:#607082}.spacer{flex:1}#list{max-width:1200px;margin:28px auto;padding:0 24px}.listbar{display:flex;gap:12px;margin-bottom:22px}.listbar input{flex:1}#devices{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.device{border:1px solid #dbe2e9;border-radius:10px;padding:20px}.device h2{font-size:18px;margin:10px 0 2px;overflow-wrap:anywhere}.device .id{font-variant-numeric:tabular-nums;color:#546475}.presence{font-size:13px;color:#687687}.presence.online{color:#1d774f}.tags{display:flex;gap:5px;flex-wrap:wrap;min-height:34px;padding:12px 0}.tag{background:#f0f3f6;border-radius:4px;padding:2px 7px;font-size:12px}.actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.device .actions{justify-content:flex-start}.primary{background:#2366b7;color:white;border-color:#2366b7}.primary:hover{background:#194f91}#message{margin:12px 28px;color:#9b3d28;white-space:pre-wrap}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;background:#f8fafc}#connection{font-size:13px;color:#57687a}#screenWrap{height:calc(100vh - 210px);min-height:300px;overflow:auto;background:#111923;display:flex;align-items:center;justify-content:center;position:relative}#screen{display:block;max-width:100%;max-height:100%;width:auto;height:auto;outline:none;touch-action:none}#screen.native{max-width:none;max-height:none}#screenWrap:has(.native){align-items:flex-start;justify-content:flex-start}#screenWrap:fullscreen{height:100vh}#screenHint{position:absolute;color:#d4dce7;pointer-events:none}.hint{font-size:12px;color:#647487;margin:8px 16px}dialog{border:1px solid #d6dee7;border-radius:12px;max-width:90vw;width:500px;padding:24px}dialog::backdrop{background:#15233370}dialog h2{margin:0 0 16px;font-size:20px}dialog label{margin:12px 0}textarea{width:100%;resize:vertical}#filesDialog{width:850px}.filebar{display:flex;gap:6px}.filebar input{flex:1;min-width:50px}#fileList{height:350px;overflow:auto;margin-top:15px;border:1px solid #e0e5ec;border-radius:6px}.file{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid #edf0f4}.file .filename{flex:1;overflow-wrap:anywhere;text-align:left;border:0}.file small{color:#667587}.file button{font-size:12px;padding:4px 7px}.upload{display:inline-block!important;margin:0!important;padding:8px 12px;border:1px solid #cbd3dd;border-radius:6px}.upload input{display:none}#fileStatus{font-size:13px;white-space:pre-wrap}@media(max-width:700px){header{padding:12px;gap:10px;flex-wrap:wrap}header strong{font-size:18px}header a{font-size:13px}.toolbar{gap:5px}.toolbar button{font-size:12px}#list{padding:0 12px}#screenWrap{height:65vh}}
