@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2) format("woff2"),url(./barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2) format("woff2"),url(./barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-condensed-latin-500-normal-BgYH2mbd.woff2) format("woff2"),url(./barlow-condensed-latin-500-normal-HIEiP5Ov.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2) format("woff2"),url(./barlow-condensed-vietnamese-600-normal-CNlPk46_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-latin-ext-600-normal-18ESti3H.woff2) format("woff2"),url(./barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(./barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(./ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(./ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(./ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(./ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(./ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(./ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(./ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(./ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(./ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(./ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(./ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(./ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(./ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(./ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.site-bar{display:flex;align-items:center;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;padding:5px 16px;background:var(--bg);border-bottom:1px solid var(--line);font-size:13px}.site-bar p{margin:0}.site-bar-name{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;color:var(--text-2)}.site-bar-firenet{font:600 15px/1 var(--font-head);letter-spacing:.12em;color:var(--ember)}.site-bar-expansion b{color:var(--text);font-weight:600}.site-bar-team{display:inline-flex;align-items:center;gap:7px;color:var(--text);padding:2px 4px}.site-bar-team img{display:block}.site-brand{display:inline-flex;flex-direction:column;gap:3px}.site-brand-sub{font:500 12px/1 var(--font-head);letter-spacing:.14em;color:var(--text-2)}.site-tour{background:var(--panel);border:1px solid var(--ember);border-radius:3px;padding:3px 10px;cursor:pointer;font-size:13px;margin-left:auto}.site-tour:hover,.site-tour:focus-visible{background:var(--line)}.presenter-touch{display:flex;gap:6px;flex:none}.presenter-touch button{background:var(--bg);border:1px solid var(--line);border-radius:3px;padding:4px 10px;cursor:pointer}.presenter-touch .presenter-next{border-color:var(--ember)}.presenter-touch button:disabled{opacity:.4;cursor:default}@media(max-width:1000px){:root,:root body,:root #root{height:auto}:root .app{display:block;height:auto;min-height:100%}:root .picker,:root .tabs{flex:none}:root .body{grid-template-columns:minmax(0,1fr)}:root .left{overflow:visible}:root .map{min-height:0}:root .map>svg{flex:none;height:auto}:root .right{min-width:0}:root .panel{overflow-x:auto;overflow-y:visible;min-height:50vh}:root .strip-stats{flex:1 1 100%;min-width:0}:root .controls{position:sticky;bottom:0;z-index:10;box-shadow:0 -6px 12px #00000059}:root .tabs{overflow-x:auto;scrollbar-width:thin}:root .tabs button{flex:none;white-space:nowrap}:root .picker select{flex:1 1 160px;min-width:0;max-width:100%}:root .mark-legend{flex-wrap:wrap}:root .foot{overflow-wrap:anywhere}:root .top{display:contents}:root .presenter{position:sticky;top:0;z-index:11;box-shadow:0 6px 12px #00000059}:root .race{overflow-x:auto}:root .race svg{min-width:760px}}@media(max-width:640px){:root .site-bar{padding:5px 10px;font-size:12px}:root .strip{gap:8px;padding:8px 10px}:root .strip-stats{gap:6px 16px}:root .strip-stats dd{font-size:13px}:root .left{padding:6px}:root .layer,:root .layout-toggle button{font-size:12px}:root .picker{padding:8px 10px;gap:8px}:root .panel{padding:8px 10px 12px}:root .mini-grid,:root .multi-grid{grid-template-columns:1fr}:root .controls{padding:6px 10px}:root .speeds{margin-left:0}:root .buttons button{padding:6px 10px}:root .clock{font-size:13px}:root .presenter{padding:6px 10px;gap:6px}:root .presenter-line{font-size:15px;flex-direction:column;gap:2px}:root .presenter-keys{display:none}:root .foot{padding:6px 10px;font-size:11px}:root .mark-legend{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap}:root .presenter-touch{flex:1 1 100%}:root .presenter-touch button{flex:1;padding:8px 6px}:root .presenter-touch button:last-child{flex:none;padding:8px 14px}:root .layer-toggle{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}:root .layer{flex:none;white-space:nowrap}:root .health thead{display:none}:root .health table,:root .health tbody{display:block}:root .health tr{display:grid;grid-template-columns:1fr auto auto;gap:4px 12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}:root .health td{display:block;padding:0;border:0}:root .health td:nth-child(1){font-weight:600}:root .health td:nth-child(4){grid-column:1 / -1}:root .health td:nth-child(2):before,:root .health td:nth-child(5):before,:root .health td:nth-child(6):before{color:var(--text-2);font:11px var(--font-ui);text-transform:uppercase;letter-spacing:.06em;margin-right:6px}:root .health td:nth-child(2):before{content:"config"}:root .health td:nth-child(5):before{content:"tag"}:root .health td:nth-child(6):before{content:"errors"}}:root{--bg: #0e1113;--panel: #161b1f;--line: #2a3238;--text: #e8e3da;--text-2: #a8a29a;--ember: #f26a2e;--pine: #2fa38a;--amber: #e0b341;--grey: #7e8790;--forest: #121a16;--tree: #1a2a22;--font-head: "Barlow Condensed", "Arial Narrow", sans-serif;--font-ui: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--font-ui)}button,select,input{font:inherit;color:inherit}code,.mono{font-family:var(--font-mono)}.muted{color:var(--text-2)}.small{font-size:12px}.err{color:var(--ember)}h2{font:600 20px/1.2 var(--font-head);letter-spacing:.02em;margin:4px 0 8px}.app{display:grid;grid-template-rows:auto 1fr auto auto;height:100%;min-height:0}.strip{display:flex;align-items:center;gap:24px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px}.brand-name{font:600 24px/1 var(--font-head);letter-spacing:.06em}.sim-badge{font:600 14px/1 var(--font-head);letter-spacing:.12em;color:var(--bg);background:var(--amber);padding:5px 9px;border-radius:3px}.strip-stats{display:flex;gap:22px;margin:0;flex-wrap:wrap}.strip-stats div{display:flex;flex-direction:column}.strip-stats dt{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-2)}.strip-stats dd{margin:0;font-size:15px}.body{display:grid;grid-template-columns:60% 40%;min-height:0}.left{min-height:0;padding:8px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}.right{min-height:0;border-left:1px solid var(--line);display:flex;flex-direction:column;background:var(--panel)}.panel{overflow:auto;padding:8px 14px 14px;flex:1}.map{margin:0;flex:1;display:flex;flex-direction:column;min-height:360px}.map svg{flex:1;width:100%;min-height:0}.map-empty{margin:auto;color:var(--text-2)}.forest{fill:var(--forest);stroke:var(--line)}.tree{fill:var(--tree)}.map-label{fill:var(--text-2);font:13px var(--font-mono);paint-order:stroke;stroke:#0e1113d9;stroke-width:3px;stroke-linejoin:round}.gateway{fill:none;stroke:var(--text);stroke-width:2}.node{cursor:pointer}.node .hit{fill:transparent}.node:focus{outline:none}.node:focus-visible .hit{stroke:var(--text)}.glyph-normal{fill:var(--pine)}.glyph-elevated{fill:none;stroke:var(--amber);stroke-width:2.5}.glyph-ember{fill:var(--ember)}.glyph-pulse{fill:none;stroke:var(--ember);stroke-width:2;animation:pulse 1s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.glyph-halo{fill:#f26a2e2e;stroke:var(--ember);stroke-width:1.5}.glyph-fault{stroke:var(--grey);stroke-width:2.5}.glyph-lowpower{fill:none;stroke:var(--text-2);stroke-width:2}.glyph-select{fill:none;stroke:var(--text);stroke-width:1.5;stroke-dasharray:3 3}.fire-perimeter{fill:#f26a2e1f;stroke:var(--ember);stroke-width:1.5;stroke-dasharray:4 3}.fire-core{fill:var(--ember)}.wind-dial{fill:#0e1113b3;stroke:var(--line)}.wind-line{stroke:var(--text);stroke-width:3}.wind-head{fill:var(--text)}.legend{display:flex;flex-wrap:wrap;gap:14px;padding:6px 4px 0;color:var(--text-2);font-size:13px}.legend span{display:inline-flex;align-items:center;gap:6px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.35)}}@media(prefers-reduced-motion:reduce){.glyph-pulse{animation:none}}.if{fill:none;stroke-linecap:round;stroke-linejoin:round}.if-path{stroke:#b89b72;stroke-dasharray:10 7}.if-road{stroke:var(--grey)}.if-power_line{stroke:var(--text-2);stroke-dasharray:2 6 14 6}.if-village{fill:#a8a29a29;stroke:var(--text-2);stroke-width:2}.likelihood{pointer-events:none}.sat-line{stroke:var(--text);stroke-opacity:.35;stroke-dasharray:6 6;vector-effect:non-scaling-stroke}.sat-pixel{fill:#e8e3da0f;stroke:var(--text);stroke-opacity:.6;vector-effect:non-scaling-stroke}.sat-caption{fill:var(--text)}.link{stroke-opacity:.8}.no-link{fill:none;stroke:var(--grey);stroke-dasharray:3 3}.cover-disk{fill:#e8e3da12;stroke:#e8e3da40;vector-effect:non-scaling-stroke}.preview-node{fill:none;stroke:var(--text)}.sim-nodes.dimmed{opacity:.25}.map-tools{display:flex;flex-direction:column;gap:6px}.layout-toggle,.layer-toggle{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tool-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);margin-right:4px}.layout-toggle button{background:var(--panel);border:1px solid var(--line);padding:4px 10px;border-radius:3px;cursor:pointer;text-transform:capitalize}.layout-toggle button.on{border-color:var(--text);background:var(--line)}.layout-toggle .tag{margin-left:6px;font-size:11px;color:var(--pine);text-transform:none}.preview-note{font-size:13px;color:var(--text);background:var(--panel);border-left:3px solid var(--text-2);padding:4px 8px}.layer{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:3px;padding:3px 8px;cursor:pointer;font-size:13px}.layer.on{border-color:var(--text-2)}.layer input{accent-color:var(--pine);margin:0}.layer-key{display:inline-flex;align-items:center;gap:5px;color:var(--text-2);font-size:12px}.sw{display:inline-block;width:18px;height:0;border-top:2px solid;vertical-align:middle}.sw-path{border-color:#b89b72;border-top-style:dashed}.sw-road{border-top-width:4px;border-color:var(--grey)}.sw-power{border-color:var(--text-2);border-top-style:dotted}.sw-village{height:10px;border:1px solid var(--text-2);background:#a8a29a29}.sw-sat{height:10px;border:1px dashed var(--text)}.sw-grad{display:inline-block;width:44px;height:10px;background:linear-gradient(90deg,#e8e3da00,#e8e3da80);border:1px solid var(--line)}.sw-line{display:inline-block;width:14px;height:3px;border-radius:2px}.sw-ring{display:inline-block;width:9px;height:9px;border:1.5px dashed;border-radius:50%}.sw-disk{display:inline-block;width:12px;height:12px;border-radius:50%;background:#e8e3da1f;border:1px solid rgba(232,227,218,.3)}.sf-key{display:inline-flex;align-items:center;gap:3px}.plume{pointer-events:none}.glow{fill:#e8e3da8c}.fire-wind{stroke:var(--text);stroke-opacity:.85}.sw-smoke{display:inline-block;width:44px;height:10px;border:1px solid var(--line);background:linear-gradient(90deg,#9fb3c800,#9fb3c8bf)}.p0-mark{fill:var(--grey);stroke:var(--bg);stroke-width:1}.p1-mark{fill:none;stroke:var(--grey);stroke-dasharray:3 2}.sw-p0{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid var(--grey)}.sw-p1{display:inline-block;width:11px;height:11px;border-radius:50%;border:1.5px dashed var(--grey)}.picker{display:flex;gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.picker select{background:var(--bg);border:1px solid var(--line);padding:4px 6px;border-radius:3px;max-width:260px}.picker .file{border:1px solid var(--line);padding:4px 8px;border-radius:3px;cursor:pointer}.picker .file input{display:none}.picker .regime-card{border:1px solid var(--line);border-radius:3px;padding:3px 8px}.tabs{display:flex;border-bottom:1px solid var(--line)}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 14px;cursor:pointer;color:var(--text-2)}.tabs button.on{color:var(--text);border-bottom-color:var(--ember)}.health table{width:100%;border-collapse:collapse}.health th,.health td{text-align:left;padding:6px;border-bottom:1px solid var(--line);vertical-align:top}.health th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2)}.pill{display:inline-block;padding:1px 7px;border-radius:10px;font:12px var(--font-mono);border:1px solid currentColor}.pill-ok{color:var(--pine)}.pill-stub{color:var(--grey)}.pill-off{color:var(--text-2)}.pill-degraded{color:var(--ember);font-weight:600}.pill-alert{color:var(--ember)}.kv{display:grid;grid-template-columns:1fr;gap:4px;margin:0}.kv div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:4px 0}.kv dt{color:var(--text-2)}.kv dd{margin:0}.alerts ol{padding-left:20px}.alerts li{margin-bottom:10px}.signals h2{margin-top:12px}.mini-grid,.multi-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.echart{width:100%}.chart-foot{font:12px var(--font-mono);color:var(--text-2);margin-top:8px}.results-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}.results-table th,.results-table td{text-align:left;padding:5px 6px;border-bottom:1px solid var(--line)}.results-table th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2)}.controls{border-top:1px solid var(--line);padding:8px 16px;background:var(--panel)}.buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.buttons button{background:var(--bg);border:1px solid var(--line);padding:4px 10px;border-radius:3px;cursor:pointer}.buttons button.play{min-width:90px;border-color:var(--ember)}.speeds{display:inline-flex;gap:2px;margin-left:8px}.speeds button.on{border-color:var(--text);background:var(--line)}.clock{margin-left:auto;font-size:15px}.scrub{margin-top:6px}.scrub input{width:100%;accent-color:var(--ember)}.marks{width:100%;height:16px;display:block}.mark-ignition{fill:var(--ember)}.mark-alert{fill:var(--text)}.mark-satellite{fill:var(--amber)}.mark-candidate{fill:var(--pine)}.mark-degraded{fill:var(--grey)}.mark-legend{display:flex;gap:14px;font-size:12px;color:var(--text-2)}.mark-legend span:before{content:"";display:inline-block;width:10px;height:4px;margin-right:5px;vertical-align:middle}.k-ignition:before{background:var(--ember)}.k-alert:before{background:var(--text)}.k-satellite:before{background:var(--amber)}.k-candidate:before{background:var(--pine)}.k-degraded:before{background:var(--grey)}.foot{padding:6px 16px;font:12px var(--font-mono);color:var(--text-2);border-top:1px solid var(--line)}@media(max-width:1000px){.body{grid-template-columns:1fr}.right{border-left:0;border-top:1px solid var(--line)}}.live{padding:0 16px 8px;font-size:13px}.live-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.live-row input,.live-row select,.live-row button,.switch{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:4px 8px;border-radius:3px}.linkish{background:none;border:0;color:var(--text);padding:0;cursor:pointer;font-weight:500}.switches{margin-bottom:14px}.switch-row{display:flex;flex-wrap:wrap;gap:6px}.switch{cursor:pointer;min-width:74px}.switch.on{border-color:var(--pine)}.switch:disabled{opacity:.45;cursor:not-allowed}.counters{margin:8px 0 0}.why{border:1px solid var(--line);border-radius:4px;padding:10px 12px;margin-bottom:14px}.why h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);margin:8px 0 4px;font-weight:500}.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 16px}.why-explanation{font-size:13px;border-left:3px solid var(--text-2);padding-left:8px}.ladder{display:flex;gap:4px;list-style:none;padding:0;margin:6px 0}.ladder li{flex:1;text-align:center;font-size:11px;letter-spacing:.05em;padding:4px 2px;border:1px solid var(--line);border-radius:3px;color:var(--text-2)}.ladder li.past{color:var(--text)}.ladder li.on{color:var(--bg);background:var(--ember);border-color:var(--ember);font-weight:600}.logbar-track{position:relative;height:8px;background:var(--line);border-radius:4px}.logbar-fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px}.logbar-fill.pass{background:var(--ember)}.logbar-fill.fail{background:var(--grey)}.logbar-threshold{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--text)}.logbar-scale{display:flex;justify-content:space-between;margin-top:2px}.mini-table{font-size:12px;border-collapse:collapse}.mini-table td{padding:1px 8px 1px 0}.alert-item{background:none;border:0;color:var(--text);padding:0;cursor:pointer;text-align:left;font:inherit}.alerts li.sel{border-left:2px solid var(--ember);padding-left:6px}.pk{stroke-linecap:round}.pk-delivered{stroke:var(--pine)}.pk-lost{stroke:var(--amber);stroke-dasharray:4 3}.pk-delivered-key{background:var(--pine)}.pk-lost-key{background:repeating-linear-gradient(90deg,var(--amber) 0 4px,transparent 4px 6px)}.queue-badge rect{fill:var(--panel);stroke:var(--text-2);stroke-width:1}.queue-badge text{fill:var(--text);font:600 10px var(--font-mono)}.sw-badge{display:inline-block;width:12px;height:10px;border:1px solid var(--text-2);border-radius:2px;background:var(--panel)}.soc-track{fill:none;stroke:var(--line);stroke-width:2.5}.soc-arc{fill:none;stroke-width:2.5;stroke-linecap:round}.soc-m0{stroke:var(--pine)}.soc-m1{stroke:var(--amber)}.soc-m2{stroke:var(--grey)}.soc-key-0{border-style:solid;border-color:var(--pine)}.soc-key-1{border-style:solid;border-color:var(--amber)}.soc-key-2{border-style:solid;border-color:var(--grey)}.gw-down .gateway{stroke-dasharray:3 2;opacity:.6}.gw-cross{stroke:var(--amber);stroke-width:2.5;stroke-linecap:round}.race{margin-top:8px;border-top:1px solid var(--line);padding-top:6px}.race-head{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.race-headline{color:var(--text);font-weight:600}.race svg{width:100%;height:auto;display:block}.race-axis{stroke:var(--line);stroke-width:2}.race-lead{stroke:var(--ember);stroke-width:4;stroke-opacity:.35}.race-cursor{stroke:var(--text);stroke-width:1}.rk-stem{stroke:var(--text-2);stroke-width:1}.rk-label{fill:var(--text);font-size:13px}.rk-time{fill:var(--text-2);font:11px var(--font-mono)}.rk-ignition .rk-dot{fill:var(--ember)}.rk-candidate .rk-dot{fill:none;stroke:var(--ember);stroke-width:2}.rk-prahari .rk-dot{fill:var(--ember);stroke:var(--text);stroke-width:1.5}.rk-overpass .rk-dot{fill:none;stroke:var(--text-2);stroke-width:2}.rk-satellite .rk-dot{fill:var(--text-2)}.rk-missed{stroke:var(--text-2);stroke-width:1.5}.presenter{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;padding:8px 16px;background:var(--panel);border-bottom:1px solid var(--line);border-left:4px solid var(--ember)}.presenter p{margin:0}.presenter-line{font-size:18px;line-height:1.35;display:flex;align-items:baseline;gap:14px;flex:1 1 60%}.presenter-step{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);white-space:nowrap}.presenter-note{color:var(--amber)}.presenter-keys{margin-left:auto!important;white-space:nowrap}.view-error{margin:8px;padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:4px;background:var(--panel);display:flex;flex-direction:column;gap:6px}.view-error button{align-self:flex-start}.foot-warn{color:var(--amber);font-weight:600}
