:root{--brand-blue: #0a93e8;--brand-blue-dark: #0874bb;--brand-blue-soft: #e8f5ff;--brand-gray: #515d68;--brand-gray-dark: #26313b;--brand-orange: #ff7a00;color:#17202a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef2f5;font-synthesis:none;text-rendering:optimizeLegibility}.performance-page{min-width:0}.performance-heading,.performance-detail-head,.performance-list-head{align-items:center;display:flex;justify-content:space-between;gap:16px}.performance-heading span,.performance-detail-head span,.performance-detail-head p{color:#697782;font-size:12px;font-weight:700;margin:0}.performance-heading h3,.performance-detail-head h3,.performance-list-head h3{margin:4px 0 0}.report-level-tabs{background:#eef2f5;border-radius:7px;display:grid;gap:4px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px;padding:4px}.report-level-tabs button{background:transparent;border:0;border-radius:5px;color:#5d6973;font-weight:800;padding:10px;text-transform:capitalize}.report-level-tabs button.active{background:#fff;color:var(--brand-blue-dark);box-shadow:0 2px 8px #26313b1a}.report-filters{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,280px));margin-top:18px}.report-filters label{color:#52606b;display:grid;font-size:12px;font-weight:800;gap:7px}.report-filters select{background:#fff;border:1px solid #ccd6df;border-radius:6px;min-width:0;padding:10px;width:100%}.performance-row-list{display:grid;gap:8px;margin-top:16px}.performance-row-list button{align-items:center;background:#fff;border:1px solid #dce3e9;border-radius:7px;color:#26313b;display:flex;justify-content:space-between;min-width:0;padding:14px;text-align:left}.performance-row-list button:hover{border-color:var(--brand-blue)}.performance-row-list button>span:first-child,.performance-row-values{display:grid;gap:4px;min-width:0}.performance-row-list small{color:#6a7781}.performance-row-values{grid-auto-flow:column;text-align:right}.performance-row-values em{background:var(--brand-blue-soft);border-radius:5px;color:var(--brand-blue-dark);font-size:11px;font-style:normal;font-weight:800;padding:6px 8px}.performance-detail{background:#fff;border:1px solid #dce3e9;border-radius:8px;padding:20px}.performance-metrics{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px}.performance-metric{background:#f5f8fa;border-left:3px solid var(--brand-blue);border-radius:5px;display:grid;gap:5px;padding:12px}.performance-metric span{color:#697782;font-size:11px;font-weight:700}.performance-metric strong{color:#26313b;font-size:20px}.performance-facts{display:flex;flex-wrap:wrap;gap:10px 24px;margin:18px 0}.performance-facts span{color:#697782;font-size:13px}.performance-facts strong{color:#26313b}.subject-performance-list{border-top:1px solid #e2e7eb;display:grid}.subject-performance-list>div{align-items:center;border-bottom:1px solid #e8edf1;display:flex;justify-content:space-between;padding:12px 2px}.subject-performance-list span{display:grid;font-weight:800;gap:2px}.subject-performance-list small{color:#71808b;font-weight:500}.aggregate-report-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.aggregate-report-grid article{border:1px solid #dce3e9;border-radius:7px;min-width:0;padding:16px}.aggregate-report-grid article h3{margin:3px 0}.aggregate-report-grid article small,.aggregate-report-grid article>div>span{color:#6d7a84}.performance-metrics.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.performance-metrics.compact .performance-metric{padding:9px}.performance-metrics.compact .performance-metric strong{font-size:16px}.academic-management-page,.academic-create-page{min-width:0}.academic-overview-head,.academic-head-actions,.academic-save-row,.grade-group-head,.academic-empty-row{align-items:center;display:flex;gap:12px;justify-content:space-between}.academic-overview-head>div:first-child>span,.grade-group-head span{color:var(--brand-blue-dark);font-size:11px;font-weight:900;text-transform:uppercase}.academic-overview-head h3,.grade-group-head h3{margin:3px 0}.academic-overview-head p{color:#687681;margin:0}.academic-head-actions{flex:0 0 auto}.academic-summary-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.academic-summary-grid>div{background:#fff;border:1px solid #dce3e9;border-radius:7px;display:grid;gap:3px;padding:16px}.academic-summary-grid strong{color:var(--brand-blue-dark);font-size:24px}.academic-summary-grid span{color:#697782;font-size:12px;font-weight:800}.academic-tag-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));width:100%}.academic-tag-grid.grade-tags{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.academic-tag-grid.class-tags,.academic-tag-grid.compact-tags{grid-template-columns:repeat(auto-fit,minmax(105px,1fr))}.academic-tag-grid.teacher-tags{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.academic-tag-grid.subject-tags{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.subject-tone-0{--subject-active: #dcedff;--subject-bg: #eef7ff;--subject-border: #9bcdf2;--subject-ink: #086aa6}.subject-tone-1{--subject-active: #d9f5e7;--subject-bg: #ecfaf3;--subject-border: #8fd4b0;--subject-ink: #18724a}.subject-tone-2{--subject-active: #fff0c7;--subject-bg: #fff8e4;--subject-border: #e8c66b;--subject-ink: #8a5c00}.subject-tone-3{--subject-active: #ffe2dc;--subject-bg: #fff1ee;--subject-border: #eeaaa0;--subject-ink: #a43c30}.subject-tone-4{--subject-active: #eee4ff;--subject-bg: #f6f0ff;--subject-border: #c5a8ee;--subject-ink: #6e3fa3}.subject-tone-5{--subject-active: #d9f4f4;--subject-bg: #ebfafa;--subject-border: #8dcfd0;--subject-ink: #176c70}.academic-tag{background:#fff;border:1px solid #d7e0e7;border-radius:7px;color:#26313b;display:grid;gap:4px;min-height:62px;min-width:0;padding:11px 12px;text-align:left}.subject-tags .academic-tag{background:var(--subject-bg);border-color:var(--subject-border);color:var(--subject-ink);padding-right:34px;position:relative}.subject-tags .academic-tag:hover,.subject-tags .academic-tag.active{background:var(--subject-active);border-color:var(--subject-ink);color:var(--subject-ink)}.subject-tags .academic-tag.active{box-shadow:inset 0 0 0 1px var(--subject-ink)}.subject-tags .academic-tag:disabled{background:var(--subject-bg);border-color:var(--subject-border);border-style:dashed;color:var(--subject-ink);opacity:1}.academic-tag-check{color:var(--subject-ink);position:absolute;right:11px;top:11px}.subject-tags .academic-tag span{color:color-mix(in srgb,var(--subject-ink) 72%,#52606b)}.academic-tag:hover,.academic-tag.active{background:var(--brand-blue-soft);border-color:var(--brand-blue);color:var(--brand-blue-dark)}.academic-tag:disabled{background:#f2f4f6;border-color:#e1e5e8;color:#929ca4;cursor:not-allowed}.academic-tag strong,.academic-tag span{overflow-wrap:anywhere}.academic-tag span{color:#6b7882;font-size:11px}.academic-create-page{display:grid;gap:18px}.academic-step{align-items:center;border-top:1px solid #e2e8ed;display:flex;gap:10px;padding-top:16px}.academic-step>span{align-items:center;background:var(--brand-blue);border-radius:50%;color:#fff;display:inline-flex;flex:0 0 28px;font-size:12px;font-weight:900;height:28px;justify-content:center}.academic-step>div{display:grid;gap:2px}.academic-step small{color:#71808b}.academic-custom-toggle{align-items:center;background:transparent;border:0;color:var(--brand-blue-dark);display:inline-flex;font-weight:800;gap:7px;justify-self:start;padding:4px 0}.academic-custom-field{color:#52606b;display:grid;font-size:12px;font-weight:800;gap:7px;max-width:420px}.academic-custom-field input{border:1px solid #ccd6df;border-radius:6px;padding:11px;width:100%}.academic-custom-subject{align-items:end;display:flex;gap:10px}.subject-edit-list{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.subject-edit-row{align-items:center;background:#f8fafb;border:1px solid #dce4ea;border-radius:6px;display:flex;gap:8px;justify-content:space-between;min-width:0;padding:9px 10px}.subject-edit-row[class*=subject-tone-]{background:var(--subject-bg);border-color:var(--subject-border)}.subject-edit-row[class*=subject-tone-] strong,.subject-edit-row[class*=subject-tone-] .icon-button{color:var(--subject-ink)}.subject-edit-row>div{display:grid;gap:2px;min-width:0}.subject-edit-row strong,.subject-edit-row small{overflow-wrap:anywhere}.subject-edit-row small{color:#71808b;font-size:10px}.subject-edit-row input{border:1px solid #c7d3dc;border-radius:5px;min-width:0;padding:9px;width:100%}.subject-manage-button{align-items:center;background:#fff1e5;border:1px solid #ffc38f;border-radius:5px;color:#b65300;display:inline-flex;font-size:11px;font-weight:800;gap:5px;min-height:32px;padding:6px 8px}.subject-manage-button:hover{background:#ffe3c9;border-color:var(--brand-orange)}.subject-step>span{background:var(--brand-orange)}.academic-save-row{border-top:1px solid #e2e8ed;padding-top:16px}.academic-save-row>span{color:#697782;font-size:12px;font-weight:800}.grade-group-list{display:grid;gap:14px}.grade-group{display:grid;gap:16px}.grade-subject-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px;max-width:760px}.grade-group-head .grade-subject-list small{background:var(--subject-bg);border:1px solid var(--subject-border);border-radius:4px;color:var(--subject-ink);font-size:10px;font-weight:800;padding:4px 6px;text-transform:none}.grade-group-head .grade-no-subjects{color:#9b4b40;display:block;font-size:11px;margin-top:5px}.grade-group-tools>strong{background:#f0f5f8;border-radius:5px;color:#53616c;font-size:12px;padding:7px 9px}.grade-group-tools,.academic-item-actions,.connected-class-controls{align-items:center;display:flex;gap:8px}.academic-item-actions{gap:4px}.grade-class-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(235px,1fr))}.connected-class-card{align-items:center;background:#f8fafb;border:1px solid #dce4ea;border-radius:7px;display:grid;gap:10px;grid-template-columns:42px minmax(0,1fr) auto;min-width:0;padding:12px}.class-letter-badge{align-items:center;background:var(--brand-blue);border-radius:6px;color:#fff;display:flex;font-size:16px;font-weight:900;height:42px;justify-content:center;width:42px}.connected-class-card>div:nth-child(2){display:grid;gap:3px;min-width:0}.connected-class-card h4{margin:0;overflow-wrap:anywhere}.connected-class-card span,.connected-class-card small{color:#6b7882;font-size:11px;overflow-wrap:anywhere}.connected-class-controls{align-items:flex-end;display:grid;justify-items:end}.connected-class-controls>strong{color:var(--brand-orange);display:grid;font-size:18px;text-align:right}.connected-class-controls>strong span{font-size:9px;text-transform:uppercase}.academic-empty-row{background:#f8fafb;border:1px dashed #ccd6df;border-radius:7px;color:#6d7a84;padding:14px}.academic-empty-row button{background:transparent;border:0;color:var(--brand-blue-dark);font-weight:800}.teacher-management-page,.school-profile-page{min-width:0}.school-profile-hero{align-items:center;background:#fff;border:1px solid #dbe3ec;border-top:5px solid var(--brand-blue);border-radius:8px;display:grid;gap:20px;grid-template-columns:auto minmax(0,1fr) auto;padding:24px}.school-profile-logo-stage{align-items:center;background:#fff;border:1px solid #dce5ec;border-radius:8px;display:flex;height:112px;justify-content:center;padding:14px;width:112px}.school-profile-logo-stage .school-logo{height:80px;max-width:80px;object-fit:contain;width:80px}.school-profile-heading{min-width:0}.school-profile-heading>span,.school-profile-branding>div:first-child>span{color:var(--brand-orange);font-size:11px;font-weight:900;text-transform:uppercase}.school-profile-heading h2{font-size:28px;margin:5px 0;overflow-wrap:anywhere}.school-profile-heading p,.school-profile-branding p{color:#667586;margin:0}.school-profile-facts{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.school-profile-facts article{background:#fff;border:1px solid #dbe3ec;border-radius:8px;display:grid;gap:7px;min-width:0;padding:16px}.school-profile-facts article:nth-child(1){border-left:4px solid #0a93e8}.school-profile-facts article:nth-child(2){border-left:4px solid #1f9d64}.school-profile-facts article:nth-child(3){border-left:4px solid #e99024}.school-profile-facts article:nth-child(4){border-left:4px solid #8b5dc8}.school-profile-facts span{color:#6c7984;font-size:11px;font-weight:800;text-transform:uppercase}.school-profile-facts strong{overflow-wrap:anywhere}.school-profile-branding{align-items:center;display:flex;gap:24px;justify-content:space-between}.school-profile-branding h3{margin:4px 0 6px}.school-profile-brand-pair{align-items:center;background:#fff;border:1px solid #dbe3ec;border-radius:8px;display:flex;flex:0 0 auto;gap:14px;min-height:76px;padding:12px 18px}.school-profile-brand-pair>span{color:#87929b;font-weight:900}.school-profile-edit{max-width:920px}.teacher-list-head{border-top:4px solid var(--brand-blue)}.teacher-list-head .academic-overview-head{align-items:flex-start}.teacher-list-head .primary-button,.teacher-profile-actions .primary-button,.teacher-form-navigation button,.teacher-card-actions button{align-items:center;display:inline-flex}.teacher-school-filter{border-top:1px solid #e1e8ed;margin-top:16px;max-width:540px;padding-top:16px}.teacher-summary-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.teacher-summary-grid>div{background:#fff;border:1px solid #dbe3ec;border-radius:8px;display:grid;gap:4px;grid-template-columns:minmax(0,1fr) auto;min-width:0;padding:15px}.teacher-summary-grid>div:nth-child(1){border-left:4px solid #0a93e8}.teacher-summary-grid>div:nth-child(2){border-left:4px solid #1f9d64}.teacher-summary-grid>div:nth-child(3){border-left:4px solid #e99024}.teacher-summary-grid>div:nth-child(4){border-left:4px solid #8b5dc8}.teacher-summary-grid span{color:#6b7882;font-size:11px;font-weight:800}.teacher-summary-grid strong{color:#22303c;font-size:24px;grid-column:1}.teacher-summary-grid svg{color:#71808b;grid-column:2;grid-row:1 / 3}.teacher-filter-panel{display:grid;gap:14px}.teacher-filter-heading,.teacher-filter-heading>div,.teacher-filter-heading>div>div{display:flex}.teacher-filter-heading{align-items:center;gap:12px;justify-content:space-between}.teacher-filter-heading>div{align-items:center;gap:9px}.teacher-filter-heading>div>div{align-items:flex-start;flex-direction:column;gap:2px}.teacher-filter-heading>div>span{align-items:center;background:var(--brand-blue);border-radius:50%;color:#fff;display:inline-flex;flex:0 0 26px;font-size:11px;font-weight:900;height:26px;justify-content:center}.teacher-filter-heading small{color:#71808b}.teacher-filter-heading.compact{border-top:1px solid #e6ebef;padding-top:14px}.teacher-filter-heading.compact>div>span{background:var(--brand-orange)}.teacher-filter-tags .academic-tag{min-height:54px}.teacher-search{align-items:center;border-top:1px solid #e6ebef;display:flex;margin-top:2px;padding-top:14px;position:relative}.teacher-search svg{color:#687681;left:12px;position:absolute;top:27px}.teacher-search input{padding-left:37px}.teacher-results-section{display:grid;gap:13px}.teacher-results-head{align-items:end;display:flex;gap:12px;justify-content:space-between}.teacher-results-head span{color:var(--brand-blue-dark);font-size:11px;font-weight:900;text-transform:uppercase}.teacher-results-head h3{margin:3px 0 0}.teacher-results-head>strong{background:#eef4f7;border-radius:5px;color:#52616c;font-size:12px;padding:7px 9px}.teacher-card-grid{display:grid;gap:13px;grid-template-columns:repeat(auto-fit,minmax(285px,1fr))}.teacher-card{background:#fff;border:1px solid #dbe3ec;border-radius:8px;display:grid;gap:13px;min-width:0;padding:15px}.teacher-card-tone-0{border-top:4px solid #0a93e8}.teacher-card-tone-1{border-top:4px solid #1f9d64}.teacher-card-tone-2{border-top:4px solid #e99024}.teacher-card-tone-3{border-top:4px solid #8b5dc8}.teacher-card-head{align-items:center;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;min-width:0}.teacher-card-head>div:nth-child(2){display:grid;gap:2px;min-width:0}.teacher-card-head h3,.teacher-card-head span,.teacher-card-head small{margin:0;overflow-wrap:anywhere}.teacher-card-head>div>span{color:var(--brand-blue-dark);font-size:10px;font-weight:900;text-transform:uppercase}.teacher-card-head small,.teacher-card-contact{color:#6a7782;font-size:11px}.teacher-avatar{align-items:center;background:#e3f3fe;border:1px solid #9ed2f3;border-radius:7px;color:#0870b2;display:flex;flex:0 0 auto;font-size:15px;font-weight:900;height:44px;justify-content:center;width:44px}.teacher-avatar.large{font-size:22px;height:66px;width:66px}.status-dot{background:#b7c0c7;border-radius:50%;height:9px;width:9px}.status-dot.active{background:#1f9d64;box-shadow:0 0 0 4px #dff5e9}.teacher-card-contact{background:#f7f9fa;border-radius:6px;display:grid;gap:3px;min-width:0;padding:9px}.teacher-card-contact span{overflow-wrap:anywhere}.teacher-chip-list{display:flex;flex-wrap:wrap;gap:6px}.teacher-chip-list>span{background:var(--subject-bg, #eef4f7);border:1px solid var(--subject-border, #d4dfe6);border-radius:5px;color:var(--subject-ink, #52616c);font-size:11px;font-weight:800;padding:5px 7px}.teacher-chip-list.compact>span{font-size:10px;padding:4px 6px}.teacher-chip-list .teacher-type-chip{background:#e7f7ee;border-color:#aadbbc;color:#147948}.teacher-type-note{align-items:center;background:#edf8f2;border:1px solid #b8e1c8;border-radius:8px;color:#176d44;display:flex;gap:11px;padding:15px}.teacher-type-note>div{display:grid;gap:3px}.teacher-type-note span{color:#527262;font-size:12px}.danger-button{align-items:center;background:#fff1f2;border:1px solid #fecdd3;color:#be123c;display:inline-flex;gap:7px;justify-content:center}input[readonly]{background:#eef3f6;color:#53616c;cursor:default}.teacher-card-responsibility{display:grid;gap:8px;grid-template-columns:90px minmax(0,1fr)}.teacher-card-responsibility>div{background:#f5f9fc;border:1px solid #e1e9ef;border-radius:6px;display:grid;gap:2px;min-width:0;padding:8px}.teacher-card-responsibility span{color:#72808a;font-size:9px;font-weight:800;text-transform:uppercase}.teacher-card-responsibility strong{font-size:12px;overflow-wrap:anywhere}.teacher-card-actions{align-items:center;border-top:1px solid #e4eaee;display:flex;gap:8px;justify-content:space-between;padding-top:11px}.teacher-card-actions .ghost-button{justify-content:center;width:100%}.teacher-empty-state{border:1px dashed #cbd6df;border-radius:8px;grid-column:1 / -1;min-height:130px}.teacher-profile-panel{border-top:4px solid var(--brand-blue)}.teacher-profile-head{align-items:center;display:grid;gap:14px;grid-template-columns:auto minmax(0,1fr) auto}.teacher-profile-title{min-width:0}.teacher-profile-title>span{color:var(--brand-blue-dark);font-size:11px;font-weight:900;text-transform:uppercase}.teacher-profile-title h3{font-size:22px;margin:3px 0}.teacher-profile-title p{color:#697782;margin:0;overflow-wrap:anywhere}.teacher-profile-actions{align-items:flex-end;display:grid;gap:9px;justify-items:end}.teacher-fact-grid{border-top:1px solid #e1e7ec;display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:17px;padding-top:17px}.teacher-fact-grid>div{background:#f6f9fb;border-radius:6px;display:grid;gap:3px;min-width:0;padding:10px}.teacher-fact-grid span{color:#71808b;font-size:10px;font-weight:800;text-transform:uppercase}.teacher-fact-grid strong{overflow-wrap:anywhere}.teacher-class-groups,.teacher-class-picker{display:grid;gap:13px}.teacher-class-group{border-top:1px solid #e2e8ed;display:grid;gap:8px;grid-template-columns:130px minmax(0,1fr);padding-top:12px}.teacher-class-group>div{display:flex;flex-wrap:wrap;gap:7px}.teacher-class-group span{background:#edf4f8;border:1px solid #d4e0e7;border-radius:5px;color:#52616c;font-size:11px;font-weight:800;padding:6px 8px}.teacher-class-group span.class-teacher{background:#fff1df;border-color:#efbd74;color:#9b5700}.teacher-form-page{max-width:1120px}.teacher-form-head{border-top:4px solid var(--brand-orange);display:grid;gap:17px}.teacher-form-head>div:first-child>span{color:var(--brand-blue-dark);font-size:11px;font-weight:900;text-transform:uppercase}.teacher-form-head h3{margin:3px 0}.teacher-form-head p{color:#687681;margin:0}.teacher-stepper{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.teacher-stepper button{align-items:center;background:#f5f7f9;border:1px solid #dce3e9;border-radius:7px;color:#687681;display:flex;font-size:11px;font-weight:800;gap:7px;min-width:0;padding:8px}.teacher-stepper button span{align-items:center;background:#dce4ea;border-radius:50%;display:flex;flex:0 0 23px;height:23px;justify-content:center}.teacher-stepper button.active{background:#e9f6ff;border-color:#7fc5ef;color:#076cae}.teacher-stepper button.active span{background:var(--brand-blue);color:#fff}.teacher-stepper button.complete{background:#eaf8f1;border-color:#9fd7bc;color:#176b47}.teacher-stepper button.complete span{background:#1f9d64;color:#fff}.teacher-form-section{display:grid;gap:18px}.teacher-form-section .academic-step{border-top:0;padding-top:0}.teacher-profile-form,.teacher-final-fields{display:grid;gap:13px;grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-profile-form .form-control-group{display:grid;gap:7px}.teacher-subject-picker,.teacher-responsibility-picker{grid-template-columns:repeat(auto-fit,minmax(165px,1fr))}.teacher-responsibility-picker{display:grid;gap:10px}.teacher-class-select-group{border-top:1px solid #e2e8ed;display:grid;gap:10px;grid-template-columns:130px minmax(0,1fr);padding-top:13px}.teacher-class-select-group>div:first-child{display:grid;gap:3px}.teacher-class-select-group>div:first-child span{color:#71808b;font-size:11px}.teacher-final-fields{border-top:1px solid #e2e8ed;padding-top:16px}.teacher-form-navigation{align-items:center;display:flex;gap:12px;justify-content:space-between;position:sticky;bottom:12px;z-index:3}.teacher-form-navigation>span{color:#65737e;font-size:12px;font-weight:800}.teacher-form-navigation>div{display:flex;gap:8px}@media(max-width:700px){.school-profile-hero{align-items:start;grid-template-columns:auto minmax(0,1fr);padding:16px}.school-profile-hero>.primary-button{grid-column:1 / -1;justify-content:center;width:100%}.school-profile-logo-stage{height:76px;padding:9px;width:76px}.school-profile-logo-stage .school-logo{height:56px;width:56px}.school-profile-heading h2{font-size:21px}.school-profile-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.school-profile-branding{align-items:stretch;display:grid}.school-profile-brand-pair{justify-content:center}.report-filters,.aggregate-report-grid{grid-template-columns:1fr}.performance-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.performance-metrics.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.performance-row-list button{align-items:stretch;display:grid;gap:10px}.performance-row-values{grid-auto-flow:column;text-align:left}.academic-overview-head,.academic-save-row{align-items:stretch;display:grid}.academic-head-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.academic-summary-grid{gap:8px}.academic-summary-grid>div{padding:12px}.grade-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.connected-class-card{align-content:start;grid-template-columns:34px minmax(0,1fr);padding:9px}.class-letter-badge{height:34px;width:34px}.connected-class-controls{align-items:center;grid-column:1 / -1;grid-template-columns:auto 1fr;justify-items:start;justify-content:space-between;width:100%}.connected-class-controls>strong{grid-template-columns:auto 1fr;gap:4px;text-align:left}.academic-tag-grid,.academic-tag-grid.grade-tags,.academic-tag-grid.class-tags,.academic-tag-grid.compact-tags,.academic-tag-grid.teacher-tags,.academic-tag-grid.subject-tags{grid-template-columns:repeat(2,minmax(0,1fr))}.academic-custom-subject{align-items:stretch;display:grid}.teacher-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-profile-head{align-items:start;grid-template-columns:auto minmax(0,1fr)}.teacher-profile-actions{align-items:stretch;grid-column:1 / -1;grid-template-columns:auto minmax(0,1fr);justify-items:stretch}.teacher-profile-actions .primary-button{justify-content:center}.teacher-fact-grid,.teacher-stepper{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-profile-form,.teacher-final-fields,.teacher-class-group,.teacher-class-select-group{grid-template-columns:1fr}.teacher-form-navigation{align-items:stretch;display:grid}.teacher-form-navigation>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-form-navigation>div button:only-child{grid-column:1 / -1}.subject-edit-list{grid-template-columns:1fr}}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}select[multiple]{min-height:118px}button{cursor:pointer}.login-shell{align-items:center;background:#eef4f7;display:flex;justify-content:center;min-height:100vh;padding:24px}.login-panel{background:#fff;border:1px solid #d8e0e8;border-radius:8px;box-shadow:0 24px 70px #202c3924;max-width:520px;padding:28px;width:min(100%,520px)}.entry-panel{width:min(100%,1140px)}.entry-panel.focused{background:#fff;border:1px solid #d8e0e8;border-radius:8px;box-shadow:0 24px 70px #202c3924;max-width:520px;padding:26px}.entry-hero{align-content:center;align-items:start;display:grid;gap:12px;min-width:0;text-align:left}.entry-choice-layout{align-items:center;display:grid;gap:32px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.entry-logo-stage{align-items:center;display:flex;min-height:142px;width:min(100%,520px)}.entry-hero span,.selected-entry-head span{color:var(--brand-blue);font-size:12px;font-weight:900;text-transform:uppercase}.entry-hero h1{color:#17202a;font-size:clamp(38px,7vw,70px);line-height:1;margin:6px 0 0;max-width:560px}.entry-hero p{color:#566474;font-size:18px;line-height:1.45;margin:0;max-width:460px}.role-picker{background:#fff;border:1px solid #d8e0e8;border-radius:8px;box-shadow:0 24px 70px #202c391f;padding:18px}.role-picker-head{align-items:end;display:flex;justify-content:space-between;margin-bottom:14px}.role-picker-head span{color:var(--brand-blue);font-size:12px;font-weight:900;text-transform:uppercase}.role-picker-head strong{color:#17202a;font-size:20px}.who-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.who-card{background:#fff;border:1px solid #d8e0e8;border-left:5px solid var(--role-accent, var(--brand-blue));border-radius:8px;box-shadow:0 12px 34px #202c3914;color:#17202a;display:flex;flex-direction:column;gap:14px;min-height:220px;padding:18px;text-align:left;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.who-card.student{--role-accent: var(--brand-blue);--role-soft: var(--brand-blue-soft)}.who-card.teacher{--role-accent: var(--brand-orange);--role-soft: #fff3e6}.who-card.school{--role-accent: #26313b;--role-soft: #eef2f5}.who-card.oba{--role-accent: #0f9f6e;--role-soft: #e8f8f1}.who-card:hover,.who-card:focus-visible{border-color:var(--role-accent, var(--brand-blue));box-shadow:0 18px 44px #202c3921;outline:0;transform:translateY(-2px)}.who-icon{align-items:center;background:var(--role-soft, var(--brand-blue-soft));border-radius:8px;color:var(--role-accent, var(--brand-blue));display:flex;height:54px;justify-content:center;width:54px}.who-copy{display:grid;gap:6px}.who-copy small{color:var(--role-accent, var(--brand-blue));font-size:11px;font-weight:900;text-transform:uppercase}.who-card strong{font-size:21px;line-height:1.1}.who-card span{color:#667586;font-size:14px;line-height:1.45}.who-card em{align-self:flex-start;background:#f6f8fa;border:1px solid #d8e0e8;border-radius:999px;color:#4f5f70;font-size:12px;font-style:normal;font-weight:900;margin-top:auto;padding:7px 10px}.back-button{background:transparent;border:0;color:var(--brand-blue);font-weight:900;margin-bottom:14px;padding:0}.selected-entry-head{align-items:center;display:flex;gap:14px;margin-bottom:18px}.selected-entry-head h1{font-size:25px;margin:3px 0 0}.auth-tabs{background:#edf3f6;border-radius:8px;display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px;padding:5px}.auth-tabs button{background:transparent;border:0;border-radius:7px;color:#4f5f70;font-weight:900;min-height:38px}.auth-tabs button.active{background:#fff;color:var(--brand-blue);box-shadow:0 6px 16px #202c3914}.approval-note,.success-message{border-radius:7px;font-size:13px;padding:10px 12px}.approval-note{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.success-message{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857;margin-bottom:12px}.pwa-install-card{align-items:center;background:#fff;border:1px solid #d8e0e8;border-left:5px solid var(--brand-blue);border-radius:8px;bottom:22px;box-shadow:0 24px 70px #202c392e;display:grid;gap:14px;grid-template-columns:56px minmax(0,1fr);max-width:430px;padding:16px;position:fixed;right:22px;width:calc(100vw - 44px);z-index:80}.pwa-install-close{align-items:center;background:#f4f7fa;border:1px solid #dbe3ec;border-radius:999px;color:#4f5f70;display:inline-flex;height:28px;justify-content:center;padding:0;position:absolute;right:10px;top:10px;width:28px}.pwa-install-logo{align-items:center;background:var(--brand-blue-soft);border-radius:8px;display:flex;height:56px;justify-content:center;overflow:hidden;width:56px}.pwa-install-logo img{display:block;height:48px;object-fit:contain;width:48px}.pwa-install-copy{display:grid;gap:4px;min-width:0;padding-right:22px}.pwa-install-copy span{color:var(--brand-blue);font-size:11px;font-weight:900;text-transform:uppercase}.pwa-install-copy strong{color:#17202a;font-size:18px}.pwa-install-copy p,.pwa-install-copy small{color:#667586;font-size:13px;line-height:1.42;margin:0}.pwa-install-copy small{color:#9a3412}.pwa-install-actions{display:flex;gap:8px;grid-column:1 / -1}.pwa-install-actions .primary-button,.pwa-install-actions .ghost-button{align-items:center;display:inline-flex;flex:1}.brand-lockup,.sidebar-header,.form-heading,.logout-button,.nav-item,.primary-button,.ghost-button,.portal-button,.profile-pill,.search-box,.activity-footer{align-items:center;display:flex}.brand-lockup{gap:14px;margin-bottom:24px}.brand-lockup h1,.brand-lockup p,.topbar h2,.topbar p,.panel h3,.panel p,.welcome-band h3,.welcome-band p{margin:0}.brand-lockup h1{font-size:25px}.brand-lockup p,.panel p,.topbar p,.sidebar-header span,.mini-row span,.activity-card span,.welcome-band p{color:#667586;font-size:13px}.brand-logo{display:block;height:126px;max-width:520px;object-fit:contain;width:min(100%,520px)}.brand-logo.compact{height:42px;object-fit:contain;padding:0;width:150px}.school-logo{background:#fff;border:1px solid #e3e8ee;border-radius:8px;display:block;height:62px;object-fit:contain;padding:6px;width:62px}.school-logo.compact{height:42px;padding:4px;width:42px}.school-logo.placeholder{align-items:center;background:#e8f5ff;color:var(--brand-blue-dark);display:flex;justify-content:center}.app-splash{align-items:center;background:#fff;border-bottom:8px solid var(--brand-orange);border-top:8px solid var(--brand-blue);display:flex;flex-direction:column;gap:24px;justify-content:center;min-height:100vh;padding:28px;text-align:center}.app-splash-brand{align-items:center;display:flex;gap:22px;justify-content:center;max-width:680px;min-width:0}.app-splash-brand .brand-logo{height:104px;max-width:340px;width:min(54vw,340px)}.app-splash-brand .school-logo{border:2px solid #dce5ec;height:92px;padding:8px;width:92px}.app-splash-divider{background:#d9e2e9;height:76px;width:1px}.app-splash-copy{display:grid;gap:5px}.app-splash-copy strong{color:#26313b;font-size:22px}.app-splash-copy span{color:#687681;font-size:13px;font-weight:700}.app-splash-loader{align-items:center;display:flex;gap:7px;height:20px}.app-splash-loader i{animation:splash-pulse .9s ease-in-out infinite;background:var(--brand-blue);border-radius:50%;display:block;height:9px;width:9px}.app-splash-loader i:nth-child(2){animation-delay:.15s;background:var(--brand-orange)}.app-splash-loader i:nth-child(3){animation-delay:.3s;background:#32a66a}@keyframes splash-pulse{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@media(prefers-reduced-motion:reduce){.app-splash-loader i{animation:none}}@media(max-width:520px){.app-splash{gap:20px;padding:20px}.app-splash-brand{gap:12px}.app-splash-brand .brand-logo{height:76px;width:min(48vw,150px)}.app-splash-brand .school-logo{height:66px;width:66px}.app-splash-divider{height:54px}.app-splash-copy strong{font-size:18px}}.brand-pair,.topbar-brand-pair{align-items:center;display:flex;gap:8px;min-width:0}.brand-pair{flex:0 0 auto}.portal-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:22px}.portal-button{background:#f7fafc;border:1px solid #dbe3ec;border-radius:8px;color:#26323f;gap:10px;min-height:46px;padding:10px 12px}.portal-button.active{background:var(--brand-blue-soft);border-color:var(--brand-blue);color:var(--brand-blue)}.login-form,.record-form{display:grid;gap:14px}.school-search-picker{display:grid;gap:10px;min-width:0}.school-search-input{align-items:center;display:flex;position:relative}.school-search-input svg{color:#687681;left:12px;pointer-events:none;position:absolute}.school-search-input input{padding-left:36px}.selected-school-result{align-items:center;background:#eaf8f1;border:1px solid #99d8b8;border-radius:7px;color:#176b47;display:flex;gap:9px;padding:10px}.selected-school-result>div,.school-search-results button>div{display:grid;gap:2px;min-width:0}.selected-school-result span,.school-search-results span{color:#667586;font-size:11px;overflow-wrap:anywhere}.school-search-results{display:grid;gap:7px;max-height:260px;overflow-y:auto}.school-search-results button{align-items:center;background:#f8fafb;border:1px solid #d9e2e9;border-radius:7px;color:#26313b;display:grid;gap:9px;grid-template-columns:auto minmax(0,1fr) auto;min-width:0;padding:10px;text-align:left}.school-search-results button:hover,.school-search-results button.active{background:#e8f5ff;border-color:var(--brand-blue);color:var(--brand-blue-dark)}.school-search-empty{background:#fff8e4;border:1px solid #e8c66b;border-radius:7px;color:#805600;font-size:12px;padding:11px;text-align:center}.form-heading{color:#1f2a37;font-weight:700;gap:10px;margin-bottom:2px}label{color:#354150;display:grid;font-size:13px;font-weight:700;gap:7px}input,select,textarea{background:#fff;border:1px solid #ccd6e0;border-radius:7px;color:#17202a;min-height:41px;outline:none;padding:9px 11px;width:100%}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--brand-blue);box-shadow:0 0 0 3px #0a93e824}.primary-button,.ghost-button,.logout-button,.icon-button{border:0;border-radius:7px}.primary-button{background:var(--brand-blue);color:#fff;font-weight:800;gap:8px;justify-content:center;min-height:42px;padding:10px 14px}.primary-button:disabled{opacity:.65}.ghost-button{background:#f4f7fa;border:1px solid #dbe3ec;color:#26323f;min-height:38px;padding:8px 12px}.error-message{background:#fff1f2;border:1px solid #fecdd3;border-radius:7px;color:#be123c;font-size:13px;padding:10px 12px}.wide{grid-column:1 / -1}.app-loading,.loading-state,.empty-state{align-items:center;color:#667586;display:flex;justify-content:center;min-height:90px;text-align:center}.app-shell{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--brand-gray-dark);color:#fff;display:flex;flex-direction:column;gap:18px;min-height:100vh;padding:18px}.sidebar-header{gap:11px;justify-content:space-between}.sidebar-header .brand-logo.compact{width:112px}.sidebar-header>div:nth-child(2){display:grid;flex:1;gap:2px;min-width:0}.sidebar nav{display:grid;gap:6px}.nav-item{background:transparent;border:0;border-radius:7px;color:#cbd5e1;gap:11px;min-height:41px;padding:10px;text-align:left;width:100%}.nav-item.active,.nav-item:hover{background:#22303d;color:#fff}.logout-button{background:#1c2834;color:#e2e8f0;gap:10px;justify-content:center;margin-top:auto;min-height:42px}.main-shell{min-width:0}.topbar{align-items:center;background:#fff;border-bottom:1px solid #dbe3ec;display:flex;gap:14px;justify-content:space-between;min-height:74px;padding:16px 24px}.topbar-title{align-items:center;display:flex;gap:12px;min-width:0}.topbar-title>div:last-child{min-width:0}.topbar-brand-pair .brand-logo.compact{width:112px}.topbar h2{font-size:23px}.profile-pill{background:#f4f7fa;border:1px solid #dbe3ec;border-radius:8px;gap:10px;padding:8px 10px}.profile-pill span{font-weight:800}.profile-pill strong{color:#667586;font-size:12px}.content-shell{min-width:0;padding:24px}.stack{display:grid;gap:18px;min-width:0}.welcome-band{align-items:center;background:#fff;border:1px solid #dbe3ec;border-left:5px solid var(--brand-blue);border-radius:8px;display:flex;justify-content:space-between;padding:20px}.welcome-band span{color:var(--brand-blue);font-size:12px;font-weight:900;text-transform:uppercase}.welcome-band h3{font-size:22px;margin-top:4px}.stat-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{align-items:center;background:#fff;border:1px solid #dbe3ec;border-radius:8px;display:flex;justify-content:space-between;min-height:96px;padding:16px}.stat-card span{color:#667586;display:block;font-size:12px;font-weight:800;margin-bottom:8px;text-transform:uppercase}.stat-card strong{font-size:27px}.stat-card svg{color:var(--brand-blue)}.panel-grid{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-analytics{display:grid;gap:12px;min-width:0}.analytics-heading{align-items:center;display:flex;justify-content:space-between}.analytics-heading span{color:#667586;font-size:11px;font-weight:900;text-transform:uppercase}.analytics-heading h3{font-size:20px;margin-top:3px}.analytics-heading svg{color:var(--brand-blue)}.analytics-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-card{background:#fff;border:1px solid #dbe3ec;border-radius:8px;min-height:248px;min-width:0;padding:16px}.analytics-card h4{font-size:15px;margin:0 0 14px}.donut-layout{align-items:center;display:grid;gap:12px;grid-template-columns:132px minmax(0,1fr)}.donut-chart{aspect-ratio:1;display:block;height:auto;overflow:visible;width:132px}.donut-track,.donut-segment{fill:none;stroke-width:15;transform:rotate(-90deg);transform-origin:60px 60px}.donut-track{stroke:#e8eef3}.donut-segment{transition:stroke-dasharray .22s ease}.donut-total{fill:#17202a;font-size:20px;font-weight:900}.donut-caption{fill:#718091;font-size:9px;font-weight:800;text-transform:uppercase}.chart-legend{display:grid;gap:10px;min-width:0}.chart-legend>div{align-items:center;display:grid;gap:7px;grid-template-columns:9px minmax(0,1fr) auto}.chart-legend i{border-radius:2px;height:9px;width:9px}.chart-legend span{color:#536273;font-size:12px;min-width:0}.chart-legend strong{font-size:12px;white-space:nowrap}.chart-legend small{color:#7b8896;font-size:10px;font-weight:700}.bar-chart{display:grid;gap:11px}.bar-row{display:grid;gap:5px}.bar-row>div:first-child{align-items:center;display:flex;gap:10px;justify-content:space-between;min-width:0}.bar-row span{color:#536273;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-row strong{font-size:12px}.bar-track{background:#e8eef3;border-radius:2px;height:8px;overflow:hidden}.bar-track i{display:block;height:100%;min-width:2px}.panel{background:#fff;border:1px solid #dbe3ec;border-radius:8px;min-width:0;padding:18px}.panel-heading{align-items:flex-start;display:flex;gap:14px;justify-content:space-between;margin-bottom:16px}.panel h3{font-size:18px}.mini-list{display:grid;gap:10px}.mini-row{align-items:center;border:1px solid #e7edf3;border-radius:8px;display:flex;gap:12px;justify-content:space-between;min-height:56px;padding:10px 12px}.mini-row div{display:grid;gap:3px}.mini-row time{color:var(--brand-blue);font-size:12px;font-weight:800;white-space:nowrap}.record-form{grid-template-columns:repeat(3,minmax(0,1fr))}.record-form>.wizard-shell{grid-column:1 / -1}.wizard-shell{display:grid;gap:16px;min-width:0}.wizard-steps{background:#f4f7fa;border:1px solid #dbe3ec;border-radius:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));padding:8px}.wizard-step{align-items:center;background:transparent;border:0;border-radius:7px;color:#667586;display:flex;gap:8px;justify-content:center;min-height:40px;min-width:0;padding:8px 10px}.wizard-step span{align-items:center;background:#fff;border:1px solid #dbe3ec;border-radius:999px;display:inline-flex;font-size:12px;height:24px;justify-content:center;width:24px}.wizard-step.active{background:#fff;color:var(--brand-blue);box-shadow:0 6px 18px #202c3914}.wizard-step.active span,.wizard-step.complete span{background:var(--brand-blue);border-color:var(--brand-blue);color:#fff}.wizard-screen{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.wizard-screen-head{display:grid;gap:3px;grid-column:1 / -1}.wizard-screen-head h4{font-size:16px;margin:0}.wizard-screen-head span,.wizard-summary span,.wizard-choice span{color:#667586;font-size:12px}.wizard-choice-grid{display:grid;gap:10px;grid-column:1 / -1;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.wizard-choice{background:#fff;border:1px solid #dbe3ec;border-radius:8px;color:#17202a;display:grid;gap:5px;min-height:74px;min-width:0;padding:13px;text-align:left}.wizard-choice.active,.wizard-choice:hover{background:var(--brand-blue-soft);border-color:var(--brand-blue)}.wizard-choice strong{overflow-wrap:anywhere}.wizard-summary{background:#f7fafc;border:1px solid #dbe3ec;border-radius:8px;display:grid;gap:10px;grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px}.wizard-summary div{display:grid;gap:3px;min-width:0}.wizard-summary strong{color:#26313b;overflow-wrap:anywhere}.wizard-screen .form-submit,.wizard-screen .mobile-submit,.wizard-screen .error-message.wide{grid-column:1 / -1}.wizard-nav{display:flex;gap:10px;justify-content:flex-end}.form-submit{align-self:end}.table-heading{align-items:center}.table-actions{align-items:center;display:flex;gap:10px}.table-actions .primary-button{min-height:38px;white-space:nowrap}.search-box{background:#fff;border:1px solid #dbe3ec;border-radius:7px;gap:8px;max-width:260px;padding:0 10px;width:100%}.search-box input{border:0;box-shadow:none;min-height:38px;padding:0}.table-wrap{max-width:100%;min-width:0;overflow-x:auto;width:100%}table{border-collapse:collapse;min-width:760px;width:100%}th,td{border-bottom:1px solid #e7edf3;padding:12px 10px;text-align:left;vertical-align:top}th{color:#667586;font-size:12px;text-transform:capitalize}td{color:#26323f;font-size:14px}.actions-column,.actions-cell{text-align:right;white-space:nowrap}.actions-cell{display:flex;gap:8px;justify-content:flex-end}.admin-back-button{justify-self:start}.admin-detail-panel{max-width:980px}.admin-detail-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-detail-grid div{background:#f7fafc;border:1px solid #e4ebf1;border-radius:8px;display:grid;gap:5px;min-height:64px;padding:12px}.admin-detail-grid span{color:#667586;font-size:12px;font-weight:900;text-transform:uppercase}.admin-detail-grid strong{color:#26313b;overflow-wrap:anywhere}.csv-import-panel{max-width:900px}.student-csv-actions{align-items:center;background:#f7fafc;border:1px solid #dbe3ec;border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding:12px}.student-csv-actions small{color:#667586;flex:1 1 260px;line-height:1.4;text-align:right}.student-csv-error{flex-basis:100%;margin:0}.form-control-group{display:grid;gap:7px;min-width:0}.form-control-group>label{color:#2d3a46;font-size:13px;font-weight:800}.form-control-group>small{color:#667586;font-size:11px;line-height:1.35}.password-generator-row{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto}.password-generator-row .ghost-button{min-height:42px}.csv-import-summary{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.csv-import-summary div,.csv-skipped-list div{background:#f7fafc;border:1px solid #e4ebf1;border-radius:8px;display:grid;gap:5px;padding:12px}.csv-import-summary span,.csv-skipped-list span{color:#667586;font-size:12px;font-weight:800}.csv-import-summary strong,.csv-skipped-list strong{color:#26313b}.csv-skipped-list{display:grid;gap:8px}.icon-button{align-items:center;background:#f4f7fa;border:1px solid #dbe3ec;color:#26323f;display:inline-flex;height:34px;justify-content:center;width:34px}.icon-button.danger{color:#be123c}.activity-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.activity-card{border:1px solid #dbe3ec;border-radius:8px;display:grid;gap:12px;padding:14px}.activity-card div:first-child{display:grid;gap:4px}.activity-card p{color:#4f5f70;font-size:14px;margin:0;min-height:42px}.activity-footer{justify-content:space-between}.status-badge{background:var(--brand-blue-soft);border-radius:999px;color:var(--brand-blue);font-size:12px;font-weight:800;padding:5px 9px}.mobile-only{display:none}.mobile-app-shell{background:#dcecf7;min-height:100vh}.mobile-phone{background:#f5f7fb;margin:0 auto;max-width:520px;min-height:100vh;position:relative}.mobile-topbar{align-items:center;background:#fff;border-bottom:4px solid #ffb703;display:grid;gap:12px;grid-template-columns:42px 1fr 42px;min-height:76px;padding:14px 16px;position:sticky;top:0;z-index:5}.mobile-topbar span,.mobile-drawer-head span,.mobile-card-title span,.mobile-detail-list span,.mobile-section-head span,.mobile-metric span{color:#667586;font-size:12px}.mobile-topbar h2{font-size:20px;margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-topbar>div:nth-child(2){min-width:0}.mobile-title-logo{align-items:center;display:flex;gap:8px;min-width:0}.mobile-title-logo .brand-logo.compact{flex:0 0 auto;height:28px;padding:0;width:92px}.mobile-title-logo .school-logo.compact{flex:0 0 auto;height:28px;padding:2px;width:28px}.mobile-title-logo span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-icon-button{align-items:center;background:#e8f5ff;border:1px solid #bde3ff;border-radius:8px;color:#0874bb;display:inline-flex;height:40px;justify-content:center;width:40px}.mobile-avatar{align-items:center;background:#ff7a00;border-radius:8px;color:#fff;display:flex;font-weight:900;height:40px;justify-content:center;width:40px}.mobile-avatar.large{height:48px;width:48px}.mobile-avatar.xlarge{font-size:28px;height:76px;width:76px}.mobile-content{min-height:calc(100vh - 152px);padding:16px 16px 98px}.mobile-stack{display:grid;gap:14px}.mobile-hero{background:#0874bb;border-bottom:6px solid #ffb703;border-radius:8px;color:#fff;padding:20px}.mobile-hero.teacher{background:#25636f;border-bottom-color:#2ec4b6}.mobile-hero span{color:#ffffffc7;font-size:12px;font-weight:900;text-transform:uppercase}.mobile-hero h1{font-size:26px;line-height:1.12;margin:8px 0 6px}.mobile-hero p{color:#ffffffd1;margin:0}.mobile-metrics-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-metric{background:#fff;border:1px solid #cfe8f7;border-top:5px solid #2ec4b6;border-radius:8px;display:grid;gap:3px;min-height:74px;padding:13px}.mobile-metric:nth-child(2){border-top-color:#ff7a00}.mobile-metric:nth-child(3){border-top-color:#8b5cf6}.mobile-metric:nth-child(4){border-top-color:#ef476f}.mobile-metric strong{color:#0874bb;font-size:24px}.mobile-section{background:#fff;border:1px solid #d7e5ef;border-top:5px solid #ffb703;border-radius:8px;padding:14px}.mobile-section-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.mobile-section-head h3{font-size:16px;margin:0}.mobile-section-head span{background:#e8f5ff;border-radius:999px;font-weight:900;min-width:28px;padding:4px 8px;text-align:center}.mobile-card-list{display:grid;gap:10px}.mobile-card{background:#fff;border:1px solid #dce8f0;border-left:5px solid #0a93e8;border-radius:8px;display:grid;gap:9px;padding:12px;text-align:left;width:100%}.mobile-card-list .mobile-card:nth-child(2n){border-left-color:#ff7a00}.mobile-card-list .mobile-card:nth-child(3n){border-left-color:#2ec4b6}.mobile-card-list .mobile-card:nth-child(4n){border-left-color:#8b5cf6}.mobile-card-button{cursor:pointer}.mobile-card-button:hover{border-color:var(--brand-blue);box-shadow:0 10px 24px #0a93e81a}.mobile-card-title{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.mobile-card-title div{display:grid;gap:3px;min-width:0}.mobile-card-title strong{line-height:1.25}.mobile-card-title em,.status-badge{background:#fff0d9;border-radius:999px;color:#b45309;flex:0 0 auto;font-size:11px;font-style:normal;font-weight:900;padding:5px 8px;text-transform:capitalize}.mobile-card p{color:#4f5f70;font-size:13px;line-height:1.45;margin:0}.books-library-hero{border-top-color:#2ec4b6}.books-library-summary{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.books-library-summary div{background:#f5fbff;border:1px solid #cfe8f7;border-radius:8px;display:grid;gap:4px;min-width:0;padding:10px}.books-library-summary span{color:#667586;font-size:11px;font-weight:900;text-transform:uppercase}.books-library-summary strong{color:#26313b;overflow-wrap:anywhere}.mobile-card-action{align-items:center;display:flex;justify-content:flex-end}.mobile-card-action a,.mobile-text-button{background:#e8f5ff;border:1px solid #bde3ff;border-radius:7px;color:#0874bb;font-size:13px;font-weight:900;padding:8px 10px;text-decoration:none}.mobile-text-button.danger{color:#be123c}.student-photo{border:3px solid #ffffff;border-radius:8px;box-shadow:0 10px 24px #202c391f;display:block;height:86px;object-fit:cover;width:86px}.student-photo.large{height:104px;width:104px}.student-photo.placeholder{align-items:center;background:#0a93e8;color:#fff;display:flex;font-size:32px;font-weight:900;justify-content:center}.photo-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:6px}.photo-actions .mobile-text-button{cursor:pointer}.photo-actions .error-message{flex:1 0 100%;text-align:left}.student-profile-tools{align-items:center;display:grid;gap:16px;grid-template-columns:1fr auto}.student-profile-tools h3,.student-profile-tools p{margin:0}.student-profile-tools p{color:#667586;font-size:13px;margin-top:4px}.id-card-button{margin-top:14px}.student-qr{align-items:center;background:#fff;border:1px solid #dbe3ec;border-radius:8px;display:flex;justify-content:center;overflow:hidden;padding:7px}.student-qr img{display:block;height:100%;object-fit:contain;width:100%}.student-qr span{color:#667586;font-weight:900}.id-back-button{justify-self:start}.id-card-stage{background:#fff7e8;border:1px solid #dbe3ec;border-radius:8px;padding:18px}.student-id-card{background:#fff;border:1px solid #cfd9e3;border-radius:8px;box-shadow:0 18px 48px #202c3929;display:grid;gap:16px;margin:0 auto;max-width:380px;overflow:hidden;padding:16px;position:relative}.student-id-card:before{background:#0a93e8;content:"";height:7px;left:0;position:absolute;right:0;top:0}.id-card-top{align-items:center;display:flex;gap:10px;justify-content:space-between;padding-top:6px}.id-card-top .brand-logo.compact{border:0;height:36px;padding:0;width:128px}.id-card-top span{color:var(--brand-gray);font-size:12px;font-weight:900;text-transform:uppercase}.id-card-main{align-items:center;display:flex;gap:14px}.id-card-main h3{font-size:22px;line-height:1.15;margin:0}.id-card-main p{color:var(--brand-blue);font-weight:900;margin:5px 0 0}.id-card-details{background:#e8f5ff;border:1px solid #bde3ff;border-radius:8px;display:grid;gap:9px;padding:12px}.id-card-details div,.id-card-bottom{align-items:center;display:flex;gap:12px;justify-content:space-between}.id-card-details span,.id-card-bottom span,.id-card-bottom small{color:#667586;font-size:12px}.id-card-details strong{color:#26313b;text-align:right}.id-card-bottom{align-items:flex-end}.id-card-bottom div{display:grid;gap:4px;justify-items:end;text-align:right}.id-card-bottom strong{color:#0874bb;text-transform:capitalize}.mobile-empty,.mobile-loading{align-items:center;color:#667586;display:flex;justify-content:center;min-height:76px;text-align:center}.student-ad-slot{display:grid;gap:10px}.student-ad-card{background:#fff;border:1px solid #dbe3ec;border-top:5px solid #2ec4b6;border-radius:8px;box-shadow:0 12px 28px #202c3914;display:grid;gap:10px;overflow:hidden;position:relative}.student-ad-card img,.student-ad-card video{background:#edf3f6;display:block;max-height:220px;object-fit:cover;width:100%}.student-ad-card.banner.has-media{grid-template-columns:112px 1fr;min-height:104px}.student-ad-card.banner.has-media img,.student-ad-card.banner.has-media video{height:100%;max-height:none}.student-ad-body{display:grid;gap:4px;padding:12px}.student-ad-card.banner.has-media .student-ad-body{padding:12px 40px 12px 0}.student-ad-card.banner:not(.has-media) .student-ad-body{padding-right:46px}.student-ad-card.banner.has-media .student-ad-dots{grid-column:1 / -1}.student-ad-body span,.student-ad-head span{color:#0874bb;font-size:11px;font-weight:900;text-transform:uppercase}.student-ad-body strong{color:#17202a;overflow-wrap:anywhere}.student-ad-body p{color:#667586;font-size:13px;line-height:1.4;margin:0}.student-ad-close{align-items:center;background:#fffffff0;border:1px solid #dbe3ec;border-radius:999px;color:#26323f;display:inline-flex;height:30px;justify-content:center;position:absolute;right:8px;top:8px;width:30px;z-index:2}.student-ad-dots{display:flex;gap:5px;justify-content:center;padding:0 0 10px}.student-ad-dots button{background:#cbd5e1;border:0;border-radius:999px;height:7px;padding:0;width:7px}.student-ad-dots button.active{background:#ff7a00;width:18px}.student-ad-head{align-items:center;display:flex;justify-content:space-between;padding:10px 12px 0}.student-ad-head button,.student-ad-skip{background:#fff0d9;border:1px solid #ffd08a;border-radius:7px;color:#26323f;font-size:12px;font-weight:900;min-height:32px;padding:6px 10px}.student-ad-skip{justify-self:end;margin:0 12px 12px}.student-ad-skip:disabled{cursor:default;opacity:.65}.feed-page{gap:18px}.feed-overview{align-items:center;background:#fff;border:1px solid #d7e5ef;border-left:6px solid #8b5cf6;border-radius:8px;display:flex;gap:16px;justify-content:space-between;padding:18px}.feed-overview>div:first-child{display:grid;gap:4px;min-width:0}.feed-overview span,.feed-post-head small,.feed-post-meta>span:last-child,.feed-post-footer span{color:#667586;font-size:11px;font-weight:900;text-transform:uppercase}.feed-overview h3{font-size:22px;line-height:1.15;margin:0}.feed-overview p{color:#4f5f70;margin:0}.feed-overview-count{align-items:center;background:#f5fbff;border:1px solid #cfe8f7;border-radius:8px;display:grid;flex:0 0 auto;justify-items:center;min-width:74px;padding:10px}.feed-overview-count strong{color:#0874bb;font-size:26px;line-height:1}.feed-stream{display:grid;gap:16px}.feed-post-card{background:#fff;border:1px solid #dce8f0;border-top:5px solid #8b5cf6;border-radius:8px;box-shadow:0 14px 34px #202c3914;color:#17202a;display:grid;gap:0;overflow:hidden;padding:0;text-align:left;width:100%}.feed-post-card.featured{border-top-color:#0a93e8}.feed-post-card:active,.feed-post-card:hover{border-color:#9ad8ff;box-shadow:0 18px 42px #0a93e81f}.feed-card-media,.feed-card-placeholder{background:#edf3f6;display:block;height:190px;object-fit:cover;width:100%}.feed-card-placeholder{align-items:center;color:#fff;display:grid;gap:10px;justify-items:center;padding:20px;text-align:center}.feed-card-placeholder.image{background:#0a93e8}.feed-card-placeholder.video,.feed-card-placeholder.youtube{background:#26313b}.feed-card-placeholder.file{background:#ff7a00}.feed-card-placeholder.poll{background:#2ec4b6}.feed-card-placeholder span{font-size:13px;font-weight:900;overflow-wrap:anywhere}.feed-post-content{display:grid;gap:10px;padding:16px}.feed-post-meta,.feed-post-footer{align-items:center;display:flex;gap:10px;justify-content:space-between}.feed-type-badge{align-items:center;background:#f5fbff;border:1px solid #cfe8f7;border-radius:999px;color:#0874bb;display:inline-flex;gap:6px;min-width:0;padding:5px 9px}.feed-type-badge span{color:inherit;font-size:11px;font-weight:900;text-transform:uppercase}.feed-type-badge.poll{background:#e0fbf7;border-color:#9ae6dd;color:#0f766e}.feed-type-badge.file{background:#fff7e8;border-color:#ffd08a;color:#b45309}.feed-type-badge.video,.feed-type-badge.youtube{background:#eef2ff;border-color:#c7d2fe;color:#4338ca}.feed-post-card strong{font-size:18px;line-height:1.25;overflow-wrap:anywhere}.feed-post-card p,.feed-detail-page p{color:#4f5f70;font-size:13px;line-height:1.55;margin:0}.feed-post-footer{border-top:1px solid #e7edf3;padding-top:10px}.feed-post-footer em{color:#0874bb;font-size:12px;font-style:normal;font-weight:900}.feed-media{background:#edf3f6;border-radius:8px;display:block;max-height:360px;object-fit:cover;width:100%}.feed-youtube{background:#111827;border-radius:8px;overflow:hidden;position:relative;width:100%}.feed-youtube:before{content:"";display:block;padding-top:56.25%}.feed-youtube iframe{border:0;height:100%;inset:0;position:absolute;width:100%}.feed-file-link{align-items:center;background:#fff7e8;border:1px solid #ffd08a;border-radius:8px;color:#b45309;display:flex;gap:10px;padding:14px;text-decoration:none}.feed-file-link span{overflow-wrap:anywhere}.feed-detail-page{border-top-color:#8b5cf6;gap:18px;padding:16px}.feed-post-head{display:grid;gap:8px}.feed-post-head h3{font-size:24px;line-height:1.12;margin:0}.feed-detail-caption{background:#f7fafc;border:1px solid #e4ebf1;border-radius:8px;padding:12px}.feed-poll{background:#f5fbff;border:1px solid #cfe8f7;border-radius:8px;display:grid;gap:10px;padding:14px}.feed-poll strong{line-height:1.3}.feed-poll button{background:#fff;border:1px solid #dbe3ec;border-radius:8px;color:#26323f;font-weight:900;min-height:44px;padding:10px 12px;text-align:left}.feed-poll button.active{background:#e0fbf7;border-color:#2ec4b6;color:#0f766e}.mobile-form{display:grid;gap:12px}.mobile-action-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-action-grid .primary-button,.mobile-action-grid .ghost-button,.mobile-full-action{justify-content:center;min-width:0;width:100%}.class-card-actions,.leave-review-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;width:100%}.mobile-form label{font-size:12px}.mobile-form .wizard-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-form .wizard-step{display:grid;font-size:12px;gap:5px;min-height:54px;padding:7px 5px}.mobile-form .wizard-screen,.mobile-form .wizard-summary,.mobile-form .wizard-choice-grid{grid-template-columns:1fr}.mobile-form .wizard-choice{min-height:66px}.mobile-form .wizard-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-form .wizard-nav .primary-button:only-child{grid-column:1 / -1}.mobile-submit{width:100%}.mobile-profile-card{align-items:center;background:#fff7e8;border:1px solid #ffd08a;border-radius:8px;display:grid;gap:7px;justify-items:center;padding:12px 0 16px;text-align:center}.mobile-profile-card h3{margin:6px 0 0}.mobile-profile-card span{color:#667586;font-size:13px}.teacher-settings-page{padding-bottom:12px}.teacher-settings-head{display:grid;gap:14px}.teacher-settings-head>div{align-items:center;display:flex;gap:10px}.teacher-settings-head>div>svg{background:#fff1e5;border-radius:7px;color:#b65300;height:42px;padding:10px;width:42px}.teacher-settings-head h3,.teacher-settings-head span{margin:0}.teacher-settings-head span{color:#667586;font-size:12px}.teacher-setting-subjects{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.teacher-setting-grade-list{display:grid;gap:15px;margin-top:12px}.teacher-setting-grade{display:grid;gap:8px}.teacher-setting-grade>div:first-child{align-items:center;display:flex;justify-content:space-between}.teacher-setting-grade>div:first-child span{color:#71808b;font-size:11px;font-weight:800}.teacher-setting-class-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-setting-class-grid button{align-items:center;background:#f8fafb;border:1px solid #d9e2e9;border-radius:7px;color:#26313b;display:flex;gap:7px;justify-content:space-between;min-height:58px;min-width:0;padding:9px;text-align:left}.teacher-setting-class-grid button>div{display:grid;gap:3px;min-width:0}.teacher-setting-class-grid button strong,.teacher-setting-class-grid button span{overflow-wrap:anywhere}.teacher-setting-class-grid button span{color:#71808b;font-size:10px}.teacher-setting-class-grid button.active{background:#eaf8f1;border-color:#62bd8d;color:#176b47}.teacher-setting-class-grid button.class-teacher{background:#fff3df;border-color:#e7b662;color:#8a5700;opacity:1}.teacher-settings-save{border-top:3px solid var(--brand-orange)}.mobile-detail-list{display:grid;gap:10px;padding-top:14px}.mobile-detail-list.roomy{border-top:1px solid #e7edf3;margin-top:14px;padding-top:14px}.mobile-detail-list div{align-items:center;background:#f5fbff;border:1px solid #cfe8f7;border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:10px}.mobile-detail-list strong{text-align:right}.mobile-detail-page{display:grid;gap:14px}.mobile-detail-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.mobile-detail-head span{color:#0874bb;font-size:12px;font-weight:900;text-transform:uppercase}.mobile-detail-head h3{font-size:22px;line-height:1.16;margin:4px 0 0}.mobile-detail-head em{background:#e0fbf7;border-radius:999px;color:#0f766e;font-size:11px;font-style:normal;font-weight:900;padding:5px 8px;text-transform:capitalize}.mobile-detail-actions{display:grid;gap:10px;grid-template-columns:1fr 1fr}.mobile-detail-actions .primary-button{min-width:0}.mobile-detail-edit,.detail-link{justify-self:start}.submission-panel{background:#f7fafc;border:1px solid #e4ebf1;border-radius:8px;display:grid;gap:10px;padding:12px}.submission-panel>div:first-child{display:grid;gap:3px}.submission-panel span,.submission-panel small,.submission-row span{color:#667586;font-size:12px}.submission-panel p,.submission-row p{color:#4f5f70;font-size:13px;line-height:1.45;margin:0}.submission-panel a,.submission-row a{color:var(--brand-blue);font-size:13px;font-weight:900}.submission-row{background:#fff;border:1px solid #e4ebf1;border-radius:8px;display:grid;gap:5px;padding:10px}.submission-row .mobile-text-button{align-items:center;display:inline-flex;gap:6px;justify-self:start}.ai-answer-panel{background:#f7fafc;border:1px solid #dbe3ec;border-radius:8px;color:#334155;font-size:13px;line-height:1.55;margin-top:12px;padding:12px;white-space:pre-wrap}.ai-answer-panel.compact{margin-top:4px;padding:10px}.attendance-check-table{border:1px solid #e4ebf1;border-radius:8px;overflow:hidden}.attendance-check-row{align-items:center;background:#fff;border-top:1px solid #e4ebf1;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 72px 68px;min-height:58px;padding:10px}.attendance-check-row:first-child{border-top:0}.attendance-check-row.head{background:#edf3f6;color:#667586;font-size:11px;font-weight:900;min-height:38px;text-transform:uppercase}.attendance-check-row>div{display:grid;gap:2px;min-width:0}.attendance-check-row span{color:#667586;font-size:12px}.attendance-check-row strong{overflow-wrap:anywhere}.attendance-tick{align-items:center;display:flex;justify-content:center}.attendance-tick input{accent-color:var(--brand-blue);height:22px;width:22px}.attendance-tick.absent input{accent-color:#be123c}.record-view-switch{background:#edf2f6;border:1px solid #d8e1e8;border-radius:7px;display:inline-grid;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr));justify-self:start;margin-bottom:16px;padding:4px}.record-view-switch button{align-items:center;background:transparent;border:0;border-radius:5px;color:#5c6974;display:inline-flex;font-weight:800;gap:7px;justify-content:center;min-height:36px;padding:8px 13px}.record-view-switch button.active{background:#fff;color:var(--brand-blue-dark);box-shadow:0 2px 8px #26313b1a}.weekly-timetable-shell{display:grid;gap:12px;min-width:0}.weekly-timetable-heading{align-items:end;display:flex;justify-content:space-between}.weekly-timetable-heading>div{display:grid;gap:2px}.weekly-timetable-heading span,.weekly-timetable-heading small{color:#697782;font-size:11px;font-weight:800}.weekly-timetable-heading strong{color:#26313b;font-size:17px}.weekly-timetable-wrap{border:1px solid #dce4ea;border-radius:8px;max-width:100%;overflow:auto}table.weekly-timetable{min-width:1180px;table-layout:fixed}.weekly-timetable th,.weekly-timetable td{border-bottom:1px solid #dfe6ec;border-right:1px solid #e4eaf0;padding:8px;vertical-align:top}.weekly-timetable thead th{background:#eef4f7;height:58px;text-align:center}.weekly-timetable thead th strong,.weekly-timetable thead th span{display:block}.weekly-timetable thead th span{color:#6b7882;font-size:10px;margin-top:3px;text-transform:none}.weekly-timetable th:first-child{background:#f7fafc;left:0;position:sticky;width:112px;z-index:2}.weekly-timetable thead th:first-child{background:#e7eff4;z-index:3}.weekly-timetable td{background:#fff;height:94px;width:150px}.weekly-slot{background:var(--subject-bg);border:1px solid var(--subject-border);border-radius:6px;color:var(--subject-ink);display:grid;gap:3px;min-height:74px;padding:8px;text-align:left;width:100%}.weekly-slot:hover{border-color:var(--subject-ink)}.weekly-slot strong,.weekly-slot span,.weekly-slot small{overflow-wrap:anywhere}.weekly-slot span,.weekly-slot small{color:color-mix(in srgb,var(--subject-ink) 74%,#52606b);font-size:10px}.weekly-empty-slot{color:#a2adb5;display:block;padding-top:24px;text-align:center}.teacher-attendance-editor,.teacher-attendance-preview{display:grid;gap:12px;grid-column:1 / -1;min-width:0}.teacher-attendance-summary{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-attendance-summary>div{background:#f5f8fa;border-left:3px solid var(--brand-blue);border-radius:6px;display:grid;gap:3px;padding:11px 12px}.teacher-attendance-summary>div:nth-child(2){border-left-color:#159565}.teacher-attendance-summary>div:nth-child(3){border-left-color:#c0364d}.teacher-attendance-summary span{color:#697782;font-size:11px;font-weight:800}.teacher-attendance-summary strong{color:#26313b;font-size:20px}.teacher-attendance-wrap,.teacher-attendance-preview{border:1px solid #dce4ea;border-radius:8px;overflow-x:auto}.teacher-attendance-row{align-items:center;background:#fff;border-top:1px solid #e3e9ee;display:grid;gap:10px;grid-template-columns:minmax(210px,1fr) 68px 68px 124px 124px;min-width:680px;padding:10px 12px}.teacher-attendance-row:first-child{border-top:0}.teacher-attendance-row.head{background:#edf3f6;color:#667586;font-size:11px;font-weight:900;min-height:42px;text-transform:uppercase}.teacher-attendance-row>div{display:grid;gap:2px;min-width:0}.teacher-attendance-row>div span,.teacher-attendance-row.preview>span{color:#697782;font-size:11px}.teacher-attendance-row strong{overflow-wrap:anywhere}.teacher-time-field{display:block;min-width:0}.teacher-time-field>span{display:none}.teacher-time-field input[type=time]{border:1px solid #ccd6df;border-radius:6px;min-width:0;padding:8px;width:100%}.teacher-time-field input[type=time]:disabled{background:#f1f3f5;color:#929ca4}.teacher-attendance-row.preview{grid-template-columns:minmax(210px,1fr) 110px 124px 124px;min-width:600px}.attendance-status{border-radius:5px;font-size:11px;font-weight:900;justify-self:start;padding:5px 8px;text-transform:capitalize}.attendance-status.present{background:#dcf5e9;color:#146b47}.attendance-status.absent{background:#ffe3e7;color:#a51f3a}.marksheet-table,.mark-entry-table{border:1px solid #e4ebf1;border-radius:8px;overflow:hidden}.marksheet-table{grid-column:1 / -1;margin-top:14px}.marksheet-row,.mark-entry-row{align-items:center;background:#fff;border-top:1px solid #e4ebf1;display:grid;gap:10px;min-height:54px;padding:10px}.marksheet-row{grid-template-columns:minmax(0,1fr) 96px 64px}.mark-entry-row{grid-template-columns:minmax(0,1fr) 92px}.marksheet-row:first-child,.mark-entry-row:first-child{border-top:0}.marksheet-row.head,.mark-entry-row.head{background:#edf3f6;color:#667586;font-size:11px;font-weight:900;min-height:38px;text-transform:uppercase}.marksheet-row>div,.mark-entry-row>div{display:grid;gap:2px;min-width:0}.marksheet-row span,.mark-entry-row span,.mark-remarks{color:#667586;font-size:12px}.marksheet-row strong,.mark-entry-row strong{overflow-wrap:anywhere}.mark-entry-row input{min-width:0}.mark-remarks{grid-column:1 / -1}.easy-marks-form{gap:14px}.easy-marks-panel{background:#f7fafc;border:1px solid #e4ebf1;border-radius:8px;display:grid;gap:12px;padding:12px}.easy-marks-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr 88px}.easy-choice-group{display:grid;gap:7px}.easy-choice-group>span,.easy-marks-count span,.easy-mark-card span{color:#667586;font-size:12px}.easy-choice-group>div{display:grid;gap:7px;grid-template-columns:repeat(3,minmax(0,1fr))}.easy-choice-group button{background:#fff;border:1px solid #dbe3ec;border-radius:7px;color:#26323f;font-size:12px;font-weight:900;min-height:38px;padding:7px 8px}.easy-choice-group button.active{background:var(--brand-blue);border-color:var(--brand-blue);color:#fff}.easy-choice-group button:disabled{cursor:default;opacity:1}.easy-marks-panel.read-only{background:#fff}.easy-readonly-field{background:#f7fafc;border:1px solid #e4ebf1;border-radius:8px;display:grid;gap:4px;min-width:0;padding:10px}.easy-readonly-field span{color:#667586;font-size:11px;font-weight:900;text-transform:uppercase}.easy-readonly-field strong{color:#26313b;overflow-wrap:anywhere}.easy-marks-count{align-items:center;display:flex;justify-content:space-between}.easy-mark-list{display:grid;gap:10px}.easy-mark-card{background:#fff;border:1px solid #e4ebf1;border-radius:8px;display:grid;gap:10px;padding:12px}.easy-mark-main{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) minmax(112px,132px)}.easy-mark-main>div{display:grid;gap:3px;min-width:0}.easy-mark-main strong{overflow-wrap:anywhere}.easy-score-input{align-items:center;background:#f7fafc;border:1px solid #dbe3ec;border-radius:8px;display:flex;gap:5px;padding:5px 8px}.easy-score-input input{background:transparent;border:0;box-shadow:none;color:var(--brand-blue);font-size:22px;font-weight:900;min-height:36px;padding:0;text-align:center}.easy-score-input span{flex:0 0 auto;font-weight:900}.easy-remark-input{background:#f7fafc}.mobile-bottom-tabs{background:#fff;border-top:4px solid #ffb703;bottom:0;box-shadow:0 -14px 34px #202c3914;display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));left:50%;max-width:520px;padding:8px 8px max(8px,env(safe-area-inset-bottom));position:fixed;transform:translate(-50%);width:100%;z-index:8}.mobile-bottom-tabs button{align-items:center;background:transparent;border:0;border-radius:8px;color:#667586;display:grid;gap:3px;justify-items:center;min-height:58px;padding:7px 2px}.mobile-bottom-tabs button.active{background:#e8f5ff;color:#0874bb}.mobile-bottom-tabs span{font-size:11px;font-weight:800}.mobile-scrim{background:#1018206b;border:0;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .16s ease;z-index:20}.mobile-scrim.open{opacity:1;pointer-events:auto}.mobile-drawer{background:#fff;border-right:1px solid #dbe3ec;box-shadow:20px 0 56px #10182033;display:flex;flex-direction:column;gap:18px;height:100vh;left:0;max-width:330px;padding:18px;position:fixed;top:0;transform:translate(-106%);transition:transform .18s ease;width:86vw;z-index:21}.mobile-drawer.open{transform:translate(0)}.mobile-drawer-head{align-items:center;display:grid;gap:10px;grid-template-columns:48px 1fr 40px}.mobile-drawer-head div:nth-child(2){display:grid;gap:2px}.mobile-drawer-nav{display:grid;gap:8px}.mobile-drawer-nav button,.mobile-logout{align-items:center;background:#f5fbff;border:1px solid #cfe8f7;border-radius:8px;color:#26323f;display:flex;gap:11px;min-height:44px;padding:10px 12px;text-align:left}.mobile-drawer-nav button.active{background:#fff0d9;border-color:#ffd08a;color:#b45309}.mobile-logout{color:#be123c;justify-content:center;margin-top:auto}@media(max-width:1100px){.stat-grid,.record-form,.activity-grid,.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.login-shell{align-items:flex-start;padding:18px}.entry-choice-layout{gap:22px;grid-template-columns:1fr}.entry-hero{justify-items:center;text-align:center}.entry-logo-stage{justify-content:center;min-height:auto}.entry-hero h1{font-size:clamp(36px,12vw,54px)}.entry-hero p{font-size:16px}.role-picker{padding:14px}.role-picker-head{align-items:flex-start;display:grid;gap:3px}.who-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.who-card{min-height:190px}.app-shell{display:block}.sidebar{box-shadow:20px 0 50px #10182042;height:100vh;left:0;max-width:300px;position:fixed;top:0;transform:translate(-105%);transition:transform .16s ease;width:86vw;z-index:20}.sidebar.open{transform:translate(0)}.mobile-only{display:inline-flex}.profile-pill{align-items:flex-end;display:grid;gap:2px}.content-shell,.topbar{padding-left:16px;padding-right:16px}.panel-grid,.stat-grid,.analytics-grid,.csv-import-summary,.record-form,.activity-grid{grid-template-columns:1fr}.panel-heading{display:grid}.table-actions{align-items:stretch;display:grid;grid-template-columns:1fr}.student-csv-actions{display:grid;grid-template-columns:1fr}.student-csv-actions small{text-align:left}.password-generator-row{grid-template-columns:1fr}.search-box{max-width:none}}@media(max-width:520px){.login-shell{padding:14px}.login-panel,.entry-panel.focused{padding:20px}.brand-logo{height:88px;width:min(100%,360px)}.brand-logo.compact{height:36px;width:128px}.mobile-title-logo .brand-logo.compact{height:28px;width:92px}.entry-hero{gap:8px}.entry-hero h1{font-size:34px}.role-picker{box-shadow:0 16px 44px #202c391a}.pwa-install-card{bottom:12px;gap:10px;grid-template-columns:44px minmax(0,1fr);left:12px;max-width:none;padding:13px;right:12px;width:auto}.pwa-install-logo{height:44px;width:44px}.pwa-install-logo img{height:38px;width:38px}.pwa-install-copy strong{font-size:16px}.pwa-install-copy p,.pwa-install-copy small{font-size:12px}.pwa-install-actions{display:grid;grid-template-columns:1fr auto}.who-grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.who-card{display:flex;gap:8px;min-height:178px;padding:12px}.who-icon{height:42px;width:42px}.who-copy{gap:3px}.who-copy small{font-size:10px}.who-card strong{font-size:17px;line-height:1.08}.who-card span{display:-webkit-box;font-size:12px;line-height:1.32;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.who-card em{font-size:11px;margin-top:0;padding:6px 8px}.portal-grid{grid-template-columns:1fr}.topbar h2{font-size:19px}.welcome-band{align-items:flex-start;gap:14px}.donut-layout{grid-template-columns:116px minmax(0,1fr)}.donut-chart{width:116px}.student-profile-tools{grid-template-columns:1fr}.student-profile-tools .student-qr{justify-self:center}.books-library-summary{grid-template-columns:1fr}.id-card-main,.id-card-bottom{align-items:center}.mobile-action-grid,.panel .wizard-steps,.panel .wizard-screen,.panel .wizard-summary,.panel .wizard-choice-grid{grid-template-columns:1fr}.panel .wizard-step{justify-content:flex-start}.panel .wizard-nav{display:grid;grid-template-columns:1fr}.easy-marks-grid{grid-template-columns:1fr 1fr}.easy-marks-grid label:last-child{grid-column:1 / -1}}@media(max-width:820px){.teacher-attendance-wrap{border:0;overflow:visible}.teacher-attendance-row:not(.preview){border:1px solid #dce4ea;border-radius:7px;gap:10px;grid-template-columns:minmax(0,1fr) 58px 58px;margin-bottom:8px;min-width:0}.teacher-attendance-row.head{border:0;border-radius:7px;margin-bottom:8px}.teacher-attendance-row.head span:nth-child(4),.teacher-attendance-row.head span:nth-child(5){display:none}.teacher-time-field{display:grid;gap:4px;grid-row:2}.teacher-time-field>span{color:#697782;display:block;font-size:10px;font-weight:800}.teacher-time-field.check-in{grid-column:1 / 2}.teacher-time-field.check-out{grid-column:2 / 4}}@media(max-width:520px){.record-view-switch{width:100%}.teacher-attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
