.fet-portal,
.fetp-modal {
	--fet-navy: #063c32;
	--fet-blue: #08745a;
	--fet-green: #075a46;
	--fet-lime: #dff34a;
	--fet-canvas: #eff3ee;
	--fet-paper: #ffffff;
	--fet-ink: #14231e;
	--fet-muted: #607068;
	--fet-line: #d7e0da;
	--fet-danger: #b4233b;
	--fet-soft-green: #e6f0eb;
	--fet-display: "Bahnschrift SemiCondensed", "Arial Narrow", "Aptos Display", sans-serif;
	--fet-body: Inter, Aptos, "Segoe UI", sans-serif;
	--fet-data: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
	--fet-shadow: 0 24px 70px rgb(6 60 50 / 14%);
	--fet-shadow-soft: 0 10px 30px rgb(20 35 30 / 7%);
	color: var(--fet-ink);
	font-family: var(--fet-body);
	font-size: 1rem;
	line-height: 1.55;
}

.fet-portal {
	--fet-gutter: clamp(1rem, 4cqi, 2.35rem);
	box-sizing: border-box;
	container: fetportal / inline-size;
	position: relative;
	width: 100%;
	margin-block: 2rem;
	padding: var(--fet-gutter);
	border: 1px solid var(--fet-line);
	border-radius: 24px;
	background: var(--fet-canvas);
	box-shadow: var(--fet-shadow-soft);
	isolation: isolate;
}

.fet-portal *,
.fet-portal *::before,
.fet-portal *::after,
.fetp-modal *,
.fetp-modal *::before,
.fetp-modal *::after {
	box-sizing: border-box;
}

.fet-portal :where(h2, h3, h4, p, dl, ul),
.fetp-modal :where(h2, h3, h4, p, dl, ul) {
	margin-top: 0;
}

.fet-portal :where(h2, h3, h4),
.fetp-modal :where(h2, h3, h4) {
	color: var(--fet-navy);
	font-family: var(--fet-display);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 1.08;
}

.fet-portal h2,
.fetp-modal h2 {
	margin-bottom: 0;
	font-size: clamp(2rem, 4vw, 3.15rem);
	font-size: clamp(2rem, 6cqi, 3.15rem);
}

.fet-portal h3,
.fetp-modal h3 {
	font-size: clamp(1.2rem, 2vw, 1.5rem);
	font-size: clamp(1.2rem, 3cqi, 1.5rem);
}

.fet-portal h4,
.fetp-modal h4 {
	font-size: 1.05rem;
}

.fet-portal a,
.fetp-modal a {
	color: var(--fet-green);
	font-weight: 700;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.2em;
	transition: color 160ms ease;
}

.fet-portal a:hover,
.fetp-modal a:hover {
	color: var(--fet-green);
}

.fet-portal :where(a, button, input, select):focus-visible,
.fetp-modal :where(a, button, [tabindex]):focus-visible {
	outline: 3px solid var(--fet-lime);
	outline-offset: 3px;
}

:where(.fet-portal, .fetp-modal) .fet-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

:where(.fet-portal, .fetp-modal) .fet-kicker {
	display: flex;
	gap: 0.55rem;
	align-items: center;
	margin-bottom: 0.55rem;
	color: var(--fet-green);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

:where(.fet-portal, .fetp-modal) .fet-kicker::before {
	content: "";
	width: 0.55rem;
	height: 0.55rem;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--fet-lime);
	box-shadow: inset 0 0 0 1px rgb(6 60 50 / 18%);
}

:where(.fet-portal, .fetp-modal) .fet-data-line {
	font-family: var(--fet-data);
	font-variant-numeric: tabular-nums;
}

.fet-portal .fet-portal__header {
	position: relative;
	display: grid;
	min-height: 12.5rem;
	gap: 1rem;
	align-content: end;
	margin: calc(var(--fet-gutter) * -1) calc(var(--fet-gutter) * -1) 1.75rem;
	padding: clamp(1.4rem, 4vw, 2.6rem);
	overflow: hidden;
	border: 0;
	border-radius: 23px 23px 16px 16px;
	background: var(--fet-navy);
	color: #ffffff;
}

.fet-portal .fet-portal__header::after {
	content: "";
	position: absolute;
	top: 50%;
	right: clamp(-3rem, 2cqi, 2rem);
	width: clamp(12rem, 34cqi, 24rem);
	aspect-ratio: 1.82;
	border: 1px solid rgb(223 243 74 / 44%);
	background:
		linear-gradient(90deg, transparent calc(50% - 0.5px), rgb(223 243 74 / 35%) 50%, transparent calc(50% + 0.5px)),
		linear-gradient(0deg, transparent calc(50% - 0.5px), rgb(223 243 74 / 35%) 50%, transparent calc(50% + 0.5px)),
		linear-gradient(90deg, transparent 24%, rgb(223 243 74 / 28%) 24%, rgb(223 243 74 / 28%) calc(24% + 1px), transparent calc(24% + 1px), transparent 76%, rgb(223 243 74 / 28%) 76%, rgb(223 243 74 / 28%) calc(76% + 1px), transparent calc(76% + 1px));
	opacity: 0.9;
	transform: translateY(-50%) rotate(-7deg);
	pointer-events: none;
}

.fet-portal .fet-portal__header > * {
	position: relative;
	z-index: 1;
}

.fet-portal .fet-portal__header :is(h2, .fet-kicker) {
	color: #ffffff;
}

