/*
 * Sportslytics UI — Custom styles, print sheet, animated badge states
 * Supplements Tailwind CDN Play.
 * All rules scoped to .spl-scope to prevent Divi theme bleed.
 */

/* ── Divi isolation wrapper — outermost container for all 4 shortcodes ──── */
/* Strips Divi's aggressive margin/padding/box-model overrides so that        */
/* the inner canvas namespaces compile their Tailwind correctly.              */

.sportslytics-divi-wrapper {
	all: initial;
	display: block;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #111827;
	box-sizing: border-box;
}

.sportslytics-divi-wrapper *,
.sportslytics-divi-wrapper *::before,
.sportslytics-divi-wrapper *::after {
	box-sizing: border-box;
}

/* Re-anchor Divi's et_pb_module margin reset so our inner grid isn't squashed */
.sportslytics-divi-wrapper .et_pb_module,
.sportslytics-divi-wrapper .et_pb_row,
.sportslytics-divi-wrapper .et_pb_column {
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
}

/* ── Global form-element border enforcement ──────────────────────────────── */
/* Tailwind's border-gray-200/300 (#e5e7eb/#d1d5db) reads as "no border" —    */
/* same hairline-border illusion flagged on the sibling CSLytics plugin.      */
/* Override every input/select/textarea inside any sportslytics canvas to     */
/* gray-500 (#6b7280, ~4:1) so the box is actually visible, not just          */
/* technically 3:1-compliant.                                                */

.sportslytics-divi-wrapper input,
.sportslytics-divi-wrapper select,
.sportslytics-divi-wrapper textarea {
	border-color: #6b7280 !important; /* gray-500 */
	border-width: 1.5px !important;
}

.sportslytics-divi-wrapper input:focus,
.sportslytics-divi-wrapper select:focus,
.sportslytics-divi-wrapper textarea:focus {
	border-color: #0d9488 !important; /* teal-600 */
	box-shadow: 0 0 0 1px #0d9488 !important;
	outline: none !important;
}

/* Currency input flex-group wrapper: border lives on the outer div, not the input */
.sportslytics-divi-wrapper .spl-currency-group {
	border-color: #6b7280 !important;
	border-width: 1.5px !important;
}

.sportslytics-divi-wrapper .spl-currency-group:focus-within {
	border-color: #0d9488 !important;
	box-shadow: 0 0 0 1px #0d9488 !important;
}

/* ── sportslytics-board-canvas — Recruiting Board namespace ─────────────── */

.sportslytics-board-canvas {
	font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #111827;
	max-width: 1400px;
	margin: 0 auto;
}

.sportslytics-board-canvas *,
.sportslytics-board-canvas *::before,
.sportslytics-board-canvas *::after {
	box-sizing: border-box;
}

.sportslytics-board-canvas input,
.sportslytics-board-canvas select,
.sportslytics-board-canvas button {
	font-family: inherit;
	font-size: inherit;
}

/* Teal focus ring override */
.sportslytics-board-canvas select:focus,
.sportslytics-board-canvas input:focus,
.sportslytics-board-canvas button:focus-visible {
	outline: none;
	border-color: #0d9488 !important;
	box-shadow: 0 0 0 1px #0d9488 !important;
}

/* Kanban column min-height so empty columns don't collapse */
.sportslytics-board-canvas .spl-phase-column {
	min-height: 220px;
}

/* Board card — fade-in on mount / DOM move */
.sportslytics-board-canvas .spl-board-card {
	animation: spl-fade-in .18s ease;
	transition: box-shadow .12s, border-color .12s;
}

.sportslytics-board-canvas .spl-board-card:hover {
	box-shadow: 0 2px 10px rgba(0,0,0,.06);
}

/* ── Micro-tag pill tokens ────────────────────────────────────────────────── */

.spl-tag-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 6px;
	font-size: .875rem;
	cursor: pointer;
	transition: background .12s, border-color .12s, transform .08s;
	border: 1px solid transparent;
}

.spl-tag-pill:active {
	transform: scale(.9);
}

/* Off state — muted gray */
.spl-tag-off {
	background: #f3f4f6;   /* gray-100 */
	border-color: #e5e7eb; /* gray-200 */
	opacity: .55;
}

.spl-tag-off:hover {
	background: #e5e7eb;
	opacity: .85;
}

/* On state — cobalt tint */
.spl-tag-on {
	background: #dbeafe;   /* blue-100 */
	border-color: #93c5fd; /* blue-300 */
	opacity: 1;
}

.spl-tag-on:hover {
	background: #bfdbfe;   /* blue-200 */
}

/* ── Phase column left-border accent classes (used by JS card move) ──────── */
/* Must match PHASE_CONFIG 'ring' values in the PHP file.                      */

