.tvp-f1-page {
	--f1-red: #e10600;
	--f1-red-dark: #a90400;
	--f1-ink: #111318;
	--f1-muted: #656b76;
	--f1-line: color-mix(in srgb, currentColor 14%, transparent);
	--f1-surface: color-mix(in srgb, Canvas 96%, currentColor 4%);
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0 auto;
	padding: 18px 16px 56px;
	color: var(--f1-ink);
	overflow-x: hidden;
	overflow-x: clip;
}

.tvp-f1-page *,
.tvp-f1-page *::before,
.tvp-f1-page *::after {
	box-sizing: border-box;
}

[data-theme="dark"] .tvp-f1-page {
	--f1-ink: #f4f5f7;
	--f1-muted: #aeb3bd;
	--f1-surface: #202329;
}

.tvp-f1-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: .82rem;
	align-items: start;
}

.tvp-f1-layout-main,
.tvp-f1-layout-side {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.tvp-f1-layout-side-sticky {
	position: static;
}

.tvp-f1-inline-slot {
	width: min(100%, 300px);
	margin: .82rem auto 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.tvp-f1-inline-slot > * {
	max-width: 100%;
}

.tvp-f1-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(18px, 3vw, 28px);
	border-radius: 18px;
	background:
		linear-gradient(115deg, rgba(225, 6, 0, .98), rgba(157, 0, 0, .86) 48%, rgba(18, 19, 23, .98) 48.2%),
		#111318;
	color: #fff;
	box-shadow: 0 22px 45px rgba(17, 19, 24, .18);
}

.tvp-f1-hero::after {
	content: "";
	position: absolute;
	z-index: 0;
	inset: -45% -6% auto auto;
	width: 280px;
	aspect-ratio: 1;
	border: 32px solid rgba(255, 255, 255, .08);
	border-radius: 50%;
}

.tvp-f1-circuit-image {
	display: block;
	object-fit: contain;
	pointer-events: none;
	user-select: none;
}

.tvp-f1-hero-circuit {
	position: absolute;
	z-index: 0;
	top: 50%;
	right: clamp(18px, 4vw, 42px);
	width: clamp(108px, 17vw, 178px);
	height: 86%;
	transform: translateY(-50%);
	filter: invert(1);
	opacity: .3;
}

.tvp-f1-hero.has-circuit h1,
.tvp-f1-hero.has-circuit .tvp-f1-hero-eyebrow,
.tvp-f1-hero.has-circuit p,
.tvp-f1-hero.has-circuit .tvp-f1-hero-meta {
	padding-right: clamp(88px, 17vw, 170px);
}

.tvp-f1-hero-eyebrow {
	position: relative;
	z-index: 1;
	margin-bottom: 7px;
	color: rgba(255, 255, 255, .74);
	font-size: .72rem;
	font-weight: 850;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.tvp-f1-hero h1 {
	position: relative;
	z-index: 1;
	max-width: 760px;
	margin: 0;
	font-size: clamp(1.7rem, 3vw, 2.85rem);
	line-height: 1;
	letter-spacing: -.045em;
}

.tvp-f1-hero h1.has-flag {
	display: flex;
	align-items: center;
	gap: .28em;
}

.tvp-f1-hero h1.has-flag > span:last-child {
	min-width: 0;
}

.tvp-f1-hero-title-flag {
	flex: 0 0 auto;
	font-size: .7em;
	letter-spacing: 0;
}

.tvp-f1-hero p {
	position: relative;
	z-index: 1;
	max-width: 700px;
	margin: 9px 0 0;
	color: rgba(255, 255, 255, .86);
	font-size: clamp(.86rem, 1.5vw, 1rem);
}

.tvp-f1-hero-meta {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}

.tvp-f1-hero-meta span {
	padding: 5px 8px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
	background: rgba(0, 0, 0, .15);
	font-size: .75rem;
}

.tvp-f1-hero-cta {
	position: relative;
	z-index: 1;
	display: inline-flex;
	width: max-content;
	max-width: 100%;
	align-items: center;
	gap: 6px;
	margin-top: 12px;
	padding: 8px 11px;
	border: 1px solid rgba(255, 255, 255, .42);
	border-radius: 999px;
	background: rgba(0, 0, 0, .18);
	color: #fff;
	font-size: .78rem;
	font-weight: 800;
	text-decoration: none;
	transition: background-color .18s ease, transform .18s ease;
}

.tvp-f1-hero-cta:link,
.tvp-f1-hero-cta:visited,
.tvp-f1-hero-cta:hover,
.tvp-f1-hero-cta:active {
	color: #fff;
}

.tvp-f1-hero-cta:hover {
	background: rgba(0, 0, 0, .34);
	transform: translateY(-1px);
}

.tvp-f1-nav {
	display: flex;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	gap: 6px;
	overflow-x: auto;
	margin: 18px 0 26px;
	padding: 5px;
	border: 1px solid var(--f1-line);
	border-radius: 14px;
	background: var(--f1-surface);
	scrollbar-width: none;
}

.tvp-f1-nav::-webkit-scrollbar {
	display: none;
}

.tvp-f1-nav a {
	flex: 0 0 auto;
	padding: 10px 15px;
	border-radius: 10px;
	color: var(--f1-muted);
	font-size: .9rem;
	font-weight: 750;
	text-decoration: none;
}

.tvp-f1-nav a:hover,
.tvp-f1-nav a.is-active {
	background: var(--f1-red);
	color: #fff;
}

.tvp-f1-section {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 30px;
}

.tvp-f1-section-heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 14px;
}

.tvp-f1-section-heading h2 {
	margin: 0;
	font-size: clamp(1.25rem, 2.4vw, 1.75rem);
	letter-spacing: -.025em;
}

.tvp-f1-section-heading a,
.tvp-f1-primary-link {
	color: var(--f1-red);
	font-size: .88rem;
	font-weight: 750;
	text-decoration: none;
}

.tvp-f1-focus-grid,
.tvp-f1-ranking-layout {
	display: grid;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.tvp-f1-focus-grid > *,
.tvp-f1-ranking-layout > * {
	min-width: 0;
}

.tvp-f1-home-ranking-tabs {
	display: none;
}

.tvp-f1-home-ranking-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.tvp-f1-home-ranking-panel {
	min-width: 0;
}

.tvp-f1-home-ranking-panel h3 {
	margin: 0 0 10px;
	font-size: 1rem;
}

.tvp-f1-home-gp-list .tvp-f1-gp-card {
	min-height: 146px;
}

.tvp-f1-focus-card {
	position: relative;
	display: flex;
	overflow: hidden;
	min-height: 88px;
	flex-direction: column;
	justify-content: center;
	padding: 14px 17px;
	border: 1px solid var(--f1-line);
	border-radius: 14px;
	background: var(--f1-surface);
	color: var(--f1-ink);
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease;
}

.tvp-f1-focus-card.has-circuit {
	padding-right: 126px;
}

.tvp-f1-focus-circuit {
	position: absolute;
	top: 50%;
	right: 14px;
	width: 96px;
	height: 76px;
	transform: translateY(-50%);
	opacity: .64;
}

.tvp-f1-focus-card.is-next .tvp-f1-focus-circuit,
[data-theme="dark"] .tvp-f1-focus-card:not(.is-next) .tvp-f1-focus-circuit {
	filter: invert(1);
}

.tvp-f1-focus-card:hover,
.tvp-f1-gp-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(17, 19, 24, .1);
}

.tvp-f1-focus-card.is-next {
	border-color: transparent;
	background: linear-gradient(130deg, var(--f1-red), var(--f1-red-dark));
	color: #fff;
}

.tvp-f1-focus-card > span {
	margin-bottom: 4px;
	font-size: .66rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	opacity: .72;
}

.tvp-f1-focus-card strong {
	font-size: clamp(1rem, 1.7vw, 1.25rem);
	line-height: 1.15;
}

.tvp-f1-focus-card small {
	margin-top: 4px;
	color: inherit;
	font-size: .78rem;
	opacity: .72;
}

.tvp-f1-adjacent {
	display: grid;
	width: 100%;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-top: 30px;
}

.tvp-f1-adjacent-card {
	position: relative;
	display: flex;
	overflow: hidden;
	min-width: 0;
	min-height: 96px;
	flex-direction: column;
	justify-content: center;
	padding: 15px 18px;
	border: 1px solid var(--f1-line);
	border-radius: 14px;
	background: var(--f1-surface);
	color: var(--f1-ink);
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease;
}

.tvp-f1-adjacent-card.has-circuit {
	padding-right: 116px;
}

.tvp-f1-adjacent-card.is-next {
	border-color: transparent;
	background: linear-gradient(130deg, var(--f1-red), var(--f1-red-dark));
	color: #fff;
}

.tvp-f1-adjacent-card.is-previous:first-child {
	grid-column: 2;
}

.tvp-f1-adjacent-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(17, 19, 24, .1);
}

