:root{--primary: #0bb9eb;--secondary: #d15427;--on-primary: #000000;--on-secondary: #000000;--link: #0796e9;--glow: #0adbf8;--muted: #878a90;--online: #7dcea0;--offline: #c47b6a;--danger: #c47b6a;font-family:Segoe UI,sans-serif;line-height:1.45;color-scheme:light}:root,[data-theme=light]{--bg: #ffffff;--panel: #f3f6f7;--text: #0e2a33;--line: #d5d8dc;--bar: #ffffff;--bar-text: #0e2a33;--shadow: 0 8px 28px rgba(4, 24, 32, .08)}[data-theme=dark]{--bg: #041820;--panel: #072632;--text: #ffffff;--line: #1c3c48;--bar: #041820;--bar-text: #ffffff;--shadow: 0 8px 28px rgba(0, 0, 0, .35);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}button,a.button{background:var(--primary);color:var(--on-primary);border:0;border-radius:4px;padding:.55rem .9rem;text-decoration:none;cursor:pointer;font-weight:650}button.secondary{background:var(--secondary);color:var(--on-secondary)}button.quiet,a.quiet{background:transparent;color:var(--text);border:1px solid var(--line)}button.icon,a.icon{background:transparent;color:var(--bar-text);border:0;width:2.4rem;height:2.4rem;padding:0;font-size:1.35rem;line-height:1}button:disabled{opacity:.6;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--glow);outline-offset:2px}input,select,textarea{display:block;width:100%;margin-top:.3rem;padding:.5rem .6rem;border:1px solid var(--line);border-radius:4px;background:var(--bg)}textarea{min-height:6rem;resize:vertical}a{color:var(--link)}label{display:block}.muted{color:var(--muted)}.error{color:var(--danger)}.app{height:100%;display:grid;grid-template-rows:auto 1fr}.topbar{display:grid;grid-template-columns:16rem 1fr auto;align-items:center;gap:1rem;padding:.55rem .9rem;background:var(--bar);color:var(--bar-text);border-bottom:1px solid var(--line)}.brand-lockup{height:36px;width:auto;display:block}.brand-row{display:flex;align-items:center;gap:.6rem;min-width:0}.brand-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search{position:relative;max-width:36rem;margin:0 auto;width:100%}.search input{margin:0;background:var(--bg)}.hits{position:absolute;z-index:5;left:0;right:0;top:calc(100% + 4px);background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow);max-height:18rem;overflow:auto}.hits button{display:block;width:100%;text-align:left;background:transparent;color:var(--text);border:0;border-radius:0;font-weight:500}.hits button:hover{background:color-mix(in srgb,var(--primary) 18%,transparent)}.top-actions{display:flex;align-items:center;gap:.2rem;position:relative}.menu{position:absolute;right:0;top:calc(100% + 6px);min-width:16rem;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:.6rem;z-index:6}.menu button,.menu a.button{width:100%;margin-top:.35rem;text-align:left}.body{display:grid;grid-template-columns:16rem 1fr;min-height:0}.nav{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:var(--panel)}.nav-list{overflow:auto;flex:1;padding:.4rem}.nav button.client,.nav a.client{display:block;width:100%;text-align:left;background:transparent;color:var(--text);border:0;border-radius:6px;font-weight:550}.nav button.client.active{background:var(--primary);color:var(--on-primary)}.client-row{display:flex;align-items:center;border-radius:6px}.client-row.active{background:var(--primary);color:var(--on-primary)}.client-row button.name{flex:1;min-width:0;text-align:left;background:transparent;color:inherit;border:0;font-weight:550}.client-row button.icon{color:inherit;width:2rem;height:2rem}.nav-foot{padding:.5rem;border-top:1px solid var(--line)}.nav-plus{margin:.5rem}.main{overflow:auto;padding:1.1rem 1.3rem 2rem}.empty{margin-top:4rem;text-align:center}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:1rem}.stack{display:grid;gap:.8rem}.split{display:flex;justify-content:space-between;gap:1rem;align-items:center}.row{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.info{display:grid;gap:.25rem;margin-bottom:1rem}.info div{display:grid;grid-template-columns:6rem 1fr;gap:.5rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.45rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}.machines th,.machines td{vertical-align:middle;white-space:nowrap}.machines td.actions,.machines th.actions{width:100%;text-align:right}.machines td.actions .row{justify-content:flex-end}.machines td.check,.machines th.check{width:2rem}.machine-name,.assigned{display:inline-flex;align-items:center;gap:.35rem}.assigned button.icon{width:1.8rem;height:1.8rem}th button{background:transparent;color:var(--text);border:0;padding:0;font-weight:700}.dot{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:var(--offline);margin-right:.35rem}.dot.on{background:var(--online)}.banner{background:color-mix(in srgb,var(--secondary) 18%,var(--panel));border:1px solid var(--secondary);border-radius:6px;padding:.6rem .8rem;margin-bottom:.8rem}.gate{min-height:100%;display:grid;place-items:center;padding:2rem 1rem;background:#041820;color:#fff}.gate .panel{background:#072632;border-color:#1c3c48;color:#fff;width:min(28rem,100%)}.gate input{background:#041820;color:#fff;border-color:#1c3c48}.gate .muted{color:#878a90}.gate h1,.gate h2{margin:0}.gate-logo{height:64px;margin-bottom:1rem}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#04182073;display:grid;place-items:center;z-index:8;padding:1rem}.modal{width:min(32rem,100%)}.tabs{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:1rem}.tabs button{background:transparent;color:var(--text);border:1px solid var(--line)}.tabs button.active{background:var(--primary);color:var(--on-primary);border-color:transparent}.codes{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;font-family:Consolas,monospace}.qr{width:220px;height:220px;background:#fff}.pager{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;margin-top:.6rem}@media(max-width:800px){.topbar,.body{grid-template-columns:1fr}.nav{border-right:0;border-bottom:1px solid var(--line);max-height:14rem}}
