@charset "UTF-8";

html {
	scroll-behavior: smooth;
}


/***************** NAVIGATION *****************/
body.menu-open {
	height: 100vh;
	overflow: hidden;
}

.navbar {
	position: relative;
	z-index: 1050;
}

.navbar-brand {
    z-index: 1050;
}

.nav-fixed #layoutSidenav #layoutSidenav_nav .sidenav .sidenav-menu {
    overflow-y: overlay;
}

#hamburger-btn {
	background: transparent;
	border: none;
	display: flex;
	flex-direction: column;
	gap: 5px;
	justify-content: center;
	outline: none;
	padding: 0.5rem;
	z-index: 1053;
}

#hamburger-btn:focus {
	box-shadow: none;
	outline: none;
}

#hamburger-btn.open .hamburger-bar:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}

#hamburger-btn.open .hamburger-bar:nth-child(2) {
	opacity: 0;
}

#hamburger-btn.open .hamburger-bar:nth-child(3) {
	transform: translateY(-8px) rotate(-45deg);
}

.hamburger-bar {
	background-color: white;
	height: 3px;
	transition: all 0.3s ease;
	width: 25px;
}

/* Overlay menu */
#navbar-menu {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	height: calc(100% - 56px);
	left: 0;
	overflow-y: auto;
	padding: 2rem;
	pointer-events: none;
	position: fixed;
	top: 56px;
	transform: translateY(-100%);
	transition: transform 0.3s ease, visibility 0.3s ease;
	visibility: hidden;
	width: 100%;
	z-index: 1040;
}

#navbar-menu.show {
	pointer-events: auto;
	transform: translateY(0);
	visibility: visible;
}

/* Desktop overrides */
@media (min-width: 768px) {
	#hamburger-btn {
		display: none;
	}

	#navbar-menu {
		align-items: center;
		background-color: transparent;
		display: flex;
		flex-direction: row;
		height: auto;
		padding: 0;
		pointer-events: auto;
		position: static;
		transform: none !important;
		visibility: visible;
	}
}

@media (max-width: 767.98px) {
	.navbar.main .justify-content-end {
		justify-content: center !important;
	}
	
	.navbar.main .btn {
		margin: 0 auto;
	}
	
	.navbar.main .btn-sm {
    	border-radius: 0.5rem !important;
		font-size: 1.5rem !important;
	    padding: 1rem 1.5rem !important;
	}
}

.impersonating-mode {
    padding-top: 27px;
}

.impersonating-mode.nav-fixed .topnav, .impersonating-mode.nav-fixed #layoutSidenav #layoutSidenav_nav {
    top: 27px !important;
}

.impersonating-banner {
	background-color: #dc3545;
	color: #fff;
	font-size: 0.8rem;
	font-weight: bold;
	padding: 0.25rem 0.5rem;
	position: fixed;
	text-align: center;
	top: 0;
	width: 100%;
	z-index: 2000;
}


/***************** HOME *****************/
.hero-bg {
	align-items: center;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	background-attachment: fixed;
	display: flex;
	justify-content: center;
	min-height: 70vh;
	position: relative;


}

.hero-bg::before {
	backdrop-filter: blur( 2px );
	background-color: rgba( 0, 0, 0, 0.4 );
	content: '';
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 0;
}

.hero-bg > * {
    position: relative;
    z-index: 1;
}

@media (max-width: 768px) {
    .hero-bg {
        background-attachment: scroll;
    }
}

.hero-content {
    backdrop-filter: blur( 5px );
    background: rgba(0, 0, 0, 0.4);
    border-radius: 8px;
    display: inline-block;
    padding: 20px;
}

#button-sign-in {
	min-width: 100px;
}

@media (max-width: 500px) {
	#button-sign-in {
		width: 100%;
		margin-top: 10px;
	}
}



/***************** ALERTS *****************/
.alert {
	align-items: center;
	border-radius: 0.25rem;
	display: flex;
	padding: 0.75rem 1rem;
}

.alert-icon {
	margin-right: 20px;
	font-size: 1.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 24px;
	width: 24px;
}

.alert-success .alert-icon {
	color: #155724;
}

.alert-danger .alert-icon {
	color: #721c24;
}

.alert-warning .alert-icon {
	color: #856404;
}

