/* =========================================================
   EduPro final UI stability patch
   - Fix popup/modal being covered by sidebar/header
   - Fix modal bodies not scrolling
   - Fix assignment/review detail popups and grading scroll
   - Keep sidebar responsive rules untouched
========================================================= */

:root {
    --edupro-z-sidebar: 100000;
    --edupro-z-sidebar-toggle: 100110;
    --edupro-z-overlay: 2147483000;
    --edupro-z-popup: 2147483010;
    --edupro-modal-safe-gap: 18px;
}

/* SweetAlert must always be above every LMS sidebar/modal layer */
.swal2-container,
.edupro-swal-top-container {
    z-index: 2147483646 !important;
}

.swal2-popup,
.edupro-swal-top-popup {
    z-index: 2147483647 !important;
}

body.swal2-shown .edupro-sidebar,
body.swal2-shown .edupro-admin-sidebar,
body.swal2-shown .edupro-role-sidebar,
body.swal2-shown .edupro-student-sidebar,
body.swal2-shown .edupro-teacher-sidebar,
body.swal2-shown .edupro-role-sidebar-toggle,
body.swal2-shown .edupro-notification-float,
body.swal2-shown .edupro-student-notification-float,
body.swal2-shown .edupro-floating-notify {
    z-index: 1 !important;
}

/* Native LMS overlays must be higher than sidebar/header */
.edupro-modal-overlay,
.edupro-absence-modal-overlay,
.edupro-teacher-assignment-modal,
.edupro-material-viewer-overlay,
.edupro-sidebar-mobile-overlay.is-open {
    z-index: var(--edupro-z-overlay) !important;
}

.edupro-modal-overlay.is-open,
.edupro-absence-modal-overlay.active,
.edupro-material-viewer-overlay,
.edupro-teacher-assignment-modal:not([hidden]) {
    display: flex;
}

.edupro-modal-overlay.is-open ~ .edupro-role-sidebar-toggle,
body.edupro-modal-open .edupro-role-sidebar-toggle,
html.edupro-material-viewer-open .edupro-role-sidebar-toggle,
body.edupro-modal-open .edupro-sidebar,
body.edupro-modal-open .edupro-admin-sidebar,
body.edupro-modal-open .edupro-role-sidebar,
html.edupro-material-viewer-open .edupro-sidebar,
html.edupro-material-viewer-open .edupro-admin-sidebar,
html.edupro-material-viewer-open .edupro-role-sidebar {
    z-index: 5 !important;
}

/* Stop page behind modal, but allow the modal itself to scroll */
html.edupro-material-viewer-open,
html.edupro-material-viewer-open body,
body.edupro-modal-open {
    overflow: hidden !important;
}

/* Generic modal panels: one scroll source inside body */
.edupro-session-modal,
.edupro-assignment-modal,
.edupro-question-modal,
.edupro-viewer-modal,
.edupro-absence-modal,
.edupro-teacher-assignment-modal-dialog,
.edupro-material-viewer-modal {
    position: relative !important;
    z-index: var(--edupro-z-popup) !important;
    display: flex !important;
    flex-direction: column !important;
    max-height: calc(100dvh - (var(--edupro-modal-safe-gap) * 2)) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

.edupro-session-modal,
.edupro-assignment-modal,
.edupro-question-modal {
    width: min(1180px, calc(100vw - 40px)) !important;
}

.edupro-viewer-modal,
.edupro-teacher-assignment-modal-dialog {
    width: min(1500px, calc(100vw - 40px)) !important;
}

.edupro-modal-head,
.edupro-modal-footer,
.edupro-session-actions-top,
.edupro-tabs,
.edupro-session-sticky-footer,
.edupro-material-viewer-head,
.edupro-material-viewer-foot {
    flex: 0 0 auto !important;
}

.edupro-modal-body,
.edupro-session-modal .edupro-modal-body,
.edupro-assignment-modal .edupro-modal-body,
.edupro-question-modal .edupro-modal-body,
.edupro-viewer-modal .edupro-modal-body,
.edupro-teacher-assignment-detail-modal-body,
.edupro-material-viewer-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
    box-sizing: border-box !important;
}

/* Session modal nested tabs: avoid hidden content from blocking scroll */
#edupro-session-modal .edupro-modal-body,
#edupro-assignment-modal .edupro-modal-body,
#edupro-question-modal .edupro-modal-body {
    max-height: none !important;
}

#edupro-session-modal .edupro-tab-panel,
#edupro-assignment-modal .edupro-tab-panel,
#edupro-question-modal .edupro-tab-panel {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
}

