: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}*{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}.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}.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))}.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}.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{grid-template-columns:112px 1fr;min-height:104px}.student-ad-card.banner img,.student-ad-card.banner video{height:100%;max-height:none}.student-ad-body{display:grid;gap:4px;padding:12px}.student-ad-card.banner .student-ad-body{padding:12px 40px 12px 0}.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}.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}.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{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,.record-form,.activity-grid{grid-template-columns:1fr}.panel-heading{display:grid}.table-actions{align-items:stretch;display:grid;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}.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}}
