:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f9f9f7;--surface:#fcfcfb;--surface-2:#f1f0ec;--border:#0b0b0b1a;--border-strong:#0b0b0b2e;--ink:#0b0b0b;--ink-2:#52514e;--muted:#6f6d68;--grid:#e1e0d9;--accent:#2a78d6;--accent-soft:#2a78d61a;--good:#0ca30c;--good-text:#006300;--critical:#d03b3b;--critical-soft:#d03b3b14;--warning:#fab219;--shadow:0 1px 2px #0b0b0b0a;--radius:10px;--font:system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, "Cascadia Code", Consolas, monospace}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#232322;--border:#ffffff1a;--border-strong:#ffffff2e;--ink:#fff;--ink-2:#c3c2b7;--muted:#9a988f;--grid:#2c2c2a;--accent:#3987e5;--accent-soft:#3987e529;--good-text:#0ca30c;--critical:#e66767;--critical-soft:#e667671f;--shadow:none}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#232322;--border:#ffffff1a;--border-strong:#ffffff2e;--ink:#fff;--ink-2:#c3c2b7;--muted:#9a988f;--grid:#2c2c2a;--accent:#3987e5;--accent-soft:#3987e529;--good-text:#0ca30c;--critical:#e66767;--critical-soft:#e667671f;--shadow:none}*{box-sizing:border-box}html,body{margin:0}body{background:var(--page);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:22px}h2{font-size:15px}h3{font-size:13px}code,.mono{font-family:var(--mono);font-size:12px}.muted{color:var(--muted)}.ink-2{color:var(--ink-2)}.small{font-size:12px}.num{font-variant-numeric:tabular-nums}.topbar{z-index:10;background:color-mix(in srgb, var(--page) 85%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:10px 24px;display:flex;position:sticky;top:0}.brand{color:var(--ink);align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.brand:hover{text-decoration:none}.topbar .spacer{flex:1}.topbar-meta{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:flex}main{max-width:1480px;margin:0 auto;padding:20px 24px 48px}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grid-2{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}@media (width<=1100px){.grid-2{grid-template-columns:minmax(0,1fr)}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.panel-body{padding:14px 16px}.panel-body.flush{padding:0}.section-title{align-items:baseline;gap:8px;margin:4px 0 2px;display:flex}.btn{border:1px solid var(--border-strong);background:var(--surface);height:30px;color:var(--ink);font:inherit;cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:disabled{opacity:.6;cursor:default}.btn.icon{justify-content:center;width:30px;padding:0}.input,.select{border:1px solid var(--border-strong);background:var(--surface);height:32px;color:var(--ink);font:inherit;border-radius:7px;padding:0 10px;font-size:13px}.input{min-width:240px}.filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filters .count{color:var(--muted);margin-left:auto;font-size:12px}.pill{background:var(--surface-2);height:20px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:0 7px;font-size:11px;font-weight:500;display:inline-flex}.pill.mock{color:var(--ink);background:#fab2192e}.status{align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.status .ico{border-radius:50%;flex:none;place-items:center;width:16px;height:16px;font-size:10px;font-weight:700;line-height:1;display:inline-grid}.status.passed .ico,.status.active .ico{background:var(--good);color:#fff}.status.passed,.status.active{color:var(--good-text)}.status.failed .ico,.status.error .ico{background:var(--critical);color:#fff}.status.failed,.status.error{color:var(--critical)}.status.running{color:var(--accent)}.status.running .ico{background:var(--accent-soft)}.status.running .ico:after{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite pulse}.status.ready .ico,.status.idle .ico{border:1.5px solid var(--muted);color:var(--muted)}.status.ready,.status.idle{color:var(--ink-2)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}@media (prefers-reduced-motion:reduce){.status.running .ico:after{animation:none}}.kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}@media (width<=1000px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=560px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi{padding:12px 14px}.kpi .label{color:var(--ink-2);font-size:12px}.kpi .value{margin-top:2px;font-size:26px;font-weight:600}.kpi.alert .value{color:var(--critical)}.board{grid-template-columns:repeat(6,minmax(210px,1fr));gap:12px;padding-bottom:4px;display:grid;overflow-x:auto}.column{flex-direction:column;gap:8px;min-width:0;display:flex}.column-head{border-bottom:2px solid var(--border);align-items:baseline;gap:6px;padding:2px 2px 4px;font-size:13px;font-weight:600;display:flex}.column-head .n{color:var(--muted);font-weight:500}.column-empty{border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);text-align:center;padding:14px 8px;font-size:12px}.card{color:inherit;flex-direction:column;gap:6px;padding:12px;transition:border-color .12s;display:flex}.card:hover{border-color:var(--accent);text-decoration:none}.card-title{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.card-title .name{font-weight:600;line-height:1.3}.card .meta{color:var(--muted);font-size:12px}.card .metrics{color:var(--ink-2);font-size:12px}.card.attention{border-color:color-mix(in srgb, var(--critical) 45%, var(--border))}.list{margin:0;padding:0;list-style:none}.list li{border-top:1px solid var(--border);align-items:flex-start;gap:10px;padding:9px 16px;display:flex}.list li:first-child{border-top:none}.list .main{flex:1;min-width:0}.list .title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list .sub{color:var(--muted);font-size:12px}.empty{color:var(--muted);padding:14px 16px;font-size:13px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--ink-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px}tr:last-child td{border-bottom:none}td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}tbody tr.selectable{cursor:pointer}tbody tr.selectable:hover td{background:var(--surface-2)}tbody tr.selected td{background:var(--accent-soft)}.back{font-size:13px}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.detail-head .desc{max-width:760px;color:var(--ink-2);margin-top:6px}.stepper{gap:0;display:flex;overflow-x:auto}.step{min-width:96px;color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:6px;font-size:12px;display:flex;position:relative}.step:before{content:"";background:var(--border-strong);height:2px;position:absolute;top:9px;left:-50%;right:50%}.step:first-child:before{display:none}.step .dot{z-index:1;background:var(--surface);border:2px solid var(--border-strong);border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:grid}.step.done{color:var(--ink-2)}.step.done .dot{background:var(--accent);border-color:var(--accent);color:#fff}.step.done:before,.step.current:before{background:var(--accent)}.step.current{color:var(--ink);font-weight:600}.step.current .dot{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.kv{grid-template-columns:auto 1fr;gap:4px 14px;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}details>summary{cursor:pointer;color:var(--ink-2);font-size:13px}pre.code{background:var(--surface-2);font-family:var(--mono);border-radius:8px;margin:8px 0 0;padding:12px;font-size:12px;line-height:1.5;overflow:auto}.chart-tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;font-size:12px;box-shadow:0 4px 16px #0000001f}.chart-tooltip .v{font-size:13px;font-weight:600}.banner{border-radius:var(--radius);background:var(--critical-soft);border:1px solid color-mix(in srgb, var(--critical) 35%, transparent);padding:10px 14px;font-size:13px}.banner ul{margin:4px 0 0;padding-left:18px}.centered{max-width:640px;margin:48px auto}.skeleton{background:linear-gradient(90deg, var(--surface-2), var(--surface), var(--surface-2));border-radius:var(--radius);background-size:200% 100%;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border-strong);height:26px;color:var(--ink-2);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.chip:hover{border-color:var(--accent);color:var(--ink);text-decoration:none}ol.steps{margin:8px 0 0;padding-left:20px}ol.steps li{margin:6px 0}.btn-primary{background:var(--ink);color:var(--page);border-color:var(--ink);justify-content:center;height:38px;padding:0 16px;font-weight:500}.btn-primary:hover{background:var(--ink-2);border-color:var(--ink-2)}.user{align-items:center;gap:8px;display:inline-flex}.user img{border-radius:50%}.user .login{color:var(--ink-2);font-weight:500}.login-page{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:24px 16px;display:flex}.login-card{flex-direction:column;gap:14px;width:100%;max-width:380px;padding:28px;display:flex}.login-card p{margin:0}.login-card .brand{font-size:17px}.login-input{width:100%;min-width:0;height:38px}.btn-primary:disabled{opacity:.5}a.btn.active{border-color:var(--accent);color:var(--accent)}.access-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.access-form .field{flex-direction:column;gap:4px;display:flex}.access-form .input{min-width:260px}.access-form .btn-primary{height:32px}.avatar{border-radius:50%;flex:none;width:24px;height:24px}.avatar.placeholder{background:var(--accent-soft);color:var(--accent);place-items:center;font-size:11px;font-weight:700;display:inline-grid}.btn-solid{background:var(--accent);border-color:var(--accent);color:#fff}.btn-solid:hover{background:color-mix(in srgb, var(--accent) 85%, #000)}.btn-danger{background:var(--critical);border-color:var(--critical);color:#fff}.btn-danger:hover{background:color-mix(in srgb, var(--critical) 85%, #000)}.action{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 16px;display:flex}.panel-head+.action{border-top:none}.action h3{color:var(--ink-2);font-size:12px;font-weight:500}.action .controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.banner.ok{background:color-mix(in srgb, var(--good) 10%, transparent);border-color:color-mix(in srgb, var(--good) 35%, transparent)}.warn{color:var(--critical)}details.history{margin-top:4px}details.history ol{color:var(--ink-2);margin:4px 0 0;padding-left:18px;font-size:12px}.dialog{border:1px solid var(--border-strong);background:var(--surface);width:min(460px,100vw - 32px);color:var(--ink);border-radius:12px;padding:0;box-shadow:0 12px 40px #00000040}.dialog::backdrop{background:#00000073}.dialog form{flex-direction:column;gap:12px;padding:20px;display:flex}.dialog-body p{color:var(--ink-2);margin:0 0 8px}.dialog-body p:last-child{margin-bottom:0}.dialog .field{flex-direction:column;gap:4px;display:flex}.dialog .input{width:100%;min-width:0}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.gain{color:var(--good-text)}.loss{color:var(--critical)}.kpi .sub{color:var(--muted);margin-top:2px;font-size:12px}.swatch{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.legend{color:var(--ink-2);flex-wrap:wrap;gap:6px 16px;margin-bottom:8px;font-size:12px;display:flex}.legend>span{align-items:center;gap:6px;display:inline-flex}.tt-row{align-items:center;gap:6px;margin-top:3px;display:flex}.tt-row .tt-name{color:var(--ink-2);flex:1}.banner.note{background:color-mix(in srgb, var(--warning) 12%, transparent);border-color:color-mix(in srgb, var(--warning) 45%, transparent)}.grid-halves{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=1100px){.grid-halves{grid-template-columns:minmax(0,1fr)}}.live-strip{color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px 20px;padding:10px 16px;display:flex}.live-strip:hover{border-color:var(--accent);text-decoration:none}.live-strip .figures{color:var(--ink-2);flex-wrap:wrap;gap:4px 18px;font-size:13px;display:flex}.live-strip .figures b{font-variant-numeric:tabular-nums;font-weight:600}.live-strip .go{color:var(--accent);margin-left:auto;font-size:13px}.mini-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.mini-kpis .v{font-size:18px;font-weight:600}@media (width<=700px){.mini-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.machines{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));align-items:start;gap:16px;display:grid}.machine.attention{border-color:color-mix(in srgb, var(--critical) 45%, var(--border))}.machine-foot{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.os-icon{width:16px;height:16px;color:var(--ink-2);flex:none}.wizard{max-width:860px}.form .field,.panel .field{flex-direction:column;gap:4px;display:flex}.form .field .input{min-width:0;max-width:420px}.form .field .select{max-width:560px}.os-choice{grid-template-columns:1fr 1fr;gap:12px;display:grid}.os-option{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer;align-items:flex-start;gap:12px;padding:14px;display:flex}.os-option>span{flex-direction:column;gap:3px;display:flex}.os-option .os-icon{width:22px;height:22px;margin-top:1px}.os-option .t{font-weight:600}.os-option:hover{border-color:var(--accent)}.os-option.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.os-option.selected .os-icon{color:var(--accent)}.panel-sub{background:var(--surface-2);border-radius:8px;padding:12px 14px}.panel-sub h3{margin-bottom:4px}.checklist{color:var(--ink-2);margin:0;padding-left:18px}.checklist li{margin:3px 0}.copy-field{align-items:flex-start;gap:8px;display:flex}.copy-field pre.code,.copy-field pre{white-space:pre-wrap;word-break:break-all;flex:1;min-width:0;margin:0}ol.steps .copy-field{margin-top:6px}.dialog.wide{width:min(720px,100vw - 32px)}.dialog .steps,.dialog details{font-size:13px}button.chip{background:var(--surface);font:inherit;cursor:pointer;font-size:12px}.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.link-btn{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.link-btn:hover{text-decoration:underline}.unnamed{color:var(--ink-2);font-style:italic}@media (width<=700px){.topbar{flex-wrap:wrap;gap:8px 12px;padding:10px 16px}.topbar .spacer{display:none}.topbar-meta{flex-wrap:wrap;width:100%}.topbar-meta .rate{display:none}main{padding:16px 16px 40px}.input{width:100%;min-width:0}.board{grid-template-columns:minmax(0,1fr);overflow-x:visible}.column-empty{display:none}.detail-head .row{width:100%}.machines,.os-choice{grid-template-columns:minmax(0,1fr)}.copy-field{flex-direction:column;align-items:stretch}}
