/* PE-Class classroom flow 12212 · completed Home lessons and Fold-safe focused classroom header */
html[data-pe-tab="classroom"] .pe87Main{background:#f4f7fb}
body.classroomFlowApp #app{min-width:0}
.classroomFlow{--cf-ink:#18324a;--cf-muted:#647b90;--cf-line:#d8e4ef;--cf-blue:#168ee0;--cf-green:#16a66a;--cf-navy:#243f58;display:grid;gap:16px;color:var(--cf-ink);padding:0 0 32px;font-family:var(--site-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)}
.classroomFlow *{box-sizing:border-box}
.classroomFlow button,.classroomFlow input,.classroomFlow select,.classroomFlow textarea{font:inherit}
.classroomFlow button{cursor:pointer}
.classroomFlowHead{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 24px;border:1px solid var(--cf-line);border-radius:16px;background:#fff;box-shadow:0 8px 30px rgba(35,72,105,.07)}
.classroomFlowHead h1,.classroomFlowHead p{margin:0}.classroomFlowHead h1{margin-top:5px;font-size:25px;letter-spacing:-.04em}.classroomFlowHead p{margin-top:6px;color:var(--cf-muted);font-size:13px;font-weight:700}
.classroomFlowBeta{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eaf5ff;color:#0876bd;font-size:10px;font-weight:900;letter-spacing:.08em}
.classroomFlowHeadActions{display:flex;align-items:center;gap:9px}.classroomFlowHeadActions>span{color:#698097;font-size:11px;font-weight:800}
.classroomPrimary,.classroomSecondary,.classroomFinish,.classroomSaveButton,.classroomEndButton{min-height:42px;padding:0 16px;border:1px solid transparent;border-radius:10px;font-weight:900;white-space:nowrap}
.classroomPrimary{background:var(--cf-blue);color:#fff;box-shadow:0 5px 12px rgba(22,142,224,.18)}
.classroomSecondary{border-color:#cfdeea;background:#fff;color:#315069}
.classroomFinish{background:var(--cf-green);color:#fff;box-shadow:0 5px 12px rgba(22,166,106,.2)}
.classroomSaveButton{background:var(--cf-green);color:#fff;box-shadow:0 5px 12px rgba(22,166,106,.2)}.classroomEndButton{background:var(--cf-blue);color:#fff;box-shadow:0 5px 12px rgba(22,142,224,.18)}
.classroomSaveButton:disabled,.classroomEndButton:disabled,.classroomStudentSave:disabled{cursor:wait;opacity:.68}
.classroomFlowNav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:6px;border:1px solid var(--cf-line);border-radius:14px;background:#fff}
.classroomFlowNav button{min-height:42px;border:0;border-radius:9px;background:transparent;color:#657c91;font-weight:900}.classroomFlowNav button.active{background:#e9f5ff;color:#0878c2;box-shadow:inset 0 0 0 1px #b8def7}
.classroomNotice{display:none;min-height:40px;padding:10px 14px;border-radius:10px;background:#eaf8f1;color:#08794b;font-size:13px;font-weight:800}.classroomNotice:not(:empty){display:block}.classroomNotice.error{background:#fff0ef;color:#c13d34}
.classroomHeroCard{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr);gap:24px;align-items:center;min-height:260px;padding:34px;border-radius:20px;background:linear-gradient(135deg,#173c67,#168ee0);color:#fff;overflow:hidden;position:relative;box-shadow:0 16px 36px rgba(27,77,125,.19)}
.classroomHeroCard:after{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:-120px;top:-160px;background:rgba(255,255,255,.09)}
.classroomHeroCard small{font-size:11px;font-weight:900;letter-spacing:.15em;color:#aee1ff}.classroomHeroCard h2{margin:10px 0 12px;font-size:31px;line-height:1.3;letter-spacing:-.045em}.classroomHeroCard p{margin:0;max-width:660px;color:#dcefff;font-size:14px;font-weight:700;line-height:1.65}
.classroomHeroMetrics{display:grid;grid-template-columns:repeat(3,1fr);position:relative;z-index:1;border:1px solid rgba(255,255,255,.2);border-radius:15px;background:rgba(0,30,69,.18);backdrop-filter:blur(8px)}
.classroomHeroMetrics span{display:grid;place-items:center;gap:2px;padding:23px 8px;border-right:1px solid rgba(255,255,255,.17);font-size:11px;font-weight:800;color:#d8efff}.classroomHeroMetrics span:last-child{border:0}.classroomHeroMetrics b{font-size:29px;color:#fff}
.classroomPanel{padding:20px;border:1px solid var(--cf-line);border-radius:16px;background:#fff;box-shadow:0 7px 24px rgba(35,72,105,.055)}
.classroomPanel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.classroomPanel>header small,.classroomCatchupIntro small{color:#168ee0;font-size:10px;font-weight:900;letter-spacing:.12em}.classroomPanel>header h2,.classroomCatchupIntro h2{margin:4px 0 0;font-size:19px;letter-spacing:-.035em}
.classroomLessonList{display:grid;gap:8px}.classroomLessonRow{width:100%;display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:76px;padding:10px 14px;border:1px solid #dbe7f1;border-radius:12px;background:#fbfdff;text-align:left;color:var(--cf-ink);transition:.15s ease}.classroomLessonRow:hover{border-color:#83c7ef;transform:translateY(-1px);box-shadow:0 7px 16px rgba(36,92,135,.09)}
.classroomLessonRow .period{display:grid;place-items:center;align-content:center;min-height:50px;border-radius:10px;background:#e9f5ff;color:#0878c2}.classroomLessonRow .period b{font-size:19px}.classroomLessonRow .period small{font-size:10px;font-weight:900}.classroomLessonRow .info{display:grid;gap:5px;min-width:0}.classroomLessonRow .info b{font-size:15px}.classroomLessonRow .info small{overflow:hidden;color:#71879a;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.classroomLessonRow .start{padding:10px 13px;border-radius:9px;background:#168ee0;color:#fff;font-size:12px;font-weight:900}
.classroomDraftList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.classroomDraftList button{display:grid;gap:4px;padding:13px;border:1px solid #dbe7f1;border-radius:11px;background:#f7fbff;text-align:left;color:var(--cf-ink)}.classroomDraftList span{color:#73889a;font-size:11px;font-weight:700}
.classroomContextGrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:end}.classroomContextGrid label,.classroomStationControls label,.classroomTeamControls label{display:grid;gap:6px;min-width:0}.classroomContextGrid label>span,.classroomStationControls label>span,.classroomTeamControls label>span{color:#587086;font-size:11px;font-weight:900}.classroomContextGrid input,.classroomContextGrid select,.classroomStationControls select,.classroomTeamControls select{width:100%;min-width:0;height:43px;padding:0 10px;border:1px solid #cbdbe8;border-radius:9px;background:#fff;color:#19334b;font-weight:800;text-align:center}.classroomContextGrid .wide{grid-column:span 2}.classroomStartManual{height:40px;flex:0 0 auto;align-self:flex-end}
.classroomFeatureGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.classroomFeatureGrid button{display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-areas:"icon title" "icon copy";align-items:center;gap:2px 10px;min-height:102px;padding:16px;border:1px solid var(--cf-line);border-radius:15px;background:#fff;text-align:left;color:var(--cf-ink);box-shadow:0 7px 21px rgba(35,72,105,.05)}.classroomFeatureGrid button>span{grid-area:icon;display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#eaf5ff;font-size:21px}.classroomFeatureGrid b{grid-area:title;font-size:14px}.classroomFeatureGrid small{grid-area:copy;color:#72879a;font-size:10px;font-weight:700;line-height:1.45}
.classroomLoading,.classroomEmpty{display:grid;place-items:center;align-content:center;gap:8px;min-height:260px;padding:30px;border:1px solid var(--cf-line);border-radius:16px;background:#fff;text-align:center}.classroomLoading span{width:34px;height:34px;border:4px solid #d9ecf9;border-top-color:#168ee0;border-radius:50%;animation:classroomSpin .8s linear infinite}.classroomLoading p,.classroomEmpty p{margin:0;color:#71879a;font-size:12px;font-weight:700;line-height:1.55}.classroomEmpty.error{border-color:#f1c4bf;background:#fffafa;color:#b33b32}@keyframes classroomSpin{to{transform:rotate(360deg)}}
.classroomSessionBar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid #cfe0ed;border-radius:15px;background:rgba(255,255,255,.96);box-shadow:0 10px 26px rgba(31,70,105,.09);backdrop-filter:blur(10px)}.classroomSessionBar small{color:#168ee0;font-size:11px;font-weight:900}.classroomSessionBar h2{margin:3px 0;font-size:22px}.classroomSessionBar p{margin:0;color:#6f8598;font-size:12px;font-weight:700}.classroomSessionBar>div:last-child{display:flex;gap:8px}
.classroomSessionTabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:5px;border:1px solid var(--cf-line);border-radius:13px;background:#fff}.classroomSessionTabs button{height:42px;border:0;border-radius:8px;background:transparent;color:#687f93;font-weight:900}.classroomSessionTabs button.active{background:#263f57;color:#fff}
.classroomSessionSummary{display:grid;grid-template-columns:repeat(5,1fr);overflow:hidden;border:1px solid var(--cf-line);border-radius:14px;background:#fff}.classroomSessionSummary span{display:grid;place-items:center;gap:2px;min-height:82px;border-right:1px solid #e0e9f1;color:#6a8195;font-size:11px;font-weight:800}.classroomSessionSummary span:last-child{border:0}.classroomSessionSummary b{font-size:24px;color:#223f58}.classroomSessionSummary .good b{color:#09945c}
.classroomBulkRow{display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid var(--cf-line);border-radius:12px;background:#fff}.classroomBulkRow>span{margin-right:auto;color:#61788d;font-size:11px;font-weight:900}.classroomBulkRow button{min-height:34px;padding:0 12px;border:1px solid #ccdce8;border-radius:8px;background:#f8fbfd;color:#31516a;font-size:11px;font-weight:900}
.classroomStudentGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.classroomStudentCard{padding:14px;border:1px solid #d7e3ed;border-left:5px solid #16a66a;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(33,71,105,.04)}.classroomStudentCard.status-absent{border-left-color:#e34a42}.classroomStudentCard.status-late{border-left-color:#f1a12c}.classroomStudentCard.status-official{border-left-color:#3d8fe0}.classroomStudentCard.status-excluded{border-left-color:#8292a0}.classroomStudentCard.status-injury{border-left-color:#db6e32}
.classroomStudentCard>header{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px}.classroomStudentCard>header>span{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#eef6fc;color:#1679b9;font-weight:900}.classroomStudentCard header div{display:grid;gap:2px}.classroomStudentCard header b{font-size:15px}.classroomStudentCard header small{color:#7b8fa1;font-size:10px;font-weight:700}.classroomGear{display:flex!important;align-items:center;gap:5px;padding:6px 8px;border-radius:8px;background:#fff5e9;color:#aa6414;font-size:10px;font-weight:900}.classroomGear input{accent-color:#ed951e}
.classroomStatusButtons{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-top:12px}.classroomStatusButtons button{display:grid;place-items:center;gap:2px;min-height:49px;padding:4px;border:1px solid #d6e2ec;border-radius:8px;background:#f9fbfd;color:#61788b;font-size:9px;font-weight:900}.classroomStatusButtons button span{font-size:14px}.classroomStatusButtons button.active{border-color:#79bfe8;background:#eaf6ff;color:#0876bc;box-shadow:inset 0 0 0 1px #79bfe8}
.classroomObservation{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;margin-top:10px}.classroomObservation span{color:#647b8f;font-size:10px;font-weight:900}.classroomObservation input{width:100%;height:38px;padding:0 10px;border:1px solid #d0dee9;border-radius:8px;color:#1b344b;font-size:12px;font-weight:700}
.classroomObservationSaveRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;min-width:0;margin-top:10px}.classroomObservationSaveRow .classroomObservation{min-width:0;margin-top:0}.classroomStudentSave{min-width:78px;height:38px;padding:0 10px;border:1px solid var(--cf-green);border-radius:8px;background:var(--cf-green);color:#fff;font-size:10px;font-weight:950;white-space:nowrap;box-shadow:0 4px 10px rgba(22,166,106,.16)}
.classroomSaveButton[data-save-state="success"],.classroomStudentSave[data-save-state="success"]{background:#0c8b55;border-color:#0c8b55}.classroomSaveButton[data-save-state="error"],.classroomStudentSave[data-save-state="error"]{border-color:#e1665e;background:#fff0ef;color:#b83b33;box-shadow:none}.classroomSaveButton[data-save-state="saving"],.classroomStudentSave[data-save-state="saving"]{box-shadow:none}
.classroomSaveButton:focus-visible,.classroomEndButton:focus-visible,.classroomStudentSave:focus-visible{outline:3px solid rgba(22,142,224,.24);outline-offset:2px}
.classroomModal{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(12,28,43,.58);backdrop-filter:blur(4px)}html.classroomModalOpen,body.classroomModalOpen{overflow:hidden!important;overscroll-behavior:none!important}.classroomModal>section{width:min(650px,100%);max-height:min(780px,calc(100dvh - 40px));overflow:auto;padding:23px;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.24)}.classroomModal header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;border-bottom:1px solid #e0e9f0;padding-bottom:14px}.classroomModal header small{color:#168ee0;font-size:10px;font-weight:900;letter-spacing:.12em}.classroomModal h2,.classroomModal p{margin:0}.classroomModal h2{margin-top:4px;font-size:22px}.classroomModal p{margin-top:4px;color:#6e8497;font-size:12px;font-weight:700}.classroomModal header>button{width:38px;height:38px;border:1px solid #cfdee9;border-radius:10px;background:#fff;color:#405b72;font-size:21px}.classroomFinishGrid{display:grid;gap:11px;margin-top:17px}.classroomFinishGrid label{display:grid;gap:6px}.classroomFinishGrid span{font-size:11px;font-weight:900}.classroomFinishGrid input,.classroomFinishGrid textarea{width:100%;padding:10px 11px;border:1px solid #cbdbe7;border-radius:9px;resize:vertical}.classroomFinishChecks{display:grid;gap:8px;margin-top:14px}.classroomFinishChecks label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;padding:11px;border:1px solid #dae5ee;border-radius:10px;background:#f9fcfe}.classroomFinishChecks input{margin-top:3px;accent-color:#16a66a}.classroomFinishChecks span{display:grid;gap:3px}.classroomFinishChecks b{font-size:12px}.classroomFinishChecks small{color:#708698;font-size:10px;font-weight:700}.classroomModal footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.classroomCatchupIntro{display:flex;align-items:center;justify-content:space-between;gap:16px}.classroomCatchupIntro p{margin:7px 0 0;color:#6d8397;font-size:12px;font-weight:700}.classroomCatchupFilters{display:flex;gap:7px}.classroomCatchupFilters button{height:36px;padding:0 14px;border:1px solid #cfdee9;border-radius:999px;background:#fff;color:#5d758a;font-size:11px;font-weight:900}.classroomCatchupFilters button.active{border-color:#168ee0;background:#168ee0;color:#fff}.classroomCatchupList{display:grid;gap:7px}.classroomCatchupList>button{display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid #d9e5ee;border-radius:11px;background:#fff;text-align:left;color:var(--cf-ink)}.classroomCatchupList .type{display:grid;place-items:center;min-height:30px;border-radius:8px;background:#eaf5ff;color:#0878c2;font-size:10px;font-weight:900}.classroomCatchupList .type.paps{background:#edf9f2;color:#078250}.classroomCatchupList .student{display:grid;gap:3px}.classroomCatchupList .student b{font-size:13px}.classroomCatchupList .student small{color:#73889a;font-size:10px;font-weight:700}.classroomCatchupList .go{color:#168ee0;font-size:11px;font-weight:900}
.classroomStationControls,.classroomTeamControls{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;align-items:end;padding:15px;border:1px solid var(--cf-line);border-radius:14px;background:#fff}.classroomStationControls .wide{grid-column:span 2}.classroomStationControls button,.classroomTeamControls button{height:43px}.classroomStationCard{width:min(780px,100%);margin:0 auto;padding:22px;border:1px solid #cfdeea;border-radius:18px;background:#fff;box-shadow:0 13px 34px rgba(31,72,108,.1)}.classroomStationCard>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:15px;border-bottom:1px solid #e2eaf1}.classroomStationCard>header>div{display:flex;align-items:center;gap:12px}.classroomStationCard>header>div>span{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#e9f5ff;color:#0b7dc4;font-size:20px;font-weight:900}.classroomStationCard header small{color:#788da0;font-size:10px;font-weight:800}.classroomStationCard h2{margin:2px 0 0;font-size:22px}.classroomStationCard header>strong{padding:7px 10px;border-radius:999px;background:#eef4f8;color:#4c667d;font-size:11px}.classroomStationItem{text-align:center;padding:18px 0 6px}.classroomStationItem small{color:#168ee0;font-size:10px;font-weight:900}.classroomStationItem h3{margin:5px 0;font-size:22px}.classroomStationFields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.classroomStationField{display:grid;gap:7px}.classroomStationField.single{grid-column:1/-1}.classroomStationField>span{text-align:center;color:#5e768b;font-size:11px;font-weight:900}.classroomStationField small{color:#168ee0}.classroomStationField input{width:100%;height:70px;border:2px solid #bad8eb;border-radius:13px;background:#fbfdff;color:#17364f;font-size:27px;font-weight:900;text-align:center}.classroomStationField input:focus{outline:3px solid rgba(22,142,224,.16);border-color:#168ee0}.classroomStationCard>footer{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;margin-top:18px}.classroomStationCard footer button{min-height:48px}
.classroomTeamControls .teamAvoid{display:flex;align-items:center;justify-content:center;min-height:43px;padding:0 9px;border:1px solid #d1dfea;border-radius:9px;background:#f8fbfd}.teamAvoid input{accent-color:#168ee0}.classroomTeamResults{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.classroomTeamResults article{overflow:hidden;border:1px solid #d5e2ec;border-radius:14px;background:#fff}.classroomTeamResults article>header{display:flex;align-items:center;gap:10px;padding:13px 14px;background:#eff7fd}.classroomTeamResults header>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#168ee0;color:#fff;font-weight:900}.classroomTeamResults h3{margin:0;font-size:16px}.classroomTeamResults header small{color:#758a9c;font-size:10px;font-weight:800}.classroomTeamResults article>div{display:grid}.classroomTeamResults p{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:10px 14px;border-top:1px solid #e4ebf1;font-size:12px}.classroomTeamResults p span{padding:4px 7px;border-radius:999px;background:#fff1dc;color:#ad6610;font-size:9px;font-weight:900}.classroomTeamActions{display:flex;justify-content:flex-end;gap:8px}

@media(max-width:1180px){
  .classroomContextGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.classroomContextGrid .wide{grid-column:span 2}
  .classroomFeatureGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .classroomStationControls,.classroomTeamControls{grid-template-columns:repeat(3,minmax(0,1fr))}.classroomStationControls .wide{grid-column:span 2}
  .classroomStatusButtons{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:768px){
  html[data-pe-tab="classroom"] .pe87Main{background:#f3f7fa}.classroomFlow{gap:12px;padding:0 10px calc(28px + env(safe-area-inset-bottom))}
  .classroomFlowHead{align-items:flex-start;padding:15px;border-radius:14px}.classroomFlowHead h1{font-size:21px}.classroomFlowHead p{font-size:11px;line-height:1.5}.classroomFlowHeadActions{display:grid;justify-items:end}.classroomFlowHeadActions>span{display:none}.classroomFlowHeadActions button{min-height:36px;padding:0 10px;font-size:11px}
  .classroomFlowNav{position:sticky;top:0;z-index:35;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.classroomFlowNav button{min-height:39px;padding:0 3px;font-size:10px;white-space:nowrap}
  .classroomHeroCard{grid-template-columns:1fr;min-height:0;padding:23px 19px}.classroomHeroCard h2{font-size:25px}.classroomHeroCard p{font-size:12px}.classroomHeroMetrics span{padding:16px 5px}.classroomHeroMetrics b{font-size:23px}
  .classroomPanel{padding:14px}.classroomLessonRow{grid-template-columns:50px minmax(0,1fr);gap:10px;padding:9px}.classroomLessonRow .period{min-height:47px}.classroomLessonRow .start{grid-column:1/-1;text-align:center}.classroomDraftList{grid-template-columns:1fr}
  .classroomContextGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.classroomContextGrid .wide{grid-column:1/-1}.classroomStartManual{height:38px;padding-inline:11px;font-size:11px}
  .classroomFeatureGrid{grid-template-columns:1fr}.classroomFeatureGrid button{min-height:88px}
  .classroomSessionBar{top:48px;display:grid;padding:13px;border-radius:12px}.classroomSessionBar h2{font-size:18px}.classroomSessionBar>div:last-child{display:grid;grid-template-columns:1fr 1fr}.classroomSessionBar button{min-width:0;padding:0 8px;font-size:11px}
  .classroomSessionSummary{grid-template-columns:repeat(5,minmax(0,1fr))}.classroomSessionSummary span{min-height:67px;padding:5px 2px;font-size:9px;text-align:center}.classroomSessionSummary b{font-size:19px}
  .classroomBulkRow{flex-wrap:wrap}.classroomBulkRow>span{width:100%}.classroomStudentGrid{grid-template-columns:1fr}.classroomStudentCard{padding:12px}.classroomStatusButtons{grid-template-columns:repeat(3,minmax(0,1fr))}.classroomObservation{grid-template-columns:1fr}.classroomObservation span{text-align:left}.classroomObservationSaveRow{grid-template-columns:minmax(0,1fr) 76px;gap:7px}.classroomStudentSave{min-width:0;width:100%;padding-inline:5px}
  .classroomModal{align-items:end;padding:8px}.classroomModal>section{max-height:calc(100dvh - 16px);padding:18px;border-radius:18px 18px 12px 12px}.classroomModal footer{display:grid;grid-template-columns:1fr 1.4fr}.classroomModal footer button{min-width:0;padding:0 8px}
  .classroomCatchupIntro{align-items:flex-start}.classroomCatchupIntro button{align-self:stretch}.classroomCatchupList>button{grid-template-columns:64px minmax(0,1fr)}.classroomCatchupList .go{grid-column:1/-1;text-align:right}
  .classroomStationControls,.classroomTeamControls{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.classroomStationControls .wide{grid-column:1/-1}.classroomStationControls>button,.classroomTeamControls>button{grid-column:1/-1}
  .classroomStationCard{padding:15px;border-radius:15px}.classroomStationFields{grid-template-columns:1fr}.classroomStationField.single{grid-column:auto}.classroomStationField input{height:64px;font-size:25px}.classroomStationCard>footer{grid-template-columns:1fr 1.3fr}
  .classroomTeamResults{grid-template-columns:1fr}.classroomTeamActions{display:grid;grid-template-columns:1fr 1fr}.classroomTeamActions button{min-width:0;padding:0 8px}
}
@media(max-width:390px){
  .classroomFlow{padding-inline:7px}.classroomFlowNav button{font-size:9px}.classroomHeroCard h2{font-size:22px}.classroomPanel>header{align-items:center}.classroomStartManual{height:36px;padding-inline:9px;font-size:10px}.classroomSessionSummary span{font-size:8px}.classroomStudentCard>header{grid-template-columns:36px minmax(0,1fr) auto}.classroomGear{padding:5px}.classroomStatusButtons button{font-size:8px}.classroomStationControls,.classroomTeamControls{grid-template-columns:1fr}.classroomStationControls .wide{grid-column:auto}.classroomCatchupFilters{display:grid;grid-template-columns:repeat(3,1fr)}
}
@media(prefers-reduced-motion:reduce){.classroomLoading span{animation:none}.classroomLessonRow{transition:none}}

/* Home-owned classroom launcher. It is appended to body so #app rerenders cannot remove it. */
html.classroomLauncherOpen,body.classroomLauncherOpen{overflow:hidden!important;overscroll-behavior:none!important}
body.classroomLauncherOpen{position:fixed!important;top:calc(-1 * var(--classroom-launcher-scroll-top,0px))!important;right:0!important;left:0!important;width:100%!important}
.classroomLauncherBackdrop{position:fixed;z-index:12000;inset:0;display:flex;align-items:stretch;justify-content:flex-end;padding:0;background:rgba(12,29,44,.52);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.classroomLauncher{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(570px,calc(100vw - 36px));height:100dvh;overflow:hidden;border-left:1px solid rgba(210,226,238,.9);border-radius:22px 0 0 22px;background:#f5f8fb;color:#18324a;box-shadow:-22px 0 68px rgba(13,36,55,.25);font-family:var(--site-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);animation:classroomLauncherIn .18s ease-out}
.classroomLauncher *{box-sizing:border-box}.classroomLauncher button,.classroomLauncher input,.classroomLauncher select{font:inherit}.classroomLauncher button{cursor:pointer}
.classroomLauncherHead{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px 25px 19px;border-bottom:1px solid #dbe6ee;background:#fff}
.classroomLauncherHead small,.classroomLauncherSectionTitle small{display:block;color:#1684cd;font-size:10px;font-weight:950;letter-spacing:.13em}
.classroomLauncherHead h2,.classroomLauncherHead p,.classroomLauncherSectionTitle h3{margin:0}.classroomLauncherHead h2{margin-top:5px;font-size:25px;letter-spacing:-.045em}.classroomLauncherHead p{margin-top:7px;color:#6c8194;font-size:12px;font-weight:750;line-height:1.5}
.classroomLauncherHead>button{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border:1px solid #cedde8;border-radius:12px;background:#f8fbfd;color:#435f75;font-size:24px;line-height:1}
.classroomLauncherBody{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:17px 18px calc(24px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}
.classroomLauncherSection{margin-bottom:13px;padding:17px;border:1px solid #d9e5ee;border-radius:16px;background:#fff;box-shadow:0 6px 20px rgba(32,72,105,.055)}.classroomLauncherSection:last-child{margin-bottom:0}
.classroomLauncherSectionTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.classroomLauncherSectionTitle h3{margin-top:4px;font-size:17px;letter-spacing:-.035em}.classroomLauncherSectionTitle>span{padding:5px 8px;border-radius:999px;background:#edf6fc;color:#4e718b;font-size:9px;font-weight:900}
.classroomLauncherDrafts>div:last-child{display:grid;gap:7px}.classroomLauncherDrafts button{display:grid;grid-template-columns:35px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:62px;padding:9px 11px;border:1px solid #d7e4ed;border-radius:11px;background:#f8fbfe;color:#18324a;text-align:left}
.classroomLauncherDrafts .icon{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#e5f4ee;color:#12815d;font-size:18px;font-weight:950}.classroomLauncherDrafts button>span:nth-child(2){display:grid;gap:4px;min-width:0}.classroomLauncherDrafts b,.classroomLauncherDrafts small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.classroomLauncherDrafts b{font-size:12px}.classroomLauncherDrafts small{color:#7c8f9f;font-size:9px;font-weight:750}.classroomLauncherDrafts strong{color:#1684cd;font-size:10px;white-space:nowrap}
.classroomLauncherContext{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.classroomLauncherContext label{display:grid;gap:6px;min-width:0}.classroomLauncherContext label>span{color:#5d7488;font-size:10px;font-weight:900}.classroomLauncherContext input,.classroomLauncherContext select{width:100%;min-width:0;height:42px;padding:0 9px;border:1px solid #cbdbe7;border-radius:9px;background:#fff;color:#19354c;font-weight:850;text-align:center}.classroomLauncherContext .wide{grid-column:1/-1}
.classroomLauncherStart{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:45px;border:1px solid #168ee0;border-radius:10px;background:#168ee0;color:#fff;font-weight:950;box-shadow:0 7px 16px rgba(22,142,224,.2)}.classroomLauncherStart span{font-size:11px}
.classroomLauncherShortcutGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.classroomLauncherShortcutGrid button{display:grid;place-items:center;align-content:center;gap:5px;min-width:0;min-height:92px;padding:10px 6px;border:1px solid #d7e4ed;border-radius:12px;background:#f9fcfe;color:#1d394f;text-align:center}.classroomLauncherShortcutGrid button>span{font-size:22px}.classroomLauncherShortcutGrid b{font-size:11px}.classroomLauncherShortcutGrid small{color:#778c9d;font-size:8px;font-weight:750;line-height:1.35}
.classroomLauncher button:focus-visible,.classroomLauncher input:focus-visible,.classroomLauncher select:focus-visible{outline:3px solid rgba(22,142,224,.22);outline-offset:2px}
@keyframes classroomLauncherIn{from{opacity:.65;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}

/* Keep the existing home card composition while adding one compact launcher and direct-start affordance. */
body.homeDashboardApp .homeTodayHeaderActions{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0}
body.homeDashboardApp .homeTodayHeaderActions #homeClassroomTools{min-height:30px;padding:0 10px!important;border:1px solid #bfe2d5!important;border-radius:999px!important;background:#f1faf6!important;color:#137a61!important;font-size:10px!important;font-weight:950!important;white-space:nowrap}
body.homeDashboardApp #app .homeHeroActions.hasClassroomTools{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;width:min(100%,370px)!important}
body.homeDashboardApp #app .homeHeroActions.hasClassroomTools>button{box-sizing:border-box;width:100%!important;min-width:0!important;min-height:46px!important;white-space:nowrap}
body.homeDashboardApp #app .homeHeroActions.hasClassroomTools>#homeAddLesson,
body.homeDashboardApp #app .homeHeroActions.hasClassroomTools>#homeOpenCalendar,
body.homeDashboardApp #app .homeHeroActions.hasClassroomTools>#homeClassroomTools{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;text-indent:0!important}
body.homeDashboardApp #app .homeHeroActions [data-home-action-content]{display:inline-block;flex:0 0 auto;line-height:1;white-space:nowrap}
body.homeDashboardApp #app .homeHeroActions [data-home-action-icon],
body.homeDashboardApp #app .homeHeroActions [data-home-action-label]{display:inline-block;flex:0 0 auto;line-height:1}
body.homeDashboardApp #app .homeHeroActions [data-home-action-label]{margin-left:.1em}
body.homeDashboardApp #app .homeHeroActions #homeClassroomTools.homeClassroomToolsHero{border:1px solid #ddb42a!important;background:linear-gradient(180deg,#ffdf67,#f5c944)!important;color:#513d00!important;box-shadow:0 8px 18px rgba(188,143,13,.2)!important}
body.homeDashboardApp #app .homeHeroActions #homeClassroomTools.homeClassroomToolsHero:hover{background:linear-gradient(180deg,#ffe681,#f7cf53)!important}
body.homeDashboardApp #app .homeHeroActions #homeClassroomTools.homeClassroomToolsHero:focus-visible{outline:3px solid rgba(181,127,0,.34)!important;outline-offset:3px!important}
body.homeDashboardApp .homeTodayRow{grid-template-columns:52px minmax(0,1fr) auto}
body.homeDashboardApp .homeTodayStart{display:inline-flex;align-items:center;justify-content:center;min-height:31px;padding:0 10px;border-radius:9px;background:#e9f6f2;color:#137d65;font-size:10px;font-weight:950;text-align:center;white-space:nowrap}
body.homeDashboardApp .homeClassroomResume{padding:0 21px 8px}
body.homeDashboardApp .homeClassroomResume>button{display:grid;grid-template-columns:31px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:54px;padding:8px 10px;border:1px solid #cce5da;border-radius:11px;background:#f3faf7;color:#1c3a4f;text-align:left;cursor:pointer}
body.homeDashboardApp .homeClassroomResume>button>span:first-child{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#dff2e9;color:#148163;font-size:16px;font-weight:950}.homeClassroomResume>button>span:nth-child(2){display:grid;gap:2px;min-width:0}.homeClassroomResume b,.homeClassroomResume small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.homeClassroomResume b{font-size:10px}.homeClassroomResume small{color:#6f857c;font-size:8px;font-weight:750}.homeClassroomResume strong{color:#148163;font-size:9px;white-space:nowrap}

/* Standard Android keeps the existing mobile-calendar Home instead of switching to the desktop dashboard. */
.homeCalendarClassroomBar{display:grid;gap:8px;min-width:0;margin:0 0 16px;padding:10px;border:1px solid #cfe0ed;border-radius:14px;background:#fff;box-shadow:0 7px 22px rgba(35,72,105,.06)}
.homeCalendarClassroomTools{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-width:0;min-height:46px;padding:8px 12px;border:1px solid #ddb42a;border-radius:10px;background:linear-gradient(180deg,#ffdf67,#f5c944);color:#513d00;font-weight:950;line-height:1.2;text-align:center;white-space:normal;cursor:pointer;box-shadow:0 7px 16px rgba(188,143,13,.18)}
.homeCalendarClassroomTools:focus-visible{outline:3px solid rgba(181,127,0,.34);outline-offset:2px}
.homeCalendarClassroomBar .homeClassroomResume{min-width:0;margin:0;padding:0}
.homeCalendarClassroomBar .homeClassroomResume>button{display:grid;grid-template-columns:31px minmax(0,1fr) auto;align-items:center;gap:8px;box-sizing:border-box;width:100%;min-width:0;min-height:54px;padding:8px 10px;border:1px solid #cce5da;border-radius:11px;background:#f3faf7;color:#1c3a4f;text-align:left;cursor:pointer}
.homeCalendarClassroomBar .homeClassroomResume>button>span:first-child{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#dff2e9;color:#148163;font-size:16px;font-weight:950}

/* Without a permanent classroom tab, the transient header itself owns navigation. */
.classroomFlowHeadActions{flex-wrap:wrap;justify-content:flex-end}.classroomSessionBar>div:last-child{flex-wrap:wrap;justify-content:flex-end}

@media(max-width:1200px){
  body.homeDashboardApp .homeTodayRow{grid-template-columns:46px minmax(0,1fr) auto!important;gap:8px!important}
  body.homeDashboardApp .homeTodayStart{min-width:43px;padding:0 8px;font-size:0}
  body.homeDashboardApp .homeTodayStart:before{content:"수업시작";font-size:9px}
  body.homeDashboardApp .homeTodayHeaderActions{gap:5px}
  body.homeDashboardApp .homeTodayHeaderActions #homeClassroomTools{padding-inline:8px!important;font-size:9px!important}
  body.homeDashboardApp .homeClassroomResume{padding-right:13px;padding-left:13px}
}
@media(max-width:768px){
  .classroomLauncherBackdrop{align-items:flex-end;justify-content:center;padding:8px 8px 0}
  .classroomLauncher{width:100%;height:auto;max-height:calc(100dvh - 8px);border:1px solid #d4e2ec;border-bottom:0;border-radius:20px 20px 0 0;box-shadow:0 -18px 54px rgba(13,36,55,.25);animation:classroomLauncherUp .18s ease-out}
  .classroomLauncherHead{padding:18px 17px 14px}.classroomLauncherHead h2{font-size:21px}.classroomLauncherHead p{font-size:10px}.classroomLauncherHead>button{width:38px;height:38px;flex-basis:38px}
  .classroomLauncherBody{padding:12px 11px calc(15px + env(safe-area-inset-bottom))}.classroomLauncherSection{padding:14px;border-radius:14px}.classroomLauncherSectionTitle h3{font-size:15px}
  .classroomLauncherDrafts button{grid-template-columns:32px minmax(0,1fr) auto}.classroomLauncherDrafts .icon{width:32px;height:32px}.classroomLauncherDrafts strong{font-size:9px}
  .classroomLauncherContext{gap:8px}.classroomLauncherContext input,.classroomLauncherContext select{height:40px;font-size:12px}.classroomLauncherStart{min-height:43px;font-size:12px}
  .classroomLauncherShortcutGrid{gap:6px}.classroomLauncherShortcutGrid button{min-height:83px;padding-inline:3px}.classroomLauncherShortcutGrid b{font-size:10px}.classroomLauncherShortcutGrid small{font-size:7px}
  .classroomFlowHeadActions{grid-template-columns:auto auto}.classroomFlowHeadActions>span{display:none}.classroomFlowHeadActions button{font-size:10px}
  .classroomSessionBar{top:0}.classroomSessionBar>div:last-child{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.classroomSessionBar>div:last-child button{font-size:9px}
  body.homeDashboardApp .homeTodayHeaderActions{flex:0 0 auto}
  body.homeDashboardApp .homeClassroomResume{padding-right:14px;padding-left:14px}
  body.homeDashboardApp .homeClassroomResume>button{grid-template-columns:29px minmax(0,1fr) auto;padding-inline:8px}.homeClassroomResume strong{font-size:0}.homeClassroomResume strong:before{content:"이어 하기";font-size:8px}
}
@media(max-width:390px){
  .classroomLauncherBackdrop{padding-inline:4px}.classroomLauncherHead p{max-width:250px}.classroomLauncherSection{padding:12px}.classroomLauncherShortcutGrid small{display:none}.classroomLauncherShortcutGrid button{min-height:67px}
  body.homeDashboardApp .homeSchedulePane>header{gap:7px!important}.homeTodayHeaderActions .homeScheduleCount{min-width:26px;height:26px;padding-inline:6px}.homeClassroomResume>button>span:nth-child(2) small{display:none}
}
@media(max-width:360px){
  body.homeDashboardApp #app .homeHeroActions.hasClassroomTools{gap:6px!important}
  body.homeDashboardApp #app .homeHeroActions.hasClassroomTools>button{padding-inline:4px!important;font-size:10.5px!important;letter-spacing:-.02em}
}

/* Keep selected values centered across the full control while retaining an explicit arrow. */
#classroomLauncherModal .classroomLauncherContext :is(#classroomLauncherGrade,#classroomLauncherClass,#classroomLauncherPeriod){-webkit-appearance:none!important;appearance:none!important;padding-right:30px!important;padding-left:30px!important;background-color:#fff!important;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%228%22%20viewBox%3D%220%200%2012%208%22%3E%3Cpath%20d%3D%22M2%202l4%204%204-4%22%20fill%3D%22none%22%20stroke%3D%22%23405b72%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E")!important;background-repeat:no-repeat!important;background-position:right 10px center!important;background-size:12px 8px!important;text-align:center!important;text-align-last:center!important}

/* iPad Safari keeps an intrinsic date-control width/value inset unless both are reset. */
html:is(.pe87Ipad,.pe87IpadRuntime,[data-pe-ipados="true"]) #classroomLauncherModal .classroomLauncherContext #classroomLauncherDate,
html:is(.pe87Ipad,.pe87IpadRuntime,[data-pe-ipados="true"]) #classroomLauncherModal .classroomLauncherContext #classroomLauncherClass{box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important;inline-size:100%!important;min-inline-size:0!important;max-inline-size:100%!important;height:42px!important;min-height:42px!important;max-height:42px!important}
html:is(.pe87Ipad,.pe87IpadRuntime,[data-pe-ipados="true"]) #classroomLauncherModal #classroomLauncherDate{display:block!important;-webkit-appearance:none!important;appearance:none!important;padding-right:9px!important;padding-left:9px!important;text-align:center!important;text-align-last:center!important}
html:is(.pe87Ipad,.pe87IpadRuntime,[data-pe-ipados="true"]) #classroomLauncherModal #classroomLauncherDate::-webkit-date-and-time-value{display:block;width:100%;min-width:0;margin:0;text-align:center}
html:is(.pe87Ipad,.pe87IpadRuntime,[data-pe-ipados="true"]) #classroomLauncherModal #classroomLauncherDate::-webkit-datetime-edit{display:block;width:100%;padding:0;text-align:center}
@media(max-width:768px){
  html:is(.pe87Ipad,.pe87IpadRuntime,[data-pe-ipados="true"]) #classroomLauncherModal .classroomLauncherContext #classroomLauncherDate,
  html:is(.pe87Ipad,.pe87IpadRuntime,[data-pe-ipados="true"]) #classroomLauncherModal .classroomLauncherContext #classroomLauncherClass{height:40px!important;min-height:40px!important;max-height:40px!important}
}
@keyframes classroomLauncherUp{from{opacity:.7;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.classroomLauncher{animation:none}}

/* An exact local draft reuses its existing Today row instead of adding another recovery card. */
body.homeDashboardApp .homeTodayRow.hasClassroomDraft .homeTodayStart{border-color:#b8dfcf;background:#e4f5ed;color:#0d7759}
body.homeDashboardApp .homeTodayRow.hasClassroomCompleted{cursor:default}
body.homeDashboardApp .homeTodayRow.hasClassroomCompleted .homeTodayStart{border-color:#111;background:#111;color:#fff;box-shadow:0 4px 10px rgba(0,0,0,.18)}
@media(max-width:1200px){
  body.homeDashboardApp .homeTodayRow.hasClassroomDraft .homeTodayStart{min-width:59px;padding-inline:6px;font-size:9px}
  body.homeDashboardApp .homeTodayRow.hasClassroomDraft .homeTodayStart:before{content:none}
  body.homeDashboardApp .homeTodayRow.hasClassroomCompleted .homeTodayStart{min-width:59px;padding-inline:6px;font-size:9px}
  body.homeDashboardApp .homeTodayRow.hasClassroomCompleted .homeTodayStart:before{content:none}
}

/* The in-session assessment station owns its fixed lesson context. */
.classroomStationControls.embedded{grid-template-columns:repeat(7,minmax(0,1fr))}
.classroomStationControls select:disabled{border-color:#d8e2ea;background:#f1f5f8;color:#617588;opacity:1;cursor:default;-webkit-text-fill-color:#617588}
.classroomStationControls.embedded+.classroomStationCard{width:100%;max-width:none;margin-right:0;margin-left:0}
.classroomSessionCatchupSummary{grid-template-columns:repeat(3,minmax(0,1fr))}
.classroomSessionCatchupIntro button:disabled{cursor:wait;opacity:.68}

@media(max-width:1180px){
  .classroomStationControls.embedded{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:768px){
  .classroomStationControls.embedded{grid-template-columns:repeat(2,minmax(0,1fr))}
  .classroomSessionCatchupSummary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:390px){
  .classroomStationControls.embedded{grid-template-columns:1fr}
  .classroomStationControls.embedded .wide{grid-column:auto}
}

/* Compact attendance and observation roster. UI-only disclosure state never enters saved records. */
.classroomRosterSummary span{display:flex;min-height:48px;align-items:center;justify-content:center;gap:6px;padding:5px 7px}.classroomRosterSummary b{font-size:19px;line-height:1}.classroomRosterSummary small{color:#6a8195;font-size:10px;font-weight:850;line-height:1.15;text-align:center}.classroomRosterSummary .good small{color:#568578}
.classroomBulkWrap{display:grid;justify-items:end;gap:7px}.classroomBulkWrap>[hidden],.classroomRosterCompact [hidden]{display:none!important}
#classroomBulkMenuToggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:142px;min-height:38px;padding:0 12px;border:1px solid #cbdce8;border-radius:10px;background:#fff;color:#31516a;font-size:11px;font-weight:950;box-shadow:0 4px 12px rgba(31,70,105,.045)}#classroomBulkMenuToggle>span:last-child{font-size:16px;transition:transform .15s ease}.classroomBulkWrap.open #classroomBulkMenuToggle{border-color:#8dc5e8;background:#f2f9fe;color:#0877bd}.classroomBulkWrap.open #classroomBulkMenuToggle>span:last-child{transform:rotate(180deg)}
.classroomBulkWrap .classroomBulkRow{width:100%;justify-content:flex-end}.classroomBulkWrap .classroomBulkRow>span{margin-right:auto}
.classroomStudentGrid.classroomRosterCompact{align-items:start}.classroomRosterCompact .classroomStudentCard{align-self:start;overflow:hidden;padding:0}.classroomRosterCompact .classroomStudentCard.is-expanded{border-color:#a9cce3;box-shadow:0 9px 24px rgba(33,71,105,.09)}
.classroomStudentSummary{display:grid;grid-template-columns:40px minmax(80px,1fr) auto minmax(0,auto) auto;align-items:center;gap:8px;width:100%;min-height:62px;padding:10px 11px;border:0;background:transparent;color:#18324a;text-align:left}.classroomStudentSummary:hover{background:#f8fbfd}.classroomStudentSummary:focus-visible{position:relative;z-index:1;outline:3px solid rgba(22,142,224,.2);outline-offset:-3px}
.classroomRosterNumber{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#eef6fc;color:#1679b9;font-weight:950}.classroomRosterIdentity{display:grid;gap:2px;min-width:0}.classroomRosterIdentity b,.classroomRosterIdentity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.classroomRosterIdentity b{font-size:14px}.classroomRosterIdentity small{color:#7b8fa1;font-size:9px;font-weight:750}
.classroomRosterStatus{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:58px;min-height:27px;padding:0 7px;border-radius:999px;background:#e8f7f0;color:#0b8257;font-size:9px;font-weight:950;white-space:nowrap}.classroomRosterStatus.status-absent{background:#fff0ef;color:#c53d35}.classroomRosterStatus.status-late{background:#fff5df;color:#a9680b}.classroomRosterStatus.status-official{background:#edf5ff;color:#2677c5}.classroomRosterStatus.status-excluded{background:#eff3f5;color:#60717f}.classroomRosterStatus.status-injury{background:#fff0e8;color:#b85d2c}
.classroomRosterFlags{display:flex;align-items:center;justify-content:flex-end;gap:3px;min-width:0;flex-wrap:wrap}.classroomRosterFlags>span{padding:3px 5px;border-radius:999px;background:#fff3e3;color:#9d6017;font-size:8px;font-weight:900;white-space:nowrap}.classroomRosterFlags>span[data-roster-flag="observation"]{background:#edf4ff;color:#346fae}.classroomRosterFlags>.empty{background:#f2f5f7;color:#8a9aa7}
.classroomRosterEdit{display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;color:#1684cd;font-size:9px;font-weight:950;white-space:nowrap}.classroomRosterEdit>span{font-size:17px;line-height:1;transition:transform .15s ease}.classroomStudentCard.is-expanded .classroomRosterEdit>span{transform:rotate(90deg)}
.classroomStudentEditor[hidden]{display:none!important}.classroomRosterEditor{padding:0 12px 12px;border-top:1px solid #e1eaf1;background:#fcfdff}.classroomRosterEditorHead{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:8px;min-width:0;padding-top:10px}.classroomRosterEditorName{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.2}.classroomRosterEditorHead .classroomGear{width:max-content;max-width:100%;margin:0;white-space:nowrap}.classroomRosterEditor .classroomObservationSaveRow{margin-top:9px}.classroomRosterEditor .classroomObservationSaveRow .classroomObservation{margin-top:0}.classroomRosterEditor .classroomStatusButtons{margin-top:11px}

@media(max-width:1180px){
  .classroomRosterFlags>.empty{display:none}
  .classroomStudentSummary{grid-template-columns:38px minmax(70px,1fr) auto minmax(0,auto) auto;gap:6px;padding-inline:9px}.classroomRosterNumber{width:38px;height:38px}
}
@media(max-width:768px){
  .classroomRosterSummary span{min-height:48px;flex-direction:column;gap:1px;padding:4px 2px}.classroomRosterSummary b{font-size:17px}.classroomRosterSummary small{font-size:8px;line-height:1.05}
  .classroomBulkWrap{justify-items:stretch}.classroomBulkWrap #classroomBulkMenuToggle{width:100%}.classroomBulkWrap .classroomBulkRow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.classroomBulkWrap .classroomBulkRow>span{grid-column:1/-1;width:auto;margin:0;text-align:center}.classroomBulkWrap .classroomBulkRow button{min-width:0;padding-inline:5px;font-size:9px}
  .classroomStudentSummary{grid-template-columns:36px minmax(0,1fr) auto auto;grid-template-areas:"number identity status edit" "number flags flags flags";gap:4px 7px;min-height:64px;padding:9px}.classroomRosterNumber{grid-area:number;width:36px;height:36px}.classroomRosterIdentity{grid-area:identity}.classroomRosterStatus{grid-area:status}.classroomRosterFlags{grid-area:flags;justify-content:flex-start;min-height:15px}.classroomRosterEdit{grid-area:edit}.classroomRosterFlags>.empty{display:inline-flex}
  .classroomRosterEditor{padding:0 10px 10px}.classroomRosterEditor .classroomObservation{grid-template-columns:1fr}.classroomRosterEditor .classroomObservation span{text-align:left}
}
@media(max-width:390px){
  .classroomStudentSummary{grid-template-columns:34px minmax(0,1fr) auto auto;gap:4px 5px;padding-inline:8px}.classroomRosterNumber{width:34px;height:34px}.classroomRosterStatus{min-width:52px;padding-inline:5px;font-size:8px}.classroomRosterEdit{font-size:8px}.classroomRosterIdentity b{font-size:13px}.classroomRosterIdentity small{font-size:8px}.classroomObservationSaveRow{grid-template-columns:minmax(0,1fr) 70px;gap:6px}.classroomStudentSave{font-size:9px}
}

/*
 * PE-Class classroom flow 12212
 *
 * Fold-safe responsive layer for the 12142 classroom experience.  The old
 * visual language stays intact, while every classroom grid is allowed to
 * shrink and the two transient dialogs follow the visual viewport.  Runtime
 * code may set --classroom-viewport-height and --classroom-viewport-top from
 * window.visualViewport; 100dvh remains the no-JavaScript fallback.
 */

html[data-pe-tab="classroom"],
html[data-pe-tab="classroom"] body,
body.classroomFlowApp,
body.classroomFlowApp #app,
body.classroomFlowApp .pe87Main{
  max-width:100%;
  max-inline-size:100%;
  overflow-x:clip;
}

.classroomFlow{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  max-width:100%;
  max-inline-size:100%;
  overflow-x:clip;
}

:is(
  .classroomFlowHead,
  .classroomFlowHeadActions,
  .classroomFlowNav,
  .classroomHeroCard,
  .classroomHeroMetrics,
  .classroomPanel,
  .classroomLessonRow,
  .classroomDraftList,
  .classroomContextGrid,
  .classroomFeatureGrid,
  .classroomSessionBar,
  .classroomSessionBar>div,
  .classroomSessionTabs,
  .classroomSessionSummary,
  .classroomBulkWrap,
  .classroomBulkRow,
  .classroomStudentGrid,
  .classroomStudentCard,
  .classroomStudentSummary,
  .classroomStudentEditor,
  .classroomObservationSaveRow,
  .classroomCatchupIntro,
  .classroomCatchupFilters,
  .classroomCatchupList,
  .classroomStationControls,
  .classroomStationCard,
  .classroomStationFields,
  .classroomTeamControls,
  .classroomTeamResults,
  .classroomTeamActions
)>*{
  min-width:0;
  min-inline-size:0;
}

.classroomFlow :is(input,select,textarea,img,svg),
.classroomLauncher :is(input,select,img,svg){
  min-width:0;
  max-width:100%;
  max-inline-size:100%;
  box-sizing:border-box;
}

/* All real action controls retain a 44px target and center their label. */
.classroomFlow button,
.classroomLauncher button,
.classroomModal button,
body.homeDashboardApp #app .homeHeroActions.hasClassroomTools>button,
body.homeDashboardApp .homeTodayStart,
body.homeDashboardApp .homeTodayHeaderActions #homeClassroomTools,
body.homeDashboardApp .homeClassroomResume>button{
  box-sizing:border-box;
  min-width:0;
  max-width:100%;
  min-height:44px;
  overflow-wrap:anywhere;
  word-break:keep-all;
}

:is(
  .classroomPrimary,
  .classroomSecondary,
  .classroomFinish,
  .classroomSaveButton,
  .classroomEndButton,
  .classroomStudentSave,
  .classroomStartManual,
  .classroomFlowNav button,
  .classroomSessionTabs button,
  .classroomSessionBar>div:last-child button,
  .classroomBulkRow button,
  .classroomCatchupFilters button,
  .classroomStationControls>button,
  .classroomTeamControls>button,
  .classroomStationCard>footer button,
  .classroomTeamActions button,
  .classroomModal footer button
){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.25;
  white-space:normal;
}

.classroomStatusButtons button,
.classroomLauncherShortcutGrid button{
  align-items:center;
  justify-items:center;
  align-content:center;
  justify-content:center;
  text-align:center;
  line-height:1.2;
}

.classroomStatusButtons button{min-height:50px}
.classroomLessonRow{min-height:76px}
.classroomFeatureGrid button{min-height:102px}
.classroomStudentSummary{min-height:62px}
.classroomLauncherDrafts button{min-height:62px}
.classroomLauncherShortcutGrid button{min-height:92px}
.classroomStationCard>footer button{min-height:48px}
.classroomLauncherHead>button,
.classroomModal header>button{
  display:grid;
  place-items:center;
  flex:0 0 44px;
  width:44px;
  min-width:44px;
  height:44px;
  min-height:44px;
  padding:0;
  text-align:center;
}

.classroomFlow :is(h1,h2,h3,p,b,small,strong,span),
.classroomLauncher :is(h1,h2,h3,p,b,small,strong,span){
  max-width:100%;
  overflow-wrap:anywhere;
}

/* Visual-viewport ownership: modern dvh works alone; JS variables close the
   remaining Samsung keyboard and browser-chrome gap. */
.classroomLauncherBackdrop,
.classroomModal{
  --cf-visual-height:min(var(--classroom-viewport-height,100dvh),100dvh);
  box-sizing:border-box;
  inset:auto 0 auto 0;
  top:var(--classroom-viewport-top,0px);
  width:100%;
  max-width:100%;
  height:var(--cf-visual-height);
  max-height:var(--cf-visual-height);
  overflow:hidden;
}

.classroomLauncher{
  box-sizing:border-box;
  width:min(570px,calc(100vw - 36px));
  min-width:0;
  max-width:100%;
  height:100%;
  min-height:0;
  max-height:100%;
}

.classroomLauncherBody{
  min-width:0;
  min-height:0;
  max-width:100%;
  overflow-x:hidden;
  overflow-y:auto;
  scrollbar-gutter:stable;
}

.classroomModal{
  overflow:hidden;
  overscroll-behavior:contain;
}

.classroomModal>section{
  width:min(650px,100%);
  min-width:0;
  max-width:100%;
  max-height:calc(var(--cf-visual-height) - 40px);
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
}

.classroomModal footer{
  position:sticky;
  z-index:2;
  bottom:calc(-23px - env(safe-area-inset-bottom));
  margin-inline:-23px;
  padding:12px 23px calc(14px + env(safe-area-inset-bottom));
  border-top:1px solid #e0e9f0;
  background:rgba(255,255,255,.97);
  box-shadow:0 -8px 18px rgba(31,70,105,.06);
  backdrop-filter:blur(8px);
}

.classroomFinishGrid :is(input,textarea),
.classroomLauncherContext :is(input,select){
  font-size:max(16px,1em);
}

@supports not (height:100dvh){
  .classroomLauncherBackdrop,
  .classroomModal{--cf-visual-height:var(--classroom-viewport-height,100vh)}
}

/* The 744/768px unfolded Fold and iPad split view need the session actions to
   own a row; this prevents intrinsic Korean labels from squeezing the title. */
@media(max-width:900px){
  .classroomHeroCard{grid-template-columns:1fr}
  .classroomSessionBar{display:grid;grid-template-columns:minmax(0,1fr)}
  .classroomSessionBar>div:last-child{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:100%;
  }
  .classroomSessionBar>div:last-child button{width:100%;padding-inline:7px}
}

/* Fold7 cover family: 344/360/402 CSS px. */
@media(max-width:402px){
  html[data-pe-tab="classroom"] body,
  body.classroomFlowApp{overflow-x:hidden}

  body.homeDashboardApp #app .homeHeroActions.hasClassroomTools{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-areas:"register calendar" "tools tools"!important;
    gap:7px!important;
    width:100%!important;
    max-width:100%!important;
  }
  body.homeDashboardApp #app .homeHeroActions.hasClassroomTools>#homeAddLesson{grid-area:register}
  body.homeDashboardApp #app .homeHeroActions.hasClassroomTools>#homeOpenCalendar{grid-area:calendar}
  body.homeDashboardApp #app .homeHeroActions.hasClassroomTools>#homeClassroomTools{grid-area:tools}
  body.homeDashboardApp #app .homeHeroActions.hasClassroomTools>button{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    min-height:46px!important;
    padding:6px 7px!important;
    text-align:center!important;
    text-indent:0!important;
    line-height:1.2!important;
    white-space:normal!important;
  }
  body.homeDashboardApp #app .homeHeroActions.hasClassroomTools [data-home-action-content]{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    max-width:100%;
    line-height:1.2;
    white-space:normal;
  }

  .classroomFlow{gap:10px;padding-inline:6px}
  .classroomFlowHead{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:11px;
    padding:13px;
  }
  .classroomFlowHeadActions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    justify-items:stretch;
    width:100%;
  }
  .classroomFlowHeadActions button{width:100%;min-height:44px}
  .classroomFlowNav{gap:3px;padding:4px}
  .classroomFlowNav button{min-height:44px;padding-inline:2px;font-size:9px;white-space:normal}
  .classroomHeroCard{padding:20px 15px}
  .classroomHeroCard h2{font-size:22px}
  .classroomHeroMetrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .classroomHeroMetrics span{min-width:0;padding:13px 3px;text-align:center}
  .classroomPanel{padding:12px}
  .classroomPanel>header,
  .classroomCatchupIntro{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    align-items:start;
  }
  .classroomPanel>header>button,
  .classroomCatchupIntro>button{width:100%}

  .classroomLessonRow{grid-template-columns:48px minmax(0,1fr);padding:8px}
  .classroomLessonRow .start{grid-column:1/-1;min-height:44px;display:grid;place-items:center;text-align:center}
  .classroomContextGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .classroomContextGrid .wide{grid-column:1/-1}
  .classroomContextGrid :is(input,select),
  .classroomStartManual{height:44px;min-height:44px}
  .classroomFeatureGrid button{min-height:88px;padding:13px}

  .classroomSessionBar{position:static;padding:11px}
  .classroomSessionBar h2{font-size:17px;line-height:1.3}
  .classroomSessionBar>div:last-child{gap:5px}
  .classroomSessionBar>div:last-child button{min-height:46px;padding:4px;font-size:9px}
  .classroomSessionTabs{gap:4px;padding:4px}
  .classroomSessionTabs button{height:auto;min-height:44px;padding:4px;font-size:10px;white-space:normal}
  .classroomSessionSummary{grid-template-columns:repeat(5,minmax(0,1fr))}
  .classroomSessionSummary span{min-width:0;min-height:64px;padding:5px 2px;line-height:1.15;text-align:center}
  .classroomSessionSummary b{font-size:18px}
  .classroomRosterSummary small{font-size:8px}

  .classroomBulkWrap .classroomBulkRow{grid-template-columns:repeat(3,minmax(0,1fr))}
  .classroomBulkWrap .classroomBulkRow button{min-height:44px;padding:4px;font-size:9px}
  .classroomStudentSummary{
    grid-template-columns:34px minmax(0,1fr) auto auto;
    gap:4px 5px;
    min-height:64px;
    padding-inline:8px;
  }
  .classroomRosterNumber{width:34px;height:34px}
  .classroomRosterStatus{min-width:50px;max-width:72px;padding-inline:4px;font-size:8px}
  .classroomRosterEdit{font-size:8px}
  .classroomRosterEditor{padding-inline:9px}
  .classroomRosterEditorHead{grid-template-columns:minmax(0,1fr) max-content}
  .classroomRosterEditorHead .classroomGear{max-width:144px;white-space:normal;text-align:center}
  .classroomStatusButtons{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .classroomStatusButtons button{min-width:0;min-height:52px;padding:4px 2px;font-size:8px}
  .classroomObservationSaveRow{grid-template-columns:minmax(0,1fr) 72px;gap:6px}
  .classroomObservation input,.classroomStudentSave{height:44px;min-height:44px}

  .classroomStationControls,
  .classroomStationControls.embedded,
  .classroomTeamControls{grid-template-columns:minmax(0,1fr)}
  .classroomStationControls .wide,
  .classroomStationControls.embedded .wide{grid-column:auto}
  .classroomStationControls :is(select,button),
  .classroomTeamControls :is(select,button){height:44px;min-height:44px}
  .classroomStationCard{padding:13px}
  .classroomStationCard>header{gap:8px}
  .classroomStationCard>header>div{min-width:0;gap:8px}
  .classroomStationCard>header>div>span{flex:0 0 42px;width:42px;height:42px}
  .classroomStationCard h2{font-size:18px}
  .classroomStationCard header>strong{max-width:34%;text-align:center}
  .classroomStationFields{grid-template-columns:minmax(0,1fr)}
  .classroomStationField.single{grid-column:auto}
  .classroomStationCard>footer{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}
  .classroomTeamResults{grid-template-columns:minmax(0,1fr)}
  .classroomTeamActions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .classroomCatchupFilters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .classroomCatchupFilters button{min-width:0;padding:4px;font-size:9px}
  .classroomCatchupList>button{grid-template-columns:58px minmax(0,1fr);padding:10px}
  .classroomCatchupList .go{grid-column:1/-1;text-align:center}

  .classroomLauncherBackdrop{padding:4px 4px 0}
  .classroomLauncher{
    width:100%;
    height:100%;
    max-height:100%;
    border-right:1px solid #d4e2ec;
    border-bottom:0;
    border-left:1px solid #d4e2ec;
    border-radius:18px 18px 0 0;
  }
  .classroomLauncherHead{gap:10px;padding:14px 13px 11px}
  .classroomLauncherHead h2{font-size:20px}
  .classroomLauncherHead p{max-width:245px;font-size:10px}
  .classroomLauncherBody{padding:10px 8px calc(12px + env(safe-area-inset-bottom))}
  .classroomLauncherSection{padding:11px;border-radius:13px}
  .classroomLauncherSectionTitle{gap:7px}
  .classroomLauncherSectionTitle h3{font-size:14px}
  .classroomLauncherDrafts button{
    grid-template-columns:32px minmax(0,1fr);
    grid-template-areas:"icon copy" "icon action";
    gap:4px 8px;
    min-height:68px;
  }
  .classroomLauncherDrafts .icon{grid-area:icon}
  .classroomLauncherDrafts button>span:nth-child(2){grid-area:copy}
  .classroomLauncherDrafts strong{grid-area:action;justify-self:start;white-space:normal}
  .classroomLauncherContext{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .classroomLauncherContext :is(input,select){height:44px;min-height:44px;padding-inline:7px}
  .classroomLauncherStart{min-height:46px}
  .classroomLauncherShortcutGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .classroomLauncherShortcutGrid button{min-height:72px;padding:6px 3px}
  .classroomLauncherShortcutGrid small{display:none}

  .classroomModal{align-items:end;padding:4px}
  .classroomModal>section{
    max-height:calc(var(--cf-visual-height) - 8px);
    padding:14px;
    border-radius:16px 16px 8px 8px;
  }
  .classroomModal header{gap:9px;padding-bottom:10px}
  .classroomModal h2{font-size:19px}
  .classroomModal footer{
    bottom:calc(-14px - env(safe-area-inset-bottom));
    grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);
    margin-inline:-14px;
    padding:10px 14px calc(12px + env(safe-area-inset-bottom));
  }
}

/* Fold7 cover at its narrowest 344/360 widths. Keep two useful columns where
   labels fit, then let genuinely wide controls own the full row. */
@media(max-width:360px){
  body.homeDashboardApp #app .homeHeroActions.hasClassroomTools{gap:6px!important}
  body.homeDashboardApp #app .homeHeroActions.hasClassroomTools>button{font-size:10.5px!important}
  .classroomFlow{padding-inline:4px}
  .classroomFlowHead{padding:11px}
  .classroomPanel{padding:10px}
  .classroomSessionBar>div:last-child button{font-size:8px}
  .classroomRosterStatus{min-width:48px}
  .classroomRosterFlags>.empty{display:none}
  .classroomRosterEditorHead{grid-template-columns:minmax(0,1fr)}
  .classroomRosterEditorHead .classroomGear{width:100%;max-width:100%;justify-content:center}
  .classroomLauncherHead p{display:none}
  .classroomLauncherSectionTitle>span{padding-inline:5px}
  #classroomLauncherModal .classroomLauncherContext :is(#classroomLauncherGrade,#classroomLauncherClass,#classroomLauncherPeriod){padding-right:25px!important;padding-left:20px!important;background-position:right 7px center!important}
}

/* The 882x344 folded landscape and any phone with an open keyboard get a
   compact header and a single owned scroller instead of stacked sticky bars. */
@media(max-height:520px) and (orientation:landscape){
  .classroomFlowNav,
  .classroomSessionBar{position:static}
  .classroomFlowHead{padding-block:10px}
  .classroomFlowHead p,
  .classroomHeroCard p{display:none}
  .classroomHeroCard{min-height:0;padding-block:18px}

  .classroomLauncherBackdrop{padding:3px}
  .classroomLauncher{
    width:min(620px,100%);
    height:100%;
    max-height:100%;
    border:1px solid #d4e2ec;
    border-radius:14px;
    animation:classroomLauncherUp .18s ease-out;
  }
  .classroomLauncherHead{padding:9px 13px}
  .classroomLauncherHead small,
  .classroomLauncherHead p{display:none}
  .classroomLauncherHead h2{margin-top:0;font-size:18px}
  .classroomLauncherHead>button{width:44px;height:44px}
  .classroomLauncherBody{padding:8px calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left))}
  .classroomLauncherSection{margin-bottom:7px;padding:10px}
  .classroomLauncherSectionTitle{margin-bottom:8px}
  .classroomLauncherSectionTitle small{display:none}
  .classroomLauncherShortcutGrid button{min-height:64px}
  .classroomLauncherShortcutGrid small{display:none}

  .classroomModal{align-items:stretch;padding:3px}
  .classroomModal>section{
    width:min(760px,100%);
    max-height:calc(var(--cf-visual-height) - 6px);
    margin:auto;
    padding:11px 14px;
    border-radius:12px;
  }
  .classroomModal header{padding-bottom:8px}
  .classroomModal header small{display:none}
  .classroomModal h2{margin-top:0;font-size:18px}
  .classroomFinishGrid{gap:7px;margin-top:10px}
  .classroomFinishChecks{gap:6px;margin-top:9px}
  .classroomFinishChecks label{padding:8px}
  .classroomModal footer{
    bottom:calc(-11px - env(safe-area-inset-bottom));
    margin-inline:-14px;
    margin-top:10px;
    padding:8px 14px calc(8px + env(safe-area-inset-bottom));
  }
}

@media(prefers-reduced-motion:reduce){
  .classroomFlow *,
  .classroomLauncher *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* Integrated 12143 iPhone native-date alignment.  The pe87IPhone gate is
   deliberate: a folded Galaxy is coarse/compact too, but must never inherit
   WebKit's iPhone-only date-box surgery. */
@supports(-webkit-touch-callout:none){
  html.pe87IPhone #classroomLauncherModal .classroomLauncherContext #classroomLauncherDate{
    -webkit-appearance:none!important;
    appearance:none!important;
    position:relative!important;
    display:block!important;
    box-sizing:border-box!important;
    inline-size:100%!important;
    min-inline-size:0!important;
    max-inline-size:100%!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
    margin:0!important;
    padding:0 9px!important;
    overflow:hidden!important;
    line-height:normal!important;
    text-align:center!important;
    text-align-last:center!important;
    -webkit-text-size-adjust:100%;
  }
  html.pe87IPhone #classroomLauncherModal .classroomLauncherContext #classroomLauncherDate::-webkit-date-and-time-value{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    height:100%!important;
    min-height:100%!important;
    margin:0!important;
    padding:0!important;
    line-height:normal!important;
    text-align:center!important;
  }
  html.pe87IPhone #classroomLauncherModal .classroomLauncherContext #classroomLauncherDate::-webkit-datetime-edit,
  html.pe87IPhone #classroomLauncherModal .classroomLauncherContext #classroomLauncherDate::-webkit-datetime-edit-fields-wrapper{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    height:100%!important;
    margin:0 auto!important;
    padding:0!important;
    line-height:normal!important;
  }
}

/* iPad Safari has a different intrinsic date inset.  It keeps its own gate and
   therefore cannot affect Fold Android, even in a 744px unfolded viewport. */
html:is(.pe87Ipad,.pe87IpadRuntime,[data-pe-ipados="true"]) #classroomLauncherModal .classroomLauncherContext :is(#classroomLauncherDate,#classroomLauncherClass){
  box-sizing:border-box!important;
  inline-size:100%!important;
  min-inline-size:0!important;
  max-inline-size:100%!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  text-align:center!important;
  text-align-last:center!important;
}
html:is(.pe87Ipad,.pe87IpadRuntime,[data-pe-ipados="true"]) #classroomLauncherModal #classroomLauncherDate{
  display:block!important;
  -webkit-appearance:none!important;
  appearance:none!important;
  padding-right:9px!important;
  padding-left:9px!important;
}
html:is(.pe87Ipad,.pe87IpadRuntime,[data-pe-ipados="true"]) #classroomLauncherModal #classroomLauncherDate::-webkit-date-and-time-value,
html:is(.pe87Ipad,.pe87IpadRuntime,[data-pe-ipados="true"]) #classroomLauncherModal #classroomLauncherDate::-webkit-datetime-edit{
  display:block;
  width:100%;
  min-width:0;
  margin:0;
  padding:0;
  text-align:center;
}

/* Integrated 12144 no-auto-zoom policy.  Do not disable page zoom and do not
   flatten the intentionally large station score field; only controls that
   would otherwise render below 16px are raised to the safe focus size. */
html[data-pe-input="coarse"] .classroomFlow :is(
  .classroomContextGrid input,
  .classroomContextGrid select,
  .classroomStationControls select,
  .classroomTeamControls select,
  .classroomObservation input,
  .classroomFinishGrid input,
  .classroomFinishGrid textarea
),
html[data-pe-input="coarse"] #classroomLauncherModal .classroomLauncherContext :is(input,select){
  font-size:16px!important;
}
