/* ─────────────────────────────────────────
   iRacing Racing Stats — Frontend Styles
   ───────────────────────────────────────── */

:root {
	--ir-bg:          #0f1117;
	--ir-bg-card:     #1a1e27;
	--ir-bg-card-alt: #12151e;
	--ir-border:      #2a2f3b;
	--ir-text:        #e8eaed;
	--ir-text-muted:  #8b95a5;
	--ir-accent:      #4a9eff;
	--ir-green:       #2ecc71;
	--ir-red:         #e74c3c;
	--ir-radius:      10px;
	--ir-gap:         16px;
}

.iracing-dashboard {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	background: var(--ir-bg);
	color: var(--ir-text);
	border-radius: var(--ir-radius);
	padding: 28px;
	max-width: 960px;
	margin: 0 auto;
	box-sizing: border-box;
}

.iracing-dashboard *,
.iracing-dashboard *::before,
.iracing-dashboard *::after {
	box-sizing: inherit;
}

/* ── Header ── */

.iracing-header {
	margin-bottom: 28px;
}

.iracing-header__name {
	font-size: clamp(22px, 4vw, 32px);
	font-weight: 700;
	letter-spacing: -0.5px;
	margin-bottom: 10px;
}

.iracing-header__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 8px;
}

.iracing-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 12px;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.3px;
}

.iracing-badge--license {
	background: color-mix(in srgb, var(--license-color) 20%, transparent);
	color: var(--license-color);
	border: 1px solid color-mix(in srgb, var(--license-color) 50%, transparent);
}

.iracing-badge--irating {
	background: color-mix(in srgb, var(--ir-accent) 15%, transparent);
	color: var(--ir-accent);
	border: 1px solid color-mix(in srgb, var(--ir-accent) 40%, transparent);
}

.iracing-header__since {
	font-size: 13px;
	color: var(--ir-text-muted);
}

/* ── Career Stat Cards ── */

.iracing-stats-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--ir-gap);
	margin-bottom: 28px;
}

@media ( max-width: 560px ) {
	.iracing-stats-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.iracing-stat-card {
	background: var(--ir-bg-card);
	border: 1px solid var(--ir-border);
	border-radius: var(--ir-radius);
	padding: 18px 16px;
	text-align: center;
	transition: border-color 0.2s;
}

.iracing-stat-card:hover {
	border-color: var(--ir-accent);
}

.iracing-stat-card__value {
	font-size: clamp(20px, 4vw, 28px);
	font-weight: 700;
	color: var(--ir-text);
	line-height: 1;
	margin-bottom: 6px;
}

.iracing-stat-card__label {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.8px;
	color: var(--ir-text-muted);
}

/* ── Sections ── */

.iracing-section {
	margin-bottom: 28px;
}

.iracing-section__title {
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--ir-text-muted);
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--ir-border);
}

/* ── iRating Chart ── */

.iracing-chart-wrap {
	background: var(--ir-bg-card);
	border: 1px solid var(--ir-border);
	border-radius: var(--ir-radius);
	padding: 20px;
	height: 240px;
	position: relative;
}

.iracing-chart-wrap canvas {
	width: 100% !important;
	height: 100% !important;
}

/* ── Current Season ── */

.iracing-season {
	background: var(--ir-bg-card);
	border: 1px solid var(--ir-border);
	border-radius: var(--ir-radius);
	padding: 18px 20px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	justify-content: space-between;
}

.iracing-season__series {
	font-size: 16px;
	font-weight: 600;
	color: var(--ir-text);
}

.iracing-season__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	font-size: 14px;
	color: var(--ir-text-muted);
}

.iracing-season__stats strong {
	color: var(--ir-text);
}

/* ── Recent Races Table ── */

.iracing-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--ir-border);
	border-radius: var(--ir-radius);
}

.iracing-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.iracing-table th,
.iracing-table td {
	padding: 12px 14px;
	text-align: left;
	white-space: nowrap;
}

.iracing-table thead {
	background: var(--ir-bg-card-alt);
}

.iracing-table th {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.8px;
	color: var(--ir-text-muted);
}

.iracing-table tbody tr {
	border-top: 1px solid var(--ir-border);
	transition: background 0.15s;
}

.iracing-table tbody tr:hover {
	background: var(--ir-bg-card);
}

.iracing-irating-change {
	font-weight: 600;
	font-size: 13px;
}

.iracing-irating--up {
	color: var(--ir-green);
}

.iracing-irating--down {
	color: var(--ir-red);
}

/* ── Lap time display ── */

.iracing-laptime {
	font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
	font-size: 13px;
	color: var(--ir-accent);
	letter-spacing: 0.5px;
}

/* ── Admin notice (editor/misconfigured) ── */

.iracing-stats-notice {
	padding: 12px 16px;
	background: #1e2330;
	border-left: 4px solid var(--ir-accent);
	border-radius: 4px;
	font-size: 14px;
	color: var(--ir-text-muted);
}

.iracing-stats-notice a {
	color: var(--ir-accent);
}

/* ── Cars Grid ── */

.iracing-cars-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ir-gap);
}

@media ( max-width: 560px ) {
  .iracing-cars-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.iracing-car-card {
  background: var(--ir-bg-card);
  border: 1px solid var(--ir-border);
  border-radius: var(--ir-radius);
  padding: 16px;
  transition: border-color 0.2s;
}

.iracing-car-card:hover {
  border-color: var(--ir-accent);
}

.iracing-car-card__name {
  font-size: 14px;
  font-weight: 600;
  color: var(--ir-text);
  margin-bottom: 6px;
  line-height: 1.3;
}

.iracing-car-card__meta {
  font-size: 12px;
  color: var(--ir-text-muted);
  line-height: 1.6;
}
