*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0b0e12;color:#f0f2f4;font:14px/1.5 Inter,Segoe UI,Arial,sans-serif}button,select,input,textarea{font:inherit}button,a,select{transition:background .12s ease,color .12s ease}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{text-decoration:none;color:inherit}.app{width:min(1260px,calc(100% - 44px));margin:auto}header{height:72px;display:flex;align-items:center;gap:30px;border-bottom:1px solid #242a32}.brand{display:flex;align-items:center;gap:9px;white-space:nowrap}.mark{height:31px;width:31px;border:1px solid #424852;border-radius:9px;display:grid;place-items:center;font-size:23px;font-weight:700}.brand strong{letter-spacing:.6px;font-size:16px}.brand span{font-size:9px;letter-spacing:2px;color:#9198a5;margin-left:10px}nav{display:flex;gap:24px;margin-left:auto;color:#a8afba;font-size:12px}nav a:hover{color:#fff}.live{color:#b7bec7;font-size:11px;display:flex;align-items:center;gap:8px;white-space:nowrap}.dot{height:7px;width:7px;border-radius:50%;background:#64707b;display:inline-block}.dot.ok{background:#36c98c}main{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:16px;padding:19px 0;align-items:stretch}.left,.card,.stats{background:#15191e;border:1px solid #292f38;border-radius:15px}.left{height:calc(100vh - 130px);min-height:585px;display:flex;flex-direction:column;overflow:hidden}.heading{padding:19px 18px 14px;border-bottom:1px solid #242930;display:flex;align-items:center;justify-content:space-between;gap:8px}.heading small,.cap{font-size:10px;color:#9aa2ae;letter-spacing:1.2px;font-weight:700}.heading h2{margin:4px 0 0;font-size:20px;letter-spacing:-.6px}.heading h2 span{font-size:10px;font-weight:500;color:#929dac;margin-left:8px}.actions{display:flex;gap:6px;align-items:center}.mini,.actions select{background:#242a34;border:1px solid #363e4b;color:#eee;border-radius:8px;font-size:11px;padding:8px 10px}.mini.solid{background:#f1f2f4;color:#171a1e;border-color:#f1f2f4;font-weight:650}#log{font:12px/1.8 Consolas,'Cascadia Code',monospace;white-space:pre-wrap;overflow:auto;margin:0;padding:20px;flex:1;color:#c9d8e5;background:#080d0d;overflow-wrap:anywhere}.termfoot{border-top:1px solid #1d2a26;background:#0a100f;color:#8de9ac;padding:10px 20px;display:flex;gap:8px;font:11px Consolas,monospace}.termfoot .dot{background:#54d995}.cursor{opacity:.7}.right{min-width:0;display:flex;flex-direction:column;gap:11px}.card{padding:15px}.cap{display:flex;justify-content:space-between;gap:9px}.cap span:last-child{color:#747e8c}.device .viewer{height:174px;margin-top:8px;background:#101318;border-radius:11px;overflow:hidden;display:grid;place-items:center}.viewer model-viewer{width:100%;height:100%;--poster-color:#101318}.device-bottom{display:flex;justify-content:space-between;color:#919bab;font-size:11px;margin-top:8px}.pick{margin-top:13px;display:flex;align-items:center;gap:12px}.pick label{font-size:12px;color:#a6aebb;white-space:nowrap}.pick select{flex:1;min-width:0;background:#202630;border:1px solid #35404e;border-radius:9px;color:#f0f1f3;padding:9px 10px}.muted{color:#8c98a7}.metadata{font-size:11px;margin:8px 0 12px;min-height:15px}.buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.buttons #installer{grid-column:1/-1}.buttons button,.smallbtn{border:1px solid #353e4a;border-radius:9px;background:#232a35;color:#e9edf3;padding:10px 12px;text-align:center;font-size:12px;display:block;width:100%}.buttons .mainbtn,.buttons #installer esp-web-install-button button{background:#f0f1f2;color:#111418;font-weight:700;border-color:#f0f1f2;width:100%;padding:12px}.smallbtn:hover,.buttons button:not(:disabled):hover{background:#364051}.buttons .mainbtn:hover{background:#ddd;color:#111}.buttons .disabled{pointer-events:none;opacity:.35}.progress-area{margin-top:12px}.progress-copy{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#8c98a7}.progress-track{height:4px;background:#2c3540;overflow:hidden;border-radius:5px;margin-top:7px}#progressFill{height:100%;width:0;background:#8bd6b0;transition:width .2s}.stats{display:grid;grid-template-columns:repeat(3,1fr);padding:12px 2px}.stats>div{display:flex;flex-direction:column;gap:1px;align-items:center;text-align:center;border-right:1px solid #303741}.stats>div:last-child{border:0}.stats b{font-size:19px}.stats span{font-size:10px;color:#97a0ad}.versioncard{max-height:150px;overflow:auto}.versionrow,.release-row{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #2b323b;font-size:12px}.release-row small{display:block;color:#8e99a6;font-size:10px}.release-row a{color:#cfdce9;white-space:nowrap}.release-row a:hover{text-decoration:underline}footer{display:flex;justify-content:space-between;gap:10px;color:#727d8d;font-size:10px;border-top:1px solid #262d35;padding:12px 0}dialog{background:#1e242d;color:#f4f5f7;border:1px solid #444d58;border-radius:14px;max-width:420px;width:calc(100% - 25px);padding:25px}dialog::backdrop{background:#000b}dialog h2{margin:0 0 8px}dialog p{color:#b2bac5;font-size:13px}dialog label{display:block;font-size:12px}dialog input{display:block;margin-top:6px;width:100%;padding:11px;border-radius:7px;border:1px solid #505a68;color:white;background:#161b23}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.dialog-actions button{padding:10px 13px;border:1px solid #3c4652;color:white;background:#29323f;border-radius:7px}.dialog-actions .danger{background:#c94f4f;border-color:#c94f4f}body:has(dialog[open]){overflow:hidden}@media(max-width:900px){.app{width:calc(100% - 22px)}main{grid-template-columns:1fr}.left{height:490px;min-height:0}nav{display:none}.right{padding-bottom:15px}.live{margin-left:auto}footer{display:block}header{height:60px}}@media(max-height:780px) and (min-width:901px){.device .viewer{height:110px}.left{min-height:490px}.card{padding:11px}.right{gap:8px}.versioncard{max-height:110px}}
.stats{display:block;text-align:left;padding:10px 16px}.stats>div{display:flex;flex-direction:row;justify-content:space-between;align-items:center;border:0;gap:12px}.stats b{font-size:18px}.viewer model-viewer{background:transparent}main{gap:12px}.device .viewer{height:136px}.heading h2{font-size:17px}.heading{padding:13px 15px}.left{min-height:475px}.app{max-width:1140px}.cap{font-size:9px}.card{padding:12px}@media(max-height:780px) and (min-width:901px){.device .viewer{height:100px}.left{min-height:440px}}
