.eng{--tint:#f0ebff;--deep:#3c2a99;--ok:#1e9e6a;--amber:#e4a800;--card:#fff}.eng .live{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--deep);background:var(--tint);border-radius:999px;padding:4px 12px}.eng .dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(30,158,106,.6);animation:pulse 1.8s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(30,158,106,.55)}70%{box-shadow:0 0 0 9px rgba(30,158,106,0)}to{box-shadow:0 0 0 0 rgba(30,158,106,0)}}.eng .frame{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(18,11,46,.04),0 12px 32px rgba(18,11,46,.07);overflow:hidden}.eng .bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap;font-size:13.5px}.eng .bar b{font-weight:600}.eng .bar .c{color:var(--muted)}.eng .kpis{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;padding:16px 18px 0;background:var(--bg)}.eng .kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}.eng .kpi .n{font-family:IBM Plex Mono,monospace;font-size:26px;font-weight:600;color:var(--deep);line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.eng .kpi .l{font-size:12px;color:var(--muted);margin-top:4px}.eng .kpi .d{font-size:12px;color:var(--ok);font-weight:600}.eng .grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);grid-gap:14px;gap:14px;padding:16px 18px;background:var(--bg)}.eng .card,.eng .grid>*{min-width:0}@media(max-width:900px){.eng .grid,.eng .kpis{grid-template-columns:1fr}}.eng .card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.eng .card h3{font-size:13px;font-weight:600;color:var(--deep);margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.eng .card h3 .mono{font-weight:500;color:var(--muted);font-size:11.5px}.eng .feed{max-height:330px;overflow:hidden;position:relative}.eng .feed:after{content:"";position:absolute;left:0;right:0;bottom:0;height:48px;background:linear-gradient(transparent,#fff)}.eng .ev{display:grid;grid-template-columns:62px 1fr;grid-gap:10px;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:13px;animation:slide .5s ease}.eng .ev:first-child{border-top:0}@keyframes slide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.eng .ev .w{font-family:IBM Plex Mono,monospace;font-size:11.5px;color:var(--muted)}.eng .ev .what b{font-weight:600}.eng .ev .what .s{color:var(--muted);font-size:12px;margin-top:2px}.eng .pill{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:999px;line-height:1.6;white-space:nowrap}.eng .p-lime{background:var(--lime)}.eng .p-tint{background:var(--tint);color:var(--deep)}.eng .p-ok{background:#e6f7ef;color:#12714a}.eng .p-amber{background:#fff2cc;color:#7a5300}.eng .p-alert{background:var(--alert);color:#fff}.eng .p-line{border:1px solid var(--line);color:var(--muted);font-weight:500}.eng .prog{height:8px;background:var(--tint);border-radius:999px;overflow:hidden;margin-top:8px}.eng .prog i{display:block;height:100%;width:0;background:var(--violet);border-radius:999px;transition:width .4s ease}.eng .steps{font-size:12.5px;color:var(--muted);margin-top:8px;display:grid;grid-gap:4px;gap:4px}.eng .steps div{display:flex;gap:8px;align-items:center}.eng .steps .st{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);flex:none}.eng .steps .st.on{border-color:var(--violet);background:var(--violet)}.eng .steps .st.run{border-color:var(--violet);animation:spin 1s linear infinite;border-top-color:transparent}@keyframes spin{to{transform:rotate(1turn)}}.eng .diff{font-family:IBM Plex Mono,monospace;font-size:12px;line-height:1.55;background:#faf9ff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:8px}.eng .diff .add{color:#12714a;background:#e6f7ef;display:block;padding:1px 6px;border-radius:4px}.eng .wait{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--deep);font-weight:600}.eng .wait i{width:7px;height:7px;border-radius:50%;background:var(--amber);animation:blink 1.1s infinite}@keyframes blink{50%{opacity:.25}}.eng .btns{display:flex;gap:8px;margin-top:10px}.eng .sb{font:inherit;font-size:12.5px;font-weight:600;border-radius:8px;padding:7px 12px;border:1px solid var(--line);background:#fff;color:var(--violet);cursor:pointer}.eng .sb.pri{background:var(--violet);color:#fff;border-color:var(--violet)}.eng .meter{display:grid;grid-template-columns:150px 1fr 1fr 54px;grid-gap:8px;gap:8px;align-items:center;font-size:12.5px;padding:5px 0}.eng .meter .b2{height:9px;background:var(--tint);border-radius:999px;overflow:hidden}.eng .meter .b2 i{display:block;height:100%;width:0;border-radius:999px;transition:width .9s ease}.eng .meter .b2.g i{background:#b8b1d8}.eng .meter .b2.m i{background:var(--violet)}.eng .meter .v{font-family:IBM Plex Mono,monospace;font-size:12px;text-align:right;color:var(--deep);font-weight:600}.eng .mhead{display:grid;grid-template-columns:150px 1fr 1fr 54px;grid-gap:8px;gap:8px;font-size:11.5px;color:var(--muted);font-weight:600;margin-top:4px}.eng .big{font-family:IBM Plex Mono,monospace;font-size:34px;font-weight:600;color:var(--deep);line-height:1}.eng .big small{font-size:13px;color:var(--muted);font-family:Instrument Sans,sans-serif;font-weight:500;margin-left:6px}.eng .wave{height:26px;margin-top:8px;background:repeating-linear-gradient(90deg,var(--violet) 0 2px,transparent 2px 5px);-webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);opacity:.5;border-radius:4px}.eng .wave.on{animation:wv .6s steps(6) infinite}@keyframes wv{to{background-position:30px 0}}.eng .explain{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:20px;gap:20px;margin-top:28px}@media(max-width:820px){.eng .explain{grid-template-columns:1fr}}.eng .explain p{font-size:15px;color:var(--muted)}.eng .explain b{color:var(--ink);display:block;margin-bottom:4px}.eng .room{min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(18,11,46,.04),0 12px 32px rgba(18,11,46,.07);overflow:hidden;margin-top:14px}.eng .lamps{display:grid;grid-template-columns:repeat(6,1fr);border-bottom:1px solid var(--line)}.eng .lamp{padding:10px 14px;border-right:1px solid var(--line);font-size:12px;display:flex;align-items:center;gap:9px}.eng .lamp:last-child{border-right:0}.eng .lamp b{font-weight:600}.eng .lamp .s{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:11px}.eng .lamp i{width:9px;height:9px;border-radius:50%;background:var(--ok);flex:none;animation:lampblink var(--d,1.4s) infinite}.eng .lamp i.v{background:var(--violet)}.eng .lamp i.a{background:var(--amber)}@keyframes lampblink{0%,to{opacity:1;box-shadow:0 0 0 0 rgba(30,158,106,.5)}50%{opacity:.35;box-shadow:0 0 0 6px rgba(30,158,106,0)}}.eng .roomgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-gap:0;gap:0}.eng .roomgrid>*{min-width:0}@media(max-width:900px){.eng .roomgrid{grid-template-columns:1fr}.eng .lamps{grid-template-columns:repeat(3,1fr)}.eng .lamp{padding:8px 10px;font-size:11.5px}.eng .lamp .s{font-size:10px}.eng .lamp:nth-child(3n){border-right:0}.eng .lamp:nth-child(-n+3){border-bottom:1px solid var(--line)}.eng .pipe svg{max-height:none}.eng .pipe{border-right:0;border-bottom:1px solid var(--line)}}.eng .pipe{padding:16px 18px 6px;border-right:1px solid var(--line);min-width:0;overflow:hidden}.eng .pipe svg{width:100%;max-width:100%;height:auto;aspect-ratio:740/192;max-height:230px;display:block;overflow:visible}.eng .node{fill:#fff;stroke:var(--line);stroke-width:1.5}.eng .node.hot{stroke:var(--violet)}.eng .nlabel{font:600 13px Instrument Sans,sans-serif;fill:var(--ink)}.eng .nsub{font:500 10.5px IBM Plex Mono,monospace;fill:var(--muted)}.eng .edge{fill:none;stroke:var(--line);stroke-width:2}.eng .pk{fill:var(--violet)}.eng .pk.l{fill:#9fd33a}.eng .pk.a{fill:var(--amber)}.eng .ring{fill:none;stroke:var(--violet);stroke-width:2;opacity:0;animation:ring 2.2s infinite}@keyframes ring{0%{r:18;opacity:.6}to{r:34;opacity:0}}.eng .telem{padding:0 18px 12px;min-width:0}.eng .tick{overflow:hidden;white-space:nowrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 0;font-family:IBM Plex Mono,monospace;font-size:11.5px;color:var(--muted)}.eng .tick span{display:inline-block;padding-right:48px;animation:marq 46s linear infinite}.eng .tick b{color:var(--deep);font-weight:600}@keyframes marq{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.eng .side{padding:14px 18px;display:grid;grid-gap:10px;gap:10px;align-content:start;min-width:0}.eng .cnt{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:8px}.eng .cnt .n{font-family:IBM Plex Mono,monospace;font-size:24px;font-weight:600;color:var(--deep);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.eng .cnt .l{font-size:11.5px;color:var(--muted)}.eng .cnt .flash{animation:flash .35s}@keyframes flash{0%{color:var(--ok)}to{color:var(--deep)}}.eng .bars2{display:flex;align-items:flex-end;gap:2px;height:40px;width:120px}.eng .bars2 i{flex:1 1;background:var(--tint);border-radius:2px 2px 0 0;transition:height .4s}.eng .bars2 i:last-child{background:var(--violet)}.eng .small-h{font-size:clamp(20px,2.4vw,26px);line-height:1.2;letter-spacing:-.02em;font-weight:600;margin:10px 0 6px}.eng .small-p{color:var(--muted);font-size:14.5px;max-width:760px}.eng section{padding:56px 0}.eng .mono{font-family:IBM Plex Mono,monospace}