/*
 * RotoBaller Rankings — card layer (Phase 2: phones AND desktop)
 * A left-pinned rank/name column with a stat grid (name pops compact on horizontal scroll),
 * a vertically sticky controls+header block, Outfit type, team-colored badges, row stripes.
 * Base styles apply at all widths; the @media (min-width:601px) block at the bottom adds the
 * desktop refinements (wider columns, fill-width, roomier rows).
 */

@import url('https://fonts.googleapis.com/css2?family=Anton+SC&family=Outfit:wght@300;400;500;600;700&display=swap');

#rb-mc { display: none; }

/* column hover/long-press help popup (appended to <body>, so styled outside the media query) */
.rb-mc-tip {
	position: fixed; z-index: 1000002; display: none;
	max-width: 184px; box-sizing: border-box;
	padding: 7px 10px; border-radius: 7px;
	background: #1f2937; color: #fff;
	font-family: 'Outfit', -apple-system, "Helvetica Neue", Arial, sans-serif;
	font-size: 12px; line-height: 1.35;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .22); pointer-events: none;
}

/* ===================== Player Card (RotoBaller-branded modal, team-themed) ===================== */
body.rb-card-lock { overflow: hidden; }
.rb-card-ov {
	position: fixed; inset: 0; z-index: 1000003; display: none;
	align-items: center; justify-content: center; padding: 16px;
	background: rgba(15, 23, 42, .55);
	font-family: 'Outfit', -apple-system, "Helvetica Neue", Arial, sans-serif; -webkit-text-size-adjust: 100%;
}
.rb-card-ov.open { display: flex; }
.rb-card {
	position: relative; box-sizing: border-box; --rb-tc: #0076B6;
	width: 100%; max-width: 460px; max-height: 86vh; overflow-x: hidden; overflow-y: auto;
	background: #fff; border-radius: 14px; box-shadow: 0 20px 60px rgba(0, 0, 0, .35); color: #1a2027;
}
.rb-card * { box-sizing: border-box; }
.rb-card-trim { height: 20px; background: var(--rb-tc); }
.rb-card-x {
	position: absolute; top: 28px; right: 10px; z-index: 2; width: 27px; height: 27px;
	border: none; border-radius: 50%; background: rgba(15, 23, 42, .40); color: #fff;
	font-size: 18px; line-height: 1; cursor: pointer;
}
.rb-card-hd { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 14px 16px 8px 18px; }
.rb-card-logo { position: relative; width: 54px; height: 54px; border-radius: 50%; background: #fff; border: 2px solid var(--rb-tc); flex: 0 0 auto; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.rb-card-logo img { width: 42px; height: 42px; object-fit: contain; }
.rb-card-logo span { display: none; font-family: 'Anton SC', sans-serif; color: #fff; font-size: 15px; letter-spacing: .5px; }
.rb-card-logo--fb { background: var(--rb-tc); }
.rb-card-logo--fb span { display: block; }
.rb-card-id { flex: 1; min-width: 0; }
.rb-card-nm, .rb-card .rb-card-nm { font-family: 'Anton SC', 'Outfit', sans-serif !important; font-weight: 400; font-size: 25px; line-height: 1; letter-spacing: .4px; color: #1a2027; padding-right: 30px; }
.rb-card-sub { font-size: 13.5px; color: #6b7280; margin-top: 4px; line-height: 1.35; }
.rb-card-key { flex: 0 0 100%; display: flex; align-items: flex-start; justify-content: space-around; gap: 8px; margin-top: 8px; padding-top: 10px; border-top: 1px solid #eef1f4; }
.rb-card-key > div { text-align: center; }
.rb-card-key span { display: block; font-size: 10px; font-weight: 600; letter-spacing: .3px; color: #9aa0a8; white-space: nowrap; }
.rb-card-key b { font-size: 19px; font-weight: 600; color: #1a2027; display: block; margin-top: 5px; }
.rb-card-key b.rb-card-rk { color: var(--rb-tc); }
.rb-card-adpwrap { position: relative; display: inline-block; margin-top: 1px; }
.rb-card-adptxt { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 600; letter-spacing: .3px; color: #9aa0a8; white-space: nowrap; }
.rb-card-adptxt::after { content: '▾'; font-size: 8px; line-height: 1; color: #9aa0a8; }
.rb-card-key select.rb-card-adpsel { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; border: none; margin: 0; padding: 0; cursor: pointer; -webkit-appearance: none; -moz-appearance: none; appearance: none; }
.rb-card-sub .sep { display: inline; }
.rb-card-sub .tm { display: inline; }
.rb-card-byline { font-size: 12px; color: #9aa0a8; font-style: italic; margin-top: 8px; }
.rb-card-sostitle { font-size: 15px; font-weight: 600; color: #3a4651; padding: 12px 18px 8px; }
.rb-card-schedgrid { display: grid; grid-template-columns: repeat(9, 1fr); gap: 4px; padding: 0 14px 16px; }
.rb-card-wk { border-radius: 6px; padding: 7px 1px; text-align: center; min-width: 0; }
.rb-card-wk .wk { display: block; font-size: 9.5px; font-weight: 600; color: #4a5560; }
.rb-card-wk .num { display: block; font-size: 13px; font-weight: 700; color: #15202b; line-height: 1.15; }
.rb-card-wk .opp { display: block; font-size: 10.5px; font-weight: 600; color: #2a3742; margin-top: 0; white-space: nowrap; }
.rb-card-wk.bye { background: #eef1f4; }
.rb-card-wk.bye .opp { color: #9aa0a8; }
.rb-card-tabs { display: flex; border-top: 1px solid #eef1f4; border-bottom: 1px solid #eef1f4; }
.rb-card-tabs button { flex: 1; border: none; background: transparent; font: inherit; font-size: 13.5px; font-weight: 500; color: #6b7280; padding: 11px 4px; border-bottom: 2px solid transparent; cursor: pointer; white-space: nowrap; }
.rb-card-tabs button.on { color: var(--rb-tc); border-bottom-color: var(--rb-tc); }
.rb-card-body { padding: 0; }
.rb-card-split { display: flex; padding: 13px 16px 10px; }
.rb-card-outlook { flex: 0 0 46%; min-width: 0; padding-right: 14px; border-right: 1px solid #eef1f4; }
.rb-card-proj { flex: 1; min-width: 0; padding-left: 14px; }
.rb-card-olab { font-size: 11.5px; font-weight: 600; letter-spacing: .3px; color: var(--rb-tc); margin-bottom: 6px; }
.rb-card-otext { font-size: 13.5px; line-height: 1.55; color: #33404d; }
.rb-card-otext.clamp { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.rb-card-rm { color: var(--rb-tc); font-weight: 500; cursor: pointer; font-size: 13.5px; }
.rb-card-ph { font-size: 13.5px; line-height: 1.5; color: #9aa0a8; }
.rb-card-full { padding: 14px 18px 8px; }
.rb-card-phead { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.rb-card-plab { font-size: 11.5px; font-weight: 600; letter-spacing: .3px; color: #9aa0a8; }
.rb-card-scoring { display: inline-flex; border: 1px solid #dfe5ec; border-radius: 12px; overflow: hidden; }
.rb-card-scoring button { border: none; background: transparent; font: inherit; font-size: 11.5px; font-weight: 500; color: #6b7280; padding: 4px 10px; cursor: pointer; }
.rb-card-scoring button.on { background: var(--rb-tc); color: #fff; }
.rb-card-bars { display: flex; }
.rb-card-bar { flex: 1; min-width: 0; text-align: center; }
.rb-card-bar .v { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.rb-card-bar .track { display: flex; align-items: flex-end; justify-content: center; margin-top: 2px; }
.rb-card-bar .track i { display: block; background: var(--rb-tc); border-radius: 4px 4px 0 0; }
.rb-card-bar .lab { font-size: 11.5px; color: #15202b; font-weight: 700; margin-top: 4px; }
.rb-card-bar .rk { display: inline-block; font-size: 10px; font-weight: 500; color: var(--rb-tc); background: #f1f4f7; border-radius: 7px; padding: 1px 6px; margin-top: 3px; }
.rb-card-hl { display: flex; gap: 10px; margin: 14px 18px 6px; }
.rb-card-hl > div { flex: 1; border-radius: 11px; padding: 13px 8px; text-align: center; }
.rb-card-hl .a { background: var(--rb-tc); color: #fff; }
.rb-card-hl .b { background: #eef3f7; color: #1a2027; }
.rb-card-hl big { display: block; font-family: 'Anton SC', 'Outfit', sans-serif !important; font-weight: 400; font-size: 34px; line-height: 1; margin-top: 3px; }
.rb-card-hl small { display: block; font-size: 13px; font-weight: 700; letter-spacing: .3px; margin-top: 0; opacity: .95; }
.rb-card-hl .b small { color: #7a8694; }
/* News tab */
.rb-card-news { padding: 4px 18px 8px; }
.rb-card-newssect { font-size: 13.5px; font-weight: 700; color: #1a2027; margin-top: 6px; padding: 12px 0 6px; border-bottom: 1px solid #006DC8; }   /* RotoBaller-blue separator (same 1px weight as the old grey line) */
.rb-card-newslink { color: inherit; text-decoration: none; }
.rb-card-newslink:hover { color: var(--rb-tc); text-decoration: underline; }
.rb-mc-sos { font-weight: 600; }
.rb-card-projlab { font-size: 14px; font-weight: 700; color: #1a2027; text-transform: none; }
.rb-mc-tierfirst { border-top: 3px solid #006DC8 !important; }
.rb-card-news-lead { padding: 13px 0; border-bottom: 1px solid #eef1f4; }
.rb-card-news-tag { font-size: 11.5px; font-weight: 600; letter-spacing: .3px; color: var(--rb-tc); margin-bottom: 5px; }
.rb-card-news-h { font-size: 16.5px; font-weight: 600; line-height: 1.3; }
.rb-card-news-h2 { font-size: 15px; font-weight: 600; line-height: 1.3; }
.rb-card-news-meta { font-size: 12.5px; color: #9aa0a8; margin: 5px 0 7px; }
.rb-card-news-body { font-size: 14px; line-height: 1.6; color: #3a4651; }
.rb-card-news-body p { margin: 0 0 10px; }
.rb-card-news-body a { color: var(--rb-tc); }
.rb-card-news-item { padding: 13px 0; border-bottom: 1px solid #f4f6f8; }
.rb-card-news-teaser { font-size: 13.5px; line-height: 1.5; color: #5a6675; }
/* Stats table */
.rb-card-tablewrap { overflow-x: auto; padding: 6px 14px 16px; }
.rb-card-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.rb-card-table th { font-size: 11px; font-weight: 600; color: #9aa0a8; text-transform: uppercase; letter-spacing: .2px; padding: 5px 4px; text-align: center; border-bottom: 1px solid #eef1f4; white-space: nowrap; }
.rb-card-table td { padding: 6px 4px; text-align: center; color: #33404d; font-variant-numeric: tabular-nums; border-bottom: 1px solid #f4f6f8; white-space: nowrap; }
.rb-card-table .yr { font-weight: 600; color: #1a2027; }
.rb-card-table td.pr { font-weight: 600; color: var(--rb-tc); }
/* Schedule widget (injected, self-colored cells) */
.rb-card-sched { padding: 6px 14px 16px; }
.rb-card-sched .table_schedule_wrapper, .rb-card-sched .card { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rb-card-sched table { border-collapse: collapse; font-size: 12px; margin: 0; }
.rb-card-sched .img_loading { display: none; }
.rb-card-sched thead th { font-weight: 600; color: #6b7280; padding: 5px 11px; font-size: 12.5px; white-space: nowrap; text-align: center; }
.rb-card-sched td { padding: 10px 12px; min-width: 36px; text-align: center; white-space: nowrap; font-weight: 500; color: #1a2027; border: 2px solid #fff; line-height: 1.2; }
.rb-card-sched td div { font-size: 16px; font-weight: 600; }
.rb-card-sched h6 { display: none; }
.rb-card-soon { padding: 34px 18px; text-align: center; color: #9aa0a8; font-size: 14.5px; line-height: 1.5; }
.rb-card-profile { display: block; text-align: center; padding: 14px; font-size: 14px; font-weight: 600; color: var(--rb-tc); text-decoration: none; border-top: 1px solid #eef1f4; }
/* notepad affordance next to the player name in each row */
.rb-mc-nmrow { display: flex; align-items: center; gap: 5px; min-width: 0; }
.rb-mc-cardico { flex: 0 0 auto; color: #aab0b8; }
#rb-mc.rb-hscroll .rb-mc-cardico { display: none; }
@media (max-width: 399px) {
	.rb-card-split { flex-direction: column; }
	.rb-card-outlook { flex: none; padding-right: 0; border-right: none; border-bottom: 1px solid #eef1f4; padding-bottom: 12px; margin-bottom: 12px; }
	.rb-card-proj { padding-left: 0; }
}

/* min-width:0 = applies at ALL widths. This block was once capped at max-width:4000px, which broke
   zoomed-out browsers: at 33% zoom the viewport exceeds 4000 CSS px, every rule here stopped applying,
   the tool vanished (#rb-mc base display:none won) and the legacy grey box un-hid. Never cap it. */
@media (min-width: 0) {

	/* Take over the tool — hide everything AngularJS renders. GATED on body.rb-cards-on, which the
	   theme adds server-side ONLY on pages opted into the new tool via the [rb_cards] shortcode (or the
	   ?rbcards=1 preview). Un-flipped pages keep the legacy Angular tool untouched. Still render-blocking,
	   so on a flipped page the legacy table never flashes before the card JS runs. */
	body.rb-cards-on [ng-app="rankingsApp"] > ui-view,
	body.rb-cards-on [ng-app="rankingsApp"] table.rankings,
	body.rb-cards-on [ng-app="rankingsApp"] .mb-50.relative {
		display: none !important;
	}

	/* Kill the AngularJS grey loading background (#e6e6e6) — white from first paint, not after JS runs. */
	body.rb-cards-on [ng-app="rankingsApp"].ionutRankings {
		background: #fff !important;
	}
	/* Tighten the video-ad slot's gaps on flipped pages so the slot doesn't shift when the JS runs. */
	body.rb-cards-on .ranking-tool-header-ad {
		margin-top: 0 !important;
		margin-bottom: 10px !important;
	}

	body.rb-mc-on #rb-mc {
		display: block;
		margin: 2px 0 0;
		font-family: 'Outfit', -apple-system, "Helvetica Neue", Arial, sans-serif;
		-webkit-text-size-adjust: 100%;
	}

	#rb-mc * { box-sizing: border-box; }

	#rb-mc .rb-mc-loading,
	#rb-mc .rb-mc-error,
	#rb-mc .rb-mc-empty {
		padding: 28px 12px;
		text-align: center;
		color: #6b7280;
		font-size: 14px;
	}

	/* ---------- controls bar (transparent, single row) ---------- */
/* Announcement = solid CTA banner. Background is set per message.color in JS (default RotoBaller blue). */
	.rb-mc-note, #rb-mc .rb-mc-note {
		margin: 10px 0 2px; padding: 0; border: none; border-radius: 10px;
		background: #006DC8; overflow: hidden;
	}
	#rb-mc .rb-mc-note[hidden] { display: none; }
	/* inner wrapper is the flex row; an <a> when the announcement has a URL (whole bar clickable) */
	#rb-mc .rb-mc-note-in { display: flex; align-items: center; gap: 11px; padding: 12px 14px; text-decoration: none; color: #fff; }
	#rb-mc .rb-mc-note-clickable { cursor: pointer; transition: filter .12s ease; }
	#rb-mc .rb-mc-note-clickable:hover { filter: brightness(1.08); }
	#rb-mc .rb-mc-note-ic { flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,.18); color: #fff; display: flex; align-items: center; justify-content: center; line-height: 0; }
	#rb-mc .rb-mc-note-ic svg { width: 24px; height: 24px; flex: 0 0 auto; }   /* arrows +50% (mobile); circle unchanged so height holds */
	#rb-mc .rb-mc-note-tx { flex: 1; min-width: 0; }
	#rb-mc .rb-mc-note-h { display: block; font-weight: 600; font-size: 14px; color: #fff; line-height: 1.3; }   /* mobile: -20% to keep on one line */
	#rb-mc .rb-mc-note-c { display: block; font-size: 12.4px; color: rgba(255,255,255,.85); line-height: 1.4; margin-top: 2px; }   /* mobile: -20% */
	#rb-mc .rb-mc-note-arrow { flex: 0 0 auto; margin-left: auto; align-self: center; color: #fff; opacity: .9; line-height: 0; }
		#rb-mc .rb-mc-controls {
		position: relative;
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 5px;
		padding: 8px 8px 9px;
	}

	#rb-mc .rb-mc-field { flex: 0 0 auto; display: inline-flex; min-width: 0; }
	#rb-mc .rb-mc-sel {
		width: 94px;
		font-family: inherit;
		font-size: 12.5px;
		font-weight: 600;
		color: #fff;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: clip;
		padding: 8px 22px 8px 12px;
		border: none;
		border-radius: 20px;
		background-color: #1e7fd6;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='1.7' d='M2.5 4.5 6 8l3.5-3.5'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: right 9px center;
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
	}
	#rb-mc .rb-mc-sel:focus { outline: none; box-shadow: 0 0 0 3px rgba(30, 127, 214, 0.25); }
	@media (max-width: 600px) {
		#rb-mc .rb-mc-controls { flex-wrap: nowrap; gap: 4px; padding: 7px 6px 8px; }
		#rb-mc .rb-mc-sel { width: 66px; font-size: 11px; padding: 7px 15px 7px 8px; background-position: right 6px center; }
		#rb-mc .rb-mc-tg { font-size: 10.5px; padding: 5px 7px; }
		#rb-mc .rb-mc-controls .rb-mc-icon { width: 28px; height: 28px; }
	}

	/* stats / projections segmented toggle */
	#rb-mc .rb-mc-toggle {
		flex: 0 0 auto;
		display: inline-flex;
		padding: 2px;
		border-radius: 20px;
		background: #eef1f4;
	}
	#rb-mc .rb-mc-tg {
		font-family: inherit;
		font-size: 11.5px;
		font-weight: 600;
		color: #5a616b;
		border: none;
		background: transparent;
		padding: 6px 9px;
		border-radius: 18px;
		line-height: 1;
	}
	#rb-mc .rb-mc-tg.on { background: #fff; color: #1e7fd6; box-shadow: 0 1px 2px rgba(0,0,0,.12); }

	/* icon buttons (desktop enlarges these to match the taller pill bubbles) */
	#rb-mc .rb-mc-icon {
		flex: 0 0 auto;
		width: 32px;
		height: 32px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		border: 1px solid #dfe3e8;
		border-radius: 50%;
		background: #fff;
		color: #44505c;
		padding: 0;
	}
	#rb-mc .rb-mc-icon:active { background: #eef4fb; }

	/* search: its own row below the controls (doesn't cover the buttons) */
	#rb-mc .rb-mc-search {
		display: none;
		align-items: center;
		gap: 6px;
		height: 38px;
		margin: 0 8px 8px;
		padding: 0 8px 0 12px;
		background: #fff;
		border: 1px solid #1e7fd6;
		border-radius: 20px;
	}
	#rb-mc .rb-mc-search.open { display: flex; }
	#rb-mc .rb-mc-search-ic { color: #9aa0a8; display: inline-flex; }
	#rb-mc .rb-mc-search input {
		flex: 1 1 auto;
		min-width: 0;
		border: none;
		outline: none;
		font-family: inherit;
		font-size: 15px;
		color: #15171a;
		background: transparent;
	}
	#rb-mc .rb-mc-search-x {
		flex: 0 0 auto;
		width: 26px; height: 26px;
		display: inline-flex; align-items: center; justify-content: center;
		border: none; background: #eef1f4; color: #5a616b; border-radius: 50%; padding: 0;
	}

	/* --rb-nameW = STATIC width of the name column (track 2). The grid never changes on
	   scroll (native-smooth); the name just snaps big->small via the .rb-hscroll class. */
	#rb-mc .rb-mc-list { --rb-badgeW: 40px; --rb-nameW: 150px; }
	#rb-mc .rb-mc-head { --rb-badgeW: 40px; --rb-nameW: 150px; }

	/* ---------- body: horizontal scroll only; the PAGE owns vertical scroll ---------- */
	#rb-mc .rb-mc-list {
		overflow-x: auto;
		overflow-y: visible;          /* height is auto -> no nested vertical scroll */
		-webkit-overflow-scrolling: touch;
	}

	/* ---------- header: pinned below the fixed nav by JS (theme breaks position:sticky) --- */
	/* chrome = controls + search + column header, pinned below the nav as one block on scroll.
	   chromewrap holds the placeholder gap when chrome goes position:fixed (in-place — no
	   portal needed, no transformed ancestor here). Opaque bg so the list scrolls under it. */
	#rb-mc .rb-mc-chromewrap { position: relative; }
	#rb-mc .rb-mc-chrome { background: #fff; }
	#rb-mc .rb-mc-chrome.rb-fixed { position: fixed; z-index: 1000000; box-shadow: 0 3px 6px rgba(0,0,0,.07); }
	#rb-mc .rb-mc-headwrap { position: relative; }
	#rb-mc .rb-mc-head {
		position: relative;
		z-index: 5;
		display: grid;
		align-items: center;
		min-width: 100%;
		min-height: 48px;
		overflow-x: hidden;
		background: #fff;
		border-top: 1px solid #e6e9ed;
		border-bottom: 1px solid #d8dce1;
		font-size: 10px;
		font-weight: 700;
		letter-spacing: 0.2px;
		text-transform: uppercase;
		color: #9aa0a8;
	}
	#rb-mc .rb-mc-head.rb-fixed { position: fixed; z-index: 1000000; box-shadow: 0 2px 4px rgba(0,0,0,.06); }
	#rb-mc .rb-mc-hcell { justify-content: center; }      /* RK label centered in the badge slot */
	#rb-mc .rb-mc-hname { color: #9aa0a8; background: #fff; }
	#rb-mc .rb-mc-h-c { text-align: center; padding: 0 4px; white-space: nowrap; cursor: pointer; }
	#rb-mc .rb-mc-hcell, #rb-mc .rb-mc-hname { cursor: pointer; }

	/* Self-contained header styles — used when the head is PORTALED to <body> on pin (the
	   #rb-mc-scoped rules above no longer reach it there). position:fixed deep inside the page
	   is unreliable (a transformed/overflow ancestor makes it scroll away); a direct body child
	   pins reliably like the theme nav. Lower specificity than the #rb-mc rules, so the in-flow
	   header is unchanged. */
	.rb-mc-head, .rb-mc-head * { box-sizing: border-box; }
	.rb-mc-head {
		display: grid; align-items: center; min-height: 48px; overflow-x: hidden;
		background: #fff; border-top: 1px solid #e6e9ed; border-bottom: 1px solid #d8dce1;
		font-family: 'Outfit', -apple-system, "Helvetica Neue", Arial, sans-serif;
		font-size: 10px; font-weight: 700; letter-spacing: 0.2px; text-transform: uppercase; color: #9aa0a8;
	}
	.rb-mc-head.rb-fixed { position: fixed; z-index: 1000000; box-shadow: 0 2px 4px rgba(0,0,0,.06); }
	.rb-mc-head .rb-mc-badge {
		position: sticky; left: 0; z-index: 7; align-self: stretch; display: flex; flex-direction: row;
		align-items: center; justify-content: center; background: #fff; padding: 4px 5px; cursor: pointer;
	}
	.rb-mc-head .rb-mc-name {
		position: sticky; left: var(--rb-badgeW, 40px); z-index: 6; align-self: stretch; justify-self: start;
		justify-content: center; display: flex; flex-direction: column; width: max-content;
		max-width: calc(var(--rb-nameW, 118px) - 12px);
		color: #9aa0a8; padding: 0 8px; pointer-events: auto; cursor: pointer;
	}
	.rb-mc-head.rb-hscroll .rb-mc-name { visibility: hidden; }   /* disappears on scroll, like the in-flow header */
	.rb-mc-head .rb-mc-nm { font-size: 10px; font-weight: 700; color: #9aa0a8; white-space: nowrap; overflow: hidden; text-overflow: clip; }
	.rb-mc-head .rb-mc-h-c { text-align: center; padding: 0 4px; white-space: nowrap; cursor: pointer; }
	.rb-mc-head .rb-mc-sort { display: inline-block; width: 0; height: 0; margin-left: 3px; vertical-align: middle; }
	.rb-mc-head .rb-mc-sort.asc  { border-left: 3px solid transparent; border-right: 3px solid transparent; border-bottom: 4px solid #1e7fd6; }
	.rb-mc-head .rb-mc-sort.desc { border-left: 3px solid transparent; border-right: 3px solid transparent; border-top: 4px solid #1e7fd6; }
	#rb-mc-headportal { position: static; }

	/* Force EVERY header label (RK, Player, Bye, ADP, …) to one identical size + line-height,
	   immune to app.css / theme rules that bleed into the rankings container (the page's
	   stylesheets load after ours and set a tall inherited line-height). Fixes "Player looks
	   smaller than the other headers." */
	#rb-mc .rb-mc-head .rb-mc-hcell,
	#rb-mc .rb-mc-head .rb-mc-h-c,
	#rb-mc .rb-mc-head .rb-mc-hname .rb-mc-nm,
	.rb-mc-head .rb-mc-hcell,
	.rb-mc-head .rb-mc-h-c,
	.rb-mc-head .rb-mc-hname .rb-mc-nm {
		font-size: 11px !important;
		line-height: 1.15 !important;
		font-weight: 700 !important;
		letter-spacing: .3px;
		text-transform: uppercase;
	}

	/* shared row grid (template set inline). Stats are vertically CENTERED. */
	#rb-mc .rb-mc-card {
		display: grid;
		align-items: center;          /* stat values vertically centered */
		min-height: 54px;
		min-width: 100%;
		width: max-content;
		border-bottom: 1px solid #edeff1;
		text-decoration: none !important;
		color: #1a1a1a !important;
	}
	#rb-mc .rb-mc-card.rb-mc-even { background: #fff; }
	#rb-mc .rb-mc-card.rb-mc-odd  { background: #f6f7f9; }

	/* frozen badge — the ONLY full freeze: just the rank number (pos appears under it on scroll) */
	#rb-mc .rb-mc-badge {
		position: sticky;
		left: 0;
		z-index: 5;
		align-self: stretch;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 2px;
		padding: 4px 5px;
	}
	#rb-mc .rb-mc-head .rb-mc-badge { z-index: 7; background: #fff; flex-direction: row; }
	#rb-mc .rb-mc-card.rb-mc-even .rb-mc-badge { background: #fff; }
	#rb-mc .rb-mc-card.rb-mc-odd  .rb-mc-badge { background: #f6f7f9; }
	#rb-mc .rb-mc-rank {
		min-width: 20px;
		height: 20px;
		padding: 0 4px;
		border-radius: 5px;
		color: #fff;
		font-size: 12px;
		font-weight: 700;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	/* on scroll: number shrinks a touch and the pos chip appears beneath it (instant snap) */
	#rb-mc.rb-hscroll .rb-mc-card .rb-mc-rank { transform: scale(.85); }
	#rb-mc .rb-mc-badge .rb-mc-pos { display: none; }                          /* rest: pos is under the name */
	#rb-mc.rb-hscroll .rb-mc-card .rb-mc-badge .rb-mc-pos { display: block; }   /* scroll: pos under the number */
	#rb-mc .rb-mc-pos {
		font-size: 9px;
		font-weight: 700;
		line-height: 1;
		padding: 2px 4px;
		border-radius: 3px;
		background: #eef1f4;
		color: #444;
	}
	#rb-mc .rb-mc-pos.qb  { background: #efe9fc; color: #5a3bbf; }
	#rb-mc .rb-mc-pos.rb  { background: #d9f1f4; color: #0e7490; }
	#rb-mc .rb-mc-pos.wr  { background: #e6f1fb; color: #185fa5; }
	#rb-mc .rb-mc-pos.te  { background: #fdefdb; color: #9a5b09; }
	#rb-mc .rb-mc-pos.k   { background: #f6e8f4; color: #9d2c7a; }
	#rb-mc .rb-mc-pos.dst { background: #eceff2; color: #3f4a57; }
.rb-mc-head, #rb-mc .rb-mc-head, .rb-mc-head .rb-mc-nm, .rb-mc-head .rb-mc-name, #rb-mc .rb-mc-hname { color: #4b5563; }
#rb-mc .rb-mc-head { font-size: 11px; }
.rb-mc-h-c[data-key="__sos"], .rb-mc-h-c[data-key="__rectar"], .rb-mc-h-c[data-key="pas_attpgp"] { white-space: pre-line !important; line-height: 1.04; }
.rb-card-news-body.clamp { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
@media (min-width: 601px) { .rb-card-hd { padding-bottom: 13px; } .rb-card-hl { margin-bottom: 14px; } .rb-card-adptxt { font-size: 12px; } }

	/* name = a sticky overlay in a STATIC-width column (the grid never reflows on scroll, so
	   scrolling is native-smooth). At rest: big, vertically centered, first stat to its right.
	   On scroll: snaps small + rises to the top (transparent, text-shadow) so the stats slide
	   left underneath via sticky and stay visible. */
	#rb-mc .rb-mc-card .rb-mc-name {
		position: sticky;
		left: var(--rb-badgeW);
		z-index: 4;
		align-self: center;            /* rest: vertically centered with the number */
		justify-self: start;
		width: max-content;
		max-width: calc(var(--rb-nameW, 118px) - 12px);   /* clipped within the column */
		display: flex;
		flex-direction: column;
		gap: 1px;
		padding: 0 8px;
		pointer-events: none;          /* let taps reach the row link */
	}
	/* on scroll: snap to the TOP (a little higher) and let the name overflow over the stats */
	#rb-mc.rb-hscroll .rb-mc-card .rb-mc-name {
		align-self: start;
		padding-top: 4px;
		max-width: 74vw;
	}
	#rb-mc .rb-mc-card .rb-mc-name .rb-mc-nm {
		font-size: 14px;
		font-weight: 700;
		color: #15171a;
		line-height: 1.1;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: clip;
		text-shadow: 0 0 4px #fff, 0 0 4px #fff, 0 0 7px #fff;   /* readable over stats beneath */
	}
	/* name snaps big -> small instantly when the Bye column crosses the soft right border */
	#rb-mc.rb-hscroll .rb-mc-card .rb-mc-name .rb-mc-nm { font-size: 11px; }
	/* header "Player": same size as the other labels at rest; disappears entirely on scroll
	   (keeps its grid track via visibility so the stat labels stay aligned and hide at RK). */
	#rb-mc .rb-mc-head .rb-mc-name { z-index: 6; justify-content: center; pointer-events: auto; padding: 0 8px; }
	.rb-mc-head.rb-hscroll .rb-mc-name { visibility: hidden; }
	#rb-mc .rb-mc-head .rb-mc-name .rb-mc-nm { font-size: 10px; text-shadow: none; font-weight: 700; color: #4b5563; }
	/* sub-line: colored position pill + team abbr in the team's color */
	#rb-mc .rb-mc-name .rb-mc-sub {
		display: flex;
		align-items: center;
		gap: 5px;
		font-size: 10px;
		line-height: 1.2;
		white-space: nowrap;
	}
	#rb-mc.rb-hscroll .rb-mc-card .rb-mc-name .rb-mc-sub { display: none; }   /* hidden once the name snaps small */
	#rb-mc .rb-mc-sub .rb-mc-subteam { font-weight: 700; }

	/* ---------- tier divider (full-width row, label pinned left) ---------- */
	#rb-mc .rb-mc-tier {
		display: grid;
		min-width: 100%;
		width: max-content;
		background: #fff;
		border-bottom: 1px solid #f0f1f3;
	}
	#rb-mc .rb-mc-tierlabel {
		position: sticky;
		left: 0;
		z-index: 2;
		background: #fff;
		font-size: 11px;
		font-weight: 700;
		letter-spacing: 0.6px;
		text-transform: uppercase;
		color: #1e7fd6;
		padding: 11px 8px 5px;
		white-space: nowrap;
	}

	/* Floating sticky-tier label — JS-positioned (updateStickyTier): sits just below the pinned
	   column header while scrolling within a tier, pushed up by the next tier's divider. */
	#rb-mc .rb-mc-tierfloat {
		position: fixed;
		z-index: 999999;                 /* BELOW the pinned chrome (1000000) so the header's light-grey
		                                    divider shadow lands on the tier bar's top — keeping it aligned
		                                    + consistent with the header→data divider elsewhere in the tool */
		display: none;
		background: #fff;
		border-bottom: 3px solid #006DC8;  /* blue accent at the BOTTOM of the tier bar */
		box-shadow: 0 3px 5px rgba(0,0,0,.05);
		box-sizing: border-box;
		overflow: hidden;
		pointer-events: none;            /* visual only — taps pass through to the list below */
	}
	#rb-mc .rb-mc-tierfloat.on { display: block; }
	#rb-mc .rb-mc-tierfloat .rb-mc-tierlabel {
		position: static;
		display: block;
		background: transparent;
		font-size: 9px; font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase;
		line-height: 1.1 !important;   /* a theme rule forces a tall line-height here — override it so the bar is compact */
		color: #1e7fd6; padding: 3px 8px 3px; white-space: nowrap;   /* symmetric 3px top/bottom (was 2px top) */
	}
	@media (min-width: 601px) {
		#rb-mc .rb-mc-tierfloat .rb-mc-tierlabel { font-size: 12px; padding: 4.2px 10px 4.2px; }   /* symmetric; bottom 6px→4.2px (−30%), same on top */
	}

	/* stat cells */
	#rb-mc .rb-mc-c {
		text-align: center;
		padding: 0 4px;
		font-size: 13px;
		font-weight: 500;
		color: #2b2f36;
		font-variant-numeric: tabular-nums;
		white-space: nowrap;
		overflow: hidden;
	}
	/* Pos / Team columns (desktop only — moved out from under the player name) */
	#rb-mc .rb-mc-cpos, #rb-mc .rb-mc-cteam { display: flex; align-items: center; justify-content: center; }
	#rb-mc .rb-mc-teamabbr { font-weight: 700; }
	#rb-mc .rb-mc-cpos .rb-mc-pos { font-size: 13px; padding: 3px 8px; border-radius: 4px; }
	#rb-mc .rb-mc-cproj {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 3px;
		font-weight: 700;
		color: #1e7fd6;
	}
	#rb-mc .rb-mc-ctrend { display: flex; align-items: center; justify-content: center; }   /* Trend column: center the caret */
	/* trend arrows — 1.5x on mobile (base); doubled on desktop (see min-width block) */
	#rb-mc .rb-mc-tr { flex: 0 0 auto; width: 0; height: 0; }
	#rb-mc .rb-mc-tr.up { border-left: 5px solid transparent; border-right: 5px solid transparent; border-bottom: 8px solid #16a34a; }
	#rb-mc .rb-mc-tr.down { border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 8px solid #dc2626; }
	#rb-mc .rb-mc-tr.flat { width: 9px; border-top: 3px solid #c2c8cf; }

	/* ---------- sort indicator (active column) ---------- */
	#rb-mc .rb-mc-sort { display: inline-block; width: 0; height: 0; margin-left: 3px; vertical-align: middle; }
	#rb-mc .rb-mc-sort.asc  { border-left: 3px solid transparent; border-right: 3px solid transparent; border-bottom: 4px solid #1e7fd6; }
	#rb-mc .rb-mc-sort.desc { border-left: 3px solid transparent; border-right: 3px solid transparent; border-top: 4px solid #1e7fd6; }
	#rb-mc .rb-mc-h-c:active, #rb-mc .rb-mc-hcell:active { color: #1e7fd6; }

	/* ---------- interleaved Raptive in-content ad slot ---------- */
	/* sticky-left so the ad stays put while stats scroll horizontally; height is left to the
	   ad itself (Raptive in-content units are ~50–300px) — no fixed height / clip. */
	#rb-mc .rb-mc-adrow {
		position: sticky;
		left: 0;
		z-index: 3;
		box-sizing: border-box;
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 50px;
		padding: 4px 0;
		background: #fbfbfc;
		border-top: 1px solid #edeff1;
		border-bottom: 1px solid #edeff1;
	}
	/* center the ad both ways in the grey row (content-width, not stretched full-width) */
	#rb-mc .rb-mc-adrow .ad-template {
		margin: auto; max-width: 100%; text-align: center;
		display: flex; align-items: center; justify-content: center;
	}
	#rb-mc .rb-mc-adrow .ad-template > * { margin: auto; }   /* center AdThrive's injected ad div */
	/* mobile: pin the interleaved slot to a fixed 320x50 footprint and center the ad in it. Raptive
	   over-reserves height for CLS — the slot balloons when the unit is empty and collapses when a
	   320x50 fills, which is the "space keeps changing / too much empty space" jump. A fixed 50px
	   content box (58px incl. the 4px pad) + overflow:hidden clips that over-reserve so the row is
	   ALWAYS a 320x50, never taller, and align-items:center keeps the ad vertically centered whether
	   or not it's currently filled. */
	@media (max-width: 600px) {
		/* The only creatives Raptive serves in the mobile in-content slot are 320x50, so the slot is a
		   FIXED 60px band (50px unit + 5px pad top/bottom). Fixed height (not min-height) caps Raptive's
		   oversized empty CLS placeholder so an unfilled slot can't balloon; fitAdSlots() then sets an
		   explicit inline height to hug the real 50px creative (and collapses the placeholder) once it
		   fills, so the ad is centered and never clipped. */
		#rb-mc .rb-mc-adrow { display: flex; height: 60px; padding: 5px 0; overflow: hidden; align-items: center; justify-content: center; }
		#rb-mc .rb-mc-adrow .ad-template { margin: auto; min-height: 0; }
	}
}

/* ========================= DESKTOP refinements (Phase 2) ========================= */
@media (min-width: 601px) {
	.rb-card { max-width: 580px; }
	.rb-card-key span { font-size: 12px; }
	.rb-card-key b { font-size: 25px; }
	.rb-card-sub .sep { display: inline; }
	.rb-card-sub .tm { display: inline; }
	/* fill the full width of the content container (no cap) */
	#rb-mc { max-width: none; margin-left: 0; margin-right: 0; }
	#rb-mc .rb-mc-list, #rb-mc .rb-mc-head { --rb-nameW: 280px; --rb-badgeW: 48px; }
	/* rank badge + number ~25% bigger on desktop */
	#rb-mc .rb-mc-rank { min-width: 25px; height: 25px; font-size: 15px; border-radius: 6px; padding: 0 5px; }
	/* stat columns flex (JS uses fr tracks) and rows span 100% so the table fills the page */
	#rb-mc .rb-mc-card, #rb-mc .rb-mc-tier { width: 100%; }
	#rb-mc .rb-mc-head { width: 100%; min-width: 100%; }
	/* +25% row height to let rows breathe with the bigger text */
	#rb-mc .rb-mc-card { min-height: 58px; }
	#rb-mc .rb-mc-c { font-size: 15px; }
	#rb-mc .rb-mc-card .rb-mc-name .rb-mc-nm { font-size: 17px; }
	#rb-mc .rb-mc-card .rb-mc-name .rb-mc-sub { font-size: 12px; }
	/* headers a bit smaller than the name so the (now shortened) labels never overlap */
	#rb-mc .rb-mc-head .rb-mc-hcell,
	#rb-mc .rb-mc-head .rb-mc-h-c,
	#rb-mc .rb-mc-head .rb-mc-hname .rb-mc-nm { font-size: 14px !important; letter-spacing: 0; }
	#rb-mc .rb-mc-tierlabel { font-size: 16px; padding: 14px 10px 8px; }
	/* desktop: Pos + Team live in their own columns, so drop the under-name sub-line and
	   center the lone name; size up the pos pill + team abbreviation */
	#rb-mc .rb-mc-card .rb-mc-name .rb-mc-sub { display: none; }
	#rb-mc .rb-mc-card .rb-mc-name { justify-content: center; padding-top: 0; }
	#rb-mc .rb-mc-cpos .rb-mc-pos { font-size: 15px; padding: 4px 11px; border-radius: 5px; }
	#rb-mc .rb-mc-teamabbr { font-size: 16px; }
	/* desktop ads are 728x90 leaderboards — FIXED 110px slot (90px unit + 10px pad top/bottom). Fixed
	   height caps Raptive's empty placeholder; fitAdSlots() sets an inline height to hug the real
	   creative once filled (and grows it if a taller unit ever serves). */
	#rb-mc .rb-mc-adrow { height: 110px; padding: 10px 0; overflow: hidden; }
	/* trend arrows doubled on desktop */
	#rb-mc .rb-mc-tr.up { border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 10px solid #16a34a; }
	#rb-mc .rb-mc-tr.down { border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 10px solid #dc2626; }
	#rb-mc .rb-mc-tr.flat { width: 12px; border-top: 4px solid #c2c8cf; }
	/* bigger controls on desktop */
	#rb-mc .rb-mc-sel { width: 138px; font-size: 15.5px; }
	#rb-mc .rb-mc-tg { font-size: 14.5px; padding: 9px 14px; }
	#rb-mc .rb-mc-icon { width: 42px; height: 42px; }
	#rb-mc .rb-mc-icon svg { width: 23px; height: 23px; }
}

/* A linked row (<a>) keeps focus after its player-card modal closes; the theme then draws a blue
   focus ring that reads as thick lines above/below the row. Suppress it for pointer interaction
   while keeping the keyboard focus ring for accessibility. */
#rb-mc .rb-mc-card:focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; }

/* ---- CLS fix: stop the content column (and the video-ad grey box) shifting during load ----
   Root cause: WordPress's wpautop wraps an inline config <script> (e.g. `window.rtsSettings`, present on
   every rankings tool embed page) in a <p> that carries a paragraph margin. Because .entry / #content /
   #right-container have no top padding or border, that invisible <p>'s margin collapses straight up to
   the content column; when a deferred stylesheet re-applies paragraph margins during load it toggles,
   shoving the whole column (and the grey box) down ~28px. Mobile-only (#right-container is display:inline
   on desktop, so no collapse there). Fix: zero the margin of any invisible script-wrapping <p>.
   The :has() rule is safe site-wide (only ever matches a <p> that DIRECTLY wraps a <script>, which
   renders nothing) and so covers every rankings tool page. The :first-child rule is a :has()-less
   fallback, kept scoped to the primary test page so it can never touch a real first paragraph elsewhere. */
.entry > p:has(> script) { margin-top: 0 !important; margin-bottom: 0 !important; }
body.page-id-1866057 .entry > p:first-child { margin-top: 0 !important; margin-bottom: 0 !important; }

/* ---- Selection-change loading bar ----
   Thin RotoBaller-blue DETERMINATE bar directly under the column-header row while a new
   ranking type / position / ADP source renders: grows steadily left -> right and completes as
   a full blue line, then clears. The 3px lane is ALWAYS reserved (only the fill toggles) so
   showing/hiding it never shifts layout. */
#rb-mc .rb-mc-loadbar { position: relative; height: 3px; overflow: hidden; background: transparent; }
#rb-mc .rb-mc-loadbar i { display: none; position: absolute; top: 0; bottom: 0; left: 0; width: 0; background: #006DC8; }
#rb-mc .rb-mc-loadbar.on i { display: block; animation: rb-mc-loadfill .45s ease-out forwards; }
@keyframes rb-mc-loadfill { 0% { width: 0; } 80% { width: 92%; } 100% { width: 100%; } }

/* Raptive's DEV-site config renders labelled placeholders ("Raptive ad unit …") into the empty
   in-content slots instead of real ads. Hide the label text on dev only (body.development) —
   real ad iframes are unaffected (font-size doesn't cascade into iframes), prod untouched. */
body.development #rb-mc .rb-mc-adrow .ad-template { font-size: 0 !important; color: transparent !important; }

/* Desktop: notepad icon next to the player name sized to match the position box height. */
@media (min-width: 601px) {
	#rb-mc .rb-mc-cardico { width: 24px; height: 24px; }
}

/* ---- Injury status ----
   Short red abbreviation badge next to an injured player's name (hover -> styled tooltip with the
   full status, body part, and last-updated date); the player card shows abbr + full text. */
/* pointer-events:auto — the name row is click-through (pointer-events:none so the whole row <a>
   catches clicks); re-enable events on the badge so it's the hover hit-target (tooltip + help cursor).
   Clicks still open the card: the delegated row click uses closest('.rb-mc-card'). */
#rb-mc .rb-mc-inj { flex: 0 0 auto; color: #dc2626; font-weight: 700; font-size: 11px; line-height: 1; letter-spacing: .2px; white-space: nowrap; cursor: help; pointer-events: auto; }
.rb-card-inj { color: #dc2626; font-weight: 600; font-size: 13px; line-height: 1.35; margin-top: 3px; }   /* own line, below team · pos · bye */
@media (min-width: 601px) {
	#rb-mc .rb-mc-inj { font-size: 12px; }
}

/* Desktop: bigger text than mobile, but a shorter bar — trim vertical padding + shrink the icon
   circle while the sync arrows grow (overflow the circle for a bold mark). Text stays 19px. */
@media (min-width: 601px) {
	#rb-mc .rb-mc-note-in { padding: 14px 20px; gap: 12px; }
	#rb-mc .rb-mc-note-ic { width: 44px; height: 44px; }   /* bigger circle (desktop) so arrows sit inside */
	#rb-mc .rb-mc-note-ic svg { width: 30px; height: 30px; flex: 0 0 auto; }   /* arrows fit inside the circle w/ ~7px margin */
	#rb-mc .rb-mc-note-h { font-size: 19px; }
	#rb-mc .rb-mc-note-c { font-size: 14.5px; margin-top: 2px; }
	#rb-mc .rb-mc-note-arrow svg { width: 20px; height: 20px; }
}

/* ---- ad-slot preview placeholder (injected by JS on the dev env or with ?adpreview=1) ----
   A plain light-grey box sized to the ad so the slot layout is visible when Raptive doesn't fill.
   Never present for real visitors on prod. Mobile = 320x50, desktop = 728x90. */
#rb-mc .rb-mc-adph {
	box-sizing: border-box;
	display: flex; align-items: center; justify-content: center;
	width: 320px; height: 50px; max-width: calc(100% - 16px);
	margin: auto;   /* centers the box in the slot whether the row is flex OR block flow (iOS-safe) */
	background: #e5e7eb; border: 1px solid #d1d5db;
	color: #9ca3af; font-size: 11px; font-weight: 600; letter-spacing: .5px;
}
#rb-mc .rb-mc-adph::after { content: '320 × 50'; }
@media (min-width: 601px) {
	#rb-mc .rb-mc-adph { width: 728px; height: 90px; font-size: 12px; }
	#rb-mc .rb-mc-adph::after { content: '728 × 90'; }
}
