/* Generated by scripts/import_v20.py from the v20 design pages. Edit the design pages or
   override in app.css; this file is overwritten on the next import. */

/* ---- Home ---- */
.pg-home .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-home .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-home button{font:inherit;color:inherit;cursor:pointer}
.pg-home .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-home .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-home .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-home .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-home .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-home .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-home .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-home .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-home .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-home .btn:hover{background:var(--s3)}
.pg-home .btn:active{transform:scale(0.97)}
.pg-home .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-home .btn-p:hover{background:#fff}
.pg-home .btn-p:active{transform:scale(0.97)}
.pg-home .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-home .kv:first-of-type{border-top:0}
.pg-home .kv .k{color:var(--ink3)}
.pg-home .kv b{font-weight:600;text-align:right}
.pg-home .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-home *,.pg-home *::before,.pg-home *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-home /* home */
.h-sec{display:flex;align-items:baseline;gap:12px;margin:0 0 10px}
.pg-home .h-sec h2{margin:0;font-size:13px;font-weight:600;color:var(--ink2)}
.pg-home .h-sec span{font-size:12px;color:var(--ink3)}
.pg-home .h-modes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:24px}
.pg-home .h-mc{position:relative;text-align:left;background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:14px 14px 12px;overflow:hidden;transition:border-color 200ms ease,background-color 200ms ease,transform 160ms var(--ease);animation:rise 460ms var(--ease) both}
.pg-home .h-mc:hover{background:var(--s2);transform:translateY(-2px)}
.pg-home .h-mc:active{transform:scale(0.98)}
.pg-home .h-mc::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--c);opacity:0.55;transition:opacity 200ms ease,height 260ms var(--ease)}
.pg-home .h-mc.on{border-color:var(--c);background:var(--s2)}
.pg-home .h-mc.on::before{opacity:1;height:4px}
.pg-home .h-mc b{display:block;font-weight:600;font-size:14px;line-height:1.25}
.pg-home .h-mc small{display:block;color:var(--ink3);font-size:12px;margin-top:4px;min-height:34px}
.pg-home .h-mc .sf{display:block;font-size:11px;font-weight:600;color:var(--ink2);margin-top:8px}
.pg-home .h-mc .tick{position:absolute;right:10px;top:12px;width:18px;height:18px;border-radius:50%;background:var(--c);color:#0B0F14;display:grid;place-items:center;animation:pop 300ms var(--ease) both}
@keyframes pop{from{opacity:0;transform:scale(0.5)}to{opacity:1;transform:none}}
.pg-home .h-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.pg-home .h-sys{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pg-home .h-sc{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;width:100%;background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:12px 14px;transition:background-color 180ms ease,border-color 180ms ease,transform 160ms var(--ease);animation:rise 500ms var(--ease) both}
.pg-home .h-sc:hover{background:var(--s2);border-color:#33435A;transform:translateY(-2px)}
.pg-home .h-sc:active{transform:scale(0.985)}
.pg-home .h-sc b{display:block;font-weight:600;font-size:14px}
.pg-home .h-sc .dt{display:block;color:var(--ink3);font-size:12px}
.pg-home .h-sc .tech{display:block;color:var(--ink2);font-size:12px;margin-top:4px;padding-top:4px;border-top:1px dashed var(--line)}
.pg-home .h-sc .rt{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.pg-home .h-sc time{color:var(--ink3);font-size:12px}
.pg-home .h-sc .to{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--ink2);white-space:nowrap}
.pg-home .h-sc .to .ic{width:13px;height:13px;transition:transform 220ms var(--ease)}
.pg-home .h-sc:hover .to .ic{transform:translateX(3px)}
.pg-home .h-sc:hover .to{color:var(--ink)}
.pg-home .chk{position:relative;width:24px;height:24px}
.pg-home .chk .sp{position:absolute;inset:4px;border-radius:50%;border:2px solid rgba(108,184,255,0.25);border-top-color:var(--sky);animation:rot 700ms linear infinite,fadeOut 1ms linear both;animation-delay:0ms,var(--d)}
.pg-home .chk .okc{position:absolute;inset:0;border-radius:50%;background:rgba(94,211,176,0.16);color:var(--ok);display:grid;place-items:center;opacity:0;transform:scale(0.8);animation:popIn 380ms var(--ease) both;animation-delay:var(--d)}
@keyframes rot{to{transform:rotate(360deg)}}
@keyframes fadeOut{to{opacity:0}}
@keyframes popIn{to{opacity:1;transform:none}}
.pg-home .h-mods{display:flex;flex-direction:column;gap:8px}
.pg-home .h-mb{display:grid;grid-template-columns:36px minmax(0,1fr) 16px;gap:12px;align-items:center;text-align:left;width:100%;background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:12px 14px;transition:background-color 180ms ease,transform 160ms var(--ease);animation:rise 520ms var(--ease) both}
.pg-home .h-mb:hover{background:var(--s2);transform:translateX(2px)}
.pg-home .h-mb:active{transform:scale(0.985)}
.pg-home .h-mb .mi{width:36px;height:36px;border-radius:10px;background:var(--s3);display:grid;place-items:center;color:var(--sky)}
.pg-home .h-mb .mi .ic{width:20px;height:20px}
.pg-home .h-mb b{display:block;font-weight:600}
.pg-home .h-mb small{display:block;color:var(--ink3);font-size:12px}
.pg-home .h-mb .ar{color:var(--ink3);transition:transform 200ms var(--ease)}
.pg-home .h-mb:hover .ar{transform:translateX(3px);color:var(--ink)}
.pg-home .h-log{display:flex;flex-direction:column}
.pg-home .h-le{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:8px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2)}
.pg-home .h-le:first-child{border-top:0}
.pg-home .h-le time{color:var(--ink3)}

.pg-home /* operator view */
.op-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:20px 22px;margin-bottom:18px;position:relative;overflow:hidden;animation:rise 420ms var(--ease) both}
.pg-home .op-hero::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--c)}
.pg-home .op-big{display:flex;align-items:center;gap:16px}
.pg-home .op-orb{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--cb);color:var(--c)}
.pg-home .op-orb .ic{width:28px;height:28px;stroke-width:2.2}
.pg-home .op-big h1{margin:0;font-size:28px;line-height:1.1;font-weight:700}
.pg-home .op-big p{margin:4px 0 0;color:var(--ink2);font-size:15px}
.pg-home .op-cnt{display:flex;gap:10px;flex-wrap:wrap}
.pg-home .op-cnt span{display:flex;align-items:center;gap:8px;background:var(--s2);border-radius:10px;padding:8px 12px;font-size:13px;color:var(--ink2)}
.pg-home .op-cnt b{font-size:20px;color:var(--ink);font-weight:700}
.pg-home .op-acts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}
.pg-home .op-act{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;min-height:96px;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--s1);transition:background-color 160ms ease,transform 140ms var(--ease),border-color 160ms ease;animation:rise 460ms var(--ease) both}
.pg-home .op-act:hover{background:var(--s2);border-color:#33435A;transform:translateY(-2px)}
.pg-home .op-act:active{transform:scale(0.98)}
.pg-home .op-act:disabled{opacity:0.55;cursor:not-allowed;transform:none}
.pg-home .op-act .ai{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--s3);color:var(--c)}
.pg-home .op-act .ai .ic{width:20px;height:20px}
.pg-home .op-act b{font-size:16px;font-weight:600}
.pg-home .op-act small{color:var(--ink3);font-size:12px}
.pg-home .op-act.pri{background:var(--ink);color:#0B0F14;border-color:var(--ink)}
.pg-home .op-act.pri small{color:#3A4656}
.pg-home .op-act.pri .ai{background:#0B0F14;color:var(--ink)}
.pg-home .op-act.pri:hover{background:#fff}
.pg-home .op-bar{height:8px;border-radius:999px;background:var(--s3);overflow:hidden;margin:4px 0 18px}
.pg-home .op-bar i{display:block;height:100%;background:var(--teal);border-radius:999px;transition:width 400ms var(--ease)}
.pg-home .op-run{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:rgba(60,198,196,0.1);border:1px solid rgba(60,198,196,0.35);border-radius:12px;padding:12px 16px;margin-bottom:6px;color:var(--ink)}
.pg-home .op-run b{font-weight:600}
.pg-home .op-run small{color:var(--ink2)}
.pg-home .op-grp{margin-bottom:22px}
.pg-home .op-gh{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.pg-home .op-gh h2{margin:0;font-size:16px;font-weight:600}
.pg-home .op-gh button{margin-left:auto;border:0;background:transparent;color:var(--sky);font-weight:600;font-size:13px;display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:6px}
.pg-home .op-gh button:hover{background:var(--s2)}
.pg-home .op-gh .gs{font-size:12px;color:var(--ink3)}
.pg-home .op-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.pg-home .op-card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:14px 16px 12px;display:flex;flex-direction:column;gap:10px;animation:rise 480ms var(--ease) both;transition:border-color 200ms ease}
.pg-home .op-card.warn{border-color:rgba(242,179,61,0.55)}
.pg-home .op-card.fault{border-color:rgba(255,111,97,0.65)}
.pg-home .op-card.busy{border-color:rgba(60,198,196,0.6)}
.pg-home .op-ch{display:flex;align-items:center;gap:10px}
.pg-home .op-ch b{font-size:15px;font-weight:600}
.pg-home .op-pill{margin-left:auto;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;color:#0B0F14;white-space:nowrap}
.pg-home .op-comps{display:flex;flex-direction:column;gap:2px}
.pg-home .op-comp{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:7px 8px;transition:background-color 140ms ease}
.pg-home .op-comp:hover{background:var(--s2)}
.pg-home .op-comp .sd{width:10px;height:10px;border-radius:50%}
.pg-home .op-comp span{font-size:13px}
.pg-home .op-comp em{font-style:normal;font-size:12px;color:var(--ink3)}
.pg-home .op-cf{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:10px}
.pg-home .op-cf .btn{height:36px;padding:0 12px;font-size:13px}
.pg-home .op-cf .btn:last-child{margin-left:auto}
.pg-home .spin{width:14px;height:14px;border-radius:50%;border:2px solid rgba(60,198,196,0.3);border-top-color:var(--teal);animation:rot 700ms linear infinite;flex:none}
.pg-home .op-modes{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:-6px 0 18px}
.pg-home .op-modes .lab{font-size:12px;color:var(--ink3);margin-right:4px}
.pg-home .op-mchip{display:flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--s1);font-size:13px;color:var(--ink2);transition:background-color 140ms ease}
.pg-home .op-mchip:hover{background:var(--s2);color:var(--ink)}
.pg-home .op-mchip.on{background:var(--s3);color:var(--ink);border-color:var(--c)}
.pg-home .op-mchip i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.pg-home /* pop-up */
.pop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px}
.pg-home .pop-scrim{position:absolute;inset:0;background:rgba(5,8,12,0.72);border:0;cursor:default;animation:fadeIn 200ms ease both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.pg-home .pop-box{position:relative;width:560px;max-width:100%;max-height:86vh;overflow:auto;box-sizing:border-box;background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 30px 80px rgba(0,0,0,0.6);animation:popUp 260ms var(--ease) both}
@keyframes popUp{from{opacity:0;transform:translateY(10px) scale(0.98)}to{opacity:1;transform:none}}
.pg-home .pop-x{position:absolute;right:12px;top:12px;width:36px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center}
.pg-home .pop-x:hover{background:var(--s3)}
.pg-home .pop-box h2{margin:0 40px 4px 0;font-size:20px;font-weight:600}
.pg-home .pop-box p{color:var(--ink2);margin:6px 0 14px}
.pg-home .pop-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.pg-home .pop-res{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-home .pop-res .sd{width:10px;height:10px;border-radius:50%}
.pg-home .pop-res button{border:0;background:transparent;color:var(--sky);font-weight:600;font-size:12px;padding:2px 4px}
.pg-home .pop-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pg-home .pop-choice button{text-align:left;padding:14px;border-radius:12px;border:1px solid var(--line);background:var(--s2);display:flex;flex-direction:column;gap:4px}
.pg-home .pop-choice button:hover{background:var(--s3);border-color:var(--sky)}
.pg-home .pop-choice b{font-weight:600}
.pg-home .pop-choice small{color:var(--ink3);font-size:12px}
.pg-home .spark{width:100%;height:56px;display:block}
@media (max-width:900px){.pg-home .op-acts{grid-template-columns:repeat(2,minmax(0,1fr))}.pg-home .op-hero{grid-template-columns:minmax(0,1fr)}}

/* ---- ModeRun ---- */
.pg-moderun .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-moderun .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-moderun button{font:inherit;color:inherit;cursor:pointer}
.pg-moderun button:disabled{cursor:not-allowed;opacity:0.45}
.pg-moderun .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-moderun .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-moderun .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-moderun .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-moderun .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-moderun .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-moderun .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-moderun .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-moderun .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-moderun .btn:hover{background:var(--s3)}
.pg-moderun .btn:active{transform:scale(0.97)}
.pg-moderun .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-moderun .btn-p:hover{background:#fff}
.pg-moderun .btn-p:active{transform:scale(0.97)}
.pg-moderun .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-moderun .kv:first-of-type{border-top:0}
.pg-moderun .kv .k{color:var(--ink3)}
.pg-moderun .kv b{font-weight:600;text-align:right}
.pg-moderun .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-moderun *,.pg-moderun *::before,.pg-moderun *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-moderun /* run page */
.r-sec{display:flex;align-items:baseline;gap:12px;margin:0 0 10px;flex-wrap:wrap}
.pg-moderun .r-sec h2{margin:0;font-size:13px;font-weight:600;color:var(--ink2)}
.pg-moderun .r-sec span{font-size:12px;color:var(--ink3)}
.pg-moderun .r-crumb{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.pg-moderun .r-link{height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--ink2);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background-color 160ms ease,color 160ms ease}
.pg-moderun .r-link:hover{background:var(--s2);color:var(--ink)}
.pg-moderun .r-modes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:18px}
.pg-moderun .r-mc{position:relative;text-align:left;background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:12px 12px 10px;overflow:hidden;transition:border-color 200ms ease,background-color 200ms ease,transform 160ms var(--ease)}
.pg-moderun .r-mc:hover{background:var(--s2);transform:translateY(-2px)}
.pg-moderun .r-mc:active{transform:scale(0.98)}
.pg-moderun .r-mc::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--c);opacity:0.5}
.pg-moderun .r-mc.on{border-color:var(--c);background:var(--s2)}
.pg-moderun .r-mc.on::before{opacity:1;height:4px}
.pg-moderun .r-mc b{display:block;font-weight:600;font-size:13px;line-height:1.25}
.pg-moderun .r-mc small{display:block;color:var(--ink3);font-size:11px;margin-top:4px}
.pg-moderun .r-banner{display:flex;gap:10px;align-items:flex-start;border-radius:12px;padding:12px 14px;margin-bottom:18px;border:1px solid var(--line);background:var(--s1);font-size:13px;color:var(--ink2)}
.pg-moderun .r-banner b{color:var(--ink)}
.pg-moderun .r-banner.teal{border-color:rgba(60,198,196,0.45);background:rgba(60,198,196,0.07)}
.pg-moderun .r-banner.teal .ic{color:var(--teal)}
.pg-moderun .r-banner.amber{border-color:rgba(242,179,61,0.45);background:rgba(242,179,61,0.07)}
.pg-moderun .r-banner.amber .ic{color:var(--amber)}
.pg-moderun .r-banner.sky{border-color:rgba(108,184,255,0.4);background:rgba(108,184,255,0.06)}
.pg-moderun .r-banner.sky .ic{color:var(--sky)}
.pg-moderun .r-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.pg-moderun .r-setup{display:flex;flex-direction:column;gap:12px}
.pg-moderun .r-opt{display:flex;flex-direction:column;gap:6px}
.pg-moderun .r-opt .ol{font-size:12px;color:var(--ink3);font-weight:500}
.pg-moderun .r-chips{display:flex;gap:6px;flex-wrap:wrap}
.pg-moderun .chip{min-height:34px;padding:6px 12px;border-radius:9px;border:1px solid var(--line);background:var(--s2);font-size:13px;text-align:left;transition:background-color 160ms ease,border-color 160ms ease}
.pg-moderun .chip:hover{background:var(--s3)}
.pg-moderun .chip.sel{border-color:var(--sky);background:rgba(108,184,255,0.12);color:var(--ink)}
.pg-moderun .chip.selt{border-color:var(--teal);background:rgba(60,198,196,0.12)}
.pg-moderun .chip.selc{border-color:var(--crit);background:rgba(255,111,97,0.12)}
.pg-moderun .chip small{display:block;color:var(--ink3);font-size:11px}
.pg-moderun .r-steps{display:flex;flex-direction:column;gap:8px}
.pg-moderun .r-step{border:1px solid var(--line);background:var(--s1);border-radius:12px;overflow:hidden;transition:border-color 200ms ease,background-color 200ms ease;animation:rise 460ms var(--ease) both}
.pg-moderun .r-step.run{border-color:var(--sky2);background:var(--s2)}
.pg-moderun .r-step.ok{border-color:rgba(94,211,176,0.35)}
.pg-moderun .r-step.warn{border-color:rgba(242,179,61,0.5)}
.pg-moderun .r-step.fail,.pg-moderun .r-step.abort{border-color:rgba(255,111,97,0.55)}
.pg-moderun .r-step.skip{opacity:0.55}
.pg-moderun .r-sb{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;text-align:left;background:transparent;border:0;padding:14px 16px}
.pg-moderun .r-sb:hover{background:rgba(255,255,255,0.02)}
.pg-moderun .r-sb b{display:block;font-weight:600;font-size:15px}
.pg-moderun .r-sb .x{display:block;color:var(--ink2);font-size:13px}
.pg-moderun .r-sb .eng{display:block;color:var(--ink3);font-size:12px;margin-top:2px}
.pg-moderun .r-sb .to{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--ink2);white-space:nowrap}
.pg-moderun .r-sb:hover .to{color:var(--ink)}
.pg-moderun .r-sb .to .ic{width:13px;height:13px;transition:transform 220ms var(--ease)}
.pg-moderun .r-sb:hover .to .ic{transform:translateX(3px)}
.pg-moderun .st{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;background:var(--s3);color:var(--ink3)}
.pg-moderun .st.ok{background:rgba(94,211,176,0.16);color:var(--ok);animation:pop 300ms var(--ease) both}
.pg-moderun .st.warn{background:rgba(242,179,61,0.16);color:var(--amber);animation:pop 300ms var(--ease) both}
.pg-moderun .st.fail,.pg-moderun .st.abort{background:rgba(255,111,97,0.16);color:var(--crit);animation:pop 300ms var(--ease) both}
.pg-moderun .st.run{background:transparent;border:2px solid rgba(108,184,255,0.25);border-top-color:var(--sky);animation:rot 800ms linear infinite;box-sizing:border-box}
@keyframes rot{to{transform:rotate(360deg)}}
@keyframes pop{from{opacity:0;transform:scale(0.5)}to{opacity:1;transform:none}}
.pg-moderun .bar{height:4px;background:var(--s3);border-radius:2px;overflow:hidden}
.pg-moderun .bar i{display:block;height:100%;background:var(--sky);border-radius:2px;transition:width 240ms linear}
.pg-moderun .bar.big{height:8px;border-radius:4px}
.pg-moderun .r-in{padding:0 16px 14px 62px;display:flex;flex-direction:column;gap:10px}
.pg-moderun .r-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.pg-moderun .r-it{display:grid;grid-template-columns:10px minmax(0,1fr);gap:8px;align-items:center;text-align:left;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:12px;transition:background-color 160ms ease}
.pg-moderun .r-it:hover{background:var(--s3)}
.pg-moderun .r-it .v{display:block;color:var(--ink3);font-size:11px}
.pg-moderun .dot{width:8px;height:8px;border-radius:50%;background:var(--s3);border:1px solid var(--line)}
.pg-moderun .dot.ok{background:var(--ok);border-color:var(--ok)}
.pg-moderun .dot.warn{background:var(--amber);border-color:var(--amber)}
.pg-moderun .dot.fail{background:var(--crit);border-color:var(--crit)}
.pg-moderun .dot.run{background:var(--sky);border-color:var(--sky);animation:blink 900ms ease-in-out infinite}
@keyframes blink{50%{opacity:0.3}}
.pg-moderun .r-eng{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pg-moderun .r-eng h3{margin:0 0 4px;font-size:11px;font-weight:600;color:var(--ink3);text-transform:uppercase;letter-spacing:0.06em}
.pg-moderun .r-eng .kv{padding:5px 0;font-size:12px}
.pg-moderun .r-note{font-size:12px;color:var(--ink2)}
.pg-moderun .r-note.warn{color:var(--amber)}
.pg-moderun .r-note.fail{color:var(--crit)}
.pg-moderun .r-big{font-size:34px;font-weight:600;line-height:1;letter-spacing:-0.02em}
.pg-moderun .r-now{font-size:15px;font-weight:600;margin:10px 0 2px}
.pg-moderun .r-ctl{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.pg-moderun .r-log{display:flex;flex-direction:column;max-height:360px;overflow-y:auto}
.pg-moderun .r-le{display:grid;grid-template-columns:62px 8px minmax(0,1fr);gap:8px;align-items:baseline;padding:7px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2);animation:rise 300ms var(--ease) both}
.pg-moderun .r-le:first-child{border-top:0}
.pg-moderun .r-le time{color:var(--ink3)}
.pg-moderun .r-le .dot{width:6px;height:6px;align-self:center}
.pg-moderun .r-empty{color:var(--ink3);font-size:13px;padding:8px 0}
.pg-moderun .r-modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px}
.pg-moderun .r-scrim{position:absolute;inset:0;border:0;background:rgba(5,8,12,0.72);cursor:default}
.pg-moderun .r-dlg{position:relative;width:min(620px,100%);max-height:90vh;overflow-y:auto;background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:22px;box-sizing:border-box;animation:dlgIn 320ms var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translateY(14px) scale(0.98)}to{opacity:1;transform:none}}
.pg-moderun .r-dlg h2{margin:0;font-size:20px;font-weight:600;display:flex;align-items:center;gap:10px}
.pg-moderun .r-x{position:absolute;right:14px;top:14px;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center}
.pg-moderun .r-x:hover{background:var(--s3)}
.pg-moderun .r-res{display:flex;flex-direction:column;margin:14px 0}
.pg-moderun .r-rr{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-moderun .r-rr:first-child{border-top:0}
.pg-moderun .r-rr span.v{color:var(--ink3);font-size:12px;text-align:right}
.pg-moderun .r-next{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
@media (max-width: 900px){.pg-moderun .r-body{grid-template-columns:minmax(0,1fr)}.pg-moderun .r-modes{grid-template-columns:repeat(3,minmax(0,1fr))}.pg-moderun .r-eng,.pg-moderun .r-items{grid-template-columns:minmax(0,1fr)}}

/* ---- SysWfsCamera ---- */
.pg-syswfscamera .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-syswfscamera .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-syswfscamera button{font:inherit;color:inherit;cursor:pointer}
.pg-syswfscamera button[disabled]{opacity:0.4;cursor:not-allowed}
.pg-syswfscamera .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-syswfscamera .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-syswfscamera .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-syswfscamera .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-syswfscamera .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-syswfscamera .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-syswfscamera .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-syswfscamera .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-syswfscamera .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-syswfscamera .btn:hover{background:var(--s3)}
.pg-syswfscamera .btn:active{transform:scale(0.97)}
.pg-syswfscamera .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-syswfscamera .btn-p:hover{background:#fff}
.pg-syswfscamera .btn-p:active{transform:scale(0.97)}
.pg-syswfscamera .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-syswfscamera .kv:first-of-type{border-top:0}
.pg-syswfscamera .kv .k{color:var(--ink3)}
.pg-syswfscamera .kv b{font-weight:600;text-align:right}
.pg-syswfscamera .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-syswfscamera *,.pg-syswfscamera *::before,.pg-syswfscamera *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-syswfscamera /* subsystem page */
.mod.simple .acts .btn,.pg-syswfscamera .mod.simple .acts .btn-p{height:50px;font-size:15px;padding:0 22px}
.pg-syswfscamera .crumbs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.pg-syswfscamera .crumb{height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink2);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background-color 160ms ease,color 160ms ease}
.pg-syswfscamera .crumb:hover{background:var(--s2);color:var(--ink)}
.pg-syswfscamera .crumb .ic{width:13px;height:13px}
.pg-syswfscamera .crumbs .sep{color:var(--ink3);font-size:12px}
.pg-syswfscamera .pill{font-size:12px;font-weight:600;padding:3px 10px 3px 8px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;letter-spacing:0}
.pg-syswfscamera .pill.ok{background:rgba(94,211,176,0.14);color:var(--ok)}
.pg-syswfscamera .pill.warn{background:rgba(242,179,61,0.14);color:var(--amber)}
.pg-syswfscamera .pill.fault{background:rgba(255,111,97,0.16);color:var(--crit)}
.pg-syswfscamera .pill.sim{background:rgba(60,198,196,0.14);color:var(--teal)}
.pg-syswfscamera .pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
.pg-syswfscamera .why{flex-basis:100%;text-align:right;margin:0;color:var(--ink3);font-size:12px}
.pg-syswfscamera .banner{display:flex;gap:12px;align-items:flex-start;border-radius:12px;padding:12px 16px;margin-bottom:16px;animation:rise 420ms var(--ease) both;font-size:13px;color:var(--ink2)}
.pg-syswfscamera .banner b{display:block;color:var(--ink);font-size:14px;margin-bottom:2px}
.pg-syswfscamera .banner.info{background:rgba(108,184,255,0.08);border:1px solid rgba(108,184,255,0.35)}
.pg-syswfscamera .banner.info>.ic{color:var(--sky)}
.pg-syswfscamera .banner.warn{background:rgba(242,179,61,0.08);border:1px solid rgba(242,179,61,0.4)}
.pg-syswfscamera .banner.warn>.ic{color:var(--amber)}
.pg-syswfscamera .banner.fault{background:rgba(255,111,97,0.08);border:1px solid rgba(255,111,97,0.45)}
.pg-syswfscamera .banner.fault>.ic{color:var(--crit)}
.pg-syswfscamera .banner.sim{background:rgba(60,198,196,0.08);border:1px solid rgba(60,198,196,0.4)}
.pg-syswfscamera .banner.sim>.ic{color:var(--teal)}
.pg-syswfscamera .jobs{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.pg-syswfscamera .job{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center;background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:12px 16px;animation:rise 360ms var(--ease) both}
.pg-syswfscamera .job b{font-weight:600}
.pg-syswfscamera .job .st{color:var(--ink3);font-size:12px}
.pg-syswfscamera .job.ok{border-color:rgba(94,211,176,0.45)}
.pg-syswfscamera .job.fail{border-color:rgba(255,111,97,0.5)}
.pg-syswfscamera .job .rs{display:flex;align-items:center;gap:8px;font-size:13px}
.pg-syswfscamera .job.ok .rs{color:var(--ok)}
.pg-syswfscamera .job.fail .rs{color:var(--crit)}
.pg-syswfscamera .bar{grid-column:1 / -1;height:6px;border-radius:3px;background:var(--s3);overflow:hidden}
.pg-syswfscamera .bar i{display:block;height:100%;background:var(--sky);border-radius:3px;transition:width 160ms linear}
.pg-syswfscamera .lnk{border:0;background:transparent;color:var(--ink3);font-size:12px;padding:4px 6px;border-radius:6px}
.pg-syswfscamera .lnk:hover{color:var(--ink);background:var(--s2)}
.pg-syswfscamera .sy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:18px;align-items:start;margin-bottom:18px}
.pg-syswfscamera .cps{display:flex;flex-direction:column;gap:6px}
.pg-syswfscamera .cp{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;text-align:left;background:var(--s2);border:1px solid transparent;border-radius:10px;padding:10px 12px;transition:background-color 160ms ease,border-color 160ms ease,transform 140ms var(--ease)}
.pg-syswfscamera .cp:hover{background:var(--s3);border-color:#33435A}
.pg-syswfscamera .cp:active{transform:scale(0.99)}
.pg-syswfscamera .cp b{display:block;font-weight:600;font-size:14px}
.pg-syswfscamera .cp .sub{display:block;color:var(--ink3);font-size:12px}
.pg-syswfscamera .cp .tech{display:block;color:var(--ink2);font-size:12px;margin-top:3px;padding-top:3px;border-top:1px dashed var(--line)}
.pg-syswfscamera .cp .vr{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.pg-syswfscamera .cp .vr b{font-size:13px}
.pg-syswfscamera .cp .vr time{color:var(--ink3);font-size:11px}
.pg-syswfscamera .cp.warn{border-color:rgba(242,179,61,0.45)}
.pg-syswfscamera .cp.fault{border-color:rgba(255,111,97,0.55)}
.pg-syswfscamera .dot{width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(94,211,176,0.15)}
.pg-syswfscamera .dot.warn{background:var(--amber);box-shadow:0 0 0 3px rgba(242,179,61,0.18)}
.pg-syswfscamera .dot.fault{background:var(--crit);box-shadow:0 0 0 3px rgba(255,111,97,0.2);animation:blink 1.2s ease-in-out infinite}
.pg-syswfscamera .dot.info{background:var(--sky);box-shadow:0 0 0 3px rgba(108,184,255,0.18)}
@keyframes blink{50%{opacity:0.35}}
.pg-syswfscamera .hero{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--s2);margin-bottom:12px}
.pg-syswfscamera .hero b{font-size:20px;font-weight:600;line-height:1.2}
.pg-syswfscamera .hero span{display:block;color:var(--ink3);font-size:12px}
.pg-syswfscamera .hero .dot{width:14px;height:14px}
.pg-syswfscamera .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:12px}
.pg-syswfscamera .tile{background:var(--s2);border-radius:10px;padding:10px 12px;min-width:0}
.pg-syswfscamera .tile span{display:block;color:var(--ink3);font-size:12px}
.pg-syswfscamera .tile b{display:block;font-size:20px;font-weight:600;line-height:1.25;transition:color 300ms ease}
.pg-syswfscamera .tile small{display:block;color:var(--ink3);font-size:11px}
.pg-syswfscamera .tile.warn b{color:var(--amber)}
.pg-syswfscamera .tile.fault b{color:var(--crit)}
.pg-syswfscamera .mod.simple .tile b{font-size:26px}
.pg-syswfscamera .sy-spots{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:2px;background:#06090D;border:1px solid var(--line);border-radius:10px;padding:10px;aspect-ratio:1 / 1;max-width:300px;margin:0 auto 6px}
.pg-syswfscamera .sp{position:relative;display:grid;place-items:center;border-radius:2px;background:rgba(108,184,255,0.04)}
.pg-syswfscamera .sp i{width:38%;height:38%;border-radius:50%;background:#DDEBFF;box-shadow:0 0 4px rgba(170,210,255,0.85);transition:transform 700ms var(--ease),opacity 500ms ease}
.pg-syswfscamera .sp.off{background:transparent}
.pg-syswfscamera .sp.off i{display:none}
.pg-syswfscamera .sp.rej{background:rgba(242,179,61,0.12);box-shadow:inset 0 0 0 1px rgba(242,179,61,0.6)}
.pg-syswfscamera .sp.rej i{background:var(--amber);box-shadow:none}
.pg-syswfscamera .sy-field{position:relative;background:#06090D;border:1px solid var(--line);border-radius:10px;aspect-ratio:1 / 1;max-width:300px;margin:0 auto 6px;overflow:hidden}
.pg-syswfscamera .sy-field .cross{position:absolute;background:rgba(108,184,255,0.35)}
.pg-syswfscamera .sy-field .cross.h{left:0;right:0;top:50%;height:1px}
.pg-syswfscamera .sy-field .cross.v{top:0;bottom:0;left:50%;width:1px}
.pg-syswfscamera .sy-field .ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px dashed rgba(94,211,176,0.55);border-radius:50%;transition:width 500ms var(--ease),height 500ms var(--ease)}
.pg-syswfscamera .sy-field .trail{position:absolute;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:var(--sky)}
.pg-syswfscamera .sy-field .star{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:radial-gradient(circle,#fff 0,#CFE4FF 30%,rgba(108,184,255,0.35) 60%,transparent 72%);transition:left 800ms var(--ease),top 800ms var(--ease),opacity 400ms ease}
.pg-syswfscamera .sy-field .star.lost{opacity:0.25}
.pg-syswfscamera .sy-field .star.search{animation:blink 0.9s ease-in-out infinite}
.pg-syswfscamera .sy-field .flab{position:absolute;left:8px;bottom:6px;font-size:11px;color:var(--ink3)}
.pg-syswfscamera .sy-field .flab2{position:absolute;right:8px;top:6px;font-size:11px;color:var(--ink3)}
.pg-syswfscamera .pvrow{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.pg-syswfscamera .tbl-wrap{overflow-x:auto}
.pg-syswfscamera .tbl{width:100%;border-collapse:collapse;font-size:13px}
.pg-syswfscamera .tbl th{text-align:left;font-weight:500;color:var(--ink3);font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line)}
.pg-syswfscamera .tbl td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.pg-syswfscamera .tbl td.m{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ink2);word-break:break-all}
.pg-syswfscamera .tbl td.n{text-align:right}
.pg-syswfscamera .eng{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:18px;margin-bottom:18px}
.pg-syswfscamera .logl{display:flex;flex-direction:column}
.pg-syswfscamera .le{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:8px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2)}
.pg-syswfscamera .le:first-child{border-top:0}
.pg-syswfscamera .le time{color:var(--ink3)}
.pg-syswfscamera .inj{display:flex;gap:8px;flex-wrap:wrap}
.pg-syswfscamera .inj .btn{height:36px;font-size:13px}
.pg-syswfscamera .inj .btn.on{border-color:var(--amber);color:var(--amber)}
.pg-syswfscamera .rel{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pg-syswfscamera .rel .h{color:var(--ink3);font-size:12px;font-weight:600;margin-right:4px}
.pg-syswfscamera .rel .btn .ar{transition:transform 200ms var(--ease)}
.pg-syswfscamera .rel .btn:hover .ar{transform:translateX(3px)}
.pg-syswfscamera .ov{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;box-sizing:border-box}
.pg-syswfscamera .scrim{position:absolute;inset:0;border:0;padding:0;background:rgba(4,7,11,0.72);cursor:default;animation:fadeIn 200ms ease both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.pg-syswfscamera .dlg{position:relative;width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow:auto;background:var(--s1);border:1px solid #33435A;border-radius:16px;padding:20px;box-sizing:border-box;box-shadow:0 24px 60px rgba(0,0,0,0.5);animation:dlgIn 280ms var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translateY(12px) scale(0.98)}to{opacity:1;transform:none}}
.pg-syswfscamera .dlg-h{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.pg-syswfscamera .dlg-h h2{margin:0;font-size:18px;font-weight:600;flex:1;min-width:0}
.pg-syswfscamera .xbtn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center}
.pg-syswfscamera .xbtn:hover{background:var(--s3)}
.pg-syswfscamera .spark{background:var(--s2);border-radius:10px;padding:10px 12px;margin:12px 0}
.pg-syswfscamera .spark svg{display:block;width:100%;height:64px}
.pg-syswfscamera .spark .lab{display:flex;justify-content:space-between;font-size:11px;color:var(--ink3)}
.pg-syswfscamera .dacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}

/* ---- SysBoresight ---- */
.pg-sysboresight .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-sysboresight .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-sysboresight button{font:inherit;color:inherit;cursor:pointer}
.pg-sysboresight button[disabled]{opacity:0.4;cursor:not-allowed}
.pg-sysboresight .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-sysboresight .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-sysboresight .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-sysboresight .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-sysboresight .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-sysboresight .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-sysboresight .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-sysboresight .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-sysboresight .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-sysboresight .btn:hover{background:var(--s3)}
.pg-sysboresight .btn:active{transform:scale(0.97)}
.pg-sysboresight .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-sysboresight .btn-p:hover{background:#fff}
.pg-sysboresight .btn-p:active{transform:scale(0.97)}
.pg-sysboresight .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-sysboresight .kv:first-of-type{border-top:0}
.pg-sysboresight .kv .k{color:var(--ink3)}
.pg-sysboresight .kv b{font-weight:600;text-align:right}
.pg-sysboresight .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-sysboresight *,.pg-sysboresight *::before,.pg-sysboresight *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-sysboresight /* subsystem page */
.mod.simple .acts .btn,.pg-sysboresight .mod.simple .acts .btn-p{height:50px;font-size:15px;padding:0 22px}
.pg-sysboresight .crumbs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.pg-sysboresight .crumb{height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink2);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background-color 160ms ease,color 160ms ease}
.pg-sysboresight .crumb:hover{background:var(--s2);color:var(--ink)}
.pg-sysboresight .crumb .ic{width:13px;height:13px}
.pg-sysboresight .crumbs .sep{color:var(--ink3);font-size:12px}
.pg-sysboresight .pill{font-size:12px;font-weight:600;padding:3px 10px 3px 8px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;letter-spacing:0}
.pg-sysboresight .pill.ok{background:rgba(94,211,176,0.14);color:var(--ok)}
.pg-sysboresight .pill.warn{background:rgba(242,179,61,0.14);color:var(--amber)}
.pg-sysboresight .pill.fault{background:rgba(255,111,97,0.16);color:var(--crit)}
.pg-sysboresight .pill.sim{background:rgba(60,198,196,0.14);color:var(--teal)}
.pg-sysboresight .pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
.pg-sysboresight .why{flex-basis:100%;text-align:right;margin:0;color:var(--ink3);font-size:12px}
.pg-sysboresight .banner{display:flex;gap:12px;align-items:flex-start;border-radius:12px;padding:12px 16px;margin-bottom:16px;animation:rise 420ms var(--ease) both;font-size:13px;color:var(--ink2)}
.pg-sysboresight .banner b{display:block;color:var(--ink);font-size:14px;margin-bottom:2px}
.pg-sysboresight .banner.info{background:rgba(108,184,255,0.08);border:1px solid rgba(108,184,255,0.35)}
.pg-sysboresight .banner.info>.ic{color:var(--sky)}
.pg-sysboresight .banner.warn{background:rgba(242,179,61,0.08);border:1px solid rgba(242,179,61,0.4)}
.pg-sysboresight .banner.warn>.ic{color:var(--amber)}
.pg-sysboresight .banner.fault{background:rgba(255,111,97,0.08);border:1px solid rgba(255,111,97,0.45)}
.pg-sysboresight .banner.fault>.ic{color:var(--crit)}
.pg-sysboresight .banner.sim{background:rgba(60,198,196,0.08);border:1px solid rgba(60,198,196,0.4)}
.pg-sysboresight .banner.sim>.ic{color:var(--teal)}
.pg-sysboresight .jobs{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.pg-sysboresight .job{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center;background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:12px 16px;animation:rise 360ms var(--ease) both}
.pg-sysboresight .job b{font-weight:600}
.pg-sysboresight .job .st{color:var(--ink3);font-size:12px}
.pg-sysboresight .job.ok{border-color:rgba(94,211,176,0.45)}
.pg-sysboresight .job.fail{border-color:rgba(255,111,97,0.5)}
.pg-sysboresight .job .rs{display:flex;align-items:center;gap:8px;font-size:13px}
.pg-sysboresight .job.ok .rs{color:var(--ok)}
.pg-sysboresight .job.fail .rs{color:var(--crit)}
.pg-sysboresight .bar{grid-column:1 / -1;height:6px;border-radius:3px;background:var(--s3);overflow:hidden}
.pg-sysboresight .bar i{display:block;height:100%;background:var(--sky);border-radius:3px;transition:width 160ms linear}
.pg-sysboresight .lnk{border:0;background:transparent;color:var(--ink3);font-size:12px;padding:4px 6px;border-radius:6px}
.pg-sysboresight .lnk:hover{color:var(--ink);background:var(--s2)}
.pg-sysboresight .sy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:18px;align-items:start;margin-bottom:18px}
.pg-sysboresight .cps{display:flex;flex-direction:column;gap:6px}
.pg-sysboresight .cp{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;text-align:left;background:var(--s2);border:1px solid transparent;border-radius:10px;padding:10px 12px;transition:background-color 160ms ease,border-color 160ms ease,transform 140ms var(--ease)}
.pg-sysboresight .cp:hover{background:var(--s3);border-color:#33435A}
.pg-sysboresight .cp:active{transform:scale(0.99)}
.pg-sysboresight .cp b{display:block;font-weight:600;font-size:14px}
.pg-sysboresight .cp .sub{display:block;color:var(--ink3);font-size:12px}
.pg-sysboresight .cp .tech{display:block;color:var(--ink2);font-size:12px;margin-top:3px;padding-top:3px;border-top:1px dashed var(--line)}
.pg-sysboresight .cp .vr{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.pg-sysboresight .cp .vr b{font-size:13px}
.pg-sysboresight .cp .vr time{color:var(--ink3);font-size:11px}
.pg-sysboresight .cp.warn{border-color:rgba(242,179,61,0.45)}
.pg-sysboresight .cp.fault{border-color:rgba(255,111,97,0.55)}
.pg-sysboresight .dot{width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(94,211,176,0.15)}
.pg-sysboresight .dot.warn{background:var(--amber);box-shadow:0 0 0 3px rgba(242,179,61,0.18)}
.pg-sysboresight .dot.fault{background:var(--crit);box-shadow:0 0 0 3px rgba(255,111,97,0.2);animation:blink 1.2s ease-in-out infinite}
.pg-sysboresight .dot.info{background:var(--sky);box-shadow:0 0 0 3px rgba(108,184,255,0.18)}
@keyframes blink{50%{opacity:0.35}}
.pg-sysboresight .hero{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--s2);margin-bottom:12px}
.pg-sysboresight .hero b{font-size:20px;font-weight:600;line-height:1.2}
.pg-sysboresight .hero span{display:block;color:var(--ink3);font-size:12px}
.pg-sysboresight .hero .dot{width:14px;height:14px}
.pg-sysboresight .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:12px}
.pg-sysboresight .tile{background:var(--s2);border-radius:10px;padding:10px 12px;min-width:0}
.pg-sysboresight .tile span{display:block;color:var(--ink3);font-size:12px}
.pg-sysboresight .tile b{display:block;font-size:20px;font-weight:600;line-height:1.25;transition:color 300ms ease}
.pg-sysboresight .tile small{display:block;color:var(--ink3);font-size:11px}
.pg-sysboresight .tile.warn b{color:var(--amber)}
.pg-sysboresight .tile.fault b{color:var(--crit)}
.pg-sysboresight .mod.simple .tile b{font-size:26px}
.pg-sysboresight .sy-spots{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:2px;background:#06090D;border:1px solid var(--line);border-radius:10px;padding:10px;aspect-ratio:1 / 1;max-width:300px;margin:0 auto 6px}
.pg-sysboresight .sp{position:relative;display:grid;place-items:center;border-radius:2px;background:rgba(108,184,255,0.04)}
.pg-sysboresight .sp i{width:38%;height:38%;border-radius:50%;background:#DDEBFF;box-shadow:0 0 4px rgba(170,210,255,0.85);transition:transform 700ms var(--ease),opacity 500ms ease}
.pg-sysboresight .sp.off{background:transparent}
.pg-sysboresight .sp.off i{display:none}
.pg-sysboresight .sp.rej{background:rgba(242,179,61,0.12);box-shadow:inset 0 0 0 1px rgba(242,179,61,0.6)}
.pg-sysboresight .sp.rej i{background:var(--amber);box-shadow:none}
.pg-sysboresight .sy-field{position:relative;background:#06090D;border:1px solid var(--line);border-radius:10px;aspect-ratio:1 / 1;max-width:300px;margin:0 auto 6px;overflow:hidden}
.pg-sysboresight .sy-field .cross{position:absolute;background:rgba(108,184,255,0.35)}
.pg-sysboresight .sy-field .cross.h{left:0;right:0;top:50%;height:1px}
.pg-sysboresight .sy-field .cross.v{top:0;bottom:0;left:50%;width:1px}
.pg-sysboresight .sy-field .ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px dashed rgba(94,211,176,0.55);border-radius:50%;transition:width 500ms var(--ease),height 500ms var(--ease)}
.pg-sysboresight .sy-field .trail{position:absolute;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:var(--sky)}
.pg-sysboresight .sy-field .star{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:radial-gradient(circle,#fff 0,#CFE4FF 30%,rgba(108,184,255,0.35) 60%,transparent 72%);transition:left 800ms var(--ease),top 800ms var(--ease),opacity 400ms ease}
.pg-sysboresight .sy-field .star.lost{opacity:0.25}
.pg-sysboresight .sy-field .star.search{animation:blink 0.9s ease-in-out infinite}
.pg-sysboresight .sy-field .flab{position:absolute;left:8px;bottom:6px;font-size:11px;color:var(--ink3)}
.pg-sysboresight .sy-field .flab2{position:absolute;right:8px;top:6px;font-size:11px;color:var(--ink3)}
.pg-sysboresight .pvrow{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.pg-sysboresight .tbl-wrap{overflow-x:auto}
.pg-sysboresight .tbl{width:100%;border-collapse:collapse;font-size:13px}
.pg-sysboresight .tbl th{text-align:left;font-weight:500;color:var(--ink3);font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line)}
.pg-sysboresight .tbl td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.pg-sysboresight .tbl td.m{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ink2);word-break:break-all}
.pg-sysboresight .tbl td.n{text-align:right}
.pg-sysboresight .eng{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:18px;margin-bottom:18px}
.pg-sysboresight .logl{display:flex;flex-direction:column}
.pg-sysboresight .le{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:8px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2)}
.pg-sysboresight .le:first-child{border-top:0}
.pg-sysboresight .le time{color:var(--ink3)}
.pg-sysboresight .inj{display:flex;gap:8px;flex-wrap:wrap}
.pg-sysboresight .inj .btn{height:36px;font-size:13px}
.pg-sysboresight .inj .btn.on{border-color:var(--amber);color:var(--amber)}
.pg-sysboresight .rel{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pg-sysboresight .rel .h{color:var(--ink3);font-size:12px;font-weight:600;margin-right:4px}
.pg-sysboresight .rel .btn .ar{transition:transform 200ms var(--ease)}
.pg-sysboresight .rel .btn:hover .ar{transform:translateX(3px)}
.pg-sysboresight .ov{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;box-sizing:border-box}
.pg-sysboresight .scrim{position:absolute;inset:0;border:0;padding:0;background:rgba(4,7,11,0.72);cursor:default;animation:fadeIn 200ms ease both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.pg-sysboresight .dlg{position:relative;width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow:auto;background:var(--s1);border:1px solid #33435A;border-radius:16px;padding:20px;box-sizing:border-box;box-shadow:0 24px 60px rgba(0,0,0,0.5);animation:dlgIn 280ms var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translateY(12px) scale(0.98)}to{opacity:1;transform:none}}
.pg-sysboresight .dlg-h{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.pg-sysboresight .dlg-h h2{margin:0;font-size:18px;font-weight:600;flex:1;min-width:0}
.pg-sysboresight .xbtn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center}
.pg-sysboresight .xbtn:hover{background:var(--s3)}
.pg-sysboresight .spark{background:var(--s2);border-radius:10px;padding:10px 12px;margin:12px 0}
.pg-sysboresight .spark svg{display:block;width:100%;height:64px}
.pg-sysboresight .spark .lab{display:flex;justify-content:space-between;font-size:11px;color:var(--ink3)}
.pg-sysboresight .dacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}

/* ---- SysFocusStage ---- */
.pg-sysfocusstage .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-sysfocusstage .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-sysfocusstage button{font:inherit;color:inherit;cursor:pointer}
.pg-sysfocusstage .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-sysfocusstage .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-sysfocusstage .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-sysfocusstage .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-sysfocusstage .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-sysfocusstage .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-sysfocusstage .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-sysfocusstage .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-sysfocusstage .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-sysfocusstage .btn:hover{background:var(--s3)}
.pg-sysfocusstage .btn:active{transform:scale(0.97)}
.pg-sysfocusstage .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-sysfocusstage .btn-p:hover{background:#fff}
.pg-sysfocusstage .btn-p:active{transform:scale(0.97)}
.pg-sysfocusstage .btn[disabled],.pg-sysfocusstage .btn-p[disabled]{opacity:0.38;cursor:not-allowed;transform:none}
.pg-sysfocusstage .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-sysfocusstage .kv:first-of-type{border-top:0}
.pg-sysfocusstage .kv .k{color:var(--ink3)}
.pg-sysfocusstage .kv b{font-weight:600;text-align:right}
.pg-sysfocusstage .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-sysfocusstage *,.pg-sysfocusstage *::before,.pg-sysfocusstage *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-sysfocusstage /* subsystem page */
.crumbs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:0 0 14px;font-size:13px;color:var(--ink3)}
.pg-sysfocusstage .crumb{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--ink2);padding:5px 9px;border-radius:8px;transition:background-color 160ms ease,color 160ms ease}
.pg-sysfocusstage .crumb:hover{background:var(--s2);color:var(--ink)}
.pg-sysfocusstage .crumbs .here{color:var(--ink);font-weight:600;padding:5px 4px}
.pg-sysfocusstage .pill{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;display:inline-flex;align-items:center;gap:6px;letter-spacing:0}
.pg-sysfocusstage .pill.ok{background:var(--ok)}
.pg-sysfocusstage .pill.warn{background:var(--amber)}
.pg-sysfocusstage .pill.fault{background:var(--crit)}
.pg-sysfocusstage .dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.pg-sysfocusstage .dot.ok{background:var(--ok);box-shadow:0 0 0 3px rgba(94,211,176,0.14)}
.pg-sysfocusstage .dot.warn{background:var(--amber);box-shadow:0 0 0 3px rgba(242,179,61,0.18)}
.pg-sysfocusstage .dot.fault{background:var(--crit);box-shadow:0 0 0 3px rgba(255,111,97,0.22);animation:blink 1.1s ease-in-out infinite}
@keyframes blink{50%{opacity:0.45}}
.pg-sysfocusstage .banner{display:flex;gap:12px;align-items:flex-start;border-radius:12px;padding:12px 16px;margin-bottom:16px;animation:rise 420ms var(--ease) both;font-size:13px;color:var(--ink2)}
.pg-sysfocusstage .banner b{display:block;color:var(--ink);font-size:14px;margin-bottom:2px}
.pg-sysfocusstage .banner.info{background:rgba(108,184,255,0.08);border:1px solid rgba(108,184,255,0.35)}
.pg-sysfocusstage .banner.info>.ic{color:var(--sky)}
.pg-sysfocusstage .banner.warn{background:rgba(242,179,61,0.08);border:1px solid rgba(242,179,61,0.4)}
.pg-sysfocusstage .banner.warn>.ic{color:var(--amber)}
.pg-sysfocusstage .banner.sim{background:rgba(60,198,196,0.08);border:1px solid rgba(60,198,196,0.4)}
.pg-sysfocusstage .banner.sim>.ic{color:var(--teal)}
.pg-sysfocusstage .banner.fault{background:rgba(255,111,97,0.08);border:1px solid rgba(255,111,97,0.45)}
.pg-sysfocusstage .banner.fault>.ic{color:var(--crit)}
.pg-sysfocusstage .note{font-size:12px;color:var(--ink3);margin:8px 0 0}
.pg-sysfocusstage .note.lock{color:var(--amber);display:flex;gap:6px;align-items:center}
.pg-sysfocusstage .lockline{margin:-8px 0 16px;justify-content:flex-end}
.pg-sysfocusstage .g2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;margin-bottom:18px;align-items:start}
.pg-sysfocusstage .col{display:flex;flex-direction:column;gap:18px;min-width:0}
@media (max-width:900px){.pg-sysfocusstage .g2{grid-template-columns:minmax(0,1fr)}}
.pg-sysfocusstage .comps{display:flex;flex-direction:column}
.pg-sysfocusstage .comp{display:grid;grid-template-columns:14px minmax(0,1fr) auto 16px;gap:12px;align-items:center;width:100%;text-align:left;background:transparent;border:0;border-top:1px solid var(--line);padding:11px 8px;border-radius:8px;transition:background-color 160ms ease,transform 140ms var(--ease);animation:rise 420ms var(--ease) both}
.pg-sysfocusstage .comp:first-child{border-top-color:transparent}
.pg-sysfocusstage .comp:hover{background:var(--s2)}
.pg-sysfocusstage .comp:active{transform:scale(0.99)}
.pg-sysfocusstage .comp b{display:block;font-weight:600;font-size:14px}
.pg-sysfocusstage .comp .v{display:block;color:var(--ink2);font-size:12px}
.pg-sysfocusstage .comp time{color:var(--ink3);font-size:12px;white-space:nowrap}
.pg-sysfocusstage .comp .ar{color:var(--ink3);transition:transform 200ms var(--ease)}
.pg-sysfocusstage .comp:hover .ar{transform:translateX(3px);color:var(--ink)}
.pg-sysfocusstage .rh{display:flex;align-items:flex-start;gap:12px}
.pg-sysfocusstage .live{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink3)}
.pg-sysfocusstage .live i{width:8px;height:8px;border-radius:50%;background:var(--ok);animation:blink 1.2s ease-in-out infinite}
.pg-sysfocusstage .live.sim i{background:var(--teal)}
.pg-sysfocusstage .live.rep i{background:var(--ink3)}
.pg-sysfocusstage .bigst{font-size:30px;font-weight:600;line-height:1.1;letter-spacing:-0.01em}
.pg-sysfocusstage .bigsub{color:var(--ink2);font-size:13px;margin:4px 0 10px}
.pg-sysfocusstage .tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.pg-sysfocusstage .tile{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.pg-sysfocusstage .tile span{display:block;color:var(--ink3);font-size:12px}
.pg-sysfocusstage .tile b{display:block;font-size:19px;font-weight:600;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pg-sysfocusstage .tile small{display:block;color:var(--ink3);font-size:11px}
.pg-sysfocusstage .prog{height:6px;border-radius:3px;background:var(--s3);overflow:hidden;margin:8px 0 6px}
.pg-sysfocusstage .prog i{display:block;height:100%;background:var(--sky);border-radius:3px;transition:width 140ms linear}
.pg-sysfocusstage .prog.ok i{background:var(--ok)}
.pg-sysfocusstage .prog.bad i{background:var(--crit)}
.pg-sysfocusstage .tasks{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.pg-sysfocusstage .task-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pg-sysfocusstage .task-h b{font-weight:600}
.pg-sysfocusstage .st-run{color:var(--sky);font-size:12px;font-weight:600}
.pg-sysfocusstage .st-ok{color:var(--ok);font-size:12px;font-weight:600}
.pg-sysfocusstage .st-bad{color:var(--crit);font-size:12px;font-weight:600}
.pg-sysfocusstage .lnk{margin-left:auto;border:0;background:transparent;color:var(--ink2);font-size:12px;padding:4px 8px;border-radius:6px}
.pg-sysfocusstage .lnk:hover{background:var(--s2);color:var(--ink)}
.pg-sysfocusstage .tcap{color:var(--ink2);font-size:13px;margin:0}
.pg-sysfocusstage .track{width:100%;height:auto;display:block;margin:4px 0 2px}
.pg-sysfocusstage .tr-rail{stroke:var(--line);stroke-width:6;stroke-linecap:round}
.pg-sysfocusstage .tr-soft{fill:rgba(242,179,61,0.18)}
.pg-sysfocusstage .tr-lim{stroke:var(--ink3);stroke-width:2}
.pg-sysfocusstage .tr-lim.fault{stroke:var(--crit);stroke-width:3}
.pg-sysfocusstage .tr-home{stroke:var(--sky);stroke-width:2;stroke-dasharray:3 3}
.pg-sysfocusstage .tr-mark{stroke:var(--ink2);stroke-width:1.5}
.pg-sysfocusstage .tr-car{fill:var(--ink);transition:transform 250ms linear}
.pg-sysfocusstage .tr-tgt{fill:none;stroke:var(--sky);stroke-width:1.5;stroke-dasharray:2 2;transition:transform 200ms var(--ease)}
.pg-sysfocusstage .tr-t{fill:var(--ink3);font-size:11px;font-family:inherit}
.pg-sysfocusstage .tr-t.hi{fill:var(--ink2);font-weight:600}
.pg-sysfocusstage .moves{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:640px){.pg-sysfocusstage .moves,.pg-sysfocusstage .tiles{grid-template-columns:minmax(0,1fr)}}
.pg-sysfocusstage .mv{text-align:left;background:var(--s2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:3px;transition:background-color 160ms ease,border-color 160ms ease,transform 140ms var(--ease)}
.pg-sysfocusstage .mv:hover{background:var(--s3)}
.pg-sysfocusstage .mv:active{transform:scale(0.98)}
.pg-sysfocusstage .mv b{font-size:15px;font-weight:600}
.pg-sysfocusstage .mv span{font-size:12px;color:var(--ink3)}
.pg-sysfocusstage .mv em{font-style:normal;font-size:12px;font-weight:600;color:var(--sky)}
.pg-sysfocusstage .mv.on{border-color:var(--ok)}
.pg-sysfocusstage .mv.on em{color:var(--ok)}
.pg-sysfocusstage .mv.tgt{border-color:var(--sky)}
.pg-sysfocusstage .mv[disabled]{opacity:0.4;cursor:not-allowed;transform:none}
.pg-sysfocusstage .mv.big{padding:16px 16px;min-height:96px}
.pg-sysfocusstage .mv.big b{font-size:17px}
.pg-sysfocusstage .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.pg-sysfocusstage .injs{display:flex;gap:10px;flex-wrap:wrap}
.pg-sysfocusstage .btn.on{border-color:var(--amber);background:rgba(242,179,61,0.12)}
.pg-sysfocusstage .tbl{width:100%;border-collapse:collapse;font-size:13px}
.pg-sysfocusstage .tbl th{text-align:left;font-weight:500;color:var(--ink3);font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line)}
.pg-sysfocusstage .tbl td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.pg-sysfocusstage .tbl td.m{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ink2)}
.pg-sysfocusstage .tbl .n{text-align:right}
.pg-sysfocusstage .tblw{overflow-x:auto}
.pg-sysfocusstage .g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px;align-items:start}
@media (max-width:1100px){.pg-sysfocusstage .g3{grid-template-columns:minmax(0,1fr)}}
.pg-sysfocusstage .logl{display:flex;flex-direction:column}
.pg-sysfocusstage .le{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2);animation:rise 320ms var(--ease) both}
.pg-sysfocusstage .le:first-child{border-top:0}
.pg-sysfocusstage .le time{color:var(--ink3)}
.pg-sysfocusstage .rel{display:flex;gap:10px;flex-wrap:wrap}
.pg-sysfocusstage .relb{display:inline-flex;align-items:center;gap:10px;text-align:left;background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:10px 14px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-sysfocusstage .relb:hover{background:var(--s2);transform:translateY(-1px)}
.pg-sysfocusstage .relb:active{transform:scale(0.98)}
.pg-sysfocusstage .relb b{display:block;font-weight:600;font-size:13px}
.pg-sysfocusstage .relb small{display:block;color:var(--ink3);font-size:12px}
.pg-sysfocusstage .relb .ic{color:var(--ink3)}
.pg-sysfocusstage .sec{display:flex;align-items:baseline;gap:12px;margin:0 0 10px}
.pg-sysfocusstage .sec h2{margin:0;font-size:13px;font-weight:600;color:var(--ink2)}
.pg-sysfocusstage .sec span{font-size:12px;color:var(--ink3)}
.pg-sysfocusstage .ov{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px}
.pg-sysfocusstage .scrim{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;margin:0;background:rgba(4,7,11,0.68);cursor:default;animation:fade 200ms ease both}
@keyframes fade{from{opacity:0}to{opacity:1}}
.pg-sysfocusstage .dlg{position:relative;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;box-sizing:border-box;background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 24px 70px rgba(0,0,0,0.55);animation:dlgIn 280ms var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translateY(14px) scale(0.98)}to{opacity:1;transform:none}}
.pg-sysfocusstage .dlg-h{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.pg-sysfocusstage .dlg-h h2{margin:0;font-size:18px;font-weight:600}
.pg-sysfocusstage .x{margin-left:auto;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center;flex:none}
.pg-sysfocusstage .x:hover{background:var(--s3)}
.pg-sysfocusstage .spk{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:12px 0}
.pg-sysfocusstage .spk-h{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--ink3)}
.pg-sysfocusstage .spk-h b{color:var(--ink);font-weight:600}
.pg-sysfocusstage .spk svg{width:100%;height:64px;display:block;margin-top:6px}
.pg-sysfocusstage .spl{fill:none;stroke:var(--sky);stroke-width:1.8;vector-effect:non-scaling-stroke}
.pg-sysfocusstage .spa{fill:rgba(108,184,255,0.12);stroke:none}
.pg-sysfocusstage .dacts{display:flex;flex-direction:column;gap:10px}
.pg-sysfocusstage .dact{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:center}
.pg-sysfocusstage .dact .btn{justify-content:center}
.pg-sysfocusstage .okt{color:var(--ok);font-size:12px}
.pg-sysfocusstage .badt{color:var(--crit);font-size:12px}
.pg-sysfocusstage .runt{color:var(--ink2);font-size:12px}

/* ---- SysLed ---- */
.pg-sysled .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-sysled .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-sysled button{font:inherit;color:inherit;cursor:pointer}
.pg-sysled .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-sysled .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-sysled .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-sysled .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-sysled .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-sysled .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-sysled .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-sysled .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-sysled .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-sysled .btn:hover{background:var(--s3)}
.pg-sysled .btn:active{transform:scale(0.97)}
.pg-sysled .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-sysled .btn-p:hover{background:#fff}
.pg-sysled .btn-p:active{transform:scale(0.97)}
.pg-sysled .btn[disabled],.pg-sysled .btn-p[disabled]{opacity:0.38;cursor:not-allowed;transform:none}
.pg-sysled .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-sysled .kv:first-of-type{border-top:0}
.pg-sysled .kv .k{color:var(--ink3)}
.pg-sysled .kv b{font-weight:600;text-align:right}
.pg-sysled .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-sysled *,.pg-sysled *::before,.pg-sysled *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-sysled /* subsystem page */
.crumbs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:0 0 14px;font-size:13px;color:var(--ink3)}
.pg-sysled .crumb{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--ink2);padding:5px 9px;border-radius:8px;transition:background-color 160ms ease,color 160ms ease}
.pg-sysled .crumb:hover{background:var(--s2);color:var(--ink)}
.pg-sysled .crumbs .here{color:var(--ink);font-weight:600;padding:5px 4px}
.pg-sysled .pill{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;display:inline-flex;align-items:center;gap:6px;letter-spacing:0}
.pg-sysled .pill.ok{background:var(--ok)}
.pg-sysled .pill.warn{background:var(--amber)}
.pg-sysled .pill.fault{background:var(--crit)}
.pg-sysled .dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.pg-sysled .dot.ok{background:var(--ok);box-shadow:0 0 0 3px rgba(94,211,176,0.14)}
.pg-sysled .dot.warn{background:var(--amber);box-shadow:0 0 0 3px rgba(242,179,61,0.18)}
.pg-sysled .dot.fault{background:var(--crit);box-shadow:0 0 0 3px rgba(255,111,97,0.22);animation:blink 1.1s ease-in-out infinite}
@keyframes blink{50%{opacity:0.45}}
.pg-sysled .banner{display:flex;gap:12px;align-items:flex-start;border-radius:12px;padding:12px 16px;margin-bottom:16px;animation:rise 420ms var(--ease) both;font-size:13px;color:var(--ink2)}
.pg-sysled .banner b{display:block;color:var(--ink);font-size:14px;margin-bottom:2px}
.pg-sysled .banner.info{background:rgba(108,184,255,0.08);border:1px solid rgba(108,184,255,0.35)}
.pg-sysled .banner.info>.ic{color:var(--sky)}
.pg-sysled .banner.warn{background:rgba(242,179,61,0.08);border:1px solid rgba(242,179,61,0.4)}
.pg-sysled .banner.warn>.ic{color:var(--amber)}
.pg-sysled .banner.sim{background:rgba(60,198,196,0.08);border:1px solid rgba(60,198,196,0.4)}
.pg-sysled .banner.sim>.ic{color:var(--teal)}
.pg-sysled .banner.fault{background:rgba(255,111,97,0.08);border:1px solid rgba(255,111,97,0.45)}
.pg-sysled .banner.fault>.ic{color:var(--crit)}
.pg-sysled .note{font-size:12px;color:var(--ink3);margin:8px 0 0}
.pg-sysled .note.lock{color:var(--amber);display:flex;gap:6px;align-items:center}
.pg-sysled .lockline{margin:-8px 0 16px;justify-content:flex-end}
.pg-sysled .g2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;margin-bottom:18px;align-items:start}
.pg-sysled .col{display:flex;flex-direction:column;gap:18px;min-width:0}
@media (max-width:900px){.pg-sysled .g2{grid-template-columns:minmax(0,1fr)}}
.pg-sysled .comps{display:flex;flex-direction:column}
.pg-sysled .comp{display:grid;grid-template-columns:14px minmax(0,1fr) auto 16px;gap:12px;align-items:center;width:100%;text-align:left;background:transparent;border:0;border-top:1px solid var(--line);padding:11px 8px;border-radius:8px;transition:background-color 160ms ease,transform 140ms var(--ease);animation:rise 420ms var(--ease) both}
.pg-sysled .comp:first-child{border-top-color:transparent}
.pg-sysled .comp:hover{background:var(--s2)}
.pg-sysled .comp:active{transform:scale(0.99)}
.pg-sysled .comp b{display:block;font-weight:600;font-size:14px}
.pg-sysled .comp .v{display:block;color:var(--ink2);font-size:12px}
.pg-sysled .comp time{color:var(--ink3);font-size:12px;white-space:nowrap}
.pg-sysled .comp .ar{color:var(--ink3);transition:transform 200ms var(--ease)}
.pg-sysled .comp:hover .ar{transform:translateX(3px);color:var(--ink)}
.pg-sysled .rh{display:flex;align-items:flex-start;gap:12px}
.pg-sysled .live{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink3)}
.pg-sysled .live i{width:8px;height:8px;border-radius:50%;background:var(--ok);animation:blink 1.2s ease-in-out infinite}
.pg-sysled .live.sim i{background:var(--teal)}
.pg-sysled .live.rep i{background:var(--ink3)}
.pg-sysled .bigst{font-size:30px;font-weight:600;line-height:1.1;letter-spacing:-0.01em}
.pg-sysled .bigsub{color:var(--ink2);font-size:13px;margin:4px 0 10px}
.pg-sysled .tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.pg-sysled .tile{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.pg-sysled .tile span{display:block;color:var(--ink3);font-size:12px}
.pg-sysled .tile b{display:block;font-size:19px;font-weight:600;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pg-sysled .tile small{display:block;color:var(--ink3);font-size:11px}
.pg-sysled .prog{height:6px;border-radius:3px;background:var(--s3);overflow:hidden;margin:8px 0 6px}
.pg-sysled .prog i{display:block;height:100%;background:var(--sky);border-radius:3px;transition:width 140ms linear}
.pg-sysled .prog.ok i{background:var(--ok)}
.pg-sysled .prog.bad i{background:var(--crit)}
.pg-sysled .tasks{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.pg-sysled .task-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pg-sysled .task-h b{font-weight:600}
.pg-sysled .st-run{color:var(--sky);font-size:12px;font-weight:600}
.pg-sysled .st-ok{color:var(--ok);font-size:12px;font-weight:600}
.pg-sysled .st-bad{color:var(--crit);font-size:12px;font-weight:600}
.pg-sysled .lnk{margin-left:auto;border:0;background:transparent;color:var(--ink2);font-size:12px;padding:4px 8px;border-radius:6px}
.pg-sysled .lnk:hover{background:var(--s2);color:var(--ink)}
.pg-sysled .tcap{color:var(--ink2);font-size:13px;margin:0}
.pg-sysled .track{width:100%;height:auto;display:block;margin:4px 0 2px}
.pg-sysled .tr-rail{stroke:var(--line);stroke-width:6;stroke-linecap:round}
.pg-sysled .tr-soft{fill:rgba(242,179,61,0.18)}
.pg-sysled .tr-lim{stroke:var(--ink3);stroke-width:2}
.pg-sysled .tr-lim.fault{stroke:var(--crit);stroke-width:3}
.pg-sysled .tr-home{stroke:var(--sky);stroke-width:2;stroke-dasharray:3 3}
.pg-sysled .tr-mark{stroke:var(--ink2);stroke-width:1.5}
.pg-sysled .tr-car{fill:var(--ink);transition:transform 250ms linear}
.pg-sysled .tr-tgt{fill:none;stroke:var(--sky);stroke-width:1.5;stroke-dasharray:2 2;transition:transform 200ms var(--ease)}
.pg-sysled .tr-t{fill:var(--ink3);font-size:11px;font-family:inherit}
.pg-sysled .tr-t.hi{fill:var(--ink2);font-weight:600}
.pg-sysled .moves{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:640px){.pg-sysled .moves,.pg-sysled .tiles{grid-template-columns:minmax(0,1fr)}}
.pg-sysled .mv{text-align:left;background:var(--s2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:3px;transition:background-color 160ms ease,border-color 160ms ease,transform 140ms var(--ease)}
.pg-sysled .mv:hover{background:var(--s3)}
.pg-sysled .mv:active{transform:scale(0.98)}
.pg-sysled .mv b{font-size:15px;font-weight:600}
.pg-sysled .mv span{font-size:12px;color:var(--ink3)}
.pg-sysled .mv em{font-style:normal;font-size:12px;font-weight:600;color:var(--sky)}
.pg-sysled .mv.on{border-color:var(--ok)}
.pg-sysled .mv.on em{color:var(--ok)}
.pg-sysled .mv.tgt{border-color:var(--sky)}
.pg-sysled .mv[disabled]{opacity:0.4;cursor:not-allowed;transform:none}
.pg-sysled .mv.big{padding:16px 16px;min-height:96px}
.pg-sysled .mv.big b{font-size:17px}
.pg-sysled .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.pg-sysled .injs{display:flex;gap:10px;flex-wrap:wrap}
.pg-sysled .btn.on{border-color:var(--amber);background:rgba(242,179,61,0.12)}
.pg-sysled .tbl{width:100%;border-collapse:collapse;font-size:13px}
.pg-sysled .tbl th{text-align:left;font-weight:500;color:var(--ink3);font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line)}
.pg-sysled .tbl td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.pg-sysled .tbl td.m{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ink2)}
.pg-sysled .tbl .n{text-align:right}
.pg-sysled .tblw{overflow-x:auto}
.pg-sysled .g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px;align-items:start}
@media (max-width:1100px){.pg-sysled .g3{grid-template-columns:minmax(0,1fr)}}
.pg-sysled .logl{display:flex;flex-direction:column}
.pg-sysled .le{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2);animation:rise 320ms var(--ease) both}
.pg-sysled .le:first-child{border-top:0}
.pg-sysled .le time{color:var(--ink3)}
.pg-sysled .rel{display:flex;gap:10px;flex-wrap:wrap}
.pg-sysled .relb{display:inline-flex;align-items:center;gap:10px;text-align:left;background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:10px 14px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-sysled .relb:hover{background:var(--s2);transform:translateY(-1px)}
.pg-sysled .relb:active{transform:scale(0.98)}
.pg-sysled .relb b{display:block;font-weight:600;font-size:13px}
.pg-sysled .relb small{display:block;color:var(--ink3);font-size:12px}
.pg-sysled .relb .ic{color:var(--ink3)}
.pg-sysled .sec{display:flex;align-items:baseline;gap:12px;margin:0 0 10px}
.pg-sysled .sec h2{margin:0;font-size:13px;font-weight:600;color:var(--ink2)}
.pg-sysled .sec span{font-size:12px;color:var(--ink3)}
.pg-sysled .ov{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px}
.pg-sysled .scrim{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;margin:0;background:rgba(4,7,11,0.68);cursor:default;animation:fade 200ms ease both}
@keyframes fade{from{opacity:0}to{opacity:1}}
.pg-sysled .dlg{position:relative;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;box-sizing:border-box;background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 24px 70px rgba(0,0,0,0.55);animation:dlgIn 280ms var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translateY(14px) scale(0.98)}to{opacity:1;transform:none}}
.pg-sysled .dlg-h{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.pg-sysled .dlg-h h2{margin:0;font-size:18px;font-weight:600}
.pg-sysled .x{margin-left:auto;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center;flex:none}
.pg-sysled .x:hover{background:var(--s3)}
.pg-sysled .spk{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:12px 0}
.pg-sysled .spk-h{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--ink3)}
.pg-sysled .spk-h b{color:var(--ink);font-weight:600}
.pg-sysled .spk svg{width:100%;height:64px;display:block;margin-top:6px}
.pg-sysled .spl{fill:none;stroke:var(--sky);stroke-width:1.8;vector-effect:non-scaling-stroke}
.pg-sysled .spa{fill:rgba(108,184,255,0.12);stroke:none}
.pg-sysled .dacts{display:flex;flex-direction:column;gap:10px}
.pg-sysled .dact{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:center}
.pg-sysled .dact .btn{justify-content:center}
.pg-sysled .okt{color:var(--ok);font-size:12px}
.pg-sysled .badt{color:var(--crit);font-size:12px}
.pg-sysled .runt{color:var(--ink2);font-size:12px}

.pg-sysled /* reference LED */
.srcs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pg-sysled .lvls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
@media (max-width:640px){.pg-sysled .srcs,.pg-sysled .lvls{grid-template-columns:minmax(0,1fr)}}
.pg-sysled .bits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 4px}
.pg-sysled .bit{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:10px;min-width:0}
.pg-sysled .bit .lamp{width:22px;height:22px;border-radius:50%;background:var(--s3);border:2px solid var(--line);flex:none;transition:background-color 200ms ease,box-shadow 200ms ease}
.pg-sysled .bit .lamp.on{background:var(--amber);border-color:var(--amber);box-shadow:0 0 12px rgba(242,179,61,0.55)}
.pg-sysled .bit .lamp.arm{background:var(--ok);border-color:var(--ok)}
.pg-sysled .bit .lamp.trip{background:var(--crit);border-color:var(--crit);animation:blink 1.1s ease-in-out infinite}
.pg-sysled .bit b{display:block;font-size:14px;font-weight:600}
.pg-sysled .bit small{display:block;color:var(--ink3);font-size:11px}
.pg-sysled .ibar{position:relative;height:12px;border-radius:6px;background:var(--s3);margin:10px 0 4px;overflow:hidden}
.pg-sysled .ibar i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:var(--sky);transition:width 250ms linear,background-color 200ms ease}
.pg-sysled .ibar i.warn{background:var(--amber)}
.pg-sysled .ibar .sat{position:absolute;top:0;bottom:0;left:95.2%;width:2px;background:var(--crit)}
.pg-sysled .ibar .good{position:absolute;top:0;bottom:0;left:35%;width:50%;background:rgba(94,211,176,0.14)}
.pg-sysled .ileg{display:flex;justify-content:space-between;font-size:11px;color:var(--ink3)}
.pg-sysled .trim{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.pg-sysled .trim .val{min-width:64px;text-align:center;font-weight:600;font-size:16px}
.pg-sysled .refused{animation:shake 360ms var(--ease) both}
@keyframes shake{20%{transform:translateX(-4px)}40%{transform:translateX(4px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}

/* ---- SysFeed ---- */
.pg-sysfeed .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-sysfeed .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-sysfeed button{font:inherit;color:inherit;cursor:pointer}
.pg-sysfeed .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-sysfeed .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-sysfeed .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-sysfeed .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-sysfeed .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-sysfeed .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-sysfeed .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-sysfeed .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-sysfeed .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-sysfeed .btn:hover{background:var(--s3)}
.pg-sysfeed .btn:active{transform:scale(0.97)}
.pg-sysfeed .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-sysfeed .btn-p:hover{background:#fff}
.pg-sysfeed .btn-p:active{transform:scale(0.97)}
.pg-sysfeed .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-sysfeed .kv:first-of-type{border-top:0}
.pg-sysfeed .kv .k{color:var(--ink3)}
.pg-sysfeed .kv b{font-weight:600;text-align:right}
.pg-sysfeed .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-sysfeed *,.pg-sysfeed *::before,.pg-sysfeed *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-sysfeed /* subsystem page */
.crumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pg-sysfeed .crumb{height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink2);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background-color 160ms ease,color 160ms ease}
.pg-sysfeed .crumb:hover{background:var(--s2);color:var(--ink)}
.pg-sysfeed .crumb .ic{width:13px;height:13px}
.pg-sysfeed .pill{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;letter-spacing:0}
.pg-sysfeed .pill.ok{background:rgba(94,211,176,0.14);color:var(--ok)}
.pg-sysfeed .pill.warn{background:rgba(242,179,61,0.14);color:var(--amber)}
.pg-sysfeed .pill.fault{background:rgba(255,111,97,0.16);color:var(--crit)}
.pg-sysfeed .pill.sim{background:rgba(60,198,196,0.14);color:var(--teal)}
.pg-sysfeed .dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block}
.pg-sysfeed .dot.ok{background:var(--ok);box-shadow:0 0 0 3px rgba(94,211,176,0.15)}
.pg-sysfeed .dot.warn{background:var(--amber);box-shadow:0 0 0 3px rgba(242,179,61,0.18)}
.pg-sysfeed .dot.fault{background:var(--crit);box-shadow:0 0 0 3px rgba(255,111,97,0.2);animation:blink 1.1s ease-in-out infinite}
@keyframes blink{50%{opacity:0.45}}
.pg-sysfeed .btn[disabled],.pg-sysfeed .btn-p[disabled]{opacity:0.42;cursor:not-allowed;transform:none}
.pg-sysfeed .why{flex-basis:100%;text-align:right;font-size:12px;color:var(--ink3)}
.pg-sysfeed .banner{display:flex;gap:12px;align-items:flex-start;border-radius:12px;padding:12px 16px;margin-bottom:16px;animation:rise 420ms var(--ease) both;font-size:13px;color:var(--ink2)}
.pg-sysfeed .banner b{display:block;color:var(--ink);font-size:14px;margin-bottom:2px}
.pg-sysfeed .banner.info{background:rgba(108,184,255,0.08);border:1px solid rgba(108,184,255,0.35)}
.pg-sysfeed .banner.info>.ic{color:var(--sky)}
.pg-sysfeed .banner.warn{background:rgba(242,179,61,0.08);border:1px solid rgba(242,179,61,0.4)}
.pg-sysfeed .banner.warn>.ic{color:var(--amber)}
.pg-sysfeed .banner.sim{background:rgba(60,198,196,0.08);border:1px solid rgba(60,198,196,0.38)}
.pg-sysfeed .banner.sim>.ic{color:var(--teal)}
.pg-sysfeed .banner.ok{background:rgba(94,211,176,0.08);border:1px solid rgba(94,211,176,0.35)}
.pg-sysfeed .banner.ok>.ic{color:var(--ok)}
.pg-sysfeed .banner.fault{background:rgba(255,111,97,0.08);border:1px solid rgba(255,111,97,0.4)}
.pg-sysfeed .banner.fault>.ic{color:var(--crit)}
.pg-sysfeed .banner .bx{margin-left:auto}
.pg-sysfeed .job{background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:16px;animation:rise 300ms var(--ease) both}
.pg-sysfeed .job .jt{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin-bottom:8px}
.pg-sysfeed .job .jt span{color:var(--ink3)}
.pg-sysfeed .bar{height:6px;border-radius:999px;background:var(--s3);overflow:hidden}
.pg-sysfeed .bar i{display:block;height:100%;background:var(--sky);border-radius:999px;transition:width 120ms linear}
.pg-sysfeed .sys-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}
.pg-sysfeed .comps{display:flex;flex-direction:column;gap:8px}
.pg-sysfeed .comp{display:grid;grid-template-columns:14px minmax(0,1fr) auto 16px;gap:12px;align-items:center;width:100%;text-align:left;background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;transition:background-color 160ms ease,border-color 160ms ease,transform 140ms var(--ease)}
.pg-sysfeed .comp:hover{background:var(--s3);border-color:#33435A}
.pg-sysfeed .comp:active{transform:scale(0.99)}
.pg-sysfeed .comp b{display:block;font-weight:600;font-size:14px}
.pg-sysfeed .comp .v{display:block;color:var(--ink2);font-size:12px}
.pg-sysfeed .comp .tech{display:block;color:var(--ink3);font-size:11px;margin-top:3px}
.pg-sysfeed .comp time{color:var(--ink3);font-size:12px;white-space:nowrap}
.pg-sysfeed .comp .ar{color:var(--ink3)}
.pg-sysfeed .tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pg-sysfeed .tile{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.pg-sysfeed .tile small{display:block;color:var(--ink3);font-size:12px}
.pg-sysfeed .tile b{display:block;font-size:20px;font-weight:600;line-height:1.25;margin-top:2px}
.pg-sysfeed .tile.big b{font-size:30px}
.pg-sysfeed .tile.warn b{color:var(--amber)}
.pg-sysfeed .tile.fault b{color:var(--crit)}
.pg-sysfeed .spk{margin-top:12px;background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.pg-sysfeed .spk .sl{display:flex;justify-content:space-between;font-size:12px;color:var(--ink3);margin-bottom:6px}
.pg-sysfeed .fbtns{display:flex;flex-wrap:wrap;gap:8px}
.pg-sysfeed .fbtn{height:34px;padding:0 12px;border-radius:9px;border:1px dashed var(--line);background:transparent;color:var(--ink2);font-size:13px;display:inline-flex;align-items:center;gap:6px;transition:background-color 160ms ease,border-color 160ms ease}
.pg-sysfeed .fbtn:hover{background:var(--s2)}
.pg-sysfeed .fbtn.on{border-style:solid;border-color:var(--amber);color:var(--amber);background:rgba(242,179,61,0.08)}
.pg-sysfeed .fbtn.on.f{border-color:var(--crit);color:var(--crit);background:rgba(255,111,97,0.08)}
.pg-sysfeed .eng{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.pg-sysfeed .tbx{overflow-x:auto}
.pg-sysfeed .tb{font-size:12px;min-width:420px}
.pg-sysfeed .tr{display:grid;gap:10px;padding:6px 8px;border-bottom:1px solid var(--line);color:var(--ink2);align-items:center}
.pg-sysfeed .tr>span{min-width:0;overflow-wrap:anywhere}
.pg-sysfeed .tr>span:first-child{color:var(--ink)}
.pg-sysfeed .tr.th{color:var(--ink3);font-weight:500}
.pg-sysfeed .tr.th>span:first-child{color:var(--ink3)}
.pg-sysfeed .tb code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:var(--ink)}
.pg-sysfeed .log{display:flex;flex-direction:column;max-height:300px;overflow:auto}
.pg-sysfeed .le{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2)}
.pg-sysfeed .le:first-child{border-top:0}
.pg-sysfeed .le time{color:var(--ink3)}
.pg-sysfeed .rel{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:20px}
.pg-sysfeed .rel>span{font-size:13px;font-weight:600;color:var(--ink2);margin-right:4px}
.pg-sysfeed .modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px}
.pg-sysfeed .scrim{position:absolute;inset:0;background:rgba(4,7,11,0.74);border:0;padding:0;margin:0;cursor:default;animation:fadeIn 220ms ease both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.pg-sysfeed .dlg{position:relative;width:min(580px,100%);max-height:calc(100vh - 32px);overflow:auto;box-sizing:border-box;background:var(--s1);border:1px solid #33435A;border-radius:16px;padding:20px;box-shadow:0 24px 60px rgba(0,0,0,0.5);animation:dlgIn 280ms var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translateY(12px) scale(0.98)}to{opacity:1;transform:none}}
.pg-sysfeed .dlg h3{margin:0;font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pg-sysfeed .dlg .x{position:absolute;right:14px;top:14px;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center}
.pg-sysfeed .dlg .x:hover{background:var(--s3)}
.pg-sysfeed .dlg .dv{display:flex;align-items:baseline;gap:10px;margin:14px 0 6px}
.pg-sysfeed .dlg .dv b{font-size:26px;font-weight:600}
.pg-sysfeed .dlg .dv span{color:var(--ink3);font-size:12px}
.pg-sysfeed .dacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.pg-sysfeed .res{margin-top:12px;font-size:13px;padding:8px 12px;border-radius:9px}
.pg-sysfeed .res.ok{background:rgba(94,211,176,0.1);color:var(--ok)}
.pg-sysfeed .res.fault{background:rgba(255,111,97,0.1);color:var(--crit)}
@media (max-width: 900px){.pg-sysfeed .sys-grid,.pg-sysfeed .eng{grid-template-columns:minmax(0,1fr)}.pg-sysfeed .mod{padding:20px 16px 32px}.pg-sysfeed .why{text-align:left}}

/* ---- SysServer ---- */
.pg-sysserver .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-sysserver .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-sysserver button{font:inherit;color:inherit;cursor:pointer}
.pg-sysserver .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-sysserver .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-sysserver .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-sysserver .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-sysserver .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-sysserver .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-sysserver .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-sysserver .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-sysserver .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-sysserver .btn:hover{background:var(--s3)}
.pg-sysserver .btn:active{transform:scale(0.97)}
.pg-sysserver .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-sysserver .btn-p:hover{background:#fff}
.pg-sysserver .btn-p:active{transform:scale(0.97)}
.pg-sysserver .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-sysserver .kv:first-of-type{border-top:0}
.pg-sysserver .kv .k{color:var(--ink3)}
.pg-sysserver .kv b{font-weight:600;text-align:right}
.pg-sysserver .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-sysserver *,.pg-sysserver *::before,.pg-sysserver *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-sysserver /* subsystem page */
.crumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pg-sysserver .crumb{height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink2);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background-color 160ms ease,color 160ms ease}
.pg-sysserver .crumb:hover{background:var(--s2);color:var(--ink)}
.pg-sysserver .crumb .ic{width:13px;height:13px}
.pg-sysserver .pill{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;letter-spacing:0}
.pg-sysserver .pill.ok{background:rgba(94,211,176,0.14);color:var(--ok)}
.pg-sysserver .pill.warn{background:rgba(242,179,61,0.14);color:var(--amber)}
.pg-sysserver .pill.fault{background:rgba(255,111,97,0.16);color:var(--crit)}
.pg-sysserver .pill.sim{background:rgba(60,198,196,0.14);color:var(--teal)}
.pg-sysserver .dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block}
.pg-sysserver .dot.ok{background:var(--ok);box-shadow:0 0 0 3px rgba(94,211,176,0.15)}
.pg-sysserver .dot.warn{background:var(--amber);box-shadow:0 0 0 3px rgba(242,179,61,0.18)}
.pg-sysserver .dot.fault{background:var(--crit);box-shadow:0 0 0 3px rgba(255,111,97,0.2);animation:blink 1.1s ease-in-out infinite}
@keyframes blink{50%{opacity:0.45}}
.pg-sysserver .btn[disabled],.pg-sysserver .btn-p[disabled]{opacity:0.42;cursor:not-allowed;transform:none}
.pg-sysserver .why{flex-basis:100%;text-align:right;font-size:12px;color:var(--ink3)}
.pg-sysserver .banner{display:flex;gap:12px;align-items:flex-start;border-radius:12px;padding:12px 16px;margin-bottom:16px;animation:rise 420ms var(--ease) both;font-size:13px;color:var(--ink2)}
.pg-sysserver .banner b{display:block;color:var(--ink);font-size:14px;margin-bottom:2px}
.pg-sysserver .banner.info{background:rgba(108,184,255,0.08);border:1px solid rgba(108,184,255,0.35)}
.pg-sysserver .banner.info>.ic{color:var(--sky)}
.pg-sysserver .banner.warn{background:rgba(242,179,61,0.08);border:1px solid rgba(242,179,61,0.4)}
.pg-sysserver .banner.warn>.ic{color:var(--amber)}
.pg-sysserver .banner.sim{background:rgba(60,198,196,0.08);border:1px solid rgba(60,198,196,0.38)}
.pg-sysserver .banner.sim>.ic{color:var(--teal)}
.pg-sysserver .banner.ok{background:rgba(94,211,176,0.08);border:1px solid rgba(94,211,176,0.35)}
.pg-sysserver .banner.ok>.ic{color:var(--ok)}
.pg-sysserver .banner.fault{background:rgba(255,111,97,0.08);border:1px solid rgba(255,111,97,0.4)}
.pg-sysserver .banner.fault>.ic{color:var(--crit)}
.pg-sysserver .banner .bx{margin-left:auto}
.pg-sysserver .job{background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:16px;animation:rise 300ms var(--ease) both}
.pg-sysserver .job .jt{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin-bottom:8px}
.pg-sysserver .job .jt span{color:var(--ink3)}
.pg-sysserver .bar{height:6px;border-radius:999px;background:var(--s3);overflow:hidden}
.pg-sysserver .bar i{display:block;height:100%;background:var(--sky);border-radius:999px;transition:width 120ms linear}
.pg-sysserver .sys-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}
.pg-sysserver .comps{display:flex;flex-direction:column;gap:8px}
.pg-sysserver .comp{display:grid;grid-template-columns:14px minmax(0,1fr) auto 16px;gap:12px;align-items:center;width:100%;text-align:left;background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;transition:background-color 160ms ease,border-color 160ms ease,transform 140ms var(--ease)}
.pg-sysserver .comp:hover{background:var(--s3);border-color:#33435A}
.pg-sysserver .comp:active{transform:scale(0.99)}
.pg-sysserver .comp b{display:block;font-weight:600;font-size:14px}
.pg-sysserver .comp .v{display:block;color:var(--ink2);font-size:12px}
.pg-sysserver .comp .tech{display:block;color:var(--ink3);font-size:11px;margin-top:3px}
.pg-sysserver .comp time{color:var(--ink3);font-size:12px;white-space:nowrap}
.pg-sysserver .comp .ar{color:var(--ink3)}
.pg-sysserver .tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pg-sysserver .tile{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.pg-sysserver .tile small{display:block;color:var(--ink3);font-size:12px}
.pg-sysserver .tile b{display:block;font-size:20px;font-weight:600;line-height:1.25;margin-top:2px}
.pg-sysserver .tile.big b{font-size:30px}
.pg-sysserver .tile.warn b{color:var(--amber)}
.pg-sysserver .tile.fault b{color:var(--crit)}
.pg-sysserver .spk{margin-top:12px;background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.pg-sysserver .spk .sl{display:flex;justify-content:space-between;font-size:12px;color:var(--ink3);margin-bottom:6px}
.pg-sysserver .fbtns{display:flex;flex-wrap:wrap;gap:8px}
.pg-sysserver .fbtn{height:34px;padding:0 12px;border-radius:9px;border:1px dashed var(--line);background:transparent;color:var(--ink2);font-size:13px;display:inline-flex;align-items:center;gap:6px;transition:background-color 160ms ease,border-color 160ms ease}
.pg-sysserver .fbtn:hover{background:var(--s2)}
.pg-sysserver .fbtn.on{border-style:solid;border-color:var(--amber);color:var(--amber);background:rgba(242,179,61,0.08)}
.pg-sysserver .fbtn.on.f{border-color:var(--crit);color:var(--crit);background:rgba(255,111,97,0.08)}
.pg-sysserver .eng{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.pg-sysserver .tbx{overflow-x:auto}
.pg-sysserver .tb{font-size:12px;min-width:420px}
.pg-sysserver .tr{display:grid;gap:10px;padding:6px 8px;border-bottom:1px solid var(--line);color:var(--ink2);align-items:center}
.pg-sysserver .tr>span{min-width:0;overflow-wrap:anywhere}
.pg-sysserver .tr>span:first-child{color:var(--ink)}
.pg-sysserver .tr.th{color:var(--ink3);font-weight:500}
.pg-sysserver .tr.th>span:first-child{color:var(--ink3)}
.pg-sysserver .tb code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:var(--ink)}
.pg-sysserver .log{display:flex;flex-direction:column;max-height:300px;overflow:auto}
.pg-sysserver .le{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2)}
.pg-sysserver .le:first-child{border-top:0}
.pg-sysserver .le time{color:var(--ink3)}
.pg-sysserver .rel{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:20px}
.pg-sysserver .rel>span{font-size:13px;font-weight:600;color:var(--ink2);margin-right:4px}
.pg-sysserver .modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px}
.pg-sysserver .scrim{position:absolute;inset:0;background:rgba(4,7,11,0.74);border:0;padding:0;margin:0;cursor:default;animation:fadeIn 220ms ease both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.pg-sysserver .dlg{position:relative;width:min(580px,100%);max-height:calc(100vh - 32px);overflow:auto;box-sizing:border-box;background:var(--s1);border:1px solid #33435A;border-radius:16px;padding:20px;box-shadow:0 24px 60px rgba(0,0,0,0.5);animation:dlgIn 280ms var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translateY(12px) scale(0.98)}to{opacity:1;transform:none}}
.pg-sysserver .dlg h3{margin:0;font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pg-sysserver .dlg .x{position:absolute;right:14px;top:14px;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center}
.pg-sysserver .dlg .x:hover{background:var(--s3)}
.pg-sysserver .dlg .dv{display:flex;align-items:baseline;gap:10px;margin:14px 0 6px}
.pg-sysserver .dlg .dv b{font-size:26px;font-weight:600}
.pg-sysserver .dlg .dv span{color:var(--ink3);font-size:12px}
.pg-sysserver .dacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.pg-sysserver .res{margin-top:12px;font-size:13px;padding:8px 12px;border-radius:9px}
.pg-sysserver .res.ok{background:rgba(94,211,176,0.1);color:var(--ok)}
.pg-sysserver .res.fault{background:rgba(255,111,97,0.1);color:var(--crit)}
@media (max-width: 900px){.pg-sysserver .sys-grid,.pg-sysserver .eng{grid-template-columns:minmax(0,1fr)}.pg-sysserver .mod{padding:20px 16px 32px}.pg-sysserver .why{text-align:left}}

/* ---- SysStorage ---- */
.pg-sysstorage .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-sysstorage .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-sysstorage button{font:inherit;color:inherit;cursor:pointer}
.pg-sysstorage button:disabled{cursor:not-allowed;opacity:0.45}
.pg-sysstorage .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-sysstorage .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-sysstorage .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-sysstorage .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-sysstorage .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-sysstorage .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-sysstorage .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-sysstorage .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-sysstorage .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-sysstorage .btn:hover{background:var(--s3)}
.pg-sysstorage .btn:active{transform:scale(0.97)}
.pg-sysstorage .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-sysstorage .btn-p:hover{background:#fff}
.pg-sysstorage .btn-p:active{transform:scale(0.97)}
.pg-sysstorage .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-sysstorage .kv:first-of-type{border-top:0}
.pg-sysstorage .kv .k{color:var(--ink3)}
.pg-sysstorage .kv b{font-weight:600;text-align:right}
.pg-sysstorage .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-sysstorage *,.pg-sysstorage *::before,.pg-sysstorage *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-sysstorage /* subsystem page */
.crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px;font-size:12px;color:var(--ink3)}
.pg-sysstorage .crumb{height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--ink2);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background-color 160ms ease,color 160ms ease}
.pg-sysstorage .crumb:hover{background:var(--s2);color:var(--ink)}
.pg-sysstorage .crumb .ic{width:13px;height:13px}
.pg-sysstorage .pill{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;letter-spacing:0}
.pg-sysstorage .pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pg-sysstorage .pill.ok{color:var(--ok);background:rgba(94,211,176,0.12)}
.pg-sysstorage .pill.warn{color:var(--amber);background:rgba(242,179,61,0.12)}
.pg-sysstorage .pill.crit{color:var(--crit);background:rgba(255,111,97,0.12)}
.pg-sysstorage .banner{display:flex;gap:10px;align-items:flex-start;border-radius:12px;padding:10px 14px;margin-bottom:16px;font-size:13px;color:var(--ink2)}
.pg-sysstorage .banner b{color:var(--ink)}
.pg-sysstorage .banner.info{background:rgba(108,184,255,0.08);border:1px solid rgba(108,184,255,0.35)}
.pg-sysstorage .banner.sim{background:rgba(60,198,196,0.08);border:1px solid rgba(60,198,196,0.4)}
.pg-sysstorage .banner.warn{background:rgba(242,179,61,0.08);border:1px solid rgba(242,179,61,0.4)}
.pg-sysstorage .banner.crit{background:rgba(255,111,97,0.08);border:1px solid rgba(255,111,97,0.45)}
.pg-sysstorage .banner .ic{margin-top:2px}
.pg-sysstorage .grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
.pg-sysstorage .grid-main{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;margin-bottom:16px;align-items:start}
@media (max-width:900px){.pg-sysstorage .grid2,.pg-sysstorage .grid-main{grid-template-columns:minmax(0,1fr)}.pg-sysstorage .mod{padding:20px 16px 32px}}
.pg-sysstorage .clist{display:flex;flex-direction:column;gap:6px}
.pg-sysstorage .comp{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;width:100%;background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;transition:background-color 160ms ease,border-color 160ms ease,transform 140ms var(--ease)}
.pg-sysstorage .comp:hover{background:var(--s3);border-color:#33435A}
.pg-sysstorage .comp:active{transform:scale(0.99)}
.pg-sysstorage .comp b{display:block;font-weight:600;font-size:13px}
.pg-sysstorage .comp small{display:block;color:var(--ink3);font-size:12px}
.pg-sysstorage .comp .rv{text-align:right}
.pg-sysstorage .comp .rv span{display:block;font-weight:600;font-size:13px}
.pg-sysstorage .comp .rv time{display:block;color:var(--ink3);font-size:11px}
.pg-sysstorage .dot{width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(94,211,176,0.15)}
.pg-sysstorage .dot.warn{background:var(--amber);box-shadow:0 0 0 3px rgba(242,179,61,0.18)}
.pg-sysstorage .dot.crit{background:var(--crit);box-shadow:0 0 0 3px rgba(255,111,97,0.2);animation:blink 1.2s ease-in-out infinite}
.pg-sysstorage .dot.off{background:var(--ink3);box-shadow:none}
@keyframes blink{50%{opacity:0.45}}
.pg-sysstorage .tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pg-sysstorage .tile{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.pg-sysstorage .tile small{display:block;color:var(--ink3);font-size:12px}
.pg-sysstorage .tile b{display:block;font-size:20px;font-weight:600;margin-top:2px}
.pg-sysstorage .tile em{font-style:normal;color:var(--ink3);font-size:12px}
.pg-sysstorage .big{font-size:34px;font-weight:600;line-height:1.1}
.pg-sysstorage .prog{height:6px;border-radius:999px;background:var(--s3);overflow:hidden;margin-top:8px}
.pg-sysstorage .prog i{display:block;height:100%;background:var(--sky);border-radius:999px;transition:width 120ms linear}
.pg-sysstorage .res{border-radius:10px;padding:10px 12px;margin-top:10px;font-size:13px;animation:rise 320ms var(--ease) both}
.pg-sysstorage .res.ok{background:rgba(94,211,176,0.08);border:1px solid rgba(94,211,176,0.35)}
.pg-sysstorage .res.crit{background:rgba(255,111,97,0.08);border:1px solid rgba(255,111,97,0.4)}
.pg-sysstorage .res.info{background:rgba(108,184,255,0.08);border:1px solid rgba(108,184,255,0.35)}
.pg-sysstorage .why{font-size:12px;color:var(--amber);margin-top:6px}
.pg-sysstorage .tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.pg-sysstorage .tbl th{text-align:left;color:var(--ink3);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.pg-sysstorage .tbl td{padding:7px 8px;border-bottom:1px solid var(--line)}
.pg-sysstorage .tbl td.n,.pg-sysstorage .tbl th.n{text-align:right}
.pg-sysstorage .tbl tr:last-child td{border-bottom:0}
.pg-sysstorage .tbl .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ink2)}
.pg-sysstorage .tbox{overflow-x:auto}
.pg-sysstorage .log{display:flex;flex-direction:column}
.pg-sysstorage .le{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2)}
.pg-sysstorage .le:first-child{border-top:0}
.pg-sysstorage .le time{color:var(--ink3)}
.pg-sysstorage .rel{display:flex;gap:10px;flex-wrap:wrap}
.pg-sysstorage .inj{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pg-sysstorage .btn-s{height:32px;padding:0 12px;font-size:12px;border-radius:8px}
.pg-sysstorage .btn-w{border-color:rgba(242,179,61,0.5);color:#F7CF7F}
.pg-sysstorage .btn-d{border-color:rgba(255,111,97,0.55);color:#FFB3AB}
.pg-sysstorage .ovl{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;animation:fadeIn 200ms ease both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.pg-sysstorage .scrim{position:absolute;inset:0;border:0;background:rgba(4,7,11,0.66);cursor:default}
.pg-sysstorage .dlg{position:relative;width:560px;max-width:100%;max-height:calc(100vh - 32px);overflow:auto;background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 30px 80px rgba(0,0,0,0.5);animation:dlgIn 320ms var(--ease) both;box-sizing:border-box}
@keyframes dlgIn{from{opacity:0;transform:translateY(14px) scale(0.98)}to{opacity:1;transform:none}}
.pg-sysstorage .dlg h3{margin:0;font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pg-sysstorage .xbtn{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center}
.pg-sysstorage .xbtn:hover{background:var(--s3)}
.pg-sysstorage .spark{width:100%;height:70px;display:block;margin:6px 0 4px}
.pg-sysstorage .sw{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.pg-sysstorage .sw:first-of-type{border-top:0}
.pg-sysstorage .sw b{display:block;font-size:13px;font-weight:600}
.pg-sysstorage .sw small{display:block;color:var(--ink3);font-size:12px}
.pg-sysstorage .tog{width:46px;height:26px;border-radius:999px;border:1px solid var(--line);background:var(--s3);position:relative;padding:0;transition:background-color 200ms ease,border-color 200ms ease}
.pg-sysstorage .tog::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--ink3);transition:transform 240ms var(--ease),background-color 200ms ease}
.pg-sysstorage .tog.on{background:rgba(94,211,176,0.22);border-color:rgba(94,211,176,0.6)}
.pg-sysstorage .tog.on::after{transform:translateX(20px);background:var(--ok)}
.pg-sysstorage .dbar{display:flex;height:16px;border-radius:999px;overflow:hidden;background:var(--s3);margin:10px 0 12px}
.pg-sysstorage .dbar i{display:block;height:100%;transition:width 400ms var(--ease)}
.pg-sysstorage .dleg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;font-size:12.5px}
.pg-sysstorage .dleg span{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:4px 0;border-top:1px solid var(--line)}
.pg-sysstorage .dleg em{font-style:normal;display:flex;align-items:center;gap:8px;color:var(--ink2)}
.pg-sysstorage .dleg em i{width:10px;height:10px;border-radius:3px;display:inline-block}
.pg-sysstorage .tag{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--s3);color:var(--ink2);white-space:nowrap}
.pg-sysstorage .tag.cur{background:rgba(108,184,255,0.16);color:var(--sky)}
.pg-sysstorage .tag.ok{background:rgba(94,211,176,0.14);color:var(--ok)}
.pg-sysstorage .tag.warn{background:rgba(242,179,61,0.14);color:var(--amber)}
.pg-sysstorage .tag.crit{background:rgba(255,111,97,0.14);color:var(--crit)}
.pg-sysstorage .tbl tr.new td{animation:rise 400ms var(--ease) both;background:rgba(108,184,255,0.05)}
.pg-sysstorage .rowacts{display:flex;gap:6px;justify-content:flex-end}
.pg-sysstorage .steps{display:flex;flex-direction:column;gap:6px;margin-top:12px;font-size:13px}
.pg-sysstorage .steps span{display:flex;align-items:center;gap:8px;color:var(--ink3)}
.pg-sysstorage .steps span.done{color:var(--ink)}
.pg-sysstorage .steps span.done .ic{color:var(--ok)}
.pg-sysstorage .steps span.now{color:var(--sky)}
@media (max-width:700px){.pg-sysstorage .dleg{grid-template-columns:minmax(0,1fr)}}

/* ---- SysSupport ---- */
.pg-syssupport .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-syssupport .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-syssupport button{font:inherit;color:inherit;cursor:pointer}
.pg-syssupport button:disabled{opacity:0.45;cursor:not-allowed}
.pg-syssupport .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-syssupport .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-syssupport .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-syssupport .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-syssupport .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-syssupport .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-syssupport .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-syssupport .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-syssupport .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-syssupport .btn:hover{background:var(--s3)}
.pg-syssupport .btn:active{transform:scale(0.97)}
.pg-syssupport .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-syssupport .btn-p:hover{background:#fff}
.pg-syssupport .btn-p:active{transform:scale(0.97)}
.pg-syssupport .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-syssupport .kv:first-of-type{border-top:0}
.pg-syssupport .kv .k{color:var(--ink3)}
.pg-syssupport .kv b{font-weight:600;text-align:right}
.pg-syssupport .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-syssupport *,.pg-syssupport *::before,.pg-syssupport *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-syssupport /* subsystem shared */
.crumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pg-syssupport .crumb{height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink2);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background-color 160ms ease,color 160ms ease}
.pg-syssupport .crumb:hover{background:var(--s2);color:var(--ink)}
.pg-syssupport .crumb .ic{width:13px;height:13px}
.pg-syssupport .bnr{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--s1);margin-bottom:16px;font-size:13px;color:var(--ink2)}
.pg-syssupport .bnr b{color:var(--ink);font-weight:600}
.pg-syssupport .bnr .dot{width:8px;height:8px;border-radius:50%;flex:none}
.pg-syssupport .job{margin-bottom:16px}
.pg-syssupport .job-h{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:13px;margin-bottom:8px}
.pg-syssupport .pg{height:6px;background:var(--s3);border-radius:3px;overflow:hidden}
.pg-syssupport .pg i{display:block;height:100%;background:var(--sky);border-radius:3px;transition:width 140ms linear}
.pg-syssupport .res{display:flex;align-items:flex-start;gap:8px;font-size:13px;margin-top:8px}
.pg-syssupport .grid2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;align-items:start;margin-bottom:18px}
.pg-syssupport .comps{display:flex;flex-direction:column;gap:6px}
.pg-syssupport .comp{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--s2);transition:background-color 160ms ease,border-color 160ms ease,transform 140ms var(--ease)}
.pg-syssupport .comp:hover{background:var(--s3);border-color:#33435A}
.pg-syssupport .comp:active{transform:scale(0.99)}
.pg-syssupport .comp b{display:block;font-weight:600;font-size:13px}
.pg-syssupport .comp small{display:block;color:var(--ink3);font-size:12px}
.pg-syssupport .comp .rv{text-align:right;font-size:13px;font-weight:500}
.pg-syssupport .comp .rv time{display:block;color:var(--ink3);font-size:11px;font-weight:400}
.pg-syssupport .sdot{width:10px;height:10px;border-radius:50%}
.pg-syssupport .live{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pg-syssupport .lv{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.pg-syssupport .lv span{display:block;color:var(--ink3);font-size:12px}
.pg-syssupport .lv b{display:block;font-size:20px;font-weight:600;margin:2px 0 6px}
.pg-syssupport .lv.big b{font-size:28px}
.pg-syssupport .lv small{display:block;color:var(--ink3);font-size:11px;margin-top:4px}
.pg-syssupport .bar{position:relative;height:6px;background:var(--s3);border-radius:3px}
.pg-syssupport .bar .z{position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--ink3)}
.pg-syssupport .bar .m{position:absolute;top:-3px;width:4px;height:12px;border-radius:2px;margin-left:-2px;transition:left 600ms var(--ease)}
.pg-syssupport .rel{display:flex;gap:8px;flex-wrap:wrap}
.pg-syssupport .tbl{width:100%;border-collapse:collapse;font-size:12px}
.pg-syssupport .tbl th{text-align:left;color:var(--ink3);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--line)}
.pg-syssupport .tbl td{padding:6px 8px;border-bottom:1px solid var(--line);color:var(--ink2)}
.pg-syssupport .tbl td:first-child{color:var(--ink);font-family:ui-monospace,Menlo,monospace;font-size:11.5px}
.pg-syssupport .tw{overflow-x:auto}
.pg-syssupport .log{display:flex;flex-direction:column}
.pg-syssupport .le{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2)}
.pg-syssupport .le:first-child{border-top:0}
.pg-syssupport .le time{color:var(--ink3)}
.pg-syssupport .le.warn div{color:var(--amber)}
.pg-syssupport .le.crit div{color:var(--crit)}
.pg-syssupport .inj{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pg-syssupport .inj .btn{height:34px;font-size:13px}
.pg-syssupport .ov{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px}
.pg-syssupport .ov .scrim{position:absolute;inset:0;background:rgba(4,7,11,0.66);border:0;padding:0;cursor:default;animation:fadeIn 200ms ease both}
@keyframes fadeIn{from{opacity:0}}
.pg-syssupport .dlg{position:relative;width:min(580px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:20px;box-sizing:border-box;box-shadow:0 30px 80px rgba(0,0,0,0.5);animation:dlgIn 300ms var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translateY(14px) scale(0.98)}}
.pg-syssupport .dlg-h{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.pg-syssupport .dlg-h h3{margin:0;font-size:18px;font-weight:600}
.pg-syssupport .dlg-h p{margin:2px 0 0;color:var(--ink3);font-size:12px}
.pg-syssupport .x{margin-left:auto;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center;flex:none}
.pg-syssupport .x:hover{background:var(--s3)}
.pg-syssupport .pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid currentColor}
.pg-syssupport .spk{width:100%;height:64px;display:block;background:var(--s2);border-radius:10px;border:1px solid var(--line)}
.pg-syssupport .spk path{fill:none;stroke:var(--sky);stroke-width:1.6;vector-effect:non-scaling-stroke}
.pg-syssupport .spk .lim{stroke:var(--ink3);stroke-dasharray:3 3;stroke-width:1}
.pg-syssupport .note{font-size:13px;color:var(--ink2);margin:10px 0 0}

.pg-syssupport /* support */
.sp-map{position:relative;width:100%;max-width:400px;aspect-ratio:1/1;margin:4px auto 0}
.pg-syssupport .sp-map svg.bg{position:absolute;inset:0;width:100%;height:100%}
.pg-syssupport .sp-map .bg circle{fill:none;stroke:var(--line);stroke-width:0.4}
.pg-syssupport .sp-map .bg .mir{fill:var(--s2);stroke:#33435A;stroke-width:0.6}
.pg-syssupport .sp-map .bg .hole{fill:var(--bg);stroke:#33435A;stroke-width:0.5}
.pg-syssupport .sp-map .bg .hp{fill:var(--sky2);stroke:var(--sky);stroke-width:0.4}
.pg-syssupport .sp-act{position:absolute;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;border:1px solid #3A4B62;background:#1F2A38;color:var(--ink2);font-size:9.5px;font-weight:600;padding:0;display:grid;place-items:center;transition:transform 160ms var(--ease),background-color 160ms ease,opacity 200ms ease,border-color 160ms ease}
.pg-syssupport .sp-act:hover{transform:scale(1.25);background:var(--s3);color:var(--ink);z-index:3;border-color:var(--sky)}
.pg-syssupport .sp-act.warn{background:rgba(242,179,61,0.22);border-color:var(--amber);color:var(--amber)}
.pg-syssupport .sp-act.crit{background:rgba(255,111,97,0.22);border-color:var(--crit);color:var(--crit);animation:blink 1.6s ease-in-out infinite}
.pg-syssupport .sp-act.dim{opacity:0.28}
.pg-syssupport .sp-act.sel{box-shadow:0 0 0 3px var(--sky);z-index:4}
@keyframes blink{50%{box-shadow:0 0 0 4px rgba(255,111,97,0.25)}}
.pg-syssupport .seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.pg-syssupport .seg button{height:30px;padding:0 10px;border:0;background:transparent;color:var(--ink2);font-size:12px;font-weight:500}
.pg-syssupport .seg button.on{background:var(--s3);color:var(--ink)}
.pg-syssupport .leg{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink3);margin-top:10px;justify-content:center}
.pg-syssupport .leg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.pg-syssupport .flg{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.pg-syssupport .flg button{display:flex;gap:10px;align-items:center;text-align:left;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:var(--s2);font-size:12.5px}
.pg-syssupport .flg button:hover{background:var(--s3)}
.pg-syssupport .focus{box-shadow:0 0 0 2px var(--sky);animation:focusPulse 1.6s ease-in-out 3}
@keyframes focusPulse{50%{box-shadow:0 0 0 6px rgba(108,184,255,0.25)}}
@media (max-width:900px){.pg-syssupport .grid2{grid-template-columns:minmax(0,1fr)}}

/* ---- SysSecondaryAxes ---- */
.pg-syssecondaryaxes .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-syssecondaryaxes .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-syssecondaryaxes button{font:inherit;color:inherit;cursor:pointer}
.pg-syssecondaryaxes button:disabled{opacity:0.45;cursor:not-allowed}
.pg-syssecondaryaxes .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-syssecondaryaxes .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-syssecondaryaxes .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-syssecondaryaxes .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-syssecondaryaxes .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-syssecondaryaxes .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-syssecondaryaxes .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-syssecondaryaxes .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-syssecondaryaxes .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-syssecondaryaxes .btn:hover{background:var(--s3)}
.pg-syssecondaryaxes .btn:active{transform:scale(0.97)}
.pg-syssecondaryaxes .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-syssecondaryaxes .btn-p:hover{background:#fff}
.pg-syssecondaryaxes .btn-p:active{transform:scale(0.97)}
.pg-syssecondaryaxes .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-syssecondaryaxes .kv:first-of-type{border-top:0}
.pg-syssecondaryaxes .kv .k{color:var(--ink3)}
.pg-syssecondaryaxes .kv b{font-weight:600;text-align:right}
.pg-syssecondaryaxes .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-syssecondaryaxes *,.pg-syssecondaryaxes *::before,.pg-syssecondaryaxes *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-syssecondaryaxes /* subsystem shared */
.crumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pg-syssecondaryaxes .crumb{height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink2);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background-color 160ms ease,color 160ms ease}
.pg-syssecondaryaxes .crumb:hover{background:var(--s2);color:var(--ink)}
.pg-syssecondaryaxes .crumb .ic{width:13px;height:13px}
.pg-syssecondaryaxes .bnr{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--s1);margin-bottom:16px;font-size:13px;color:var(--ink2)}
.pg-syssecondaryaxes .bnr b{color:var(--ink);font-weight:600}
.pg-syssecondaryaxes .bnr .dot{width:8px;height:8px;border-radius:50%;flex:none}
.pg-syssecondaryaxes .job{margin-bottom:16px}
.pg-syssecondaryaxes .job-h{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:13px;margin-bottom:8px}
.pg-syssecondaryaxes .pg{height:6px;background:var(--s3);border-radius:3px;overflow:hidden}
.pg-syssecondaryaxes .pg i{display:block;height:100%;background:var(--sky);border-radius:3px;transition:width 140ms linear}
.pg-syssecondaryaxes .res{display:flex;align-items:flex-start;gap:8px;font-size:13px;margin-top:8px}
.pg-syssecondaryaxes .grid2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;align-items:start;margin-bottom:18px}
.pg-syssecondaryaxes .comps{display:flex;flex-direction:column;gap:6px}
.pg-syssecondaryaxes .comp{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--s2);transition:background-color 160ms ease,border-color 160ms ease,transform 140ms var(--ease)}
.pg-syssecondaryaxes .comp:hover{background:var(--s3);border-color:#33435A}
.pg-syssecondaryaxes .comp:active{transform:scale(0.99)}
.pg-syssecondaryaxes .comp b{display:block;font-weight:600;font-size:13px}
.pg-syssecondaryaxes .comp small{display:block;color:var(--ink3);font-size:12px}
.pg-syssecondaryaxes .comp .rv{text-align:right;font-size:13px;font-weight:500}
.pg-syssecondaryaxes .comp .rv time{display:block;color:var(--ink3);font-size:11px;font-weight:400}
.pg-syssecondaryaxes .sdot{width:10px;height:10px;border-radius:50%}
.pg-syssecondaryaxes .live{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pg-syssecondaryaxes .lv{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.pg-syssecondaryaxes .lv span{display:block;color:var(--ink3);font-size:12px}
.pg-syssecondaryaxes .lv b{display:block;font-size:20px;font-weight:600;margin:2px 0 6px}
.pg-syssecondaryaxes .lv.big b{font-size:28px}
.pg-syssecondaryaxes .lv small{display:block;color:var(--ink3);font-size:11px;margin-top:4px}
.pg-syssecondaryaxes .bar{position:relative;height:6px;background:var(--s3);border-radius:3px}
.pg-syssecondaryaxes .bar .z{position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--ink3)}
.pg-syssecondaryaxes .bar .m{position:absolute;top:-3px;width:4px;height:12px;border-radius:2px;margin-left:-2px;transition:left 600ms var(--ease)}
.pg-syssecondaryaxes .rel{display:flex;gap:8px;flex-wrap:wrap}
.pg-syssecondaryaxes .tbl{width:100%;border-collapse:collapse;font-size:12px}
.pg-syssecondaryaxes .tbl th{text-align:left;color:var(--ink3);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--line)}
.pg-syssecondaryaxes .tbl td{padding:6px 8px;border-bottom:1px solid var(--line);color:var(--ink2)}
.pg-syssecondaryaxes .tbl td:first-child{color:var(--ink);font-family:ui-monospace,Menlo,monospace;font-size:11.5px}
.pg-syssecondaryaxes .tw{overflow-x:auto}
.pg-syssecondaryaxes .log{display:flex;flex-direction:column}
.pg-syssecondaryaxes .le{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2)}
.pg-syssecondaryaxes .le:first-child{border-top:0}
.pg-syssecondaryaxes .le time{color:var(--ink3)}
.pg-syssecondaryaxes .le.warn div{color:var(--amber)}
.pg-syssecondaryaxes .le.crit div{color:var(--crit)}
.pg-syssecondaryaxes .inj{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pg-syssecondaryaxes .inj .btn{height:34px;font-size:13px}
.pg-syssecondaryaxes .ov{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px}
.pg-syssecondaryaxes .ov .scrim{position:absolute;inset:0;background:rgba(4,7,11,0.66);border:0;padding:0;cursor:default;animation:fadeIn 200ms ease both}
@keyframes fadeIn{from{opacity:0}}
.pg-syssecondaryaxes .dlg{position:relative;width:min(580px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:20px;box-sizing:border-box;box-shadow:0 30px 80px rgba(0,0,0,0.5);animation:dlgIn 300ms var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translateY(14px) scale(0.98)}}
.pg-syssecondaryaxes .dlg-h{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.pg-syssecondaryaxes .dlg-h h3{margin:0;font-size:18px;font-weight:600}
.pg-syssecondaryaxes .dlg-h p{margin:2px 0 0;color:var(--ink3);font-size:12px}
.pg-syssecondaryaxes .x{margin-left:auto;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center;flex:none}
.pg-syssecondaryaxes .x:hover{background:var(--s3)}
.pg-syssecondaryaxes .pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid currentColor}
.pg-syssecondaryaxes .spk{width:100%;height:64px;display:block;background:var(--s2);border-radius:10px;border:1px solid var(--line)}
.pg-syssecondaryaxes .spk path{fill:none;stroke:var(--sky);stroke-width:1.6;vector-effect:non-scaling-stroke}
.pg-syssecondaryaxes .spk .lim{stroke:var(--ink3);stroke-dasharray:3 3;stroke-width:1}
.pg-syssecondaryaxes .note{font-size:13px;color:var(--ink2);margin:10px 0 0}

.pg-syssecondaryaxes /* secondary axes */
.sx-ax{display:flex;flex-direction:column;gap:8px}
.pg-syssecondaryaxes .sx-row{display:grid;grid-template-columns:150px minmax(0,1fr) 210px;gap:16px;align-items:center;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--s2);transition:border-color 200ms ease}
.pg-syssecondaryaxes .sx-row.warn{border-color:rgba(242,179,61,0.6)}
.pg-syssecondaryaxes .sx-row.crit{border-color:rgba(255,111,97,0.7)}
.pg-syssecondaryaxes .sx-nm{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:transparent;border:0;padding:0}
.pg-syssecondaryaxes .sx-nm b{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}
.pg-syssecondaryaxes .sx-nm small{color:var(--ink3);font-size:12px}
.pg-syssecondaryaxes .sx-nm:hover b{color:var(--sky)}
.pg-syssecondaryaxes .sx-pos{font-size:22px;font-weight:600}
.pg-syssecondaryaxes .sx-trav{position:relative;height:10px;background:var(--s3);border-radius:5px;margin:8px 0 6px}
.pg-syssecondaryaxes .sx-trav .lz{position:absolute;top:0;bottom:0;width:8%;background:rgba(255,111,97,0.18)}
.pg-syssecondaryaxes .sx-trav .z{position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--ink3)}
.pg-syssecondaryaxes .sx-trav .ob{position:absolute;top:2px;bottom:2px;border-radius:3px;background:rgba(108,184,255,0.25)}
.pg-syssecondaryaxes .sx-trav .m{position:absolute;top:-4px;width:6px;height:18px;border-radius:3px;margin-left:-3px;transition:left 700ms var(--ease)}
.pg-syssecondaryaxes .sx-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink3)}
.pg-syssecondaryaxes .sx-meta b{color:var(--ink2);font-weight:600}
.pg-syssecondaryaxes .sx-ctl{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.pg-syssecondaryaxes .sx-ctl .btn{height:36px;padding:0 10px;font-size:13px}
.pg-syssecondaryaxes .sx-ctl .jg{width:38px;padding:0;justify-content:center}
.pg-syssecondaryaxes .sx-off{min-width:70px;text-align:center;font-size:13px;font-weight:600}
.pg-syssecondaryaxes .sx-off small{display:block;font-size:11px;color:var(--ink3);font-weight:400}
.pg-syssecondaryaxes .focus{box-shadow:0 0 0 2px var(--sky);animation:focusPulse 1.6s ease-in-out 3}
@keyframes focusPulse{50%{box-shadow:0 0 0 6px rgba(108,184,255,0.25)}}
@media (max-width:900px){.pg-syssecondaryaxes .grid2{grid-template-columns:minmax(0,1fr)}.pg-syssecondaryaxes .sx-row{grid-template-columns:minmax(0,1fr)}.pg-syssecondaryaxes .sx-ctl{justify-content:flex-start}}

/* ---- SysCorrections ---- */
.pg-syscorrections .ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pg-syscorrections .mod{color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.45;font-variant-numeric:tabular-nums;padding:24px 28px 40px;background:var(--bg);min-height:960px;box-sizing:border-box;animation:modIn 460ms var(--ease) both}
@keyframes modIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pg-syscorrections button{font:inherit;color:inherit;cursor:pointer}
.pg-syscorrections button:disabled{cursor:not-allowed;opacity:0.45}
.pg-syscorrections .mhead{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.pg-syscorrections .mhead h1{margin:0 0 6px;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-0.01em;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-syscorrections .mtag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;color:#0B0F14;letter-spacing:0}
.pg-syscorrections .lede{margin:0;color:var(--ink2);font-size:15px;max-width:720px}
.pg-syscorrections .acts{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}
.pg-syscorrections .card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;animation:rise 480ms var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pg-syscorrections .card h2{margin:0 0 2px;font-size:15px;font-weight:600}
.pg-syscorrections .cap{color:var(--ink3);font-size:12px;margin:0 0 12px}
.pg-syscorrections .btn{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--s2);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:background-color 160ms ease,transform 140ms var(--ease)}
.pg-syscorrections .btn:hover{background:var(--s3)}
.pg-syscorrections .btn:active{transform:scale(0.97)}
.pg-syscorrections .btn-p{height:42px;padding:0 18px;border-radius:10px;border:0;background:var(--ink);color:#0B0F14;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform 140ms var(--ease),background-color 160ms ease}
.pg-syscorrections .btn-p:hover{background:#fff}
.pg-syscorrections .btn-p:active{transform:scale(0.97)}
.pg-syscorrections .kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.pg-syscorrections .kv:first-of-type{border-top:0}
.pg-syscorrections .kv .k{color:var(--ink3)}
.pg-syscorrections .kv b{font-weight:600;text-align:right}
.pg-syscorrections .sc-interp{display:inline !important;font:inherit !important;color:inherit !important;letter-spacing:inherit !important;margin:0 !important}
@media (prefers-reduced-motion: reduce){.pg-syscorrections *,.pg-syscorrections *::before,.pg-syscorrections *::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}

.pg-syscorrections /* subsystem page */
.crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px;font-size:12px;color:var(--ink3)}
.pg-syscorrections .crumb{height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--ink2);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background-color 160ms ease,color 160ms ease}
.pg-syscorrections .crumb:hover{background:var(--s2);color:var(--ink)}
.pg-syscorrections .crumb .ic{width:13px;height:13px}
.pg-syscorrections .pill{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;letter-spacing:0}
.pg-syscorrections .pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pg-syscorrections .pill.ok{color:var(--ok);background:rgba(94,211,176,0.12)}
.pg-syscorrections .pill.warn{color:var(--amber);background:rgba(242,179,61,0.12)}
.pg-syscorrections .pill.crit{color:var(--crit);background:rgba(255,111,97,0.12)}
.pg-syscorrections .banner{display:flex;gap:10px;align-items:flex-start;border-radius:12px;padding:10px 14px;margin-bottom:16px;font-size:13px;color:var(--ink2)}
.pg-syscorrections .banner b{color:var(--ink)}
.pg-syscorrections .banner.info{background:rgba(108,184,255,0.08);border:1px solid rgba(108,184,255,0.35)}
.pg-syscorrections .banner.sim{background:rgba(60,198,196,0.08);border:1px solid rgba(60,198,196,0.4)}
.pg-syscorrections .banner.warn{background:rgba(242,179,61,0.08);border:1px solid rgba(242,179,61,0.4)}
.pg-syscorrections .banner.crit{background:rgba(255,111,97,0.08);border:1px solid rgba(255,111,97,0.45)}
.pg-syscorrections .banner .ic{margin-top:2px}
.pg-syscorrections .grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
.pg-syscorrections .grid-main{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;margin-bottom:16px;align-items:start}
@media (max-width:900px){.pg-syscorrections .grid2,.pg-syscorrections .grid-main{grid-template-columns:minmax(0,1fr)}.pg-syscorrections .mod{padding:20px 16px 32px}}
.pg-syscorrections .clist{display:flex;flex-direction:column;gap:6px}
.pg-syscorrections .comp{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;width:100%;background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;transition:background-color 160ms ease,border-color 160ms ease,transform 140ms var(--ease)}
.pg-syscorrections .comp:hover{background:var(--s3);border-color:#33435A}
.pg-syscorrections .comp:active{transform:scale(0.99)}
.pg-syscorrections .comp b{display:block;font-weight:600;font-size:13px}
.pg-syscorrections .comp small{display:block;color:var(--ink3);font-size:12px}
.pg-syscorrections .comp .rv{text-align:right}
.pg-syscorrections .comp .rv span{display:block;font-weight:600;font-size:13px}
.pg-syscorrections .comp .rv time{display:block;color:var(--ink3);font-size:11px}
.pg-syscorrections .dot{width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(94,211,176,0.15)}
.pg-syscorrections .dot.warn{background:var(--amber);box-shadow:0 0 0 3px rgba(242,179,61,0.18)}
.pg-syscorrections .dot.crit{background:var(--crit);box-shadow:0 0 0 3px rgba(255,111,97,0.2);animation:blink 1.2s ease-in-out infinite}
.pg-syscorrections .dot.off{background:var(--ink3);box-shadow:none}
@keyframes blink{50%{opacity:0.45}}
.pg-syscorrections .tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pg-syscorrections .tile{background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.pg-syscorrections .tile small{display:block;color:var(--ink3);font-size:12px}
.pg-syscorrections .tile b{display:block;font-size:20px;font-weight:600;margin-top:2px}
.pg-syscorrections .tile em{font-style:normal;color:var(--ink3);font-size:12px}
.pg-syscorrections .big{font-size:34px;font-weight:600;line-height:1.1}
.pg-syscorrections .prog{height:6px;border-radius:999px;background:var(--s3);overflow:hidden;margin-top:8px}
.pg-syscorrections .prog i{display:block;height:100%;background:var(--sky);border-radius:999px;transition:width 120ms linear}
.pg-syscorrections .res{border-radius:10px;padding:10px 12px;margin-top:10px;font-size:13px;animation:rise 320ms var(--ease) both}
.pg-syscorrections .res.ok{background:rgba(94,211,176,0.08);border:1px solid rgba(94,211,176,0.35)}
.pg-syscorrections .res.crit{background:rgba(255,111,97,0.08);border:1px solid rgba(255,111,97,0.4)}
.pg-syscorrections .res.info{background:rgba(108,184,255,0.08);border:1px solid rgba(108,184,255,0.35)}
.pg-syscorrections .why{font-size:12px;color:var(--amber);margin-top:6px}
.pg-syscorrections .tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.pg-syscorrections .tbl th{text-align:left;color:var(--ink3);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.pg-syscorrections .tbl td{padding:7px 8px;border-bottom:1px solid var(--line)}
.pg-syscorrections .tbl td.n,.pg-syscorrections .tbl th.n{text-align:right}
.pg-syscorrections .tbl tr:last-child td{border-bottom:0}
.pg-syscorrections .tbl .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ink2)}
.pg-syscorrections .tbox{overflow-x:auto}
.pg-syscorrections .log{display:flex;flex-direction:column}
.pg-syscorrections .le{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:12px;color:var(--ink2)}
.pg-syscorrections .le:first-child{border-top:0}
.pg-syscorrections .le time{color:var(--ink3)}
.pg-syscorrections .rel{display:flex;gap:10px;flex-wrap:wrap}
.pg-syscorrections .inj{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pg-syscorrections .btn-s{height:32px;padding:0 12px;font-size:12px;border-radius:8px}
.pg-syscorrections .btn-w{border-color:rgba(242,179,61,0.5);color:#F7CF7F}
.pg-syscorrections .btn-d{border-color:rgba(255,111,97,0.55);color:#FFB3AB}
.pg-syscorrections .ovl{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;animation:fadeIn 200ms ease both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.pg-syscorrections .scrim{position:absolute;inset:0;border:0;background:rgba(4,7,11,0.66);cursor:default}
.pg-syscorrections .dlg{position:relative;width:560px;max-width:100%;max-height:calc(100vh - 32px);overflow:auto;background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 30px 80px rgba(0,0,0,0.5);animation:dlgIn 320ms var(--ease) both;box-sizing:border-box}
@keyframes dlgIn{from{opacity:0;transform:translateY(14px) scale(0.98)}to{opacity:1;transform:none}}
.pg-syscorrections .dlg h3{margin:0;font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pg-syscorrections .xbtn{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--s2);display:grid;place-items:center}
.pg-syscorrections .xbtn:hover{background:var(--s3)}
.pg-syscorrections .spark{width:100%;height:70px;display:block;margin:6px 0 4px}
.pg-syscorrections .sw{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.pg-syscorrections .sw:first-of-type{border-top:0}
.pg-syscorrections .sw b{display:block;font-size:13px;font-weight:600}
.pg-syscorrections .sw small{display:block;color:var(--ink3);font-size:12px}
.pg-syscorrections .tog{width:46px;height:26px;border-radius:999px;border:1px solid var(--line);background:var(--s3);position:relative;padding:0;transition:background-color 200ms ease,border-color 200ms ease}
.pg-syscorrections .tog::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--ink3);transition:transform 240ms var(--ease),background-color 200ms ease}
.pg-syscorrections .tog.on{background:rgba(94,211,176,0.22);border-color:rgba(94,211,176,0.6)}
.pg-syscorrections .tog.on::after{transform:translateX(20px);background:var(--ok)}
.pg-syscorrections .chart{width:100%;height:auto;display:block}
.pg-syscorrections .chart .gl{stroke:#243042;stroke-width:1}
.pg-syscorrections .chart text{fill:#8592A5;font-size:11px;font-family:'IBM Plex Sans',system-ui,sans-serif}
.pg-syscorrections .legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink2);margin-top:6px}
.pg-syscorrections .legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.pg-syscorrections .range{width:100%;accent-color:#6CB8FF;margin:8px 0 2px}
.pg-syscorrections .sens{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (max-width:700px){.pg-syscorrections .sens{grid-template-columns:repeat(2,minmax(0,1fr))}.pg-syscorrections .tiles{grid-template-columns:minmax(0,1fr)}}
.pg-syscorrections .sen{text-align:left;background:var(--s2);border:1px solid var(--line);border-radius:10px;padding:10px;transition:background-color 160ms ease}
.pg-syscorrections .sen:hover{background:var(--s3)}
.pg-syscorrections .sen small{display:flex;align-items:center;gap:6px;color:var(--ink3);font-size:11px}
.pg-syscorrections .sen b{display:block;font-size:18px;font-weight:600;margin-top:2px}
.pg-syscorrections .sen em{display:block;font-style:normal;color:var(--ink3);font-size:11px}
.pg-syscorrections .sen .dot{width:8px;height:8px}
