/* Admin layout fixes: shared table and modal alignment. */

/* Data tables */
.admin-teacher-table .admin-table-head,.admin-teacher-table .admin-table-row{display:grid;grid-template-columns:minmax(180px,1.8fr) minmax(180px,1.4fr) .65fr .8fr .8fr .55fr;gap:12px;align-items:center;}
.admin-student-table .admin-table-head,.admin-student-table .admin-table-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,.8fr) minmax(0,.7fr) minmax(0,1fr) minmax(0,.7fr) minmax(145px,1.1fr);gap:12px;align-items:center;box-sizing:border-box;}
.admin-student-table .admin-table-head>*,.admin-student-table .admin-table-row>*{min-width:0;}
.admin-student-table .admin-table-row{width:100%;min-width:0;overflow:hidden;}
.admin-student-table .admin-table-row>div{min-width:0;overflow:hidden;}
.admin-student-table .admin-table-row>span:not(.status-pill){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-student-table .student-scheduling-status{display:flex;width:100%;max-width:100%;min-width:0;box-sizing:border-box;height:auto;min-height:26px;padding:5px 7px;line-height:1.2;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;word-break:normal;text-align:center;cursor:default;}
.admin-student-table .admin-table-head:last-child{text-align:center;}
.admin-attendance-table .admin-table-head,.admin-attendance-table .admin-table-row{display:grid;grid-template-columns:1.35fr 1.35fr 1.2fr .95fr .7fr;gap:12px;align-items:center;}
.admin-leave-table .admin-table-head,.admin-leave-table .admin-table-row{display:grid;grid-template-columns:1.25fr 1.35fr .85fr 1.8fr .85fr;gap:12px;align-items:center;}
.admin-class-table .admin-table-head,.admin-class-table .admin-table-row{display:grid;grid-template-columns:1.35fr 1.15fr .75fr 1fr .9fr;gap:12px;align-items:center;}
.admin-users-table .admin-table-head,.admin-users-table .admin-table-row{display:grid;grid-template-columns:1.5fr 1.5fr .9fr .9fr;gap:12px;align-items:center;}
.admin-activity-table .admin-table-head,.admin-activity-table .admin-table-row{display:grid;grid-template-columns:1.15fr .9fr 1.15fr 2.1fr;gap:12px;align-items:center;}

/* Actual class list */
.admin-class-list{display:grid;gap:0;border:1px solid #e2e7ed;border-radius:12px;overflow:hidden;background:#fff;}
.admin-class-row{display:grid;grid-template-columns:minmax(190px,1.7fr) minmax(180px,1.15fr) minmax(130px,.85fr);align-items:center;gap:18px;width:100%;min-height:68px;padding:12px 16px;border:0;border-bottom:1px solid #edf0f4;background:#fff;text-align:left;font:inherit;color:#172033;}
.admin-class-row:last-child{border-bottom:0}.admin-class-row:hover{background:#fafbfc}
.admin-class-main b,.admin-class-main small,.admin-class-time b,.admin-class-time span,.admin-class-status small{display:block}.admin-class-main small,.admin-class-time span,.admin-class-status small{margin-top:3px;color:#687386;font-size:11px}.admin-class-status{text-align:right}
.admin-class-student-group{border-bottom:1px solid #e2e7ed;background:#fff;}
.admin-class-student-group:last-child{border-bottom:0;}
.admin-class-student-group summary{display:grid;grid-template-columns:minmax(180px,1.7fr) minmax(180px,1.15fr) 24px;align-items:center;gap:18px;min-height:68px;padding:12px 16px;box-sizing:border-box;cursor:pointer;list-style:none;user-select:none;}
.admin-class-student-group summary::-webkit-details-marker{display:none;}
.admin-class-student-group summary:hover{background:#fafbfc;}
.admin-class-student-main b,.admin-class-student-main small,.admin-class-student-next b,.admin-class-student-next small{display:block;}
.admin-class-student-main small,.admin-class-student-next small{margin-top:3px;color:#687386;font-size:11px;}
.admin-class-student-next{text-align:right;}
.admin-class-student-chevron{font-size:24px;line-height:1;color:#687386;transform:rotate(0deg);transition:transform .12s ease;text-align:center;}
.admin-class-student-group[open] .admin-class-student-chevron{transform:rotate(90deg);}
.admin-class-student-items{border-top:1px solid #edf0f4;background:#fafbfc;}
.admin-class-student-items .admin-class-row{padding-left:32px;background:#fafbfc;}
.admin-class-student-items .admin-class-row:hover{background:#f4f6f9;}

/* Collapsible teacher availability groups */
.availability-teacher-group{border-bottom:1px solid #e2e7ed;background:#fff;}
.availability-teacher-group:last-child{border-bottom:0;}
.availability-teacher-summary{display:grid;grid-template-columns:minmax(180px,1.8fr) minmax(120px,1fr) 24px;align-items:center;gap:12px;min-height:62px;padding:10px 16px;box-sizing:border-box;cursor:pointer;list-style:none;user-select:none;}
.availability-teacher-summary::-webkit-details-marker{display:none;}
.availability-teacher-summary:hover{background:#fafbfc;}
.availability-teacher-summary b,.availability-teacher-summary small{display:block;}
.availability-teacher-summary small{margin-top:3px;color:#687386;font-size:11px;}
.availability-teacher-count{text-align:right;color:#687386;font-size:12px;font-weight:650;}
.availability-teacher-chevron{font-size:24px;line-height:1;color:#687386;transform:rotate(0deg);transition:transform .12s ease;text-align:center;}
.availability-teacher-group[open] .availability-teacher-chevron{transform:rotate(90deg);}
.availability-teacher-items{border-top:1px solid #edf0f4;background:#fafbfc;}
.availability-teacher-items .admin-table-row{background:#fafbfc;}
.availability-teacher-items .admin-table-row:hover{background:#f4f6f9;}

/* Shared modal: backdrop is the outer layer, card is the actual dialog. */
.admin-modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;background:rgba(15,23,42,.50);backdrop-filter:blur(3px);}
.admin-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.50);backdrop-filter:blur(3px);}
.admin-modal-card{position:relative;z-index:1;width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto;box-sizing:border-box;background:#fff;border:1px solid #dfe4eb;border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.24);padding:28px;animation:adminFixModalIn .16s ease-out;}
@keyframes adminFixModalIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.admin-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:20px;border-bottom:1px solid #edf0f4;margin-bottom:22px}.admin-modal-head>div{min-width:0;flex:1}.admin-modal-head h2{font-size:22px;margin:5px 0 0;line-height:1.25}.admin-modal-head p{margin:6px 0 0;color:#687386;font-size:13px;line-height:1.5}.admin-modal .icon-btn{flex:0 0 34px}
.admin-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;width:100%}.admin-modal-grid .admin-field-wide{grid-column:1/-1}.admin-field{display:grid;gap:7px;min-width:0;font-size:12px;font-weight:750;color:#39445a}.admin-field input,.admin-field select,.admin-field textarea{width:100%;box-sizing:border-box;min-height:44px;border:1px solid #d8dee7;border-radius:9px;padding:9px 11px;font:inherit;color:#172033;background:#fff}.admin-field textarea{min-height:100px;resize:vertical}.admin-field input:focus,.admin-field select:focus,.admin-field textarea:focus{outline:none;border-color:#666bd0;box-shadow:0 0 0 3px rgba(102,107,208,.11)}
.admin-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:0}.admin-detail-grid>div{border:1px solid #edf0f4;border-radius:10px;padding:12px;background:#fafbfc}.admin-detail-grid span{display:block;color:#687386;font-size:11px}.admin-detail-grid b{display:block;margin-top:4px;font-size:13px}.admin-modal-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;margin-top:22px;padding-top:16px;border-top:1px solid #edf0f4}.admin-form-error{color:#b42318;font-size:12px;margin-right:auto}
.admin-modal-overlay{position:fixed;inset:0;z-index:2100;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.50);backdrop-filter:blur(3px)}

/* Compensation editor: keep every control inside the Admin content area. */
.compensation-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:stretch;margin-bottom:14px;}
.compensation-toolbar>*{min-width:0;width:100%;box-sizing:border-box;}
.compensation-toolbar #compNotes{grid-column:span 3;}
.compensation-toolbar #compSave{grid-column:span 1;white-space:nowrap;}
.compensation-toolbar .select-input,.compensation-toolbar .search-input,.compensation-toolbar .date-input{min-height:44px;}
@media(max-width:1100px){.compensation-toolbar{grid-template-columns:repeat(3,minmax(0,1fr));}.compensation-toolbar #compNotes{grid-column:span 2;}.compensation-toolbar #compSave{grid-column:span 1;}}
@media(max-width:760px){.compensation-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));}.compensation-toolbar #compNotes{grid-column:1/-1;}.compensation-toolbar #compSave{grid-column:1/-1;}}
@media(max-width:480px){.compensation-toolbar{grid-template-columns:1fr;}.compensation-toolbar #compNotes,.compensation-toolbar #compSave{grid-column:1;}}

@media(max-width:900px){.admin-teacher-table .admin-table-head,.admin-teacher-table .admin-table-row{grid-template-columns:2fr 1.3fr .7fr .8fr .8fr .55fr}.admin-class-row{grid-template-columns:minmax(180px,1.6fr) minmax(160px,1.1fr) minmax(120px,.8fr)}.admin-class-student-group summary{grid-template-columns:minmax(180px,1.6fr) minmax(160px,1.1fr) 24px}}
@media(max-width:640px){.admin-modal{padding:10px;align-items:flex-end}.admin-modal-card{max-height:calc(100vh - 20px);border-radius:14px 14px 0 0;padding:20px}.admin-modal-grid,.admin-detail-grid{grid-template-columns:1fr}.admin-modal-actions{justify-content:stretch}.admin-modal-actions>button{flex:1 1 140px}.admin-table{overflow-x:auto}.admin-table-head,.admin-table-row{min-width:760px}.admin-class-list{overflow-x:auto}.admin-class-row{min-width:620px}.admin-class-student-group summary{min-width:620px}.availability-teacher-summary{grid-template-columns:minmax(150px,1fr) auto 24px;min-width:0}.availability-teacher-count{font-size:11px}.availability-teacher-items{overflow-x:auto}.availability-teacher-items .admin-table-row{min-width:760px}}