.tvp-f1-adjacent-label {
	margin-bottom: 5px;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	opacity: .72;
}

.tvp-f1-adjacent-card strong {
	font-size: clamp(.98rem, 1.7vw, 1.18rem);
	line-height: 1.16;
}

.tvp-f1-adjacent-card small {
	margin-top: 5px;
	color: inherit;
	font-size: .78rem;
	opacity: .72;
}

.tvp-f1-adjacent-circuit {
	position: absolute;
	top: 50%;
	right: 14px;
	width: 82px;
	height: 70px;
	transform: translateY(-50%);
	opacity: .55;
}

.tvp-f1-adjacent-card.is-next .tvp-f1-adjacent-circuit,
[data-theme="dark"] .tvp-f1-adjacent-card:not(.is-next) .tvp-f1-adjacent-circuit {
	filter: invert(1);
}

.tvp-f1-gp-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.tvp-f1-gp-card {
	position: relative;
	display: grid;
	overflow: hidden;
	grid-template-columns: 1fr auto;
	gap: 5px 10px;
	min-height: 174px;
	padding: 18px;
	border: 1px solid var(--f1-line);
	border-top: 4px solid var(--f1-red);
	border-radius: 15px;
	background: var(--f1-surface);
	color: var(--f1-ink);
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease;
}

