/* Shared mobile-first layout for AKAM (Bootstrap 5) */
html {
    -webkit-text-size-adjust: 100%;
}
body {
    overflow-x: hidden;
    max-width: 100%;
}

.main-content,
.content-area,
.table,
.table-container,
.data-table-card,
.month-view,
.week-view,
.day-view {
    max-width: 100%;
    min-width: 0;
}

.main-content,
.content-area {
    overflow-x: hidden;
}

.month-view,
.week-view,
.day-view {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

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

.login-card {
    max-width: 450px;
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 575.98px) {
    .login-card {
        padding: 28px 20px !important;
        border-radius: 16px !important;
    }
    .login-title {
        font-size: 22px !important;
    }
    .login-icon {
        width: 88px !important;
        height: 88px !important;
    }
    .login-logo {
        width: 72px !important;
        height: 72px !important;
    }
}

@media (max-width: 991.98px) {
    .sidebar {
        left: -280px !important;
        width: min(280px, 86vw) !important;
        z-index: 1055 !important;
    }
    .sidebar.open {
        left: 0 !important;
    }
    .burger-menu {
        display: flex !important;
        position: fixed !important;
        top: 12px !important;
        left: 12px !important;
        z-index: 1060 !important;
    }
    .main-content {
        margin-left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .top-header {
        padding: 12px 16px 12px 68px !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 8px;
        min-width: 0;
        overflow: hidden;
    }
    .top-header > div:first-child {
        min-width: 0;
        flex: 1 1 auto;
        overflow: hidden;
    }
    .breadcrumbs {
        font-size: 12px !important;
        line-height: 1.4;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
    }
    .user-info {
        gap: 6px !important;
        margin-left: auto;
        flex: 0 1 auto;
        min-width: 0;
        max-width: min(58vw, 220px);
        overflow: hidden;
    }
    .user-info .bi-bell {
        flex: 0 0 auto;
    }
    .user-info .user-dropdown,
    .user-info .user-avatar {
        flex: 0 0 auto;
    }
    /* iOS Safari needs min-width:0 + overflow on flex children for ellipsis */
    .user-info .user-meta,
    .user-info > div:last-child:not(.user-dropdown) {
        min-width: 0 !important;
        max-width: 120px;
        overflow: hidden !important;
        flex: 1 1 auto;
    }
    .user-info .user-name-text,
    .user-info > div:last-child:not(.user-dropdown) > div:first-child {
        font-size: 13px !important;
        line-height: 1.25 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
        display: block !important;
    }
    .user-info .user-role-text,
    .user-info > div:last-child:not(.user-dropdown) > div:last-child {
        font-size: 11px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
        display: block !important;
    }
    .org-filter {
        padding: 10px 16px !important;
    }
    .content-area {
        padding: 16px !important;
    }
    .page-header,
    .page-header-section,
    .content-area > div[style*="justify-content: space-between"] {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
        margin-bottom: 18px !important;
    }
    #dashboardOrgFilterWrap {
        width: 100% !important;
        flex-wrap: wrap !important;
    }
    #dashboardOrgFilterWrap .form-select,
    #organisationFilter {
        width: 100% !important;
        max-width: 100% !important;
    }
    .page-header-left {
        width: 100%;
    }
    .page-title,
    .page-header h1,
    .page-title h1 {
        font-size: 22px !important;
        line-height: 1.25 !important;
    }
    .page-subtitle,
    .page-description,
    .page-header p {
        font-size: 13px !important;
    }
    .btn-create,
    .edit-profile-btn,
    .page-header .btn {
        width: 100%;
        justify-content: center;
    }
    .search-filter-bar,
    .filter-section,
    .filters-bar,
    .filters-section,
    .filter-row,
    .search-controls,
    .view-controls,
    .date-navigation {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
    }
    .filter-row {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }
    .filter-item,
    .search-input,
    .search-input-wrapper,
    .filter-select,
    .search-filter-bar .form-select,
    .search-filter-bar .form-control,
    .filter-item .form-select,
    .filter-item .form-control {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex: 1 1 auto !important;
    }
    .view-buttons {
        width: 100%;
        flex-wrap: wrap;
    }
    .view-btn {
        flex: 1 1 auto;
        text-align: center;
    }
    .current-date {
        min-width: 0 !important;
        width: 100%;
    }
    .main-info-cards,
    .info-grid,
    .info-row {
        grid-template-columns: 1fr !important;
    }
    .summary-value,
    .metric-value,
    .summary-card-content .number {
        font-size: 26px !important;
    }
    .page-header-left {
        flex-wrap: wrap;
        width: 100%;
    }
    .nav-tabs {
        flex-wrap: nowrap !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .nav-tabs .nav-link {
        white-space: nowrap;
    }
    .modal-header {
        flex-wrap: wrap !important;
        gap: 10px;
    }
    .modal-body {
        padding: 16px !important;
    }
    .table-card,
    .batches-table-card {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .summary-cards {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
    }
    .summary-card {
        min-width: 0 !important;
        width: 100% !important;
    }
    .student-info-content {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    .student-academic-section,
    .student-photo-section {
        width: 100% !important;
    }
    .tabs-header,
    .settings-tabs {
        overflow-x: auto;
        flex-wrap: nowrap !important;
        -webkit-overflow-scrolling: touch;
    }
    .tabs-header .tab-item,
    .settings-tab {
        flex: 0 0 auto;
        white-space: nowrap;
    }
    .data-table-card,
    .table-container,
    .table-responsive {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }
    table.table {
        min-width: 640px;
    }
    .modal-dialog {
        margin: 0.5rem !important;
        max-width: calc(100% - 1rem) !important;
    }
    .modal-dialog.modal-lg,
    .modal-dialog.modal-xl {
        max-width: calc(100% - 1rem) !important;
    }
    .month-view,
    .week-view,
    .day-view {
        padding: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }
    .calendar-grid,
    .calendar-header {
        gap: 2px !important;
        width: 100% !important;
        min-width: 0 !important;
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    }
    .calendar-day {
        min-height: 56px !important;
        min-width: 0 !important;
        padding: 2px !important;
        overflow: hidden;
    }
    .calendar-day-header,
    .calendar-day-number {
        font-size: 10px !important;
        padding: 2px !important;
    }
    .calendar-day-events {
        max-height: 36px !important;
    }
    .calendar-day-events .calendar-event-item,
    .calendar-event-item {
        font-size: 8px !important;
        padding: 1px 2px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100%;
    }
    .week-grid {
        min-width: 720px !important;
    }
    .metric-card {
        margin-bottom: 12px !important;
    }
    .action-buttons {
        flex-wrap: wrap;
    }
}

@media (max-width: 575.98px) {
    .summary-cards {
        grid-template-columns: 1fr !important;
    }
    .top-header {
        padding: 10px 12px 10px 60px !important;
    }
    .user-info {
        max-width: min(52vw, 170px);
        gap: 4px !important;
    }
    .user-info .user-meta,
    .top-header .user-info > div:last-child:not(.user-dropdown) {
        display: block !important;
        max-width: 88px !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }
    .user-info .user-role-text,
    .top-header .user-info > div:last-child:not(.user-dropdown) > div:last-child {
        display: none !important;
    }
    .user-info .user-name-text,
    .top-header .user-info > div:last-child:not(.user-dropdown) > div:first-child {
        font-size: 12px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
    }
    .user-info .user-avatar {
        width: 34px !important;
        height: 34px !important;
        font-size: 12px !important;
    }
    .calendar-day {
        min-height: 48px !important;
    }
    .page-title,
    .page-header h1,
    .page-title h1 {
        font-size: 20px !important;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .summary-cards {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

.table-responsive,
.table-container,
.data-table-card .table-responsive {
    width: 100%;
}

.form-select,
.form-control {
    max-width: 100%;
}
