/* Mobile-first global fixes (2025 Redesign) */

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body { overflow-x: hidden; }

@supports (overflow: clip) {
    body { overflow-x: clip; }
}

img, video, svg { max-width: 100%; height: auto; }

/* Admin: compact content on phones */
@media (max-width: 991.98px) {
    .admin-page-content {
        padding: 1rem 1rem 2rem !important;
    }

    .admin-mobile-topbar {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        padding: 0.65rem 1rem;
        margin: 0;
        background: #fff;
        border-bottom: 1.5px solid #e0e7ff;
        position: sticky;
        top: 0;
        z-index: 1080;
        min-height: 52px;
        box-shadow: 0 2px 12px rgba(79, 70, 229, 0.06);
    }

    .admin-mobile-topbar-left {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        min-width: 0;
        flex: 1;
    }

    .admin-mobile-menu-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 1.5px solid #e0e7ff;
        border-radius: 10px;
        background: #f5f3ff;
        color: #4f46e5;
        font-size: 1.35rem;
        cursor: pointer;
        flex-shrink: 0;
        transition: all 0.2s ease;
    }

    .admin-mobile-menu-btn:active {
        background: #e0e7ff;
    }

    .admin-mobile-title {
        font-weight: 800;
        font-size: 0.95rem;
        color: #1e1b4b;
        letter-spacing: -0.02em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        min-width: 0;
    }

    .admin-sidebar-backdrop {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(30, 27, 75, 0.5);
        z-index: 1095;
        border: 0; padding: 0; margin: 0;
        cursor: pointer;
        backdrop-filter: blur(2px);
    }

    .admin-sidebar-backdrop.show { display: block; }

    body.admin-sidebar-open { overflow: hidden; }
}

@media (min-width: 992px) {
    .admin-mobile-topbar { display: none !important; }
    .admin-sidebar-backdrop { display: none !important; }
}

@media (max-width: 767.98px) {
    .app-header { flex-direction: column; align-items: stretch; }
    .app-header nav { flex-direction: column; width: 100%; }
    .app-header nav a { padding: 0.65rem 0.75rem; }
    .app-header .user { flex-direction: column; align-items: flex-start; width: 100%; }
}

.table-responsive { -webkit-overflow-scrolling: touch; }

@media (max-width: 575.98px) {
    .py-5 {
        padding-top: 2rem !important;
        padding-bottom: 2rem !important;
    }

    .g-4 { --bs-gutter-x: 0.75rem; --bs-gutter-y: 0.75rem; }
}

@media (hover: none) and (pointer: coarse) {
    .btn, .nav-link, .page-link, a.bk-type-tab, a.booking-tab-btn {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .page-link { min-width: 44px; padding: 0.55rem 0.75rem; }
}

/* ─── Global default: containers fluid for admin pages ──────────────────────── */
.container-xxl, .container-xl, .container-lg, .row { max-width: 100%; }

/* ─── Player surface: constrained & centred layout (like venyu.ph) ──────────── */
/*
   Scoped to body.pp-player so the admin panel is completely unaffected.
   Max-width 1400px matches Bootstrap container-xxl — content fills most of the
   screen with just a tasteful margin on very wide monitors (1600px+).
   Side padding is kept small so content feels full, not cramped.
*/
.pp-player .container-xxl,
.pp-player .container-xl,
.pp-player .container-lg {
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    /* Small fixed padding — keeps content from touching viewport edges */
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

/* Full-bleed backgrounds (welcome banner) break out of the constraint;
   only the inner container-xxl inside them stays at 1400px max-width. */
.pp-player .pp-welcome-banner {
    max-width: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}

/* ── Responsive padding scale ──────────────────────────────────────────────── */
/* Mobile: comfortable thumb-zone margins */
@media (max-width: 575.98px) {
    .pp-player .container-xxl,
    .pp-player .container-xl,
    .pp-player .container-lg {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}
