/**
 * NFL Greece — FBS Standings — frontend styles
 *
 * Σταθερά ανοιχτό θέμα: δεν υπάρχει μπλοκ prefers-color-scheme, ώστε το
 * widget να δείχνει το ίδιο ανεξάρτητα από τις ρυθμίσεις του επισκέπτη.
 */

.fbsgr {
	--fbsgr-bg: #ffffff;
	--fbsgr-surface: #f7f8fa;
	--fbsgr-border: #e2e5ea;
	--fbsgr-text: #14181f;
	--fbsgr-muted: #6b7280;
	--fbsgr-accent: #0b6bcb;
	--fbsgr-radius: 10px;

	background: var(--fbsgr-bg);
	color: var(--fbsgr-text);
	font-size: 15px;
	line-height: 1.45;
}

.fbsgr__title {
	margin: 0 0 0.75em;
	color: var(--fbsgr-text);
	font-size: 1.15em;
	font-weight: 700;
	letter-spacing: 0.01em;
}

.fbsgr__empty {
	color: var(--fbsgr-muted);
	font-style: italic;
}

.fbsgr__credit {
	margin: 0.9em 0 0;
	color: var(--fbsgr-muted);
	font-size: 0.78em;
	text-align: right;
}

.fbsgr--align-center .fbsgr__credit,
.fbsgr--align-all .fbsgr__credit {
	text-align: center;
}

/* --- Πίνακας --- */

/* Κύλιση αντί για ξεχείλισμα της σελίδας σε στενές οθόνες. */
.fbsgr-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.fbsgr-table {
	width: 100%;
	border-collapse: collapse;
	background: var(--fbsgr-bg);
}

.fbsgr-table th,
.fbsgr-table td {
	padding: 9px 10px;
	border-bottom: 1px solid var(--fbsgr-border);
	text-align: left;
	vertical-align: middle;
}

.fbsgr-table thead th {
	background: #f4f6f8;
	font-size: 0.78em;
	letter-spacing: 0.04em;
	color: var(--fbsgr-muted);
}

.fbsgr-table__logo {
	width: 20px;
	height: 20px;
	object-fit: contain;
	vertical-align: -4px;
}

/* --- Tabs AP / CFP (μόνο CSS) ---
   Radio + label + panel ως αδέρφια σε flex container: τα labels γίνονται
   κουμπιά σε μία σειρά και το panel πηγαίνει από κάτω σε πλήρες πλάτος. */
.fbsgr-st__tabset {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
}

