@font-face {
    font-family: "FuturaWeb";
    src: url("/assets-aquatics/fonts/FuturaMedium.woff2") format("woff2"),
        url("/assets-aquatics/fonts/FuturaMedium.woff") format("woff");
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: "FuturaWeb";
    src: url("/assets-aquatics/fonts/FuturaDemi.woff2") format("woff2"),
        url("/assets-aquatics/fonts/FuturaDemi.woff") format("woff");
    font-weight: bold;
    font-style: normal;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scrollbar-width: none;
    font-family: var(--font-sans);
}

html {
    background-color: var(--surface-page);
    scroll-behavior: smooth;
}

body.light-mode {
    color: var(--color-ink);
    -webkit-font-smoothing: antialiased;
}
/* Light Mode */

.light-mode .card-background {
    background: var(--card-background-color-light);
}

.light-mode .primary-btn {
    background: var(--primary-color);
    color: #fff;
}

.light-mode .secondary-btn {
    background: var(--secondary-btn-bg-color);
    color: #fff;
}

.light-mode .title-data {
    color: #1f1f1f;
}

.light-mode .card-active-link {
    border: 2px solid var(--primary-color);
    border-radius: 8px;
}

.light-mode .description-data {
    color: var(--border-color);
}

.light-mode .view-profile-btn {
    border: 1px solid #e5e5e5;
}

.light-mode .events-list li,
.light-mode .cards-title .light-mode {
    color: var(--dashboard-cards-title-color);
}

.light-mode .events-list li,
.light-mode .cards-title {
    border-color: #ecedf0;
}

.light-mode .card-active-link {
    border: 2px solid var(--primary-color);
    border-radius: 8px;
}

.light-mode .text-secondary-color {
    color: var(--secondary-text-light-color) !important;
}

.list-style {
    list-style: none;
}

.light-mode .light-icon {
    display: block;
}

.light-mode .dark-icon {
    display: none;
}

.light-mode .border-color {
    border-color: #ecedf0 !important;
}

.light-mode .cancel-btn {
    border-color: var(--primary-color);
    color: var(--primary-color);
}

.dark-light {
    width: 3rem;
    height: 1.7rem;
    border: 1px solid;
    display: flex;
    align-items: center;
    border-radius: 20px;
    margin-bottom: 1rem;
    background: #fff !important;
    position: sticky !important;
    bottom: 1rem;
    inset-inline-start: 0.5rem;
}

.dark-light-icon {
    height: 1.6rem;
    width: 1.6rem;
    border: 1px solid;
    border-radius: 50%;
}

/* Dark Mode */

.dark-mode .dark-light {
    justify-content: end;
}

.dark-mode .card-background {
    background: var(--card-background-color);
}

.dark-mode .border-color {
    border-color: var(--border-color) !important;
}

.dark-mode .text-color {
    color: var(--primary-text-color) !important;
}

.dark-mode .text-secondary-color {
    color: var(--secondary-text-color) !important;
}

.dark-mode .light-icon {
    display: none;
}

.dark-mode .dark-icon {
    display: block;
}

.dark-mode .cancel-btn {
    border-color: var(--primary-color);
    color: var(--primary-color);
}

.dark-mode .secondary-btn,
.dark-mode .view-profile-btn {
    border: 1px solid var(--secondary-btn-border-color);
    background: transparent;
    color: var(--golden);
}

.dark-mode .profile-view {
    background: #22262a;
}

.dark-mode .card-active-link {
    border: 1px solid var(--primary-color);
    border-radius: 8px;
}

.dark-mode .card-active-link {
    border: 1px solid var(--primary-color);
    border-radius: 8px;
}

.body-container {
    width: 100%;
    max-width: 1400px !important;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
    box-sizing: border-box;
    font-family: var(--font-sans);
}

/* Pages often use Bootstrap .container inside the app shell — fill shell width, single horizontal gutter */
main.app-main .body-container > .container,
main.app-main .body-container > .container-sm,
main.app-main .body-container > .container-md,
main.app-main .body-container > .container-lg,
main.app-main .body-container > .container-xl,
main.app-main .body-container > .container-xxl,
main.app-main .body-container > .container-fluid {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

.card {
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border-strong);
    box-shadow: none;
}

.cursor {
    cursor: pointer;
}

.table-responsive {
    scrollbar-width: thin;
}

/* font size */
.main-heading-size {
    font-size: var(--main-heading-size);
    letter-spacing: -1px;
    line-height: 31.2px;
}

.sub-heading {
    line-height: 25.6px;
}

.bold-size {
    font-weight: var(--bold);
}

