
:root {
  color-scheme: dark;
  --bg: #090919; --panel: #171225; --line: #80629866;
  --text: #eee6f6; --muted: #bba8cf; --green: #6cf5b6;
  --cyan: #7be5ff; --violet: #d2a5ff; --amber: #ffce86; --red: #ff91aa;
  --accent: #d2a5ff; --accent-rgb: 210,165,255;
  --scroll-thumb: #9272b0; --scroll-track: #1c1528;
  --mono: ui-monospace, 'DejaVu Sans Mono', Consolas, monospace;
  --ui: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --page-width: 1744px;
  font-family: var(--ui);
}
* { box-sizing: border-box; scrollbar-width: thin; scrollbar-color: var(--scroll-thumb) var(--scroll-track); }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: var(--scroll-track); }
*::-webkit-scrollbar-thumb { background: var(--scroll-thumb); border: 2px solid var(--scroll-track); border-radius: 8px; }
*::-webkit-scrollbar-thumb:hover { background: #bb96d6; }
*::-webkit-scrollbar-corner { background: var(--scroll-track); }
html { background: var(--bg); overflow-x: clip; scroll-padding-top: 16px; }
body { margin: 0; min-height: 100vh; min-width: 280px; overflow-x: clip; isolation: isolate; background: transparent; color: var(--text); font-size: 13px; line-height: 1.6; }
body::before { content: ''; position: fixed; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(#0b061766,#0b061780), url("/geography/geobg.png") center / cover no-repeat; opacity: .90; }
body.plain-bg::before { display: none; }
body:has(dialog[open]) { overflow: hidden; }
button, input, summary { font: inherit; }
a { color: var(--cyan); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
button, a, input, summary { -webkit-tap-highlight-color: transparent; }
button, summary { cursor: pointer; }
button { min-width: 0; min-height: 34px; max-width: 100%; border: 1px solid var(--line); border-radius: 7px; padding: 6px 10px; color: var(--text); background: #221a30ee; font-size: 12px; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; transition: border-color .22s ease, background-color .22s ease, color .22s ease; }
button:hover { background: #352542; border-color: #c99aeb99; }
button:disabled { opacity: .4; cursor: default; box-shadow: none; }
button:disabled::after { display: none; }
button:focus-visible, a:focus-visible, input:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
[hidden] { display: none !important; }
.top, .workspace-actions, .navshell, main, footer { position: relative; z-index: 1; min-width: 0; }
.top { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,1.5fr) minmax(0,1fr); align-items: center; gap: 16px; padding: 10px max(20px,calc((100vw - var(--page-width))/2 + 20px)); border-bottom: 1px solid #c391ed29; background: #160e26c4; backdrop-filter: blur(8px); }
.top > * { min-width: 0; }
.site-label { color: #c9addf; font: 600 10px/1.5 var(--mono); letter-spacing: .07em; overflow-wrap: anywhere; }
.build-tag { display: inline-block; color: #a992be; font: 10px/1.6 var(--mono); letter-spacing: .03em; margin-top: 3px; }
.brand { color: var(--green); text-align: center; font: 600 clamp(18px,1.3vw,22px)/1.35 var(--mono); overflow-wrap: break-word; letter-spacing: -.02em; }
.brand small { display: block; color: #c4abd9; font: 11px/1.5 var(--mono); letter-spacing: .06em; margin-top: 3px; }
.pin { color: #cbb5df; text-align: right; font: 10px/1.6 var(--mono); overflow-wrap: break-word; }
.pin span, .pin b { display: block; }
.pin b { color: #ac98be; font-weight: 400; font-size: 9px; }
.workspace { position: relative; z-index: 1; display: grid; grid-template-columns: 208px minmax(0,1fr); align-items: start; gap: 18px; max-width: var(--page-width); margin: 0 auto; padding: 16px 20px 0; }
.workspace-content { min-width: 0; }
.workspace-actions { position: sticky; top: 16px; z-index: 6; min-width: 0; padding: 13px; border: 1px solid #739caf66; border-radius: 10px; background: #0a1826eb; box-shadow: 0 10px 25px #020a153d; }
.workspace-actions > .sidebar-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 29px; color: #b6d1dd; font: 600 10px/1.5 var(--mono); letter-spacing: .07em; list-style: none; }
.sidebar-title span { color: #83b8c8; font-size: 16px; transition: transform .22s ease; }
.workspace-actions[open] > .sidebar-title span { transform: rotate(180deg); }
.sidebar-body { padding-top: 11px; }
.workspace-actions:not([open]) > .sidebar-body { display: none; }
.workspace-primary, .workspace-research { display: flex; flex-direction: column; align-items: stretch; gap: 9px; min-width: 0; }
.workspace-research { margin: 14px 0 9px; }
.workspace-actions a, .workspace-actions button, .workspace-actions summary { font-size: 13px; }
.workspace-actions .workspace-research > a, .workspace-actions .workspace-research > button, .workspace-actions .files-menu > summary { display: flex; align-items: center; justify-content: flex-start; gap: 8px; width: 100%; min-height: 44px; padding: 10px 11px; border: 1px solid #79a5ba66; border-radius: 7px; color: #d0e3eb; background: #142b3be8; font-size: 13px; line-height: 1.45; text-align: left; overflow-wrap: anywhere; }
.workspace-actions .workspace-research > a:hover, .workspace-actions .workspace-research > button:hover, .workspace-actions .files-menu > summary:hover { text-decoration: none; color: #eefaff; background: #1e4053; border-color: #8cc4d6; }
.workspace-actions .companion-link { position: relative; display: block; width: 100%; min-height: 112px; padding: 13px 12px; border: 1px solid #80dbb7b3; border-radius: 8px; background: linear-gradient(145deg,#17473cee,#0d2833f2); color: #c6f5df; box-shadow: inset 0 1px 0 #c2ffe51c,0 0 20px #64d6ad17; transition: background-color .2s ease,border-color .2s ease,box-shadow .2s ease; }
.workspace-actions .companion-link:hover { text-decoration: none; border-color: #b3f6d5; background: linear-gradient(145deg,#205b4bee,#123648f5); box-shadow: 0 0 22px #64d6ad33; }
.companion-kicker { display: block; margin-bottom: 9px; padding-right: 17px; color: #8fd6ba; font: 600 9px/1.5 var(--mono); letter-spacing: .06em; }
.companion-link strong { display: block; color: #dcffed; font-size: 17px; font-weight: 700; line-height: 1.3; letter-spacing: -.025em; }
.companion-link small { display: block; margin-top: 8px; color: #aed4ce; font-size: 11px; line-height: 1.5; }
.companion-arrow { position: absolute; top: 11px; right: 11px; color: #bcfadd; font-size: 19px; line-height: 1; }
.workspace-actions #addresses { color: #d7eaf2; }
.workspace-actions #pitfalls { color: #e8d3ac; border-color: #c8ad706b; background: #292b27e8; }
.workspace-actions .analysis-action { color: #bbdce8; }
.workspace-actions .files-menu > summary { justify-content: space-between; }
.workspace-actions .files-menu[open] > summary { background: #1b3949; border-color: #80b6cd; }
.workspace-actions .files-menu > div { position: static; min-width: 0; width: 100%; max-width: 100%; margin-top: 7px; padding: 7px; display: grid; gap: 6px; border: 1px solid #739caf4d; border-radius: 7px; background: #0c1c29f2; box-shadow: none; }
.workspace-actions .files-menu a, .workspace-actions .files-menu button { display: flex; align-items: center; justify-content: flex-start; width: 100%; min-height: 36px; padding: 8px; border: 1px solid #496c8159; border-radius: 5px; background: #132c3c; color: #c6dce7; font-size: 12px; line-height: 1.4; text-align: left; }
.workspace-actions .files-menu a:hover, .workspace-actions .files-menu button:hover { text-decoration: none; background: #1c3e51; border-color: #80b6cd; }
.workspace-actions .files-menu #downloadLink { color: #b7e7cd; }
#exportSvg { color: var(--cyan); }
.files-menu, .view-options, .legend-menu { position: relative; min-width: 0; }
.files-menu > summary, .view-options > summary, .legend-menu > summary { display: flex; align-items: center; justify-content: center; min-height: 36px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 7px; color: #d5c1e4; background: #241b30de; font-size: 12px; line-height: 1.4; list-style: none; }
.files-menu > summary::after, .view-options > summary::after, .legend-menu > summary::after { content: '⌄'; margin-left: 9px; color: #bd9cd6; }
.files-menu[open] > summary::after, .view-options[open] > summary::after, .legend-menu[open] > summary::after { transform: rotate(180deg); }
summary::-webkit-details-marker { display: none; }
.files-menu[open] > summary, .view-options[open] > summary, .legend-menu[open] > summary { border-color: #b18accc4; background: #34233f; }
.view-options > div { position: absolute; right: 0; top: calc(100% + 7px); min-width: 230px; width: max-content; max-width: min(330px,calc(100vw - 30px)); padding: 9px; display: grid; gap: 6px; border: 1px solid #8864a2; border-radius: 9px; background: #1c1429fa; box-shadow: 0 12px 32px #08031199; z-index: 20; }
.files-menu a { display: flex; align-items: center; min-height: 36px; padding: 8px 10px; border-radius: 5px; color: #c0dfee; background: #2b2038; font-size: 12px; }
.files-menu a:hover { background: #3c2852; }
.files-menu #downloadLink { color: #ebcfaa; }
.navshell { padding: 12px; background: #0b1927eb; border: 1px solid #80a4ba59; border-radius: 10px; }
.route-intro { display: flex; justify-content: space-between; gap: 16px; margin: 0 0 7px; color: #bd9ed4; font: 600 10px/1.5 var(--mono); letter-spacing: .09em; }
#routeProgress { color: var(--accent); font-variant-numeric: tabular-nums; }
#routeNav { display: grid; grid-template-columns: repeat(var(--route-count,9),minmax(0,1fr)); align-items: stretch; gap: 8px; min-width: 0; }
#routeNav button { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 7px; min-width: 0; width: 100%; padding: 11px 10px; text-align: left; min-height: 68px; border-color: #82bac799; border-color: color-mix(in srgb,var(--tab-accent,var(--cyan)) 58%,transparent); background: linear-gradient(150deg,#1b3649f5,#102334f2); color: #e3f0f5; box-shadow: inset 0 1px 0 #cdeeff12,0 3px 8px #02091240; }
#routeNav button:hover { color: #fff; border-color: var(--tab-accent,var(--cyan)); background: linear-gradient(150deg,#294d61,#17364a); box-shadow: inset 0 1px 0 #e2faff29,0 0 16px #7dccdf26; }
#routeNav button::before { content: ''; position: absolute; inset: 11px auto 11px 0; width: 3px; border-radius: 3px; background: var(--tab-accent,var(--accent)); opacity: .95; }
.nav-number { color: var(--tab-accent,var(--violet)); font: 11px/1.4 var(--mono); font-variant-numeric: tabular-nums; flex-shrink: 0; opacity: .85; }
.nav-label { min-width: 0; overflow-wrap: normal; font-size: 13px; font-weight: 650; line-height: 1.35; }
.nav-open { position: absolute; top: 9px; right: 9px; color: var(--tab-accent,var(--cyan)); font-size: 13px; line-height: 1; opacity: .85; }
#routeNav button.active { color: #fff; background: linear-gradient(rgba(var(--accent-rgb),.23),rgba(var(--accent-rgb),.16)),#112534; border-color: var(--accent); box-shadow: inset 0 -3px 0 var(--accent),0 0 16px rgba(var(--accent-rgb),.13); }
main { width: 100%; max-width: none; margin: 0; padding: 12px 0 0; }
.maphead { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 12px 14px; border: 1px solid #94adc44d; border-radius: 9px 9px 0 0; background: #0a1726ed; }
.maphead > div { min-width: 0; }
.maphead h1 { margin: 0 0 4px; font-size: clamp(18px,1.4vw,21px); font-weight: 600; line-height: 1.3; letter-spacing: -.025em; color: #f0e7f6; overflow-wrap: break-word; }
.maphead p { margin: 0; color: #cbb8dc; font-size: 13px; line-height: 1.55; max-width: 115ch; }
#routeCounter { flex-shrink: 0; color: var(--accent); font: 11px/1.5 var(--mono); padding-top: 4px; }
.controls { position: relative; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 9px 16px; flex-wrap: wrap; padding: 10px 0; }
.controls-left, .controls-right { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; min-width: 0; max-width: 100%; }
.controls button { font-size: 12px; }
#trace { color: #b6e2f4; border-color: #7be5ff60; background: #19323fdc; }
#resetTrace { color: #bda7cd; }
.controls label { display: flex; align-items: center; gap: 9px; min-height: 36px; font-size: 13px; color: #d8c5e6; cursor: pointer; padding: 7px; }
input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--violet); flex-shrink: 0; }
.zoom-caption { font: 9px/1.5 var(--mono); letter-spacing: .07em; color: #c5afd8; margin-right: 3px; }
#zoomOut, #zoomIn { width: 36px; font-size: 20px; line-height: 1; padding: 6px; color: #dcc0ee; }
#zoomValue { min-width: 60px; color: #e6ccef; font-family: var(--mono); font-variant-numeric: tabular-nums; }
#fit { color: var(--accent); border-color: rgba(var(--accent-rgb),.6); }
.legend-panel { position: absolute; top: calc(100% + 7px); left: 0; width: min(650px,calc(100vw - 40px)); padding: 16px; border: 1px solid #9c78b7; border-radius: 9px; background: #1b1329fa; box-shadow: 0 12px 32px #06010d99; z-index: 20; }
.legend { display: flex; flex-wrap: wrap; gap: 10px 18px; color: #d3c0e2; font-size: 12px; line-height: 1.5; }
.legend span { display: inline-flex; align-items: center; gap: 7px; }
.legend i { width: 24px; height: 0; border-top: 2px solid var(--green); flex-shrink: 0; }
.legend .sim i { border-color: var(--cyan); }.legend .control i { border-color: var(--amber); border-top-style: dotted; }.legend .blocked i { border-color: var(--red); }.legend .conditional i { border-color: var(--violet); border-top-style: dashed; }
.legend-label, .domain-label { font: 10px/1.5 var(--mono); letter-spacing: .06em; color: #c3a9d8; }.legend-label { flex-basis: 100%; }
#domainLegend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 14px; font-size: 11px; }
#domainLegend > span { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 4px 7px; border: 1px solid #8e68ab50; border-radius: 5px; background: #2a1a3e95; }
#domainLegend i { width: 6px; height: 6px; border-radius: 2px; background: currentColor; flex-shrink: 0; }.domain-chip { color: var(--chip,var(--violet)); }
.legend-panel p { color: #bba3ce; font-size: 12px; line-height: 1.6; margin: 12px 0 0; }
.mapviewport { width: 100%; max-width: 100%; min-height: 280px; overflow: auto; border: 1px solid #b18ac650; background: #07121d59; border-radius: 7px; scroll-behavior: auto; }
.mapviewport:focus-visible { outline-offset: 2px; }.mapstage { position: relative; min-width: 0; max-width: none; margin: auto; }#mapMount { min-width: 0; }
.map-svg { display: block; width: 100%; height: auto; font-family: var(--mono); }
.map-svg text { font-family: inherit; pointer-events: none; paint-order: stroke fill; stroke: #080915a8; stroke-width: 1.5px; stroke-linejoin: round; }
.map-svg .node-open text, .map-svg .portal-badge text, .map-svg .warning-dot text { stroke: none; }
.map-node { cursor: pointer; transition: opacity .2s ease; }
.map-node:hover > rect, .map-node:focus > rect { fill: #123044; fill-opacity: .97; stroke-opacity: 1; stroke-width: 2; }
.map-node:focus { outline: none; }.map-node.traced > rect { stroke-width: 2.6; fill: #123637; fill-opacity: .97; }.map-node.portal-node > rect { stroke-width: 1.8; }
.node-open, .inspect-badge, .python-badge, .portal-badge { pointer-events: none; }
.node-open { filter: drop-shadow(0 0 2px #c192d930); }
.trace-dim { opacity: .23; }.edge { transition: opacity .2s ease; }
.tracebar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 18px; min-width: 0; padding: 9px 14px; border: 1px solid #a176c14d; border-top: 0; border-radius: 0 0 7px 7px; background: #0b1927e8; }
#traceLabel { color: #cdb7dc; font-size: 12px; overflow-wrap: anywhere; }#panHint { color: #d3b17d; font-size: 11px; }
.bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 18px; padding: 14px 0; }.bottom button { flex-shrink: 0; }
.bottom #nextRoute { color: var(--accent); border-color: rgba(var(--accent-rgb),.65); }
.bottom .summary { flex: 1 1 300px; min-width: 0; text-align: center; color: #c4accf; font-size: 12px; line-height: 1.6; }.summary b { color: var(--amber); }
footer { margin: auto; max-width: 1200px; padding: 8px 20px 20px; color: #bda4cf; text-align: center; font-size: 11px; line-height: 1.7; }footer p { margin: 0; }
#sheet, #hoverTip { --text: #e1edf2; --muted: #9db5c2; --line: #43617488; --violet: #91cbdc; --cyan: #8bd6e7; --green: #8cdbb2; }
:where(#sheet, #hoverTip) button { color: #c9dde6; background: #132c3a; border-color: #43617488; }
:where(#sheet, #hoverTip) button:hover { background: #1b3b4c; border-color: #75aabd; }
#hoverTip { position: fixed; z-index: 40; width: 324px; max-width: calc(100vw - 24px); max-height: calc(100vh - 24px); overflow: hidden; pointer-events: none; border: 1px solid #89a4b6; border-radius: 9px; padding: 14px; background: #0b1b27fc; box-shadow: 0 14px 40px #04080ab3; }
.tip-status { color: var(--muted); font: 10px/1.6 var(--mono); }.fact, .tip-status.fact, .component-status.fact strong { color: var(--green); }.sim, .tip-status.sim, .component-status.sim strong { color: var(--cyan); }.blocked, .tip-status.blocked, .component-status.blocked strong { color: var(--red); }.conditional, .tip-status.conditional, .component-status.conditional strong { color: var(--violet); }.unverified, .tip-status.unverified, .component-status.unverified strong { color: var(--amber); }
#hoverTip h3 { margin: 7px 0 10px; color: #e5eef4; font-size: 15px; line-height: 1.4; }#hoverTip p { color: #bdcdd8; font-size: 12px; line-height: 1.6; margin: 9px 0; }
.tip-address { display: block; font: 11px/1.65 var(--mono); color: #d0dee7; overflow-wrap: anywhere; margin: 4px 0; }.tip-hint { color: #acc8db; font-size: 11px; line-height: 1.5; margin-top: 10px; }
#sheet { position: fixed; inset: 0 16px 0 auto; margin: auto 0; width: min(740px,calc(100vw - 32px)); max-width: 100vw; height: 90vh; height: 90dvh; max-height: 90dvh; padding: 0; overflow: auto; overscroll-behavior: contain; border: 1px solid #456779; border-radius: 12px; color: var(--text); background: #0b1923fc; box-shadow: -20px 0 60px #04080a99; font-size: 14px; scroll-padding-top: 160px; }
#sheet.sheet-review { width: min(1000px,calc(100vw - 32px)); }#sheet::backdrop { background: #050a0d96; backdrop-filter: blur(2px); }
.sheet-header { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 18px; border-bottom: 1px solid #6f92a94d; background: #102633fc; backdrop-filter: blur(10px); }.sheet-header > div { min-width: 0; }
#sheetEyebrow { display: block; color: #9cb5c6; font: 10px/1.5 var(--mono); letter-spacing: .07em; margin-bottom: 4px; }.sheet-header h2 { margin: 0; color: #d3e1ea; font-size: 17px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
#closeSheet { flex-shrink: 0; width: 36px; min-height: 36px; padding: 3px; color: #cbdde9; border-color: #7f9fb466; background: #24323b; font-size: 25px; line-height: 1; }
#sheetBody { min-width: 0; padding: 0 18px 22px; }#sheetBody > section { padding-top: 5px; scroll-margin-top: 160px; }
#sheet:not(.sheet-review) h3 { color: #dce9f2; font-size: 17px; line-height: 1.45; margin: 13px 0 10px; font-weight: 600; }#sheet:not(.sheet-review) p { color: #c4d3dd; font-size: 13px; line-height: 1.65; margin: 10px 0; }
.detail-tabs { position: sticky; top: var(--sheet-header-height,86px); z-index: 9; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0 0 10px; padding: 11px 0; border-bottom: 1px solid #66869b4d; background: #0b1923fc; }
.detail-tabs button { display: grid; grid-template-columns: 20px minmax(0,1fr); align-items: center; gap: 9px; min-width: 0; min-height: 56px; text-align: left; padding: 10px; color: #bacad5; background: #122b39; }
.tab-icon { color: inherit; font: 13px/1 var(--mono); }.tab-copy { min-width: 0; display: block; }.tab-copy strong { display: block; font-size: 12px; line-height: 1.4; font-weight: 650; }.tab-copy small { display: block; font-size: 11px; line-height: 1.4; margin-top: 3px; color: #abbcc8; }.tab-count { font-size: 10px; }
.detail-tabs #tab-input { border-color: #77caa4a3; color: #c5ecda; background: #16382f; }.detail-tabs #tab-output { color: #b8e3f0; border-color: #6dcbe74d; background: #1c303f; }
.detail-tabs button[aria-selected=true] { border-color: #a4c4d9; color: #ebf3f8; background: #193b4b; box-shadow: inset 0 -2px 0 #a4c4d9; }.detail-tabs #tab-output[aria-selected=true] { border-color: #88d1e3; background: #203f50; color: #d9f3f8; box-shadow: inset 0 -2px 0 #88d1e3; }
.step-label { display: inline-flex; align-items: center; gap: 7px; color: #a8bcca; font: 600 10px/1.5 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.component-status { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 14px; padding: 9px 11px; margin: 11px 0 16px; border: 1px solid #6984964d; border-radius: 6px; color: #abbdc9; background: #122b39; font: 11px/1.5 var(--mono); }.component-status strong { font-weight: 600; }
#sheet:not(.sheet-review) .component-lead { color: #a6ddc4; font-size: 14px; line-height: 1.5; font-weight: 600; margin: 8px 0; }
.component-summary { color: #dbe9f2; }.component-addresses { margin: 16px 0; }
.address-line { padding: 10px 12px; margin: 8px 0; border: 1px solid #7b9bb14d; border-radius: 6px; background: #0b1b27f5; }.address-line small { display: block; color: #abc1d0; font-size: 12px; margin-bottom: 5px; }.address-line > div { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }.address-line code { flex: 1 1 330px; min-width: 0; display: block; color: #a9ddec; font: 12px/1.65 var(--mono); overflow-wrap: anywhere; }.address-line .copy { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 9px; font-size: 11px; color: #b8ccda; border-color: #82a6be4d; background: #24313a; }
.concept-label { color: var(--violet); font-size: 12px; margin: 12px 0; }
.pitfall, .evidence-caveat, .inline-note { margin: 16px 0; border-left: 2px solid #ddba80; border-radius: 0 6px 6px 0; padding: 11px 13px; background: #4d341b38; }.pitfall b, .evidence-caveat b { color: #e6c38f; font: 10px/1.5 var(--mono); letter-spacing: .04em; }.pitfall p, .evidence-caveat p { color: #e5cfae !important; font-size: 13px !important; margin: 5px 0 !important; line-height: 1.65 !important; }.inline-note { color: #b9cdda; border-color: #86a5b9; background: #283e4d40; font-size: 12px; line-height: 1.65; }
.component-extra { border-top: 1px solid #69849642; margin: 14px 0; padding-top: 12px; }.component-extra > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #b5cad8; font-size: 13px; list-style: none; min-height: 30px; }.component-extra > summary::after { content: '+'; color: #96b3c6; font: 16px/1 var(--mono); }.component-extra[open] > summary::after { content: '−'; }
.context-links, .source-links, .detail-evidence { display: flex; align-items: stretch; gap: 7px; flex-wrap: wrap; margin: 11px 0; }.context-links button { flex: 1 1 220px; flex-direction: column; align-items: flex-start; text-align: left; gap: 3px; }.context-links button span { color: #98abb7; font-size: 11px; }
.context-links a, .context-links button, .source-links a, .source-links button, .detail-evidence a { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; max-width: 100%; padding: 8px 10px; border: 1px solid #84a5bb42; border-radius: 6px; color: #bacfdd; background: #202b32; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }.context-links button { align-items: flex-start; }.context-links a:hover, .source-links a:hover, .detail-evidence a:hover { text-decoration: none; background: #2b3943; }
.explorer { display: inline-block; font-size: 12px; line-height: 1.5; padding: 5px 0; color: #a0d3e3; }
.portal-link { display: flex; flex-direction: column; margin: 16px 0; padding: 15px; border: 1px solid #9bc1da65; border-radius: 7px; background: linear-gradient(120deg,#2d435180,#153e4980); }.portal-link:hover { text-decoration: none; border-color: #9dbacd; }.portal-link span, .portal-hint { font: 10px/1.5 var(--mono); color: #a9c3d5; letter-spacing: .05em; }.portal-link strong { color: #dce8f0; font-size: 16px; font-weight: 600; line-height: 1.4; margin: 6px 0; }.portal-link small { color: #aabecc; font-size: 12px; }
.evidence-note { color: #a8bcc9 !important; font-size: 12px !important; }.evidence-empty { padding: 15px; margin: 16px 0; border: 1px dashed #92b1c566; border-radius: 7px; color: #b2c6d4; background: #26364044; font-size: 13px; line-height: 1.7; }.no-record { box-shadow: none !important; opacity: .65; }.no-record::after { display: none; }
.provenance { margin: 14px 0; border: 1px solid #6b859640; border-radius: 7px; background: #1c252b80; }.provenance summary { padding: 10px 12px; color: #acc2d1; font-size: 12px; line-height: 1.6; }.provenance ul { margin: 0 14px 14px; padding-left: 18px; color: #a9bcc8; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }.provenance li { margin: 7px 0; }.provenance a { color: #afc8d8; }.archive-label { color: #94abbb; font-size: 11px; }
.code-asset { margin: 16px 0; overflow: hidden; border: 1px solid #85a4b861; border-radius: 7px; background: #08141e; }.code-top { display: grid; grid-template-columns: minmax(0,1fr); gap: 11px; padding: 12px 14px; background: #112a38; border-bottom: 1px solid #6b859650; }.code-top > div { min-width: 0; }.code-top b { display: block; color: #cadbe7; font-size: 14px; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }.code-top small { display: block; color: #a0b5c3; font: 10px/1.7 var(--mono); overflow-wrap: anywhere; margin-top: 3px; }
.code-actions { display: flex; flex-wrap: wrap; gap: 7px; align-items: stretch; max-width: 100%; }.code-actions button, .code-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 32px; padding: 6px 10px; color: #bed4e2; border: 1px solid #86a6bb61; border-radius: 5px; background: #27343d; font-size: 12px; line-height: 1.4; }.code-actions .download-code { color: #b1dec4; border-color: #76cda061; background: #1c332c; }.code-actions .full-source { color: #b5dce8; border-color: #75c3d961; background: #1c303e; }.code-actions a:hover { text-decoration: none; border-color: currentColor; }
.code-view { margin: 0; padding: 15px 16px; max-height: 57vh; overflow: auto; white-space: pre; tab-size: 4; color: #cfdde6; font: 12px/1.75 var(--mono); }.code-view code { font: inherit; }
.syntax-comment { color: #93a7b5; font-style: italic; }.syntax-string { color: #a3dabc; }.syntax-keyword { color: #b1cee2; }.syntax-builtin { color: #91d3e2; }.syntax-number { color: #e8c291; }.syntax-property { color: #bbd4e5; }.syntax-success { color: var(--green); }.syntax-error { color: var(--red); }
.run-command { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; padding: 10px 13px; border-bottom: 1px solid #526c7e4d; background: #192228; }.run-command span { color: #a7bfcf; font: 10px/1.5 var(--mono); letter-spacing: .06em; }.run-command code { flex: 1 1 220px; min-width: 0; color: #c9dae5; font: 12px/1.65 var(--mono); overflow-wrap: anywhere; }.run-command button { min-height: 30px; padding: 5px 9px; font-size: 11px; }
.searchlabel { display: block; color: #adc3d1; font-size: 13px; margin: 16px 0 7px; }#addressSearch { width: 100%; min-height: 42px; border: 1px solid #8eb0c666; border-radius: 6px; padding: 10px 12px; color: #dee9f0; background: #131d23; font-size: 14px; }#addressSearch::placeholder { color: #90a4b2; }
.directory-item { display: block; width: 100%; padding: 12px 14px; margin: 10px 0; border: 1px solid #708da04d; background: #1f2a31; text-align: left; }.directory-item span { display: block; font-size: 14px; }.directory-item code { display: block; color: #a9ddec; font: 12px/1.7 var(--mono); margin: 6px 0; overflow-wrap: anywhere; }.directory-item small { font-size: 12px; color: #a7bbc9; }
.pitfall-item { padding: 16px 0 18px; border-bottom: 1px solid #607c8f42; }.pitfall-item > span { color: var(--amber); font: 11px/1.5 var(--mono); }.pitfall-item h3 { color: #e2c18d !important; }.pitfall-item button { margin: 4px 6px 4px 0; color: #add3e5; font-size: 12px; }.small { color: #a8bcc9; font-size: 12px; }
.review-topbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 11px; padding: 13px 0; border-bottom: 1px solid #5f7f954d; }.review-back { color: #bed4e2; border-color: #97bcd461; }.review-topbar p { margin: 0; font-size: 12px; line-height: 1.6; color: #a3b7c5; flex: 1 1 260px; min-width: 0; }
.review-layout { display: grid; grid-template-columns: 174px minmax(0,1fr); gap: 18px; align-items: start; padding-top: 18px; }.review-nav { position: sticky; top: calc(var(--sheet-header-height,86px) + 12px); display: grid; gap: 7px; min-width: 0; max-height: calc(100dvh - var(--sheet-header-height,86px) - 25px); overflow: auto; padding-right: 4px; overscroll-behavior: contain; }
.review-nav button { display: grid; grid-template-columns: 19px minmax(0,1fr); gap: 7px; align-items: center; width: 100%; min-width: 0; text-align: left; color: #b5c8d4; border-color: #6b8da34d; background: #122a38; font-size: 12px; line-height: 1.5; }.review-nav button small { font: 10px/1.5 var(--mono); color: #90a6b5; }.review-nav button span { min-width: 0; overflow-wrap: anywhere; }.review-nav button.active, .review-nav button[aria-current=page] { color: #dce9f2; border-color: #97bad299; background: #1a3c4c; box-shadow: inset 2px 0 0 #a2c2d7; }.review-nav > a { padding: 6px 0; font-size: 12px; }
.review-content { min-width: 0; overflow-wrap: anywhere; }.review-content > article { min-width: 0; scroll-margin-top: 115px; }.source-focus-label { padding: 10px 13px; margin-bottom: 14px; border-left: 2px solid #79c6d9; background: #1947584d; color: #b6deeb; font-size: 13px; }
.review-code-links { display: block; margin: 18px 0; }.review-code-links > div { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap: 10px; margin-top: 10px; }.review-code-links button { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; min-height: 50px; padding: 10px 12px; border: 1px solid #70b99b85; border-radius: 7px; background: #15352f; color: #d2e2ed; font-size: 12px; line-height: 1.5; }.review-code-links button span { font-weight: 650; font-size: 12px; }.review-code-links button small { font-size: 12px; color: #a8bcca; }

/* One slow, continuous opacity animation; text and layout remain still. */
.python-glow, .attention-pulse, .review-python-toggle, #routeNav button.next-step, #nextRoute { position: relative; isolation: isolate; }
.python-glow, .attention-pulse, .review-python-toggle { --glow-rgb: 102,207,174; }
#routeNav button.next-step, #nextRoute { --glow-rgb: var(--accent-rgb); }
.python-glow::after, .attention-pulse::after, .review-python-toggle::after, #routeNav button.next-step::after, #nextRoute::after { content: ''; position: absolute; inset: -1px; pointer-events: none; border-radius: inherit; box-shadow: 0 0 12px 1px rgba(var(--glow-rgb),.38),inset 0 0 9px rgba(var(--glow-rgb),.12); opacity: .18; animation: softGlow 5.2s ease-in-out infinite; }
#routeNav button.next-step::after, #nextRoute::after { animation-duration: 6s; box-shadow: 0 0 9px rgba(var(--glow-rgb),.25); }
@keyframes softGlow { 0%,100% { opacity: .18; } 50% { opacity: .62; } }

@media (max-width:1199px) {
  .top { grid-template-columns: minmax(0,1fr) minmax(270px,1.3fr); }.site-identity { grid-column: 1; grid-row: 1; }.brand { grid-column: 2; grid-row: 1 / 3; text-align: right; }.pin { grid-column: 1; grid-row: 2; text-align: left; }.top { gap: 5px 18px; }
  #routeNav { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width:900px) { .workspace { grid-template-columns: 184px minmax(0,1fr); gap: 14px; }.workspace-actions { padding: 11px; }.controls { align-items: flex-start; }.controls-right { margin-left: auto; }.legend-menu { position: static; }.legend-panel { left: 0; right: 0; top: calc(100% + 2px); width: auto; max-height: 65vh; overflow: auto; } }
@media (max-width:760px) {
  .top { padding: 12px 14px; grid-template-columns: minmax(0,1fr); gap: 6px; }.brand { grid-column: 1; grid-row: 1; text-align: center; font-size: 19px; }.site-identity { display: none; }.pin { grid-column: 1; grid-row: 2; text-align: center; font-size: 10px; }.pin b { font-size: 9px; }
  .workspace { grid-template-columns: minmax(0,1fr); padding: 10px; gap: 12px; }.workspace-actions { position: relative; top: auto; padding: 10px 12px; }.workspace-actions > .sidebar-title { min-height: 32px; }.workspace-actions .companion-link { min-height: 98px; }
  .navshell { padding: 10px; }#routeNav { gap: 7px; }#routeNav button { padding: 10px; gap: 6px; min-height: 62px; }.nav-number { font-size: 10px; }.nav-label { font-size: 13px; }
  main { padding: 10px 0 0; }.maphead { padding: 12px; gap: 10px; }.maphead h1 { font-size: 20px; }.maphead p { font-size: 12px; }#routeCounter { font-size: 10px; }
  .controls-left, .controls-right { gap: 6px; }.controls-left { width: 100%; }.controls button, .view-options > summary, .legend-menu > summary { font-size: 12px; padding: 7px 9px; }.controls-right { margin-left: 0; }.view-options { position: static; }.view-options > div { left: 0; right: auto; top: calc(100% + 2px); }.mapviewport { min-height: 250px; }
  .tracebar { padding: 9px 11px; }#panHint { font-size: 10px; }.bottom { gap: 10px; }.bottom .summary { order: 3; flex-basis: 100%; font-size: 11px; }.bottom button { font-size: 12px; }.bottom #nextRoute { max-width: calc(100% - 135px); }footer { font-size: 11px; padding: 8px 14px 18px; }
  #hoverTip { display: none !important; }#sheet, #sheet.sheet-review { inset: 0; margin: 0; width: 100vw; max-width: 100vw; height: 100vh; height: 100dvh; max-height: 100dvh; border-radius: 0; border: 0; }.sheet-header { padding: 12px 14px; gap: 12px; }.sheet-header h2 { font-size: 16px; }#sheetEyebrow { font-size: 9px; }#sheetBody { padding: 0 12px 22px; }
  .detail-tabs { gap: 6px; padding: 10px 0; }.detail-tabs button { grid-template-columns: minmax(0,1fr); align-content: center; gap: 5px; padding: 9px 7px; min-height: 77px; text-align: center; }.tab-icon { font-size: 12px; }.tab-copy strong { font-size: 12px; }.tab-copy small { font-size: 10px; }
  .address-line { padding: 10px; }.address-line code { flex-basis: 260px; font-size: 12px; }.code-view { padding: 13px; font-size: 12px; }.code-actions { gap: 6px; }.code-actions button, .code-actions a { font-size: 11px; }
  .review-layout { grid-template-columns: minmax(0,1fr); gap: 16px; padding-top: 14px; }.review-nav { position: static; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; max-height: none; overflow: visible; padding-right: 0; }.review-nav button { padding: 8px 10px; font-size: 12px; }.review-nav > a { grid-column: 1 / -1; }.review-topbar { align-items: flex-start; }.review-topbar p { font-size: 11px; }
}
@media (max-width:480px) { #routeNav { grid-template-columns: repeat(2,minmax(0,1fr)); }.workspace-research { display: flex; flex-direction: column; width: 100%; }.controls-left { gap: 6px; }.zoom-caption { font-size: 9px; }.detail-tabs button { padding: 8px 5px; }.tab-copy strong { font-size: 11px; }.review-nav button { grid-template-columns: 17px minmax(0,1fr); gap: 5px; } }
@media (pointer:coarse) { button, .workspace-actions > div > a, .files-menu > summary, .view-options > summary, .legend-menu > summary, .files-menu a { min-height: 44px; }#zoomOut, #zoomIn, #closeSheet { width: 44px; min-height: 44px; }.address-line .copy, .code-actions button, .code-actions a, .run-command button { min-height: 40px; } }
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }.python-glow::after, .attention-pulse::after, .review-python-toggle::after, #routeNav button.next-step::after, #nextRoute::after { opacity: .32; } }
/* Embed each REVIEW_DATA.sections[i].html in .review-prose. No global selectors. */
.review-prose{
  --rv-ink:#f0f5f9;--rv-muted:#b8ccda;--rv-line:#85b1cf3b;
  --rv-green:#6de6b5;--rv-cyan:#79dfee;--rv-amber:#ffc76e;
  --rv-violet:#bfd8e8;--rv-pink:#b4d0e3;--rv-red:#ff8f9c;
  color:var(--rv-ink);font:13px/1.68 ui-sans-serif,system-ui,Segoe UI,sans-serif;
  min-width:0;overflow-wrap:break-word;isolation:isolate;
}
.review-prose *{box-sizing:border-box;min-width:0}
.review-prose h2,.review-prose h3,.review-prose h4{line-height:1.25;color:var(--rv-ink);text-wrap:balance}
.review-prose h2{font-size:clamp(22px,2vw,27px);margin:7px 0 14px;letter-spacing:-.025em}
.review-prose h3{font-size:19px;margin:28px 0 15px}
.review-prose h4{font-size:16px;margin:0 0 8px}
.review-prose p{margin:.55em 0 1em}
.review-prose a{color:var(--rv-cyan);text-decoration:none}
.review-prose a:hover{text-decoration:underline;text-underline-offset:4px}
.review-prose a:focus-visible,.review-prose summary:focus-visible,.review-prose button:focus-visible{outline:2px solid var(--rv-violet);outline-offset:4px}
.review-prose code,.review-prose .rv-mono,.review-prose .rv-addr,.review-prose .rv-eyebrow,.review-prose .rv-badge,.review-prose .rv-bignum{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace}
.review-prose code{font-size:13px;color:#cde0ed;overflow-wrap:anywhere}
.review-prose .rv-sectionhead{margin-bottom:22px}
.review-prose .rv-sectionhead>p{color:var(--rv-muted);font-size:16px;max-width:90ch}
.review-prose .rv-eyebrow{font-size:11px;letter-spacing:.12em;color:var(--rv-violet)}
.review-prose .rv-verdict{padding:17px 19px;background:linear-gradient(120deg,#33566d2b,#173b422b);border:1px solid #a6c8de64;border-left:3px solid var(--rv-violet);border-radius:13px;margin:20px 0}
.review-prose .rv-verdict h3{font-size:21px;margin:10px 0 15px}
.review-prose .rv-grid{display:grid;gap:12px;margin:18px 0}
.review-prose .rv-two{grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr))}
.review-prose .rv-three{grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr))}
.review-prose .rv-box{border:1px solid var(--rv-line);border-radius:11px;background:#121a1f5c;padding:16px;margin-bottom:12px}
.review-prose .rv-box h3{margin:0 0 14px;font-size:18px}
.review-prose .rv-box p:last-child{margin-bottom:0}
.review-prose .rv-box.rv-amber{border-color:#ffcf7357;background:#46301626}
.review-prose .rv-badge{font-size:10.5px;letter-spacing:.025em;padding:5px 8px;border:1px solid;border-radius:5px;display:inline-block;line-height:1.5;margin:1px 4px 8px 0}
.review-prose .rv-ok{color:var(--rv-green);border-color:#6de6b561}
.review-prose .rv-sim{color:var(--rv-cyan);border-color:#79dfee66}
.review-prose .rv-idea{color:var(--rv-violet);border-color:#bfd8e875}
.review-prose .rv-bad{color:var(--rv-red);border-color:#ff8f9c75}
.review-prose .rv-warn{color:var(--rv-amber);border-color:#ffc76e75}
.review-prose .rv-legend{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.review-prose .rv-small{font-size:13px;color:var(--rv-muted)}
.review-prose .rv-callout{border-left:3px solid var(--rv-amber);padding:17px 20px;background:#ffc76e0a;color:#ead6bc;margin:22px 0;border-radius:0 10px 10px 0}
.review-prose .rv-addr{display:block;font-size:13px;line-height:1.65;overflow-wrap:anywhere;word-break:normal;margin:8px 0;color:var(--rv-cyan)}
.review-prose .rv-refs{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}
.review-prose .rv-refs a{font:12px/1.6 ui-monospace,monospace;color:var(--rv-violet);padding:4px 7px;border:1px solid #b4d0e355;background:#a5c7de12;border-radius:5px}
.review-prose .rv-tablewrap{overflow:auto;border:1px solid var(--rv-line);border-radius:9px;margin:18px 0;scrollbar-color:#98bfd9 #131e25}
.review-prose table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.65;text-align:left}
.review-prose th{color:#c4dae9;font-size:11px;letter-spacing:.04em;text-transform:uppercase;background:#81afce12;padding:14px 16px}
.review-prose td{padding:14px 16px;border-top:1px solid var(--rv-line);vertical-align:top;overflow-wrap:anywhere}
.review-prose tr:nth-child(even){background:#98bdd606}
.review-prose td:first-child{font-weight:600;color:var(--rv-ink)}
.review-prose details{background:#121c224d;border:1px solid #8cb2cb50;border-radius:10px;margin:18px 0;padding:17px 19px}
.review-prose summary{cursor:pointer;color:var(--rv-violet);font-weight:650;font-size:15px;line-height:1.45}
.review-prose details[open] summary{margin-bottom:15px}
.review-prose details p{font-size:14px}
.review-prose .rv-flow{padding:19px;background:linear-gradient(160deg,#21313c2d,#11253026);border:1px solid var(--rv-line);border-radius:11px;align-self:start}
.review-prose .rv-node{background:#0a131969;border:1px solid;border-radius:9px;padding:18px;box-shadow:0 5px 16px #0002}
.review-prose .rv-node strong{display:block;color:inherit;font-size:16px}
.review-prose .rv-node p{font-size:14px;line-height:1.65;color:var(--rv-muted);margin:10px 0 0}
.review-prose .rv-arrow{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0;color:var(--rv-cyan);text-align:center}
.review-prose .rv-arrow span{font:12px/1.5 ui-monospace,monospace;color:var(--rv-muted)}
.review-prose .rv-arrow b{font-size:27px;line-height:1}
.review-prose .rv-branch{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.review-prose .rv-branch .rv-node{padding:15px}
.review-prose .rv-branch .rv-node strong{font-size:15px}
.review-prose .rv-bignum{color:var(--rv-green);font-size:clamp(20px,2vw,27px);line-height:1.4;margin:18px 0;overflow-wrap:anywhere}
.review-prose .rv-bignum small{display:block;color:var(--rv-muted);font:13px/1.7 ui-monospace,monospace}
.review-prose .rv-formula{font:24px/1.5 ui-monospace,monospace;color:var(--rv-amber);margin:24px 0;overflow-wrap:anywhere}
.review-prose .rv-designlabel{margin:15px 0;color:var(--rv-muted);font-size:13px}
.review-prose .rv-source{display:grid;grid-template-columns:42px minmax(0,1fr);gap:15px;padding:22px 0;border-bottom:1px solid var(--rv-line);scroll-margin:24px}
.review-prose .rv-source>span{font:13px ui-monospace,monospace;color:var(--rv-violet);padding-top:3px}
.review-prose .rv-source p{font-size:14px;color:var(--rv-muted);margin:0 0 8px}
.review-prose .rv-source code{display:block;font-size:12px;color:#b5c4ce;margin:8px 0 12px}
.review-prose .rv-source a{font-size:13px}
.review-prose .rv-download{padding:11px 17px;border:1px solid #7bdfeea1;border-radius:8px;background:#55b7d619;color:var(--rv-cyan);font-size:14px;font-weight:650;display:inline-block}
.review-prose .rv-source:target,.review-prose .review-source-highlight{outline:2px solid #c3dae999;outline-offset:6px;background:#9ac0d90d;border-radius:5px}

.review-prose #review-E11{display:block}
@media(max-width:650px){.review-prose h2{font-size:23px}.review-prose .rv-box,.review-prose .rv-verdict{padding:15px}.review-prose th,.review-prose td{padding:11px 9px}.review-prose .rv-source{grid-template-columns:30px minmax(0,1fr);gap:8px}.review-prose .rv-addr{font-size:12px}}

/* R8: measured tables sit outside the scaled map. */
.route-data{margin:16px 0;padding:16px 18px;border:1px solid #607f935c;border-radius:8px;background:#0a1b27eb;color:#c5d7e2;font-size:12px;line-height:1.65}
.route-data[hidden]{display:none}.route-data h3{margin:0 0 7px;color:#c9e8de;font-size:15px}.route-data p{margin:7px 0 12px}.route-data a,.primary-source-links a{color:#83cddd}
.route-data details{margin:15px 0 0}.route-data details>summary{cursor:pointer;color:#bad5dc;padding:8px 0}.snapshot-scroll{max-width:100%;overflow-x:auto;overscroll-behavior:contain}
.snapshot-scroll table{width:100%;border-collapse:collapse;font:11px/1.6 var(--mono);text-align:left;white-space:nowrap}.snapshot-scroll th,.snapshot-scroll td{padding:9px 12px;border-bottom:1px solid #59708340;vertical-align:top}.snapshot-scroll th{color:#9fc4d3;background:#142d3a}.snapshot-scroll td{color:#d4e3eb}.snapshot-scroll tr:nth-child(even) td{background:#11233077}.snapshot-note{color:#99b4c6!important;font-size:11px!important}
.component-metrics{display:grid;gap:0;margin:15px 0}.component-metrics>div{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:14px;padding:8px 0;border-top:1px solid #6d87964a}.component-metrics dt{color:#9fbac8;font-size:11px}.component-metrics dd{margin:0;font:11px/1.6 var(--mono);color:#d5e8ed;overflow-wrap:anywhere}.primary-source-links{display:grid;gap:8px;padding:8px 0}
#routeNav{grid-template-columns:repeat(4,minmax(0,1fr))}#routeNav button{min-height:60px}.nav-label{line-height:1.3}
@media(min-width:1500px){#routeNav{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1150px){#routeNav{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:580px){#routeNav{grid-template-columns:repeat(2,minmax(0,1fr))}.route-data{padding:13px}.component-metrics>div{grid-template-columns:1fr;gap:4px}}

body{background:#07121d;color:#d3e0e8;margin:0;font:14px/1.7 system-ui,sans-serif}body::before{display:none}header.report-head,main.report-main{max-width:1120px;margin:0 auto;padding:30px 24px}header.report-head{border-bottom:1px solid #6a859855}header.report-head h1{font-size:30px;margin:6px 0 10px;color:#cef0e1}header.report-head p{max-width:850px;color:#abc1ce}.report-nav{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.report-nav a{padding:6px 10px;border:1px solid #64839477;border-radius:5px;color:#bde2dc;text-decoration:none;background:#102633}.report-main>section{padding:20px 0 32px;border-bottom:1px solid #607c9044;scroll-margin-top:20px}.report-meta{font:11px/1.8 ui-monospace,monospace;color:#91b7c9}.report-main .snapshot-scroll{max-width:100%}.report-main .snapshot-scroll th,.report-main .snapshot-scroll td{font-size:11px}.report-main h3{font-size:18px;color:#bcdfd3}.report-main>section>h2{color:#c9e4dc}.report-main .review-prose{overflow-wrap:anywhere}a{color:#83cddd}@media print{body{background:white;color:#111}header.report-head,main.report-main{padding:12px;max-width:none}.report-nav{display:none}.snapshot-scroll{overflow:visible}.snapshot-scroll table{white-space:normal;font-size:9px}.report-main>section{break-inside:auto}}
