:root{--navy:#071b33;--ink:#15233a;--cream:#f6f1e8;--paper:#fffdf8;--red:#d73b37;--orange:#e97735;--blue:#1f79a8;--teal:#168a83;--gold:#e3b85d;--muted:#68758a;--line:#dbe0e5}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif}.hero{background:radial-gradient(circle at 75% 10%,#174f70 0,transparent 30%),linear-gradient(145deg,#071b33 20%,#0b3150 100%);color:#fff;padding:28px max(28px,6vw) 64px;overflow:hidden}.hero nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:60px}.brand{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:700;letter-spacing:.14em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid #ffffff66;border-radius:50%;font-family:"Fraunces",serif}.print{border:1px solid #ffffff55;border-radius:99px;background:#ffffff0d;color:#fff;padding:10px 16px;cursor:pointer}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,1fr);gap:70px;align-items:end;max-width:1220px;margin:auto}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.18em;margin:0 0 16px}.hero h1{font:700 clamp(64px,9vw,124px)/.78 "Fraunces",serif;letter-spacing:-.055em;margin:0}.hero h1 em{font-weight:600;color:#f3c768}.dek{font-size:20px;color:#dbe7ef;margin:28px 0}.travelers{display:flex;align-items:center;gap:14px;font:500 12px "DM Mono";letter-spacing:.1em}.travelers i{color:#f3c768}.route-card{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding-top:60px}.route-line{position:absolute;left:6%;right:7%;top:20px;height:2px;background:linear-gradient(90deg,#fff,#68cfdf,#f3c768);box-shadow:0 0 20px #6fcfe877}.route-stop{position:relative}.route-stop:before{content:"";position:absolute;top:-46px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px #ffffff20}.route-stop.ship:before{background:#f3c768}.route-stop b,.route-stop span,.route-stop small{display:block}.route-stop b{font:700 22px "DM Mono"}.route-stop span{font-size:13px;margin:6px 0;color:#d6e0e8}.route-stop small{font:500 10px "DM Mono";color:#7fb5ca}
main{max-width:1220px;margin:auto;padding:0 28px}.status-strip{display:grid;grid-template-columns:repeat(3,1fr) 2fr;background:#fff;margin:-28px 0 72px;position:relative;border-radius:12px;box-shadow:0 16px 50px #0b1f3520;overflow:hidden}.status-strip>div,.status-strip>p{padding:24px 26px;border-right:1px solid var(--line);margin:0}.status-strip strong{display:block;font:700 30px "Fraunces"}.status-strip span{font:700 10px "DM Mono";letter-spacing:.12em;color:var(--muted)}.status-strip p{border:0;font-size:12px;line-height:1.6;color:var(--muted)}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:26px}.section-heading h2,.notes h2{font:700 clamp(36px,5vw,58px)/1 "Fraunces";letter-spacing:-.04em;margin:0}.red{color:var(--red)}.blue{color:var(--blue)}.hide-done{font-size:13px;color:var(--muted)}.punch{margin-bottom:92px}.punch-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.task{display:grid;grid-template-columns:42px 1fr;gap:14px;padding:24px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 26px #15233a08;transition:.25s}.task.urgent{border-left:5px solid var(--red)}.task.warning{border-left:5px solid var(--orange)}.task input{display:none}.check{display:block;width:30px;height:30px;border:2px solid #aeb7c2;border-radius:50%;position:relative;cursor:pointer}.task input:checked+.check{background:var(--teal);border-color:var(--teal)}.task input:checked+.check:after{content:"✓";position:absolute;color:#fff;font-weight:700;left:7px;top:2px}.task.done{opacity:.52;background:#f4f6f5}.task.done h3{text-decoration:line-through}.task.hidden{display:none}.tag{font:700 10px "DM Mono";color:var(--red);letter-spacing:.1em}.warning .tag{color:var(--orange)}.task h3{font:700 21px "Fraunces";margin:7px 0 8px}.task p{font-size:14px;line-height:1.55;margin:0;color:#455267}.task small{display:block;margin-top:13px;font:500 11px "DM Mono";color:#7a8595}.saved-note{text-align:right;color:var(--muted);font-size:11px;margin:14px 4px}.timeline-section{margin-bottom:80px}.timeline{border-top:1px solid var(--ink)}.day{display:grid;grid-template-columns:105px 1fr;border-bottom:1px solid var(--line);padding:38px 0}.date{display:flex;gap:10px;align-items:flex-start}.date strong{font:700 44px "Fraunces";line-height:.85}.date span{font:700 10px/1.35 "DM Mono";color:var(--muted)}.day-body{min-width:0}.day-top{display:flex;justify-content:space-between;align-items:center;font:700 10px "DM Mono";letter-spacing:.12em;color:var(--muted)}.status{padding:6px 9px;border-radius:4px;color:#fff;background:var(--teal)}.status.work{background:var(--orange)}.status.cruise-tag{background:var(--blue)}.status.return{background:var(--navy)}.day-body h3{font:700 30px "Fraunces";margin:16px 0}.flight-line{display:grid;grid-template-columns:auto auto 1fr auto 1fr auto auto;gap:10px;align-items:center;background:var(--navy);color:#fff;padding:18px 20px;border-radius:8px}.flight-line b{font:700 18px "DM Mono"}.flight-line time{font:500 12px "DM Mono"}.flight-line i{height:1px;background:#ffffff44}.flight-line span{text-align:center;font:500 10px "DM Mono";color:#9cc9db}.details{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.details span{background:#eef1f4;border-radius:4px;padding:7px 9px;font:500 10px "DM Mono"}.stay{margin-top:18px;border-left:3px solid var(--teal);padding:5px 0 5px 17px}.stay.missing{border-color:var(--red);background:#fff4f2;padding:15px 18px;border-radius:0 7px 7px 0}.stay span{font:700 9px "DM Mono";letter-spacing:.1em;color:var(--teal)}.stay.missing span{color:var(--red)}.stay b{display:block;margin:7px 0;font-size:15px}.stay p,.note{font-size:13px;line-height:1.55;color:var(--muted);margin:0}.links a{display:inline-block;margin-top:15px;color:var(--blue);font-weight:700}.returns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.returns>div{padding:18px;background:#eef1f4;border-radius:8px}.returns small,.returns b,.returns p,.returns em{display:block}.returns small{font:700 9px "DM Mono";color:var(--muted)}.returns b{margin:8px 0}.returns p{margin:0;font-size:13px}.returns em{font:500 10px "DM Mono";margin-top:8px;color:var(--muted)}.notes{background:var(--cream);margin:0 -28px 70px;padding:38px 44px;border-radius:16px}.mini-checks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:26px 0}.mini-checks label{background:#fff;padding:15px;border-radius:8px;font-size:13px}.calendar-warning{margin:26px 0 0;padding-top:20px;border-top:1px solid #d9d0c1;font-size:13px;line-height:1.5;color:#5d6674}footer{display:flex;justify-content:space-between;background:var(--navy);color:#a8bac8;padding:28px max(28px,6vw);font:500 10px "DM Mono";letter-spacing:.1em}
.flight-glance{margin:0 0 80px}.departure-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.departure-grid article{display:grid;grid-template-columns:72px 1fr;gap:18px;align-items:center;padding:20px;background:var(--navy);color:#fff;border-radius:11px}.departure-grid article.verify-flight{background:#63332c}.departure-date{border-right:1px solid #ffffff38;padding-right:14px}.departure-date b,.departure-date span{display:block}.departure-date b{font:700 14px "DM Mono";color:#f0c66b}.departure-date span{font:500 10px "DM Mono";margin-top:4px;color:#a8bac8}.departure-grid small,.departure-grid strong,.departure-grid p{display:block}.departure-grid small{font:700 9px "DM Mono";letter-spacing:.08em;color:#94bbcb}.departure-grid strong{font:700 32px "Fraunces";margin:3px 0}.departure-grid p{font:500 10px "DM Mono";margin:0;color:#a8bac8}.time-note{text-align:right;color:var(--muted);font-size:11px;margin:10px 2px 0}
@media(max-width:780px){.hero{padding-bottom:48px}.hero nav{margin-bottom:38px}.hero-grid{grid-template-columns:1fr;gap:54px}.route-card{min-width:600px}.hero{overflow-x:hidden}.status-strip{grid-template-columns:repeat(3,1fr);margin-bottom:56px}.status-strip>p{grid-column:1/-1;border-top:1px solid var(--line)}.departure-grid{grid-template-columns:1fr}.punch-grid{grid-template-columns:1fr}.day{grid-template-columns:75px 1fr}.flight-line{grid-template-columns:auto 1fr auto}.flight-line time{display:none}.flight-line i{display:none}.returns{grid-template-columns:1fr}.mini-checks{grid-template-columns:1fr}.section-heading{align-items:flex-start}.route-card{transform:scale(.75);transform-origin:left top;margin-bottom:-45px}.notes{padding:30px 24px}footer{gap:20px;flex-direction:column}}
@media(max-width:480px){.hero h1{font-size:62px}.status-strip>div{padding:18px 10px}.status-strip strong{font-size:26px}.status-strip span{font-size:8px}.day{grid-template-columns:1fr}.date{margin-bottom:18px}.day-top{gap:20px}.details span{font-size:9px}.route-card{transform:scale(.62);margin-bottom:-72px}.print{font-size:11px}}
@media print{.hero{background:#fff;color:#000;padding:20px}.hero h1{font-size:56px}.hero h1 em{color:#555}.dek,.route-card,.print{display:none}.status-strip{box-shadow:none;margin:0 0 30px;border:1px solid #ccc}.task{break-inside:avoid}.timeline-section{break-before:page}.day{break-inside:avoid}.notes{break-inside:avoid}body{background:#fff}}

/* Single chronological timeline */
.single-timeline{max-width:1040px;padding-top:64px}.timeline-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:42px}.timeline-intro h2{font:700 clamp(48px,7vw,76px)/.9 "Fraunces",serif;letter-spacing:-.05em;margin:0}.timeline-intro>p:last-child{font:500 11px "DM Mono";color:var(--muted);white-space:nowrap}.legend{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}.booked-dot{background:var(--teal)}.open-dot{background:var(--red)}.verify-dot{background:var(--orange)}.journey{position:relative}.journey:before{content:"";position:absolute;left:157px;top:20px;bottom:25px;width:2px;background:#d8dee3}.journey-item{display:grid;grid-template-columns:135px 45px 1fr;min-height:142px;padding-bottom:18px;position:relative}.journey-when{text-align:right;padding-top:18px}.journey-when b,.journey-when strong,.journey-when time{display:block}.journey-when b{font:700 10px "DM Mono";letter-spacing:.12em;color:var(--muted)}.journey-when strong{font:700 18px "Fraunces";margin:3px 0}.journey-when time{font:700 12px "DM Mono";color:var(--blue)}.journey-marker{position:relative}.journey-marker:before{content:"";position:absolute;z-index:2;top:23px;left:16px;width:15px;height:15px;border:4px solid var(--paper);border-radius:50%;background:var(--teal);box-shadow:0 0 0 2px var(--teal)}.open-item .journey-marker:before{background:var(--red);box-shadow:0 0 0 2px var(--red)}.verify-item .journey-marker:before{background:var(--orange);box-shadow:0 0 0 2px var(--orange)}.work-item .journey-marker:before{background:var(--blue);box-shadow:0 0 0 2px var(--blue)}.journey-content{position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 24px;box-shadow:0 8px 24px #15233a08}.open-item .journey-content{border-left:5px solid var(--red);background:#fff8f6}.verify-item .journey-content{border-left:5px solid var(--orange);background:#fffbf5}.cruise-item .journey-content{background:linear-gradient(135deg,#08233e,#0b4e65);color:#fff;border:0}.pill{display:inline-block;padding:5px 8px;border-radius:4px;color:#fff;font:700 9px "DM Mono";letter-spacing:.08em}.booked-pill{background:var(--teal)}.open-pill{background:var(--red)}.verify-pill{background:var(--orange)}.work-pill{background:var(--blue)}.journey-content h3{font:700 24px "Fraunces";margin:10px 0 7px}.journey-content p{font-size:13px;line-height:1.45;color:var(--muted);margin:4px 0}.journey-content .primary{font-weight:700;color:var(--ink);font-size:14px}.cruise-item .journey-content p{color:#bcd1dc}.cruise-item .journey-content .primary{color:#fff}.journey-content a{display:inline-block;margin-top:9px;color:var(--blue);font-weight:700;font-size:13px}.timeline-check{position:absolute;right:18px;top:17px;font:600 11px "DM Sans";color:var(--muted);cursor:pointer}.timeline-check input{margin-right:5px}.journey-item.completed .journey-content{opacity:.55;background:#f2f5f3;border-left-color:var(--teal)}.journey-item.completed .journey-marker:before{background:var(--teal);box-shadow:0 0 0 2px var(--teal)}.journey-item.completed .pill{background:var(--teal)}.timeline-footnote{margin:25px 0 70px;padding:20px;border-radius:10px;background:var(--cream);font-size:13px;line-height:1.5;color:#5d6674}
@media(max-width:700px){.single-timeline{padding-top:40px}.timeline-intro{display:block}.timeline-intro>p:last-child{margin-top:18px;white-space:normal}.journey:before{left:17px}.journey-item{grid-template-columns:36px 1fr;display:grid;padding-bottom:18px}.journey-when{grid-column:2;text-align:left;padding:0 0 9px}.journey-when b,.journey-when strong,.journey-when time{display:inline;margin-right:8px}.journey-marker{grid-column:1;grid-row:1/3}.journey-marker:before{left:10px;top:6px;width:11px;height:11px}.journey-content{grid-column:2}.timeline-check{position:static;display:block;margin-bottom:10px}.journey-content h3{font-size:21px}}

/* One entry per date */
.grouped-journey{border-top:2px solid var(--ink)}.grouped-journey:before{display:none}.date-group{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid var(--line);padding:30px 0}.group-date{padding:5px 26px 0 0;text-align:right}.group-date b,.group-date strong{display:block}.group-date b{font:700 10px "DM Mono";letter-spacing:.12em;color:var(--muted)}.group-date strong{font:700 25px "Fraunces";margin-top:4px}.group-content{border-left:2px solid var(--navy);padding-left:24px}.range-group .group-content{border-color:var(--blue)}.group-event{display:grid;grid-template-columns:105px 1fr;gap:20px;padding:18px 20px;border-radius:10px}.group-event+.group-event{margin-top:10px}.booked-event{background:#f1f6f5}.work-event{background:#eef5f8}.open-event{background:#fff3f0;border-left:5px solid var(--red)}.verify-event{background:#fff8ed;border-left:5px solid var(--orange)}.cruise-event{background:linear-gradient(135deg,#08233e,#0b4e65);color:#fff}.event-time{font:700 12px "DM Mono";color:var(--blue);padding-top:7px}.open-event .event-time{color:var(--red)}.verify-event .event-time{color:var(--orange)}.cruise-event .event-time{color:#f0c66b}.group-event h3{font:700 22px "Fraunces";margin:8px 0 5px}.group-event p{font-size:13px;line-height:1.45;color:var(--muted);margin:3px 0}.group-event .primary{font-weight:700;color:var(--ink)}.cruise-event p{color:#bcd1dc}.cruise-event .primary{color:#fff}.group-event a{display:inline-block;margin-top:8px;color:var(--blue);font-weight:700;font-size:13px}.group-event>div:last-child{position:relative}.group-event.completed{opacity:.55;background:#f2f5f3;border-left-color:var(--teal)}
@media(max-width:700px){.date-group{grid-template-columns:1fr;padding:24px 0}.group-date{text-align:left;padding:0 0 12px}.group-date b,.group-date strong{display:inline;margin-right:8px}.group-content{padding-left:12px}.group-event{grid-template-columns:1fr;gap:7px;padding:17px}.event-time{padding:0}.group-event h3{font-size:20px}}
