/* Distance planner: native inputs, fluid cards and the existing KGM calculation. */
.distance-intro{position:relative;background:radial-gradient(ellipse at 90% 20%,#17465c 0,transparent 55%),#071c37;color:#fff;padding-block:48px;border-bottom:3px solid #64b5cb;}
.distance-intro .kicker{color:#8dd4e5;letter-spacing:.16em;font-size:11px;}
.distance-intro h1{color:#fff;font-size:clamp(32px,4vw,54px);letter-spacing:-.045em;}
.distance-intro p:last-child{color:#d1e2ec;max-width:700px;line-height:1.8;font-size:15px;}
.distance-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start;padding-top:36px;padding-bottom:56px;}
.distance-layout>div:first-child{min-width:0;background:#fff;border:1px solid #dce6ed;border-radius:20px;padding:28px;box-shadow:0 12px 40px #071c3708;}
.distance-layout h2{font-size:24px;line-height:1.3;margin-bottom:10px;letter-spacing:-.035em;}
.distance-help{color:var(--muted);margin-bottom:24px;font-size:13px;line-height:1.8;}
#distance-form{padding:0;border:0;}
#distance-stops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:8px 0 0;}
.distance-stop{position:relative;min-width:0;margin:0;padding:18px;border:1px solid #d5e2eb;border-radius:14px;background:linear-gradient(145deg,#f5fafc,#fff);}
.distance-stop legend{font-size:11px;letter-spacing:.08em;font-weight:700;padding:6px 12px;margin-left:0;color:#20556e;background:#e5f2f7;border:1px solid #cee6ed;border-radius:20px;}
.distance-stop:first-child legend{background:#071c37;border-color:#071c37;color:#fff;}
.distance-stop:last-child legend{background:#dff2ee;border-color:#c3e3db;color:#17594e;}
.distance-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;}
.distance-field{min-width:0;}
.distance-field label{display:block;font-size:11px;font-weight:700;margin-bottom:6px;color:#486378;letter-spacing:.04em;}
.distance-field select{width:100%;min-height:50px;margin-top:0;background:#fff;border:1px solid #bdcfdb;border-radius:9px;padding:10px 24px 10px 12px;color:#071c37;font-size:16px;box-shadow:0 2px 3px #071c3703;}
.distance-field select:hover:enabled{border-color:#47829d;}
.distance-field select:focus-visible{outline:3px solid #64b5cb80;outline-offset:2px;border-color:#23678f;}
.distance-field select:disabled{background:#edf2f6;color:#758795;box-shadow:none;}
.distance-error{display:none;color:#9f3026;font-size:12px;margin-top:6px;}
.distance-field select:user-invalid,.distance-field select[aria-invalid="true"]{border-color:#9f3026;}
.distance-field select:user-invalid+.distance-error,.distance-field select[aria-invalid="true"]+.distance-error{display:block;}
.distance-stop-actions{display:flex;gap:7px;justify-content:flex-end;margin-top:16px;padding-top:12px;border-top:1px solid #e0eaf0;}
.distance-stop-actions button{width:44px;height:44px;border:1px solid #d5e2eb;border-radius:9px;background:#fff;color:#17465c;font-size:20px;line-height:1;}
.distance-stop-actions button:hover:enabled{border-color:#64b5cb;background:#eaf5f9;}
.distance-stop-actions button:disabled{opacity:.3;cursor:default;}
.distance-stop-actions button:focus-visible,.distance-actions button:focus-visible,.distance-map-link:focus-visible{outline:3px solid #64b5cb;outline-offset:3px;}
.distance-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;}
.distance-actions .button{min-height:50px;border-radius:10px;font-size:13px;padding-inline:20px;}
.distance-actions .navy{flex:1;background:#071c37;box-shadow:0 5px 14px #071c3718;}
.distance-actions .navy:hover{background:#17465c;}
.distance-actions button:disabled{opacity:.55;cursor:wait;}
.distance-add{background:#fff;border:1px solid #b7d5e1;color:#20556e;}
.distance-add:hover{background:#edf7fa;}
#distance-status{margin-top:16px;color:var(--muted);font-size:12px;line-height:1.7;}
#distance-status:empty{margin:0;}
.distance-side{min-width:0;}
.distance-result{background:radial-gradient(ellipse at 100% 0,#174c60,transparent 65%),#071c37;color:#fff;padding:30px;border:1px solid #24465d;border-radius:20px;box-shadow:0 12px 30px #071c3714;}
.distance-result:focus{outline:2px solid #64b5cb;outline-offset:5px;}
.distance-result .kicker{color:#8dd4e5;font-size:11px;letter-spacing:.14em;}
.distance-total{display:block;font-size:clamp(44px,4.5vw,64px);font-weight:700;line-height:1.15;letter-spacing:-.05em;margin:18px 0 12px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
#distance-count{display:inline-block;color:#c3dfeb;margin-bottom:24px;padding:6px 12px;border:1px solid #3c5e74;border-radius:20px;font-size:11px;}
.distance-legs{list-style:none;padding:0;margin:0 0 24px;counter-reset:leg;}
.distance-legs li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:start;gap:10px;padding:16px 0;border-top:1px solid #355166;font-size:12px;line-height:1.75;counter-increment:leg;}
.distance-legs li:before{content:counter(leg,decimal-leading-zero);display:block;color:#87ccdf;font-size:10px;line-height:24px;}
.distance-legs li span{overflow-wrap:anywhere;}
.distance-legs strong{white-space:nowrap;color:#fff;font-variant-numeric:tabular-nums;}
.distance-maps{display:flex;flex-direction:column;gap:12px;}
.distance-map-link{background:#8dd4e5;color:#071c37;text-align:center;border-radius:10px;min-height:48px;font-size:12px;}
.distance-map-link:hover{background:#b6e7f2;}
.distance-placeholder{position:relative;border:1px dashed #aac9d7;border-radius:20px;padding:36px 28px;background:linear-gradient(145deg,#eff7fa,#fafcfd);color:#527083;font-size:14px;line-height:1.9;}
.distance-result:not([hidden])~.distance-placeholder{display:none;}
@media(min-width:1100px){.distance-layout{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);}.distance-side{position:sticky;top:120px;}}
@media(min-width:601px) and (max-width:1099px){.distance-fields{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.distance-intro{padding-block:30px;}.distance-intro p:last-child{font-size:13px;}.distance-layout{padding-top:24px;gap:20px;padding-bottom:32px;}.distance-layout>div:first-child{padding:20px 16px;border-radius:16px;}.distance-layout h2{font-size:22px;}#distance-stops{grid-template-columns:minmax(0,1fr);gap:16px;}.distance-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}.distance-stop{padding:16px;}.distance-stop-actions{margin-top:12px;padding-top:10px;}.distance-actions{gap:10px;}.distance-actions .button{padding-inline:12px;}.distance-result{padding:24px 20px;border-radius:16px;}.distance-placeholder{padding:26px 22px;border-radius:16px;}}
@media(prefers-reduced-motion:no-preference){.distance-field select,.distance-actions button,.distance-stop-actions button{transition:border-color .15s,background-color .15s;}}