.alert-info .alert-icon {
	color: #0c5460;
}


/***************** FOOTER *****************/
footer .social a {
	margin: 0 10px !important;
    transition: color 0.3s ease;
}

footer a.facebook:hover {
    color: #3b5998 !important;
}

footer a.instagram:hover {
    color: #e4405f !important;
}

footer a.tiktok:hover {
    color: #69c9d0 !important;
}

.nowrap-bullet {
    display: inline-block;
	margin-left: 5px;
}

.nowrap-bullet::before {
	content: '• ';
}

@media (max-width: 576px) {
    .nowrap-bullet {
        display: block;
		margin-left: 0;
        text-align: center;
    }

	.nowrap-bullet::before {
		content: '';
	}
}


/***************** HELP *****************/
#button-help {
	align-items: center;
	bottom: 80px;
	display: flex;
	height: 34px;
	opacity: 0.8;
	overflow: hidden;
	padding: 0;
	position: fixed;
	right: -8px;
	transition: width 0.3s ease, opacity 0.3s ease;
	white-space: nowrap;
	width: 34px;
	z-index: 1050;
}

#button-help:hover {
	opacity: 1;
	width: 110px;
}

#button-help .help-icon {
	align-items: center;
	display: flex;
	height: 34px;
	justify-content: center;
	pointer-events: none;
	position: absolute;
	right: 1px;
	top: -1px;
	width: 34px;
}

#button-help .help-text {
	color: #fff;
	font-size: 12px;
	margin-left: 8px;
	margin-right: 28px;
	max-width: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-width 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
	visibility: hidden;
	white-space: nowrap;
}

#button-help:hover .help-text {
	max-width: 80px;
	opacity: 1;
	visibility: visible;
}


/***************** DASHBOARD *****************/
.card-hover {
    transition: all 0.3s ease-in-out;
}

.card-hover:hover {
    box-shadow: 0px 8px 16px rgba( 0, 0, 0, 0.2 );
    transform: translateY( -5px );
}

/* Ensure icons also smoothly scale back */
.card-hover svg {
    transition: transform 0.3s ease-in-out;
}

.card-hover:hover svg {
    transform: scale( 1.1 );
}

.sidenav .sidenav-menu .nav .nav-link .nav-link-icon, .list-group-item .svg-inline--fa {
    width: 20px !important;
}


/***************** COMPETITION CARDS *****************/
.list-group-item.list-group-item-action i {
	white-space: nowrap;
}

.list-group-item.list-group-item-action {
	display: flex;
	align-items: center;
}

.list-group-item.list-group-item-action span {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}


/***************** FORMS *****************/
.required > label:after, .required > span:after {
	content: "*";
	color: red;
	margin-left: 4px;
}

#select-gym option[value="other"] {
    font-weight: bold;
}


/***************** DATE & TIME PICKER *****************/
#start-date-picker, #end-date-picker {
    display: flex;
    justify-content: center;
    margin: 0 auto;
    width: fit-content;
}

#wizard3 .form-group {
    text-align: center;
}

.bootstrap-datetimepicker-widget .row {
    display: flex;
    justify-content: center;
}

.bootstrap-datetimepicker-widget .datepicker {
    flex: 0 0 66.6667%;
    max-width: 66.6667%;
}

.bootstrap-datetimepicker-widget .timepicker {
    flex: 0 0 33.3333%;
    max-width: 33.3333%;
}


/***************** HOST - CREATE *****************/
.wizard-step-text-details {
	font-size: 0.9rem;
	color: #6c757d;
}

#map {
	height: 300px;
	width: 100%;
}
		
#cover-photo-dropzone {
    align-items: center;
    background: repeating-conic-gradient( #ddd 0% 25%, transparent 0% 50% ) 50% / 20px 20px;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    height: 400px;
    justify-content: center;
    overflow: hidden;
    position: relative;
    width: 100%;
}

#cover-photo-preview {
    display: none;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

#cover-photo-overlay {
    align-items: center;
    background: rgba(0, 0, 0, 0.5);
    color: white;
    cursor: pointer;
    display: flex;
    font-size: 18px;
    font-weight: bold;
    height: 100%;
    justify-content: center;
    left: 0;
    position: absolute;
    text-align: center;
    top: 0;
    width: 100%;
    z-index: 2;
}

