:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#fff;--paper-sunken:#f3f5f7;--paper-inset:#eceff3;--hairline:#d5dae0;--hairline-soft:#e5e9ed;--ink:#14181d;--ink-2:#5a6570;--ink-3:#8a939d;--accent:#c1440e;--accent-strong:#9c3609;--accent-soft:#fbeee7;--ok:#1a7f4b;--ok-soft:#e7f4ed;--warn:#b45309;--warn-soft:#fbf1e0;--bad:#b42318;--bad-soft:#fcece9;--info:#175cd3;--info-soft:#e9f0fd;--idle:#667085;--idle-soft:#eef0f3;--maint:#6941c6;--maint-soft:#f0eafd;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--mono:"JetBrains Mono", "SFMono-Regular", "SF Mono", Menlo, Consolas, "Liberation Mono", "Roboto Mono", monospace;--radius:3px;--grid:32px}*{box-sizing:border-box}body{background:var(--paper-sunken);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}button,input{font:inherit}.chip-value,.temp-value,.cabinet-id,.screen-text,.desk-gauges .ant-statistic-content-value,input{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.floor{background-image:linear-gradient(90deg,#14181d08 1px,#0000 1px),linear-gradient(#14181d08 1px,#0000 1px);background-size:var(--grid) var(--grid);background-color:var(--paper-sunken);min-height:100vh;padding:0 28px 56px}.topbar{border-bottom:1px solid var(--ink);box-shadow:inset 0 3px 0 var(--accent);justify-content:space-between;align-items:flex-end;gap:24px;padding:22px 0 0;display:flex}.topbar-head{padding-bottom:12px}.topbar h3{letter-spacing:.01em;color:var(--ink);margin:0 0 5px;font-size:19px;font-weight:650}.silkscreen{letter-spacing:.09em;color:var(--ink-3);font-size:11px;font-weight:500;display:block}.topbar-tags{align-items:center;gap:8px;padding-bottom:12px;display:flex}.topbar-tags .ant-tag{border-radius:var(--radius);margin:0;font-size:12px}.yard{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px;margin:20px 0;display:grid}.cabinet{text-align:left;border:1px solid var(--hairline);border-top:3px solid var(--hairline);border-radius:var(--radius);background:var(--paper);width:100%;color:inherit;cursor:pointer;padding:11px 12px 12px;transition:border-color .12s,background .12s;display:block}.cabinet:hover{border-color:var(--accent-strong);border-top-color:var(--accent)}.cabinet.selected{border-color:var(--accent);border-top-color:var(--accent);background:var(--accent-soft)}.cabinet-row{align-items:center;gap:7px;min-height:18px;display:flex}.cabinet-id{letter-spacing:.05em;color:var(--ink);font-size:14px;font-weight:700}.cabinet-chip{border-radius:var(--radius);white-space:nowrap;border:1px solid;padding:0 6px;font-size:11px;line-height:1.55;display:inline-block}.cabinet-spacer{flex:1}.lamp{border:1px solid #14181d47;border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.status-CREATED,.status-OFFLINE,.status-STOPPED{background:var(--idle)}.status-STARTING,.status-INITIALIZING{background:var(--info);animation:1.1s ease-in-out infinite pulse}.status-READY{background:var(--ok)}.status-FAULT{background:var(--bad);animation:.7s ease-in-out infinite pulse}.status-MAINTENANCE{background:var(--maint)}.comm-ONLINE{background:var(--ok)}.comm-DEGRADED{background:var(--warn);animation:1.1s ease-in-out infinite pulse}.comm-DISCONNECTED{background:var(--bad);animation:.7s ease-in-out infinite pulse}.cabinet-face{width:100%;height:auto;margin:9px 0 8px;display:block}.shell{fill:#e8ebef;stroke:var(--hairline);stroke-width:1px}.screen{fill:#fbfcfd;stroke:#c3cad2;stroke-width:1px}.screen-text{fill:var(--ink);letter-spacing:.02em;font-size:11px}.fan{transform-box:fill-box;transform-origin:50%;fill:#b9c0c8}.fan.on{fill:var(--info);animation:1.1s linear infinite spin}.fan-hub{fill:var(--paper);stroke:#9aa2ab;stroke-width:1px}.bay{fill:var(--idle-soft);stroke:var(--hairline);stroke-width:.5px}.phase-PREHEATING,.phase-SAMPLING{fill:var(--warn)}.phase-CLAMPING,.phase-WAITING_LOAD,.phase-RESETTING,.phase-RECOVERING{fill:var(--info)}.phase-ERROR{fill:var(--bad)}.phase-COMPLETED,.phase-READY{fill:var(--ok)}.cabinet-meta{color:var(--ink-2);font-size:12px;display:block}.cabinet-plan{border-top:1px dashed var(--hairline-soft);color:var(--ink-2);margin-top:6px;padding-top:6px;font-size:11px;line-height:1.5;display:block}.cabinet-plan.is-none{color:var(--ink-3)}.cabinet-plan-id{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);display:block}.cabinet-plan-params{font-variant-numeric:tabular-nums;display:block}.console{border:1px solid var(--hairline);border-top:3px solid var(--ink);border-radius:var(--radius);background:var(--paper);padding:16px 18px 20px}.console-head{border-bottom:1px solid var(--hairline-soft);justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:14px;display:flex}.console-head h4{letter-spacing:.01em;margin:0 0 10px;font-size:16px;font-weight:650}.status-tag{margin-left:8px;font-size:12px}.console .ant-descriptions{font-size:12px}.console .ant-descriptions-item-label{color:var(--ink-3);letter-spacing:.04em;background:var(--paper);padding-right:10px;font-size:11px}.console .ant-descriptions-item-content{color:var(--ink);font-family:var(--mono);font-variant-numeric:tabular-nums}.console .ant-descriptions-bordered .ant-descriptions-view{border:1px solid var(--hairline-soft);border-radius:var(--radius);overflow:hidden}.console .ant-descriptions-bordered .ant-descriptions-item-label,.console .ant-descriptions-bordered .ant-descriptions-item-content{border-right:1px solid var(--hairline-soft);padding:5px 12px}.console .ant-descriptions-row{border-bottom:1px solid var(--hairline-soft)}.console .ant-descriptions-row:last-child{border-bottom:none}.force-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.reading-block{margin-top:16px}.chip{border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper);white-space:nowrap;align-items:baseline;gap:6px;padding:3px 8px;font-size:12px;line-height:1.5;display:inline-flex}.chip-label{color:var(--ink-3);letter-spacing:.03em;font-size:11px}.chip-value{color:var(--ink);font-weight:600}.chip-unit{color:var(--ink-3);margin-left:1px;font-size:11px}.chip-empty{color:var(--ink-3);padding:3px 0;font-size:12px;display:inline-block}.slot-strip{gap:10px;padding:14px 0;display:flex;overflow-x:auto}.slot-bay{border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper);min-width:128px;color:inherit;cursor:pointer;text-align:left;padding:9px 10px 10px;transition:border-color .12s,background .12s}.slot-bay:hover{border-color:var(--ink-3)}.slot-bay.active{border-color:var(--accent);background:var(--accent-soft)}.slot-index{letter-spacing:.06em;color:var(--ink-2);margin-bottom:2px;font-size:11px;font-weight:600;display:block}.plate{border:1px solid #14181d2e;border-radius:1px;height:16px;margin:7px 0;transition:background .35s;display:block}.phase-chip{border-radius:var(--radius);background:var(--idle-soft);color:var(--ink);padding:1px 7px;font-size:12px;line-height:1.6;display:inline-block}.phase-chip.phase-PREHEATING,.phase-chip.phase-SAMPLING{background:var(--warn);color:#fff}.phase-chip.phase-CLAMPING,.phase-chip.phase-WAITING_LOAD,.phase-chip.phase-RESETTING,.phase-chip.phase-RECOVERING{background:var(--info);color:#fff}.phase-chip.phase-ERROR{background:var(--bad);color:#fff}.phase-chip.phase-COMPLETED{background:var(--ok);color:#fff}.slot-serial{color:var(--ink-2);font-size:12px;display:block}.desk{padding-top:4px}.desk-gauges{background:var(--hairline-soft);border:1px solid var(--hairline-soft);border-radius:var(--radius);grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:1px;display:grid;overflow:hidden}.desk-gauges .ant-statistic{background:var(--paper);margin:0;padding:9px 12px 10px}.desk-gauges .ant-statistic-title{letter-spacing:.06em;color:var(--ink-3);margin-bottom:3px;font-size:11px}.desk-gauges .ant-statistic-content{color:var(--ink);font-size:17px;line-height:1.35}.desk-gauges .ant-statistic-content-value{font-variant-numeric:tabular-nums}.desk-gauges .ant-statistic-content-suffix{color:var(--ink-3);font-size:12px}.desk-gauges .ant-statistic-content-prefix{color:var(--accent);margin-right:5px;font-size:13px}.mechanism{grid-template-columns:230px 1fr;align-items:center;gap:18px;margin:16px 0;display:grid}.mechanism-svg{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);width:230px;height:140px}.mech-frame,.bed{fill:#c8ced5;stroke:#a9b1ba;stroke-width:.75px}.rod{fill:#98a0a9;transition:height .35s}.rod.press{fill:var(--accent)}.mech-label{fill:var(--ink-2);letter-spacing:.06em;font-size:10px}.vacuum-meter{color:var(--ink-2);font-size:12px}.vacuum-track{background:var(--paper-inset);border:1px solid var(--hairline);border-radius:1px;height:8px;margin-top:7px;overflow:hidden}.vacuum-fill{background:var(--info);height:100%;transition:width .35s}.curve-wrap{margin:4px 0 16px}.temp-board{align-items:flex-end;gap:8px;min-height:176px;padding:2px 0 4px;display:flex;overflow-x:auto}.temp-col{text-align:center;flex:none;width:54px}.temp-track{background:var(--paper);border:1px solid var(--hairline);border-radius:1px;align-items:flex-end;height:108px;display:flex;overflow:hidden}.temp-fill{width:100%;transition:height .35s,background .35s}.temp-name{letter-spacing:.04em;color:var(--ink-3);margin-top:5px;font-size:11px;display:block}.temp-value{color:var(--ink);font-size:12px;font-weight:600;display:block}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:7px;display:flex}.section-head .temp-name{margin-top:0}.trace-legend{flex-wrap:wrap;gap:4px;display:flex}.trace-key{border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper);color:var(--ink-3);font-size:11px;font-family:var(--mono);cursor:pointer;padding:1px 7px;line-height:1.6}.trace-key:hover{border-color:var(--ink-3)}.trace-key.on{background:var(--paper);font-weight:600}.trace{background-color:var(--paper);background-image:linear-gradient(to right, var(--hairline-soft) 1px, transparent 1px), linear-gradient(to bottom, var(--hairline-soft) 1px, transparent 1px);border:1px solid var(--hairline);border-radius:var(--radius);background-position:-1px -1px;background-size:40px 32px;width:100%;height:138px;display:block}.trace-grid{stroke:var(--hairline-soft);stroke-width:1px}.trace-axisline{stroke:var(--hairline);stroke-width:1px}.trace-axis{fill:var(--ink-3);font-size:8px;font-family:var(--mono)}.trace-line{fill:none;stroke-width:1.6px;stroke-linejoin:round;stroke-linecap:round}.trace-empty{border:1px dashed var(--hairline);border-radius:var(--radius);background:var(--paper);justify-content:center;align-items:center;height:138px;display:flex}.plate-wrap{margin:16px 0}.plate-map{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.plate-svg{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);flex:none;width:208px;height:208px}.plate-edge{fill:var(--paper-inset);stroke:var(--hairline);stroke-width:1px}.plate-ring{fill:none;stroke:var(--hairline);stroke-width:1px;stroke-dasharray:3 3}.plate-dot{stroke:#14181d38;stroke-width:1px}.plate-center{stroke:var(--ink);stroke-width:1.5px}.plate-dot-name{fill:#fff;font-size:9px;font-weight:700;font-family:var(--mono);paint-order:stroke;stroke:#14181d73;stroke-width:2px}.plate-dot-value{fill:#fff;font-size:8px;font-family:var(--mono);paint-order:stroke;stroke:#14181d73;stroke-width:2px}.plate-legend{flex-direction:column;gap:3px;min-width:180px;display:flex}.plate-drop{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);font-size:26px;font-weight:650;line-height:1.15}.verdict{border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper);align-items:stretch;gap:14px;margin:16px 0;padding:12px 14px;display:flex}.verdict-badge{border:1px solid var(--hairline);border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:92px;padding:8px 12px;display:flex}.verdict-icon{font-size:22px}.verdict-text{letter-spacing:.06em;font-size:15px;font-weight:700}.verdict-badge.tone-pass{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.verdict-badge.tone-fail{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}.verdict-badge.tone-running{background:var(--info-soft);border-color:var(--info);color:var(--info)}.verdict-badge.tone-idle{background:var(--idle-soft);border-color:var(--hairline);color:var(--ink-3)}.verdict-body{flex:1;min-width:0}.verdict-progress-head{justify-content:space-between;gap:10px;margin-bottom:5px;display:flex}.verdict-track{background:var(--paper-inset);border:1px solid var(--hairline);border-radius:1px;height:8px;overflow:hidden}.verdict-fill{background:var(--info);height:100%;transition:width .3s}.verdict-fail-item{border:1px solid var(--bad);border-radius:var(--radius);background:var(--bad-soft);color:var(--bad);font-size:12px;font-family:var(--mono);padding:2px 8px;display:inline-block}.fault-table{border:1px solid var(--hairline);border-radius:var(--radius);font-size:12px;overflow:hidden}.fault-row{background:var(--paper);border-bottom:1px solid var(--hairline-soft);grid-template-columns:minmax(120px,1.4fr) minmax(80px,1fr) minmax(90px,1fr) 64px;gap:10px;padding:6px 12px;display:grid}.fault-row:last-child{border-bottom:none}.fault-head{background:var(--paper-sunken);color:var(--ink-3);letter-spacing:.06em;font-size:11px}.fault-kind{font-family:var(--mono);color:var(--bad);font-weight:600}.fault-row.consumed{color:var(--ink-3)}.fault-row.consumed .fault-kind{color:var(--ink-3);text-decoration:line-through}.slot-alarm{color:var(--bad);margin:6px 0 0;font-size:12px;display:block}.banner{margin:16px 0 0;font-size:13px;border:1px solid var(--warn)!important;border-left:3px solid var(--warn)!important;border-radius:var(--radius)!important;background:var(--warn-soft)!important}.banner .ant-alert-message{color:var(--warn)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.3}}
