/* v50 · Scoped navigation additions; the portal's background/glass tokens are unchanged. */
.km-locate-tools{position:absolute;right:14px;top:62px;z-index:6;display:flex;gap:6px;align-items:center}
.km-locate-tools button,.km-locate-tools a{font:700 12px system-ui,sans-serif;border:1px solid #fff;border-radius:11px;min-height:36px;padding:7px 12px;color:#225e56;background:#ffffffed;box-shadow:0 3px 15px #173e3526;cursor:pointer;text-decoration:none}
.km-locate-tools button[aria-pressed="true"]{background:#e7f2ff;color:#1c63b3;border-color:#a8cbee}
.km-locate-tools button:focus-visible,.km-route-link:focus-visible{outline:3px solid #78b3e9;outline-offset:2px}
.km-gps-state{position:absolute;z-index:6;left:12px;top:109px;max-width:min(440px,calc(100% - 24px));display:flex;align-items:center;gap:12px;background:#f2f8fff5;border:1px solid #bed9f5;border-radius:12px;color:#235c91;padding:10px 12px;font-size:12px;box-shadow:0 5px 22px #17415f17}
.km-gps-state button{flex:0 0 26px;height:26px;padding:0;border:0;border-radius:50%;color:#235c91;background:#d9eaff;cursor:pointer;font-size:18px}
.km-gps-state[hidden],.km-pick-state[hidden]{display:none!important}
.km-pick-state{position:absolute;z-index:7;left:12px;bottom:65px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 15px;background:#fffae9f7;border:1px solid #ead297;border-radius:12px;color:#715621;font-weight:650}
.km-pick-state button{border:0;background:#f1deb1;border-radius:8px;padding:7px 12px;font-weight:700;cursor:pointer}
.km-picking .km-svg,.km-picking .maplibregl-canvas,.km-picking .km-svg .km-hit{cursor:crosshair!important}
.km-compact .km-locate-tools{top:48px;right:9px;gap:4px}.km-compact .km-locate-tools button,.km-compact .km-locate-tools a{min-height:30px;padding:5px 8px;font-size:10px}.km-compact .km-gps-state{top:86px;font-size:10px;padding:8px}
.kr-planner{margin:0 0 18px;border:1px solid #ffffffc9;border-radius:23px;overflow:hidden;background:var(--portal-panel,rgba(255,255,255,.42));box-shadow:var(--portal-shadow-soft)}
.kr-planner>summary{cursor:pointer;padding:16px 20px;font-weight:750;font-size:15px;list-style:none;display:flex;align-items:center;gap:10px;color:#214e43}.kr-planner>summary::-webkit-details-marker{display:none}.kr-planner>summary::after{content:'＋';margin-left:auto;font-size:19px;color:#387861}.kr-planner[open]>summary::after{content:'−'}.kr-planner>summary small{font-weight:450;color:#638175;font-size:12px}
.kr-content{padding:0 20px 18px}.kr-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:start}.kr-field{display:grid;gap:7px;min-width:0}.kr-field label{font-size:12px;font-weight:750;color:#2c5a4a}.kr-field label i{font-style:normal;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#dceee5;margin-right:5px}.kr-field:last-child label i{background:#f6e6df;color:#955632}
.kr-field select{width:100%;min-width:0;max-width:100%;height:46px;padding:0 12px;border:1px solid #b6d1c8!important;border-radius:12px;background:#ffffffc9!important;color:#214b3e;font:inherit;font-size:13px}.kr-field small{font-size:11px;color:#5e7c6a;overflow-wrap:anywhere}.kr-swap{align-self:start;margin-top:30px;width:42px;height:43px;border:1px solid #fff;border-radius:11px;background:#ffffffb8;color:#35745f;cursor:pointer;font-size:19px}
.kr-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.kr-actions button,.kr-result-head button{border:1px solid #fff;border-radius:11px;padding:10px 14px;font:700 12px system-ui;cursor:pointer;background:#ffffffb9;color:#2b674f}.kr-actions .kr-primary{background:#28775e;color:white;border-color:#28775e;box-shadow:0 5px 14px #2e725626}.kr-actions button:focus-visible,.kr-field select:focus-visible,.kr-swap:focus-visible{outline:3px solid #93c5ad;outline-offset:2px}
.kr-privacy,.kr-fine{font-size:11px;line-height:1.55;color:#617e70;margin:12px 0 0}.kr-status{margin-top:13px;padding:11px 13px;border-radius:12px;font-size:12px;line-height:1.6;border:1px solid #bcdbcf;background:#e9f5eea3;color:#32684d}.kr-status[data-level="error"]{background:#fff4e2b3;color:#895d24;border-color:#edd3a8}.kr-result{border-top:1px solid #abc6b847;margin-top:15px;padding-top:17px}.kr-result-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.kr-result-head h3{font:700 20px/1.4 Georgia,serif;margin:4px 0 0;color:#234c3e;overflow-wrap:anywhere}.kr-eyebrow{font-size:9px;letter-spacing:.12em;font-weight:800;color:#407759}.kr-result-head button{flex-shrink:0}
.kr-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:13px}.kr-metrics>div{border:1px solid #ffffffc4;background:#ffffff80;border-radius:13px;padding:12px}.kr-metrics small{display:block;color:#638172;font-size:11px;line-height:1.5}.kr-metrics strong{display:block;color:#246348;font-size:22px;line-height:1.35;margin-top:3px}
.kr-caution{font-size:12px;line-height:1.65;color:#735f3c;background:#fffbeb80;border-radius:10px;padding:11px 13px;margin:11px 0}.kr-road-list{margin-top:13px;font-size:12px;color:#456a56}.kr-road-list summary{cursor:pointer;font-weight:700}.kr-road-list ol{padding-left:26px;margin-bottom:0}.kr-road-list li{padding:6px 0}.kr-road-list li span{margin-right:16px}.kr-road-list li b{font-size:11px;white-space:nowrap}.kr-map-legend{color:#426978}.kr-map-legend i{background:#2384ee!important;height:3px!important;width:17px!important;border-radius:4px!important}
@media(max-width:650px){.kr-content{padding:0 13px 15px}.kr-planner>summary{padding:14px}.kr-planner>summary small{display:none}.kr-pair{grid-template-columns:minmax(0,1fr) 39px;gap:11px 6px}.kr-field:last-child{grid-row:2;grid-column:1}.kr-swap{grid-column:2;grid-row:1 / 3;margin:auto 0;width:36px;transform:rotate(90deg)}.kr-actions button{flex:1 1 auto}.kr-result-head{align-items:flex-start;flex-direction:column}.kr-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.kr-metrics>div{padding:9px 7px}.kr-metrics strong{font-size:19px}.kr-metrics small{font-size:10px}.kr-result-head h3{font-size:19px}.km-locate-tools{right:10px;top:56px}.km-gps-state{top:99px;font-size:11px}.kr-pick-state{font-size:11px}}
@media(prefers-reduced-motion:reduce){.kr-planner *{scroll-behavior:auto!important}}
/* v51 · route summary no longer pushes the map below a tall form. */
.kr-result-panel{margin:18px 0 0;padding:20px;border:1px solid #ffffffc9;border-radius:23px;background:var(--portal-panel,rgba(255,255,255,.42));box-shadow:var(--portal-shadow-soft)}
.kr-result-panel[hidden]{display:none!important}.kr-access-roads{font-size:12px;line-height:1.8;color:#4f7261;margin:13px 0}.kr-access-roads span{display:inline-block;margin:0 8px;color:#7d9c8c}
.kr-access-legend i{width:18px!important;height:0!important;border-radius:0!important;border-top:3px dashed #c39337;background:none!important}
@media(max-width:650px){.kr-result-panel{padding:15px;border-radius:19px}.kr-result-head h3{font-size:20px}}

/* v52: strong distinction from the unchanged yellow base roads. */
.kr-map-legend i{background:#086aff!important;height:5px!important}
.kr-access-legend i{border-top-color:#6743cd!important}
.kr-route-explainer{font-size:12px;line-height:1.7;color:#36546a;margin:13px 0 0}
.kr-result-buttons{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.kr-result-buttons button:first-child{color:#1049a5;background:#e8f0ff;border-color:#bdd0fb}
.kmp-building-id{display:inline-block;font:700 11px/1.5 system-ui,sans-serif;color:#346654;background:#e6f2eb;border-radius:8px;margin:0 0 12px;padding:5px 9px}
.kmp-build{display:inline-block;font-size:11px;color:#225d49}
@media(max-width:650px){.kr-result-buttons{justify-content:flex-start}.kr-route-explainer{font-size:11px}}