.fet-portal .fet-portal__header .fet-kicker {
	color: var(--fet-lime);
}

.fet-portal .fet-portal__header > p {
	max-width: 34rem;
	margin-bottom: 0;
	color: #d9e8e1;
	font-size: 0.96rem;
}

.fet-portal .fet-detail-header {
	align-items: end;
}

.fet-portal .fet-back-link {
	justify-self: start;
	color: #ffffff;
}

.fet-portal :is(.fet-filter, .fet-search-form) {
	margin-bottom: 1.5rem;
	padding: clamp(1rem, 2.5vw, 1.5rem);
	padding: clamp(1rem, 3cqi, 1.5rem);
	border: 1px solid var(--fet-line);
	border-top: 4px solid var(--fet-lime);
	border-radius: 16px;
	background: var(--fet-paper);
	box-shadow: var(--fet-shadow-soft);
}

.fet-portal .fet-filter {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	align-items: end;
}

.fet-portal :is(.fet-field label, .fet-search-form label) {
	display: block;
	margin-bottom: 0.45rem;
	color: var(--fet-navy);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.fet-portal :where(input, select, button) {
	min-height: 3.15rem;
	border-radius: 10px;
	font: inherit;
}

.fet-portal :where(input, select) {
	width: 100%;
	border: 1px solid #a9b7b0;
	background: var(--fet-paper);
	color: var(--fet-ink);
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.fet-portal :where(input, select):hover {
	border-color: var(--fet-green);
}

.fet-portal :where(input, select):focus {
	border-color: var(--fet-green);
	box-shadow: 0 0 0 4px rgb(7 90 70 / 12%);
}

.fet-portal input::placeholder {
	color: #87948e;
	opacity: 1;
}

.fet-portal input {
	padding: 0.65rem 0.85rem;
}

.fet-portal select {
	padding: 0.6rem 2.2rem 0.6rem 0.85rem;
}

.fet-portal .fet-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	padding: 0.65rem 1.2rem;
	border: 1px solid var(--fet-navy);
	border-radius: 999px;
	background: var(--fet-green);
	color: #ffffff;
	font-weight: 800;
	cursor: pointer;
	box-shadow: 0 7px 18px rgb(6 60 50 / 18%);
	transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.fet-portal .fet-button::after {
	content: "\2192";
	font-size: 1.05em;
}

.fet-portal .fet-button:hover {
	background: var(--fet-navy);
	box-shadow: 0 10px 22px rgb(6 60 50 / 24%);
	transform: translateY(-1px);
}

.fet-portal .fet-filter__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
}

.fet-portal .fet-filter__reset {
	padding: 0.45rem 0.2rem;
	color: var(--fet-muted);
	font-size: 0.82rem;
}

.fet-portal .fet-search-form__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
}

.fet-portal .fet-search-form__row .fet-button {
	width: 100%;
}

.fet-portal :is(.fet-help, .fet-results-count) {
	margin: 0.75rem 0 0;
	color: var(--fet-muted);
	font-size: 0.82rem;
}

.fet-portal .fet-results-count {
	font-family: var(--fet-data);
	font-variant-numeric: tabular-nums;
}

.fet-portal .fet-tournament-table-wrap {
	display: none;
	overflow-x: auto;
	border: 1px solid var(--fet-line);
	border-radius: 16px;
	background: var(--fet-paper);
	box-shadow: var(--fet-shadow-soft);
}

:where(.fet-portal, .fetp-modal) :is(.fet-tournament-table, .fet-entry-table, .fet-profile-results-table) {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: var(--fet-paper);
	font-size: 0.87rem;
}

:where(.fet-portal, .fetp-modal) :is(.fet-tournament-table, .fet-entry-table, .fet-profile-results-table) thead {
	background: var(--fet-navy);
	color: #ffffff;
}

:where(.fet-portal, .fetp-modal) :is(.fet-tournament-table, .fet-entry-table, .fet-profile-results-table) :where(th, td) {
	padding: 1rem 0.9rem;
	border: 0;
	border-bottom: 1px solid var(--fet-line);
	text-align: left;
	vertical-align: middle;
}

