.school-workspace{font-size:13px;min-width:0}.school-toolbar,.school-filters,.school-period,.school-admin-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.school-toolbar{justify-content:space-between;margin-bottom:12px}.school-filters{margin-bottom:12px}.school-toolbar .school-filters{margin:0}.school-workspace label,.school-drawer label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#526558}.school-workspace input,.school-workspace select,.school-drawer input,.school-drawer select{min-height:36px;max-width:100%;padding:8px 10px;font-size:12px;border-radius:8px}.school-workspace button,.school-drawer button{font-size:12px;padding:8px 11px;border-radius:8px;min-height:34px}.school-switch{display:flex;border:1px solid #dce4d9;border-radius:9px;padding:2px;background:white;gap:2px}.school-switch button{background:transparent;color:#4f6657;min-height:30px}.school-switch button[aria-pressed=true]{background:#1b583b;color:white}.school-caption{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:15px 0 8px}.school-caption strong{font-size:16px}.school-caption span,.school-hint{font-size:11px;color:#627568;line-height:1.6}.school-hint{margin:8px 0 12px}.school-calendar-scroll{height:66vh;min-height:360px;overflow:auto;border:1px solid #dce5dc;border-radius:11px;background:white;overscroll-behavior:contain}.school-calendar-inner{position:relative}.school-calendar-head,.school-calendar-body{display:grid;grid-template-columns:58px var(--school-tracks)}.school-calendar-head{position:sticky;top:0;z-index:6;background:#f4f7f1;box-shadow:0 1px 0 #dce5dc;min-height:42px}.school-calendar-head>div{padding:12px 6px;border-right:1px solid #e2e9df;text-align:left;font-weight:650;font-size:12px}.school-axis-head{position:sticky;left:0;background:#f4f7f1;z-index:7}.school-calendar-head .is-today{color:#195334;background:#e8f3de}.school-calendar-body{height:var(--school-height)}.school-time-axis{position:sticky;left:0;background:white;z-index:4;border-right:1px solid #dce5dc}.school-tick{position:absolute;left:0;width:100%;padding-right:7px;text-align:right;font-size:11px;color:#6c7c70;transform:translateY(-50%);font-variant-numeric:tabular-nums}.school-tick:first-child{transform:none}.school-day{position:relative;border-right:1px solid #dce5dc;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--school-half-row) - 1px),#edf1e9 calc(var(--school-half-row) - 1px),#edf1e9 var(--school-half-row));min-width:0}.school-day.is-today{background-color:#fafcf6}.school-event{position:absolute;border:1px solid color-mix(in srgb,var(--group-color) 35%,white);border-left:4px solid var(--group-color);background:color-mix(in srgb,var(--group-color) 9%,white);color:#213b2b;text-align:left;border-radius:6px!important;min-height:0!important;padding:5px 7px!important;overflow:hidden;display:flex;flex-direction:column;gap:2px;line-height:1.25;box-shadow:none;transform:none!important;z-index:2;cursor:pointer}.school-event:hover,.school-event:focus-visible{background:color-mix(in srgb,var(--group-color) 18%,white);outline:2px solid var(--group-color);outline-offset:0;z-index:3}.school-event strong{font-size:13px;line-height:1.3;color:#153a27}.school-event>span{font-weight:400;font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:0;max-width:100%}.school-event .event-time{font-weight:750;font-size:11px;color:var(--group-color)}.school-event .event-status{font-weight:650}.school-event.is-planned,.school-event.duration-unknown{border-style:dashed;border-left-style:solid}.school-event.is-cancelled{background:#f3f4f2;color:#788176;border-left-color:#82907f}.school-event.is-cancelled strong{text-decoration:line-through;color:#64705f}.school-now{position:absolute;left:0;right:0;height:2px;background:#db5c46;pointer-events:none;z-index:3}.school-now:before{content:'';position:absolute;left:-3px;top:-3px;border-radius:50%;width:8px;height:8px;background:#db5c46}.school-now span{position:absolute;right:3px;top:2px;font-size:9px;color:#b83d28;background:#fff}.school-empty,.school-error{padding:16px;border-radius:8px;background:#f3f7ef;color:#536c59;margin:10px 0;font-size:12px;line-height:1.6}.school-error{background:#fff0ed;color:#a53427}.school-table-scroll,.school-journal-scroll{overflow:auto;border:1px solid #dce5dc;border-radius:10px;background:white}.school-groups{width:100%;min-width:920px;border-collapse:collapse}.school-groups th{font-size:11px;background:#f1f6ed;padding:12px;text-align:left}.school-groups td{font-size:12px;padding:12px;border-bottom:1px solid #e8ede4;line-height:1.65}.school-groups tr[data-group-row]{cursor:pointer}.school-groups tr:hover{background:#f7faf4}.school-groups small,.student-column small,.lesson-student small{display:block;font-size:10px;color:#758575}.school-link{background:none!important;color:#1f623e!important;text-align:left;font-weight:650;padding:4px 0!important;min-height:30px!important;transform:none!important}.school-link:hover{text-decoration:underline}.school-edit{background:none!important;color:#607564!important;padding:5px!important;margin-left:10px}.group-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}.school-badge{display:inline-block;border:1px solid #dce6d3;border-radius:5px;padding:4px 7px;background:#f1f6eb;font-size:10px;color:#4d6948;white-space:nowrap}.journal-heading{display:flex;justify-content:space-between;align-items:start;margin:12px 0}.journal-heading h2{margin-bottom:6px}.journal-heading p{margin:5px 0;font-size:12px;color:#617663;line-height:1.7}.school-journal-scroll{max-height:62vh;overscroll-behavior:contain}.school-journal{border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:100%;width:max-content}.school-journal th,.school-journal td{border-right:1px solid #e1e8dc;border-bottom:1px solid #e8ede4;padding:0;min-width:132px;width:132px;text-align:center}.school-journal thead th{position:sticky;top:0;background:#f1f6eb;z-index:3;padding:8px}.school-journal .student-column{position:sticky;left:0;width:200px;min-width:200px;max-width:200px;z-index:2;background:white;text-align:left;padding:9px 12px;box-shadow:2px 0 4px #173b2210;white-space:normal}.school-journal thead .student-column{background:#f1f6eb;z-index:5}.school-journal .student-column button{white-space:normal;overflow-wrap:anywhere}.journal-lesson{display:flex;flex-direction:column;gap:4px;width:100%;background:transparent;color:#26462e;transform:none!important}.journal-lesson strong{font-size:12px}.journal-lesson span{font-size:11px}.journal-lesson small{font-size:9px;color:#76856d}.journal-cell{display:block;margin:5px auto;width:calc(100% - 10px);background:#f4f7f1;color:#5c6b55;font-size:11px!important;min-height:32px!important;font-weight:500;white-space:normal}.cell-present{background:#e4f3e6!important;color:#256038!important}.cell-absent{background:#fde9e5!important;color:#b33e30!important}.cell-excused,.cell-makeup{background:#edf0fb!important;color:#516496!important}.cell-registered{background:#e9f1fc!important;color:#426d9b!important}.cell-not_enrolled{background:transparent!important;color:#9ba499!important}.cell-membership_unknown{background:#fff4db!important;color:#897025!important}.school-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;font-size:10px;color:#64725e;line-height:1.7}.school-legend>span{border-radius:5px;padding:3px 6px}.school-drawer{position:fixed;inset:0 0 0 auto;margin:0;max-height:100vh;height:100vh;width:min(570px,100vw);max-width:100vw;border:0;border-left:1px solid #dce5dc;box-sizing:border-box;padding:25px;overflow:auto;background:#fff;color:#263c2a;box-shadow:-10px 0 40px #132e221f}.school-drawer::backdrop{background:#102a2440}.drawer-close{float:right;position:sticky;top:0;z-index:2}.lesson-title{padding-right:35px}.lesson-title h2{font-size:23px;margin:14px 0 10px}.lesson-title p{font-size:12px;color:#5b715f;margin:8px 0}.lesson-student{padding:13px 0;border-top:1px solid #e4eadf;display:grid;gap:7px}.lesson-student.is-selected{border-left:3px solid #337b4d;padding-left:10px;background:#f8fbf4}.lesson-student p{font-size:11px;margin:0}.lesson-student label{max-width:100%}.school-readonly{font-size:11px!important;background:#f4f6f2;padding:7px}.lesson-feedback{font-size:12px;color:#35673e;margin:8px 0;line-height:1.7}.lesson-feedback[role=alert]{color:#ad382a}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid #467c55;outline-offset:2px}@media(max-width:700px){.school-workspace{font-size:12px}.school-workspace .school-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.school-workspace .school-filters select,.school-workspace .school-filters input{width:100%;min-width:0}.school-period{gap:5px}.school-period input{max-width:145px}.school-admin-actions{width:100%;margin-top:4px}.school-caption{align-items:start;flex-direction:column;gap:4px}.school-caption strong{font-size:14px}.school-calendar-scroll{height:64vh;min-height:330px}.school-journal .student-column{width:135px;min-width:135px;max-width:135px;padding:6px 8px}.school-journal th,.school-journal td{min-width:115px;width:115px}.school-drawer{padding:18px}.school-toolbar{align-items:end}.school-toolbar label{max-width:100%}.journal-heading h2{font-size:21px}}

