/* Register screen: one row per student, identical fixed-width mark buttons on every row. */
.reg-surface{overflow:visible}
.reg-head{padding:16px 22px 12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;border-bottom:1px solid var(--line);background:#fbfdfc}
.reg-when{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.reg-when input[type=date]{border:1px solid #cfdbd5;border-radius:6px;padding:8px 10px;font:inherit;font-size:14px;color:inherit;background:#fff}
.reg-step{padding:6px 12px;font-size:18px;line-height:1}
.reg-day{font-size:14px;color:#3b5548;font-weight:700;margin-left:4px}
.reg-sessions{display:flex;flex-wrap:wrap;gap:6px}
.reg-session{position:relative;display:flex;flex-direction:column;align-items:center;min-width:58px;padding:7px 10px 8px;border:1px solid #cfdbd5;border-radius:8px;background:#fff;font-size:13px;line-height:1.2}
.reg-session strong{font-size:14px}.reg-session small{color:var(--muted);font-size:11px;margin-top:3px}
.reg-session:hover{background:#eef5f0}
.reg-session.is-current{background:#dfeef8;border-color:#699ec2;color:#1f4a66;font-weight:700}
.reg-dot{position:absolute;top:-5px;right:-5px;width:12px;height:12px;border-radius:50%;border:2px solid #fff;background:#c9d3ce}
.reg-dot.incomplete{background:#e0a800}.reg-dot.complete{background:#2f8a57}
.reg-note{padding:0;font-size:12px;color:#7a5a12;flex:0 0 100%}
.reg-bar{position:sticky;top:94px;z-index:2;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding:12px 22px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 4px 12px #1b302b0d}
.reg-title h2{margin:0;font-size:19px;display:flex;align-items:baseline;gap:10px}.reg-title h2 small{font-size:13px;color:var(--muted);font-weight:400}
.reg-title p{font-size:13px;margin-top:2px}
.reg-progress{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:13px;color:var(--muted)}
.reg-progress strong{color:#233c36;font-size:15px}
.reg-status{display:inline-block;padding:5px 9px;border-radius:5px;font-size:12px;font-weight:700;background:#edf1ee;color:#516357}
.reg-status.incomplete{background:#fff3cd;color:#7a5a12}.reg-status.complete{background:#dff3e4;color:#1f6b3d}
.reg-keys{flex:0 0 100%;font-size:12px;color:#7c8b82;margin:0}
.reg-keys kbd{display:inline-block;padding:1px 6px;border:1px solid #cfdbd5;border-bottom-width:2px;border-radius:4px;background:#f7f9f8;font:inherit;font-size:11px;font-weight:700;color:#3b5548}
.reg-bar .reg-note{margin:0}
.reg-list{list-style:none;margin:0;padding:8px 0 0}
.reg-row{display:grid;grid-template-columns:34px minmax(0,1fr) 190px auto;align-items:center;gap:18px;min-height:98px;padding:14px 26px;border-bottom:1px solid #eaf0ec;border-left:5px solid transparent;background:#fff;transition:background .12s}
.reg-row .student-name{min-width:0;font-size:18px;gap:16px}.reg-row .avatar{height:46px;width:46px;font-size:14px}.reg-row .student-name small{font-size:14px;margin-top:4px}.reg-row .student-name>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reg-num{font-size:12px;color:#9aa8a1;text-align:right}
.reg-state{font-size:13px;color:#5e716b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reg-row.is-current{border-left-color:#699ec2;background:#f6fafc}
.reg-row.mark-present{background:#e9f6ec}.reg-row.mark-absent{background:#fbe6e3}.reg-row.mark-late{background:#eceff2}.reg-row.mark-skip{background:#fff8dc}
.reg-row.is-current.mark-present{background:#dff0e4}.reg-row.is-current.mark-absent{background:#f6dad6}.reg-row.is-current.mark-late{background:#e2e7ec}.reg-row.is-current.mark-skip{background:#fbf0c4}
.reg-marks{display:flex;align-items:center;gap:14px}
.reg-mark{width:124px;height:60px;padding:0;font-size:16px;font-weight:700;border:2px solid #cfdbd5;background:#fff;color:#3b5548;border-radius:12px;box-shadow:0 1px 2px #1b302b0f}
.reg-mark:hover:not(:disabled){background:#eef5f0}
.reg-present[aria-pressed=true]{background:#2f8a57;border-color:#2f8a57;color:#fff}
.reg-absent[aria-pressed=true]{background:#b7443a;border-color:#b7443a;color:#fff}
.reg-late[aria-pressed=true]{background:#5b6b7a;border-color:#5b6b7a;color:#fff}
.reg-skip[aria-pressed=true]{background:#f2d465;border-color:#d9b23a;color:#4a3d05}
.reg-clear-slot{display:inline-flex;width:40px;justify-content:center}
.reg-clear{width:34px;height:34px;padding:0;border-radius:50%;font-size:16px;line-height:1;color:#7c8b82}
.reg-empty{padding:40px 22px;text-align:center;color:var(--muted);font-size:14px}
.reg-tail{min-height:calc(100vh - 220px);padding:22px;background:#fbfdfc;border-top:1px solid var(--line)}
.reg-done{padding:16px 18px;border-radius:8px;font-size:14px;line-height:1.6;color:#3b5548;background:#fff;border:1px solid var(--line)}
.reg-done.complete{background:#eaf6ee;border-color:#bfdccb;color:#1f6b3d}
.reg-done.incomplete,.reg-done.not-started{background:#fff8dc;border-color:#ecd98a;color:#6b5210}
.reg-tail-actions{justify-content:flex-start;margin-top:14px}
.reg-tail-actions a{padding:10px 15px;border:1px solid #cfdbd5;border-radius:7px;background:#fff;font-size:14px}
.reg-tail-actions a.primary{color:#fff}
.reg-history{margin-top:22px;font-size:13px;color:#617466}.reg-history summary{cursor:pointer}.reg-history ul{padding-left:18px;margin-top:8px}.reg-history li{margin-top:6px;line-height:1.5}
/* Three schools, three colours: early years amber, primary green, secondary blue. */
.school-section{margin:0 0 30px;padding:18px 20px 22px;border-radius:12px;border:1px solid var(--line);border-left:6px solid var(--school);background:var(--school-bg)}
.school-eyfs{--school:#d99a2b;--school-bg:#fff8ec}.school-primary{--school:#3f8a5f;--school-bg:#eef7f1}.school-secondary{--school:#4b87b8;--school-bg:#edf4fa}
.school-heading{margin:0 0 16px;font-size:20px;display:flex;align-items:baseline;gap:12px;color:#233c36}.school-heading small{font-size:13px;color:var(--muted);font-weight:400}
.school-section .class-card{border-top-color:var(--school)}
/* Timetable class tiles for Teacher and Administration, limited to the viewer's phase. */
.tt-classes{display:flex;flex-direction:column;gap:10px;flex:0 0 100%}
.tt-school{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:8px 12px;border-radius:9px;border-left:5px solid var(--school);background:var(--school-bg)}
.tt-school-name{font-size:12px;letter-spacing:.6px;text-transform:uppercase;font-weight:700;color:#3b5548;min-width:92px}
.tt-school-classes{display:flex;flex-wrap:wrap;gap:8px}
.tt-class{display:flex;flex-direction:column;align-items:center;min-width:74px;padding:8px 12px;border:1px solid #cfdbd5;border-radius:9px;background:#fff;font-size:15px;font-weight:700;line-height:1.2}
.tt-class small{font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}
.tt-class:hover{background:#f5f9f6}.tt-class.is-current{background:var(--school);border-color:var(--school);color:#fff}.tt-class.is-current small{color:#f3f7f4}
.tt-demo{display:block;flex:0 0 100%;color:#7a5a12}
/* Session states shared by the quick action and the Administration overview. */
.st-taken{--st:#2f8a57;--st-bg:#e6f4ea}.st-in-progress{--st:#c9862a;--st-bg:#fff3dc}.st-due-now{--st:#2b7bb9;--st-bg:#e4f0fa}.st-due{--st:#6f8178;--st-bg:#f1f4f2}.st-overdue{--st:#c0532c;--st-bg:#fde8df}.st-missing{--st:#b7443a;--st-bg:#fbe0dc}
.reg-now-state{display:inline-block;padding:4px 10px;border-radius:6px;font-size:13px;background:var(--st-bg);color:var(--st);vertical-align:middle;margin-right:4px}
.reg-now-open{margin-top:10px}
.reg-today-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.reg-today{display:flex;flex-direction:column;padding:7px 10px;border-radius:8px;border:1px solid var(--st);border-left-width:5px;background:#fff;font-size:12px;line-height:1.3;color:#233c36}
.reg-today strong{font-size:13px}.reg-today small{color:var(--st);font-weight:700;margin-top:2px}
.reg-now-note{font-size:12px;color:#5b7285;margin-top:10px}
/* Administration overview of every class's registers for one day. */
.ov-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin:0 0 22px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:10px}
.ov-totals{display:flex;flex-wrap:wrap;gap:8px}
.ov-total{display:flex;align-items:baseline;gap:6px;padding:7px 12px;border-radius:8px;background:var(--st-bg);color:var(--st);font-size:13px;font-weight:700}.ov-total strong{font-size:17px}
.ov-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.ov-tile{background:#fff;border:1px solid var(--line);border-left:5px solid var(--st);border-radius:10px;padding:14px 16px}
.ov-tile header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px}
.ov-tile h3{margin:0;font-size:18px}.ov-tile h3 small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:4px}
.ov-sessions{display:flex;flex-wrap:wrap;gap:8px}
.ov-chip{display:flex;flex-direction:column;min-width:112px;flex:1;padding:9px 11px;border-radius:9px;border:1px solid var(--st);border-left-width:5px;background:var(--st-bg);color:#233c36;font-size:12px;line-height:1.3}
.ov-chip strong{font-size:15px}.ov-chip span{color:var(--st);font-weight:700;margin-top:3px}.ov-chip small{color:#5e716b;margin-top:2px}
.ov-chip:hover{filter:brightness(.97)}
.ov-secondary .ov-chip{min-width:78px;flex:0 1 auto;padding:7px 9px}.ov-secondary .ov-chip strong{font-size:13px}.ov-secondary .ov-chip span{font-size:11px}
.ov-none{font-size:12px;color:var(--muted)}
@media(max-width:650px){.school-section{padding:14px 12px 16px}.ov-grid{grid-template-columns:1fr}.tt-school-name{min-width:0;flex:0 0 100%}}
/* Slim bar on Teacher home: the next register and one button. */
.reg-now-mini{display:flex;align-items:center;gap:14px;height:54px;box-sizing:border-box;padding:0 16px;margin-bottom:14px;overflow:hidden}.reg-now-mini .eyebrow{font-size:11px}.reg-now-mini .reg-now-line{flex-wrap:nowrap;overflow:hidden;white-space:nowrap}.reg-now-mini .reg-now-line strong{font-size:15px;overflow:hidden;text-overflow:ellipsis}.reg-now-mini .reg-now-line small{overflow:hidden;text-overflow:ellipsis}.reg-now-mini .reg-now-open{padding:7px 12px}
.reg-now-mini .eyebrow{white-space:nowrap}.reg-now-mini .reg-now-line{flex:1 1 auto}.reg-now-mini .reg-now-open{margin:0;padding:8px 14px;font-size:13px;white-space:nowrap}
.reg-now-mini a.reg-now-open:not(.primary){border:1px solid #bad7e9;border-radius:7px;background:#fff;color:#28739c;font-weight:700}
/* Shared calendar: a week grid that fills the screen. Lessons are placed by period time, events by their own. */
.cal-section{padding:14px 18px 12px}
.cal-section .tt-panel-head{margin-bottom:6px}.cal-section .tt-panel-head h2{font-size:18px}.cal-section .tt-panel-head p{margin:2px 0 0;font-size:12px}
.print-only{display:none}
.cal-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 18px;margin:0 0 8px}
.cal-week{display:flex;align-items:center;gap:8px}.cal-week strong{font-size:15px;color:#233c36}
.cal-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cal-tools .class-label{margin-left:0}
.cal{display:grid;grid-template-columns:52px repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;--cal-h:clamp(520px,calc(100vh - 330px),760px)}
.cal-corner{border-bottom:1px solid var(--line);background:#f7f9f8}
.cal-day-head{display:flex;flex-direction:column;align-items:center;padding:6px 4px;border-bottom:1px solid var(--line);border-left:1px solid #eaf0ec;background:#f7f9f8;font-size:13px;line-height:1.2}.cal-day-head small{font-size:11px;color:var(--muted);margin-top:2px}.cal-day-head.is-today{background:#e6f1fa;color:#1f4a66}
.cal-times{position:relative;height:var(--cal-h);background:#fbfcfb}.cal-time{position:absolute;right:6px;transform:translateY(-50%);font-size:10px;color:#8a998f}
.cal-col{position:relative;height:var(--cal-h);border-left:1px solid #eaf0ec;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--cal-h)/9 - 1px),#eef2ef calc(var(--cal-h)/9 - 1px),#eef2ef calc(var(--cal-h)/9))}
.cal-col.is-today{background-color:#f6fafd}
.cal-band{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.4px;text-transform:uppercase;color:#8a998f;background:#f1f4f2;border-top:1px dashed #dfe7e4;border-bottom:1px dashed #dfe7e4;overflow:hidden;text-decoration:none}
a.cal-band-link{color:#1f4a66;background:#e6f1fa;font-weight:700;text-transform:none;letter-spacing:0;font-size:11px}a.cal-band-link:hover{background:#d5e8f6}
.cal-block{position:absolute;left:3px;right:3px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;gap:1px;padding:3px 7px;border-radius:6px;font-size:11.5px;line-height:1.2;overflow:hidden;color:#233c36;text-align:left;border:0;border-left:4px solid var(--lesson-accent,#5d8668);background:var(--lesson-bg,#eef4ef);text-decoration:none;z-index:1}
.cal-block strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-block small{font-size:10.5px;color:#586d65;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
a.cal-block:hover,button.cal-block:hover{filter:brightness(.95);cursor:pointer}
.cal-event{left:8px;right:2px;background:#fff7e6;border:1px solid #e0b25c;border-left:4px solid #d99a2b;z-index:2;font-family:inherit}.cal-event small{color:#7a5a12}
.cal-event.is-clipped{border-style:dashed}
.cal-now{position:absolute;left:0;right:0;border-top:2px solid #c0532c;z-index:3}.cal-now:before{content:'';position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:#c0532c}
.cal-note{margin:8px 0 0;font-size:12px;color:var(--muted)}
@media print{.print-only{display:block}.cal-nav,.cal-note{display:none!important}.cal{--cal-h:150mm;break-inside:avoid}.cal-block,.cal-band{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
@media(max-width:950px){.cal{grid-template-columns:40px repeat(5,minmax(0,1fr));--cal-h:560px}.cal-block{padding:2px 4px;font-size:10px}.cal-block strong{font-size:10.5px}}
/* Teacher and Administration timetable page: personal first, classes next, versions folded away. */
.tt-section{margin-bottom:22px;border:1px solid var(--line);border-radius:12px;background:#fff}
.tt-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tt-head-actions .class-label{margin-left:0}
.tt-versions{margin:8px 0 22px;border:1px solid var(--line);border-radius:12px;background:#fff}.tt-versions summary{cursor:pointer;padding:14px 22px;font-size:14px;font-weight:700;color:#3b5548}.tt-versions .tt-panel{padding-top:0}
.teacher-day h2 a{color:#28739c}.teacher-day h2 small{font-size:12px;font-weight:400;color:var(--muted);margin-left:6px}
@media print{body.printing main>*:not(.print-target){display:none!important}body.printing .print-target .tt-panel-head,body.printing .print-target .filters,body.printing .print-target .tt-actions,body.printing .print-target .tt-drive{display:none!important}body.printing .tt-section{border:0;margin:0}}
/* Compact strip on Teacher home: one line, with today's sessions and the chooser folded away. */
.reg-now-compact{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px 18px;padding:12px 18px;margin-bottom:16px}
.reg-now-compact .eyebrow{grid-column:1}
.reg-now-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0}
.reg-now-line strong{font-size:16px;color:#233c36}.reg-now-line small{font-size:12px;color:#5b7285}
.reg-now-compact .reg-now-open{margin:0;grid-column:3;grid-row:1}
.reg-now-more{grid-column:1/-1;font-size:12px;color:#3f5a68}.reg-now-more summary{cursor:pointer;padding:2px 0}
.reg-now-more .reg-today-list{margin:10px 0 6px}.reg-now-more .reg-now-form{margin-top:10px}
/* Teacher home: To do list on the left, the teacher's day on the right. */
.teacher-day-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:stretch;margin:0 0 30px}
.teacher-alerts,.teacher-day{margin:0;padding:14px 18px 12px;background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;min-height:0}
/* The day panel sets the row height; the To do list takes no intrinsic height and scrolls to match it. */
.teacher-alerts{contain:size}
.teacher-alerts .alert-list,.teacher-day .day-rows{overflow:auto;min-height:0;flex:1 1 auto;scrollbar-width:thin}
.teacher-alerts .alert-list{padding-right:6px}
.teacher-day header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.teacher-day h2{margin:0;font-size:19px}
.day-date{font-size:13px;font-weight:700;color:#3b5548}.day-date small{font-weight:400;color:var(--muted);margin-left:6px}
.day-rows{display:flex;flex-direction:column;gap:3px;padding-right:6px}
.day-row{display:grid;grid-template-columns:82px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:34px;padding:4px 10px;border-radius:7px;border:1px solid transparent;color:#233c36;text-decoration:none;line-height:1.3}
.day-time{font-size:11px;color:#5e716b;white-space:nowrap}
.day-copy{display:flex;align-items:baseline;gap:8px;min-width:0;overflow:hidden}.day-copy strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-copy small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day-band{min-height:24px;padding:2px 10px;color:#8a998f;font-size:11px}.day-band strong{font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#8a998f}
.day-free{color:#9aa8a1}.day-free strong{font-weight:500;color:#8a998f}.day-free small{color:#9aa8a1}
.day-lesson,.day-register{background:#f7faf8;border-color:#e3ebe6}
a.day-row{cursor:pointer}a.day-row:hover{background:#e6f1fa;border-color:#bad7e9}
a.day-row{border-left:5px solid var(--st,#699ec2)}
.day-register{background:var(--st-bg,#e6f1fa)}
.day-state{font-size:11px;font-weight:700;color:var(--st);white-space:nowrap}
.day-go{color:#28739c;font-weight:700}
.day-empty{padding:18px 4px;font-size:14px}.day-empty a{color:#28739c;font-weight:700}
@media(max-width:950px){.teacher-day-grid{grid-template-columns:1fr}.teacher-alerts{contain:none;max-height:420px}}
/* Teacher home alerts. */
.teacher-alerts{padding:16px 20px 14px;background:#fff;border:1px solid var(--line);border-radius:12px}
.teacher-alerts header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}
.teacher-alerts h2{margin:0;font-size:19px}
.alert-count{font-size:12px;padding:5px 9px;border-radius:6px;background:#edf1ee;color:#516357;font-weight:700}.alert-count.has-items{background:#fbecee;color:#873941}
.alert-list{list-style:none;margin:0;padding:0}
.alert-item{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:14px;padding:11px 0;border-top:1px solid #eaf0ec}
.alert-item:first-child{border-top:0}
.alert-dot{width:10px;height:10px;border-radius:50%;background:#9aa8a1}
.level-urgent .alert-dot{background:#b7443a}.level-soon .alert-dot{background:#e0a800}.level-notice .alert-dot{background:#699ec2}.level-done .alert-dot{background:#2f8a57}
.alert-copy{display:flex;flex-direction:column;min-width:0}.alert-copy strong{font-size:14px;color:#233c36}.alert-copy small{font-size:12px;color:var(--muted);margin-top:2px}
.level-done .alert-copy strong{font-weight:500;color:#3b5548}
.alert-action{white-space:nowrap;font-size:13px;font-weight:700;color:#28739c;padding:6px 10px;border:1px solid #c7dce9;border-radius:7px;background:#e3eff8}.alert-action:hover{background:#d5e8f6}
.alert-example{font-size:11px;padding:4px 7px;border-radius:5px;background:#edf1ee;color:#64786c;white-space:nowrap}
.level-notice.alert-item:has(.alert-example){opacity:.75}
.alert-note{margin:10px 0 0;font-size:12px;color:#7c8b82}
@media(max-width:650px){.reg-now-compact{grid-template-columns:1fr}.reg-now-compact .reg-now-open{grid-column:1;grid-row:auto;justify-self:start}.alert-item{grid-template-columns:12px minmax(0,1fr)}.alert-action,.alert-example{grid-column:2;justify-self:start}}
/* Take register now: a quick action on Teacher home and the class index. */
.reg-now{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 28px;margin:0 0 26px;padding:18px 22px;background:#e6f1fa;border:1px solid #bad7e9;border-left:5px solid #699ec2;border-radius:10px}
.reg-now-copy h2{margin:6px 0 6px;font-size:19px}
.reg-now-copy p{font-size:13px;color:#3f5a68;max-width:70ch}
.reg-now-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.reg-now-form label{font-size:13px;font-weight:700;color:#3b5548}
.reg-now-form select{min-width:190px}
/* Timetable cells that open a register, and the AM/PM bands. */
.tt-link{text-decoration:none;position:relative}
.tt-link:hover{background:#e6f1fa}
.tt-open{display:block;margin-top:6px;font-size:10px;letter-spacing:.3px;text-transform:uppercase;color:#28739c;font-weight:700}
.tt-band-links td{padding:0;text-align:left;text-transform:none;letter-spacing:0;font-size:12px}
.tt-register{display:block;padding:8px 10px;font-weight:700;color:#1f4a66;background:#e6f1fa;border-left:3px solid #699ec2}
.tt-register:hover{background:#d5e8f6}
.tt-register small{display:block;font-weight:400;color:#5b7285;font-size:11px;margin-top:2px}
@media print{.tt-open{display:none}.tt-register{background:#fff!important;border-left:0}}
@media(max-width:950px){.reg-bar{top:0}.reg-row{grid-template-columns:28px minmax(0,1fr) auto;padding:12px 14px;min-height:88px}.reg-state{display:none}.reg-marks{gap:8px}.reg-mark{width:88px;height:52px;font-size:14px}.reg-head,.reg-bar{padding-left:14px;padding-right:14px}}
@media(max-width:650px){.reg-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;min-height:80px}.reg-num{display:none}.reg-marks{gap:6px}.reg-mark{width:62px;height:48px;font-size:12px}.reg-row .student-name{font-size:15px}.reg-row .avatar{height:38px;width:38px}.reg-clear-slot{width:26px}.reg-session{min-width:48px;padding:6px 7px}.reg-tail{min-height:60vh}}
