.course-route{--cr-bg:#fff;--cr-plot:#f8fafc;--cr-line:#e2e8f0;--cr-muted:#64748b;--cr-accent:#2563eb;--cr-selection:#2563eb15;position:relative;background:var(--cr-bg);border:1px solid var(--cr-line);border-radius:10px;color:#334155;margin:12px 0;font-size:13px;overflow:hidden}.dark .course-route{--cr-bg:#1f2937;--cr-plot:#172030;--cr-line:#374151;--cr-muted:#a1adbe;--cr-accent:#60a5fa;--cr-selection:#60a5fa18;color:#e2e8f0}.course-route button,.course-route select{font:inherit;color:inherit;cursor:pointer;background:transparent;border:1px solid var(--cr-line);border-radius:6px;padding:6px 10px}.course-route button:focus-visible,.course-route select:focus-visible,.course-route svg:focus-visible{outline:2px solid var(--cr-accent);outline-offset:2px}.course-route button[aria-pressed=true]{background:var(--cr-selection);border-color:var(--cr-accent);color:var(--cr-accent)}.course-route button:disabled{opacity:.45;cursor:default}.course-route-summary{display:flex;width:100%;align-items:center;gap:12px!important;text-align:left;border:0!important;padding:10px 14px!important}.course-route-summary>svg{width:110px;height:28px;flex:none;color:var(--cr-accent)}.course-route-summary>span:first-of-type{font-weight:600}.course-route-stats{color:var(--cr-muted);font-variant-numeric:tabular-nums;margin-left:auto;white-space:nowrap}.course-route-chevron{color:var(--cr-muted)}.course-route-summary[aria-expanded=true] .course-route-chevron{transform:rotate(180deg)}.course-route-content{padding:0 12px 12px;border-top:1px solid var(--cr-line)}.course-route-content[hidden],.course-route [hidden]{display:none!important}.course-route-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:7px 0}.course-route-tabs{display:flex;gap:4px;margin-right:auto}.course-route-layout{display:grid;gap:8px;min-width:0}.course-route-layout.has-map{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.course-route-chart-wrap{min-width:0;position:relative}.course-route-point svg{display:block;width:22px;height:22px}.course-route-chart-wrap g[role=button]{cursor:pointer}.course-route-tooltip{position:absolute;left:45px;top:10px;border:1px solid var(--cr-line);border-radius:6px;background:var(--cr-bg);padding:5px 8px;color:var(--cr-muted);font-size:11px;pointer-events:none;box-shadow:0 2px 8px #0001;z-index:3}.course-route-map-wrap{position:relative;min-width:0;border:1px solid var(--cr-line);border-radius:7px;overflow:hidden;min-height:230px;background:var(--cr-plot)}.course-route-map{height:100%;min-height:230px;width:100%;z-index:0}.course-route-map-wrap:fullscreen{height:100vh;width:100vw;border:0;border-radius:0}.course-route-map-wrap:fullscreen .course-route-map{height:100vh}.course-route-map-message{position:absolute;top:10px;left:10px;background:var(--cr-bg);z-index:2}.course-route-map-message:empty{display:none}.course-route-map-point{background:white;border:1px solid #cbd5e1;border-radius:50%;box-shadow:0 2px 5px #0003}.course-route-map-point span,.course-route-map-point svg{display:block;width:22px;height:22px;margin:2px}.course-route-map-point svg{margin:0}.course-route-popover{position:relative;margin-top:8px;max-width:420px;padding:12px;border:1px solid var(--cr-line);border-radius:8px;background:var(--cr-bg);box-shadow:0 4px 16px #0001;overflow-wrap:anywhere}.course-route-popover strong{font-size:14px}.course-route-popover p{margin:6px 0;color:var(--cr-muted);white-space:pre-line}.course-route-close{float:right;margin-left:8px;font-size:11px!important}.course-route .leaflet-control-attribution{font-size:10px}
@media(max-width:767px){.course-route-layout.has-map{grid-template-columns:1fr}.course-route-summary{gap:8px!important;padding:10px!important}.course-route-summary>svg{width:65px}.course-route-stats{font-size:11px}.course-route-toolbar{gap:5px}.course-route button,.course-route select{padding:5px 7px;font-size:12px}.course-route-map-wrap,.course-route-map{min-height:210px}.course-route-popover{position:fixed;bottom:0;left:0;right:0;max-width:none;max-height:65vh;overflow:auto;border-radius:14px 14px 0 0;z-index:1100;margin:0;padding:18px;box-shadow:0 -8px 30px #0003}.course-route-tooltip{left:5px;top:5px;font-size:10px}.course-route-summary>span:first-of-type{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

.course-route-point svg{width:100%;height:100%}.course-route-legend{display:flex;flex-wrap:wrap;gap:7px 14px;padding:5px 2px;color:var(--cr-muted);font-size:11px}.course-route-legend-item{display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px}.course-route-legend-item strong{font-weight:600;color:inherit}.course-route-legend-item i{width:12px;height:8px;border-radius:2px}.course-route-difficulty{border-left:1px solid var(--cr-line);padding-left:5px}

/* Quiet topographic presentation with a restrained route accent. */
.course-route{--cr-accent:#3d7399;--cr-selection:#3d739910;--cr-plot:#fbfcfe;border-radius:9px}.dark .course-route{--cr-accent:#8ab7d6;--cr-selection:#8ab7d614;--cr-plot:#1b2636}.course-route-summary{padding:8px 12px!important}.course-route-summary>svg{width:84px;height:24px}.course-route-content{padding:0 10px 10px}.course-route-tabs{gap:2px;padding:3px;background:var(--cr-plot);border:1px solid var(--cr-line);border-radius:7px}.course-route .course-route-tabs button{border:0;border-radius:4px;padding:4px 8px;min-height:26px;font-weight:500}.course-route .course-route-tabs button[aria-pressed=true]{background:var(--cr-bg);color:var(--cr-accent);box-shadow:0 1px 3px #0f172a12}.course-route-toolbar>button{border-color:transparent;color:var(--cr-muted);font-size:12px}.course-route-toolbar>button[aria-pressed=true]{border-color:var(--cr-line);background:var(--cr-selection);color:var(--cr-accent)}.course-route-toolbar>select{border-color:var(--cr-line);background:var(--cr-bg);font-size:12px;min-height:30px}.course-route-map-wrap{border-radius:6px}.course-route-stats{font-size:12px;letter-spacing:.01em}.course-route-popover{box-shadow:0 8px 24px #0f172a0a;border-radius:9px}.course-route-legend{font-size:11px}@media(max-width:767px){.course-route-summary>svg{width:48px}.course-route-stats{font-size:11px}.course-route-summary{gap:6px!important}.course-route-summary>span:first-of-type{max-width:140px}}

/* Course profile: captions sit on a shared baseline below the terrain. */
.course-route{--cr-text:#334155}.dark .course-route{--cr-text:#e2e8f0}.course-route-layout.has-map{grid-template-columns:minmax(0,1fr)}.course-route-chart-scroll{overflow:hidden;max-width:100%}.course-route-chart-canvas{width:100%}.course-route-profile{display:block;width:100%;height:auto;overflow:visible}.course-route-chart-wrap g[aria-pressed=true] .course-route-profile-dot{stroke:var(--cr-accent);stroke-width:5;fill:var(--cr-bg)}.course-route-chart-wrap g[role=button]:hover .course-route-profile-dot{stroke:var(--cr-accent);stroke-width:4}.course-route-chart-wrap g[role=button]:focus-visible{outline:none}.course-route-chart-wrap g[role=button]:focus-visible .course-route-profile-dot{stroke:var(--cr-accent);stroke-width:5}.course-route-point-caption{font-weight:500}.course-route-leg{font-variant-numeric:tabular-nums}.course-route-map-wrap{height:220px;min-height:220px}.course-route-map{height:220px;min-height:220px}

.course-route-profile{height:265px}

.course-route-surface-details{width:100%;font-size:11px;margin-top:2px}.course-route-surface-details summary{cursor:pointer;color:var(--cr-muted)}.course-route-legend-details{display:flex;flex-wrap:wrap;gap:6px 12px;padding:7px 0}.course-route .course-route-legend-item i{flex:none}

/* Route inspection overlays stay outside layout and use the same surface in both themes. */
.course-route-tooltip{z-index:10;padding:10px 12px;border-radius:9px;box-shadow:0 5px 18px #0f172a12;color:var(--cr-text);max-width:calc(100% - 8px)}.course-route-tooltip-metrics{display:flex;gap:18px}.course-route-tooltip-metric{display:flex;flex-direction:column;gap:3px;white-space:nowrap}.course-route-tooltip-metric strong{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.course-route-tooltip-metric small{font-size:10px;color:var(--cr-muted)}.course-route-tooltip-title{display:block;margin-bottom:8px;font-size:12px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-route-tooltip-surface{display:block;color:var(--cr-muted);font-size:10px;margin-bottom:6px}.course-route-popover{position:fixed;inset:auto;margin:0;max-width:none;max-height:calc(100dvh - 24px);overflow:auto;padding:14px;border-radius:12px;box-shadow:0 12px 40px #0f172a24;color:var(--cr-text);font-size:12px;z-index:1200;opacity:1;transition:opacity .16s ease,transform .16s ease}.course-route-popover::backdrop{background:transparent}.course-route-popup-head{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:10px}.course-route-popup-head strong{font-size:14px;line-height:1.4}.course-route .course-route-close{float:none;flex:none;min-width:30px;min-height:30px;padding:0;font-size:22px!important;border-color:transparent;color:var(--cr-muted)}.course-route-popup-stats{margin:0}.course-route-popup-stats>div{display:flex;gap:12px;align-items:baseline;justify-content:space-between;padding:6px 0;border-top:1px solid var(--cr-line)}.course-route-popup-stats dt{color:var(--cr-muted)}.course-route-popup-stats dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.course-route-popup-services{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.course-route-popup-services>span{display:inline-flex;align-items:center;gap:5px;background:var(--cr-plot);border:1px solid var(--cr-line);border-radius:6px;padding:4px 7px}.course-route-popup-services svg{display:block;width:16px;height:16px;color:var(--cr-accent)}.course-route .course-route-popup-description{margin:10px 0 0;font-size:11px;line-height:1.5}.course-route-popover:popover-open{transform:translateY(0)}@starting-style{.course-route-popover:popover-open{opacity:0;transform:translateY(4px)}}@media(prefers-reduced-motion:reduce){.course-route-popover{transition:none}}

.course-route-profile g[role=button]:focus{outline:none}


/* Small service badges anchor the profile; names lead and kilometre labels remain quiet. */
.course-route-profile .course-route-point{box-sizing:border-box;padding:5px;background:var(--cr-bg);border:1px solid var(--cr-line);border-radius:8px;box-shadow:0 2px 6px #0f172a0d;transition:border-color .16s ease,box-shadow .16s ease}.course-route-profile .course-route-point svg{width:100%;height:100%}.course-route-profile g[role=button]:hover .course-route-point,.course-route-profile g[aria-pressed=true] .course-route-point,.course-route-profile g[role=button]:focus-visible .course-route-point{border-color:currentColor;box-shadow:0 2px 8px #0f172a18}.course-route-point-caption{font-weight:600}.course-route-point-distance{font-variant-numeric:tabular-nums}.course-route-profile g[aria-pressed=true] .course-route-point-caption{fill:var(--cr-accent)}.course-route-tooltip{transition:left .09s ease-out,top .09s ease-out}.course-route-profile-dot{transition:stroke-width .14s ease}.course-route-point-hit{cursor:pointer;pointer-events:all}@media(prefers-reduced-motion:reduce){.course-route-tooltip,.course-route-profile .course-route-point,.course-route-profile-dot{transition:none}}

.course-route{--cr-barrier:#be6357}.dark .course-route{--cr-barrier:#e69b90}
.course-route-withdrawal-list{font-size:12px;color:var(--cr-muted);border-top:1px solid var(--cr-line);padding-top:10px;margin-top:10px;max-height:160px;overflow:auto}.course-route-withdrawal-list summary{cursor:pointer;color:var(--cr-text);padding-bottom:6px}.course-route-withdrawal-list div{padding:3px 0;font-variant-numeric:tabular-nums}
.course-route-cluster-count{display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;background:var(--cr-bg)}
.course-route-cluster-list{display:grid;gap:4px;max-height:55dvh;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--cr-line) transparent}
.course-route .course-route-cluster-item{display:flex;align-items:center;gap:10px;text-align:left;width:100%;min-height:48px;padding:8px;border-color:transparent}
.course-route .course-route-cluster-item:hover,.course-route .course-route-cluster-item:focus-visible{background:var(--cr-plot);border-color:var(--cr-line)}
.course-route-cluster-icon{flex:none;color:var(--cr-accent)}.course-route-cluster-icon svg{display:block;width:22px;height:22px}
.course-route-cluster-item-body{display:grid;gap:3px;min-width:0}.course-route-cluster-item-body strong{font-size:12px;line-height:1.4}.course-route-cluster-item-body small{font-size:11px;line-height:1.5;color:var(--cr-muted)}
.course-route .course-route-cluster-back{padding:4px 0;border:0;color:var(--cr-muted);font-size:11px;margin-bottom:8px}
.course-route-profile-cluster:focus-visible .course-route-point{outline:2px solid var(--cr-accent);outline-offset:2px}
.course-route-zoom{display:flex;align-items:center;gap:14px;margin:14px 0 6px;padding:10px 0;border-top:1px solid var(--cr-line)}
.course-route-overview{display:block;flex:1;min-width:0;width:100%;height:52px;touch-action:none;overflow:visible}
.course-route-range-window{cursor:grab}.course-route-range-window:active{cursor:grabbing}.course-route-range-handle{cursor:ew-resize}.course-route-range-handle:focus{outline:none;stroke-width:3}
.course-route-zoom-buttons{display:flex;gap:4px;flex:none}.course-route-zoom-buttons button,.course-route-details-button{border:1px solid var(--cr-line);border-radius:8px;background:var(--cr-bg);color:var(--cr-text);padding:7px 10px;font:inherit;cursor:pointer;min-height:34px}.course-route-zoom-buttons button:hover,.course-route-details-button:hover{background:var(--cr-plot);border-color:var(--cr-accent)}
.course-route-range-stats{color:var(--cr-muted);font-size:12px;line-height:1.8;padding:0 0 8px;text-wrap:pretty}
.course-route-details-dialog{background:var(--cr-bg,#fff);color:var(--cr-text,#243245);border:1px solid var(--cr-line,#dbe2e9);border-radius:16px;padding:22px;width:460px;max-width:calc(100vw - 32px);max-height:80dvh;overflow:auto;box-sizing:border-box;box-shadow:0 20px 70px #0003;font:inherit}
.course-route-details-dialog::backdrop{background:#10203266}.course-route-details-dialog .course-route-popup-head{margin-bottom:16px}.course-route-detail-range{color:var(--cr-muted);font-size:12px}.course-route-distribution{display:grid;gap:16px;margin:20px 0}.course-route-distribution-row{display:grid;grid-template-columns:1fr auto;gap:6px 12px;font-size:13px}.course-route-distribution-row strong{font-size:12px;font-variant-numeric:tabular-nums}.course-route-distribution-row i{grid-column:1/-1;height:5px;border-radius:4px;background:linear-gradient(to right,var(--color) var(--portion),var(--cr-line) var(--portion))}.course-route-split{display:flex;align-items:center;gap:8px;font-size:13px}.course-route-tooltip-next{display:block;margin-top:8px;color:var(--cr-muted)}
.course-route .course-route-tooltip-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px}.course-route .course-route-tooltip{max-width:min(310px,calc(100% - 8px));pointer-events:none}.re-profile-tabs{border:1px solid var(--border-color,#dbe2e9);border-radius:10px;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.re-profile-tabs legend{font-size:12px;padding:0 5px}.re-profile-tabs .re-help{grid-column:1/-1}
@media(max-width:480px){.course-route-zoom{flex-wrap:wrap;gap:8px}.course-route-overview{flex-basis:100%}.course-route-zoom-buttons{margin-left:auto}.course-route .course-route-toolbar{gap:8px}.course-route .course-route-tabs{flex-wrap:wrap;gap:3px}.course-route .course-route-tabs button{padding:6px 9px;font-size:12px}.course-route-details-dialog{padding:18px}}

/* Elevation-first composition: terrain, checkpoint captions, then leg summaries. */
.course-route{--cr-profile:#e97936}.dark .course-route{--cr-profile:#f0a06c}
.course-route-content{padding:0 18px 14px}.course-route-toolbar{padding:16px 0 8px;gap:12px}.course-route .course-route-tabs{border:0;border-radius:24px;padding:3px;background:var(--cr-line);gap:0}.course-route .course-route-tabs button{border-radius:20px;padding:8px 18px;min-height:34px}.course-route .course-route-tabs button[aria-pressed=true]{background:var(--cr-text,#243245);color:var(--cr-bg);box-shadow:none}
.course-route-service-stack{display:flex;align-items:center;flex-direction:column;background:var(--cr-bg);border:1px solid color-mix(in srgb,var(--cr-profile) 30%,var(--cr-bg));border-radius:4px;box-sizing:border-box;width:24px;padding:1px 0 0}.course-route-service-icon{display:block;width:21px;height:20px;padding:2px;box-sizing:border-box;color:var(--cr-text)}.course-route-service-icon svg{display:block;width:100%;height:100%}.course-route-service-anchor{display:block;width:17px;height:9px;margin:2px -1px -1px;background:var(--cr-profile);border-radius:3px}
.course-route .course-route-tooltip{padding:9px 10px;border-radius:5px;box-shadow:0 4px 16px #0002;width:268px;box-sizing:border-box;color:var(--cr-text)}.course-route-inspection-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:7px;border-bottom:1px solid var(--cr-line);margin-bottom:7px;font-size:12px}.course-route-tooltip-surface{display:flex;align-items:center;gap:6px;min-width:0}.course-route-tooltip-surface i{width:8px;height:8px;flex:none;border-radius:50%}.course-route-inspection-grade{color:var(--cr-accent);font-variant-numeric:tabular-nums}.course-route .course-route-tooltip-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.course-route-tooltip-metric{display:flex;align-items:center;flex-direction:column;gap:5px;padding:0 5px;min-width:0}.course-route-tooltip-metric+.course-route-tooltip-metric{border-left:1px solid var(--cr-line)}.course-route-tooltip-metric svg{width:16px;height:16px}.course-route-tooltip-metric strong{font-size:11px!important;white-space:nowrap;font-weight:500!important}.course-route-tooltip-next{font-size:10px;line-height:1.5;margin-top:8px}.course-route-zoom{margin-top:4px}.course-route .course-route-details-button{border:0;border-radius:0;padding:3px 0;min-height:26px;text-decoration:underline;text-underline-offset:3px;background:none}
@media(max-width:600px){.course-route-content{padding:0 8px 10px}.course-route .course-route-tabs button{padding:7px 10px;font-size:11px}.course-route-toolbar{padding-top:10px;gap:8px}.course-route .course-route-tooltip{width:250px}}
