.bottom-nav{grid-template-columns:repeat(4,minmax(0,1fr))}
#routeScreen{overflow-y:auto;max-height:100dvh;padding-bottom:max(28px,env(safe-area-inset-bottom));gap:16px;animation:none}
#routeScreen h1{font-size:1.9rem;margin:0;line-height:1.15;letter-spacing:-.04em}
#routeScreen p{line-height:1.5;margin:0}
.route-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.route-badge{background:#e6f0ec;color:#236b57;border:1px solid #bfd5cb;border-radius:20px;padding:6px 10px;font-size:.75rem;font-weight:700}
.route-copy{color:#596c63;font-size:.9rem}
.route-form{display:grid;gap:13px}
.route-form .primary{width:100%;min-height:48px}
.route-form label{display:grid;gap:7px;font-size:.86rem;font-weight:700}
.route-form input,.route-form select{width:100%;min-height:48px;border:1px solid #cedad4;border-radius:14px;background:#fff;color:#213b30;padding:11px 13px;font:inherit}
.route-form small{font-size:.76rem;color:#596c63;font-weight:400;line-height:1.45}
.route-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.route-form details{border:1px solid #d9e2dd;background:#fff;border-radius:15px;padding:13px}
.route-form summary{cursor:pointer;font-size:.86rem;font-weight:700;min-height:30px}
.route-form details label{margin-top:12px}
.route-notice{background:#f8f2e7;color:#77531d;border:1px solid #e1d4b9;border-radius:15px;padding:13px;font-size:.8rem;line-height:1.5}
.route-error{color:#873f3d;background:#faeeec;border-color:#e8c4bf}
.route-results{display:grid;gap:14px}
.route-results:empty{display:none}
.route-summary,.route-stage{padding:17px;background:#fff;border:1px solid #d6e0da;border-radius:20px}
.route-summary h2,.route-stage h3{margin:0 0 8px;font-size:1.12rem;line-height:1.3;overflow-wrap:anywhere}
.route-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.route-metrics div{padding:11px;border-radius:13px;background:#f1f5f3}
.route-metrics span{display:block;font-size:.74rem;color:#596c63;line-height:1.3}
.route-metrics strong{display:block;margin-top:5px;font-size:1rem;line-height:1.3;overflow-wrap:anywhere}
.route-metrics .route-provisional-price{color:#77531d}
.route-stage p{font-size:.82rem;color:#596c63;margin:6px 0!important}
.route-stage .route-warning{color:#77531d}
.route-stage .route-critical{color:#873f3d;font-weight:700}
.route-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.route-actions a,.route-actions button{flex:1 1 110px;min-height:44px;display:grid;place-items:center;border:1px solid #c9d9d0;border-radius:12px;text-decoration:none;background:#f3f7f5;color:#236b57;font:inherit;font-size:.8rem;font-weight:700;padding:9px}
.route-stage details{margin-top:12px;font-size:.78rem;color:#596c63;line-height:1.5}
.route-stage summary{cursor:pointer;min-height:36px;padding-top:8px}
.route-stage details a{color:#236b57;display:inline-block;margin:5px 10px 5px 0}
.route-stage.is-next{border:2px solid #397f68}
#routeMap{height:210px;width:100%;border-radius:18px;border:1px solid #d6e0da;overflow:hidden;background:#eef3f0}
.route-resume{display:grid;gap:10px;padding:14px;background:#e8f1ed;border-radius:16px}
.route-resume[hidden]{display:none}
.route-status{font-size:.84rem;color:#596c63;line-height:1.45}
.route-footer{display:flex;gap:10px;flex-wrap:wrap}
.route-footer button{flex:1;min-height:44px}
@media(min-width:760px){#routeScreen{height:100%;max-height:100%;min-height:100%}}
@media(max-width:340px){.route-fields,.route-metrics{grid-template-columns:1fr}#routeScreen{padding-left:16px;padding-right:16px}}
@media(prefers-reduced-motion:reduce){#routeScreen *{scroll-behavior:auto;animation:none}}
.route-answer{font-size:1.12rem!important;font-weight:750;color:#236b57;margin-bottom:10px!important}
.route-origin{padding:8px 12px!important;background:transparent!important;border:0!important}
.route-results>details{padding:14px;background:#fff;border:1px solid #d6e0da;border-radius:15px;font-size:.82rem;line-height:1.5}
.route-results>button{min-height:48px;border:1px solid #bfd5cb;border-radius:14px;padding:12px;background:#e8f1ed;color:#236b57;font:inherit;font-weight:700}
.route-candidate{display:grid;gap:6px;padding:12px 0;border-top:1px solid #e2e9e5}
.route-candidate a{color:#236b57;min-height:44px;display:flex;align-items:center}
.place-search{display:grid;gap:8px;min-width:0}
.place-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.place-search-row button{min-height:48px;padding:10px 16px;border-radius:13px;border:1px solid #bfd5cb;color:#236b57;background:#e8f1ed;font:inherit;font-size:.85rem;font-weight:700}
.place-results{display:grid;gap:6px}
.place-results:empty{display:none}
.place-results button{display:block;min-height:48px;padding:12px;text-align:left;border:1px solid #d6e0da;border-radius:12px;background:#fff;color:#213b30;font:inherit;font-size:.86rem;line-height:1.4;overflow-wrap:anywhere}
.place-results button:focus-visible{outline:3px solid #337a66;outline-offset:2px}
#routeOriginSummary{overflow-wrap:anywhere;line-height:1.4}
#routeUseLocation{min-height:44px;margin-top:6px;width:100%}
#routeMap{height:clamp(240px,40dvh,360px)}
.place-results button strong,.place-results button small{display:block}
.place-results button small{margin-top:5px;color:#596c63;font-size:.76rem;font-weight:400}
.place-results>a{font-size:.8rem;color:#236b57;min-height:44px;display:flex;align-items:center;padding:6px}
.address-point-dialog{width:min(560px,calc(100vw - 24px));max-height:92dvh;overflow-y:auto;padding:18px}
.address-point-dialog p{line-height:1.45;margin:9px 0}
#addressPointMap{height:clamp(240px,48dvh,430px);border-radius:14px;background:#eef3f0}
#confirmAddressPoint{width:100%;min-height:48px;margin-top:10px}

.roundtrip-choice{padding:12px;background:#e8f2ed;border:1px solid #bdd4c8;border-radius:14px}
.route-form .roundtrip-choice span{display:flex;gap:10px;align-items:center}
.route-form .roundtrip-choice input{width:22px;min-height:22px;height:22px;flex-shrink:0;accent-color:#2f7963}
:where(a,input,select,textarea,summary):focus-visible{outline:3px solid #4f7091;outline-offset:3px}
