@font-face{font-family:Big Shoulders;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6737c29012651fc4.001-r-7mugpfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Big Shoulders;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/3166ce27c977ceeb.p.016j3pq2se5f3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Big Shoulders;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b321c3467f72ab6d.p.2mx8o19a7jz1u.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}._5IEVjW_className{font-family:Big Shoulders;font-style:normal}._5IEVjW_variable{--font-display:"Big Shoulders"}
@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/7e75aa585bf80471.p.0uclrktt8h78d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/10b40a20e4e62717.p.2dv7oiayrgfo5.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.yOcxzG_className{font-family:Atkinson Hyperlegible Next;font-style:normal}.yOcxzG_variable{--font-text:"Atkinson Hyperlegible Next"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#e8ebee;--surface:#fff;--line:#d2d8de;--line-soft:#e5e9ed;--ink:#1a2130;--ink-2:#4b5566;--ink-3:#667083;--pen:#2346a8;--marker:#ff2e93;--good:#15803d;--warning:#a16207;--critical:#c62828;--grid:#e7ebef;--axis:#b9c1cb}*{box-sizing:border-box}html,body{background:var(--page);color:var(--ink);margin:0}body{min-height:100vh;font-family:var(--font-text), system-ui, sans-serif;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.45}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--pen);outline-offset:2px}.app{max-width:1600px;margin:0 auto;padding:22px 28px 40px}.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.brand h1{color:var(--pen);font:800 44px/.95 var(--font-display);font-variation-settings:"opsz" 72;letter-spacing:.01em;margin:0}.brand p{color:var(--ink-2);margin:6px 0 0}.top-meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:14px;font-size:14px;display:flex}.sim{color:#7a4f00;background:#fff7e4;border:1px solid #e0b354;border-radius:999px;padding:3px 10px}.conn:before{content:"";background:var(--ink-3);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:7px;display:inline-block}.conn-live:before{background:var(--good)}.conn-lost:before{background:var(--critical)}.clock{min-width:4.6em;color:var(--ink);font:700 22px var(--font-display);font-variant-numeric:tabular-nums}.fullscreen{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:6px;padding:6px 12px}.fullscreen:hover{border-color:var(--ink-3)}.grid{grid-template-columns:minmax(0,1.65fr) minmax(340px,1fr);grid-template-areas:"map side""machines machines";gap:18px;display:grid}.map-panel{border:1px solid var(--line);background:#cfd5d9;border-radius:10px;grid-area:map;min-height:620px;display:flex;overflow:hidden}.side{flex-direction:column;grid-area:side;gap:18px;min-width:0;display:flex}.total,.trend,.events{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:18px 20px}.map-wrap{flex:1;position:relative}.map-wrap>.map{position:absolute;inset:0}.map-home{z-index:2;border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:6px;padding:6px 10px;font-size:13px;position:absolute;top:10px;left:10px;box-shadow:0 1px 2px #10182826}.map-failed{color:var(--ink-2);text-align:center;place-items:center;margin:0;padding:24px;display:grid;position:absolute;inset:0}.place-label{color:#fff;font:700 13px var(--font-text);letter-spacing:.02em;white-space:nowrap;text-shadow:0 0 3px #000000e6,0 1px 2px #000000b3;pointer-events:none}.site-marker{width:0;height:0;position:relative}.site-blob{background:var(--marker);opacity:.62;mix-blend-mode:multiply;pointer-events:none;border-radius:46% 54% 42% 58%/58% 44% 56% 42%;width:60px;height:48px;position:absolute;top:-24px;left:-30px;transform:rotate(-12deg)}.site-dot{width:10px;height:10px;box-shadow:0 0 0 2px var(--ink);pointer-events:none;background:#fff;border-radius:50%;position:absolute;top:-5px;left:-5px}.site-card{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:158px;padding:6px;position:absolute;box-shadow:0 2px 8px #10182847}.card-right .site-card{top:0;left:38px;transform:translateY(-50%)}.card-left .site-card{top:0;right:38px;transform:translateY(-50%)}.card-above .site-card{bottom:32px;left:0;transform:translate(-50%)}.card-below .site-card{top:32px;left:0;transform:translate(-50%)}.has-trouble .site-card{border-color:var(--critical);box-shadow:0 0 0 2px #c6282840,0 2px 8px #10182847}.site-card-name{margin:0 4px 3px;font-size:13px;font-weight:700}.site-card ul{margin:0;padding:0;list-style:none}.site-row{text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:5px;grid-template-columns:16px 38px auto;align-items:center;gap:6px;width:100%;padding:4px;font-size:13px;display:grid}.site-row:hover{background:#f0f2f5}.site-row.is-selected{background:#ff2e9326}.site-row-code{font-weight:700}.site-row-value{text-align:right;font-variant-numeric:tabular-nums}.status-fault .site-row-value,.status-offline .site-row-value{color:var(--critical);font-weight:700}.status-icon{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.status-icon-run{stroke:var(--good)}.status-icon-idle{stroke:var(--warning)}.status-icon-fault{stroke:var(--critical)}.status-icon-offline{stroke:var(--ink-3)}.summary{align-items:center;gap:8px;margin:0;font-size:17px;font-weight:700;display:flex}.summary .status-icon{width:18px;height:18px}.summary-bad{color:var(--critical)}.summary-list{margin:6px 0 0 26px;padding:0;list-style:none}.summary-list button{color:var(--critical);text-align:left;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:2px 0;text-decoration:underline}.total-label{color:var(--ink-2);margin:16px 0 0;font-size:15px}.total-value{font:800 112px/.88 var(--font-display);font-variation-settings:"opsz" 72;font-variant-numeric:tabular-nums;letter-spacing:-.01em;align-items:baseline;gap:10px;margin:2px 0 0;display:flex}.total-unit{color:var(--ink-2);font-size:36px;font-weight:600}.total-facts{border-top:1px solid var(--line-soft);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 0;padding-top:14px;display:grid}.total-facts dt{color:var(--ink-2);font-size:13px}.total-facts dd{font:700 22px/1.15 var(--font-display);font-variant-numeric:tabular-nums;margin:2px 0 0}.total-note{color:var(--ink-3);margin:10px 0 0;font-size:12.5px}.trend-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.trend h2,.events h2{margin:0;font-size:16px;font-weight:700}.link{color:var(--pen);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.chart{width:100%;min-height:200px;position:relative}.chart svg{touch-action:pan-y;display:block;overflow:visible}.chart-grid line{stroke:var(--grid)}.chart-grid .chart-baseline{stroke:var(--axis)}.chart-grid text{fill:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px}.chart-area{fill:var(--pen);fill-opacity:.08}.chart-line{fill:none;stroke:var(--pen);stroke-width:2px;stroke-linejoin:round}.trend.is-machine .chart-area{fill:var(--marker)}.trend.is-machine .chart-line,.trend.is-machine .chart-hover circle{stroke:var(--marker)}.chart-hover line{stroke:var(--ink-3);stroke-dasharray:3 3}.chart-hover circle{fill:var(--surface);stroke:var(--pen);stroke-width:2.5px}.chart-tip{border:1px solid var(--line);background:var(--surface);pointer-events:none;width:120px;color:var(--ink-2);border-radius:6px;flex-direction:column;padding:6px 10px;font-size:12.5px;display:flex;position:absolute;top:0;box-shadow:0 2px 6px #10182826}.chart-tip-value{color:var(--ink);font:700 19px var(--font-display)}.events ol{margin:10px 0 0;padding:0;list-style:none}.events li{border-top:1px solid var(--line-soft);grid-template-columns:5.4em 3.4em 1fr;align-items:baseline;gap:8px;padding:7px 0 7px 10px;font-size:14px;display:grid}.events li.is-raised{box-shadow:inset 3px 0 0 var(--critical)}.events li.is-cleared{box-shadow:inset 3px 0 0 var(--good);color:var(--ink-2)}.events time{color:var(--ink-3);font-variant-numeric:tabular-nums}.events-machine{font-weight:700}.events-empty{color:var(--ink-2);margin:8px 0 0;font-size:14px}.machines{flex-wrap:wrap;grid-area:machines;gap:18px;display:flex}.site{flex:var(--n) 1 0;min-width:calc(var(--n) * 196px);border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow:hidden}.site-title{border-bottom:1px solid var(--line-soft);font:700 22px/1 var(--font-display);align-items:baseline;gap:10px;margin:0;padding:12px 16px 10px;display:flex}.site-title span{color:var(--ink-3);font:400 13px var(--font-text)}.site-machines{grid-template-columns:repeat(var(--n), minmax(0, 1fr));display:grid}.strip{border-left:1px solid var(--line-soft);min-width:0;padding:14px 16px 16px}.strip:first-child{border-left:0}.strip.is-selected{box-shadow:inset 0 3px 0 var(--marker);background:#ff2e930f}.strip-head{text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:0;display:flex}.strip-code{font:800 24px/1 var(--font-display);letter-spacing:.02em}.badge{--status:var(--ink-3);border:1px solid color-mix(in srgb, var(--status) 45%, transparent);background:color-mix(in srgb, var(--status) 9%, white);border-radius:999px;align-items:center;gap:5px;padding:2px 8px 2px 6px;font-size:12.5px;font-weight:700;line-height:1.3;display:inline-flex}.badge svg{fill:none;width:13px;height:13px;stroke:var(--status);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.badge-run{--status:var(--good)}.badge-idle{--status:var(--warning)}.badge-fault{--status:var(--critical)}.strip-power{align-items:baseline;gap:6px;margin:12px 0 0;display:flex}.strip-kw{font:800 52px/1 var(--font-display);font-variation-settings:"opsz" 72;font-variant-numeric:tabular-nums}.strip-unit{color:var(--ink-2);font:600 20px var(--font-display)}.strip-offline .strip-kw,.strip-pending .strip-kw{color:var(--ink-3)}.strip-alarm{min-height:1.45em;color:var(--ink-3);margin:4px 0 0;font-size:13px}.strip-fault .strip-alarm,.strip-offline .strip-alarm,.strip-idle .strip-alarm{color:var(--critical);font-weight:700}.spark{width:100%;height:40px;margin:10px 0 8px;display:block}.spark-base{stroke:var(--grid);vector-effect:non-scaling-stroke}.spark-line{fill:none;stroke:var(--pen);stroke-width:1.5px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.strip.is-selected .spark-line{stroke:var(--marker)}.phases{gap:5px;margin:6px 0 0;display:grid}.phase{grid-template-columns:20px 1fr;align-items:center;gap:6px;display:grid}.phase dt{color:var(--ink-2);font-size:12.5px;font-weight:700}.phase dd{grid-template-columns:1fr 4.2em;align-items:center;gap:8px;margin:0;display:grid}.phase-bar{background:#e8ecf1;border-radius:3px;height:5px;overflow:hidden}.phase-bar span{background:var(--pen);opacity:.75;border-radius:3px;height:100%;transition:width .6s;display:block}.phase-value{font-variant-numeric:tabular-nums;text-align:right;font-size:13px}.phase.is-dead dt,.phase.is-dead .phase-value{color:var(--critical)}.phase.is-dead .phase-bar{outline:1px dashed var(--critical)}.strip-facts{border-top:1px solid var(--line-soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:12px 0 0;padding-top:10px;display:grid}.strip-facts dt{color:var(--ink-3);font-size:12px}.strip-facts dd{font-variant-numeric:tabular-nums;margin:1px 0 0;font-size:14px;font-weight:700}@media (prefers-reduced-motion:reduce){.phase-bar span{transition:none}}@media (max-width:1180px){.grid{grid-template-columns:1fr;grid-template-areas:"map""side""machines"}.map-panel{min-height:520px}}@media (max-width:640px){.app{padding:16px 16px 32px}.brand h1{font-size:36px}.grid{grid-template-areas:"side""map""machines";gap:16px}.map-panel{min-height:440px}.site-card{min-width:0;padding:3px 7px}.site-card ul{display:none}.site-card-name{white-space:nowrap;margin:0;font-size:12px}.total-value{font-size:84px}.total-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.site{min-width:100%}.site-machines{grid-template-columns:1fr}.strip{border-left:0;border-top:1px solid var(--line-soft)}.strip:first-child{border-top:0}}
