/* ตารางสอบ (public/assets/exam-timetable.js) — the academic office's workspace in the admin page */
.tt{--tt-accent:var(--blue,#2563EB);--tt-soft:color-mix(in srgb,var(--tt-accent) 9%,var(--surface,#fff));--tt-warn:#B45309;--tt-warn-soft:color-mix(in srgb,#F59E0B 14%,var(--surface,#fff));--tt-ok:#047857;--tt-ok-soft:color-mix(in srgb,#10B981 14%,var(--surface,#fff));display:flex;flex-direction:column;gap:16px;color:var(--ink,#0F172A);}
.tt-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;}
.tt-head h2{margin:0;font-size:24px;letter-spacing:-.01em;}
.tt-head p{margin:4px 0 0;color:var(--sub,#64748B);font-size:14px;}
.tt-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.tt-head-actions select{min-width:220px;}

/* the next step */
.tt-next{display:flex;align-items:center;gap:16px;padding:16px 20px;border:1px solid color-mix(in srgb,var(--tt-accent) 35%,var(--line,#E2E8F0));border-radius:18px;background:linear-gradient(135deg,var(--tt-soft),var(--surface,#fff));}
.tt-next.done{border-color:color-mix(in srgb,var(--tt-ok) 35%,var(--line,#E2E8F0));background:linear-gradient(135deg,var(--tt-ok-soft),var(--surface,#fff));}
.tt-next-icon{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--tt-accent);color:#fff;font-size:22px;font-weight:700;}
.tt-next.done .tt-next-icon{background:var(--tt-ok);}
.tt-next-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.tt-next-text small{font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--tt-accent);}
.tt-next.done .tt-next-text small{color:var(--tt-ok);}
.tt-next-text b{font-size:17px;line-height:1.35;}
.tt-next-text span{font-size:13.5px;color:var(--sub,#64748B);}
.tt-next .btn{flex:0 0 auto;min-height:44px;padding:0 22px;font-size:15px;}

/* rail + main */
.tt-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start;}
.tt-rail{position:sticky;top:104px;display:flex;flex-direction:column;gap:12px;}
.tt-steps{display:flex;flex-direction:column;gap:6px;}
.tt-step{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line,#E2E8F0);border-radius:14px;background:var(--surface,#fff);color:var(--ink,#0F172A);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background-color .15s;}
.tt-step:hover{border-color:var(--tt-accent);}
.tt-step.active{border-color:var(--tt-accent);background:var(--tt-soft);box-shadow:0 0 0 1px var(--tt-accent) inset;}
.tt-step-num{flex:0 0 auto;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--grid,#E2E8F0);color:var(--ink,#0F172A);font-size:13px;font-weight:700;}
.tt-step.active .tt-step-num{background:var(--tt-accent);color:#fff;}
.tt-step.done .tt-step-num{background:var(--tt-ok);color:#fff;}
.tt-step-text{display:flex;flex-direction:column;gap:1px;min-width:0;}
.tt-step-text b{font-size:14.5px;}
.tt-step-text small{font-size:12px;color:var(--sub,#64748B);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tt-saved{padding:0 6px;font-size:12.5px;color:var(--sub,#64748B);}
.tt-link-danger{align-self:flex-start;padding:4px 6px;border:0;background:none;color:#DC2626;font:inherit;font-size:12.5px;text-decoration:underline;cursor:pointer;}
.tt-main{display:flex;flex-direction:column;gap:14px;min-width:0;container-type:inline-size;}

.tt-card{background:var(--surface,#fff);border:1px solid var(--line,#E2E8F0);border-radius:16px;padding:18px 20px;box-shadow:0 1px 2px rgba(15,23,42,.04);}
.tt-card h3{margin:0 0 12px;font-size:16px;}
.tt-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.tt-card-head h3{margin:0;}
.tt-card-warn{border-color:color-mix(in srgb,#F59E0B 45%,var(--line,#E2E8F0));background:var(--tt-warn-soft);}
.tt-grid{display:grid;gap:12px 14px;}
.tt-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.tt-span-2{grid-column:span 2;}
.tt-field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--sub,#64748B);}
.tt-field input,.tt-field select{width:100%;min-width:0;}
.tt-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.tt-inline input[type=date],.tt-inline input[type=text]{width:auto;flex:0 1 220px;}
.tt-hint{margin:10px 0 0;color:var(--sub,#64748B);font-size:12.5px;line-height:1.55;}
.tt-muted{color:var(--sub,#64748B);font-weight:400;}
.tt-warn-text{color:var(--tt-warn,#B45309);}
.tt-empty-line{padding:14px;border:1px dashed var(--line,#E2E8F0);border-radius:12px;color:var(--sub,#64748B);font-size:13.5px;text-align:center;}
.tt-empty-big{display:flex;flex-direction:column;gap:4px;padding:28px 16px;}
.tt-empty-big b{color:var(--ink,#0F172A);font-size:15px;}

.tt-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;}
.tt-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:1.5px solid var(--line,#E2E8F0);border-radius:999px;background:var(--surface,#fff);color:var(--ink,#0F172A);font:inherit;font-size:13px;font-weight:600;cursor:pointer;}
.tt-chip small{font-weight:400;color:var(--sub,#64748B);}
.tt-chip:hover{border-color:var(--tt-accent);}
.tt-chip.on{background:var(--tt-soft);border-color:var(--tt-accent);color:var(--tt-accent);}
.tt-chip.on small{color:inherit;opacity:.8;}
.tt-chip button{border:0;background:none;color:inherit;font-size:15px;line-height:1;cursor:pointer;padding:0 0 0 2px;}
.tt-toggle{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;cursor:pointer;margin-top:10px;}
.tt-toggle input{width:18px;height:18px;accent-color:var(--tt-accent);}
.tt-toggle small{display:block;font-weight:400;color:var(--sub,#64748B);}
.tt-icon-btn{width:30px;height:30px;border:1px solid var(--line,#E2E8F0);border-radius:8px;background:var(--surface,#fff);color:var(--sub,#64748B);font-size:16px;cursor:pointer;}
.tt-icon-btn:hover{color:#DC2626;border-color:#FCA5A5;}

/* exam times */
.tt-sessions{display:flex;flex-direction:column;gap:8px;}
.tt-session{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--line,#E2E8F0);border-radius:12px;background:var(--grid,#F8FAFC);}
.tt-session b{min-width:54px;font-size:14.5px;}
.tt-session label{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--sub,#64748B);}
.tt-session input{width:auto;}

/* optional settings folded away */
.tt-mores{display:flex;flex-direction:column;gap:8px;}
.tt-more{border:1px solid var(--line,#E2E8F0);border-radius:14px;background:var(--surface,#fff);}
.tt-more > summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;list-style:none;font-weight:700;font-size:14.5px;}
.tt-more > summary::-webkit-details-marker{display:none;}
.tt-more > summary::after{content:'▾';margin-left:auto;color:var(--sub,#64748B);transition:transform .15s;}
.tt-more[open] > summary::after{transform:rotate(180deg);}
.tt-more > summary small{margin-left:auto;font-weight:500;font-size:12.5px;color:var(--sub,#64748B);}
.tt-more[open] > summary{border-bottom:1px solid var(--line,#E2E8F0);}
.tt-more-body{padding:14px 18px 18px;}

.tt-rules{display:flex;flex-direction:column;gap:8px;margin-top:10px;}
.tt-rule{display:grid;grid-template-columns:minmax(150px,1fr) auto 150px auto 30px;gap:10px 14px;align-items:center;padding:10px 12px;border:1px solid var(--line,#E2E8F0);border-radius:12px;background:var(--grid,#F8FAFC);}
.tt-rule .tt-chips{margin-top:3px;}
.tt-rule .tt-chip{padding:4px 9px;font-size:12px;}
.tt-rule .tt-toggle{margin-top:0;}
.tt-rule-date{font-weight:400;}

/* subjects */
.tt-toolbar{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;margin-bottom:12px;}
.tt-search{min-width:240px;flex:1 1 240px;max-width:360px;}
.tt-group{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--sub,#64748B);margin-left:auto;}
.tt-group select{width:auto;}
.tt-items{border:1px solid var(--line,#E2E8F0);border-radius:14px;overflow:hidden;}
.tt-items-head,.tt-item-wrap,.tt-item{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) minmax(0,1.2fr) 82px 122px 30px;gap:8px 12px;align-items:center;}
.tt-items-head{padding:9px 14px;background:var(--grid,#F8FAFC);font-size:12px;font-weight:700;color:var(--sub,#64748B);border-bottom:1px solid var(--line,#E2E8F0);}
.tt-item{padding:10px 14px;border-bottom:1px solid var(--line,#E2E8F0);}
.tt-item:last-child{border-bottom:0;}
.tt-item.has-issue{background:color-mix(in srgb,#F59E0B 7%,var(--surface,#fff));}
.tt-item-main{display:flex;flex-direction:column;gap:5px;min-width:0;}
.tt-item input,.tt-item select{width:100%;min-width:0;padding:7px 10px;}
.tt-cell-code{font-variant-numeric:tabular-nums;font-size:12.5px !important;color:var(--sub,#64748B);}
.tt-cell-name{font-weight:600;}
.tt-class-cell{display:flex;flex-wrap:wrap;gap:4px;align-items:center;}
.tt-class-cell .tt-chip{padding:3px 8px;font-size:12px;}
.tt-class-add{width:110px !important;padding:4px 8px !important;font-size:12.5px;}
.tt-item-issue{grid-column:1 / -1;font-size:12.5px;font-weight:600;color:var(--tt-warn,#B45309);}
.tt-group-head{padding:9px 14px;background:var(--tt-soft);font-weight:700;font-size:13.5px;border-bottom:1px solid var(--line,#E2E8F0);}
.tt-group-head small{font-weight:400;color:var(--sub,#64748B);margin-left:6px;}
.tt-item .tt-badge,.tt-items-head span{overflow:hidden;text-overflow:ellipsis;}
.tt-badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;text-align:center;}
.tt-badge-ok{background:var(--tt-ok-soft,#D1FAE5);color:var(--tt-ok,#047857);}
.tt-badge-warn{background:var(--tt-warn-soft,#FEF3C7);color:var(--tt-warn,#B45309);}
.tt-badge-soft{background:var(--grid,#F1F5F9);color:var(--sub,#64748B);}
.tt-paste{margin:0 0 12px;padding:12px 14px;border:1px dashed var(--tt-accent);border-radius:12px;background:var(--tt-soft);}
.tt-paste textarea{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:12.5px;}
.tt-table-wrap{overflow-x:auto;border:1px solid var(--line,#E2E8F0);border-radius:12px;}
.tt-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.tt-table th{background:var(--grid,#F8FAFC);text-align:left;font-size:12px;font-weight:700;color:var(--sub,#64748B);padding:9px 10px;border-bottom:1px solid var(--line,#E2E8F0);white-space:nowrap;}
.tt-table td{padding:8px 10px;border-bottom:1px solid var(--line,#E2E8F0);vertical-align:middle;}
.tt-table tr:last-child td{border-bottom:0;}

.tt-problems{margin:0 0 10px;padding:10px 14px 10px 32px;border-radius:12px;background:var(--tt-warn-soft);color:var(--tt-warn);font-size:13.5px;}
.tt-banner{margin:0 0 10px;padding:10px 14px;border-radius:12px;background:var(--tt-warn-soft);color:var(--tt-warn);font-weight:600;font-size:13.5px;}
.tt-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.tt-stats div{padding:12px 14px;border-radius:12px;background:var(--grid,#F8FAFC);border:1px solid var(--line,#E2E8F0);}
.tt-stats b{display:block;font-size:24px;}
.tt-stats span{font-size:12.5px;color:var(--sub,#64748B);}
.tt-stats .tt-stat-warn{background:var(--tt-warn-soft);border-color:transparent;color:var(--tt-warn);}
.tt-stats .tt-stat-warn span{color:inherit;}

/* the timetable itself */
.tt-view-head{align-items:center;}
.tt-segmented{display:inline-flex;flex-wrap:wrap;padding:3px;border:1px solid var(--line,#E2E8F0);border-radius:10px;background:var(--grid,#F8FAFC);}
.tt-segmented button{border:0;background:none;padding:6px 12px;border-radius:8px;font:inherit;font-size:13px;color:var(--sub,#64748B);cursor:pointer;}
.tt-segmented button.on{background:var(--surface,#fff);color:var(--ink,#0F172A);font-weight:700;box-shadow:0 1px 2px rgba(15,23,42,.1);}
.tt-cal-wrap{overflow-x:auto;border:1px solid var(--line,#E2E8F0);border-radius:14px;}
.tt-cal{display:grid;min-width:max-content;width:100%;}
.tt-cal-corner,.tt-cal-day{padding:10px 12px;background:var(--grid,#F8FAFC);border-bottom:1px solid var(--line,#E2E8F0);}
.tt-cal-day{display:flex;flex-direction:column;border-left:1px solid var(--line,#E2E8F0);}
.tt-cal-day b{font-size:14px;}
.tt-cal-day span{font-size:12.5px;color:var(--sub,#64748B);}
.tt-cal-time{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-top:1px solid var(--line,#E2E8F0);background:var(--grid,#F8FAFC);font-size:13px;color:var(--ink,#0F172A);}
.tt-cal-time span{font-size:12px;color:var(--sub,#64748B);font-variant-numeric:tabular-nums;}
.tt-sitting-time{font-weight:700;font-variant-numeric:tabular-nums;color:var(--tt-accent);}
.tt-cal-cell{display:flex;flex-direction:column;gap:6px;padding:8px;border-top:1px solid var(--line,#E2E8F0);border-left:1px solid var(--line,#E2E8F0);min-height:54px;}
.tt-day{border:1px solid var(--line,#E2E8F0);border-radius:14px;overflow:hidden;margin-bottom:10px;}
.tt-day-head{display:flex;justify-content:space-between;align-items:baseline;padding:10px 14px;background:var(--tt-soft);font-weight:700;}
.tt-day-head small{font-weight:400;color:var(--sub,#64748B);}
.tt-slot{display:grid;grid-template-columns:130px 1fr;border-top:1px solid var(--line,#E2E8F0);}
.tt-slot-time{padding:10px 14px;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700;color:var(--sub,#64748B);background:var(--grid,#F8FAFC);}
.tt-slot-items{display:flex;flex-wrap:wrap;gap:8px;padding:8px 10px;}
.tt-sitting{display:flex;flex-direction:column;gap:2px;min-width:170px;padding:7px 10px;border:1px solid var(--line,#E2E8F0);border-left:4px solid var(--tt-accent);border-radius:10px;background:var(--surface,#fff);font-size:12.5px;line-height:1.4;}
.tt-slot-items .tt-sitting{flex:1;max-width:360px;min-width:200px;}
.tt-sitting b{font-size:13px;}
.tt-sitting.split{border-left-color:#F59E0B;}
.tt-class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px;}
.tt-class-card{border:1px solid var(--line,#E2E8F0);border-radius:12px;padding:10px 12px;}
.tt-class-card h4{margin:0 0 6px;font-size:14.5px;}
.tt-class-card h4 small{font-weight:400;color:var(--sub,#64748B);margin-left:4px;}
.tt-line{display:grid;grid-template-columns:auto 1fr auto;gap:8px;padding:5px 0;border-top:1px dashed var(--line,#E2E8F0);font-size:13px;align-items:baseline;}
.tt-line:first-of-type{border-top:0;}
.tt-when{color:var(--sub,#64748B);font-variant-numeric:tabular-nums;white-space:nowrap;}
.tt-room{font-size:12px;font-weight:700;color:var(--tt-accent);}
.tt-copy{margin-top:8px;}
.tt-apply{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--tt-soft);border-color:color-mix(in srgb,var(--tt-accent) 30%,var(--line,#E2E8F0));}
.tt-apply h3{margin:0 0 4px;}

.tt-empty{padding:56px 20px;text-align:center;border:1px dashed var(--line,#E2E8F0);border-radius:18px;background:var(--surface,#fff);}
.tt-empty-icon{font-size:44px;}
.tt-empty h3{margin:8px 0 4px;}
.tt-empty p{margin:0 0 16px;color:var(--sub,#64748B);}

/* the question dialog, in the middle of the screen */
.tt-modal-backdrop{position:fixed;inset:0;z-index:9500;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,23,42,.5);}
.tt-modal{width:min(440px,100%);padding:24px;border:1px solid var(--line,#E2E8F0);border-radius:20px;background:var(--surface,#fff);color:var(--ink,#0F172A);box-shadow:0 24px 60px rgba(0,0,0,.35);}
.tt-modal h3{margin:0 0 12px;font-size:18px;}
.tt-modal-body p{margin:0 0 8px;}
.tt-modal-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:14px;}
.tt-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;}

@media (max-width:1100px){
  .tt-layout{grid-template-columns:1fr;}
  .tt-rail{position:static;}
  .tt-steps{flex-direction:row;overflow-x:auto;padding-bottom:4px;}
  .tt-step{flex:0 0 auto;min-width:200px;}
  .tt-link-danger{margin-top:-4px;}
  .tt-items-head{display:none;}
  .tt-item{grid-template-columns:1fr 1fr;}
  .tt-item-main,.tt-class-cell{grid-column:1 / -1;}
}
/* the subject rows stack when the working area is narrow, so nothing is cut off */
@container (max-width: 900px){
  .tt-items-head{display:none;}
  .tt-item{grid-template-columns:minmax(0,1fr) 92px 122px 30px;}
  .tt-item-main,.tt-class-cell,.tt-teachers{grid-column:1 / -1;}
  .tt-item .tt-badge{justify-self:start;}
}
@media (max-width:900px){.tt-grid-3{grid-template-columns:repeat(2,minmax(0,1fr));}.tt-stats{grid-template-columns:repeat(2,minmax(0,1fr));}.tt-rule{grid-template-columns:1fr 30px;}.tt-rule>div,.tt-rule>label{grid-column:1 / -1;}.tt-apply{flex-direction:column;align-items:stretch;}.tt-next{flex-wrap:wrap;}.tt-next .btn{width:100%;}}
@media (max-width:560px){.tt-grid-3{grid-template-columns:1fr;}.tt-span-2{grid-column:auto;}.tt-slot{grid-template-columns:1fr;}.tt-next{padding:14px;}.tt-session{gap:8px;}}

/* Printing the timetable: just the timetable. */
@media print{
  @page{size:A4 landscape;margin:10mm;}
  body.tt-printing *{visibility:hidden;}
  body.tt-printing #ttTimetable,body.tt-printing #ttTimetable *{visibility:visible;}
  body.tt-printing #ttTimetable{position:absolute;inset:0 auto auto 0;width:100%;border:0;box-shadow:none;}
  body.tt-printing .tt-segmented,body.tt-printing #ttTableFilter{display:none;}
  body.tt-printing .tt-cal-wrap{overflow:visible;}
}

/* several teachers on one subject */
.tt-teachers{display:flex;flex-wrap:wrap;gap:4px;align-items:center;}
.tt-teachers .tt-chip{padding:3px 8px;font-size:12px;max-width:100%;white-space:nowrap;}
.tt-teachers .tt-chip small{margin-left:2px;}
.tt-period{margin-left:2px;padding:1px 6px;border-radius:999px;background:var(--tt-soft);color:var(--tt-accent);font-size:11px;font-weight:700;}
.tt-chip.on .tt-period{background:color-mix(in srgb,var(--tt-accent) 16%,var(--surface,#fff));}
.tt-teacher-add{width:100% !important;padding:5px 8px !important;font-size:12.5px;}
.tt-split{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 12px;border-radius:10px;background:var(--tt-soft);font-size:12.5px;}
.tt-split > span{font-weight:700;color:var(--tt-accent);}
.tt-split label{display:flex;align-items:center;gap:6px;font-weight:600;}
.tt-split select{width:auto;padding:3px 8px;font-size:12.5px;}

/* the subject picker: every subject, programme by programme */
.tt-picker{width:min(940px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;padding:0;}
.tt-picker-head{padding:20px 22px 12px;border-bottom:1px solid var(--line,#E2E8F0);}
.tt-picker-head h3{margin:0 0 10px;}
.tt-picker-tools{display:flex;gap:8px;flex-wrap:wrap;}
.tt-picker-tools input{flex:1 1 260px;min-width:0;}
.tt-picker-tools select{width:auto;}
.tt-picker-list{flex:1 1 auto;min-height:200px;overflow:auto;padding:10px 22px;}
.tt-program{border:1px solid var(--line,#E2E8F0);border-radius:12px;margin-bottom:8px;background:var(--surface,#fff);}
.tt-program > summary{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;list-style:none;position:sticky;top:0;background:var(--grid,#F8FAFC);border-radius:12px;}
.tt-program[open] > summary{border-bottom:1px solid var(--line,#E2E8F0);border-radius:12px 12px 0 0;}
.tt-program > summary::-webkit-details-marker{display:none;}
.tt-program > summary::before{content:'▸';color:var(--sub,#64748B);transition:transform .15s;}
.tt-program[open] > summary::before{transform:rotate(90deg);}
.tt-program summary b{font-size:14.5px;}
.tt-program summary small{color:var(--sub,#64748B);}
.tt-link{margin-left:auto;border:0;background:none;color:var(--tt-accent);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;text-decoration:underline;}
.tt-courses{display:flex;flex-direction:column;}
.tt-course{display:grid;grid-template-columns:20px 104px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 14px;border-top:1px solid var(--line,#E2E8F0);font-size:13.5px;cursor:pointer;}
.tt-course:first-child{border-top:0;}
.tt-course:hover{background:var(--tt-soft);}
.tt-course.used{opacity:.6;}
.tt-course input{width:17px;height:17px;accent-color:var(--tt-accent);}
.tt-course-code{font-variant-numeric:tabular-nums;color:var(--sub,#64748B);font-size:12.5px;}
.tt-course-name{font-weight:600;}
.tt-course-meta{font-size:12px;color:var(--sub,#64748B);white-space:nowrap;}
.tt-picker-hint{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:8px 0 0;}
.tt-nowrap{white-space:nowrap;}
.tt-picker-hint .tt-link{margin-left:10px;}
.tt-picker-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;border-top:1px solid var(--line,#E2E8F0);font-weight:600;}
@media (max-width:640px){.tt-course{grid-template-columns:20px 1fr;}.tt-course-code,.tt-course-meta{grid-column:2;}}

/* A count on a menu button (subjects still without an exam). */
.admin-group-btn[data-count]:not([data-count=""])::after,.admin-tab-btn[data-count]:not([data-count=""])::after{content:attr(data-count);display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;border-radius:999px;background:#F59E0B;color:#fff;font-size:11px;font-weight:700;line-height:1;vertical-align:1px;}

/* Teacher overview: วิชาที่ต้องออกข้อสอบ */
.duty-card{margin-bottom:16px;}
.duty-list{display:flex;flex-direction:column;}
.duty-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(200px,1.6fr) auto 120px;gap:10px 14px;align-items:center;padding:10px 0;border-top:1px solid var(--line,#E2E8F0);}
.duty-row:first-child{border-top:0;}
.duty-subject{display:flex;flex-direction:column;gap:2px;}
.duty-subject small{color:var(--sub,#64748B);}
.duty-when{display:flex;flex-direction:column;gap:2px;font-size:13px;}
.duty-action{text-align:right;}
@media (max-width:760px){.duty-row{grid-template-columns:1fr auto;}.duty-when{grid-column:1 / -1;}}
