/* Shared mobile baseline for standalone ASPX pages */
*, *::before, *::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
}

body {
    overflow-x: hidden;
}

.table-scroll,
.table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.table-scroll > table,
.table-responsive > table {
    margin-bottom: 0;
}

@media (max-width: 768px) {
    .container,
    .container-fluid {
        padding-left: 12px;
        padding-right: 12px;
    }

    h1 { font-size: 1.45rem; }
    h2 { font-size: 1.25rem; }
    h3 { font-size: 1.1rem; }
    h4 { font-size: 1rem; }

    .info-bar,
    .school-name,
    .topbar,
    .toolbar,
    .filter-row,
    .filter-container,
    .grid-container,
    .control-group,
    .detail-toolbar,
    .top-actions-row,
    .row.g-2,
    .row.g-3 {
        flex-wrap: wrap !important;
    }

    .txt-custom,
    .dropdown-custom,
    .input-control,
    .btn-custom,
    select.form-control,
    select.form-select,
    input.form-control {
        max-width: 100%;
    }

    .txt-custom,
    .dropdown-custom,
    .input-control {
        width: 100% !important;
        min-width: 0 !important;
    }

    .btn-custom,
    .btn-primary,
    .btn-secondary,
    .btn-success,
    .btn-danger {
        min-height: 44px;
    }

    .p-4 { padding: 1rem !important; }
    .py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
    .py-5 { padding-top: 1.25rem !important; padding-bottom: 1.25rem !important; }

    .otp-container,
    .card {
        width: calc(100% - 24px) !important;
        max-width: none !important;
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box;
    }

    body[style*="padding"] {
        padding: 16px 12px !important;
    }
}
