:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang HK","Microsoft JhengHei",sans-serif;color:#173a43;background:#f4f8f8;font-synthesis:none;line-height:1.5;--accent:#087f83;--line:#d9e5e6;--muted:#56717a}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select,a{touch-action:manipulation}button,a,select,input{outline-offset:4px}a{color:var(--accent);text-underline-offset:3px}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #3ab6bc}button:disabled{opacity:.55;cursor:default}[hidden]{display:none!important}.shell{max-width:1160px;margin:auto;padding:0 32px 70px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:94px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-size:23px;font-weight:800;text-decoration:none;letter-spacing:-.7px}.brand svg{width:38px;height:38px}.section-number{font-size:12px;letter-spacing:1px;color:var(--muted);border-left:1px solid var(--line);margin-left:5px;padding-left:14px}.header-actions{display:flex;align-items:center;gap:20px}.header-actions>a{font-size:13px;font-weight:650;text-decoration:none}.header-actions select{width:130px;padding:10px;border-radius:10px;border:1px solid var(--line);background:white;color:#244d56;font-size:13px;min-height:44px}.region-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:46px 0 30px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.7px;text-transform:uppercase;color:var(--accent);margin:0 0 10px}h1{display:flex;align-items:center;gap:15px;flex-wrap:wrap;font-size:clamp(25px,3.3vw,39px);line-height:1.3;letter-spacing:-1px;margin:0;font-weight:740}.direction{font-size:.72em;color:var(--accent);font-weight:400}.lead{font-size:14px;color:var(--muted);margin:12px 0 0}.crossing-art{color:#17969b;width:190px;flex-shrink:0;opacity:.7}.planner-panel{background:#fff;border:1px solid var(--line);box-shadow:0 5px 18px #17494f05;border-radius:18px;padding:25px}.journey-fields{display:grid;grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr) auto;gap:16px;align-items:end}.place-field{display:grid;gap:9px;min-width:0}.place-field>span,.sort-label>span{font-size:12px;font-weight:650;color:var(--muted)}.place-field select{width:100%;min-width:0;text-overflow:ellipsis;background:#f6f9f9;border:1px solid var(--line);padding:12px 32px 12px 12px;border-radius:10px;min-height:49px;font-weight:600;color:#244d56}.swap-button{width:38px;height:49px;border:0;background:transparent;color:var(--accent);font-size:25px}.compare-button{background:var(--accent);color:white;border:0;border-radius:10px;min-height:49px;padding:11px 23px;font-weight:650}.compare-button:hover{background:#066b70}.preferences{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px;padding-top:18px;border-top:1px solid #edf2f2}.preferences fieldset{border:0;margin:0;padding:0;display:flex;gap:10px;flex-wrap:wrap}.mode-choice{display:flex;align-items:center;gap:7px;font-size:13px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer;min-height:36px}.mode-choice:has(input:checked){background:#edf8f7;border-color:#acd5d4;color:#086c70}.mode-choice input{accent-color:var(--accent);width:15px;height:15px;margin:0}.sort-label{display:flex;align-items:center;gap:10px;min-width:0}.sort-label select{font-size:13px;color:#294f58;border:0;background:transparent;min-height:36px;max-width:180px}.form-error{margin:15px 0 0;color:#a83e30;font-size:13px}.empty-state{text-align:center;color:var(--muted);padding:66px 20px 35px}.empty-route{display:flex;gap:13px;justify-content:center;align-items:center;color:#7aa9ab;margin-bottom:16px}.empty-route i{width:10px;height:10px;border:2px solid #87b8ba;border-radius:50%}.empty-route span{font-size:25px}.empty-state h2{color:#365e67;font-size:18px;margin:0 0 8px;font-weight:600}.empty-state p{font-size:13px;margin:0}.results-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:32px 0 10px}.results-heading .eyebrow{letter-spacing:0;font-size:12px;margin-bottom:4px}.results-heading h2{font-size:22px;line-height:1.4;letter-spacing:-.4px;margin:0}.reference-tag{color:#55747a;font-size:11px;white-space:nowrap;border:1px solid var(--line);padding:5px 10px;border-radius:30px}.model-note{font-size:12px;color:var(--muted);max-width:800px;margin:0 0 20px}.route-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.route-card{min-width:0;background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}.route-main{padding:21px}.route-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:17px}.mode-badge{font-size:11px;font-weight:700;letter-spacing:.4px;padding:5px 9px;border-radius:5px;color:#086b70;background:#eaf7f6}.mode-badge.ferry{color:#2766a4;background:#eef5fe}.mode-badge.road{color:#936323;background:#faf4e9}.duration{text-align:right;line-height:1.2;flex-shrink:0}.duration strong{font-size:25px;font-weight:700;letter-spacing:-.7px}.duration>span{font-size:11px;margin-left:4px;color:var(--muted)}.duration small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.route-card h3{font-size:15px;line-height:1.6;margin:0 0 12px;font-weight:650;overflow-wrap:anywhere}.route-card h3 small{display:block;font-size:11px;color:var(--muted);font-weight:400}.route-metrics{display:flex;gap:7px 16px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:0}.route-warning{font-size:12px;color:#885c20;background:#fbf7ee;border-left:2px solid #deb879;padding:8px 10px;margin:14px 0 0}.route-detail{border-top:1px solid #ebf1f1}.route-detail summary{padding:13px 21px;font-size:12px;color:var(--accent);cursor:pointer}.legs{list-style:none;padding:0 21px;margin:0 0 17px}.leg{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:0 0 17px 17px;border-left:1px solid #cde0e2;margin-left:3px;font-size:12px}.leg:last-child{border-color:transparent;padding-bottom:0}.leg:before{content:"";position:absolute;left:-4px;top:5px;width:7px;height:7px;background:white;border:1.5px solid #69a6a7;border-radius:50%}.leg-type{display:block;font-weight:650;color:#375e68;margin-bottom:3px}.leg-path{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.leg-minutes{font-size:11px;color:var(--muted);white-space:nowrap}.route-links{border-top:1px solid #edf2f2;padding:12px 21px;display:flex;gap:7px 14px;flex-wrap:wrap}.route-links a{font-size:11px;text-decoration:none;overflow-wrap:anywhere}.source-links{padding:0 21px 16px;display:flex;flex-wrap:wrap;gap:8px;font-size:11px}.source-links a{overflow-wrap:anywhere}.no-results{grid-column:1/-1;padding:30px;border:1px dashed #bccfd2;border-radius:12px;color:var(--muted);font-size:14px;text-align:center}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-80px;left:20px;padding:12px;background:white;z-index:5}.skip-link:focus{top:10px}@media(max-width:760px){.shell{padding:0 20px 45px}.masthead{min-height:78px}.brand{font-size:21px;gap:7px}.brand svg{width:33px;height:33px}.section-number{padding-left:9px;margin-left:2px}.header-actions{gap:12px}.header-actions select{width:112px}.region-heading{margin:30px 0 23px}.crossing-art{display:none}h1{gap:8px;font-size:28px;letter-spacing:-.6px}.lead{font-size:13px}.planner-panel{padding:18px}.journey-fields{grid-template-columns:minmax(0,1fr) 32px;gap:13px 6px}.place-field{grid-column:1;gap:6px}.swap-button{grid-column:2;grid-row:1/3;align-self:center;transform:rotate(90deg);width:32px}.compare-button{grid-column:1/-1;margin-top:3px}.preferences{margin-top:17px;padding-top:14px;flex-wrap:wrap;gap:10px}.sort-label{margin-left:auto}.route-results{grid-template-columns:1fr}.results-heading h2{font-size:20px}.route-main{padding:19px}.empty-state{padding:45px 10px}.results-heading{margin-top:25px}}@media(max-width:360px){.shell{padding-right:14px;padding-left:14px}.header-actions{gap:8px}.section-number{display:none}h1{font-size:24px}.mode-choice{padding:6px 8px}.region-heading{margin-top:26px}.route-metrics{gap:5px 12px}}
