:root {
    /* 56px is the standard height for a Bootstrap 5 navbar with default padding */
    --navbar-height: 70px;
}

.navbar.fixed-top {
    /* Ensures the background matches your Bootstrap theme */
    background-color: var(--bs-body-bg);

    /* Optional: Adds a nice frosted glass effect */
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    /* Ensure the shadow is visible against the background */
    border-bottom: 1px solid var(--bs-border-color);
}

/* Shared landing/auth glass navbar style */
.lp-nav {
    min-height: var(--navbar-height);
    background: rgba(var(--bs-body-bg-rgb), 0.8);
    backdrop-filter: blur(16px) saturate(1.4);
    -webkit-backdrop-filter: blur(16px) saturate(1.4);
    border-bottom: 1px solid var(--bs-border-color);
    transition: box-shadow 0.3s ease;
}

/* Landing/auth nav link spacing + hover treatment */
.lp-nav .nav-link {
    padding: 0.35rem 0.9rem;
    border-radius: 999px;
    color: var(--bs-body-color);
    transition: background-color 0.2s ease, color 0.2s ease;
}

.lp-nav .nav-link:hover,
.lp-nav .nav-link:focus {
    background-color: rgba(var(--bs-primary-rgb), 0.08);
    color: var(--bs-primary);
    text-decoration: none;
}
/* Active nav pill — landing page only */
.lp-nav:not(.app-nav) .nav-link.active {
    background-color: rgba(var(--bs-primary-rgb), 0.1);
    color: var(--bs-primary);
}

/* App nav utility links — no pill hover on avatar, theme toggle, language selector */
.app-nav .navbar-nav.ms-auto .nav-link:hover,
.app-nav .navbar-nav.ms-auto .nav-link:focus {
    background-color: transparent;
}

/* Authenticated app nav — underline active, subtle hover (main links only) */
.app-nav .navbar-collapse .nav-link {
    border-radius: 0;
    position: relative;
    background-color: transparent;
}

.app-nav .navbar-collapse .nav-link::after {
    content: "";
    position: absolute;
    left: 0.9rem;
    right: 0.9rem;
    bottom: -2px;
    height: 2px;
    background-color: var(--bs-primary);
    border-radius: 1px;
    transform: scaleX(0);
    transition: transform 0.2s ease;
}

.app-nav .navbar-collapse .nav-link:hover,
.app-nav .navbar-collapse .nav-link:focus {
    background-color: transparent;
    color: var(--bs-primary);
}

.app-nav .navbar-collapse .nav-link:hover::after {
    transform: scaleX(0.5);
}

.app-nav .navbar-collapse .nav-link.active {
    background-color: transparent;
    color: var(--bs-primary);
    font-weight: 500;
}

.app-nav .navbar-collapse .nav-link.active::after {
    transform: scaleX(1);
}

/* Suppress underline animation in collapsed (burger) menu */
@media (max-width: 991.98px) {
    .app-nav .navbar-collapse .nav-link::after,
    .app-nav .navbar-collapse .nav-link:hover::after,
    .app-nav .navbar-collapse .nav-link.active::after {
        display: none;
    }
}

/* Shared brand wordmark style */
.lp-wordmark {
    font-family: 'Bricolage Grotesque', var(--bs-body-font-family);
    font-weight: 700;
    font-size: 1.15rem;
    letter-spacing: -0.03em;
    color: var(--os-primary-text);
    text-decoration: none;
}

.public-nav-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.public-page-shell {
    padding: calc(var(--navbar-height) + 3rem) 0 5rem;
}

.public-page-card {
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.04);
    padding: clamp(1.5rem, 4vw, 3rem);
}

.lp-footer {
    padding: 3rem 0 2rem;
    font-size: 0.85rem;
    color: var(--bs-tertiary-color);
}

.lp-footer-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    align-items: center;
}

.lp-footer a,
.lp-footer-nav a {
    color: var(--bs-secondary-color);
    text-decoration: none;
    transition: color 0.2s;
}

.lp-footer-nav a {
    font-size: 0.85rem;
}

