/* Calendar, meetings and grading share the approved layout and theme tokens. */
.calendar-panel,.queue-card,.student-bookings .booking,.staff-windows .window-card,.written-check-row{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:none;color:var(--text)}
.calendar-panel{padding:22px;margin-bottom:24px}
.calendar-heading{align-items:center;gap:16px;margin-bottom:18px}
.calendar-heading h2{font-size:22px;line-height:1.35;font-weight:650;letter-spacing:-.025em;margin:0 0 3px}
.calendar-heading p{font-size:12px;line-height:1.5;color:var(--muted);margin:0}
.calendar-controls{display:flex;gap:6px}
.calendar-controls button{min-height:38px;padding:8px 12px;font-size:12px}
.schedule-rules{font-size:12px;line-height:1.6;margin:-8px 0 18px}
.schedule-calendar{background:var(--panel);border-color:var(--line);border-radius:10px;overflow:hidden}
.calendar-weekdays{background:var(--panel2);border-color:var(--line)}
.calendar-weekdays span{color:var(--muted);padding:9px 4px;font-size:11px;font-weight:600}
.calendar-panel .booking-day{border-color:var(--line);background:var(--panel);padding:7px;min-height:105px}
.calendar-panel .booking-day.past,.calendar-panel .booking-day.outside-month{background:color-mix(in srgb,var(--panel2) 55%,var(--panel));opacity:1}
.calendar-panel .booking-day.today{background:color-mix(in srgb,var(--orange) 4%,var(--panel))}
.calendar-panel .calendar-date{border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);font-size:13px;min-height:32px;gap:4px;padding:4px 6px;font-weight:550;box-shadow:none}
.calendar-panel .calendar-date:hover{background:var(--panel2)}
.calendar-panel .today .calendar-date{border-color:color-mix(in srgb,var(--orange) 50%,var(--line));color:var(--text)}
.calendar-panel .selected-day .calendar-date{background:var(--accent-soft);color:var(--orange);border-color:color-mix(in srgb,var(--orange) 35%,var(--line));box-shadow:none}
.calendar-panel .outside-month .date-number{color:var(--muted)}
.calendar-panel .today-label{color:var(--orange);font-size:9px}
.calendar-panel .desktop-calendar-slots{gap:7px}
.calendar-panel .calendar-slot{padding:10px;gap:10px;border:1px solid var(--line);border-top:2px solid color-mix(in srgb,var(--orange) 65%,var(--line));border-radius:9px;background:var(--panel2);color:var(--text)}
.calendar-panel .calendar-slot.mine{border-color:color-mix(in srgb,var(--blue) 30%,var(--line));border-top-color:var(--blue);background:color-mix(in srgb,var(--blue) 5%,var(--panel))}
.calendar-panel .calendar-slot.unavailable{border-color:var(--line);border-top-color:var(--line);background:color-mix(in srgb,var(--panel2) 65%,var(--panel))}
.calendar-panel .slot-details{gap:4px;min-width:0}
.calendar-panel .slot-time{color:var(--text);font-size:13px;line-height:1.4;letter-spacing:0}
.calendar-panel .slot-assistant{color:var(--text);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.calendar-panel .slot-capacity{color:var(--muted);font-size:10px;line-height:1.5}
.calendar-panel .calendar-slot button{min-height:34px;padding:7px;font-size:11px}
.calendar-panel .slot-status{margin-top:0;padding-top:7px;border-color:var(--line);color:var(--muted);font-size:11px;line-height:1.5}
.calendar-panel .slot-status.is-mine{color:var(--blue);background:transparent;border:0;border-top:1px solid color-mix(in srgb,var(--blue) 20%,var(--line));border-radius:0}
.calendar-panel .parallel-label{background:transparent;color:var(--muted);font-size:10px;padding:0;border:0}
.calendar-panel .calendar-deadline{padding:9px;border:1px solid color-mix(in srgb,var(--blue) 25%,var(--line));border-left:2px solid var(--blue);border-radius:8px;background:color-mix(in srgb,var(--blue) 4%,var(--panel));gap:4px;color:var(--text)}
.calendar-panel .calendar-deadline:hover{background:color-mix(in srgb,var(--blue) 8%,var(--panel))}
.calendar-panel .calendar-deadline small{color:var(--blue);font-size:10px;line-height:1.4}
.calendar-panel .calendar-deadline strong{color:var(--text);font-size:11px;line-height:1.5;font-weight:550}
.calendar-panel .calendar-deadline>span{color:var(--muted);font-size:10px;line-height:1.4}
.calendar-panel .calendar-deadline.is-complete{border-color:color-mix(in srgb,var(--green) 22%,var(--line));border-left-color:var(--green);background:color-mix(in srgb,var(--green) 4%,var(--panel))}
.calendar-panel .calendar-deadline.is-complete small{color:var(--green)}
.calendar-panel .calendar-deadline.is-expired{border-color:var(--line);border-left-color:var(--muted);background:var(--panel2)}
.calendar-panel .calendar-deadline.is-expired small{color:var(--muted)}
.calendar-panel .calendar-legend{margin-top:14px;gap:8px 16px;color:var(--muted);font-size:11px}
.calendar-panel .calendar-legend i{width:6px;height:6px}
.calendar-panel .mine-dot{background:var(--blue)}
.calendar-panel .calendar-agenda{border-color:var(--line)}
.calendar-panel .agenda-heading h3{font-size:17px;font-weight:600;color:var(--text)}
.calendar-panel .agenda-empty{font-size:13px;line-height:1.6;color:var(--muted)}
/* Bookings keep their time and main action ahead of the task details. */
.student-booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.student-bookings .booking{padding:20px;margin:0;min-width:0}
.student-bookings .booking h3{font-size:19px;line-height:1.4;font-weight:650;letter-spacing:-.02em;margin:12px 0 6px;color:var(--text)}
.student-bookings .booking p{font-size:12px;line-height:1.6;color:var(--muted);margin:7px 0;overflow-wrap:anywhere}
.booking-sheet-summary{gap:10px;margin:14px 0}
.booking-sheet-summary>div{gap:3px}
.booking-sheet-summary strong{font-size:13px;line-height:1.5;font-weight:550;color:var(--text)}
.booking-sheet-summary span{font-size:12px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}
.student-bookings .booking .actions{gap:8px;justify-content:flex-start;padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}
.student-bookings .booking .actions .compact{font-size:12px;min-height:37px;padding:8px 12px;white-space:normal}
.student-bookings .booking .submission-links{margin:12px 0 0}
.student-bookings .history{margin-top:22px;padding-top:15px;border-color:var(--line)}
.student-bookings .history>summary{font-size:13px;line-height:1.6;color:var(--muted);cursor:pointer;min-height:36px}
.student-bookings .history>.booking{margin-top:10px}
.staff-windows{gap:12px}
.staff-windows .window-card{padding:19px;gap:18px}
.staff-windows .window-card>div{min-width:0}
.staff-windows .window-card h3{font-size:17px;margin:12px 0 5px}
.staff-windows .window-time{font-size:23px;line-height:1.35;font-weight:650;letter-spacing:-.025em;color:var(--text)}
.staff-windows .window-person{font-size:14px;color:var(--text);line-height:1.5;overflow-wrap:anywhere}
.staff-windows .window-info{font-size:11px;color:var(--muted);line-height:1.6}
.staff-windows .window-actions{gap:8px;flex-shrink:0}
.capacity-bar{background:var(--line);height:4px;border-radius:4px}
.capacity-bar::-webkit-progress-bar{background:var(--line)}
.capacity-bar::-webkit-progress-value{background:var(--muted)}
/* Weekly schedule and history. */
.listening-view-switch{gap:4px;margin-bottom:18px;border-color:var(--line)}
.listening-view-switch button{padding:9px 14px 12px;font-size:13px;font-weight:550;color:var(--muted);background:transparent;border-radius:0;min-height:40px}
.listening-view-switch button.selected{color:var(--orange);border-bottom-color:var(--orange)}
.listening-toolbar{gap:13px;margin-bottom:18px}
.week-picker{display:flex;justify-content:space-between;gap:12px;min-width:0}
.week-navigation{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:10px;min-width:0}
.week-tools{display:flex;align-items:center;gap:12px;min-width:0}
.week-tools>[data-action="listening-today"]{white-space:nowrap;overflow-wrap:normal;flex-shrink:0;min-height:40px}
.week-tools .week-jump{display:flex;align-items:center;flex-wrap:nowrap;gap:10px;margin:0;white-space:nowrap}
.week-tools .week-jump input{margin:0;max-width:none}
.week-range strong{font-size:17px;line-height:1.4;color:var(--text);font-weight:600}
.week-range small{font-size:11px;line-height:1.5;color:var(--muted)}
.week-picker .week-arrow{border-radius:9px;font-size:17px;min-height:38px;height:38px;width:38px}
.week-jump{font-size:11px;color:var(--muted)}
.week-jump input{font-size:13px;min-height:38px;margin-top:4px}
.listening-filters{gap:12px}
.listening-filters .filter-field{margin-bottom:0}
.listening-filters>.secondary{min-height:40px}
.listening-refresh{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0}
.listening-refresh svg{width:18px;height:18px;flex-shrink:0}
.listening-metrics{margin:0 0 18px;padding:15px 0;gap:12px;border-color:var(--line)}
.listening-metrics>div{gap:13px}
.listening-metrics>div+div{border-color:var(--line);padding-left:20px}
.listening-metrics strong{font-size:26px;font-weight:600;color:var(--text);line-height:1.2}
.listening-metrics span{color:var(--text);font-size:12px;line-height:1.5}
.listening-metrics small{color:var(--muted);font-size:10px;line-height:1.5}
.listening-attention{padding:17px 19px;margin-bottom:20px;border:1px solid color-mix(in srgb,var(--orange) 25%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--orange) 4%,var(--panel))}
.listening-attention h2{font-size:15px;font-weight:600;color:var(--text)}
.attention-row{gap:12px;padding:12px 0;min-height:0;border-color:color-mix(in srgb,var(--orange) 18%,var(--line));color:var(--text);border-radius:0;white-space:normal}
.attention-row strong{font-size:12px;line-height:1.5;font-weight:550;color:var(--text)}
.attention-row small{font-size:11px;line-height:1.6;color:var(--muted)}
.attention-symbol{width:22px;height:22px;border-color:color-mix(in srgb,var(--orange) 60%,var(--line));color:var(--orange)}
.admin-week{border-color:var(--line);border-radius:12px;background:var(--panel)}
.admin-week-day{padding:11px 8px 14px;border-color:var(--line)}
.admin-week-day.is-today{background:color-mix(in srgb,var(--orange) 4%,var(--panel))}
.admin-day-heading{gap:7px;margin-bottom:12px}
.admin-day-heading>span,.admin-day-heading>small{color:var(--muted)}
.admin-day-heading>strong{font-size:18px;font-weight:600;color:var(--text)}
.admin-day-sessions{gap:8px}
.week-session{gap:5px;padding:10px;border:1px solid var(--line);border-top:2px solid var(--blue);border-radius:9px;background:var(--panel2);color:var(--text);box-shadow:none}
.week-session.group-g7{border-top-color:var(--orange)}
.week-session.group-g8{border-top-color:var(--blue)}
.week-session.group-g45,.week-session.group-g6{border-top-color:var(--green)}
.week-session:hover{background:color-mix(in srgb,var(--muted) 7%,var(--panel));border-color:color-mix(in srgb,var(--muted) 35%,var(--line));transform:none;box-shadow:none}
.week-session.is-cancelled{opacity:1;background:var(--panel);border-top-color:var(--line);color:var(--muted)}
.week-session-top{font-size:10px;line-height:1.4;color:var(--muted);gap:5px}
.week-session-top i{font-size:9px;color:var(--green)}
.week-session>strong{font-size:13px;font-weight:600;line-height:1.4;letter-spacing:0}
.week-assistant{font-size:12px;font-weight:500;line-height:1.5;color:var(--text)}
.week-seats,.week-seats>span:last-child{color:var(--muted);font-size:10px;line-height:1.5}
.week-seats>span:last-child{font-size:15px}
.session-warning{color:var(--orange);font-size:10px;line-height:1.5}
.session-state,.no-session,.listening-hint{color:var(--muted);font-size:11px;line-height:1.6}
.listening-hint{margin:12px 0 20px}
.history-period label{font-size:12px;color:var(--muted)}
.history-caption{margin-bottom:12px}
.history-caption h2{font-size:18px;font-weight:600;color:var(--text)}
.history-caption small{font-size:11px;color:var(--muted)}
.history-session{padding:15px 18px;gap:16px;border-color:var(--line);background:var(--panel);color:var(--text);border-radius:0;min-height:72px}
.history-session:first-of-type{border-radius:12px 12px 0 0}
.history-session:last-child{border-color:var(--line);border-radius:0 0 12px 12px}
.history-session:only-of-type{border-radius:12px}
.history-session:hover{background:var(--panel2);transform:none}
.history-session strong{font-size:13px;line-height:1.5;font-weight:550;color:var(--text);white-space:normal;overflow-wrap:anywhere}
.history-session small{font-size:11px;line-height:1.6;color:var(--muted)}
/* Queue rows stay readable when names and assignment titles are long. */
.queue-card{padding:22px}
.queue-header{align-items:center;gap:15px;margin-bottom:18px}
.queue-header h2{font-size:21px;line-height:1.4;margin:0 0 5px;font-weight:600;color:var(--text)}
.queue-header p{font-size:12px;line-height:1.6;margin:4px 0;color:var(--muted);overflow-wrap:anywhere}
.queue-manage{gap:8px;padding:14px 0;margin-bottom:4px;border-color:var(--line)}
.queue-manage .hint{font-size:12px;line-height:1.6}
.queue-progress{font-size:11px;color:var(--muted);margin:16px 0 6px}
.queue-progress progress{height:4px;background:var(--line);accent-color:var(--green)}
.queue-progress progress::-webkit-progress-bar{background:var(--line)}
.queue-progress progress::-webkit-progress-value{background:var(--green)}
.queue-row{grid-template-columns:28px minmax(0,1fr) 65px minmax(150px,180px);gap:16px;padding:17px 0;border-color:var(--line);align-items:center}
.queue-row .position{font-size:15px;font-weight:500;color:var(--muted)}
.queue-row .queue-player{gap:11px;min-width:0;align-items:flex-start}
.queue-player .avatar{width:34px;height:34px;font-size:12px;background:var(--panel2);color:var(--muted);border-color:var(--line);border-radius:8px}
.queue-row .name-link{font-size:14px;line-height:1.5;font-weight:600;color:var(--text);max-width:100%;overflow-wrap:anywhere}
.queue-row small{font-size:11px;line-height:1.6;color:var(--muted);margin-top:3px}
.queue-row .queue-assignment{color:var(--muted)!important;line-height:1.6;overflow-wrap:anywhere}
.queue-row .task-number{font-size:22px;font-weight:550;color:var(--text);font-variant-numeric:tabular-nums}
.queue-row .task-number small{font-size:10px;color:var(--muted)}
.queue-row>button{font-size:12px;line-height:1.5;white-space:normal;padding:9px 12px;min-height:39px;width:100%}
/* Journal and selection forms retain exact task labels and format controls. */
.written-check-list{gap:10px}
.written-check-row{padding:19px 21px;gap:20px;grid-template-columns:minmax(0,1fr) auto minmax(130px,165px);align-items:center}
.written-check-row.is-void{opacity:1;background:var(--panel2)}
.written-check-heading{gap:4px;margin:0 0 5px}
.written-check-row .written-check-student{font-size:14px;font-weight:600;line-height:1.5;color:var(--text)}
.written-check-assignment{font-size:15px;line-height:1.5;font-weight:550;color:var(--text)}
.written-check-row p{font-size:12px;line-height:1.7;color:var(--text);margin:9px 0}
.written-check-row small{font-size:11px;line-height:1.6;color:var(--muted);margin-top:3px}
.written-check-score{gap:3px;min-width:95px}
.written-check-score strong{font-size:18px;line-height:1.5;font-weight:600;letter-spacing:-.025em;color:var(--text)}
.written-check-score .elo{color:var(--green);font-size:12px;line-height:1.5}
.written-check-row>button{font-size:12px;line-height:1.5;min-height:38px;white-space:normal}
.booking-sheet-list,.result-sheet-list{gap:14px;margin-top:17px}
.booking-sheet,.result-task-set,.written-task-options{padding:18px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);min-width:0;margin-top:14px}
.booking-sheet.is-supplement{background:var(--panel2);border-color:var(--line)}
.booking-sheet legend,.result-task-set legend{font-size:14px;font-weight:600;line-height:1.5;color:var(--text);margin-bottom:14px}
.booking-sheet legend small,.result-task-set legend small{font-size:11px;line-height:1.6;color:var(--muted);margin-top:4px}
.booking-intro,.result-help{font-size:13px;line-height:1.6;color:var(--muted)}
.booking-task-grid{gap:8px;grid-template-columns:repeat(5,minmax(0,1fr))}
.booking-task-grid span,.result-task-set .booking-task-grid span{min-height:43px;padding:9px 13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font-size:14px;font-weight:550;line-height:1.5;box-shadow:none}
.booking-task-grid label:hover span,.result-task-set .booking-task-grid label:hover span{background:var(--panel);border-color:var(--orange);transform:none}
.booking-task-grid input:checked+span,.result-task-set .booking-task-grid input:checked+span{background:var(--accent-soft);border-color:var(--orange);color:var(--orange);box-shadow:inset 0 0 0 1px var(--orange)}
.booking-task-grid input:checked+span:after,.result-task-set .booking-task-grid input:checked+span:after{font-size:10px;top:5px;right:6px;color:var(--orange)}
.booking-task-grid input:disabled+span,.result-task-set .booking-task-grid input:disabled+span{background:color-mix(in srgb,var(--green) 5%,var(--panel));border-color:color-mix(in srgb,var(--green) 25%,var(--line));border-style:dashed;color:var(--green);box-shadow:none;opacity:1}
.booking-task-grid span small,.result-task-set .booking-task-grid span small{font-size:9px;line-height:1.4;color:inherit}
.booking-task-grid input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--orange) 55%,transparent);outline-offset:3px}
.booking-selection-summary{position:static;margin-top:16px;padding:12px 15px;border:1px solid color-mix(in srgb,var(--orange) 25%,var(--line));border-radius:9px;background:var(--accent-soft);color:var(--orange);font-size:13px;font-weight:550;line-height:1.6}
.result-task-set .booking-task-grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.result-task-card{grid-template-columns:48px minmax(0,1fr);gap:8px}
.result-task-card>select{min-height:43px;height:auto;border-radius:8px;font-size:12px;padding:9px 28px 9px 9px;margin:0}
.result-task-card.single-format{grid-template-columns:minmax(0,1fr)}
.result-task-card>select:disabled{opacity:.65}
.check-elo-preview,.result-elo-preview{padding:13px 15px;margin:16px 0;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);font-size:15px;line-height:1.6;font-weight:600}
.written-task-options legend{font-size:13px;line-height:1.5;font-weight:600;color:var(--text)}
.written-task-options .checks{gap:9px;margin:12px 0 0}
.written-task-row{grid-template-columns:65px minmax(0,1fr);gap:11px}
.written-task-options label{min-height:43px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font-size:13px}
.written-task-options label:has(input:checked){background:var(--accent-soft);color:var(--orange);border-color:var(--orange)}
.written-task-row label:has(select){padding:0;background:transparent;border:0;color:var(--muted);font-size:11px;line-height:1.5}
.written-task-row select{font-size:13px;min-height:43px;margin-top:4px}
.written-task-options input[type=checkbox]{accent-color:var(--orange);width:17px;height:17px;min-height:17px;flex-shrink:0}
#bookingForm .dialog-actions,#resultForm .dialog-actions,#writtenCheckForm .dialog-actions{gap:8px;margin-top:20px;padding-top:17px;border-color:var(--line)}
#bookingForm>.hint,#resultForm>.hint,#writtenCheckForm>.hint{font-size:12px;line-height:1.65;color:var(--muted)}
#writtenExisting .notice{font-size:12px;line-height:1.65;padding:12px 14px;margin:14px 0}
#writtenExisting .written-check-row{padding:15px;grid-template-columns:minmax(0,1fr) auto;gap:12px}
#writtenExisting .written-check-row>button{grid-column:1/-1;justify-self:start}
@media(min-width:1100px){
 .student-workspace .calendar-panel .calendar-heading{flex-wrap:nowrap}
 .student-workspace .calendar-panel .desktop-calendar-slots{display:grid}
 .student-workspace .calendar-panel .calendar-agenda{display:none}
 .student-workspace .calendar-panel .calendar-indicators{display:none}
 .student-workspace .calendar-panel .booking-day{min-height:105px}
 .student-workspace .calendar-panel .calendar-date{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;height:auto;min-height:32px;padding:4px 6px}
 .student-workspace .calendar-panel .calendar-days{gap:0;padding:0}
}
@media(max-width:1099px){
 .calendar-panel{padding:19px}
 .calendar-panel .calendar-heading{flex-wrap:wrap}
 .calendar-panel .calendar-days{gap:5px;padding:9px}
 .calendar-panel .booking-day,.calendar-panel .booking-day.past,.calendar-panel .booking-day.today,.calendar-panel .booking-day.outside-month{min-height:0;padding:0;border:0;background:transparent}
 .calendar-panel .calendar-date{height:54px;padding:5px 2px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:16px;margin:0}
 .calendar-panel .today-label{display:none}
 .calendar-panel .has-windows .calendar-date{background:var(--panel2);color:var(--text)}
 .calendar-panel .selected-day .calendar-date{background:var(--accent-soft);color:var(--orange)}
 .calendar-panel .desktop-calendar-slots{display:none}
 .calendar-panel .calendar-indicators{position:absolute;bottom:7px;left:0;right:0;display:flex;justify-content:center;gap:4px}
 .calendar-panel .calendar-indicators .calendar-indicator{display:block;position:static;width:5px;height:5px;border-radius:50%;background:var(--blue)}
 .calendar-panel .calendar-indicators .has-slots{background:var(--orange)}
 .calendar-panel .calendar-indicators .has-deadline{background:var(--blue);border-radius:1px;transform:rotate(45deg)}
 .calendar-panel .selected-day .calendar-indicators .calendar-indicator{background:var(--orange)}
 .calendar-panel .calendar-agenda{display:block;margin-top:17px;padding-top:17px}
 .calendar-panel .calendar-agenda .calendar-slot{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:15px;border-top-width:1px;border-left:2px solid var(--orange);gap:14px}
 .calendar-panel .calendar-agenda .calendar-slot.mine{border-left-color:var(--blue)}
 .calendar-panel .calendar-agenda .calendar-slot.unavailable{border-left-color:var(--line)}
 .calendar-panel .calendar-agenda .slot-time{font-size:19px}
 .calendar-panel .calendar-agenda .slot-assistant{font-size:13px}
 .calendar-panel .calendar-agenda .slot-capacity{font-size:11px}
 .calendar-panel .calendar-agenda .calendar-slot button{font-size:12px;padding:9px 13px;min-height:39px;margin:0}
 .calendar-panel .calendar-agenda .slot-status{border:0;padding:0;margin:0;max-width:135px;font-size:12px;text-align:right}
 .calendar-panel .calendar-agenda .calendar-deadline{padding:14px;margin-top:9px}
 .calendar-panel .calendar-agenda .calendar-deadline strong{font-size:14px}
 .calendar-panel .calendar-agenda .calendar-deadline small,.calendar-panel .calendar-agenda .calendar-deadline>span{font-size:11px}
 .history-session{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
}
@media(max-width:760px){
 .student-booking-grid,.staff-windows{grid-template-columns:minmax(0,1fr);gap:11px}
 .student-bookings .booking{padding:18px}
 .student-bookings .booking h3{font-size:18px}
 .student-bookings .booking .actions{gap:7px}
 .student-bookings .booking .actions .primary{flex-basis:100%}
 .student-bookings .booking .actions .secondary{flex:1 1 auto}
 .queue-card{padding:18px}
 .queue-header{align-items:flex-start;flex-wrap:wrap;gap:10px}
 .queue-header h2{font-size:19px}
 .queue-row{grid-template-columns:22px minmax(0,1fr) 54px;gap:10px;padding:16px 0}
 .queue-row>.queue-player{min-width:0}
 .queue-row .queue-player .avatar{width:30px;height:30px}
 .queue-row .name-link{font-size:13px}
 .queue-row .task-number{font-size:20px;text-align:right}
 .queue-row>button{grid-column:2/-1;justify-self:start;width:auto;font-size:12px;max-width:100%}
 .queue-manage{gap:7px;align-items:flex-start}
 .queue-manage .hint{flex-basis:100%}
 .written-check-row{padding:17px;grid-template-columns:minmax(0,1fr) auto;gap:13px}
 .written-check-row>button,.written-check-row>.hint{grid-column:1/-1;justify-self:start}
 .written-check-score{min-width:80px}
 .written-check-score strong{font-size:16px}
 .written-check-assignment{font-size:14px}
 .written-check-row .written-check-student{font-size:13px}
 .staff-windows .window-card{padding:17px;gap:12px}
 .staff-windows .window-actions{justify-content:flex-start}
 .staff-windows .window-actions .primary{font-size:12px;padding:9px 12px;min-height:38px}
}
@media(max-width:600px){
 .calendar-panel{padding:15px}
 .calendar-heading h2{font-size:20px}
 .calendar-heading p{font-size:11px}
 .calendar-controls{width:auto;justify-content:flex-end;margin-left:auto}
 .calendar-panel .calendar-days{gap:3px;padding:7px}
 .calendar-panel .calendar-date{height:49px;font-size:14px;border-radius:7px}
 .calendar-panel .calendar-agenda .calendar-slot{padding:13px;gap:11px}
 .calendar-panel .calendar-agenda .slot-time{font-size:18px}
 .calendar-panel .calendar-agenda .slot-status{max-width:105px;font-size:11px}
 .calendar-panel .calendar-legend{font-size:10px;gap:8px 12px}
 .calendar-panel .calendar-agenda .calendar-slot button{min-height:39px;padding:9px 11px}
 .listening-heading{flex-wrap:nowrap;gap:10px}
 .listening-heading .page-head{min-width:0}
 .listening-heading .page-head h1{font-size:25px}
 .listening-heading>.primary{width:auto;flex:0 0 auto;min-height:42px;padding:9px 12px;font-size:12px;white-space:nowrap}
 .listening-toolbar{gap:16px;margin-bottom:16px}
 .week-picker{display:flex;flex-direction:column;align-items:stretch;gap:10px}
 .week-navigation{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px}
 .week-picker .week-arrow{width:44px;height:44px;min-height:44px}
 .week-tools{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:10px}
 .week-tools>[data-action="listening-today"]{width:auto;min-height:44px;padding:10px 16px;font-size:14px}
 .week-tools .week-jump{display:block;min-width:0;font-size:0}
 .week-tools .week-jump input{display:block;box-sizing:border-box;width:100%;max-width:none;min-width:0;min-height:44px;height:44px;margin:0;padding:9px 12px;font-size:16px;text-align:left}
 .week-range{min-width:0;padding:0}
 .week-range strong{display:block;font-size:14px;line-height:1.4}
 .week-range small{display:block;font-size:11px}
 .listening-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;align-items:end;gap:8px}
 .listening-filters .filter-field{width:100%;min-width:0;max-width:none;margin:0;gap:6px;font-size:11px}
 .listening-filters .filter-field select{width:100%;min-width:0;min-height:44px;height:44px;margin:0;padding:9px 24px 9px 10px;font-size:13px;text-overflow:ellipsis}
 .listening-filters>.listening-refresh{width:44px;min-height:44px;height:44px;padding:0;margin:0}
 .listening-refresh span{display:none}
 .listening-metrics{gap:8px;padding:13px 0}
 .listening-metrics>div{align-items:flex-start;flex-direction:column;gap:6px;padding-right:0}
 .listening-metrics>div+div{padding-left:11px}
 .listening-metrics strong{font-size:23px}
 .listening-metrics span{font-size:11px}
 .listening-metrics small{display:none}
 .listening-attention{padding:14px}
 .admin-week-day{grid-template-columns:37px minmax(0,1fr);padding:11px 10px;gap:10px}
 .admin-day-heading{gap:3px;margin:2px 0 0}
 .week-session{padding:11px;gap:4px 9px;grid-template-columns:minmax(0,1fr) auto}
 .week-session>strong{font-size:15px}
 .week-assistant{font-size:12px}
 .week-seats{font-size:10px}
 .history-session{padding:13px;gap:9px;min-height:0}
 .history-session strong{font-size:12px}
 .history-session small{font-size:10px}
 .history-period label{width:calc(50% - 5px)}
 .history-period input{font-size:14px}
 .booking-sheet,.result-task-set,.written-task-options{padding:14px}
 .booking-sheet legend,.result-task-set legend{font-size:13px;margin-bottom:12px}
 .booking-task-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
 .booking-task-grid span{font-size:13px;min-height:42px;padding:8px 11px}
 .result-task-set .booking-task-grid{grid-template-columns:minmax(0,1fr);gap:9px}
 .result-task-card{grid-template-columns:47px minmax(0,1fr)}
 .written-task-row{grid-template-columns:62px minmax(0,1fr);gap:9px}
 .written-task-options label{font-size:12px}
 .written-task-row select{font-size:12px}
 #bookingForm .dialog-actions,#resultForm .dialog-actions,#writtenCheckForm .dialog-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}
 #bookingForm .dialog-actions button,#resultForm .dialog-actions button,#writtenCheckForm .dialog-actions button{min-width:0;font-size:12px;line-height:1.5;white-space:normal}
}
@media(max-width:380px){
 .calendar-panel .calendar-agenda .calendar-slot{grid-template-columns:minmax(0,1fr)}
 .calendar-panel .calendar-agenda .slot-status{max-width:none;text-align:left}
 .calendar-panel .calendar-agenda .calendar-slot button{justify-self:start;width:auto}
 .student-bookings .booking{padding:15px}
 .queue-row .queue-player{gap:8px}
 .queue-row .queue-player .avatar{display:none}
 .written-check-row{grid-template-columns:minmax(0,1fr);gap:11px}
 .written-check-score{display:flex;align-items:center;gap:10px;text-align:left}
 .written-check-row>button{grid-column:1}
 .booking-task-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .calendar-controls{gap:5px}
 .calendar-controls button{padding:8px 10px}
}