#cover-photo-dropzone.dragover {
    background: #ddd;
    border-color: #666;
}


/***************** HOST - COMPETITIONS *****************/
.action-box {
    align-items: center;
    background: white;
    border-radius: 10px;
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    height: 220px;
    justify-content: center;
    padding: 20px;
    width: 100%;
}

.icon-circle {
    align-items: center;
    border-radius: 50%;
    border-width: 3px !important;
    display: flex;
    height: 90px;
    justify-content: center;
    margin-bottom: 10px;
    width: 90px;
}

.btn-fixed {
    text-align: center;
    width: 115px;
}

.button-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

@media (max-width: 576px) {
    .button-container > * {
        flex: 0 0 48%;
        max-width: 48%;
    }
}

.comp-image {
	background-size: cover;
	background-position: center;
	border-top-left-radius: .25rem;
	border-top-right-radius: .25rem;
	height: 200px;
}

.comp-ellipsis {
	right: 0;
	top: 0;
}

.past-comp {
    filter: grayscale( 100% );
    opacity: 0.8;
}


/***************** COMPETITION - MANAGE *****************/
.competition-link {
	bottom: 30px;
	height: 60px;
	position: fixed;
	right: 30px;
	width: 60px;
	z-index: 9999;
}


/***************** COMPETITION *****************/
.registration-card-wrapper {
	top: 100px;
	z-index: 1020;
}

.competition-tabs-wrapper {
	position: relative;
	overflow-x: auto;
	overflow-y: hidden;
	white-space: nowrap;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	-ms-overflow-style: none;
	margin-bottom: 1rem;
	border-bottom: 1px solid #ddd;
	text-align: center;
}

.competition-tabs-wrapper::-webkit-scrollbar {
	display: none;
}

.competition-tabs {
	display: inline-flex;
	flex-wrap: nowrap;
	min-width: max-content;
	padding-left: 0;
	margin-bottom: 0;
}

.competition-tabs .nav-item {
	display: inline-block;
}

.competition-tabs .nav-link {
	position: relative;
	display: inline-block;
	white-space: nowrap;
	color: #6c757d;
	font-size: 1rem;
	font-weight: 500;
	margin: 0 0.75rem;
	padding: 0.5rem 0.75rem;
	border: none;
	background: transparent;
	transition: color 0.2s ease;
}

.competition-tabs .nav-link:hover {
	color: #000;
}

.competition-tabs .nav-link.active {
	color: #000;
}

.competition-tabs .nav-link i {
	font-size: 1.2rem;
}

.magic-line {
	position: absolute;
	bottom: 0;
	left: 0;
	height: 3px;
	background-color: #007bff;
	width: 0;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	border-radius: 2px;
}

@media (min-width: 768px) {
	.competition-tabs .nav-link {
		font-size: 1.1rem;
		padding: 0.5rem 1rem;
	}
}


/***************** COMPETITION - SCORES *****************/
.button-workout.active, .button-division.active {
    color: #fff;
}

.button-workout.active {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.button-division.active {
    background-color: var(--bs-secondary);
    border-color: var(--bs-secondary);
}

#division-card-group .btn {
	margin-right: 0.5rem;
	margin-bottom: 0.5rem;
	white-space: nowrap;
	padding: 0.5rem 1rem;
	height: auto;
	max-height: 30px;
}


/***************** COMPETITION - SCHEDULE *****************/
.hidden-fade {
	opacity: 0;
	transition: opacity 0.5s ease;
	pointer-events: none;
}

.hidden-fade.visible {
	opacity: 1;
	pointer-events: auto;
}

.grid-cell {
	background: #f8f9fa;
	border: none;
	height: 60px;
	margin: 0;
	max-width: 100px;
	min-height: 60px;
	overflow: hidden;
	padding: 0;
	position: relative;
	vertical-align: top;
	width: 100px;
}

.grid-cell .badge {
	margin: 0;
}

