:root{--bg:#f4f7fb;--card:#fff;--ink:#172033;--muted:#667085;--line:#dfe5ec;--blue:#246bdf;--blue-soft:#e9f1ff;--green:#1eae72;--red:#e84d55;--amber:#f59e0b;--shadow:0 8px 24px rgba(23,32,51,.06)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.sidebar{background:#fff;border-right:1px solid var(--line);padding:22px 14px;position:sticky;top:0;height:100vh}.brand{text-decoration:none;font-weight:800;font-size:23px;line-height:1.05;display:block;padding:0 10px 30px}.brand span{color:var(--blue)}.sidebar nav{display:grid;gap:7px}.sidebar nav a{display:flex;gap:11px;align-items:center;text-decoration:none;padding:12px 14px;border-radius:10px;color:#344054;font-weight:600}.sidebar nav a.active{background:var(--blue-soft);color:var(--blue)}.sidebar nav a span{width:22px;text-align:center}.main-area{min-width:0}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 28px}.signed-in{font-size:14px;color:#475467}.signed-in a{margin-left:14px;color:var(--blue);text-decoration:none}.content{padding:26px 30px 50px;max-width:1500px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.page-head h1{margin:0;font-size:30px}.page-head p{margin:4px 0 0;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.panel{padding:20px}.grid{display:grid;gap:16px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.stat{padding:20px}.stat strong{font-size:31px;display:block}.stat span{color:var(--muted)}button,.btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:9px;padding:10px 14px;font:inherit;font-weight:650;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn-primary,button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-danger{color:var(--red)}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #cfd6df;border-radius:9px;background:#fff;font:inherit;color:var(--ink)}textarea{min-height:110px;resize:vertical}label{font-size:13px;font-weight:700;color:#344054;display:block;margin-bottom:6px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-row{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.form-row>div{min-width:160px;flex:1}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.empty{padding:38px;text-align:center;color:var(--muted)}.toast{position:fixed;top:78px;left:50%;transform:translateX(-50%);background:#172033;color:#fff;padding:11px 18px;border-radius:9px;box-shadow:0 10px 30px rgba(0,0,0,.18);z-index:50}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:14px;margin-bottom:14px}.toolbar .field{min-width:180px}.chart-layout{display:grid;grid-template-columns:minmax(620px,1fr) 320px;gap:16px}.room{position:relative;min-height:700px;background:#ebe7df;border:10px solid #d3d8df;border-radius:12px;overflow:hidden;padding:86px 34px 80px}.front-room{position:absolute;top:12px;left:50%;transform:translateX(-50%);background:#f7ead0;border-radius:7px;padding:7px 60px;font-weight:800}.teacher-desk{position:absolute;top:45px;left:50%;transform:translateX(-50%);background:#bd8d5d;color:#fff;padding:12px 34px;border-radius:8px;font-size:13px}.seat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:32px 18px;margin-top:70px}.seat{background:#fff;border:2px solid #d7b587;border-radius:9px;min-height:74px;display:flex;align-items:center;justify-content:center;position:relative;padding:10px;box-shadow:0 4px 8px rgba(0,0,0,.07);cursor:pointer;font-weight:700;text-align:center}.seat.empty{border-style:dashed;background:rgba(255,255,255,.35);color:#98a2b3}.seat .badge{position:absolute;right:6px;bottom:6px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:12px}.badge.present{background:var(--green)}.badge.absent{background:var(--red)}.badge.tardy{background:var(--amber)}.seat.dragging{opacity:.45}.room.edit-mode .seat{cursor:grab}.summary-stack{display:grid;gap:14px}.summary-card{padding:17px}.summary-card h3{margin:0 0 14px}.attendance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.att-box{border-radius:10px;padding:13px 8px;text-align:center;background:#f7f8fa}.att-box strong{display:block;font-size:24px}.att-box span{font-size:12px;color:var(--muted)}.att-box.present{background:#eefaf4}.att-box.absent{background:#fff0f1}.att-box.tardy{background:#fff7e7}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.student-list{display:grid;gap:8px}.student-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:9px}.pill{display:inline-block;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;background:#eef2f6;color:#475467}.pill.live{background:#eaf8f1;color:#16875a}.pill.pending{background:#fff6e5;color:#a36300}.sub-public{min-height:100vh;background:#f4f7fb}.sub-shell{max-width:1050px;margin:auto;padding:24px}.sub-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.sub-header .brand{padding:0}.section-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.section-tabs button.active{background:var(--blue);color:#fff;border-color:var(--blue)}.sub-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.instructions{white-space:pre-wrap;line-height:1.55}.status-buttons{display:flex;gap:6px;flex-wrap:wrap}.status-buttons button{padding:7px 10px}.status-buttons .selected-present{background:var(--green);color:#fff;border-color:var(--green)}.status-buttons .selected-absent{background:var(--red);color:#fff;border-color:var(--red)}.status-buttons .selected-tardy{background:var(--amber);color:#fff;border-color:var(--amber)}
@media(max-width:1050px){.chart-layout,.sub-layout{grid-template-columns:1fr}.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;display:flex;align-items:center;overflow:auto}.sidebar .brand{padding:0 20px 0 0;font-size:18px;white-space:nowrap}.sidebar nav{display:flex}.sidebar nav a{white-space:nowrap}.seat-grid{gap:20px 10px}.content{padding:20px}.topbar{display:none}}
@media(max-width:720px){.grid-3,.grid-2,.form-grid{grid-template-columns:1fr}.seat-grid{grid-template-columns:repeat(3,1fr)}.room{padding-left:16px;padding-right:16px}.front-room{padding:7px 30px}.chart-layout{display:block}.summary-stack{margin-top:14px}.page-head{align-items:flex-start;flex-direction:column}}
.empty-state-panel{padding:42px 24px;text-align:center;color:var(--muted)}.empty-state-panel h2{margin:0 0 16px;color:var(--ink);font-size:20px}.compact-empty{padding:22px}.classroom-row{grid-template-columns:1fr auto}.classroom-actions,.class-period-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.class-period-actions form,.roster-actions form{margin:0}.class-period-card{overflow:hidden}.class-period-head{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line)}.class-period-head h2{margin:0;font-size:20px}.class-period-meta{color:var(--muted);font-size:13px;margin-top:4px}.period-edit-panel{padding:18px 20px;background:#f8fafc;border-bottom:1px solid var(--line)}.student-name-fields{display:grid;grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) auto;gap:8px}.roster-table td:last-child{width:1%;white-space:nowrap;text-align:right}.setup-grid{align-items:start}button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed;background:#f3f4f6}@media(max-width:720px){.classroom-row{grid-template-columns:1fr}.classroom-actions,.class-period-actions{width:100%}.class-period-head{align-items:flex-start;flex-direction:column}.student-name-fields{grid-template-columns:1fr}.roster-table td:last-child{width:auto}.roster-table tr{display:grid}.roster-table thead{display:none}.roster-table td{border-bottom:0}.roster-table tr{border-bottom:1px solid var(--line)}}

.page-head-wide{margin-bottom:22px}.page-head-wide p{max-width:760px}.workflow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:22px}.workflow-step-card{padding:20px 20px 18px;display:flex;flex-direction:column;gap:18px;min-height:220px}.workflow-step-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.workflow-step-number{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-size:18px;font-weight:800}.workflow-step-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;margin-bottom:6px}.workflow-step-card h2{margin:0 0 8px;font-size:21px;line-height:1.2}.workflow-step-card p{margin:0;color:var(--muted);line-height:1.5}.workflow-status{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;background:#eef2f6;color:#475467}.workflow-status.done{background:#eaf8f1;color:#16875a}.workflow-status.current{background:#e9f1ff;color:var(--blue)}.workflow-status.next{background:#f2f4f7;color:#667085}.workflow-step-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:auto}.workflow-metric{display:grid;gap:2px}.workflow-metric strong{font-size:22px;line-height:1}.workflow-metric span{color:var(--muted);font-size:13px}.classroom-page-grid{gap:20px;align-items:start}.section-card{overflow:hidden}.section-card-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;gap:14px;background:#fbfcfe}.section-card-head h2{margin:0;font-size:21px}.section-card-head p{margin:6px 0 0;color:var(--muted);line-height:1.45}.section-panel{padding:22px}.overview-chip{display:inline-flex;align-items:center;border-radius:999px;padding:7px 10px;background:#eef2f6;color:#475467;font-size:12px;font-weight:800;white-space:nowrap}.classroom-list{display:grid;gap:12px}.classroom-card-row{padding:14px 16px;border-radius:12px}.classroom-card-meta{margin-top:6px;font-size:13px;color:#667085}.classroom-form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}textarea{line-height:1.5}@media(max-width:980px){.workflow-grid{grid-template-columns:1fr}.workflow-step-card{min-height:0}.workflow-step-footer{align-items:center}}@media(max-width:720px){.section-card-head{flex-direction:column}.section-panel{padding:18px}}

/* School / class-based workflow */
.school-page-head{margin-bottom:24px}.school-page-head p{font-size:16px;font-weight:700;color:var(--muted)}.school-empty{padding:64px 28px;text-align:center}.school-empty-icon{width:58px;height:58px;border-radius:16px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;margin:0 auto 16px;font-size:28px}.school-empty h2{margin:0 0 20px}.unfinished-classes{margin-bottom:22px;overflow:hidden}.unfinished-list{display:grid;gap:10px}.unfinished-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px}.school-classes-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 14px}.school-classes-head h2{margin:0;font-size:22px}.class-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.class-summary-card{text-decoration:none;padding:20px;display:flex;flex-direction:column;min-height:210px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.class-summary-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(23,32,51,.10);border-color:#c8d6ea}.class-summary-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.class-period-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-size:12px;font-weight:800}.class-open-arrow{font-size:28px;line-height:1;color:#98a2b3}.class-summary-card h3{font-size:23px;margin:18px 0 12px}.class-summary-details{display:flex;flex-wrap:wrap;gap:8px 12px;color:var(--muted);font-size:13px}.class-summary-details span{display:inline-flex}.class-summary-footer{margin-top:auto;padding-top:20px;display:flex;align-items:baseline;gap:6px;border-top:1px solid var(--line)}.class-summary-footer strong{font-size:24px}.class-summary-footer span{color:var(--muted);font-size:13px}.class-meta-line{font-size:13px;color:var(--muted);margin-top:5px}.back-link{display:inline-block;margin-bottom:7px;color:var(--blue);font-size:13px;font-weight:700;text-decoration:none}.class-page-head{margin-bottom:22px}.class-info-grid{gap:20px;align-items:stretch}.section-card{overflow:hidden}.section-card-head{padding:18px 22px;border-bottom:1px solid var(--line);background:#fbfcfe;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.section-card-head h2{margin:0;font-size:21px}.section-card-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.section-panel{padding:22px}.class-field-grid{gap:16px}.class-notes-fields{display:grid;gap:16px}.class-notes-fields textarea{min-height:132px}.class-save-row{display:flex;justify-content:flex-end;margin-top:16px}.class-save-row button{min-width:130px}.class-section{margin-top:22px}.student-section-head,.seating-section-head{align-items:center}.class-student-panel{display:grid;gap:20px}.add-students-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;padding-bottom:20px;border-bottom:1px solid var(--line)}.add-students-form textarea{min-height:88px}.student-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.student-roster-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}.student-inline-form{display:grid;grid-template-columns:minmax(110px,1fr) minmax(110px,1fr) auto;gap:8px}.student-remove-button{white-space:nowrap}.seating-actions{display:flex;gap:8px;flex-wrap:wrap}.seating-panel{padding:18px}.class-room{min-height:650px}.dashboard-stats{margin-bottom:18px}.class-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.class-picker-card{margin:0;display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid var(--line);border-radius:11px;cursor:pointer;background:#fff}.class-picker-card:has(input:checked){border-color:#9cbcf0;background:#f6f9ff}.class-picker-card input{width:auto;margin-top:3px}.class-picker-body{display:grid;gap:5px}.class-picker-body strong{font-size:15px}.class-picker-body span{font-size:13px;color:var(--muted)}.sub-day-overview{margin-bottom:16px}
@media(max-width:1120px){.class-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-roster-grid{grid-template-columns:1fr}}
@media(max-width:760px){.class-card-grid,.class-picker-grid{grid-template-columns:1fr}.add-students-form{grid-template-columns:1fr}.student-roster-card{grid-template-columns:1fr}.student-inline-form{grid-template-columns:1fr}.unfinished-row{align-items:flex-start;flex-direction:column}.seating-section-head{align-items:flex-start;flex-direction:column}.seating-actions{width:100%}.seating-actions .btn{flex:1}.class-save-row{justify-content:stretch}.class-save-row button{width:100%}}


/* School page polish - 2026-09-07 */
.school-page-head{margin-bottom:28px;padding:4px 0}.school-page-head>div{min-width:0}.school-page-head h1{font-size:32px;letter-spacing:-.02em}.school-page-head p{margin-top:6px;font-size:14px;font-weight:500;line-height:1.5;color:var(--muted)}.school-add-button{min-width:118px}.classes-section{margin-top:4px}.school-classes-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 16px}.school-classes-head>div{min-width:0}.school-classes-head h2{margin:0;font-size:23px;letter-spacing:-.01em}.school-classes-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.class-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.class-summary-card{padding:0;min-height:0;overflow:hidden;text-decoration:none;display:block}.class-summary-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 20px 16px}.class-summary-heading>div{min-width:0}.class-summary-heading h3{margin:10px 0 0;font-size:22px;line-height:1.2;overflow-wrap:anywhere}.class-period-badge{display:inline-flex;max-width:100%;padding:6px 10px;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-size:12px;line-height:1.2;font-weight:800;overflow-wrap:anywhere}.class-open-button{flex:0 0 auto;border:1px solid var(--line);border-radius:8px;padding:7px 11px;text-decoration:none;font-size:13px;font-weight:750;background:#fff;color:var(--blue)}.class-open-button:hover{border-color:#b9cae5;background:#f8fbff}.class-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fbfcfe}.class-detail-item{padding:13px 18px;min-width:0}.class-detail-item:nth-child(odd){border-right:1px solid var(--line)}.class-detail-item:nth-child(-n+2){border-bottom:1px solid var(--line)}.class-detail-item span{display:block;margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.class-detail-item strong{display:block;font-size:14px;line-height:1.35;overflow-wrap:anywhere}.class-summary-actions{display:flex;gap:9px;padding:14px 18px}.class-summary-actions .btn{flex:1;padding:9px 12px}.unfinished-classes{margin-bottom:26px}.school-empty p{max-width:520px;margin:0 auto 22px;color:var(--muted);line-height:1.5}.school-empty-small{padding:38px 24px}.school-empty-small h2{margin-bottom:18px}@media(max-width:1050px){.class-card-grid{grid-template-columns:1fr}}@media(max-width:720px){.school-page-head{gap:14px}.school-add-button{width:100%}.school-classes-head{align-items:flex-start}.class-summary-heading{padding:18px 16px 14px}.class-detail-item{padding:12px 14px}.class-summary-actions{padding:12px 14px;flex-direction:column}.class-summary-actions .btn{width:100%}}


/* Multi-school selector and delete controls */
.school-switcher-card{margin-bottom:26px;overflow:hidden}.school-switcher-main{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:18px 20px}.school-select-form{flex:1;max-width:520px}.school-select-field label{margin-bottom:7px}.school-select-field select{font-weight:700;background:#fff}.school-switcher-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.school-switcher-actions form,.class-summary-actions form{margin:0}.add-school-panel{border-top:1px solid var(--line);padding:16px 20px;background:#fbfcfe}.add-school-form{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:end;max-width:720px}.school-no-selection{margin-top:0}.class-summary-actions-delete{display:grid;grid-template-columns:1fr 1fr auto;align-items:stretch}.class-summary-actions-delete .btn{height:100%}.class-summary-actions-delete form .btn{height:100%;min-width:74px}.btn-danger:hover{background:#fff5f5;border-color:#efb8bc}.class-page-head>form{margin:0}.class-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.class-field-grid>div:first-child{grid-column:1/-1}@media(max-width:760px){.school-switcher-main{align-items:stretch;flex-direction:column}.school-select-form{max-width:none;width:100%}.school-switcher-actions{width:100%}.school-switcher-actions .btn,.school-switcher-actions form{flex:1}.school-switcher-actions form .btn{width:100%}.add-school-form{grid-template-columns:1fr}.class-summary-actions-delete{grid-template-columns:1fr}.class-summary-actions-delete form .btn{width:100%}.class-field-grid{grid-template-columns:1fr}.class-field-grid>div:first-child{grid-column:auto}}

#customScheduleWrap[hidden]{display:none}.class-field-grid select optgroup{font-weight:700}


/* School + Manage Class layout refinement - 2026-09-07 */
.school-switcher-top{margin-top:0;margin-bottom:28px}.school-switcher-main{padding:20px 22px}.school-select-form{max-width:600px}.school-select-field select{min-height:43px}.school-classes-head{align-items:center;margin-bottom:18px}.school-classes-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.class-summary-heading{align-items:center;padding:19px 20px 17px}.class-summary-heading h3{margin:0;font-size:22px;line-height:1.25}.class-summary-heading .class-period-badge{margin-left:auto;flex:0 0 auto}.class-summary-actions-delete{grid-template-columns:1fr 1fr auto}.class-open-button{display:none}

.class-page-head{margin-bottom:24px}.class-page-head h1{margin-top:3px}.class-details-form{display:grid;gap:20px}.class-info-grid{gap:20px;margin:0}.class-info-grid>.section-card{height:100%}.section-card-head{min-height:68px;padding:18px 22px;align-items:center}.section-panel{padding:22px}.class-field-grid{gap:17px 16px}.class-notes-fields{gap:17px}.class-notes-fields textarea{min-height:146px}.class-form-actions{display:flex;justify-content:flex-end;align-items:center;margin:0}.class-form-actions button{min-width:140px}.class-section{margin-top:24px}.class-student-panel{padding:22px;gap:22px}.add-students-form{padding-bottom:22px;gap:16px}.add-students-form button{min-width:130px}.student-roster-grid{gap:12px}.student-roster-card{padding:11px 12px;gap:10px}.student-inline-form{grid-template-columns:minmax(105px,.72fr) minmax(170px,1.28fr) auto;gap:9px}.student-inline-form input::placeholder{color:#98a2b3}.student-inline-form .btn{min-width:66px}.student-remove-button{min-width:76px}.seating-section-head{align-items:center}.seating-actions{justify-content:flex-end}.seating-actions .btn{min-width:112px}.seating-actions .btn-primary{min-width:150px}.seating-panel{padding:22px}.class-delete-zone{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end}.class-delete-zone form{margin:0}.class-delete-zone .btn-danger{min-width:120px}

@media(max-width:760px){.school-classes-head{align-items:flex-start;flex-direction:column}.school-classes-head-actions{width:100%}.school-classes-head-actions .btn{flex:1}.class-summary-heading{align-items:flex-start}.class-summary-heading .class-period-badge{margin-left:0}.class-form-actions{justify-content:stretch}.class-form-actions button{width:100%}.student-inline-form{grid-template-columns:1fr}.class-delete-zone{justify-content:stretch}.class-delete-zone form,.class-delete-zone .btn-danger{width:100%}}


/* Manage Class panel-header actions - 2026-09-07 */
.class-back-button{margin-bottom:12px;padding:8px 13px;min-width:88px}.panel-header-button{min-width:126px;white-space:nowrap}.student-section-head .panel-header-button{min-width:120px}.add-students-form-header-action{display:block;padding-bottom:22px}.add-students-form-header-action>div{width:100%}.class-details-form{gap:0}.class-info-grid{margin-bottom:0}@media(max-width:720px){.section-card-head{align-items:flex-start;flex-direction:column}.panel-header-button{width:100%}.class-back-button{width:auto}.student-section-head{align-items:flex-start}.student-section-head .panel-header-button{width:100%}}


/* Shared contextual application header - 2026-09-07 */
.topbar{min-height:78px;height:auto;padding:11px 30px;gap:20px;position:sticky;top:0;z-index:35;box-shadow:0 1px 0 rgba(23,32,51,.02)}
.topbar-context{display:flex;align-items:center;gap:14px;min-width:0;flex:1}
.topbar-title-block{min-width:0;display:grid;gap:2px}
.topbar-eyebrow{font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:800}
.topbar-title{font-size:21px;line-height:1.2;font-weight:800;letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-subtitle{font-size:12px;line-height:1.35;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:720px}
.topbar-back{flex:0 0 auto;padding:8px 12px;min-width:0;background:#fff}
.topbar-right{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex:0 0 auto}
.topbar-actions{display:flex;align-items:center;gap:8px}
.topbar-actions form{margin:0}
.topbar-inline-form{display:flex;margin:0}
.signed-in{display:flex;align-items:center;gap:5px;white-space:nowrap;padding-left:16px;border-left:1px solid var(--line)}
.signed-in strong{color:var(--ink);font-size:14px}
.signed-in-label{color:var(--muted)}
.signed-in a{margin-left:10px}
.content{padding-top:26px}
.class-page-head{display:none}
@media(max-width:1050px){
  .topbar{display:flex;position:sticky;top:0;padding:12px 20px;min-height:72px}
  .topbar-subtitle{max-width:440px}
  .topbar-right{gap:10px}
  .signed-in-label{display:none}
}
@media(max-width:760px){
  .topbar{position:static;align-items:flex-start;flex-direction:column;gap:11px;padding:14px 18px}
  .topbar-context{width:100%;align-items:flex-start}
  .topbar-title{font-size:19px;white-space:normal}
  .topbar-subtitle{white-space:normal;max-width:none}
  .topbar-right{width:100%;justify-content:space-between;align-items:center;flex-wrap:wrap}
  .topbar-actions{order:1}
  .signed-in{order:2;padding-left:0;border-left:0;margin-left:auto}
  .topbar-actions .btn{padding:8px 10px}
}
@media(max-width:520px){
  .topbar-context{gap:10px}
  .topbar-back{padding:7px 10px}
  .topbar-right{align-items:stretch;flex-direction:column}
  .topbar-actions,.topbar-actions form,.topbar-actions .btn,.topbar-actions button{width:100%}
  .signed-in{width:100%;justify-content:space-between;margin-left:0;padding-top:9px;border-top:1px solid var(--line)}
}

/* Header cleanup - 2026-09-07 */
.signout-button{margin-left:10px;padding:8px 12px;color:var(--ink);text-decoration:none;background:#fff}.signed-in .signout-button{color:var(--ink)}

/* Dedicated substitute report workflow - 2026-09-07 */
.sub-header-actions{gap:20px}.sub-header-right{display:flex;align-items:center;gap:16px}.sub-teacher-date{text-align:right;color:var(--muted);font-size:13px}.sub-teacher-date strong{display:block;color:var(--ink);font-size:14px;margin-bottom:2px}.sub-report-button{min-width:150px}.sub-report-cta{margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.sub-report-cta h2{margin:0 0 5px;font-size:20px}.sub-report-cta p{margin:0;color:var(--muted)}
.sub-report-shell{max-width:1120px;padding-bottom:60px}.sub-report-page-header{margin-bottom:22px}.sub-back-button{background:#fff}.report-page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 20px}.report-page-intro h1{margin:3px 0 5px;font-size:32px;letter-spacing:-.025em}.report-page-intro p{margin:0;color:var(--muted);font-size:15px}.report-kicker{text-transform:uppercase;letter-spacing:.085em;font-size:11px;font-weight:800;color:var(--blue)}.sub-report-form{display:grid;gap:20px}.report-section-card{overflow:hidden}.report-section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;border-bottom:1px solid var(--line);background:#fbfcfe}.report-section-head h2{margin:0;font-size:20px}.report-section-body{padding:22px}.report-person-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.label-optional{font-weight:600;color:var(--muted);margin-left:4px}.report-class-head{align-items:flex-start}.report-class-head h2{margin:3px 0 4px;font-size:21px}.report-class-meta{font-size:13px;color:var(--muted)}.report-attendance-mini{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.report-attendance-mini span{display:inline-flex;align-items:center;gap:4px;padding:6px 9px;border-radius:999px;background:#eef2f6;color:#475467;font-size:12px;font-weight:650}.report-attendance-mini strong{color:var(--ink)}.report-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.report-choice-fieldset{min-width:0;margin:0;padding:0;border:0}.report-choice-fieldset legend{display:block;width:100%;font-size:13px;font-weight:800;color:#344054;margin-bottom:9px}.choice-buttons{display:grid;gap:8px}.choice-buttons-four{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-button{position:relative;margin:0;cursor:pointer}.choice-button input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.choice-button span{display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 10px;border:1px solid #cfd6df;border-radius:9px;background:#fff;color:#344054;text-align:center;font-size:13px;font-weight:700;transition:border-color .12s ease,background .12s ease,color .12s ease,box-shadow .12s ease}.choice-button input:checked+span{border-color:var(--blue);background:var(--blue-soft);color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.choice-button input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}.report-notes-field{margin-top:20px}.report-notes-field textarea{min-height:112px}.recorded-student-notes{margin-top:18px;padding:15px 16px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.recorded-student-notes-title{font-size:12px;font-weight:800;color:#475467;text-transform:uppercase;letter-spacing:.045em;margin-bottom:10px}.recorded-note-list{display:grid;gap:8px}.recorded-note-row{padding:9px 10px;border-radius:8px;background:#fff;border:1px solid #e5e9ef}.recorded-note-row>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.recorded-note-row p{margin:5px 0 0;color:#475467;font-size:13px;line-height:1.45}.recorded-status{display:inline-flex;border-radius:999px;background:#eef2f6;color:#667085;padding:3px 7px;font-size:11px;font-weight:750}.overall-report-notes{min-height:150px}.report-submit-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:4px 0}.report-submit-actions{display:flex;align-items:center;gap:12px}.report-status{font-size:13px;color:#16875a}.report-status.error{color:var(--red)}.report-submit-button{min-width:150px}.report-confirmation-card{max-width:620px;margin:70px auto 0;padding:42px 36px;text-align:center}.report-confirmation-icon{width:60px;height:60px;margin:0 auto 17px;border-radius:50%;display:grid;place-items:center;background:#eaf8f1;color:#16875a;font-size:30px;font-weight:800}.report-confirmation-card h1{margin:0 0 8px;font-size:30px}.report-confirmation-card p{margin:0;color:var(--muted);font-size:16px}.report-confirmation-meta{margin:16px 0 24px;color:#667085;font-size:13px}
@media(max-width:820px){.report-choice-grid{grid-template-columns:1fr}.report-attendance-mini{justify-content:flex-start}.report-class-head{flex-direction:column}.report-person-grid{grid-template-columns:1fr}}
@media(max-width:640px){.sub-header-actions{align-items:flex-start;flex-direction:column}.sub-header-right{width:100%;justify-content:space-between}.sub-teacher-date{text-align:left}.sub-report-button{min-width:0}.sub-report-cta{align-items:flex-start;flex-direction:column}.sub-report-cta .btn{width:100%}.choice-buttons-four{grid-template-columns:1fr}.report-section-head,.report-section-body{padding-left:17px;padding-right:17px}.report-submit-bar{align-items:stretch;flex-direction:column}.report-submit-bar>.btn{width:100%}.report-submit-actions{align-items:stretch;flex-direction:column}.report-submit-button{width:100%}.report-confirmation-card{margin-top:30px;padding:32px 22px}}

.substitute-access-card{margin-bottom:18px;overflow:hidden}.substitute-access-head{align-items:center}.substitute-access-head form{margin:0}.substitute-access-body{display:grid;gap:18px}.sub-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center}.sub-link-row input{font-size:13px}.sub-access-meta{margin-top:8px;color:var(--muted);font-size:13px}.sub-link-unavailable{padding:16px;border:1px dashed #cfd6df;border-radius:10px;background:#f8fafc;display:grid;gap:4px}.sub-link-unavailable span{color:var(--muted);font-size:14px}.substitute-receives-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.substitute-receives-grid>div{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fbfcfe;display:grid;gap:4px}.substitute-receives-grid strong{font-size:14px}.substitute-receives-grid span{font-size:13px;line-height:1.4;color:var(--muted)}.sub-report-status-row{border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;align-items:center;gap:14px}.sub-report-status-row>div{display:grid;gap:4px}.sub-status-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800}@media(max-width:900px){.substitute-receives-grid{grid-template-columns:repeat(2,1fr)}.sub-link-row{grid-template-columns:1fr}.sub-link-row .btn{width:100%}}@media(max-width:600px){.substitute-receives-grid{grid-template-columns:1fr}.sub-report-status-row{align-items:flex-start;flex-direction:column}}
.settings-stack{display:grid;gap:20px;max-width:980px}.school-email-list{display:grid;gap:12px}.school-email-row{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(280px,1fr);gap:20px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:11px;background:#fbfcfe}.school-email-name{font-weight:800;font-size:15px}.school-email-row label{margin-bottom:5px}.attendance-summary-four{grid-template-columns:repeat(2,1fr)}.attendance-office-send{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);display:grid;gap:6px}.attendance-office-label{font-size:13px;font-weight:800;color:#344054}.attendance-office-email{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.attendance-office-send .btn{width:100%;margin-top:4px}.attendance-send-status{min-height:18px;font-size:12px;color:var(--muted);line-height:1.4}.unseated-attendance-card{margin-top:16px}.unseated-attendance-card h3{margin:0 0 12px}.unseated-attendance-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.unseated-attendance-student{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left}.unseated-attendance-student.attendance-selected,.seat.attendance-selected{outline:2px solid var(--blue);outline-offset:2px}.unseated-status{font-size:11px;color:var(--muted);font-weight:700;white-space:nowrap}.report-observations-fieldset{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.report-checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.report-checkbox-option{display:flex;align-items:flex-start;gap:9px;margin:0;padding:10px 11px;border:1px solid #d8dee7;border-radius:9px;background:#fff;font-size:13px;font-weight:650;color:#344054;cursor:pointer}.report-checkbox-option input{width:auto;margin:2px 0 0;flex:0 0 auto}.report-checkbox-option:has(input:checked){border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.report-observation-pills{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}@media(max-width:720px){.school-email-row{grid-template-columns:1fr;gap:10px}.unseated-attendance-list,.report-checkbox-grid{grid-template-columns:1fr}}

/* Class-specific substitute report refinements */
.report-class-card{border-width:2px}.report-class-card .report-section-head{background:#f7f9fc}.report-class-card .report-section-body{display:grid;gap:0}.report-return-fieldset{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.report-return-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.return-rating-option{position:relative;margin:0;cursor:pointer}.return-rating-option input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.return-rating-option span{min-height:70px;padding:10px 8px;border:1px solid #cfd6df;border-radius:10px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}.return-rating-option strong{font-size:20px;line-height:1;color:var(--ink)}.return-rating-option small{font-size:11px;line-height:1.2;color:var(--muted)}.return-rating-option input:checked+span{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 0 1px var(--blue)}.return-rating-option input:checked+span strong,.return-rating-option input:checked+span small{color:var(--blue)}.return-rating-option input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}.report-rating-display{display:flex;align-items:center;gap:9px}.report-rating-display strong{font-size:18px}.report-rating-display span{color:var(--muted)}@media(max-width:720px){.report-return-scale{grid-template-columns:repeat(5,minmax(54px,1fr));overflow-x:auto;padding-bottom:2px}.return-rating-option small{font-size:10px}}

.row-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.row-actions form{margin:0}.sub-day-save-row{display:flex;justify-content:flex-end;margin-top:18px}.danger-zone-card{margin-top:22px}.danger-zone-row{display:flex;justify-content:space-between;align-items:center;gap:18px}.danger-zone-row>span{color:var(--muted);font-size:14px}.danger-zone-row form{margin:0}@media(max-width:720px){.danger-zone-row{align-items:stretch;flex-direction:column}.danger-zone-row .btn{width:100%}.sub-day-save-row .primary{width:100%}}


/* Full-width application layout + school attendance email placement */
.content{width:100%;max-width:none;margin:0;padding:26px 30px 50px}.sub-shell{width:100%;max-width:none;margin:0;padding:24px 32px 44px}.sub-report-shell{width:100%;max-width:none}.settings-stack{width:100%;max-width:none}.add-school-form{grid-template-columns:minmax(220px,.8fr) minmax(280px,1fr) auto auto;max-width:none}.school-switcher-card .add-school-panel{padding:18px 22px}.school-switcher-card .add-school-form{width:100%}@media(max-width:1050px){.content{width:100%;max-width:none;margin:0;padding:20px}.sub-shell{width:100%;max-width:none;margin:0;padding:20px}}@media(max-width:800px){.add-school-form{grid-template-columns:1fr 1fr}.add-school-form .btn{width:100%}}@media(max-width:620px){.add-school-form{grid-template-columns:1fr}.sub-shell{padding:16px}.content{padding:16px}}
.report-inline-meta-card{margin:18px 0}.report-inline-meta-card .report-section-head h2{margin:3px 0 0}.sub-class-tabs{margin-top:18px}.sub-class-tabs .btn{gap:8px}.class-report-tab-check{width:20px;height:20px;border-radius:50%;display:inline-grid;place-items:center;background:#eaf8f1;color:#16875a;font-size:12px;font-weight:900}.sub-class-tabs .btn-primary .class-report-tab-check{background:#fff;color:var(--blue)}.inline-class-report-card{margin-top:20px}.inline-overall-report-card{margin-top:20px}.inline-report-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.final-report-submit-card{margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:24px}.final-report-submit-card h2{margin:3px 0 6px;font-size:21px}.final-report-submit-card p{margin:0;color:var(--muted)}.final-report-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.report-submitted-inline{margin-top:20px;display:flex;align-items:center;gap:16px}.report-submitted-inline .report-confirmation-icon{margin:0;width:46px;height:46px;font-size:22px;flex:0 0 auto}.report-submitted-inline h2{margin:0 0 4px}.report-submitted-inline p{margin:0;color:var(--muted)}
@media(max-width:760px){.inline-report-head-actions{width:100%;justify-content:stretch}.inline-report-head-actions .btn{width:100%}.final-report-submit-card{align-items:stretch;flex-direction:column}.final-report-actions{align-items:stretch;justify-content:stretch;flex-direction:column}.final-report-actions .btn{width:100%}.report-submitted-inline{align-items:flex-start}}

.attendance-cycle-guide{font-size:12px;color:var(--muted);line-height:1.4;margin:-5px 0 12px}.attendance-saving{pointer-events:none;opacity:.7}.seat.attendance-selected{outline:3px solid rgba(36,107,223,.22);outline-offset:2px}.unseated-attendance-student.attendance-selected{border-color:var(--blue);box-shadow:0 0 0 2px rgba(36,107,223,.1)}

/* Substitute class workflow section navigation */
.sub-sticky-nav{position:sticky;top:0;z-index:40;margin:18px 0 22px;padding:10px 12px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 20px rgba(23,32,51,.08);backdrop-filter:blur(8px)}
.sub-sticky-class-row,.sub-section-nav{display:flex;align-items:center;gap:10px;min-width:0}.sub-sticky-class-row{padding-bottom:9px;border-bottom:1px solid var(--line)}.sub-sticky-class-row .sub-class-tabs{margin:0;display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;min-width:0;padding-bottom:1px}.sub-sticky-class-row .sub-class-tabs .btn{white-space:nowrap;flex:0 0 auto;padding:8px 11px}.sub-section-nav{padding-top:9px;overflow-x:auto}.sub-nav-label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:800;white-space:nowrap;flex:0 0 auto}.sub-section-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border-radius:8px;text-decoration:none;font-size:13px;font-weight:750;color:#475467;white-space:nowrap;flex:0 0 auto;border:1px solid transparent}.sub-section-link:hover{background:#f4f6f8}.sub-section-link.active{background:var(--blue-soft);border-color:#d7e5ff;color:var(--blue)}
.sub-work-section{scroll-margin-top:125px;margin-top:22px}.sub-work-section:first-of-type{margin-top:0}.sub-work-section-head{align-items:center}.sub-section-class-meta{font-size:13px;color:var(--muted);text-align:right}.class-instructions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.instruction-block{min-width:0;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.instruction-block h3{margin:0 0 9px;font-size:15px}.sub-work-section-title{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 12px}.sub-work-section-title h2{margin:3px 0 4px;font-size:24px}.sub-work-section-title p{margin:0;color:var(--muted);font-size:14px}.attendance-section-layout{align-items:start}.attendance-summary-column{position:sticky;top:125px}.day-report-section .inline-overall-report-card{margin-top:0}.day-report-section .final-report-submit-card{margin-top:16px}
@media(max-width:1050px){.attendance-summary-column{position:static}.sub-work-section{scroll-margin-top:120px}}
@media(max-width:760px){.sub-sticky-nav{margin-left:-4px;margin-right:-4px;padding:9px;border-radius:10px}.sub-sticky-class-row,.sub-section-nav{gap:7px}.sub-nav-label{display:none}.sub-sticky-class-row .sub-class-tabs .btn,.sub-section-link{min-height:40px}.class-instructions-grid{grid-template-columns:1fr}.sub-work-section{scroll-margin-top:110px}.sub-work-section-head{align-items:flex-start;flex-direction:column}.sub-section-class-meta{text-align:left}.sub-work-section-title h2{font-size:22px}}

/* Final substitute report confirmation */
.report-classes-covered-card,.report-final-identity-card{margin-top:16px}.report-class-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-class-check-option{display:flex;align-items:flex-start;gap:11px;margin:0;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}.report-class-check-option input{width:auto;margin:3px 0 0;flex:0 0 auto}.report-class-check-option span{display:grid;gap:3px;min-width:0}.report-class-check-option strong{font-size:14px;color:var(--ink)}.report-class-check-option small{font-size:12px;color:var(--muted)}.report-class-check-option:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}.report-class-check-option:has(input:checked) strong{color:var(--blue)}.report-final-identity-card .report-person-grid{max-width:none}.report-final-identity-card .report-person-grid>div:first-child{max-width:420px}.report-final-identity-card .report-person-grid>div:last-child{min-width:0}@media(max-width:720px){.report-class-checklist{grid-template-columns:1fr}.report-final-identity-card .report-person-grid>div:first-child{max-width:none}}

/* Major workflow update: QR handoff, flexible seating layouts, collapsible substitute sections, report management */
.modal-open{overflow:hidden}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.58);z-index:200;display:grid;place-items:center;padding:22px}.modal-backdrop[hidden]{display:none}.modal-card{width:min(760px,100%);max-height:calc(100vh - 44px);overflow:auto;background:#fff;border-radius:16px;border:1px solid var(--line);box-shadow:0 24px 70px rgba(15,23,42,.28)}.modal-header,.modal-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line)}.modal-footer{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}.modal-header h2{margin:0}.modal-header p{margin:4px 0 0;color:var(--muted)}.modal-body{padding:20px}.student-note-modal{width:min(560px,100%)}
.sub-access-qr-row{display:flex;align-items:center;gap:18px;margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.sub-access-qr{width:150px;min-width:150px}.sub-access-qr-row>div:last-child{display:grid;gap:5px}.sub-access-qr-row span{color:var(--muted);font-size:13px}.printable-sub-note-modal{width:min(920px,100%)}.printable-sub-note{padding:28px;background:#fff;color:#111}.print-note-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:18px;border-bottom:2px solid #111}.print-note-heading h1{margin:0 0 8px;font-size:28px}.print-note-date{font-weight:700;margin-bottom:4px}.print-note-qr{width:190px;flex:0 0 190px}.print-note-online-box{margin:18px 0;padding:14px;border:2px solid #222;border-radius:8px}.print-note-online-box p{margin:6px 0 8px;line-height:1.45}.print-note-url{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;overflow-wrap:anywhere}.print-note-class{break-inside:avoid;margin-top:22px;padding-top:16px;border-top:1px solid #999}.print-note-class h2{margin:0 0 4px}.print-note-class-meta{font-size:13px;color:#444}.print-note-block{margin-top:14px}.print-note-block h3,.print-note-paper-report h3{margin:0 0 5px;font-size:14px}.print-note-block>div{white-space:normal;line-height:1.45}.print-note-paper-report{margin-top:16px}.paper-lines{height:26px;border-bottom:1px solid #aaa}

.seating-layout-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.seating-layout-controls select{width:auto;min-width:170px}.snap-grid-toggle{display:flex;align-items:center;gap:8px;margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:13px;font-weight:700}.snap-grid-toggle input{width:auto;margin:0}.seating-layout-room,.substitute-layout-room{min-height:720px;padding:0;background-color:#f3efe8;background-image:linear-gradient(rgba(100,116,139,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(100,116,139,.08) 1px,transparent 1px);background-size:24px 24px}.furniture-canvas{position:absolute;inset:0}.furniture-item{position:absolute;min-width:70px;min-height:62px;z-index:2}.furniture-surface{position:absolute;inset:12% 10%;background:#c59b6c;border:2px solid #9c7047;box-shadow:0 3px 7px rgba(0,0,0,.12)}.furniture-round_table .furniture-surface{border-radius:50%;inset:6%}.furniture-table .furniture-surface{border-radius:8px}.furniture-desk .furniture-surface{border-radius:7px;inset:4%}.furniture-seat-list{position:absolute;inset:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:4px;align-items:center;justify-items:stretch}.furniture-desk .furniture-seat-list{display:block}.layout-seat{position:relative;z-index:3;min-height:38px;padding:6px;border:1px solid #cfd6df;border-radius:7px;background:rgba(255,255,255,.96);font-size:11px;font-weight:750;text-align:center;display:flex;align-items:center;justify-content:center;cursor:grab;overflow:hidden}.furniture-desk .layout-seat{position:absolute;inset:8%;min-height:0}.layout-seat.empty{border-style:dashed;color:#98a2b3;background:rgba(255,255,255,.72)}.layout-seat.dragging{opacity:.45}.furniture-drag-handle{display:none;position:absolute;right:-7px;top:-7px;z-index:10;width:30px;height:30px;padding:0;border-radius:50%;background:#172033;color:#fff;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.2);cursor:grab}.furniture-move-mode .furniture-drag-handle{display:grid;place-items:center}.furniture-move-mode .layout-seat{pointer-events:none}.furniture-dragging{z-index:20;opacity:.85}.substitute-furniture-canvas .furniture-item{pointer-events:none}.substitute-furniture-canvas .attendance-layout-seat{pointer-events:auto;cursor:pointer}.attendance-layout-seat{border-width:2px}.attendance-layout-seat .badge{position:absolute;right:3px;bottom:3px;width:19px;height:19px;font-size:10px}.student-note-indicator{position:absolute;left:4px;bottom:3px;font-size:13px;line-height:1;color:#475467}.attendance-note-fab{position:absolute;right:18px;bottom:18px;z-index:30;width:48px;height:48px;border-radius:50%;padding:11px;background:#172033;color:#fff;border:2px solid #fff;box-shadow:0 7px 18px rgba(0,0,0,.22)}.attendance-note-fab svg{width:100%;height:100%;fill:currentColor}.attendance-note-fab:hover{background:#0f172a}

.sub-sticky-section-row{display:flex;align-items:center;gap:12px;min-width:0}.sub-sticky-section-row .sub-section-nav{flex:1;min-width:0}.sub-section-nav-actions{display:flex;gap:7px;flex:0 0 auto}.btn-compact{padding:7px 10px;min-height:36px;font-size:12px}.sub-section-head-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}.sub-collapsible-section.is-collapsed{margin-bottom:8px}.sub-collapsible-section.is-collapsed .sub-work-section-title,.sub-collapsible-section.is-collapsed .report-section-head{margin-bottom:0}.sub-collapsible-content[hidden]{display:none!important}.sub-collapsible-section.is-collapsed .card{box-shadow:none}.sub-collapsible-heading{padding:4px 0}.sub-collapsible-heading .sub-collapse-toggle{margin-left:auto}

.settings-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.settings-toggle-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid var(--line);border-radius:10px;margin:0;background:#fff}.settings-toggle-card>span{display:grid;gap:3px}.settings-toggle-card small{font-size:12px;color:var(--muted);font-weight:500}.settings-toggle-card input{width:44px;height:24px;accent-color:var(--blue);flex:0 0 auto}.password-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.archived-report-list{display:grid;gap:8px}.archived-report-row{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:9px}.archived-report-row>div{display:grid;gap:3px}.archived-report-row span{font-size:13px;color:var(--muted)}.archive-check{margin:0}.archive-check input,.report-select-check input{width:auto}.archived-individual-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.archived-individual-actions form{margin:0}

.reports-toolbar-card{margin-bottom:18px}.report-bulk-actions,.report-all-actions>div{display:flex;gap:8px;flex-wrap:wrap}.report-all-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line)}.report-all-actions>span{color:var(--muted);font-size:13px}.report-accordion-list{display:grid;gap:12px}.report-day-details,.report-class-details{overflow:hidden}.report-day-summary,.report-class-summary{list-style:none;cursor:pointer}.report-day-summary::-webkit-details-marker,.report-class-summary::-webkit-details-marker{display:none}.report-day-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:17px 20px}.report-day-summary:after,.report-class-summary:after{content:'▾';font-size:16px;color:var(--muted);transition:transform .15s ease}.report-day-details[open]>.report-day-summary:after,.report-class-details[open]>.report-class-summary:after{transform:rotate(180deg)}.report-day-summary-main{display:grid;gap:4px}.report-day-summary-main strong{font-size:17px}.report-day-summary-main span,.report-day-summary-meta{font-size:13px;color:var(--muted)}.report-select-check{margin:0;display:flex;align-items:center}.report-day-body{padding:0 20px 20px;border-top:1px solid var(--line)}.report-overall-note{padding:16px 0}.report-class-accordion-list{display:grid;gap:8px}.report-class-details{border:1px solid var(--line);border-radius:10px;background:#fff}.report-class-summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:13px 15px}.report-class-summary>div{display:grid;gap:3px}.report-class-summary span:not(.pill){font-size:12px;color:var(--muted)}.report-class-body{padding:16px;border-top:1px solid var(--line);display:grid;gap:16px}.report-class-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.report-class-facts>div{padding:11px;border:1px solid var(--line);border-radius:9px;background:#fbfcfe}.report-class-facts label,.report-class-section>label{margin-bottom:6px}.report-class-section{display:grid;gap:5px}.report-attendance-table th,.report-attendance-table td{padding:9px}

@media(max-width:900px){.settings-toggle-grid,.password-grid{grid-template-columns:1fr}.report-class-facts{grid-template-columns:1fr}.sub-sticky-section-row{align-items:stretch;flex-direction:column}.sub-section-nav-actions{justify-content:flex-end}.seating-layout-controls{width:100%}.seating-layout-controls select{flex:1;min-width:160px}}
@media(max-width:720px){.modal-backdrop{padding:10px}.modal-card{max-height:calc(100vh - 20px)}.sub-access-qr-row{align-items:flex-start;flex-direction:column}.report-day-summary{grid-template-columns:auto 1fr}.report-day-summary-meta{grid-column:2}.report-class-summary{grid-template-columns:1fr auto}.report-class-summary .pill{display:none}.seating-layout-room,.substitute-layout-room{min-height:600px}.sub-section-nav-actions{width:100%}.sub-section-nav-actions .btn{flex:1}.print-note-heading{flex-direction:column}.print-note-qr{width:150px;flex-basis:auto}}

@media print{
    body.printing-sub-note *{visibility:hidden!important}
    body.printing-sub-note #printableSubNoteContent,body.printing-sub-note #printableSubNoteContent *{visibility:visible!important}
    body.printing-sub-note #printableSubNoteContent{position:absolute;left:0;top:0;width:100%;padding:0}
    .no-print{display:none!important}
    .modal-backdrop{position:static!important;display:block!important;background:none!important;padding:0!important}
    .printable-sub-note-modal{width:100%!important;max-height:none!important;overflow:visible!important;border:0!important;box-shadow:none!important}
}

/* Printable substitute packet: paper attendance and report controls */
.print-note-paper-attendance,.print-note-paper-report,.print-note-final-report{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.print-attendance-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}.print-attendance-table th,.print-attendance-table td{border:1px solid #cfd6df;padding:6px 7px;text-align:left}.print-attendance-table th:nth-child(2),.print-attendance-table th:nth-child(3),.print-attendance-table th:nth-child(4),.print-attendance-table td:nth-child(2),.print-attendance-table td:nth-child(3),.print-attendance-table td:nth-child(4){width:34px;text-align:center}.print-attendance-table th:last-child{width:28%}.paper-choice-line{margin:9px 0;line-height:1.65}.paper-quick-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:9px 0}.paper-quick-notes strong{grid-column:1/-1}.paper-notes-label{margin-top:12px}.paper-substitute-info{display:flex;gap:32px;flex-wrap:wrap;margin-top:18px}.print-note-muted{color:var(--muted);font-size:13px}
@media print{.print-attendance-table{font-size:10.5pt}.print-attendance-table th,.print-attendance-table td{padding:4px 5px}.paper-quick-notes{grid-template-columns:repeat(2,minmax(0,1fr));font-size:10.5pt}.print-note-paper-attendance,.print-note-paper-report,.print-note-final-report{break-inside:avoid}.print-note-class{break-before:auto}}


/* Sub Day reuse, substitute access refinement, and selected report printing */
.sub-day-row-actions{justify-content:flex-end;flex-wrap:wrap}.sub-day-row-actions form{margin:0}
.substitute-access-card{border-color:#cfdcf4}.substitute-access-head{background:linear-gradient(180deg,#fbfdff,#f7faff)}.sub-access-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sub-access-title-row h2{margin:0}.sub-access-primary-grid{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:18px}.sub-access-link-card,.sub-access-qr-card,.sub-access-report-status{border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.sub-access-link-card{padding:18px}.sub-access-kicker{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:12px}.sub-access-action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.sub-access-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.sub-access-qr-card{padding:16px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;gap:7px}.sub-access-qr-card span{font-size:13px;color:var(--muted);line-height:1.4}.sub-access-empty-state{padding:24px;border:1px dashed #c7d2e2;border-radius:12px;background:#fbfcfe;display:grid;gap:5px;text-align:center}.sub-access-empty-state span{color:var(--muted)}.sub-access-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;margin-top:18px}.sub-access-includes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.sub-access-includes>div{padding:13px;border:1px solid var(--line);border-radius:10px;background:#fff;display:grid;gap:4px}.sub-access-includes span{font-size:12px;color:var(--muted);line-height:1.35}.sub-access-report-status{padding:15px;display:grid;gap:5px;align-content:start}.sub-access-report-status .btn{margin-top:8px;justify-self:start}.sub-access-report-status span:not(.sub-status-label){font-size:12px;color:var(--muted);line-height:1.4}
@media(max-width:1050px){.sub-access-primary-grid,.sub-access-bottom-grid{grid-template-columns:1fr}.sub-access-includes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.sub-access-includes{grid-template-columns:1fr}.sub-access-action-row .btn{width:100%}.sub-access-primary-grid{display:block}.sub-access-qr-card{margin-top:14px}.sub-day-row-actions{justify-content:flex-start}}
@media print{body.printing-selected-reports .sidebar,body.printing-selected-reports .topbar,body.printing-selected-reports .reports-toolbar-card,body.printing-selected-reports .report-day-details:not(.print-report-selected){display:none!important}body.printing-selected-reports .app-shell,body.printing-selected-reports .main-area,body.printing-selected-reports .content{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}body.printing-selected-reports .report-day-details.print-report-selected{display:block!important;border:0!important;box-shadow:none!important;break-after:page}body.printing-selected-reports .report-day-details.print-report-selected:last-child{break-after:auto}body.printing-selected-reports .report-select-check,body.printing-selected-reports .report-day-summary:after,body.printing-selected-reports .report-class-summary:after{display:none!important}body.printing-selected-reports .report-day-summary{grid-template-columns:1fr auto;padding:10px 0;border-bottom:2px solid #222}body.printing-selected-reports .report-day-body{padding:0}body.printing-selected-reports .report-class-details{break-inside:avoid;border-color:#bbb}body.printing-selected-reports .report-class-body{display:grid!important}}


/* Compact printable substitute packet */
.print-note-classes-grid{display:grid;gap:14px}.print-note-classes-grid>.print-note-class:only-child{grid-column:1/-1}
@media print{
    @page{size:Letter portrait;margin:.28in}
    body.printing-sub-note #printableSubNoteContent{font-size:8pt;line-height:1.18;color:#111}
    body.printing-sub-note .print-note-heading{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:10pt;align-items:start;padding-bottom:6pt;border-bottom:1.2pt solid #111}
    body.printing-sub-note .print-note-heading h1{font-size:16pt;margin:0 0 2pt}
    body.printing-sub-note .print-note-date{margin:0 0 1pt}
    body.printing-sub-note .print-note-qr{width:82px;flex:0 0 82px}
    body.printing-sub-note .print-note-qr svg{width:82px!important;height:82px!important}
    body.printing-sub-note .print-note-online-box{margin:6pt 0;padding:5pt 7pt;border-width:1pt;border-radius:4pt;display:grid;grid-template-columns:auto 1fr;gap:2pt 6pt;align-items:start}
    body.printing-sub-note .print-note-online-box strong{white-space:nowrap}
    body.printing-sub-note .print-note-online-box p{margin:0;line-height:1.18}
    body.printing-sub-note .print-note-online-box .print-note-url{grid-column:1/-1;font-size:6.8pt;line-height:1.05}
    body.printing-sub-note #printableSubNoteContent>h2{font-size:11pt;margin:5pt 0 2pt}
    body.printing-sub-note .print-note-block{margin-top:4pt}
    body.printing-sub-note .print-note-block h3,body.printing-sub-note .print-note-paper-report h3,body.printing-sub-note .print-note-paper-attendance h3{font-size:8.2pt;margin:0 0 1.5pt}
    body.printing-sub-note .print-note-block>div{line-height:1.16}
    body.printing-sub-note .print-note-classes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6pt 8pt;align-items:start}
    body.printing-sub-note .print-note-class{margin:0;padding:5pt;border:1px solid #aaa;border-radius:3pt;break-inside:avoid}
    body.printing-sub-note .print-note-class h2{font-size:10pt;margin:0 0 1pt}
    body.printing-sub-note .print-note-class-meta{font-size:7pt;line-height:1.12}
    body.printing-sub-note .print-note-paper-attendance,body.printing-sub-note .print-note-paper-report{margin-top:4pt;padding-top:3pt;border-top:1px solid #bbb}
    body.printing-sub-note .print-attendance-table{margin-top:2pt;font-size:6.7pt;line-height:1.05}
    body.printing-sub-note .print-attendance-table th,body.printing-sub-note .print-attendance-table td{padding:1.2pt 2pt;border-color:#bbb}
    body.printing-sub-note .print-attendance-table th:nth-child(2),body.printing-sub-note .print-attendance-table th:nth-child(3),body.printing-sub-note .print-attendance-table th:nth-child(4),body.printing-sub-note .print-attendance-table td:nth-child(2),body.printing-sub-note .print-attendance-table td:nth-child(3),body.printing-sub-note .print-attendance-table td:nth-child(4){width:16pt}
    body.printing-sub-note .print-attendance-table th:last-child{width:22%}
    body.printing-sub-note .paper-choice-line{margin:2pt 0;line-height:1.22;font-size:6.8pt}
    body.printing-sub-note .paper-quick-notes{grid-template-columns:repeat(2,minmax(0,1fr));gap:1pt 5pt;margin:2pt 0;font-size:6.5pt;line-height:1.1}
    body.printing-sub-note .paper-notes-label{margin-top:2pt}
    body.printing-sub-note .paper-lines{height:9pt}
    body.printing-sub-note .print-note-final-report{margin-top:6pt;padding-top:4pt;border-top:1.2pt solid #111;break-inside:avoid}
    body.printing-sub-note .print-note-final-report h2{font-size:10pt;margin:0 0 2pt}
    body.printing-sub-note .print-note-final-report h3{font-size:8pt;margin:0}
    body.printing-sub-note .paper-substitute-info{margin-top:4pt;gap:12pt;font-size:7pt}
}