.border-l-gray-300  { border-left-color: #d1d5db !important; }
.border-l-blue-400  { border-left-color: #60a5fa !important; }
.border-l-amber-400 { border-left-color: #fbbf24 !important; }
.border-l-green-400 { border-left-color: #4ade80 !important; }
.border-l-teal-500  { border-left-color: #14b8a6 !important; }

/* ── Print styles for the board ─────────────────────────────────────────── */

@media print {
	.sportslytics-board-canvas .spl-no-print,
	.sportslytics-board-canvas select,
	.sportslytics-board-canvas .spl-tag-pill {
		display: none !important;
	}

	.sportslytics-board-canvas .spl-board-card {
		page-break-inside: avoid;
		border: 1px solid #d1d5db !important;
		border-left-width: 3px !important;
		box-shadow: none !important;
		animation: none !important;
		margin-bottom: 6pt;
	}

	.sportslytics-board-canvas .spl-phase-column {
		page-break-inside: avoid;
	}

	/* Single-column print layout regardless of grid */
	.sportslytics-board-canvas #[id$="-kanban"] {
		display: block !important;
	}

	.sportslytics-board-canvas .spl-phase-column {
		margin-bottom: 16pt;
		break-before: auto;
	}
}

/* ── sportslytics-discovery-canvas — Discovery Engine namespace ─────────── */

.sportslytics-discovery-canvas {
	font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #111827;
	max-width: 1200px;
	margin: 0 auto;
}

.sportslytics-discovery-canvas *,
.sportslytics-discovery-canvas *::before,
.sportslytics-discovery-canvas *::after {
	box-sizing: border-box;
}

.sportslytics-discovery-canvas input,
.sportslytics-discovery-canvas select,
.sportslytics-discovery-canvas textarea,
.sportslytics-discovery-canvas button {
	font-family: inherit;
	font-size: inherit;
}

/* Teal focus ring — override Divi's input focus */
.sportslytics-discovery-canvas input:focus,
.sportslytics-discovery-canvas select:focus,
.sportslytics-discovery-canvas textarea:focus {
	outline: none;
	border-color: #0d9488 !important;
	box-shadow: 0 0 0 1px #0d9488 !important;
}

/* Custom slider track + thumb for Block A·2 weight sliders */
.sportslytics-discovery-canvas .spl-disc-slider {
	-webkit-appearance: none;
	appearance: none;
	height: 20px;         /* hit-target height */
	background: transparent;
	cursor: pointer;
}

.sportslytics-discovery-canvas .spl-disc-slider::-webkit-slider-runnable-track {
	height: 6px;
	background: #e5e7eb;  /* gray-200 */
	border-radius: 999px;
}

.sportslytics-discovery-canvas .spl-disc-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 18px;
	height: 18px;
	margin-top: -6px;     /* center on track */
	border-radius: 50%;
	background: #1d4ed8;  /* cobalt blue-700 */
	border: 2px solid #fff;
	box-shadow: 0 0 0 1px #1d4ed8, 0 2px 4px rgba(0,0,0,.15);
	transition: transform .1s;
}

.sportslytics-discovery-canvas .spl-disc-slider::-webkit-slider-thumb:active {
	transform: scale(1.2);
}

.sportslytics-discovery-canvas .spl-disc-slider::-moz-range-track {
	height: 6px;
	background: #e5e7eb;
	border-radius: 999px;
}

.sportslytics-discovery-canvas .spl-disc-slider::-moz-range-thumb {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #1d4ed8;
	border: 2px solid #fff;
	box-shadow: 0 0 0 1px #1d4ed8;
	cursor: pointer;
}

/* Sticky banner entrance animation */
.sportslytics-discovery-canvas #[id$="-sticky-banner"]:not(.hidden) {
	animation: spl-banner-in .2s ease;
}

@keyframes spl-banner-in {
	from { transform: translateY(100%); opacity: 0; }
	to   { transform: translateY(0);   opacity: 1; }
}

/* Result row fade-in on AJAX inject */
.sportslytics-discovery-canvas .spl-result-row {
	animation: spl-fade-in .22s ease;
}

/* Position room multi-select — consistent height */
.sportslytics-discovery-canvas select[multiple] {
	overflow-y: auto;
}

/* ── sportslytics-form-canvas — Onboarding Hub namespace ────────────────── */
/* Isolates all Tailwind utility classes from Divi / parent theme styles.     */

.sportslytics-form-canvas {
	font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #111827;
	max-width: 1100px;
	margin: 0 auto;
}

.sportslytics-form-canvas *,
.sportslytics-form-canvas *::before,
.sportslytics-form-canvas *::after {
	box-sizing: border-box;
}

/* Override Divi's aggressive input resets inside the canvas */
.sportslytics-form-canvas input,
.sportslytics-form-canvas select,
.sportslytics-form-canvas textarea,
.sportslytics-form-canvas button {
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

/* Guarantee teal-600 focus ring renders above Divi's native focus styles */
.sportslytics-form-canvas input:focus,
.sportslytics-form-canvas select:focus,
.sportslytics-form-canvas textarea:focus {
	outline: none;
	border-color: #0d9488 !important;
	box-shadow: 0 0 0 1px #0d9488 !important;
}

/* border-l-4 border-l-teal-600 — explicit override for Divi border reset */
.sportslytics-form-canvas .border-l-4.border-l-teal-600 {
	border-left: 4px solid #0d9488 !important;
}

/* ── sportslytics-profile-canvas — Recruit Profile namespace ────────────── */

.sportslytics-profile-canvas {
	font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #111827;
	max-width: 1100px;
	margin: 0 auto;
}

.sportslytics-profile-canvas *,
.sportslytics-profile-canvas *::before,
.sportslytics-profile-canvas *::after {
	box-sizing: border-box;
}

.sportslytics-profile-canvas input,
.sportslytics-profile-canvas select,
.sportslytics-profile-canvas textarea,
.sportslytics-profile-canvas button {
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

/* Teal focus ring — overrides Divi's default focus styles */
.sportslytics-profile-canvas input:focus,
.sportslytics-profile-canvas select:focus,
.sportslytics-profile-canvas textarea:focus,
.sportslytics-profile-canvas button:focus-visible {
	outline: none;
	border-color: #0d9488 !important;
	box-shadow: 0 0 0 1px #0d9488 !important;
}

/* Weight slider — cobalt blue track + thumb (matches Discovery Engine) */
.sportslytics-profile-canvas .spl-profile-slider {
	-webkit-appearance: none;
	appearance: none;
	height: 20px;
	background: transparent;
	cursor: pointer;
}

.sportslytics-profile-canvas .spl-profile-slider::-webkit-slider-runnable-track {
	height: 6px;
	background: #e5e7eb;  /* gray-200 */
	border-radius: 999px;
}

.sportslytics-profile-canvas .spl-profile-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 18px;
	height: 18px;
	margin-top: -6px;
	border-radius: 50%;
	background: #1d4ed8;  /* cobalt blue-700 */
	border: 2px solid #fff;
	box-shadow: 0 0 0 1px #1d4ed8, 0 2px 4px rgba(0,0,0,.15);
	transition: transform .1s;
}

.sportslytics-profile-canvas .spl-profile-slider::-webkit-slider-thumb:active {
	transform: scale(1.2);
}

.sportslytics-profile-canvas .spl-profile-slider::-moz-range-track {
	height: 6px;
	background: #e5e7eb;
	border-radius: 999px;
}

.sportslytics-profile-canvas .spl-profile-slider::-moz-range-thumb {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #1d4ed8;
	border: 2px solid #fff;
	box-shadow: 0 0 0 1px #1d4ed8;
	cursor: pointer;
}

/* Score bar fill transition */
.sportslytics-profile-canvas .spl-score-fill {
	transition: width .45s cubic-bezier(.4,0,.2,1);
}

/* Timeline connector line adjustment on mobile */
@media (max-width: 640px) {
	.sportslytics-profile-canvas .relative.pl-6 > .absolute {
		left: .4rem;
	}
}

/* ── Print styles for the profile ───────────────────────────────────────── */

@media print {
	.sportslytics-profile-canvas .spl-no-print,
	.sportslytics-profile-canvas button,
	.sportslytics-profile-canvas input[type="range"] {
		display: none !important;
	}

	.sportslytics-profile-canvas {
		max-width: 100%;
	}

	/* Flatten two-column grid to single column */
	.sportslytics-profile-canvas .lg\:grid-cols-3 {
		grid-template-columns: 1fr !important;
	}

	.sportslytics-profile-canvas .lg\:col-span-2,
	.sportslytics-profile-canvas .lg\:col-span-1 {
		grid-column: span 1 !important;
	}

	.sportslytics-profile-canvas .bg-white {
		border: 1px solid #d1d5db !important;
		box-shadow: none !important;
	}

	@page {
		margin: 0.75in;
		size: letter portrait;
	}
}

/* ── Reset within scope ─────────────────────────────────────────────────── */

.spl-scope *,
.spl-scope *::before,
.spl-scope *::after {
	box-sizing: border-box;
}

.spl-scope {
	/* Isolate font and line-height from Divi / theme */
	font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #1e293b;
}

.spl-scope input,
.spl-scope select,
.spl-scope textarea,
.spl-scope button {
	font-family: inherit;
}

/* ── Score bar animation ────────────────────────────────────────────────── */

.spl-score-row > div > div:last-child {
	transition: width 0.5s cubic-bezier( 0.4, 0, 0.2, 1 );
}

/* ── Compliance badges ──────────────────────────────────────────────────── */

/* Active — solid teal */
.spl-badge-active {
	display: inline-flex;
	align-items: center;
	gap: .2rem;
	padding: .18rem .6rem;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	background: #0d9488;
	color: #fff;
	border: 1.5px solid #0d9488;
}

/* Watchlist — amber dashed border, animated dash offset */
.spl-badge-watchlist {
	display: inline-flex;
	align-items: center;
	gap: .2rem;
	padding: .18rem .6rem;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	background: #fff;
	color: #b45309;
	border: 2px dashed #f59e0b;
	animation: spl-dash-spin 8s linear infinite;
}

@keyframes spl-dash-spin {
	from { border-dash-offset: 0; }
	to   { border-dash-offset: 40px; }
}

/* DIII unrestricted — blue */
.spl-badge-unrestricted {
	display: inline-flex;
	align-items: center;
	gap: .2rem;
	padding: .18rem .6rem;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	background: #dbeafe;
	color: #1d4ed8;
	border: 1.5px solid #93c5fd;
}

/* ── Verification badges ────────────────────────────────────────────────── */

/* Verified — solid teal */
.spl-verify-ok {
	display: inline-flex;
	align-items: center;
	gap: .2rem;
	padding: .18rem .55rem;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 700;
	background: #ccfbf1;
	color: #0f766e;
	border: 1.5px solid #5eead4;
}

/* Unverified — amber dashed, pulsing */
.spl-verify-proxy {
	display: inline-flex;
	align-items: center;
	gap: .2rem;
	padding: .18rem .55rem;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 700;
	background: #fffbeb;
	color: #92400e;
	border: 2px dashed #fcd34d;
	animation: spl-proxy-pulse 2.5s ease-in-out infinite;
}

@keyframes spl-proxy-pulse {
	0%, 100% { opacity: 1; }
	50%       { opacity: .6; }
}

/* Transition from proxy → verified (JS can swap classes) */
.spl-verify-proxy.spl-verifying {
	animation: none;
	opacity: .5;
}

/* ── Weight sliders ─────────────────────────────────────────────────────── */

.spl-scope input[type="range"] {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 6px;
	background: #e2e8f0;
	border-radius: 999px;
	outline: none;
	cursor: pointer;
}

.spl-scope input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: currentColor;
	border: 2px solid #fff;
	box-shadow: 0 0 0 1px currentColor, 0 2px 6px rgba(0,0,0,.15);
	cursor: pointer;
	transition: transform .1s;
}

.spl-scope input[type="range"]::-webkit-slider-thumb:active {
	transform: scale(1.2);
}

.spl-scope input[type="range"]::-moz-range-thumb {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid #fff;
	cursor: pointer;
}

/* ── Board cards ────────────────────────────────────────────────────────── */

.spl-board-card {
	transition: box-shadow .15s, opacity .3s;
}

.spl-board-card:hover {
	box-shadow: 0 4px 16px rgba(0,0,0,.07);
}

/* ── Tag buttons ────────────────────────────────────────────────────────── */

.spl-tag-btn {
	transition: background .15s, color .15s, border-color .15s, transform .1s;
}

.spl-tag-btn:active {
	transform: scale( .96 );
}

/* ── Phase filter tabs ──────────────────────────────────────────────────── */

.spl-phase-btn {
	transition: background .15s, color .15s, border-color .15s;
}

/* ── Prospect card fade-in ──────────────────────────────────────────────── */

.spl-prospect-card {
	animation: spl-fade-in .25s ease;
}

@keyframes spl-fade-in {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* ── Modal overlay ──────────────────────────────────────────────────────── */

.spl-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(15,23,42,.55);
	z-index: 9998;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.spl-modal-box {
	background: #fff;
	border-radius: 14px;
	padding: 2rem;
	width: 100%;
	max-width: 680px;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 20px 60px rgba(0,0,0,.2);
	animation: spl-modal-in .22s cubic-bezier( 0.34, 1.56, 0.64, 1 );
}

@keyframes spl-modal-in {
	from { opacity: 0; transform: scale(.94); }
	to   { opacity: 1; transform: scale(1); }
}

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media ( max-width: 768px ) {
	.spl-scope [style*="grid-template-columns:1fr 340px"] {
		grid-template-columns: 1fr !important;
	}

	.spl-scope [style*="grid-template-columns:repeat(auto-fit,minmax(320px"] {
		grid-template-columns: 1fr !important;
	}
}

/* ── Print styles ───────────────────────────────────────────────────────── */

@media print {

	/* Hide interactive chrome */
	.spl-no-print,
	.spl-modal-overlay,
	button,
	select,
	input[type="range"],
	input[type="checkbox"] {
		display: none !important;
	}

	/* Hide the app shell's sidebar/nav so a print job shows only the
	   canvas content (Roster Management, Depth Charts, Player Reports, …). */
	.spl-shell__sidebar,
	.spl-shell__backdrop {
		display: none !important;
	}
	.spl-shell__main { width: 100% !important; }
	.spl-shell { display: block !important; }

	/* Show print-only elements */
	.spl-print-only {
		display: block !important;
	}

	/* Remove decorative shadows and transitions */
	.spl-board-card,
	.spl-scope [style] {
		box-shadow: none !important;
		animation: none !important;
		transition: none !important;
	}

	/* Force white backgrounds */
	.spl-scope,
	.spl-board-card,
	.spl-scope > div {
		background: #fff !important;
		color: #000 !important;
	}

	/* Board header */
	.spl-scope h2,
	.spl-scope h3 {
		page-break-after: avoid;
	}

	/* Don't break cards across pages */
	.spl-board-card {
		page-break-inside: avoid;
		border: 1px solid #ccc !important;
		border-left-width: 4px !important;
		margin-bottom: 6pt !important;
		padding: 8pt 10pt !important;
	}

	/* Score bars — print as text only */
	.spl-score-row > div > div:last-child {
		display: none;
	}

	/* Print compact layout */
	body {
		font-size: 10pt;
	}

	@page {
		margin: 0.75in;
		size: letter portrait;
	}
}

/* ════════════════════════════════════════════════════════════════════════
   App Shell (Sidebar + Header) — Sportslytics_Layout
   Shared wrapper for every logged-in coach-facing shortcode. Mirrors HS
   Sportslytics' .ce-shell structure/measurements, rebuilt on this plugin's
   cobalt-blue/blue-700 accent pair (cobalt #0047AB for nav, blue-700 #1d4ed8
   for CTAs) rather than introducing a second palette. WCAG 2.1 AA text
   contrast throughout.
   ════════════════════════════════════════════════════════════════════════ */

.spl-shell {
	--spl-ink:          #111827; /* ~17:1 on white */
	--spl-ink-2:        #374151; /* ~9.8:1 on white — secondary text */
	--spl-ink-3:        #4B5563; /* ~7.2:1 on white — meta/hint text only */
	--spl-border:       #E5E7EB;
	--spl-bg-alt:       #F9FAFB;
	--spl-accent:       #0047AB; /* cobalt blue — brand primary */
	--spl-accent-light: #EAF1FB;
	--spl-accent-dark:  #00337d; /* darker cobalt — ~8.9:1 on --spl-accent-light, text-safe */
	--spl-cta:          #1d4ed8; /* blue-700 */
	--spl-cta-light:    #EFF6FF;

	display:     flex;
	align-items: stretch;
	min-height:  100vh;
	background:  #fff;
	margin:      0 calc(50% - 50vw);
	width:       100vw;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color:       var(--spl-ink);
	box-sizing:  border-box;
}
.spl-shell *,
.spl-shell *::before,
.spl-shell *::after { box-sizing: border-box; }

.spl-shell__backdrop {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(17,24,39,.4);
	z-index: 1;
}

.spl-shell__sidebar {
	width:          256px;
	flex-shrink:    0;
	background:     var(--spl-bg-alt);
	border-right:   1px solid var(--spl-border);
	display:        flex;
	flex-direction: column;
	position:       relative;
	z-index:        2;
	transition:     transform .2s ease;
}

.spl-shell__org { padding: 20px 16px 12px; }
.spl-shell__org-card {
	display:        flex;
	align-items:    center;
	gap:            12px;
	padding:        13px;
	background:     #fff;
	border:         1px solid var(--spl-border);
	border-radius:  8px;
	box-shadow:     0 1px 1px rgba(0,0,0,.05);
}
.spl-shell__org-icon {
	width: 36px; height: 36px; flex-shrink: 0;
	border-radius: 9999px;
	background: var(--spl-bg-alt);
	border: 1px solid var(--spl-border);
	display: flex; align-items: center; justify-content: center;
	color: var(--spl-ink-2);
	overflow: hidden;
}
.spl-shell__org-icon svg { width: 16px; height: 16px; }
.spl-shell__org-logo { width: 100%; height: 100%; object-fit: cover; border-radius: 9999px; }
.spl-shell__org-name { font-size: 14px; font-weight: 600; color: var(--spl-ink); line-height: 20px; }
.spl-shell__org-meta { font-size: 12px; color: var(--spl-ink-2); line-height: 16px; margin-top: 1px; }

.spl-shell__coach {
	display:     flex;
	align-items: center;
	gap:         12px;
	padding:     13px 16px;
	border-top:  1px solid var(--spl-border);
}
.spl-shell__coach-avatar {
	width: 32px; height: 32px; flex-shrink: 0;
	border-radius: 9999px;
	border: 1px solid var(--spl-border);
	overflow: hidden;
	display: block;
}
.spl-shell__coach-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.spl-shell__coach-info { flex: 1 0 0; min-width: 0; }
.spl-shell__coach-name {
	font-size: 14px; font-weight: 500; color: var(--spl-ink);
	line-height: 20px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.spl-shell__coach-role { font-size: 12px; color: var(--spl-ink-2); line-height: 16px; }
.spl-shell__settings-btn {
	flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
	width: 32px; height: 32px;
	color: var(--spl-ink-2);
	background: none;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	text-decoration: none;
}
.spl-shell__settings-btn:hover         { background: #F3F4F6; color: var(--spl-ink); }
.spl-shell__settings-btn:focus-visible { outline: 3px solid var(--spl-accent); outline-offset: 2px; }
.spl-shell__settings-btn svg { width: 16px; height: 16px; }

.spl-shell__nav {
	flex: 1 0 0;
	min-height: 0;
	overflow-y: auto;
	padding: 8px 12px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.spl-shell__nav-group { display: flex; flex-direction: column; gap: 6px; }
.spl-shell__nav-label {
	font-size: 10px; font-weight: 600; letter-spacing: 1px;
	text-transform: uppercase; color: var(--spl-ink-3);
	padding: 0 8px;
}
.spl-shell__nav-list { display: flex; flex-direction: column; gap: 2px; }
.spl-shell__nav-item {
	display: flex; align-items: center; gap: 12px;
	min-height: 44px;
	padding: 8px 12px;
	border-radius: 8px;
	font-size: 14px; font-weight: 500;
	color: var(--spl-accent-dark);
	text-decoration: none;
	transition: background-color .15s;
}
.spl-shell__nav-item svg { width: 16px; height: 16px; flex-shrink: 0; }
.spl-shell__nav-item:hover { background: #F3F4F6; }
.spl-shell__nav-item.is-active { background: var(--spl-accent-light); color: var(--spl-accent-dark); font-weight: 600; }
.spl-shell__nav-item:focus-visible { outline: 3px solid var(--spl-accent); outline-offset: -2px; }

.spl-shell__main {
	flex: 1 0 0;
	min-width: 0;
	max-width: 100%;
	display: flex;
	flex-direction: column;
	background: #fff;
	overflow-x: hidden;
}
.spl-shell__header {
	min-height: 64px;
	flex-shrink: 0;
	display: flex; align-items: center; justify-content: space-between;
	gap: 16px; flex-wrap: wrap;
	padding: 12px 32px;
	border-bottom: 1px solid var(--spl-border);
}
.spl-shell__header-left { display: flex; align-items: center; gap: 12px; }
.spl-shell__title { font-size: 1.25rem; font-weight: 700; color: var(--spl-ink); margin: 0; }
.spl-shell__subtitle { font-size: .875rem; color: var(--spl-ink-2); }
.spl-shell__menu-btn {
	display: none;
	align-items: center; justify-content: center;
	width: 40px; height: 40px;
	background: none; border: 1px solid var(--spl-border); border-radius: 8px;
	color: var(--spl-ink); cursor: pointer;
}
.spl-shell__menu-btn svg { width: 18px; height: 18px; }
.spl-shell__canvas { flex: 1 0 0; padding: 24px 32px; }

@media (max-width: 900px) {
	.spl-shell__sidebar {
		position: fixed;
		inset: 0 auto 0 0;
		transform: translateX(-100%);
	}
	.spl-shell--nav-open .spl-shell__sidebar { transform: translateX(0); }
	.spl-shell--nav-open .spl-shell__backdrop { display: block; }
	.spl-shell__menu-btn { display: flex; }
	.spl-shell__canvas { padding: 16px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   Card architecture ported from HS Sportslytics (coacheval) — Depth Chart
   Grid + Player Evaluation Report. Class names (.ce-card, .ce-pp-*, .hs-pr-*)
   are kept identical to coacheval's sideline-core.css so this inherits the
   exact same card tokens/padding/margins by construction, not by
   reimplementation. Scoped under .sportslytics-report-canvas /
   .sportslytics-depth-canvas so nothing leaks plugin-wide.
   ══════════════════════════════════════════════════════════════════════════ */

.sportslytics-divi-wrapper {
	--spl-navy:          #0D1B4B;
	--spl-success:       #15803D;
	--spl-success-light: #F0FDF4;
	--spl-danger:        #B91C1C;
	--spl-danger-light:  #FEE2E2;
	--spl-warning:       #92400E;
	--spl-warning-light: #FFFBEB;
}

/* ── Card architecture (.ce-card) — global, not canvas-scoped ────────────
   Ported from HS Sportslytics (coacheval) so every page (Team Profile,
   Roster Management, Offline App, Depth Charts, Player Reports, Account,
   Staff Access) shares one card/section-header system: white body, light
   blue (#E3F1FF) header banner — never gray/slate. ─────────────────────── */
.ce-card {
	background:    #fff;
	border:        1px solid var(--spl-border, #E5E7EB);
	border-radius: 12px;
	box-shadow:    0 1px 2px rgba(0,0,0,.05);
	margin-bottom: 24px;
	overflow:      hidden;
}
.ce-card__hd {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	gap:             12px;
	padding:         16px 24px;
	background:      #E3F1FF;
	border-bottom:   1px solid var(--spl-border, #E5E7EB);
	flex-wrap:       wrap;
}
.ce-card__hd-title { font-size: 16px; font-weight: 700; color: var(--spl-ink, #111827); }
.ce-card__hd-sub   { font-size: 14px; color: var(--spl-ink-2, #374151); margin-top: 2px; }
.ce-card__body { padding: 24px; }
.ce-count-badge {
	display:       inline-flex;
	align-items:   center;
	padding:       2px 8px;
	border-radius: 9999px;
	background:    var(--spl-cta, #1d4ed8);
	color:         #fff;
	font-size:     12px;
	font-weight:   600;
	margin-left:   8px;
}

/* ── Player Report header (.ce-pp-*) ─────────────────────────────────────── */
.sportslytics-report-canvas .ce-pp-header {
	background:      var(--spl-navy);
	color:           #fff;
	border-radius:   12px;
	padding:         20px 24px;
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	gap:             16px;
	flex-wrap:       wrap;
	margin-bottom:   20px;
}
.sportslytics-report-canvas .ce-pp-header-main { display: flex; align-items: center; gap: 16px; }
.sportslytics-report-canvas .ce-pp-avatar {
	width: 56px; height: 56px; border-radius: 9999px;
	background: rgba(255,255,255,.12); border: 2px solid rgba(255,255,255,.3);
	display: flex; align-items: center; justify-content: center;
	font-size: 18px; font-weight: 800; flex-shrink: 0;
}
.sportslytics-report-canvas .ce-pp-name { font-size: 20px; font-weight: 700; }
.sportslytics-report-canvas .ce-pp-meta  { font-size: 13px; color: rgba(255,255,255,.75); margin-top: 2px; }
.sportslytics-report-canvas .ce-pp-meta2 { font-size: 12px; color: rgba(255,255,255,.6); margin-top: 4px; }
.sportslytics-report-canvas .ce-pp-side { display: flex; align-items: center; gap: 12px; }
.sportslytics-report-canvas .ce-pp-pei { text-align: center; }
.sportslytics-report-canvas .ce-pp-pei-num { font-size: 24px; font-weight: 800; }
.sportslytics-report-canvas .ce-pp-pei-label { font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: rgba(255,255,255,.7); }
.sportslytics-report-canvas .ce-pp-starter {
	display: inline-flex; align-items: center; gap: 6px;
	background: #22C55E; color: #052e13;
	padding: 6px 14px; border-radius: 8px; font-size: 13px; font-weight: 700;
}
.sportslytics-report-canvas .ce-pp-evaluators { font-size: 12px; color: var(--spl-ink-2); margin-bottom: 20px; }

.sportslytics-report-canvas .ce-pp-metrics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
@media (max-width: 900px) { .sportslytics-report-canvas .ce-pp-metrics-grid { grid-template-columns: 1fr; } }
.sportslytics-report-canvas .ce-pp-metrics-grid > .ce-card { margin-bottom: 0; }

.sportslytics-report-canvas .ce-pp-metric-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 12px; }
.sportslytics-report-canvas .ce-pp-metric-grid--3col { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 480px) { .sportslytics-report-canvas .ce-pp-metric-grid--3col { grid-template-columns: repeat(2, 1fr); } }
.sportslytics-report-canvas .ce-pp-metric-card { background: var(--spl-bg-alt); border: 1px solid var(--spl-border); border-radius: 8px; padding: 14px; text-align: center; }
.sportslytics-report-canvas .ce-pp-metric-icon { font-size: 16px; margin-bottom: 4px; }
.sportslytics-report-canvas .ce-pp-metric-num { font-size: 22px; font-weight: 800; color: var(--spl-ink); }
.sportslytics-report-canvas .ce-pp-metric-label { font-size: 12px; color: var(--spl-ink-2); margin-top: 2px; }
.sportslytics-report-canvas .ce-pp-metric-sub { font-size: 11px; color: var(--spl-success); font-weight: 600; margin-top: 4px; }
.sportslytics-report-canvas .ce-pp-metric-card--empty { opacity: .6; border-style: dashed; }

.sportslytics-report-canvas .ce-pp-status-badge { font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 9999px; white-space: nowrap; }
.sportslytics-report-canvas .ce-pp-status-badge--verified { background: var(--spl-success-light); color: var(--spl-success); border: 1px solid #BBF7D0; }

.sportslytics-report-canvas .ce-pp-div-badge { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 9999px; white-space: nowrap; }
.sportslytics-report-canvas .ce-pp-div-badge--met      { background: var(--spl-success-light); color: var(--spl-success); }
.sportslytics-report-canvas .ce-pp-div-badge--risk     { background: var(--spl-danger-light);  color: var(--spl-danger); }
.sportslytics-report-canvas .ce-pp-div-badge--progress { background: var(--spl-warning-light); color: var(--spl-warning); }

/* ── Section 3 bench box ──────────────────────────────────────────────────── */
.sportslytics-report-canvas .hs-pr-bench-box { background: var(--spl-navy); border-radius: 8px; padding: 20px; text-align: center; color: #fff; }
.sportslytics-report-canvas .hs-pr-bench-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; opacity: .8; margin-bottom: 10px; }
.sportslytics-report-canvas .hs-pr-bench-row { display: flex; align-items: center; justify-content: center; gap: 18px; }
.sportslytics-report-canvas .hs-pr-bench-num { font-size: 32px; font-weight: 800; }
.sportslytics-report-canvas .hs-pr-bench-sub { font-size: 12px; opacity: .8; }
.sportslytics-report-canvas .hs-pr-bench-at { font-size: 18px; opacity: .7; }

/* ── Section 4 position-scale pills ───────────────────────────────────────── */
.sportslytics-report-canvas .hs-pr-perf-hd { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--spl-ink-2); margin-bottom: 12px; }
.sportslytics-report-canvas .hs-pr-scale-row { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-top: 1px solid #F3F4F6; flex-wrap: wrap; }
.sportslytics-report-canvas .hs-pr-scale-row:first-of-type { border-top: none; }
.sportslytics-report-canvas .hs-pr-scale-label { flex: 1 1 200px; font-size: 13px; color: var(--spl-ink-2); }
.sportslytics-report-canvas .hs-pr-scale-pills { display: flex; gap: 4px; }
.sportslytics-report-canvas .hs-pr-scale-pill { width: 26px; height: 26px; border-radius: 6px; background: #F3F4F6; color: #9CA3AF; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.sportslytics-report-canvas .hs-pr-scale-pill--on { background: var(--spl-navy); color: #fff; }
.sportslytics-report-canvas .hs-pr-scale-value { margin-left: auto; font-size: 12px; font-weight: 700; color: var(--spl-ink-2); }

/* ── Section 5 star grid ──────────────────────────────────────────────────── */
.sportslytics-report-canvas .hs-pr-star-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (max-width: 480px) { .sportslytics-report-canvas .hs-pr-star-grid { grid-template-columns: 1fr; } }
.sportslytics-report-canvas .hs-pr-star-card { background: var(--spl-bg-alt); border: 1px solid var(--spl-border); border-radius: 8px; padding: 16px; text-align: center; }
.sportslytics-report-canvas .hs-pr-stars { color: #F59E0B; font-size: 18px; letter-spacing: 2px; }
.sportslytics-report-canvas .hs-pr-star-value { font-size: 13px; font-weight: 700; color: var(--spl-ink); margin-top: 4px; }
.sportslytics-report-canvas .hs-pr-star-label { font-size: 12px; color: var(--spl-ink-2); margin-top: 2px; }

/* ── Section 6 compliance checklist + report boxes ───────────────────────── */
.sportslytics-report-canvas .hs-pr-check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 20px; }
@media (max-width: 480px) { .sportslytics-report-canvas .hs-pr-check-grid { grid-template-columns: 1fr; } }
.sportslytics-report-canvas .hs-pr-check-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 13px; color: var(--spl-ink-2); }
.sportslytics-report-canvas .hs-pr-check-icon { width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.sportslytics-report-canvas .hs-pr-check-icon--on  { background: var(--spl-success-light); color: var(--spl-success); }
.sportslytics-report-canvas .hs-pr-check-icon--off { background: var(--spl-danger-light);  color: var(--spl-danger); }

.sportslytics-report-canvas .hs-pr-report-box { border-radius: 8px; padding: 16px 18px; margin-bottom: 14px; }
.sportslytics-report-canvas .hs-pr-report-box:last-child { margin-bottom: 0; }
.sportslytics-report-canvas .hs-pr-report-box p { font-size: 13px; line-height: 1.6; color: var(--spl-ink); margin: 0; }
.sportslytics-report-canvas .hs-pr-report-hd { font-size: 13px; font-weight: 700; margin-bottom: 8px; }
.sportslytics-report-canvas .hs-pr-report-box--good { background: var(--spl-success-light); border: 1px solid #BBF7D0; }
.sportslytics-report-canvas .hs-pr-report-box--good .hs-pr-report-hd { color: var(--spl-success); }
.sportslytics-report-canvas .hs-pr-report-box--risk { background: var(--spl-danger-light); border: 1px solid #FCA5A5; }
.sportslytics-report-canvas .hs-pr-report-box--risk .hs-pr-report-hd { color: var(--spl-danger); }

/* ══════════════════════════════════════════════════════════════════════════
   Interactive Depth Chart Grid (Task 1) — package cards, position blocks,
   retention-heatmap toggle + risk badge overlays.
   ══════════════════════════════════════════════════════════════════════════ */

.sportslytics-depth-canvas .spl-dc-toggle-row {
	display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.sportslytics-depth-canvas .spl-dc-toggle-label { font-size: 14px; font-weight: 600; color: var(--spl-ink); }
.sportslytics-depth-canvas .spl-dc-switch {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 44px; flex-shrink: 0; cursor: pointer;
}
.sportslytics-depth-canvas .spl-dc-switch input {
	position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer;
}
.sportslytics-depth-canvas .spl-dc-switch-track {
	position: absolute; top: 50%; left: 0; right: 0; transform: translateY(-50%);
	height: 28px; background: #D1D5DB; border-radius: 9999px; transition: background .15s; pointer-events: none;
}
.sportslytics-depth-canvas .spl-dc-switch-thumb {
	position: absolute; top: 50%; left: 3px; width: 22px; height: 22px; transform: translateY(-50%);
	background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,.3); transition: transform .15s; pointer-events: none;
}
.sportslytics-depth-canvas .spl-dc-switch input:checked + .spl-dc-switch-track { background: var(--spl-cta); }
.sportslytics-depth-canvas .spl-dc-switch input:checked ~ .spl-dc-switch-thumb { transform: translateY(-50%) translateX(20px); }
.sportslytics-depth-canvas .spl-dc-switch input:focus-visible + .spl-dc-switch-track { outline: 3px solid var(--spl-cta); outline-offset: 2px; }

.sportslytics-depth-canvas .spl-dc-packages { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 1100px) { .sportslytics-depth-canvas .spl-dc-packages { grid-template-columns: 1fr; } }
.sportslytics-depth-canvas .spl-dc-package-card { display: flex; flex-direction: column; gap: 16px; }

.sportslytics-depth-canvas .spl-dc-position-block { border: 1px solid var(--spl-border); border-radius: 8px; overflow: hidden; }
.sportslytics-depth-canvas .spl-dc-position-hd {
	background: var(--spl-bg-alt); padding: 8px 14px; font-size: 12px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .04em; color: var(--spl-ink-2);
	border-bottom: 1px solid var(--spl-border);
}
.sportslytics-depth-canvas .spl-dc-player-row {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	padding: 10px 14px; border-top: 1px solid #F3F4F6; transition: outline .1s, background .1s;
}
.sportslytics-depth-canvas .spl-dc-player-row:first-of-type { border-top: none; }
.sportslytics-depth-canvas .spl-dc-player-main { display: flex; align-items: center; gap: 8px; min-width: 0; }
.sportslytics-depth-canvas .spl-dc-player-name { font-size: 13px; font-weight: 600; color: var(--spl-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sportslytics-depth-canvas .spl-dc-player-jersey { font-size: 12px; color: var(--spl-ink-2); flex-shrink: 0; }
.sportslytics-depth-canvas .spl-dc-slot-badge {
	font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
	padding: 2px 8px; border-radius: 9999px; flex-shrink: 0;
}
.sportslytics-depth-canvas .spl-dc-slot-badge--starter { background: var(--spl-success-light); color: var(--spl-success); }
.sportslytics-depth-canvas .spl-dc-slot-badge--backup  { background: #EFF6FF; color: var(--spl-cta); }
.sportslytics-depth-canvas .spl-dc-player-score { font-size: 13px; font-weight: 700; color: var(--spl-ink); tabular-nums: 1; flex-shrink: 0; }
.sportslytics-depth-canvas .spl-dc-eval-link {
	font-size: 11px; font-weight: 600; color: var(--spl-cta); text-decoration: none;
	white-space: nowrap; flex-shrink: 0; padding: 4px 2px;
}
.sportslytics-depth-canvas .spl-dc-eval-link:hover { text-decoration: underline; }
.sportslytics-depth-canvas .spl-dc-eval-link:focus-visible { outline: 2px solid var(--spl-cta); outline-offset: 2px; border-radius: 2px; }
.sportslytics-depth-canvas .spl-dc-empty-block { padding: 14px; font-size: 12px; color: var(--spl-ink-2); font-style: italic; }

/* Retention heatmap overlay — hidden until the toggle is checked */
.sportslytics-depth-canvas .spl-dc-risk-badge {
	display: none; align-items: center; gap: 4px;
	font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 9999px;
	background: var(--spl-danger-light); color: var(--spl-danger); white-space: nowrap; flex-shrink: 0;
}
.sportslytics-depth-canvas.spl-dc-heatmap-on [data-risk="1"] {
	outline: 2px solid var(--spl-danger);
	outline-offset: -2px;
	background: var(--spl-danger-light);
}
.sportslytics-depth-canvas.spl-dc-heatmap-on [data-risk="1"] .spl-dc-risk-badge { display: inline-flex; }
.sportslytics-depth-canvas.spl-dc-heatmap-on [data-risk="1"] .spl-dc-player-score { display: none; }

/* ══════════════════════════════════════════════════════════════════════════
   Column-header definition tooltips (Roster Management). Click-to-open,
   closes on outside click or when another tooltip opens — mirrors the
   metric-tooltip pattern already used on HS Sportslytics' evaluation form.
   ══════════════════════════════════════════════════════════════════════════ */
.sportslytics-roster-canvas .spl-tip-wrap { position: relative; display: inline-block; vertical-align: middle; }
.sportslytics-roster-canvas .spl-tip-btn {
	background: none; border: none; cursor: pointer;
	color: var(--spl-cta, #1d4ed8); font-size: 13px; font-weight: 700;
	padding: 0 0 0 5px; line-height: 1; vertical-align: middle;
}
.sportslytics-roster-canvas .spl-tip-btn:focus-visible { outline: 2px solid var(--spl-cta, #1d4ed8); border-radius: 2px; }
.sportslytics-roster-canvas .spl-tip-box {
	display: none; position: absolute; left: 0; top: calc(100% + 6px);
	background: #1e293b; color: #f8fafc; font-size: 13px; font-weight: 400;
	line-height: 1.5; padding: 10px 12px; border-radius: 8px; width: 240px;
	white-space: normal; text-transform: none; letter-spacing: normal;
	z-index: 20; box-shadow: 0 4px 20px rgba(0,0,0,.3);
}
.sportslytics-roster-canvas .spl-tip-box.open { display: block; }
.sportslytics-roster-canvas th:nth-last-child(-n+2) .spl-tip-box { left: auto; right: 0; }

/* Sortable column headers */
.sportslytics-roster-canvas .spl-th-sort {
	background: none; border: none; cursor: pointer; padding: 0;
	font: inherit; font-weight: 600; color: var(--spl-ink, #111827);
}
.sportslytics-roster-canvas .spl-th-sort:hover { text-decoration: underline; }
.sportslytics-roster-canvas .spl-th-sort:focus-visible { outline: 2px solid var(--spl-cta, #1d4ed8); border-radius: 2px; }
.sportslytics-roster-canvas .spl-th-arrow { font-size: 10px; color: var(--spl-cta, #1d4ed8); }