.lp-footer a:hover,
.lp-footer-nav a:hover {
    color: var(--os-primary-text);
}

.lp-footer-divider {
    color: var(--bs-tertiary-color);
}

@media (max-width: 575.98px) {
    .public-page-shell {
        padding: calc(var(--navbar-height) + 2rem) 0 4rem;
    }

    .public-nav-actions {
        justify-content: center;
    }

    .lp-footer-nav {
        flex-direction: column;
        gap: 0.25rem;
    }

    .lp-footer-divider {
        display: none;
    }
}

/* Tom Select Bootstrap 5 alignment */
.ts-wrapper {
    width: 100%;
}

.ts-wrapper.single .ts-control {
    min-height: 0;
    height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
    padding: 0.25rem 2.25rem 0.25rem 0.75rem;
    display: flex;
    align-items: center;
    background-image: var(--bs-form-select-bg-img, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"));
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 16px 12px;
}

.ts-wrapper.single .ts-control::after {
    display: none;
}

.ts-control > .item {
    padding: 0;
    margin: 0;
    background: none;
    border: none;
    box-shadow: none;
    color: inherit;
    line-height: inherit;
}

select.form-select-sm + .ts-wrapper.single .ts-control {
    min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
    padding: 0.25rem 2rem 0.25rem 0.5rem;
    font-size: 0.875rem;
}

.ts-wrapper.focus .ts-control,
.ts-wrapper.single.input-active .ts-control,
.ts-wrapper.single.dropdown-active .ts-control {
    border-color: rgba(var(--bs-primary-rgb), 0.65);
    box-shadow: inset 0 0 0 2px rgba(var(--bs-primary-rgb), 0.15);
}

.ts-wrapper.disabled .ts-control {
    background-color: var(--bs-secondary-bg);
    opacity: 1;
}

.ts-dropdown {
    margin-top: 0.25rem;
    border-color: var(--bs-border-color);
}

.ts-dropdown .option {
    color: var(--bs-body-color);
}

.ts-dropdown .option:hover {
    background-color: rgba(var(--bs-primary-rgb), 0.1);
    color: var(--os-primary-text);
}

.ts-dropdown .active {
    background-color: rgba(var(--bs-primary-rgb), 0.1);
    color: var(--os-primary-text);
}

[data-bs-theme="dark"] .ts-dropdown .option {
    color: var(--bs-emphasis-color);
}

[data-bs-theme="dark"] .ts-dropdown .option:hover {
    background-color: rgba(var(--bs-primary-rgb), 0.16);
    color: var(--bs-emphasis-color);
}

[data-bs-theme="dark"] .ts-dropdown .active {
    background-color: rgba(var(--bs-primary-rgb), 0.18);
    color: var(--bs-primary);
}

@media (pointer: coarse) {
    .ts-wrapper.single .ts-control {
        min-height: 2.75rem;
    }
}

/* ============================================================================
 * Match history cards
 * ============================================================================ */

.match-list {
    align-content: start;
}

.match-card {
    --match-card-icon-size: 2rem;
    --match-card-gap: 0.75rem;
    --match-card-score-width: 5rem;
    padding: 0;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    background-color: var(--bs-body-bg);
    color: inherit;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 2px 8px rgba(0, 0, 0, 0.03);
    transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.match-card__inner {
    padding: 0.75rem 1rem;
    border-top-left-radius: var(--bs-border-radius-lg);
    border-bottom-left-radius: var(--bs-border-radius-lg);
}

.match-card:hover,
.match-card:focus-visible {
    background-color: var(--bs-tertiary-bg);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06), 0 4px 12px rgba(0, 0, 0, 0.05);
    transform: translateY(-1px);
}

.match-card:focus-visible {
    outline: 2px solid rgba(var(--bs-primary-rgb), 0.35);
    outline-offset: 2px;
}

[data-bs-theme="dark"] .match-card {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.12);
}

[data-bs-theme="dark"] .match-card:hover,
[data-bs-theme="dark"] .match-card:focus-visible {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2), 0 4px 12px rgba(0, 0, 0, 0.18);
}

