/* Sticky footer — tránh khoảng trắng body lộ dưới footer trên mobile */
:root {
    --app-vh: 1vh;
}

html {
    height: 100%;
    background-color: #0a0a0a;
    -webkit-text-size-adjust: 100%;
}

body.app-shell {
    min-height: 100%;
    min-height: 100svh;
    min-height: calc(var(--app-vh, 1vh) * 100);
    display: flex;
    flex-direction: column;
    margin: 0;
}

.app-shell > .navbar {
    flex-shrink: 0;
}

.app-main {
    flex: 1 0 auto;
    width: 100%;
}

.app-footer {
    flex-shrink: 0;
    margin-top: auto;
    padding-top: 1.25rem;
    padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
}

.app-footer-grid {
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 0.5rem;
}

.app-footer h6 {
    margin-bottom: .25rem;
}

.app-footer-text + .app-footer-text {
    margin-top: .15rem;
}

.app-footer-divider {
    margin-top: 0.85rem !important;
    margin-bottom: 0.65rem !important;
    opacity: 0.35;
}

.app-footer-copy {
    line-height: 1.35;
}

@media (max-width: 767.98px) {
    .app-main .container {
        padding-bottom: 1rem;
    }

    body.app-shell--mobile-app {
        --customer-dock-height: calc(3.1rem + env(safe-area-inset-bottom, 0px));
        --driver-dock-height: calc(3.35rem + env(safe-area-inset-bottom, 0px));
        min-height: calc(var(--app-vh, 1vh) * 100);
        padding-bottom: 0;
    }

    body.app-shell--mobile-app .app-navbar {
        padding-top: env(safe-area-inset-top, 0px);
    }

    body.app-shell--mobile-app .app-main > .container {
        padding-top: .75rem;
        padding-bottom: 0;
    }

    body.app-shell--mobile-app .app-footer {
        display: none;
    }

    body.app-shell--auth .app-footer {
        display: none;
    }
}

/* Validation chung — FormFieldValidation */
.guest-field-error {
    font-size: .8125rem;
    margin-top: .25rem;
}

.form-control.is-invalid,
.form-select.is-invalid {
    border-color: #dc3545;
    box-shadow: 0 0 0 .15rem rgba(220, 53, 69, .12);
}
