body {
	background-color: #f8f9fa;
}

/* Lighter placeholder text */
::placeholder {
	color: #c0c0c0 !important;
	opacity: 1;
}

.card-header {
	padding-left: 0.75rem;
	background-color: #343a40;
	color: white;
	font-weight: 600;
}


.card-footer {
	background-color: #e9ecef;
	font-size: 0.85rem;
}

.table-sm td, .table-sm th {
	padding: 0.4rem 0.5rem;
}

.badge-secondary {
	background-color: #6c757d;
}

h1 {
	color: #343a40;
}

nav a {
	color: #007bff;
	text-decoration: none;
}

nav a:hover {
	text-decoration: underline;
}

/* Draft picks - hide borders except between rounds */
.picks-table tbody tr td {
	border-top: none;
	border-bottom: none;
}

.picks-table .round-separator td {
	border-bottom: 1px solid #dee2e6;
}

/* Position count badges */
.position-count {
	font-size: 0.8rem;
	color: #6c757d;
	margin-right: 0.75rem;
}

/* Position group headers in roster - colored by position */
.position-header th {
	font-weight: 600;
	font-size: 0.85rem;
	border-top: 1px solid #dee2e6;
}

.position-header th:first-child {
	text-transform: uppercase;
}

.position-header.pos-QB th { background-color: var(--pos-qb-bg); color: var(--pos-qb-text); }
.position-header.pos-RB th { background-color: var(--pos-rb-bg); color: var(--pos-rb-text); }
.position-header.pos-WR th { background-color: var(--pos-wr-bg); color: var(--pos-wr-text); }
.position-header.pos-TE th { background-color: var(--pos-te-bg); color: var(--pos-te-text); }
.position-header.pos-DL th,
.position-header.pos-LB th,
.position-header.pos-DB th { background-color: var(--pos-idp-bg); color: var(--pos-idp-text); }
.position-header.pos-K th { background-color: var(--pos-k-bg); color: var(--pos-k-text); }

/* Remove borders between roster rows within same position group */
.roster-table tbody tr:not(.position-header) td {
	border-top: none;
	border-bottom: none;
}

/* Budget sections */
.available-row td {
	background-color: #f8f9fa;
	border-top: 1px solid #dee2e6;
}

.recoverable-row td,
.effective-cap-row td {
	color: #6c757d;
	font-size: 0.875rem;
	font-style: italic;
	background-color: #fafafa;
}

.recoverable-row td {
	border-top: 1px solid #e9ecef;
}

/* Consistent left padding for all franchise page tables */
.roster-table th:first-child,
.roster-table td:first-child,
.picks-table th:first-child,
.picks-table td:first-child,
.budget-table th:first-child,
.budget-table td:first-child,
.rfa-table td:first-child,
.history-table td:first-child {
	padding-left: 0.75rem;
}

/* Consistent right padding for last cells */
.roster-table th:last-child,
.roster-table td:last-child,
.picks-table th:last-child,
.picks-table td:last-child,
.budget-table th:last-child,
.budget-table td:last-child,
.rfa-table td:last-child,
.history-table td:last-child {
	padding-right: 0.75rem;
}

/* Include thead headers too */
.roster-table thead th:first-child,
.budget-table thead th:first-child,
.picks-table thead th:first-child {
	padding-left: 0.75rem;
}

/* ===== League Overview Widgets ===== */

/* Calendar Widget */
.calendar-widget .card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.calendar-widget__phase {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	opacity: 0.8;
}

.calendar-widget .card-body {
	padding: 1rem;
}

.calendar-widget__timeline {
	position: relative;
	padding-left: 1.25rem;
}

.calendar-widget__timeline::before {
	content: '';
	position: absolute;
	left: 4px;
	top: 6px;
	bottom: 6px;
	width: 2px;
	background: #dee2e6;
}

.calendar-widget__event {
	position: relative;
	padding: 0.4rem 0;
}

.calendar-widget__event::before {
	content: '';
	position: absolute;
	left: -1.25rem;
	top: 0.65rem;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: white;
	border: 2px solid #6c757d;
}

.calendar-widget__event--next::before {
	background: #007bff;
	border-color: #007bff;
}

.calendar-widget__event-inner {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
}

.calendar-widget__event-name {
	font-size: 0.9rem;
	color: #495057;
}

