/* Viewport scroll anchoring follows DOM edits (sort, day dividers, Just Ended)
   and yanks a refresh down the page. The scores script restores a real offset. */
html, body{overflow-anchor:none;}
.score-header{display:flex;flex-direction:column;align-items:center;gap:10px;margin:2px 0 14px;padding:10px 12px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.05);}
.score-header-left{width:100%;text-align:center;}
.score-header-title{margin:0;font-size:1.35rem;font-weight:800;letter-spacing:-.03em;cursor:pointer;line-height:1.05;color:#0f172a;text-align:center;}
.score-header-domain{font-size:11px;font-weight:700;color:#64748b;margin-top:3px;text-transform:lowercase;letter-spacing:.06em;text-align:center;}
.score-header-links{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;}
.view-quick-toggle{display:inline-flex;align-items:center;gap:2px;padding:2px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;}
.view-pill{position:relative;width:32px;height:30px;border-radius:8px;border:0;background:transparent;color:#475569;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.view-pill svg{width:16px;height:16px;display:block;fill:currentColor;}
.view-pill:hover{background:#e2e8f0;color:#0f172a;}
.view-pill.active{background:#0f172a;color:#fff;}
.view-pill.header-tool{width:32px;height:32px;border:1px solid #cbd5e1;background:#fff;color:#334155;}
.view-pill.header-tool:hover{background:#f8fafc;}
.view-pill.header-tool.active{background:#0f172a;color:#fbbf24;border-color:#0f172a;}
.score-header-link{font-size:13px;font-weight:700;color:#0f172a;text-decoration:none;border:1px solid #cbd5e1;background:#fff;padding:6px 10px;border-radius:9999px;line-height:1;}
.score-header-link:hover{background:#f8fafc;border-color:#94a3b8;}
@media (max-width: 640px){
	.score-header{gap:10px;padding:10px;}
	.score-header-title{font-size:1.2rem;}
	.score-header-links{gap:6px;}
	.score-header-link{padding:6px 9px;}
}
.fab-menu-shell{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:5000;}
.fab-menu-toggle{width:58px;height:58px;border-radius:9999px;border:1px solid #111827;background:linear-gradient(160deg,#111827,#1f2937);color:#fff;font-size:22px;font-weight:700;box-shadow:0 10px 24px rgba(0,0,0,.32),0 0 0 1px rgba(255,255,255,.08) inset;cursor:pointer;transition:transform .16s ease, box-shadow .16s ease, background .16s ease;display:inline-flex;align-items:center;justify-content:center;padding:0;}
.fab-menu-toggle svg{width:22px;height:22px;display:block;}
.fab-menu-help{margin:4px 0 0;font-size:12px;line-height:1.35;color:#475569;}
.fab-menu-auto{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;padding:10px 0 8px;margin-top:8px;border-top:1px solid #e5e7eb;}
.fab-league-toggle{display:inline-flex;align-items:center;gap:5px;border:1px solid #e2e8f0;background:#fff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;letter-spacing:.04em;}
.fab-menu-toggle:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.12) inset;}
.fab-menu-toggle:active{transform:translateY(0);}
.fab-menu-toggle:focus-visible{outline:2px solid #93c5fd;outline-offset:2px;}
.fab-menu-panel{position:absolute;right:0;bottom:70px;min-width:300px;max-width:380px;max-height:72vh;overflow:auto;background:linear-gradient(180deg,#ffffff,#f9fafb);border-color:#e5e7eb;box-shadow:0 14px 36px rgba(15,23,42,.24);border-radius:14px !important;}
.fab-menu-bullets{padding-left:1rem;list-style:disc;}
.fab-menu-leagues{display:flex;flex-wrap:wrap;gap:4px 8px;}
.fab-menu-actions{display:flex;gap:6px;}
.fab-menu-actions button{flex:1;background:#fff;border:1px solid #d1d5db;border-color:#d1d5db;border-radius:8px;min-height:32px;font-weight:700;font-size:12px;cursor:pointer;}
.fab-menu-actions button:hover{background:#f8fafc;}
@media (max-width: 640px){
	.fab-menu-shell{right:10px;bottom:calc(10px + env(safe-area-inset-bottom));}
	.fab-menu-toggle{width:52px;height:52px;font-size:20px;}
	.fab-menu-panel{right:0;bottom:62px;left:auto;min-width:min(92vw,320px);max-width:min(92vw,340px);max-height:68vh;padding:10px !important;}
	.fab-menu-actions{display:grid !important;grid-template-columns:1fr 1fr;gap:6px !important;}
}
body.chat-open .fab-menu-shell,
body.chat-open .chat-fab-shell{display:none !important;}
.chat-fab-shell{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:5000;}
.chat-fab-toggle{width:58px;height:58px;border-radius:9999px;border:1px solid #0f172a;background:linear-gradient(160deg,#0f172a,#1e293b);color:#fff;font-size:22px;box-shadow:0 10px 24px rgba(0,0,0,.32),0 0 0 1px rgba(255,255,255,.08) inset;cursor:pointer;transition:transform .16s ease, box-shadow .16s ease;}
.chat-fab-toggle:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.12) inset;}
#chatDirectoryModal .modal-box{height:auto !important;max-height:88vh;}
.chat-dir-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:linear-gradient(90deg,color-mix(in srgb,var(--away,#cbd5e1) 30%,#fff),#fff 42%,#fff 58%,color-mix(in srgb,var(--home,#cbd5e1) 30%,#fff));border:1px solid #e5e7eb;border-left:8px solid var(--away,#cbd5e1);border-right:8px solid var(--home,#cbd5e1);border-radius:12px;padding:8px 10px;color:#0f172a;}
.chat-dir-item:hover{filter:brightness(.97);}
.chat-dir-logos{display:flex;align-items:center;gap:4px;flex:0 0 auto;}
.chat-dir-logos img{width:32px;height:32px;object-fit:contain;background:rgba(255,255,255,.86);border-radius:8px;padding:2px;}
.chat-dir-copy{min-width:0;flex:1 1 auto;}
.chat-dir-league{display:block;font-size:10px;line-height:1.1;letter-spacing:.06em;text-transform:uppercase;color:#64748b;font-weight:800;}
.chat-dir-match{display:block;font-size:14px;line-height:1.2;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.chat-dir-clock{flex:0 0 auto;font-size:12px;font-weight:700;color:#475569;white-space:nowrap;}
@media (max-width: 640px){
	.chat-fab-shell{left:10px;bottom:calc(10px + env(safe-area-inset-bottom));}
	.chat-fab-toggle{width:52px;height:52px;font-size:20px;}
}
@keyframes gimNumberPulse {
	0%, 100% { transform: scale(1); color: #dc2626; }
	50% { transform: scale(1.4); color: #f87171; }
}
[data-role="gim"].gim-hot,
[data-role="list-gim-value"].gim-hot{
	display:inline-block;
	color:#dc2626;
	transform-origin:center;
	animation:gimNumberPulse 1.1s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){
	[data-role="gim"].gim-hot,
	[data-role="list-gim-value"].gim-hot{animation:none;color:#dc2626;}
}
.gim-help{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:4px;border-radius:9999px;border:1px solid #9ca3af;background:#fff;color:#4b5563;font-size:10px;line-height:1;cursor:pointer;}
.gim-help:hover{background:#f3f4f6;}
.gim-tooltip{position:fixed;z-index:7000;max-width:240px;background:#111827;color:#fff;font-size:12px;line-height:1.35;padding:8px 10px;border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,.25);}
.gim-tooltip .gim-tip-explain{white-space:normal;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.22);}
.gim-tooltip .gim-tip-line{white-space:nowrap;}
.gim-tooltip .gim-tip-gim{margin-top:4px;padding-top:4px;border-top:1px solid rgba(255,255,255,.22);font-weight:700;}
.score-list .list-gim .gim-help{margin-left:0;margin-right:4px;vertical-align:middle;}
/* Normalize favorite star buttons: no gray UA background */
.fav-btn{appearance:none;-webkit-appearance:none;background:transparent;border:0;padding:0;margin:0;line-height:1;cursor:pointer;color:inherit;}

button[data-watch],
button[data-role="highlights-btn"],
button[data-role="odds-trigger"]{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:20px;padding:2px 8px;border-radius:9999px;border:1px solid #cbd5e1;background:linear-gradient(180deg,#ffffff,#f8fafc);color:#0f172a;font-size:11px;line-height:1;font-weight:700;text-decoration:none;box-shadow:0 1px 2px rgba(15,23,42,.08);cursor:pointer;vertical-align:middle;}
button[data-watch]::before{content:"";width:7px;height:7px;border-radius:999px;background:#dc2626;box-shadow:0 0 0 0 rgba(220,38,38,.45);animation:watchLivePulse 1.8s ease-out infinite;flex:0 0 auto;}
@keyframes watchLivePulse{0%{box-shadow:0 0 0 0 rgba(220,38,38,.45)}100%{box-shadow:0 0 0 6px rgba(220,38,38,0)}}
@media (prefers-reduced-motion: reduce){button[data-watch]::before{animation:none;}}
button[data-watch]:hover,
button[data-role="highlights-btn"]:hover,
button[data-role="odds-trigger"]:hover{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8;text-decoration:none;}
button[data-watch]:focus-visible,
button[data-role="highlights-btn"]:focus-visible,
button[data-role="odds-trigger"]:focus-visible{outline:2px solid #93c5fd;outline-offset:2px;}
button[data-watch]:disabled,
button[data-role="highlights-btn"]:disabled,
button[data-role="odds-trigger"]:disabled{opacity:.7;cursor:wait;}
.score-list .list-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap;}
a[href*="google.com/maps"]{display:inline-flex;align-items:center;justify-content:center;text-decoration:none !important;border-bottom:0 !important;line-height:1;vertical-align:-1px;}
a[href*="google.com/maps"]:hover{text-decoration:none !important;border-bottom:0 !important;filter:drop-shadow(0 0 2px rgba(37,99,235,.35));}
/* Modern list tables (used in list view) */
.table-modern{display:table !important;width:100%;table-layout:fixed;border-collapse:separate !important;border-spacing:0;}
.table-modern thead th{position:sticky;top:0;background:#f9fafb;color:#374151;font-weight:600;box-shadow:inset 0 -1px 0 #e5e7eb;}
.table-modern tbody tr:nth-child(odd){background:#fafafa;}
.table-modern tbody tr:hover{background:#f3f4f6;}
.table-modern th,.table-modern td{border:none !important;border-bottom:1px solid #eef2f7 !important;padding:8px 12px;text-align:left;vertical-align:middle;}
.table-modern th.text-center,.table-modern td.text-center{text-align:center;}
.score-list .table-modern{table-layout:auto;}
.score-list .col-match{display:flex;align-items:center;gap:8px;min-width:0;}
.score-list .list-side{display:inline-flex;align-items:center;gap:4px;min-width:0;}
.score-list .list-logo,
img.list-logo{width:18px;height:18px;max-width:18px;max-height:18px;min-width:18px;min-height:18px;object-fit:contain;object-position:center;flex:0 0 18px;}
img.team-logo-clickable{width:36px !important;height:36px !important;max-width:36px;max-height:36px;min-width:36px;min-height:36px;object-fit:contain;object-position:center;display:block;margin:2px auto;flex:0 0 36px;cursor:pointer;}
.score-list .list-abbr{font-weight:800;white-space:nowrap;}
.score-list .list-score{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.15;padding:2px 7px;border-radius:999px;border:1px solid #e5e7eb;background:#f8fafc;min-width:2.6rem;}
.score-list .list-vs{min-width:0;padding:0 4px;background:transparent;border:0;}
.score-list .col-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:#64748b;}
#upcomingList .list-clock{white-space:nowrap;}
/* Upcoming day break. One line across the card grid, and a slim row in the list. */
#upcomingGrid > .day-divider{
	grid-column:1 / -1;
	display:flex;
	align-items:center;
	gap:10px;
	min-width:0;
	margin:0;
	padding:2px 2px;
	font-size:13px;
	font-weight:800;
	letter-spacing:.01em;
	line-height:1.2;
	color:#1e293b;
}
#upcomingGrid > .day-divider::before,
#upcomingGrid > .day-divider::after{
	content:"";
	flex:1 1 auto;
	height:1px;
	background:#94a3b8;
}
#upcomingList tr.day-divider,
#upcomingList tr.day-divider:hover{
	background:transparent !important;
	box-shadow:none;
}
#upcomingList tr.day-divider td{
	display:flex !important;
	align-items:center;
	gap:10px;
	padding:8px 2px 2px !important;
	border:0 !important;
	background:transparent !important;
	color:#1e293b;
	font-size:13px;
	font-weight:800;
	letter-spacing:.01em;
	line-height:1.2;
}
#upcomingList tr.day-divider td::before,
#upcomingList tr.day-divider td::after{
	content:"";
	flex:1 1 auto;
	height:1px;
	background:#94a3b8;
}
.score-list .col-lg{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b;white-space:nowrap;}
.score-list .list-gim{font-weight:800;color:#0f172a;white-space:nowrap;}
.score-list .list-gim::before{content:"GIM ";font-size:10px;font-weight:800;letter-spacing:.04em;color:#94a3b8;}
.score-list .list-extra{font-size:11px;font-weight:700;color:#1d4ed8;white-space:nowrap;}
.score-list-row{box-shadow:inset 3px 0 0 var(--away,#cbd5e1), inset -3px 0 0 var(--home,#cbd5e1);}
@media (max-width:640px){
	.score-list .list-scroll{overflow:visible;border:0;box-shadow:none;background:transparent;}
	.score-list table.table-modern{display:block !important;width:100%;min-width:0;background:transparent;}
	.score-list thead{display:none;}
	.score-list tbody{display:flex;flex-direction:column;gap:8px;}
	#upcomingList tr.day-divider{display:block;padding:2px 2px 0;border:0;box-shadow:none;}
	.score-list tr.score-list-row{
		display:grid;
		grid-template-columns:2.5rem minmax(0,1fr) auto;
		grid-template-areas:"lg match act";
		gap:2px 8px;
		align-items:center;
		padding:8px 8px 8px 10px;
		border:1px solid #e5e7eb;
		border-radius:12px;
		background:#fff;
	}
	.score-list tr.score-list-row:has(.col-meta){grid-template-areas:"lg match act" "lg meta act";}
	.score-list tr.score-list-row:has(.preseason-mark){grid-template-columns:max-content minmax(0,1fr) auto;}
	.score-list td{display:block;padding:0 !important;border:0 !important;background:transparent !important;color:inherit;}
	.score-list .col-lg{grid-area:lg;align-self:center;}
	.score-list .col-match{grid-area:match;}
	.score-list .col-meta{grid-area:meta;}
	.score-list .col-act{grid-area:act;align-self:center;}
	.score-list tbody tr:nth-child(odd),
	.score-list tbody tr:nth-child(even){background:#fff;}
	.score-list .list-logo,
	.score-list img.list-logo{width:20px;height:20px;max-width:20px;max-height:20px;min-width:20px;min-height:20px;flex-basis:20px;}
	.score-list button[data-watch],
	.score-list button[data-role="highlights-btn"],
	.score-list button[data-role="odds-trigger"]{min-height:28px;padding:4px 8px;}
	/* Ended rows carry a desktop-only status cell so columns match Live. Keep the mobile row as league / score / action. */
	.score-list .list-final-status{display:none !important;}
	.score-list tr.score-list-row:has(.list-final-status){grid-template-areas:"lg match act";}
	/* A wide odds control squeezes the score line until the football paints on the score or the other name. Possession rows use the card width for that line, and each piece stays at its content size. */
	.score-list tr.score-list-row:has(.poss-ball){
		grid-template-columns:2.5rem minmax(0,1fr);
		grid-template-areas:"lg match" "lg act";
	}
	.score-list tr.score-list-row:has(.col-meta):has(.poss-ball){
		grid-template-areas:"lg match" "lg meta" "lg act";
	}
	.score-list tr.score-list-row:has(.poss-ball) .col-act{justify-self:end;}
	.score-list .col-match:has(.poss-ball) > .list-side,
	.score-list .col-match:has(.poss-ball) > .list-score{
		flex:0 0 auto;
		min-width:max-content;
	}
	/* Live rows are one line of one height. The bet call is what wrapped the right side, so it leaves the phone list, and so does GIM, which sat on that same second line. Clock stays with the score. Watch keeps the word when that column can hold it, and keeps only the live dot when the word would not fit. */
	#liveList tr.score-list-row,
	#liveList tr.score-list-row:has(.col-meta),
	#liveList tr.score-list-row:has(.poss-ball),
	#liveList tr.score-list-row:has(.col-meta):has(.poss-ball){
		grid-template-columns:auto max-content max-content minmax(0,1fr);
		grid-template-areas:"lg match meta act";
		align-items:center;
		height:44px;
		min-height:44px;
		max-height:44px;
		gap:0 8px;
		padding:0 8px 0 10px;
		overflow:hidden;
	}
	#liveList .col-match{
		flex-wrap:nowrap;
		min-width:max-content;
	}
	#liveList .col-meta{
		flex-wrap:nowrap;
		white-space:nowrap;
		min-width:max-content;
	}
	#liveList .list-odds,
	#liveList .list-gim{display:none !important;}
	#liveList .col-act{
		width:100%;
		min-width:100%;
		overflow:hidden;
		display:flex;
		justify-content:flex-end;
		align-items:center;
		container-type:inline-size;
		container-name:list-act;
	}
	#liveList .list-actions{flex-wrap:nowrap;max-width:100%;}
}
@container list-act (max-width: 63px){
	#liveList button[data-watch]{
		width:36px;
		min-width:36px;
		height:36px;
		min-height:36px;
		padding:0;
		gap:0;
		font-size:0;
		border-radius:999px;
		border-color:#fca5a5;
		background:#fff;
		box-shadow:0 1px 2px rgba(220,38,38,.18);
		flex:0 0 36px;
	}
	#liveList button[data-watch]::before{width:16px;height:16px;}
	body.theme-dark #liveList button[data-watch]{
		background:#1f2937;
		border-color:#fca5a5;
		color:#e5e7eb;
	}
}
@media (min-width: 641px){
	/* Fill the section width so Live / Ended / Upcoming titles sit on the same block as the rows. Cells stay table-cells: display:flex on them pulled Status onto the score. League, status, and action stay content-sized; the match column takes the leftover width. */
	.score-list .list-scroll{display:block;width:100%;max-width:100%;}
	.score-list table.table-modern{width:100%;min-width:0 !important;table-layout:auto;}
	.score-list td.col-match,
	.score-list td.col-meta{display:table-cell;}
	.score-list th,
	.score-list td{white-space:nowrap;}
	.score-list thead th:nth-child(1),
	.score-list td.col-lg{width:1%;min-width:4.5rem;}
	.score-list thead th:nth-child(2),
	.score-list td.col-match{width:auto;min-width:17rem;}
	.score-list thead th:nth-child(3),
	.score-list td.col-meta{width:1%;min-width:11rem;}
	.score-list thead th:nth-child(4),
	.score-list td.col-act{width:1%;min-width:8.5rem;}
	.score-list .list-gim,
	.score-list .list-extra{margin-left:8px;}
}

/* Team modal sizes to its sections and scrolls once those sections fill the phone. */
#teamModal .modal-box{width:min(94vw,520px);max-width:520px;height:auto;max-height:90vh;display:flex;flex-direction:column;border-radius:14px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 18px 45px rgba(15,23,42,.28);}
#teamModalClose{background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:4px 8px;font-size:22px;line-height:1;color:#374151;}
#teamModalClose:hover{background:#f9fafb;}
#teamModalBody{max-height:90vh;flex:1 1 auto;min-height:0;overflow:auto;padding:12px;background:#f8fafc;border-radius:14px;}

.odds-face{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;column-gap:0.35rem;row-gap:0;text-align:center;line-height:1.3;}
.odds-face-call{appearance:none;-webkit-appearance:none;background:transparent;border:0;margin:0;padding:6px 2px;color:inherit;font:inherit;font-size:inherit;line-height:inherit;cursor:pointer;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:28px;max-width:100%;white-space:nowrap;}
.odds-mark{display:inline-block;width:6px;height:6px;border-radius:999px;background:#c4a574;box-shadow:0 0 0 2px rgba(196,165,116,.28);flex:0 0 auto;}
.odds-call-words{min-width:0;color:#8a5a32;}
.odds-call-logo{width:18px;height:18px;min-width:18px;min-height:18px;object-fit:contain;object-position:center;flex:0 0 18px;}
.odds-face-call:hover .odds-call-words{color:#6b4f38;}
.odds-face-call:focus-visible{outline:2px solid #93c5fd;outline-offset:2px;border-radius:4px;}
/* List rows use the same quiet mark and call, not a pill or a slot icon. */
button.list-odds,
button[data-role="odds-trigger"]{background:transparent;border:0;box-shadow:none;border-radius:4px;padding:2px 2px;min-height:20px;font-size:12px;font-weight:600;color:#8a5a32;gap:5px;}
button.list-odds:hover,
button[data-role="odds-trigger"]:hover{background:transparent;border-color:transparent;color:#6b4f38;box-shadow:none;}
@media (max-width:640px){
	.odds-face{font-size:14px;line-height:1.3;}
	.odds-face-call{min-height:32px;padding:8px 4px;}
}
body.theme-dark .odds-face,
body.theme-dark .odds-call-words,
body.theme-dark .odds-face-call{color:#d6c4b0;}
body.theme-dark .odds-mark{background:#d6c4b0;}
body.theme-dark .odds-face-call:hover .odds-call-words{color:#efe4d6;}
.bet-shell{display:flex;flex-direction:column;gap:12px;color:#0f172a;}
.bet-match{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b;padding-right:28px;}
.bet-verdict{border-radius:16px;padding:14px 16px;border:1px solid #e2e8f0;background:#f8fafc;}
.bet-verdict-label{font-size:1.7rem;font-weight:900;letter-spacing:-.03em;line-height:1.12;color:#0f172a;}
.bet-why{border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:10px 12px;}
.bet-why summary{cursor:pointer;font-size:12px;font-weight:800;letter-spacing:.04em;color:#64748b;}
.bet-why summary:focus-visible{outline:2px solid #93c5fd;outline-offset:2px;border-radius:6px;}
.bet-verdict-why{margin:10px 0 0;font-size:14px;line-height:1.35;color:#334155;}
.bet-verdict.interesting{background:#ecfdf5;border-color:#6ee7b7;}
.bet-verdict.interesting .bet-verdict-label{color:#047857;}
.bet-verdict.lean{background:#fffbeb;border-color:#fcd34d;}
.bet-verdict.lean .bet-verdict-label{color:#b45309;}
.bet-verdict.underdog{background:#eff6ff;border-color:#93c5fd;}
.bet-verdict.underdog .bet-verdict-label{color:#1d4ed8;}
.bet-verdict.skip{background:#fef2f2;border-color:#fecaca;}
.bet-verdict.skip .bet-verdict-label{color:#b91c1c;}
.bet-lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.bet-lines .bet-metric{margin-top:0;}
.bet-ml-row{display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:800;color:#475569;}
.bet-win{margin:0;font-size:14px;line-height:1.4;color:#0f172a;}
.bet-facts{margin:8px 0 0;font-size:12px;line-height:1.4;font-weight:700;color:#334155;}
.bet-metric{border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;padding:8px;}
.bet-metric-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:900;}
.bet-metric-value{font-size:14px;font-weight:900;color:#0f172a;margin-top:2px;}
.bet-note{font-size:11px;color:#64748b;line-height:1.35;}
.bet-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;}
.bet-link-btn{border:0;background:transparent;color:#2563eb;font-size:12px;font-weight:800;text-decoration:none;cursor:pointer;padding:0;}
.bet-link-btn:hover{text-decoration:underline;}
body.theme-dark .bet-shell{color:#e5e7eb;}
body.theme-dark .bet-match,body.theme-dark .bet-ml-row,body.theme-dark .bet-facts,body.theme-dark .bet-why summary{color:#cbd5e1;}
body.theme-dark .bet-win{color:#e5e7eb;}
body.theme-dark .bet-why{background:#111827;border-color:#374151;}
body.theme-dark .bet-verdict{background:#1f2937;border-color:#374151;}
body.theme-dark .bet-verdict-label{color:#f8fafc;}
body.theme-dark .bet-verdict-why{color:#e5e7eb;}
body.theme-dark .bet-verdict.interesting{background:#064e3b;border-color:#34d399;}
body.theme-dark .bet-verdict.interesting .bet-verdict-label{color:#a7f3d0;}
body.theme-dark .bet-verdict.lean{background:#78350f;border-color:#fbbf24;}
body.theme-dark .bet-verdict.lean .bet-verdict-label{color:#fde68a;}
body.theme-dark .bet-verdict.underdog{background:#1e3a8a;border-color:#93c5fd;}
body.theme-dark .bet-verdict.underdog .bet-verdict-label{color:#dbeafe;}
body.theme-dark .bet-verdict.skip{background:#7f1d1d;border-color:#fca5a5;}
body.theme-dark .bet-verdict.skip .bet-verdict-label{color:#fecaca;}
body.theme-dark .bet-metric-label,body.theme-dark .bet-note{color:#cbd5e1;}
body.theme-dark #betModalClose{background:#1f2937;color:#e5e7eb;border-color:#475569;}
body.theme-dark .bet-metric{background:#1f2937;border-color:#374151;}
body.theme-dark .bet-metric-value{color:#f8fafc;}
.team-shell{display:flex;flex-direction:column;gap:10px;}
.team-hero{position:relative;overflow:hidden;border:1px solid #e5e7eb;border-radius:14px;padding:16px;background:#fff;color:#111827;}
.team-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--team-color,#e5e7eb),var(--team-alt-color,#f8fafc));opacity:.16;pointer-events:none;}
.card-league-bar{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:18px;margin-bottom:4px;}
.card-league-name{position:absolute;left:50%;transform:translateX(-50%);font-size:11px;line-height:1;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#0f172a;white-space:nowrap;}
.card-preseason{margin-top:2px;font-size:10px;line-height:1;font-weight:700;letter-spacing:.04em;text-align:center;text-transform:lowercase;color:#64748b;}
.preseason-mark{font-weight:800;letter-spacing:0;white-space:nowrap;}
.if-necessary{margin-top:3px;font-size:11px;line-height:1.1;font-weight:800;letter-spacing:.01em;text-align:center;color:#9a3412;}
.if-necessary-mark{flex:1 0 100%;font-size:11px;font-weight:800;line-height:1.2;color:#9a3412;white-space:nowrap;}
body.theme-dark .if-necessary,
body.theme-dark .if-necessary-mark{color:#fdba74;}
.gim-row{display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:18px;margin:2px 0;}
.league-action-link{font-size:10px;line-height:1;text-transform:lowercase;color:#64748b;border-bottom:1px dotted #cbd5e1;cursor:pointer;user-select:none;background:transparent;border-left:0;border-right:0;border-top:0;padding:0;}
.league-action-link:hover{color:#111827;border-bottom-color:#64748b;}
.league-stats-link{margin-left:auto;}
.mobile-series-line{display:block;font-size:11px;line-height:1.1;text-align:center;color:#4338ca;font-weight:700;margin:4px 0 -1px;}
.goal-scorers{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 6px;max-width:100%;margin-top:6px;}
.goal-scorer-chip{display:inline-flex;align-items:center;gap:3px;max-width:9.5rem;border-radius:9999px;background:#f8fafc;border:1px solid #e2e8f0;padding:2px 6px;font-size:11px;line-height:1.1;color:#334155;white-space:nowrap;}
.goal-scorer-chip img{width:18px;height:18px;border-radius:9999px;object-fit:cover;background:#e2e8f0;flex:0 0 auto;}
.goal-scorer-name{overflow:hidden;text-overflow:ellipsis;}
.goal-scorer-minute{font-weight:800;color:#0f172a;flex:0 0 auto;}
.mlb-matchup-state{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin-top:6px;font-size:11px;color:#334155;max-width:min(22rem,100%);min-width:0;margin-left:auto;margin-right:auto;}
.mlb-matchup-side{display:flex;align-items:center;min-width:0;gap:4px;}
.mlb-matchup-side.away{justify-content:flex-end;}
.mlb-matchup-side.home{justify-content:flex-start;}
.mlb-matchup-person{display:inline-flex;align-items:center;gap:3px;min-width:0;max-width:8.5rem;}
.mlb-matchup-person img{width:20px;height:20px;border-radius:9999px;object-fit:cover;background:#e2e8f0;flex:0 0 auto;}
.mlb-matchup-label{font-weight:700;color:#64748b;}
.mlb-matchup-name{font-weight:700;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.matchup-center{position:relative;}
.base-markers{position:absolute;left:50%;top:-15px;width:44px;height:30px;transform:translateX(-50%);pointer-events:none;z-index:2;}
.base-marker{position:absolute;width:10px;height:10px;transform:rotate(45deg);background:#d1d5db;border:1px solid rgba(100,116,139,.55);box-sizing:border-box;}
.base-marker[data-base="second"]{left:17px;top:0;}
.base-marker[data-base="third"]{left:4px;top:14px;}
.base-marker[data-base="first"]{left:30px;top:14px;}
.base-marker.occupied{background:#2563eb;border-color:#1d4ed8;}
.matchup-center .matchup-symbol,.matchup-center [data-role="clock"],.matchup-center [data-role="status-badge"]{position:relative;z-index:1;}
.base-markers ~ .matchup-symbol{margin-top:5px;}
.mlb-matchup-count{font-weight:800;color:#0f172a;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:9999px;padding:2px 7px;white-space:nowrap;}
.mlb-result-pill{display:inline-flex;align-items:center;gap:4px;background:#eef2ff;border-color:#c7d2fe;color:#312e81;max-width:11rem;overflow:hidden;text-overflow:ellipsis;}
.mlb-result-pill img{width:18px;height:18px;border-radius:9999px;object-fit:cover;background:#e2e8f0;flex:0 0 auto;}
.mlb-result-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mlb-final-linescore{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,minmax(0,2.1rem));gap:0;align-items:center;max-width:min(14rem,100%);min-width:0;box-sizing:border-box;margin:6px auto 0;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;font-size:11px;background:#fff;}
.mlb-final-linescore span{box-sizing:border-box;min-width:0;padding:2px 5px;text-align:center;border-bottom:1px solid #eef2f7;}
.mlb-final-linescore span:nth-last-child(-n+4){border-bottom:0;}
.mlb-final-linescore .team{text-align:left;font-weight:700;color:#0f172a;}
.mlb-final-linescore .hdr{background:#f8fafc;color:#64748b;font-weight:800;}
.period-final-linescore{display:grid;gap:0;align-items:center;max-width:min(18rem,100%);min-width:0;box-sizing:border-box;margin:6px auto 0;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;font-size:10px;background:#fff;}
.period-final-linescore span{box-sizing:border-box;min-width:0;padding:2px 4px;text-align:center;border-bottom:1px solid #eef2f7;}
.period-final-linescore span.ls-last{border-bottom:0;}
.period-final-linescore .team{text-align:left;font-weight:700;color:#0f172a;}
.period-final-linescore .hdr{background:#f8fafc;color:#64748b;font-weight:800;}
.ufc-matchup{display:flex;align-items:flex-start;justify-content:center;gap:.85rem;width:100%;margin:0 auto;}
.ufc-fighter{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;width:5.8rem;}
.ufc-fighter img{width:45px;height:45px;border-radius:9999px;object-fit:cover;background:#f1f5f9;}
.ufc-fighter-record{font-size:11px;line-height:1;color:#6b7280;margin-top:3px;white-space:nowrap;}
.ufc-fighter-name{font-size:13px;font-weight:600;line-height:1.05;margin-top:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.ufc-vs{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:2rem;color:#4b5563;font-size:12px;line-height:1;margin-top:17px;}
#upcomingGrid [data-game-state="upcoming"] .matchup-center{position:relative;min-width:1.8rem;width:1.8rem;justify-content:center;}
#upcomingGrid [data-game-state="upcoming"] .matchup-center [data-role="series"]{display:none !important;}
.section-toggle{display:inline-flex;align-items:center;gap:.45rem;padding:.25rem .65rem;border:1px solid #cbd5e1;border-radius:9999px;background:#f8fafc;box-shadow:0 1px 2px rgba(15,23,42,.08);}
.section-toggle-label{display:inline-flex;align-items:center;gap:.35rem;}
.section-toggle-caret{font-size:14px;color:#475569;line-height:1;}
.section-toggle-hint{font-size:11px;font-weight:500;color:#64748b;}
.section-toggle:focus-visible{outline:2px solid #93c5fd;outline-offset:3px;}
/* Collapsed Just Ended sits on Upcoming with nothing between them. On a narrow screen the pill is a stray chip above that section title, so use the same centered heading and keep the hint as a caption. */
@media (max-width: 720px){
	.score-section-head:has(> #toggleEnded){display:block;}
	#toggleEnded.section-toggle{
		display:flex;
		flex-direction:column;
		align-items:center;
		justify-content:center;
		width:100%;
		box-sizing:border-box;
		gap:0;
		margin:0;
		padding:0;
		border:0;
		border-radius:0;
		background:transparent;
		box-shadow:none;
		line-height:1.75rem;
	}
	#toggleEnded.section-toggle .section-toggle-hint{font-size:12px;font-weight:600;line-height:1.2;margin-top:1px;}
	.score-section-head:has(> #toggleEnded[aria-expanded="false"]){margin-bottom:.2rem;}
	body.theme-dark #toggleEnded.section-toggle{background:transparent;color:inherit;border:0;box-shadow:none;}
}

/* A max-content score row is wider than a two- or three-column card once the colored side bars are 40px. Keep the row inside the card and let the clock wrap instead of pushing the home score into the border. */
#liveGrid > [data-game-id],
#endedGrid > [data-game-id],
#upcomingGrid > [data-game-id],
#upcomingGrid > [data-nonteam="1"]{min-width:0;max-width:100%;container-type:inline-size;}
#liveGrid [data-game-id] .game-score-row,
#endedGrid [data-game-id] .game-score-row,
#upcomingGrid [data-game-state="upcoming"] .game-score-row{width:100% !important;max-width:100%;min-width:0;box-sizing:border-box;}
.team-matchup-core{min-width:0;max-width:100%;}
.team-matchup-core > .team-side{width:4.75rem !important;max-width:4.75rem;min-width:4.75rem;flex:0 0 4.75rem;display:flex;flex-direction:column;align-items:center;text-align:center;box-sizing:border-box;}
.team-side .team-rank{height:12px;line-height:12px;font-size:11px;white-space:nowrap;}
.team-side .team-record{margin-top:2px;height:13px;line-height:13px;font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums;}
.team-side .team-abbr{margin-top:2px;height:16px;line-height:16px;white-space:nowrap;}
.matchup-center{min-width:0 !important;flex:0 1 auto;max-width:100%;}
/* Live clocks sit in the free space between the teams. They shrink only to the longest word, so HT stays whole and "3RD, 8:16" breaks on the space. */
#liveGrid .team-matchup-core{flex:1 1 auto;min-width:0;}
#liveGrid .matchup-center{min-width:min-content !important;flex:1 1 auto;max-width:100%;}
.probable-score-slot{min-width:0;max-width:4.2rem;flex:0 1 4.2rem !important;}
.pitcher-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;}
[data-role="clock"]{white-space:normal !important;overflow-wrap:normal;word-break:normal;}
[data-role="last-play-line"],
[data-role="venue-line"]{max-width:100%;overflow-wrap:break-word;}
@container (max-width: 17.5rem){
	.game-score-row{gap:.15rem !important;}
	.team-matchup-core{gap:.2rem !important;}
}

@media(max-width:720px){
	#liveGrid, #endedGrid, #upcomingGrid{grid-template-columns:minmax(0,1fr) !important;}
	#liveGrid [data-game-id], #endedGrid [data-game-id], #upcomingGrid [data-game-state="upcoming"], #upcomingGrid [data-nonteam="1"]{border-left-width:14px !important;border-right-width:14px !important;padding-left:14px !important;padding-right:14px !important;}
	#liveGrid [data-game-id] .game-score-row, #endedGrid [data-game-id] .game-score-row, #upcomingGrid [data-game-state="upcoming"] .game-score-row{width:100% !important;max-width:100%;justify-content:center !important;}
	#upcomingGrid [data-game-state="upcoming"] .game-score-row{gap:.18rem !important;}
	#upcomingGrid [data-game-state="upcoming"] .team-matchup-core{gap:.35rem !important;min-width:0;}
	#endedGrid [data-game-id] .team-matchup-core{gap:.5rem !important;min-width:0;justify-content:center;}
	#endedGrid [data-game-id] .matchup-center{min-width:2.1rem !important;width:2.1rem !important;justify-content:center;}
	#upcomingGrid [data-game-state="upcoming"] .probable-score-slot{flex:0 0 2.05rem !important;max-width:2.05rem;}
	#upcomingGrid [data-game-state="upcoming"] .probable-score-slot.has-probable{flex-basis:3.4rem !important;max-width:3.4rem;}
	#upcomingGrid [data-game-state="upcoming"] [data-role="probable-pitcher"] img{width:30px !important;height:30px !important;}
	#upcomingGrid [data-game-state="upcoming"] .pitcher-name{font-size:10px !important;line-height:1.05 !important;max-width:3.4rem;overflow:hidden;text-overflow:ellipsis;}
	#upcomingGrid [data-game-state="upcoming"] .team-matchup-core [class*="text-gray-500"]{white-space:nowrap;font-size:11px !important;}
	#upcomingGrid [data-game-state="upcoming"] .matchup-center{position:relative;min-width:2.3rem !important;width:2.3rem !important;justify-content:center;}
	#upcomingGrid [data-game-state="upcoming"] .mobile-series-line{margin:3px 0 -1px;}
	#teamModal .team-hero{padding:12px;}
	#teamModal .team-logo-badge{width:72px;height:72px;border-radius:16px;}
	#teamModal .team-logo-badge img{width:56px;height:56px;}
	#teamModal .team-hero-title{font-size:22px;}
	#teamModal .team-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
	#teamModal .team-game-stats{grid-template-columns:repeat(3,minmax(0,1fr));}
	#teamModal .team-stat-value{font-size:20px;}
	#teamModal .team-section-title{font-size:16px;}
	#teamModal .team-player-row{padding:7px 4px;}
}
.team-hero-inner{position:relative;display:flex;align-items:center;gap:16px;}
.team-logo-badge{width:92px;height:92px;border-radius:20px;background:rgba(255,255,255,.86);border:1px solid rgba(148,163,184,.45);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(15,23,42,.12);flex-shrink:0;}
.team-logo-badge img{width:74px;height:74px;object-fit:contain;object-position:center;}
.team-hero-title{font-size:28px;line-height:1.05;font-weight:900;color:#0f172a;}
.team-hero-sub{font-size:14px;color:#475569;margin-top:4px;}
.team-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px;}
.team-section-title{font-size:16px;font-weight:800;color:#0f172a;margin-bottom:10px;}
.team-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;}
.team-stat-card{border:1px solid #e2e8f0;border-radius:10px;padding:10px;background:#f8fafc;}
.team-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:800;}
.team-stat-value{font-size:18px;font-weight:900;color:#0f172a;margin-top:2px;}
.team-snapshot-line{display:flex;flex-wrap:wrap;gap:6px;}
.team-snap-chip{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;padding:4px 8px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0;}
.team-snap-chip b{font-size:15px;line-height:1.1;font-weight:900;color:#0f172a;font-variant-numeric:tabular-nums;}
.team-snap-chip span{font-size:9px;line-height:1.15;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b;margin-top:2px;}
.team-sort-note{margin:-4px 0 8px;}
.team-roster-stat{margin-left:auto;text-align:right;flex:0 0 auto;padding-left:8px;}
.team-roster-stat b{display:block;font-size:18px;line-height:1.1;font-weight:900;color:#0f172a;font-variant-numeric:tabular-nums;}
.team-roster-stat span{display:block;font-size:9px;line-height:1.15;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#64748b;margin-top:2px;}
.team-game-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
.team-game-stat{min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:5px 8px;}
.team-game-stat-label{font-size:10px;line-height:1.15;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#64748b;}
.team-game-stat-value{font-size:14px;line-height:1.15;font-weight:800;color:#0f172a;margin-top:1px;}
.team-game-cat{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b;margin:12px 2px 2px;}
.team-player-row{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;}
.team-player-row:nth-child(odd){background:#f8fafc;}
.team-player-avatar{width:44px;height:44px;border-radius:9999px;object-fit:cover;flex-shrink:0;border:1px solid #e5e7eb;background:#eef2f7;}
.team-meta-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13px;color:#4b5563;}
.team-pos-chip{display:inline-flex;align-items:center;border-radius:9999px;background:#eef2ff;color:#3730a3;font-weight:800;font-size:11px;padding:1px 7px;}
.team-value{font-weight:700;color:#111827;}
.team-schedule-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e5e7eb;padding:10px 0;}
.team-schedule-row:first-child{border-top:0;padding-top:0;}
.team-opponent-logo{width:30px;height:30px;min-width:30px;min-height:30px;object-fit:contain;object-position:center;flex:0 0 30px;}

body.theme-dark{background:#0b1220;color:#e5e7eb;}
body.theme-dark main{background:#0b1220;}
body.theme-dark .score-header{background:#111827;border-color:#334155;box-shadow:none;}
body.theme-dark .score-header-title{color:#f8fafc;}
body.theme-dark .score-header-domain{color:#94a3b8;}
body.theme-dark .score-header-link{color:#e5e7eb;background:#1f2937;border-color:#475569;}
body.theme-dark .score-header-link:hover{background:#334155;}
body.theme-dark .view-quick-toggle{background:#0f172a;border-color:#334155;}
body.theme-dark .view-pill{background:transparent;color:#cbd5e1;}
body.theme-dark .view-pill:hover{background:#1e293b;color:#f8fafc;}
body.theme-dark .view-pill.active{background:#e5e7eb;color:#0f172a;}
body.theme-dark .view-pill.header-tool{background:#1f2937;color:#e5e7eb;border-color:#475569;}
body.theme-dark .view-pill.header-tool:hover{background:#334155;}
body.theme-dark .view-pill.header-tool.active{background:#e5e7eb;color:#b45309;border-color:#e5e7eb;}
body.theme-dark .table-modern{background:#111827;color:#e5e7eb;}
body.theme-dark .table-modern thead th{background:#1f2937;color:#f8fafc;box-shadow:inset 0 -1px 0 #475569;}
body.theme-dark .table-modern tbody tr:nth-child(odd){background:#0f172a;}
body.theme-dark .table-modern tbody tr:nth-child(even){background:#111827;}
body.theme-dark .table-modern tbody tr:hover{background:#1e293b;}
body.theme-dark .table-modern th,
body.theme-dark .table-modern td{border-bottom-color:#334155 !important;color:#e5e7eb;}
body.theme-dark .table-modern .text-gray-500,
body.theme-dark .table-modern .text-gray-600,
body.theme-dark .table-modern .text-gray-700{color:#cbd5e1 !important;}
body.theme-dark .table-modern .bg-gray-50{background:#1f2937 !important;color:#f8fafc;}
body.theme-dark .table-modern a,
body.theme-dark .table-modern button{color:#bfdbfe;border-color:#475569;background:#1f2937;}
body.theme-dark button[data-watch],
body.theme-dark button[data-role="highlights-btn"],
body.theme-dark button[data-role="odds-trigger"],
body.theme-dark .table-modern button[data-watch],
body.theme-dark .table-modern button[data-role="highlights-btn"],
body.theme-dark .table-modern button[data-role="odds-trigger"]{background:linear-gradient(180deg,#1f2937,#111827);border-color:#475569;color:#e5e7eb;box-shadow:0 1px 2px rgba(0,0,0,.35);}
body.theme-dark button[data-watch]:hover,
body.theme-dark button[data-role="highlights-btn"]:hover,
body.theme-dark button[data-role="odds-trigger"]:hover,
body.theme-dark .table-modern button[data-watch]:hover,
body.theme-dark .table-modern button[data-role="highlights-btn"]:hover,
body.theme-dark .table-modern button[data-role="odds-trigger"]:hover{background:#1e3a8a;border-color:#60a5fa;color:#eff6ff;}
body.theme-dark button.list-odds,
body.theme-dark button[data-role="odds-trigger"],
body.theme-dark .table-modern button.list-odds,
body.theme-dark .table-modern button[data-role="odds-trigger"]{background:transparent;border-color:transparent;color:#d6c4b0;box-shadow:none;}
body.theme-dark button.list-odds:hover,
body.theme-dark button[data-role="odds-trigger"]:hover,
body.theme-dark .table-modern button.list-odds:hover,
body.theme-dark .table-modern button[data-role="odds-trigger"]:hover{background:transparent;border-color:transparent;color:#efe4d6;box-shadow:none;}
body.theme-dark #liveList > div,
body.theme-dark #endedList > div,
body.theme-dark #upcomingList > div{border-color:#374151;background:#111827;}
body.theme-dark #themeQuickToggle.theme-on{background:#1d4ed8;color:#eff6ff;border-color:#93c5fd;box-shadow:0 0 0 2px rgba(96,165,250,.35),0 0 12px rgba(37,99,235,.35);}
body.theme-dark #themeQuickToggle.theme-on::after{content:"";position:absolute;right:3px;top:3px;width:6px;height:6px;border-radius:9999px;background:#22c55e;box-shadow:0 0 0 1px #0f172a;}
body.theme-dark select{background:#1f2937;color:#e5e7eb;border-color:#475569;}
body.theme-dark .gim-help{background:#1f2937;color:#e5e7eb;border-color:#6b7280;}
body.theme-dark .gim-help:hover{background:#374151;}
body.theme-dark #liveGrid > div,
body.theme-dark #upcomingGrid > div,
body.theme-dark #endedGrid > div{background-color:#111827 !important;border-top-color:#374151 !important;border-bottom-color:#374151 !important;color:#e5e7eb;}

body.theme-dark .section-toggle{background:#1f2937;color:#e5e7eb;border-color:#475569;box-shadow:0 1px 2px rgba(0,0,0,.35);}
body.theme-dark .section-toggle-caret{color:#bfdbfe;}
body.theme-dark .section-toggle-hint{color:#cbd5e1;}
body.theme-dark .goal-scorer-chip{background:#1f2937;border-color:#475569;color:#e5e7eb;}
body.theme-dark .goal-scorer-minute{color:#bfdbfe;}
body.theme-dark .mlb-matchup-state{color:#e5e7eb;}
body.theme-dark .mlb-matchup-label{color:#cbd5e1;}
body.theme-dark .mlb-matchup-name{color:#f8fafc;}
body.theme-dark .mlb-matchup-count{background:#e5e7eb;border-color:#cbd5e1;color:#0f172a;}
body.theme-dark .mlb-result-pill{background:#1e3a8a;border-color:#60a5fa;color:#eff6ff;}
body.theme-dark [data-role="last-play-line"]{color:#e5e7eb;}
body.theme-dark .mlb-final-linescore,
body.theme-dark .period-final-linescore{background:#111827;border-color:#475569;color:#e5e7eb;}
body.theme-dark .mlb-final-linescore span,
body.theme-dark .period-final-linescore span{border-bottom-color:#334155;}
body.theme-dark .mlb-final-linescore .team,
body.theme-dark .period-final-linescore .team{color:#f8fafc;}
body.theme-dark .mlb-final-linescore .hdr,
body.theme-dark .period-final-linescore .hdr{background:#1f2937;color:#cbd5e1;}
body.theme-dark .fab-menu-panel{background:linear-gradient(180deg,#111827,#0f172a);border-color:#374151;color:#e5e7eb;}
body.theme-dark .fab-menu-actions button{background:#1f2937;color:#e5e7eb;border-color:#4b5563;}
body.theme-dark .fab-menu-actions button:hover{background:#111827;}
body.theme-dark #chatDirectoryModal .modal-box,
body.theme-dark #betModal .modal-box{background:#111827;color:#e5e7eb;border-color:#374151;}
body.theme-dark .chat-dir-item{background:linear-gradient(90deg,color-mix(in srgb,var(--away,#334155) 46%,#111827),#111827 42%,#111827 58%,color-mix(in srgb,var(--home,#334155) 46%,#111827));border-top-color:#374151;border-bottom-color:#374151;color:#f8fafc;}
body.theme-dark .chat-dir-item:hover{filter:brightness(1.08);}
body.theme-dark .chat-dir-league{color:#94a3b8;}
body.theme-dark .chat-dir-clock{color:#cbd5e1;}
body.theme-dark #chatDirectoryClose{background:#1f2937;color:#e5e7eb;border-color:#475569;}
body.theme-dark #teamModal .modal-box,
body.theme-dark #teamModalBody{background:#0f172a;color:#e5e7eb;border-color:#374151;}
body.theme-dark .team-hero,
body.theme-dark .team-section{background:#111827;border-color:#374151;color:#e5e7eb;}
body.theme-dark .team-hero-title,
body.theme-dark .team-section-title,
body.theme-dark .team-stat-value,
body.theme-dark .team-value{color:#f8fafc;}
body.theme-dark .team-hero-sub,
body.theme-dark .team-meta-line,
body.theme-dark .team-stat-label,
body.theme-dark .team-game-cat{color:#cbd5e1;}
body.theme-dark .team-stat-card,
body.theme-dark .team-game-stat,
body.theme-dark .team-snap-chip,
body.theme-dark .team-player-row:nth-child(odd){background:#1f2937;border-color:#374151;}
body.theme-dark .team-snap-chip b,
body.theme-dark .team-roster-stat b{color:#f8fafc;}
body.theme-dark .team-snap-chip span,
body.theme-dark .team-roster-stat span{color:#cbd5e1;}
body.theme-dark .team-game-stat-label{color:#cbd5e1;}
body.theme-dark .team-game-stat-value{color:#f8fafc;}
body.theme-dark .fab-menu-help,
body.theme-dark .fab-menu-auto{color:#e5e7eb;border-color:#334155;}
body.theme-dark .fab-league-toggle{background:#1f2937;color:#e5e7eb;border-color:#475569;}
body.theme-dark .score-list .list-score{background:#1f2937;border-color:#475569;color:#f8fafc;}
body.theme-dark .score-list .list-abbr,
body.theme-dark .score-list .list-gim{color:#f8fafc;}
body.theme-dark .score-list .col-lg,
body.theme-dark .score-list .col-meta,
body.theme-dark .score-list .list-clock{color:#cbd5e1;}
body.theme-dark #upcomingGrid > .day-divider,
body.theme-dark #upcomingList tr.day-divider td{color:#e5e7eb;}
body.theme-dark #upcomingGrid > .day-divider::before,
body.theme-dark #upcomingGrid > .day-divider::after,
body.theme-dark #upcomingList tr.day-divider td::before,
body.theme-dark #upcomingList tr.day-divider td::after{background:#64748b;}
body.theme-dark .score-list-row,
body.theme-dark .score-list tbody tr:nth-child(odd),
body.theme-dark .score-list tbody tr:nth-child(even){background:#111827;}
@media (max-width:640px){
	body.theme-dark .score-list tr.score-list-row{background:#111827;border-color:#334155;}
}
body.theme-dark #chatModal .modal-box{background:#0f172a;color:#e5e7eb;}
body.theme-dark #chatLog{background:#0b1220 !important;color:#e5e7eb;}
body.theme-dark #chatHeader{border-color:#334155;}
body.theme-dark .chat-match-score,
body.theme-dark .chat-match-abbr{color:#f8fafc;}
body.theme-dark .chat-match-league,
body.theme-dark .chat-match-clock{color:#94a3b8;}
body.theme-dark #chatInput{background:#111827;color:#f8fafc;border-color:#475569;}
body.theme-dark #chatForm{border-top-color:#334155 !important;}
body.theme-dark #chatModal .modal-close{background:#1f2937;color:#e5e7eb;border-color:#475569;}

/* Sunday Red Zone is one red field, not two team colors. Borders stay #D50A0A; the field is darker so those edges read, and the type is white. */
[data-redzone="1"]{
	--away:#D50A0A;
	--home:#D50A0A;
	background-color:#7A0909 !important;
	border-color:#D50A0A;
	color:#fff !important;
}
.table-modern tbody tr[data-redzone="1"],
.table-modern tbody tr[data-redzone="1"]:nth-child(odd),
.table-modern tbody tr[data-redzone="1"]:nth-child(even),
.table-modern tbody tr[data-redzone="1"]:hover,
.score-list tr.score-list-row[data-redzone="1"],
body.theme-dark .table-modern tbody tr[data-redzone="1"],
body.theme-dark .table-modern tbody tr[data-redzone="1"]:hover,
body.theme-dark .score-list tr.score-list-row[data-redzone="1"]{
	background-color:#7A0909 !important;
	color:#fff !important;
}
[data-redzone="1"] .card-league-name,
[data-redzone="1"] .league-action-link,
[data-redzone="1"] .text-gray-600,
[data-redzone="1"] .text-gray-500,
[data-redzone="1"] .col-lg,
[data-redzone="1"] .col-meta,
[data-redzone="1"] .list-abbr,
[data-redzone="1"] .list-clock,
[data-redzone="1"] td{
	color:#fff !important;
}
[data-redzone="1"] .league-action-link{border-bottom-color:rgba(255,255,255,.75);}
[data-redzone="1"] .league-action-link:hover{color:#fff !important;border-bottom-color:#fff;}
[data-redzone="1"] .redzone-badge{
	background:transparent;
	color:#fff;
	border:1px solid rgba(255,255,255,.85);
}
[data-redzone="1"] button[data-watch]{
	background:transparent;
	color:#fff;
	border-color:rgba(255,255,255,.8);
}
[data-redzone="1"] button[data-watch]::before{
	background:#fff;
	box-shadow:none;
	animation:none;
}
[data-redzone="1"] button[data-watch]:hover{
	background:rgba(255,255,255,.16);
	border-color:#fff;
	color:#fff;
}

/* Cards keep the mark out of flow, in the gutter beside the logo. The glyph is wider on its right, so the home mark sits a little less far outside the column than the away mark. List rows keep it in the line. */
#liveGrid .team-matchup-core > div:has(> .poss-ball){position:relative;}
#liveGrid .poss-ball{
	position:absolute;
	display:block;
	margin:0;
	padding:0;
	border:0;
	width:1em;
	height:1em;
	font-size:11px;
	line-height:1;
	pointer-events:none;
	z-index:2;
	top:14px;
	left:-6px;
}
#liveGrid .team-matchup-core > div:last-child > .poss-ball{left:auto;right:-3px;}
#endedGrid .poss-ball,
#endedList .poss-ball{display:none !important;}
/* Live cards only. The favorite's price and the score against the number sit in that team's lower corner, under the watch line, with a small mark of that team on the price line. Home favorites pack the mark to the right of the corner. Away favorites pack it to the left. Either way the mark sits a space away from the minus. The mark is not the score logo and not the possession ball. The whole corner opens the odds modal. */
#liveGrid > [data-game-id]:has(.live-line-corner){padding-bottom:3.2rem;}
#liveGrid .live-line-corner{
	position:absolute;
	bottom:8px;
	z-index:3;
	max-width:46%;
	display:block;
	appearance:none;
	-webkit-appearance:none;
	background:transparent;
	border:0;
	margin:0;
	padding:0;
	font:inherit;
	font-size:11px;
	line-height:1.15;
	color:#0f172a;
	cursor:pointer;
}
#liveGrid .live-line-corner.is-away{left:10px;text-align:left;}
#liveGrid .live-line-corner.is-home{right:10px;text-align:right;}
#liveGrid .live-line-corner:focus-visible{outline:2px solid #93c5fd;outline-offset:2px;border-radius:4px;}
#liveGrid .live-line-copy{display:block;min-width:0;}
#liveGrid .live-line-logo{
	width:14px;
	height:14px;
	min-width:14px;
	min-height:14px;
	object-fit:contain;
	object-position:center;
	flex:0 0 14px;
	margin:0 2px 0 0;
	pointer-events:none;
}
#liveGrid .live-line-ml{
	display:flex;
	align-items:center;
	gap:0;
	white-space:nowrap;
	font-weight:800;
}
/* Away favorite: same row as the home corner, packed to the left so the mark sits just before the minus. */
#liveGrid .live-line-corner.is-away .live-line-ml{justify-content:flex-start;}
#liveGrid .live-line-corner.is-home .live-line-ml{justify-content:flex-end;}
#liveGrid .live-line-vs,
#liveGrid .live-line-state{display:block;white-space:normal;overflow-wrap:anywhere;}
#liveGrid .live-line-vs{font-weight:700;color:#64748b;}
#liveGrid .live-line-state{font-weight:800;}
#liveGrid .live-line-corner.is-short .live-line-state{color:#9a3412;}
#liveGrid .live-line-corner.is-covering .live-line-state{color:#166534;}
#liveGrid .live-line-corner.is-push .live-line-state{color:#475569;}
body.theme-dark #liveGrid .live-line-corner{color:#e5e7eb;}
body.theme-dark #liveGrid .live-line-vs{color:#94a3b8;}
body.theme-dark #liveGrid .live-line-corner.is-short .live-line-state{color:#fdba74;}
body.theme-dark #liveGrid .live-line-corner.is-covering .live-line-state{color:#86efac;}
body.theme-dark #liveGrid .live-line-corner.is-push .live-line-state{color:#cbd5e1;}
/* Just Ended cards. One line: Final, that team's logo in place of the word favorite, then the number and cover. */
#endedGrid [data-role="final-score"]{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:4px;
	white-space:nowrap;
	font-size:12px;
	line-height:1.35;
	letter-spacing:-0.01em;
}
#endedGrid .ended-line-logo{
	width:14px;
	height:14px;
	min-width:14px;
	min-height:14px;
	object-fit:contain;
	object-position:center;
	flex:0 0 14px;
	pointer-events:none;
}
/* Desktop list cells are table-cells, so middle alignment is what puts both logos and the score on one line. The ball is a flex item in the gap, not an overlay. */
.score-list .list-side,
.score-list .list-score{vertical-align:middle;}
.score-list .poss-ball{
	position:static;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex:0 0 auto;
	width:1em;
	height:1em;
	margin:0;
	padding:0;
	border:0;
	font-size:14px;
	line-height:1;
	pointer-events:none;
}