.grid-cell::before {
	border: 1px solid #dee2e6;
	box-sizing: border-box;
	content: '';
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.grid-cell.sortable-chosen {
	opacity: 0.8;
}

.grid-cell.sortable-ghost {
	background-color: rgba(0, 123, 255, 0.1);
	visibility: hidden;
}

.grid-cell.sortable-ghost::before {
	display: none;
}

.lane-header {
	background: #e9ecef;
	font-weight: bold;
	text-align: center;
}

#table-schedule {
	min-width: 100%;
	table-layout: fixed;
	width: max-content;
}

#table-schedule th:first-child,
#table-schedule td:first-child {
	background: #fff;
	left: 0;
	max-width: 240px;
	position: sticky;
	width: 240px;
	z-index: 2;
}

#table-schedule th.lane-header,
#table-schedule td.grid-cell {
	min-width: 120px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	width: 1%;
}

.team-pill {
	color: #fff;
	cursor: grab;
	display: inline-block;
	font-weight: 500;
	max-width: 100%;
	overflow: hidden;
	padding: 4px 10px;
	position: relative;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.team-pill.has-remove {
	padding-right: 22px;
}

.team-pill:active {
	cursor: grabbing !important;
}

.remove-pill {
	background: #fff;
	border-radius: 50%;
	color: #dc3545;
	cursor: pointer;
	font-size: 10px;
	height: 12px;
	line-height: 14px;
	position: absolute;
	right: 4px;
	top: 4px;
	text-align: center;
	width: 12px;
	pointer-events: auto;
}

.team-pill, .grid-cell, .badge, .sortable-fallback {
	user-select: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
}

.time-label {
	font-weight: bold;
}

.time-label div {
	line-height: 1.2;
}


/***************** REGISTER *****************/
.division-card {
	background-color: #f8f9fa;
	cursor: pointer;
	transition: all 0.2s ease;
}

.division-card:hover {
	background-color: #e9ecef;
}

.division-card.border-dark {
	box-shadow: 0 0 0 2px #000;
}



/***************** COMPETITION *****************/
.schedule-team-name {
    font-size: 0.95rem;
    line-height: 1.1;
}

.schedule-team-members {
    font-size: 0.78rem;
    line-height: 1.1;
	margin-top: 5px;
    opacity: 0.8;
}

@media (max-width: 767.98px) {
    .schedule-team-name {
		font-size: 0.9rem;
	}

    .schedule-team-members {
		font-size: 0.74rem;
	}
}


/***************** LEADERBOARD *****************/
body.leaderboard .container {
	max-width: 100% !important;
}

.badge-rank {
	background-color: #e0e0e0;
	border-radius: 20px;
	color: #111111;
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 700;
	padding: 0.5rem 0.75rem;
	text-transform: uppercase;
}

.badge-rank.rank-1st {
	background-color: gold;
	color: #111;
}

.badge-rank.rank-2nd {
	background-color: silver;
	color: #111;
}

.badge-rank.rank-3rd {
	background-color: #cd7f32;
	color: #fff;
}

.rank-tie-dot {
	position: absolute;
	top: 2px;
	right: 2px;
	width: 6px;
	height: 6px;
	background-color: #e83e8c;
	border-radius: 50%;
	box-shadow: 0 0 1px #fff;
}

.rank-tie-dot-small {
	position: absolute;
	top: -2px;
	right: -8px;
	width: 5px;
	height: 5px;
	background-color: #e83e8c;
	border-radius: 50%;
	box-shadow: 0 0 1px #fff;
}

.clear-search-icon {
	color: #aaa;
	cursor: pointer;
	display: none;
	font-size: 1rem;
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
}

.clear-search-icon:hover {
	color: #333;
}

#division-tabs .nav-link {
	font-weight: 600;
}

#leaderboard-spinner {
	display: none;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 10;
}

.leaderboard-division-tabs {
	border-bottom: 1px solid #ddd;
	margin-bottom: 1rem;
}

.leaderboard-division-tabs .nav-link {
	background: none;
	border: none;
	color: #333;
	font-weight: 600;
	padding: 0.5rem 1rem;
}

.leaderboard-division-tabs .nav-link.active {
	border-bottom: 2px solid #000;
	color: #000;
}

.leaderboard-header-buttons .btn {
	justify-content: center;
	min-width: 160px;
	width: 100%;
}

@media (max-width: 767.98px) {
    .leaderboard-header-buttons {
		margin-top: .5rem !important;
	}
}

