.tfdf-public-component {
	--tfdf-public-accent: var(--tfdf-accent, #0787c9);
	--tfdf-public-ink: var(--tfdf-text, #16202a);
	--tfdf-public-heading: var(--tfdf-heading, #0b1724);
	background: #fff;
	border: 1px solid #dce4ec;
	border-radius: 16px;
	box-shadow: 0 10px 30px rgba(15, 35, 55, .08);
	color: var(--tfdf-public-ink);
	margin: 0 0 1.25rem;
	padding: clamp(1rem, 2vw, 1.5rem);
}

.tfdf-public-component h3,
.tfdf-public-component h4 { color: var(--tfdf-public-heading); margin-top: 0; }
.tfdf-public-component a { color: var(--tfdf-public-accent); }
.tfdf-public-kicker { color: var(--tfdf-public-accent); font-size: .75rem; font-weight: 800; letter-spacing: .12em; margin: 0 0 .35rem; text-transform: uppercase; }
.tfdf-public-heading { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; }
.tfdf-public-heading h3 { margin-bottom: .4rem; }
.tfdf-public-count { align-items: center; background: #eaf6fc; border-radius: 999px; color: #075f8f; display: inline-flex; font-weight: 800; justify-content: center; min-height: 2rem; min-width: 2rem; padding: .2rem .65rem; }

.tfdf-public-status { border-radius: 999px; display: inline-block; font-size: .78rem; font-weight: 800; padding: .38rem .72rem; white-space: nowrap; }
.tfdf-public-status--open { background: #dcfce7; color: #166534; }
.tfdf-public-status--closed { background: #f1f5f9; color: #475569; }
.tfdf-public-status--tbc { background: #fef3c7; color: #92400e; }
.tfdf-public-stat { background: #f7fafc; border-left: 4px solid var(--tfdf-public-accent); border-radius: 8px; display: grid; gap: .18rem; margin-top: 1rem; padding: .8rem 1rem; }
.tfdf-public-stat span, .tfdf-public-stat small { color: #526273; }
.tfdf-public-stat strong { color: var(--tfdf-public-heading); font-size: 1.35rem; }

.tfdf-public-action { margin: 1rem 0 0; }
.tfdf-public-button { background: #0788c8 !important; border: 2px solid #0788c8 !important; border-radius: 9px; color: #fff !important; display: inline-flex; font-weight: 800; gap: .35rem; padding: .72rem 1rem; text-decoration: none; -webkit-text-fill-color: #fff !important; }
.tfdf-public-button:hover, .tfdf-public-button:focus { filter: brightness(.9); }
.tfdf-public-button--disabled { background: #0788c8 !important; border-color: #0788c8 !important; color: #fff !important; cursor: not-allowed; opacity: .58; }

.tfdf-public-table-wrap { overflow-x: auto; }
.tfdf-public-component .tfdf-table { border-collapse: collapse; min-width: 640px; width: 100%; }
.tfdf-public-component .tfdf-table th { background: #eef4f8; color: #152332; font-size: .78rem; letter-spacing: .04em; padding: .72rem; text-align: left; text-transform: uppercase; }
.tfdf-public-component .tfdf-table td { border-bottom: 1px solid #e5ebf0; color: #253544; padding: .72rem; vertical-align: top; }
.tfdf-public-component .tfdf-table tbody tr:last-child td { border-bottom: 0; }
.tfdf-public-empty { color: #607080; margin-bottom: 0; }

.tfdf-public-announcement-list { display: grid; gap: .85rem; }
.tfdf-public-announcement { background: #f8fafc; border: 1px solid #e5ebf0; border-left: 4px solid var(--tfdf-public-accent); border-radius: 10px; padding: 1rem; }
.tfdf-public-announcement small { color: #607080; display: block; margin-bottom: .35rem; }
.tfdf-public-announcement h4 { margin-bottom: .45rem; }
.tfdf-public-announcement p { margin-bottom: 0; }

.tfdf-event-countdown { text-align: center; }
.tfdf-event-countdown .tfdf-countdown-date { color: #526273; margin-top: -.2rem; }
.tfdf-countdown-units { display: grid; gap: .6rem; grid-template-columns: repeat(4, minmax(70px, 1fr)); margin: 1rem auto .7rem; max-width: 620px; }
.tfdf-countdown-units span { background: #0d2235; border-radius: 10px; color: #fff; padding: .75rem .35rem; }
.tfdf-countdown-units strong { display: block; font-size: clamp(1.45rem, 4vw, 2.4rem); line-height: 1; }
.tfdf-countdown-units small { color: #c9d8e5; display: block; font-size: .7rem; letter-spacing: .08em; margin-top: .35rem; text-transform: uppercase; }
.tfdf-countdown-state { color: #526273; font-weight: 700; margin-bottom: 0; }
.tfdf-event-countdown.is-started .tfdf-countdown-units { opacity: .6; }
.tfdf-calendar-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.tfdf-round-timetable { margin-top: 1rem; }
.tfdf-timetable-list { display: grid; gap: .65rem; margin-top: 1rem; }
.tfdf-timetable-list article { display: grid; grid-template-columns: minmax(100px, auto) 1fr; gap: 1rem; padding: .85rem 1rem; border: 1px solid #dce4ec; border-left: 4px solid var(--tfdf-public-accent); border-radius: 9px; background: #f8fafc; }
.tfdf-timetable-list time { color: #075f8f; font-weight: 900; }
.tfdf-timetable-list strong { color: var(--tfdf-public-heading); }
.tfdf-timetable-list p { margin: .25rem 0 0; color: #526273; }

@media (max-width: 560px) {
	.tfdf-public-heading { align-items: flex-start; flex-direction: column; }
	.tfdf-countdown-units { grid-template-columns: repeat(2, 1fr); }
	.tfdf-public-button { box-sizing: border-box; justify-content: center; text-align: center; width: 100%; }
	.tfdf-calendar-actions { display: grid; grid-template-columns: 1fr; }
	.tfdf-timetable-list article { grid-template-columns: 1fr; gap: .35rem; }
}

/* Public website completion */
.tfdf-series-overview__hero,.tfdf-season-overview__hero,.tfdf-round-header__layout { align-items:start; display:grid; gap:clamp(1rem,3vw,2rem); grid-template-columns:minmax(0,1fr) minmax(180px,34%); }
.tfdf-series-overview__hero img,.tfdf-season-overview__hero img,.tfdf-round-header__poster { background:#fff; border:1px solid #dce4ec; border-radius:12px; height:auto; max-height:320px; object-fit:contain; width:100%; }
.tfdf-public-feature { background:#eef8fd; border-left:5px solid var(--tfdf-public-accent); border-radius:10px; display:grid; gap:.2rem; margin:1rem 0; padding:1rem; }
.tfdf-public-info-grid,.tfdf-season-history-grid,.tfdf-news-grid,.tfdf-document-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); margin-top:1rem; }
.tfdf-public-info-grid article,.tfdf-season-history-grid article,.tfdf-news-card,.tfdf-document-grid article { background:#f8fafc; border:1px solid #dce4ec; border-radius:11px; padding:1rem; }
.tfdf-news-card img { aspect-ratio:16/9; border-radius:8px; margin-bottom:.75rem; object-fit:cover; width:100%; }
.tfdf-news-card small,.tfdf-sponsor-card small,.tfdf-public-footnote { color:#607080; }
.tfdf-public-stat-grid { display:grid; gap:.8rem; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); margin-top:1rem; }
.tfdf-public-stat-grid article { background:#f4f8fb; border-radius:10px; display:grid; gap:.25rem; padding:.9rem; }
.tfdf-public-stat-grid span { color:#526273; font-size:.78rem; font-weight:800; text-transform:uppercase; }
.tfdf-public-stat-grid strong { color:#0b1724; font-size:1.45rem; }
.tfdf-sponsor-grid { align-items:stretch; display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
.tfdf-sponsor-card { align-items:center; background:#f8fafc; border:1px solid #dce4ec; border-radius:11px; display:flex; flex-direction:column; gap:.6rem; justify-content:center; min-height:130px; padding:1rem; text-align:center; }
.tfdf-sponsor-card img { max-height:80px; max-width:180px; object-fit:contain; width:100%; }
.tfdf-public-actions { display:flex; flex-wrap:wrap; gap:.7rem; }
.tfdf-weather-grid,.tfdf-session-meta-grid { display:grid; gap:.75rem; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); margin:1rem 0; }
.tfdf-weather-grid article,.tfdf-session-meta-grid span { background:#f4f8fb; border-radius:9px; display:grid; gap:.2rem; padding:.85rem; }
.tfdf-session-meta-grid strong { color:#526273; font-size:.75rem; letter-spacing:.05em; text-transform:uppercase; }
.tfdf-session-detail { scroll-margin-top:2rem; }
.tfdf-public-penalties { background:#fff7ed; border-left:4px solid #f59e0b; border-radius:9px; margin-top:1rem; padding:.85rem 1rem; }
@media (max-width:700px){.tfdf-series-overview__hero,.tfdf-season-overview__hero,.tfdf-round-header__layout{grid-template-columns:1fr}.tfdf-series-overview__hero img,.tfdf-season-overview__hero img,.tfdf-round-header__poster{max-height:260px}.tfdf-public-actions{display:grid}.tfdf-public-actions .tfdf-public-button{width:100%}}

/* Complete Championship information and paid Driver resources */
.tfdf-championship-information { overflow:hidden; }
.tfdf-championship-description { color:#26394a; font-size:1.02rem; line-height:1.7; margin:1rem 0; max-width:1000px; }
.tfdf-championship-notice { background:#eef8fd; border-left:5px solid var(--tfdf-public-accent); border-radius:10px; color:#183247; margin:1rem 0; padding:1rem 1.1rem; }
.tfdf-championship-notice > :last-child,.tfdf-championship-description > :last-child { margin-bottom:0; }
.tfdf-championship-facts { display:grid; gap:.75rem; grid-template-columns:repeat(auto-fit,minmax(175px,1fr)); margin:1rem 0; }
.tfdf-championship-facts article { background:#f4f8fb; border:1px solid #dce4ec; border-top:4px solid var(--tfdf-public-accent); border-radius:10px; display:grid; gap:.25rem; padding:.9rem 1rem; }
.tfdf-championship-facts span { color:#526273; font-size:.73rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.tfdf-championship-facts strong { color:#101d2a; font-size:1rem; }
.tfdf-championship-actions { margin:1rem 0 1.25rem; }
.tfdf-championship-scoring { background:#0d2235; border-radius:11px; color:#fff; margin-top:1rem; padding:1rem 1.1rem; }
.tfdf-championship-scoring h4,.tfdf-championship-scoring p { color:#fff; margin:.15rem 0; }
.tfdf-championship-rounds { margin-top:1.35rem; }
.tfdf-championship-round-list { display:grid; gap:.7rem; }
.tfdf-championship-round-list article { align-items:center; background:#f8fafc; border:1px solid #dce4ec; border-left:5px solid var(--tfdf-public-accent); border-radius:10px; display:flex; gap:1rem; justify-content:space-between; padding:.85rem 1rem; }
.tfdf-championship-round-list article > div:first-child { display:grid; gap:.15rem; }
.tfdf-championship-round-list small,.tfdf-championship-round-list span { color:#526273; }
.tfdf-championship-round-list strong { color:#101d2a; }
.tfdf-championship-round-actions { display:flex; flex-wrap:wrap; gap:.5rem; }
.tfdf-championship-round-actions a { background:#0788c8; border-radius:7px; color:#fff !important; font-size:.8rem; font-weight:800; padding:.48rem .7rem; text-decoration:none; -webkit-text-fill-color:#fff; }
.tfdf-driver-resources { border-color:#0788c8; box-shadow:0 14px 35px rgba(7,136,200,.13); }
.tfdf-driver-resource-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); margin-top:1rem; }
.tfdf-driver-resource-grid article { background:#f8fafc; border:1px solid #dce4ec; border-top:5px solid #0788c8; border-radius:11px; padding:1rem; }
.tfdf-driver-resource-grid h4 { color:#101d2a; margin:.35rem 0; }
.tfdf-driver-resource-grid p { color:#526273; }
.tfdf-resource-type { color:#0675ae; font-size:.72rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
@media (max-width:700px){.tfdf-championship-round-list article{align-items:stretch;flex-direction:column}.tfdf-championship-round-actions{display:grid;grid-template-columns:1fr}.tfdf-championship-round-actions a{text-align:center}.tfdf-championship-facts{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.tfdf-championship-facts{grid-template-columns:1fr}}
.tfdf-class-standings-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
.tfdf-class-table { overflow:hidden; border:1px solid #d9e2ec; border-top:5px solid var(--tfdf-class-colour,#0788c8); border-radius:12px; background:#fff; }
.tfdf-class-table h4 { margin:0; padding:14px 16px; color:#101828; }
