:root{--ink:#103a43;--muted:#627b80;--teal:#007e8c;--deep:#083f4b;--line:#dce6e5;--paper:#f7faf8;--orange:#b96529;--green:#238a62}*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}body{overflow:hidden;background:var(--paper)}button,select,input{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled,select:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #df982c;outline-offset:3px}a{color:#006e7d;text-underline-offset:3px}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:white;border-bottom:1px solid var(--line);position:relative;z-index:1100}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:17px;letter-spacing:.14em}.brand b{font-weight:800}.brand small{display:block;letter-spacing:.01em;font-size:11px;color:var(--muted);margin-top:4px}.brand-icon{font-size:44px;line-height:1;color:var(--teal);font-weight:600}.topbar nav{display:flex;align-items:center;gap:24px;font-size:13px}.topbar nav a{text-decoration:none}.text-button{border:0;background:none;color:var(--ink);padding:10px 0;font-size:13px}.workspace{position:relative;height:calc(100% - 78px);display:grid;grid-template-columns:375px 1fr}#map{grid-column:2;height:100%;width:100%;background:#e8f0e7;outline:none}.planner{grid-column:1;grid-row:1;height:100%;background:var(--paper);border-right:1px solid var(--line);z-index:1000;overflow:hidden}.panel-scroll{height:100%;overflow-y:auto;padding:26px 24px 16px;scrollbar-width:thin}.intro{padding-bottom:22px}.eyebrow{color:var(--teal);font-weight:800;letter-spacing:.17em;font-size:10px}h1{font-family:Georgia,serif;font-size:32px;line-height:1.12;font-weight:400;margin:12px 0}p{font-size:13px;line-height:1.6}.intro p{max-width:290px;color:var(--muted);margin:0}.coverage-stats{font-size:11px;color:#48696e;margin-top:15px}.plan-section{border-top:1px solid var(--line);padding:23px 0}.step-label{display:flex;gap:9px;align-items:center;font-weight:750;font-size:14px;margin-bottom:15px}.step-label>span{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#e1edeb;color:var(--teal);font-size:11px}select{width:100%;min-height:45px;max-width:100%;border:1px solid #c7d7d5;border-radius:9px;background:#fff;color:var(--ink);padding:9px 32px 9px 11px;font-size:13px;text-overflow:ellipsis}.hint{font-size:11px;color:var(--muted);line-height:1.55;margin:10px 0 0}#river-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}#river-tools[hidden]{display:none}#river-tools a{font-size:10px}.field-label{font-size:9px;font-weight:800;letter-spacing:.12em;display:block;margin-bottom:6px}.connector-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:11px;color:var(--muted)}.small-button{font-size:11px;color:#285e65;border:0;background:transparent;padding:7px 5px;border-radius:5px}.small-button:hover{background:#e3eeee}.trip-actions{display:flex;gap:12px;align-items:center;margin-top:17px}.primary-button{border:0;border-radius:9px;color:white;background:var(--teal);padding:12px 16px;font-weight:700;font-size:12px;flex:1}.primary-button:hover{background:#006573}.route-result{margin-top:15px}.mileage-card{background:#e2f1ed;border-radius:12px;padding:18px}.mile-number{font-size:43px;font-weight:750;letter-spacing:-.04em;line-height:1}.mile-number small{font-size:15px;letter-spacing:0;font-weight:500}.mileage-card .direction{font-size:11px;font-weight:750;margin:8px 0}.mileage-card .route-names{font-size:11px;line-height:1.5;color:#396466;overflow-wrap:anywhere}.route-warning{padding:11px 12px;border-radius:8px;background:#fff3dd;color:#785224;font-size:11px;line-height:1.55;margin-top:10px;border-left:3px solid #d39439}.route-warning.error{background:#fff0e9;color:#8b4127;border-color:#c35e3a}.route-links{display:flex;gap:14px;font-size:11px;margin-top:13px}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h2{margin:0;font-size:16px;font-family:Georgia,serif;font-weight:400}.gauge-card{background:white;border:1px solid var(--line);padding:13px;border-radius:10px;margin-top:13px}.gauge-title{font-size:12px;font-weight:750;line-height:1.45;margin-bottom:8px}.gauge-values{display:flex;gap:24px}.gauge-value{font-size:23px;font-weight:700;letter-spacing:-.03em}.gauge-value small{font-size:10px;font-weight:500;letter-spacing:0}.gauge-label{display:block;font-size:10px;color:var(--muted);margin-top:3px}.gauge-time,.gauge-note{font-size:10px;line-height:1.55;color:var(--muted);margin-top:9px}.gauge-time.stale{color:#9e501f;font-weight:700}.gauge-card a{font-size:10px;display:inline-block;margin-top:7px}.conditions-empty{font-size:12px;line-height:1.6;background:#eaf0ed;padding:14px;border-radius:8px;margin-top:12px}.safety-note{display:flex;gap:10px;padding:17px 0;border-top:1px solid var(--line)}.safety-note>span{font-size:24px;color:var(--orange)}.safety-note strong{font-size:11px}.safety-note p{font-size:10px;color:var(--muted);margin:5px 0 0;line-height:1.6}.panel-footer{font-size:9px;color:var(--muted);display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px}.map-top{position:absolute;top:20px;left:395px;right:60px;z-index:800;display:flex;align-items:center;gap:14px;pointer-events:none}.map-button{pointer-events:auto;border:1px solid #cedbd6;border-radius:9px;padding:11px 15px;background:white;box-shadow:0 2px 8px #0d424215;color:var(--ink);font-size:12px;font-weight:650}.map-top>span{font-size:11px;background:#fffE;padding:8px 12px;border-radius:6px;color:#416769}.map-legend{position:absolute;right:18px;bottom:28px;z-index:800;background:#fffffff2;border:1px solid #d2dfda;border-radius:8px;display:flex;gap:14px;padding:11px 13px;font-size:10px;pointer-events:none}.map-legend span{display:flex;gap:5px;align-items:center}.map-legend i{display:inline-block}.river-key{height:3px;width:17px;background:#128c9a}.access-key{width:8px;height:8px;border:2px solid white;background:var(--green);border-radius:50%;box-shadow:0 0 0 1px var(--green)}.hazard-key{width:8px;height:8px;background:#bd6232;transform:rotate(45deg)}.leaflet-control-zoom{border:1px solid #cbd9d5!important;border-radius:8px!important;overflow:hidden;box-shadow:0 2px 7px #0d424215!important}.leaflet-control-zoom a{color:var(--ink)!important}.leaflet-container{font:12px Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.leaflet-control-attribution{font-size:9px!important}.leaflet-popup-content{max-width:260px!important;margin:15px!important;line-height:1.5}.leaflet-popup-content h3{font-size:13px;margin:3px 0 8px;line-height:1.5}.leaflet-popup-content p{font-size:11px;margin:5px 0}.popup-kicker{font-size:9px;color:var(--teal);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.popup-actions{display:flex;gap:7px;margin:11px 0}.popup-actions button{background:#e4f2ec;border:1px solid #bbd6ca;border-radius:6px;font-size:11px;padding:7px 9px;color:#165d56}.popup-actions button:last-child{background:#e5f0f5;border-color:#c0d4df;color:#1c596e}.popup-actions button:disabled{background:#eee;border-color:#ddd}.popup-link{font-size:10px;display:inline-block;margin-top:5px}.endpoint-marker{width:29px;height:29px;border:3px solid white;border-radius:50%;background:#005c74;box-shadow:0 1px 8px #1339;color:white;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800}.endpoint-marker.takeout{background:#c07231}.sheet-toggle{display:none}dialog{border:0;border-radius:18px;padding:32px;max-width:600px;width:calc(100% - 32px);max-height:85dvh;color:var(--ink);box-shadow:0 18px 100px #00384433}dialog::backdrop{background:#062f4a66}dialog h2{font-family:Georgia,serif;font-weight:400;font-size:29px;margin:12px 0 18px}dialog h3{font-size:14px;margin:22px 0 8px}dialog p,dialog li{font-size:12px;line-height:1.7}dialog ul{padding-left:19px}dialog li{margin-bottom:7px}.close-button{position:absolute;top:12px;right:14px;border:0;background:#eff4f1;border-radius:50%;width:30px;height:30px;font-size:21px;color:var(--ink)}.load-error{position:fixed;z-index:5000;top:100px;left:50%;transform:translateX(-50%);background:#fff0e9;padding:20px;width:min(500px,90%);border:1px solid #b34f25;border-radius:12px}.load-error[hidden]{display:none}
@media(max-width:760px){.topbar{height:66px;padding:0 16px}.brand{font-size:13px;gap:8px}.brand small{font-size:9px}.brand-icon{font-size:36px}.topbar nav{gap:15px}.topbar nav a{font-size:11px}.text-button{font-size:11px;max-width:53px;text-align:right;line-height:1.3}.workspace{height:calc(100dvh - 66px);display:block}#map{height:calc(100% - 66px)}.planner{position:absolute;left:0;right:0;bottom:0;height:66px;border-radius:20px 20px 0 0;border:0;border-top:1px solid #cadbd5;box-shadow:0 -4px 24px #163e3e18;transition:height .2s ease}.planner.open{height:55%}.panel-scroll{height:calc(100% - 56px);padding:0 20px 24px}.sheet-toggle{display:flex;align-items:center;justify-content:space-between;position:relative;height:56px;width:100%;border:0;background:transparent;padding:15px 22px 0;font-size:14px;color:var(--ink);font-weight:700}.handle{position:absolute;top:9px;left:calc(50% - 18px);width:36px;height:4px;border-radius:3px;background:#bfd0cb}.intro{padding:13px 0 18px}.intro h1{font-size:26px;margin:9px 0}.intro h1 br{display:none}.intro p{font-size:12px}.coverage-stats{font-size:10px;margin-top:10px}.plan-section{padding:18px 0}.map-top{left:12px;right:12px;top:13px;gap:7px}.map-button{padding:9px 11px;font-size:11px}.map-top>span{font-size:10px;padding:8px;max-width:190px}.map-legend{bottom:89px;right:8px;left:auto;padding:8px 10px;gap:10px;font-size:9px}.planner.open~.map-legend{display:none}body.sheet-open .map-legend{display:none}body.sheet-open #map{height:45%}.leaflet-bottom.leaflet-right{bottom:2px}.leaflet-top.leaflet-right{top:61px}.leaflet-popup-content{max-width:220px!important;margin:12px!important}.leaflet-popup-content h3{font-size:12px}.leaflet-popup-content p{font-size:10px}.popup-actions{margin:8px 0}.popup-actions button{padding:7px}.route-links{font-size:10px;gap:12px}.mileage-card{padding:15px}.mile-number{font-size:38px}dialog{padding:27px 22px;max-height:85dvh}.panel-footer{font-size:9px}}
@media(prefers-reduced-motion:reduce){.planner{transition:none}}
