/* RosterPro — public front-end styles: Team Roster Card, Player Bio
 * Page (the "sports card"), and the [rsp_dashboard] editor. Scoped
 * under .rsp-* classes only, no reliance on any theme, so it's safe to
 * enqueue on any WordPress theme. Colors are intentionally neutral/
 * brand-agnostic — easy to override from the theme's own stylesheet by
 * targeting these same class names with higher specificity.
 */

.rsp-team-page, .rsp-bio-page, .rsp-dashboard {
	--rsp-accent: #1a5fb4;
	--rsp-border: #e0e0e0;
	--rsp-bg-soft: #f7f8fa;
	--rsp-text-muted: #666;
	max-width: 960px;
	margin: 2em auto;
	font-family: inherit;
}

/* Team header */
.rsp-team-header {
	display: flex;
	align-items: center;
	gap: 20px;
	padding-bottom: 20px;
	margin-bottom: 24px;
	border-bottom: 2px solid var(--rsp-border);
}
.rsp-team-logo {
	width: 88px;
	height: 88px;
	object-fit: cover;
	border-radius: 10px;
	flex-shrink: 0;
}
.rsp-team-name { margin: 0 0 4px; font-size: 1.8em; }
.rsp-team-submeta { color: var(--rsp-text-muted); font-size: 0.95em; }
.rsp-team-record { font-weight: 600; margin-top: 4px; }

.rsp-section-title {
	font-size: 1.25em;
	margin: 28px 0 14px;
	padding-top: 4px;
}
.rsp-empty { color: var(--rsp-text-muted); font-style: italic; }

