:root,[data-theme=light]{color-scheme:light;--paper:#F1F4EF;--surface:#FFFFFF;--cream:#FFFFFF;--soft:#E4EAE3;--ink:#0F1F1B;--muted:#4A5A54;--line:#C9D3CB;--gold:#F2B33D;--orange:#F4683A;--orange-text:#b63d18;--blue:#4A86E8;--blue-text:#255cae;--green:#3FA66B;--green-text:#267747;--gold-text:#856000;--note:#fff5dc;--hover:#f7f9f5;--forest:#0F1F1B}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#0B1512;--surface:#13221E;--cream:#13221E;--soft:#1B2E29;--ink:#E8EFE9;--muted:#A9B8B1;--line:#2A3D37;--orange-text:#FFA283;--blue-text:#8FB7FF;--green-text:#78DCA0;--gold-text:#F2B33D;--note:#332b19;--hover:#1B2E29}}
[data-theme=dark]{color-scheme:dark;--paper:#0B1512;--surface:#13221E;--cream:#13221E;--soft:#1B2E29;--ink:#E8EFE9;--muted:#A9B8B1;--line:#2A3D37;--orange-text:#FFA283;--blue-text:#8FB7FF;--green-text:#78DCA0;--gold-text:#F2B33D;--note:#332b19;--hover:#1B2E29}
body{background:var(--paper);color:var(--ink)}header{background:var(--forest);color:#fffdf5}.brand{color:#fffdf5}main{max-width:1216px;padding-left:32px;padding-right:32px}.intro h1{font-size:52px}.intro h1 em{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-style:normal;color:var(--gold-text);font-size:1em}.shell{background:var(--surface);box-shadow:none;border-radius:12px}.crossing{border-color:var(--line);border-top-color:var(--category-color);border-radius:12px;background:var(--surface);align-self:start}.route-stack{grid-template-columns:repeat(auto-fill,minmax(min(100%,27rem),1fr));align-items:start}.route-stack.single{grid-template-columns:1fr}.category-orange{--category-color:var(--orange);--category-text:var(--orange-text)}.category-blue{--category-color:var(--blue);--category-text:var(--blue-text)}.category-green{--category-color:var(--green);--category-text:var(--green-text)}.category-gold{--category-color:var(--gold);--category-text:var(--gold-text)}.crossing details{border:0}.crossing summary{padding:22px 24px}.crossing summary:hover{background:var(--hover)}.crossing details[open]>summary{background:var(--surface);border-bottom:1px solid var(--line)}.crossing h3{font-size:32px;margin:8px 0 10px}.compact h3{font-size:26px}.operator{font:700 14px Barlow,sans-serif;letter-spacing:.2px;color:var(--category-text);display:flex;gap:8px;align-items:center}.category-icon{font-size:19px;line-height:1}.context{font:600 13px Barlow,sans-serif;color:var(--muted);margin-top:6px}.card-summary{font-size:16px;line-height:1.5;color:var(--muted);margin:10px 0 14px}.facts{font-size:14px}.inline-departure{display:flex;gap:10px;align-items:baseline;margin:12px 0}.inline-departure strong{font:800 32px 'Barlow Condensed',sans-serif;color:var(--ink)}.inline-departure span{font-size:13px;color:var(--muted)}.card-notices{font-size:14px;color:var(--ink)}.card-notices p{margin:12px 0 0;padding-left:10px;border-left:2px solid var(--category-color)}.expand-label:after{content:none}.expand-label .plus{font-size:24px;transition:transform 150ms ease}.crossing details[open] .plus{transform:rotate(45deg)}.when-open{display:none}details[open] .when-open{display:inline}details[open] .when-closed{display:none}.card-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:15px 24px;border-top:1px solid var(--line)}.card-actions .secondary-link{font-size:14px}.expanded{padding:24px;background:var(--surface)}.card-section{margin-bottom:26px}.card-section:last-of-type{margin-bottom:12px}.card-section>.detail-grid{margin-top:17px}.card-section h4{margin:0 0 12px}.card-section p{color:var(--muted)}.expanded .detail-grid{grid-template-columns:1fr;gap:18px}.crossing .schedule-table .duration-col{display:none}.crossing .schedule-table th{font-size:11px}.crossing .schedule-table td{font-size:14px}.crossing .schedule-table .gate-col{max-width:125px}.crossing .schedule-table .btn.small{font-size:13px;padding:7px 8px;min-height:38px}.schedule-table .past{color:var(--muted);opacity:.65}.schedule-table .next,.return-note,.notice{background:var(--soft)}.btn{background:var(--gold);color:#0F1F1B;border-color:var(--gold)}.btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}.pill,input,select,.mini-nav button{background:var(--surface);color:var(--ink);border-color:var(--line)}.pill.active,.mini-nav button.active{background:var(--ink);color:var(--surface)}.eyebrow{color:var(--orange-text)}.note{background:var(--note)}.empty{background:var(--soft)}.step:before{border-color:var(--surface)}.step .time{color:var(--orange-text)}.plan-head,.terminal-detail{background:var(--surface)}.plan-surface{border-top-color:var(--gold)}.plan-extra{border-top:1px solid var(--line);padding-top:16px;margin-top:24px}.plan-extra summary{cursor:pointer;font-weight:600}.plan-extra .detail-grid{margin-top:18px}.bottom-close{display:none}.enhanced .bottom-close{display:inline-block}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.basics-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr))}.sources .crossing{margin:14px 0}.sources .crossing details{border:0;padding:0}.sources .crossing p{font-size:16px}.theme-switcher{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.theme-switcher button{background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:7px 10px;min-height:36px;border-radius:5px;font-size:13px}.theme-switcher button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.human-note{font-family:Fraunces,Georgia,serif;font-style:italic}.fade-in{animation:enter 150ms ease}.full-page .route-stack{grid-template-columns:1fr}.full-page .expanded .detail-grid{grid-template-columns:1fr 1fr}.full-page .schedule-table .duration-col{display:table-cell}
@media(max-width:760px){main{padding-left:20px;padding-right:20px}.intro h1{font-size:42px}.crossing summary{padding:20px}.expanded{padding:20px}.card-actions{padding:15px 20px}.full-page .expanded .detail-grid{grid-template-columns:1fr}.full-page .schedule-table .duration-col{display:none}.inline-departure{flex-wrap:wrap;gap:5px 10px}.operator{font-size:14px}.theme-switcher button{min-height:44px}.card-section p{font-size:16px}.crossing .schedule-table th{font-size:11px}.crossing .schedule-table td{font-size:14px}}
@media(max-width:416px){.card-actions{align-items:stretch;flex-direction:column;gap:10px}.card-actions .btn{width:100%}.card-actions .secondary-link{min-height:36px;padding:8px 0}.actions .btn{width:100%}.form-tail .btn{width:100%}.crossing .schedule-table .gate-col{display:none}.card-actions .btn,.btn.small,.mini-nav button,.pill{min-height:44px}.crossing .schedule-table .btn.small{min-height:44px}.app-nav{gap:18px;padding:0 14px}#stage{padding:20px 14px}.intro h1{font-size:38px}.form-title h2{font-size:30px}.facts{gap:7px 12px}.plan-head h2{font-size:32px}.card-actions .secondary-link{white-space:normal}.schedule-table caption{font-size:13px}.plan-head{padding:20px}}
@media(prefers-reduced-motion:reduce){.fade-in,.plus{animation:none!important;transition:none!important}}
.crossing summary{list-style:none}.crossing summary::-webkit-details-marker{display:none}.crossing summary::marker{content:''}.schedule-status{font-size:13px;color:var(--muted);margin:16px 0 0}.mobile-boarding{display:none}.sources summary{font-weight:inherit}.schedule-table .past .mobile-boarding{color:inherit}body{overflow-wrap:break-word}
@media(max-width:416px){.mobile-boarding{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:3px}.crossing .schedule-table td{vertical-align:top}.schedule-status{font-size:12px}.finder input[type=date],.finder input[type=time]{padding:10px 6px}.card-actions .secondary-link{min-height:44px}.bottom-close{min-height:44px}}
@media print{.crossing,.plan-head{background:white;color:#0F1F1B}.theme-switcher{display:none}.plan-extra{display:block}.no-print{display:none}.plan-extra>summary{display:none}.plan-extra>.detail-grid{display:grid}body{color:#0F1F1B;--ink:#0F1F1B;--muted:#4A5A54;--surface:#fff;--line:#C9D3CB;--soft:#E4EAE3}}

.app-nav .tab{text-decoration:none}

#bay-map{margin-top:22px}#bay-map>details>summary{padding:16px 20px}#bay-map>details>summary h3{font-size:26px;margin:5px 0}#bay-map .card-summary{margin:5px 0;font-size:15px}#bay-map .expand-label{margin-top:9px}#bay-map>details>.expanded{padding:20px}#bay-map .operator{font-size:12px}
@media(max-width:416px){#bay-map>details>.expanded{padding:12px}#bay-map>details>summary{padding:16px}.plan-surface .actions .btn{flex-basis:100%}}
@media print{#bay-map{display:none}}

/* Control edges carry contrast; decorative dividers remain quiet. */
:root,[data-theme=light]{--control-border:#7B8D81}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--control-border:#68877A}}
[data-theme=dark]{--control-border:#68877A}
input,select,.pill,.mini-nav button,.btn.secondary,.theme-switcher button{border-color:var(--control-border)}
.schedule-table,.departure,.inline-departure,.facts,.time-strip,.step .time{font-variant-numeric:tabular-nums}
.btn,.pill,.mini-nav button,.theme-switcher button{transition:background-color 120ms ease,border-color 120ms ease}
@media(hover:hover){.btn:hover:not(:disabled){background:#E4A62F;border-color:#E4A62F}.btn.secondary:hover:not(:disabled),.pill:hover:not(.active),.mini-nav button:hover:not(.active),.theme-switcher button:hover:not([aria-pressed=true]){background:var(--soft);border-color:var(--muted)}}
.btn:active:not(:disabled){background:#D79A26}.btn.secondary:active:not(:disabled),.pill:active:not(.active),.mini-nav button:active:not(.active){background:var(--soft)}
.crossing-preview>details>summary{padding:18px 20px}
.crossing-preview h3{font-size:28px;line-height:1.12;margin:7px 0 10px}
.crossing-preview .context{margin-top:4px}
.crossing-preview .card-summary{margin:0 0 12px}
.crossing-preview .inline-departure{margin:0;gap:3px 12px;flex-wrap:wrap}
.crossing-preview .inline-departure strong{font-size:32px;line-height:1.15;white-space:nowrap}
.crossing-preview .inline-departure strong>span{font:inherit;color:var(--muted);padding:0 3px}
.crossing-preview .inline-departure>span{font-size:13px}
.crossing-preview .facts{gap:6px 16px;line-height:1.45}
.crossing-preview .expand-label{margin-top:12px;min-height:32px}
.crossing-preview .card-actions{padding:10px 20px}
.crossing-detail-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px 18px;padding-top:12px;border-top:1px solid var(--line)}
.crossing-detail-actions a{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
@media(max-width:760px){
 main{padding-top:16px}.intro{margin-bottom:16px}.intro p:last-child{margin-top:8px}
 #stage{padding-top:18px}.form-title h2{margin-bottom:0}.day-label{margin-top:6px}
 .finder,.day-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 12px;margin:14px 0 10px}
 .finder>label:has(select[name=from]),.finder>label:has(select[name=to]){grid-column:1/-1}
 .finder input,.finder select{margin-top:4px;min-height:46px}
 .day-extra{gap:10px 12px;margin:14px 0}.day-extra>label:has(select[name=shore]),.day-extra>label:has(select[name=interest]){grid-column:1/-1}
 .results-heading{margin-top:22px;margin-bottom:12px}.route-stack{gap:12px}
 .crossing-preview>details>summary{padding:16px}.crossing-preview h3{font-size:27px}
 .crossing-preview .card-actions{padding:10px 16px;flex-direction:row}.crossing-preview .card-actions .btn{width:auto;flex:1;min-height:44px}
}
@media(max-width:350px){
 .finder{grid-template-columns:minmax(0,1fr)}
 .crossing-preview h3{font-size:25px}.crossing-preview .inline-departure strong{font-size:29px}
 .day-extra,.day-extra.one-way-extra{grid-template-columns:1fr}.day-extra>label{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){.btn,.pill,.mini-nav button,.theme-switcher button{transition:none}}

/* The exact terminal remains available when a native select clips its text. */
.finder-terminal{min-width:0}.terminal-choice{display:none}
@media(max-width:760px){.finder>.finder-terminal{grid-column:1/-1}}
@media(max-width:350px){.terminal-choice{display:block;margin:5px 0 0;color:var(--muted);font-size:14px;line-height:1.4;overflow-wrap:anywhere}}
