/**
 * Follow / star UI
 */
.ts-follow-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	margin: 0;
	padding: 0.3rem 0.45rem;
	border: 1px solid rgba(15, 41, 32, 0.12);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: #9ca3af;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
	-webkit-tap-highlight-color: transparent;
}
.ts-follow-btn:hover,
.ts-follow-btn:focus-visible {
	color: #d97706;
	border-color: rgba(217, 119, 6, 0.45);
	background: #fffbeb;
	outline: none;
}
.ts-follow-btn.is-on {
	color: #d97706;
	border-color: rgba(217, 119, 6, 0.55);
	background: #fff7ed;
}
.ts-follow-btn.is-busy {
	opacity: 0.65;
	pointer-events: none;
}
.ts-follow-btn__icon {
	font-size: 0.95rem;
	line-height: 1;
	font-weight: 700;
}
.ts-follow-btn.is-on .ts-follow-btn__icon {
	text-shadow: 0 0 0.35em rgba(245, 158, 11, 0.55);
}

/*
 * Star column beside the scoreboard (outside score UI):
 * │ time │ teams │ goals │ ★ │
 * Broadcast / predict stay full-width under this row.
 *
 * IMPORTANT stacking vs .ls-match__hit (absolute, z-index:1):
 * Do NOT raise the whole row above the hit link — that made the
 * scoreboard unclickable whenever follow stars were enabled.
 * Only the star (and other interactive widgets) sit above the hit.
 */
