:root{color-scheme:light;--ink:#203748;--muted:#536570;--navy:#153c54;--line:#cdd8df;--paper:#eef3f6;--a:#176f91;--b:#855711;--accent:#dfa149;--error:#a32722}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}.wrap{width:min(1376px,calc(100% - 64px));margin-inline:auto}a{color:#12617e;text-underline-offset:3px}.masthead{background:var(--navy);color:#fff;border-bottom:4px solid var(--accent);padding:26px 0 24px}.masthead-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.eyebrow{margin:0 0 5px;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}h1{margin:0;font-size:clamp(1.8rem,3.2vw,2.65rem);letter-spacing:-.035em;line-height:1.15}.intro{margin:9px 0 0;color:#d4e4ec}.masthead .eyebrow{color:#c4dce7}.version{flex-shrink:0;font-size:1.1rem;font-weight:650;text-align:right}.version span{display:block;color:#bfd5df;font-size:.75rem;letter-spacing:.08em;margin-top:6px}main{padding-top:22px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap}.link-switch{display:flex;align-items:center;gap:9px;font-size:.875rem;font-weight:650}.link-switch input{width:20px;height:20px;accent-color:var(--navy)}.actions{display:flex;flex-wrap:wrap;gap:8px}button,input,select{font:inherit}button{border:1px solid var(--navy);border-radius:5px;background:var(--navy);color:white;cursor:pointer;padding:10px 14px;font-size:.875rem;font-weight:650;min-height:42px}button:hover{background:#245773}button.secondary{background:#fff;color:var(--navy);border-color:#b0c2cd}button.secondary:hover{background:#e0eaf0}button.text-button{border:0;background:transparent;color:#12617e;padding:5px 0;min-height:32px;text-decoration:underline;text-underline-offset:3px;font-weight:550}button:disabled{opacity:.6;cursor:default}input,select{width:100%;min-width:0;min-height:43px;border:1px solid #98acb9;border-radius:5px;background:#fff;color:var(--ink);padding:9px 11px;font-size:1rem}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #bd8425;outline-offset:3px}input[aria-invalid=true]{border-color:var(--error);background:#fff6f5}.path-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.panel,.path-summary{border:1px solid var(--line);border-radius:8px;background:#fff}.path-summary{overflow:hidden;--path-color:var(--a)}.path-b{--path-color:var(--b)}.path-a{--path-color:var(--a)}.path-top{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--line);gap:12px}.path-title{display:flex;align-items:center;gap:10px}.path-letter{display:grid;place-items:center;background:var(--path-color);color:#fff;width:30px;height:30px;border-radius:4px;font-weight:700}.path-top h2,.control-title h2{font-size:1.125rem;margin:0;letter-spacing:-.02em}.transport-tag{font-size:.875rem;color:var(--path-color);font-weight:650}.diagram{padding:8px 18px 0;background:linear-gradient(180deg,#f6f9fb,#fff)}.diagram svg{display:block;width:100%;height:auto;color:var(--path-color);overflow:visible}.diagram text{font-family:system-ui,sans-serif;fill:var(--ink);font-size:14px}.diagram .muted{fill:var(--muted);font-size:13px}.diagram .route-text{fill:var(--path-color);font-weight:650}.diagram .endpoint{font-size:13px;fill:var(--muted)}.diagram .stage{fill:#fff;stroke:#a6b7c3;stroke-width:1.5}.diagram .route{stroke:currentColor;stroke-width:2.5;fill:none}.diagram .arrow{fill:currentColor}.diagram-caption{margin:0;text-align:center;color:var(--muted);font-size:.875rem;padding:0 8px 10px;overflow-wrap:anywhere}.path-result{padding:18px 22px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#f4f8fa;border-top:1px solid var(--line)}.path-result .total-label{display:block;font-size:.875rem;color:var(--muted)}.total{font-size:2.1rem;letter-spacing:-.04em;line-height:1.25;font-weight:750;color:var(--path-color);font-variant-numeric:tabular-nums}.total small{font-size:1rem;letter-spacing:0;font-weight:550;margin-left:3px}.secondary-result{text-align:right;color:var(--muted);font-size:.875rem;font-variant-numeric:tabular-nums}.secondary-result strong{display:block;color:var(--ink);font-size:1rem}.comparison{margin:20px 0 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 24px;border:1px solid #b9cbd6;border-left:4px solid var(--navy);background:#e2ebf1;border-radius:5px}.comparison .eyebrow{color:var(--muted)}.comparison h2{font-size:1rem;margin:0}.difference{font-size:1.6rem;font-weight:750;letter-spacing:-.03em;text-align:right;font-variant-numeric:tabular-nums}.difference span{display:block;font-size:.875rem;font-weight:500;color:var(--muted);letter-spacing:0}.controls-grid .panel{padding:22px}.control-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.control-title button{padding:6px 10px;min-height:35px}.control-section{padding-top:20px;border-top:1px solid var(--line);margin-top:20px}.control-section:first-of-type{padding-top:0;border:0;margin-top:0}.section-label{display:flex;align-items:center;gap:9px;margin:0 0 14px;font-size:1rem}.section-label span{font-family:ui-monospace,monospace;font-size:.75rem;padding:2px 5px;border:1px solid var(--line);border-radius:3px;color:var(--muted)}label.field-label{display:block;font-size:.875rem;font-weight:650;margin-bottom:6px}.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 16px}.span-2{grid-column:1/-1}.hint{font-size:.875rem;color:var(--muted);margin:7px 0 0;line-height:1.45}.provenance{display:inline-block;color:#4a6473;font-size:.75rem;font-weight:500;margin-top:5px}.input-unit{display:flex;gap:8px}.input-unit select{width:90px;flex-shrink:0}.field-row{display:flex;align-items:flex-end;gap:8px}.field-row>div{flex:1;min-width:0}.decoder-summary{padding:10px 12px;background:#f4f8fa;border:1px solid #e1e8ec;border-radius:5px;margin-top:14px}.decoder-summary p{margin:0;font-size:.875rem}.decoder-summary details{margin-top:4px}details summary{cursor:pointer;font-size:.875rem;font-weight:650;min-height:34px;padding:5px 0}.advanced{border-top:1px solid var(--line);padding-top:12px;margin-top:20px}.advanced[open]>summary{margin-bottom:12px}.errors{font-size:.875rem;color:var(--error);margin:10px 0 0}.errors ul{padding-left:20px;margin:5px 0 0}.error-result{color:var(--error);font-size:.95rem;line-height:1.4}.notice{padding:12px 15px;border-left:3px solid var(--accent);background:#fff8eb;font-size:.875rem}.distance-note{padding:10px 12px;border:1px solid #d2e2e9;background:#f2f8fb;border-radius:4px;margin-top:14px;font-size:.875rem;color:var(--muted)}.linked-note{background:#f1f6f9;padding:12px 14px;border:1px dashed #adbfcb;border-radius:5px;font-size:.875rem}.linked-note p{margin:0}.linked-note strong{display:block;color:var(--ink)}.geocode-result{font-size:.875rem;overflow-wrap:anywhere;margin-top:8px}.geocode-result ul{padding:0;list-style:none;margin:8px 0}.geocode-result li+li{margin-top:7px}.candidate{display:block;width:100%;text-align:left;background:#f3f8fa;color:var(--ink);border-color:#adbfcb;font-weight:500}.candidate:hover{background:#e3eef4}.candidate small{display:block;color:var(--muted);font-size:.75rem;margin-top:2px}.resolved{color:#315d49}.attribution{font-size:.75rem;margin-top:5px}.api-note{display:flex;justify-content:space-between;gap:14px;color:var(--muted);font-size:.875rem;margin:17px 0 20px;flex-wrap:wrap}.sources{padding:18px 22px}.sources>summary{font-size:1.05rem}.sources>summary span{font-size:.875rem;color:var(--muted);font-weight:400;margin-left:15px}.source-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 32px;border-top:1px solid var(--line);margin-top:15px;padding-top:10px}.source-grid h3{font-size:1rem;margin:15px 0 7px}.source-grid p{font-size:.875rem;color:var(--muted);margin:10px 0}.source-grid strong{color:var(--ink)}table{width:100%;border-collapse:collapse;font-size:.875rem}caption{text-align:left;color:var(--muted);margin-bottom:7px}th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line)}footer{display:flex;justify-content:space-between;gap:16px;padding:22px 0 28px;font-size:.875rem;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-100px;left:20px;background:white;padding:10px;z-index:10}.skip-link:focus{top:10px}
@media(max-width:980px){.wrap{width:calc(100% - 40px)}.toolbar{align-items:flex-start}.diagram{padding-inline:8px}.path-grid{gap:16px}.controls-grid .panel{padding:18px}.path-top{padding:14px 16px}.transport-tag{font-size:.75rem}.path-result{padding:16px}.total{font-size:1.8rem}.source-grid{gap:10px 22px}}
@media(max-width:720px){.wrap{width:calc(100% - 28px)}.masthead{padding:23px 0 20px}.masthead-inner{align-items:flex-start}.version{font-size:.875rem}.version span{font-size:.75rem;max-width:90px}.intro{font-size:.875rem}.path-grid{grid-template-columns:minmax(0,1fr)}.toolbar{gap:14px;margin-bottom:16px}.actions{width:100%}.actions button{flex-grow:1;padding:9px 10px}.summaries{gap:16px}.comparison{padding:14px 16px;gap:10px}.difference{font-size:1.35rem}.comparison .eyebrow{font-size:.75rem}.source-grid{grid-template-columns:1fr}.sources>summary span{display:block;margin:5px 0 0}.form-grid{gap:14px}.controls-grid{gap:18px}.diagram{padding-inline:10px}.total{font-size:2rem}.api-note{display:block}.api-note span{display:block;margin-bottom:7px}footer{flex-wrap:wrap}}
@media(max-width:380px){.version{display:none}.form-grid{grid-template-columns:minmax(0,1fr)}.span-2{grid-column:auto}.comparison{display:block}.difference{text-align:left;margin-top:8px}.field-row{align-items:stretch;flex-direction:column}.path-result{gap:8px}.total{font-size:1.7rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.endpoint-labels{display:flex;justify-content:space-between;gap:20px;padding:12px 7px 0;color:var(--muted);font-size:.875rem;overflow-wrap:anywhere}.endpoint-labels span{max-width:48%}.endpoint-labels span:last-child{text-align:right}.stage-labels{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:12px;text-align:center;margin:0 0 13px;font-size:.875rem;line-height:1.4}.stage-labels span{display:block;color:var(--muted)}.stage-labels strong{display:block;color:var(--path-color);font-weight:650;margin-top:4px;overflow-wrap:anywhere}.location-labels,.distance-input,.decode-input,.address-block{margin-top:14px}@media(max-width:420px){.stage-labels{gap:8px;grid-template-columns:1fr 1fr 1fr}.diagram-caption{font-size:.75rem}.transport-tag{max-width:58%;text-align:right;overflow-wrap:anywhere}}
.masthead{padding:18px 0}h1{font-size:clamp(1.8rem,3vw,2.2rem)}.intro{font-size:.875rem}.diagram svg{height:95px}.path-top{padding-block:12px}.path-result{padding-block:13px}.diagram-caption{display:none}.stage-labels{margin-bottom:15px}.comparison{padding-block:12px;margin-block:16px 20px}@media(max-width:720px){.diagram svg{height:90px}.masthead{padding:20px 0}.diagram-caption{display:none}}
