/* Shared dialog layout, including confirmations generated by SweetAlert. */
.modal-overlay { padding:24px; }
.modal-overlay .modal-content { width:100%; max-width:720px; max-height:calc(100dvh - 48px); padding:0 28px 28px; border:1px solid var(--line); background:var(--surface); color:var(--ink); border-radius:22px; scrollbar-gutter:stable; }
.modal-overlay .modal-header { position:sticky; top:0; z-index:15; margin:0 -28px 24px; padding:24px 28px 20px; background:var(--surface)!important; border-bottom:1px solid var(--line); border-radius:0; gap:16px; align-items:flex-start; }
.modal-title { display:flex; align-items:center; gap:12px; color:var(--ink)!important; font-size:19px; line-height:1.55; }
.modal-title > i { display:inline-flex; justify-content:center; align-items:center; flex-shrink:0; width:42px; height:42px; border-radius:13px; background:var(--soft); color:var(--accent)!important; font-size:18px; margin:0; }
.dialog-heading { min-width:0; }
.dialog-description { color:var(--muted); font-size:12px; line-height:1.8; margin-top:8px; }
.modal-close { flex-shrink:0; color:var(--muted); border:1px solid var(--line); background:var(--surface); }
.modal-close:hover { background:var(--soft); color:var(--accent); }
.modal-overlay label { font-size:12px; color:var(--muted); margin-bottom:7px; line-height:1.7; }
.modal-overlay .input-field { min-height:46px; padding:11px 13px; background:var(--surface); border-color:var(--line); color:var(--ink); font-size:13px; }
.modal-overlay textarea.input-field { min-height:140px; resize:vertical; line-height:1.9; }
.modal-overlay .input-field[readonly] { background:var(--page); color:var(--muted); }
.modal-overlay .btn { min-height:44px; font-size:13px; }
.modal-overlay .btn-warning, .modal-overlay .btn-purple, .modal-overlay button[type=submit].btn-success { background:#087f60; border-color:#087f60; color:#fff; }
.modal-overlay .btn-warning:hover, .modal-overlay .btn-purple:hover, .modal-overlay button[type=submit].btn-success:hover { background:#056349; }
.modal-overlay form > .border-t, .modal-content > .border-t, .modal-content > .space-y-4 > .border-t { padding-top:20px; margin-top:24px; border-color:var(--line); }
#addStudentForm > .grid:first-child, #editStudentForm > .grid:first-of-type, #moveByIdModal .grid, #bulkMoveModal .bg-blue-50 { padding:18px; border-radius:14px; background:var(--soft)!important; color:var(--ink)!important; border:1px solid var(--line); }
#addStudentInputsContainer, #editStudentInputsContainer { gap:20px; }
#importCsvForm > .border-dashed { border:2px dashed #a7cbb9; padding:36px 20px; border-radius:16px; background:var(--soft); }
#importCsvForm > .border-dashed:focus-within { outline:3px solid var(--accent); outline-offset:3px; }
#importCsvForm .fa-cloud-upload-alt { color:var(--accent); margin-bottom:10px; }
#importCsvForm > .bg-yellow-50 { padding:16px; border-radius:12px; line-height:1.9; }
#fileNameDisplay { overflow-wrap:anywhere; }
#userManageModal .modal-content { max-width:960px!important; }
#addUserForm { padding:22px; border-radius:16px; background:var(--page)!important; border-color:var(--line); }
#addUserForm > .grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
#editUserModal .modal-content { max-width:640px!important; }
#changePwdModal .modal-content, #addColumnModal .modal-content { max-width:480px!important; }
#bulkMoveModal .modal-content { max-width:560px!important; }
.modal-overlay .class-scope-box { background:var(--surface); border-color:var(--line); border-radius:12px; padding:12px; max-height:240px; }
#newUserPermissions, #editUserPermissions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-height:none; }
#newUserPermissions label, #editUserPermissions label { display:flex; align-items:center; gap:9px; padding:11px; margin:0; border-radius:9px; border:1px solid var(--line); cursor:pointer; }
#newUserPermissions label:has(:checked), #editUserPermissions label:has(:checked) { background:var(--soft); border-color:#8ebfa6; color:var(--ink); }
.user-permission-checkbox, .user-class-scope-checkbox { flex-shrink:0; }
.modal-overlay .class-scope-box label span { font-size:12px; }
.modal-overlay .toggle-switch { margin:0; }
.modal-overlay .toggle-switch input { width:0; height:0; }
.toggle-switch input:focus-visible + .toggle-slider { outline:3px solid var(--accent); outline-offset:3px; }
#studentDetailsContent { line-height:1.8; overflow-wrap:anywhere; }
#studentHistoryContent > div { border-radius:10px; padding:12px 14px; border-left:3px solid var(--accent); }
#archiveViewModal .modal-content { width:100%!important; }
#archiveViewModal .modal-header { margin:0 -28px 24px; padding:24px 28px 20px; }
#archiveViewModal th { background:var(--soft); color:var(--ink); border-color:var(--line); }
.swal2-popup { font-family:'Prompt',sans-serif; border-radius:22px!important; padding:28px!important; background:var(--surface)!important; color:var(--ink)!important; border:1px solid var(--line); }
.swal2-title { font-size:22px!important; color:var(--ink)!important; line-height:1.6!important; }
.swal2-html-container { font-size:14px!important; line-height:1.9!important; color:var(--muted)!important; overflow-wrap:anywhere; }
.swal2-styled { border-radius:9px!important; min-height:44px; font-size:13px!important; }
.swal2-confirm { background:#087f60!important; }
.swal2-cancel { background:#edf2ef!important; color:#314b3e!important; }
.swal2-deny { background:#b94141!important; }
.swal2-input, .swal2-textarea, .swal2-select { max-width:100%; border-radius:9px!important; border-color:var(--line)!important; box-shadow:none!important; }
.dark .modal-overlay .class-scope-box, .dark .swal2-popup { background:var(--surface)!important; color:var(--ink)!important; }
@media(max-width:600px) {
    .modal-overlay { padding:10px; align-items:center; }
    .modal-overlay .modal-content { max-height:calc(100dvh - 20px); padding:0 18px 20px; border-radius:18px; }
    .modal-overlay .modal-header, #archiveViewModal .modal-header { margin:0 -18px 20px; padding:18px; gap:10px; }
    .modal-title { font-size:16px; gap:9px; }
    .modal-title > i { width:34px; height:34px; font-size:15px; }
    .dialog-description { font-size:11px; }
    #addUserForm { padding:14px; }
    #addUserForm > .grid, #newUserPermissions, #editUserPermissions { grid-template-columns:1fr; }
    #importCsvForm > .border-t, #archiveViewModal .modal-header + div { flex-wrap:wrap; gap:14px; }
    #importCsvForm > .border-t > div { width:100%; justify-content:flex-end; }
    .modal-overlay .btn { white-space:normal; }
    .swal2-popup { padding:18px!important; }
}