/* Teacher/Admin assignment detail popups: scroll body, not whole page */
.edupro-admin-assignment-detail-popup,
.edupro-teacher-assignment-detail-popup {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.edupro-teacher-assignment-detail-modal-body .edupro-admin-assignment-detail-popup {
    max-height: none !important;
    overflow: visible !important;
}

.edupro-admin-assignment-workspace {
    min-height: 0 !important;
    min-width: 0 !important;
    overflow: visible !important;
}

.edupro-admin-assignment-passage-side {
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-gutter: stable;
}

.edupro-admin-question-list {
    min-width: 0 !important;
}

/* SweetAlert assignment detail from Admin > Student detail */
.swal2-popup.edupro-admin-assignment-swal {
    width: min(1500px, 96vw) !important;
    max-width: min(1500px, 96vw) !important;
    max-height: calc(100dvh - 36px) !important;
    padding: 0 !important;
    border-radius: 24px !important;
    overflow: hidden !important;
}

.swal2-popup.edupro-admin-assignment-swal .swal2-html-container {
    width: 100% !important;
    max-height: calc(100dvh - 120px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    margin: 0 !important;
    padding: 22px !important;
    text-align: left !important;
    scrollbar-gutter: stable;
}

.swal2-popup.edupro-admin-assignment-swal .swal2-actions {
    margin: 0 !important;
    padding: 14px 18px 18px !important;
    border-top: 1px solid #e5e7eb !important;
    background: #ffffff !important;
}

.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-workspace {
    grid-template-columns: minmax(260px, 32%) minmax(0, 1fr) !important;
    align-items: start !important;
}

.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-passage-side {
    position: sticky !important;
    top: 0 !important;
    max-height: calc(100dvh - 190px) !important;
}

/* Material viewer: admin/teacher/student full window, no hidden bottom */
.edupro-material-viewer-overlay {
    align-items: stretch !important;
    justify-content: stretch !important;
    padding: 0 !important;
}

.edupro-material-viewer-modal {
    width: 100vw !important;
    height: 100dvh !important;
    max-width: 100vw !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
}

.edupro-material-viewer-body,
.edupro-material-pdf-viewer,
.edupro-material-office-body,
.edupro-material-ispring-shell,
.edupro-material-ppt-shell,
.edupro-material-media-shell,
.edupro-material-image-shell {
    min-height: 0 !important;
    height: 100% !important;
    max-height: none !important;
    box-sizing: border-box !important;
}

.edupro-material-office-iframe,
.edupro-material-link-iframe,
.edupro-material-ppt-iframe,
.edupro-material-ispring-iframe {
    height: 100% !important;
    min-height: 0 !important;
}

.edupro-material-pdf-canvas-wrap {
    height: calc(100dvh - 150px) !important;
    max-height: none !important;
    overflow: auto !important;
}

/* Grading pages: stable scroll on large PC and laptop */
body:has(.edupro-essay-grading-app) {
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

.edupro-essay-grading-app {
    min-height: 0 !important;
    overflow: visible !important;
}

@media (min-width: 1101px) {
    .edupro-essay-grading-app {
        height: auto !important;
        max-height: none !important;
        align-items: stretch !important;
    }

    .edupro-essay-left,
    .edupro-essay-right {
        min-height: 0 !important;
        height: calc(100dvh - 210px) !important;
        max-height: calc(100dvh - 210px) !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .edupro-essay-left {
        overflow: hidden !important;
    }

    .edupro-essay-right {
        overflow-y: auto !important;
        overflow-x: hidden !important;
        scrollbar-gutter: stable;
    }

    .edupro-essay-list {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        scrollbar-gutter: stable;
    }

    .edupro-essay-panel-head,
    .edupro-essay-filters {
        flex: 0 0 auto !important;
    }
}

/* Evaluation / review sections: allow inner content to scroll when long */
.edupro-teacher-reviews-main,
.edupro-student-reviews-page,
.edupro-admin-review-panel,
.edupro-admin-parent-review-panel,
.edupro-admin-teacher-review-panel {
    min-height: 0 !important;
    overflow: visible !important;
}

.edupro-admin-review-list,
.edupro-admin-parent-review-list,
.edupro-admin-teacher-review-list,
.edupro-student-review-list-pro,
.edupro-student-review-list {
    min-height: 0 !important;
    overflow: visible !important;
}

/* Prevent notification bell from covering modal footer/actions */
body.edupro-modal-open .edupro-notification-float,
body.edupro-modal-open .edupro-student-notification-float,
body.edupro-modal-open .edupro-floating-notify,
html.edupro-material-viewer-open .edupro-notification-float,
html.edupro-material-viewer-open .edupro-student-notification-float,
html.edupro-material-viewer-open .edupro-floating-notify,
body.swal2-shown .edupro-notification-float,
body.swal2-shown .edupro-student-notification-float,
body.swal2-shown .edupro-floating-notify {
    opacity: 0 !important;
    pointer-events: none !important;
}

@media (max-width: 900px) {
    .edupro-session-modal,
    .edupro-assignment-modal,
    .edupro-question-modal,
    .edupro-viewer-modal,
    .edupro-teacher-assignment-modal-dialog {
        width: calc(100vw - 20px) !important;
        max-height: calc(100dvh - 20px) !important;
    }

    .swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-workspace {
        grid-template-columns: 1fr !important;
    }

    .swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-passage-side {
        position: static !important;
        max-height: none !important;
    }
}

/* =========================================================
   EduPro final fix - Schedule page scroll + inline add button
   Mục tiêu:
   - Không khóa scroll trang Lịch giảng dạy.
   - Nút "Thêm lịch giảng dạy" nằm ngang với bộ lọc, không còn full-width quá lớn.
   - Không ảnh hưởng classroom/fullscreen/modal.
========================================================= */
body:not(.edupro-modal-open):not(.edupro-classroom-has-fullscreen-hide):not(:has(.edupro-classroom-mode)) .edupro-schedule-pro-main {
    min-height: 100vh !important;
    height: auto !important;
    overflow: visible !important;
}

body:not(.edupro-modal-open):not(.edupro-classroom-has-fullscreen-hide):not(:has(.edupro-classroom-mode)) .edupro-schedule-pro-page,
body:not(.edupro-modal-open):not(.edupro-classroom-has-fullscreen-hide):not(:has(.edupro-classroom-mode)) .edupro-schedule-pro-page:not(.edupro-progress-only-view) {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    display: block !important;
    overflow: visible !important;
}

body:not(.edupro-modal-open):not(.edupro-classroom-has-fullscreen-hide):not(:has(.edupro-classroom-mode)) .edupro-schedule-pro-grid,
body:not(.edupro-modal-open):not(.edupro-classroom-has-fullscreen-hide):not(:has(.edupro-classroom-mode)) .edupro-schedule-pro-grid:not(.edupro-schedule-pro-grid-progress) {
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    align-items: start !important;
}

body:not(.edupro-modal-open):not(.edupro-classroom-has-fullscreen-hide):not(:has(.edupro-classroom-mode)) .edupro-session-list-area,
body:not(.edupro-modal-open):not(.edupro-classroom-has-fullscreen-hide):not(:has(.edupro-classroom-mode)) .edupro-session-list-area-full,
body:not(.edupro-modal-open):not(.edupro-classroom-has-fullscreen-hide):not(:has(.edupro-classroom-mode)) #edupro-sessions-list {
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    padding-right: 0 !important;
}

/* Override rule sticky cũ gây kẹt scroll ở desktop */
@media (min-width: 1025px) {
    body:not(.edupro-modal-open):not(.edupro-classroom-has-fullscreen-hide):not(:has(.edupro-classroom-mode)) .edupro-schedule-pro-page:not(.edupro-progress-only-view) {
        height: auto !important;
        min-height: 0 !important;
        display: block !important;
        overflow: visible !important;
    }

    body:not(.edupro-modal-open):not(.edupro-classroom-has-fullscreen-hide):not(:has(.edupro-classroom-mode)) .edupro-schedule-pro-page:not(.edupro-progress-only-view) .edupro-session-list-area {
        max-height: none !important;
        overflow: visible !important;
    }
}

.edupro-filter-row {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 12px !important;
}

.edupro-filter-row > select,
.edupro-filter-row > input[type="date"],
.edupro-filter-row > input[type="text"],
.edupro-filter-row > input[type="search"] {
    flex: 0 1 170px !important;
    min-width: 150px !important;
    max-width: 220px !important;
}

.edupro-filter-row .edupro-create-session-open-inline,
.edupro-filter-row #edupro-open-create-session-modal.edupro-create-session-open-inline,
button.edupro-create-session-open.edupro-create-session-open-inline {
    width: auto !important;
    max-width: 260px !important;
    min-width: 220px !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
    min-height: 46px !important;
    height: 46px !important;
    padding: 0 18px !important;
    border-radius: 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    text-align: center !important;
    white-space: nowrap !important;
    line-height: 1 !important;
}

.edupro-filter-row .edupro-create-session-open-inline span,
button.edupro-create-session-open.edupro-create-session-open-inline span {
    width: 24px !important;
    height: 24px !important;
    margin: 0 !important;
    flex: 0 0 24px !important;
    border-radius: 999px !important;
    font-size: 16px !important;
    line-height: 1 !important;
}

.edupro-filter-row .edupro-create-session-open-inline strong,
button.edupro-create-session-open.edupro-create-session-open-inline strong {
    display: inline !important;
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.15 !important;
}

@media (max-width: 900px) {
    .edupro-filter-row .edupro-create-session-open-inline,
    .edupro-filter-row #edupro-open-create-session-modal.edupro-create-session-open-inline,
    button.edupro-create-session-open.edupro-create-session-open-inline {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        margin-left: 0 !important;
    }
}
/* =========================================================
   Fix Admin > Chi tiết học viên > Popup xem chi tiết bài tập
   - Chặn tổng điểm lố ra ngoài
   - Chặn workspace tràn ngang
   - Cho nội dung scroll đúng trong SweetAlert
========================================================= */

.swal2-popup.edupro-admin-assignment-swal {
    width: min(1500px, 96vw) !important;
    max-width: min(1500px, 96vw) !important;
    max-height: calc(100dvh - 36px) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

/* Quan trọng: width 100% + padding phải có border-box */
.swal2-popup.edupro-admin-assignment-swal .swal2-html-container {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 22px !important;
}

/* Khối popup chính */
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-detail-popup {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* Header popup: tiêu đề bên trái, tổng điểm bên phải */
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-detail-head,
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-popup-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: start !important;
    gap: 18px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* Fix ô Tổng điểm đang bị lố */
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-popup-score {
    position: static !important;
    inset: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;

    width: auto !important;
    min-width: 130px !important;
    max-width: 170px !important;
    flex: 0 0 auto !important;

    padding: 12px 14px !important;
    border-radius: 18px !important;
    box-sizing: border-box !important;

    overflow: hidden !important;
    white-space: nowrap !important;
    text-align: center !important;
}

.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-popup-score span,
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-popup-score strong {
    display: block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-popup-score strong {
    font-size: 24px !important;
    line-height: 1.15 !important;
}

/* Workspace 2 cột không cho tràn ngang */
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-workspace {
    display: grid !important;
    grid-template-columns: minmax(240px, 32%) minmax(0, 1fr) !important;
    gap: 18px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    align-items: start !important;
}

/* Cột trái / cột phải đều không được vượt popup */
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-passage-side,
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-questions-side,
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-question-list,
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-question-card,
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-question-block,
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-question-result-box {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-wrap: break-word !important;
}

/* Cột nội dung bên trái */
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-passage-side {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    max-height: calc(100dvh - 190px) !important;
}

/* Cột câu hỏi bên phải */
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-questions-side {
    overflow: hidden !important;
}

/* Card câu hỏi không lố sang phải */
.swal2-popup.edupro-admin-assignment-swal .edupro-admin-question-card {
    overflow: hidden !important;
}

/* Input / textarea / box bên trong không vượt khung */
.swal2-popup.edupro-admin-assignment-swal input,
.swal2-popup.edupro-admin-assignment-swal textarea,
.swal2-popup.edupro-admin-assignment-swal select,
.swal2-popup.edupro-admin-assignment-swal .edupro-answer-box,
.swal2-popup.edupro-admin-assignment-swal .edupro-question-answer,
.swal2-popup.edupro-admin-assignment-swal .edupro-student-answer {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Footer nút Đóng */
.swal2-popup.edupro-admin-assignment-swal .swal2-actions {
    position: sticky !important;
    bottom: 0 !important;
    z-index: 10 !important;
    margin: 0 !important;
    padding: 14px 18px 18px !important;
    border-top: 1px solid #e5e7eb !important;
    background: #ffffff !important;
}

/* Màn nhỏ chuyển 1 cột */
@media (max-width: 1100px) {
    .swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-detail-head,
    .swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-popup-head {
        grid-template-columns: 1fr !important;
    }

    .swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-popup-score {
        width: 100% !important;
        max-width: 100% !important;
        white-space: normal !important;
    }

    .swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-workspace {
        grid-template-columns: 1fr !important;
    }

    .swal2-popup.edupro-admin-assignment-swal .edupro-admin-assignment-passage-side {
        position: static !important;
        max-height: none !important;
    }
}

/* =========================================================
   EDUPRO FIX - TinyMCE dropdown/menu trong popup bài tập
   Modal đang có z-index rất cao nên menu của editor bị nằm phía sau.
========================================================= */
body .mce-menu,
body .mce-panel.mce-menu,
body .mce-floatpanel,
body .mce-popover,
body .mce-tooltip,
body .mce-window {
    z-index: 2147483646 !important;
}

body .mce-menu,
body .mce-floatpanel {
    pointer-events: auto !important;
}

#edupro-assignment-modal .mce-container,
#edupro-assignment-modal .mce-container-body,
#edupro-assignment-modal .mce-toolbar-grp,
#edupro-assignment-modal .mce-toolbar,
#edupro-assignment-modal .mce-btn-group,
#edupro-assignment-modal .wp-editor-container {
    overflow: visible !important;
}

#edupro-assignment-modal .edupro-assignment-modal,
#edupro-assignment-modal .edupro-modal-body,
#edupro-assignment-modal .edupro-tab-panel.active {
    isolation: auto !important;
}
