.race-calendar {
  --rc-bg:#20262e; --rc-line:#343c47; --rc-muted:#929daa; --rc-red:#f34c48;
  max-width:1520px; margin:0 auto; color:#edf0f4; font-variant-numeric:tabular-nums;
}
.race-calendar [hidden] { display:none!important; }
.race-calendar a { text-decoration:none!important; }
.race-calendar svg { width:17px; height:17px; flex:none; }
.race-calendar :is(a,button,select,summary):focus-visible { outline:2px solid #f38c85; outline-offset:4px; }
.rc-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:12px 0 30px; }
.race-calendar .rc-eyebrow { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:0 0 12px; color:#b5bfcb; font:700 10px/1.5 Inter,sans-serif; letter-spacing:.13em; }
.rc-eyebrow>span { width:20px; height:3px; background:var(--rc-red); border-radius:1px; }
.race-calendar h1 { margin:0 0 10px; color:#f4f6f8; font:800 clamp(29px,3.2vw,46px)/1.12 Inter,sans-serif; letter-spacing:-.05em; }
.rc-intro { margin:0; color:var(--rc-muted); font-size:13px; }
.rc-season-badge { display:flex; gap:12px; align-items:center; border:1px solid var(--rc-line); border-radius:8px; padding:11px 13px; color:#929daa; font:650 10px/1.2 monospace; letter-spacing:.06em; }
.rc-season-badge b { color:#dbe1e9; font-size:12px; }
.rc-season label,.rc-timezone label { display:block; color:var(--rc-muted); font-size:10px; margin:0 0 6px; }
.rc-select { display:flex; align-items:center; border:1px solid var(--rc-line); border-radius:8px; overflow:hidden; background:#1d232b; }
.race-calendar .rc-select select { appearance:none; -webkit-appearance:none; border:0; border-radius:0; background:transparent; color:#dbe2eb; padding:11px 34px 11px 12px; font:600 11px/1.4 Inter,sans-serif; color-scheme:dark; min-width:0; max-width:100%; cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23929daa' stroke-width='1.5'%3E%3Cpath d='m3 4 3 3 3-3'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; }
.rc-season button { display:flex; align-items:center; padding:11px; background:#252d37; border:0; border-left:1px solid var(--rc-line); color:#dbe2eb; }
.rc-feature { display:grid; grid-template-columns:minmax(0,1fr) 340px; overflow:hidden; border:1px solid #424b58; border-radius:16px; background:var(--rc-bg); }
.rc-feature-main { position:relative; isolation:isolate; min-height:370px; display:flex; }
.rc-feature-image { position:absolute; inset:0; z-index:-2; background:#29323d; }
.rc-feature-image img { width:100%; height:100%; object-fit:cover; object-position:center; }
.rc-feature-main:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,#11182030 10%,#111820e8 100%),linear-gradient(90deg,#111820b8,transparent 85%); }
.rc-feature-copy { display:flex; flex-direction:column; justify-content:space-between; gap:32px; width:100%; padding:30px; }
.rc-feature .rc-eyebrow { color:#f1d4ce; font-size:9px; margin:0; }
.rc-feature .rc-eyebrow b { margin-left:auto; padding:5px 8px; border:1px solid #ffffff30; background:#171e26a8; border-radius:4px; color:#fff; font:650 11px/1.2 monospace; }
.rc-eyebrow>.rc-live-dot { width:6px; height:6px; border-radius:50%; flex:none; background:#fa6a5f; box-shadow:0 0 0 4px #ff77751a; }
.rc-feature-title>p { margin:0 0 8px; color:#c5ccd5; font:650 10px/1.4 Inter,sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.race-calendar .rc-feature-title h2 { color:#fff; font:800 clamp(38px,4.4vw,64px)/1.02 Inter,sans-serif; letter-spacing:-.055em; margin:0 0 13px; }
.rc-feature-title>span { display:block; color:#b8c2ce; font-size:12px; line-height:1.5; }
.rc-feature-bottom { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.rc-weekend-date { display:flex; flex-direction:column; gap:7px; }
.rc-weekend-date small { font:650 8px/1.5 Inter,sans-serif; letter-spacing:.13em; color:#9caab9; }
.rc-weekend-date strong { color:#edf1f6; font:600 12px/1.5 Inter,sans-serif; white-space:nowrap; }
.rc-feature-watermark { position:absolute; right:22px; bottom:40px; font:800 160px/1 Inter,sans-serif; letter-spacing:-.09em; color:#ffffff08; pointer-events:none; z-index:-1; }
.rc-feature-program { padding:27px 25px 20px; background:linear-gradient(145deg,#252d37,#1e252e); border-left:1px solid var(--rc-line); display:flex; flex-direction:column; justify-content:center; }
.rc-program-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:15px; }
.rc-program-heading h3 { font:700 13px/1.4 Inter,sans-serif; letter-spacing:-.015em; color:#e8edf4; margin:0; }
[data-calendar-zone-badge] { color:#8593a4; font:600 9px/1.4 monospace; white-space:nowrap; }
.rc-sessions { margin:0; }
.rc-sessions>div { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 0; min-height:39px; border-bottom:1px solid #d4dce90c; }
.rc-sessions>div:last-child { border-bottom:0; }
.rc-sessions dt { display:flex; align-items:center; gap:8px; min-width:0; color:#aeb8c6; font:500 11px/1.35 Inter,sans-serif; margin:0; }
.rc-session-marker { display:inline-flex; align-items:center; justify-content:center; width:27px; height:21px; flex:none; color:#7e8d9f; background:#1018204d; border:1px solid #dce8fa13; border-radius:4px; font:600 9px/1 monospace; }
.rc-sessions dd { flex:none; margin:0; color:#dce3ed; font:600 11px/1.4 Inter,sans-serif; white-space:nowrap; }
.rc-sessions .rc-session-race dt { color:#edf1f6; font-weight:650; }
.rc-sessions .rc-session-race dd { color:#fff; font-weight:750; }
.rc-race-marker { background:#ec554c12; border-color:#ef716a42; color:#f28d83; }
.rc-sessions .rc-tbc { color:#788797; font:500 10px/1.4 Inter,sans-serif; }
.rc-source-link { display:inline-flex; align-items:center; justify-content:space-between; gap:12px; color:#8b9bad!important; border-top:1px solid var(--rc-line); padding-top:15px; margin-top:14px; font:500 10px/1.5 Inter,sans-serif; }
.rc-source-link svg { width:14px; height:14px; }
body.apex-night-theme.editorial-theme .race-calendar .rc-button { appearance:none; display:inline-flex; align-items:center; justify-content:center; gap:17px; min-height:42px; padding:11px 15px; border:1px solid #45515f; border-radius:7px; background:#2a333e; color:#edf1f6!important; font:650 11px/1.4 Inter,sans-serif; white-space:nowrap; box-shadow:none; transition:background .16s,border-color .16s; }
body.apex-night-theme.editorial-theme .race-calendar .rc-button:hover { background:#34404d; border-color:#687789; }
body.apex-night-theme.editorial-theme .race-calendar .rc-button-primary { background:#ed4843; border-color:#f7685e; color:#fff!important; flex:none; }
body.apex-night-theme.editorial-theme .race-calendar .rc-button-primary:hover { background:#d93c37; border-color:#fc7b71; }
body.apex-night-theme.editorial-theme .race-calendar .rc-button-source { background:#202831; border-color:#36434f; color:#a9b7c7!important; }
.rc-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:36px 0 20px; }
.race-calendar .rc-toolbar h2 { margin:0 0 6px; color:#eef2f7; font:750 21px/1.3 Inter,sans-serif; letter-spacing:-.03em; }
.rc-toolbar>div>span { color:var(--rc-muted); font-size:11px; }
.rc-toolbar i { font-style:normal; margin:0 6px; color:#5c6a7b; }
.rc-timezone { display:flex; align-items:center; gap:12px; }
.rc-timezone label { margin:0; }
.rc-calendar-nav { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; border-block:1px solid var(--rc-line); margin-bottom:7px; }
.rc-month-nav { display:flex; gap:3px; overflow-x:auto; scrollbar-width:none; min-width:0; }
.rc-month-nav::-webkit-scrollbar { display:none; }
.rc-month-nav a { flex:none; padding:9px 10px; border-radius:5px; color:#aab7c8!important; font:600 10px/1.4 Inter,sans-serif; }
.rc-month-nav a:hover { background:#ffffff08; color:#fff!important; }
.rc-filters { display:flex; flex:none; padding:3px; gap:2px; background:#11182066; border:1px solid #3c46524d; border-radius:8px; }
.race-calendar .rc-filters button { appearance:none; -webkit-appearance:none; cursor:pointer; border:1px solid transparent; border-radius:5px; background:transparent; color:#8998aa; font:600 10px/1.4 Inter,sans-serif; padding:8px 10px; box-shadow:none; }
.race-calendar .rc-filters button[aria-pressed=true] { background:#2b3541; border-color:#465464; color:#f0f3f7; }
.rc-month { scroll-margin-top:110px; margin-bottom:28px; }
.rc-month-heading { display:flex; align-items:center; gap:12px; padding:24px 0 17px; }
.rc-month-heading>span { color:#6c7b8f; font:600 11px/1 monospace; }
.rc-month-heading h3 { margin:0; color:#dce4ee; font:700 17px/1.3 Inter,sans-serif; letter-spacing:-.025em; }
.rc-month-heading i { flex:1; height:1px; margin-left:7px; background:var(--rc-line); }
.rc-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:stretch; }
.rc-card { min-width:0; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--rc-line); border-radius:12px; background:var(--rc-bg); transition:border-color .18s; }
.rc-card:hover { border-color:#596779; }
.rc-card.is-next { border-color:#b55c55; }
.rc-card-visual { position:relative; isolation:isolate; aspect-ratio:1.8; overflow:hidden; background:#29333f; }
.rc-card-visual>img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.rc-card-visual:after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,#0c131c30,transparent 35%,#0c131cdd 100%); z-index:0; }
.rc-card-badges { position:absolute; inset:12px 12px auto; display:flex; align-items:center; justify-content:space-between; gap:8px; z-index:1; }
.rc-card-badges>span { padding:5px 7px; border:1px solid #ffffff25; border-radius:4px; background:#101923bf; color:#e7edf5; font:650 9px/1.4 monospace; letter-spacing:.04em; }
.rc-card-badges .rc-sprint { color:#f5d5b8; border-color:#edbd8750; background:#372819bf; }
.rc-card-title { position:absolute; inset:auto 18px 16px; z-index:1; }
.rc-card-title p { margin:0 0 4px; color:#cad3df; text-transform:uppercase; font:650 9px/1.5 Inter,sans-serif; letter-spacing:.11em; }
.rc-card-title h4 { margin:0; color:#fff; font:750 28px/1.1 Inter,sans-serif; letter-spacing:-.035em; }
.rc-card-body { display:flex; flex:1; flex-direction:column; padding:18px; }
.rc-card-date { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:22px; margin-bottom:4px; }
.rc-card-date strong { color:#e3e9f1; font:650 12px/1.4 Inter,sans-serif; }
.rc-status { color:#f29388; font:600 9px/1.3 Inter,sans-serif; }
.rc-status.is-finished { color:#738293; }
.rc-circuit-name { margin:0 0 13px; min-height:28px; color:#8897a8; font:400 10px/1.4 Inter,sans-serif; }
body.apex-night-theme.editorial-theme .race-calendar .rc-card-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; border-top:1px solid var(--rc-line); margin:auto 0 0; padding:15px 0 0; background:transparent; backdrop-filter:none; }
.rc-card-body>.rc-sessions { margin-bottom:13px; }
body.apex-night-theme.editorial-theme .race-calendar .rc-card-footer .rc-button { flex:1; min-width:0; justify-content:space-between; }
.rc-card-footer>[data-calendar-zone-badge] { max-width:70px; white-space:normal; text-align:right; overflow-wrap:anywhere; }
body.apex-night-theme.editorial-theme .race-calendar .rc-footnote { margin:32px 0 0; padding:20px 0 0; border-top:1px solid var(--rc-line); color:#7d8c9e; background:transparent; backdrop-filter:none; font-size:11px; line-height:1.7; }
.rc-footnote>p { margin:0 0 5px; }
.rc-credits { margin-top:18px; }
.rc-credits summary { display:list-item; cursor:pointer; padding:7px 0; color:#aab8ca; font-weight:600; }
.rc-credits p { margin:10px 0; }
.rc-credits ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 25px; list-style:none; padding:0; margin:16px 0; }
.rc-credits li { display:flex; flex-direction:column; font-size:10px; overflow-wrap:anywhere; }
.rc-credits a { color:#b8c5d7!important; }
.rc-credits a:hover { text-decoration:underline!important; }
.rc-credits>a { display:inline-flex; align-items:center; gap:10px; margin:10px 0; }
.rc-empty,.rc-season-finished { padding:28px; border:1px solid var(--rc-line); border-radius:12px; background:var(--rc-bg); }
.rc-empty h2,.rc-season-finished h2 { font-size:24px; margin:0 0 10px; }
.rc-empty p,.rc-season-finished p,.rc-filter-empty { color:var(--rc-muted); font-size:13px; }
@media(min-width:1800px) { .rc-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1250px) { .rc-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .rc-calendar-nav { flex-wrap:wrap; } .rc-month-nav { width:100%; } .rc-filters { margin-left:auto; } .rc-feature { grid-template-columns:minmax(0,1fr) 310px; } .rc-feature-copy { padding:26px; } .rc-feature-program { padding-inline:20px; } }
@media(max-width:800px) { .rc-feature { grid-template-columns:minmax(0,1fr); } .rc-feature-main { min-height:315px; } .rc-feature-program { border-left:0; border-top:1px solid var(--rc-line); padding:22px 26px 20px; } .rc-feature-program .rc-sessions>div { padding-block:9px; } .rc-feature-program .rc-sessions dt,.rc-feature-program .rc-sessions dd { font-size:12px; } }
@media(max-width:600px) {
  .rc-heading { align-items:start; margin:8px 0 24px; gap:12px; }
  .race-calendar .rc-eyebrow { font-size:9px; }
  .race-calendar h1 { font-size:31px; max-width:240px; }
  .rc-intro { font-size:11px; max-width:235px; line-height:1.5; }
  .rc-season-badge { font-size:8px; flex-direction:column; gap:5px; padding:9px 10px; }
  .rc-feature { border-radius:12px; }
  .rc-feature-main { min-height:300px; }
  .rc-feature-copy { padding:22px; gap:30px; }
  .rc-feature-title>p { font-size:9px; }
  .race-calendar .rc-feature-title h2 { font-size:44px; }
  .rc-feature-title>span { font-size:11px; }
  .rc-feature .rc-eyebrow { font-size:8px; gap:8px; }
  .rc-feature-bottom { gap:12px; }
  .rc-weekend-date small { font-size:7px; }
  .rc-weekend-date strong { font-size:10px; }
  body.apex-night-theme.editorial-theme .race-calendar .rc-button { font-size:10px; gap:12px; padding:11px 12px; }
  .rc-feature-program { padding:19px 20px 18px; }
  .rc-program-heading h3 { font-size:12px; }
  .rc-feature-program .rc-sessions dt,.rc-feature-program .rc-sessions dd { font-size:11px; }
  .rc-toolbar { align-items:center; margin:28px 0 17px; gap:12px; }
  .race-calendar .rc-toolbar h2 { font-size:19px; }
  .rc-toolbar>div>span { font-size:9px; }
  .rc-toolbar i { margin:0 3px; }
  .rc-timezone { display:block; }
  .rc-timezone label { margin-bottom:5px; font-size:9px; }
  .race-calendar .rc-timezone select { font-size:10px; max-width:160px; padding:10px 28px 10px 9px; background-position:right 9px center; }
  .rc-calendar-nav { gap:11px; padding:11px 0; }
  .rc-month-nav { gap:2px; }
  .rc-month-nav a { padding:8px 9px; font-size:10px; }
  .rc-filters { width:100%; margin:0; }
  .race-calendar .rc-filters button { flex:1; min-height:35px; font-size:10px; padding:8px; }
  .rc-grid { grid-template-columns:minmax(0,1fr); gap:17px; }
  .rc-card-visual { aspect-ratio:1.9; }
  .rc-card-title h4 { font-size:30px; }
  .rc-card-body { padding:18px; }
  .rc-circuit-name { min-height:0; margin-bottom:14px; }
  .rc-sessions dt,.rc-sessions dd { font-size:12px; }
  .rc-sessions>div { padding:10px 0; }
  .rc-month-heading { padding-top:20px; }
  .rc-credits ul { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:360px) {
  .rc-feature-copy { padding:19px 17px; }
  .rc-feature-program { padding-inline:17px; }
  .rc-sessions dt,.rc-sessions dd { font-size:10px!important; }
  .rc-sessions dt { gap:6px; }
  .rc-session-marker { width:23px; font-size:8px; }
  .rc-timezone label { font-size:8px; }
  .race-calendar .rc-timezone select { max-width:140px; font-size:9px; }
  .rc-card-body { padding:16px; }
}
@media(prefers-reduced-motion:reduce) { .race-calendar * { transition:none!important; scroll-behavior:auto!important; } }
