/* Best Student of the Month — front-end styles.
   Scoped under .bsom-wrap; inherits the theme's own font so it blends into
   whatever page the shortcode is dropped into. */

.bsom-wrap {
	--bsom-accent: #1893D7;
	--bsom-gold: #F0A202;
	--bsom-gold-text: #7A4B00;
	--bsom-ink: #1F2A37;
	--bsom-muted: #8A96A3;
	box-sizing: border-box;
}
.bsom-wrap * {
	box-sizing: border-box;
}

.bsom-empty {
	text-align: center;
	color: var(--bsom-muted);
	font-weight: 600;
	padding: 32px 0;
}

/* Current winners grid */
.bsom-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
}

.bsom-card {
	background: #FFFFFF;
	border: 1px solid #EEF2F7;
	border-radius: 20px;
	box-shadow: 0 10px 24px rgba(15, 60, 100, 0.09);
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.bsom-class-pill {
	display: inline-flex;
	align-self: flex-start;
	background: #EAF5FD;
	color: var(--bsom-accent);
	font-weight: 800;
	font-size: 12.5px;
	padding: 6px 12px;
	border-radius: 999px;
}

.bsom-person {
	display: flex;
	gap: 14px;
	align-items: center;
}

.bsom-person-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.bsom-person-role {
	font-size: 11.5px;
	font-weight: 700;
	color: var(--bsom-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.bsom-role-gold {
	color: #B9830A;
}

.bsom-person-name {
	font-size: 15px;
	font-weight: 700;
	color: var(--bsom-ink);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.bsom-name-lg {
	font-size: 17px;
	font-weight: 800;
}

.bsom-divider {
	height: 1px;
	background: #EEF2F7;
}

.bsom-note {
	margin: 0;
	font-size: 13.5px;
	font-style: italic;
	color: #5B6B7C;
	line-height: 1.45;
	border-left: 3px solid var(--bsom-gold);
	padding-left: 10px;
}

/* Avatars */
.bsom-avatar-wrap {
	position: relative;
	flex-shrink: 0;
}
.bsom-avatar {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bsom-accent);
	color: #FFFFFF;
	font-weight: 800;
	font-size: 16px;
}
.bsom-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.bsom-avatar-student .bsom-avatar,
.bsom-avatar-student-sm .bsom-avatar {
	background: var(--bsom-gold);
	color: var(--bsom-gold-text);
}
.bsom-avatar-student .bsom-avatar {
	width: 56px;
	height: 56px;
	font-size: 17px;
}
.bsom-avatar-student-sm .bsom-avatar {
	width: 34px;
	height: 34px;
	font-size: 12.5px;
}
.bsom-avatar-badge {
	position: absolute;
	bottom: -2px;
	right: -2px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #FFFFFF;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
	color: var(--bsom-gold);
}

/* Archive */
.bsom-archive {
	margin-top: 40px;
}
.bsom-archive-title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
	font-size: 22px;
	font-weight: 800;
	color: var(--bsom-ink);
}
.bsom-archive-title svg {
	color: #5B6B7C;
}

.bsom-month {
	background: #FFFFFF;
	border: 1px solid #EEF2F7;
	border-radius: 16px;
	box-shadow: 0 6px 16px rgba(15, 60, 100, 0.07);
	overflow: hidden;
	margin-bottom: 12px;
}
.bsom-month-summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	font-weight: 800;
	font-size: 15.5px;
	color: var(--bsom-ink);
}
.bsom-month-summary::-webkit-details-marker {
	display: none;
}
.bsom-month-summary:hover {
	background: #F7FAFD;
}
.bsom-month-summary:focus-visible {
	outline: 2px solid var(--bsom-accent);
	outline-offset: -2px;
}
.bsom-month-meta {
	display: flex;
	align-items: center;
	gap: 10px;
}
.bsom-month-count {
	font-size: 12.5px;
	font-weight: 700;
	color: var(--bsom-muted);
}
.bsom-chevron {
	color: #5B6B7C;
	transition: transform 0.15s ease;
}
.bsom-month[open] .bsom-chevron {
	transform: rotate(180deg);
}

.bsom-month-entries {
	border-top: 1px solid #EEF2F7;
	display: flex;
	flex-direction: column;
}
.bsom-archive-row {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 20px;
	border-bottom: 1px solid #F5F7FA;
}
.bsom-archive-row:last-child {
	border-bottom: none;
}
.bsom-archive-row-info {
	min-width: 0;
	flex: 1 1 220px;
}
.bsom-archive-student {
	font-size: 14px;
	font-weight: 800;
	color: var(--bsom-ink);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.bsom-archive-meta {
	font-size: 12px;
	font-weight: 600;
	color: var(--bsom-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