.leaderboard-header-info h1 {
	font-size: 2.25rem;
	line-height: 1.2;
}

@media (max-width: 767.98px) {
    .leaderboard-header-info h1 {
        font-size: 1.6rem !important;
        line-height: 1.2;
        word-break: break-word;
    }
}

.leaderboard-hero {
	align-items: center;
	background-position: center;
	background-size: cover;
	display: flex;
	height: 260px;
	overflow: hidden;
	position: relative;
}

@media (max-width: 767.98px) {
    .leaderboard-hero {
        height: auto !important;
        min-height: 200px;
        overflow: visible !important;
        padding: 16px 0;
    }

    .leaderboard-header-info p {
        margin-bottom: .35rem;
        white-space: normal;
        word-break: break-word;
    }
}

.leaderboard-hero-content {
	position: relative;
	width: 100%;
	z-index: 2;
}

@media (max-width: 767.98px) {
    .leaderboard-hero-content {
		padding: 0 8px;
	}
}

.leaderboard-hero-overlay {
	backdrop-filter: blur( 5px );
	background: rgba( 0, 0, 0, 0.6 );
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

.leaderboard-search-share {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: -50px;
	position: relative;
	z-index: 3;
}

.leaderboard-share-btn {
	margin: 10px;
}

.score-detail {
	color: #6c757d;
	font-size: 0.85rem;
	margin-top: 0.25rem;
}

.sort-icon {
	font-size: 0.75rem;
	opacity: 0.75;
}

.sortable {
	cursor: pointer;
}

.sortable:hover {
	background-color: #343a40 !important;
	color: #fff;
}

.workout-card {
	background: #fff;
	border: 1px solid #dee2e6;
}

.table-leaderboard {
	background-color: #ffffff;
	border-collapse: separate;
	border-radius: 10px;
	border-spacing: 0;
	box-shadow: 0 0 12px rgba( 0, 0, 0, 0.05 );
	font-size: 1rem;
	width: 100%;
}

.table-leaderboard th:nth-child(1),
.table-leaderboard td:nth-child(1),
.table-leaderboard th:nth-child(2),
.table-leaderboard td:nth-child(2) {
	width: 120px;
	max-width: 120px;
}

.table-leaderboard td {
	padding: 1.1rem 0.9rem;
	vertical-align: middle !important;
}

.table-leaderboard td:first-child,
.table-leaderboard td:nth-child(2) {
	font-size: 1rem;
	vertical-align: middle;
}

.table-leaderboard th:nth-child(3),
.table-leaderboard td:nth-child(3) {
    white-space: normal;
    word-break: break-word;
}

th.workout-col,
td.workout-col {
	width: 200px;
}

.table-leaderboard td.text-center {
	font-size: 1rem;
	text-align: center;
}

.table-leaderboard thead th {
	background-color: #0d1a26;
	border: none;
	color: #ffffff;
	font-size: 0.85rem;
	font-weight: 800;
	padding: 1rem;
	text-transform: uppercase;
	vertical-align: middle;
	white-space: nowrap;
}

.table-leaderboard thead th.sortable:hover {
	background-color: #152b3c;
	cursor: pointer;
}

.table-leaderboard tbody tr.team-row {
	background-color: #ffffff;
	border-bottom: 2px solid #f0f0f0;
	transition: background-color 0.2s ease;
}

.table-leaderboard tbody tr.team-row:hover {
	background-color: #eef7ff;
}

.table-leaderboard tr.team-details-row {
	background-color: #f4f6f9;
	border-top: none;
}

@media (max-width: 575.98px) {
	.table-leaderboard tr.team-details-row {
		display: none !important;
	}
}

.table-leaderboard tr.team-details-row td {
	border-bottom: none !important;
	border-top: none !important;
	font-size: 0.85rem;
	padding: 1.25rem 1rem;
	vertical-align: top;
}

.table-leaderboard tr.team-details-row td.text-muted {
	text-align: center;
	vertical-align: middle;
}

.toggle-cell {
	user-select: none;
	-webkit-user-select: none;
	-moz-user-select: none;
}

.toggle-cell:hover {
	background-color: #ddd;
}

.table-leaderboard .toggle-details {
	color: #0d1a26;
	cursor: pointer;
	font-size: 10px;
	transition: transform 0.2s;
}

.toggle-icon {
	font-size: 12px;
	transition: transform 0.3s ease;
}

.toggle-icon.rotate {
	transform: rotate(-90deg);
}

.team-details-content {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.team-details-row td {
	background-color: #f8f9fa;
	font-size: 0.9rem;
	padding: 1.2rem;
}

.team-details-row .fa-user-circle {
	color: #6c757d;
	font-size: 1.25rem;
	margin-right: 0.5rem;
	vertical-align: middle;
}

.team-member-line {
	align-items: center;
	color: #333;
	display: flex;
	font-weight: 500;
}

@media (max-width: 767.98px) {
	.leaderboard-header-buttons {
		flex-direction: row !important;
		justify-content: center !important;
	}

	.leaderboard-header-buttons .btn {
		align-items: center;
		display: flex;
		font-size: 16px !important;
		height: 40px !important;
		justify-content: center;
		margin: 0 5px;
		min-width: auto !important;
		padding: 0 !important;
		width: 60px !important;
	}

	.leaderboard-header-buttons .btn span {
		display: none !important;
	}

	.leaderboard-header-info {
		text-align: center !important;
	}
}

.team-workout-breakdown {
	border-top: 1px solid #ddd;
	display: none;
	flex-direction: column;
	gap: 1rem;
	margin-top: 1rem;
	padding-top: 1rem;
}

.workout-block {
	background-color: #ffffff;
	border: 1px solid #eee;
	border-radius: 8px;
	padding: 0.75rem 1rem;
}

.workout-title {
	color: #111;
	font-size: 0.95rem;
	font-weight: 700;
	margin-bottom: 0.25rem;
	text-transform: uppercase;
}

.workout-result {
	color: #333;
	display: flex;
	flex-wrap: wrap;
	font-size: 0.9rem;
	gap: 0.5rem;
}

.workout-result span {
	display: inline-block;
	min-width: 60px;
}

@media (max-width: 575.98px) {
	.table-leaderboard th:nth-child(1),
	.table-leaderboard td:nth-child(1),
	.table-leaderboard th:nth-child(2),
	.table-leaderboard td:nth-child(2) {
		padding-left: 0.25rem;
		padding-right: 0.25rem;
		font-size: 0.75rem;
		text-align: center;
	}

	.table-leaderboard th:nth-child(2),
	.table-leaderboard td:nth-child(2) {
		max-width: 70px;
		width: 70px;
	}

	.table-leaderboard th:nth-child(1),
	.table-leaderboard td:nth-child(1) {
		max-width: 90px;
		width: 90px;
	}

	.badge-rank {
		font-size: 0.6rem;
		padding: 0.25rem 0.5rem;
		border-radius: 999px;
	}

	.team-workout-breakdown {
		display: flex;
	}

	.table-leaderboard thead th:nth-child(n+4), .table-leaderboard tbody tr.team-row td:nth-child(n+4) {
		display: none;
	}

	.table-leaderboard tr.team-details-row td:not(.d-none) {
		display: table-cell !important;
	}

	.table-leaderboard {
		table-layout: fixed;
		word-wrap: break-word;
	}

	.table-leaderboard td, .table-leaderboard th {
		font-size: 0.9rem;
		padding: 0.75rem 0.5rem;
	}
}

.team-workout-breakdown-mobile {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-top: 1rem;
}

.team-workout-breakdown-mobile .workout-block {
	background-color: #f9f9f9;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 0.75rem 1rem;
}

.team-workout-breakdown-mobile .workout-title {
	color: #000;
	font-size: 0.95rem;
	font-weight: 600;
	margin-bottom: 0.25rem;
	text-transform: uppercase;
}

.team-workout-breakdown-mobile .workout-result {
	color: #333;
	display: flex;
	flex-wrap: wrap;
	font-size: 0.85rem;
	gap: 0.5rem;
}


/***************** MISCELLANEOUS *****************/
.hidden {
	display: none;
}

.pulse-button {
	transition: transform 0.2s ease;
}

.pulse-button:hover {
	transform: scale(1.04);
	box-shadow: 0 0 0.5rem rgba(0, 123, 255, 0.6);
}

.price-tag {
	font-size: 1.5rem;
	display: inline-flex;
	align-items: flex-start;
	line-height: 1;
}

.price-cents {
	font-size: 0.8rem;
	margin-left: 1px;
	position: relative;
	top: 2px;
}

.badge-participating {
	font-size: 0.8rem;
	right: 10px;
	top: 10px;
}

.icon-width {
    text-align: center;
     width: 25px !important;
}
 
.score-row:nth-child(even) {
    background-color: #f8f9fa;
}

.score-row:nth-child(odd) {
    background-color: #ffffff;
}

@media (min-width: 1200px) and (max-width: 1499.98px) {
    .custom-xl-override.col-xl-8 {
        flex: 0 0 58.333333%;
        max-width: 58.333333%;
    }

    .custom-xl-override.col-xl-4 {
        flex: 0 0 41.666667%;
        max-width: 41.666667%;
    }
}


/***************** ADMIN - ERROR LOGS *****************/
@media (max-width: 768px) {
	#table-logs td, #logsTable th {
		white-space: nowrap;
	}
}


/***************** OVERLAY *****************/
#global-ajax-overlay {
	background: rgba(0, 0, 0, 0.5);
	display: none;
	height: 100%;
	left: 0;
	position: fixed;
	text-align: center;
	top: 0;
	width: 100%;
	z-index: 9999;
}