/* Card grid (roster + staff) */
.rsp-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 16px;
}
.rsp-player-card {
	display: block;
	text-decoration: none;
	color: inherit;
	background: #fff;
	border: 1px solid var(--rsp-border);
	border-radius: 12px;
	overflow: hidden;
	transition: transform 0.12s ease, box-shadow 0.12s ease;
}
a.rsp-player-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(0,0,0,0.1);
	border-color: var(--rsp-accent);
}
.rsp-staff-card { cursor: default; }
.rsp-card-photo {
	aspect-ratio: 1 / 1;
	background: var(--rsp-bg-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.rsp-card-photo-img, .rsp-bio-photo-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rsp-card-photo-placeholder, .rsp-bio-photo-placeholder {
	font-size: 1.8em;
	font-weight: 700;
	color: #aab0b8;
}
.rsp-card-jersey-placeholder {
	font-size: 2em;
	font-weight: 800;
	color: var(--rsp-accent);
}
.rsp-card-body { padding: 10px 12px 14px; }
.rsp-card-name { font-weight: 700; font-size: 1.02em; }
.rsp-card-meta { color: var(--rsp-accent); font-weight: 600; font-size: 0.88em; margin-top: 2px; }
.rsp-card-sub { color: var(--rsp-text-muted); font-size: 0.82em; margin-top: 2px; }

/* Player Bio Page */
.rsp-bio-header { display: flex; gap: 24px; align-items: flex-start; margin-bottom: 24px; }
.rsp-bio-photo { width: 160px; height: 160px; flex-shrink: 0; border-radius: 14px; overflow: hidden; background: var(--rsp-bg-soft); display: flex; align-items: center; justify-content: center; }
.rsp-bio-photo-placeholder { font-size: 3em; }
.rsp-bio-name { margin: 0 0 6px; font-size: 2em; }
.rsp-bio-badges { color: var(--rsp-accent); font-weight: 600; }
.rsp-bio-school { color: var(--rsp-text-muted); margin-top: 4px; }
.rsp-bio-teams { margin-top: 8px; font-size: 0.95em; }
.rsp-bio-teams a { color: var(--rsp-accent); }
.rsp-bio-text { line-height: 1.6; margin: 12px 0 24px; }

.rsp-fact-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px 20px; }
.rsp-fact { border-bottom: 1px solid var(--rsp-border); padding-bottom: 6px; }
.rsp-fact-label { display: block; font-size: 0.78em; text-transform: uppercase; letter-spacing: 0.03em; color: var(--rsp-text-muted); }
.rsp-fact-value { font-weight: 600; }

.rsp-video-list { list-style: none; padding: 0; }
.rsp-video-list li { margin-bottom: 6px; }
.rsp-video-list a { color: var(--rsp-accent); font-weight: 600; text-decoration: none; }
.rsp-video-list a:hover { text-decoration: underline; }

.rsp-photo-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.rsp-gallery-img { width: 100%; border-radius: 8px; object-fit: cover; aspect-ratio: 1 / 1; }

.rsp-stats-table { border-collapse: collapse; width: 100%; }
.rsp-stats-table th, .rsp-stats-table td { border: 1px solid var(--rsp-border); padding: 8px 10px; text-align: center; }
.rsp-stats-table th { background: var(--rsp-bg-soft); }
.rsp-stat-verified { color: #1a7d1a; }

/* Dashboard */
.rsp-dashboard-login { max-width: 420px; }
.rsp-dash-notice { padding: 10px 14px; border-radius: 6px; margin-bottom: 18px; font-weight: 600; }
.rsp-dash-notice-success { background: #e7f5e7; color: #1a7d1a; border: 1px solid #b9e0b9; }
.rsp-dash-notice-error { background: #fbe9e9; color: #a02222; border: 1px solid #f0bcbc; }

.rsp-dash-section { margin-bottom: 32px; }
.rsp-dash-card {
	background: #fff;
	border: 1px solid var(--rsp-border);
	border-radius: 10px;
	padding: 16px 18px;
	margin-bottom: 16px;
}
.rsp-dash-card > summary { font-size: 1.15em; font-weight: 700; cursor: pointer; }
.rsp-dash-view-link { font-size: 0.7em; font-weight: 500; margin-left: 10px; }

.rsp-dash-table { width: 100%; border-collapse: collapse; margin: 14px 0; }
.rsp-dash-table th, .rsp-dash-table td { padding: 8px 10px; border-bottom: 1px solid var(--rsp-border); text-align: left; }

.rsp-inline-edit { margin: 6px 0; border: 1px dashed var(--rsp-border); border-radius: 6px; padding: 6px 10px; }
.rsp-inline-edit > summary { cursor: pointer; font-weight: 600; color: var(--rsp-accent); }

.rsp-dash-form label { display: inline-block; margin: 6px 12px 6px 0; font-size: 0.92em; }
.rsp-dash-form-stacked label { display: block; margin: 0; }
.rsp-dash-form input[type="text"],
.rsp-dash-form input[type="email"],
.rsp-dash-form input[type="number"],
.rsp-dash-form input[type="date"],
.rsp-dash-form select,
.rsp-dash-form textarea {
	padding: 6px 8px;
	border: 1px solid var(--rsp-border);
	border-radius: 4px;
	font-size: 0.95em;
}
.rsp-input-wide { width: 100%; max-width: 480px; box-sizing: border-box; }
.rsp-dash-form fieldset { border: 1px solid var(--rsp-border); border-radius: 8px; padding: 12px 16px; margin: 0 0 14px; }
.rsp-dash-form legend { font-weight: 700; padding: 0 6px; }
.rsp-inline-checkbox { font-weight: 400; margin-left: 10px; }

.rsp-btn {
	display: inline-block;
	background: var(--rsp-accent);
	color: #fff;
	border: none;
	padding: 8px 16px;
	border-radius: 6px;
	font-weight: 600;
	cursor: pointer;
	margin-top: 8px;
}
.rsp-btn:hover { opacity: 0.9; }
.rsp-btn-primary { font-size: 1.05em; padding: 10px 22px; }

.rsp-agreements-card { border: 2px solid var(--rsp-accent); }
.rsp-agreement-doc { margin-bottom: 18px; }
.rsp-agreement-body {
	max-height: 260px;
	overflow-y: auto;
	background: #fafafa;
	border: 1px solid var(--rsp-border);
	border-radius: 6px;
	padding: 12px 14px;
	margin: 8px 0 12px;
	font-size: 0.92em;
	line-height: 1.6;
}

@media (max-width: 640px) {
	.rsp-bio-header { flex-direction: column; align-items: center; text-align: center; }
	.rsp-team-header { flex-direction: column; align-items: flex-start; }
}
