@import url("assets/brand/css/ehalo-tokens.css");
@font-face{font-family:Tektur;src:url("assets/brand/source/fonts/Tektur-variable.ttf") format("truetype");font-weight:400 900;font-stretch:75% 100%;font-display:swap}
@font-face{font-family:"Golos Text";src:url("assets/brand/source/fonts/GolosText-variable.ttf") format("truetype");font-weight:400 900;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("assets/brand/source/fonts/JetBrainsMono-variable.ttf") format("truetype");font-weight:100 800;font-display:swap}
@font-face{font-family:"Handjet";src:url("assets/brand/source/fonts/Handjet-500.ttf") format("truetype");font-weight:500;font-display:swap}
:root{font-family:var(--eh-font-text);font-size:15px;color:var(--eh-text-1);background:var(--eh-night);color-scheme:dark}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}a{color:var(--eh-halo)}[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--eh-halo);outline-offset:4px}::selection{background:var(--eh-cobalt-bg);color:var(--eh-text-1)}
.skip-link{position:fixed;top:-100px;left:16px;z-index:10;background:var(--eh-volt);color:var(--eh-on-accent);padding:12px}.skip-link:focus{top:12px}
header{min-height:104px;padding:16px max(32px,calc((100vw - 1440px)/2));display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--eh-line);background:var(--eh-night)}
.brand{display:block;line-height:0;flex-shrink:0}.brand img{display:block;width:195px;height:60px;object-fit:contain}.tag{border-left:1px solid var(--eh-line);padding-left:28px;font-size:13px;color:var(--eh-text-3)}
#account{margin-left:auto;display:flex;align-items:center;gap:16px}#username{font:500 13px var(--eh-font-mono);color:var(--eh-cobalt-text)}.operator-label{font-size:13px;color:var(--eh-text-3)}
main{max-width:1504px;margin:auto;padding:48px 32px 32px;min-height:calc(100vh - 176px)}
h1,h2,h3,h4,button{font-family:var(--eh-font-display);font-stretch:80%;font-weight:600}h1,h2{text-transform:uppercase;line-height:1.15}h1{font-weight:700;font-stretch:80%;font-size:clamp(32px,3.6vw,44px);letter-spacing:-.02em;margin:12px 0 16px}h2{font-stretch:85%;font-size:clamp(22px,2.5vw,28px);margin:10px 0 16px}h3{font-stretch:100%;font-size:20px;line-height:1.3;text-transform:none}h4{font-stretch:100%;font-size:16px;text-transform:none}
p{color:var(--eh-text-2);line-height:1.65;margin:10px 0 16px}.eyebrow{font:500 17px/1.3 var(--eh-font-pixel);text-transform:uppercase;letter-spacing:.06em;color:var(--eh-halo)}
button{font-stretch:85%;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:var(--eh-control-h);padding:10px 18px;text-transform:uppercase;letter-spacing:.06em;font-size:14px;line-height:1.2;background:var(--eh-cobalt);color:var(--eh-on-accent);border:1px solid transparent;border-radius:0;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
button:hover{background:var(--eh-cobalt-text)}button.primary{background:var(--eh-volt);color:var(--eh-on-accent)}button.primary:hover{background:var(--eh-volt-deep)}button:disabled{background:var(--eh-layer-2);color:var(--eh-text-3);border-color:var(--eh-line);cursor:not-allowed;opacity:.65}
button.subtle{background:transparent;color:var(--eh-text-1);border:1px solid var(--eh-line-strong);border-radius:var(--eh-r-1)}button.subtle:hover{border-color:var(--eh-cobalt);background:var(--eh-cobalt-shade)}button.eh-px:focus-visible{text-decoration:underline;text-underline-offset:4px;outline:none}button.revoke{background:transparent;color:var(--eh-err);border:1px solid transparent;border-radius:4px;font:400 13px var(--eh-font-text);text-transform:none;padding:7px 8px;min-height:32px}button.revoke:hover{background:var(--eh-err-bg);border-color:var(--eh-err-line)}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.page-heading p{margin-bottom:0}.page-heading>div{min-width:0}.page-heading>button{flex-shrink:0}
.summary{display:flex;align-items:center;gap:10px;padding:18px 20px;margin:32px 0 0;background:var(--eh-layer-1);border:1px solid var(--eh-line);font-size:13px;color:var(--eh-text-2)}.summary strong{font:500 24px var(--eh-font-pixel);color:var(--eh-halo)}.summary-separator{color:var(--eh-line-strong);margin:0 10px}.refresh-state{margin-left:auto;color:var(--eh-text-3);font:400 12px var(--eh-font-mono)}
.status-dot{display:inline-block;width:7px;height:7px;flex-shrink:0;background:var(--eh-text-3)}.status-dot.online{background:var(--eh-halo)}
#machine-rows .machine-build{display:flex;max-width:340px}
#machine-rows .machine-system{min-width:0;overflow:hidden;text-overflow:ellipsis}
#machine-rows .machine-commit{flex-shrink:0}
.table-wrap{background:var(--eh-layer-1);border:1px solid var(--eh-line);border-top:0;overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font:500 16px var(--eh-font-pixel);text-transform:uppercase;letter-spacing:.05em;padding:16px;color:var(--eh-text-3);background:var(--eh-layer-2);border-right:1px solid var(--eh-line)}th:last-child{border-right:0}td{padding:20px 16px;border-top:1px solid var(--eh-line);font-size:13px;color:var(--eh-text-2);vertical-align:middle}tr:hover td{background:var(--eh-layer-2)}td .secondary{display:block;font:400 12px/1.5 var(--eh-font-mono);color:var(--eh-text-3);margin-top:8px;max-width:260px;overflow:hidden;text-overflow:ellipsis}.machine-name{font:500 14px var(--eh-font-mono);color:var(--eh-text-1)}#machine-rows td:nth-child(5),#machine-rows td:nth-child(6){font:400 13px var(--eh-font-mono)}#machine-rows td:last-child{min-width:230px;max-width:320px;white-space:normal}#machine-rows td:last-child button{font-size:12px;min-height:32px;padding:8px 10px;margin:3px 4px 3px 0;gap:6px}
.badge{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;background:var(--eh-layer-2);border:1px solid var(--eh-line);border-radius:4px;color:var(--eh-text-3);font:500 16px var(--eh-font-pixel);text-transform:uppercase;letter-spacing:.05em}.badge:before{content:"";width:5px;height:5px;background:currentColor}.badge.online{color:var(--eh-halo);background:var(--eh-halo-bg);border-color:var(--eh-halo-bg)}.badge.revoked{color:var(--eh-err);background:var(--eh-err-bg);border-color:var(--eh-err-line)}
.pager{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin:20px 0;color:var(--eh-text-3);font:400 12px var(--eh-font-mono)}.pager button{min-height:32px;padding:8px 12px;font-size:12px}
.empty{text-align:center;padding:64px 24px}.empty-icon{font-size:32px;line-height:1;margin:0 0 24px;color:var(--eh-cobalt)}.empty h2{margin:16px 0}.empty p{max-width:460px;margin:0 auto}.feedback-section{margin-top:64px;padding-top:32px;border-top:1px solid var(--eh-line)}.feedback-empty{padding:36px 24px;margin:24px 0;border:1px solid var(--eh-line);text-align:center;color:var(--eh-text-3);font-size:14px}
.feedback-card{padding:24px;margin:24px 0;background:var(--eh-layer-1);border:1px solid var(--eh-line)}.feedback-card h3{font:500 15px var(--eh-font-mono);text-transform:none;overflow-wrap:anywhere}.feedback-card .secondary{font:400 12px var(--eh-font-mono);color:var(--eh-text-3)}.feedback-text{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--eh-text-1)}.feedback-card select,.feedback-card textarea{display:block;width:100%;max-width:680px;margin:16px 0}.feedback-card button{margin-top:8px}
label{display:block;font-size:13px;font-weight:600;color:var(--eh-text-2);margin:20px 0}input,select,textarea{display:block;margin-top:8px;width:100%;min-height:var(--eh-control-h);padding:12px;color:var(--eh-text-1);background:var(--eh-layer-2);border:1px solid var(--eh-line);border-radius:4px;outline-offset:2px;font-size:14px}input:focus,select:focus,textarea:focus{outline:2px solid var(--eh-halo);border-color:var(--eh-halo)}input::placeholder,textarea::placeholder{color:var(--eh-text-3)}input[type=number],input[inputmode=numeric]{font-family:var(--eh-font-mono)}textarea{resize:vertical}label:has(input[required]){color:var(--eh-text-2)}
.login-layout{display:grid;grid-template-columns:1.2fr 1fr;border:1px solid var(--eh-line);max-width:1200px;margin:24px auto 48px;background:var(--eh-layer-1)}.login-intro{padding:48px;border-right:1px solid var(--eh-line);background-color:var(--eh-night);display:flex;flex-direction:column;align-items:flex-start}.login-intro h1{font-size:clamp(28px,3vw,42px);line-height:1.2;margin:8px 0 24px}.login-intro p{max-width:420px}.login-brand{padding:24px 0;margin:8px 0}.login-brand img{display:block;max-width:100%;height:auto}.intro-note{font-size:12px;color:var(--eh-text-3);margin-top:auto;padding-top:24px}.login-card{padding:48px;align-self:center}.login-card h2{font-size:32px;margin:20px 0}.login-card>p{font-size:14px}#login-form{margin-top:32px}#login-form button{width:100%;margin:8px 0 0}.login-footnote{display:flex;gap:8px;align-items:center;border-top:1px solid var(--eh-line);margin-top:32px;padding-top:20px;font-size:12px;color:var(--eh-text-3)}
[role=alert]{font-size:13px;color:var(--eh-err);line-height:1.5;overflow-wrap:anywhere}[role=alert]:empty{display:none}.hint{font-size:12px;color:var(--eh-text-3)}
dialog{width:calc(100% - 40px);max-width:520px;max-height:90vh;overflow:auto;padding:32px;border:1px solid var(--eh-line-strong);border-radius:10px;background:var(--eh-layer-1);color:var(--eh-text-1)}dialog::backdrop{background:rgb(7 12 18 / .8)}dialog h2{font-size:26px}.form-row{display:flex;gap:16px}.form-row label{flex:1;min-width:0}.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--eh-line)}
#inventory-dialog{max-width:1040px;padding:28px}.inventory-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.inventory-heading>div{min-width:0}.inventory-heading h2{font:500 20px/1.4 var(--eh-font-mono);text-transform:none;overflow-wrap:anywhere;margin:12px 0}.inventory-heading button{min-height:36px}#inventory-state{font:400 12px/1.7 var(--eh-font-mono);color:var(--eh-text-3);padding:16px 0;margin-bottom:16px;border-bottom:1px solid var(--eh-line)}.inventory-overview{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:24px;border:1px solid var(--eh-line)}.inventory-overview-card{min-width:0;padding:20px}.inventory-overview-card+section{border-left:1px solid var(--eh-line)}.inventory-overview h3,.inventory-memory h3{margin:0 0 20px;font-size:20px;color:var(--eh-halo)}.inventory-memory{margin:24px 0;padding:20px;border:1px solid var(--eh-line)}.inventory-fields{display:grid;grid-template-columns:minmax(110px,40%) minmax(0,1fr);gap:12px 16px;font-size:12px;line-height:1.6;margin:0}.inventory-fields dt{color:var(--eh-text-3)}.inventory-fields dd{margin:0;min-width:0;color:var(--eh-text-1);font-family:var(--eh-font-mono);font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.inventory-group{margin:12px 0;border:1px solid var(--eh-line);padding:16px;background:var(--eh-layer-1)}.inventory-group>summary{cursor:pointer;font:600 16px var(--eh-font-display);font-stretch:100%;text-transform:none;color:var(--eh-cobalt-text)}.inventory-device{margin-top:16px;padding-top:16px;border-top:1px solid var(--eh-line)}.inventory-device h4{font:500 13px var(--eh-font-mono);text-transform:none;margin:0 0 16px;overflow-wrap:anywhere;color:var(--eh-halo)}.inventory-raw,pre{background:var(--eh-code-bg);padding:16px;font:400 13px/1.7 var(--eh-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--eh-text-2);border:1px solid var(--eh-line)}pre:empty{display:none}.inventory-warning{color:var(--eh-warn);font-size:13px;border-left:2px solid var(--eh-warn);padding-left:16px}
.brand-loader{display:block;margin:16px 0}#support-machine{font-family:var(--eh-font-mono);text-transform:none;overflow-wrap:anywhere}.desktop-tools,.desktop-text{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.desktop-tools button{font-size:12px;min-height:32px}.desktop-text input{flex:1;min-width:160px;margin:0;font-family:var(--eh-font-mono)}.desktop-text{margin-top:16px}#desktop-focus{line-height:0;background:var(--eh-code-bg);min-height:120px;touch-action:none;border:1px solid var(--eh-line)}#desktop-focus:focus{outline:2px solid var(--eh-halo);outline-offset:2px}#desktop-image{display:block;max-width:100%;width:100%;height:auto;user-select:none}#desktop-status{font-size:13px;color:var(--eh-halo)}#support-dialog.with-desktop{max-width:1240px;width:calc(100% - 32px);max-height:95vh;padding:20px}.with-desktop #support-result,.with-desktop #support-form>.eyebrow,.with-desktop #support-form>p:first-of-type,.with-desktop #support-start{display:none}.with-desktop #support-machine{font-size:19px;margin:4px 0}.with-desktop #support-state{font-size:13px;margin:8px 0}.with-desktop .dialog-actions{margin-top:16px;padding-top:16px}.with-desktop #desktop-image{width:auto;max-width:100%;max-height:calc(100vh - 310px);margin:auto}
footer{max-width:1440px;margin:auto;padding:24px 32px;border-top:1px solid var(--eh-line);color:var(--eh-text-3);font:500 16px var(--eh-font-pixel);text-transform:uppercase;letter-spacing:.06em}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:1000px){.tag{display:none}.login-intro,.login-card{padding:32px}.login-layout{grid-template-columns:1fr 1fr}.login-intro h1{font-size:30px}.page-heading>button{font-size:12px}.operator-label{display:none}}
@media(max-width:680px){header{min-height:84px;padding:12px 16px;gap:12px}.brand img{width:160px;height:50px}#account{gap:8px}#username{max-width:90px;overflow:hidden;text-overflow:ellipsis}#account button{padding:8px 10px;min-height:44px;font-size:13px}main{padding:28px 16px}.page-heading{align-items:flex-start;flex-direction:column;gap:20px}.page-heading>button{align-self:flex-start}.summary{padding:16px 12px;margin-top:24px;gap:7px}.refresh-state{display:none}.summary-separator{margin:0 4px}.table-wrap table{min-width:1060px}.pager{justify-content:space-between;gap:8px}.feedback-section{margin-top:40px;padding-top:24px}.login-layout{display:block;margin:0 0 32px}.login-intro{padding:28px;border-right:0;border-bottom:1px solid var(--eh-line)}.login-intro h1{font-size:24px;line-height:1.15;margin:12px 0 0}.login-brand{display:none}.login-brand img{width:96px;height:96px}.login-intro p,.intro-note{display:none}.login-card{padding:28px}.login-card h2{font-size:28px}.login-footnote{margin-top:24px}dialog{width:calc(100% - 24px);padding:24px;max-height:92vh}.form-row{gap:12px}#inventory-dialog{padding:20px}.inventory-overview{grid-template-columns:1fr}.inventory-overview-card+section{border-left:0;border-top:1px solid var(--eh-line)}.inventory-heading{gap:12px}.inventory-heading h2{font-size:16px}.inventory-fields{grid-template-columns:minmax(90px,38%) minmax(0,1fr);gap:10px}.inventory-group,.inventory-memory{padding:16px}.inventory-heading button{padding:8px 10px;font-size:12px}.desktop-text button{width:100%}.desktop-tools{gap:6px}footer{margin:0 16px;padding:20px 0}}
/* Connection splash: show only progress and cancel until the first desktop frame. */
.support-loader{display:none}
.connecting #support-intro,.connecting #support-pin-label,.connecting #support-start,.connecting #support-result{display:none}
.connecting #support-progress{min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px}
.connecting .support-loader{display:block}
.with-desktop #support-progress{display:none}
.awaiting-frame .desktop-tools,.awaiting-frame #desktop-focus,.awaiting-frame .desktop-text{display:none}
.awaiting-frame #desktop-panel{min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px}
.awaiting-frame #desktop-loading{width:72px;height:72px;margin:0}
#support-dialog.awaiting-frame{max-width:520px}

#desktop-focus{position:relative}
#desktop-focus.frame-lost #desktop-image{filter:grayscale(1);opacity:.45}
#desktop-stale{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:32px;text-align:center;font:600 20px/1.5 var(--eh-font-text);color:var(--eh-text-1);background:rgb(9 13 18 / .3);pointer-events:all}

#clipboard-status{font-size:13px;color:var(--eh-text-2)}#clipboard-status:empty{display:none}#clipboard-received textarea{font-family:var(--eh-font-mono);max-height:160px;resize:vertical}


/* Compact actions use the same artwork in the park and in tickets. */
button.action-icon,#machine-rows td:last-child button.action-icon{width:34px;height:34px;min-height:34px;padding:7px;flex:0 0 34px;gap:0;border-radius:4px}
button.action-icon svg{display:block;width:18px;height:18px;pointer-events:none}
#machine-rows td:last-child{min-width:174px}

.section-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:360px;flex:0 0 360px;gap:3px;padding:3px;background:#0D131A;border:1px solid #2A3A4B;border-radius:5px}
.section-tabs button{height:48px;min-height:48px;padding:0 20px;border:0;border-radius:3px;background:transparent;color:#8595A6;font:600 16px Tektur,sans-serif;font-stretch:85%;letter-spacing:.03em}
.section-tabs button:hover{background:#1D2935;color:#EEF1F4}.section-tabs button[aria-selected=true]{background:#34406B;color:#EEF1F4}.section-tabs button:focus-visible{outline:2px solid #8ED1DC;outline-offset:-2px}
#tickets-panel{margin-top:0;padding-top:0;border-top:0}.operator-window #tickets-panel{display:none!important}
@media(max-width:800px){body>header{flex-wrap:wrap;gap:16px}.section-tabs{order:3;width:100%;flex-basis:100%}.section-tabs button{height:44px;min-height:44px;font-size:15px}}

/* The top-level tabs already label these panels. */
main:has(>[role=tabpanel]:not([hidden])){padding-top:20px}
#machines-panel>.summary{margin-top:0;padding:12px 16px;flex-wrap:wrap}
#machines-panel #open-profile{margin-left:auto;min-height:38px;padding:8px 14px;font-size:12px}
@media(max-width:680px){main:has(>[role=tabpanel]:not([hidden])){padding-top:16px}#machines-panel>.summary{gap:8px}#machines-panel #open-profile{margin-left:0}}

button.revoke.action-icon{border-color:var(--eh-line-strong)}
button.revoke.action-icon:hover{border-color:var(--eh-err-line)}

.machine-session-presence{display:block;max-width:100%;margin-top:6px;padding:5px 8px;font-size:12px;white-space:normal;overflow-wrap:anywhere;color:var(--eh-gold,#ebd68c)}
.session-termination-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box}
.session-termination-dialog h2,.machine-session-row{overflow-wrap:anywhere}
.machine-session-row{border-bottom:1px solid #304557;padding:12px 0}
.session-termination-dialog .dialog-actions{flex-wrap:wrap}