:where(.fet-portal, .fetp-modal) :is(.fet-tournament-table, .fet-entry-table, .fet-profile-results-table) thead th {
	color: #ffffff;
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

:where(.fet-portal, .fetp-modal) :is(.fet-tournament-table, .fet-entry-table, .fet-profile-results-table) tbody tr:hover {
	background: #f4f8f5;
}

:where(.fet-portal, .fetp-modal) :is(.fet-tournament-table, .fet-entry-table, .fet-profile-results-table) tbody tr:last-child :where(th, td) {
	border-bottom: 0;
}

:where(.fet-portal, .fetp-modal) :is(.fet-tournament-table, .fet-entry-table, .fet-profile-results-table) small {
	display: block;
	margin-top: 0.25rem;
	color: var(--fet-muted);
	font-size: 0.75rem;
	font-weight: 500;
}

.fet-portal .fet-date-cell {
	min-width: 9.5rem;
	border-left: 3px solid transparent !important;
	font-family: var(--fet-data);
	font-variant-numeric: tabular-nums;
}

.fet-portal .fet-tournament-table tbody tr:hover .fet-date-cell {
	border-left-color: var(--fet-lime) !important;
}

.fet-portal .fet-date-cell :is(strong, span) {
	display: block;
}

.fet-portal .fet-date-cell span {
	margin-top: 0.15rem;
	color: var(--fet-muted);
	font-size: 0.74rem;
}

.fet-portal .fet-tournament-name {
	display: block;
	max-width: 24rem;
	color: var(--fet-navy);
	font-family: var(--fet-display);
	font-size: 1.03rem;
	font-weight: 700;
	line-height: 1.2;
}

:where(.fet-portal, .fetp-modal) :is(.fet-chip-row, .fet-document-links, .fet-match-card__flags) {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	align-items: center;
}

:where(.fet-portal, .fetp-modal) :is(.fet-status-chip, .fet-count, .fet-match-card__flags span, .fet-result-label) {
	display: inline-flex;
	width: fit-content;
	padding: 0.28rem 0.58rem;
	border: 1px solid #b9cbc2;
	border-radius: 999px;
	background: var(--fet-soft-green);
	color: var(--fet-navy);
	font-size: 0.64rem;
	font-weight: 800;
	letter-spacing: 0.035em;
	line-height: 1.25;
	text-transform: uppercase;
}

.fet-portal .fet-detail-link {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	justify-content: center;
	min-height: 2.6rem;
	padding: 0.55rem 0.85rem;
	border: 1px solid var(--fet-green);
	border-radius: 999px;
	background: transparent;
	color: var(--fet-green);
	font-size: 0.8rem;
	text-decoration: none;
	white-space: nowrap;
	transition: background 160ms ease, color 160ms ease, transform 160ms ease;
}

.fet-portal .fet-detail-link:hover {
	background: var(--fet-green);
	color: #ffffff;
	transform: translateY(-1px);
}

.fet-portal .fet-tournament-cards {
	display: grid;
	gap: 1rem;
}

.fet-portal .fet-tournament-card {
	position: relative;
	margin: 0;
	padding: 1.15rem;
	border: 1px solid var(--fet-line);
	border-radius: 16px;
	background: var(--fet-paper);
	box-shadow: var(--fet-shadow-soft);
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.fet-portal .fet-tournament-card:hover {
	border-color: #b4c9be;
	box-shadow: 0 16px 36px rgb(6 60 50 / 12%);
	transform: translateY(-2px);
}

.fet-portal .fet-tournament-card__date {
	margin: -1.15rem -1.15rem 1.1rem;
	padding: 0.8rem 1.15rem;
	border-top: 4px solid var(--fet-lime);
	border-radius: 15px 15px 0 0;
	background: var(--fet-navy);
	color: #ffffff;
	font-family: var(--fet-data);
	font-variant-numeric: tabular-nums;
}

.fet-portal .fet-tournament-card__date :is(span, strong) {
	display: block;
}

.fet-portal .fet-tournament-card__date span {
	margin-bottom: 0.15rem;
	color: #d9e8e1;
	font-family: inherit;
	font-size: 0.65rem;
	font-weight: 750;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.fet-portal .fet-tournament-card h3 {
	margin-bottom: 0.5rem;
	font-size: 1.35rem;
}

.fet-portal .fet-tournament-card__venue {
	margin-bottom: 0.9rem;
	color: var(--fet-muted);
}

.fet-portal .fet-tournament-card dl {
	margin-bottom: 1rem;
}

.fet-portal .fet-tournament-card dl > div {
	display: grid;
	grid-template-columns: 5rem minmax(0, 1fr);
	gap: 0.65rem;
	padding-block: 0.5rem;
	border-top: 1px solid var(--fet-line);
}

:where(.fet-portal, .fetp-modal) :is(.fet-tournament-card, .fet-fact-grid, .fet-timeline-list) dt {
	color: var(--fet-muted);
	font-size: 0.64rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

:where(.fet-portal, .fetp-modal) :is(.fet-tournament-card, .fet-fact-grid, .fet-timeline-list) dd {
	margin: 0;
}

.fet-portal .fet-pagination-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	align-items: center;
	justify-content: space-between;
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid var(--fet-line);
}

.fet-portal .fet-pagination-bar > p {
	margin: 0;
	color: var(--fet-muted);
	font-size: 0.82rem;
}

.fet-portal .fet-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	align-items: center;
}

.fet-portal .fet-pagination > :where(a, span[aria-current]) {
	display: inline-flex;
	min-width: 2.45rem;
	height: 2.45rem;
	align-items: center;
	justify-content: center;
	padding-inline: 0.55rem;
	border: 1px solid var(--fet-line);
	border-radius: 50%;
	background: var(--fet-paper);
	text-decoration: none;
}

.fet-portal .fet-pagination > span[aria-current] {
	border-color: var(--fet-navy);
	background: var(--fet-navy);
	color: #ffffff;
	font-weight: 800;
}

.fet-portal .fet-pagination__gap {
	padding-inline: 0.2rem;
	color: var(--fet-muted);
}

:where(.fet-portal, .fetp-modal) :is(.fet-notice, .fet-empty, .fet-search-prompt) {
	margin-bottom: 0;
	padding: 1rem 1.1rem;
	border: 1px solid var(--fet-line);
	border-left: 4px solid var(--fet-green);
	border-radius: 12px;
	background: var(--fet-paper);
}

:where(.fet-portal, .fetp-modal) .fet-notice--error {
	border-left-color: var(--fet-danger);
	color: #74242a;
}

:where(.fet-portal, .fetp-modal) .fet-notice--error::before {
	content: "Error: ";
	font-weight: 800;
}

.fet-portal .fet-detail-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin-bottom: 1.25rem;
}

.fet-portal .fet-detail-nav a {
	padding: 0.55rem 0.9rem;
	border: 1px solid var(--fet-line);
	border-radius: 999px;
	background: var(--fet-paper);
	text-decoration: none;
}

.fet-portal .fet-detail-nav a:hover {
	border-color: var(--fet-green);
	background: var(--fet-soft-green);
}

.fet-portal .fet-ssr-section {
	margin-top: 1rem;
	padding: clamp(0.9rem, 2.5vw, 1.5rem);
	padding: clamp(0.9rem, 3cqi, 1.5rem);
	border: 1px solid var(--fet-line);
	border-radius: 16px;
	background: var(--fet-paper);
	box-shadow: var(--fet-shadow-soft);
	scroll-margin-top: 2rem;
}

.fet-portal .fet-ssr-section > h3:first-child {
	margin-bottom: 1rem;
	padding-bottom: 0.8rem;
	border-bottom: 1px solid var(--fet-line);
}

:where(.fet-portal, .fetp-modal) .fet-score-dates {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr);
	margin-bottom: 1rem;
	padding-top: 5px;
	overflow: hidden;
	border-radius: 14px;
	background: var(--fet-lime);
	box-shadow: var(--fet-shadow);
}

