/* Bootstrap Event Schedule: small layer on top of Bootstrap 5. */
.bes-schedule { --bes-color: #6c757d; }

.bes-filter { display: flex; flex-wrap: wrap; gap: .5rem; }
.bes-filter .btn { display: inline-flex; align-items: center; gap: .4rem; }
.bes-dot { width: .6rem; height: .6rem; border-radius: 50%; background: var(--bes-color); }

.bes-track-name {
	font-weight: 600;
	padding-bottom: .4rem;
	border-bottom: 3px solid var(--bes-color);
}

.bes-slot-time { font-weight: 600; font-variant-numeric: tabular-nums; }
@media (min-width: 768px) {
	.bes-slot-time { padding-top: 1rem; text-align: right; }
}

.bes-session { border-left: 4px solid var(--bes-color); }
.bes-session--plenary { background: var(--bs-tertiary-bg, #f8f9fa); border-left-width: 4px; }
.bes-session .card-title a:focus-visible { outline: 2px solid var(--bes-color); outline-offset: 2px; }
.bes-badges { display: flex; flex-wrap: wrap; gap: .25rem; }

/* Empty track cells keep columns aligned on desktop but disappear on phones. */
@media (max-width: 767.98px) {
	.bes-empty { display: none; }
}

.bes-hidden { display: none !important; }

/* Speakers */
.bes-avatar { display: block; flex-shrink: 0; object-fit: cover; aspect-ratio: 1 / 1; max-width: none; }
.bes-avatar--150 { width: 150px; height: 150px; }
.bes-avatar--50 { width: 50px; height: 50px; }
.bes-avatar--round { border-radius: 50%; }

.bes-speaker-list { display: grid; gap: .5rem; }
.bes-speaker-link { display: flex; align-items: center; gap: .6rem; text-decoration: none; color: inherit; }
.bes-speaker-link:hover .bes-speaker-name { text-decoration: underline; }
.bes-speaker-name { display: block; font-size: .875rem; font-weight: 600; line-height: 1.2; }
.bes-speaker-company { display: block; font-size: .8rem; color: var(--bs-secondary-color, #6c757d); }

.bes-speaker-tile { display: inline-flex; flex-direction: column; align-items: center; }
.bes-speaker-tile:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
