/* Context flags, class-list tools (picker, projector, multi-select), printables. */
.flag-chips{display:inline-flex;flex-wrap:wrap;gap:3px;margin-left:8px;vertical-align:middle}
.flag{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:6px;font-size:10px;font-style:normal;font-weight:700;line-height:1;color:#3b5548;background:#eef2ef;border:1px solid #dfe7e2;cursor:help}
.flag-allergy{background:#fbe6e3;border-color:#f0c9c2;color:#8a3d35}.flag-eal{background:#e4efff;border-color:#c5d8f5;color:#2b4f86}.flag-sen{background:#efe6fb;border-color:#d7c5f0;color:#5a3b8a}.flag-report{background:#fff3c4;border-color:#ecd98a;color:#6b5210}.flag-birthday{background:#fff8dc;border-color:#f0e3a8}.flag-no-photo{background:#eceff2;border-color:#d9dfe3;color:#4f5d69}.flag-collection{background:#fbe6e3;border-color:#f0c9c2}.flag-note{background:#fff8dc;border-color:#ecd98a}
.flags-form{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:8px;font-size:13px}.flags-form label{display:inline-flex;align-items:center;gap:6px}.flags-form small{color:var(--muted)}.flags-form .flags-note{flex:1 1 100%;flex-direction:column;align-items:stretch;gap:4px;font-size:12px;color:var(--muted)}.flags-form input[name=pinnedNote]{padding:7px 10px;border:1px solid #d4dfd7;border-radius:6px;font:inherit;font-size:13px}
.flag-settings{padding:18px 22px;margin-bottom:22px}.flag-settings h2{margin:0 0 4px;font-size:18px}
/* Class list tools. */
.class-tools{display:flex;flex-direction:column;gap:8px;padding:10px 22px;border-bottom:1px solid var(--line);background:#fbfdfc}
.class-tools-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.class-tools-gap{flex:1}
.class-tools button,.print-menu summary{padding:7px 12px;border:1px solid #cfdbd5;border-radius:999px;background:#fff;font:inherit;font-size:13px;color:#233c36;cursor:pointer}.class-tools button:hover:not(:disabled),.print-menu summary:hover{background:#eef5f0}.class-tools button:disabled{opacity:.5;cursor:not-allowed}.class-tools .text-button{border:0;background:none;padding:4px 6px}
.print-menu{position:relative}.print-menu summary{list-style:none}.print-menu summary::-webkit-details-marker{display:none}.print-menu nav{position:absolute;right:0;top:calc(100% + 6px);z-index:5;display:flex;flex-direction:column;min-width:240px;padding:6px;border-radius:10px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 24px #1b302b26}.print-menu nav a{padding:8px 10px;border-radius:6px;font-size:13px;text-decoration:none;color:#233c36}.print-menu nav a:hover{background:#eef5f0}
.pick-result{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;background:#e9f6ec;border:1px solid #bfdccb;font-size:14px}.pick-result strong{font-size:22px}.pick-label{font-size:12px;color:#2b6b45;font-weight:700}.pick-result small{color:var(--muted)}
.class-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;border-radius:10px;background:#e4efff;border:1px solid #c5d8f5;font-size:13px}.class-actions a{padding:7px 12px;border:1px solid #c5d8f5;border-radius:999px;background:#fff;text-decoration:none;font-size:13px}.sel-group{display:inline-flex;align-items:center;gap:6px}.sel-group select{padding:6px 8px;border:1px solid #c5d8f5;border-radius:6px;font:inherit;font-size:13px}
.row-select{display:inline-flex;align-items:center;justify-content:center}.row-select input{width:18px;height:18px;cursor:pointer}
/* Projector-safe student view. */
body.class-projector .topbar,body.class-projector .favourites,body.class-projector .workspace,body.class-projector .footnote{display:none!important}
.projector{position:fixed;inset:0;z-index:50;background:#fff;padding:32px 48px;overflow:auto;font-family:inherit}.projector header{display:flex;align-items:baseline;gap:18px;margin-bottom:24px}.projector header strong{font-size:40px}.projector header span{font-size:18px;color:var(--muted)}.projector header button{margin-left:auto;padding:10px 16px;border:1px solid #cfdbd5;border-radius:8px;background:#fff;font:inherit;font-size:15px;cursor:pointer}
.projector-names{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.projector-names li{padding:16px 18px;border-radius:12px;background:#f3f6f5;font-size:28px;font-weight:700;color:#233c36}.projector-names small{display:block;font-size:16px;font-weight:400;color:var(--muted)}
.projector-note{margin-top:24px;font-size:14px;color:var(--muted)}
/* Printables. */
.print-sheet{padding:22px 26px;border-radius:12px;background:#fff;border:1px solid var(--line)}
.print-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.print-head h1{margin:2px 0 4px;font-size:24px}.print-head p{margin:0;color:var(--muted);font-size:13px}.print-head .actions{margin:0;gap:10px}.print-head .actions a{align-self:center;font-size:13px}
.print-table{width:100%;border-collapse:collapse;font-size:13px}.print-table th,.print-table td{border:1px solid #cfdbd5;padding:6px 8px;text-align:left;vertical-align:top;white-space:pre-line}.print-table th{background:#f3f6f5;font-size:12px}.print-table td small{display:block;color:var(--muted);font-size:11px}
.print-blank{min-width:120px}.print-grid td.print-cell{height:32px;min-width:70px}.print-grid th small{display:block;font-weight:400;font-size:10px;color:var(--muted)}
.avatar.avatar-print{width:36px;height:36px;font-size:13px;flex:0 0 36px}
.print-labels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.print-label{display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:10px;align-items:center;padding:12px 14px;border:1px dashed #9aa8a1;border-radius:10px;min-height:90px}.print-label .avatar{grid-row:1 / span 3;width:44px;height:44px;flex:0 0 44px}.print-label strong{font-size:18px}.print-label span{font-size:14px}.print-label small{font-size:11px;color:var(--muted)}
.print-foot{margin:12px 0 0;font-size:12px;color:var(--muted)}
@media print{body.printing .topbar,body.printing .favourites,body.printing .sidebar,body.printing .footnote,body.printing .breadcrumb,body.printing .class-footnote,body.printing .print-head .actions{display:none!important}body.printing main{padding:0;max-width:none}.print-sheet{border:0;padding:0}.print-labels{grid-template-columns:repeat(3,1fr)}.print-label{break-inside:avoid}.print-table{page-break-inside:auto}.print-table tr{break-inside:avoid}.flag{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* Lesson page (second shortlist 21). */
.lesson-title{align-items:flex-start}.lesson-nav{display:flex;gap:8px;flex-wrap:wrap}
.lesson-arrow{display:flex;flex-direction:column;padding:8px 12px;border:1px solid #cfdbd5;border-radius:10px;background:#fff;text-decoration:none;color:#233c36;font-size:13px;font-weight:700;min-width:150px}.lesson-arrow small{font-weight:400;color:var(--muted);font-size:11px}.lesson-arrow.is-off{opacity:.4}.lesson-arrow:hover{background:#eef5f0}
.lesson-surface{overflow:visible}.lesson-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 22px;border-bottom:1px solid var(--line);background:#fff}
.lesson-reg-state{padding:6px 10px;border-radius:8px;font-size:13px;font-weight:700;background:#f0f4f1;color:#3b5548}.lesson-reg-state.st-taken{background:#e9f6ec;color:#1f6b3d}.lesson-reg-state.st-in-progress{background:#fff3c4;color:#6b5210}.lesson-reg-state.st-due-now,.lesson-reg-state.st-overdue,.lesson-reg-state.st-missing{background:#fbe6e3;color:#8a3d35}
.lesson-take{padding:8px 14px;border-radius:8px;font-size:14px;text-decoration:none}
.lesson-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;padding:18px 22px}.lesson-grid>div{display:flex;flex-direction:column;gap:16px}
.lesson-panel{border:1px solid var(--line);border-radius:12px;background:#fbfdfc;padding:14px 16px}.lesson-panel h2{margin:0 0 8px;font-size:16px}.lesson-panel h2 small{font-weight:400;color:var(--muted);font-size:12px}
.lesson-students{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:520px;overflow:auto}
.lesson-student{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:4px 6px;border-radius:8px}.lesson-student:hover{background:#eef5f0}.lesson-student .student-name{font-size:14px}
.lesson-mark{display:inline-block;min-width:60px;text-align:center;padding:3px 8px;border-radius:6px;font-size:12px;font-weight:700;background:#f0f4f1;color:#7c8b82}.lesson-mark.mark-present{background:#c9e9d3;color:#1f6b3d}.lesson-mark.mark-absent{background:#f4cbc5;color:#8a3d35}.lesson-mark.mark-late{background:#eceff2;color:#4f5d69}.lesson-mark.mark-skip{background:#ffefa8;color:#6b5210}
#lesson-notes{width:100%;padding:10px 12px;border:1px solid #d4dfd7;border-radius:8px;font:inherit;font-size:14px;line-height:1.5;resize:vertical;background:#fff}.lesson-note-meta{margin:6px 0 0;font-size:12px;color:var(--muted)}
.lesson-actions .actions{justify-content:flex-start;gap:8px;margin:0 0 8px}.lesson-files{margin:8px 0 0;font-size:13px}
@media(max-width:900px){.lesson-grid{grid-template-columns:1fr}}
/* Teaching groups: sections, membership dates and the marksheet (second shortlist 27). */
.group-section{margin-bottom:22px}.group-section .school-heading{margin:0 0 10px}
.group-head-actions{justify-content:flex-start;gap:10px;margin:0;flex-wrap:wrap;align-items:center}.group-head-actions a{padding:8px 12px;border:1px solid #cfdbd5;border-radius:8px;background:#fff;text-decoration:none;font-size:13px}.group-head-actions a.primary{border-color:transparent}
.group-card h3 a{text-decoration:none;color:inherit}.group-card h3 a:hover{text-decoration:underline}
.member-dates{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.member-dates input{padding:5px 7px;border:1px solid #d4dfd7;border-radius:6px;font:inherit;font-size:12px}.member-dates button[type=submit]{padding:5px 10px;font-size:12px}
.marksheet th{vertical-align:bottom;position:relative}.marksheet th small{display:block;font-weight:400;font-size:11px;color:var(--muted)}.marksheet th .reg-clear{position:absolute;top:2px;right:2px;width:22px;height:22px;font-size:13px}
.mark-input{width:64px;padding:6px 8px;border:1px solid #d4dfd7;border-radius:6px;font:inherit;font-size:13px;text-align:center}
.mark-percent{font-weight:700}.mark-average td{background:#f3f6f5;font-weight:700;font-size:13px}.mark-average small{display:block;font-weight:400;color:var(--muted);font-size:11px}
/* Seating plan (second shortlist 23). */
.seating-surface{overflow:visible}
.seating-bar,.seating-marking{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 22px;border-bottom:1px solid var(--line);background:#fbfdfc}
.seating-bar button,.seating-marking button{padding:7px 12px;border:1px solid #cfdbd5;border-radius:999px;background:#fff;font:inherit;font-size:13px;cursor:pointer}.seating-bar button:disabled{opacity:.5;cursor:not-allowed}.seating-bar .text-button{border:0;background:none}
.seating-room-form{padding:12px 22px;border-bottom:1px solid var(--line);background:#f7faf8;margin:0}
.overlay-toggles{display:flex;flex-wrap:wrap;gap:6px;padding:10px 22px;border-bottom:1px solid var(--line)}
.overlay{padding:6px 12px;border:1px solid #cfdbd5;border-radius:999px;background:#fff;font:inherit;font-size:12px;cursor:pointer}.overlay.is-on{background:#216653;border-color:#216653;color:#fff}.overlay:disabled{opacity:.45;cursor:not-allowed}.overlay small{opacity:.7}
.paint-buttons{display:flex;gap:6px;flex-wrap:wrap}
.paint{padding:6px 12px;border:1px solid #cfdbd5;border-radius:999px;background:#fff;font-size:12px;cursor:pointer}
.paint.is-on{box-shadow:0 0 0 2px #216653}.paint.reg-present.is-on{background:#2f8a57;border-color:#2f8a57;color:#fff;box-shadow:none}.paint.reg-absent.is-on{background:#b7443a;border-color:#b7443a;color:#fff;box-shadow:none}.paint.reg-late.is-on{background:#5b6b7a;border-color:#5b6b7a;color:#fff;box-shadow:none}
.seating-count{font-size:13px;color:var(--muted)}
.seating-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:18px;padding:18px 22px;align-items:start}
.seating-room{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.table{border:1px solid #cfdbd5;border-radius:12px;padding:10px;background:#fbfdfc}.table-label{display:block;font-size:11px;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}
.table-seats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.table-seats.seats-2{grid-template-columns:repeat(2,minmax(0,1fr))}.table-seats.seats-3,.table-seats.seats-5,.table-seats.seats-6{grid-template-columns:repeat(3,minmax(0,1fr))}
.seat{display:flex;flex-direction:column;gap:2px;min-height:62px;padding:6px 8px;border:1px solid #cfdbd5;border-radius:8px;background:#fff;font-size:12px;cursor:pointer;position:relative}
.seat:hover,.seat:focus{box-shadow:0 0 0 2px #9dc2ab;outline:none}
.seat.is-empty{align-items:center;justify-content:center;border-style:dashed;color:#9aa8a1;font-size:18px;background:#f7faf8}
.seat.is-picked{box-shadow:0 0 0 3px #699ec2}.seat.is-over{background:#e4efff;border-color:#699ec2}
.seat-name{font-weight:700;line-height:1.2}.seat-name small{display:block;font-weight:400;color:var(--muted);font-size:11px}
.seat-att{font-size:11px;color:#3b5548}.seat.band-amber{background:#fffdf3}.seat.band-red{background:#fdf3f1}
.seat.mark-present{background:#c9e9d3}.seat.mark-absent{background:#f4cbc5}.seat.mark-late{background:#eceff2}
.seat-mark{position:absolute;top:4px;right:5px;font-style:normal;font-size:10px;font-weight:700;color:#3b5548;background:#fff;border-radius:4px;padding:1px 4px}
.seat .flag-chips{margin-left:0}
.seating-side{display:flex;flex-direction:column;gap:8px}.seating-side h2{margin:0;font-size:15px}.seating-side h2 small{color:var(--muted);font-weight:400}
.seating-pool{list-style:none;margin:0;padding:6px;display:flex;flex-direction:column;gap:4px;max-height:280px;overflow:auto;border:1px dashed #cfdbd5;border-radius:10px;background:#fbfdfc}
.pool-student{display:flex;align-items:center;gap:8px;padding:5px 7px;border-radius:8px;background:#fff;border:1px solid #e6ece8;font-size:13px;cursor:grab}.pool-student.is-picked{box-shadow:0 0 0 2px #699ec2}.pool-student:hover{background:#eef5f0}
.apart-form{display:flex;flex-wrap:wrap;gap:6px}.apart-form select{flex:1 1 100px;min-width:0;padding:6px;border:1px solid #d4dfd7;border-radius:6px;font:inherit;font-size:12px}.apart-form button{padding:6px 10px;border:1px solid #cfdbd5;border-radius:999px;background:#fff;font-size:12px;cursor:pointer}
.apart-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12px}.apart-list li{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;background:#fdf3f1;border:1px solid #f0c9c2}.apart-list .reg-clear{margin-left:auto;width:22px;height:22px;font-size:13px}
.seating-projector{position:fixed;inset:0;z-index:50;background:#fff;padding:28px 40px;overflow:auto}.seating-projector header{display:flex;align-items:baseline;gap:18px;margin-bottom:20px}.seating-projector header strong{font-size:34px}.seating-projector header span{font-size:16px;color:var(--muted)}.seating-projector header button{margin-left:auto;padding:10px 16px;border:1px solid #cfdbd5;border-radius:8px;background:#fff;font:inherit;font-size:15px;cursor:pointer}
.seating-room.is-projector{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.is-projector .seat{min-height:74px;font-size:16px;cursor:default}.is-projector .seat-name{font-size:20px}.is-projector .seat-name small{font-size:14px}
@media(max-width:900px){.seating-layout{grid-template-columns:1fr}}
.att-form[hidden],.seating-room-form[hidden]{display:none}