:where(.fet-portal, .fetp-modal) .fet-score-dates__item {
	min-width: 0;
	padding: clamp(0.85rem, 2.5vw, 1.2rem);
	padding: clamp(0.85rem, 3cqi, 1.2rem);
	background: var(--fet-navy);
	color: #ffffff;
}

:where(.fet-portal, .fetp-modal) .fet-score-dates__item :is(span, strong) {
	display: block;
}

:where(.fet-portal, .fetp-modal) .fet-score-dates__item span {
	margin-bottom: 0.25rem;
	color: #d9e8e1;
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

:where(.fet-portal, .fetp-modal) .fet-score-dates__item strong {
	font-family: var(--fet-data);
	font-size: clamp(0.9rem, 2vw, 1.2rem);
	font-size: clamp(0.9rem, 3cqi, 1.2rem);
	font-variant-numeric: tabular-nums;
}

:where(.fet-portal, .fetp-modal) .fet-score-dates__divider {
	background: #3c6c5f;
}

:where(.fet-portal, .fetp-modal) .fet-fact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
	margin-bottom: 1rem;
	overflow: hidden;
	border: 1px solid var(--fet-line);
	border-radius: 12px;
	background: var(--fet-paper);
}

:where(.fet-portal, .fetp-modal) .fet-fact-grid > div {
	min-width: 0;
	padding: 0.9rem;
	border-right: 1px solid var(--fet-line);
	border-bottom: 1px solid var(--fet-line);
	background: var(--fet-paper);
}

:where(.fet-portal, .fetp-modal) .fet-fact-grid dd {
	margin-top: 0.25rem;
	overflow-wrap: anywhere;
	font-weight: 700;
}

:where(.fet-portal, .fetp-modal) .fet-detail-block {
	margin-top: 1.35rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--fet-line);
}

:where(.fet-portal, .fetp-modal) .fet-detail-block > h3 {
	margin-bottom: 0.9rem;
	font-size: 1.25rem;
}

:where(.fet-portal, .fetp-modal) .fet-timeline-list {
	display: grid;
	margin-bottom: 0;
}

:where(.fet-portal, .fetp-modal) .fet-timeline-list > div {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
	padding-block: 0.55rem;
	border-bottom: 1px solid var(--fet-line);
}

:where(.fet-portal, .fetp-modal) .fet-timeline-list dd {
	font-family: var(--fet-data);
	font-variant-numeric: tabular-nums;
}

:where(.fet-portal, .fetp-modal) :is(.fet-contact-grid, .fet-event-grid) {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	gap: 0.85rem;
}

:where(.fet-portal, .fetp-modal) :is(.fet-contact-card, .fet-event-card) {
	min-width: 0;
	padding: 1rem;
	border: 1px solid var(--fet-line);
	border-radius: 12px;
	background: var(--fet-paper);
	transition: border-color 160ms ease, transform 160ms ease;
}

:where(.fet-portal, .fetp-modal) :is(.fet-contact-card, .fet-event-card):hover {
	border-color: #adc7ba;
	transform: translateY(-1px);
}

:where(.fet-portal, .fetp-modal) .fet-contact-card > :where(span, strong, a) {
	display: block;
	overflow-wrap: anywhere;
}

:where(.fet-portal, .fetp-modal) .fet-contact-card > span {
	margin-bottom: 0.2rem;
	color: var(--fet-muted);
	font-size: 0.67rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

:where(.fet-portal, .fetp-modal) .fet-event-card h4 {
	margin-bottom: 0.35rem;
}

:where(.fet-portal, .fetp-modal) .fet-event-card p {
	margin-bottom: 0.25rem;
	color: var(--fet-muted);
	font-size: 0.83rem;
}

:where(.fet-portal, .fetp-modal) .fet-document-links a {
	display: inline-flex;
	padding: 0.65rem 0.9rem;
	border: 1px solid var(--fet-green);
	border-radius: 999px;
	background: var(--fet-soft-green);
	text-decoration: none;
}

:where(.fet-portal, .fetp-modal) .fet-note-list {
	display: grid;
	gap: 0.65rem;
}

:where(.fet-portal, .fetp-modal) .fet-note-list > div {
	padding: 1rem;
	border-left: 3px solid var(--fet-lime);
	border-radius: 0 10px 10px 0;
	background: #f6f9f5;
}

:where(.fet-portal, .fetp-modal) .fet-note-list h4 {
	margin-bottom: 0.35rem;
}

:where(.fet-portal, .fetp-modal) .fet-note-list p {
	margin-bottom: 0;
	white-space: pre-line;
}

:where(.fet-portal, .fetp-modal) :is(.fet-event-stack, .fet-match-list) {
	display: grid;
	gap: 1rem;
}

:where(.fet-portal, .fetp-modal) .fet-event-section {
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--fet-line);
	border-radius: 14px;
	background: var(--fet-paper);
}

