.route-page{padding-bottom:clamp(4rem,7vw,7rem)}
.route-intro{min-height:420px;padding:clamp(4rem,7vw,7rem) 0;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.55fr);align-items:center;gap:3rem}
.route-intro h1{margin:.5rem 0 1.25rem;font-size:clamp(3.6rem,7vw,7.5rem);line-height:.96;letter-spacing:-.055em;font-weight:650}
.route-signal{position:relative;min-height:260px;display:grid;place-items:center}.route-signal span{position:absolute;width:min(330px,30vw);aspect-ratio:1;border:1px solid rgba(26,169,239,.18);border-radius:50%;box-shadow:0 0 80px rgba(26,169,239,.06)}.route-signal img{width:115px}
.planner{display:grid;grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);gap:1rem;align-items:start}
.planner-form,.planner-output{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(13,27,40,.92),rgba(7,15,23,.86));padding:clamp(1.4rem,3vw,2.6rem)}
.planner-heading h2,.planner-output h2{margin:.25rem 0 .8rem;font-size:clamp(1.9rem,3vw,3.1rem);line-height:1.08;letter-spacing:-.04em}.planner-heading>p{color:var(--copy)}
.address-list{display:grid;gap:.85rem;margin:1.6rem 0}.address-row{border-top:1px solid var(--line-soft);padding-top:.85rem}.address-row:first-child{border-top:0;padding-top:0}.address-label{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.45rem}.address-label strong{font-size:.9rem}.address-status{font-size:.76rem;color:var(--muted)}
.address-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem}.address-controls input,.suggestions select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:10px;background:#091722;color:var(--ivory);font:inherit;padding:.7rem .8rem}.address-controls input:focus,.suggestions select:focus{outline:2px solid var(--blue);outline-offset:2px}.address-controls input[aria-invalid="true"]{border-color:#df8f7c}.suggestions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;margin-top:.55rem}.suggestions[hidden]{display:none}.confirmed{margin:.5rem 0 0;color:#9dd6bc;font-size:.86rem}.remove-stop{background:none;border:0;color:var(--muted);font:inherit;text-decoration:underline;padding:.2rem;cursor:pointer}.remove-stop:hover{color:var(--ivory)}
.tool-button{min-height:44px;border-radius:999px;font:inherit;font-size:.82rem;font-weight:800;letter-spacing:.025em;padding:.7rem 1rem;cursor:pointer}.tool-button.primary{width:100%;margin-top:1rem;background:var(--blue);color:#041019;border:1px solid var(--blue)}.tool-button.secondary{background:transparent;color:var(--ivory);border:1px solid var(--line)}.tool-button.small{border-radius:10px}.tool-button:disabled{opacity:.45;cursor:default}.tool-button:not(:disabled):hover{filter:brightness(1.09)}
.planner-actions{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}.return-choice{display:flex;align-items:center;gap:.55rem;color:var(--copy);font-size:.9rem}.return-choice input{width:18px;height:18px;accent-color:var(--blue)}.tool-error{padding:.8rem 1rem;border-left:2px solid #df8f7c;background:rgba(223,143,124,.07);color:#f1b9aa}.data-note,.model-note,.map-credit{color:var(--muted);font-size:.78rem;line-height:1.55}.data-note{margin:1rem 0 0}
.planner-output{position:sticky;top:105px;min-height:590px}.empty-output{min-height:500px;display:grid;place-content:center;justify-items:center;text-align:center;color:var(--muted)}.empty-output[hidden],#result[hidden]{display:none!important}.empty-output img{width:80px;opacity:.34;margin-bottom:1rem}.result-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:1.4rem 0}.result-metric{border-top:1px solid rgba(26,169,239,.45);padding-top:.8rem}.result-metric span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.result-metric strong{display:block;margin-top:.25rem;font-size:1.2rem}.result-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.8fr);gap:1.5rem;margin:1.5rem 0}.result-grid h3{font-size:1rem;margin:0 0 .8rem}.route-order{margin:0;padding-left:1.6rem}.route-order li{margin:.45rem 0;color:var(--copy)}.route-order li::marker{color:var(--blue);font-weight:800}.comparison{color:var(--copy)}.comparison strong{display:block;color:var(--ivory);font-size:1.65rem;margin-bottom:.25rem}.comparison p{margin:.2rem 0}
.route-map{height:420px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#0a1a25}
.route-comparison{margin:1.8rem 0 1rem;padding-top:1.4rem;border-top:1px solid var(--line-soft)}
.comparison-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.8rem}.comparison-heading .eyebrow{margin:0 0 .35rem}.comparison-heading h3{margin:0;font-size:clamp(1.35rem,2.2vw,1.85rem);letter-spacing:-.025em}.comparison-heading>p{margin:0;color:var(--muted);font-size:.72rem;text-align:right}
.route-visuals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.route-visual{min-width:0;border:1px solid var(--line);border-radius:16px;background:rgba(4,16,25,.45);overflow:hidden}.route-visual.optimized{border-color:rgba(26,169,239,.44);box-shadow:inset 0 1px 0 rgba(26,169,239,.09)}
.visual-title{display:flex;align-items:baseline;justify-content:space-between;gap:.7rem;padding:.85rem 1rem 0}.visual-title h4{margin:0;color:var(--ivory);font-size:.9rem}.visual-title span{color:var(--muted);font-size:.7rem;text-align:right}.route-visual.optimized .visual-title span{color:#8bd5fa}
.schematic{aspect-ratio:420/250;padding:.25rem .45rem}.schematic svg{display:block;width:100%;height:100%;overflow:visible}.schematic-line{fill:none;stroke:#c7c4bc;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8 8;opacity:.55}.optimized .schematic-line{stroke:var(--blue);stroke-width:4;stroke-dasharray:none;opacity:.9}.schematic-node circle{fill:#0d1c29;stroke:#d7d3ca;stroke-width:2}.optimized .schematic-node circle{stroke:var(--blue)}.schematic-node.start circle{fill:var(--ivory);stroke:var(--ivory)}.schematic-node text{fill:var(--ivory);font-size:12px;font-weight:800}.schematic-node.start text{fill:#071019}
.visual-sequence{margin:0;padding:.65rem 1rem .8rem;border-top:1px solid var(--line-soft);color:var(--copy);font-size:.78rem;letter-spacing:.04em;text-align:center}
.map-toggle{display:block;width:100%;min-height:44px;margin:1rem 0 0;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ivory);font:inherit;font-size:.82rem;font-weight:800;cursor:pointer}.map-toggle:hover:not(:disabled){border-color:rgba(26,169,239,.65);color:#8bd5fa}.map-toggle:disabled{opacity:.55;cursor:default}.map-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.map-detail[hidden]{display:none}.map-detail{margin-top:.85rem}.map-legend{display:flex;gap:1.25rem;align-items:center;margin:0 0 .55rem;color:var(--copy);font-size:.76rem}.map-legend span{display:flex;gap:.45rem;align-items:center}.map-legend span::before{content:"";display:block;width:28px;border-top:3px solid var(--blue)}.map-legend .entered-key::before{border-color:#d3d0c8;border-top-style:dashed;opacity:.7}
/* Leaflet's structural rules live here as a local fallback. Some hosts or
   privacy filters block the CDN stylesheet even when Leaflet's JS loads. */
.leaflet-container{font-family:inherit;overflow:hidden;-webkit-tap-highlight-color:transparent}
.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-map-pane svg,.leaflet-map-pane canvas,.leaflet-zoom-box{position:absolute;left:0;top:0}
.leaflet-map-pane,.leaflet-tile-pane,.leaflet-overlay-pane,.leaflet-shadow-pane,.leaflet-marker-pane,.leaflet-tooltip-pane,.leaflet-popup-pane{position:absolute;left:0;top:0;width:100%;height:100%}
.leaflet-map-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}
.leaflet-tile{visibility:hidden;user-select:none;-webkit-user-drag:none}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-animated{transform-origin:0 0}.leaflet-container img.leaflet-tile{display:block;max-width:none!important;max-height:none!important}
.leaflet-control-container{position:relative;z-index:800}.leaflet-control{position:relative;z-index:800;pointer-events:auto;float:left;clear:both}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control-zoom,.leaflet-control-attribution{display:none}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#0d1c29;color:#f3efe6}.route-marker{display:grid;place-items:center;width:26px!important;height:26px!important;margin:-13px 0 0 -13px!important;border-radius:50%;background:#1aa9ef;color:#041019;border:2px solid #f3efe6;font-size:12px;font-weight:800}.route-marker.start{background:#f3efe6;color:#071019}.map-credit{margin:.4rem 0 0}.model-note{margin:1rem 0 0;border-left:2px solid var(--blue);padding-left:.8rem}
.route-method{padding:clamp(4rem,7vw,7rem) 0 0}
@media(max-width:1000px){.route-intro{grid-template-columns:1fr}.route-signal{display:none}.planner{grid-template-columns:1fr}.planner-output{position:static;min-height:420px}.empty-output{min-height:330px}}
@media(max-width:620px){.route-intro{min-height:auto}.planner-form,.planner-output{padding:1.1rem;border-radius:18px}.address-controls,.suggestions{grid-template-columns:1fr}.address-controls .tool-button,.suggestions .tool-button{width:100%}.result-metrics,.result-grid,.route-visuals{grid-template-columns:1fr}.comparison-heading{align-items:start;flex-direction:column}.comparison-heading>p{text-align:left}.route-map{height:330px}.planner-actions{align-items:flex-start;flex-direction:column}.tool-button.secondary{width:100%}}
