/* Rotterdam inner pages (athletes, nations, results): additions only, loaded after rotterdam.css
   through each page's head_extra block. Flat navy / orange / white, no gradients. */

/* athlete names: the family name is already FULL CAPS in the text, so the h1 must not re-case it */
.athlete-head h1.athlete-h{text-transform:none}
.athlete-card .a-name{text-transform:none}

/* continent filter (server-side links) */
.continent-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-block:0 1rem}
.continent-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .95rem;border-radius:999px;
  border:2px solid var(--rt-orange);background:transparent;color:#fff;font-weight:800;font-size:.8rem;
  letter-spacing:.05em;text-transform:uppercase;text-decoration:none}
.continent-tab .ct-n{font-weight:700;opacity:.85}
.continent-tab:hover,.continent-tab:focus-visible{background:rgba(255,99,21,.18)}
.continent-tab.is-on{background:var(--rt-orange);color:var(--rt-ink)}
.nation-card .n-athletes{display:block;font-size:.8rem;color:var(--text-muted);margin-top:.15rem}

/* athlete profile: sessions proved by the draw */
.draw-sessions{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;gap:.6rem}
.draw-sessions li{display:grid;grid-template-columns:minmax(10rem,14rem) 1fr auto;gap:.5rem 1rem;align-items:baseline;
  background:#fff;color:var(--rt-navy);border:1px solid var(--border-card);border-radius:12px;padding:.8rem 1rem}
.draw-sessions a{color:var(--accent-ink);font-weight:800}
.draw-sessions .ds-when{font-weight:800}
.draw-sessions small{font-weight:600;color:var(--text-muted)}
.draw-sessions .ds-note{font-size:.8rem;font-weight:700;color:var(--text-muted)}
@media (max-width:40rem){.draw-sessions li{grid-template-columns:1fr}}

/* results: by nation / by discipline switch, radio-driven, no JS */
.rs-radio{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.rs-tabs{display:flex;gap:.5rem;margin-block:0 1.25rem}
.rs-tabs label{cursor:pointer;padding:.55rem 1.1rem;border-radius:999px;border:2px solid var(--rt-orange);
  color:#fff;font-weight:800;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}
.rs-views:has(#rv-nation:checked) label[for="rv-nation"],
.rs-views:has(#rv-disc:checked) label[for="rv-disc"]{background:var(--rt-orange);color:var(--rt-ink)}
.rs-views:has(#rv-nation:focus-visible) label[for="rv-nation"],
.rs-views:has(#rv-disc:focus-visible) label[for="rv-disc"]{outline:3px solid #fff;outline-offset:2px}
.rs-views:has(#rv-disc:checked) .rv-nation{display:none}
.rs-views:not(:has(#rv-disc:checked)) .rv-disc{display:none}

/* ---- Athlete profile (.ap): two-column hero, photo = half the content width ---- */
.ap-hero{border:1px solid rgba(255,255,255,.25);display:grid;grid-template-columns:minmax(0,min(33.33%,22rem)) 1fr;background:var(--surface);color:var(--rt-navy);
  border-radius:1.5rem;overflow:hidden;box-shadow:0 24px 60px -28px rgba(0,7,53,.7);margin-block:.25rem 2rem}
.ap-photo{margin:0;position:relative;background:var(--rt-navy-2);min-block-size:27.5rem;min-inline-size:0}
.ap-photo img{position:absolute;inset:0;display:block;inline-size:100%;block-size:100%;object-fit:cover;object-position:50% 12%}
.ap-photo .photo-credit{position:absolute;inset-inline:0;inset-block-end:0;margin:0;padding:1.6rem .9rem .55rem;
  font-size:.7rem;color:#fff;background:linear-gradient(to top,rgba(0,7,53,.78),transparent)}
.ap-mono{position:absolute;inset:0;border-inline-end:1px solid rgba(255,255,255,.14);display:grid;place-content:center;justify-items:center;gap:1rem;background:var(--rt-navy);color:#fff;overflow:hidden}
.ap-mono-letters{position:relative;font-family:var(--display);font-weight:800;font-size:clamp(3.5rem,6vw,6rem);line-height:1;letter-spacing:-.04em;color:#fff}
.ap-mono-nation{display:inline-flex;align-items:center;gap:.6rem;font-weight:800;font-size:1rem;color:#fff;border-top:3px solid var(--rt-orange);padding-block-start:.8rem}
.ap-mono-nation img{block-size:1.4rem;inline-size:auto;border-radius:3px}
.ap-id{display:flex;flex-direction:column;justify-content:center;gap:.8rem;padding:clamp(1.1rem,2.2vw,2rem);min-inline-size:0}
.ap-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:0}
.ap-nation{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;font-size:1rem;color:var(--rt-navy);text-decoration:none}
.ap-nation:hover span{text-decoration:underline}
.ap-name{margin:0;display:flex;flex-direction:column;font-size:clamp(1.3rem,2.2vw,2rem);font-weight:500;line-height:1.05;color:var(--rt-navy);text-transform:none;overflow-wrap:anywhere}
.ap-first{font-weight:500;letter-spacing:0}
.ap-last{font-size:clamp(2rem,3.8vw,3.4rem);font-weight:800;letter-spacing:-.025em;line-height:.98;text-transform:uppercase}
.ap-disc{margin:0}
.ap-disc a{display:inline-block;background:var(--rt-orange);color:var(--rt-ink);font-weight:800;font-size:.85rem;padding:.4rem .95rem;border-radius:999px;text-decoration:none}
.ap-disc a:hover{background:var(--rt-navy);color:#fff}
.ap-rank{display:flex;gap:.75rem;flex-wrap:wrap}
.ap-rank p{margin:0;display:flex;flex-direction:column;gap:.15rem;background:var(--rt-navy);color:#fff;border-radius:1rem;padding:.55rem 1rem;min-inline-size:7rem}
.ap-rank b{font-family:var(--display);font-size:1.6rem;font-weight:800;line-height:1;color:var(--rt-orange);font-variant-numeric:tabular-nums}
.ap-rank span{font-size:.75rem;font-weight:600;color:rgba(255,255,255,.82)}
.ap-facts{margin:.25rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem}
.ap-facts>div{padding-block:.5rem;border-block-start:1px solid var(--border-card)}
.ap-facts-wide{grid-column:1/-1}
.ap-facts dt{font-size:.78rem;font-weight:600;color:var(--text-muted);margin:0 0 .2rem}
.ap-facts dd{margin:0;font-weight:700;font-size:1.05rem}
.ap-body{display:grid;gap:.25rem}
.ap-body .rail-h:first-child{margin-block-start:0}
.ap-empty{background:var(--surface);color:var(--rt-navy);border:0;border-radius:1rem;text-align:start;padding:1.5rem 1.75rem}
.ap-empty strong{display:block;font-size:1.1rem;margin-block-end:.25rem}
body:not(.theme-dark) .ap-empty{background:var(--surface);color:var(--rt-navy)}
@media (max-width:40rem){
  .ap-hero{grid-template-columns:minmax(0,42%) 1fr;border-radius:1.1rem}
  .ap-photo{min-block-size:13rem}
  .ap-id{padding:.9rem .9rem;gap:.55rem}
  .ap-last{font-size:clamp(1.5rem,7.5vw,2.2rem)}
  .ap-rank p{min-inline-size:0;padding:.4rem .7rem}
  .ap-rank b{font-size:1.3rem}
  .ap-facts{grid-template-columns:1fr}
  .ap-facts{margin-block-start:.25rem}
}
.ap-next{margin:0;background:#ffeee3;display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem;padding:.8rem 1rem;border-inline-start:4px solid var(--rt-orange);border-radius:.5rem}
.ap-next span{font-weight:600;color:var(--text-muted);font-size:.85rem}
.ap-next b{font-size:1.1rem}
.ap-next small{color:var(--text-soft);font-weight:600}
.ap-body .draw-sessions li{padding:1rem 1.2rem}
@media (min-width:40.01rem){.ap-body .draw-sessions li{grid-template-columns:minmax(11rem,15rem) 1fr auto;align-items:center}}
@media (max-width:40rem){.ap-body .ds-chip{justify-self:start}}
.ap-body .ds-when small{display:block;font-size:.75rem;margin-block-start:.1rem}
.ap-body .ds-chip{background:#ffe3d2;color:var(--rt-ink);border-radius:999px;padding:.3rem .75rem;font-size:.78rem}
.ap-body .draw-sessions .ds-what{font-size:1.05rem}
@media (max-width:40rem){.ap-mono-letters{font-size:3rem}.ap-mono-nation{display:none}}
.ap-facts>div:last-child:nth-child(odd){grid-column:1/-1}

/* ---- g4 polish (2026-10-16) ---- */
/* Athlete page. Facts: one column when there are only a couple (Category alone drew a half-width
   rule under "Next up"). Phones: photo on top, name and facts below, instead of a 42/58 split that
   cropped the portrait and squeezed the text into 160px. */
.ap-facts:not(:has(>div:nth-child(3))){grid-template-columns:1fr}
@media (max-width:40rem){
  .ap-hero{grid-template-columns:1fr}
  .ap-photo{min-block-size:0;aspect-ratio:4 / 3}
  .ap-photo img{object-position:50% 18%}
  .ap-id{padding:1.1rem 1.1rem 1.25rem}
}


/* results / medal rows: the apparatus under the session, and "Watch routine" (_routine_pill.html,
   views._attach_jumps): the site's orange CTA, navy ink. Its link also covers the row, so the whole
   row opens it; the session link sits above it as its own target. The pill wraps under the title
   on a narrow row, so it never squeezes the score. */
.results .res-app{display:block;color:var(--text-muted);font-size:.8rem;margin-block-start:.15rem}
.res-what-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.45rem 1rem}
.res-title{min-inline-size:0}
.res-clip{flex:none;display:inline-flex;align-items:center;gap:.45em;padding:.42rem .95rem;border-radius:999px;
  background:var(--rt-orange);color:var(--rt-ink);font-weight:800;font-size:.8rem;line-height:1.1;
  text-decoration:none;white-space:nowrap}
.res-clip-ico{font-size:.72em}
.res-linked{position:relative;cursor:pointer}
.res-linked .res-clip::after{content:"";position:absolute;inset:0}
.res-linked .res-title a,.res-linked > a{position:relative;z-index:1}
.res-linked:hover .res-clip,.res-clip:focus-visible{background:var(--rt-navy);color:#fff}
.res-clip:focus-visible{outline:3px solid var(--rt-orange);outline-offset:2px}
.medal-list .res-linked .res-clip{margin-inline-start:auto}
.results td.mark{white-space:nowrap}

/* ---- Rewatch hub (g5, 18 Oct): videos.html, _videos_grid.html, _routine_card.html ----------- */
/* Head: the navy-2 title block every page has, holding the search and the spoiler switch. */
.rw-head{background:var(--rt-navy-2);border-radius:14px;padding:1.5rem 1.5rem 1.25rem;margin-block:1.25rem 1rem;color:#fff}
.rw-head .eyebrow{color:var(--rt-orange);font-weight:800;letter-spacing:.14em;margin:0 0 .4rem}
.rw-head-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem}
.rw-head h1{margin:0;font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;line-height:1;
  font-size:clamp(2rem,5vw,3.2rem);color:#fff}
.rw-lede{margin:.6rem 0 1rem;color:var(--rt-mute);max-inline-size:42rem}
.rw-search input[type=search],body:not(.theme-dark) .rw-search input[type=search]{inline-size:100%;min-block-size:52px;padding:.7rem 1rem .7rem 2.9rem;
  font:inherit;font-size:1rem;border:2px solid transparent;border-radius:999px;color:var(--rt-navy);
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23101242' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 1.05rem 50%/1.2rem}
html[dir=rtl] .rw-search input[type=search]{padding:.7rem 2.9rem .7rem 1rem;background-position:calc(100% - 1.05rem) 50%}
.rw-search input[type=search]:focus{outline:0;border-color:var(--rt-orange);box-shadow:0 0 0 3px rgba(255,99,21,.35)}
.rw-found-in{margin-block-start:.75rem;background:#fff;color:var(--rt-navy);border-radius:12px;padding:.4rem 1rem}
.rw-found-note{margin:.6rem 0;color:var(--text-muted)}
.rw-found-list{list-style:none;margin:0;padding:0}
.rw-found-list>li+li,.rw-found-nations{border-block-start:1px solid var(--border)}
.rw-found-ath{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;padding-block:.6rem}
.rw-found-who{display:inline-flex;align-items:center;gap:.45rem;font-weight:800}
.rw-found-who a{color:var(--rt-navy);display:inline-flex;align-items:center;min-block-size:44px}
.rw-found-code{color:var(--text-muted);font-size:.8rem;font-weight:800}
.rw-found-apps{display:flex;flex-wrap:wrap;gap:.4rem}
.rw-pill{display:inline-flex;align-items:center;gap:.4em;min-block-size:44px;padding:.3rem .9rem;border-radius:999px;background:var(--rt-orange);
  color:var(--rt-ink);font-weight:800;font-size:.82rem;text-decoration:none}
.rw-pill:hover{background:var(--rt-navy);color:#fff}
.rw-found-nat{display:flex;align-items:center;gap:.6rem;min-block-size:48px;color:var(--rt-navy);font-weight:800;text-decoration:none}
.rw-found-nat:hover span:first-of-type{text-decoration:underline}

/* Tabs: Routines / Sessions, on the canvas */
.rw-tabs{display:flex;gap:1.5rem;border-block-end:1px solid rgba(255,255,255,.16);margin-block:1.25rem 1.25rem}
.rw-tabs a{display:inline-flex;align-items:center;gap:.5rem;min-block-size:48px;color:#fff;font-family:var(--display);font-weight:800;
  text-transform:uppercase;letter-spacing:.04em;text-decoration:none;border-block-end:3px solid transparent;margin-block-end:-1px}
.rw-tabs a:hover{color:var(--rt-orange)}
.rw-tabs a[aria-current=page]{border-color:var(--rt-orange)}
.rw-tab-n{display:inline-block;min-inline-size:1.6em;padding:.1em .5em;border-radius:999px;background:rgba(255,255,255,.14);
  font-size:.75rem;text-align:center;color:#fff;letter-spacing:0}
.rw-tabs a[aria-current=page] .rw-tab-n{background:var(--rt-orange);color:var(--rt-ink)}

/* No scroll anchoring on the hub: htmx puts a filter's new body in before it removes the old one,
   and Chrome followed the old cards down and then clamped at the page end (app.js keeps the place). */
.page-rewatch{overflow-anchor:none}

/* Apparatus tiles: the hub's way in. A real frame of the apparatus under a navy veil, the name
   big, the count small; the chosen one ringed in orange. Scroll sideways on a phone. */
.rw-tiles-group{margin-block-end:1rem}
.rw-tiles-h{margin:0 0 .5rem;color:var(--rt-mute);font-size:.9rem;font-weight:800}
.rw-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}
.rw-tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-block-size:7.5rem;padding:.75rem .85rem;
  border-radius:12px;overflow:hidden;background:var(--rt-navy-2);color:#fff;text-decoration:none;isolation:isolate;
  border:2px solid rgba(255,255,255,.1)}
.rw-tile img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;z-index:-2}
.rw-tile::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,18,66,.05) 20%,rgba(16,18,66,.9) 80%)}
.rw-tile-name{font-family:var(--display);font-weight:800;line-height:1.1;font-size:1rem}
.rw-tile-n{font-size:.78rem;color:var(--rt-mute);font-weight:700;margin-block-start:.15rem}
/* Hover, chosen and keyboard focus are an orange OUTLINE only: the photo, its veil and the text
   never change (Alex, 18 Oct: "only highlight the outline with orange, not the whole picture"). */
.rw-tile:hover{border-color:var(--rt-orange)}
.rw-tile:focus-visible{outline:3px solid var(--rt-orange);outline-offset:2px}
.rw-tile.is-on{border-color:var(--rt-orange)}

/* Filters: one white bar on desktop; a "Filters" button opening it on a phone (pure CSS). */
.rw-filters{margin-block:1.25rem .5rem}
.rw-ft{position:absolute;opacity:0;pointer-events:none}
/* Off on a desktop, where the bar is always open: it was an invisible, inert stop in the tab order. */
@media (min-width:40.01rem){.rw-ft{display:none}}
.rw-ft-btn{display:none}
.rw-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;background:#fff;border-radius:12px;padding:.9rem 1rem}
.rw-fields label{display:flex;flex-direction:column;gap:.3rem;color:var(--text-muted);font-weight:700;font-size:.85rem}
.rw-fields select{min-block-size:44px;inline-size:100%}
/* Sessions tab: Day and Men/Women only, so a narrower bar of two. */
@media (min-width:40.01rem){.rw-filters--sessions .rw-fields{grid-template-columns:repeat(2,minmax(0,1fr));max-inline-size:34rem}}
.rw-apply{align-self:end;min-block-size:44px}
.rw-active{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.75rem 0 0}
.rw-chip{display:inline-flex;align-items:center;gap:.5rem;min-block-size:44px;padding:.3rem .6rem .3rem 1rem;border-radius:999px;
  background:var(--rt-orange);color:var(--rt-ink);font-weight:800;font-size:.85rem;text-decoration:none}
.rw-chip-x{display:inline-grid;place-items:center;inline-size:1.5rem;block-size:1.5rem;border-radius:50%;background:rgba(0,7,53,.15);font-size:1rem;line-height:1}
.rw-chip:hover .rw-chip-x{background:var(--rt-ink);color:#fff}
.rw-clear{display:inline-flex;align-items:center;min-block-size:44px;padding-inline:.5rem;color:#fff;font-weight:800;text-decoration:underline;text-underline-offset:.2em}
.rw-clear:hover{color:var(--rt-orange)}

/* Shelves and the grid */
.rw-shelf{margin-block:2rem 0}
.rw-shelf .rail-h{color:#fff;display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem}
.rw-shelf-what{color:var(--rt-orange);font-size:.8em}
.rw-rail{list-style:none;margin:0;padding:0 0 .5rem;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(15rem,1fr);gap:1rem;
  overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain}
.rw-rail>li{scroll-snap-align:start}
.rw-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem}
@media (min-width:64rem){.rw-rail{grid-auto-columns:calc((100% - 3rem)/4)}}

/* Routine / session card: real frame, then who, score, where, and the orange action. */
.rw-card>a{display:flex;flex-direction:column;block-size:100%;background:#fff;color:var(--rt-navy);border-radius:12px;overflow:hidden;
  text-decoration:none;border:2px solid transparent}
.rw-card>a:hover{border-color:var(--rt-orange)}
.rw-card>a:focus-visible{outline:3px solid var(--rt-orange);outline-offset:2px}
.rw-frame{position:relative;display:block;aspect-ratio:16/9;background:var(--rt-navy-2);overflow:hidden}
.rw-frame img{display:block;inline-size:100%;block-size:100%;object-fit:cover}
.rw-frame .rw-poster{opacity:.55}
.rw-app,.rw-len{position:absolute;inset-block-start:.5rem;padding:.2rem .6rem;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.03em}
.rw-app{inset-inline-start:.5rem;background:var(--rt-navy);color:#fff;text-transform:uppercase}
.rw-len{inset-inline-end:.5rem;inset-block:auto .5rem;background:rgba(0,7,53,.82);color:#fff;font-variant-numeric:tabular-nums}
.rw-info{display:flex;flex-direction:column;gap:.25rem;padding:.75rem .9rem .9rem;flex:1}
.rw-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.rw-name{font-weight:800;line-height:1.2;font-size:1.02rem;hyphens:none;overflow-wrap:break-word}
.rw-score{margin-inline-start:auto;font-weight:800;font-size:1.05rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.rw-score small{color:var(--text-muted);font-size:.75rem}
.rw-nat{display:flex;align-items:center;gap:.4rem;min-inline-size:0;color:var(--text-muted);font-weight:700;font-size:.85rem}
.rw-sess{color:var(--text-muted);font-size:.82rem}
.rw-cta{margin-block-start:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:.45em;margin-top:.5rem;padding:.55rem 1rem;
  border-radius:999px;background:var(--rt-orange);color:var(--rt-ink);font-weight:800;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
.rw-card>a:hover .rw-cta{background:var(--rt-navy);color:#fff}
.rw-more{grid-column:1/-1;display:flex;justify-content:center;padding-block:.5rem}
.rw-more .btn{min-block-size:48px}
.rw-empty{color:#fff;border-color:rgba(255,255,255,.3)}
.rw-empty .btn{color:var(--rt-ink)}

@media (max-width:64rem){.rw-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:40rem){
  .rw-head{padding:1.15rem 1rem 1rem}
  .rw-tiles{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-block-end:.25rem;scrollbar-width:none}
  .rw-tiles::-webkit-scrollbar{display:none}
  .rw-tiles>li{flex:0 0 9.5rem;scroll-snap-align:start}
  .rw-tile:focus-visible{outline-offset:-3px}
  .rw-ft-btn{display:inline-flex;align-items:center;gap:.5rem;min-block-size:44px;padding:.4rem 1.1rem;border-radius:999px;
    border:2px solid rgba(255,255,255,.6);color:#fff;font-weight:800;cursor:pointer}
  .rw-ft:focus-visible+.rw-ft-btn{outline:3px solid var(--rt-orange);outline-offset:2px}
  .rw-ft:checked+.rw-ft-btn{border-color:var(--rt-orange)}
  .rw-fields{display:none;grid-template-columns:1fr;margin-block-start:.6rem}
  .rw-ft:checked~.rw-fields{display:grid}
  .rw-grid{grid-template-columns:1fr}
  .rw-rail{grid-auto-columns:76%}
  .rw-info{padding:.65rem .8rem .8rem}
}

/* Nation page: "Watch <nation>'s routines", one rail of routine cards per session. */
.nation-routines{margin-block:1.5rem 2rem}
.nr-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1rem}
.nr-head .rail-h{color:#fff;margin-block-end:.25rem}
.nr-all{display:inline-flex;align-items:center;gap:.35em;min-block-size:44px;color:var(--rt-orange);font-weight:800}
.nr-sess{margin:1rem 0 .6rem;color:#fff;font-size:1rem;font-weight:800}
.nr-sess span{color:var(--rt-mute);font-weight:700;margin-inline-start:.35rem}

/* Day tabs (Alex 19 Oct: every day so far, obvious; Best of page and the Results hub): big two-line tabs, the open day filled orange.
   One row that scrolls sideways on a phone rather than wrapping into a wall of chips. */
.day-tabs{display:flex;gap:.6rem;margin-block:.9rem .4rem;overflow-x:auto;scroll-snap-type:x proximity;
  overscroll-behavior-x:contain;padding-block-end:.25rem;scrollbar-width:thin}
.day-tabs a{flex:0 0 auto;scroll-snap-align:start;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;
  min-inline-size:7.5rem;padding:.7rem 1.15rem;border-radius:12px;border:2px solid var(--rt-orange);color:#fff;text-decoration:none}
.day-tabs b{font-family:var(--display);font-weight:800;font-size:1.15rem;line-height:1.05;text-transform:uppercase;letter-spacing:.03em}
.day-tabs span{font-weight:600;font-size:.82rem;color:rgba(255,255,255,.78)}
.day-tabs a:hover{background:color-mix(in srgb,var(--rt-orange) 16%,transparent)}
.day-tabs a:focus-visible{outline:3px solid #fff;outline-offset:2px}
.day-tabs a.is-on,.day-tabs a.is-on:hover{background:var(--rt-orange);color:var(--rt-ink)}
.day-tabs a.is-on span{color:var(--rt-ink)}
@media (max-width:40rem){.day-tabs{gap:.45rem}.day-tabs a{min-inline-size:5.5rem;padding:.55rem .75rem}.day-tabs b{font-size:1rem}.day-tabs span{font-size:.76rem}}
/* Rewatch hub top line (20 Oct): nothing live and when the next session starts, or what is live now.
   The Up next row's look (navy, orange edge); one line on desktop, the button drops under on phones. */
.rw-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem;margin-block:1.25rem -.25rem;
  background:var(--rt-navy-2);border-left:6px solid var(--rt-orange);border-radius:10px;padding:.85rem 1rem;color:#fff}
.rw-status p{margin:0;color:var(--rt-mute);font-weight:600}
.rw-status b{color:#fff;font-weight:800}
.rw-status .live-dot{display:inline-block;vertical-align:middle;margin:0 .5rem 0 0;width:.6rem;height:.6rem;background:var(--rt-orange)}
.rw-status .btn{min-height:44px;display:inline-flex;align-items:center}