:where(.fet-portal, .fetp-modal) :is(.fet-event-section__header, .fet-section-heading) {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.1rem;
	border-bottom: 1px solid var(--fet-line);
	background: #f8faf7;
}

:where(.fet-portal, .fetp-modal) :is(.fet-event-section__header :where(p, h4), .fet-section-heading :where(p, h3)) {
	margin-bottom: 0;
}

:where(.fet-portal, .fetp-modal) .fet-event-section > .fet-empty {
	margin: 0.8rem;
}

:where(.fet-portal, .fetp-modal) .fet-responsive-table {
	width: 100%;
	overflow-x: auto;
	scrollbar-color: var(--fet-green) var(--fet-canvas);
	scrollbar-width: thin;
}

:where(.fet-portal, .fetp-modal) .fet-entry-table {
	min-width: 42rem;
}

:where(.fet-portal, .fetp-modal) .fet-entry-table td:nth-child(3) small {
	margin-top: 0.35rem;
}

:where(.fet-portal, .fetp-modal) .fet-team-names {
	display: grid;
	gap: 0.12rem;
}

:where(.fet-portal, .fetp-modal) .fet-team-names > :where(a, span, strong) {
	width: fit-content;
	overflow-wrap: anywhere;
}

:where(.fet-portal, .fetp-modal) .fet-match-list {
	padding: 1rem;
}

:where(.fet-portal, .fetp-modal) .fet-match-card {
	overflow: hidden;
	border: 1px solid var(--fet-line);
	border-radius: 12px;
	background: var(--fet-paper);
	box-shadow: 0 5px 16px rgb(6 60 50 / 6%);
}

:where(.fet-portal, .fetp-modal) .fet-match-card > header {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	justify-content: space-between;
	padding: 0.7rem 0.9rem;
	border-bottom: 1px solid var(--fet-line);
	background: #f5f8f5;
	color: var(--fet-muted);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

:where(.fet-portal, .fetp-modal) .fet-match-card > header > div:first-child :is(strong, span) {
	display: block;
}

:where(.fet-portal, .fetp-modal) .fet-match-card > header > div:first-child strong {
	color: var(--fet-navy);
	font-size: 0.85rem;
}

:where(.fet-portal, .fetp-modal) .fet-match-card__court {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}

:where(.fet-portal, .fetp-modal) .fet-match-card__teams {
	min-width: 0;
}

:where(.fet-portal, .fetp-modal) .fet-match-team {
	display: flex;
	gap: 0.7rem;
	align-items: center;
	justify-content: space-between;
	min-height: 3.2rem;
	padding: 0.65rem 0.8rem;
	border-bottom: 1px solid var(--fet-line);
}

:where(.fet-portal, .fetp-modal) .fet-match-team--winner {
	background: #eef7f2;
}

:where(.fet-portal, .fetp-modal) .fet-match-team--winner .fet-team-names::before {
	content: "W";
	display: inline-flex;
	grid-row: 1 / span 2;
	width: 1.35rem;
	height: 1.35rem;
	align-items: center;
	justify-content: center;
	margin-right: 0.25rem;
	border-radius: 50%;
	background: var(--fet-lime);
	color: var(--fet-navy);
	font-size: 0.65rem;
	font-weight: 900;
}

:where(.fet-portal, .fetp-modal) .fet-match-team--winner .fet-team-names {
	grid-template-columns: auto minmax(0, 1fr);
}

:where(.fet-portal, .fetp-modal) :is(.fet-winner-label, .fet-match-team > strong:last-child) {
	color: var(--fet-green);
	font-size: 0.7rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

:where(.fet-portal, .fetp-modal) .fet-match-score {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 9rem;
	padding: 0.8rem;
	background: var(--fet-navy);
	color: #ffffff;
	text-align: center;
}

:where(.fet-portal, .fetp-modal) .fet-match-score :is(span, small) {
	color: #d9e8e1;
	font-size: 0.63rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

:where(.fet-portal, .fetp-modal) .fet-match-score strong {
	font-family: var(--fet-data);
	font-size: clamp(1rem, 2vw, 1.35rem);
	font-size: clamp(1rem, 3cqi, 1.35rem);
	font-variant-numeric: tabular-nums;
}

.fet-portal .fet-player-list {
	display: grid;
	gap: 0;
	margin: 1rem 0 0;
	padding: 0;
	border: 1px solid var(--fet-line);
	border-radius: 16px;
	background: var(--fet-paper);
	box-shadow: var(--fet-shadow-soft);
	list-style: none;
}

.fet-portal .fet-player-list li {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	min-width: 0;
	padding: 0.85rem 1rem;
	border-bottom: 1px solid var(--fet-line);
	transition: background 160ms ease;
}

.fet-portal .fet-player-list li:hover {
	background: #f4f8f5;
}

.fet-portal .fet-player-list li:last-child {
	border-bottom: 0;
}

.fet-portal .fet-player-list__mark {
	display: inline-flex;
	width: 2.5rem;
	height: 2.5rem;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--fet-lime);
	color: var(--fet-navy);
	font-family: var(--fet-data);
	font-size: 0.85rem;
	font-weight: 800;
}

.fet-portal .fet-search-prompt {
	position: relative;
	padding-left: 3.4rem;
	border-left-color: var(--fet-lime);
	color: var(--fet-muted);
}

.fet-portal .fet-search-prompt::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 1rem;
	width: 1.55rem;
	height: 1.55rem;
	border-radius: 50%;
	background: var(--fet-lime);
	box-shadow: inset 0 0 0 1px rgb(6 60 50 / 16%);
	transform: translateY(-50%);
}

.fet-portal.fet-player-search .fet-search-form {
	max-width: 58rem;
}

.fet-portal.fet-player-search .fet-search-form__row input {
	font-size: 1.05rem;
}

.fet-portal .fet-profile-hero {
	position: relative;
	display: grid;
	gap: 1.25rem;
	margin-bottom: 1.25rem;
	padding: clamp(1.25rem, 4vw, 2rem);
	padding: clamp(1.25rem, 5cqi, 2rem);
	overflow: hidden;
	border-top: 5px solid var(--fet-lime);
	border-radius: 20px;
	background: var(--fet-navy);
	color: #ffffff;
	box-shadow: var(--fet-shadow);
}

.fet-portal .fet-profile-identity {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 1rem;
	min-width: 0;
}

.fet-portal .fet-profile-identity :is(h2, .fet-kicker) {
	color: #ffffff;
}

.fet-portal :is(.fet-profile-identity img, .fet-profile-monogram) {
	width: clamp(5rem, 15vw, 8rem);
	width: clamp(5rem, 18cqi, 8rem);
	height: clamp(5rem, 15vw, 8rem);
	height: clamp(5rem, 18cqi, 8rem);
	flex: 0 0 auto;
	border: 4px solid #ffffff;
	border-radius: 50%;
	box-shadow: 0 0 0 3px var(--fet-lime);
	object-fit: cover;
}

.fet-portal .fet-profile-monogram {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--fet-green);
	font-family: var(--fet-data);
	font-size: 2.5rem;
	font-weight: 900;
}