.save-modal {
    padding: 32px;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* font weight */
.very-small-font-size {
    font-size: 10px;
}

.font-size-13 {
    font-size: 13px;
}

.small-font-size {
    font-size: 12px;
}

.med-small-font-size {
    font-size: 11px;
}

.medium-font-size {
    font-size: 16px;
}

.semi-font-size {
    font-size: 14px;
}

.large-font-size {
    font-size: 18px;
}

.xl-font-size {
    font-size: 20px;
}

.xll-font-size {
    font-size: 22px;
}

.xl-font-size {
    font-size: 24px;
}

.xxl-font-size {
    font-size: 28px;
}

@media (max-width: 600px) {
    .xxl-font-size {
        font-size: 20px;
    }
}

.small-radius {
    border-radius: 4px;
}

.light-weight {
    font-weight: 300;
}

.normal-weight {
    font-weight: var(--normal);
}

.med-weight {
    font-weight: var(--med);
}

.semi-weight {
    font-weight: var(--semi);
}

.bold-weight {
    font-weight: var(--bold);
}

.card-radius {
    border-radius: 0.625rem;
}

.border-bottom {
    border-bottom: 1px solid;
}

.border-left {
    border-inline-start: 1px solid;
}

.border-right {
    border-inline-end: 1px solid;
}

.active-tab {
    color: var(--primary-color);
    font-weight: var(--semi) !important;
}

.tab-border {
    border-bottom: 2px solid;
}

.shadow-cards-radius {
    border-bottom-left-radius: 0.875rem;
}

.padding-container {
    padding: 2rem;
}

.btn {
    border-radius: 0.375rem;
    padding: 0.625rem 0.875rem 0.625rem 0.875rem;
    line-height: 1rem;
    font-size: var(--primary-btn-text-size);
    /* font-weight: var(--semi); */
}

@media only screen and (max-width: 950px) {
    .btn {
        font-size: 0.75rem;
    }
}

.primary-btn {
    border: none;
}

.form-check-input:checked {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}

.form-check-input {
    height: 1.2rem !important;
}

/* ——— Internal pages: responsive shell (aligns with main.app-main + .body-container) ——— */

main.app-main .main,
main.app-main .main-dash {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

main.app-main {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

@media (max-width: 1199.98px) {
    main.app-main .main {
        margin: 1.25rem 0 0 !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    main.app-main .main-dash {
        margin: 1rem 0 0 !important;
        padding: 0 !important;
    }

    .progress-section-dashboard.d-flex {
        flex-direction: row !important;
        align-items: stretch !important;
    }

    .my-progress-dashboard,
    .my-progress-section,
    .swimmer-section,
    .upcoming-events {
        flex: 1 1 0;
        width: auto !important;
        min-width: 0;
        border-right: none !important;
    }

    .booking-list-container.row {
        margin-left: 0;
        margin-right: 0;
    }

    .booking-list-container > [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }

    .booking-list-container .text-end {
        text-align: start !important;
    }

    .swimmer-header.d-flex {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .swimmer-header .add-swimmer-btn {
        width: 100% !important;
        padding-right: 0 !important;
        padding-top: 0 !important;
    }

    .swimmer-header .primary-btn {
        width: 100%;
        justify-content: center;
    }

    main.app-main .card-container.d-flex {
        flex-direction: column !important;
    }

    main.app-main .venue-container1,
    main.app-main .venue-container2 {
        width: 100% !important;
    }
}

@media (max-width: 950px) {
    .progress-section-dashboard.d-flex {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .my-progress-dashboard,
    .my-progress-section,
    .swimmer-section,
    .upcoming-events {
        width: 100% !important;
        border-right: none !important;
    }
}

@media (max-width: 767.98px) {
    main.app-main {
        overflow-x: hidden;
    }

    main.app-main .paragraph {
        padding: 1rem !important;
    }

    main.app-main .responsive-table.m-4 {
        margin: 0.5rem !important;
    }

    main.app-main .key-value-container {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    main.app-main .key-value-container.gap-5 {
        gap: 0.75rem !important;
    }

    .welcome-section .main-heading,
    .welcome-section h1.main-heading {
        width: 100% !important;
    }

    main.app-main .welcome-section .text-section {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    main.app-main .actions {
        grid-template-columns: 1fr !important;
    }

    main.app-main .container1,
    main.app-main .container2 {
        width: 100% !important;
        padding-right: 0 !important;
    }

    main.app-main .form-group.d-flex.gap-1 {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    main.app-main .form-group.d-flex .btn-search {
        padding-right: 0 !important;
    }

    main.app-main .cards {
        padding: 1rem !important;
    }
}

@media (max-width: 575.98px) {
    main.app-main .main,
    main.app-main .main-dash {
        margin-top: 0.5rem !important;
    }
}