.global-ajax-spinner {
	color: #eee;
	font-size: 2rem;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
}


/***************** OVERRIDES *****************/
.force-wrap {
	overflow-wrap: break-word;
	word-break: break-word;
	word-wrap: break-word;
}

.topnav .navbar-brand img, .navbar .navbar-brand img {
	height: 2rem;
}

.navbar .btn:focus, .navbar .btn:active {
	box-shadow: none !important;
	outline: none !important;
}

.alert-dismissible .close {
	top: auto;
}

table.table-bordered.dataTable tbody th, table.table-bordered.dataTable tbody td {
	vertical-align: middle;
}

.nav-tabs {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	overflow-y: hidden;
	white-space: nowrap;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.nav-tabs::-webkit-scrollbar {
	display: none;
}

.nav-tabs .nav-item {
	flex: 0 0 auto;
}

.nav-tabs .nav-link {
	border: none;
	border-bottom: 2px solid transparent;
	color: #444;
	font-weight: 600;
	padding: 0.75rem 1.25rem;
	transition: 0.3s;
}

.nav-tabs .nav-link:hover {
	background-color: transparent;
	border-bottom: 2px solid #007bff;
	color: #007bff;
}

.nav-tabs .nav-link.active {
	background-color: transparent;
	border-bottom: 2px solid #007bff;
	color: #007bff;
}

.text-white a {
	color: #fff;
}

.mt-11 {
	margin-top: -7.5rem !important;
}

code {
	font-size: 100% !important;
}

#score-help-text {
	display: block !important;
}