.fet-portal .fet-profile-meta {
	margin: 0.4rem 0 0;
	color: #d9e8e1;
}

.fet-portal .fet-profile-rankings {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.5rem;
	align-content: center;
	padding-top: 0.5rem;
	border-top: 1px solid rgb(255 255 255 / 22%);
}

.fet-portal .fet-ranking-score {
	min-width: 9rem;
	padding: 0.85rem;
	border: 1px solid rgb(255 255 255 / 14%);
	border-radius: 10px;
	background: #052f28;
	text-align: right;
}

.fet-portal .fet-ranking-score > :where(span, strong, small) {
	display: block;
}

.fet-portal .fet-ranking-score > span {
	color: #d9e8e1;
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.fet-portal .fet-ranking-score > strong {
	color: var(--fet-lime);
	font-family: var(--fet-data);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-size: clamp(2rem, 8cqi, 3.5rem);
	font-variant-numeric: tabular-nums;
	line-height: 1;
}

.fet-portal .fet-ranking-score > small {
	margin-top: 0.25rem;
	color: #d9e8e1;
}

.fet-portal .fet-profile-block {
	min-width: 0;
	margin-top: 1.25rem;
	border: 1px solid var(--fet-line);
	overflow: hidden;
	border-radius: 16px;
	background: var(--fet-paper);
	box-shadow: var(--fet-shadow-soft);
}

.fet-portal .fet-profile-block > .fet-empty {
	margin: 0.8rem;
}

.fet-portal .fet-stat-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1px;
	background: var(--fet-line);
}

.fet-portal .fet-stat-card {
	padding: 1.2rem;
	background: var(--fet-paper);
}

.fet-portal .fet-stat-card h4 {
	margin-bottom: 0.5rem;
}

.fet-portal .fet-stat-card > :is(strong, span) {
	display: block;
}

.fet-portal .fet-stat-card > strong {
	color: var(--fet-green);
	font-family: var(--fet-data);
	font-size: 2.25rem;
	font-variant-numeric: tabular-nums;
	line-height: 1;
}

.fet-portal .fet-stat-card > span {
	color: var(--fet-muted);
	font-size: 0.7rem;
	font-weight: 800;
	text-transform: uppercase;
}

.fet-portal .fet-stat-card dl {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.4rem;
	margin: 0.8rem 0 0;
}

.fet-portal .fet-stat-card dl > div {
	padding-top: 0.45rem;
	border-top: 1px solid var(--fet-line);
}

.fet-portal .fet-stat-card dt {
	color: var(--fet-muted);
	font-size: 0.62rem;
	font-weight: 750;
	text-transform: uppercase;
}

.fet-portal .fet-stat-card dd {
	margin: 0;
	font-family: var(--fet-data);
	font-weight: 800;
}

.fet-portal .fet-profile-columns {
	display: grid;
	gap: 1rem;
}

.fet-portal .fet-profile-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fet-portal .fet-profile-list li {
	display: grid;
	gap: 0.6rem;
	padding: 0.85rem 1rem;
	border-bottom: 1px solid var(--fet-line);
}

