/* Cruise Tools 2.1.0 - Port Day. Scoped under .cruisetools-pd; the only colour taken from the host is its link colour. */
.cruisetools-pd{--pd-accent:var(--link-color,var(--host-link,#1a5276));--pd-ink:#2c3e50;--pd-head:#1a2a3a;--pd-muted:#5f6b6d;--pd-rule:#e0e4e8;--pd-soft:#f4f7fa;
  --pd-other:#3d5166;--pd-small:#5f758a;--pd-amber:#8a5300;--pd-amber-bg:#fff4e2;--pd-amber-rule:#e8a33d;--pd-calm:#1d6b47;--pd-calm-bg:#eef7f1;
  color:var(--pd-ink);font-size:15px}
.cruisetools-pd h1{font-size:26px;line-height:1.15;color:var(--pd-head);letter-spacing:-.01em;margin:2px 0 0}
.cruisetools-pd .tag{font-size:14.5px;color:var(--pd-muted);margin:4px 0 0}
.cruisetools-pd .crumb{font-size:12.5px;color:var(--pd-muted);display:flex;gap:6px;align-items:center;min-height:32px}
.cruisetools-pd .trust{font-size:12.5px;color:var(--pd-muted);margin:8px 0 0;line-height:1.45}
.cruisetools-pd .trust b{font-weight:500;color:var(--pd-ink)}
.cruisetools-pd .kick{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pd-muted)}
.cruisetools-pd h2{font-size:20px;line-height:1.2;color:var(--pd-head)}
.cruisetools-pd h3{font-size:15px;color:var(--pd-head);margin:20px 0 8px}
.cruisetools-pd .muted{color:var(--pd-muted)}
.cruisetools-pd .sm{font-size:13px}

/* picker */
.cruisetools-pd .modes{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--pd-accent);border-radius:8px;overflow:hidden;margin-top:14px}
.cruisetools-pd .modes span{min-height:44px;display:grid;place-items:center;font-size:14px;font-weight:500;color:var(--pd-accent)}
.cruisetools-pd .modes span.on{background:var(--pd-accent);color:#fff}
.cruisetools-pd .pick{display:grid;grid-template-columns:1.2fr 1fr;gap:8px;margin-top:10px}
.cruisetools-pd .fld{display:grid;gap:3px}
.cruisetools-pd .fld label{font-size:12px;font-weight:700;color:#333}
.cruisetools-pd .inp{min-height:46px;border:1px solid #cfd6dd;border-radius:6px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;font-size:14.5px;color:#222;background:#fff}
.cruisetools-pd .inp i{width:7px;height:7px;border-right:2px solid #7a8794;border-bottom:2px solid #7a8794;transform:rotate(45deg) translateY(-2px);font-style:normal}
.cruisetools-pd .summary{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:8px 12px;min-height:52px;border:1px solid var(--pd-rule);border-radius:8px;background:var(--pd-soft);font-size:14px}
.cruisetools-pd .summary b{color:var(--pd-head)}
.cruisetools-pd .summary a{font-weight:500;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}

/* day strip */
.cruisetools-pd .days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px}
.cruisetools-pd .day{border:1px solid var(--pd-rule);border-radius:6px;min-height:58px;padding:5px 2px 6px;display:grid;justify-items:center;align-content:start;gap:2px;font-size:11px;color:var(--pd-muted);background:#fff;position:relative}
.cruisetools-pd .day b{font-size:14px;color:var(--pd-head)}
.cruisetools-pd .day .n{font-size:11.5px;color:var(--pd-ink);font-weight:500}
.cruisetools-pd .day .lv{position:absolute;left:4px;right:4px;bottom:3px;height:3px;border-radius:2px;background:var(--pd-rule)}
.cruisetools-pd .day .lv u{display:block;height:100%;border-radius:2px;background:var(--pd-other)}
.cruisetools-pd .day.on{border:2px solid var(--pd-accent);padding:4px 1px 5px}
.cruisetools-pd .day.on .lv u{background:var(--pd-accent)}
.cruisetools-pd .day.nd{border-style:dashed;background:repeating-linear-gradient(135deg,#fff 0 5px,#f1f3f5 5px 10px)}
.cruisetools-pd .day.nd .n{color:var(--pd-muted);font-weight:400}

/* answer */
.cruisetools-pd .ans{margin-top:16px;border:1px solid var(--pd-rule);border-radius:10px;padding:14px 14px 12px;background:#fff}
.cruisetools-pd .ans .big{font-size:22px;line-height:1.2;font-weight:700;color:var(--pd-head);margin:2px 0 0}
.cruisetools-pd .ans .sub{font-size:14px;color:var(--pd-muted);margin:2px 0 0}
.cruisetools-pd .load{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--pd-rule)}
.cruisetools-pd .load b{font-size:20px;color:var(--pd-head)}
.cruisetools-pd .load span{font-size:13px;color:var(--pd-muted)}
.cruisetools-pd .caveat{margin:10px 0 0;padding:9px 11px;border-radius:6px;background:var(--pd-soft);font-size:13px;line-height:1.45;color:#3b4752;border-left:3px solid #9fb6cc}
.cruisetools-pd .caveat b{color:var(--pd-head)}
.cruisetools-pd .partial{margin:8px 0 0;font-size:13px;color:var(--pd-amber)}

/* your window */
.cruisetools-pd .yours{margin-top:12px;border:1.5px solid var(--pd-accent);border-radius:10px;padding:12px 14px;background:color-mix(in srgb,var(--pd-accent) 5%,#fff)}
.cruisetools-pd .yours .sent{font-size:15px;line-height:1.45;color:var(--pd-ink);margin:6px 0 0}
.cruisetools-pd .yours .sent b{color:var(--pd-head)}
.cruisetools-pd .win{display:grid;margin-top:10px;font-size:13.5px}
.cruisetools-pd .win div{display:grid;grid-template-columns:118px 1fr;gap:8px;padding:6px 0;border-top:1px solid var(--pd-rule)}
.cruisetools-pd .win div span:first-child{font-variant-numeric:tabular-nums;color:var(--pd-head);font-weight:500}
.cruisetools-pd .win .alone span:last-child{color:var(--pd-calm);font-weight:700}
.cruisetools-pd .win .peak span:last-child b{color:var(--pd-head)}
.cruisetools-pd .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cruisetools-pd .chip{min-height:44px;display:inline-flex;align-items:center;padding:0 12px;border:1px solid #cdd8e4;border-radius:20px;font-size:13.5px;color:var(--pd-head);background:#fff}

/* timeline */
.cruisetools-pd .tl{margin-top:4px}
.cruisetools-pd .tl svg{display:block;width:100%;height:auto;overflow:visible}
.cruisetools-pd .tlnote{font-size:12px;color:var(--pd-muted);margin:6px 0 0}

/* ship list */
.cruisetools-pd .ships{display:grid}
.cruisetools-pd .ship{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 0;border-top:1px solid var(--pd-rule);min-height:56px}
.cruisetools-pd .ship .nm{font-weight:700;color:var(--pd-head);font-size:15px}
.cruisetools-pd .ship .nm em{font-style:normal;font-weight:500;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:var(--pd-accent);padding:2px 5px;border-radius:3px;margin-left:6px;vertical-align:2px}
.cruisetools-pd .ship .ln{font-size:13px;color:var(--pd-muted)}
.cruisetools-pd .ship .tm{font-size:14px;color:var(--pd-head);text-align:right;font-variant-numeric:tabular-nums;font-weight:500}
.cruisetools-pd .ship .cp{font-size:13px;color:var(--pd-muted);text-align:right;font-variant-numeric:tabular-nums}
.cruisetools-pd .ship .tags{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;margin-top:3px}
.cruisetools-pd .t{font-size:11.5px;line-height:1;padding:4px 6px;border-radius:3px;border:1px solid #c9d2db;color:#46525e}
.cruisetools-pd .t.tender{border-color:#c27a12;color:#8a5300}
.cruisetools-pd .t.x{border-color:#b33;color:#9b2222}
.cruisetools-pd .ship.cx .nm,.cruisetools-pd .ship.cx .tm{text-decoration:line-through;color:var(--pd-muted)}

/* slots and frame parts */
.cruisetools-pd .slot{margin-top:18px;border:1.5px dashed #b7c6d6;border-radius:10px;padding:12px;position:relative;font-size:13.5px}
.cruisetools-pd .slot .zl{position:absolute;top:-9px;left:10px;background:#fff;padding:0 6px;font:500 10px/1.4 "IBM Plex Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:#7b8a99}
.cruisetools-pd .disc{font-size:11px;color:var(--pd-muted);letter-spacing:.04em;text-transform:uppercase}
.cruisetools-pd .btn{display:flex;align-items:center;justify-content:center;min-height:46px;margin-top:8px;border-radius:8px;background:var(--pd-accent);color:#fff!important;font-weight:500;font-size:15px;text-decoration:none}
.cruisetools-pd .btn.ghost{background:#fff;color:var(--pd-accent)!important;border:1px solid var(--pd-accent)}
.cruisetools-pd .note{border-left:3px solid #9fb6cc;background:var(--pd-soft);padding:8px 10px;font-size:13px;line-height:1.4;margin-bottom:6px;border-radius:0 6px 6px 0}
.cruisetools-pd .src{font-size:13px;line-height:1.5;margin:0 0 4px}
.cruisetools-pd .more a{display:flex;min-height:44px;align-items:center;border-top:1px solid var(--pd-rule);font-size:14px}

/* empty and stale states: three different shapes, not three colours of one box */
.cruisetools-pd .es{margin-top:16px;border-radius:10px;padding:16px 14px}
.cruisetools-pd .es .big{font-size:20px;font-weight:700;color:var(--pd-head);line-height:1.25;margin:8px 0 4px}
.cruisetools-pd .es p{margin:6px 0 0;font-size:14px;line-height:1.45}
.cruisetools-pd .es .ico{width:40px;height:40px;border-radius:50%;display:grid;place-items:center}
.cruisetools-pd .es.none{border:1px solid #bcdcc8;background:var(--pd-calm-bg)}
.cruisetools-pd .es.none .ico{background:var(--pd-calm);color:#fff}
.cruisetools-pd .es.nodata{border:1.5px dashed #aab5c0;background:repeating-linear-gradient(135deg,#fff 0 8px,#f5f6f8 8px 16px)}
.cruisetools-pd .es.nodata .ico{border:2px dashed #8b96a1;color:#5f6b75}
.cruisetools-pd .stale{margin-top:16px;border-left:4px solid var(--pd-amber-rule);background:var(--pd-amber-bg);border-radius:0 8px 8px 0;padding:10px 12px;font-size:13.5px;color:#4a3410}
.cruisetools-pd .stale b{color:var(--pd-amber);display:block;font-size:14.5px;margin-bottom:2px}
.cruisetools-pd .ans.isstale{border-color:#ecc58a}
.cruisetools-pd .ans.isstale .big,.cruisetools-pd .ans.isstale .load b{color:#5a4a33}

/* port schedule page */
.cruisetools-pd .facts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.cruisetools-pd .seg2{display:inline-grid;grid-template-columns:1fr 1fr;border:1px solid var(--pd-accent);border-radius:8px;overflow:hidden;margin-top:12px;width:100%}
.cruisetools-pd .seg2 span{min-height:44px;display:grid;place-items:center;font-size:14px;font-weight:500;color:var(--pd-accent)}
.cruisetools-pd .seg2 span.on{background:var(--pd-accent);color:#fff}
.cruisetools-pd .months{display:flex;gap:6px;overflow-x:auto;margin:12px -16px 0;padding:0 16px 4px;scrollbar-width:none}
.cruisetools-pd .months a{flex:none;min-height:44px;display:inline-flex;align-items:center;gap:5px;padding:0 12px;border:1px solid #cdd8e4;border-radius:19px;font-size:13px;color:var(--pd-head)!important;background:#fff;text-decoration:none}
.cruisetools-pd .months a.on{border-color:var(--pd-accent);box-shadow:inset 0 0 0 1px var(--pd-accent)}
.cruisetools-pd .months a i{font-style:normal;font-size:12px;color:var(--pd-muted)}
.cruisetools-pd .cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:8px}
.cruisetools-pd .cal .dow{font-size:11px;text-align:center;color:var(--pd-muted);padding:2px 0}
.cruisetools-pd .cal .c{min-height:52px;border-radius:5px;padding:4px 5px;display:grid;align-content:space-between;font-size:11px;color:var(--pd-head);border:1px solid transparent}
.cruisetools-pd .cal .c b{font-weight:500;font-size:12px}
.cruisetools-pd .cal .c .k{font-size:13px;font-weight:700;text-align:right}
.cruisetools-pd .cal .c.l0{background:#f6f8fa;color:#7c8894}
.cruisetools-pd .cal .c.l1{background:color-mix(in srgb,var(--pd-accent) 12%,#fff)}
.cruisetools-pd .cal .c.l2{background:color-mix(in srgb,var(--pd-accent) 30%,#fff)}
.cruisetools-pd .cal .c.l3{background:color-mix(in srgb,var(--pd-accent) 55%,#fff)}
.cruisetools-pd .cal .c.l4{background:var(--pd-accent);color:#fff}
.cruisetools-pd .cal .c.nd{background:repeating-linear-gradient(135deg,#fff 0 5px,#eef0f2 5px 10px);border:1px dashed #b6c0ca;color:#7c8894}
.cruisetools-pd .cal .c.sel{outline:2px solid var(--pd-head);outline-offset:1px}
.cruisetools-pd .cal .c.pad{background:none}
.cruisetools-pd .legend{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--pd-muted);margin-top:8px;flex-wrap:wrap}
.cruisetools-pd .legend i{width:18px;height:12px;border-radius:2px;display:inline-block}
.cruisetools-pd .list .row{display:grid;grid-template-columns:54px 1fr;gap:10px;padding:9px 0;border-top:1px solid var(--pd-rule);min-height:56px}
.cruisetools-pd .list .d{font-size:12px;color:var(--pd-muted);line-height:1.2}
.cruisetools-pd .list .d b{display:block;font-size:17px;color:var(--pd-head)}
.cruisetools-pd .list .lbar{height:6px;border-radius:3px;background:var(--pd-rule);margin:4px 0 4px}
.cruisetools-pd .list .lbar u{display:block;height:100%;border-radius:3px;background:var(--pd-other)}
.cruisetools-pd .list .lbar.cap{position:relative}
.cruisetools-pd .list .lbar i.capm{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--pd-head);border-radius:1px}
.cruisetools-pd .list .top{display:flex;justify-content:space-between;gap:8px;font-size:14px;color:var(--pd-head)}
.cruisetools-pd .list .top span{color:var(--pd-muted);font-size:13px}
.cruisetools-pd .list .nms{font-size:12.5px;color:var(--pd-muted);line-height:1.35}
.cruisetools-pd .list .row.nd .top{color:var(--pd-muted)}
.cruisetools-pd .list .mh{font-size:13px;font-weight:700;color:var(--pd-head);padding:14px 0 4px;letter-spacing:.02em}

/* ship strip */
.cruisetools-pd .strip{display:flex;gap:8px;overflow-x:auto;margin:10px -16px 0;padding:2px 16px 8px;scrollbar-width:none}
.cruisetools-pd .sc{flex:none;width:128px;border:1px solid var(--pd-rule);border-radius:8px;padding:8px 9px;display:grid;gap:2px;align-content:start;background:#fff;min-height:118px;font-size:12.5px}
.cruisetools-pd .sc .dt{font-size:11.5px;color:var(--pd-muted)}
.cruisetools-pd .sc .pt{font-weight:700;color:var(--pd-head);font-size:14.5px;line-height:1.2}
.cruisetools-pd .sc .hr{font-variant-numeric:tabular-nums;color:var(--pd-ink)}
.cruisetools-pd .sc .cr{margin-top:4px;font-size:12px;color:var(--pd-head)}
.cruisetools-pd .sc .cr b{font-weight:700}
.cruisetools-pd .sc .rl{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--pd-muted)}
.cruisetools-pd .sc.on{border:2px solid var(--pd-accent);padding:7px 8px}
.cruisetools-pd .sc.gap{border-style:dashed;background:#fafbfc}
.cruisetools-pd .sc.gap .pt{font-weight:500;color:var(--pd-muted);font-size:13px}

/* cards and rows are whole tap targets: never underlined, whatever the host does to links */
.cruisetools-pd a.day,.cruisetools-pd a.chip,.cruisetools-pd a.row,.cruisetools-pd a.sc,.cruisetools-pd a.btn,.cruisetools-pd .more a,.cruisetools-pd .months a,.cruisetools-pd a.c{text-decoration:none;color:inherit}
.cruisetools-pd .list .top,.cruisetools-pd .list .lbar,.cruisetools-pd .list .nms{display:block}
.cruisetools-pd .list .top{display:flex}

/* ===== Production additions (the mockup drew several of these as <div>s) ===== */
.cruisetools-pd{max-width:760px}
.cruisetools-pd .modes{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--pd-accent);border-radius:8px;overflow:hidden;margin-top:14px}
.cruisetools-pd .modes a{min-height:44px;display:grid;place-items:center;font-size:14px;font-weight:500;color:var(--pd-accent);text-decoration:none}
.cruisetools-pd .modes a.on{background:var(--pd-accent);color:#fff}
.cruisetools-pd .seg2 a{min-height:44px;display:grid;place-items:center;font-size:14px;font-weight:500;color:var(--pd-accent);text-decoration:none}
.cruisetools-pd .seg2 a.on{background:var(--pd-accent);color:#fff}
.cruisetools-pd .months .np{flex:none;min-height:44px;display:inline-flex;align-items:center;gap:5px;padding:0 12px;border:1px dashed #b6c0ca;border-radius:19px;font-size:13px;color:var(--pd-muted);background:repeating-linear-gradient(135deg,#fff 0 5px,#f1f3f5 5px 10px)}
.cruisetools-pd .months .np i{font-style:normal;font-size:12px}
.cruisetools-pd select.inp,.cruisetools-pd input.inp{width:100%;font:inherit;font-size:14.5px;background:#fff;color:#222}
.cruisetools-pd button.btn{border:0;cursor:pointer;width:100%;font:inherit;font-weight:500}
.cruisetools-pd .pick{grid-template-columns:1fr;align-items:end}
.cruisetools-pd .picker-fold{margin-top:12px}
.cruisetools-pd .picker-fold>summary{list-style:none;cursor:pointer;margin-top:0}
.cruisetools-pd .picker-fold>summary::-webkit-details-marker{display:none}
.cruisetools-pd .summary .chg{font-weight:500;color:var(--pd-accent);white-space:nowrap}
.cruisetools-pd .picker-fold .pick{margin-top:10px}
.cruisetools-pd .day .lv u{display:block}
.cruisetools-pd .day.stale,.cruisetools-pd .cal .c.stale{box-shadow:inset 0 -3px 0 var(--pd-amber-rule)}
.cruisetools-pd .cal .c.l5{background:color-mix(in srgb,var(--pd-accent) 78%,#000);color:#fff}
.cruisetools-pd .cal .c.l4 b,.cruisetools-pd .cal .c.l4 .k,.cruisetools-pd .cal .c.l5 b,.cruisetools-pd .cal .c.l5 .k{color:#fff}
.cruisetools-pd .cal .c.nd .k{font-weight:400}
.cruisetools-pd .legend i.l0{background:#f6f8fa;border:1px solid #e0e4e8}
.cruisetools-pd .legend i.l1{background:color-mix(in srgb,var(--pd-accent) 12%,#fff)}
.cruisetools-pd .legend i.l2{background:color-mix(in srgb,var(--pd-accent) 30%,#fff)}
.cruisetools-pd .legend i.l3{background:color-mix(in srgb,var(--pd-accent) 55%,#fff)}
.cruisetools-pd .legend i.l4{background:var(--pd-accent)}
.cruisetools-pd .legend i.l5{background:color-mix(in srgb,var(--pd-accent) 78%,#000)}
.cruisetools-pd .legend i.nd{background:repeating-linear-gradient(135deg,#fff 0 4px,#e6e9ec 4px 8px);border:1px dashed #b6c0ca}
.cruisetools-pd .mh2{display:flex;justify-content:space-between;align-items:baseline}
.cruisetools-pd .mh2 .muted{font-weight:400}
.cruisetools-pd .sc .pt .sp{font-weight:400;font-size:12px;color:var(--pd-muted)}
.cruisetools-pd ul.plain{margin:4px 0 0;padding-left:18px;font-size:14px}
.cruisetools-pd ul.plain li.cx{text-decoration:line-through;color:var(--pd-muted)}
.cruisetools-pd .slot .slot-h{margin:6px 0 4px}
.cruisetools-pd .slot .slot-t{margin:4px 0 0}
.cruisetools-pd .note small{display:block;margin-top:2px;color:var(--pd-muted)}
.cruisetools-pd .sent.portmode{margin:12px 0 0;font-size:14.5px}
.cruisetools-pd .kick.chipsk{margin-top:12px;display:block}
.cruisetools-pd h2.region{margin:22px 0 6px;font-size:18px}
.cruisetools-pd ul.index{margin:0;padding-left:0;list-style:none}
.cruisetools-pd ul.index>li{padding:8px 0;border-top:1px solid var(--pd-rule)}
.cruisetools-pd ul.index ul{margin:4px 0 0;padding-left:18px;font-size:14px}
.cruisetools-pd .list.facilities .row{grid-template-columns:1fr}
.cruisetools-pd .list.facilities .d{display:none}
.cruisetools-pd .es .btn{margin-right:8px}
.cruisetools-pd [data-state="no_data"].day{pointer-events:auto}
@media (min-width:720px){
  .cruisetools-pd h1{font-size:30px}
  .cruisetools-pd .pick{grid-template-columns:1.3fr 1fr auto}
  .cruisetools-pd button.btn{width:auto;padding:0 22px;margin-top:0}
}

/* Tap-target floor (Prism MUST 2026-10-09): a host template's form/link rules must never shrink a control below
   44px. Plain descendant selectors under body (a page optimiser's critical-CSS extraction drops :not(#id) hacks) plus !important so no template stylesheet can win. */
body .cruisetools-pd select,
body .cruisetools-pd input:not([type=hidden]),
body .cruisetools-pd button,
body .cruisetools-pd summary,
body .cruisetools-pd .chip,
body .cruisetools-pd .seg2 a,
body .cruisetools-pd .months a,
body .cruisetools-pd .months .np,
body .cruisetools-pd .modes a,
body .cruisetools-pd a.btn{min-height:44px!important;box-sizing:border-box!important}
body .cruisetools-pd select,
body .cruisetools-pd input:not([type=hidden]),
body .cruisetools-pd button{height:auto!important;padding-top:10px!important;padding-bottom:10px!important}

/* a past day we hold nothing for: muted, not hatched and not "?" (it is over, not missing) */
.cruisetools-pd .cal .c.nd.past,.cruisetools-pd .day.nd.past{background:#fff;border-style:solid;border-color:var(--pd-rule);opacity:.55}
.cruisetools-pd .day.nd.past .n{font-weight:400}
.cruisetools-pd .legend i.st{background:#fff;border:1px solid var(--pd-rule);box-shadow:inset 0 -3px 0 var(--pd-amber-rule)}

/* The timeline has two drawings: the phone picture, and a wide one with a name column (Prism's Part 8). Never the
   phone picture scaled up, which put 24px labels on a 1280px page. */
.cruisetools-pd .tl-desk{display:none}
@media (min-width:720px){
  .cruisetools-pd .tl-phone{display:none}
  .cruisetools-pd .tl-desk{display:block}
}
.cruisetools-pd .cal{align-items:stretch}
.cruisetools-pd .cal .c{box-sizing:border-box;margin:0}

/* the schedule disclaimer: quiet, directly under the heading */
.cruisetools-pd .disc{font-size:12.5px;line-height:1.4;color:var(--pd-muted);margin:6px 0 0}
/* the "Unconfirmed" chip: a small text chip, the same family as the other tags */
.cruisetools-pd .t.unc,.cruisetools-pd .sc .unc,.cruisetools-pd .nms .unc{display:inline-block;border:1px solid #c27a12;color:#8a5300;border-radius:10px;padding:0 7px;font-size:11.5px;line-height:18px;background:#fff;white-space:nowrap}
.cruisetools-pd .sc .unc{margin-top:3px;align-self:start;justify-self:start}
.cruisetools-pd .vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ===== 2.2.0: the hub, month and day pages (revision 1). Scoped under .cruisetools-pp (also .cruisetools-pd). ===== */
.cruisetools-pp h2{font-size:20px;line-height:1.2;margin:24px 0 8px;color:var(--pd-head)}
.cruisetools-pp h3{margin:18px 0 6px}
.cruisetools-pp .pp-crumb{margin:0 0 6px}
.cruisetools-pp .pp-crumb ol{display:flex;flex-wrap:wrap;gap:2px 8px;list-style:none;margin:0;padding:0;font-size:14px;color:var(--pd-muted)}
.cruisetools-pp .pp-crumb li{display:inline-flex;align-items:center;min-height:32px}
.cruisetools-pp .pp-crumb li+li:before{content:"/";margin-right:8px;color:#9aa5b1}
.cruisetools-pp .pp-crumb a{display:inline-flex;align-items:center;min-height:32px}
.cruisetools-pp .pp-summary{margin:10px 0 0;font-size:16px;line-height:1.5;color:var(--pd-ink)}
.cruisetools-pp .pp-countline{margin:0 0 6px;font-size:14px;color:var(--pd-muted)}

/* rows: the date is the link, then the ship names, then the count and the guests */
.cruisetools-pp .pp-list{list-style:none;margin:0;padding:0}
.cruisetools-pp .pp-row{display:grid;grid-template-columns:minmax(96px,auto) 1fr;gap:2px 12px;align-items:center;padding:10px 0;border-top:1px solid var(--pd-rule);min-height:44px}
.cruisetools-pp .pp-date{font-weight:700;color:var(--pd-head);display:inline-flex;align-items:center;min-height:44px}
.cruisetools-pp a.pp-date{color:var(--pd-accent)}
.cruisetools-pp .pp-names{font-size:14.5px;color:var(--pd-ink)}
.cruisetools-pp .pp-meta{grid-column:2;display:flex;flex-wrap:wrap;gap:2px 12px;font-size:13px;color:var(--pd-muted)}
.cruisetools-pp .pp-count{font-weight:500;color:var(--pd-head)}

/* the 12-month grid: 3 columns on a phone, 4 from tablet; a month with calls is a link, any other is plain text */
.cruisetools-pp .pp-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.cruisetools-pp .pp-cell{border:1px solid var(--pd-rule);border-radius:8px;background:#fff;min-height:56px;display:flex}
.cruisetools-pp .pp-cell a,.cruisetools-pp .pp-cell>span{flex:1;display:flex;flex-direction:column;justify-content:center;padding:6px 10px;min-height:44px}
.cruisetools-pp .pp-cell-m{font-weight:700;color:var(--pd-head)}
.cruisetools-pp .pp-cell-n{font-size:12px;color:var(--pd-muted)}
.cruisetools-pp .pp-cell-link{border-color:#cdd8e4}
.cruisetools-pp .pp-cell-plain .pp-cell-m{color:var(--pd-muted);font-weight:500}
.cruisetools-pp .pp-cell-ahead{border-style:dashed;background:repeating-linear-gradient(135deg,#fff 0 6px,#f1f3f5 6px 12px)}
.cruisetools-pp .pp-cell-ahead .pp-cell-m{color:var(--pd-muted);font-weight:400}
@media (min-width:600px){.cruisetools-pp .pp-grid{grid-template-columns:repeat(4,1fr)}}

/* previous and next month, neighbouring days, links up: big tap targets */
.cruisetools-pp .pp-pager{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:14px 0}
.cruisetools-pp .pp-pager a,.cruisetools-pp .pp-nearby a,.cruisetools-pp .pp-up a{display:inline-flex;align-items:center;min-height:44px}
.cruisetools-pp .pp-ends{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font-size:13px;color:var(--pd-muted);border:1px dashed #aab5c0;border-radius:6px;background:repeating-linear-gradient(135deg,#fff 0 6px,#f5f6f8 6px 12px)}
.cruisetools-pp .pp-nearby ul{list-style:none;margin:0;padding:0}
.cruisetools-pp .pp-nearby li{border-top:1px solid var(--pd-rule)}

/* the day answer and the ship table */
.cruisetools-pp .pp-answer .ans{margin-top:0}
.cruisetools-pp .pp-tablewrap{overflow-x:auto}
.cruisetools-pp .pp-table{width:100%;border-collapse:collapse;font-size:14px}
.cruisetools-pp .pp-table th,.cruisetools-pp .pp-table td{text-align:left;vertical-align:top;padding:8px 6px;border-top:1px solid var(--pd-rule)}
.cruisetools-pp .pp-table thead th{border-top:0;font-size:12px;font-weight:700;color:var(--pd-muted);letter-spacing:.02em}
.cruisetools-pp .pp-table tbody th{font-weight:700;color:var(--pd-head)}
.cruisetools-pp .pp-table .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px;font-weight:400}
.cruisetools-pp .pp-table td{font-variant-numeric:tabular-nums}
.cruisetools-pp .pp-table tr.cx th .nm,.cruisetools-pp .pp-table tr.cx td{text-decoration:line-through;color:var(--pd-muted)}
@media (max-width:480px){.cruisetools-pp .pp-table{font-size:13px}.cruisetools-pp .pp-table th,.cruisetools-pp .pp-table td{padding:8px 4px}}
.cruisetools-pp .pp-window p{margin:0;font-size:15px;line-height:1.5}

/* "Expected": a calm chip, one accent colour, not a warning */
.cruisetools-pd .t.unc,.cruisetools-pd .sc .unc,.cruisetools-pd .nms .unc{border-color:#9fb6cc;color:#2c4a63;background:#f4f7fa}

/* slots, and the one About This Schedule block */
.cruisetools-pp .pp-slot{margin:18px 0}
.cruisetools-pp .pp-desc{margin:0 0 8px;font-size:15px;line-height:1.55}
.cruisetools-pp .pp-more summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;color:var(--pd-accent)}
.cruisetools-pp .pp-more p{margin:0 0 8px;font-size:15px;line-height:1.55}
.cruisetools-pp .pp-related-g{margin:12px 0 2px;font-size:13px;color:var(--pd-muted)}
.cruisetools-pp .pp-related-l{list-style:none;margin:0;padding:0}
.cruisetools-pp .pp-related-l li{border-top:1px solid var(--pd-rule)}
.cruisetools-pp .pp-related-l a{display:flex;align-items:center;min-height:44px}
.cruisetools-pp .pp-good .facts .t{line-height:1.35;padding:5px 8px;max-width:100%;overflow-wrap:anywhere}
/* 2.5.0: typical weather, one narrow table (month, high, low; 2.5.3 adds rain inches and rain days, up to five columns): twelve short rows. The table wraps its own headers; if a narrow phone ever cannot fit it, the wrapper scrolls, never the page. */
.cruisetools-pp .pp-weather-wrap{max-width:24rem;overflow-x:auto}
.cruisetools-pp .pp-weather-t{width:100%;max-width:24rem;border-collapse:collapse;table-layout:fixed}
.cruisetools-pp .pp-weather-t th:first-child{width:30%}
.cruisetools-pp .pp-weather-t th{overflow-wrap:anywhere}
.cruisetools-pp .pp-weather-t th,.cruisetools-pp .pp-weather-t td{text-align:left;padding:6px 8px;border-top:1px solid var(--pd-rule);font-variant-numeric:tabular-nums}
.cruisetools-pp .pp-weather-t thead th{border-top:0;font-weight:700;color:var(--pd-muted)}
.cruisetools-pp .pp-weather-t tbody th{font-weight:700;color:var(--pd-head)}
.cruisetools-pp .pp-weather-credit{margin:8px 0 0}
/* 2.5.0: a ship or port name that is a link keeps the table's look */
.cruisetools-pd .nm a,.cruisetools-pd .list .row .top a{color:inherit;text-decoration:underline;text-decoration-color:var(--pd-rule);text-underline-offset:2px}
.cruisetools-pd .list .row .top a{display:inline-block;padding:4px 0}
.cruisetools-pp .pp-season p{margin:0;font-size:15px;line-height:1.55}
.cruisetools-pp .pp-about{margin-top:28px;padding:14px;border:1px solid var(--pd-rule);border-radius:10px;background:var(--pd-soft)}
.cruisetools-pp .pp-about h2{font-size:17px;margin:0 0 8px}
.cruisetools-pp .pp-about p{margin:0 0 8px;font-size:13.5px;line-height:1.5}
.cruisetools-pp .pp-about p:last-child{margin-bottom:0}
body .cruisetools-pp .pp-cell a,body .cruisetools-pp .pp-date{min-height:44px!important;box-sizing:border-box!important}

/* ===== 2.2.3: hub, month and day pages in the old Port Day look (cards, week strip, answer card, buttons) ===== */
/* One font (the site's: nothing here sets a family) and three sizes: body, H2 and small. H1 shares the H2 size. */
.cruisetools-pp[data-port-page]{--pp-body:16px;--pp-h2:22px;--pp-small:13.5px;font-family:inherit;font-size:var(--pp-body);line-height:1.5}
body .cruisetools-pp[data-port-page] *:not(.tl *){font-size:var(--pp-body)!important;font-family:inherit!important;letter-spacing:normal!important}
body .cruisetools-pp[data-port-page] :is(h1,h2,.pp-card .big){font-size:var(--pp-h2)!important;line-height:1.25}
body .cruisetools-pp[data-port-page] :is(.pp-crumb *,.kick,.sm,.muted,.t,.chip,.day,.day *,.pp-cell-n,.pp-about *,.disc,.note small,.src,.facts *,.pp-card .sub .t,.pp-slot .disc,.slot .disc,.pp-countline,.pp-table thead th,.pp-table td[data-label]:before,.caveat,.caveat *,.partial,.load span,.pp-ends,.pp-table .tags *,.pp-guests,.pp-events li small){font-size:var(--pp-small)!important}
body .cruisetools-pp[data-port-page] :is(.day b){font-size:var(--pp-body)!important}
body .cruisetools-pp[data-port-page] :is(.load b){font-size:var(--pp-h2)!important}
body .cruisetools-pp[data-port-page] section.pp-about>h2{font-size:var(--pp-h2)!important;margin-bottom:8px}
.cruisetools-pp[data-port-page] .kick{text-transform:none;font-weight:600}
.cruisetools-pp[data-port-page] .pp-summary{margin:10px 0 0;color:var(--pd-ink)}

/* the by-port / by-ship toggle */
.cruisetools-pp[data-port-page] .modes{margin-top:18px}

/* the week strip: seven days, today outlined, a bar for how busy */
.cruisetools-pp .pp-week{margin-top:8px}
.cruisetools-pp .pp-week .day{min-height:68px;padding:6px 2px 10px;gap:1px;text-align:center;line-height:1.2}
.cruisetools-pp .pp-week .day.on{padding:5px 1px 9px}
.cruisetools-pp .pp-week .day .n{font-weight:600;color:var(--pd-head)}
.cruisetools-pp .pp-week .day.none{background:#fafbfc}
.cruisetools-pp .pp-week .day.none b{color:var(--pd-muted);font-weight:500}
.cruisetools-pp .pp-week a.day{color:inherit;text-decoration:none}
.cruisetools-pp .pp-week .day .lv{bottom:5px}

/* the next days: one answer card per day, a button into the day */
.cruisetools-pp .pp-cards{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:12px}
.cruisetools-pp .pp-card{margin:0;display:flex;flex-direction:column;align-items:stretch;padding:14px 16px 14px}
.cruisetools-pp .pp-card .big{margin:4px 0 0;font-weight:700;overflow-wrap:anywhere}
.cruisetools-pp .pp-card .sub{margin:6px 0 0;color:var(--pd-muted)}
.cruisetools-pp .pp-card .sub .t.unc{margin-left:6px;vertical-align:1px}
.cruisetools-pp .pp-card .btn{margin-top:auto;align-self:stretch}
.cruisetools-pp .pp-card .sub{margin-bottom:14px}
@media (min-width:640px){
  .cruisetools-pp .pp-cards{grid-template-columns:1fr 1fr}
  .cruisetools-pp .pp-card .btn{align-self:flex-start;padding:0 22px}
}

/* the twelve months: tiles, not a table */
.cruisetools-pp .pp-grid{gap:8px}
.cruisetools-pp .pp-cell{border-radius:10px;min-height:68px}
.cruisetools-pp .pp-cell a,.cruisetools-pp .pp-cell>span{padding:8px 12px;color:var(--pd-head);text-decoration:none}
.cruisetools-pp .pp-cell-link{background:color-mix(in srgb,var(--pd-accent) 7%,#fff);border-color:color-mix(in srgb,var(--pd-accent) 45%,#fff)}
.cruisetools-pp .pp-cell-link a:hover{background:color-mix(in srgb,var(--pd-accent) 10%,#fff);border-radius:9px}
.cruisetools-pp .pp-cell-link .pp-cell-m{color:var(--pd-accent)}
.cruisetools-pp .pp-cell-plain{background:#fafbfc}

/* ===== month page: the days as cards ===== */
.cruisetools-pp .pp-countline{margin:0 0 4px;color:var(--pd-muted)}
.cruisetools-pp .pp-card .sub .pp-guests{color:var(--pd-muted)}
.cruisetools-pp .pp-card .sub .pp-guests:before{content:"\B7";margin:0 6px 0 2px}
.cruisetools-pp .pp-card:not(:has(.btn)) .sub{margin-bottom:0}
.cruisetools-pp[data-port-page="month"] .caveat{margin-top:14px}

/* previous and next month, and the end-of-schedule line */
.cruisetools-pp .pp-pager{margin:18px 0 0;align-items:center}
.cruisetools-pp .pp-pager a,.cruisetools-pp .pp-up a,.cruisetools-pp .pp-nearby a{justify-content:center;padding:0 18px;border:1px solid var(--pd-accent);border-radius:8px;background:#fff;color:var(--pd-accent);text-decoration:none;box-sizing:border-box}
.cruisetools-pp .pp-pager a:hover,.cruisetools-pp .pp-up a:hover,.cruisetools-pp .pp-nearby a:hover{background:color-mix(in srgb,var(--pd-accent) 7%,#fff)}
.cruisetools-pp .pp-pager .pp-next,.cruisetools-pp .pp-pager .pp-ends{margin-left:auto}
.cruisetools-pp .pp-ends{border-radius:8px}
.cruisetools-pp .pp-up{margin:22px 0 0}

/* season and events: a quiet card */
.cruisetools-pp .pp-season p,.cruisetools-pp .pp-events{margin:0;padding:12px 14px;border:1px solid var(--pd-rule);border-radius:10px;background:var(--pd-soft)}
.cruisetools-pp .pp-events{list-style:none}
.cruisetools-pp .pp-events li+li{margin-top:6px}

/* ===== day page: the big answer card ===== */
.cruisetools-pp .pp-answercard{margin:0;padding:14px 16px}
.cruisetools-pp .pp-answercard .big{margin:4px 0 0;font-weight:700}
.cruisetools-pp .pp-answercard .sub{margin:6px 0 0}
.cruisetools-pp .pp-answercard .load{margin-top:12px}
.cruisetools-pp .pp-answercard .load b{font-weight:700;color:var(--pd-head)}
.cruisetools-pp .pp-answer{margin-top:16px}

/* the ship table: a card on desktop (real table), one card per ship on phones */
.cruisetools-pp .pp-tablewrap{border:1px solid var(--pd-rule);border-radius:10px;background:#fff;overflow:hidden}
.cruisetools-pp .pp-table thead th{padding:10px 14px;background:var(--pd-soft);color:var(--pd-muted);font-weight:600}
.cruisetools-pp .pp-table th,.cruisetools-pp .pp-table td{padding:12px 14px}
.cruisetools-pp .pp-table tbody th .nm{display:block}
@media (max-width:639px){
  .cruisetools-pp .pp-tablewrap{border:0;background:transparent;border-radius:0;overflow:visible}
  .cruisetools-pp .pp-table,.cruisetools-pp .pp-table tbody{display:block}
  .cruisetools-pp .pp-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .cruisetools-pp .pp-table tbody{display:grid;gap:12px}
  .cruisetools-pp .pp-table tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:14px 16px;border:1px solid var(--pd-rule);border-radius:10px;background:#fff}
  .cruisetools-pp .pp-table th,.cruisetools-pp .pp-table td{display:block;padding:0;border:0}
  .cruisetools-pp .pp-table tbody th,.cruisetools-pp .pp-table td.pp-line{grid-column:1/-1}
  .cruisetools-pp .pp-table td[data-label]:before{content:attr(data-label);display:block;color:var(--pd-muted)}
  .cruisetools-pp .pp-table td.pp-untimed{grid-column:1/-1;color:var(--pd-muted)}
  .cruisetools-pp .pp-table td.pp-line{color:var(--pd-muted)}
  .cruisetools-pp .pp-table td.pp-line:before{display:none}
  .cruisetools-pp .pp-table td:last-child[data-label]{grid-column:1/-1}
}

/* Your Window, and the nearby days as buttons */
.cruisetools-pp .pp-window p{margin:0;padding:12px 16px;border:1.5px solid var(--pd-accent);border-radius:10px;background:color-mix(in srgb,var(--pd-accent) 5%,#fff);font-size:inherit}
.cruisetools-pp .pp-nearby ul{display:flex;flex-wrap:wrap;gap:8px}
.cruisetools-pp .pp-nearby li{border-top:0}
.cruisetools-pp .pp-nearby{margin-top:22px}

/* cruise line mark (2.5.2): scales with the text; the width/height attributes are the no-CSS fallback */
.ct-line-icon{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.2em;margin-right:.4em;flex:none}
/* the port-page font reset above forces every element to the body size; the icon must size from its own text instead */
body .cruisetools-pp[data-port-page] img.ct-line-icon{font-size:inherit!important}