.match-card__icon {
    width: var(--match-card-icon-size);
    height: var(--match-card-icon-size);
    border-radius: 50%;
    background-color: var(--bs-tertiary-bg);
    color: var(--os-primary-text);
    transition: background-color 0.2s ease, color 0.2s ease;
}

.match-card__icon i {
    font-size: 0.9rem;
}

.match-card:hover .match-card__icon,
.match-card:focus-visible .match-card__icon {
    background-color: rgba(var(--bs-primary-rgb), 0.08);
}

.match-card__names {
    min-width: 0;
}

.match-card__layout,
.match-card__summary,
.match-card__meta {
    min-width: 0;
}

.match-card__name {
    display: block;
    width: 100%;
    max-width: 100%;
    font-size: 0.90625rem;
    font-weight: 500;
}

.match-card__name--winner {
    font-weight: 600;
}

.match-card__versus {
    font-size: 0.7rem;
    letter-spacing: 0.06em;
}

.match-card__sport {
    margin-top: 0.25rem;
    font-size: 0.71875rem;
    letter-spacing: 0.01em;
}

.match-card__meta {
    padding-left: calc(var(--match-card-icon-size) + var(--match-card-gap));
    justify-content: space-between;
}

.match-card__scores {
    width: var(--match-card-score-width);
    grid-template-columns: 1fr auto 1fr;
    font-size: 0.9375rem;
    font-variant-numeric: tabular-nums;
}

.match-card__score {
    font-weight: 400;
}

.match-card__score--winner {
    color: var(--bs-success);
    font-weight: 600;
}

.match-card__score--neutral {
    color: var(--bs-secondary-color);
}

.match-card__score-separator {
    font-weight: 400;
}

.match-card__chevron {
    color: var(--bs-tertiary-color);
    transition: color 0.2s ease, transform 0.2s ease;
}

.match-card:hover .match-card__chevron,
.match-card:focus-visible .match-card__chevron {
    color: var(--bs-primary);
    transform: translateX(2px);
}

.match-card-date-header {
    margin-top: 1.25rem;
    margin-bottom: 0.25rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: var(--bs-border-radius);
}

.match-card-date-header--today {
    color: var(--os-primary-text);
    background: linear-gradient(90deg, rgba(var(--bs-primary-rgb), 0.08) 0%, transparent 100%);
    border-left: 3px solid var(--bs-primary);
}

.match-card-date-header--yesterday {
    color: var(--bs-secondary-color);
    background-color: var(--bs-tertiary-bg);
    border-left: 3px solid var(--bs-border-color);
}

.match-card-date-header--older {
    color: var(--bs-secondary-color);
    background: transparent;
    padding-bottom: 0.25rem;
}

.match-list-footer {
    padding-top: 0.25rem;
}

.match-list-footer__count {
    padding-inline: 0.25rem;
}

@media (min-width: 768px) {
    .match-card {
        --match-card-icon-size: 2.125rem;
        --match-card-score-width: 4.75rem;
    }
}

@media (max-width: 991.98px) {
    .match-card__meta {
        padding-left: 0;
        width: 100%;
        justify-content: center;
        position: relative;
    }

    .match-card__scores {
        width: auto;
        min-width: 4.5rem;
    }

    .match-card__chevron {
        position: absolute;
        right: 0;
    }
}

@media (min-width: 992px) {
    .match-card {
        --match-card-icon-size: 2.25rem;
        --match-card-score-width: 5rem;
    }

    .match-card__meta {
        padding-left: 0;
        justify-content: flex-end;
    }

    .match-card__name {
        width: auto;
        max-width: none;
    }
}

@media (max-width: 575.98px) {
    .match-card__inner {
        padding: 0.625rem 0.75rem;
    }

    .match-card__name {
        font-size: 0.84375rem;
    }

    .match-card__sport,
    .match-list-footer__count {
        font-size: 0.75rem;
    }
}

@media (max-width: 767.98px) {
    .match-card__meta {
        padding-right: 1.25rem;
    }
}