.fet-portal .fet-profile-list li:last-child {
	border-bottom: 0;
}

.fet-portal .fet-profile-list li > div:first-child :where(strong, span) {
	display: block;
}

.fet-portal .fet-profile-list li > div:first-child span {
	margin-top: 0.2rem;
	color: var(--fet-muted);
	font-size: 0.77rem;
}

.fet-portal .fet-profile-list__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	align-items: center;
	justify-content: space-between;
	font-size: 0.74rem;
}

.fet-portal .fet-profile-results-table th[scope="row"] :is(strong, small) {
	display: block;
}

.fet-portal .fet-match-list--profile {
	padding: 0.85rem;
}

.fet-portal .fet-profile-match .fet-match-team__role {
	flex: 0 0 5.5rem;
	color: var(--fet-muted);
	font-size: 0.64rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

:where(.fet-portal, .fetp-modal) .fet-loading {
	display: flex;
	min-height: 9rem;
	flex-direction: column;
	gap: 0.75rem;
	align-items: center;
	justify-content: center;
	color: var(--fet-muted);
	text-align: center;
}

:where(.fet-portal, .fetp-modal) .fet-loading p {
	margin: 0;
}

:where(.fet-portal, .fetp-modal) .fet-loading__spinner {
	display: block;
	width: 2rem;
	height: 2rem;
	border: 3px solid var(--fet-line);
	border-top-color: var(--fet-green);
	border-right-color: var(--fet-lime);
	border-radius: 50%;
	animation: fetp-spin 0.75s linear infinite;
}

.fetp-modal[hidden],
.fetp-modal .fetp-modal__panel[hidden] {
	display: none !important;
}

.fetp-modal {
	box-sizing: border-box;
	container: fetmodal / inline-size;
	position: fixed;
	z-index: 100000;
	inset: 0;
	display: grid;
	align-items: center;
	justify-items: center;
	padding: clamp(0.5rem, 2vw, 1.25rem);
}

.fetp-modal .fetp-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgb(3 35 29 / 82%);
	backdrop-filter: blur(6px);
}

.fetp-modal .fetp-modal__dialog {
	position: relative;
	display: grid;
	grid-template-rows: auto auto auto minmax(0, 1fr);
	width: min(72rem, 100%);
	max-height: min(92vh, 58rem);
	overflow: hidden;
	border: 1px solid rgb(255 255 255 / 26%);
	border-radius: 20px;
	background: var(--fet-canvas);
	box-shadow: 0 32px 100px rgb(0 0 0 / 42%);
}

.fetp-modal .fetp-modal__header {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	justify-content: space-between;
	padding: clamp(1rem, 3vw, 1.55rem);
	border-bottom: 1px solid rgb(255 255 255 / 14%);
	background: var(--fet-navy);
	color: #ffffff;
}

.fetp-modal .fetp-modal__header .fet-kicker {
	margin-bottom: 0.2rem;
}

.fetp-modal .fetp-modal__header h2 {
	color: #ffffff;
	font-size: clamp(1.25rem, 4vw, 2rem);
}

.fetp-modal .fetp-modal__header .fet-kicker {
	color: var(--fet-lime);
}

.fetp-modal .fetp-modal__close {
	display: inline-flex;
	width: 2.6rem;
	height: 2.6rem;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1px solid rgb(255 255 255 / 28%);
	border-radius: 50%;
	background: rgb(255 255 255 / 8%);
	color: #ffffff;
	font: inherit;
	font-size: 1.7rem;
	cursor: pointer;
}

.fetp-modal .fetp-modal__close:hover {
	border-color: var(--fet-lime);
	background: var(--fet-lime);
	color: var(--fet-navy);
}

.fetp-modal .fetp-modal__tabs {
	display: flex;
	overflow-x: auto;
	border-bottom: 1px solid var(--fet-line);
	background: var(--fet-paper);
	scrollbar-width: thin;
}

.fetp-modal .fetp-modal__tabs button {
	position: relative;
	min-height: 3.35rem;
	flex: 1 0 auto;
	padding: 0.7rem 1rem;
	border: 0;
	border-right: 1px solid var(--fet-line);
	border-radius: 0;
	background: var(--fet-paper);
	box-shadow: none;
	color: var(--fet-muted);
	font: inherit;
	font-weight: 800;
	cursor: pointer;
}

.fetp-modal .fetp-modal__tabs button[aria-selected="true"] {
	color: var(--fet-navy);
	background: #f7faf6;
}

.fetp-modal .fetp-modal__tabs button[aria-selected="true"]::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 4px;
	background: var(--fet-lime);
}

.fetp-modal .fetp-modal__body {
	min-height: 12rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
}

.fetp-modal .fetp-modal__panel {
	min-height: 100%;
	padding: clamp(0.85rem, 3vw, 1.5rem);
}

body.fetp-scroll-lock {
	overflow: hidden !important;
}

