  :root{
    --bg:#FBF9F4; --card:#FFFFFF; --ink:#1F2A33; --ink-muted:#616B73;
    --cobalt:#1B5A8C; --terracotta:#B5562A; --olive:#74804F; --hairline:#E4DFD3;
    --a:#B5562A; --b:#1B5A8C;
    --c-beach:#2A78D6; --c-city:#4A3AA7; --c-hist:#EB6834; --c-food:#1BAF7A; --c-travel:#8C8A83;
    --serif:'Instrument Serif', Georgia, 'Times New Roman', serif;
    --sans:'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
    --mono:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;}
  .wrap{max-width:800px;margin:0 auto;padding:0 24px 120px;}
  a{color:var(--cobalt);}

  .topnav{position:sticky;top:0;background:rgba(251,249,244,0.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--hairline);z-index:20;}
  .topnav-inner{max-width:800px;margin:0 auto;padding:13px 24px;display:flex;gap:20px;overflow-x:auto;
    scrollbar-width:none;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;}
  .topnav-inner::-webkit-scrollbar{display:none;}
  .topnav a{color:var(--ink-muted);text-decoration:none;white-space:nowrap;}
  .topnav a:hover{color:var(--terracotta);}

  .hero{padding:56px 0 40px;border-bottom:1px solid var(--hairline);margin-bottom:52px;}
  .kicker{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--terracotta);text-transform:uppercase;margin:0 0 14px;}
  .hero h1{font-family:var(--serif);font-style:italic;font-weight:400;font-size:60px;line-height:1;margin:0 0 20px;}
  .hero .lede{font-size:17px;line-height:1.6;color:var(--ink);max-width:60ch;margin:0;}
  .hero .lede + .lede{margin-top:12px;}
  .herofacts{list-style:none;padding:0;margin:22px 0 0;max-width:52ch;}
  .herofacts li{padding:9px 0;border-top:1px solid var(--hairline);font-size:16px;line-height:1.45;}
  .herofacts li:last-child{border-bottom:1px solid var(--hairline);}
  .herofacts b{font-weight:600;}
  .herofacts .u{color:var(--terracotta);}

  .card{background:var(--card);border:1px solid var(--hairline);border-radius:12px;}
  h2.section{font-family:var(--serif);font-style:italic;font-weight:400;font-size:34px;margin:0 0 8px;scroll-margin-top:66px;}
  .qnum{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--terracotta);text-transform:uppercase;margin:0 0 6px;}
  p.section-intro{font-size:15.5px;color:var(--ink-muted);max-width:62ch;margin:0 0 28px;line-height:1.6;}
  section{margin-bottom:66px;}
  h3.sub{font-family:var(--serif);font-style:italic;font-weight:400;font-size:24px;margin:36px 0 12px;}

  /* Option pair */
  .pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .opt{padding:20px 22px;border-top:3px solid var(--hairline);}
  .opt.a{border-top-color:var(--a);}
  .opt.b{border-top-color:var(--b);}
  .opt .tag{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;}
  .opt.a .tag{color:var(--a);}
  .opt.b .tag{color:var(--b);}
  .opt h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:25px;margin:0 0 10px;line-height:1.15;}
  .opt p{font-size:14.5px;line-height:1.6;margin:0;}
  .opt p + p{margin-top:9px;}
  .opt ul{margin:10px 0 0;padding-left:18px;font-size:14px;line-height:1.65;}
  .opt li{margin-bottom:4px;}
  .plus{color:var(--olive);font-weight:600;}
  .minus{color:var(--terracotta);font-weight:600;}

  /* Flights */
  .flighttable{padding:6px 22px 14px;}
  .frow{padding:14px 0;border-bottom:1px dashed var(--hairline);}
  .frow:last-child{border-bottom:none;}
  .frow .fhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:5px;}
  .frow .fname{font-family:var(--serif);font-size:20px;}
  .frow .fprice{font-family:var(--mono);font-size:13px;color:var(--cobalt);white-space:nowrap;}
  .frow .fdet{font-family:var(--mono);font-size:12px;color:var(--ink-muted);line-height:1.7;}
  .badge{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
    padding:2px 7px;border-radius:4px;color:#fff;background:var(--a);margin-left:2px;vertical-align:2px;}
  .badge.b{background:var(--b);}
  .badge.grey{background:var(--ink-muted);}

  /* Big number comparison */
  .scoregrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:12px;overflow:hidden;}
  .scorehead{background:#F5F2EA;padding:11px 16px;font-family:var(--mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-muted);}
  .scorecell{background:var(--card);padding:16px;}
  .scorecell .v{font-family:var(--serif);font-size:32px;line-height:1.1;}
  .scorecell.a .v{color:var(--a);}
  .scorecell.b .v{color:var(--b);}
  .scorecell .k{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--ink-muted);text-transform:uppercase;margin-top:4px;}
  .scorelabel{background:#FAF8F2;padding:9px 16px;grid-column:1 / -1;font-family:var(--mono);font-size:10.5px;
    letter-spacing:.07em;text-transform:uppercase;color:var(--ink-muted);}

  /* Charts */
  .chartcard{padding:22px;}
  .legend{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:16px;font-size:12px;color:var(--ink-muted);}
  .legend span{display:flex;align-items:center;gap:5px;}
  .swatch{width:10px;height:10px;border-radius:2px;display:inline-block;flex:none;}
  .bar-row{display:grid;grid-template-columns:158px 1fr;gap:12px;align-items:center;margin-bottom:8px;}
  .bar-label{font-family:var(--mono);font-size:11px;color:var(--ink-muted);text-align:right;line-height:1.3;}
  .bar-wrap{display:flex;align-items:center;gap:9px;}
  .bar-single{height:20px;border-radius:4px;background:var(--c-beach);min-width:2px;}
  .bar-val{font-family:var(--mono);font-size:11px;color:var(--ink-muted);white-space:nowrap;}
  .axis{font-family:var(--mono);font-size:10px;color:var(--ink-muted);margin-top:14px;text-align:right;}
  .charttitle{font-family:var(--mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 14px;}
  .charttitle.a{color:var(--a);}
  .charttitle.b{color:var(--b);}

  /* Stacked day-composition bars */
  .stackrow{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;margin-bottom:9px;}
  .stack{display:flex;height:22px;border-radius:4px;overflow:hidden;background:var(--hairline);}
  .stack span{height:100%;display:block;min-width:0;}
  .sb{background:var(--c-beach);} .sc{background:var(--c-city);} .sh{background:var(--c-hist);}
  .sf{background:var(--c-food);} .st{background:var(--c-travel);}
  .stacktotal{margin-top:20px;padding-top:18px;border-top:1px solid var(--hairline);}

  /* Tables */
  table.cmp{width:100%;border-collapse:collapse;font-size:14px;background:var(--card);border:1px solid var(--hairline);border-radius:12px;overflow:hidden;}
  table.cmp th, table.cmp td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--hairline);vertical-align:top;}
  table.cmp th{font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);background:#F5F2EA;}
  table.cmp th.a{color:var(--a);}
  table.cmp th.b{color:var(--b);}
  table.cmp tr:last-child td{border-bottom:none;}
  table.cmp td:first-child{font-weight:500;color:var(--ink-muted);}
  table.cmp td.hl{color:var(--cobalt);font-weight:600;}
  .tablescroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}

  /* Day strips */
  .strip{padding:4px 20px 12px;}
  .striprow{display:grid;grid-template-columns:64px 1fr;gap:14px;padding:11px 0;border-bottom:1px dashed var(--hairline);align-items:baseline;}
  .striprow:last-child{border-bottom:none;}
  .stripday{font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);}
  .stripbody strong{font-weight:600;font-size:14.5px;}
  .stripbody span{display:block;font-size:13px;color:var(--ink-muted);margin-top:2px;line-height:1.5;}

  /* Photos */
  .photo{width:100%;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,#E4DFD3,#EFEAE0);
    margin:0 0 18px;border:1px solid var(--hairline);}
  .photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .photo.img-fallback{display:flex;align-items:center;justify-content:center;}
  .photo.img-fallback img{display:none;}
  .photo.img-fallback::after{content:attr(data-place);font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);}
  .photopair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;}
  .photopair .photo{margin:0;}

  /* Beach zones */
  .zones{display:flex;flex-direction:column;gap:13px;}
  .zone{padding:16px 20px;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;}
  .zone h4{font-weight:600;font-size:15px;margin:0 0 4px;}
  .zone p{font-size:14px;color:var(--ink-muted);margin:0;line-height:1.55;}
  .zone .avail{font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;text-align:right;white-space:nowrap;line-height:1.9;}
  .yes{color:var(--olive);} .no{color:var(--terracotta);} .maybe{color:var(--ink-muted);}

  /* Callout */
  .callout{padding:20px 24px;border-left:3px solid var(--terracotta);margin:24px 0;}
  .callout p{margin:0;font-size:15.5px;line-height:1.6;}
  .callout p + p{margin-top:10px;}
  .callout .ch{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--terracotta);margin-bottom:8px;}

  /* Verdict */
  .verdict{padding:26px 28px;border:2px solid var(--cobalt);border-radius:12px;background:var(--card);}
  .verdict h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:28px;margin:0 0 14px;}
  .verdict p{font-size:15.5px;line-height:1.65;margin:0;}
  .verdict p + p{margin-top:12px;}
  .ifthen{display:flex;flex-direction:column;gap:11px;margin-top:20px;}
  .ifrow{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:13px 16px;background:#FAF8F2;border-radius:8px;}
  .ifrow .pick{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#fff;
    padding:4px 9px;border-radius:4px;white-space:nowrap;}
  .ifrow .pick.a{background:var(--a);} .ifrow .pick.b{background:var(--b);}
  .ifrow p{margin:0;font-size:14.5px;line-height:1.5;}

  /* Notes / checklist */
  .notes{display:flex;flex-direction:column;gap:14px;}
  .note{padding:17px 21px;}
  .note h4{font-weight:600;font-size:15px;margin:0 0 6px;}
  .note p{font-size:14.5px;line-height:1.6;margin:0;}
  .note p + p{margin-top:8px;}
  .note.warn{border-left:3px solid var(--terracotta);}
  .check{display:flex;flex-direction:column;gap:10px;}
  .checkitem{padding:14px 18px;display:flex;gap:14px;align-items:flex-start;}
  .checkitem .when{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#fff;
    background:var(--terracotta);padding:3px 8px;border-radius:4px;white-space:nowrap;flex:none;margin-top:1px;}
  .checkitem .when.soon{background:var(--cobalt);}
  .checkitem .when.later{background:var(--olive);}
  .checkitem p{margin:0;font-size:14.5px;line-height:1.5;}

  /* Decisions */
  .dec{padding:0;overflow:hidden;border-left:3px solid var(--hairline);}
  .dec.isopen{border-left-color:var(--terracotta);}
  .dec.islocked{border-left-color:var(--olive);}
  .dechead{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;
    padding:17px 20px 15px;border-bottom:1px solid var(--hairline);}
  .decnum{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-muted);padding-top:4px;}
  .dechead h3{margin:0 0 4px;font-size:17px;font-weight:600;line-height:1.3;}
  .decwhy{margin:0;font-size:13.5px;color:var(--ink-muted);line-height:1.5;}
  .pill{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;
    padding:4px 9px;border-radius:20px;white-space:nowrap;}
  .pill.isopen{background:#F7E7DE;color:var(--terracotta);}
  .pill.islocked{background:#EBEFE1;color:var(--olive);}
  .opts{padding:4px 20px 15px;}
  .opt-row{display:grid;grid-template-columns:18px 1fr;gap:10px;padding:11px 0;
    border-bottom:1px dashed var(--hairline);}
  .opt-row:last-child{border-bottom:none;}
  .opt-row .mark{font-family:var(--mono);font-size:13px;color:var(--olive);line-height:1.5;}
  .opt-row strong{display:block;font-size:14.5px;font-weight:600;}
  .opt-row.rec strong{color:var(--cobalt);}
  .opt-row .d{display:block;font-size:13px;color:var(--ink-muted);line-height:1.55;margin-top:3px;}
  .opt-row .d strong{display:inline;font-size:inherit;color:var(--ink);}
  .opt-row .d label{color:var(--olive);cursor:pointer;text-decoration:underline;}
  /* Tick lists that carry their own marker don't want a bullet too */
  .opt ul.ticks{list-style:none;padding-left:0;}
  .opt ul.ticks li{margin-bottom:7px;padding-left:20px;text-indent:-20px;}
  .decask{padding:13px 20px;background:#FBFAF6;border-top:1px solid var(--hairline);
    font-family:var(--mono);font-size:11.5px;letter-spacing:.03em;color:var(--terracotta);line-height:1.6;}

  /* Who's going */
  .crew{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:9px;}
  .person{background:var(--card);border:1px solid var(--hairline);border-radius:12px;
    padding:15px 8px 12px;text-align:center;}
  .person svg{width:54px;height:54px;display:block;margin:0 auto 10px;}
  .person .nm{font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;color:var(--ink);}
  .person.tbd{border-style:dashed;background:transparent;}
  .person.tbd .nm{color:var(--ink-muted);}
  .person.tbd .rl{opacity:.8;}
  .person .pt{font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;text-transform:lowercase;
    color:#A79E8C;margin-top:5px;}
  .person .mb{font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--ink-muted);border:1px solid var(--hairline);border-radius:20px;padding:2px 7px;
    display:inline-block;margin-top:7px;}
  .person .rl{font-family:var(--serif);font-style:italic;font-size:12.5px;color:var(--ink-muted);margin-top:2px;line-height:1.25;}

  /* Gates and scoring */
  .gates{list-style:none;padding:0;margin:0;}
  .gates li{display:grid;grid-template-columns:26px 1fr;gap:10px;padding:12px 0;
    border-bottom:1px dashed var(--hairline);font-size:14.5px;line-height:1.55;}
  .gates li:last-child{border-bottom:none;}
  .gates .g{font-family:var(--mono);font-size:11px;color:var(--terracotta);padding-top:3px;}
  .gates strong{display:block;font-weight:600;}
  .gates .d{display:block;font-size:13px;color:var(--ink-muted);margin-top:3px;}
  .score{font-family:var(--mono);font-size:12px;font-weight:500;padding:3px 8px;border-radius:5px;
    background:var(--hairline);color:var(--ink);white-space:nowrap;}
  .score.book{background:#E6EDE2;color:#4C5B33;}
  .score.strong{background:#E4EDF4;color:var(--cobalt);}
  .score.back{background:#F5F1E6;color:#7A6A45;}
  .score.out{background:#F7E4DB;color:var(--terracotta);}
  .score.unk{background:var(--hairline);color:var(--ink-muted);}
  .empty{border:1px dashed var(--hairline);border-radius:10px;padding:34px 24px;text-align:center;
    font-family:var(--mono);font-size:12px;letter-spacing:.05em;color:var(--ink-muted);line-height:1.9;}
  .cand{padding:0;overflow:hidden;}
  .candhead{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;
    padding:17px 20px 15px;border-bottom:1px solid var(--hairline);}
  .candhead h3{margin:0 0 5px;font-size:18px;font-weight:600;line-height:1.3;}
  .candmeta{margin:0;font-family:var(--mono);font-size:11.5px;letter-spacing:.03em;
    color:var(--ink-muted);line-height:1.7;}
  .candmeta a{word-break:break-all;}

  /* Collapsible detail inside candidate cards — no JS, native <details> */
  details.more{border-top:1px solid var(--hairline);}
  details.more > summary{padding:11px 20px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;
    text-transform:uppercase;color:var(--ink-muted);cursor:pointer;list-style:none;background:#FBFAF6;}
  details.more > summary::-webkit-details-marker{display:none;}
  details.more > summary::after{content:" +";color:var(--cobalt);font-weight:600;}
  details.more[open] > summary::after{content:" −";}
  details.more > summary:hover{color:var(--cobalt);}
  details.more .morebody{padding:4px 20px 16px;}
  details.more .morebody p{font-size:13.5px;line-height:1.6;color:var(--ink-muted);margin:10px 0 0;}
  details.more .morebody p strong{color:var(--ink);}
  details.more .morebody blockquote{margin:10px 0 0;padding:9px 14px;border-left:2px solid var(--hairline);
    font-size:13px;line-height:1.6;color:var(--ink-muted);font-style:italic;}
  details.more .morebody ul{margin:8px 0 0;padding-left:20px;}
  details.more .morebody li{font-size:13.5px;line-height:1.65;color:var(--ink-muted);margin-bottom:5px;}
  details.more .morebody li strong{color:var(--ink);}
  .breakdown{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11px;margin-top:10px;}
  .breakdown td{padding:4px 0;border-bottom:1px solid var(--hairline);color:var(--ink-muted);}
  .breakdown td:last-child{text-align:right;color:var(--ink);white-space:nowrap;}
  .breakdown tr:last-child td{border-bottom:none;font-weight:600;color:var(--ink);}

  /* Simple / detailed view switch — radio + sibling selector, no JS */
  .view-radio{position:absolute;opacity:0;pointer-events:none;}
  #sv-simple:checked ~ .viewwrap .view-detail{display:none;}
  #sv-detail:checked ~ .viewwrap .view-simple{display:none;}
  .viewbar{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hairline);
    border:1px solid var(--hairline);border-radius:10px;overflow:hidden;margin:0 0 30px;}
  .viewbtn{background:var(--card);padding:12px 16px;text-align:center;cursor:pointer;
    font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);
    border-bottom:2px solid transparent;}
  .viewbtn strong{display:block;font-weight:600;font-size:12px;color:var(--ink);letter-spacing:.05em;}
  .viewbtn span{display:block;font-size:10px;margin-top:3px;text-transform:none;letter-spacing:0;}
  .viewbtn:hover{background:#FBFAF6;}
  #sv-simple:checked ~ .viewbar label[for="sv-simple"],
  #sv-detail:checked ~ .viewbar label[for="sv-detail"]{background:#EEF3F8;border-bottom-color:var(--cobalt);}
  #sv-simple:checked ~ .viewbar label[for="sv-simple"] strong,
  #sv-detail:checked ~ .viewbar label[for="sv-detail"] strong{color:var(--cobalt);}

  /* At-a-glance diff table — symbols in fixed columns so differences read down */
  table.diff{width:100%;border-collapse:collapse;background:var(--card);
    border:1px solid var(--hairline);border-radius:12px;overflow:hidden;min-width:660px;}
  table.diff th{font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;
    color:var(--ink-muted);background:#F5F2EA;padding:9px 8px;text-align:center;font-weight:500;
    border-bottom:1px solid var(--hairline);line-height:1.3;}
  table.diff th.lft{text-align:left;padding-left:14px;}
  table.diff td{padding:11px 8px;text-align:center;border-bottom:1px solid var(--hairline);
    font-family:var(--mono);font-size:12px;vertical-align:middle;}
  table.diff tr:last-child td{border-bottom:none;}
  table.diff td.lft{text-align:left;padding-left:14px;font-family:var(--sans);font-size:14px;font-weight:600;line-height:1.3;}
  table.diff td.lft small{display:block;font-family:var(--mono);font-size:10px;font-weight:400;
    color:var(--ink-muted);margin-top:2px;letter-spacing:.03em;}
  table.diff tr.ispick{background:#F4F8FB;}
  table.diff tr.isout{background:#FDFAF8;color:var(--ink-muted);}
  table.diff tr.isout td.lft{color:var(--ink-muted);}
  .dsc{font-family:var(--mono);font-size:15px;font-weight:500;display:inline-block;
    min-width:30px;padding:3px 0;border-radius:5px;}
  .dsc.hi{color:#fff;background:var(--cobalt);}
  .dsc.mid{color:#5E5233;background:#EFE8D6;}
  .dsc.lo{color:var(--terracotta);background:transparent;}
  .ok{color:var(--olive);font-weight:600;}
  .bad{color:var(--terracotta);font-weight:600;}
  .unk{color:var(--ink-muted);font-weight:600;}
  .diffnote{font-family:var(--mono);font-size:10.5px;color:var(--ink-muted);margin:10px 0 0;line-height:1.7;}
  .picktitle{font-family:var(--mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;
    color:var(--ink-muted);margin:0 0 12px;}
  .recbox{padding:22px 24px;border:2px solid var(--cobalt);border-radius:12px;background:var(--card);margin-bottom:20px;}
  .recbox .rtag{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--cobalt);margin:0 0 8px;}
  .recbox h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:26px;margin:0 0 6px;line-height:1.15;}
  .recbox .rmeta{font-family:var(--mono);font-size:11px;color:var(--ink-muted);margin:0 0 14px;letter-spacing:.03em;}
  .recbox ul{margin:0;padding-left:18px;}
  .recbox li{font-size:14.5px;line-height:1.6;margin-bottom:6px;}
  .recbox .rask{margin:14px 0 0;padding-top:13px;border-top:1px solid var(--hairline);
    font-family:var(--mono);font-size:11.5px;color:var(--terracotta);line-height:1.6;}

  .checkitem.done{opacity:.62;}
  .checkitem.done p strong{font-weight:500;}
  .checkitem .when.done{background:var(--olive);}
  .checkitem .when.nowpill{background:var(--terracotta);}
  .statusbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:1px;background:var(--hairline);
    border:1px solid var(--hairline);border-radius:12px;overflow:hidden;margin-bottom:22px;}
  .statuscell{background:var(--card);padding:14px 16px;}
  .statuscell .v{font-family:var(--serif);font-size:27px;line-height:1.1;}
  .statuscell .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--ink-muted);
    text-transform:uppercase;margin-top:5px;line-height:1.4;}
  .statuscell.ok .v{color:var(--olive);} .statuscell.open .v{color:var(--terracotta);}
  .statuscell.b .v{color:var(--b);}


  /* Linked candidate names */
  table.diff td.lft a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hairline);}
  table.diff td.lft a:hover{color:var(--cobalt);border-bottom-color:var(--cobalt);}
  table.diff tr.isout td.lft a{color:var(--ink-muted);}
  .candhead h3 a{color:inherit;text-decoration:none;border-bottom:1px solid var(--hairline);}
  .candhead h3 a:hover{color:var(--cobalt);border-bottom-color:var(--cobalt);}
  .candhead h3 a::after{content:"\2197";font-size:11px;color:var(--ink-muted);margin-left:4px;vertical-align:2px;}
  .recbox h3 a{color:inherit;text-decoration:none;border-bottom:1px solid var(--hairline);}
  .recbox h3 a:hover{color:var(--cobalt);}
  details.more .morebody a{color:var(--cobalt);}

  /* Tabs */
  .tab-radio{position:absolute;opacity:0;pointer-events:none;}
  .tab-panel{display:none;}
  #tab-puglia:checked ~ .puglia-panel{display:block;}
  #tab-stays:checked ~ .stays-panel{display:block;}
  #tab-week:checked ~ .week-panel{display:block;}
  #tab-naples:checked ~ .naples-panel{display:block;}

  .tab-bar{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:1px;background:var(--hairline);
    border:1px solid var(--hairline);border-radius:12px;overflow:hidden;margin-bottom:52px;}
  .tab-btn{display:block;padding:22px 20px;cursor:pointer;text-align:center;background:var(--card);
    border-bottom:3px solid transparent;transition:background .15s;}
  .tab-btn strong{display:block;font-family:var(--mono);font-size:13px;letter-spacing:.06em;
    text-transform:uppercase;color:var(--ink-muted);transition:color .15s;}
  .tab-btn .tab-sub{display:block;font-family:var(--mono);font-size:10.5px;color:var(--ink-muted);
    margin-top:4px;letter-spacing:.03em;}
  .tab-btn:hover{background:#F8F6F1;}

  #tab-puglia:checked ~ .tab-bar label[for="tab-puglia"]{background:#EFF4F8;border-bottom-color:var(--b);}
  #tab-puglia:checked ~ .tab-bar label[for="tab-puglia"] strong{color:var(--b);}
  #tab-stays:checked ~ .tab-bar label[for="tab-stays"]{background:#EFF4F8;border-bottom-color:var(--b);}
  #tab-stays:checked ~ .tab-bar label[for="tab-stays"] strong{color:var(--b);}
  #tab-week:checked ~ .tab-bar label[for="tab-week"]{background:#F2F4EA;border-bottom-color:var(--olive);}
  #tab-week:checked ~ .tab-bar label[for="tab-week"] strong{color:var(--olive);}
  #tab-naples:checked ~ .tab-bar label[for="tab-naples"]{background:#FDF5F0;border-bottom-color:var(--a);}
  #tab-naples:checked ~ .tab-bar label[for="tab-naples"] strong{color:var(--a);}

  .topnav label{color:var(--ink-muted);text-decoration:none;white-space:nowrap;cursor:pointer;}
  .topnav label:hover{color:var(--terracotta);}
  body:has(#tab-puglia:checked) .topnav label[for="tab-puglia"]{color:var(--b);}
  body:has(#tab-stays:checked) .topnav label[for="tab-stays"]{color:var(--b);}
  body:has(#tab-week:checked) .topnav label[for="tab-week"]{color:var(--olive);}
  body:has(#tab-naples:checked) .topnav label[for="tab-naples"]{color:var(--a);}

  footer{margin-top:80px;padding-top:26px;border-top:1px solid var(--hairline);font-family:var(--mono);
    font-size:11px;color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase;line-height:1.9;}

  @media (max-width:680px){
    .hero{padding:40px 0 32px;}
    .hero h1{font-size:40px;}
    h2.section{font-size:27px;}
    .pair, .photopair{grid-template-columns:1fr;}
    .tab-bar{grid-template-columns:1fr;}
    .tab-btn{padding:16px 18px;}
    .dechead{grid-template-columns:auto 1fr;}
    .dechead .pill{grid-column:2;justify-self:start;margin-top:2px;}
    .scoregrid{grid-template-columns:1fr;}
    .scorelabel{grid-column:1;}
    .bar-row{grid-template-columns:1fr;gap:4px;}
    .stackrow{grid-template-columns:1fr;gap:4px;}
    .bar-label{text-align:left;}
    .bar-label{text-align:left;}
    .zone{grid-template-columns:1fr;}
    .zone .avail{text-align:left;}
    table.cmp{font-size:12.5px;min-width:540px;}
    .striprow{grid-template-columns:56px 1fr;gap:10px;}
  }
  @media print{
    .topnav{display:none;}
    body{background:#fff;}
    .wrap{max-width:100%;padding:0;}
    section, .opt, .zone, .note, .checkitem, .verdict{page-break-inside:avoid;}
    .photo{max-height:180px;}
    a{color:inherit;text-decoration:none;}
    .tab-panel{display:block !important;}
    .tab-bar,.tab-radio{display:none;}
  }
