:root{--bg:#eef1f8;--surface:#fff;--surface-2:#e4e9f4;--border:#d6dded;--border-strong:#b9c3dc;--text:#4a5372;--text-h:#10152a;--text-muted:#6b7593;--focus:#3548c9;--accent:#4a5cdb;--accent-strong:#2f3fb0;--accent-bg:#4a5cdb1a;--accent-fg:#fff;--code-bg:#e4e9f4;--shadow:#1720401f 0 10px 24px -8px, #17204014 0 2px 8px -2px;--lane-0:#4c5fd6;--lane-1:#0f8f83;--lane-2:#7c4dc4;--lane-3:#2f74b8;--lane-4:#268a67;--lane-5:#a1428f;--risk-always:#b3391f;--risk-always-bg:#b3391f1a;--risk-conditional:#626d85;--risk-conditional-bg:#626d851f;--clean:#1f8f5f;--clean-bg:#1f8f5f1a;--sans:"Red Hat Text", system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Red Hat Display", system-ui, "Segoe UI", Roboto, sans-serif;--mono:"IBM Plex Mono", ui-monospace, Consolas, monospace;font:16px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#0b0e18;--surface:#131828;--surface-2:#1a2136;--border:#2a3350;--border-strong:#3b4568;--text:#aab3d1;--text-h:#f1f3fb;--text-muted:#7c86a8;--focus:#8ea1ff;--accent:#8ea1ff;--accent-strong:#b2c0ff;--accent-bg:#8ea1ff29;--accent-fg:#0b0e18;--code-bg:#1a2136;--shadow:#00000080 0 10px 24px -8px, #00000059 0 2px 8px -2px;--lane-0:#8c9aff;--lane-1:#4fd9cb;--lane-2:#b98cff;--lane-3:#6fb3ec;--lane-4:#5ed3a4;--lane-5:#e08fd3;--risk-always:#ff8f66;--risk-always-bg:#ff8f6629;--risk-conditional:#9aa3c0;--risk-conditional-bg:#9aa3c024;--clean:#59d19b;--clean-bg:#59d19b24}}:root[data-theme=dark]{--bg:#0b0e18;--surface:#131828;--surface-2:#1a2136;--border:#2a3350;--border-strong:#3b4568;--text:#aab3d1;--text-h:#f1f3fb;--text-muted:#7c86a8;--focus:#8ea1ff;--accent:#8ea1ff;--accent-strong:#b2c0ff;--accent-bg:#8ea1ff29;--accent-fg:#0b0e18;--code-bg:#1a2136;--shadow:#00000080 0 10px 24px -8px, #00000059 0 2px 8px -2px;--lane-0:#8c9aff;--lane-1:#4fd9cb;--lane-2:#b98cff;--lane-3:#6fb3ec;--lane-4:#5ed3a4;--lane-5:#e08fd3;--risk-always:#ff8f66;--risk-always-bg:#ff8f6629;--risk-conditional:#9aa3c0;--risk-conditional-bg:#9aa3c024;--clean:#59d19b;--clean-bg:#59d19b24}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{font-family:var(--heading);color:var(--text-h);margin:0 0 8px;font-weight:500}h1{letter-spacing:-.02em;font-size:2rem}h2{letter-spacing:-.01em;font-size:1.25rem}h3{font-size:1rem}p{margin:0}a{color:var(--accent)}a:not(:hover){-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent)}code,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}code{background:var(--code-bg);color:var(--text-h);border-radius:4px;padding:2px 6px;font-size:.85em;display:inline-block}button{font:inherit}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:no-preference){.transition{transition:all .15s}}main{text-align:left;width:100%;max-width:1040px;margin:0 auto;padding:24px 20px 64px}.app-header{margin-bottom:24px}.app-tagline{color:var(--text-muted);max-width:60ch}.control-rail{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);z-index:10;border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0;padding:16px;display:grid;position:sticky;top:12px}@media (width<=760px){.control-rail{grid-template-columns:repeat(2,minmax(0,1fr));position:static}}@media (width<=460px){.control-rail{grid-template-columns:1fr}}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.field select{font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-h);border-radius:8px;padding:8px 10px}.field select:disabled{opacity:.55}.field-error{color:var(--risk-always);font-size:.85rem}.field-error button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-h);cursor:pointer;border-radius:6px;padding:2px 8px}.notices{border:1px solid var(--risk-conditional);background:var(--risk-conditional-bg);border-radius:8px;margin:16px 0;padding:10px 14px}.notices ul{margin:0;padding-left:20px}.freshness{color:var(--text-muted);margin:8px 2px 0;font-size:.85rem}.freshness button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-h);cursor:pointer;border-radius:6px;margin-left:6px;padding:2px 8px}.result-section{margin-top:28px}.path-result-hint{color:var(--text-muted);text-align:center;padding:32px 0}.path-result-error{color:var(--risk-always);background:var(--risk-always-bg);border:1px solid var(--risk-always);border-radius:8px;padding:12px 16px}.stitch-banner{background:var(--accent-bg);border:1px solid var(--accent);color:var(--text-h);border-radius:8px;margin-bottom:12px;padding:8px 14px;font-size:.9rem}.stitch-banner p{margin:0}.stitch-banner p+p{margin-top:6px}.stitch-banner__fallback{color:var(--risk-always)}.route-summary{margin-bottom:8px}.route-summary ol{color:var(--text-h);flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;font-size:1.05rem;font-weight:600;list-style:none;display:flex}.route-summary li+li:before{content:"→";color:var(--text-muted);margin-right:6px;font-weight:400}.route-summary__meta{color:var(--text-muted);margin-top:4px;font-size:.85rem}.map-wrap{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;margin:12px 0 20px;padding:16px 8px 12px}.map-scroll{padding-bottom:4px;overflow-x:auto}.upgrade-map{display:block}.upgrade-map text{font-family:var(--sans);fill:var(--text-h)}.station__label{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.station__risk-count{font-family:var(--mono);font-weight:700}.station__risk-count--always{fill:var(--risk-always)}.station__risk-count--conditional{fill:var(--risk-conditional)}.station__caption{letter-spacing:.1em;fill:var(--text-muted);font-size:8px;font-weight:700}.interchange-tag{letter-spacing:.05em;text-transform:uppercase;fill:var(--accent);font-size:8px;font-weight:700}.lane-0{stroke:var(--lane-0);fill:var(--lane-0)}.lane-1{stroke:var(--lane-1);fill:var(--lane-1)}.lane-2{stroke:var(--lane-2);fill:var(--lane-2)}.lane-3{stroke:var(--lane-3);fill:var(--lane-3)}.lane-4{stroke:var(--lane-4);fill:var(--lane-4)}.lane-5{stroke:var(--lane-5);fill:var(--lane-5)}.hop-segment__line{stroke-width:9px;stroke-linecap:round}.hop-segment__hit{stroke:#0000;stroke-width:27px;pointer-events:stroke;cursor:pointer}.hop-segment{cursor:pointer}.hop-segment:focus-visible .hop-segment__line,.hop-segment.is-selected .hop-segment__line{stroke-width:12px}.hop-segment:focus-visible .hop-segment__hit{stroke:color-mix(in srgb, var(--focus) 35%, transparent)}.hop-segment:focus-visible,.station:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.station{cursor:pointer}.station__dot{stroke-width:3px;stroke:var(--surface)}.station--terminal .station__dot{stroke-width:3.5px}.station:focus-visible .station__dot,.station.is-selected .station__dot{stroke:var(--focus);stroke-width:3.5px}.station__no-advisory-ring{fill:none;stroke:var(--border-strong);stroke-width:1px;stroke-dasharray:2 2}.interchange-ring{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-dasharray:4 3}.risk-pill rect{fill:var(--surface);stroke-width:2px}.risk-pill text{font-family:var(--mono);font-size:9px;font-weight:700}.risk-pill--always rect{stroke:var(--risk-always)}.risk-pill--always text{fill:var(--risk-always)}.risk-pill--conditional rect{stroke:var(--risk-conditional)}.risk-pill--conditional text{fill:var(--risk-conditional)}.risk-pill--clean rect{stroke:var(--clean)}.risk-pill--clean text{fill:var(--clean)}.map-legend{color:var(--text-muted);flex-wrap:wrap;gap:14px;margin:10px 4px 0;padding:0;font-size:.78rem;list-style:none;display:flex}.map-legend__item--always{color:var(--risk-always)}.map-legend__item--conditional{color:var(--risk-conditional)}.map-legend__item--clean{color:var(--clean)}.detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px;display:grid}@media (width<=760px){.detail-grid{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:0;margin-bottom:16px;padding:16px 18px}.panel a{overflow-wrap:anywhere}.panel__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel__hint{color:var(--text-muted);font-size:.9rem}.text-muted{color:var(--text-muted)}.interchange-note{background:var(--accent-bg);color:var(--text-h);border:1px solid var(--accent);border-radius:8px;align-items:center;gap:8px;margin:10px 0;padding:8px 12px;font-size:.88rem;display:flex}.interchange-note__icon{font-size:1.1rem}.hop-commands{flex-direction:column;gap:6px;margin:10px 0 16px;display:flex}.command-line{align-items:center;gap:8px;min-width:0;display:flex}.command-line code{overflow-wrap:anywhere;word-break:break-word;white-space:normal;flex:auto;min-width:0}.command-line .copy-button{flex-shrink:0}.command-line--secondary code{color:var(--text-muted)}.risk-card-list{flex-direction:column;gap:10px;margin:8px 0 0;padding:0;list-style:none;display:flex}.risk-card{border:1px solid var(--border);border-radius:10px;padding:12px 14px}.risk-card--always{border-color:var(--risk-always);background:var(--risk-always-bg)}.risk-card--conditional{border-color:var(--risk-conditional);background:var(--risk-conditional-bg)}.risk-card__head{align-items:center;gap:8px;font-weight:600;display:flex}.risk-badge{font-size:.9rem}.risk-card--always .risk-badge,.risk-card--always .risk-card__class{color:var(--risk-always)}.risk-card--conditional .risk-badge,.risk-card--conditional .risk-card__class{color:var(--risk-conditional)}.risk-card__class{text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.risk-card__name{color:var(--text-h)}.risk-card__message{margin:6px 0;font-size:.9rem}.risk-card__footer{flex-direction:column;align-items:flex-start;gap:6px;font-size:.85rem;display:flex}.risk-card__promql{width:100%}.risk-card__promql summary{cursor:pointer;color:var(--accent)}.promql-block{flex-wrap:wrap;align-items:flex-start;gap:8px;margin-top:6px;display:flex}.promql-block__code{white-space:pre-wrap;word-break:break-word;flex:260px}.risk-clean{color:var(--clean);background:var(--clean-bg);border:1px solid var(--clean);border-radius:8px;align-items:center;gap:8px;margin-top:8px;padding:10px 14px;font-weight:500;display:flex}.risk-clean__icon{font-size:1rem}.node-detail-list{flex-direction:column;gap:12px;margin:8px 0 0;display:flex}.node-detail-list dt{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:2px;font-size:.78rem}.node-detail-list dd{margin:0}.digest{overflow-wrap:anywhere;max-width:100%}.chip-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chip{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:.78rem}.script-block{background:var(--code-bg);border:1px solid var(--border);border-radius:10px;margin:10px 0 0;padding:14px 16px;overflow-x:auto}.script-block code{white-space:pre;background:0 0;padding:0;font-size:.85rem;line-height:1.7}.panel--guidance{border:1.5px dashed var(--risk-conditional);background:var(--surface-2)}.guidance-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px;font-size:.7rem;font-weight:700;display:inline-block}.admin-acks-list{flex-direction:column;gap:16px;margin:12px 0 0;padding:0;list-style:none;display:flex}.admin-acks-item{border-top:1px solid var(--border);padding-top:12px}.admin-acks-item:first-child{border-top:none;padding-top:0}.admin-acks-item h3{margin-bottom:6px;font-size:.95rem}.admin-acks-command{flex:auto;min-width:0;margin:8px 0 0}.admin-acks-unknown{color:var(--risk-always);margin:4px 0;font-weight:500}.alternates-list{flex-direction:column;gap:12px;margin:8px 0 0;padding:0;list-style:none;display:flex}.alternate-route{opacity:.82;border-left:3px solid var(--border-strong);padding-left:12px}.alternate-route__meta{color:var(--text-muted);margin-bottom:4px;font-size:.8rem}.alternate-route__stops{flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.alternate-route__stops li{align-items:center;gap:5px;display:flex}.alternate-route__stops li+li:before{content:"→";color:var(--text-muted);margin-right:5px}.stop-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.copy-button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-h);cursor:pointer;white-space:nowrap;border-radius:6px;padding:4px 10px;font-size:.78rem}.copy-button:hover{background:var(--surface-2)}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion:no-preference){.hop-segment__line,.station__dot{transition:stroke-width .12s,stroke .12s}}.ai-banner{background:var(--surface-2);border:1px solid var(--border-strong);border-left:3px solid var(--accent);color:var(--text);border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:20px;padding:10px 14px;font-size:.85rem;display:flex}.ai-banner p{margin:0}.ai-banner__badge{background:var(--accent);width:22px;height:22px;color:var(--accent-fg);letter-spacing:.02em;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.68rem;font-weight:800;display:inline-flex}@media (width<=570px){.ai-banner{font-size:.8rem}}.method-footer{border-top:1px solid var(--border);margin-top:40px;padding-top:16px}.method-details summary{cursor:pointer;color:var(--text-h);padding:4px 0;font-weight:600}.method-details[open] summary{margin-bottom:8px}.method-body{flex-direction:column;gap:10px;max-width:68ch;display:flex}.method-body h3{margin-top:6px}.method-body p,.method-body li{color:var(--text);font-size:.92rem}.method-body ol{flex-direction:column;gap:6px;margin:0;padding-left:22px;display:flex}@media (width<=570px){.method-body{max-width:100%}}
