@font-face{font-family:'Thmanyah Sans';src:url('/fonts/Thmanyahsans12_Regular-s.p.0c6166f3.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Thmanyah Sans';src:url('/fonts/Thmanyahsans12_Medium-s.p.8706264b.woff2') format('woff2');font-weight:500 700;font-style:normal;font-display:swap}
@font-face{font-family:'Thmanyah Serif Display';src:url('/fonts/Thmanyahserifdisplay12_Medium-s.p.e66c2f75.woff2') format('woff2');font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:'Thmanyah Serif Display';src:url('/fonts/Thmanyahserifdisplay12_Bold-s.p.dba4061d.woff2') format('woff2');font-weight:700 900;font-style:normal;font-display:swap}
@font-face{font-family:'Thmanyah Serif Text';src:url('/fonts/Thmanyahseriftext12_Regular-s.p.27b44745.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Thmanyah Serif Text';src:url('/fonts/Thmanyahseriftext12_Bold-s.p.a6decd79.woff2') format('woff2');font-weight:700 900;font-style:normal;font-display:swap}
:root{--ink:#17343b;--muted:#71858a;--line:#e6eeee;--bg:#f4f8f8;--white:#fff;--teal:#087f78;--teal2:#16a596;--deep:#0b3942;--mint:#e6f7f3;--shadow:0 12px 32px rgba(20,55,60,.055)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Cairo',Tahoma,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.hidden{display:none!important}.login-wrap{min-height:100vh;background:radial-gradient(circle at 15% 15%,#c9f2e8 0,transparent 25%),linear-gradient(135deg,#eff8f5,#f6faf9 50%,#e5f2ef);display:grid;place-items:center;padding:24px}.login-card{width:min(1050px,100%);min-height:590px;background:#fff;border:1px solid #e0eeea;border-radius:30px;box-shadow:0 35px 90px #0c3c3c22;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.login-aside{background:linear-gradient(145deg,#083b45,#08796e);color:#fff;padding:54px 50px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-aside:before,.login-aside:after{content:'';position:absolute;border:1px solid #ffffff22;border-radius:50%;width:380px;height:380px;left:-140px;bottom:-180px}.login-aside:after{width:250px;height:250px;left:-75px;bottom:-115px}.brand{display:flex;align-items:center;gap:13px;z-index:1}.brand-mark{height:47px;width:47px;border-radius:16px;background:#ffffff1b;display:grid;place-items:center;border:1px solid #ffffff3a;font-size:24px}.brand small{display:block;color:#b7ded7;font-size:11px}.login-aside h1{font-size:31px;line-height:1.7;margin:20px 0}.login-aside p{color:#d0e9e4;line-height:2;font-size:14px;max-width:390px}.login-art{font-size:72px;opacity:.92;filter:drop-shadow(0 20px 20px #001e2933)}.school-name{color:#a9d2ca;font-size:10px;z-index:1}.login-form{padding:65px 58px;display:flex;flex-direction:column;justify-content:center}.login-form h2{font-size:26px;margin:0 0 6px}.login-form>p{color:var(--muted);font-size:13px;margin:0 0 30px}.field{display:grid;gap:7px;margin:0 0 17px}.field label{font-size:12px;font-weight:700;color:#456169}.field input,.field select,.field textarea,.search-input{width:100%;border:1px solid #dce8e8;border-radius:12px;padding:12px 14px;background:#fbfdfd;outline:none;transition:.2s;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus{border-color:#69bbb0;box-shadow:0 0 0 3px #d9f2ed}.primary{background:linear-gradient(100deg,var(--teal),var(--teal2));color:white;border-radius:12px;padding:12px 17px;font-weight:700;box-shadow:0 7px 14px #087f7820}.primary:hover{filter:brightness(1.04);transform:translateY(-1px)}.secondary{border:1px solid var(--line);background:#fff;color:#35555d;border-radius:11px;padding:10px 14px;font-weight:700}.secondary:hover{background:#f5f9f9}.quiet{background:transparent;color:#537077;padding:8px 10px;border-radius:9px}.quiet:hover{background:#f1f7f6}.login-help{padding:12px 14px;background:#f2f8f6;border:1px solid #e4efec;color:#577077;border-radius:12px;font-size:11px;line-height:1.9;margin-top:18px}.login-error{color:#be4b3d;font-size:12px;min-height:24px;padding-top:5px}.sidebar{position:fixed;right:0;top:0;bottom:0;width:256px;background:var(--deep);color:white;padding:24px 15px;display:flex;flex-direction:column;z-index:5}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:4px 10px 23px;border-bottom:1px solid #ffffff20}.sidebar-brand .brand-mark{width:43px;height:43px;background:#ffffff16;border-radius:14px}.sidebar-brand b{font-size:12px;line-height:1.6}.sidebar-brand small{display:block;color:#a7ccc6;font-size:10px;font-weight:400}.side-label{font-size:10px;color:#83aaa7;padding:23px 12px 9px}.nav{display:grid;gap:5px}.nav button{width:100%;display:flex;align-items:center;gap:12px;background:transparent;color:#c8ddda;padding:11px 13px;border-radius:11px;text-align:right;font-size:12px;font-weight:600;transition:.16s}.nav button .ico{width:21px;text-align:center;font-size:17px}.nav button:hover{background:#ffffff10;color:white}.nav button.active{background:#ffffff1b;color:white;box-shadow:inset -3px 0 #55d2bd}.sidebar-bottom{margin-top:auto}.support-card{border:1px solid #ffffff1b;background:#ffffff0d;padding:13px;border-radius:14px;color:#d3e5e2;font-size:10px;line-height:1.8}.support-card b{color:#fff;font-size:11px}.support-card span{color:#8ac8bc}.main{margin-right:256px;padding:0 31px 40px;max-width:1700px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:27px}.crumb{font-size:11px;color:#839397}.crumb span{margin:0 7px;color:#b5c0c1}.crumb b{color:#34535b}.top-actions{display:flex;align-items:center;gap:15px}.school-pill{padding:7px 11px;background:#fff;border:1px solid var(--line);border-radius:10px;font-size:11px;color:#48656b}.school-pill span{color:#94aaa8;margin:0 5px}.bell{width:38px;height:38px;border-radius:12px;background:white;border:1px solid var(--line);color:#547078;position:relative}.bell:after{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:#e29b45;top:8px;left:9px}.user-chip{display:flex;align-items:center;gap:9px}.avatar{width:37px;height:37px;border-radius:13px;background:#d8f0e8;color:#127668;font-weight:800;display:grid;place-items:center;font-size:13px}.user-chip b{font-size:11px;display:block}.user-chip small{font-size:10px;color:#84969a}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:0 0 20px}.page-head h1{font-size:23px;margin:0 0 3px;letter-spacing:-.4px}.page-head p{margin:0;color:var(--muted);font-size:12px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.hero{background:linear-gradient(100deg,#0d5960,#128478);color:#fff;border-radius:20px;padding:23px 25px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);position:relative;overflow:hidden;margin-bottom:18px}.hero:after{content:'';position:absolute;left:36%;font-size:130px;opacity:.055;top:-35px}.hero h2{margin:0 0 5px;font-size:18px}.hero p{margin:0;color:#c6e7e0;font-size:11px}.hero-right{display:flex;gap:10px;align-items:center}.hero-tag{background:#ffffff1c;border:1px solid #ffffff30;border-radius:10px;padding:8px 12px;font-size:11px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:17px}.stat,.card{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.stat{padding:16px 17px;display:flex;justify-content:space-between;align-items:center}.stat small{font-size:10px;color:#849599}.stat strong{display:block;font-size:22px;margin-top:5px;line-height:1.2}.stat-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-size:19px;background:var(--mint);color:#118277}.stat:nth-child(2) .stat-icon{background:#edf2ff;color:#6476b8}.stat:nth-child(3) .stat-icon{background:#fff4dc;color:#bf8730}.stat:nth-child(4) .stat-icon{background:#f1edff;color:#8870bd}.grid-two{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;margin-bottom:17px}.card{padding:18px 19px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px}.card-head h3{font-size:13px;margin:0}.card-head p{font-size:10px;color:var(--muted);margin:3px 0 0}.chart-area{height:205px;position:relative;display:flex;align-items:center;justify-content:center;border-radius:13px;background:linear-gradient(180deg,#f8fcfb,#fff);overflow:hidden}.chart-area svg{width:100%;height:100%}.chart-empty{color:#91a2a5;font-size:11px;text-align:center}.chart-empty span{font-size:30px;display:block;margin-bottom:8px}.progress-ring{width:136px;height:136px;border-radius:50%;background:conic-gradient(var(--teal2) var(--angle),#e9f1ef 0deg);display:grid;place-items:center;position:relative}.progress-ring:before{content:'';position:absolute;inset:11px;background:white;border-radius:50%}.ring-inner{z-index:1;text-align:center}.ring-inner strong{font-size:25px;display:block}.ring-inner small{font-size:10px;color:var(--muted)}.ring-wrap{display:grid;place-items:center;gap:9px}.ring-note{font-size:10px;color:#71858a}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{font-size:10px;color:#829397;text-align:right;padding:11px 10px;background:#f8fbfa;font-weight:700;border-bottom:1px solid var(--line)}td{padding:11px 10px;font-size:11px;border-bottom:1px solid #edf2f1;color:#38545a}tbody tr:hover{background:#fbfdfc}.student-name{display:flex;align-items:center;gap:9px}.mini-avatar{height:30px;width:30px;border-radius:10px;background:#eaf5f2;color:#178175;display:grid;place-items:center;font-size:10px;font-weight:800;flex:none}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:20px;font-size:9px;font-weight:700}.badge.good{color:#16816e;background:#e8f7ee}.badge.mid{color:#a87823;background:#fff5dd}.badge.low{color:#bd5b4b;background:#fff0ed}.badge.neutral{color:#62777b;background:#eff4f3}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}.search-input{width:min(280px,100%);padding:9px 13px;font-size:11px}.select{border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:#fff;color:#456169;font-size:11px;outline:none}.empty{padding:32px;text-align:center;color:#87989b;font-size:12px}.empty span{display:block;font-size:27px;margin-bottom:9px}.grade-cell{min-width:68px;text-align:center!important}.score-link{background:#f1f8f6;color:#287f74;border:1px dashed #b8d9d2;border-radius:8px;padding:4px 7px;font-size:10px}.score-link:hover{background:#dff3ee}.modal-back{position:fixed;inset:0;background:#102e34a6;z-index:20;display:grid;place-items:center;padding:18px}.modal{background:white;border-radius:19px;width:min(560px,100%);box-shadow:0 25px 80px #09282a44;max-height:90vh;overflow:auto}.modal-head{padding:19px 21px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0;font-size:15px}.modal-body{padding:21px}.modal-footer{padding:0 21px 21px;display:flex;gap:9px;justify-content:flex-start}.close{width:30px;height:30px;border-radius:9px;background:#f3f7f6;color:#567075}.notice{border-radius:12px;padding:11px 13px;font-size:11px;background:#eef8f4;color:#397368;line-height:1.8;margin:10px 0}.notice.warn{background:#fff7e5;color:#956e2e}.schedule-table td,.schedule-table th{text-align:center;min-width:102px;white-space:normal}.schedule-table td:first-child,.schedule-table th:first-child{text-align:right;min-width:86px}.subject{background:#edf7f4;border-radius:8px;padding:6px 7px;color:#286c64;font-weight:700}.sub-empty{color:#c6d0d0}.message{padding:13px 0;border-bottom:1px solid var(--line)}.message:last-child{border:0}.message b{font-size:11px}.message p{font-size:11px;color:#526e74;margin:5px 0;line-height:1.8}.message small{font-size:9px;color:#9aabad}.file-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);gap:12px}.file-left{display:flex;gap:10px;align-items:center}.pdf-ico{height:37px;width:37px;border-radius:11px;background:#fff0ed;color:#ce6552;display:grid;place-items:center;font-size:12px}.file-row b{font-size:11px;display:block}.file-row small{font-size:9px;color:#849599}.account-role{font-size:9px;background:#eef4f3;border-radius:7px;padding:4px 8px;color:#547177}.toast{position:fixed;bottom:20px;left:20px;z-index:40;background:#173f44;color:white;border-radius:12px;padding:12px 17px;font-size:11px;box-shadow:0 12px 30px #0c343555;animation:slide .2s ease}@keyframes slide{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.footer-note{font-size:9px;color:#94a4a6;margin-top:14px;line-height:1.8}
@media(max-width:1100px){.sidebar{width:220px}.main{margin-right:220px;padding:0 22px 34px}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.login-card{grid-template-columns:1fr;max-width:470px;min-height:0}.login-aside{padding:26px 25px;min-height:235px}.login-aside h1{font-size:23px;margin:13px 0 0}.login-aside p{font-size:11px}.login-art{position:absolute;left:25px;bottom:3px;font-size:52px}.login-form{padding:32px 25px}.sidebar{width:74px;padding:15px 8px}.sidebar-brand{justify-content:center;padding:4px 0 16px}.sidebar-brand>div:last-child,.side-label,.nav button span:not(.ico),.support-card{display:none}.nav{margin-top:17px}.nav button{justify-content:center;padding:12px 6px}.nav button .ico{font-size:19px}.main{margin-right:74px;padding:0 13px 30px}.topbar{height:64px;margin-bottom:20px}.school-pill{display:none}.user-chip b{display:none}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:19px}.hero{padding:18px;align-items:flex-start;flex-direction:column;gap:13px}.hero h2{font-size:15px}.stats{gap:9px}.stat{padding:12px}.stat strong{font-size:19px}.stat-icon{width:34px;height:34px}.grid-two{grid-template-columns:1fr}.card{padding:14px}.table-wrap{margin:0 -3px}.actions .primary,.actions .secondary{font-size:10px;padding:9px}.footer-note{line-height:1.8}}
.upload-label{cursor:pointer}.schedule-table td,.schedule-table th{text-align:center;min-width:102px;white-space:normal}.schedule-table td:first-child,.schedule-table th:first-child{text-align:right;min-width:86px}.subject{background:#edf7f4;border-radius:8px;padding:6px 7px;color:#286c64;font-weight:700}.sub-empty{color:#c6d0d0}.message{padding:13px 0;border-bottom:1px solid var(--line)}.message:last-child{border:0}.message b{font-size:11px}.message p{font-size:11px;color:#526e74;margin:5px 0;line-height:1.8}.message small{font-size:9px;color:#9aabad}.file-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);gap:12px}.file-left{display:flex;gap:10px;align-items:center}.pdf-ico{height:37px;width:37px;border-radius:11px;background:#fff0ed;color:#ce6552;display:grid;place-items:center;font-size:12px}.file-row b{font-size:11px;display:block}.file-row small{font-size:9px;color:#849599}.account-role{font-size:9px;background:#eef4f3;border-radius:7px;padding:4px 8px;color:#547177}
/* School identity, motion and touch refinements */
body{font-family:'Thmanyah Sans','Cairo',Tahoma,Arial,sans-serif}h1,h2,h3,.login-aside h1{font-family:'Thmanyah Serif Display','Thmanyah Serif Text','Cairo',serif}.brand-mark{overflow:hidden;border-radius:50%;background:#fff;box-shadow:0 7px 24px #071f2740}.brand-mark img{width:100%;height:100%;object-fit:cover}.login-aside{isolation:isolate}.login-aside:before{animation:orbitDrift 14s ease-in-out infinite alternate}.login-aside:after{animation:orbitDrift 10s ease-in-out infinite alternate-reverse}.login-card{transform-style:preserve-3d;animation:loginEnter .8s cubic-bezier(.2,.8,.2,1) both}.login-art{position:relative;height:185px;display:flex;align-items:center;justify-content:center}.logo-orbit{width:150px;height:150px;border-radius:50%;background:#fff;padding:5px;box-shadow:0 25px 45px #001c2b55,0 0 0 1px #ffffff66;animation:logoFloat 5s ease-in-out infinite;transform-style:preserve-3d}.logo-orbit img{width:100%;height:100%;border-radius:50%;object-fit:cover}.orbit-dot{position:absolute;width:14px;height:14px;background:#f2a549;border:3px solid white;border-radius:50%;right:calc(50% - 86px);top:22px;box-shadow:0 0 20px #ffce72}.floating-badge{position:absolute;border:1px solid #ffffff40;background:#ffffff17;backdrop-filter:blur(12px);border-radius:14px;padding:8px 13px;font-size:10px;color:#fff;box-shadow:0 9px 28px #00192c38;animation:badgeBob 4s ease-in-out infinite}.badge-water{right:10%;top:14px}.badge-class{left:9%;bottom:7px;animation-delay:-1.7s}.sidebar-brand .brand-mark{width:45px;height:45px;flex:none}.hero{transform-style:preserve-3d;background:radial-gradient(circle at 12% 0%,#65cad3 0,transparent 25%),linear-gradient(112deg,#0d5960,#087f78 60%,#139b8b)}.hero:after{content:'';position:absolute;width:220px;height:220px;left:20%;top:-118px;border:1px solid #ffffff38;border-radius:50%;box-shadow:0 0 0 22px #ffffff0d,0 0 0 46px #ffffff08;animation:orbitSpin 24s linear infinite}.hero:before{content:'';position:absolute;left:25%;bottom:-24px;font-size:82px;color:#c6fff133;animation:badgeBob 5s ease-in-out infinite}.stat,.hero,.chat-shell{transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease;transform-style:preserve-3d;will-change:transform}.stat:hover{box-shadow:0 20px 40px #123a3c15}.page-head,.stats,.grid-two,.card{animation:riseIn .48s both}.stats>*:nth-child(2){animation-delay:.05s}.stats>*:nth-child(3){animation-delay:.1s}.stats>*:nth-child(4){animation-delay:.15s}.card{animation-delay:.08s}.primary,.secondary,.nav button,.score-link,.quiet{min-height:40px;transition:transform .18s ease,filter .18s ease,background .18s ease}.primary:active,.secondary:active,.nav button:active{transform:scale(.97)}.live-pill,.chat-live{display:inline-flex;align-items:center;gap:7px;color:#198b79;font-size:11px;font-weight:800}.live-pill i,.chat-live i{width:8px;height:8px;border-radius:50%;background:#22b48e;box-shadow:0 0 0 4px #22b48e1c;animation:livePulse 1.8s infinite}.chat-shell{padding:0;overflow:hidden;display:flex;flex-direction:column;height:min(70vh,680px);min-height:390px}.chat-header{height:70px;flex:none;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 18px;gap:12px;background:linear-gradient(90deg,#fff,#f8fcfb)}.chat-room-icon{width:42px;height:42px;border-radius:15px;background:linear-gradient(145deg,#d7f5ed,#e7f2ff);color:#087f78;display:grid;place-items:center;font-size:22px;box-shadow:inset 0 1px white,0 6px 12px #1e716216}.chat-header b{font-size:12px;display:block}.chat-header small{font-size:10px;color:#819397;display:block;margin-top:2px}.chat-live{margin-right:auto}.chat-feed{flex:1;overflow:auto;padding:18px 20px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;background:radial-gradient(ellipse at 0 0,#edf8f5 0,transparent 45%),#fbfdfd}.chat-row{display:flex;align-items:flex-end;gap:8px;max-width:min(78%,620px);animation:messageIn .25s both}.chat-row.mine{align-self:flex-start;flex-direction:row-reverse}.chat-avatar{width:29px;height:29px;border-radius:10px;background:#e3f2ef;color:#188277;display:grid;place-items:center;font-size:9px;font-weight:800;flex:none}.chat-row.mine .chat-avatar{background:#e5edff;color:#526eb0}.chat-bubble{padding:9px 12px;background:#fff;border:1px solid #e7eeed;border-radius:15px 15px 4px 15px;box-shadow:0 4px 12px #24444a08;min-width:130px}.chat-row.mine .chat-bubble{background:#e9f8f4;border-color:#d8eee8;border-radius:15px 15px 15px 4px}.chat-meta{display:flex;align-items:center;gap:7px}.chat-meta b{font-size:10px}.chat-meta time{color:#9aa9ab;font-size:9px;margin-right:auto}.chat-bubble p{font-size:11px;line-height:1.8;margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.chat-compose{position:relative;display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding:12px 15px;background:#fff}.chat-compose textarea{resize:none;max-height:100px;min-height:44px;flex:1;border:1px solid #dfeae8;border-radius:14px;padding:11px 13px;outline:none;font-family:inherit;font-size:12px}.chat-compose textarea:focus{border-color:#74c4b6;box-shadow:0 0 0 3px #e3f6f2}.chat-send{width:44px;height:44px;border-radius:14px;color:#fff;background:linear-gradient(140deg,#087f78,#16a596);font-size:20px;box-shadow:0 7px 15px #087f782b;transition:.18s}.chat-send:hover{transform:translateY(-2px) rotate(-5deg)}.compose-hint{position:absolute;left:73px;bottom:1px;font-size:8px;color:#9aa8a9}.chat-empty{margin:auto;display:grid;justify-items:center;gap:7px;color:#8c9c9f}.chat-empty span{font-size:35px;color:#27a997}.chat-empty b{font-size:13px;color:#49656b}.chat-empty small{font-size:10px}.profile-cursor{cursor:pointer}.school-logo-watermark{position:absolute;opacity:.08;pointer-events:none}.login-help{line-height:2}
@keyframes loginEnter{from{opacity:0;transform:translateY(16px) rotateX(2deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}@keyframes logoFloat{0%,100%{transform:translateY(0) rotateY(-8deg)}50%{transform:translateY(-9px) rotateY(8deg)}}@keyframes badgeBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes orbitDrift{from{transform:translate3d(0,0,0) rotate(0)}to{transform:translate3d(10px,-9px,0) rotate(6deg)}}@keyframes orbitSpin{to{transform:rotate(360deg)}}@keyframes riseIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes messageIn{from{opacity:0;transform:translateY(5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes livePulse{50%{box-shadow:0 0 0 7px #22b48e10}}
@media(max-width:760px){.sidebar{top:auto;right:0;bottom:0;width:100%;height:76px;padding:5px 4px calc(5px + env(safe-area-inset-bottom));background:#0b3942ee;backdrop-filter:blur(18px);border-top:1px solid #ffffff23}.sidebar-brand,.side-label,.sidebar-bottom{display:none}.nav{display:flex;align-items:stretch;justify-content:space-around;gap:2px;height:100%;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav button{min-width:57px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:5px 2px;border-radius:12px;font-size:8px;white-space:nowrap;min-height:60px}.nav button span:not(.ico){display:block!important;font-size:8px;line-height:1.35}.nav button .ico{width:auto;font-size:17px;line-height:1.15}.nav button.active{box-shadow:inset 0 -2px #55d2bd}.main{margin:0;padding:0 14px calc(98px + env(safe-area-inset-bottom));max-width:none}.topbar{position:sticky;top:0;z-index:4;height:61px;margin:0 -14px 17px;padding:0 14px;background:#f4f8f8ee;backdrop-filter:blur(14px);border-bottom:1px solid #e6eeee}.top-actions{gap:8px}.bell{width:35px;height:35px}.user-chip{gap:6px}.avatar{width:34px;height:34px}.page-head{gap:12px;margin-bottom:15px}.page-head h1{font-size:19px}.page-head p{font-size:10px;line-height:1.7}.hero{padding:18px;border-radius:18px;gap:10px}.hero-tag{font-size:9px;padding:6px 9px}.stats{gap:8px}.stat{min-height:77px}.stat small{font-size:9px}.stat strong{font-size:18px}.stat-icon{width:32px;height:32px;font-size:16px}.grid-two{grid-template-columns:1fr;gap:12px}.card{padding:14px;border-radius:15px}.chat-shell{height:calc(100dvh - 245px);min-height:330px}.chat-feed{padding:13px 11px}.chat-row{max-width:94%}.chat-compose{padding:10px}.compose-hint{display:none}.chat-compose textarea{font-size:16px;min-height:45px}.chat-send{width:45px;height:45px;flex:none}.schedule-table td,.schedule-table th{min-width:94px}.table-wrap{max-width:100%;overscroll-behavior-x:contain}.login-card{min-height:0;border-radius:23px}.login-aside{min-height:258px;padding:24px}.login-aside h1{font-size:24px}.login-aside p{font-size:11px}.login-art{height:140px}.logo-orbit{width:112px;height:112px}.floating-badge{font-size:8px;padding:6px 9px}.badge-water{right:3%}.badge-class{left:2%}.login-form{padding:27px 23px}.login-form h2{font-size:22px}.login-wrap{padding:15px}.chat-header{height:62px;padding:0 12px}.chat-header small{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.password-wrap{display:flex;align-items:stretch;position:relative}.password-wrap input{padding-left:52px!important}.password-eye{position:absolute;left:4px;top:4px;bottom:4px;width:42px;border-radius:10px;background:transparent;color:#527078;font-size:17px;touch-action:manipulation}.password-eye:hover{background:#eaf5f2;color:#087f78}.schedule-cell{width:100%;min-height:42px;padding:4px;background:transparent;border-radius:9px;touch-action:manipulation}.schedule-cell:hover,.schedule-cell:focus-visible{background:#f2faf8;outline:2px solid #c8e9e2}.schedule-cell .sub-empty{font-size:10px}.schedule-table{min-width:920px}.nav{touch-action:pan-x}.schedule-table td{padding:6px 4px}
@media(max-width:760px){.password-eye{min-width:44px;width:44px;min-height:44px;top:3px;bottom:3px}.schedule-cell{min-height:48px}.schedule-table td,.schedule-table th{min-width:98px}.actions{width:100%}.actions>*{flex:1}.actions .upload-label{text-align:center}.modal-back{padding:10px}.modal{max-height:calc(100dvh - 20px)}.modal-body{padding:17px}.modal-footer{padding:0 17px 17px}.field input,.field select,.field textarea,.search-input{min-height:44px;font-size:16px}.primary,.secondary,.quiet{touch-action:manipulation}}
.quick-actions{display:grid;grid-template-columns:1.25fr repeat(4,minmax(125px,1fr));gap:10px;align-items:stretch;margin:0 0 18px;padding:11px;border:1px solid #deeeea;border-radius:18px;background:linear-gradient(115deg,#fff,#f7fcfa);box-shadow:var(--shadow)}.quick-actions-title{display:flex;align-items:center;gap:10px;padding:5px 8px}.quick-actions-title>span{width:37px;height:37px;display:grid;place-items:center;border-radius:13px;color:#087f78;background:#e5f6f1;font-size:19px}.quick-actions-title b,.quick-action b{display:block;font-size:11px;color:#24464d}.quick-actions-title small,.quick-action small{display:block;margin-top:3px;font-size:9px;color:#829497}.quick-action{position:relative;min-height:68px;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;align-content:center;column-gap:8px;text-align:right;padding:10px;border:1px solid #e7f0ed;border-radius:14px;background:#fff;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;touch-action:manipulation}.quick-action:hover{border-color:#b7ddd5;box-shadow:0 10px 24px #174e4812}.quick-icon{grid-row:1/3;align-self:center;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#e8f7f2;color:#118477;font-weight:800;font-size:16px}.quick-action:nth-of-type(3) .quick-icon{background:#fff4df;color:#b77d22}.quick-action:nth-of-type(4) .quick-icon{background:#eef1ff;color:#6878b8}.quick-action:nth-of-type(5) .quick-icon{background:#fff0ed;color:#c45d4c;font-size:10px}.quick-action i{position:absolute;left:9px;top:9px;color:#9bb1ac;font-style:normal;font-size:13px}@media(pointer:fine){.quick-action:hover{transform:perspective(700px) rotateY(-2deg) translateY(-2px)}}@media(max-width:900px){.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-actions-title{grid-column:1/-1;padding:2px 5px}}@media(max-width:420px){.quick-actions{gap:7px;padding:8px}.quick-action{min-height:67px;padding:8px}.quick-action b{font-size:10px}.quick-action small{font-size:8px}}
.early-alerts{margin-bottom:17px}.alert-student{width:100%;min-height:51px;display:flex;align-items:center;gap:9px;padding:8px 10px;border-top:1px solid #edf2f1;text-align:right;background:white;color:var(--ink);transition:background .18s}.alert-student:hover{background:#fbf8f5}.alert-student>b{font-size:10px;flex:1}.alert-student>i{font-style:normal;font-size:9px;color:#829497}.alert-empty{display:flex;align-items:center;gap:11px;padding:13px;border-radius:13px;background:#f7faf9}.alert-empty>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#e8f4f1;color:#168277;font-size:18px}.alert-empty b,.alert-empty small{display:block}.alert-empty b{font-size:10px}.alert-empty small{font-size:9px;color:#829497;margin-top:4px}.alert-empty.good{background:#f3faf5}.alert-empty.good>span{color:#148263;background:#e5f6ec}
/* Leaderboard podium, student rankings, and print certificate controls */
.leaderboard-hero{overflow:hidden;position:relative;margin-bottom:16px;background:radial-gradient(circle at 50% 0,#f6e9bf 0,transparent 40%),linear-gradient(145deg,#fff,#fbf9f1)}.leaderboard-title{display:flex;align-items:center;gap:12px;padding:4px 5px 15px}.leaderboard-title>span{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#fff4cf,#f3df9e);font-size:23px;box-shadow:inset 0 1px #fff,0 8px 20px #a57c2b1d}.leaderboard-title b,.leaderboard-title small{display:block}.leaderboard-title b{font-size:15px}.leaderboard-title small{font-size:10px;color:#879598;margin-top:4px}.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:13px;max-width:760px;margin:15px auto 8px;padding:6px 12px 0;perspective:1000px}.podium-column{min-width:0;text-align:center;transform-style:preserve-3d;animation:podiumRise .6s both}.podium-column.rank-1{z-index:2;animation-delay:.12s}.podium-column.rank-2{animation-delay:.04s}.podium-column.rank-3{animation-delay:.2s}.podium-student{position:relative;min-height:128px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:13px 9px 10px;border:1px solid #eee4c8;border-radius:17px 17px 10px 10px;background:linear-gradient(145deg,#fff,#fffdf7);box-shadow:0 12px 28px #6a542015;transform:rotateY(-4deg) translateZ(12px)}.rank-1 .podium-student{min-height:154px;border-color:#dfc578;background:linear-gradient(145deg,#fff8df,#fff)}.rank-2 .podium-student{min-height:134px}.podium-medal{font-size:25px;filter:drop-shadow(0 4px 5px #8b6b282b)}.podium-student>b{font-size:10px;line-height:1.65;max-width:100%;overflow-wrap:anywhere}.podium-student>strong{font-size:21px;color:#087f78}.podium-student>small{font-size:9px;color:#8f7a4a}.podium-stand{height:54px;display:grid;place-items:center;margin-top:7px;border-radius:9px 9px 4px 4px;background:linear-gradient(110deg,#e6d39a,#fff1c2,#d1b86f);color:#8a6c27;font-size:18px;font-weight:900;box-shadow:0 11px 18px #80642a1d,inset 0 2px #fff9;transform:perspective(300px) rotateX(-8deg)}.rank-1 .podium-stand{height:82px;font-size:26px;background:linear-gradient(110deg,#d4ad46,#ffebaa,#c19931);color:#fff;text-shadow:0 2px 3px #86631d}.rank-3 .podium-stand{height:43px}.certificate-link{margin-top:2px;border:1px solid #e8dcbb;background:#fffaf0;color:#8e6e2a;border-radius:9px;padding:6px 10px;font-size:9px;font-weight:800}.certificate-link:hover{background:#f7edce}.leaderboard-footnote{margin-top:15px;padding-top:12px;border-top:1px solid #f0ead9;text-align:center;color:#829294;font-size:9px}.ranking-card{margin-bottom:20px}.ranking-list{display:grid}.ranking-row{display:flex;align-items:center;gap:11px;min-height:65px;padding:9px 2px;border-top:1px solid #edf2f1}.rank-chip{flex:none;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#f1f5f4;color:#71858a;font-weight:900;font-size:11px}.rank-chip.rank-1{background:#f8edc9;color:#a47c22}.rank-chip.rank-2{background:#eef0f2;color:#66737b}.rank-chip.rank-3{background:#f5e5d8;color:#a46b41}.ranking-name{flex:1;min-width:0}.ranking-name b,.ranking-name small,.ranking-score strong,.ranking-score small{display:block}.ranking-name b{font-size:10px;overflow-wrap:anywhere}.ranking-name small,.ranking-score small{font-size:8px;color:#8b9a9b;margin-top:4px}.ranking-score{text-align:center;min-width:48px}.ranking-score strong{font-size:14px;color:#087f78}.certificate-button{padding:7px 9px;font-size:9px;min-height:36px}.leaderboard-preview{margin-bottom:17px;background:linear-gradient(145deg,#fff,#fffdf7)}.leaderboard-preview .podium{max-width:620px}.leaderboard-preview .podium-student{min-height:104px}.leaderboard-preview .rank-1 .podium-student{min-height:124px}.leaderboard-preview .rank-2 .podium-student{min-height:112px}.leaderboard-preview .podium-stand{height:40px}.leaderboard-preview .rank-1 .podium-stand{height:60px}.leaderboard-preview .rank-3 .podium-stand{height:33px}.leaderboard-preview .certificate-link{display:none}@keyframes podiumRise{from{opacity:0;transform:translateY(12px) rotateX(5deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}@media(max-width:560px){.podium{gap:7px;padding:4px 0 0}.podium-student{min-height:118px;padding:10px 5px}.rank-1 .podium-student{min-height:140px}.rank-2 .podium-student{min-height:125px}.podium-student>b{font-size:9px}.podium-student>strong{font-size:18px}.podium-stand{height:42px}.rank-1 .podium-stand{height:61px}.rank-3 .podium-stand{height:35px}.ranking-row{gap:7px}.certificate-button{font-size:8px;padding:6px}.leaderboard-preview .podium-student{min-height:92px}.leaderboard-preview .rank-1 .podium-student{min-height:110px}}
.leaderboard-hero .certificate-preview{display:block;margin:14px auto 2px;border-color:#dec98d;color:#8a6a20;background:#fffaf0}.leaderboard-hero .certificate-preview:hover{background:#f9f0d7}
.certificate-preview{display:block;margin:14px auto 2px}.certificate-sheet{min-height:620px;position:relative;overflow:hidden;margin:0 auto;padding:35px 38px;border:6px double #bf9746;text-align:center;color:#17343b;background:radial-gradient(circle at 50% 5%,#fff6d8 0,transparent 34%),linear-gradient(145deg,#fff,#fffdf6);box-shadow:inset 0 0 0 8px #fff,inset 0 0 0 9px #e8d69f;border-radius:8px}.certificate-sheet:before,.certificate-sheet:after{content:'';position:absolute;font-size:110px;color:#c49b3e12;pointer-events:none}.certificate-sheet:before{top:-30px;right:20px}.certificate-sheet:after{bottom:-40px;left:20px}.certificate-corner{position:absolute;width:56px;height:56px;border-color:#c39a45;border-style:solid;opacity:.85}.certificate-corner.top-right{top:10px;right:10px;border-width:3px 3px 0 0}.certificate-corner.top-left{top:10px;left:10px;border-width:3px 0 0 3px}.certificate-corner.bottom-right{bottom:10px;right:10px;border-width:0 3px 3px 0}.certificate-corner.bottom-left{bottom:10px;left:10px;border-width:0 0 3px 3px}.certificate-logo{width:82px;height:82px;object-fit:contain;border-radius:50%;background:white;box-shadow:0 6px 20px #152f3220}.certificate-school{font-weight:800;color:#1c5960;font-size:15px;margin-top:10px}.certificate-kicker{font-size:10px;letter-spacing:1.5px;color:#a47c2e;margin-top:17px}.certificate-title{font-family:'Thmanyah Serif Display','Cairo',serif;font-size:39px;color:#0c5960;margin:4px 0}.certificate-divider{width:145px;height:2px;background:linear-gradient(90deg,transparent,#bf9746,transparent);margin:0 auto 15px}.certificate-intro{font-size:13px;color:#52696c;margin:0}.certificate-student{font-size:27px;font-weight:900;color:#173e46;margin:7px auto}.certificate-description{font-size:13px;line-height:1.9;color:#52696c;max-width:680px;margin:0 auto}.certificate-award{display:inline-flex;margin:13px auto 4px;padding:8px 20px;border-radius:40px;background:linear-gradient(100deg,#f7edce,#fff9e6,#f4e6b9);border:1px solid #d3b86d;color:#946e1f;font-size:16px;font-weight:800}.certificate-score{font-size:17px;font-weight:800;color:#0b7c70}.certificate-signatures{display:flex;justify-content:space-between;align-items:end;margin-top:27px;color:#536b6c;font-size:10px}.certificate-signatures div{width:27%;border-top:1px solid #aebbb5;padding-top:7px}.certificate-ending{font-size:9px;color:#879694;margin-top:12px}.certificate-preview-stamp{position:absolute;top:17px;left:50%;transform:translateX(-50%) rotate(-6deg);border:2px solid #c98a51;border-radius:7px;padding:5px 12px;color:#a76231;background:#fff8;white-space:nowrap;font-size:10px;font-weight:900}.print-certificate #appView,.print-certificate #loginView,.print-certificate #toastRoot{display:none!important}.print-certificate #modalRoot{position:fixed;inset:0;z-index:999;display:block!important;background:white}.print-certificate #modalRoot .modal-back{position:static;display:block;padding:0;background:white}.print-certificate #modalRoot .modal{width:100%;max-width:none;max-height:none;overflow:visible;border-radius:0;box-shadow:none}.print-certificate #modalRoot .modal-head,.print-certificate #modalRoot .modal-footer{display:none}.print-certificate #modalRoot .modal-body{padding:0}.print-certificate .certificate-sheet{width:100%;min-height:175mm;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}@media(max-width:600px){.certificate-sheet{min-height:570px;padding:30px 16px}.certificate-logo{width:70px;height:70px}.certificate-school{font-size:12px}.certificate-title{font-size:33px}.certificate-student{font-size:21px}.certificate-description{font-size:11px}.certificate-signatures{margin-top:22px}.certificate-signatures div{width:31%}.certificate-preview-stamp{top:9px;font-size:8px}}@media print{@page{size:A4 landscape;margin:8mm}.print-certificate .certificate-sheet{height:185mm;min-height:0}}

/* Profile photos, accessible iconography, and responsive account tools */
.ui-icon{display:inline-block;vertical-align:middle;flex:0 0 auto}
.nav button .ico{display:grid;place-items:center;width:23px;height:23px}
.avatar img,.mini-avatar img,.chat-avatar img,.message-avatar img,.profile-avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.user-chip{border:0;background:transparent;color:inherit;text-align:right;padding:4px 6px;border-radius:13px;transition:background .2s,transform .2s}
.user-chip:hover{background:#eaf5f2;transform:translateY(-1px)}
.user-chip .avatar{overflow:hidden;flex:none}
.profile-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.78fr);gap:18px;align-items:start}
.profile-card{padding:0;overflow:hidden}
.profile-cover{height:145px;position:relative;overflow:hidden;background:linear-gradient(115deg,#0b3942,#087f78 56%,#33b5a2)}
.profile-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,#ffffff08,transparent);transform:skewX(-22deg) translateX(-60%);animation:profile-sheen 7s ease-in-out infinite}
.cover-orbit{position:absolute;border:1px solid #ffffff35;border-radius:50%;display:block}
.orbit-one{width:250px;height:250px;right:9%;top:-150px;box-shadow:0 0 0 22px #ffffff08,0 0 0 47px #ffffff06}
.orbit-two{width:145px;height:145px;left:8%;bottom:-95px;box-shadow:0 0 0 18px #ffffff0b}
.profile-main{display:flex;align-items:center;gap:17px;padding:0 24px;margin-top:-48px;position:relative;z-index:1;flex-wrap:wrap}
.profile-avatar-wrap{width:104px;height:104px;flex:none;border:5px solid #fff;border-radius:50%;background:#fff;box-shadow:0 9px 24px #0c394225;overflow:hidden}
.profile-avatar{width:100%;height:100%;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#d8f0e8,#b9e5da);color:#08776c;font-size:29px;font-weight:900}
.profile-title{flex:1;min-width:150px;padding-top:43px}
.profile-title h2{font-size:19px;margin:8px 0 2px;line-height:1.6}
.profile-title small{font-size:11px;color:#839397}
.profile-photo-actions{display:flex;align-items:center;gap:8px;margin-inline-start:auto;padding-top:42px;flex-wrap:wrap}
.avatar-picker{display:inline-flex;align-items:center;gap:7px;cursor:pointer;min-height:42px}
.remove-avatar{display:inline-flex;align-items:center;gap:6px;min-height:42px}
.profile-form{border-top:1px solid var(--line);margin:23px 24px 0;padding:20px 0 22px}
.profile-form .field{max-width:530px}
.profile-form .field small{font-size:10px;line-height:1.8;color:#829397}
.profile-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:7px}
.profile-actions button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.profile-guide{padding:23px;position:relative;overflow:hidden}
.profile-guide:after{content:'';position:absolute;width:135px;height:135px;border:1px solid #d9eee9;border-radius:50%;left:-72px;bottom:-77px;box-shadow:0 0 0 16px #f2faf7,0 0 0 32px #f6fbf9}
.guide-icon{width:45px;height:45px;border-radius:15px;display:grid;place-items:center;color:#087f78;background:#e4f5f0}
.profile-guide h3{margin:14px 0 6px;font-size:16px}
.profile-guide>p{font-size:11px;color:#71858a;line-height:1.9;margin:0 0 17px;max-width:320px}
.guide-row{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-top:1px solid #edf2f1;color:#087f78;position:relative;z-index:1}
.guide-row small{font-size:10px;color:#637a7d;line-height:1.8}
.leaderboard-trophy{display:grid;place-items:center;color:#a77a25}
.podium-medal .medal-rank-1{color:#c49325;fill:#f7e5af}
.podium-medal .medal-rank-2{color:#758991;fill:#e6edef}
.podium-medal .medal-rank-3{color:#a56c43;fill:#f2d7c1}
.podium-medal .ui-icon{fill-opacity:.22}
.certificate-award .ui-icon,.award .ui-icon{margin-inline-end:5px;color:#a77a25}
.chat-avatar,.message-avatar{overflow:hidden;flex:none;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#d8f0e8,#b9e5da);color:#08776c;font-weight:800}
.message-heading{display:flex;align-items:center;gap:9px;min-width:0}
.message-avatar{width:35px;height:35px;font-size:11px}
.message-sender{min-width:0}
.student-avatar-large{width:42px;height:42px;font-size:12px}
@keyframes profile-sheen{0%,55%{transform:skewX(-22deg) translateX(-90%)}80%,100%{transform:skewX(-22deg) translateX(180%)}}
@media(max-width:950px){.profile-layout{grid-template-columns:1fr}.profile-guide{display:grid;grid-template-columns:45px 1fr;column-gap:13px;align-items:center}.profile-guide h3{margin:0}.profile-guide>p,.profile-guide .guide-row{grid-column:1/-1}}
@media(max-width:600px){.profile-cover{height:112px}.profile-main{padding:0 15px;gap:10px;margin-top:-42px}.profile-avatar-wrap{width:84px;height:84px;border-width:4px}.profile-avatar{font-size:24px}.profile-title{padding-top:39px;min-width:calc(100% - 105px)}.profile-title h2{font-size:16px}.profile-title small{font-size:10px}.profile-photo-actions{padding-top:3px;width:100%;margin:0;justify-content:flex-start}.profile-form{margin:18px 15px 0;padding:17px 0 18px}.profile-actions{display:grid;grid-template-columns:1fr}.profile-actions button{width:100%;min-height:46px}.profile-guide{padding:17px}.avatar-picker,.remove-avatar{min-height:44px}.nav button{min-height:44px}.user-chip{min-height:44px}.chat-avatar{width:35px;height:35px}}

.message-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.message-sender{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.message-top>small{color:#829397;font-size:10px;white-space:nowrap}.stat-icon .ui-icon{color:inherit}.profile-actions .ui-icon,.avatar-picker .ui-icon,.remove-avatar .ui-icon{vertical-align:middle}

.hero:after{content:'';width:130px;height:130px;border:1px solid #ffffff20;border-radius:50%;box-shadow:0 0 0 16px #ffffff08,0 0 0 32px #ffffff05;font-size:0}.certificate:before,.certificate:after{content:'';width:100px;height:100px;border:1px solid #c49b3e22;border-radius:50%;font-size:0}.quick-actions-title>.ui-icon{color:#087f78}.quick-icon{display:grid;place-items:center}

.assessment-scope{border:1px solid var(--line);border-radius:13px;padding:12px;margin:15px 0}.assessment-scope legend{padding:0 7px;font-size:11px;font-weight:800;color:#35565a}.scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.scope-grid label{display:flex;align-items:center;gap:7px;background:#f5f9f8;padding:9px;border-radius:9px;font-size:10px}.scope-grid input{accent-color:#128f81;width:16px;height:16px}.assessment-scope>small{display:block;color:#819397;font-size:9px;margin-top:10px}.audit-row{display:flex;align-items:center;gap:12px;padding:10px 2px;border-top:1px solid #edf2f1;font-size:10px}.audit-row span{color:#64797c}.audit-row small{margin-right:auto;color:#8b9a9b}.audit-card .card-head{flex-wrap:wrap}.grade-notifications .notice{margin:8px 0}.grade-notifications .quiet{margin-top:5px}.notice.good{background:#edfaf5;color:#176b56;border-color:#ccecdf}.notice.danger{background:#fff1ef;color:#a34437;border-color:#f1d1cb}@media(max-width:600px){.scope-grid{grid-template-columns:1fr}.audit-row{align-items:flex-start;flex-direction:column;gap:4px}.audit-row small{margin:0}.audit-card .card-head .secondary{width:100%}}
.bell{position:relative}.notification-badge{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;padding:0 4px;border:2px solid #f4f8f8;border-radius:12px;display:grid;place-items:center;background:#d45247;color:#fff;font-size:8px;font-weight:900}.notification-badge.hidden{display:none}.file-filter{min-height:38px;max-width:145px;padding:6px 9px;border:1px solid #e3ecea;border-radius:10px;background:#fff;color:#34565b;font-family:inherit;font-size:10px}.file-count{margin:-8px 0 6px;color:#829397;font-size:9px}@media(max-width:600px){.file-filter{max-width:125px;min-height:44px}.file-count{margin-top:-4px}}
.school-pill select{border:0;background:transparent;color:inherit;font:inherit;font-weight:800;outline:0;max-width:180px}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.class-card{position:relative;overflow:hidden;padding:20px}.class-card:after{content:'';position:absolute;width:100px;height:100px;border-radius:50%;left:-22px;top:-28px;background:#dff4ed80}.class-card-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:15px;background:#e5f5ef;color:#0a8276}.class-card>.badge{position:absolute;left:15px;top:17px}.class-card h3{margin:17px 0 6px;font-size:17px}.class-card p{color:#819397;font-size:11px;line-height:1.7}.class-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.class-actions>*{flex:1}.class-actions button{font-size:10px;padding:8px}@media(max-width:600px){.class-grid{grid-template-columns:1fr}.class-card{padding:17px}.class-actions>*{min-height:44px}.school-pill select{max-width:120px;font-size:10px}}

/* Account import, student rank cards, and small-screen actions */
.account-import-tools{display:contents}
.student-rank-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0}
.student-rank-stats .stat{min-height:92px}
.student-rank-stats .stat>.ui-icon{color:var(--teal,#15998b);flex:0 0 auto}
.ranking-card .ranking-card{margin-top:14px}
@media(max-width:760px){.account-import-tools{display:contents}.student-rank-stats{grid-template-columns:1fr}.student-rank-stats .stat{min-height:78px}.page-head .actions>.account-import-tools{display:contents}.page-head .actions .upload-label{min-height:42px}}

/* Chat rooms, replies and secure inline attachments */
.chat-room-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;padding:13px 16px}.chat-room-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.chat-room-controls label{display:flex;align-items:center;gap:8px}.chat-room-controls label>span{font-size:10px;color:#72878b;font-weight:800}.chat-room-select{min-height:42px;min-width:145px;padding:0 34px 0 12px;border:1px solid #dfeae8;border-radius:12px;background:#fff;color:#26484c;font:inherit;font-size:11px;outline:none}.chat-room-select:focus{border-color:#74c4b6;box-shadow:0 0 0 3px #e3f6f2}.chat-room-summary{display:flex;align-items:center;gap:10px}.chat-room-summary>div b,.chat-room-summary>div small{display:block}.chat-room-summary>div b{font-size:11px}.chat-room-summary>div small{max-width:320px;margin-top:3px;color:#839497;font-size:9px}.chat-room-badge{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#e8f6f1;color:#078274}.chat-compose{display:block;padding:10px 13px 15px}.chat-compose-row{display:flex;align-items:center;gap:8px}.chat-tool-button{width:44px;height:44px;flex:none;border:1px solid #dce9e6;border-radius:13px;display:grid;place-items:center;background:#f6fbf9;color:#28756c;cursor:pointer;font:inherit;font-size:10px;font-weight:800;touch-action:manipulation;transition:.18s}.chat-tool-button:hover{background:#e7f6f1;transform:translateY(-1px)}.voice-button.recording{background:#fff0ed;border-color:#ffd1c7;color:#ba4939;animation:livePulse 1s infinite}.chat-compose-row textarea{min-width:0}.chat-compose .compose-hint{position:static;display:block;margin:6px 0 0 54px;font-size:9px}.chat-reply-preview,.chat-attachment-preview{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px;padding:8px 11px;border:1px solid #dbece7;border-radius:12px;background:#f1faf7}.chat-reply-preview>span,.chat-attachment-preview>span{display:flex;align-items:center;gap:8px;min-width:0}.chat-reply-preview b,.chat-reply-preview small{display:block}.chat-reply-preview b{font-size:10px;color:#11766c}.chat-reply-preview small{max-width:min(65vw,500px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#75898a}.chat-reply-preview button,.chat-attachment-preview button{width:32px;height:32px;border:0;border-radius:9px;background:#fff;color:#698080;font-size:20px;cursor:pointer}.chat-attachment-preview{justify-content:flex-start;color:#365c5d;font-size:10px}.chat-attachment-preview button{margin-right:auto}.chat-reply-button{display:block;margin-top:7px;padding:3px 7px;border:0;border-radius:7px;background:transparent;color:#16877a;font:inherit;font-size:9px;cursor:pointer}.chat-reply-button:hover{background:#e7f5f1}.chat-reply-quote{margin-top:7px;padding:6px 8px;border-right:2px solid #21a08d;border-radius:5px;background:#eff7f5}.chat-reply-quote b,.chat-reply-quote span{display:block;font-size:9px}.chat-reply-quote b{color:#148075}.chat-reply-quote span{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#718486}.chat-room-tag{display:inline-block;margin-bottom:5px;padding:3px 7px;border-radius:7px;background:#e9f3f2;color:#557476;font-size:8px}.chat-image{display:block;width:auto;max-width:min(360px,68vw);max-height:320px;margin-top:9px;border-radius:11px;object-fit:contain;background:#eef4f2}.chat-file-link{display:flex;align-items:center;gap:9px;min-width:min(260px,65vw);margin-top:9px;padding:9px;border:1px solid #e1ece9;border-radius:11px;background:#f9fcfb;color:#315b5a;text-decoration:none}.chat-file-link>span:nth-child(2){min-width:0;flex:1}.chat-file-link b,.chat-file-link small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-file-link b{font-size:10px}.chat-file-link small{margin-top:3px;color:#788d8e;font-size:9px}.chat-pdf-mark{width:33px;height:38px;border-radius:8px;display:grid;place-items:center;background:#fff0ed;color:#bd5145;font-size:9px;font-weight:900}.chat-audio-wrap{display:grid;gap:4px;margin-top:9px}.chat-audio-wrap small{color:#75898a;font-size:9px}.chat-audio-wrap audio{width:min(300px,65vw);height:38px}.chat-monitor-note{padding:13px 16px;border-top:1px solid var(--line);background:#f7faf9;color:#748687;text-align:center;font-size:10px}
@media(max-width:760px){.chat-room-bar{align-items:stretch;flex-direction:column;gap:11px;padding:12px}.chat-room-controls{display:grid;grid-template-columns:1fr;gap:7px}.chat-room-controls label{align-items:stretch;flex-direction:column;gap:4px}.chat-room-select{width:100%;min-height:46px;font-size:16px}.chat-room-summary>div small{max-width:calc(100vw - 135px)}.chat-compose{padding:9px 8px 14px}.chat-compose-row{gap:6px}.chat-tool-button{width:44px;height:44px}.chat-compose-row textarea{padding:10px;font-size:16px}.chat-compose .compose-hint{margin-right:4px;margin-left:0;font-size:8px}.chat-bubble{min-width:110px;max-width:calc(100vw - 100px)}.chat-image{max-width:min(68vw,300px);max-height:250px}.chat-reply-quote span{max-width:60vw}}
@media(prefers-reduced-motion:reduce){.voice-button.recording{animation:none}}
@media(max-width:760px){.chat-shell{height:calc(100dvh - 375px);min-height:270px}}
.chat-contact-picker{display:grid;gap:4px;min-width:220px}.chat-contact-picker>span{font-size:9px;color:#72878b;font-weight:800}.chat-contact-search{min-height:39px;padding:0 11px;border:1px solid #dfeae8;border-radius:11px;background:#fff;font:inherit;font-size:11px;outline:none}.chat-contact-search:focus{border-color:#74c4b6;box-shadow:0 0 0 3px #e3f6f2}
@media(max-width:760px){.chat-contact-picker{min-width:0;width:100%}.chat-contact-search{min-height:44px;font-size:16px}}

/* Certificate workflow and smaller-screen controls */
.certificate-settings-form{max-width:720px;padding:22px}.certificate-settings-form .card-head{margin-bottom:22px}.certificate-settings-form>.primary{margin-top:15px;min-height:46px}.certificate-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.certificates-card{padding:18px}.issued-certificate-row{display:flex;align-items:center;gap:12px;min-height:76px;padding:10px 2px;border-top:1px solid #edf2f1}.issued-certificate-mark{width:42px;height:42px;flex:none;border-radius:13px;display:grid;place-items:center;background:#fff6dd;color:#a37d2a}.issued-certificate-info{flex:1;min-width:0}.issued-certificate-info>b,.issued-certificate-info>small{display:block}.issued-certificate-info>b{font-size:11px}.issued-certificate-info>small{margin-top:4px;color:#829294;font-size:9px;overflow-wrap:anywhere}.issued-certificate-row>.secondary{min-height:42px;white-space:nowrap}
@media(max-width:760px){.certificate-form-grid{grid-template-columns:1fr;gap:0}.certificate-settings-form{padding:16px}.issued-certificate-row{align-items:flex-start;flex-wrap:wrap;gap:8px}.issued-certificate-info{width:calc(100% - 54px);flex:1}.issued-certificate-row>.secondary{margin-right:50px;min-height:44px}.sidebar{height:108px;padding:4px 5px calc(4px + env(safe-area-inset-bottom))}.nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:row;align-items:stretch;justify-content:stretch;gap:1px;height:100%;overflow:hidden}.nav button{min-width:0;width:100%;min-height:44px;max-height:49px;padding:2px 1px;border-radius:9px;gap:0;font-size:8px;white-space:normal}.nav button .ico{font-size:15px;line-height:1.05}.nav button span:not(.ico){max-width:100%;font-size:8px;line-height:1.15;white-space:normal;overflow-wrap:anywhere}.main{padding-bottom:calc(132px + env(safe-area-inset-bottom))}}
@media(max-width:420px){.chat-room-bar{padding:10px}.certificate-sheet{padding:24px 13px}.certificate-student{font-size:23px}.certificate-description{font-size:12px}.certificate-signatures{font-size:9px}.certificate-signatures div{width:29%}}

.chat-threads{margin:0 0 12px;padding:12px 14px}.chat-threads-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:9px}.chat-threads-head b,.chat-threads-head small{display:block}.chat-threads-head b{font-size:11px;color:#21484d}.chat-threads-head small{margin-top:3px;color:#829397;font-size:9px}.chat-threads-list{display:flex;gap:8px;overflow-x:auto;padding:2px 0 4px;scrollbar-width:thin}.chat-thread{display:flex;align-items:center;gap:8px;flex:none;min-width:210px;max-width:290px;padding:8px 10px;border:1px solid #e1ece9;border-radius:13px;background:#fbfdfc;color:#35585b;text-align:right;cursor:pointer;touch-action:manipulation;transition:transform .18s,border-color .18s,background .18s}.chat-thread:hover,.chat-thread.active{transform:translateY(-1px);border-color:#9ed5c9;background:#f0faf6}.chat-thread .chat-avatar{width:36px;height:36px}.chat-thread-copy{min-width:0;flex:1}.chat-thread-copy b,.chat-thread-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-thread-copy b{font-size:10px}.chat-thread-copy small{max-width:210px;margin-top:4px;color:#819295;font-size:8px}.chat-threads-empty{padding:9px 2px;color:#829397;font-size:9px}@media(max-width:760px){.chat-threads{padding:10px}.chat-thread{min-width:185px;min-height:54px}.chat-thread-copy small{max-width:150px}}

.class-card{padding:18px}.class-card-cover{position:relative;display:grid;place-items:center;height:148px;margin:-18px -18px 13px;overflow:hidden;border-radius:16px 16px 0 0;background:radial-gradient(circle at 25% 0,#c8eee3,transparent 56%),linear-gradient(140deg,#e8f6f1,#dbeef4)}.class-card-cover>img{width:100%;height:100%;object-fit:cover}.class-card-cover:after{position:absolute;inset:45% 0 0;content:'';background:linear-gradient(transparent,#12343d55);pointer-events:none}.class-card-icon{width:58px;height:58px;border-radius:19px;background:#ffffffc9;box-shadow:0 8px 20px #1b5a551c}.class-photo-button{position:absolute;z-index:1;right:11px;bottom:10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 11px;border:1px solid #ffffffa8;border-radius:12px;background:#ffffffed;color:#20565a;font-size:10px;font-weight:800;cursor:pointer;touch-action:manipulation;box-shadow:0 4px 12px #12343d20}.class-card>.badge{position:static;display:inline-flex;margin-bottom:7px}.class-card h3{margin:2px 0 5px;overflow-wrap:anywhere}.class-card p{margin:0;overflow-wrap:anywhere}.class-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.class-actions>*{min-width:0;min-height:42px}.remove-class-photo{color:#7b6661}.voice-button .ui-icon{display:block;width:21px;height:21px;stroke-width:2}.voice-button{position:relative;z-index:1}.voice-button:focus-visible,.class-photo-button:focus-within{outline:3px solid #8ad6c5;outline-offset:2px}@media(max-width:760px){.class-card{padding:14px}.class-card-cover{height:132px;margin:-14px -14px 12px;border-radius:14px 14px 0 0}.class-photo-button{min-height:44px;right:9px;bottom:8px}.class-actions>*{min-height:46px;padding:8px 6px;font-size:10px}.page-head .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.page-head .actions>*{min-width:0;max-width:100%;justify-content:center;white-space:normal;text-align:center}.page-head .actions .upload-label{display:flex;align-items:center}.chat-compose-row .voice-button{width:46px;height:46px;min-width:46px;flex:none}}
@media(max-width:360px){.page-head .actions{grid-template-columns:1fr}.class-actions{grid-template-columns:1fr}.class-actions>*{width:100%}.chat-compose-row{gap:5px}.chat-compose-row .chat-tool-button,.chat-compose-row .voice-button,.chat-compose-row .chat-send{width:42px;height:42px;min-width:42px}.chat-compose-row textarea{min-width:0}}
.welcome-class-photo{display:flex;align-items:center;gap:8px;margin-inline-start:auto;min-width:0;color:#426769;font-size:9px;font-weight:800}.welcome-class-photo img{width:42px;height:42px;flex:none;border:2px solid #fff;border-radius:14px;object-fit:cover;box-shadow:0 4px 12px #164c4a1c}.welcome-class-photo small{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:600px){.welcome-class-photo{gap:5px;font-size:8px}.welcome-class-photo img{width:34px;height:34px;border-radius:11px}.welcome-class-photo small{max-width:56px}.welcome-class-count{margin-inline-start:0;max-width:76px;text-align:center;line-height:1.5}}

.welcome-card{position:relative;display:flex;align-items:center;gap:16px;margin:0 0 18px;padding:18px 20px;border:1px solid #dcece7;border-radius:20px;background:radial-gradient(circle at 12% 0,#d7f4ec 0,transparent 42%),linear-gradient(115deg,#fff,#f5fbf9);box-shadow:var(--shadow);overflow:hidden}.welcome-avatar{flex:none;width:66px;height:66px;padding:3px;border-radius:21px;background:linear-gradient(145deg,#1da594,#c5e9da);box-shadow:0 8px 20px #13847725}.welcome-avatar-image{display:grid;place-items:center;width:100%;height:100%;overflow:hidden;border-radius:18px;background:#fff;color:#087f78;font-size:20px;font-weight:900}.welcome-avatar-image img{width:100%;height:100%;object-fit:cover}.welcome-copy{min-width:0}.welcome-copy>small{font-size:10px;color:#66817e}.welcome-copy h2{margin:4px 0;font-size:19px;color:#173e46;overflow-wrap:anywhere}.welcome-copy p{margin:0;color:#72898a;font-size:10px;line-height:1.7}.welcome-class-count{margin-inline-start:auto;flex:none;padding:8px 12px;border:1px solid #dcece7;border-radius:12px;background:#fff;color:#087f78;font-size:10px;font-weight:800}.school-pill select{max-width:180px;min-height:40px;padding:0 28px 0 10px;border:0;background:transparent;color:inherit;font:inherit;outline:none}@media(max-width:760px){.welcome-card{gap:11px;margin-bottom:13px;padding:14px;border-radius:16px}.welcome-avatar{width:54px;height:54px;border-radius:17px}.welcome-avatar-image{border-radius:14px}.welcome-copy h2{font-size:16px}.welcome-copy p{font-size:9px}.welcome-class-count{padding:6px 8px;font-size:8px}.school-pill select{max-width:130px;min-height:40px;font-size:10px}}

@media(max-width:760px){.school-pill{display:block!important;max-width:36vw;min-width:82px;padding:5px 7px;overflow:hidden}.school-pill select{width:100%;max-width:100%;min-height:40px;padding:0 13px 0 2px;font-size:9px}.top-actions{gap:5px}.voice-button{width:46px;height:46px}.chat-tool-button .ui-icon{flex:none}}

@media(min-width:761px){.sidebar{overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#ffffff45 transparent}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:#ffffff45;border-radius:8px}}