.tvp-f1-gp-circuit {
	position: absolute;
	right: 12px;
	bottom: 12px;
	width: 78px;
	height: 68px;
	opacity: .68;
}

[data-theme="dark"] .tvp-f1-gp-circuit {
	filter: invert(1);
}

.tvp-f1-gp-card.has-circuit small {
	padding-right: 76px;
}

.tvp-f1-gp-card.has-circuit .tvp-f1-status {
	position: relative;
	z-index: 1;
}

.tvp-f1-gp-card.is-past {
	border-top-color: #aeb3bd;
}

.tvp-f1-gp-card.is-focus {
	border-top-color: var(--f1-red);
}

.tvp-f1-gp-card.is-future {
	border-top-color: #269c55;
}

.tvp-f1-gp-round {
	color: var(--f1-muted);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.tvp-f1-gp-flag {
	grid-column: 2;
	grid-row: 1 / 3;
	font-size: 1.7rem;
}

.tvp-f1-gp-card strong {
	grid-column: 1;
	font-size: 1.06rem;
}

.tvp-f1-gp-card > span:not(.tvp-f1-gp-round, .tvp-f1-gp-flag, .tvp-f1-status),
.tvp-f1-gp-card small {
	grid-column: 1 / -1;
	color: var(--f1-muted);
}

.tvp-f1-status {
	display: inline-flex;
	width: max-content;
	align-items: center;
	align-self: end;
	padding: 5px 8px;
	border-radius: 999px;
	background: #e7e9ed;
	color: #4d525b;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.tvp-f1-status.is-live {
	background: var(--f1-red);
	color: #fff;
	animation: tvp-f1-pulse 1.8s infinite;
}

.tvp-f1-status.is-completed {
	background: #dcefe2;
	color: #176032;
}

.tvp-f1-status.is-alert {
	background: #fff0c7;
	color: #775300;
}

.tvp-f1-status.is-countdown {
	background: color-mix(in srgb, var(--f1-red) 11%, var(--f1-surface));
	color: var(--f1-red);
}

[data-theme="dark"] .tvp-f1-status:not(.is-live) {
	background: #343840;
	color: #d7d9de;
}

[data-theme="dark"] .tvp-f1-status.is-countdown {
	background: color-mix(in srgb, var(--f1-red) 22%, #343840);
	color: #ff8d88;
}

@keyframes tvp-f1-pulse {
	50% { opacity: .72; }
}

.tvp-f1-table-wrap,
.tvp-f1-results {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
	border: 1px solid var(--f1-line);
	border-radius: 14px;
	background: var(--f1-surface);
}

.tvp-f1-table-wrap:focus-visible,
.tvp-f1-results:focus-visible,
.tvp-f1-sessions:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--f1-red) 45%, transparent);
	outline-offset: 3px;
}

.tvp-f1-data-updated {
	margin: 9px 0 0;
	color: var(--f1-muted);
	font-size: .75rem;
	text-align: right;
}

.tvp-f1-table,
.tvp-f1-results table {
	width: max-content;
	min-width: 100%;
	border-collapse: collapse;
	font-size: .9rem;
}