.school-group-teachers{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:8px 0}.school-group-teachers label{flex:1 1 180px;max-width:280px}.school-group-teachers select{width:100%}.school-group-teachers [data-teacher-feedback]{flex-basis:100%;font-size:11px}

.school-lesson-page{position:relative;inset:auto;width:100%;max-width:none;max-height:none;margin:0;box-sizing:border-box;overflow:visible;}
/* Editable group attendance sheet; the wallet remains a separate money balance. */
.school-lesson-dialog{box-sizing:border-box;width:min(780px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:20px}
.school-lesson-dialog .lesson-student,.lesson-sheet-head{display:grid;grid-template-columns:minmax(180px,2fr) minmax(110px,1fr) minmax(130px,1fr);gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #e2e8f0}
.school-lesson-dialog .lesson-student label{display:flex;gap:8px;align-items:center;min-width:0}
.school-lesson-dialog input[type=checkbox]{width:22px;height:22px;flex:0 0 22px}
.school-lesson-dialog .lesson-absence{grid-column:1/-1;display:flex;gap:12px;flex-wrap:wrap}
.school-lesson-dialog .lesson-absence[hidden]{display:none}
.school-lesson-dialog .lesson-absence label{flex:1 1 220px;flex-direction:column;align-items:stretch}
.school-lesson-dialog input,.school-lesson-dialog select{max-width:100%;box-sizing:border-box}
.school-lesson-dialog button{min-height:44px}
.school-square.state-cancelled strong{text-decoration:line-through}
.school-square{height:auto;min-height:80px}
.school-legend{font-size:13px;line-height:1.6;color:#475569}
@media(max-width:600px){.school-lesson-dialog{padding:12px}.lesson-sheet-head{display:none}.school-lesson-dialog .lesson-student{grid-template-columns:1fr 1fr}.school-lesson-dialog .lesson-student>label{grid-column:1/-1}.school-lesson-dialog .row{display:flex;flex-wrap:wrap}.school-lesson-dialog .row button{flex:1 1 100px}}
