.teacher-schedules-shell { min-height: 100vh; }
.teacher-schedule-main { display: grid; grid-template-columns: minmax(250px, .8fr) minmax(0, 1.5fr); align-content: start; gap: 0 34px; width: min(1700px, 100%); margin: 0 auto; padding: 20px 28px 36px; }
.teacher-back-link { grid-column: 1 / -1; justify-self: start; display: inline-block; margin-bottom: 12px; color: #76502b; font-size: 13px; text-decoration: none; }
.teacher-back-link:hover { text-decoration: underline; }
.teacher-schedule-heading { align-self: center; }
.teacher-schedule-heading .school-chip { margin: 0 0 10px; }
.teacher-schedule-heading h1 { margin: 0 0 4px; color: #20243a; font-size: clamp(30px, 3vw, 42px); }
.teacher-schedule-heading .search-lead { margin: 0; color: #596273; font-size: 14px; }
.teacher-schedule-controls { display: grid; align-content: center; gap: 12px; min-width: 0; }
.teacher-schedule-main .current-academic-period { justify-self: start; max-width: 100%; margin: 0; }
.teacher-area-tabs { display: flex; justify-content: flex-start; gap: 7px; max-width: 100%; overflow-x: auto; padding: 4px 3px 9px; scrollbar-width: thin; }
.teacher-area-tab { flex: 0 0 auto; min-height: 40px; padding: 0 15px; border: 1px solid #dfe3e9; border-radius: 999px; background: #fff; color: #535d6b; font: 600 13px Sarabun,sans-serif; cursor: pointer; }
.teacher-area-tab[aria-selected="true"] { border-color: #ed9a35; background: #fff3e3; color: #8a4a00; box-shadow: inset 0 0 0 1px #ed9a35; }
.teacher-area-tab:focus-visible { outline: 3px solid #f5bb72; outline-offset: 2px; }
.teacher-schedule-message { grid-column: 1 / -1; margin: 10px 0; color: #697386; text-align: center; }
.teacher-schedule-progress { grid-column: 1 / -1; width: min(720px, 100%); margin: 0 auto 14px; padding: 12px 16px; border: 1px solid #e4e7ec; border-radius: 12px; background: #fff; text-align: left; }
.teacher-schedule-progress[hidden] { display: none; }
.teacher-schedule-progress-label { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; color: #596273; font-size: 13px; }
.teacher-schedule-progress-label strong { color: #9a5709; font-variant-numeric: tabular-nums; }
.teacher-schedule-progress progress { display: block; width: 100%; height: 8px; overflow: hidden; border: 0; border-radius: 999px; background: #f1e7db; accent-color: #f0a13b; }
.teacher-schedule-progress progress::-webkit-progress-bar { border-radius: 999px; background: #f1e7db; }
.teacher-schedule-progress progress::-webkit-progress-value { border-radius: 999px; background: linear-gradient(90deg, #ed8c20, #f5b452); transition: width .25s ease; }
.teacher-schedule-progress progress::-moz-progress-bar { border-radius: 999px; background: linear-gradient(90deg, #ed8c20, #f5b452); }
.teacher-schedule-pdf { grid-column: 1 / -1; display: block; width: 100%; height: min(76vh, 1100px); min-height: 560px; border: 1px solid #dfe3e9; border-radius: 12px; background: #fff; }
.teacher-schedule-pdf[hidden] { display: none; }
@media(max-width:760px) {
  .teacher-schedule-main { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 18px 14px 28px; }
  .teacher-back-link, .teacher-schedule-message, .teacher-schedule-progress, .teacher-schedule-pdf { grid-column: 1; }
  .teacher-schedule-heading { padding: 3px 0; }
  .teacher-schedule-controls { gap: 9px; }
  .teacher-area-tabs { justify-content: flex-start; }
  .teacher-schedule-main .current-academic-period { justify-self: start; }
  .teacher-schedule-message { margin: 4px 0; }
  .teacher-schedule-pdf { height: 72vh; min-height: 440px; }
}
