:root{color-scheme:dark;--bg:#090e0b;--panel:#111b14;--text:#e6ffe6;--muted:#a9bfaf;--accent:#8befa8;--border:#2a3c30}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 Consolas,Monaco,'Courier New',monospace}a{color:var(--accent);text-underline-offset:4px}header,main,footer{max-width:1120px;margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.brand{text-decoration:none;color:var(--text);font-weight:bold;letter-spacing:1px}.brand span{color:var(--accent)}nav{display:flex;gap:24px;font-size:14px}h1{font-size:clamp(28px,4vw,42px);line-height:1.2;letter-spacing:-1px;margin:12px 0}h2{font-size:23px;line-height:1.4;margin:0}h3{font-size:18px;margin:0 0 12px}.intro{margin:8px 0 28px}.intro p{color:var(--muted);margin:8px 0}.eyebrow{color:var(--accent);font-size:12px;letter-spacing:2px}.coverage{font-size:14px}.planner{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:28px}.controls{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;margin-bottom:25px}label{display:block;font-weight:bold;font-size:14px}select,input{display:block;width:100%;margin-top:8px;background:#09110c;color:var(--text);border:1px solid #496052;border-radius:7px;padding:14px;font:inherit;min-height:52px}button{font:inherit;color:var(--text);background:#16271c;border:1px solid #496052;border-radius:7px;padding:10px 16px;cursor:pointer}button:hover{background:#23452e}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.day-nav{display:flex;gap:8px}.meta{font-size:14px;color:var(--muted);margin:5px 0 20px}.crossing{display:grid;grid-template-columns:1fr .7fr 1fr 1.2fr;gap:18px;align-items:center;padding:22px 0;border-top:1px solid var(--border)}.journey strong{display:block;font-size:30px;line-height:1.3}.journey span,.duration,.ship small{color:var(--muted);font-size:14px}.journey small{font-size:12px;margin-left:5px;color:var(--accent)}.duration{text-align:center}.duration span{display:block;color:var(--accent);font-size:23px}.ship small{display:block}.empty{padding:24px 0;font-size:18px;color:var(--text)}.insight{border:1px solid #3a6347;background:#142c1d;border-radius:8px;padding:18px;font-size:14px;margin:12px 0 28px}.insight button{font-size:14px;padding:6px 10px;margin:8px 0}.insight p{margin:8px 0 0}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:12px 0}.week button{padding:12px 6px;font-size:12px;display:flex;flex-direction:column;gap:10px;align-items:center}.week strong{font-size:13px;font-weight:normal}.week .chosen{border-color:var(--accent);background:#213c29}.help{color:var(--muted);font-size:13px;margin:12px 0 0}details{border:1px solid var(--border);border-radius:8px;margin-top:24px;padding:18px}summary{cursor:pointer;color:var(--accent);font-weight:bold}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px;margin-top:18px}th,td{padding:12px;text-align:left;border-bottom:1px solid var(--border)}.answers{margin:36px 0}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.answer-grid article{border-top:1px solid var(--border);padding-top:20px}.answer-grid p{font-size:14px;color:var(--muted);margin:0}.source{border-top:1px solid var(--border);padding-top:24px;color:var(--muted);font-size:14px}.source strong{color:var(--text)}footer{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}.print{margin-top:20px;font-size:14px}@media(max-width:700px){header,main,footer{padding:18px}nav{gap:12px}nav a:last-child{display:none}.planner{padding:18px}.controls{grid-template-columns:1fr;gap:15px}.heading{align-items:flex-start}h2{font-size:20px}.day-nav button{padding:8px 10px;font-size:13px}.crossing{grid-template-columns:1fr .7fr 1fr;gap:10px}.ship{grid-column:1/-1;font-size:14px;display:flex;gap:12px}.journey strong{font-size:26px}.week{grid-template-columns:repeat(4,1fr)}.answer-grid{grid-template-columns:1fr;gap:22px}footer{flex-direction:column;gap:15px}}@media print{body,.planner,.insight{background:white;color:black}header,nav,.controls,.day-nav,.week,.print,.insight button{display:none}.planner{border:0}details{break-inside:avoid}a,.meta,.ship small,.duration,.journey span{color:#333}}
:root{--bg:#080a0a;--accent:#00ff99}nav{flex-wrap:wrap}.local-assistant{margin-bottom:24px}.local-assistant form{display:flex;align-items:flex-end;gap:14px}.local-assistant label{flex:1}@media(max-width:700px){.local-assistant form{display:block}.local-assistant button{margin-top:12px}}

/* Travel presentation within the 42.uk palette. */
html{scroll-behavior:smooth}.travel-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:32px;align-items:center;margin:12px 0 32px}.travel-hero h1{font-size:clamp(34px,4.4vw,52px);letter-spacing:-2px}.travel-hero .hero-lead{font-size:18px;color:var(--text);max-width:480px}.hero-copy>p{font-size:14px}.hero-action{display:inline-flex;gap:28px;align-items:center;background:var(--accent);color:#080a0a;font-weight:bold;text-decoration:none;padding:12px 20px;border-radius:6px;margin:14px 0}.hero-photo{margin:0;position:relative;overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--panel)}.hero-photo img{display:block;width:100%;height:300px;object-fit:cover}.hero-photo figcaption{padding:15px 18px;font-size:13px}.hero-photo small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.project-story{padding:26px;margin-top:32px;background:linear-gradient(120deg,#12261b,#111b14);border:1px solid var(--border);border-radius:12px}.project-story h2{margin-top:8px}.project-story p{max-width:850px;font-size:14px;color:var(--muted)}.local-assistant{margin-top:0}.planner{scroll-margin-top:20px}@media(max-width:700px){header{display:block}nav{margin-top:14px;font-size:12px;gap:10px 16px}.travel-hero{grid-template-columns:1fr;gap:20px}.travel-hero h1{font-size:36px}.hero-photo img{height:210px}.project-story{padding:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.travel-hero,.project-story,.local-assistant{display:none}}

.schedule-scope{padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid var(--border);font-size:13px}.schedule-scope strong{color:var(--accent)}.schedule-scope p{margin:4px 0;color:var(--muted)}.official-handoff{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;border:1px solid var(--border);border-radius:8px;padding:18px;margin-bottom:16px}.official-primary{background:var(--accent);color:var(--bg);padding:10px 14px;border-radius:5px;font-weight:bold;text-decoration:none}.official-handoff p{flex-basis:100%;margin:0;font-size:12px;color:var(--muted)}.travel-shortcuts{display:flex;flex-wrap:wrap;gap:12px;font-size:12px}.route-help{font-size:13px;margin:12px 0 20px;color:var(--muted)}@media print{.official-handoff,.route-help{display:none}}

.passenger-guide{margin:32px 0;border-top:1px solid var(--border);padding-top:26px}.guide-jumps,.resource-links{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:13px}.guide-jumps{margin:18px 0}.passenger-guide details{margin-top:12px;scroll-margin-top:20px}.passenger-guide details p,.passenger-guide li{font-size:14px;color:var(--muted)}.passenger-guide h3{margin:22px 0 8px}.port-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.port-grid a{font-size:13px}.port-grid article{border-top:1px solid var(--border)}@media(max-width:700px){.port-grid{grid-template-columns:1fr}}

.checkin-reminder{grid-column:1/-1;margin:0;font-size:12px;color:var(--muted);border-left:2px solid var(--accent);padding-left:12px}

.research-lab{margin-bottom:30px}.lab-controls{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px}.lab-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.lab-metrics p{border:1px solid var(--border);padding:14px;font-size:12px}.lab-metrics strong{display:block;font-size:25px;color:var(--accent)}.research-lab hr{border:0;border-top:1px solid var(--border);margin:32px 0}.research-lab form button{margin-top:12px}.official-primary{background:transparent;color:var(--accent);font-weight:normal}.research-lab{scroll-margin-top:20px}@media(max-width:700px){.lab-metrics,.lab-controls{grid-template-columns:1fr 1fr}.lab-metrics strong{font-size:21px}}

.research-section{margin:30px 0}.science-chart{margin:20px 0;background:#0b1410;border:1px solid var(--border);border-radius:10px;padding:16px}.science-chart figcaption{font-size:13px;color:var(--muted)}.science-chart svg{display:block;width:100%;height:auto}.science-chart text{fill:var(--text);font:12px Consolas,monospace}.sailing-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:18px 0 30px}.calendar-head{text-align:center;font-size:12px;color:var(--muted)}.calendar-cell{padding:8px;display:flex;flex-direction:column;align-items:center;min-width:0;gap:2px}.calendar-cell span,.calendar-cell small{font-size:10px}.calendar-cell strong{font-size:20px}.calendar-cell.has-records{background:#16452f;border-color:#4a9b70}.calendar-cell.no-records{background:#131a17;color:#a9bfaf}.calendar-cell.scenario-loss{border:2px dashed #ffd28b}.history-table{max-height:380px;overflow:auto}.research-section input[type=range]{padding:8px;accent-color:var(--accent)}#mlExplanation p{font-size:13px;overflow-wrap:anywhere}.research-section hr{border:0;border-top:1px solid var(--border);margin:28px 0}@media(max-width:700px){.sailing-calendar{gap:3px}.calendar-cell{padding:5px 1px}.calendar-cell strong{font-size:17px}.lab-controls{grid-template-columns:1fr}.science-chart{padding:6px}}

.port-conditions{margin:1.5rem 0;padding:1.2rem;border:1px solid #315344;border-radius:12px;background:#0b1510}.forecast-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.forecast-port{min-width:0;padding:1rem;border:1px solid #315344;border-radius:8px}.forecast-port svg{width:100%;height:auto;display:block}.forecast-port svg text{fill:#b8d9c4;font-size:12px}.forecast-port p,.forecast-port details{font-size:.8rem;overflow-wrap:anywhere}.forecast-port table{font-size:.75rem;white-space:nowrap}.forecast-port .table-scroll{overflow:auto}@media(max-width:700px){.forecast-grid{grid-template-columns:1fr}.port-conditions{padding:.7rem}}
