@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-cyrillic-ext-wght-normal-CO5hGrJv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-cyrillic-wght-normal-EAA9jha_.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-vietnamese-wght-normal-k7S-YeeD.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-latin-ext-wght-normal-BsZE-iaG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-latin-wght-normal-l_AIctKy.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--energy:#ff5a0a;--vibrant:#23ac9e;--timeless:#898c93;--paper:#f2f2f3;--panel:#fff;--raised:#f7f7f8;--ink:#000;--ink-soft:#55585e;--line:#e1e2e5;--line-strong:#c4c6cb;--on-energy:#000;--energy-hover:#ff7433;--danger:#c4261a;--on-danger:#fff;--danger-tint:#fdeceb;--backdrop:#00000073;--vibrant-tint:#e6f5f3;--energy-tint:#fff0e7;--bezel:#000;--font:"Montserrat Variable", "Montserrat", system-ui, sans-serif;--radius:10px;--radius-control:7px;--control-height:40px;font-family:var(--font);color:var(--ink);background:var(--paper);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;font-size:15px;font-weight:450;line-height:1.5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#000;--panel:#141416;--raised:#1c1d20;--ink:#fff;--ink-soft:#a9acb2;--line:#26272b;--line-strong:#3d3e43;--danger:#ff6f61;--on-danger:#000;--danger-tint:#2f1412;--backdrop:#000000b3;--vibrant-tint:#0c2724;--energy-tint:#2c170b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#000;--panel:#141416;--raised:#1c1d20;--ink:#fff;--ink-soft:#a9acb2;--line:#26272b;--line-strong:#3d3e43;--danger:#ff6f61;--on-danger:#000;--danger-tint:#2f1412;--backdrop:#000000b3;--vibrant-tint:#0c2724;--energy-tint:#2c170b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--paper)}:focus-visible{outline:2px solid var(--energy);outline-offset:2px}.app{flex-direction:column;height:100%;display:flex}main{flex:1;min-height:0;padding:28px 24px 40px;overflow:auto}.topbar{--bar-height:60px;min-height:var(--bar-height);background:var(--panel);border-bottom:1px solid var(--line);align-items:stretch;gap:28px;padding:0 24px 0 0;display:flex}.topbar .brand{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:24px;font-size:1.05rem;font-weight:600;display:flex}.topbar .brand img{height:var(--bar-height);width:auto;display:block}.topbar nav{gap:24px;display:flex}.topbar nav button.tab,.topbar .account button.tab{border-top:3px solid #0000;border-bottom-width:3px;padding:0 2px}.topbar .account{align-items:center;gap:14px;display:flex}.topbar .account button.tab{align-self:stretch}button.icon{width:34px;height:34px;color:var(--ink-soft);background:0 0;border-color:#0000;border-radius:50%;padding:0}button.icon:hover:not(:disabled){background:var(--raised);border-color:var(--line);color:var(--ink)}button.icon svg{width:19px;height:19px}.spacer{flex:1}h1,h2,h3{letter-spacing:-.015em;font-weight:600;line-height:1.25}h1{margin:0 0 20px;font-size:1.95rem}h2{margin:0 0 16px;font-size:1.25rem}h3{margin:28px 0 10px;font-size:1rem}p{max-width:75ch;margin:0 0 12px}.center{justify-content:center;align-items:center;min-height:100%;padding:24px 16px;display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);max-width:1120px;margin:0 auto;padding:24px;overflow-x:auto}.card+.card{margin-top:20px}.card.narrow{max-width:560px}.login{flex-direction:column;gap:14px;width:100%;max-width:380px;padding:32px;display:flex}.login .login-brand{text-align:center;flex-direction:column;align-items:center;gap:18px;margin-bottom:8px;display:flex}.login .login-brand img{width:200px;height:auto;display:block}.login h1{margin:0;font-size:1.55rem}.login button[type=submit]{margin-top:6px}label{color:var(--ink-soft);flex-direction:column;gap:5px;font-size:.85rem;font-weight:550;display:flex}label.check{color:var(--ink);flex-direction:row;align-items:center;gap:8px;font-weight:450}input[type=checkbox]{accent-color:var(--energy)}.check-field{height:var(--control-height);align-items:center;display:flex}.check-field input[type=checkbox]{appearance:none;width:var(--control-height);height:var(--control-height);cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--panel) center / 55% no-repeat;margin:0;transition:background-color .12s,border-color .12s,box-shadow .12s}.check-field input[type=checkbox]:hover{border-color:var(--energy)}.check-field input[type=checkbox]:checked{border-color:var(--energy);background-color:var(--energy);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E")}.check-field input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px var(--energy-tint);outline:none}input:not([type=checkbox]):not([type=file]),select{font:inherit;height:var(--control-height);border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--ink);background:var(--panel);min-width:0;padding:0 10px;font-size:.95rem}input:not([type=checkbox]):not([type=file]):focus,select:focus{border-color:var(--energy);box-shadow:0 0 0 3px var(--energy-tint);outline:none}input::placeholder{color:var(--ink-soft);opacity:.75}button,a.button{font:inherit;height:var(--control-height);vertical-align:middle;border-radius:var(--radius-control);border:1px solid var(--energy);background:var(--energy);color:var(--on-energy);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex}button:hover:not(:disabled){background:var(--energy-hover);border-color:var(--energy-hover)}button:disabled{opacity:.45;cursor:default}button:not(.secondary):not(.danger):not(.tab):not(.link):disabled{opacity:1;background:var(--raised);border-color:var(--line-strong);color:var(--ink-soft)}button.secondary,a.button.secondary{color:var(--ink);border-color:var(--line-strong);background:0 0}button.secondary:hover:not(:disabled),a.button.secondary:hover{background:var(--raised);border-color:var(--ink-soft)}button.danger{color:var(--danger);border-color:var(--line-strong);background:0 0}button.danger:hover:not(:disabled){background:var(--danger-tint);border-color:var(--danger)}button.danger.solid{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}button.danger.solid:hover:not(:disabled){background:var(--danger);border-color:var(--danger);filter:brightness(1.08)}button.small,a.button.small{height:30px;padding:0 11px;font-size:.85rem}button.tab,button.link{color:var(--ink-soft);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;height:auto;padding:6px 2px;font-weight:550}button.tab:hover:not(:disabled),button.link:hover:not(:disabled){color:var(--ink);background:0 0;border-color:#0000}button.tab.active,button.tab.active:hover:not(:disabled){color:var(--ink);border-bottom-color:var(--energy)}.stack{flex-direction:column;gap:14px;display:flex}.stack>button{align-self:flex-start}.row{align-items:center;gap:10px;margin-top:8px;display:flex}.row.wrap{flex-wrap:wrap;align-items:flex-end;gap:12px}form.inline{gap:6px;display:inline-flex}.muted{color:var(--ink-soft)}p.error,p.ok,p.info{border-radius:var(--radius-control);width:-moz-fit-content;width:fit-content;max-width:100%;margin:0 0 16px;padding:7px 12px;font-size:.9rem}p.error{background:var(--danger-tint);color:var(--danger)}p.ok{background:var(--vibrant-tint)}p.info{background:var(--energy-tint)}.login p.error{margin:0}table{border-collapse:collapse;width:100%}.row+table,label.check+table,p+table{margin-top:18px}th,td{font-variant-numeric:tabular-nums;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 10px}th{color:var(--ink-soft);padding-top:0;font-size:.8rem;font-weight:600}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--raised)}tr.inactive td{color:var(--ink-soft)}td.actions{text-align:right;white-space:nowrap}td.actions>*+*{margin-left:6px}.menu-button .chevron{width:10px;height:6px;margin-left:-2px}.menu-button[aria-expanded=true]{background:var(--raised);border-color:var(--ink-soft)}.action-menu{z-index:50;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-control);text-align:left;min-width:170px;margin:0;padding:4px;list-style:none;position:fixed;box-shadow:0 6px 24px #0000002e}.action-menu li.separated{border-top:1px solid var(--line);margin-top:4px;padding-top:4px}.action-menu button{width:100%;height:34px;color:var(--ink);background:0 0;border:none;border-radius:5px;justify-content:flex-start;padding:0 10px;font-size:.9rem;font-weight:500;display:flex}.action-menu button:hover:not(:disabled),.action-menu button:focus-visible{background:var(--raised);outline:none}.action-menu button.danger{color:var(--danger)}.action-menu button.danger:hover:not(:disabled),.action-menu button.danger:focus-visible{background:var(--danger-tint)}.relative-time{white-space:nowrap;-webkit-text-decoration:underline dotted color-mix(in srgb, currentColor 40%, transparent);text-decoration:underline dotted color-mix(in srgb, currentColor 40%, transparent);text-underline-offset:3px;cursor:help}code{word-break:break-all;font-size:.85rem}.subtabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:24px;max-width:1120px;margin:0 auto 18px;display:flex}.subtabs button.tab{margin-bottom:-1px}.badge{white-space:nowrap;align-items:center;gap:7px;font-size:.85rem;font-weight:550;display:inline-flex}.badge:before{content:"";box-sizing:border-box;background:var(--timeless);border-radius:50%;flex:none;width:10px;height:10px}.badge.ready:before{background:var(--vibrant)}.badge.starting:before{background:var(--energy);animation:1.2s ease-in-out infinite lamp-pulse}.badge.stopped:before{border:2px solid var(--timeless);background:0 0}.badge.error:before{background:var(--danger)}@keyframes lamp-pulse{0%,to{box-shadow:0 0 0 0 var(--energy-tint);opacity:1}50%{box-shadow:0 0 0 5px var(--energy-tint);opacity:.55}}.machines td.machine-name{letter-spacing:-.01em;font-size:1.02rem;font-weight:600}.machines td.machine-name .muted{font-weight:450}.machines .when{letter-spacing:0;color:var(--ink-soft);margin-top:2px;font-size:.8rem;font-weight:450;display:block}.countdown{font-variant-numeric:tabular-nums}.limits{margin:16px 0 0;font-size:.85rem}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:.95em;height:.95em;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--raised);height:28px;margin-top:12px;position:relative;overflow:hidden}.progress .bar{background:var(--energy-tint);border-right:2px solid var(--energy);height:100%;transition:width .2s}.progress span{justify-content:center;align-items:center;font-size:.85rem;display:flex;position:absolute;inset:0}ul.loaded{padding-left:18px}ul.loaded li{margin:6px 0}.viewer{flex-direction:column;height:calc(100% + 68px);margin:-28px -24px -40px;display:flex}.viewer-bar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 16px;display:flex}.viewer-bar .title{align-items:baseline;gap:14px;min-width:0;display:flex}.viewer-bar .title strong{letter-spacing:-.01em;font-size:1.02rem}.vnc-screen{background:var(--bezel);flex:1;min-height:0;overflow:hidden}dialog.modal{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);width:min(460px,100vw - 32px);color:var(--ink);padding:0}dialog.modal>:not(.toasts){animation:.14s ease-out modal-in}dialog.modal::backdrop{background:var(--backdrop)}dialog.modal form{flex-direction:column;gap:14px;padding:24px;display:flex}dialog.modal h2{margin:0;font-size:1.15rem}dialog.modal p{color:var(--ink-soft);margin:0}dl.facts{border-radius:var(--radius-control);background:var(--raised);grid-template-columns:auto 1fr;gap:4px 16px;margin:0;padding:10px 12px;font-size:.85rem;display:grid}dl.facts dt{color:var(--ink-soft);font-weight:550}dl.facts dd{min-width:0;margin:0}dialog.modal .hint{font-size:.8rem;font-weight:450}.modal-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)scale(.98)}}.toasts{z-index:50;pointer-events:none;flex-direction:column;align-items:flex-end;gap:10px;width:min(420px,100vw - 32px);display:flex;position:fixed;top:76px;right:20px}.toast{pointer-events:auto;background:var(--panel);width:100%;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);align-items:flex-start;gap:10px;padding:12px 10px 12px 14px;font-size:.9rem;display:flex;box-shadow:0 6px 24px #0000002e}.toast.new{animation:.18s ease-out toast-in}.toast:before{content:"";background:var(--vibrant);border-radius:50%;flex:none;width:10px;height:10px;margin-top:.4em}.toast.info:before{background:var(--energy)}.toast.error{border-color:var(--danger)}.toast.error:before{background:var(--danger)}.toast-text{flex:1;min-width:0}button.toast-close{width:26px;height:26px;color:var(--ink-soft);background:0 0;border:none;border-radius:50%;flex:none;margin:-3px 0;padding:0}button.toast-close:hover:not(:disabled){background:var(--raised);color:var(--ink);border:none}button.toast-close svg{width:15px;height:15px}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}@media (max-width:720px){main{padding:16px 16px 32px}.viewer{height:calc(100% + 48px);margin:-16px -16px -32px}.topbar{--bar-height:52px;flex-wrap:wrap;gap:4px 18px;padding:0 16px 0 0}.topbar .brand span{display:none}.topbar nav button.tab,.topbar .account button.tab{padding-bottom:8px}.topbar .account{padding:0 0 0 8px}.topbar .account>:not(.tab){margin-bottom:8px}.card{padding:18px 16px}.toasts{top:8px;right:16px}.machines thead{display:none}.machines,.machines tbody,.machines tr,.machines td{display:block}.machines tr{border-bottom:1px solid var(--line);padding:14px 0}.machines tbody tr:last-child{border-bottom:none}.machines td{border:none;padding:3px 0}.machines td[data-label]{font-size:.85rem}.machines td[data-label]:before{content:attr(data-label) " ";color:var(--ink-soft)}.machines td.actions{text-align:left;white-space:normal;padding-top:10px}.machines td.actions button{margin:0 6px 6px 0}.machines td.actions button+button{margin-left:0}}@media (prefers-reduced-motion:reduce){.badge.starting:before,dialog.modal>*,.toast.new{animation:none}.spinner{animation-duration:2.4s}}.viewer-main{flex:1;min-height:0;display:flex}.viewer-main .vnc-screen{min-width:0}button.pressed{background:var(--raised);border-color:var(--ink-soft)}.usb-panel{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;flex:none;width:340px;display:flex}dialog.modal.usb{width:min(520px,100vw - 32px)}dialog.modal.usb[open]{flex-direction:column;max-height:calc(100vh - 48px);display:flex;overflow:hidden}.usb{border:2px dashed #0000;flex-direction:column;flex:1;gap:12px;min-height:0;padding:18px 18px 22px;display:flex}dialog.modal .usb{padding:22px 24px 24px}.usb.dragging{border-color:var(--energy);background:var(--energy-tint)}.usb-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.usb-head h2{margin:0;font-size:1.05rem}.usb p{margin:0;font-size:.85rem}.usb .progress{margin-top:0}.usb>*{flex:none}.usb>.usb-files{flex:0 auto;min-height:60px;overflow-y:auto}.usb-files ul{margin:0;padding:0;list-style:none}.usb-files li{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px 10px;padding:10px 4px;display:grid}.usb-files li.selected{background:var(--raised)}.usb-files li>input[type=checkbox]{margin:3px 0 0}.usb-files li>.usb-actions{grid-column:2}.usb input[type=checkbox]{margin-left:0;margin-right:0}.usb-select label.check{gap:10px}.usb-select{justify-content:space-between;align-items:center;gap:10px;min-height:30px;padding:0 4px;font-size:.85rem;display:flex}.usb-files li:first-child{border-top:1px solid var(--line)}.usb-file{flex-direction:column;gap:2px;min-width:0;display:flex}.usb-name{word-break:break-all;font-size:.9rem;font-weight:600}.usb-file .when{color:var(--ink-soft);font-size:.8rem}.usb-actions{gap:6px;display:flex}@media (min-width:560px){dialog.modal .usb-files li{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:12px}dialog.modal .usb-files li>input[type=checkbox]{margin:0}dialog.modal .usb-files li>.usb-actions{grid-column:3}}.usb-files .empty{text-align:center;border:1px dashed var(--line-strong);border-radius:var(--radius-control);padding:22px 8px}@media (max-width:720px){.viewer-main{flex-direction:column}.usb-panel{border-left:none;border-top:1px solid var(--line);width:auto;max-height:45%}}dialog.modal.share{width:min(520px,100vw - 32px);margin-top:min(12vh,96px)}.share{flex-direction:column;gap:14px;padding:24px;display:flex}dialog.modal .share form.share-add{flex-flow:row;align-items:flex-end;padding:0}.share-add label:first-child{flex:1;min-width:0}@media (max-width:480px){dialog.modal .share form.share-add{flex-wrap:wrap}.share-add label:first-child{flex-basis:100%}}.share-add button[type=submit]{min-width:7.5rem}.share-list{border:1px solid var(--line);border-radius:var(--radius-control);margin:0;padding:0;list-style:none}.share-list li{align-items:center;gap:10px;padding:8px 12px;display:flex}button.link.people{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;padding:0;font-weight:450}button.link.people:hover:not(:disabled){text-decoration-color:currentColor}.share-modes{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;display:grid}.share-modes dt{font-weight:600}.share-modes dd{color:var(--ink-soft);margin:0}.share-section{flex-direction:column;margin-top:10px;display:flex}.share h3{margin:4px 0 -6px;font-size:.95rem}.share-list select{height:30px;padding:0 8px;font-size:.85rem}.share-list li+li{border-top:1px solid var(--line)}.share-user{text-overflow:ellipsis;flex:1;min-width:0;font-weight:550;overflow:hidden}.tag{border:1px solid var(--line);white-space:nowrap;color:var(--ink-soft);border-radius:999px;padding:1px 8px;font-size:.78rem;font-weight:550}.viewer-bar .others{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}
