:root{
  --bg:#0b0d0f;
  --bg-2:#111417;
  --bg-3:#171b1f;
  --surface:#14181c;
  --surface-2:#1b2025;
  --border:#242a30;
  --border-strong:#333b43;
  --text:#e8ecef;
  --text-muted:#9aa4ad;
  --text-dim:#6b7680;
  --accent:#e4002b;         /* IndyCar-adjacent racing red */
  --accent-2:#ff4a00;
  --racing-yellow:#ffcc00;
  --green:#22c55e;
  --amber:#f59e0b;
  --red:#ef4444;
  --blue:#3b82f6;
  --mono:'JetBrains Mono', ui-monospace, monospace;
  --sans:'Space Grotesk', system-ui, sans-serif;
  --body:'Inter', system-ui, sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(228,0,43,.08), transparent 60%),
    radial-gradient(900px 500px at -10% 20%, rgba(59,130,246,.05), transparent 60%),
    var(--bg);
  color:var(--text);
  font-family:var(--body);
  font-size:15px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

.container{max-width:1200px;margin:0 auto;padding:0 24px}

/* --- Top bar --- */
.topbar{
  border-bottom:1px solid var(--border);
  background:rgba(11,13,15,.85);
  backdrop-filter:blur(10px);
  position:sticky;top:0;z-index:50;
}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:14px;color:var(--text)}
.brand svg{color:var(--accent)}
.brand-title{font-family:var(--sans);font-weight:700;letter-spacing:.08em;font-size:14px}
.brand-sub{font-size:12px;color:var(--text-muted);margin-top:2px}
.last-updated{
  display:flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:12px;color:var(--text-muted);
  padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface)
}
.last-updated strong{color:var(--text);font-weight:500}
.dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(34,197,94,.15);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.55}}

/* --- Hero --- */
.hero{padding:56px 0 40px;border-bottom:1px solid var(--border)}
.hero-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:end}
.eyebrow{
  font-family:var(--mono);font-size:11px;letter-spacing:.15em;
  color:var(--accent);margin-bottom:16px;text-transform:uppercase;
}
.hero h1{
  font-family:var(--sans);font-weight:700;font-size:52px;line-height:1.05;
  letter-spacing:-.02em;margin:0 0 20px;color:var(--text);
}
.lede{font-size:17px;color:var(--text-muted);max-width:640px;margin:0 0 24px}
.hero-cta-row{display:flex;flex-wrap:wrap;gap:10px}
.chip{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;border-radius:999px;
  font-size:13px;font-family:var(--sans);font-weight:500;
  border:1px solid var(--border);background:var(--surface);
}
.chip-warning{border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.08);color:#fbbf24}
.chip-muted{color:var(--text-muted)}
.chip-dot{width:8px;height:8px;border-radius:50%;background:var(--amber);animation:pulse 2s infinite}

/* Countdown */
.countdown{
  border:1px solid var(--border);
  border-radius:14px;
  padding:22px 22px 20px;
  background:linear-gradient(180deg, var(--surface), var(--bg-2));
  position:relative;overflow:hidden;
}
.countdown::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg, var(--accent), var(--racing-yellow), var(--accent));
}
.countdown-label{font-family:var(--mono);font-size:11px;letter-spacing:.15em;color:var(--text-muted)}
.countdown-time{font-family:var(--sans);font-weight:700;font-size:44px;letter-spacing:-.02em;margin:8px 0 4px;color:var(--text)}
.countdown-sub{font-size:13px;color:var(--text-muted);margin-bottom:14px}
.countdown-status{margin-top:8px;padding-top:14px;border-top:1px dashed var(--border-strong)}
.status-pill{
  display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  padding:5px 10px;border-radius:6px;background:rgba(245,158,11,.15);color:#fbbf24;
  border:1px solid rgba(245,158,11,.3);
}