.calendar-widget__event--next .calendar-widget__event-name {
	font-weight: 600;
	color: #007bff;
}

.calendar-widget__event-when {
	text-align: right;
	font-size: 0.8rem;
}

.calendar-widget__event-relative {
	color: #495057;
	font-weight: 500;
}

.calendar-widget__event--next .calendar-widget__event-relative {
	color: #007bff;
}

.calendar-widget__event-date {
	display: block;
	color: #adb5bd;
	font-size: 0.75rem;
}

/* Franchise Cards */
.franchise-card__body {
	padding: 0.75rem;
}

.franchise-card__stat {
	display: flex;
	justify-content: space-between;
	padding: 0.25rem 0;
	font-size: 0.875rem;
}

.franchise-card__stat + .franchise-card__stat {
	border-top: 1px solid #f0f0f0;
}

.franchise-card__label {
	color: #6c757d;
}

.franchise-card__value {
	font-weight: 500;
	color: #212529;
}

/* Standings Widget */
.standings-widget {
	max-width: 100%;
	overflow: hidden;
}

.standings-widget .card-body {
	padding: 0;
}

.standings-table {
	font-size: 0.85rem;
	table-layout: fixed;
	width: 100%;
}

.standings-table thead th {
	border-top: none;
	font-weight: 600;
	font-size: 0.7rem;
	color: #6c757d;
	text-transform: uppercase;
	padding: 0.3rem 0.4rem;
}

.standings-table tbody td {
	vertical-align: top;
	padding: 0.3rem 0.4rem;
}

.standings-table .col-rank {
	width: 2rem;
}

.standings-table .col-record {
	width: 3rem;
}

.standings-table .col-stat {
	width: 5rem;
}

.standings-table .rank {
	font-weight: 600;
	color: #6c757d;
}

.standings-table .name {
	font-weight: 500;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.standings-table .user-team td {
	font-weight: 700;
	font-style: italic;
}

.standings-table .playoff-stat {
	font-size: 0.8rem;
	color: #6c757d;
}

/* Gold/Silver/Bronze rows for finalized standings */
.standings-table .gold-row td {
	background-color: #fff9e6;
}

.standings-table .silver-row td {
	background-color: #f8f8f8;
}

.standings-table .bronze-row td {
	background-color: #fff5ef;
}

/* Playoff cutoff line below 4th place */
.standings-table .playoff-cutoff td {
	border-bottom: 1px solid #6c757d;
}

/* Schedule Widget */
.schedule-widget .card-body {
	padding: 0.5rem 0.75rem;
}

.schedule-widget .matchup {
	padding: 0.4rem 0;
}

.schedule-widget .matchup + .matchup {
	border-top: 1px solid #eee;
}

.schedule-widget .competitor {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.1rem 0;
}

.schedule-widget .competitor .team-name {
	font-weight: 500;
}

.schedule-widget .competitor .team-record {
	color: #6c757d;
	font-size: 0.9em;
}

.schedule-widget .competitor .seed {
	color: #6c757d;
	font-size: 0.85em;
}

.schedule-widget .competitor .result {
	white-space: nowrap;
}

.schedule-widget .competitor .score {
	font-size: 0.9em;
}

.schedule-widget .competitor .chevron {
	margin-left: 0.3em;
	visibility: hidden;
}

.schedule-widget .competitor.winner .team-name {
	font-weight: 600;
}

.schedule-widget .competitor.winner .score {
	font-weight: 600;
}

.schedule-widget .competitor.winner .chevron {
	visibility: visible;
}

.schedule-widget .competitor.loser {
	color: #6c757d;
}

/* Divider before third place game */
.schedule-widget .game-label.third-place-label {
	margin-top: 0.5rem;
	padding-top: 0.5rem;
	border-top: 1px solid #eee;
}

.schedule-widget .section-label {
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	color: #6c757d;
	letter-spacing: 0.05em;
	padding-bottom: 0.25rem;
	border-bottom: 1px solid #dee2e6;
	margin-bottom: 0.5rem;
}

.schedule-widget .game-label {
	font-size: 0.8rem;
	color: #6c757d;
	font-style: italic;
	text-align: center;
	margin-top: 0.25rem;
}

.schedule-widget .tbd-text {
	color: #6c757d;
	font-style: italic;
}
