/* Cross-app mobile & touch optimizations */

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

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

iframe {
    max-width: 100%;
}

.public-site {
    overflow-x: clip;
}

/* Prevent iOS zoom on form focus */
@media (max-width: 767.98px) {
    input.form-control,
    select.form-select,
    textarea.form-control,
    .form-control[type="search"],
    .form-control[type="email"],
    .form-control[type="password"],
    .form-control[type="tel"],
    .form-control[type="number"],
    .form-control[type="date"],
    .form-control[type="datetime-local"] {
        font-size: 16px;
    }
}

/* Touch-friendly tap targets */
@media (max-width: 991.98px) {
    .btn,
    .nav-link,
    .dropdown-item,
    .page-link {
        min-height: 44px;
    }

    .btn-sm {
        min-height: 38px;
    }

    .navbar-rcc .nav-link {
        padding: 0.65rem 1rem !important;
    }

    .navbar-rcc .navbar-collapse {
        padding: 0.5rem 0 1rem;
        max-height: min(70vh, 520px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .navbar-rcc .navbar-collapse .btn {
        width: 100%;
        margin-left: 0 !important;
        margin-top: 0.35rem !important;
    }

    .navbar-rcc .dropdown-menu {
        border: none;
        background: rgba(255, 255, 255, 0.08);
        margin-left: 0.75rem;
    }

    .navbar-rcc .dropdown-item {
        color: rgba(255, 255, 255, 0.92);
    }

    .navbar-rcc .dropdown-item:hover,
    .navbar-rcc .dropdown-item:focus {
        background: rgba(255, 255, 255, 0.12);
        color: #fff;
    }
}

/* Safe areas for notched phones */
@supports (padding: max(0px)) {
    .public-site .site-main {
        padding-left: env(safe-area-inset-left);
        padding-right: env(safe-area-inset-right);
    }

    .navbar-rcc .container,
    .footer-rcc .container {
        padding-left: max(0.75rem, env(safe-area-inset-left));
        padding-right: max(0.75rem, env(safe-area-inset-right));
    }

    .quick-fab {
        right: max(1rem, env(safe-area-inset-right));
        bottom: max(1rem, env(safe-area-inset-bottom));
    }

    .back-to-top {
        right: max(1rem, env(safe-area-inset-right));
        bottom: max(5.75rem, calc(5.75rem + env(safe-area-inset-bottom)));
    }

    .site-toast-container {
        padding-top: env(safe-area-inset-top) !important;
        padding-right: env(safe-area-inset-right) !important;
    }

    .app-header {
        padding-top: max(14px, env(safe-area-inset-top));
        padding-left: max(16px, env(safe-area-inset-left));
        padding-right: max(16px, env(safe-area-inset-right));
    }

    .app-bottom-nav {
        padding-left: env(safe-area-inset-left);
        padding-right: env(safe-area-inset-right);
    }

    .app-nav-item {
        min-height: 48px;
        min-width: 48px;
    }
}

/* Public homepage hero — mobile */
@media (max-width: 575.98px) {
    .hero-section {
        padding: 3.25rem 0 4rem;
    }

    .hero-title {
        font-size: clamp(1.75rem, 8vw, 2.25rem);
    }

    .hero-subtitle {
        font-size: 1rem;
    }

    .hero-stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.65rem;
        margin-top: 1.5rem;
        padding-top: 0;
        border-top: 0;
    }

    .hero-stat {
        text-align: center;
        min-width: 0;
        padding: 0.85rem 0.7rem;
    }

    .hero-stat strong {
        font-size: 1.4rem;
    }

    .hero-stat span {
        font-size: 0.65rem;
    }

    .hero-cta .btn {
        width: 100%;
    }

    .hero-slider-arrow {
        width: 40px;
        height: 40px;
    }

    .hero-slider-prev { left: 0.5rem; }
    .hero-slider-next { right: 0.5rem; }

    .hero-slider-dots {
        bottom: 0.85rem;
    }

    .hero-section-slider {
        padding-bottom: 4.5rem;
    }

    .about-page .public-content-card,
    .contact-page .public-content-card {
        padding: 1.25rem 1.15rem;
    }

    .public-hero {
        padding: 2.75rem 0 3.25rem;
    }

    .public-hero-title {
        font-size: clamp(1.55rem, 7vw, 2rem);
    }

    .welcome-modal-actions .btn {
        display: block;
        width: 100%;
        margin-bottom: 0.5rem;
    }
}

@media (max-width: 767.98px) {
    .auth-page {
        padding: 1rem;
        align-items: flex-start;
        padding-top: max(1rem, env(safe-area-inset-top));
    }

    .auth-card-body {
        padding: 1.35rem;
    }

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

    .page-header h2 {
        font-size: 1.35rem;
    }

    .page-header .d-flex,
    .admin-page-header .d-flex {
        flex-wrap: wrap;
        width: 100%;
    }

    .trust-strip .row > [class*="col-"] {
        margin-bottom: 0.35rem;
    }
}

/* Admin mobile shell */
@media (max-width: 991.98px) {
    .admin-shell {
        flex-direction: column;
        min-height: 100vh;
        min-height: 100dvh;
    }

    .admin-main {
        width: 100%;
        min-width: 0;
    }

    .admin-mobile-bar {
        position: sticky;
        top: 0;
        z-index: 1025;
        background: var(--rcc-white);
        border-bottom: 1px solid rgba(123, 31, 162, 0.08);
        padding: 0.65rem 0.85rem;
        padding-top: max(0.65rem, env(safe-area-inset-top));
        padding-left: max(0.85rem, env(safe-area-inset-left));
        padding-right: max(0.85rem, env(safe-area-inset-right));
        display: flex;
        align-items: center;
        gap: 0.65rem;
    }

    .admin-mobile-bar .admin-mobile-title {
        font-family: var(--font-heading);
        font-weight: 700;
        font-size: 0.95rem;
        color: var(--rcc-purple-dark);
        min-width: 0;
    }

    .admin-mobile-menu-btn {
        width: 44px;
        height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        border-radius: 10px;
    }

    .admin-sidebar.offcanvas-lg {
        width: min(280px, 88vw);
        background: linear-gradient(180deg, var(--rcc-purple-deep) 0%, var(--rcc-purple-dark) 50%, var(--rcc-purple) 100%);
        border: none;
    }

    .admin-sidebar.offcanvas-lg .offcanvas-header {
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
        padding: 0.75rem 1rem;
    }

    .admin-sidebar.offcanvas-lg .btn-close {
        filter: invert(1);
        opacity: 0.85;
    }

    .admin-sidebar.offcanvas-lg .offcanvas-body {
        padding: 0.75rem 0.875rem 1rem;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    .admin-topbar {
        flex-wrap: wrap;
        padding: 0.75rem 0.85rem;
        gap: 0.65rem;
    }

    .admin-topbar .admin-search {
        max-width: none !important;
        width: 100%;
        order: 2;
        margin-right: 0 !important;
    }

    .admin-topbar .dropdown {
        margin-left: auto;
    }

    .admin-content {
        padding: 1rem 0.85rem;
        padding-bottom: max(1rem, env(safe-area-inset-bottom));
    }

    /* Horizontal scroll for wide tables */
    .admin-content .card-body:has(> .table),
    .admin-content .card-body.p-0:has(.table),
    .admin-panel .card-body:has(> .table),
    .admin-panel .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .admin-content .card-body > .table,
    .admin-content .card-body.p-0 .table,
    .admin-panel .card-body > .table {
        min-width: 560px;
    }

    .admin-content .card-body > .table td .btn-sm,
    .admin-content .card-body.p-0 .table td .btn-sm {
        min-height: 34px;
        margin-bottom: 0.15rem;
    }

    .admin-stat-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575.98px) {
    .admin-stat-grid {
        grid-template-columns: 1fr;
    }

    .admin-quick-grid {
        grid-template-columns: 1fr;
    }

    #notifList.dropdown-menu {
        width: min(320px, calc(100vw - 2rem)) !important;
    }
}

@media (min-width: 992px) {
    .admin-sidebar.offcanvas-lg {
        position: sticky;
        top: 0;
        height: 100vh;
        height: 100dvh;
        transform: none !important;
        visibility: visible !important;
        display: flex !important;
        flex-direction: column;
    }

    .admin-sidebar.offcanvas-lg .offcanvas-header {
        display: none;
    }

    .admin-sidebar.offcanvas-lg .offcanvas-body {
        flex: 1;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
}