/* --- Sections --- */
.section{padding:56px 0}
.section-alt{background:var(--bg-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.section-head{margin-bottom:28px;display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap}
.section-head h2{font-family:var(--sans);font-weight:600;font-size:26px;letter-spacing:-.01em;margin:0}
.section-meta{color:var(--text-muted);font-size:13px}

/* --- Readiness meter --- */
.readiness{
  border:1px solid var(--border);border-radius:14px;padding:24px;
  background:var(--surface);
}
.readiness-meter{
  position:relative;height:14px;border-radius:999px;background:var(--bg-3);
  overflow:hidden;border:1px solid var(--border);
}
.meter-fill{
  height:100%;
  background:linear-gradient(90deg,#ef4444 0%,#f59e0b 45%,#f59e0b 80%,#22c55e 100%);
  transition:width .6s ease;
}
.meter-ticks{position:absolute;inset:0;display:flex;pointer-events:none}
.meter-ticks span{flex:1;border-right:1px solid rgba(0,0,0,.35)}
.meter-ticks span:last-child{border-right:none}
.readiness-legend{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:14px;font-size:14px;flex-wrap:wrap;gap:12px;
}
.readiness-legend strong{color:var(--text);font-family:var(--mono);font-weight:500}
.muted{color:var(--text-muted);font-size:13px}
.readiness-flags{display:flex;gap:8px}
.flag{font-family:var(--mono);font-size:11px;padding:4px 10px;border-radius:6px;letter-spacing:.05em}
.flag-red{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.3)}
.flag-amber{background:rgba(245,158,11,.15);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}
.flag-green{background:rgba(34,197,94,.15);color:#4ade80;border:1px solid rgba(34,197,94,.3)}

/* --- Milestone cards --- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.card{
  border:1px solid var(--border);border-radius:14px;padding:22px;
  background:var(--surface);position:relative;overflow:hidden;
  transition:transform .2s ease, border-color .2s ease;
}
.card::before{
  content:"";position:absolute;top:0;left:0;width:3px;height:100%;
}
.card[data-status="red"]::before{background:var(--red)}
.card[data-status="amber"]::before{background:var(--amber)}
.card[data-status="green"]::before{background:var(--green)}
.card:hover{border-color:var(--border-strong);transform:translateY(-1px)}
.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.card-title{display:flex;gap:12px;align-items:center}
.card-num{
  font-family:var(--mono);font-size:12px;color:var(--text-dim);
  border:1px solid var(--border);padding:2px 8px;border-radius:6px;
}
.card h3{font-family:var(--sans);font-weight:600;font-size:17px;margin:0;letter-spacing:-.005em}
.card-desc{color:var(--text-muted);font-size:14px;margin:0 0 16px;line-height:1.55}
.card-desc strong{color:var(--text);font-weight:600}
.card-meta{display:grid;gap:6px;font-size:12.5px;padding-top:14px;border-top:1px dashed var(--border-strong)}
.card-meta > div{display:flex;justify-content:space-between;gap:10px}
.card-meta .k{color:var(--text-dim);font-family:var(--mono);font-size:11px;letter-spacing:.05em}
.card-meta .v{color:var(--text);text-align:right}

.badge{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
  padding:4px 8px;border-radius:6px;white-space:nowrap;
}
.badge-red{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.3)}
.badge-amber{background:rgba(245,158,11,.15);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}
.badge-green{background:rgba(34,197,94,.15);color:#4ade80;border:1px solid rgba(34,197,94,.3)}
.badge-blue-sm{background:rgba(59,130,246,.15);color:#60a5fa;border:1px solid rgba(59,130,246,.3);font-size:9.5px;padding:2px 6px;margin-top:4px;display:inline-block}

/* --- Days / sessions --- */
.days{display:grid;grid-template-columns:1fr;gap:16px}
.day{
  border:1px solid var(--border);border-radius:14px;background:var(--surface);
  overflow:hidden;
}
.day-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 20px;border-bottom:1px solid var(--border);
  background:var(--surface-2);
}
.day-name{font-family:var(--sans);font-weight:600;font-size:14px;letter-spacing:.1em}
.day-tag{
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;padding:4px 10px;border-radius:6px;
}
.day-tag-red{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.3)}
.day-tag-amber{background:rgba(245,158,11,.15);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}
.day-tag-green{background:rgba(34,197,94,.15);color:#4ade80;border:1px solid rgba(34,197,94,.3)}

.session{
  display:grid;grid-template-columns:120px 1fr 160px;gap:20px;
  padding:16px 20px;border-bottom:1px solid var(--border);align-items:start;
}
.session:last-child{border-bottom:none}
.session-time{font-family:var(--mono);font-size:14px;color:var(--text);font-weight:500}
.session-time .new-time{color:var(--text);font-weight:600}
.session-time .old-time{color:var(--text-dim);font-size:12px;margin-top:2px}
.session-time .new-time.big{font-size:20px;color:var(--racing-yellow);letter-spacing:.02em}
.session-title{font-family:var(--sans);font-weight:600;font-size:15px;margin-bottom:4px}
.session-note{color:var(--text-muted);font-size:13.5px;line-height:1.5}
.session-note strong{color:var(--text)}
.session-tv{font-family:var(--mono);font-size:12px;color:var(--text-muted);text-align:right}

.session-cancelled{opacity:.55}
.session-cancelled .session-title{text-decoration:line-through}
.session-revised{background:rgba(245,158,11,.04);border-left:3px solid var(--amber)}
.session-added{background:rgba(59,130,246,.04);border-left:3px solid var(--blue)}
.session-headline{background:linear-gradient(90deg, rgba(255,204,0,.06), transparent);border-left:3px solid var(--racing-yellow)}

/* --- Feed --- */
.feed{display:grid;grid-template-columns:1fr;gap:16px}
.feed-item{
  border:1px solid var(--border);border-radius:14px;padding:22px;background:var(--surface);
}
.feed-meta{display:flex;gap:14px;font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px;text-transform:uppercase}
.feed-source{color:var(--accent)}
.feed-author{font-family:var(--sans);font-weight:600;font-size:15px;margin-bottom:12px}
.feed-item blockquote{
  margin:0 0 12px;padding:12px 16px;
  border-left:3px solid var(--accent);
  background:var(--bg-3);border-radius:0 6px 6px 0;
  font-size:14.5px;line-height:1.55;color:var(--text);
}
.feed-item blockquote:last-of-type{margin-bottom:0}
.feed-followup{
  margin-top:14px;padding:12px 16px;
  border:1px dashed var(--border-strong);border-radius:8px;
  color:var(--text-muted);font-size:13.5px;
}
.feed-followup strong{color:#fbbf24}

/* --- Certification --- */
.cert-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.cert-card{
  border:1px solid var(--border);border-radius:14px;padding:24px;background:var(--surface);
}
.cert-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}
.cert-label{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--text-muted);margin-bottom:8px}
.cert-body{font-size:14px;color:var(--text-muted);line-height:1.55}
.cert-body strong{color:var(--text)}
.cert-status{
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;padding:6px 10px;border-radius:6px;white-space:nowrap;
}
.cert-status-amber{background:rgba(245,158,11,.15);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}
.cert-checks{display:grid;gap:8px;padding-top:16px;border-top:1px dashed var(--border-strong)}
.chk{font-family:var(--mono);font-size:12px;padding:6px 10px;border-radius:6px}
.chk-green{background:rgba(34,197,94,.08);color:#86efac;border:1px solid rgba(34,197,94,.2)}
.chk-amber{background:rgba(245,158,11,.06);color:#fcd34d;border:1px solid rgba(245,158,11,.2)}
.chk-red{background:rgba(239,68,68,.06);color:#fca5a5;border:1px solid rgba(239,68,68,.2)}
.cert-note{
  padding:16px 20px;border:1px dashed var(--border-strong);border-radius:10px;
  color:var(--text-muted);font-size:13.5px;line-height:1.55;background:var(--bg-2);
}

/* --- Footer --- */
.footer{background:var(--bg-2);border-top:1px solid var(--border);padding:48px 0 32px;margin-top:24px}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;margin-bottom:32px}
.footer-title{font-family:var(--sans);font-weight:600;font-size:14px;letter-spacing:.05em;margin-bottom:14px}
.src-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.src-list li{font-size:13.5px;color:var(--text-muted);display:flex;gap:10px;align-items:flex-start}
.src-list a{color:var(--text);text-decoration:none;border-bottom:1px dotted var(--text-dim)}
.src-list a:hover{color:var(--accent);border-color:var(--accent)}
.src-tag{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;
  padding:2px 7px;border-radius:5px;
  background:var(--surface);border:1px solid var(--border);color:var(--text-muted);
  flex-shrink:0;min-width:70px;text-align:center;
}
.footer-body{color:var(--text-muted);font-size:13.5px;line-height:1.6;margin:0 0 12px}
.footer-body.small{font-size:12.5px}
.footer-bottom{
  padding-top:20px;border-top:1px solid var(--border);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-family:var(--mono);font-size:11.5px;color:var(--text-dim);letter-spacing:.03em;
}
.footer-bottom strong{color:var(--text-muted);font-weight:500}

/* --- Change banner --- */
.change-banner{
  background:linear-gradient(90deg, rgba(228,0,43,.15), rgba(255,204,0,.08));
  border-bottom:1px solid rgba(228,0,43,.3);
  padding:12px 0;
}
.change-banner-inner{display:flex;align-items:center;gap:12px;font-size:14px}
.change-icon{color:var(--racing-yellow);font-family:var(--mono);font-weight:700}

/* --- Status pill variants --- */
.status-green{background:rgba(34,197,94,.15);color:#4ade80;border:1px solid rgba(34,197,94,.3)}
.status-red{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.3)}
.status-onwatch{background:rgba(245,158,11,.15);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}

/* --- Unknown flag / badge --- */
.flag-muted{background:rgba(154,164,173,.08);color:var(--text-muted);border:1px solid var(--border)}
.badge-muted{background:rgba(154,164,173,.08);color:var(--text-muted);border:1px solid var(--border)}
.card[data-status="unknown"]::before{background:var(--border-strong)}

/* --- Schedule update block --- */
.schedule-updates{
  margin-top:20px;padding:18px 20px;border:1px dashed var(--border-strong);border-radius:10px;
  background:var(--bg-2);
}
.schedule-updates-title{font-family:var(--sans);font-weight:600;font-size:13px;color:var(--text-muted);letter-spacing:.05em;margin-bottom:10px;text-transform:uppercase}
.schedule-updates ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.schedule-updates li{font-size:13.5px;color:var(--text);line-height:1.5}
.schedule-updates li s{color:var(--text-dim)}
.src-tag-sm{
  display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.05em;
  padding:2px 6px;border-radius:4px;background:var(--surface);border:1px solid var(--border);
  color:var(--text-muted);margin-left:4px;
}

/* --- Cert status green/red variants --- */
.cert-status-green{background:rgba(34,197,94,.15);color:#4ade80;border:1px solid rgba(34,197,94,.3)}
.cert-status-red{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.3)}
.cert-source{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border-strong)}

/* --- Headlines list --- */
.headlines{display:grid;gap:8px}
.headline-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;
  padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);
  font-size:14px;
}
.headline-title{color:var(--text)}
.headline-when{font-family:var(--mono);font-size:11px;color:var(--text-dim)}

/* --- Source list URLs --- */
.src-list li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}
.src-url{color:var(--text-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono)}
.src-health{font-family:var(--mono);font-size:10px;padding:2px 6px;border-radius:4px;letter-spacing:.05em}
.src-health.ok{background:rgba(34,197,94,.1);color:#4ade80}
.src-health.fail{background:rgba(239,68,68,.1);color:#f87171}

/* --- Empty state --- */
.empty{padding:24px;text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:10px;font-size:14px}

/* --- Responsive --- */
@media (max-width: 900px){
  .hero-grid{grid-template-columns:1fr}
  .hero h1{font-size:36px}
  .cert-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .session{grid-template-columns:80px 1fr;grid-template-rows:auto auto}
  .session-tv{grid-column:2;text-align:left;padding-top:4px}
  .topbar-right .last-updated{display:none}
}
@media (max-width: 640px){
  .hero h1{font-size:28px}
  .lede{font-size:15px}
  .countdown-time{font-size:32px}
  .section-head h2{font-size:22px}
  .brand-sub{display:none}
}