@keyframes fetp-spin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes fetp-enter {
	from {
		opacity: 0.01;
		transform: translateY(10px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: no-preference) {
	.fet-portal--ready {
		animation: fetp-enter 420ms cubic-bezier(0.22, 1, 0.36, 1) both;
	}
}

@container fetportal (min-width: 36rem) {
	.fet-portal .fet-search-form__row {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.fet-portal .fet-search-form__row .fet-button {
		width: auto;
	}

	.fet-portal .fet-filter {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fet-portal .fet-filter .fet-button {
		grid-column: 1 / -1;
	}

	.fet-portal .fet-filter__actions {
		grid-column: 1 / -1;
	}

	.fet-portal :is(.fet-tournament-cards, .fet-stat-grid) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fet-portal .fet-profile-rankings {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
	}

	.fet-portal .fet-match-card__court {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.fet-portal .fet-timeline-list > div {
		grid-template-columns: minmax(8rem, 0.45fr) minmax(0, 1fr);
	}

	.fet-portal .fet-profile-identity {
		align-items: center;
		flex-direction: row;
	}
}

@container fetportal (min-width: 48rem) {
	.fet-portal :is(.fet-portal__header, .fet-detail-header) {
		grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.55fr);
		align-items: end;
	}

	.fet-portal .fet-back-link {
		justify-self: end;
	}

	.fet-portal .fet-filter {
		grid-template-columns: minmax(8rem, 12rem) minmax(10rem, 14rem) minmax(10rem, 14rem);
		justify-content: start;
	}

	.fet-portal .fet-filter .fet-button {
		grid-column: auto;
	}

	.fet-portal .fet-filter__actions {
		grid-column: auto;
	}

	.fet-portal .fet-tournament-table-wrap {
		display: block;
	}

	.fet-portal .fet-tournament-cards {
		display: none;
	}

	.fet-portal .fet-profile-hero {
		grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.55fr);
		align-items: center;
	}

	.fet-portal .fet-stat-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.fet-portal .fet-profile-columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@container fetmodal (min-width: 36rem) {
	.fetp-modal .fet-match-card__court {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.fetp-modal .fet-timeline-list > div {
		grid-template-columns: minmax(8rem, 0.45fr) minmax(0, 1fr);
	}
}

@supports not (container-type: inline-size) {
	@media (min-width: 576px) {
		.fet-portal .fet-search-form__row {
			grid-template-columns: minmax(0, 1fr) auto;
		}

		.fet-portal .fet-search-form__row .fet-button {
			width: auto;
		}

		.fet-portal .fet-filter {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}

		.fet-portal .fet-filter .fet-button {
			grid-column: 1 / -1;
		}

		.fet-portal .fet-filter__actions {
			grid-column: 1 / -1;
		}

		.fet-portal :is(.fet-tournament-cards, .fet-stat-grid) {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}

		.fet-portal .fet-profile-rankings {
			grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
		}

		:is(.fet-portal, .fetp-modal) .fet-match-card__court {
			grid-template-columns: minmax(0, 1fr) auto;
		}

		:is(.fet-portal, .fetp-modal) .fet-timeline-list > div {
			grid-template-columns: minmax(8rem, 0.45fr) minmax(0, 1fr);
		}

		.fet-portal .fet-profile-identity {
			align-items: center;
			flex-direction: row;
		}
	}

	@media (min-width: 768px) {
		.fet-portal :is(.fet-portal__header, .fet-detail-header) {
			grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.55fr);
			align-items: end;
		}

		.fet-portal .fet-back-link {
			justify-self: end;
		}

		.fet-portal .fet-filter {
			grid-template-columns: minmax(8rem, 12rem) minmax(10rem, 14rem) minmax(10rem, 14rem);
			justify-content: start;
		}

		.fet-portal .fet-filter .fet-button {
			grid-column: auto;
		}

		.fet-portal .fet-filter__actions {
			grid-column: auto;
		}

		.fet-portal .fet-tournament-table-wrap {
			display: block;
		}

		.fet-portal .fet-tournament-cards {
			display: none;
		}

		.fet-portal .fet-profile-hero {
			grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.55fr);
			align-items: center;
		}

		.fet-portal .fet-stat-grid {
			grid-template-columns: repeat(3, minmax(0, 1fr));
		}

		.fet-portal .fet-profile-columns {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}
	}
}

@media (max-width: 575px) {
	.fet-portal {
		--fet-gutter: 1rem;
		margin-block: 1.25rem;
		border-radius: 18px;
	}

	.fet-portal .fet-portal__header {
		min-height: 11rem;
		padding: 1.35rem;
		border-radius: 17px 17px 13px 13px;
	}

	.fet-portal .fet-portal__header::after {
		right: -6rem;
		width: 18rem;
		opacity: 0.42;
	}

	.fet-portal .fet-portal__header > p {
		max-width: 18rem;
	}

	.fet-portal .fet-filter__actions {
		display: grid;
		grid-template-columns: 1fr;
	}

	.fet-portal .fet-filter__reset {
		justify-self: center;
	}

	.fet-portal .fet-search-form__row,
	:where(.fet-portal, .fetp-modal) .fet-timeline-list > div {
		grid-template-columns: 1fr;
	}

	.fet-portal .fet-search-form__row .fet-button {
		width: 100%;
	}

	.fet-portal .fet-profile-identity {
		align-items: flex-start;
		flex-direction: column;
	}

	.fetp-modal {
		align-items: stretch;
		padding: 0;
	}

	.fetp-modal .fetp-modal__dialog {
		width: 100%;
		max-height: 100dvh;
		border: 0;
		border-radius: 0;
	}

	.fetp-modal .fetp-modal__tabs button {
		padding-inline: 0.8rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fet-portal *,
	.fet-portal *::before,
	.fet-portal *::after,
	.fetp-modal *,
	.fetp-modal *::before,
	.fetp-modal *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	:where(.fet-portal, .fetp-modal) .fet-loading__spinner {
		animation: none;
	}
}