.tvp-f1-table th,
.tvp-f1-table td,
.tvp-f1-results th,
.tvp-f1-results td {
	padding: 11px 12px;
	border-bottom: 1px solid var(--f1-line);
	text-align: left;
	white-space: nowrap;
}

.tvp-f1-table th,
.tvp-f1-results th {
	color: var(--f1-muted);
	font-size: .7rem;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.tvp-f1-table tbody tr:last-child td,
.tvp-f1-results tbody tr:last-child td {
	border-bottom: 0;
}

.tvp-f1-number {
	display: inline-grid;
	width: 27px;
	height: 27px;
	place-items: center;
	margin-right: 8px;
	border-radius: 7px;
	background: var(--f1-red);
	color: #fff;
	font-size: .72rem;
}

.tvp-f1-driver-name,
.tvp-f1-driver-card h3,
.tvp-f1-team-driver,
.tvp-f1-team-name {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.tvp-f1-driver-copy {
	display: inline-flex;
	min-width: 0;
	flex-direction: column;
	gap: 2px;
}

.tvp-f1-driver-copy strong {
	font-weight: 700;
}

.tvp-f1-driver-copy small {
	color: var(--f1-muted);
	font-size: .78em;
	font-weight: 400;
}

.tvp-f1-driver-image,
.tvp-f1-team-logo {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: #fff;
	box-shadow: inset 0 0 0 1px rgba(20, 22, 28, .08);
}

.tvp-f1-driver-image img,
.tvp-f1-team-logo img {
	display: block;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.tvp-f1-driver-image.is-table {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: linear-gradient(145deg, #fff 30%, #eceef2);
}

.tvp-f1-driver-image.is-table img {
	width: 36px;
	height: 36px;
	object-position: center bottom;
}

.tvp-f1-team-logo.is-table {
	width: 48px;
	height: 34px;
	padding: 4px 6px;
	border-radius: 9px;
}

.tvp-f1-team-logo.is-table img {
	width: 36px;
	height: 24px;
}

.tvp-f1-driver-flag {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 25px;
	height: 21px;
	border: 1px solid var(--f1-line);
	border-radius: 4px;
	background: color-mix(in srgb, Canvas 92%, currentColor 8%);
	font-size: 18px;
	line-height: 1;
}

.tvp-f1-driver-grid,
.tvp-f1-team-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.tvp-f1-driver-card,
.tvp-f1-team-card {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 16px;
	overflow: hidden;
	padding: 20px;
	border: 1px solid var(--f1-line);
	border-radius: 16px;
	background: var(--f1-surface);
}

.tvp-f1-driver-card.has-image {
	grid-template-columns: auto minmax(0, 1fr) 86px;
	padding-right: 12px;
}

.tvp-f1-driver-image.is-card {
	align-self: end;
	width: 86px;
	height: 112px;
	margin: -10px 0 -20px;
	border-radius: 44px 44px 0 0;
	background: linear-gradient(145deg, #fff 25%, #e7e9ee);
	box-shadow: none;
}

.tvp-f1-driver-image.is-card img {
	width: 86px;
	height: 112px;
	object-position: center bottom;
}

.tvp-f1-driver-rank,
.tvp-f1-team-rank {
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	border-radius: 12px;
	background: var(--f1-ink);
	color: Canvas;
	font-size: 1.1rem;
	font-weight: 900;
}

.tvp-f1-driver-number {
	color: var(--f1-red);
	font-size: .76rem;
	font-weight: 850;
}

.tvp-f1-driver-card h3,
.tvp-f1-team-card h3 {
	margin: 2px 0 4px;
	font-size: 1.1rem;
}

.tvp-f1-driver-card h3 {
	display: flex;
}

.tvp-f1-driver-card p {
	margin: 0;
	color: var(--f1-muted);
	font-size: .88rem;
}

.tvp-f1-driver-stats {
	display: flex;
	gap: 12px;
	margin-top: 12px;
	font-size: .82rem;
}

.tvp-f1-driver-stats span {
	color: var(--f1-muted);
}

.tvp-f1-team-card {
	display: block;
	padding-left: 76px;
}

.tvp-f1-team-card.has-logo h3 {
	padding-right: 104px;
}

.tvp-f1-team-logo.is-card {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 92px;
	height: 54px;
	padding: 8px 10px;
	border-radius: 12px;
}

.tvp-f1-team-logo.is-card img {
	width: 72px;
	height: 38px;
}

.tvp-f1-team-rank {
	position: absolute;
	top: 18px;
	left: 18px;
}

.tvp-f1-team-card ul {
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.tvp-f1-team-card li {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 0;
	border-top: 1px solid var(--f1-line);
	font-size: .84rem;
}

.tvp-f1-sessions {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	padding: 2px 0 7px;
	scroll-snap-type: x proximity;
	scroll-padding-inline: 2px;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}

.tvp-f1-tv-intro {
	margin: -3px 0 12px;
	color: var(--f1-muted);
	font-size: .86rem;
}

.tvp-f1-race-tv-focus {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 8px 14px;
	margin: -3px 0 12px;
	padding: 12px 14px;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 14px;
	background: linear-gradient(125deg, var(--f1-red), var(--f1-red-dark) 72%, #75100d);
	color: #fff;
	box-shadow: 0 10px 24px rgba(225, 6, 0, .16);
	text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease;
}

.tvp-f1-race-tv-focus:link,
.tvp-f1-race-tv-focus:visited,
.tvp-f1-race-tv-focus:hover,
.tvp-f1-race-tv-focus:active {
	color: #fff;
}

.tvp-f1-race-tv-focus:hover {
	transform: translateY(-1px);
	box-shadow: 0 13px 28px rgba(225, 6, 0, .24);
}

.tvp-f1-race-tv-focus span {
	padding: 4px 8px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	color: #fff;
	font-size: .68rem;
	font-weight: 900;
	text-transform: uppercase;
}

.tvp-f1-race-tv-focus .tvp-f1-race-tv-focus-copy {
	display: flex;
	min-width: 0;
	align-items: baseline;
	gap: 8px 18px;
	padding: 0;
	border-radius: 0;
	background: transparent;
	text-transform: none;
}

.tvp-f1-race-tv-focus strong {
	flex: 0 0 auto;
	color: #fff;
	font-size: .92rem;
}

.tvp-f1-race-tv-focus small {
	min-width: 0;
	color: rgba(255, 255, 255, .84);
	font-size: .82rem;
}

.tvp-f1-race-tv-focus b {
	display: grid;
	width: 30px;
	height: 30px;
	place-items: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, .14);
	color: #fff;
	font-size: 1rem;
}

.tvp-f1-session-card {
	position: relative;
	display: flex;
	min-width: 176px;
	min-height: 106px;
	flex: 1 0 176px;
	flex-direction: column;
	padding: 11px 12px;
	border: 1px solid var(--f1-line);
	border-top: 4px solid var(--f1-red);
	border-radius: 14px;
	background: var(--f1-surface);
	scroll-snap-align: start;
}

.tvp-f1-session-card.is-race {
	overflow: hidden;
	min-width: 244px;
	flex-basis: 244px;
	border-color: transparent;
	border-top: 0;
	background: linear-gradient(135deg, var(--f1-red), var(--f1-red-dark));
	color: #fff;
	box-shadow: 0 10px 24px rgba(225, 6, 0, .18);
}

.tvp-f1-session-card.is-race::after {
	content: '';
	position: absolute;
	inset: -52px -42px auto auto;
	width: 130px;
	aspect-ratio: 1;
	border: 18px solid rgba(255, 255, 255, .1);
	border-radius: 50%;
}

.tvp-f1-session-card.is-race .tvp-f1-session-head,
.tvp-f1-session-card.is-race .tvp-f1-session-footer {
	position: relative;
	z-index: 1;
}

.tvp-f1-session-card.is-race .tvp-f1-session-date > span:first-child {
	color: rgba(255, 255, 255, .78);
}

.tvp-f1-session-card.is-race .tvp-f1-session-head h3 {
	font-size: 1.16rem;
}

.tvp-f1-session-card.is-race .tvp-f1-session-meta span {
	background: rgba(255, 255, 255, .15);
	color: #fff;
}

.tvp-f1-session-weather-detail {
	position: relative;
	z-index: 1;
	margin: 5px 0 0;
	color: rgba(255, 255, 255, .78);
	font-size: .72rem;
}

.tvp-f1-session-head {
	min-width: 0;
}

.tvp-f1-session-date {
	display: flex;
	min-width: 0;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.tvp-f1-session-date > span:first-child {
	min-width: 0;
	color: var(--f1-muted);
	font-size: .78rem;
}

.tvp-f1-session-date .tvp-f1-status {
	flex: 0 0 auto;
	align-self: center;
	padding: 3px 7px;
	font-size: .64rem;
}

.tvp-f1-session-head h3 {
	margin: 3px 0 0;
	font-size: .98rem;
	line-height: 1.15;
}

.tvp-f1-session-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8px;
	margin-top: auto;
	padding-top: 8px;
}

.tvp-f1-session-actions {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 6px;
	margin-left: auto;
}

.tvp-f1-session-results-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 26px;
	padding: 4px 8px;
	border: 1px solid color-mix(in srgb, var(--f1-red) 38%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, var(--f1-red) 9%, transparent);
	color: var(--f1-red);
	font-size: .68rem;
	font-weight: 850;
	line-height: 1;
	text-decoration: none;
}

.tvp-f1-session-results-link:hover,
.tvp-f1-session-results-link:focus-visible {
	border-color: var(--f1-red);
	background: var(--f1-red);
	color: #fff;
}

.tvp-f1-session-card.is-race .tvp-f1-session-results-link {
	border-color: rgba(255, 255, 255, .65);
	background: #fff;
	color: var(--f1-red);
}

.tvp-f1-session-card.is-race .tvp-f1-session-results-link:hover,
.tvp-f1-session-card.is-race .tvp-f1-session-results-link:focus-visible {
	background: rgba(255, 255, 255, .88);
}

.tvp-f1-session-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	min-width: 0;
}

.tvp-f1-session-meta span {
	padding: 5px 8px;
	border-radius: 7px;
	background: color-mix(in srgb, var(--f1-ink) 7%, transparent);
	color: var(--f1-muted);
	font-size: .76rem;
}

.tvp-f1-session-results-browser {
	display: grid;
	gap: 8px;
	margin-top: 14px;
	scroll-margin-top: 95px;
}

.tvp-f1-session-results-tabs {
	display: flex;
	align-items: center;
	gap: 7px;
	overflow-x: auto;
	padding: 2px 1px 8px;
	scrollbar-width: thin;
}

.tvp-f1-session-results-switch {
	flex: 0 0 auto;
	padding: 8px 12px;
	border: 1px solid var(--f1-line);
	border-radius: 999px;
	background: var(--f1-surface);
	color: var(--f1-ink);
	cursor: pointer;
	font-size: .82rem;
	font-weight: 800;
	line-height: 1;
}

.tvp-f1-session-results-switch:hover,
.tvp-f1-session-results-switch:focus-visible {
	border-color: var(--f1-red);
	color: var(--f1-red);
}

.tvp-f1-session-results-switch.is-active {
	border-color: var(--f1-red);
	background: var(--f1-red);
	color: #fff;
}

.tvp-f1-session-results-panels {
	min-width: 0;
}

.tvp-f1-session-results-panel[hidden] {
	display: none;
}

.tvp-f1-session-results-panel .tvp-f1-results {
	margin-top: 3px;
}

.tvp-f1-results {
	margin-top: 15px;
}

.tvp-f1-video {
	overflow: hidden;
}

.tvp-f1-video-frame {
	position: relative;
	overflow: hidden;
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 11px;
	background: #090b0f;
}

.tvp-f1-video-button {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: #090b0f;
	cursor: pointer;
}

.tvp-f1-video-button:focus-visible {
	outline: 3px solid var(--f1-red);
	outline-offset: -3px;
}

.tvp-f1-video-thumbnail {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tvp-f1-video-play {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	width: 62px;
	height: 62px;
	place-items: center;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: var(--f1-red);
	color: #fff;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .35);
	transition: transform .18s ease, background-color .18s ease;
}

.tvp-f1-video-play span {
	margin-left: 4px;
	font-size: 1.45rem;
	line-height: 1;
}

.tvp-f1-video-button:hover .tvp-f1-video-play,
.tvp-f1-video-button:focus-visible .tvp-f1-video-play {
	transform: translate(-50%, -50%) scale(1.08);
	background: #ff130d;
}

.tvp-f1-tv-list {
	display: grid;
	gap: 8px;
}

.tvp-f1-tv-row {
	display: grid;
	grid-template-columns: minmax(96px, 120px) minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
	padding: 10px 12px;
	border: 1px solid var(--f1-line);
	border-radius: 10px;
	background: var(--f1-surface);
	color: var(--f1-ink);
	text-decoration: none;
}

.tvp-f1-tv-row time,
.tvp-f1-tv-links {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.tvp-f1-tv-body {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.tvp-f1-tv-visual {
	display: block;
	overflow: hidden;
	width: 120px;
	max-width: 28%;
	flex: 0 0 auto;
	border-radius: 7px;
	background: color-mix(in srgb, var(--f1-ink) 7%, transparent);
}

.tvp-f1-tv-visual img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.tvp-f1-tv-links {
	flex: 1 1 auto;
	min-width: 0;
}

.tvp-f1-tv-row time strong {
	font-size: .82rem;
	line-height: 1.2;
}

.tvp-f1-tv-row time span,
.tvp-f1-tv-links > span {
	color: var(--f1-muted);
	font-size: .78rem;
}

.tvp-f1-tv-programme {
	display: block;
	width: auto;
	max-width: 100%;
	color: inherit;
	font-size: .88rem;
	line-height: 1.22;
	overflow-wrap: anywhere;
	text-decoration: none;
}

.tvp-f1-tv-programme::after {
	content: ' ›';
	color: var(--f1-red);
}

.tvp-f1-tv-channels {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	margin-top: 4px;
}

.tvp-f1-tv-channel,
.tvp-f1-tv-channel:link,
.tvp-f1-tv-channel:visited {
	display: inline-flex;
	gap: 5px;
	align-items: center;
	width: max-content;
	max-width: 100%;
	padding: 2px 7px 2px 3px;
	border: 1px solid rgba(17, 19, 24, .14);
	border-radius: 999px;
	background: #f8f8f9;
	color: #2b3039;
	font-size: .68rem;
	font-weight: 700;
	text-decoration: none;
}

.tvp-f1-tv-channel-logo {
	display: block;
	width: 25px;
	height: 25px;
	object-fit: contain;
}

.tvp-f1-tv-programme:hover {
	color: var(--f1-red);
	text-decoration: underline;
}

.tvp-f1-tv-channel:hover,
.tvp-f1-tv-channel:focus-visible {
	background: #fff;
	color: #c70500;
	text-decoration: none;
}

.tvp-f1-tv-past {
	margin-top: 12px;
}

.tvp-f1-tv-past summary {
	display: inline-flex;
	gap: 5px;
	align-items: center;
	padding: 9px 12px;
	border: 1px solid var(--f1-line);
	border-radius: 999px;
	background: var(--f1-surface);
	color: var(--f1-muted);
	cursor: pointer;
	font-size: .78rem;
	font-weight: 750;
	list-style: none;
}

.tvp-f1-tv-past summary::-webkit-details-marker {
	display: none;
}

.tvp-f1-tv-past summary::before {
	content: '›';
	display: inline-block;
	font-size: 1rem;
	transition: transform .16s ease;
}

.tvp-f1-tv-past[open] summary::before {
	transform: rotate(90deg);
}

.tvp-f1-tv-past .tvp-f1-tv-list {
	margin-top: 8px;
}

.tvp-f1-tv-kind {
	padding: 5px 8px;
	border-radius: 999px;
	background: #e7e9ed;
	color: #555b64;
	font-size: .68rem;
	font-weight: 800;
	text-transform: uppercase;
}

.tvp-f1-tv-kind.is-direct {
	background: var(--f1-red);
	color: #fff;
}

.tvp-f1-empty,
.tvp-f1-setup {
	padding: 24px;
	border: 1px dashed var(--f1-line);
	border-radius: 14px;
	background: var(--f1-surface);
	text-align: center;
}

.tvp-f1-empty > span {
	font-size: 1.7rem;
}

.tvp-f1-empty p {
	margin: 8px 0 0;
	color: var(--f1-muted);
}

.tvp-f1-setup code {
	display: block;
	max-width: 700px;
	margin: 8px auto;
	padding: 10px 12px;
	border-radius: 8px;
	background: #111318;
	color: #f4f5f7;
	text-align: left;
	white-space: normal;
}

@media (max-width: 820px) {
	.tvp-f1-gp-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tvp-f1-ranking-layout,
	.tvp-f1-focus-grid {
		grid-template-columns: 1fr;
	}
}

@media (min-width: 1180px) {
	.tvp-f1-layout:not(.is-no-side) {
		grid-template-columns: minmax(0, 1fr) 320px;
	}

	.tvp-f1-layout-side {
		align-self: stretch;
	}

	.tvp-f1-layout-side-sticky {
		width: 100%;
	}

	.tvp-f1-layout-side .tvp-f1-inline-slot {
		margin: 0 0 0 auto;
	}
}

@media (max-width: 700px) {
	.tvp-f1-page {
		padding-inline: 10px;
	}

	.tvp-f1-hero {
		padding: 18px;
		border-radius: 14px;
		background: linear-gradient(130deg, var(--f1-red), #6f0604 68%, #17181c);
	}

	.tvp-f1-hero-circuit {
		right: 8px;
		width: 112px;
		opacity: .2;
	}

	.tvp-f1-hero.has-circuit h1,
	.tvp-f1-hero.has-circuit .tvp-f1-hero-eyebrow,
	.tvp-f1-hero.has-circuit p,
	.tvp-f1-hero.has-circuit .tvp-f1-hero-meta {
		padding-right: 0;
	}

	.tvp-f1-gp-grid,
	.tvp-f1-driver-grid,
	.tvp-f1-team-grid {
		grid-template-columns: 1fr;
	}

	.tvp-f1-home-ranking-tabs {
		display: flex;
		gap: 6px;
		margin-bottom: 10px;
		padding: 4px;
		border: 1px solid var(--f1-line);
		border-radius: 12px;
		background: var(--f1-surface);
	}

	.tvp-f1-home-ranking-tabs button {
		flex: 1 1 0;
		padding: 8px 10px;
		border: 0;
		border-radius: 9px;
		background: transparent;
		color: var(--f1-muted);
		cursor: pointer;
		font-size: .8rem;
		font-weight: 800;
	}

	.tvp-f1-home-ranking-tabs button.is-active {
		background: var(--f1-red);
		color: #fff;
	}

	.tvp-f1-home-ranking-grid {
		display: block;
	}

	.tvp-f1-home-ranking-panel:not(.is-active) {
		display: none;
	}

	.tvp-f1-home-ranking-panel h3 {
		display: none;
	}

	.tvp-f1-driver-card.has-image {
		grid-template-columns: auto minmax(0, 1fr) 68px;
		gap: 12px;
	}

	.tvp-f1-driver-image.is-card,
	.tvp-f1-driver-image.is-card img {
		width: 68px;
		height: 94px;
	}

	.tvp-f1-team-logo.is-card {
		width: 74px;
		height: 46px;
	}

	.tvp-f1-team-logo.is-card img {
		width: 58px;
		height: 30px;
	}

	.tvp-f1-team-card.has-logo h3 {
		padding-right: 82px;
	}

	.tvp-f1-session-card {
		min-width: 158px;
		min-height: 102px;
		flex-basis: 158px;
	}

	.tvp-f1-sessions {
		margin-right: -10px;
		padding-right: 28px;
		scroll-padding-inline: 0 28px;
		scroll-snap-type: x mandatory;
	}

	.tvp-f1-race-tv-focus {
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 7px 10px;
		padding: 11px 12px;
	}

	.tvp-f1-race-tv-focus .tvp-f1-race-tv-focus-copy {
		align-items: flex-start;
		flex-direction: column;
		gap: 2px;
	}

	.tvp-f1-race-tv-focus strong {
		font-size: .84rem;
	}

	.tvp-f1-race-tv-focus small {
		font-size: .72rem;
	}

	.tvp-f1-session-card.is-race {
		min-width: 220px;
		flex-basis: 220px;
	}

	.tvp-f1-video-play {
		width: 52px;
		height: 52px;
	}

	.tvp-f1-tv-row {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 8px 10px;
		align-items: start;
		padding: 10px;
	}

	.tvp-f1-tv-row time {
		grid-column: 1;
		grid-row: 1;
		align-items: baseline;
		flex-flow: row wrap;
		gap: 3px 7px;
	}

	.tvp-f1-tv-body {
		grid-column: 1 / -1;
		grid-row: 2;
		align-items: flex-start;
		flex-direction: row;
		gap: 10px;
	}

	.tvp-f1-tv-visual {
		width: 92px;
		max-width: 32%;
		border-radius: 6px;
	}

	.tvp-f1-tv-programme {
		font-size: .82rem;
	}

	.tvp-f1-tv-channels {
		gap: 4px;
		margin-top: 5px;
	}

	.tvp-f1-tv-channel {
		gap: 4px;
		padding: 2px 6px 2px 3px;
		font-size: .64rem;
	}

	.tvp-f1-tv-channel-logo {
		width: 22px;
		height: 22px;
	}

	.tvp-f1-tv-kind {
		grid-column: 2;
		grid-row: 1;
		align-self: start;
		width: max-content;
		padding: 4px 7px;
		font-size: .62rem;
	}

	.tvp-f1-section-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.tvp-f1-adjacent {
		grid-template-columns: 1fr;
	}

	.tvp-f1-adjacent-card.is-previous:first-child {
		grid-column: 1;
	}

	.tvp-f1-table th,
	.tvp-f1-table td,
	.tvp-f1-results th,
	.tvp-f1-results td {
		padding: 9px 8px;
	}

	.tvp-f1-table,
	.tvp-f1-results table {
		font-size: .82rem;
	}
}
