/*
 * PinPortal — Public Styles
 * Colors: Teal #1da190 | Red #a11d2e | BG #e6eded | White #f7f7f7
 * Fonts: Pacifico (headings) | Montserrat (body)
 *
 * Fonts are self-hosted from the plugin's fonts/ directory (relative to
 * this file) — no third-party font CDN requests leave the visitor's
 * browser.
 */

@font-face {
	font-family: 'Pacifico';
	src: url('../../fonts/Pacifico-Regular.ttf') format('truetype');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Montserrat';
	src: url('../../fonts/Montserrat-Regular.ttf') format('truetype');
	font-weight: 400 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Montserrat';
	src: url('../../fonts/Montserrat-Bold.ttf') format('truetype');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* ============================================================
   CSS Custom Properties
   ============================================================ */
.bs-widget {
	--bs-teal:        #1da190;
	--bs-teal-dark:   #178074;
	--bs-red:         #a11d2e;
	--bs-red-dark:    #831724;
	--bs-bg:          #e6eded;
	--bs-white:       #f7f7f7;
	--bs-border:      #c8d8d8;
	--bs-text:        #1a1a1a;
	--bs-text-light:  #555;
	--bs-shadow:      0 2px 8px rgba(0,0,0,.12);
	--bs-radius:      8px;
	--bs-font-head:   'Pacifico', cursive;
	--bs-font-body:   'Montserrat', sans-serif;
	--bs-no-tap:      #e8821a;
}

/* ============================================================
   Base Widget Shell
   ============================================================ */
.bs-widget {
	font-family: var(--bs-font-body);
	font-size: 15px;
	color: var(--bs-text);
	margin: 1.5em 0;
	background: var(--bs-white);
	border-radius: var(--bs-radius);
	box-shadow: var(--bs-shadow);
	overflow: hidden;
}

/* ============================================================
   Widget Header
   ============================================================ */
.bs-widget-header {
	background: var(--bs-teal);
	color: #fff;
	padding: 16px 20px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.bs-widget-title {
	font-family: var(--bs-font-head);
	font-size: 1.4em;
	margin: 0;
	color: #fff;
	line-height: 1.2;
	flex: 1;
}

.bs-widget-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: .85em;
}

.bs-league-name {
	background: rgba(255,255,255,.2);
	padding: 3px 10px;
	border-radius: 20px;
	font-weight: 600;
}

.bs-week-badge {
	background: var(--bs-red);
	color: #fff;
	padding: 3px 10px;
	border-radius: 20px;
	font-weight: 700;
	font-size: .9em;
}

.bs-week-date {
	color: rgba(255,255,255,.8);
	font-style: italic;
}

.bs-season-select,
.bs-week-select {
	border: none;
	padding: 3px 10px;
	border-radius: 20px;
	font-family: var(--bs-font-body);
	font-weight: 700;
	font-size: .9em;
	cursor: pointer;
	appearance: auto;
}

.bs-season-select {
	background: rgba(255,255,255,.2);
	color: #fff;
	max-width: 110px;
}

.bs-week-select {
	background: var(--bs-red);
	color: #fff;
	max-width: 200px;
}

.bs-season-select option,
.bs-week-select option {
	background: #fff;
	color: var(--bs-text);
	font-weight: 400;
}

/* ============================================================
   Shared Table Styles
   ============================================================ */
.bs-table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.bs-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9em;
}

.bs-table thead tr {
	background: var(--bs-teal-dark);
	color: #fff;
}

.bs-table th {
	padding: 10px 12px;
	text-align: left;
	font-weight: 600;
	font-size: .85em;
	text-transform: uppercase;
	letter-spacing: .04em;
	white-space: nowrap;
}

.bs-table td {
	padding: 9px 12px;
	border-bottom: 1px solid var(--bs-border);
	vertical-align: middle;
}