/* Τα radio οδηγούν την εναλλαγή· κρυφά αλλά εστιάσιμα από πληκτρολόγιο. */
.fbsgr-st__radio {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	border: 0;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.fbsgr-st__tab {
	order: 1;
	padding: 6px 16px;
	border: 1px solid var(--fbsgr-border);
	border-radius: 999px;
	background: var(--fbsgr-surface);
	color: var(--fbsgr-muted);
	cursor: pointer;
	font-size: 0.84em;
	font-weight: 600;
	letter-spacing: 0.02em;
	transition: background-color .15s, color .15s;
}

.fbsgr-st__tab:hover {
	color: var(--fbsgr-text);
}

.fbsgr-st__panel {
	display: none;
	order: 2;
	flex: 0 0 100%;
	min-width: 0;
	margin-top: 10px;
}

.fbsgr-st__radio:checked + .fbsgr-st__tab {
	border-color: var(--fbsgr-text);
	background: var(--fbsgr-text);
	color: var(--fbsgr-bg);
}

.fbsgr-st__radio:checked + .fbsgr-st__tab + .fbsgr-st__panel {
	display: block;
}

.fbsgr-st__radio:focus-visible + .fbsgr-st__tab {
	outline: 2px solid var(--fbsgr-accent);
	outline-offset: 2px;
}

/* Σταθερή διάταξη: τα πλάτη στηλών δεν αλλάζουν με το περιεχόμενο. */
.fbsgr-st__table {
	table-layout: fixed;
}

.fbsgr-st__col--rank { width: 2.6em; }

.fbsgr-st__col--overall { width: 4.6em; }
.fbsgr-st__col--last   { width: 13em; }
.fbsgr-st__col--next   { width: 11em; }
.fbsgr-st__col--pf,
.fbsgr-st__col--pa     { width: 3.4em; }
.fbsgr-st__col--diff   { width: 4em; }
.fbsgr-st__col--streak { width: 4em; }

/* Με πλήρεις τίτλους οι κεφαλίδες αναδιπλώνονται· το anywhere επιτρέπει να
   σπάσει και μία μεγάλη λέξη («CONFERENCE») αντί να κοπεί με αποσιωπητικά. */
.fbsgr-st__table--full-labels thead th {
	white-space: normal;
	overflow-wrap: anywhere;
	line-height: 1.2;
}

.fbsgr-st__table--full-labels .fbsgr-st__col--overall { width: 5.8em; }
.fbsgr-st__table--full-labels .fbsgr-st__col--pf,
.fbsgr-st__table--full-labels .fbsgr-st__col--pa      { width: 4.8em; }
.fbsgr-st__table--full-labels .fbsgr-st__col--diff    { width: 5.4em; }
.fbsgr-st__table--full-labels .fbsgr-st__col--streak  { width: 4.2em; }
.fbsgr-st__table--full-labels .fbsgr-st__col--last    { width: 13em; }
.fbsgr-st__table--full-labels .fbsgr-st__col--next    { width: 11em; }

.fbsgr-st__table th,
.fbsgr-st__table td {
	padding: 7px 5px;
	font-size: 0.92em;
	text-align: right;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.fbsgr-st__table thead th {
	font-size: 0.74em;
}

/* Οι κεφαλίδες είναι abbr με πλήρη ονομασία σε tooltip. */
.fbsgr-st__table thead abbr {
	border-bottom: 0;
	cursor: help;
	text-decoration: none;
}

/* Το συνολικό ρεκόρ (νίκες-ήττες) είναι το βασικό νούμερο της γραμμής. */
.fbsgr-st__rec {
	color: var(--fbsgr-text);
	font-weight: 700;
}

.fbsgr-st__table th:first-child,
.fbsgr-st__table td:first-child,
.fbsgr-st__table .fbsgr-st__team {
	text-align: left;
}

/* --- Υβριδική στοίχιση (προεπιλογή) ---
   Στατιστικά κεντραρισμένα, ονόματα ομάδων αριστερά: έτσι τα λογότυπα
   πέφτουν σε ευθεία στήλη. */
.fbsgr--align-center .fbsgr-st__table th,
.fbsgr--align-center .fbsgr-st__table td {
	text-align: center;
}

.fbsgr--align-center .fbsgr-st__table th:first-child,
.fbsgr--align-center .fbsgr-st__table td:first-child,
.fbsgr--align-center .fbsgr-st__table .fbsgr-st__team {
	text-align: left;
}

/* Ορισμένο πλάτος στη στήλη ομάδας αντί να απορροφά όλο τον χώρο, αλλιώς
   ανοίγει μεγάλο κενό ανάμεσα στο όνομα και τους αριθμούς. */
.fbsgr--align-center .fbsgr-st__col--team {
	width: 12em;
}

.fbsgr--align-center .fbsgr-st__table--full-labels .fbsgr-st__col--team {
	width: 10em;
}

/* --- Πλήρως κεντραρισμένο, αν το προτιμάτε --- */
.fbsgr--align-all .fbsgr-st__table th,
.fbsgr--align-all .fbsgr-st__table td,
.fbsgr--align-all .fbsgr-st__table th:first-child,
.fbsgr--align-all .fbsgr-st__table td:first-child,
.fbsgr--align-all .fbsgr-st__table .fbsgr-st__team {
	text-align: center;
}

.fbsgr--align-all .fbsgr-st__col--team {
	width: 12em;
}

/* Η λωρίδα χρώματος μένει στην άκρη, οπότε εξισορροπούμε το padding. */
.fbsgr--align-all .fbsgr-st__table tr.has-team-color .fbsgr-st__team {
	padding-left: 11px;
	padding-right: 11px;
}

/* Τα ονόματα αναδιπλώνονται αντί να κόβονται με αποσιωπητικά. Χρειάζεται
   μεγαλύτερη specificity από το «.fbsgr-st__table td { nowrap }». */
.fbsgr-st__table td.fbsgr-st__team {
	position: relative;
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
}

.fbsgr-st__table tbody td:not(.fbsgr-st__team) {
	width: 1%;
}

/* Λεπτή λωρίδα με το χρώμα της ομάδας (αν το ESPN το δίνει). */
.fbsgr-st__table tr.has-team-color .fbsgr-st__team {
	box-shadow: inset 3px 0 0 var(--fbsgr-row-bar, transparent);
	padding-left: 11px;
}

.fbsgr-st__name {
	font-weight: 600;
}

a.fbsgr-st__name {
	color: inherit;
	text-decoration: none;
}

a.fbsgr-st__name:hover,
a.fbsgr-st__name:focus-visible {
	color: var(--fbsgr-accent);
	text-decoration: underline;
}

.fbsgr-st__note {
	margin-left: 4px;
	color: var(--fbsgr-muted);
	border-bottom: 0;
	cursor: help;
	text-decoration: none;
}

.fbsgr-st__diff.is-pos {
	color: #1a7f4b;
}

.fbsgr-st__diff.is-neg {
	color: #b23b32;
}

/* Χρωματισμός των πρώτων γραμμών (παράμετρος highlight). Το χρώμα αλλάζει
   με την παράμετρο highlightcolor. */
.fbsgr-st__table tr.is-top > td {
	background: var(--fbsgr-highlight, #eef4fb);
}

.fbsgr-st__table tr.is-top .fbsgr-st__name {
	font-weight: 700;
}

@media (max-width: 600px) {
	/* Με 8-9 στήλες η μορφή «καρτέλας» θα έδινε εννέα γραμμές ανά ομάδα.
	   Κρατάμε κανονικό πίνακα με οριζόντια κύλιση. */
	.fbsgr-table-wrap {
		overflow-x: auto;
	}

	.fbsgr-st__table {
		min-width: 900px;
	}

	.fbsgr-st__table .fbsgr-st__team {
		white-space: nowrap;
	}
}

/* --- Στήλη θέσης AP και στοίχιση ομάδας ---
   Η στήλη ομάδας είναι δεύτερη, οπότε δεν αρκεί το :first-child. Οι κανόνες
   έχουν αρκετή specificity για να υπερισχύουν των κανόνων στοίχισης παραπάνω. */
.fbsgr .fbsgr-st__table td.fbsgr-st__rank,
.fbsgr .fbsgr-st__table th.fbsgr-st__th--rank {
	text-align: center;
}

.fbsgr .fbsgr-st__table td.fbsgr-st__rank {
	color: var(--fbsgr-muted);
	font-weight: 700;
}

.fbsgr:not(.fbsgr--align-all) .fbsgr-st__table td.fbsgr-st__team,
.fbsgr:not(.fbsgr--align-all) .fbsgr-st__table th.fbsgr-st__th--team {
	text-align: left;
}

/* --- Αγώνες προηγούμενης / επόμενης εβδομάδας ---
   Αριστερή στοίχιση και αναδίπλωση: τα ονόματα αντιπάλων με κατάταξη
   («@ #19 Texas») είναι μεγάλα και δεν πρέπει να κόβονται. */
.fbsgr .fbsgr-st__table td.fbsgr-st__game,
.fbsgr .fbsgr-st__table th.fbsgr-st__th--last,
.fbsgr .fbsgr-st__table th.fbsgr-st__th--next {
	text-align: left;
}

.fbsgr .fbsgr-st__table td.fbsgr-st__game {
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
	font-size: 0.88em;
	line-height: 1.3;
}

.fbsgr-st__res {
	font-weight: 700;
	white-space: nowrap;
}

.fbsgr-st__res.is-win {
	color: #1a7f4b;
}

.fbsgr-st__res.is-loss {
	color: #b23b32;
}