.cursor-pointer {
	cursor: pointer;
}

#email-history-count {
	font-size: 100% !important;
}


/***************** FADE IN *****************/
@keyframes fadeInUpSlow {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.animated--fade-in-up-slow {
	animation-name: fadeInUpSlow;
	animation-duration: 0.8s;
	animation-timing-function: ease-out;
	animation-fill-mode: both;
}



/***************** DARK MODE *****************/
#button-theme {
	align-items: center;
	bottom: 130px;
	display: flex;
	height: 34px;
	opacity: 0.9;
	overflow: hidden;
	padding: 0;
	position: fixed;
	right: -8px;
	transition: width 0.3s ease, opacity 0.3s ease;
	white-space: nowrap;
	width: 34px;
	z-index: 1050;
}

#button-theme:hover {
	opacity: 1;
	width: 120px;
}

#button-theme .theme-icon {
	align-items: center;
	display: flex;
	height: 34px;
	justify-content: center;
	pointer-events: none;
	position: absolute;
	right: 1px;
	top: -1px;
	width: 34px;
}

#button-theme .theme-text {
	color: #fff;
	font-size: 12px;
	margin-left: 8px;
	margin-right: 28px;
	max-width: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-width 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
	visibility: hidden;
	white-space: nowrap;
}

#button-theme:hover .theme-text {
	max-width: 90px;
	opacity: 1;
	visibility: visible;
}