.bs-row-even { background: var(--bs-white); }
.bs-row-odd  { background: #edf4f4; }

.bs-table tbody tr:hover {
	background: #d2eded;
	transition: background .15s;
}

.bs-col-center { text-align: center; }

/* ============================================================
   Standings Table
   ============================================================ */
.bs-standings {
	/* no extra styles needed – all handled by shared rules */
}

.bs-col-place  { width: 60px; text-align: center; font-weight: 700; }
.bs-col-num    { width: 44px; text-align: center; }
.bs-table tbody .bs-col-num  { color: var(--bs-text-light); }
.bs-col-team   { font-weight: 600; }
.bs-col-won    { width: 60px; text-align: center; font-weight: 700; }
.bs-col-lost   { width: 60px; text-align: center; }
.bs-table tbody .bs-col-won  { color: var(--bs-teal-dark); }
.bs-table tbody .bs-col-lost { color: var(--bs-red); }
.bs-col-pins   { width: 110px; text-align: right; font-variant-numeric: tabular-nums; }

/* Trophy icons for top 3 */
.bs-trophy {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	vertical-align: middle;
	line-height: 1;
}
.bs-trophy svg {
	width: 100%;
	height: 100%;
	display: block;
	filter: drop-shadow(0 1px 1px rgba(0,0,0,0.18));
}
.bs-trophy-1 { color: #d4af37; } /* gold */
.bs-trophy-2 { color: #a8a8a8; } /* silver */
.bs-trophy-3 { color: #cd7f32; } /* bronze */

/* Top 3 row tints */
.bs-top-1 td { background: #fffbea !important; }
.bs-top-2 td { background: #f5f5f5 !important; }
.bs-top-3 td { background: #fdf3ec !important; }

/* ============================================================
   Weekly Scores / Matchups
   ============================================================ */
.bs-matchups {
	padding: 16px;
	display: grid;
	gap: 14px;
}

.bs-matchup {
	border: 1px solid var(--bs-border);
	border-radius: var(--bs-radius);
	overflow: hidden;
}

.bs-matchup-lane {
	background: var(--bs-teal-dark);
	color: #fff;
	font-size: .8em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	padding: 5px 14px;
}

.bs-matchup-body {
	display: flex;
	align-items: stretch;
}

.bs-team-score {
	flex: 1;
	padding: 14px 16px;
	background: var(--bs-white);
	display: flex;
	flex-direction: column;
	gap: 6px;
	transition: background .15s;
}

.bs-team-score.bs-team-winner {
	background: #eaf6f4;
	border-left: 3px solid var(--bs-teal);
}

.bs-team-score:last-child.bs-team-winner {
	border-left: none;
	border-right: 3px solid var(--bs-teal);
}

.bs-team-name {
	font-weight: 700;
	font-size: .95em;
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.bs-win-badge {
	background: var(--bs-teal);
	color: #fff;
	font-size: .7em;
	padding: 2px 7px;
	border-radius: 10px;
	font-weight: 700;
	letter-spacing: .04em;
}

.bs-game-scores {
	display: flex;
	gap: 8px;
}

.bs-game {
	background: var(--bs-bg);
	border-radius: 4px;
	padding: 4px 10px;
	font-size: .9em;
	font-variant-numeric: tabular-nums;
	font-weight: 500;
}

.bs-series-total {
	display: flex;
	align-items: baseline;
	gap: 6px;
}

.bs-series-label {
	font-size: .75em;
	color: var(--bs-text-light);
	text-transform: uppercase;
	letter-spacing: .04em;
}

.bs-series-value {
	font-size: 1.25em;
	font-weight: 700;
	color: var(--bs-teal-dark);
	font-variant-numeric: tabular-nums;
}

.bs-points-won {
	font-size: .8em;
	color: var(--bs-text-light);
	font-weight: 600;
}

.bs-vs-divider {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 8px;
	color: var(--bs-text-light);
	font-weight: 700;
	font-size: .85em;
	background: var(--bs-bg);
	min-width: 34px;
}

/* ============================================================
   Rosters
   ============================================================ */
.bs-teams-grid {
	padding: 16px;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 16px;
}

.bs-team-card {
	border: 1px solid var(--bs-border);
	border-radius: var(--bs-radius);
	overflow: hidden;
	background: var(--bs-white);
}

.bs-team-card-header {
	background: var(--bs-teal);
	color: #fff;
	padding: 10px 14px;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.bs-team-number {
	background: rgba(255,255,255,.25);
	border-radius: 50%;
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: .85em;
	flex-shrink: 0;
}

.bs-team-card-name {
	font-family: var(--bs-font-body);
	font-weight: 700;
	font-size: .95em;
	margin: 0;
	color: #fff;
	flex: 1;
}

.bs-team-stats {
	display: flex;
	gap: 12px;
	margin-left: auto;
}

.bs-team-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	font-size: .75em;
}

.bs-stat-label {
	color: rgba(255,255,255,.7);
	text-transform: uppercase;
	letter-spacing: .04em;
	font-size: .85em;
}

.bs-stat-value {
	font-weight: 700;
	font-size: 1.1em;
}

.bs-roster-table { font-size: .88em; }

.bs-bk-avg {
	color: var(--bs-text-light);
	font-style: italic;
	cursor: help;
}

.bs-roster-absent td { opacity: .55; }
.bs-roster-sub td:first-child { font-style: italic; }

.bs-badge-absent,
.bs-badge-sub {
	display: inline-block;
	font-size: .7em;
	font-weight: 600;
	padding: 1px 6px;
	border-radius: 3px;
	margin-left: 6px;
	vertical-align: middle;
	text-transform: uppercase;
	letter-spacing: .5px;
}
.bs-badge-absent {
	background: #f0f0f1;
	color: #888;
}
.bs-badge-sub {
	background: #e8f5e9;
	color: #2e7d32;
}

/* ============================================================
   High Scores
   ============================================================ */
.bs-hs-section {
	padding: 16px 20px 8px;
	border-top: 1px solid var(--bs-border);
}

.bs-hs-section:first-of-type {
	border-top: none;
}

.bs-hs-section-title {
	font-family: var(--bs-font-head);
	color: var(--bs-teal-dark);
	font-size: 1em;
	margin: 0 0 14px;
	padding-bottom: 6px;
	border-bottom: 2px solid var(--bs-teal);
	display: inline-block;
}

.bs-hs-columns {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 16px;
}

.bs-hs-gender-title {
	font-size: .85em;
	font-weight: 700;
	color: var(--bs-teal-dark);
	text-transform: uppercase;
	letter-spacing: .05em;
	margin: 14px 0 6px;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--bs-border);
}

.bs-hs-col-title {
	font-weight: 700;
	font-size: .8em;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--bs-text-light);
	margin: 0 0 8px;
}

.bs-hs-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.bs-hs-entry {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 5px 8px;
	border-radius: 4px;
	background: var(--bs-bg);
	font-size: .88em;
}

.bs-hs-entry.bs-hs-top {
	font-weight: 700;
}

/* Compact trophy sizing inside the high-scores list */
.bs-hs-entry .bs-trophy {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

.bs-hs-score {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	min-width: 40px;
	color: var(--bs-teal-dark);
}

.bs-hs-name {
	flex: 1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ============================================================
   Lane Assignments
   ============================================================ */
.bs-la-week {
	padding: 16px 20px;
	border-top: 1px solid var(--bs-border);
}

.bs-la-week:first-child {
	border-top: none;
}

.bs-la-week-header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}

.bs-la-date {
	color: var(--bs-text-light);
	font-size: .9em;
}

.bs-la-predicted {
	display: inline-block;
	padding: 2px 8px;
	margin-left: 8px;
	font-size: .75em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .5px;
	background: #fff8e5;
	color: #856404;
	border: 1px solid #dba617;
	border-radius: 10px;
	cursor: help;
}

.bs-la-table .bs-col-center { text-align: center; }
.bs-vs { color: var(--bs-text-light); font-weight: 700; }

.bs-la-row-bye td { opacity: .6; }

.bs-bye-badge {
	display: inline-block;
	background: var(--bs-border);
	color: var(--bs-text-light);
	font-size: .72em;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 2px 8px;
	border-radius: 10px;
	border: 1px dashed var(--bs-text-light);
}

.bs-team-bye {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 80px;
}

.bs-bye-word {
	font-family: var(--bs-font-head);
	font-size: 2.4em;
	color: var(--bs-text-light);
	opacity: .55;
	line-height: 1;
	text-align: center;
}

.bs-team-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--bs-teal);
	color: #fff;
	font-size: .75em;
	font-weight: 700;
	min-width: 22px;
	height: 22px;
	border-radius: 11px;
	padding: 0 4px;
	margin-right: 5px;
}

/* ============================================================
   League Summary — Tabs  ([bowling_league] shortcode)
   ============================================================ */
.bs-summary .bs-widget-header {
	flex-wrap: wrap;
}

.bs-format-badge {
	background: rgba(255,255,255,.15);
	border: 1px solid rgba(255,255,255,.4);
	color: #fff;
	padding: 3px 10px;
	border-radius: 20px;
	font-size: .75em;
	font-weight: 600;
	letter-spacing: .03em;
	white-space: nowrap;
}

/* Tint variations per format for the league list (light background context) */
.bs-league-list .bs-format-badge {
	background: var(--bs-bg);
	border-color: var(--bs-border);
	color: var(--bs-text-light);
	font-size: .72em;
	padding: 2px 6px;
}

/* No-Tap league — distinct amber accent so it reads as a scoring difference,
   not just another demographic tag. Overrides both the dark-header base style
   and the light league-list variant (equal specificity, defined later). */
.bs-format-badge.bs-no-tap-badge {
	background: var(--bs-no-tap);
	border-color: var(--bs-no-tap);
	color: #fff;
}

/* Stack type + size badges vertically so the column stays narrow */
.bs-format-stack {
	display: inline-flex;
	flex-direction: column;
	gap: 3px;
	align-items: flex-start;
}

.bs-season-badge {
	background: rgba(255,255,255,.15);
	border: 1px solid rgba(255,255,255,.4);
	color: #fff;
	padding: 3px 10px;
	border-radius: 20px;
	font-size: .8em;
	font-weight: 600;
	letter-spacing: .03em;
}

.bs-tab-nav {
	display: flex;
	flex-wrap: wrap;
	background: var(--bs-teal-dark);
	gap: 2px;
	padding: 0 12px;
}

.bs-tab-label {
	background: transparent;
	border: none;
	color: rgba(255,255,255,.75);
	cursor: pointer;
	font-family: var(--bs-font-body);
	font-size: .82em;
	font-weight: 600;
	letter-spacing: .04em;
	padding: 10px 16px;
	text-transform: uppercase;
	transition: color .15s, box-shadow .15s;
	position: relative;
}

.bs-tab-label:hover {
	color: #fff;
}

.bs-tab-label.bs-tab-active {
	color: #fff;
	box-shadow: inset 0 -3px 0 #fff;
}

.bs-tab-body {
	/* panels render inside here */
}

.bs-tab-panel {
	/* display toggled by JS */
}

/* ============================================================
   Team name links (navigate to roster tab)
   ============================================================ */
.bs-team-link {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px dotted currentColor;
	cursor: pointer;
}

.bs-team-link:hover {
	color: var(--bs-teal);
	border-bottom-style: solid;
}

/* ============================================================
   Top Bowlers
   ============================================================ */
.bs-col-rank {
	width: 44px;
	text-align: center;
	font-weight: 700;
	color: var(--bs-text-light);
}

.bs-top-bowlers-table tbody .bs-col-league {
	font-size: .88em;
	color: var(--bs-text-light);
}

.bs-league-label {
	white-space: nowrap;
}

.bs-bowler-name {
	font-weight: 600;
}

.bs-top-bowlers-table tbody .bs-col-sort-key {
	font-weight: 700;
	color: var(--bs-teal-dark);
}

/* Responsive column hiding */
@media (max-width: 600px) {
	.bs-col-hide-sm { display: none; }
}
@media (max-width: 440px) {
	.bs-col-hide-xs { display: none; }
}

/* ============================================================
   No Data Message
   ============================================================ */
.bs-no-data {
	padding: 20px;
	color: var(--bs-text-light);
	font-style: italic;
	text-align: center;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 640px) {
	.bs-widget-header    { padding: 12px 14px; }
	.bs-widget-title     { font-size: 1.15em; }
	.bs-matchup-body     { flex-direction: column; }
	.bs-teams-grid       { grid-template-columns: 1fr; }
	.bs-hs-columns       { grid-template-columns: repeat(2, 1fr); }
	.bs-team-card-header { flex-wrap: wrap; }

	/* Tab nav — horizontal scroll strip instead of wrapping */
	.bs-tab-nav {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding: 0 6px;
		gap: 0;
	}
	.bs-tab-nav::-webkit-scrollbar { display: none; }
	.bs-tab-label {
		white-space: nowrap;
		flex-shrink: 0;
		padding: 10px 12px;
		font-size: .78em;
	}

	/* VS divider — thin horizontal rule between stacked teams */
	.bs-vs-divider {
		flex-direction: row;
		padding: 4px 12px;
		min-width: unset;
		font-size: .75em;
		border-top: 1px solid var(--bs-border);
		border-bottom: 1px solid var(--bs-border);
	}

	/* League list — card layout instead of wide table */
	.bs-league-list .bs-table-scroll { overflow-x: visible; }
	.bs-league-list-table,
	.bs-league-list-table tbody { display: block; }
	.bs-league-list-table thead { display: none; }
	.bs-league-list-table tr {
		display: block;
		border: 1px solid var(--bs-border);
		border-radius: 6px;
		margin-bottom: 10px;
		padding: 12px 14px;
		background: var(--bs-white);
	}
	.bs-league-list-table td {
		display: block;
		border: none;
		padding: 2px 0;
		font-size: .9em;
	}
	.bs-league-list-name {
		font-size: 1.05em;
		font-weight: 700;
		padding-bottom: 6px !important;
		border-bottom: 1px solid var(--bs-border);
		margin-bottom: 4px;
	}
	.bs-league-list-name a {
		color: var(--bs-teal);
		text-decoration: none;
	}
}

/* ============================================================
   Extra-small screens (≤ 480px)
   ============================================================ */
@media (max-width: 480px) {

	/* Standings — hide team # column (redundant on small screens) */
	.bs-standings-table th.bs-col-num,
	.bs-standings-table td.bs-col-num { display: none; }

	/* Tighter table cells */
	.bs-table th { padding: 8px 8px; }
	.bs-table td { padding: 7px 8px; }

	/* Tab labels — smaller still so all 6 fit without too much scrolling */
	.bs-tab-label { padding: 9px 10px; font-size: .74em; }

	/* Lane assignments — smaller team name font to reduce need to scroll */
	.bs-la-table td { font-size: .82em; }

	/* Widget meta badges — tighten gap */
	.bs-widget-meta { gap: 5px; }
}

@media (max-width: 400px) {
	.bs-hs-columns { grid-template-columns: 1fr; }

	/* Rosters — hide Games column on smallest screens */
	.bs-roster-table th:last-child,
	.bs-roster-table td:last-child { display: none; }
}

/* ============================================================
   Bowler Profile — trading card (Pro)
   ============================================================ */
.bs-bowler-card {
	max-width: 680px;
	margin: 2em auto;
	border-radius: 18px;
	overflow: hidden;
	background: var(--bs-white);
	box-shadow: 0 12px 40px rgba(0, 0, 0, .22);
	border: 1px solid var(--bs-border);
}
.bs-card-top {
	background: linear-gradient(150deg, var(--bs-card-bg, #0d1413) 0%, var(--bs-card-bg2, #16302c) 70%, var(--bs-card-bg3, #1b3f39) 100%);
	color: var(--bs-card-text, #eef4f3);
	text-align: center;
	padding: 34px 24px 26px;
}
.bs-card-photo {
	width: 152px;
	height: 152px;
	margin: 0 auto 14px;
	border-radius: 14px;
	background-color: var(--bs-card-photo-bg, #223734);
	background-size: cover;
	background-position: center;
	border: 4px solid var(--bs-card-accent, var(--bs-teal));
	box-shadow: 0 6px 18px rgba(0, 0, 0, .45);
}
.bs-card-name {
	margin: 0;
	font-family: var(--bs-font-body);
	font-weight: 800;
	font-size: 2em;
	letter-spacing: .01em;
	color: #fff;
}
.bs-card-nick {
	margin: 2px 0 0;
	color: var(--bs-card-accent-lt, var(--bs-teal));
	font-family: var(--bs-font-head);
	font-size: 1.15em;
}
.bs-card-chips { margin: 12px 0 0; }
.bs-card-chip {
	display: inline-block;
	margin: 3px 3px 0;
	padding: 4px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	color: var(--bs-card-text, #cfe0dd);
	font-size: .8em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.bs-chip-gold {
	background: var(--bs-card-gold, #e8c766);
	color: #4a3a08;
}

.bs-card-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	background: var(--bs-card-band, #101b1a);
	border-top: 1px solid rgba(255, 255, 255, .08);
}
.bs-card-stat {
	text-align: center;
	padding: 18px 8px 16px;
	border-right: 1px solid rgba(255, 255, 255, .07);
}
.bs-card-stat:last-child { border-right: none; }
.bs-stat-number {
	display: block;
	font-size: 2.4em;
	font-weight: 800;
	line-height: 1;
	color: var(--bs-card-accent-lt, var(--bs-teal));
	font-variant-numeric: tabular-nums;
}
.bs-stat-label {
	display: block;
	margin-top: 6px;
	font-size: .68em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--bs-card-muted, #7e9793);
}
.bs-stat-label em { font-style: normal; color: var(--bs-no-tap); }

.bs-card-body { padding: 10px 22px 22px; }
.bs-card-section {
	margin: 18px 0 6px;
	font-family: var(--bs-font-body);
	font-weight: 800;
	font-size: .82em;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--bs-text-light);
}
.bs-card-league {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 12px 14px;
	margin-bottom: 8px;
	background: var(--bs-bg);
	border-radius: 12px;
}
.bs-card-league-info { min-width: 0; }
.bs-card-league-name {
	display: block;
	font-weight: 800;
	font-size: 1.05em;
	color: var(--bs-text);
	text-decoration: none;
}
a.bs-card-league-name:hover { color: var(--bs-teal-dark); }
.bs-card-league-sub {
	display: block;
	margin-top: 2px;
	font-size: .82em;
	color: var(--bs-text-light);
}
.bs-card-league-avg {
	text-align: center;
	flex-shrink: 0;
	min-width: 64px;
}
.bs-avg-number {
	display: block;
	font-size: 1.9em;
	font-weight: 800;
	line-height: 1;
	color: var(--bs-teal-dark);
	font-variant-numeric: tabular-nums;
}
.bs-avg-gold { color: #b8860b; }
.bs-avg-label {
	display: block;
	font-size: .62em;
	font-weight: 700;
	letter-spacing: .1em;
	color: var(--bs-text-light);
}
.bs-card-history { background: transparent; border: 1px dashed var(--bs-border); }

a.bs-bowler-link { text-decoration: none; border-bottom: 1px dotted currentColor; }
a.bs-bowler-link:hover { border-bottom-style: solid; }

/* Hide the theme's (now empty) page-title band on bowler pages. */
.bs-bowler-page .entry-header,
.bs-bowler-page .entry-hero,
.bs-bowler-page .page-title,
.bs-bowler-page h1.entry-title { display: none; }

@media (max-width: 480px) {
	.bs-card-name { font-size: 1.5em; }
	.bs-stat-number { font-size: 1.8em; }
}

/* Division subheaders in standings (division leagues) */
.bs-standings-table .bs-division-row td {
	background: var(--bs-teal-dark);
	color: #fff;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: .82em;
	padding: 6px 12px;
}

/* Provenance footnote under standings computed by PinPortal (no sheet) */
.bs-standings-source {
	margin: 8px 12px 12px;
	font-size: .78em;
	font-style: italic;
	opacity: .65;
}

/* Season Milestones board */
.bs-milestone-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	padding: 4px 0;
}
@media (max-width: 640px) {
	.bs-milestone-columns { grid-template-columns: 1fr; }
}
.bs-milestone-heading {
	margin: 10px 12px 4px;
	font-size: .9em;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--bs-teal-dark);
}
.bs-milestone-score { font-weight: 800; }
.bs-perfect-badge {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 7px;
	border-radius: 10px;
	background: #e8c766;
	color: #4a3a08;
	font-size: .62em;
	font-weight: 800;
	letter-spacing: .06em;
	vertical-align: middle;
}
.bs-milestone-perfect .bs-milestone-score { color: #b8912f; }

/* Beat Your Average board */
.bs-oa-over { font-weight: 800; color: var(--bs-teal-dark); }
.bs-oa-games { font-size: .8em; opacity: .6; }

/* "Is this you?" claim link on the bowler card */
.bs-bowler-card .bs-card-claim {
	text-align: center;
	padding: 10px 0 2px;
	font-size: .8em;
}
.bs-bowler-card .bs-card-claim a {
	color: var(--bs-card-muted);
	text-decoration: none;
	border-bottom: 1px dotted var(--bs-card-muted);
}
.bs-bowler-card .bs-card-claim a:hover { color: var(--bs-card-accent-lt); }