.ls-match__row {
	display: flex;
	align-items: center;
	gap: 0.15rem 0.3rem;
	min-width: 0;
	width: 100%;
	position: relative;
	/* keep auto/0 so .ls-match__hit (z-index:1) stays on top of the board */
	z-index: auto;
}
.ls-match__row > .ls-c,
.ls-match__row > .ls-match__board,
.ls-match__row > .ls-fs {
	flex: 1 1 auto;
	min-width: 0;
	padding-right: 0;
}
.ls-match__star {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	position: relative;
	z-index: 3; /* above .ls-match__hit so ★ stays tappable */
	width: 1.85rem;
	margin: 0;
	padding: 0;
}
/* Two-line logos (home top / away bottom) — same column as score */
.ls-match__star:has(.ts-follow-via-team--lines) {
	width: 1.85rem;
	align-items: stretch;
}
.ls-match__star:has(.ts-follow-via-team--lines) .ts-match-follow-slot {
	width: 100%;
	height: 100%;
	align-self: stretch;
}
/* In-flow button — not absolutely layered over the score column */
.ls-match__star .ts-follow-btn--compact,
.ts-follow-btn--compact {
	position: static;
	top: auto;
	right: auto;
	left: auto;
	transform: none;
	width: 1.6rem;
	height: 1.6rem;
	padding: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 0 0 1px rgba(15, 41, 32, 0.07);
	flex-shrink: 0;
}
.ls-match__star .ts-follow-btn--compact:hover,
.ls-match__star .ts-follow-btn--compact:focus-visible,
.ts-follow-btn--compact:hover,
.ts-follow-btn--compact:focus-visible {
	transform: scale(1.07);
}
.ls-match__star .ts-follow-btn--compact.is-on,
.ts-follow-btn--compact.is-on {
	background: #fff7ed;
}
/* Blocks under the main row */
.ls-match .ts-broadcast,
.ls-match .ts-bc,
.ls-match .ls-match__predict,
.ls-match .ls-match__venue,
.ls-match .ls-match__links {
	position: relative;
	z-index: 2;
	clear: both;
}
.ls-match.is-followed,
.ls-match.is-starred {
	box-shadow: inset 0 0 0 1px rgba(245, 158, 11, 0.18);
}
/* Explicit ★ pin */
.ls-match.is-starred {
	background: linear-gradient(90deg, rgba(245, 158, 11, 0.08) 0%, #fff 42%);
}
/* Covered by followed team (logo badge, not match quota) */
.ls-match.is-followed:not(.is-starred) {
	background: linear-gradient(90deg, rgba(45, 106, 79, 0.06) 0%, #fff 42%);
}
.ls-match--live.is-starred {
	background: linear-gradient(90deg, rgba(239, 68, 68, 0.07) 0%, rgba(245, 158, 11, 0.06) 28%, #fff 55%);
}
.ls-match--live.is-followed:not(.is-starred) {
	background: linear-gradient(90deg, rgba(239, 68, 68, 0.06) 0%, rgba(45, 106, 79, 0.05) 30%, #fff 55%);
}

/* Slot: ★ pin OR followed-team logo(s) */
.ts-match-follow-slot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
}
/*
 * Two-line via-team logos stretch only inside the list star column
 * (.ls-match__star already sets width/height 100% above).
 * Do NOT use width/height:100% globally — on the match single page the
 * slot is position:absolute against .ts-match-single (whole article),
 * so 100% becomes a full-page overlay linking to /following.
 */
.ts-match-follow-slot:has(.ts-follow-via-team--lines) {
	align-items: stretch;
	line-height: normal;
}
.ts-match-follow-slot--single {
	/* single page: compact control in the hero corner only */
	width: auto;
	height: auto;
	max-width: 3.5rem;
}
.ts-match-follow-slot--single:has(.ts-follow-via-team--lines) {
	align-items: stretch;
	width: auto;
	height: auto;
}
/* Single-page duo badge must not fill the article */
.ts-match-follow-slot--single .ts-follow-via-team--lines {
	width: auto;
	min-width: 2.4rem;
	min-height: 0;
	height: auto;
}
.ts-follow-via-team {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.15rem;
	padding: 0.18rem 0.2rem 0.14rem;
	border-radius: 999px;
	background: rgba(45, 106, 79, 0.1);
	border: 1px solid rgba(45, 106, 79, 0.22);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6) inset;
	/* Clickable when linked to /following (see .is-link) */
	pointer-events: none;
	text-decoration: none;
	color: inherit;
	box-sizing: border-box;
}
.ts-follow-via-team.is-link {
	pointer-events: auto;
	cursor: pointer;
}
.ts-follow-via-team.is-link:hover,
.ts-follow-via-team.is-link:focus-visible {
	background: rgba(45, 106, 79, 0.16);
	border-color: rgba(45, 106, 79, 0.4);
	outline: none;
}
.ts-follow-via-team.is-link:focus-visible {
	box-shadow:
		0 0 0 1px rgba(255, 255, 255, 0.6) inset,
		0 0 0 2px rgba(45, 106, 79, 0.35);
}
a.ts-follow-via-team {
	text-decoration: none;
	color: inherit;
}
/* One followed team: pill centered in star column (like normal ★) */
.ts-follow-via-team--one {
	/* keep default inline-flex center */
}
/* Team mark = logo + tiny ★ corner badge */
.ts-follow-via-team__mark {
	position: relative;
	display: inline-flex;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}
.ts-follow-via-team__logo {
	width: 18px;
	height: 18px;
	object-fit: contain;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 0 1px rgba(15, 41, 32, 0.12);
	display: block;
}
.ts-follow-via-team__ph {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	font-size: 0.65rem;
	font-weight: 800;
	color: #2d6a4f;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 0 0 1px rgba(15, 41, 32, 0.12);
}
/* Small gold star at corner of followed-team logo */
.ts-follow-via-team__star {
	position: absolute;
	right: -3px;
	bottom: -3px;
	width: 0.72rem;
	height: 0.72rem;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.48rem;
	line-height: 1;
	font-weight: 800;
	color: #b45309;
	background: #fffbeb;
	border: 1px solid rgba(217, 119, 6, 0.55);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.9);
	z-index: 2;
}
/*
 * Always two lines like score column (home top / away bottom):
 *   [logo or empty]
 *   ─────────────
 *   [logo or empty]
 * Logo of the followed team only — empty cell keeps the correct side.
 */
.ts-follow-via-team--lines {
	flex-direction: column;
	align-items: stretch;
	justify-content: center;
	gap: 0;
	padding: 0;
	width: 100%;
	min-height: 100%;
	border-radius: 0.45rem;
	overflow: hidden;
	background: #eef6f1;
	border-color: #d8e8de;
	box-shadow: none;
}
.ts-follow-via-team--lines .ts-follow-via-team__mark {
	margin: 0;
	width: 100%;
	height: auto;
	min-height: 1.2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.14rem 0.1rem;
	box-sizing: border-box;
	position: relative;
}
/* Divider like .ls-c__goal[data-side="home"] */
.ts-follow-via-team--lines .ts-follow-via-team__mark[data-side="home"] {
	border-bottom: 1px solid #c5dccf;
}
.ts-follow-via-team--lines .ts-follow-via-team__mark--empty {
	/* keep row height without a logo */
	min-height: 1.2rem;
}
.ts-follow-via-team--lines .ts-follow-via-team__logo,
.ts-follow-via-team--lines .ts-follow-via-team__ph {
	width: 16px;
	height: 16px;
}
.ts-follow-via-team--lines .ts-follow-via-team__star {
	right: -2px;
	bottom: -2px;
	width: 0.65rem;
	height: 0.65rem;
	font-size: 0.42rem;
}
/* Single match page */
.ts-follow-via-team--single.ts-follow-via-team--one {
	padding: 0.28rem 0.4rem 0.24rem;
}
.ts-follow-via-team--single.ts-follow-via-team--one .ts-follow-via-team__mark {
	width: 22px;
	height: 22px;
}
.ts-follow-via-team--single.ts-follow-via-team--one .ts-follow-via-team__logo,
.ts-follow-via-team--single.ts-follow-via-team--one .ts-follow-via-team__ph {
	width: 22px;
	height: 22px;
}
.ts-follow-via-team--single .ts-follow-via-team__star {
	width: 0.82rem;
	height: 0.82rem;
	font-size: 0.52rem;
	right: -3px;
	bottom: -3px;
}
.ts-follow-via-team--single.ts-follow-via-team--lines {
	flex-direction: column;
	gap: 0;
	padding: 0;
	min-width: 2.4rem;
	border-radius: 0.55rem;
}
.ts-follow-via-team--single.ts-follow-via-team--lines .ts-follow-via-team__mark {
	margin: 0;
	width: 100%;
	height: auto;
	min-height: 1.45rem;
	padding: 0.2rem 0.25rem;
}
.ts-follow-via-team--single.ts-follow-via-team--lines .ts-follow-via-team__logo,
.ts-follow-via-team--single.ts-follow-via-team--lines .ts-follow-via-team__ph {
	width: 20px;
	height: 20px;
}
/* Keep logo badge tappable stacking like ★ column */
.ls-match__star .ts-match-follow-slot,
.ls-match__star .ts-follow-via-team {
	position: relative;
	z-index: 3;
}


/* Team archive button */
.ts-follow-btn--team {
	margin-top: 0.55rem;
	padding: 0.45rem 0.85rem;
	font-size: 0.85rem;
	flex-wrap: nowrap;
	white-space: nowrap;
}
.ts-tax-hero .ts-follow-btn--team,
.ts-tax-hero__actions .ts-follow-btn--team {
	margin-top: 0;
	align-self: flex-start;
	flex-wrap: nowrap;
	white-space: nowrap;
	max-width: 100%;
}
.ts-tax-hero .ts-follow-btn--team .ts-follow-btn__icon,
.ts-tax-hero .ts-follow-btn--team .ts-follow-btn__text {
	flex: 0 0 auto;
	white-space: nowrap;
}

/* Single match */
.ts-follow-btn--single {
	position: absolute;
	top: 0.65rem;
	right: 0.65rem;
	z-index: 4;
	padding: 0.4rem 0.65rem;
}
/* Single match: slot holds ★ or followed-team logos in the same corner */
.ts-match-follow-slot--single {
	position: absolute;
	top: 0.65rem;
	right: 0.65rem;
	z-index: 4;
}
.ts-match-follow-slot--single .ts-follow-btn--single {
	position: static;
	top: auto;
	right: auto;
}
.ts-match-single {
	position: relative;
}

/* Follow filter tab accent */
.ls-match-tabs__btn[data-filter="followed"] .ts-follow-tab-star {
	color: #d97706;
	margin-right: 0.15rem;
}
.ls-match-tabs__btn[data-filter="followed"].is-active {
	color: #b45309;
}

/* —— Manage page —— */
/* Full width of page content / matches-panel (same board feel as homepage). */
.ts-follow-manage {
	max-width: none;
	width: 100%;
	margin: 0;
	padding: 0;
}
/* Page template already shows H1 — hide duplicate shortcode title. */
.ts-following-panel .ts-follow-manage__title {
	display: none;
}
.ts-following-panel .ts-follow-manage__titles {
	flex: 1;
	min-width: 0;
}
.ts-follow-manage__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem 1rem;
	margin-bottom: 0.85rem;
}
.ts-follow-manage__title {
	margin: 0;
	font-size: 1.35rem;
	font-weight: 700;
	color: #0f2920;
	font-family: Oswald, ui-sans-serif, system-ui, sans-serif;
	letter-spacing: 0.02em;
}
.ts-follow-manage__sub {
	margin: 0.25rem 0 0;
	font-size: 0.9rem;
	color: #6b7280;
}
.ts-follow-manage__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}
.ts-follow-manage__quota {
	font-size: 0.75rem;
	font-weight: 600;
	color: #4b5563;
	background: #f3f4f6;
	border-radius: 999px;
	padding: 0.28rem 0.65rem;
}
.ts-follow-manage__hint {
	font-size: 0.88rem;
	color: #6b7280;
	margin: 0 0 0.85rem;
	padding: 0.65rem 0.8rem;
	background: #f9fafb;
	border-radius: 0.65rem;
	border: 1px solid #eef2f0;
}
.ts-follow-manage__hint--guest {
	background: #fffbeb;
	border-color: #fde68a;
	color: #92400e;
}
.ts-follow-manage__tabs {
	display: flex;
	gap: 0.45rem;
	margin-bottom: 0.85rem;
	/* Full row; each tab 50:50 of the manage width */
	width: 100%;
	flex-wrap: nowrap;
}
.ts-follow-manage__tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	flex: 1 1 50%;
	min-width: 0;
	padding: 0.55rem 0.5rem;
	border-radius: 0.65rem;
	border: 1px solid #e5e7eb;
	background: #fff;
	color: #374151;
	font: inherit;
	font-size: 0.86rem;
	font-weight: 600;
	line-height: 1.25;
	cursor: pointer;
	transition: background 0.14s ease, border-color 0.14s ease, color 0.14s ease;
	text-align: center;
	white-space: nowrap;
}
@media (max-width: 380px) {
	.ts-follow-manage__tab {
		font-size: 0.78rem;
		padding: 0.5rem 0.35rem;
		gap: 0.25rem;
	}
	.ts-follow-manage__tab-ico {
		display: none;
	}
}
.ts-follow-manage__tab:hover {
	border-color: #d97706;
	color: #b45309;
}
.ts-follow-manage__tab.is-active {
	background: #fff7ed;
	border-color: #f59e0b;
	color: #b45309;
}
.ts-follow-manage__tab-ico {
	color: #d97706;
}
.ts-follow-manage__tab-n {
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 0.35rem;
	border-radius: 999px;
	background: rgba(15, 41, 32, 0.08);
	font-size: 0.75rem;
	line-height: 1.25rem;
	text-align: center;
}
.ts-follow-manage__tab.is-active .ts-follow-manage__tab-n {
	background: rgba(217, 119, 6, 0.18);
}
.ts-follow-manage__panel {
	display: none;
}
.ts-follow-manage__panel.is-active {
	display: block;
}
.ts-follow-manage__drag-hint {
	margin: 0 0 0.55rem;
	font-size: 0.8rem;
	font-weight: 600;
	color: #6b7280;
}
.ts-follow-manage__loading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	padding: 1.75rem 1rem;
	margin: 0 0 0.75rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: #4b5563;
	background: #f8faf9;
	border: 1px dashed #d1d5db;
	border-radius: 0.75rem;
}
.ts-follow-manage__loading[hidden] {
	display: none !important;
}
.ts-follow-manage__loading-spin {
	width: 1.1rem;
	height: 1.1rem;
	border: 2px solid #d1d5db;
	border-top-color: #2d6a4f;
	border-radius: 50%;
	animation: ts-fm-spin 0.7s linear infinite;
	flex-shrink: 0;
}
@keyframes ts-fm-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Live accent on a standalone team block */
.ts-fm-team.is-live {
	background: linear-gradient(180deg, #f0fdf4 0%, #fff 28%);
	border-color: #bbf7d0;
	box-shadow:
		0 1px 2px rgba(15, 41, 32, 0.04),
		0 8px 20px rgba(34, 197, 94, 0.08),
		inset 3px 0 0 #22c55e;
}
.ts-fm-team__name-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.5rem;
	min-width: 0;
}
.ts-fm-team__live-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.28rem;
	padding: 0.12rem 0.45rem;
	border-radius: 999px;
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	color: #14532d;
	background: #ecfdf5;
	border: 1px solid #86efac;
	line-height: 1.2;
	flex-shrink: 0;
}
.ts-fm-team__live-badge .ts-fm-team__live-dot {
	background: #16a34a;
}
.ts-fm-team__live-dot {
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 999px;
	background: #22c55e;
	box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.45);
	animation: ls-pulse-dot 1.2s ease-in-out infinite;
	flex-shrink: 0;
}
/* Homepage-style cards under each followed team (last → next/live) */
.ts-fm-team__board {
	margin-top: 0.7rem;
	border: 1px solid #e8eee9;
	border-radius: 0.75rem;
	overflow: hidden;
	background: #f8faf9;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
/* Team panel: show followed-team logo column like homepage (not a ★ pin).
   hide only bare star buttons if any remain; keep .ts-follow-via-team logos. */
.ts-fm-team__board .ls-match__star .ts-follow-btn--match,
.ts-fm-team__card .ls-match__star .ts-follow-btn--match,
[data-ts-fm-team-board] .ls-match__star .ts-follow-btn--match,
[data-ts-fm-team-live-board] .ls-match__star .ts-follow-btn--match,
.ts-follow-live .ls-match__star .ts-follow-btn--match,
.ts-fm-team__board .ts-match-follow-slot > .ts-follow-btn--match,
.ts-fm-team__card .ts-match-follow-slot > .ts-follow-btn--match,
[data-ts-fm-team-board] .ts-match-follow-slot > .ts-follow-btn--match,
[data-ts-fm-team-live-board] .ts-match-follow-slot > .ts-follow-btn--match,
.ts-follow-live .ts-match-follow-slot > .ts-follow-btn--match {
	display: none !important;
}
.ts-fm-team__card {
	position: relative;
	border-bottom: 1px solid #e8eee9;
	background: #fff;
}
.ts-fm-team__card:last-child {
	border-bottom: 0;
}
.ts-fm-team__card .ls-match {
	border-radius: 0;
	margin: 0;
}
.ts-fm-team__card--last {
	background: #fafbfa;
}
.ts-fm-team__card--live {
	background: linear-gradient(180deg, #fff8f8 0%, #fff 55%);
}
.ts-fm-team.is-live .ts-fm-team__board {
	border-color: #fecaca;
	background: #fff5f5;
}
/* Legacy compact fixture lists (older payload) */
.ts-fm-team__live {
	margin-top: 0.65rem;
	padding: 0.5rem 0.55rem 0.55rem;
	background: linear-gradient(180deg, #fff5f5 0%, #fff 70%);
	border: 1px solid #fecaca;
	border-radius: 0.7rem;
}
.ts-fm-team__live-board {
	background: #fff;
	border: 1px solid #fee2e2;
	border-radius: 0.55rem;
	overflow: hidden;
}
.ts-follow-manage__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid #eef2f0;
	border-radius: 0.85rem;
	overflow: hidden;
	background: #fff;
	touch-action: pan-y;
}
/* Teams: stacked independent cards (not one fused list) */
.ts-follow-manage__list--teams {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	border: 0;
	border-radius: 0;
	overflow: visible;
	background: transparent;
	padding: 0.1rem 0 0.35rem;
}
.ts-follow-manage__list.is-reordering {
	user-select: none;
	touch-action: none;
}
.ts-follow-manage__list.is-reordering .ts-fm-team {
	cursor: grabbing;
}
.ts-follow-manage__empty {
	text-align: center;
	padding: 2rem 1rem;
	color: #6b7280;
}
.ts-follow-manage__empty-ico {
	display: block;
	font-size: 1.75rem;
	margin-bottom: 0.5rem;
	color: #d1d5db;
}
.ts-follow-manage__empty p {
	margin: 0 0 0.65rem;
}
.ts-follow-manage__empty-hint {
	font-size: 0.85rem;
	color: #9ca3af;
	max-width: 22rem;
	margin-left: auto;
	margin-right: auto;
}
.ts-follow-manage__empty-link {
	display: inline-block;
	font-size: 0.9rem;
	font-weight: 600;
	color: #2d6a4f;
	text-decoration: none;
}
.ts-follow-manage__empty-link:hover {
	text-decoration: underline;
}

/* Each followed team = its own panel */
.ts-fm-team {
	display: block;
	padding: 0.85rem 0.9rem 0.95rem;
	margin: 0;
	border: 1px solid #e5ebe7;
	border-radius: 0.95rem;
	background: #fff;
	box-shadow:
		0 1px 2px rgba(15, 41, 32, 0.04),
		0 6px 16px rgba(15, 41, 32, 0.05);
	transition: background 0.12s ease, box-shadow 0.12s ease, opacity 0.12s ease, border-color 0.12s ease;
}
.ts-fm-team:first-child {
	border-top: 1px solid #e5ebe7; /* keep full border (not fused list) */
}
.ts-fm-team.is-dragging {
	opacity: 0.96;
	position: relative;
	z-index: 5;
	box-shadow: 0 12px 28px rgba(15, 41, 32, 0.14);
	background: #f7faf8;
	border-color: #c5d4cb;
	pointer-events: none; /* so elementFromPoint finds the row under the cursor */
}
.ts-fm-team.is-dragging .ts-fm-team__drag {
	pointer-events: auto;
}
.ts-fm-team__top {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	padding-bottom: 0.15rem;
}
.ts-fm-team__drag {
	appearance: none;
	border: 0;
	background: transparent;
	color: #9ca3af;
	width: 1.75rem;
	height: 2.25rem;
	padding: 0;
	margin: 0;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 0.45rem;
	cursor: grab;
	touch-action: none;
	user-select: none;
	line-height: 1;
}
.ts-fm-team__drag:hover,
.ts-fm-team__drag:focus-visible {
	color: #2d6a4f;
	background: rgba(45, 106, 79, 0.08);
	outline: none;
}
.ts-fm-team__drag:active {
	cursor: grabbing;
}
.ts-fm-team__drag-ico {
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: -0.12em;
	transform: rotate(90deg);
	display: inline-block;
}
/* Rank badge removed — drag handle alone reorders followed teams. */
.ts-fm-team__rank {
	display: none !important;
}
/* League name above each fixture under a followed team */
.ts-fm-team__league {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.35rem 0.7rem 0.2rem;
	margin: 0;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.25;
	color: #1b4332;
	background: #f3f6f4;
	border-bottom: 1px solid #e8eee9;
	text-decoration: none;
}
a.ts-fm-team__league:hover,
a.ts-fm-team__league:focus-visible {
	color: #2d6a4f;
	background: #eaf1ed;
	outline: none;
}
.ts-fm-team__league-logo {
	width: 14px;
	height: 14px;
	object-fit: contain;
	flex-shrink: 0;
	border-radius: 50%;
	background: #fff;
}
.ts-fm-team__league-name {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ts-fm-team__card--live .ts-fm-team__league {
	background: #fff5f5;
	border-bottom-color: #fde8e8;
	color: #9b1c1c;
}
.ts-fm-team__logo {
	width: 40px;
	height: 40px;
	object-fit: contain;
	border-radius: 50%;
	background: #f9fafb;
	flex-shrink: 0;
}
.ts-fm-team__logo--ph {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
}
.ts-fm-team__body {
	flex: 1;
	min-width: 0;
}
.ts-fm-team__name {
	font-weight: 650;
	color: #0f2920;
	text-decoration: none;
	font-size: 0.95rem;
}
a.ts-fm-team__name:hover {
	color: #2d6a4f;
}
.ts-fm-team__btn {
	flex-shrink: 0;
	z-index: 2;
	/* Icon-only on /following team rows — no "กำลังติดตาม" label. */
	min-width: 2.25rem;
	min-height: 2.25rem;
	padding: 0.35rem;
	gap: 0;
}
.ts-fm-team__btn .ts-follow-btn__text {
	display: none;
}
.ts-fm-team__fixtures {
	margin-top: 0.65rem;
	display: grid;
	gap: 0.55rem;
}
@media (min-width: 640px) {
	.ts-fm-team__fixtures {
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem;
	}
}
.ts-fm-team__block {
	background: #f8faf9;
	border: 1px solid #eef2f0;
	border-radius: 0.65rem;
	padding: 0.45rem 0.55rem 0.5rem;
	min-width: 0;
}
.ts-fm-team__block-h {
	font-size: 0.7rem;
	font-weight: 700;
	color: #4b5563;
	margin: 0 0 0.35rem;
	letter-spacing: 0.02em;
}
.ts-fm-team__fxlist {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
	gap: 0.28rem;
}
/* Latest news headlines under followed team */
.ts-fm-team__news {
	margin-top: 0.7rem;
	padding: 0.55rem 0.65rem 0.6rem;
	background: #f8faf9;
	border: 1px solid #e8eee9;
	border-radius: 0.7rem;
}
.ts-fm-team__newslist {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}
.ts-fm-team__news-item {
	margin: 0;
	padding: 0;
	list-style: none !important;
}
.ts-fm-team__news-link {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.25rem 0.65rem;
	text-decoration: none !important;
	color: inherit;
}
a.ts-fm-team__news-link:hover .ts-fm-team__news-title {
	color: #1b4332;
	text-decoration: underline;
}
.ts-fm-team__news-title {
	font-size: 0.82rem;
	font-weight: 600;
	color: #1f2937;
	line-height: 1.35;
	flex: 1;
	min-width: 0;
}
.ts-fm-team__news-date {
	font-size: 0.7rem;
	font-weight: 600;
	color: #9ca3af;
	white-space: nowrap;
	flex-shrink: 0;
}
.ts-fm-fx {
	margin: 0;
	padding: 0;
	list-style: none !important;
}
.ts-fm-fx__link {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 0.45rem;
	font-size: 0.78rem;
	line-height: 1.3;
	color: #1f2937;
	text-decoration: none !important;
	min-width: 0;
}
a.ts-fm-fx__link:hover {
	color: #1b4332;
}
.ts-fm-fx__when {
	flex: 0 0 auto;
	font-size: 0.7rem;
	font-weight: 600;
	color: #6b7280;
	font-variant-numeric: tabular-nums;
}
.ts-fm-fx__vs {
	flex: 1 1 auto;
	min-width: 0;
	font-weight: 600;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ts-fm-fx__score {
	flex: 0 0 auto;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: #0f2920;
}
.ts-fm-fx__score.is-live {
	color: #dc2626;
}
.ts-fm-fx__res {
	flex: 0 0 auto;
	min-width: 1.15rem;
	text-align: center;
	font-size: 0.65rem;
	font-weight: 800;
	padding: 0.1rem 0.3rem;
	border-radius: 0.3rem;
	line-height: 1.2;
}
.ts-fm-fx--w .ts-fm-fx__res {
	background: #dcfce7;
	color: #166534;
}
.ts-fm-fx--d .ts-fm-fx__res {
	background: #f3f4f6;
	color: #4b5563;
}
.ts-fm-fx--l .ts-fm-fx__res {
	background: #fee2e2;
	color: #b91c1c;
}
.ts-fm-fx__res--live,
.ts-fm-fx--live .ts-fm-fx__res--live {
	background: #fee2e2;
	color: #dc2626;
}
.entry-content .ts-fm-team__fxlist,
.entry-content .ts-fm-fx {
	list-style: none !important;
	margin-left: 0 !important;
	padding-left: 0 !important;
}
.entry-content a.ts-fm-fx__link {
	color: #1f2937;
	text-decoration: none !important;
}

/* Day → league boards (mirror homepage scoreboard) */
.ts-follow-manage__board {
	margin: 0;
}
.ts-follow-manage__board .ts-fm-day {
	margin-bottom: 1rem;
}
.ts-follow-manage__board .ts-fm-day:last-child {
	margin-bottom: 0;
}
.ts-fm-day__label {
	margin: 0 0 0.45rem;
	padding: 0.15rem 0.1rem;
	font-size: 0.82rem;
	font-weight: 700;
	color: #1b4332;
	letter-spacing: 0.01em;
}
.ts-follow-manage__board .ls-sb {
	margin-bottom: 0.55rem;
}
.ts-follow-manage__board .ls-sb:last-child {
	margin-bottom: 0;
}
.ts-follow-manage__board .ts-broadcast {
	justify-content: flex-start;
	text-align: left;
}

/* Following (inside .entry-content): no prose link/list styles on match board */
.entry-content .ts-follow-manage a:not(.ts-follow-manage__empty-link),
.entry-content .ts-follow-manage .league-header--link {
	text-decoration: none;
}
.entry-content .ts-follow-manage .ts-broadcast__list,
.entry-content .ts-follow-manage .ts-broadcast__item {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.entry-content .ts-follow-manage a.ts-broadcast__chip--link,
.entry-content .ts-follow-manage a.ts-broadcast__chip--link:visited {
	color: #166534 !important;
	background: #dcfce7 !important;
	border-color: #86efac !important;
	text-decoration: none !important;
	cursor: pointer;
	box-shadow: none !important;
}
.entry-content .ts-follow-manage a.ts-broadcast__chip--link:hover {
	color: #14532d !important;
	background: #bbf7d0 !important;
	border-color: #4ade80 !important;
}
.entry-content .ts-follow-manage .ts-broadcast__chip--name {
	background: transparent !important;
	border: none !important;
	color: #1f2937 !important;
	cursor: default;
	pointer-events: none;
	box-shadow: none !important;
}
.entry-content .ts-follow-manage .league-header--link {
	color: inherit;
}
.entry-content .ts-follow-manage h2 {
	margin-top: 0;
	text-decoration: none;
}

/* Legacy compact rows (fallback if card HTML missing) */
.ts-fm-match {
	position: relative;
	display: grid;
	grid-template-columns: 3.25rem 1fr auto 2rem;
	align-items: center;
	gap: 0.55rem;
	padding: 0.65rem 0.75rem;
	border-top: 1px solid #eef2f0;
	min-height: 3.25rem;
	background: #fff;
}
.ts-fm-match.is-live {
	background: linear-gradient(90deg, rgba(239, 68, 68, 0.07) 0%, #fff 40%);
}
.ts-fm-match.is-ft {
	opacity: 0.92;
}
.ts-fm-match__hit {
	position: absolute;
	inset: 0;
	z-index: 1;
}
.ts-fm-match__state {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	z-index: 0;
}
.ts-fm-match__state-main {
	font-size: 0.78rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: #374151;
}
.ts-fm-match.is-live .ts-fm-match__state-main {
	color: #dc2626;
}
.ts-fm-match.is-ft .ts-fm-match__state-main {
	color: #6b7280;
}
.ts-fm-match__state-sub {
	font-size: 0.65rem;
	color: #9ca3af;
}
.ts-fm-match__teams {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	min-width: 0;
	z-index: 0;
}
.ts-fm-match__line {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	min-width: 0;
}
.ts-fm-match__logo {
	width: 18px;
	height: 18px;
	object-fit: contain;
	flex-shrink: 0;
}
.ts-fm-match__name {
	font-size: 0.88rem;
	font-weight: 600;
	color: #111827;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ts-fm-match__score {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	font-size: 0.95rem;
	color: #0f2920;
	z-index: 0;
	min-width: 2.5rem;
	text-align: center;
}
.ts-fm-match__score-vs {
	font-size: 0.75rem;
	font-weight: 600;
	color: #9ca3af;
	text-transform: uppercase;
}
.ts-fm-match__star {
	position: relative;
	top: auto;
	right: auto;
	transform: none;
	z-index: 3;
}
.ts-fm-match__star:hover,
.ts-fm-match__star:focus-visible {
	transform: scale(1.06);
}

/* Profile link card */
.ts-follow-profile-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.75rem;
	padding: 0.55rem 0.9rem;
	border-radius: 0.75rem;
	border: 1px solid rgba(245, 158, 11, 0.35);
	background: rgba(255, 247, 237, 0.9);
	color: #b45309;
	font-weight: 650;
	font-size: 0.9rem;
	text-decoration: none;
	transition: background 0.14s ease, border-color 0.14s ease;
}
.ts-follow-profile-link:hover {
	background: #fff7ed;
	border-color: #f59e0b;
	color: #92400e;
}
.ts-follow-profile-link__n {
	display: inline-flex;
	min-width: 1.35rem;
	height: 1.35rem;
	align-items: center;
	justify-content: center;
	padding: 0 0.35rem;
	border-radius: 999px;
	background: rgba(217, 119, 6, 0.18);
	font-size: 0.75rem;
}


