:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#193444;background:#f1f6fa;font-synthesis:none;font-variant-numeric:tabular-nums;--line: #d6e1e7;--muted: #566f7c;--plum: #694a9c;--teal: #147d85}*{box-sizing:border-box}body{margin:0;font-size:13px;line-height:1.5}button,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:3px;padding:9px 13px;font-weight:550}button:hover{border-color:var(--teal);background:#f0f8f8}button:disabled{cursor:default;opacity:.45}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #9677c2;outline-offset:3px}select{background:#fff;border:1px solid #bdcdd6;border-radius:3px;padding:10px;width:100%;cursor:pointer;min-width:0}label{display:block;font-size:12px;margin-bottom:7px;color:var(--muted)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h2{font-size:12px;font-weight:650}small{font-size:11px;font-weight:400}button.primary{background:var(--teal);color:#fff;border-color:var(--teal)}.masthead{height:70px;padding:0 36px;display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--line);background:#fff}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:inherit;font-weight:700;font-size:16px;white-space:nowrap}.brand-mark{font-size:36px;color:var(--teal);line-height:1}.edition{font-size:10px;letter-spacing:1.7px;font-weight:500;color:var(--muted);margin-left:9px}.filename{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:35%;margin-left:auto}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.version-switcher{--version-switcher-bg: #fff;--version-switcher-border: #bdcdd6;margin:0;font-size:11px}.version-switcher__select{width:auto;max-width:155px;padding-top:7px;padding-bottom:7px}.theme-btn{width:44px;height:44px;padding:0;flex:0 0 44px;font-size:17px}.primary span{margin-left:15px}main{max-width:1600px;margin:auto;padding:30px 36px 0}.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{color:var(--teal);font-size:10px;font-weight:650;letter-spacing:2px;margin-bottom:8px}h1{font-size:34px;letter-spacing:-1.1px;font-weight:580;line-height:1.2}.page-title p:not(.eyebrow){color:var(--muted);margin-top:8px}.track-summary{display:flex;gap:30px}.track-summary span{font-size:9px;color:var(--muted);letter-spacing:1px}.track-summary b{display:block;font-size:17px;font-weight:550;color:#193444;letter-spacing:0;margin-top:6px}.lab{display:grid;grid-template-columns:190px minmax(0,1fr) 242px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.controls{padding:24px 23px 16px 0}.control-block{padding-bottom:22px;margin-bottom:20px;border-bottom:1px solid var(--line)}.control-block:last-child{border:0;margin:0;padding:0}.control-block h2{margin-bottom:15px}.hint{font-size:11px;line-height:1.6;color:var(--muted);margin-top:8px}.filters{display:flex;flex-direction:column;gap:5px}.filters button{background:transparent;display:flex;align-items:center;text-align:left;border-color:transparent;gap:8px;padding:9px 10px}.filters button small,.filters button>span{margin-left:auto;color:var(--muted)}.filters button[aria-pressed=true]{border-color:#b7d2d5;background:#e2eff1;color:#075e66}.key{display:inline-block;flex-shrink:0;width:7px;height:7px;border-radius:50%;margin-right:1px}.uphill{background:#b77b35}.flat{background:#7796a5}.downhill{background:#147d85}.category-total{display:flex;justify-content:space-between;margin:10px 0;font-size:12px}.category-total span{text-transform:capitalize}.category-total i{margin-right:7px}.category-total b{font-weight:550}.valid-count{font-size:34px;line-height:1;font-weight:500;letter-spacing:-1px}.reset{margin-top:20px;width:100%;font-size:12px;text-align:left}.reset span{float:right}.plots{position:relative;min-width:0;background:#fff;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:20px 23px 14px}.plot-header,.profile-heading,.route-heading,.observation-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.plot-header{margin-bottom:20px}.plot-header span,.profile-heading span{font-size:10px;color:var(--muted)}.scatter svg,.profile svg,.route svg{display:block;width:100%;height:auto}.scatter{min-height:300px}.scatter svg{min-height:300px}.plots svg text{font-family:inherit;font-size:10px;fill:#566f7c}.plots svg .axis-title{font-size:9px;letter-spacing:1px;fill:#46606f}.grid{stroke:#e1e9ee;stroke-width:1}.zero-line{stroke:#9cafba;stroke-width:1;stroke-dasharray:4 4}.dot{cursor:pointer;opacity:.67;stroke:#fff;stroke-width:1.2}.dot:hover{opacity:1;stroke:#193444;stroke-width:2}.active-dot{opacity:1}.selection-halo{fill:none;stroke:#694a9c;stroke-width:1.5;pointer-events:none}.plot-label{pointer-events:none}.plot-label rect{fill:#694a9c}.plots svg .plot-label text{fill:#fff;font-size:10px}.plot-caption{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.6px;color:var(--muted);padding:0 4px 20px 54px;gap:10px}.plot-caption span:last-child{letter-spacing:0}.profile-heading{border-top:1px solid var(--line);padding:16px 0 14px}.window-relief{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:center;gap:14px;min-height:58px;margin-bottom:8px;padding:9px 12px;border:1px solid var(--line);background:#f7fafb}.relief-title,.relief-unavailable{font-size:9px;color:var(--muted);letter-spacing:.45px;text-transform:uppercase}.relief-series{display:grid;gap:5px}.relief-row{display:grid;grid-template-columns:70px minmax(30px,1fr) 52px;align-items:center;gap:7px;font-size:10px}.relief-row>span,.relief-row>strong{white-space:nowrap}.relief-row>strong{text-align:right;font-weight:650}.relief-row>i{display:block;height:7px;background:#e3eaee;overflow:hidden}.relief-row b{display:block;min-width:1px;height:100%}.relief-row .gain{background:#b77b35}.relief-row .loss{background:#147d85}.profile svg [data-window]{cursor:pointer}.profile svg [data-window]:hover{fill:#694a9c;fill-opacity:.18}.elevation-note{font-size:10px;color:var(--muted);margin:4px 0 0}.empty{position:absolute;top:185px;left:50%;transform:translate(-50%);background:#fff;border:1px solid var(--line);box-shadow:0 8px 22px #19344410;padding:20px;width:275px;max-width:90%;text-align:center}.empty p{color:var(--muted);margin:6px 0 14px;font-size:12px}.notice{font-size:12px;border-left:3px solid var(--teal);padding:12px;background:#edf6f6;margin-bottom:18px}.profile-unavailable{height:180px;display:flex;justify-content:center;flex-direction:column;color:var(--muted);padding:25px;text-align:center;background:#f5f8fa}.profile-unavailable span{font-size:12px;margin-top:8px}.observation{padding:24px 0 12px 23px;min-width:0}.selected-key{font-size:8px;letter-spacing:.8px;color:var(--plum);border-bottom:2px solid #694a9c;padding-bottom:2px}.window-id{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:var(--muted);margin:26px 0 6px}.window-id span{font-size:8px}h3{font-size:20px;letter-spacing:-.5px;font-weight:550}.grade-value{font-size:39px;color:var(--plum);letter-spacing:-1.3px;margin-top:13px;line-height:1.2}.grade-value small{font-size:11px;letter-spacing:0;margin-left:6px;color:var(--muted)}.category-label{text-transform:capitalize;font-size:11px;color:var(--muted);margin-top:3px}dl{margin:18px 0 20px}dl>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0;gap:8px}dt{font-size:11px;color:var(--muted)}dd{margin:0;font-size:12px;font-weight:600;white-space:nowrap}dd small{color:var(--muted);font-size:10px}.step-controls{display:flex;gap:6px;margin-top:8px}.step-controls button{flex:1;font-size:11px;padding:7px 5px}.route-heading{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}.route-heading span{color:var(--muted);font-size:10px}.route{margin:10px 0 0;background:radial-gradient(#cbdce2 .6px,transparent .8px);background-size:12px 12px}.route svg{max-height:240px}.route-segment{cursor:pointer;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke}.route-segment:hover{stroke-width:7}.no-pointer{pointer-events:none}.route-note{font-size:10px}.no-selection{min-height:250px;color:var(--muted);padding-top:40px}.method{display:flex;gap:18px;padding:22px 0 25px;max-width:1050px}.method-symbol{font-size:30px;color:var(--teal);line-height:1}.method h2{font-size:12px;margin-bottom:4px}.method p{font-size:11px;line-height:1.7;color:var(--muted)}footer{border-top:1px solid var(--line);padding:15px 36px;display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted)}.drop-overlay{position:fixed;inset:10px;z-index:30;background:#f1f6faf0;border:2px dashed var(--teal);display:grid;place-items:center;font-size:24px}.error-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:40;width:480px;max-width:calc(100% - 32px);border:1px solid #9e4f4f;border-left:4px solid #9e4f4f;background:#fff;box-shadow:0 6px 30px #19344422;padding:18px;font-size:13px}.error-toast b{display:block;margin-bottom:5px;color:#843535}@media(min-width:1600px){.scatter{max-height:520px;overflow:hidden}.scatter svg{height:435px}}html[data-theme=dark]{color-scheme:dark;color:#d9e6eb;background:#14232b;--line: #3a505a;--muted: #9bb0ba;--plum: #bb9ce8;--teal: #53b9bf}html[data-theme=dark] button,html[data-theme=dark] select,html[data-theme=dark] .masthead,html[data-theme=dark] .plots,html[data-theme=dark] .window-relief,html[data-theme=dark] .empty,html[data-theme=dark] .error-toast{background-color:#1b3039;color:#d9e6eb}html[data-theme=dark] button:hover{background-color:#24434d}html[data-theme=dark] button.primary{background-color:#267f86}html[data-theme=dark] .version-switcher{--version-switcher-bg: #1b3039;--version-switcher-border: #526973}html[data-theme=dark] .track-summary b,html[data-theme=dark] .valid-count{color:#d9e6eb}html[data-theme=dark] .controls{background:#172932}html[data-theme=dark] .notice{background:#203b43}html[data-theme=dark] .profile-unavailable,html[data-theme=dark] .relief-row>i{background:#263c45}html[data-theme=dark] .plots svg text,html[data-theme=dark] .plots svg .axis-title{fill:#9bb0ba}html[data-theme=dark] .grid{stroke:#354a53}html[data-theme=dark] .zero-line{stroke:#6f858f}html[data-theme=dark] #scatter .flat-band{fill:#20343d}html[data-theme=dark] #profile svg path[fill="#dcebed"]{fill:#29434a}html[data-theme=dark] #profile svg path[stroke="#438a90"]{stroke:#65b9bf}html[data-theme=dark] .dot{stroke:#1b3039}html[data-theme=dark] .plot-label rect{fill:#8566b3}@media(max-width:1050px){main{padding:25px 24px 0}.masthead{padding:0 24px;gap:20px}.edition{display:none}.lab{grid-template-columns:minmax(0,1fr)}.controls{display:grid;grid-template-columns:1fr 1.4fr 1fr 1fr;gap:24px;padding:20px 0}.control-block{padding:0;margin:0;border:0}.control-block h2{margin-bottom:10px}.filters{display:grid;grid-template-columns:1fr 1fr;gap:4px}.filters button{font-size:11px;padding:8px 5px}.filters small{display:none}.reset{margin-top:12px}.plots{border:1px solid var(--line)}.observation{display:grid;grid-template-columns:1fr 1fr;column-gap:30px;padding:24px 0}.observation-heading,#detail,.observation>label,.observation>select,.step-controls{grid-column:1}.route-heading{grid-column:2;grid-row:1;margin:0;padding:0;border:0}.route{grid-column:2;grid-row:2 / span 3}.route svg{height:280px;max-height:none}.route-note{grid-column:2;grid-row:5}.window-id{margin-top:15px}footer{padding:15px 24px;flex-wrap:wrap}.track-summary{gap:20px}}@media(max-width:640px){.masthead{height:auto;min-height:105px;padding:15px 18px;flex-wrap:wrap;gap:10px}.brand{font-size:15px}.filename{max-width:48%;font-size:10px}.header-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.header-actions button{padding:7px 12px;font-size:11px}.version-switcher__label{display:none}.version-switcher__select{max-width:125px}main{padding:24px 16px 0}.page-title{display:block;margin-bottom:22px}h1{font-size:30px}.page-title p:not(.eyebrow){font-size:12px}.track-summary{margin-top:20px}.track-summary b{font-size:16px}.controls{grid-template-columns:1fr 1fr;gap:20px}.controls .control-block:nth-child(3){grid-column:1 / -1}#category-totals{display:flex;justify-content:space-between;gap:12px}.category-total{display:block}.category-total b{display:block;margin-top:4px}.controls .control-block:nth-child(3) .hint{display:none}.controls .control-block:last-child{display:flex;grid-column:1 / -1;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:15px}.valid-count{font-size:25px}.controls .control-block:last-child .hint{margin:0}.reset{width:auto;margin:0 0 0 auto}.filters{grid-template-columns:1fr 1fr}.plots{padding:16px 7px 12px}.plot-header,.profile-heading{padding-left:6px;padding-right:6px}.plot-header span{max-width:105px;text-align:right;font-size:9px}.plot-header h2{font-size:11px}.plot-caption{font-size:8px;padding:0 10px 20px 54px}.plot-caption span:last-child{display:none}.profile-heading span{display:none}.window-relief{grid-template-columns:1fr;gap:6px;margin:0 6px 8px}.relief-row{grid-template-columns:65px minmax(30px,1fr) 48px}.elevation-note{padding:0 7px}.observation{display:block;padding:24px 6px}.observation-heading{margin-bottom:14px}.grade-value{font-size:40px}h3{font-size:25px}.route-heading{margin-top:25px}.route svg{height:270px}.route-note{margin-bottom:8px}dl>div{padding:10px 0}dt,dd{font-size:13px}.step-controls button{padding:10px}.method{padding:20px 0}.method-symbol{display:none}footer{display:block;padding:18px 16px}footer span{display:block;margin:3px 0}.notice{margin:0 6px 12px}.empty{top:185px}}.version-switcher{--version-switcher-bg: transparent;--version-switcher-border: currentColor;display:inline-flex;align-items:center;gap:.5rem;min-width:0;max-width:100%;color:inherit;font:inherit}.version-switcher__label{white-space:nowrap}.version-switcher__select{min-height:44px;min-width:0;max-width:100%;border:1px solid var(--version-switcher-border);border-radius:.375rem;padding:.5rem 2rem .5rem .625rem;background-color:var(--version-switcher-bg);color:currentColor;font:inherit;font-size:max(16px,1em)}.version-switcher__select:focus-visible{outline:2px solid currentColor;outline-offset:2px}
