
/* Teacher timetable */
.teacher-week-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.teacher-week-header h2{font-size:1.8rem;margin:0 0 6px}.teacher-week-header p{margin:0}
.teacher-week-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}
.teacher-week-stats article{background:#fff;border:1px solid #dfe5ef;border-radius:12px;padding:18px}.teacher-week-stats span{display:block;color:#62718a;font-size:.85rem}.teacher-week-stats strong{display:block;font-size:1.8rem;color:#203e85}
.teacher-week-calendar{padding:20px}.teacher-week-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:.82rem;color:#576780;margin-bottom:16px}
.teacher-week-legend span{display:inline-flex;align-items:center;gap:7px}
.teacher-week-key{display:inline-block;width:12px;height:12px;border-radius:3px}.teacher-week-key.booked{background:#bcd2ff;border:1px solid #4c77d6}.teacher-week-key.blocked{background:#ffe3bc;border:1px solid #df9b3b}.teacher-week-key.clear{background:#f5f7fa;border:1px solid #dce4ef}
.teacher-week-scroll{overflow-x:auto;overscroll-behavior-x:contain;border:1px solid #dfe7f0;border-radius:12px}
.teacher-week-chart{display:grid;grid-template-columns:72px repeat(7,minmax(126px,1fr));min-width:960px;background:#fff}
.teacher-week-axis-head,.teacher-week-day-head{height:58px;border-bottom:1px solid #dce3ee;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f0f5ff}
.teacher-week-axis-head{font-size:.8rem;font-weight:800;color:#536483}.teacher-week-day-head strong{color:#2e4574}.teacher-week-day-head small{font-size:.72rem}.teacher-week-day-head.is-today{background:#dce9ff;color:#1742a6}
.teacher-week-axis-hours{position:relative;background:#fbfcff}
.teacher-week-hour{height:58px;border-top:1px solid #e6ebf2;padding:3px 5px;text-align:center;font-size:.72rem;color:#697892}
.teacher-week-day{min-width:0;border-left:1px solid #e4e9f1}
.teacher-week-day-body{position:relative;background:repeating-linear-gradient(to bottom,#fff 0px,#fff 57px,#e7ecf4 57px,#e7ecf4 58px)}
.teacher-week-no-slot{position:absolute;top:20px;left:5px;right:5px;text-align:center;font-size:.75rem;color:#9ba9bb}
.teacher-week-event{position:absolute;left:3px;right:3px;width:calc(100% - 6px);display:flex;flex-direction:column;text-align:left;gap:2px;overflow:hidden;padding:5px 7px;border-radius:7px;border:1px solid #6388d9;z-index:1;background:#e7efff;color:#203c77;box-shadow:0 2px 5px #274a8210}
.teacher-week-event.is-busy{background:#fff0d9;border-color:#e5af62;color:#794b13}
.teacher-week-event:hover{filter:brightness(.97);z-index:2}
.teacher-week-event strong{font-size:.74rem;line-height:1.2;overflow-wrap:anywhere}.teacher-week-event small{font-size:.68rem;color:inherit}.teacher-week-time{font-size:.67rem;font-weight:800}
.teacher-week-hint{font-size:.8rem;margin:12px 0 0}
.teacher-week-list-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.teacher-week-list-day{border:1px solid #e0e7f1;border-radius:10px;padding:13px}
.teacher-week-list-heading{display:flex;justify-content:space-between;gap:8px;margin-bottom:9px;color:#203966}.teacher-week-list-heading span{font-size:.8rem;color:#72819a}
.teacher-week-list-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:7px;text-align:left;background:#f7f9fe;border:1px solid #e3eafa;border-radius:9px;padding:11px;margin-bottom:7px}
.teacher-week-list-item small{display:block;color:#60718b}.teacher-week-list-item strong{font-size:.84rem}
.teacher-week-pill{font-size:.69rem;border-radius:15px;padding:3px 6px;white-space:nowrap}.teacher-week-pill.class{background:#e0eaff;color:#2354b1}.teacher-week-pill.busy{background:#ffedd3;color:#925717}
.teacher-week-mini{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.teacher-week-mini-day{padding:11px 5px;text-align:center;background:#f4f7fd;border:1px solid #e2e9f4;border-radius:9px}
.teacher-week-mini-day.is-today{background:#e5efff;border-color:#8eb0f0}.teacher-week-mini-day span,.teacher-week-mini-day small{display:block;font-size:.73rem;color:#66748d}
.teacher-week-dialog{width:min(560px,95vw);max-height:90vh;overflow-y:auto;padding:0}
.teacher-week-modal-head{padding:23px 24px 16px;background:#f3f7ff;border-bottom:1px solid #e0e7f2}.teacher-week-modal-head h2{margin:0 0 5px}.teacher-week-modal-head p{margin:0;font-size:.86rem}
.teacher-week-form-content{padding:22px 24px 4px}.teacher-week-form-content .field[hidden]{display:none}
.teacher-week-time-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.teacher-week-days{border:1px solid #dce5f1;border-radius:10px;margin:0 0 17px;padding:12px}
.teacher-week-days legend{font-size:.9rem;font-weight:700}.teacher-week-days>div{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.teacher-week-days label{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.74rem;margin:0;background:#f6f8fc;border-radius:6px;padding:7px 0}
.teacher-week-days input{width:auto;margin:0}
.teacher-week-modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 24px 22px;border-top:1px solid #e2e9f2}
.teacher-week-modal-actions .danger{margin-right:auto}
@media(max-width:720px){.teacher-week-stats{gap:7px}.teacher-week-stats article{padding:12px 8px}.teacher-week-stats strong{font-size:1.35rem}.teacher-week-mini{grid-template-columns:repeat(4,minmax(0,1fr))}.teacher-week-header h2{font-size:1.45rem}.teacher-week-days>div{grid-template-columns:repeat(4,1fr)}}
@media print{.teacher-week-header .actions,.teacher-week-list,.teacher-week-hint{display:none!important}.teacher-week-scroll{overflow:visible}.teacher-week-chart{min-width:0;grid-template-columns:60px repeat(7,minmax(0,1fr))}.teacher-week-event{font-size:8pt}}

/* Fixed operating window: 6 AM–10 PM IST, with aligned closing boundary. */
.teacher-week-chart-footer{height:28px;border-top:1px solid #dce3ee;background:#f0f5ff}
.teacher-week-end-time{text-align:center;font-size:.72rem;font-weight:800;color:#445776;padding:6px 2px}
.teacher-week-day-body{cursor:crosshair}
.teacher-week-day-body:hover{background-image:repeating-linear-gradient(to bottom,#f9fbff 0px,#f9fbff 57px,#e0e9f9 57px,#e0e9f9 58px)}
.teacher-week-event{cursor:pointer}
.teacher-week-outside-note{padding:12px;border-radius:9px;background:#fff7e9;color:#79501f;font-size:.84rem;margin-top:12px}

/* Administrator read-only teacher timetable */
.admin-timetable-heading{margin-top:2px}
.admin-timetable-overview .table-wrap{overflow-x:auto}
.admin-timetable-overview th,.admin-timetable-overview td{white-space:nowrap}
.admin-timetable-picker{padding:18px 22px}
.admin-timetable-select{display:flex;gap:20px;align-items:end;justify-content:space-between;flex-wrap:wrap}
.admin-timetable-select .field{min-width:min(100%,320px);margin-bottom:0;flex:1}
.admin-timetable-select p{margin:0 0 10px}
.admin-timetable-selected-title{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:20px 0 14px;flex-wrap:wrap}
.admin-timetable-selected-title h2{margin:0}
.admin-timetable-event{cursor:default;pointer-events:none}
.admin-timetable-day{cursor:default}
.admin-timetable-day:hover{background:repeating-linear-gradient(to bottom,#fff 0px,#fff 57px,#e7ecf4 57px,#e7ecf4 58px)}
.admin-timetable-list-item{cursor:default}
.admin-timetable-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.admin-timetable-preview-grid>div{background:#f5f8fe;border:1px solid #e1e9f5;padding:12px;border-radius:10px}
.admin-timetable-preview-grid strong,.admin-timetable-preview-grid span{display:block}
.admin-timetable-preview-grid span{font-size:.83rem;color:#61728a}
@media(max-width:720px){.admin-timetable-picker{padding:15px}.admin-timetable-overview .table-wrap table{min-width:560px}}
