:root{--bg:#f4f6f9;--panel:#fff;--line:#e2e8f0;--ink:#0f172a;--ink-2:#475569;--ink-3:#94a3b8;--side:#1f2124;--accent:#a22236;--accent-dark:#7d1424;--accent-dim:#fbeef0;--blue:#2563eb;--blue-dark:#1d4ed8;--blue-dim:#eff6ff;--run:#15803d;--run-dim:#f0fdf4;--idle:#d97706;--idle-text:#b45309;--idle-dim:#fffbeb;--down:#dc2626;--down-text:#b91c1c;--down-dim:#fef2f2;--off:#64748b;--online:#475569;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}body{color:var(--ink);background:var(--bg);font-variant-numeric:tabular-nums;margin:0;font:15px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}h2{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin:0 0 .6rem;font-size:.74rem}h2.line-h{color:var(--accent-dark);margin:1.2rem 0 .6rem;font-size:.82rem}h3{margin:0;font-size:1.05rem}.line>h2:not(.line-h){margin-top:1rem}.muted{color:var(--ink-2);margin:0;font-size:.85rem}.bad{color:var(--down);font-weight:700}.side{background:var(--side);color:#fff;border-top:4px solid var(--accent);justify-content:space-between;align-items:center;gap:1rem;padding:.55rem .9rem;display:flex}.brand{align-items:center;gap:.65rem;line-height:1.15;display:flex}.brand strong{font-size:1.15rem;display:block}.brand-t span{letter-spacing:.14em;text-transform:uppercase;color:#b9b9c0;font-size:.62rem;display:block}.logo{color:#fff;background:linear-gradient(135deg,#c43a50,#7d1424);border-radius:11px;place-items:center;width:40px;height:40px;font-size:1.2rem;font-weight:800;display:grid}.side{flex-wrap:wrap}.side nav{order:3;gap:.4rem;width:100%;display:flex}.side nav a{color:#d7d7dc;border-radius:6px;padding:.5rem .9rem;text-decoration:none;display:block}.side nav a[aria-current=page]{background:var(--accent);color:#fff;font-weight:700}button{white-space:nowrap;font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:6px;min-height:44px;padding:0 1.1rem}button.ghost{color:#d7d7dc;background:0 0;border:1px solid #4a4c52}.page{max-width:1280px;margin:0 auto;padding:.9rem}.top{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem;display:flex}.factory{color:var(--ink);flex-wrap:wrap;align-items:center;gap:.3rem .6rem;margin:0;font-size:1.35rem;display:flex}.rolebadge{background:var(--accent-dim);color:var(--accent-dark);font:700 .68rem var(--mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid #ecc5cb;border-radius:8px;padding:.1rem .6rem}.clockbox{text-align:right;flex-direction:column;align-items:flex-end;gap:.1rem;display:flex}.live{background:var(--run-dim);color:var(--run);font:700 .72rem var(--mono);letter-spacing:.06em;border:1px solid #bbf7d0;border-radius:999px;align-items:center;gap:.35rem;padding:.1rem .7rem;display:inline-flex}.live:before{content:"";background:#16a34a;border-radius:50%;width:8px;height:8px}.live.off{color:var(--ink-2);background:#f1f5f9;border-color:#cbd5e1}.live.off:before{background:var(--ink-3)}.clock{font-size:1.6rem;font-weight:700;line-height:1}.foot{color:var(--ink-2);margin-top:1.2rem;font-size:.8rem}.alarm,.alert{background:var(--down-dim);color:var(--down-text);border:1px solid #fecaca;border-radius:12px;margin-bottom:.7rem;padding:.75rem 1rem}.alert{align-items:flex-start;gap:.7rem;font-weight:500;display:flex}.alert .ic{font-size:1.15rem;line-height:1.25}.alert.warn{background:var(--idle-dim);color:var(--idle-text);border-color:#fde68a}.alarm ul{margin:.3rem 0 0;padding-left:1.2rem}.kpis{grid-template-columns:repeat(2,1fr);gap:.6rem;display:grid}.kpis>*,.andon>*,.grid2>*{min-width:0}.kpi,.panel,.tile{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 3px #0f172a0d}.kpi{border-top:3px solid var(--k,var(--accent));background:linear-gradient(180deg, var(--kd,var(--accent-dim)), #fff 75%);flex-direction:column;padding:.75rem .95rem;display:flex;position:relative}.k-crimson{--k:#a22236;--kd:#fbeef0;--kt:#7d1424}.k-blue{--k:#2563eb;--kd:#eff6ff;--kt:#1d4ed8}.k-amber{--k:#d97706;--kd:#fffbeb;--kt:#b45309}.k-red{--k:#dc2626;--kd:#fef2f2;--kt:#b91c1c}.k-purple{--k:#7c3aed;--kd:#f5f3ff;--kt:#6d28d9}.k-green{--k:#16a34a;--kd:#f0fdf4;--kt:#15803d}.dot{border-radius:50%;width:10px;height:10px;position:absolute;top:.85rem;right:.95rem}.dot.ok{background:#16a34a}.dot.warn{background:#d97706}.dot.bad{background:#dc2626}.kpi-l{font:700 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.kpi-v{color:var(--kt,var(--ink));font-size:1.9rem;font-weight:800;line-height:1.15}.kpi-n{color:var(--ink-2);font-size:.82rem}.kpi-n.bad{color:var(--down)}.oee .kpi-v{font-size:2.8rem}.apq{grid-template-columns:repeat(3,1fr);gap:.6rem;margin:.7rem 0 0;display:grid}.apq>div{flex-direction:column;align-items:center;gap:.2rem;min-width:0;display:flex}.apq dt{color:var(--ink-2);text-align:center;font-size:.74rem}.apq dd{margin:0}.ring{width:66px;height:66px;position:relative}.ring svg{width:100%;height:100%;display:block;transform:rotate(-90deg)}.ring-v{font:800 .8rem var(--mono);place-items:center;display:grid;position:absolute;inset:0}.meter{background:#e6e6ea;border-radius:3px;height:6px;margin-top:.25rem;display:block;overflow:hidden}.meter span{background:var(--accent);height:100%;display:block}.meter.down span{background:var(--down)}.andon{grid-template-columns:repeat(2,1fr);gap:.6rem;display:grid}.tile{border-left:5px solid var(--ink-3);overflow:hidden}.tile header{align-items:center;gap:.4rem;padding:.6rem .75rem 0;display:flex}.tile header small{color:var(--ink-2);margin-left:auto;font-size:.8rem}.pill{font:700 .72rem var(--mono);letter-spacing:.05em;text-transform:uppercase;border:1px solid;border-radius:8px;align-items:center;gap:.3rem;padding:.1rem .6rem;display:inline-flex}.p-RUN{background:var(--run-dim);color:var(--run);border-color:#bbf7d0}.p-IDLE{background:var(--idle-dim);color:var(--idle-text);border-color:#fde68a}.p-DOWN{background:var(--down-dim);color:var(--down-text);border-color:#fecaca}.p-ONLINE{background:var(--blue-dim);color:var(--blue-dark);border-color:#bfdbfe}.p-OFFLINE{color:var(--ink-2);background:#f1f5f9;border-color:#cbd5e1}.a-RUN{border-left-color:#16a34a}.a-IDLE{border-left-color:#d97706}.a-DOWN{border-left-color:#dc2626;box-shadow:0 0 0 2px #fecaca}.a-ONLINE{border-left-color:#2563eb}.tile h3{padding:.45rem .75rem 0}.tile dl{margin:.3rem 0 .6rem;padding:0 .7rem}.tile dl div{justify-content:space-between;gap:.5rem;padding:.1rem 0;display:flex}dt{color:var(--ink-2)}dd{text-align:right;margin:0;font-weight:600}.grid2{grid-template-columns:1fr;gap:.6rem;margin-top:.6rem;display:grid}.panel{padding:.8rem .9rem}.panel+.panel{margin-top:.6rem}.chart{width:100%;height:auto;display:block}.gridline{stroke:var(--line)}.axis{fill:var(--ink-2);font-size:13px}.plan{fill:#e2e8f0}.hit{fill:#0000}.chart g:hover .hit,.chart g:focus .hit{fill:#0000000f}.chart g:focus{outline:none}.key{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:.35rem;margin:.4rem 0 0;font-size:.8rem;display:flex}.k-bar,.k-plan,.sw{background:linear-gradient(#60a5fa,#2563eb);border-radius:3px;width:12px;height:12px;display:inline-block}.k-plan{background:#e2e8f0;margin-left:.7rem}.k-dot{background:#d97706;border-radius:50%;width:9px;height:9px;margin-left:.7rem;display:inline-block}.sw{margin-left:.5rem}.sw:first-child{margin-left:0}.sw.g-RUN{background:#16a34a}.sw.g-IDLE{background:var(--idle)}.sw.g-DOWN{background:var(--down)}.sw.g-none{border:1px solid var(--line);background:#e6e6ea}.scroll{overflow-x:auto}.board{border-collapse:collapse;width:100%;margin-top:.6rem;font-size:.82rem}.board th,.board td{text-align:right;border-top:1px solid var(--line);white-space:nowrap;padding:.3rem .25rem}.board thead th{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);border-top:0;font-size:.66rem}.board th:first-child{text-align:left;padding-left:0;font-weight:600}.board td:last-child,.board th:last-child{padding-right:0}.board tr.now{background:var(--accent-dim);font-weight:700}.board tr.now small{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:.62rem}.board tr.future{color:#9a9aa2}.board .meter{min-width:70px}.board .wide{display:none}.tl-row{grid-template-columns:5.2rem 1fr;align-items:center;gap:.5rem;margin-bottom:.45rem;display:grid}.tl-name{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:600;overflow:hidden}.tl-track{background:#e6e6ea;border-radius:4px;height:28px;position:relative;overflow:hidden}.seg{position:absolute;top:0;bottom:0}.g-RUN{background:#16a34a}.g-IDLE{background:var(--idle)}.g-DOWN{background:var(--down)}.tl-now{background:var(--ink);width:2px;position:absolute;top:0;bottom:0}.tl-axis{height:1.1rem;color:var(--ink-2);font-size:.75rem;position:relative}.tl-axis span{position:absolute;transform:translate(-50%)}.tl-axis span:first-child{transform:none}.tl-axis span:last-child{transform:translate(-100%)}.login{background:var(--panel);border-top:4px solid var(--accent);border-radius:8px;max-width:360px;margin:10vh auto;padding:1.5rem;box-shadow:0 1px 3px #00000014}.login h1{color:var(--accent-dark);margin:0;font-size:1.6rem}.login form{gap:1rem;margin-top:1.5rem;display:grid}.login label{gap:.3rem;font-size:.9rem;display:grid}.login input{font:inherit;border:1px solid var(--line);border-radius:6px;min-height:44px;padding:0 .7rem}.error{color:var(--down);margin:.8rem 0 0;font-weight:600}.note{border-left:4px solid var(--run);background:#eef6f0;border-radius:4px;margin:.8rem 0;padding:.6rem .8rem}.small{margin-top:1rem;font-size:.8rem}a{color:var(--accent-dark)}.btn{border-radius:6px;justify-content:center;align-items:center;min-height:44px;padding:0 1rem;font-weight:600;text-decoration:none;display:flex}.btn.alt{color:var(--ink);background:#fff;border:1px solid #b9b9c0}.sso{gap:.6rem;margin-top:1.2rem;display:grid}.or{color:var(--ink-2);align-items:center;gap:.6rem;margin:.4rem 0 -.6rem;font-size:.8rem;display:flex}.or:before,.or:after{content:"";background:var(--line);flex:1;height:1px}select,.invite input{font:inherit;background:#fff;border:1px solid #b9b9c0;border-radius:6px;max-width:100%;min-height:44px;padding:0 .6rem}.invite{gap:.7rem;display:grid}.invite label{gap:.3rem;font-size:.9rem;display:grid}.people{margin:0;padding:0;list-style:none}.people li{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:.5rem .6rem;padding:.7rem 0;display:grid}.people li:first-child{border-top:0}.who{flex-direction:column;grid-column:1/-1;min-width:0;display:flex}.who b{overflow-wrap:anywhere}.inline{gap:.4rem;min-width:0;display:flex}.inline select{flex:1;min-width:0}button.quiet{color:var(--ink);background:#fff;border:1px solid #b9b9c0;padding:0 .8rem}button.quiet.danger{color:var(--down);border-color:var(--down)}.setup input:not([type=checkbox]):not([type=hidden]),.setup select{font:inherit;background:#fff;border:1px solid #b9b9c0;border-radius:6px;min-width:0;max-width:100%;min-height:44px;padding:0 .6rem}.rowform{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.55rem 0;display:flex}.rowform.head{border-top:0;padding-bottom:.2rem}.rowform form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.rowform .grow,.rowform>input[name=name],.rowform .grow>input[name=name]{flex:12rem}.rowform label{align-items:center;gap:.4rem;font-size:.9rem;display:inline-flex}.unit input{text-align:right;width:6.5rem}.tick input{width:22px;height:22px;accent-color:var(--accent)}.group{border-left:4px solid var(--accent);background:#fafafb;border-radius:0 6px 6px 0;margin-bottom:1rem;padding:.2rem .8rem .4rem}.group h3{padding:.6rem 0 .2rem}.group .head input{font-weight:700}.adders{margin-top:.6rem}.rowform.add{border-top:1px dashed #b9b9c0}.device .wrap{flex-wrap:wrap;grid-column:1/-1;align-items:center}.device details{flex-basis:100%}.device summary{padding:.4rem 0}.sure{flex-wrap:wrap;align-items:center;gap:.5rem;padding:.3rem 0;display:flex}.code{color:#f2f2f3;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;background:#1f2124;border-radius:6px;margin:0 0 1rem;padding:.7rem .8rem;font:.85rem/1.5 ui-monospace,Menlo,Consolas,monospace}.side nav{flex-wrap:wrap}@media (max-width:559px){.axis{font-size:21px}.rowform.head{flex-direction:column;align-items:stretch}.rowform.head>form:last-child{align-self:flex-start}.rowform.machine{padding:.8rem 0}}@media (min-width:560px){.board{font-size:.88rem}.board th,.board td{padding:.3rem .5rem}.board .wide{display:table-cell}.tl-row{grid-template-columns:7rem 1fr}}@media (min-width:720px){.invite{grid-template-columns:2fr 1.3fr auto;align-items:end}.people li{grid-template-columns:1fr 19rem auto}.who{grid-column:auto}.kpis{grid-template-columns:1.6fr 1fr 1fr 1fr}.kpi.oee,.kpi:last-child{grid-column:auto}.kpi-v{font-size:2.1rem}.andon{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (min-width:900px){.app{grid-template-columns:210px 1fr;min-height:100vh;display:grid}.side{border-top:0;flex-flow:column;justify-content:flex-start;align-items:stretch;gap:1.5rem;height:100vh;padding:1.2rem 1rem;position:sticky;top:0}.side nav{flex:1;order:0;width:auto;display:block}.side nav a{margin-bottom:.3rem;padding:.65rem .9rem;display:block}.brand{border-bottom:3px solid var(--accent);padding:0 .3rem .9rem}.page{width:100%;padding:1.3rem 1.5rem}.factory{font-size:1.6rem}}@media (min-width:1200px){.grid2{grid-template-columns:1fr 1fr}}.donut{flex-wrap:wrap;align-items:center;gap:.6rem 1.4rem;display:flex}.donut svg{flex:none;width:160px;height:160px;transform:rotate(-90deg)}.donut svg text{transform-origin:21px 21px;transform:rotate(90deg)}.donut-total{fill:var(--ink);font-size:4.6px;font-weight:700}.donut .grow{flex:18rem}.sw-c{vertical-align:-1px;border-radius:2px;width:12px;height:12px;margin-right:.5rem;display:inline-block}.stop{background:var(--panel);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-left:5px solid var(--down);border-radius:14px;margin-bottom:.6rem;padding:.8rem .9rem;box-shadow:0 1px 2px #0000000f}.stop.done{border-left-color:var(--run)}.stop h3{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.badge{background:var(--down-dim);color:var(--down-text);border-radius:10px;padding:.05rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.badge.ok{background:var(--run-dim);color:var(--run)}.chips{flex-wrap:wrap;gap:.45rem;margin:.7rem 0 .3rem;display:flex}.chip{min-height:44px;color:var(--ink);background:#fff;border:1px solid #cbd5e1;border-radius:22px;padding:0 1rem}.chip:hover,.chip:focus-visible{border-color:var(--accent);color:var(--accent-dark)}.moreinfo{gap:.5rem;margin-top:.4rem;display:grid}.moreinfo input{font:inherit;border:1px solid #b9b9c0;border-radius:6px;width:100%;min-height:44px;padding:0 .7rem}.stop details summary{cursor:pointer;color:var(--accent-dark);padding:.4rem 0}@keyframes livePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}@keyframes updated{0%{background:#bbf7d0;box-shadow:0 0 #16a34a8c}to{background:var(--run-dim);box-shadow:0 0 0 14px #16a34a00}}.live:not(.off){animation:1.4s ease-out updated}.live:not(.off):before{animation:1.6s ease-in-out infinite livePulse}@media (prefers-reduced-motion:reduce){.live,.live:before{animation:none!important}}.seg-switch{background:#e9edf2;border-radius:10px;gap:.25rem;margin-bottom:.9rem;padding:.25rem;display:inline-flex}.seg-switch a{color:var(--ink-2);border-radius:8px;padding:.45rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none}.seg-switch a[aria-current=page]{color:var(--accent-dark);background:#fff;box-shadow:0 1px 3px #0f172a1f}h2.line-h{align-items:center;gap:.6rem;display:flex}.line{margin-bottom:1.6rem}.line .panel{margin-top:.8rem}details.more>summary{cursor:pointer;color:var(--accent-dark);padding:.5rem 0;font-size:.88rem;font-weight:600}details.more.panel>summary{padding:0}details.more[open].panel>summary{margin-bottom:.8rem}a.ln{color:var(--ink);font-weight:700;text-decoration:none}a.ln:hover{text-decoration:underline}body:has(.tv){background:#0f1115}.tv{color:#f3f4f6;flex-direction:column;gap:clamp(.7rem,1.6vw,1.6rem);min-height:100vh;padding:clamp(.8rem,2vw,2rem);display:flex}.tv-top{border-bottom:3px solid var(--accent);justify-content:space-between;align-items:center;padding-bottom:.8rem;display:flex}.tv-top h1{margin:0;font-size:clamp(1.4rem,3.2vw,3rem)}.tv-top p{color:#9ca3af;margin:0;font-size:clamp(.9rem,1.5vw,1.5rem)}.tv-clock{align-items:center;gap:1rem;font-size:clamp(1.8rem,4.4vw,4.4rem);font-weight:800;display:flex}.tv-clock .live{color:#4ade80;background:0 0;border-color:#166534;font-size:clamp(.8rem,1.4vw,1.4rem)}.tv-clock .live.off{color:#9ca3af;border-color:#4b5563}.tv-kpis{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:clamp(.6rem,1.2vw,1.2rem);display:grid}.tv-k{background:#1a1d24;border-top:6px solid #475569;border-radius:18px;flex-direction:column;padding:clamp(.8rem,1.6vw,1.6rem);display:flex}.tv-k.ok{border-top-color:#16a34a}.tv-k.warn{border-top-color:#d97706}.tv-k.bad{border-top-color:#dc2626}.tv-l{text-transform:uppercase;letter-spacing:.1em;color:#9ca3af;justify-content:space-between;align-items:center;font-size:clamp(.8rem,1.4vw,1.4rem);font-weight:700;display:flex}.dot2{border-radius:50%;width:clamp(12px,1.4vw,22px);height:clamp(12px,1.4vw,22px)}.dot2.ok{background:#22c55e}.dot2.warn{background:#f59e0b}.dot2.bad{background:#ef4444}.tv-v{font-size:clamp(2.2rem,6vw,6rem);font-weight:800;line-height:1.1}.tv-n{color:#9ca3af;font-size:clamp(.85rem,1.5vw,1.5rem)}.tv-n.bad{color:#f87171;font-weight:700}.tv-alerts{background:#3b1219;border:2px solid #7f1d1d;border-radius:14px;padding:.8rem 1.2rem;font-size:clamp(1rem,1.8vw,1.8rem)}.tv-alerts p{margin:.2rem 0}.tv-alerts .warn{color:#fbbf24}.tv-alerts .crit{color:#fca5a5}.tv-lines{flex:1;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-content:start;gap:clamp(.6rem,1.2vw,1.2rem);display:grid}.tv-line{background:#1a1d24;border-left:10px solid #475569;border-radius:18px;padding:clamp(.8rem,1.6vw,1.6rem)}.tv-line.a-RUN{border-left-color:#16a34a}.tv-line.a-IDLE{border-left-color:#d97706}.tv-line.a-DOWN{border-left-color:#dc2626;box-shadow:0 0 0 3px #7f1d1d}.tv-line.a-ONLINE{border-left-color:#2563eb}.tv-line header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.tv-line h2{color:#fff;text-transform:none;letter-spacing:0;margin:0;font-size:clamp(1.2rem,2.4vw,2.4rem)}.pill.big{padding:.2rem .9rem;font-size:clamp(.8rem,1.5vw,1.5rem)}.tv-out{color:#9ca3af;margin-top:.6rem;font-size:clamp(1rem,1.8vw,1.8rem)}.tv-out b{color:#fff;font-size:clamp(2rem,4.6vw,4.6rem)}.tv-bar{background:#2a2f39;border-radius:9px;height:clamp(10px,1.2vw,18px);margin:.4rem 0 .8rem;overflow:hidden}.tv-bar span{background:linear-gradient(90deg,#60a5fa,#2563eb);height:100%;display:block}.tv-line dl{grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0;display:grid}.tv-line dt{color:#9ca3af;font-size:clamp(.75rem,1.2vw,1.2rem)}.tv-line dd{text-align:left;margin:0;font-size:clamp(1.1rem,2.2vw,2.2rem);font-weight:800}.tv-line dd.bad{color:#f87171}.tv-m{flex-wrap:wrap;gap:.4rem;margin:.8rem 0 0;padding:0;list-style:none;display:flex}.tv-m li{color:#d1d5db;background:#262b35;border:1px solid #3a404c;border-radius:8px;padding:.15rem .7rem;font-size:clamp(.75rem,1.2vw,1.2rem)}.tv-m li.p-RUN{color:#86efac;border-color:#166534}.tv-m li.p-IDLE{color:#fcd34d;border-color:#92400e}.tv-m li.p-DOWN{color:#fca5a5;background:#3b1219;border-color:#991b1b}.tv-empty{color:#9ca3af;font-size:1.4rem}.board.lines thead th:first-child{display:table-cell}.board.lines tbody th:first-child{white-space:nowrap;align-items:center;gap:.6rem;display:flex}.board.lines td,.board.lines tbody th{font-size:.95rem}.board.lines thead th{padding-bottom:.5rem}.grid2>.panel,.grid2>section.panel{margin-top:0}.line .panel .chart{max-width:820px}@media (max-width:559px){.board.lines .tgt{display:none}.board.lines td,.board.lines tbody th{padding-left:.15rem;padding-right:.15rem}}.tv-body{flex:1;grid-template-columns:1fr;align-items:start;gap:clamp(.7rem,1.6vw,1.6rem);display:grid}.tv-kpis{grid-template-columns:repeat(2,1fr)}.tv-ic{letter-spacing:0;margin-right:.5rem;font-size:1.3em;display:inline-block}.tv-right{flex-direction:column;gap:clamp(.7rem,1.6vw,1.6rem);min-width:0;display:flex}@media (min-width:1100px){.tv-body{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.tv-lines{grid-template-columns:1fr}}.burger{margin-left:auto;position:static}.burger summary{cursor:pointer;color:#fff;border:1px solid #4a4c52;border-radius:8px;align-items:center;gap:.4rem;min-height:44px;padding:0 1rem;font-weight:600;list-style:none;display:flex}.burger summary::-webkit-details-marker{display:none}.burger summary span{font-size:1.3rem;line-height:1}.burger[open] summary{background:var(--accent);border-color:var(--accent)}.side{position:relative}.side .desk{display:none}.burger nav{z-index:20;border-bottom:3px solid var(--accent);background:#26282c;flex-direction:column;gap:.2rem;width:auto;padding:.6rem;display:flex;position:absolute;top:100%;left:0;right:0;box-shadow:0 12px 24px #00000059}.burger nav a{padding:.85rem 1rem;font-size:1.05rem}.burger nav form button{width:100%;margin-top:.3rem}@media (min-width:900px){.burger{display:none}.side .desk,.side nav.desk{display:block}}.kpis{grid-template-columns:repeat(2,1fr);gap:.55rem}.kpi.oee,.kpi:last-child{grid-column:auto}.kpi{padding:.65rem .8rem}.kpi-v,.oee .kpi-v{font-size:1.55rem}@media (min-width:720px){.kpis{grid-template-columns:repeat(4,1fr)}.kpi-v,.oee .kpi-v{font-size:2rem}}.panel .apq{max-width:28rem;margin:.2rem 0 0}.mlist{margin:0;padding:0;list-style:none}.mlist li{border-top:1px solid var(--line);align-items:center;gap:.7rem;padding:.7rem 0;display:flex}.mlist li:first-child{border-top:0;padding-top:.2rem}.mn{flex-direction:column;flex:1;min-width:0;display:flex}.mn b{font-weight:600}.mn small,.since{color:var(--ink-2);font-size:.8rem}.dotc{background:#94a3b8;border-radius:50%;flex:none;width:10px;height:10px}.c-RUN{background:#16a34a}.c-IDLE{background:#d97706}.c-DOWN{background:#dc2626}.c-ONLINE{background:#2563eb}.kpis+.panel{margin-top:.8rem}.grid2{align-items:start}.axis{font-size:15px}@media (max-width:559px){.axis{font-size:22px}}:root{--side:#fff}.side{color:var(--ink);border-top:0;border-bottom:1px solid var(--line);background:#fff;box-shadow:0 1px 3px #0f172a0a}.brand strong{color:var(--ink)}.brand-t span{color:var(--ink-2)}.logo{background:linear-gradient(135deg,#c43a50,#7d1424)}.burger{order:-1;margin-left:0;margin-right:.2rem}.burger summary{border:1px solid var(--line);background:var(--accent-dim);color:var(--accent-dark)}.burger[open] summary{background:var(--accent);color:#fff;border-color:var(--accent)}.burger summary span{font-size:1.2rem}.burger nav{border:1px solid var(--line);background:#fff;border-top:0;box-shadow:0 12px 24px #0f172a1f}.burger nav a{color:var(--ink);border-radius:8px}.burger nav a[aria-current=page]{background:var(--accent-dim);color:var(--accent-dark);font-weight:700}.side nav a{color:var(--ink-2)}.side nav a:hover{color:var(--ink);background:#f1f5f9}.side nav a[aria-current=page]{background:var(--accent-dim);color:var(--accent-dark);box-shadow:none;font-weight:700}button.ghost{border-color:var(--line);color:var(--ink-2);background:#fff}.brand{border-bottom-color:var(--line)!important}@media (max-width:899px){.side{flex-wrap:nowrap;gap:.5rem}.brand-t span{display:none}.side .brand{margin-right:auto}}@media (min-width:900px){.side{border-bottom:0;border-right:1px solid var(--line);box-shadow:none}}.kpi{background:var(--kd,var(--accent-dim));border:1px solid var(--line);border-top:3px solid var(--k,var(--accent));border-radius:12px}.kpi-l{font:600 .68rem var(--mono);letter-spacing:.06em;text-transform:uppercase}.kpi-v,.oee .kpi-v{font-family:var(--mono);letter-spacing:-.03em;color:var(--kt,var(--ink));font-size:1.6rem;font-weight:800}@media (min-width:720px){.kpi-v,.oee .kpi-v{font-size:2rem}}.kpi .dot{top:.7rem;right:.8rem}.chart linearGradient stop:first-child{stop-color:#dc6a7a}.chart linearGradient stop:last-child{stop-color:#a22236}.k-bar{background:linear-gradient(#dc6a7a,#a22236)}.tv-bar span{background:linear-gradient(90deg,#dc6a7a,#a22236)}.chart g path[fill=\#93c5fd]{fill:#e8a3ad}@keyframes flashnum{0%{background:#fde68a;border-radius:6px;box-shadow:0 0 0 6px #fde68a}to{background:0 0;box-shadow:0 0 0 6px #0000}}.flash{animation:1.6s ease-out flashnum}@media (prefers-reduced-motion:reduce){.flash{animation:none}}.cele{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:pointer;background:#14080cb8;place-items:center;animation:.35s ease-out celeIn;display:grid;position:fixed;inset:0}.cele.out{opacity:0;transition:opacity .4s}.cele-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.cele-card{z-index:2;text-align:center;border-top:8px solid var(--accent);background:#fff;border-radius:24px;max-width:min(92vw,60rem);padding:clamp(1.4rem,4vw,3rem) clamp(1.4rem,5vw,4rem);animation:.7s cubic-bezier(.2,1.6,.4,1) celePop;position:relative;box-shadow:0 30px 80px #00000073}.cele-emoji{font-size:clamp(3rem,9vw,7rem);line-height:1;animation:1s ease-in-out infinite celeBounce}.cele-title{letter-spacing:-.02em;color:var(--accent-dark);margin-top:.6rem;font-size:clamp(1.5rem,4.4vw,3.6rem);font-weight:800;line-height:1.1}.cele-detail{font-family:var(--mono);color:var(--ink-2);margin-top:.5rem;font-size:clamp(1rem,2.2vw,1.8rem)}.cele-strip{z-index:1;white-space:nowrap;background:var(--accent);color:#fde68a;font:800 clamp(1rem, 2.4vw, 2rem) var(--font);letter-spacing:.08em;padding:.5rem 0;position:absolute;left:0;right:0;overflow:hidden}.cele-strip.top{top:0}.cele-strip.bottom{bottom:0}.cele-track{animation:12s linear infinite celeMarquee;display:inline-block}.cele-strip.bottom .cele-track{animation-direction:reverse}@keyframes celeIn{0%{opacity:0}}@keyframes celePop{0%{opacity:0;transform:scale(.4)}}@keyframes celeBounce{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-12px)rotate(6deg)}}@keyframes celeMarquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.cele,.cele-card,.cele-emoji,.cele-track{animation:none}}.setup .su-steps{grid-template-columns:1fr;gap:.5rem;margin:0 0 .9rem;display:grid}.su-step{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;align-items:center;gap:.7rem;padding:.65rem .85rem;text-decoration:none;display:flex;box-shadow:0 1px 3px #0f172a0d}.su-step:hover,.su-step:focus-visible{border-color:var(--accent)}.su-mark{border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:.9rem;font-weight:800;display:grid}.su-step.ok .su-mark{background:var(--run-dim);color:var(--run);border:1px solid #bbf7d0}.su-step.todo{background:var(--idle-dim);border-color:#fde68a}.su-step.todo .su-mark{color:var(--idle-text);background:#fff;border:1px solid #fde68a}.su-st{flex-direction:column;min-width:0;display:flex}.su-st b{font-size:.92rem}.su-st small{color:var(--ink-2);font-size:.78rem}.su-sec{padding:1rem;scroll-margin-top:.8rem}.su-sh{border-bottom:1px solid var(--line);align-items:flex-start;gap:.75rem;margin-bottom:.9rem;padding-bottom:.8rem;display:flex}.su-n{background:var(--accent);color:#fff;border-radius:9px;flex:none;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.su-sh h2{text-transform:none;letter-spacing:0;color:var(--ink);margin:0;font-size:1.1rem}.su-group{border:1px solid var(--line);border-left:4px solid var(--accent);background:#fafbfc;border-radius:12px;margin-bottom:1rem;padding:.7rem}.su-gh{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.su-gh h3{color:var(--ink-2);font-size:1rem}.su-rename{flex:14rem;gap:.5rem;display:flex}.su-rename input{flex:1;font-weight:700}.su-count{color:var(--ink-2);font:700 .72rem var(--mono);letter-spacing:.04em;background:#e9edf2;border-radius:999px;padding:.1rem .6rem}.su-mach,.su-shift{background:var(--panel);border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr;align-items:end;gap:.6rem;margin-top:.5rem;padding:.75rem;display:grid}.su-f{flex-direction:column;gap:.25rem;min-width:0;display:flex}.su-f>span{font:700 .68rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.su-f input:not([type=checkbox]),.su-f select{width:100%}.su-num input{text-align:right}.su-chk{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:10px;align-items:center;gap:.55rem;min-height:44px;padding:0 .8rem;font-size:.9rem;display:flex}.su-chk:has(input:checked){background:var(--accent-dim);color:var(--accent-dark);border-color:#ecc5cb;font-weight:600}.su-chk input{width:20px;height:20px;accent-color:var(--accent)}.su-add{background:0 0;border:1px dashed #94a3b8}.su-adders{margin-top:.4rem}.su-addline{margin-top:.6rem}.su-row{align-items:end;gap:.5rem;margin-top:.5rem;display:grid}.su-row .su-shift{margin-top:0}.su-row>form:last-child{justify-self:start}.su-empty{margin:.6rem 0 0}.su-devs{gap:.6rem;margin:0 0 .6rem;padding:0;list-style:none;display:grid}.su-dev{border:1px solid var(--line);background:var(--panel);border-left:5px solid #16a34a;border-radius:12px;padding:.8rem .9rem}.su-dev.s-disabled{border-left-color:var(--idle)}.su-dev.s-revoked{background:#f8fafc;border-left-color:#94a3b8}.su-dh{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;display:flex}.su-meta{flex-wrap:wrap;gap:.2rem .9rem;margin-top:.2rem;display:flex}.su-sig:before{content:"";background:#94a3b8;border-radius:50%;width:8px;height:8px;margin-right:.35rem;display:inline-block}.su-sig.up{color:var(--run)}.su-sig.up:before{background:#16a34a}.su-sig.stale{color:var(--down-text)}.su-sig.stale:before{background:var(--down)}.su-acts{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.6rem;display:flex}.su-acts form{display:flex}.su-more{flex-basis:100%}.su-more summary{cursor:pointer;color:var(--accent-dark);padding:.4rem 0;font-size:.88rem;font-weight:600}.su-help{margin-top:.8rem}.su-help p{margin-top:.2rem}.su-keep{margin-top:.8rem}.su-settings{grid-template-columns:1fr}@media (min-width:560px){.setup .su-steps{grid-template-columns:repeat(2,1fr)}.su-mach{grid-template-columns:1fr 1fr}.su-mach .su-name{grid-column:1/-1}.su-shift{grid-template-columns:1fr 1fr}.su-shift .su-name{grid-column:1/-1}}@media (min-width:900px){.setup .su-steps{grid-template-columns:repeat(4,1fr)}.su-mach{grid-template-columns:minmax(10rem,2fr) minmax(8rem,1.2fr) 8.5rem auto auto}.su-mach .su-name{grid-column:auto}.su-addline{grid-template-columns:minmax(10rem,2fr) auto}.su-settings{grid-template-columns:minmax(10rem,2fr) 12rem auto}.su-reg{grid-template-columns:minmax(10rem,2fr) minmax(8rem,1.2fr) minmax(8rem,1fr) auto}.su-shift{grid-template-columns:minmax(10rem,2fr) 8rem 8rem auto}.su-shift .su-name{grid-column:auto}.su-row{grid-template-columns:1fr auto}}.su-rename{min-width:0}.su-rename input{flex:1 1 0;width:auto;min-width:0}@media (max-width:559px){.su-rename{flex:100%}.su-gh .su-count{margin-right:auto}}.su-t1{--k:#a22236;--kd:#fbeef0}.su-t2{--k:#2563eb;--kd:#eff6ff}.su-t3{--k:#16a34a;--kd:#f0fdf4}.su-t4{--k:#7c3aed;--kd:#f5f3ff}.su-sec{background:var(--kd);border-color:var(--kd);border-top:4px solid var(--k);box-shadow:0 1px 3px #0f172a0f}.su-sec .su-n{background:var(--k)}.su-sec .su-sh{border-bottom-color:color-mix(in srgb, var(--k) 22%, transparent)}.su-sec .su-sh h2{color:var(--k)}.su-sec .su-group{border-left-color:var(--k);background:#fff}.su-sec .su-add{border-color:var(--k);background:#ffffffa6}.su-sec .su-dev{background:#fff}.su-sec .su-dev.s-revoked{background:#f1f5f9}.su-sec .su-help summary,.su-sec .su-more summary{color:var(--k)}.su-sec button:not(.quiet){background:var(--k)}.su-step{border-top:4px solid var(--k);background:var(--kd);border-color:var(--kd);border-top-color:var(--k)}.su-step.todo{background:var(--idle-dim);border-color:#fde68a;border-top-color:var(--idle)}.su-sec{padding:0}.su-sec+.su-sec{margin-top:.7rem}.su-sum{cursor:pointer;align-items:center;gap:.75rem;min-height:64px;padding:.9rem 1rem;list-style:none;display:flex}.su-sum::-webkit-details-marker{display:none}.su-sumt{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.su-sumt h2{margin:0}.su-status{color:var(--ink-2);font-size:.82rem}.su-status.ok{color:var(--run)}.su-status.todo{color:var(--idle-text);font-weight:600}.su-chev{border:1px solid var(--k);color:var(--k);background:#fff;border-radius:999px;flex:none;align-items:center;padding:.3rem .75rem;font-size:.8rem;font-weight:700;display:inline-flex}.su-chev:after{content:"Open  ▾";white-space:pre}details[open]>.su-sum .su-chev:after{content:"Close  ▴"}details[open]>.su-sum .su-chev{background:var(--k);color:#fff}.su-body{border-top:1px solid color-mix(in srgb, var(--k) 22%, transparent);padding:0 1rem 1rem}.su-intro{margin:.8rem 0 .2rem}.su-sum:focus-visible{outline:3px solid var(--k);outline-offset:-3px;border-radius:12px}.su-tabs{gap:.4rem;margin:.2rem 0 .8rem;padding-bottom:.2rem;display:flex;overflow-x:auto}.su-tab{border:2px solid var(--k);color:var(--k);white-space:nowrap;background:#fff;border-radius:999px;flex:none;align-items:center;gap:.4rem;padding:.6rem .9rem;font-weight:700;text-decoration:none;display:inline-flex}.su-tab.on{background:var(--k);color:#fff}.su-dot{font-size:.75rem}.su-dot.todo{color:#b45309}.su-tab.on .su-dot{color:#fff}.su-sec[hidden],.su-chev{display:none}.su-sum{cursor:default;pointer-events:none;min-height:0}@media (max-width:559px){.su-tabs{grid-template-columns:1fr 1fr;display:grid;overflow:visible}.su-tab{justify-content:center}.su-mach,.su-shift{grid-template-columns:1fr 1fr}.su-mach>*,.su-shift>*{grid-column:1/-1}.su-mach>.su-num,.su-mach>.su-chk,.su-shift>.su-f:not(.su-name){grid-column:auto}.su-mach>.su-chk{gap:.4rem;padding:0 .5rem;font-size:.8rem;line-height:1.15}}.pw{display:block;position:relative}.pw input{width:100%;padding-right:3rem}.pw-eye{width:40px;height:40px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:.25rem;transform:translateY(-50%)}.pw-eye:hover,.pw-eye[aria-pressed=true]{color:var(--accent)}.pw-eye{width:44px;height:44px;min-height:0;padding:0;right:0}.pw-eye svg{flex:none;width:24px;height:24px}.su-adders{gap:.5rem;margin:.8rem 0;display:grid}.su-adders>.su-addbox>summary{cursor:pointer;color:var(--accent);border:2px dashed var(--accent);background:#fff;border-radius:12px;padding:.7rem .9rem;font-weight:700;list-style:none}.su-addbox[open]>summary{border-style:solid;margin-bottom:.5rem}.su-addbox>summary::-webkit-details-marker{display:none}.su-gsum::-webkit-details-marker{display:none}.su-mrow>summary::-webkit-details-marker{display:none}.su-line>.su-gsum{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.3rem .6rem;min-height:44px;list-style:none;display:flex}.su-gname{flex:8rem;font-weight:700}.su-gsum:after{content:"▾";color:var(--ink-2)}.su-line[open]>.su-gsum:after{content:"▴"}.su-mrow{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-top:.4rem}.su-mrow>summary{cursor:pointer;align-items:center;gap:.6rem;min-height:48px;padding:.55rem .75rem;list-style:none;display:flex}.su-mn{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.su-mt{color:var(--ink-2);font-size:.85rem}.su-badge{background:var(--accent-dim);color:var(--accent-dark);border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.su-edit{color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:.2rem .65rem;font-size:.8rem;font-weight:700}.su-mrow[open]>summary .su-edit{background:var(--accent);color:#fff}.su-mrow>.su-mach{margin:0 .5rem .5rem}.kpis2{margin-top:.6rem}.kpis2 .kpi-v{font-size:2.1rem}.week{grid-template-columns:repeat(7,1fr);align-items:end;gap:.4rem;display:grid}.wk{flex-direction:column;align-items:center;gap:.15rem;min-width:0;display:flex}.wk-bars{justify-content:center;align-items:flex-end;gap:3px;width:100%;height:150px;display:flex;position:relative}.wk-plan,.wk-act{border-radius:5px 5px 0 0;width:38%;max-width:26px;min-height:2px;display:block}.wk-plan{background:#dbe2ea}.wk-act{background:linear-gradient(#60a5fa,#2563eb)}.wk-act.ok{background:linear-gradient(#4ade80,#16a34a)}.wk-l{color:var(--ink-2);font-size:.75rem;font-weight:600}.wk-v{color:var(--ink-2);font-size:.72rem}.lg-chips{flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem;display:flex}.lg-chip{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:999px;align-items:center;min-height:36px;padding:.4rem .8rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.lg-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.lg{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}@media (min-width:700px){.lg{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1100px){.lg{grid-template-columns:repeat(6,minmax(0,1fr))}}.lt{border:2px solid;border-radius:12px;flex-direction:column;gap:.15rem;min-height:104px;padding:.7rem .75rem;text-decoration:none;display:flex}.lt b{font-size:1rem}.lt-s{font-size:.8rem}.lt-v{margin-top:auto;font-size:1.5rem;font-weight:700}.lt-bar{background:#0000001f;border-radius:3px;height:6px;overflow:hidden}.lt-bar i{background:currentColor;height:100%;display:block}.lt-run{color:#27500a;background:#eaf3de;border-color:#3b6d11}.lt-idle{color:#633806;background:#faeeda;border-color:#854f0b}.lt-down{color:#791f1f;background:#fcebeb;border-color:#a32d2d;animation:1.1s ease-in-out infinite lt-blink}.lt-off{color:#444441;background:#f1efe8;border-style:dashed;border-color:#888780}@keyframes lt-blink{0%,to{background:#fcebeb;border-color:#a32d2d}50%{background:#f7c1c1;border-color:#e24b4a}}@media (prefers-reduced-motion:reduce){.lt-down{animation:none}}.lg-back{color:var(--accent);margin:0 0 .6rem;padding:.5rem 0;font-weight:700;text-decoration:none;display:inline-block}.fl-top{flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem;display:flex}.lg-chip.bad{color:#791f1f;background:#fcebeb;border-color:#a32d2d}.fl-line{border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:.6rem;padding:.7rem}.fl-h{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem;display:flex}.fl-h a{color:var(--ink);text-decoration:none}.fl-row{align-items:stretch;padding-bottom:.2rem;display:flex;overflow-x:auto}.fl-cell{flex:none;align-items:stretch;display:flex}.fl-arrow{color:var(--ink-2);align-items:center;padding:0 .25rem;font-size:1.1rem;display:flex}.fl-m{border:2px solid;border-radius:10px;flex-direction:column;gap:.1rem;width:7.2rem;min-height:4.6rem;padding:.5rem .55rem;font-size:.78rem;line-height:1.25;text-decoration:none;display:flex}.fl-m b{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.fl-m.lt-run{color:#27500a;background:#eaf3de;border-color:#3b6d11}.fl-m.lt-idle{color:#633806;background:#faeeda;border-color:#854f0b}.fl-m.lt-down{color:#791f1f;background:#fcebeb;border-color:#a32d2d;animation:1.1s ease-in-out infinite lt-blink}.fl-m.lt-off{color:#444441;background:#f1efe8;border-style:dashed;border-color:#888780}.fl-out{box-shadow:0 0 0 2px #fff,0 0 0 4px #3b6d11}.su-move{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 .5rem .6rem;display:flex}.su-move .muted{flex:100%;font-size:.8rem}.su-t5{--k:#0f766e;--kd:#f0fdfa}.me-svg{border:1px solid var(--line);touch-action:none;background:#fff;border-radius:12px;width:100%;height:auto;display:block}.me-belt,.mp-belt{stroke:#b4b2a9;stroke-width:1.2px;stroke-linecap:round;stroke-linejoin:round;fill:none}.me-m{cursor:grab}.me-m.on{cursor:grabbing}.me-m rect{fill:#eaf3de;stroke:#3b6d11;stroke-width:.4px}.me-m.on rect{fill:#c0dd97}.me-m text{fill:#444441;pointer-events:none;font-size:2.2px}.me-btns{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.mp-svg{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;height:auto;display:block}.mp-m text{pointer-events:none;font-size:2.6px;font-weight:700}.mp-run rect{fill:#eaf3de;stroke:#3b6d11}.mp-idle rect{fill:#faeeda;stroke:#854f0b}.mp-down rect{fill:#fcebeb;stroke:#a32d2d;stroke-width:.9px;animation:1.1s ease-in-out infinite mp-blink}.mp-off rect{fill:#f1efe8;stroke:#888780;stroke-dasharray:1.2 .8}.mp-out{fill:#27500a}@keyframes mp-blink{0%,to{fill:#fcebeb}50%{fill:#f09595}}@media (prefers-reduced-motion:reduce){.mp-down rect{animation:none}}.tv-body{align-content:start}.tv-left{flex-direction:column;gap:clamp(.7rem,1.6vw,1.6rem);min-width:0;display:flex}.mp-line{fill:#3d3d3a;font-size:2.8px;font-weight:700}.tv .mp-svg{background:#ffffff0a;border-color:#33363d}.tv .me-floor{fill:none;stroke:#4b4f58}.cc{color:#cfe8ff;background:radial-gradient(120% 90% at 50% 0,#0f2a4a 0%,#08121f 60%,#050b14 100%);border:1px solid #1e4976;border-radius:16px;padding:.8rem;position:relative;box-shadow:inset 0 0 0 1px #38bdf81f,0 0 28px #0ea5e91f}.cc-bar{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#7dd3fc;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.6rem;font-size:.72rem;display:flex}.cc-title{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.5rem;min-width:0;display:inline-flex;overflow:hidden}.cc-time{color:#e0f2fe;font-size:1rem}.cc-pulse{background:#34d399;border-radius:50%;flex:none;width:8px;height:8px;animation:1.8s ease-in-out infinite cc-pulse;box-shadow:0 0 8px #34d399}@keyframes cc-pulse{0%,to{opacity:1}50%{opacity:.35}}.cc-stats{flex-wrap:wrap;gap:.45rem;margin-bottom:.7rem;display:flex}.cc-stat{color:#93c5fd;background:#0e264299;border:1px solid #1e4976;border-radius:8px;padding:.35rem .75rem;font-size:.8rem}.cc-stat b{font:700 1.05rem var(--mono);color:#e0f2fe;margin-right:.25rem}.cc-stat.bad{color:#fca5a5;background:#7f1d1d59;border-color:#ef4444;box-shadow:0 0 12px #ef444459}.cc-stat.bad b{color:#fecaca}.cc-stat.warn{color:#fcd34d;border-color:#f59e0b}.cc-stat.warn b{color:#fde68a}.cc-note{color:#7da2c8;margin:.6rem 0 0;font-size:.75rem}.mp-svg{background:0 0;border:0;border-radius:10px}.mp-bg{fill:none}.mp-gridline{stroke:#123456;stroke-width:.15px}.me-floor{fill:none;stroke:#2563a8;stroke-width:.3px;stroke-dasharray:none}.mp-corner{stroke:#38bdf8;stroke-width:.5px;stroke-linecap:round}.mp-belt{stroke:#153e75;stroke-width:1.4px}.mp-flow{fill:none;stroke:#38bdf8;stroke-width:.45px;stroke-dasharray:1.2 2.4;stroke-linecap:round;animation:1.4s linear infinite mp-flow}@keyframes mp-flow{to{stroke-dashoffset:-3.6px}}.mp-line{fill:#7dd3fc;font:700 2.5px var(--mono);letter-spacing:.25px;text-transform:uppercase}.mp-m rect{stroke-width:.6px}.mp-m text{font:700 2.4px var(--mono)}.mp-run rect{fill:#06283d;stroke:#22d3ee;filter:drop-shadow(0 0 1.1px #22d3ee)}.mp-idle rect{fill:#2a1f05;stroke:#fbbf24;filter:drop-shadow(0 0 1.1px #fbbf24)}.mp-idle text{fill:#fcd34d}.mp-down rect{fill:#3a0d12;stroke:#ef4444;stroke-width:.9px;filter:drop-shadow(0 0 1.6px #ef4444);animation:1s ease-in-out infinite mp-alarm}.mp-down text{fill:#fca5a5}.mp-off rect{fill:#0e1726;stroke:#475569;stroke-dasharray:1.2 .8;filter:none;animation:none}.mp-off text{fill:#94a3b8}.mp-out{fill:#a7f3d0;filter:drop-shadow(0 0 .8px #34d399)}@keyframes mp-alarm{0%,to{fill:#3a0d12}50%{fill:#7f1d1d}}@keyframes mp-breathe{0%,to{opacity:1}50%{opacity:.62}}@keyframes mp-idleblink{0%,to{fill:#2a1f05}50%{fill:#5b4208}}.mp-run rect{animation:3.2s ease-in-out infinite mp-breathe}.mp-on rect{animation:4.5s ease-in-out infinite mp-breathe}.mp-idle rect{animation:1.6s ease-in-out infinite mp-idleblink}@keyframes mp-dot{0%,to{opacity:1}50%{opacity:.3}}.mp-out{animation:1.2s ease-in-out infinite mp-dot}.mp-m .mp-code{font:800 2.3px var(--mono)}.mp-m .mp-val{font:600 1.7px var(--mono);opacity:.85}@media (prefers-reduced-motion:reduce){.mp-flow{animation:none}}.tv .mp-line,.tv .mp-m text{fill:unset}.tv .mp-line{fill:#7dd3fc}.tv .mp-m.mp-run text{fill:#cfe8ff}.tv .mp-m.mp-idle text{fill:#fcd34d}.tv .mp-m.mp-down text{fill:#fca5a5}.tv .mp-m.mp-off text{fill:#94a3b8}.tv .mp-svg{background:0 0;border:0}.tv .me-floor{stroke:#2563a8}.tv .mp-belt{stroke:#153e75}.tv-map{background:radial-gradient(120% 90% at 50% 0,#0f2a4a 0%,#08121f 60%,#050b14 100%);border:1px solid #1e4976;border-radius:16px;padding:.6rem;box-shadow:0 0 24px #0ea5e91f}.mp-cap{font:700 2.4px var(--mono);paint-order:stroke;stroke:#050b14;stroke-width:.9px;stroke-linejoin:round;pointer-events:none}.mp-cap-down{fill:#fca5a5}.mp-cap-idle{fill:#fcd34d}.mp-cap-off{fill:#94a3b8}.demo-tag{color:#64748b;font:700 .62rem var(--mono);letter-spacing:.08em;text-transform:uppercase;vertical-align:middle;border:1px dashed #94a3b8;border-radius:6px;margin-left:.45rem;padding:.05rem .45rem;display:inline-block}.tv .demo-tag,.cc .demo-tag{color:#8fb0d4;border-color:#5b7ea6}.demo-bar{color:var(--ink-2);background:#f8fafc;border:1px dashed #94a3b8;border-radius:8px;margin:0 0 .7rem;padding:.45rem .75rem;font-size:.82rem}.demo-bar a{margin-left:.4rem;font-weight:700}.su-demo{background:#fff;border:1px dashed #94a3b8;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-top:.8rem;padding:.7rem .8rem;display:flex}.mp-belt-off{stroke:#2b3646;stroke-width:1.4px;stroke-linecap:round}.lt-on,.fl-m.lt-on{color:#0c4a6e;background:#e0f2fe;border-color:#0369a1}.mp-on rect{fill:#0b2140;stroke:#60a5fa;filter:drop-shadow(0 0 1px #60a5fa)}.mp-on text{fill:#bfdbfe}.apq-mini{gap:.9rem;margin:.6rem 0 0;display:flex}.apq-mini>div{text-align:center}.apq-mini dd{margin:0}.apq-mini dt{color:var(--muted,#6b7280);margin-top:.15rem;font-size:.66rem}.panel .apq{max-width:44rem;margin-inline:auto}.panel .apq .ring{width:124px;height:124px}.panel .apq .ring-v{font-size:1.3rem}.panel .apq dt{font-size:.85rem;font-weight:600}@media (min-width:720px){.kpis.kpis6{grid-template-columns:repeat(3,1fr)}.kpis.kpis6 .kpi-v{font-size:2.1rem}}.cc{max-width:860px;margin-inline:auto}.tv .cc{max-width:none}.mp-run text{fill:#e0f2fe}.mp-m .mp-val{fill:#7dd3fc}.mp-idle .mp-val{fill:#fde68a}.mp-down .mp-val{fill:#fecaca}.mp-off .mp-val{fill:#94a3b8}.mp-on .mp-val{fill:#bfdbfe}.kpi-l{align-items:center;gap:.65rem;display:flex}.kpi-ic{color:#fff;background:linear-gradient(145deg, color-mix(in srgb, var(--k,var(--accent)) 82%, #fff), var(--k,var(--accent)) 55%, color-mix(in srgb, var(--k,var(--accent)) 78%, #000));width:42px;height:42px;box-shadow:0 3px 8px color-mix(in srgb, var(--k,var(--accent)) 38%, transparent), inset 0 1px 0 #ffffff59;border-radius:13px;flex:none;place-items:center;display:inline-grid}.kpi-ic svg{width:26px;height:26px}.gr-row{margin-top:.6rem}.gr-n{margin:.5rem 0 0;font-size:.78rem}.lob-r{align-items:center;gap:.6rem;margin:.55rem 0;font-size:.85rem;display:flex}.lob-n{width:4.6rem;color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;flex:none;overflow:hidden}.lob-t{background:#eef1f6;border-radius:8px;flex:1;height:12px;position:relative}.lob-f{border-radius:8px;height:100%;display:block}.lob-f.ok{background:#16a34a}.lob-f.mid{background:#d97706}.lob-f.low{background:#dc2626}.lob-m{border-left:2px dashed #64748b;position:absolute;top:-4px;bottom:-4px}.lob-v{text-align:right;width:3.6rem;font-family:var(--mono)}.sd{flex-wrap:wrap;align-items:center;gap:1.2rem;display:flex}.sd-svg{flex:none;width:150px;height:150px}.sd-n{font:800 24px var(--mono);fill:var(--ink)}.sd-l{font:500 10px var(--sans,system-ui);fill:#64748b}.sd-lg{flex:1;min-width:9rem;margin:0;padding:0;list-style:none}.sd-lg li{align-items:center;gap:.55rem;padding:.25rem 0;font-size:.9rem;display:flex}.sd-lg i{border-radius:50%;width:10px;height:10px;display:block}.sd-lg b{font-family:var(--mono);margin-left:auto}.rt{width:100%;height:auto;max-height:190px;display:block}.rt-t{font:500 9px var(--mono);fill:#6b7280}
