:root,[data-theme=dark]{--bg:#0C1220;--panel:#0A0F1A;--panel2:#111A2C;--scope-panel:#0A0F1A;--scope-bg:#0D1526;--tint-accent:#0F2233;--tint-accent-bd:#1E3A50;--border:#1B2740;--border2:#1E2C48;--border3:#131D31;--border4:#223050;--text:#EAF1FC;--text2:#D8E1F0;--text3:#C4D2E8;--text4:#AEBEDA;--text5:#9FB2D0;--muted:#7286A3;--muted2:#5E7396;--muted3:#54688A;--muted4:#33415C;--muted5:#8FA3C4;--accent:#45D6E8;--accent-ink:#0C1220;--yellow:#F5C542;--magenta:#E86BD0;--green:#6EE787;--red:#FF7A85;--orange:#FF8A4D;--blue:#8FA6FF;--sky:#8FD3F4;--ok-bg:#0E2A20;--ok-bd:#2E9B6E;--warn-bg:#2A230C;--warn-bd:#B08A2E;--crit-bg:#2A1013;--crit-bd:#B03A44;--mag-bg:#2A1030;--mag-bd:#4A2144;--orange-bg:#3B2A0F;--red-bg:#3B1418;--green-bg:#173B2C;--sel-bg:#25344F;--heat-pass:#1E7A4C;--heat-derate:#B08A2E;--heat-outage:#B03A44;--heat-stable:#3A5FA8;--heat-marginal:#6B4FA0;--heat-unstable:#9B3FA0;--shadow:0 0 14px;--radius:8px}[data-theme=light]{--bg:#EEF1F5;--panel:#FFFFFF;--panel2:#F5F7FA;--scope-panel:#0A0F1A;--scope-bg:#0D1526;--tint-accent:#E3F0F8;--tint-accent-bd:#B9D6E8;--border:#D3DAE4;--border2:#C9D1DD;--border3:#E5E9F0;--border4:#C2CBD8;--text:#0F1B2D;--text2:#1C2A3E;--text3:#2A3A52;--text4:#3B4B64;--text5:#4B5C77;--muted:#5A6A84;--muted2:#6D7C95;--muted3:#7D8BA2;--muted4:#A9B3C4;--muted5:#4B5C77;--accent:#0B72B9;--accent-ink:#FFFFFF;--yellow:#B0761A;--magenta:#A8348A;--green:#1B8A57;--red:#C22F3D;--orange:#BF5B12;--blue:#4557C4;--sky:#2578B0;--ok-bg:#E4F4EB;--ok-bd:#5DBB88;--warn-bg:#FBF2DA;--warn-bd:#D3A337;--crit-bg:#FBE6E8;--crit-bd:#D66F78;--mag-bg:#F5E5F1;--mag-bd:#D5A4CA;--orange-bg:#FAEBDA;--red-bg:#FBE6E8;--green-bg:#E4F4EB;--sel-bg:#DCE3ED;--heat-pass:#2E9B6E;--heat-derate:#D3A337;--heat-outage:#D66F78;--heat-stable:#4A72C0;--heat-marginal:#8560B8;--heat-unstable:#B854B8;--shadow:0 0 0;--radius:6px}.app{min-height:100vh;background:var(--bg);color:var(--text2);font-family:Noto Sans TC,sans-serif;padding-bottom:64px}.top{display:flex;align-items:center;gap:14px;padding:16px 28px 0;flex-wrap:wrap}.logo{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:21px;color:var(--text)}.logo b{color:var(--accent)}.mvp{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--accent-ink);background:var(--accent);border-radius:3px;padding:2px 7px}.sub{font-size:12px;color:var(--muted)}.tabs{display:flex;gap:2px;padding:12px 28px 0;border-bottom:1px solid var(--border)}.tabbtn{font-family:Noto Sans TC,sans-serif;font-weight:700;font-size:13.5px;background:none;color:var(--muted);border:none;border-bottom:2px solid transparent;padding:8px 18px;cursor:pointer}.tabbtn.on{color:var(--accent);border-bottom-color:var(--accent)}.bar{display:flex;gap:8px;padding:12px 28px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--border)}.bar .lbl{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--muted2);letter-spacing:.12em}.tbtn{font-size:12px;background:var(--panel2);color:var(--text3);border:1px solid var(--border2);border-radius:7px;padding:6px 12px;cursor:pointer;font-family:inherit}.tbtn:hover{border-color:var(--accent)}.runbtn{font-weight:700;font-size:13px;background:var(--green);color:var(--accent-ink);border:none;border-radius:7px;padding:7px 18px;cursor:pointer;margin-left:auto}.evsel{background:var(--panel2);color:var(--text);border:1px solid var(--border2);border-radius:7px;padding:6px 10px;font-family:inherit;font-size:12.5px}.hashchip{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--accent);background:var(--tint-accent);border:1px solid var(--tint-accent-bd);border-radius:6px;padding:4px 9px}.iomsg{font-size:11.5px;border-radius:6px;padding:4px 10px}.iomsg.ok{color:var(--green)}.iomsg.warn{color:var(--yellow)}.iomsg.err{color:var(--red)}.tabbtn.ai.on{color:var(--magenta);border-bottom-color:var(--magenta)}.aigrid{display:grid;grid-template-columns:1.2fr 1fr;gap:12px}@media (max-width:1100px){.aigrid{grid-template-columns:1fr}}.aipanel{background:var(--panel);border:1px solid var(--mag-bd);border-radius:10px;padding:12px 14px;align-self:start}.draftrow{display:flex;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--border3)}.draftrow:last-child{border:none}.gd{max-width:1100px;margin:0 auto;line-height:1.85;font-size:13.5px;color:var(--text3)}.gd p{margin:8px 0}.gd b{color:var(--text)}.gd-hero{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px 22px;margin-bottom:14px}.gd-title{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:22px;color:var(--text);margin-bottom:6px}.gd-grid{display:grid;grid-template-columns:1fr;gap:14px}.gd-sec{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 22px;min-width:0}.gd-sec h3{margin:0 0 8px;font-size:16px;font-family:Space Grotesk,Noto Sans TC,sans-serif}.gd-ol{padding-left:20px;margin:6px 0}.gd-ol li{margin-bottom:8px}.gd-card{background:var(--panel2);border:1px solid;border-radius:9px;padding:10px 14px;margin:10px 0;font-size:12.5px}.gd-cardt{font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.1em;margin-bottom:6px}.gd-gl{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:6px 18px;font-size:12.5px}.gd-tag{display:inline-block;font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.06em;padding:1px 6px;border-radius:4px;border:1px solid;margin-right:6px;vertical-align:middle;white-space:nowrap}.gd-tblw{overflow-x:auto;margin:10px 0}.gd-tbl{width:100%;border-collapse:collapse;font-size:12.3px;line-height:1.6}.gd-tbl th{text-align:left;font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.08em;color:var(--muted5);padding:6px 8px;border-bottom:1px solid var(--border4);white-space:nowrap}.gd-tbl td{padding:7px 8px;border-bottom:1px solid var(--border3);vertical-align:top}.gd-tbl tr:last-child td{border-bottom:none}.gd-tbl td:first-child{white-space:nowrap}.gd-tbl-sm{font-size:11.6px}.gd-tbl-sm td:first-child{white-space:normal;min-width:120px}.gd-tbl-sm td{min-width:90px}.gd-h4{margin:14px 0 6px;font-size:13.5px;font-family:Space Grotesk,Noto Sans TC,sans-serif;letter-spacing:.02em}.gd-ul{padding-left:18px;margin:4px 0}.gd-ul li{margin-bottom:6px}.gd-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width:900px){.gd-2col{grid-template-columns:1fr}}.gd-why{background:var(--panel2);border-left:3px solid var(--orange);border-radius:0 9px 9px 0;padding:10px 14px;margin:10px 0;font-size:13px}.gd-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;margin:6px 0 4px}.tabbtn.emt.on{color:var(--orange);border-bottom-color:var(--orange)}.emt{display:grid;grid-template-columns:260px 1fr;gap:12px}@media (max-width:1000px){.emt{grid-template-columns:1fr}}.emt-side{background:var(--panel);border:1px solid var(--orange-bg);border-radius:10px;padding:12px 14px;align-self:start}.emt-side .prow{margin-bottom:6px}.emt-main{min-width:0}.zoombar{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin:0 0 8px;font-size:10.5px;color:var(--text5)}.zoombar .zb-lbl{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:var(--muted);margin-right:2px}.zoombar .zb-span{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--accent);min-width:56px}.zoombar .zb-sep{width:1px;height:14px;background:var(--border3);margin:0 4px}.zoombar .zb-hint{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--muted2);margin-left:auto}.zoombar .tbtn.xs:disabled{opacity:.4;cursor:default}.ch-cursor{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--text);margin-left:8px}.emt-zoom{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#040810d1;display:flex;align-items:center;justify-content:center;padding:24px}.emt-zoom-in{width:min(1500px,96vw);max-height:94vh;overflow:auto;background:var(--panel);border:1px solid var(--orange-bg);border-radius:12px;padding:14px 16px;box-shadow:0 20px 60px #0009}.emt-zoom-head{display:flex;align-items:center;gap:14px;margin-bottom:10px;font-weight:700;color:var(--orange)}.emt-zoom-head .hint{flex:1;font-weight:400}.srctag{font-family:IBM Plex Mono,monospace;font-size:8.5px;margin-left:5px;padding:1px 5px;border-radius:4px;background:var(--border);color:var(--muted);vertical-align:middle}.srctag.sld{background:var(--tint-accent);color:var(--accent)}.srctag.ov{background:var(--orange-bg);color:var(--yellow)}.srctag.edl{background:var(--mag-bg);color:var(--magenta)}.cfg{display:grid;grid-template-columns:230px 1fr 300px;gap:12px}@media (max-width:1200px){.cfg{grid-template-columns:1fr}}.cfg-lib,.cfg-edit,.cfg-meta{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px;align-self:start;min-width:0}.cfg-edit{border-color:var(--mag-bd)}.cfg-row{display:flex;gap:4px;align-items:center;padding:3px 0;border-bottom:1px solid var(--border3)}.cfg-row.on .cfg-id{color:var(--magenta)}.cfg-id{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--text5);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tbtn.xs{font-size:10.5px;padding:3px 7px;border-radius:5px}.tbtn.on-cyan{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}.cfg-lbl{display:block;font-size:11px;color:var(--text4);margin-top:8px}.cfg-lbl input,.cfg-lbl select{margin-top:3px}.cfg-actions{display:flex;flex-direction:column;gap:6px}.cfg-actions button{width:100%}.cfg-timeline{border-left:2px solid var(--mag-bd);padding-left:10px;margin:6px 0}.cfg-block{background:var(--panel2);border:1px solid var(--border2);border-radius:8px;padding:8px 10px;margin-bottom:8px}.cfg-blockhead{display:flex;gap:8px;align-items:center;margin-bottom:6px;font-size:12px;color:var(--text)}.cfg-form .prow{margin-bottom:8px}.airow{display:flex;gap:10px;align-items:center;margin-top:8px}.aikey{flex:1;max-width:420px;background:var(--panel2);color:var(--text);border:1px solid var(--border2);border-radius:7px;padding:7px 10px;font-family:IBM Plex Mono,monospace;font-size:12px}.aidesc{width:100%;margin-top:8px;background:var(--panel2);color:var(--text);border:1px solid var(--border2);border-radius:7px;padding:8px 10px;font-family:inherit;font-size:13px;resize:vertical}.aidesc:focus,.aikey:focus{outline:none;border-color:var(--magenta)}.aiprev{margin-top:10px;background:var(--panel2);border:1px solid var(--mag-bd);border-radius:8px;padding:10px 12px}.aiprevtxt{font-size:11.5px;color:var(--text4);margin-top:4px;line-height:1.6;overflow-wrap:anywhere}.draftchip{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--magenta);background:var(--mag-bg);border:1px solid var(--mag-bd);border-radius:20px;padding:3px 10px;display:inline-flex;gap:6px;align-items:center}.draftchip button{background:none;border:none;color:var(--magenta);cursor:pointer;font-size:12px;padding:0}.blayout{display:grid;grid-template-columns:180px 1fr 300px}@media (max-width:1000px){.blayout{grid-template-columns:1fr}}.pal{border-right:1px solid var(--border);padding:14px}.pal .cat{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:var(--muted2);letter-spacing:.12em;margin:12px 0 6px}.pal .cat:first-child{margin-top:0}.pitem{display:block;width:100%;text-align:left;font-size:12px;background:var(--panel2);color:var(--text3);border:1px solid var(--border2);border-radius:7px;padding:7px 10px;margin-bottom:6px;cursor:pointer;font-family:inherit}.pitem:hover{border-color:var(--c);color:var(--text)}.canvaswrap{padding:12px;min-width:0}.canvas{width:100%;background:var(--scope-panel);border:1px solid var(--border);border-radius:10px;display:block;touch-action:none}.hint{font-size:11px;color:var(--muted3);margin-top:6px}.props{border-left:1px solid var(--border);padding:14px}.props .pt{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--muted2);letter-spacing:.12em;margin-bottom:8px}.props .pname{font-weight:700;font-size:14px;color:var(--text);margin-bottom:10px}.prow{margin-bottom:10px}.prow .pl{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text4);margin-bottom:3px}.prow .pv{font-family:IBM Plex Mono,monospace;color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent)}.delbtn{width:100%;font-size:12px;background:var(--crit-bg);color:var(--red);border:1px solid var(--crit-bd);border-radius:7px;padding:6px;cursor:pointer;font-family:inherit;margin-top:8px}.empty{font-size:12px;color:var(--muted3);line-height:1.8}.sim{padding:14px 28px}.verdict{display:flex;align-items:center;gap:12px;border-radius:10px;padding:11px 16px;margin-bottom:10px;font-weight:700;font-size:15px;border:1px solid}.verdict.ok{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--green)}.verdict.warn{background:var(--warn-bg);border-color:var(--warn-bd);color:var(--yellow)}.verdict.crit{background:var(--crit-bg);border-color:var(--crit-bd);color:var(--red)}.verdict .dot{width:10px;height:10px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}.staterow{display:flex;gap:6px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.stchip{font-family:IBM Plex Mono,monospace;font-size:10.5px;border:1px solid var(--border2);color:var(--muted2);border-radius:20px;padding:4px 12px}.stchip.on{color:var(--accent-ink);font-weight:700;box-shadow:0 0 14px var(--c);background:var(--c);border-color:var(--c)}.starrow{color:var(--muted4);font-size:11px}.playbtn{font-weight:700;font-size:12.5px;background:var(--accent);color:var(--accent-ink);border:none;border-radius:7px;padding:7px 16px;cursor:pointer;margin-left:auto;font-family:inherit}.playbtn.stop{background:var(--sel-bg);color:var(--text2)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:8px;margin:10px 0 12px}.kpi{background:var(--panel2);border:1px solid var(--border2);border-radius:8px;padding:9px 11px}.kpi .kl{font-size:10px;color:var(--muted2)}.kpi .kv{font-family:IBM Plex Mono,monospace;font-size:18px;font-weight:600;color:var(--text);margin-top:2px}.kpi .kv small{font-size:11px;color:var(--muted)}.kpi .kv.bad{color:var(--red)}.kpi .kv.warn{color:var(--yellow)}.kpi .kv.good{color:var(--green)}.winbar{display:flex;gap:6px;margin-bottom:8px;align-items:center;flex-wrap:wrap}.wbtn{font-family:IBM Plex Mono,monospace;font-size:11px;background:var(--panel2);color:var(--text5);border:1px solid var(--border2);border-radius:6px;padding:5px 11px;cursor:pointer}.wbtn.on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.scope,.canvas{--text:#EAF1FC;--text2:#D8E1F0;--text4:#AEBEDA;--text5:#9FB2D0;--muted:#7286A3;--muted2:#5E7396;--border3:#1D2A40;--border:#1B2740}.scope{background:var(--scope-panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px 6px;cursor:crosshair}.ch{margin-bottom:9px}.ch-head{display:flex;justify-content:space-between;margin-bottom:3px;flex-wrap:wrap;gap:4px}.ch-title{font-size:11px;color:var(--text5)}.ch-vals{font-family:IBM Plex Mono,monospace;font-size:10.5px;display:flex;gap:14px}.ch-svg{width:100%;height:80px;display:block;background:var(--scope-bg);border-radius:5px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}@media (max-width:1100px){.grid2{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.panel .pt2{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--muted2);letter-spacing:.12em;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;gap:8px}.certbtn{font-weight:700;font-size:12px;background:var(--green);color:var(--accent-ink);border:none;border-radius:7px;padding:6px 14px;cursor:pointer;font-family:inherit}.certbtn:disabled{background:var(--sel-bg);color:var(--muted2)}.heat{display:grid;gap:2px;font-family:IBM Plex Mono,monospace;font-size:8.5px}.heat .hl{color:var(--muted2);display:flex;align-items:center;justify-content:flex-end;padding-right:5px}.heat .hc{aspect-ratio:1.35;border-radius:3px;cursor:pointer;border:1px solid transparent}.heat .hc:hover{border-color:var(--text)}.heat .hx{color:var(--muted2);text-align:center;padding-top:3px}.covline{display:flex;gap:14px;align-items:center;margin-top:8px;font-size:11.5px;color:var(--text5);flex-wrap:wrap}.cov{font-family:IBM Plex Mono,monospace;font-size:18px;font-weight:700;color:var(--green)}.lg{display:inline-flex;align-items:center;gap:5px}.lg i{width:10px;height:10px;border-radius:2px;display:inline-block}.marg .mrow{display:flex;justify-content:space-between;font-size:12px;padding:3px 0;border-bottom:1px solid var(--border3)}.marg .mrow:last-child{border:none}.marg .mv{font-family:IBM Plex Mono,monospace;color:var(--green)}.heatwrap{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.heatmain{flex:1 1 420px;min-width:300px}.heatsvg{background:var(--panel2);border-radius:8px}.reqbox{flex:0 1 240px;min-width:210px;background:var(--panel2);border:1px solid var(--border2);border-radius:8px;padding:8px 10px;font-size:11px}.reqhead{display:flex;justify-content:space-between;align-items:center;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.06em;color:var(--accent);margin-bottom:6px}.reqrow{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:5px}.reqrow .lbl{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:var(--muted);flex-basis:100%}.reqchk{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--text3);display:inline-flex;align-items:center;gap:2px;margin-right:6px}.reqbox .hint{margin-top:4px}.covline .cov.warn{color:var(--yellow)}.covline .cov.bad{color:var(--red)}.covline .lg.dim{color:var(--muted2)}.covline .lg i.grad{background:linear-gradient(90deg,color-mix(in srgb,var(--heat-outage) 100%,var(--panel2)),color-mix(in srgb,var(--heat-outage) 45%,var(--panel2)) 45%,color-mix(in srgb,var(--heat-pass) 35%,var(--panel2)) 55%,var(--heat-pass));width:44px}.segbtn{display:inline-flex;gap:2px}.progress{height:4px;background:var(--border3);border-radius:2px;overflow:hidden;margin:6px 0}.progress>div{height:100%;background:var(--accent)}.dscalc{background:var(--panel2);border:1px solid var(--border2);border-radius:8px;padding:8px 10px;margin-top:6px;font-size:11px}.dsrow{display:flex;align-items:center;gap:6px;margin-bottom:4px}.dsrow .lbl{font-size:10.5px;color:var(--text4);flex:1}.dsrow input{width:90px}.dsout{display:flex;flex-direction:column;gap:2px;font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--text3);margin:6px 0 4px}.dsout b{color:var(--accent);font-weight:600}.srctag.st-draft{background:var(--warn-bg);color:var(--yellow)}.srctag.st-reviewed{background:var(--tint-accent);color:var(--accent)}.srctag.st-signed{background:var(--ok-bg);color:var(--green)}.dsimp{width:min(1400px,96vw)}.dsimp .emt-zoom-head{flex-wrap:wrap}.dsimp .emt-zoom-head .hint{flex:1 1 320px}.dsgrid{display:grid;grid-template-columns:300px 1fr;gap:14px}@media (max-width:900px){.dsgrid{grid-template-columns:1fr}}.dscol{background:var(--panel2);border:1px solid var(--border2);border-radius:8px;padding:10px 12px;align-self:start}.dsmain{min-width:0}.dsmeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;margin-bottom:6px}.dstbl{width:100%;border-collapse:collapse;font-size:11.5px}.dstbl th{text-align:left;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.06em;color:var(--muted5);padding:4px 6px;border-bottom:1px solid var(--border4)}.dstbl td{padding:4px 6px;border-bottom:1px solid var(--border3);vertical-align:top}.dstbl tr.missing td{color:var(--muted2)}.dstbl td.mono{font-family:IBM Plex Mono,monospace;font-size:10.5px}.dstbl td.dsquote{max-width:380px;font-size:10.5px;color:var(--text4);font-style:italic}.srctag.conf-high{background:var(--ok-bg);color:var(--green)}.srctag.conf-medium{background:var(--warn-bg);color:var(--yellow)}.srctag.conf-low{background:var(--crit-bg);color:var(--red)}.dsarch{margin-top:10px;background:var(--panel2);border:1px solid var(--border2);border-radius:8px;padding:8px 10px}.dsarch .dsrow .lbl{flex:none}.libp{display:flex;flex-direction:column;gap:10px}.lib-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.lib-actions{display:flex;gap:6px;flex-wrap:wrap}.lib-sum{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px}.lib-grid{display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,1.4fr);gap:12px}@media (max-width:1000px){.lib-grid{grid-template-columns:1fr}}.lib-list,.lib-detail{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;min-width:0;overflow:auto}.lib-filters{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px}.lib-filters input{flex:1 1 140px}.lib-tbl{width:100%;border-collapse:collapse;font-size:11.5px}.lib-tbl th{text-align:left;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.06em;color:var(--muted5);padding:4px 6px;border-bottom:1px solid var(--border4)}.lib-tbl td{padding:5px 6px;border-bottom:1px solid var(--border3);vertical-align:top}.lib-tbl tbody tr{cursor:pointer}.lib-tbl tbody tr:hover td{background:var(--panel2)}.lib-tbl tbody tr.on td{background:var(--tint-accent)}.lib-tbl tr.missing td{color:var(--muted2)}.lib-tbl .mono,.lib-detail .mono{font-family:IBM Plex Mono,monospace;font-size:10.5px}.lib-dhead{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:flex-start}.lib-dact{display:flex;gap:4px;flex-wrap:wrap}.lib-src{margin-bottom:6px}.marg .mrow.sub{font-size:11px;color:var(--muted5);padding-left:8px}.marg .mrow.sub .mv{color:var(--text4)}.marg .mv.warn{color:var(--yellow)}.marg .mv.bad{color:var(--red)}.log{max-height:200px;overflow:auto}.le{display:flex;gap:12px;font-size:11.5px;padding:3px 0;border-bottom:1px solid var(--border3);transition:opacity .15s}.le:last-child{border:none}.le .lt{font-family:IBM Plex Mono,monospace;color:var(--muted2);width:84px;flex:none}.le.alarm .lm{color:var(--yellow)}.le.crit .lm{color:var(--red);font-weight:600}.le.ok .lm{color:var(--green)}.le.info .lm{color:var(--text4)}.le.future{opacity:.22}.le.now{background:var(--tint-accent);border-radius:4px}.warnbox{background:var(--warn-bg);border:1px solid var(--warn-bd);color:var(--yellow);border-radius:8px;padding:8px 12px;font-size:12px;margin-bottom:10px}.comp{cursor:grab}.comp.ro{cursor:default}.comp.sel rect.body{stroke:var(--text)!important;stroke-width:2!important;filter:drop-shadow(0 0 6px var(--accent))}.port{cursor:crosshair}.foot{padding:12px 28px 0;font-size:10.5px;color:var(--muted3);line-height:1.8;border-top:1px solid var(--border);margin-top:20px}.foot b{color:var(--muted5)}.topright{margin-left:auto;display:flex;gap:6px;align-items:center}.strip{display:flex;gap:0;padding:8px 20px 6px;border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:stretch;background:var(--panel)}.sgrp{display:flex;flex-direction:column;justify-content:space-between;padding:0 12px;border-right:1px solid var(--border3)}.sgrp:last-of-type{border-right:none}.sitems{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.strip .evsel{max-width:360px;text-overflow:ellipsis}.slbl{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.14em;color:var(--muted2);text-align:center;margin-top:5px}.tbtn:disabled{opacity:.45;cursor:not-allowed}.statusbar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:18px;align-items:center;padding:5px 20px;background:var(--panel);border-top:1px solid var(--border);font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--muted);z-index:20}.statusbar b{color:var(--muted2);font-weight:600;margin-right:4px}.statusbar .st-warn{color:var(--yellow)}.simbusy{position:fixed;top:10px;left:50%;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:6px 14px;border-radius:6px;background:var(--panel);border:1px solid var(--accent);color:var(--text);font-family:IBM Plex Mono,monospace;font-size:11px;box-shadow:0 2px 10px #00000040}.simbusy-txt{animation:simbusy-pulse 1.2s ease-in-out infinite}.simbusy-cancel{font:inherit;padding:1px 8px;border-radius:4px;background:transparent;border:1px solid var(--border4);color:var(--text);cursor:pointer}.simbusy-cancel:hover{border-color:var(--accent);color:var(--accent)}@keyframes simbusy-pulse{50%{opacity:.65}}.langsel{align-self:center;font-size:11px;background:var(--panel);border:1px solid var(--border4);color:var(--text4);border-radius:6px;padding:3px 6px;font-family:inherit}.scn{max-width:1180px;margin:0 auto}.scn-head{margin-bottom:12px}.scn-sub{color:var(--text4);font-size:13px;margin:4px 0 8px;line-height:1.7}.scn-tags{display:flex;gap:6px;flex-wrap:wrap}.scn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}.scn-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:8px}.scn-card:hover{border-color:var(--accent)}.scn-q{font-weight:700;font-size:14.5px;color:var(--text);line-height:1.5}.scn-recipe,.scn-look{font-size:12px;color:var(--text4);line-height:1.6}.scn-recipe .lbl,.scn-look .lbl{display:block;font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.12em;color:var(--muted2);margin-bottom:2px}.scn-axes{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--accent)}.scn-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;gap:8px}.scn-tagrow{display:flex;gap:4px;flex-wrap:wrap}.scn-tag{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.06em;padding:1px 6px;border-radius:4px;background:var(--panel2);color:var(--muted);border:1px solid var(--border2)}.steps{display:flex;align-items:stretch;gap:6px;padding:8px 28px;border-bottom:1px solid var(--border);background:var(--panel);overflow-x:auto}.steps-title{font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.12em;color:var(--muted2);align-self:center;margin-right:6px;white-space:nowrap}.step{display:flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--border2);border-radius:var(--radius);padding:5px 10px;cursor:pointer;color:var(--text3);font-family:inherit;text-align:left;min-width:150px;position:relative}.step:hover{border-color:var(--accent)}.step-n{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:700;background:var(--sel-bg);color:var(--muted);flex:none}.step.done .step-n{background:var(--green);color:var(--accent-ink)}.step.next{border-color:var(--accent);box-shadow:var(--shadow) var(--tint-accent-bd)}.step.next .step-n{background:var(--accent);color:var(--accent-ink)}.step.warn .step-n{background:var(--yellow)}.step.crit .step-n{background:var(--red)}.step-body{display:flex;flex-direction:column;line-height:1.25}.step-name{font-size:12px;font-weight:700;color:var(--text)}.step-sub{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:var(--muted);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}.step-next{font-family:IBM Plex Mono,monospace;font-size:8.5px;letter-spacing:.1em;color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:1px 5px;margin-left:4px}:root,[data-theme=dark]{--wf-arch:var(--yellow);--wf-event:var(--magenta);--wf-sim:var(--accent);--wf-batch:var(--green);--wf-cert:var(--blue);--wf-bg:linear-gradient(180deg, var(--panel) 0%, var(--bg) 100%)}[data-theme=light]{--wf-bg:linear-gradient(180deg, #F7F9FC 0%, #EEF1F5 100%)}.wf{display:flex;align-items:stretch;gap:14px;padding:8px 20px 10px;border-bottom:1px solid var(--border);background:var(--wf-bg);flex-wrap:wrap}.wf-lead{display:flex;align-items:center;gap:8px;padding-right:6px;border-right:1px dashed var(--border2)}.wf-lead .wf-unpin{align-self:flex-start}.wf.wf-mini{padding:5px 20px;gap:6px;align-items:center;flex-wrap:wrap}.wf-mini-title{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.08em;color:var(--muted);margin-right:4px}.wf-dot{display:inline-flex;align-items:center;gap:5px;background:var(--panel2);border:1px solid var(--border2);border-radius:14px;padding:2px 8px 2px 5px;font-size:10.5px;color:var(--text4);cursor:pointer;font-family:inherit;max-width:260px}.wf-dot i{width:9px;height:9px;border-radius:50%;background:var(--border2);flex:none}.wf-dot.done i{background:var(--green)}.wf-dot.next i{background:var(--accent);box-shadow:0 0 6px var(--accent)}.wf-dot.next{border-color:var(--accent)}.wf-dot-name{font-weight:600;color:var(--text3)}.wf-dot-sub{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.wf-mini .step-next{margin-left:2px}.wf-lead .steps-title{line-height:1.4;margin:0}.wf-hand{font-size:8.5px;letter-spacing:.08em;color:var(--muted3);text-transform:none}.wf-ring{flex:none}.wfc{position:relative;display:flex;flex-direction:column;background:var(--panel2);border:1px solid var(--border2);border-left:3px solid var(--border2);border-radius:10px;min-width:200px;max-width:100%;font-size:11.5px}.wfc.h-arch{border-left-color:var(--wf-arch)}.wfc.h-event{border-left-color:var(--wf-event)}.wfc.h-sim{border-left-color:var(--wf-sim)}.wfc.h-batch{border-left-color:var(--wf-batch)}.wfc.h-cert{border-left-color:var(--wf-cert)}.wfc.next{box-shadow:0 0 0 1px var(--accent) inset,var(--shadow) var(--tint-accent-bd)}.wfc-head{display:flex;align-items:center;gap:6px;background:none;border:none;border-bottom:1px solid var(--border3);padding:5px 9px;cursor:pointer;color:var(--text3);font-family:inherit;text-align:left;border-radius:10px 10px 0 0}.wfc.h-arch .wfc-head{background:color-mix(in srgb,var(--wf-arch) 9%,transparent)}.wfc.h-event .wfc-head{background:color-mix(in srgb,var(--wf-event) 9%,transparent)}.wfc.h-sim .wfc-head{background:color-mix(in srgb,var(--wf-sim) 9%,transparent)}.wfc.h-batch .wfc-head{background:color-mix(in srgb,var(--wf-batch) 9%,transparent)}.wfc.h-cert .wfc-head{background:color-mix(in srgb,var(--wf-cert) 9%,transparent)}.wfc-head:hover .wfc-name{text-decoration:underline}.wfc .step-n{width:18px;height:18px;font-size:10px}.wfc.done .step-n{color:var(--accent-ink)}.wfc.h-arch.done .step-n,.wfc.h-arch.next .step-n{background:var(--wf-arch)}.wfc.h-event.done .step-n,.wfc.h-event.next .step-n{background:var(--wf-event)}.wfc.h-sim.done .step-n,.wfc.h-sim.next .step-n{background:var(--wf-sim)}.wfc.h-batch.done .step-n,.wfc.h-batch.next .step-n{background:var(--wf-batch)}.wfc.h-cert.done .step-n,.wfc.h-cert.next .step-n{background:var(--wf-cert)}.wfc.next .step-n{color:var(--accent-ink)}.wfc.warn .step-n{background:var(--yellow)!important}.wfc.crit .step-n{background:var(--red)!important}.wfc-name{font-size:11.5px;font-weight:700;color:var(--text);letter-spacing:.02em}.wfc-sub{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.wfc-cmd{display:flex;align-items:center;gap:5px;padding:6px 9px;flex-wrap:wrap}.wfc-cmd .evsel{max-width:280px;text-overflow:ellipsis;font-size:11.5px;padding:4px 7px}.wfc.wide{flex:1 1 440px;max-width:640px}.wfc.wide .wfc-sub{max-width:420px}.wfc.wide .wfc-cmd{flex-direction:column;align-items:stretch;gap:4px}.wfc-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.wfc-row .evsel.tplsel{flex:1 1 170px;max-width:none;min-width:150px}.wfc-desc{font-size:10.5px;color:var(--muted5);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wfc-cmd .evsel.xs{max-width:140px;font-size:10.5px;padding:3px 6px}.wfc-cmd .runbtn{font-size:12px;padding:5px 12px}.wfc-cmd .certbtn.xs{font-size:10.5px;padding:4px 9px}.wfc-cmd .tbtn.xs{font-size:10.5px;padding:3px 7px}.wfc-cmd .lbl{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--muted2)}.wfc-cmd .hashchip{font-size:9.5px;padding:3px 7px}.wfc-arrow{position:absolute;right:-11px;top:50%;transform:translateY(-55%);font-size:18px;color:var(--muted3);pointer-events:none}.wfc:last-of-type .wfc-arrow{display:none}.tbtn:disabled,.certbtn:disabled{opacity:.45;cursor:not-allowed}.rp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0000008c;overflow:auto;padding:24px 12px 60px}.rp-form{max-width:520px;margin:40px auto;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px 18px;color:var(--text2)}.rp-wrap{max-width:900px;margin:0 auto}.rp-actions{display:flex;gap:8px;align-items:center;margin-bottom:10px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 12px}.rp-page{background:#fff;color:#111827;font-family:Noto Sans TC,Helvetica Neue,Arial,sans-serif;font-size:11px;line-height:1.55;padding:22px 26px;border-radius:6px;box-shadow:0 4px 30px #00000059}.rp-page code{font-family:IBM Plex Mono,monospace;font-size:10px;color:#111827;background:#f3f4f6;padding:0 4px;border-radius:3px}.rp-head{display:flex;justify-content:space-between;gap:16px;border-bottom:2px solid #111827;padding-bottom:8px;margin-bottom:10px}.rp-brand{font-family:Space Grotesk,sans-serif;font-size:11px;letter-spacing:.14em;color:#6b7280}.rp-brand b{color:#0b72b9}.rp-h1{font-size:18px;font-weight:700;margin:2px 0}.rp-h1 .rp-mute{font-size:12px;font-weight:400}.rp-mute{color:#6b7280;font-size:10px}.rp-ok{color:#1e8e5a}.rp-warn{color:#b0761a}.rp-bad{color:#c43d47}.rp-meta{display:grid;grid-template-columns:auto auto;gap:1px 10px;font-size:10px;align-content:start;min-width:220px}.rp-meta span{color:#6b7280}.rp-meta b{font-weight:600}.rp-scope{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.rp-scope>div{border:1px solid #D1D5DB;border-radius:6px;padding:6px 8px;display:flex;flex-direction:column;gap:2px}.rp-scope span{font-size:9px;letter-spacing:.1em;color:#6b7280;text-transform:uppercase}.rp-scope small{color:#6b7280;font-size:9px}.rp-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.rp-box{border:1px solid #D1D5DB;border-radius:6px;padding:8px 10px;margin-bottom:10px;break-inside:avoid}.rp-h2{font-size:11.5px;font-weight:700;letter-spacing:.04em;margin-bottom:6px;color:#0b72b9}.rp-h3{font-size:10px;font-weight:700;margin:8px 0 3px;color:#374151}.rp-sld svg{width:100%;height:auto;border-radius:4px}.rp-kv{display:flex;gap:8px;font-size:10px;margin:2px 0}.rp-kv>span:first-child{color:#6b7280;min-width:60px}.rp-ul{margin:2px 0 0 14px;padding:0;font-size:10px}.rp-ul li{margin:1px 0}.rp-log code{margin-right:4px}.rp-heatrow{display:flex;gap:12px;align-items:center}.rp-donutcol{display:flex;flex-direction:column;align-items:center;gap:4px}.rp-legend{display:flex;gap:6px;align-items:center;font-size:9px;color:#374151;flex-wrap:wrap;justify-content:center}.rp-legend i{width:9px;height:9px;display:inline-block;border-radius:2px;margin-left:6px}.rp-note{font-size:9.5px;color:#374151;margin-top:4px}.rp-tbl{width:100%;border-collapse:collapse;font-size:10px}.rp-tbl td{padding:2px 4px;border-bottom:1px solid #E5E7EB}.rp-tbl td:last-child{text-align:right;font-family:IBM Plex Mono,monospace}.rp-strip{margin-bottom:4px}.rp-striplbl{font-size:9px;color:#374151}.rp-striplbl span{color:#6b7280}.rp-notes{white-space:pre-wrap;font-size:10px}.rp-model{background:#f9fafb;font-size:10px}.rp-sign{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:14px;margin-top:12px;font-size:10px}.rp-sign span{color:#6b7280;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.rp-line{border-bottom:1px solid #111827;height:26px;margin:4px 0 2px}.rp-sign small{color:#6b7280;font-size:9px}.rp-fp{display:block;word-break:break-all;font-size:8.5px;margin:4px 0}.rp-foot{margin-top:12px;border-top:1px solid #D1D5DB;padding-top:6px;font-size:9px;color:#6b7280;text-align:center}@media print{@page{size:A4;margin:12mm}html.printing-report body>*:not(.rp-overlay){display:none!important}html.printing-report .rp-overlay{position:static;background:none;padding:0;overflow:visible}.no-print{display:none!important}.rp-page{box-shadow:none;border-radius:0;padding:0}.rp-two,.rp-box{break-inside:avoid}}.tiercard{border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:10px}.tiercard .mrow{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:11px;padding:2px 0;line-height:1.45}.tiercard .mrow>span:first-child{color:var(--muted2)}.tiercard .mrow .mv{color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}.tiercard .mrow .mv.warn{color:var(--yellow)}.tiercard .mrow.sub{padding-left:6px;opacity:.92}.tierhead{display:flex;align-items:baseline;gap:8px;padding:2px 0 6px}.tierbig{font-size:19px;font-weight:600;color:var(--accent);letter-spacing:.02em}.tierbind{font-size:10.5px;color:var(--muted)}:root,[data-theme=dark]{--grp-a:#8FB34E;--grp-b:#5B9BD5;--grp-c:#C9D4E5;--grp-d:#E0A04A}[data-theme=light]{--grp-a:#5E8A1E;--grp-b:#2F6FAD;--grp-c:#2B3445;--grp-d:#B86E12}.tiertopo{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.tiertopo.empty{display:flex;align-items:center;justify-content:center;min-height:220px}.tt-empty{color:var(--muted);font-size:12px;max-width:520px;text-align:center;line-height:1.6}.tt-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}.tt-title{font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.12em;color:var(--muted2);text-transform:uppercase}.tt-tier{font-size:18px;font-weight:600;color:var(--accent)}.tt-bind,.tt-note{font-size:11px;color:var(--muted)}.tt-scroll{overflow-x:auto}.tt-svg text{font-family:IBM Plex Sans,system-ui,sans-serif}.tt-svg .tt-name{font-size:11px;fill:var(--text);font-weight:500}.tt-svg .tt-plate{font-size:10px;fill:var(--muted);font-variant-numeric:tabular-nums}.tt-svg .tt-plate.warn{fill:var(--yellow)}.tt-svg .tt-rowlbl{font-size:10px;fill:var(--muted2);letter-spacing:.04em}.tt-svg .tt-colhead{font-size:12px;font-weight:600;letter-spacing:.06em}.tt-svg .tt-cool{font-size:9.5px;fill:var(--muted)}.tt-svg .tt-cord{font-size:9.5px;font-weight:700;fill:var(--bg)}.tt-svg .tt-spof{font-size:8.5px;font-weight:700;letter-spacing:.06em;fill:var(--crit-bd)}.tt-legend{font-size:11px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.tt-spofbox{display:inline-block;width:16px;height:10px;border:1.6px dashed var(--crit-bd);border-radius:2px}.buildview-toggle{display:flex;gap:6px;margin-bottom:6px}.viewtog{display:flex;gap:6px;margin:4px 0 6px}.netinsp{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin:8px 0}.ni-head{font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.1em;color:var(--muted2);text-transform:uppercase;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.ni-note{text-transform:none;letter-spacing:0;font-family:IBM Plex Sans,system-ui,sans-serif;font-size:11px;color:var(--muted)}.ni-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:8px}.ni-tbl{width:100%;border-collapse:collapse;font-size:11.5px}.ni-tbl th{text-align:left;color:var(--muted);font-weight:500;border-bottom:1px solid var(--border);padding:3px 4px}.ni-tbl td{padding:3px 4px;border-bottom:1px solid var(--border);color:var(--text);font-variant-numeric:tabular-nums}.ni-tbl td.ok{color:var(--ok-bd)}.ni-tbl td.warn{color:var(--warn-bd)}.ni-tbl td.bad{color:var(--crit-bd)}.ni-id{color:var(--muted2);font-size:10px;font-family:IBM Plex Mono,monospace}.ni-empty{color:var(--muted);font-style:italic}.ni-foot{margin-top:6px;font-size:11px;color:var(--muted)}.ni-codes{color:var(--warn-bd)}.ni-bad{color:var(--crit-bd);font-size:12px;margin-top:6px}.ni-dyn{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border)}.axrange{display:inline-flex;align-items:center;gap:3px}.axrange input.evsel{padding:2px 4px;font-family:IBM Plex Mono,monospace}.rtpanel{margin-bottom:12px}.rtbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.rttable{width:100%;border-collapse:collapse;font-size:11.5px}.rttable th{text-align:left;color:var(--muted);font-weight:500;border-bottom:1px solid var(--border);padding:3px 6px}.rttable td{border-bottom:1px solid var(--border);padding:3px 6px;vertical-align:top}.rttable tr.sel td{background:color-mix(in srgb,var(--accent) 10%,transparent)}.rttable a{color:var(--accent);text-decoration:none}.rtv.ok{color:var(--green)}.rtv.bad{color:var(--red)}.rtv.und{color:var(--yellow)}.rtv.na{color:var(--muted)}.rtag{margin-left:6px;font-size:10px;color:var(--muted);border:1px solid var(--border2);border-radius:4px;padding:0 4px}.rtag.warn{color:var(--yellow);border-color:var(--yellow)}.rtedit{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border2)}.rtstage{display:inline-flex;gap:4px;align-items:center;margin-right:8px;font-size:11.5px}.sldc-wrap{position:relative}.sldc-wrap,.insp{--sld-ac: #F5C542;--sld-dc: #45D6E8;--sld-sel: #8FA6FF;--sld-bad: #FF7A85;--sld-ok: #6EE787;--sld-warn: #F5C542;--sld-ink: #C4D2E8;--sld-ink2: #7286A3;--sld-grid: #1E2C48;--sld-bg: #0A0F1A}.sldc{height:clamp(460px,calc(100vh - 290px),980px);cursor:default;-webkit-user-select:none;user-select:none;background:var(--sld-bg)}.sldc.panning{cursor:grab}.sldc.panning:active{cursor:grabbing}.sldc.wiring{cursor:crosshair}.sldc-dot{fill:var(--sld-grid)}.sldc-empty{fill:var(--muted);font-size:13px;font-family:Noto Sans TC,sans-serif}.sldc .el .symbol{color:var(--sld-ink);stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.sldc .el.selected .symbol{color:var(--sld-sel)}.sldc .el .hit{fill:transparent;stroke:none;cursor:move}.sldc .fill-bg{fill:var(--sld-bg)}.sldc .fill-ink{fill:currentColor}.sldc .sym-text{fill:currentColor;stroke:none;font-family:IBM Plex Mono,monospace}.sldc .sel-box{fill:color-mix(in srgb,var(--sld-sel) 8%,transparent);stroke:var(--sld-sel);stroke-width:1.2;stroke-dasharray:4 3;pointer-events:none}.sldc .el.flagged .sel-box{stroke:var(--sld-bad);fill:color-mix(in srgb,var(--sld-bad) 8%,transparent)}.sldc .el.flagged.selected .sel-box{stroke:var(--sld-sel)}.sldc .label{font-size:10.5px;fill:var(--text);pointer-events:none;font-family:Noto Sans TC,sans-serif;paint-order:stroke;stroke:var(--sld-bg);stroke-width:3.5px;stroke-linejoin:round}.sldc .label .name{font-weight:600}.sldc .label .sub{fill:var(--text5);font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:400}.sldc .label .idc{fill:var(--muted2);font-family:IBM Plex Mono,monospace;font-size:8.5px;font-weight:400}.sldc .busbar{stroke-width:6;stroke-linecap:butt}.sldc .busbar.wire-target{stroke-width:8}.sldc .busbar.drop-target{stroke-width:10;filter:drop-shadow(0 0 4px var(--sld-sel))}.sldc .busbar-dc{stroke-width:1.6;stroke-dasharray:6 4;pointer-events:none}.sldc .busbar-hit{stroke:transparent;stroke-width:18;cursor:move}.sldc .resize-handle{fill:var(--sld-bg);stroke:var(--sld-sel);stroke-width:1.5;cursor:ew-resize}.sldc .port{cursor:crosshair;stroke-width:1.5}.sldc .port.free{fill:var(--sld-bg)}.sldc .port.free.k-ac{stroke:var(--sld-ac)}.sldc .port.free.k-dc{stroke:var(--sld-dc)}.sldc .port.free.k-any{stroke:var(--sld-ink)}.sldc .port.connected{stroke:none;opacity:0}.sldc .port.connected.k-ac{fill:var(--sld-ac)}.sldc .port.connected.k-dc{fill:var(--sld-dc)}.sldc .port.connected.k-any{fill:var(--sld-ink)}.sldc .el:hover .port.connected,.sldc .el.selected .port.connected{opacity:1}.sldc .port:hover,.sldc .port.drop-target{fill:var(--sld-sel);stroke:var(--sld-sel);opacity:1;r:6}.sldc .junction{fill:var(--sld-ink);pointer-events:none}.sldc-wire .hit{fill:none;stroke:transparent;stroke-width:10;cursor:pointer}.sldc-wrap .line,.insp .line{fill:none;stroke-width:2;stroke-linejoin:round;pointer-events:none}.sldc-wrap .ac-mv,.insp .ac-mv{stroke:var(--sld-ac)}.sldc-wrap .ac-lv,.insp .ac-lv{stroke:color-mix(in srgb,var(--sld-ac) 60%,var(--sld-ink))}.sldc-wrap .ac,.insp .ac{stroke:color-mix(in srgb,var(--sld-ac) 80%,var(--sld-ink))}.sldc-wrap .dc-hv,.insp .dc-hv{stroke:var(--sld-dc)}.sldc-wrap .dc-lv,.insp .dc-lv{stroke:color-mix(in srgb,var(--sld-dc) 55%,var(--sld-ink))}.sldc-wrap .dc,.insp .dc{stroke:color-mix(in srgb,var(--sld-dc) 80%,var(--sld-ink))}.sldc-wrap .unk,.insp .unk{stroke:var(--sld-ink2)}.sldc-wrap .line.ac-mv,.sldc-wrap .line.dc-hv,.insp .line.ac-mv,.insp .line.dc-hv{stroke-width:2.6}.sldc-wrap .line.unk{stroke-dasharray:4 3}.sldc-wire:hover .line{stroke-width:3}.sldc-wire.selected .line{stroke:var(--sld-sel);stroke-width:3.2;stroke-dasharray:6 3}.sldc-preview{stroke:var(--sld-sel);stroke-width:1.8;stroke-dasharray:5 4;pointer-events:none}.sldc-marquee{fill:color-mix(in srgb,var(--sld-sel) 10%,transparent);stroke:var(--sld-sel);stroke-width:1;stroke-dasharray:4 3;pointer-events:none;vector-effect:non-scaling-stroke}.sldc-tools{position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:4px;background:var(--panel);border:1px solid var(--border2);border-radius:8px;padding:4px}.sldc-tools .tbtn{padding:3px 8px;min-width:26px}.sldc-tools .tbtn:disabled{opacity:.4;cursor:default}.sldc-tools .sep{width:1px;height:18px;background:var(--border2);margin:0 2px}.sldc-tools .zoom{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--text4);min-width:38px;text-align:center}.sldc-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:6px;font-size:11px;color:var(--muted3)}.sldc-site{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--text3);background:var(--panel2);border:1px solid var(--border2);border-radius:6px;padding:3px 8px;cursor:pointer}.sldc-site.on,.sldc-site:hover{border-color:var(--accent);color:var(--text)}.sldc-flag{color:var(--red)}.sldc-legend{display:inline-flex;flex-wrap:wrap;gap:10px;margin-left:auto}.sldc-legend>span{display:inline-flex;align-items:center;gap:4px}.sldp-search{width:100%;box-sizing:border-box;margin-bottom:4px;font-size:12px}.sldp-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:4px}.sldp-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 3px;font-size:10.5px;line-height:1.2;background:var(--panel2);color:var(--text3);border:1px solid var(--border2);border-radius:7px;cursor:grab;font-family:inherit;text-align:center}.sldp-item:hover{border-color:var(--accent);color:var(--text)}.sldp .pal-icon{width:30px;height:30px;color:var(--text4)}.insp-form{display:flex;flex-direction:column;gap:6px}.insp-head{display:flex;gap:10px;align-items:center;margin-bottom:4px}.insp-head .pal-icon{width:34px;height:34px;color:var(--text3);flex:none}.insp-head .pname{margin-bottom:2px}.insp-plate{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--muted5)}.insp-sub{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:var(--muted2);letter-spacing:.1em;text-transform:uppercase;margin-top:8px}.insp-chips{display:flex;flex-wrap:wrap;gap:6px}.insp-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--text3);background:var(--panel2);border:1px solid var(--border2);border-radius:999px;padding:2px 8px}.insp-kv{width:100%;border-collapse:collapse;font-size:11.5px;color:var(--text3)}.insp-kv td{padding:3px 0;border-bottom:1px solid var(--border3)}.insp-kv td:last-child{text-align:right;font-family:IBM Plex Mono,monospace;color:var(--text2)}.insp-msg{display:block;width:100%;text-align:left;font:inherit;font-size:11px;line-height:1.45;color:var(--yellow);background:var(--warn-bg);border:1px solid var(--warn-bd);border-radius:6px;padding:5px 8px;cursor:pointer}.insp-msg:disabled{cursor:default}.insp-msg.bad{color:var(--red);background:var(--crit-bg);border-color:var(--crit-bd)}.insp .muted{color:var(--muted3);font-size:11px}.insp-group{border-top:1px solid var(--border3);padding-top:4px}.insp-gtitle{display:flex;align-items:center;gap:6px;width:100%;background:none;border:0;padding:4px 0;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted5)}.insp-gtitle:hover{color:var(--text)}.insp-gtitle .caret{display:inline-block;transition:transform .12s}.insp-gtitle .caret.open{transform:rotate(90deg)}.insp-field .pl{gap:6px;align-items:flex-start}.insp-tags{display:inline-flex;flex-wrap:wrap;gap:3px;justify-content:flex-end;flex:none;max-width:45%}.insp-tag{font-family:IBM Plex Mono,monospace;font-size:9px;line-height:1.5;padding:0 4px;border-radius:3px;border:1px solid var(--border2);color:var(--muted5);white-space:nowrap;cursor:help}.insp-tag.axis{color:var(--accent);border-color:var(--tint-accent-bd)}.insp-tag.off{opacity:.55;text-decoration:line-through}.insp-tag.rec{color:var(--muted3);border-style:dashed}.insp-tag.screen{color:var(--magenta);border-color:var(--mag-bd)}.insp-num{display:grid;grid-template-columns:84px auto 1fr;align-items:center;gap:6px}.insp-input{width:100%;box-sizing:border-box;padding:4px 6px;font-family:IBM Plex Mono,monospace;font-size:12px}.insp-input.bad{border-color:var(--red)}.insp-input.clamped{border-color:var(--yellow)}.insp-unit{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--muted5);white-space:nowrap}.insp-num input[type=range]{width:100%;min-width:0}.insp-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.insp-actions .tbtn{flex:1 1 auto}.sldc.sim{height:clamp(360px,56vh,720px)}.sldc.ro .port,.sldc.ro .junction{display:none}.sldc.ro .el .hit,.sldc.ro .busbar-hit{cursor:pointer}.sldc .el.live-ok .symbol{color:var(--sld-ok)}.sldc .el.live-warn .symbol{color:var(--sld-warn)}.sldc .el.live-down .symbol{color:var(--sld-bad)}.sldc .el.live-idle .symbol{color:var(--sld-ink2)}.sldc .busbar.live-warn{stroke:var(--sld-warn)}.sldc .busbar.live-down{stroke:var(--sld-bad)}.sldc .label .live{font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:600}.sldc .label .live-ok{fill:var(--sld-ok)}.sldc .label .live-warn{fill:var(--sld-warn)}.sldc .label .live-down{fill:var(--sld-bad)}.sldc .label .live-idle{fill:var(--sld-ink2)}.sldc-wrap .line.live-off{opacity:.2}.sldc-wrap .line.live-on{stroke-dasharray:7 6;animation:sldc-flow .7s linear infinite}@keyframes sldc-flow{to{stroke-dashoffset:-13}}@media (prefers-reduced-motion: reduce){.sldc-wrap .line.live-on{animation:none}}.sldc-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.sldc-dot.live-ok{background:var(--sld-ok)}.sldc-dot.live-warn{background:var(--sld-warn)}.sldc-dot.live-down{background:var(--sld-bad)}.sldc-dot.live-idle{background:var(--sld-ink2)}.sldc.snap{height:auto;width:100%;max-height:560px;cursor:default}
