html,
body {
    overflow-x: hidden;
}

body {
    background: linear-gradient(180deg, #f8fafc 0%, #eef3f8 100%);
    min-height: 100vh;
}

main {
    min-height: calc(100vh - 180px);
}

.page-shell {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

/* Navbar */
.glass-navbar {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.navbar-brand img {
    width: auto;
    max-height: 56px;
}

.navbar .nav-link {
    font-weight: 500;
    padding: 0.5rem 0.75rem;
}

.navbar .nav-link.active {
    font-weight: 700;
}

/* Offcanvas */
.offcanvas .nav-link {
    padding: 0.75rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

/* Footer */
footer {
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

footer img {
    width: auto;
    max-height: 80px;
}

/* =========================
   TABLETTE
========================= */
@media (max-width: 991.98px) {
    main {
        min-height: auto;
    }

    .navbar-brand img {
        max-height: 48px;
    }
}

/* =========================
   MOBILE
========================= */
@media (max-width: 767.98px) {
    .page-shell {
        max-width: 100%;
    }

    .navbar-brand {
        gap: 0.75rem !important;
    }

    .navbar-brand img {
        max-height: 40px;
    }

    .navbar-brand span {
        font-size: 1rem;
    }

    .navbar-brand small {
        font-size: 0.78rem;
    }

    footer img {
        max-height: 56px;
    }
}

/* =========================
   TRÈS PETITS ÉCRANS
========================= */
@media (max-width: 575.98px) {
    .container-fluid {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .navbar-brand {
        max-width: calc(100% - 56px);
    }

    .navbar-brand .d-flex.flex-column {
        min-width: 0;
    }

    .navbar-brand span,
    .navbar-brand small {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .offcanvas {
        max-width: 85%;
    }
}
