*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,Segoe UI,sans-serif;color:#12233b;line-height:1.6}.nav{height:78px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #e7edf3;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#12233b}.brand img{width:48px;height:48px;object-fit:contain}.brand span,.footer-brand span{display:flex;flex-direction:column;line-height:1}.brand b,.footer-brand b{font-size:19px}.brand small,.footer-brand small{font-size:9px;letter-spacing:2px;color:#246b3d;font-weight:800;margin-top:5px}.nav nav{display:flex;align-items:center;gap:24px}.nav nav a{color:#526175;text-decoration:none;font-size:13px;font-weight:650}.nav nav a:hover{color:#1672e8}.nav .app{background:#1672e8;color:#fff;padding:11px 17px;border-radius:10px}.menu{display:none;border:0;background:none;font-size:26px}.hero{min-height:610px;padding:80px 8%;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:40px;background:linear-gradient(135deg,#f8fbff,#eef7ff 55%,#f7fff6)}label,.heading label,.about label,.app-banner label,.contact label{font-size:11px;letter-spacing:2px;font-weight:850;color:#1672e8}.hero h1{font-size:clamp(48px,6vw,76px);line-height:1.04;letter-spacing:-2.5px;margin-top:16px}.hero em{color:#1672e8;font-style:normal}.hero p{max-width:620px;color:#637187;font-size:18px;margin:23px 0 29px}.actions{display:flex;gap:13px;flex-wrap:wrap}.actions a,.app-banner>a{padding:13px 20px;border-radius:11px;text-decoration:none;font-weight:750}.primary{background:#1672e8;color:#fff;box-shadow:0 12px 28px #1672e82d}.secondary{background:#fff;border:1px solid #d7e0ea;color:#263a54}.ticks{margin-top:28px;font-size:12px;color:#667489}.visual{height:450px;position:relative;display:grid;place-items:center}.glow{position:absolute;width:350px;height:350px;border-radius:50%;background:radial-gradient(circle,#a9ddff,#dff2ff 45%,transparent 70%)}.logo-card{position:relative;width:285px;padding:25px;text-align:center;border-radius:28px;background:#ffffffdf;box-shadow:0 30px 80px #17365b1d}.logo-card img{width:190px;height:190px;object-fit:contain}.logo-card h3{font-size:20px}.logo-card p{font-size:13px;color:#246b3d;font-weight:700;margin:0}.float{position:absolute;display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #e2eaf2;border-radius:14px;padding:13px 16px;box-shadow:0 16px 35px #17365b19}.float span{display:flex;flex-direction:column}.float small{font-size:10px;color:#7a8797}.one{left:0;top:50px}.two{right:0;bottom:45px}.stats{display:grid;grid-template-columns:repeat(4,1fr);padding:25px 8%;border-bottom:1px solid #e9eef4}.stats div{text-align:center;border-right:1px solid #e4eaf0}.stats div:last-child{border:0}.stats b{display:block;color:#1672e8;font-size:23px}.stats span{font-size:12px;color:#687589}.section,.subjects{padding:90px 8%}.light,.subjects{background:#f7f9fc}.heading{text-align:center;max-width:1000px;margin:0 auto 45px}.heading h2,.about h2,.app-banner h2,.contact h2{font-size:clamp(26px,3vw,38px);line-height:1.08;letter-spacing:-1.5px;margin:10px 0 13px}.heading p,.about p,.contact>div>p{color:#6b788b}.courses{display:grid;grid-template-columns:repeat(5,1fr);gap:15px}.courses article{position:relative;border:1px solid transparent;border-radius:18px;padding:25px 20px}.courses article:nth-child(1){background:#eaf4ff;border-color:#b9d9ff}
.courses article:nth-child(2){background:#eefbea;border-color:#c7e8b9}
.courses article:nth-child(3){background:#fff5df;border-color:#f0d49a}
.courses article:nth-child(4){background:#f4edff;border-color:#d8c5f5}
.courses article:nth-child(5){background:#ffedf0;border-color:#f3c5ce}.courses article.featured{border-color:#99c2ff}.courses i{font-style:normal;color:#1672e8;font-size:27px;font-weight:900}.courses h3{margin:6px 0 8px}.courses p{font-size:12.5px;color:#6c7889;min-height:72px}.featured small{position:absolute;top:15px;right:12px;color:#246b3d;background:#e8f7ed;padding:5px 7px;border-radius:5px;font-size:8px;font-weight:900}.subject-grid{max-width:1000px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:13px}.subject-grid div{padding:18px;background:#fff;border:1px solid #e0e7ef;border-radius:14px}.materials{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.materials article{background:#fff;border:1px solid #e0e7ef;border-radius:18px;padding:27px;font-size:27px}.materials h3{font-size:18px;margin:12px 0 5px}.materials p{font-size:12.5px;color:#6d798a}.materials a{display:inline-block;margin-top:14px;color:#1672e8;text-decoration:none;font-weight:750;font-size:12px}.about{max-width:1150px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.about p{margin-top:16px}.principles{display:grid;grid-template-columns:1fr 1fr;gap:14px}.principles>div{display:flex;gap:14px;padding:20px;border:1px solid #e1e7ef;border-radius:15px}.principles b{color:#1672e8}.principles strong,.principles small{display:block}.principles small{color:#758194;font-size:11px}.app-banner{margin:0 8% 90px;padding:48px 6%;border-radius:25px;background:linear-gradient(120deg,#102b48,#126db4);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:30px}.app-banner label{color:#9cd0ff}.app-banner p{color:#cfdeed;max-width:600px}.app-banner>a{background:#fff;color:#102b48;white-space:nowrap}.contact{display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact-card{background:#fff;border:1px solid #e0e7ef;border-radius:18px;padding:8px 25px}.contact-card a,.contact-card>div{display:flex;gap:15px;align-items:center;padding:17px 0;border-bottom:1px solid #edf1f5;text-decoration:none;color:#172c45}.contact-card>div:last-child,.contact-card a:last-child{border:0}.contact-card span{display:flex;flex-direction:column}.contact-card small{color:#7a8797;font-size:10px}.contact-card b{font-size:13px}footer{padding:40px 8%;background:#0d1d31;color:#aebaca;display:grid;grid-template-columns:1.2fr 1fr auto;align-items:center;gap:30px}.footer-brand{display:flex;align-items:center;gap:10px}.footer-brand img{width:45px}.footer-brand p{margin-left:10px;font-size:12px}.links{display:flex;gap:22px;justify-content:center}.links a{color:#aebaca;text-decoration:none;font-size:12px}@media(max-width:1100px){.nav nav{display:none}.menu{display:block}.nav nav.open{position:absolute;top:78px;left:0;right:0;display:flex;flex-direction:column;padding:18px 6%;background:#fff}.hero{grid-template-columns:1fr}.visual{display:none}.courses{grid-template-columns:repeat(2,1fr)}.materials{grid-template-columns:repeat(2,1fr)}.subject-grid{grid-template-columns:repeat(2,1fr)}.about,.contact{grid-template-columns:1fr;gap:35px}.stats{grid-template-columns:repeat(2,1fr);gap:15px}.stats div:nth-child(2){border:0}.app-banner{display:block}footer{grid-template-columns:1fr;text-align:center}.footer-brand,.links{justify-content:center}}@media(max-width:540px){.hero,.section,.subjects{padding-left:5%;padding-right:5%}.courses,.materials,.subject-grid,.principles{grid-template-columns:1fr}.app-banner{margin-left:5%;margin-right:5%;padding:35px 25px}.app-banner>a{display:inline-block;margin-top:20px}.ticks{line-height:2}.links{flex-wrap:wrap}}
.announcement{height:auto;min-height:38px;flex-shrink:0;background:#102b48;color:#e8f3ff;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;font-weight:600;padding:0 5%}.announcement a{color:#9cd0ff;text-decoration:none;margin-left:6px}.feature-section{padding:85px 8%;background:#fff}.feature-grid{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.feature-grid article{padding:27px 23px;border:1px solid #e1e8f0;border-radius:18px;background:#fff;transition:.2s}.feature-grid article:hover{transform:translateY(-4px);box-shadow:0 18px 35px #17365b12}.feature-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:13px;background:#eef6ff;font-size:23px;margin-bottom:16px}.feature-grid h3{font-size:17px;margin-bottom:6px}.feature-grid p{font-size:12.5px;color:#6d798a}.faq-section{padding:85px 8%;background:#f7f9fc}.faq{max-width:850px;margin:auto}.faq details{background:#fff;border:1px solid #e0e7ef;border-radius:13px;margin-bottom:11px;padding:0 20px}.faq summary{cursor:pointer;list-style:none;font-weight:700;font-size:14px;padding:19px 0}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';float:right;color:#1672e8;font-size:20px}.faq details[open] summary:after{content:'−'}.faq p{font-size:12.5px;color:#6d788b;padding:0 0 19px;max-width:700px}.whatsapp-float{position:fixed;right:24px;bottom:24px;z-index:40;width:58px;height:58px;border-radius:50%;background:#1ea952;color:#fff;text-decoration:none;display:grid;place-items:center;font-size:25px;box-shadow:0 12px 30px #17365b30}.whatsapp-float span{position:absolute;right:68px;white-space:nowrap;background:#102b48;color:#fff;padding:7px 10px;border-radius:7px;font-size:10px;opacity:0;pointer-events:none;transition:.2s}.whatsapp-float:hover span{opacity:1}
@media(max-width:950px){.feature-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.announcement{height:auto;min-height:38px;text-align:center;flex-wrap:wrap;padding:7px 5%}.feature-section,.faq-section{padding:65px 5%}.feature-grid{grid-template-columns:1fr}.whatsapp-float{right:17px;bottom:17px}}

.principles{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.principles>div{position:relative;display:flex;gap:16px;align-items:flex-start;padding:22px;border-radius:20px;border:1px solid rgba(255,255,255,.8);box-shadow:0 12px 30px rgba(31,55,90,.08);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.principles>div:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(31,55,90,.14)}
.principles>div:nth-child(1){background:linear-gradient(135deg,#eaf4ff,#f7fbff)}
.principles>div:nth-child(2){background:linear-gradient(135deg,#edfff5,#f9fffc)}
.principles>div:nth-child(3){background:linear-gradient(135deg,#fff5df,#fffaf0)}
.principles>div:nth-child(4){background:linear-gradient(135deg,#f2edff,#faf8ff)}
.principles>div:nth-child(5){background:linear-gradient(135deg,#eafaff,#f8fdff)}
.principles>div:nth-child(6){background:linear-gradient(135deg,#ffedf3,#fff8fa)}
.principles>div>b{min-width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#fff;color:#1672e8;font-size:13px;font-weight:900;box-shadow:0 6px 15px rgba(22,114,232,.12)}
.principles strong{display:block;font-size:15px;margin-bottom:4px;color:#172a43}
.principles small{display:block;color:#687589;font-size:11px;line-height:1.55}

.subject-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:15px}
.subject-grid>div{min-height:72px;display:flex;align-items:center;gap:12px;padding:18px 20px;border-radius:18px;border:1px solid transparent;box-shadow:0 10px 25px rgba(31,55,90,.08);font-size:16px;transition:transform .25s ease,box-shadow .25s ease;cursor:pointer}
.subject-grid>div:hover{transform:translateY(-5px);box-shadow:0 16px 32px rgba(31,55,90,.14)}
.subject-grid>div:nth-child(1){background:linear-gradient(135deg,#eaf4ff,#f7fbff);border-color:#c5ddfa}
.subject-grid>div:nth-child(2){background:linear-gradient(135deg,#eeeaff,#faf9ff);border-color:#d5ccf7}
.subject-grid>div:nth-child(3){background:linear-gradient(135deg,#eaf9ed,#f8fff9);border-color:#c7e7cf}
.subject-grid>div:nth-child(4){background:linear-gradient(135deg,#fff3e6,#fffaf4);border-color:#f1d5b8}
.subject-grid>div:nth-child(5){background:linear-gradient(135deg,#e8f8fa,#f7fdfe);border-color:#c4e6ea}
.subject-grid>div:nth-child(6){background:linear-gradient(135deg,#fff0f3,#fff9fa);border-color:#f0ccd3}
.subject-grid>div:nth-child(7){background:linear-gradient(135deg,#fff8df,#fffdf4);border-color:#f0dda5}
.subject-grid>div:nth-child(8){background:linear-gradient(135deg,#f0edff,#faf9ff);border-color:#d8d0f5}
.subject-grid>div:nth-child(9){background:linear-gradient(135deg,#eafaff,#f8feff);border-color:#c3e6ef}
.subject-grid>div:nth-child(10){background:linear-gradient(135deg,#f4edff,#fcf9ff);border-color:#d9c9f2}
.subject-grid>div b{color:#172a43;font-weight:800}


.feature-grid>article{border:1px solid transparent;border-radius:20px;box-shadow:0 10px 28px rgba(31,55,90,.08);transition:transform .25s ease,box-shadow .25s ease}
.feature-grid>article:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(31,55,90,.14)}
.feature-grid>article:nth-child(1){background:linear-gradient(135deg,#eaf4ff,#f7fbff);border-color:#c5ddfa}
.feature-grid>article:nth-child(2){background:linear-gradient(135deg,#edfff4,#f8fffb);border-color:#c5e8d1}
.feature-grid>article:nth-child(3){background:linear-gradient(135deg,#f0ecff,#faf9ff);border-color:#d7cdf5}
.feature-grid>article:nth-child(4){background:linear-gradient(135deg,#fff3e3,#fffaf4);border-color:#f0d4b3}

.feature-grid>article{cursor:pointer}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:30px 8%;border-bottom:0;background:#fff}
.stats div{position:relative;text-align:center;border:1px solid transparent!important;border-radius:20px;padding:25px 15px;box-shadow:0 10px 28px rgba(31,55,90,.07);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.stats div:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(31,55,90,.13)}
.stats div:nth-child(1){background:linear-gradient(135deg,#eaf4ff,#f7fbff);border-color:#c5ddfa!important}
.stats div:nth-child(2){background:linear-gradient(135deg,#edfff4,#f8fffb);border-color:#c5e8d1!important}
.stats div:nth-child(3){background:linear-gradient(135deg,#f0ecff,#faf9ff);border-color:#d7cdf5!important}
.stats div:nth-child(4){background:linear-gradient(135deg,#fff3e3,#fffaf4);border-color:#f0d4b3!important}
.stats b{display:block;color:#1672e8;font-size:27px;margin-bottom:6px}
.stats span{font-size:13px;color:#687589;font-weight:600}

.stats div{cursor:pointer}

.courses>article[data-class-pdf]{cursor:pointer;transition:transform .3s ease,box-shadow .3s ease,filter .3s ease;}
.courses>article[data-class-pdf]:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px rgba(31,55,90,.18);filter:saturate(1.12);}
.courses>article[data-class-pdf]:active{transform:translateY(-3px) scale(.99);}

/* =====================================================
   EDUCOM STUDENT LOGIN
   ===================================================== */
body.modal-open{overflow:hidden}.student-login-nav{color:#1672e8!important;font-weight:800!important}.student-login-nav:hover{color:#0e5fc4!important}.login-modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:22px}.login-modal.open{display:flex}.login-backdrop{position:absolute;inset:0;background:#0d1d31cc;backdrop-filter:blur(5px)}.login-dialog{position:relative;z-index:1;width:min(470px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;background:#fff;border:1px solid #e1e8f0;border-radius:26px;box-shadow:0 30px 90px #091a2d45;padding:30px}.login-close{position:absolute;right:16px;top:14px;width:36px;height:36px;border:1px solid #e4eaf1;border-radius:50%;background:#fff;color:#536274;font-size:25px;line-height:1;cursor:pointer}.login-close:hover{background:#f5f8fb}.login-brand{display:flex;align-items:center;gap:12px;padding-right:42px;margin-bottom:25px}.login-brand img{width:50px;height:50px;object-fit:contain}.login-brand strong,.login-brand span{display:block}.login-brand strong{font-size:14px;letter-spacing:.7px}.login-brand span{font-size:11px;color:#738095;margin-top:3px}.login-heading label{display:inline-block;font-size:10px;letter-spacing:1.8px;font-weight:850;color:#1672e8}.login-heading h2{font-size:32px;line-height:1.1;letter-spacing:-1.2px;margin:8px 0 10px;color:#102b48}.login-heading p{font-size:13px;color:#6b788b;line-height:1.65}.login-form{margin-top:23px}.field-label{display:block;font-size:11px;color:#526175;font-weight:800;margin:0 0 7px}.login-form input{width:100%;height:49px;border:1px solid #d7e0ea;border-radius:11px;padding:0 14px;font:inherit;font-size:14px;color:#12233b;outline:none;margin-bottom:16px;background:#fbfdff}.login-form input:focus{border-color:#83b9ef;box-shadow:0 0 0 4px #1672e814}.login-form input::placeholder{color:#9aa6b5}.login-primary-btn,.login-secondary-btn{width:100%;height:49px;border-radius:11px;padding:0 16px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:.18s;border:0}.login-primary-btn{background:#1672e8;color:#fff;box-shadow:0 10px 25px #1672e82b}.login-primary-btn:hover:not(:disabled){transform:translateY(-1px);background:#1268d5}.login-secondary-btn{margin-top:10px;background:#f6f8fb;border:1px solid #dce4ec;color:#30455e}.login-secondary-btn:hover:not(:disabled){background:#eef3f8}.login-primary-btn:disabled,.login-secondary-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-message{min-height:21px;font-size:12px;margin-top:11px;line-height:1.5}.login-message.error{color:#b43a3a}.login-message.success{color:#246b3d}.login-message.info{color:#5d6e84}.login-security-note{display:flex;gap:10px;align-items:flex-start;background:#f7faff;border:1px solid #e3edf8;border-radius:13px;padding:13px;margin-top:18px}.login-security-note>span{font-size:17px;line-height:1}.login-security-note strong,.login-security-note small{display:block}.login-security-note strong{font-size:11px;color:#2f4760}.login-security-note small{font-size:10.5px;color:#748196;margin-top:3px}.is-hidden{display:none!important}.login-step-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;font-size:10px;color:#8190a2;font-weight:750;text-transform:uppercase;letter-spacing:1px}.login-back-btn{border:0;background:none;padding:0;color:#1672e8;font:inherit;cursor:pointer;text-transform:none;letter-spacing:0;font-size:12px}.student-welcome-icon{width:64px;height:64px;border-radius:18px;background:#eaf8ef;color:#246b3d;display:grid;place-items:center;font-size:28px;font-weight:900;margin:5px auto 20px}.center-heading{text-align:center}.student-account-card{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#f7f9fc;border:1px solid #e0e7ef;border-radius:15px;padding:15px;margin-top:20px}.student-account-card div{padding:5px 10px}.student-account-card div+div{border-left:1px solid #e0e7ef}.student-account-card small,.student-account-card strong{display:block}.student-account-card small{font-size:10px;color:#7b8799}.student-account-card strong{font-size:13px;color:#16304a;margin-top:3px}.api-transport-frame{position:absolute;width:1px;height:1px;left:-9999px;top:-9999px;border:0;opacity:0;pointer-events:none}.login-spinner{display:inline-block;width:13px;height:13px;border:2px solid #ffffff66;border-top-color:#fff;border-radius:50%;vertical-align:-2px;margin-right:8px;animation:educom-spin .7s linear infinite}@keyframes educom-spin{to{transform:rotate(360deg)}}
@media(max-width:540px){.login-modal{padding:10px}.login-dialog{border-radius:20px;padding:23px 19px;max-height:calc(100vh - 20px)}.login-heading h2{font-size:29px}.student-account-card{grid-template-columns:1fr}.student-account-card div+div{border-left:0;border-top:1px solid #e0e7ef;padding-top:12px}}

/* Student portal dashboard */
.dashboard-login-view{padding-top:2px}.login-dialog:has(.dashboard-login-view:not(.is-hidden)){width:min(900px,100%)}
.portal-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid #e6edf4}.portal-topbar label,.portal-section-heading label{display:inline-block;font-size:10px;letter-spacing:1.8px;font-weight:850;color:#1672e8}.portal-topbar h2{font-size:31px;line-height:1.12;letter-spacing:-1.1px;margin:7px 0 7px;color:#102b48}.portal-topbar p{margin:0;font-size:13px;color:#6b788b}.portal-status{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #dcefe2;background:#f4fbf6;border-radius:999px;font-size:11px;font-weight:800;color:#246b3d;white-space:nowrap}.portal-status span{width:8px;height:8px;border-radius:50%;background:#2e9a55}.portal-student-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:#f7f9fc;border:1px solid #e0e7ef;border-radius:15px;padding:13px;margin-top:18px}.portal-student-strip div{padding:4px 11px}.portal-student-strip div+div{border-left:1px solid #e0e7ef}.portal-student-strip small,.portal-student-strip strong{display:block}.portal-student-strip small{font-size:10px;color:#7b8799}.portal-student-strip strong{font-size:13px;color:#16304a;margin-top:4px}.portal-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:24px 0 13px}.portal-section-heading h3{font-size:18px;color:#173654;margin:5px 0 0}.portal-section-heading>span{font-size:11px;color:#7a8798;text-align:right}.portal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.portal-card{position:relative;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;text-align:left;border:1px solid #dde6ef;background:#fff;border-radius:15px;padding:15px 14px;cursor:pointer;transition:.18s;box-shadow:0 6px 20px rgba(19,56,93,.05)}.portal-card:hover{transform:translateY(-1px);border-color:#bdd6ef;box-shadow:0 12px 28px rgba(19,56,93,.09)}.portal-card-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#eef6ff;font-size:19px}.portal-card b,.portal-card small{display:block}.portal-card b{font-size:13px;color:#173654}.portal-card small{font-size:10.5px;color:#78869a;line-height:1.45;margin-top:3px}.portal-card>strong{font-size:18px;color:#1672e8}.portal-card em{font-size:9px;font-style:normal;font-weight:800;color:#8a6a17;background:#fff8e4;border:1px solid #f1e1ad;border-radius:999px;padding:5px 7px;white-space:nowrap}.portal-coming{cursor:default}.portal-coming:hover{transform:none;border-color:#dde6ef;box-shadow:0 6px 20px rgba(19,56,93,.05)}.portal-bottom-row{display:flex;align-items:center;gap:12px;margin-top:16px}.portal-security-card{display:flex;align-items:flex-start;gap:10px;flex:1;background:#f7faff;border:1px solid #e3edf8;border-radius:13px;padding:12px}.portal-security-card>span{font-size:17px}.portal-security-card b,.portal-security-card small{display:block}.portal-security-card b{font-size:11px;color:#2f4760}.portal-security-card small{font-size:10px;color:#748196;line-height:1.45;margin-top:3px}.portal-logout-btn{width:130px;flex:0 0 130px;margin-top:0}@media(max-width:720px){.login-dialog:has(.dashboard-login-view:not(.is-hidden)){width:min(100%,620px)}.portal-topbar{flex-direction:column}.portal-section-heading{align-items:flex-start;flex-direction:column}.portal-section-heading>span{text-align:left}.portal-grid{grid-template-columns:1fr}.portal-bottom-row{flex-direction:column;align-items:stretch}.portal-logout-btn{width:100%;flex-basis:auto}}@media(max-width:540px){.portal-student-strip{grid-template-columns:1fr}.portal-student-strip div+div{border-left:0;border-top:1px solid #e0e7ef;padding-top:10px}.portal-topbar h2{font-size:27px}}


/* =====================================================
   FULL-SCREEN STUDENT PORTAL
   ===================================================== */
body.student-portal-active{background:#f4f7fb}
.login-modal.portal-fullscreen{padding:0;align-items:stretch;justify-content:stretch;background:#f4f7fb}
.login-modal.portal-fullscreen .login-backdrop{display:none}
.login-modal.portal-fullscreen .login-dialog{width:100%;height:100vh;max-height:none;overflow:auto;border:0;border-radius:0;box-shadow:none;padding:0;background:#f4f7fb}
.login-modal.portal-fullscreen .login-brand,.login-modal.portal-fullscreen .login-close{display:none}
.login-modal.portal-fullscreen .dashboard-login-view{display:block!important;min-height:100vh;padding:0}
.portal-appbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px clamp(18px,4vw,56px);background:rgba(255,255,255,.96);border-bottom:1px solid #dde6ef;box-shadow:0 5px 20px rgba(19,56,93,.05);backdrop-filter:blur(12px)}
.portal-brand{display:flex;align-items:center;gap:11px;min-width:0}.portal-brand img{width:44px;height:44px;object-fit:contain}.portal-brand strong,.portal-brand span{display:block}.portal-brand strong{font-size:13px;letter-spacing:.8px;color:#102b48}.portal-brand span{font-size:10px;color:#738095;margin-top:2px}
.portal-appbar-actions{display:flex;align-items:center;gap:10px}.portal-user-chip{display:flex;flex-direction:column;align-items:flex-end;padding-right:6px}.portal-user-chip strong{font-size:11px;color:#16304a}.portal-user-chip small{font-size:9px;color:#78869a;margin-top:2px}.portal-header-btn,.portal-logout-header{height:38px;padding:0 14px;border-radius:9px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.portal-header-btn{background:#fff;border:1px solid #dbe5ee;color:#30455e}.portal-header-btn:hover{background:#f4f8fb}.portal-logout-header{border:1px solid #d9e2eb;background:#f6f8fb;color:#30455e}.portal-logout-header:hover{background:#edf2f7}.portal-main{width:min(1180px,92vw);margin:0 auto;padding:28px 0 42px}.portal-welcome-card{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:30px;border:1px solid #dce6ef;border-radius:22px;background:linear-gradient(135deg,#ffffff,#f8fbff);box-shadow:0 16px 40px rgba(19,56,93,.06)}.portal-welcome-card label,.portal-profile-heading label,.portal-section-heading label{display:inline-block;font-size:10px;letter-spacing:1.8px;font-weight:850;color:#1672e8}.portal-welcome-card h2{font-size:34px;line-height:1.1;letter-spacing:-1.2px;margin:8px 0 9px;color:#102b48}.portal-welcome-card p{margin:0;max-width:720px;font-size:13px;line-height:1.7;color:#6b788b}.portal-profile-section{margin-top:24px}.portal-profile-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:12px}.portal-profile-heading h3{font-size:18px;color:#173654;margin:5px 0 0}.portal-profile-heading>span{font-size:11px;color:#7a8798;text-align:right}.portal-profile-strip{grid-template-columns:repeat(3,1fr);gap:0;border-radius:17px;background:#fff;box-shadow:0 10px 28px rgba(19,56,93,.05);padding:0;overflow:hidden}.portal-profile-strip>div{padding:17px 18px}.portal-profile-strip>div+div{border-left:1px solid #e3eaf1}.portal-profile-strip>div:nth-child(4),.portal-profile-strip>div:nth-child(5),.portal-profile-strip>div:nth-child(6){border-top:1px solid #e3eaf1}.portal-profile-strip small,.portal-profile-strip strong{display:block}.portal-profile-strip small{font-size:9px;color:#7b8799;letter-spacing:.2px}.portal-profile-strip strong{font-size:13px;color:#16304a;margin-top:5px;word-break:break-word}.portal-login-hub{margin-top:28px}.portal-grid{grid-template-columns:repeat(3,1fr);gap:14px}.portal-card{min-height:122px;padding:18px}.portal-bottom-row{margin-top:22px}.portal-exit-bottom-btn{width:170px;flex:0 0 170px;margin-top:0}
@media(max-width:900px){.portal-profile-strip{grid-template-columns:repeat(2,1fr)}.portal-profile-strip>div+div{border-left:0}.portal-profile-strip>div:nth-child(even){border-left:1px solid #e3eaf1}.portal-profile-strip>div:nth-child(3),.portal-profile-strip>div:nth-child(4){border-top:1px solid #e3eaf1}.portal-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.portal-appbar{padding:12px 16px}.portal-user-chip{display:none}.portal-main{width:min(94vw,560px);padding-top:18px}.portal-welcome-card{padding:22px;flex-direction:column}.portal-welcome-card h2{font-size:29px}.portal-profile-heading{flex-direction:column;align-items:flex-start}.portal-profile-heading>span{text-align:left}.portal-profile-strip{grid-template-columns:1fr}.portal-profile-strip>div,.portal-profile-strip>div:nth-child(even),.portal-profile-strip>div:nth-child(3),.portal-profile-strip>div:nth-child(4){border-left:0;border-top:1px solid #e3eaf1}.portal-profile-strip>div:first-child{border-top:0}.portal-grid{grid-template-columns:1fr}.portal-bottom-row{flex-direction:column;align-items:stretch}.portal-exit-bottom-btn{width:100%;flex-basis:auto}.portal-appbar-actions{gap:6px}.portal-header-btn,.portal-logout-header{padding:0 10px;font-size:10px}.portal-brand img{width:40px;height:40px}.portal-brand strong{font-size:11px}}

/* =====================================================
   STUDENT PROFILE - LIVE DATA
   ===================================================== */
.student-profile-card{background:#fff;border:1px solid #dce6ef;border-radius:22px;box-shadow:0 14px 38px rgba(19,56,93,.07);overflow:hidden}
.student-profile-hero{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;padding:24px;border-bottom:1px solid #e6edf4;background:linear-gradient(135deg,#fff,#f7fbff)}
.student-photo-wrap{width:250px;height:300px;display:flex;align-items:center;justify-content:center;overflow:visible;background:transparent;border:0;box-shadow:none;padding:0;box-sizing:border-box;position:relative}
.student-profile-photo{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;object-position:center;border-radius:18px;background:transparent;position:relative;z-index:2;flex:0 0 auto}
.student-photo-fallback{position:absolute;inset:12px;display:none;place-items:center;text-align:center;padding:12px;box-sizing:border-box;border-radius:16px;background:linear-gradient(135deg,#edf6ff,#f7fbff);color:#6d7b8c;font-size:14px;font-weight:700;z-index:1}
.student-profile-kicker{display:inline-block;font-size:10px;letter-spacing:1.8px;font-weight:850;color:#1672e8}
.student-profile-identity h2{font-size:30px;line-height:1.12;letter-spacing:-.8px;color:#102b48;margin:7px 0 5px}
.student-profile-identity p{margin:0;color:#6d7b8c;font-size:12px;line-height:1.5;word-break:break-word}
.student-profile-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.student-profile-badges>span{min-width:120px;padding:10px 12px;border:1px solid #dfe8f0;border-radius:12px;background:#f9fbfd}
.student-profile-badges small,.student-profile-badges strong{display:block}
.student-profile-badges small{font-size:9px;color:#7c8999}
.student-profile-badges strong{font-size:12px;color:#173654;margin-top:4px}
.student-profile-groups{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px}
.student-profile-group{border:1px solid #e2eaf1;border-radius:16px;background:#fbfdff;padding:16px}
.student-profile-group-title{display:flex;align-items:center;gap:10px;margin-bottom:13px}
.student-profile-group-title>span{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#eef6ff;font-size:17px}
.student-profile-group-title b,.student-profile-group-title small{display:block}
.student-profile-group-title b{font-size:12px;color:#173654}
.student-profile-group-title small{font-size:9.5px;color:#7b8798;margin-top:3px}
.profile-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.profile-detail-grid>div{padding:10px 11px;background:#fff;border:1px solid #e6edf3;border-radius:10px;min-width:0}
.profile-detail-grid small,.profile-detail-grid strong{display:block}
.profile-detail-grid small{font-size:9px;color:#7b8798}
.profile-detail-grid strong{font-size:11px;color:#203c56;margin-top:4px;line-height:1.45;word-break:break-word}
.student-profile-address-group{grid-column:1 / -1}
.profile-address{padding:12px 13px;background:#fff;border:1px solid #e6edf3;border-radius:10px;color:#203c56;font-size:11px;line-height:1.6;word-break:break-word}
#profileLoadStatus{font-size:10px;color:#7a8798;text-align:right}
#profileLoadStatus:empty{display:none}
@media(max-width:820px){.student-profile-groups{grid-template-columns:1fr}.student-profile-address-group{grid-column:auto}}
@media(max-width:620px){.student-profile-hero{grid-template-columns:1fr;justify-items:center;text-align:center}.student-profile-identity{width:100%}.student-profile-badges{justify-content:center}.student-profile-badges>span{min-width:100px;flex:1}.student-photo-wrap{width:220px;height:280px}.student-profile-identity h2{font-size:26px}.profile-detail-grid{grid-template-columns:1fr}.student-profile-groups{padding:13px}.student-profile-group{padding:13px}#profileLoadStatus{align-self:flex-start;text-align:left}}

/* Student result section */
.portal-result-section{margin-top:26px}
.result-session-control{display:flex;align-items:center;gap:8px}
.result-session-control label{font-size:10px!important;letter-spacing:.3px!important;color:#6f7e91!important;font-weight:800!important}
.result-session-control select{min-width:122px;height:38px;padding:0 34px 0 12px;border:1px solid #d7e2ec;border-radius:10px;background:#fff;color:#173654;font:inherit;font-size:11px;font-weight:800;outline:none;cursor:pointer}
.result-session-control select:focus{border-color:#9fc4e9;box-shadow:0 0 0 3px rgba(22,114,232,.08)}
.result-status{margin:0 0 12px;padding:10px 13px;border:1px solid #dde7f0;background:#fff;border-radius:11px;font-size:10.5px;color:#768397}
.result-status.success{border-color:#d8ebdf;background:#f5fbf7;color:#2c6d43}
.result-status.error{border-color:#f0d7d7;background:#fff8f8;color:#9a4343}
.student-result-card{display:none;background:#fff;border:1px solid #dce6ef;border-radius:22px;box-shadow:0 14px 38px rgba(19,56,93,.07);overflow:hidden}
.student-result-card.is-visible{display:block}
.result-summary-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px;border-bottom:1px solid #e6edf4;background:linear-gradient(135deg,#fff,#f7fbff)}
.result-summary-header h3{font-size:25px;line-height:1.15;color:#102b48;margin:6px 0 4px}
.result-summary-header p{margin:0;color:#6d7b8c;font-size:11px}
.result-remark{max-width:280px;padding:9px 12px;border:1px solid #dfe8f0;border-radius:10px;background:#f9fbfd;color:#173654;font-size:11px;font-weight:800;line-height:1.4;text-align:right}.result-remark.result-pass{color:#1e7a43;border-color:#bfe3cc;background:#effaf3}.result-remark.result-fail{color:#c63d3d;border-color:#efc3c3;background:#fff1f1}
.result-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:18px}
.result-summary-grid>div{padding:11px 12px;background:#fbfdff;border:1px solid #e4ebf1;border-radius:11px;min-width:0}
.result-summary-grid small,.result-summary-grid strong{display:block}
.result-summary-grid small{font-size:9px;color:#7b8798}
.result-summary-grid strong{font-size:11.5px;color:#203c56;margin-top:4px;line-height:1.4;word-break:break-word}
.result-summary-grid .result-rank-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#ffffff,#f7f9ff);border-color:#d7e3f0}
.result-summary-grid .result-rank-card:before{content:'';position:absolute;inset:0 auto 0 0;width:4px;border-radius:11px 0 0 11px}
.result-summary-grid .result-rank-card small{font-weight:800;letter-spacing:.1px}
.result-summary-grid .result-rank-card strong{font-size:18px;line-height:1.05;margin-top:7px}
.result-class-rank:before{background:linear-gradient(180deg,#2563eb,#60a5fa)}
.result-class-rank small{color:#2563eb}
.result-class-rank strong{color:#174ea6}
.result-institution-rank:before{background:linear-gradient(180deg,#7c3aed,#c084fc)}
.result-institution-rank small{color:#7c3aed}
.result-institution-rank strong{color:#5b21b6}
.result-summary-grid .result-rank-card:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,39,66,.06)}
.result-tests-section{border-top:1px solid #e6edf4;padding:18px}
.result-tests-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:11px}
.result-tests-heading b{display:block;font-size:12px;color:#173654}
.result-tests-heading small{display:block;font-size:9.5px;color:#7b8798;margin-top:3px}
.result-tests-heading>span{font-size:9px;font-weight:800;color:#6d7b8c;white-space:nowrap}
.result-tests-grid{display:grid;gap:9px}
.result-test-card{display:grid;grid-template-columns:36px 1fr 1fr 1.4fr 1.1fr;align-items:center;gap:10px;padding:11px 12px;border:1px solid #e2eaf1;border-radius:12px;background:#fbfdff}
.result-test-number{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#eef6ff;color:#1672e8;font-size:10px;font-weight:900}
.result-test-card small,.result-test-card strong{display:block}
.result-test-card small{font-size:8.5px;color:#7b8798}
.result-test-card strong{font-size:10.5px;color:#203c56;margin-top:3px;line-height:1.35;word-break:break-word}
.result-empty{padding:16px;border:1px dashed #d6e0e9;border-radius:11px;background:#fbfdff;text-align:center;font-size:10.5px;color:#7a8797}
@media(max-width:980px){.result-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.result-session-control{width:100%;justify-content:space-between}.result-session-control select{min-width:150px}.result-summary-header{flex-direction:column}.result-remark{max-width:none;text-align:left}.result-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-test-card{grid-template-columns:34px 1fr 1fr}.result-test-card .result-test-subject{grid-column:2 / -1}.result-test-card>div:last-child{grid-column:2 / -1}}
@media(max-width:430px){.result-summary-grid{grid-template-columns:1fr}.result-session-control{align-items:flex-start;flex-direction:column}.result-session-control select{width:100%}}


/* Monthly report section */
.portal-monthly-section{margin-top:26px}
.portal-monthly-section .portal-profile-heading{margin-bottom:12px}
.portal-monthly-section .portal-profile-heading>span{font-size:11px;color:#7a8798;text-align:right}
.monthly-report-status{margin:0 0 12px;padding:10px 13px;border:1px solid #dde7f0;background:#fff;border-radius:11px;font-size:10.5px;color:#768397}
.monthly-report-status.success{border-color:#d8ebdf;background:#f5fbf7;color:#2c6d43}
.monthly-report-status.error{border-color:#f0d7d7;background:#fff8f8;color:#9a4343}
.monthly-report-card{display:none;background:#fff;border:1px solid #dce6ef;border-radius:22px;box-shadow:0 14px 38px rgba(19,56,93,.07);overflow:hidden}
.monthly-report-card.is-visible{display:block}
.monthly-report-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px;border-bottom:1px solid #e6edf4;background:linear-gradient(135deg,#fff,#f7fbff)}
.monthly-report-header h3{font-size:25px;line-height:1.15;color:#102b48;margin:6px 0 4px}
.monthly-report-header p{margin:0;color:#6d7b8c;font-size:11px}
.monthly-report-header-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.monthly-report-header-tags span{min-width:90px;padding:9px 10px;border:1px solid #dfe8f0;border-radius:10px;background:#f9fbfd;text-align:left}
.monthly-report-header-tags small,.monthly-report-header-tags strong{display:block}
.monthly-report-header-tags small{font-size:8.5px;color:#7b8798}
.monthly-report-header-tags strong{font-size:11px;color:#203c56;margin-top:3px}
.monthly-report-block{padding:18px;border-bottom:1px solid #e6edf4}
.monthly-report-block-title{display:flex;align-items:center;gap:10px;margin-bottom:13px}
.monthly-report-block-title>span{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#eef6ff;font-size:17px}
.monthly-report-block-title b,.monthly-report-block-title small{display:block}
.monthly-report-block-title b{font-size:12px;color:#173654}
.monthly-report-block-title small{font-size:9.5px;color:#7b8798;margin-top:3px}
.monthly-report-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.monthly-report-grid>div{padding:11px 12px;background:#fbfdff;border:1px solid #e4ebf1;border-radius:11px;min-width:0}
.monthly-report-grid small,.monthly-report-grid strong{display:block}
.monthly-report-grid small{font-size:9px;color:#7b8798}
.monthly-report-grid strong{font-size:11.5px;color:#203c56;margin-top:4px;line-height:1.4;word-break:break-word}
#monthlyReportAttendanceTrend.trend-up{color:#1e7a43}
#monthlyReportAttendanceTrend.trend-down{color:#c63d3d}
.monthly-report-remark{padding:18px}
.monthly-report-remark-text{padding:14px;border:1px solid #e2eaf1;border-radius:12px;background:#fbfdff;color:#203c56;font-size:11px;line-height:1.6}
@media(max-width:980px){.monthly-report-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.portal-monthly-section .portal-profile-heading{flex-direction:column;align-items:flex-start}.portal-monthly-section .portal-profile-heading>span{text-align:left}.monthly-report-header{flex-direction:column}.monthly-report-header-tags{justify-content:flex-start}.monthly-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.monthly-report-grid{grid-template-columns:1fr}.monthly-report-header-tags span{flex:1;min-width:0}}



/* =====================================================
   PREMIUM STUDENT PORTAL - V21
   ===================================================== */
body.student-portal-active{
  background:
    radial-gradient(circle at 7% 2%, rgba(99,102,241,.13), transparent 25%),
    radial-gradient(circle at 94% 7%, rgba(14,165,233,.13), transparent 24%),
    radial-gradient(circle at 80% 90%, rgba(16,185,129,.10), transparent 25%),
    linear-gradient(180deg,#f5f8ff 0%,#eef4fb 45%,#f6f9fc 100%);
}

.login-modal.portal-fullscreen{
  background:transparent;
}

.login-modal.portal-fullscreen .login-dialog{
  background:
    radial-gradient(circle at 12% 8%, rgba(255,255,255,.95), transparent 28%),
    linear-gradient(180deg,rgba(247,250,255,.96),rgba(238,244,251,.98));
}

.portal-appbar{
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(245,249,255,.92));
  border-bottom:1px solid rgba(148,163,184,.24);
  box-shadow:0 10px 35px rgba(30,58,95,.08);
}
.portal-brand img{
  filter:drop-shadow(0 6px 13px rgba(37,99,235,.18));
}
.portal-user-chip{
  padding:7px 11px;
  border:1px solid #dbe4f0;
  border-radius:12px;
  background:linear-gradient(135deg,#ffffff,#f4f8ff);
}
.portal-header-btn,.portal-logout-header{
  border-radius:11px;
}
.portal-header-btn{
  background:linear-gradient(135deg,#ffffff,#f3f7fc);
}
.portal-logout-header{
  background:linear-gradient(135deg,#fff7f7,#fff);
  border-color:#f0d8d8;
  color:#b53a3a;
}

.portal-main{
  position:relative;
  isolation:isolate;
}
.portal-main:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(circle at 6% 16%,rgba(59,130,246,.08),transparent 18%),
    radial-gradient(circle at 96% 37%,rgba(168,85,247,.07),transparent 17%),
    radial-gradient(circle at 10% 76%,rgba(16,185,129,.06),transparent 18%);
}

.portal-welcome-card{
  border:1px solid rgba(147,197,253,.4);
  background:
    linear-gradient(135deg,rgba(255,255,255,.98),rgba(239,246,255,.96) 48%,rgba(236,253,245,.94));
  box-shadow:0 24px 60px rgba(30,64,175,.10);
  position:relative;
  overflow:hidden;
}
.portal-welcome-card:after{
  content:"";
  position:absolute;
  width:230px;
  height:230px;
  border-radius:50%;
  right:-70px;
  top:-95px;
  background:radial-gradient(circle,rgba(59,130,246,.15),transparent 68%);
}
.portal-status{
  position:relative;
  z-index:1;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(16,185,129,.10);
  border:1px solid rgba(16,185,129,.25);
  color:#0f766e;
  font-size:10px;
  font-weight:850;
}

.portal-profile-heading{
  margin-bottom:15px;
}
.portal-profile-heading label,
.portal-section-heading label{
  color:#2563eb;
}
.portal-profile-heading h3,
.portal-section-heading h3{
  color:#0f2742;
}
.portal-profile-section,
.portal-result-section,
.portal-monthly-section,
.portal-login-hub{
  position:relative;
}

.student-profile-card,
.student-result-card,
.monthly-report-card{
  border:1px solid rgba(148,163,184,.24);
  box-shadow:0 22px 55px rgba(15,39,66,.08);
}

.student-profile-hero{
  background:linear-gradient(135deg,#ffffff 0%,#eff6ff 56%,#f0fdf4 100%);
  border-bottom-color:#dbe7f5;
}
.student-photo-wrap{
  filter:drop-shadow(0 20px 28px rgba(37,99,235,.12));
}
.student-profile-kicker{
  color:#2563eb;
}
.student-profile-identity h2{
  color:#0f2742;
}
.student-profile-badges>span{
  background:linear-gradient(135deg,#ffffff,#f6f9ff);
  border-color:#dce7f3;
  box-shadow:0 7px 18px rgba(30,64,175,.04);
}
.student-profile-group{
  background:linear-gradient(135deg,#ffffff,#f8fbff);
  border-color:#e0e9f2;
  box-shadow:0 8px 20px rgba(30,64,175,.035);
}
.student-profile-group-title>span{
  background:linear-gradient(135deg,#dbeafe,#eef6ff);
  box-shadow:0 6px 16px rgba(59,130,246,.10);
}
.profile-detail-grid>div{
  background:linear-gradient(135deg,#ffffff,#fbfdff);
  border-color:#e4ebf4;
}
.profile-detail-grid strong{
  color:#173a5e;
}

.student-result-card{
  background:linear-gradient(180deg,#ffffff,#fbfdff);
}
.result-summary-header{
  background:linear-gradient(135deg,#ffffff,#eef6ff 60%,#f5f3ff);
}
.result-summary-grid>div{
  background:linear-gradient(135deg,#ffffff,#f9fbff);
  border-color:#e2eaf4;
}
.result-tests-section{
  background:linear-gradient(180deg,#fbfdff,#f6f9fd);
}
.result-test-card{
  background:linear-gradient(135deg,#ffffff,#f7fbff);
  border-color:#dfe8f2;
  box-shadow:0 6px 16px rgba(15,39,66,.035);
}
.result-test-number{
  background:linear-gradient(135deg,#dbeafe,#eef6ff);
}
.result-remark.result-pass{
  box-shadow:0 8px 18px rgba(34,197,94,.10);
}
.result-remark.result-fail{
  box-shadow:0 8px 18px rgba(239,68,68,.10);
}

.monthly-report-card{
  background:linear-gradient(180deg,#ffffff,#f8fbff);
}
.monthly-report-header{
  background:
    linear-gradient(135deg,#0f3b72 0%,#1d4ed8 50%,#0f766e 100%);
  color:#fff;
  border-bottom:0;
  position:relative;
  overflow:hidden;
}
.monthly-report-header:after{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  border-radius:50%;
  right:-80px;
  top:-120px;
  background:radial-gradient(circle,rgba(255,255,255,.20),transparent 68%);
}
.monthly-report-header .student-profile-kicker,
.monthly-report-header h3,
.monthly-report-header p{
  position:relative;
  z-index:1;
}
.monthly-report-header .student-profile-kicker{
  color:#dbeafe;
}
.monthly-report-header h3{
  color:#fff;
}
.monthly-report-header p{
  color:#dbeafe;
}
.monthly-report-header-tags{
  position:relative;
  z-index:1;
}
.monthly-report-header-tags span{
  background:rgba(255,255,255,.13);
  border-color:rgba(255,255,255,.22);
  backdrop-filter:blur(8px);
}
.monthly-report-header-tags small{
  color:#dbeafe;
}
.monthly-report-header-tags strong{
  color:#fff;
}
.monthly-report-block{
  background:linear-gradient(180deg,#fff,#fbfdff);
}
.monthly-report-block:nth-of-type(3){
  background:linear-gradient(180deg,#fbfffd,#f4fbf7);
}
.monthly-report-block-title>span{
  background:linear-gradient(135deg,#dbeafe,#ecfeff);
}
.monthly-report-grid>div{
  background:linear-gradient(135deg,#ffffff,#f7fbff);
  border-color:#dfe8f2;
  box-shadow:0 6px 14px rgba(15,39,66,.035);
}
.monthly-report-grid strong{
  color:#173a5e;
}
.fee-status-tile{
  background:linear-gradient(135deg,#ecfdf5,#f0fdf4)!important;
  border-color:#b9ebcf!important;
}
.fee-status-tile strong{
  color:#15803d!important;
}
.fee-due-tile{
  background:linear-gradient(135deg,#fff7ed,#fffaf5)!important;
  border-color:#fed7aa!important;
}
.fee-due-tile strong{
  color:#c2410c!important;
}
.monthly-report-remark{
  background:linear-gradient(180deg,#f8fbff,#ffffff);
}
.monthly-report-remark-text{
  background:linear-gradient(135deg,#eef6ff,#ffffff);
  border-color:#cfe0f5;
  box-shadow:0 10px 25px rgba(37,99,235,.06);
}

.portal-login-hub{
  margin-top:34px;
}
.portal-section-heading{
  margin-bottom:15px;
}
.portal-grid{
  gap:16px;
}
.portal-card{
  border:1px solid rgba(148,163,184,.26);
  border-radius:18px;
  background:linear-gradient(135deg,#ffffff,#f8fbff);
  box-shadow:0 12px 30px rgba(15,39,66,.055);
  min-height:128px;
}
.portal-card:nth-child(1) .portal-card-icon{
  background:linear-gradient(135deg,#dbeafe,#eef6ff);
}
.portal-card:nth-child(2) .portal-card-icon{
  background:linear-gradient(135deg,#dcfce7,#effdf5);
}
.portal-card:nth-child(3) .portal-card-icon{
  background:linear-gradient(135deg,#fef3c7,#fffbeb);
}
.portal-card:hover{
  transform:translateY(-3px);
  border-color:#bdd3ee;
  box-shadow:0 18px 38px rgba(30,64,175,.10);
}
.portal-card>strong{
  color:#2563eb;
}

.portal-security-card{
  background:linear-gradient(135deg,#eff6ff,#f5f3ff);
  border-color:#d9e4f4;
}

@media(max-width:680px){
  .monthly-report-header{
    padding:20px;
  }
  .monthly-report-block{
    padding:15px;
  }
}



/* =====================================================
   NOTICES & UPDATES - V22
   ===================================================== */
.portal-notices-section{margin-top:26px}
.portal-notices-section .portal-profile-heading{margin-bottom:12px}
.notice-date-control{display:flex;align-items:center;gap:8px}
.notice-date-control label{font-size:10px!important;letter-spacing:.3px!important;color:#6f7e91!important;font-weight:800!important}
.notice-date-control select{min-width:170px;height:38px;padding:0 34px 0 12px;border:1px solid #d7e2ec;border-radius:10px;background:linear-gradient(135deg,#fff,#f7fbff);color:#173654;font:inherit;font-size:11px;font-weight:800;outline:none;cursor:pointer;box-shadow:0 6px 16px rgba(30,64,175,.04)}
.notice-date-control select:focus{border-color:#9fc4e9;box-shadow:0 0 0 3px rgba(22,114,232,.08)}
.notice-status{margin:0 0 12px;padding:10px 13px;border:1px solid #dde7f0;background:#fff;border-radius:11px;font-size:10.5px;color:#768397}
.notice-status.success{border-color:#d8ebdf;background:#f5fbf7;color:#2c6d43}
.notice-status.error{border-color:#f0d7d7;background:#fff8f8;color:#9a4343}
.notice-card{display:none;border:1px solid rgba(148,163,184,.24);border-radius:22px;overflow:hidden;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 18px 45px rgba(15,39,66,.07)}
.notice-card.is-visible{display:block}
.notice-table-head{display:grid;grid-template-columns:110px 150px 170px minmax(0,1fr);gap:0;padding:12px 16px;background:linear-gradient(135deg,#0f3b72 0%,#1d4ed8 55%,#0f766e 100%);color:#fff}
.notice-table-head span{font-size:9px;font-weight:900;letter-spacing:.75px;text-transform:uppercase}
.notice-list{display:grid}
.notice-row{display:grid;grid-template-columns:110px 150px 170px minmax(0,1fr);border-top:1px solid #e4ebf3;background:linear-gradient(135deg,#fff,#fbfdff)}
.notice-row:nth-child(even){background:linear-gradient(135deg,#fbfdff,#f5f9fd)}
.notice-row:hover{background:linear-gradient(135deg,#eff6ff,#f0fdf4)}
.notice-cell{min-width:0;padding:15px 16px;border-right:1px solid #edf1f5}
.notice-cell:last-child{border-right:0}
.notice-cell small{display:block;font-size:8px;color:#7b8798;margin-bottom:5px}
.notice-cell strong,.notice-cell span{display:block;font-size:10.5px;color:#173a5e;line-height:1.4;word-break:break-word}
.notice-class-cell strong{color:#2563eb}
.notice-subject-cell span{display:inline-block;padding:5px 8px;border-radius:8px;background:linear-gradient(135deg,#ede9fe,#eef2ff);border:1px solid #ddd6fe;color:#5b21b6;font-weight:800}
.notice-message-cell p{margin:0;color:#42576d;font-size:10.5px;line-height:1.65;word-break:break-word}
.notice-empty{padding:22px;border:1px dashed #d6e0e9;background:#fbfdff;text-align:center;color:#7a8797;font-size:10.5px}
@media(max-width:980px){.notice-table-head,.notice-row{grid-template-columns:95px 120px 145px minmax(0,1fr)}}
@media(max-width:680px){
  .portal-notices-section .portal-profile-heading{flex-direction:column;align-items:flex-start}
  .notice-date-control{width:100%;justify-content:space-between}
  .notice-date-control select{flex:1;min-width:0}
  .notice-table-head{display:none}
  .notice-row{display:grid;grid-template-columns:1fr 1fr;gap:0}
  .notice-cell{padding:12px 13px}
  .notice-date-cell,.notice-class-cell,.notice-subject-cell{border-bottom:1px solid #edf1f5}
  .notice-date-cell,.notice-class-cell{border-right:1px solid #edf1f5}
  .notice-subject-cell{grid-column:1 / -1;border-right:0}
  .notice-message-cell{grid-column:1 / -1;border-right:0;padding-top:13px}
}

/* V24: make Class Rank and Institutional Rank match all other result summary cards */
.result-summary-grid .result-rank-card{
  position:relative;
  overflow:hidden;
  padding:11px 12px;
  background:linear-gradient(135deg,#ffffff,#f9fbff);
  border:1px solid #e2eaf4;
  border-radius:11px;
  box-shadow:none;
  transform:none;
}
.result-summary-grid .result-rank-card:before{
  content:none;
}
.result-summary-grid .result-rank-card small{
  font-size:9px;
  color:#7b8798;
  font-weight:400;
  letter-spacing:0;
}
.result-summary-grid .result-rank-card strong{
  display:block;
  font-size:11.5px;
  color:#203c56;
  line-height:1.4;
  margin-top:4px;
  font-weight:700;
}
.result-summary-grid .result-rank-card:hover{
  transform:none;
  box-shadow:none;
}


/* V25: profile refinements */
.student-profile-identity > p#studentProfileSchool{display:none}
.family-detail-group{grid-column:1 / -1}
.family-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:680px){.family-detail-grid{grid-template-columns:1fr}}


/* =====================================================
   RESULT PDF DOWNLOAD
   A4 template follows the supplied EDUCOM result-sheet HTML style.
   ===================================================== */
.result-session-control{flex-wrap:wrap}
.result-download-btn{height:38px;padding:0 14px;border:1px solid #d7e2ec;border-radius:10px;background:#1672e8;color:#fff;font:inherit;font-size:10.5px;font-weight:850;cursor:pointer;white-space:nowrap;box-shadow:0 8px 18px rgba(22,114,232,.13);transition:.2s}
.result-download-btn:hover:not(:disabled){background:#0e5fc4;transform:translateY(-1px)}
.result-download-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}

.result-pdf-host{position:fixed;left:-100000px;top:0;width:210mm;z-index:-1;pointer-events:none}
.result-pdf-sheet{width:210mm;min-height:297mm;padding:16mm;margin:0;background:#fff;border:2px solid #111;position:relative;display:flex;flex-direction:column;justify-content:space-between;font-family:"Times New Roman",serif;color:#222;box-sizing:border-box;overflow:hidden;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.result-pdf-sheet *{box-sizing:border-box}
.result-pdf-logo{position:absolute;top:28px;left:28px;width:100px;height:125px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}
.result-pdf-logo img{width:100%;height:100%;object-fit:contain}
.result-pdf-since{margin-top:1px;font-size:12px;font-weight:bold;color:#555;white-space:nowrap}
.result-pdf-header{text-align:center;border-bottom:2px solid #1a73e8;padding-bottom:5px;margin-bottom:8px}
.result-pdf-header h1{margin:0;font-size:29px;line-height:1.05;color:#1a73e8}
.result-pdf-header h3{margin:2px 0 0;font-size:16px;line-height:1.05;font-style:italic;color:#555}
.result-pdf-header h4{margin:8px 0 0;font-size:17px;color:#444;font-weight:bold;line-height:1.4}
.result-pdf-header h2{margin:7px 0 0;font-size:21px;line-height:1.05;font-weight:bold;color:#1a73e8}
.result-pdf-header h5{margin:3px 0 0;font-size:14px;line-height:1.05;font-weight:normal;color:#444}
.result-pdf-student-layout{display:flex;align-items:stretch;width:100%;gap:12px;margin-top:10px;margin-bottom:14px}
.result-pdf-student-table{flex:1;min-width:0;border-collapse:collapse;font-size:15px;width:100%}
.result-pdf-student-table th,.result-pdf-student-table td{border:1px solid #666;padding:8px 10px;height:34px}
.result-pdf-student-table th{width:17%;text-align:left;background:#edf3ff;font-weight:bold;color:#222}
.result-pdf-student-table td{width:33%;background:#fff}
.result-pdf-photo-box{width:85px;flex-shrink:0;border:1px solid #555;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.result-pdf-photo-box img{width:100%;height:100%;display:block;object-fit:contain;object-position:center;background:#fff}
.result-pdf-marks{margin-top:15px}
.result-pdf-section-title{text-align:center;margin:0 0 10px;font-size:21px;color:#1a73e8;font-weight:bold}
.result-pdf-marks-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
.result-pdf-marks-section{min-width:0}
.result-pdf-marks-section-title{text-align:center;margin:0 0 5px;font-size:13px;font-weight:bold;color:#444}
.result-pdf-marks table{width:100%;border-collapse:collapse;font-size:10.5px;table-layout:fixed}
.result-pdf-marks th,.result-pdf-marks td{border:1px solid #333;padding:5px 3px;text-align:center;vertical-align:middle;overflow-wrap:anywhere}
.result-pdf-marks th{background:#e8f0fe;font-size:10.5px;font-weight:bold}
.result-pdf-marks tbody tr:nth-child(even){background:#f8fbff}
.result-pdf-summary{margin-top:12px;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;width:100%}
.result-pdf-card{padding:5px 4px;text-align:center;border-radius:6px;border:1px solid #000;font-weight:bold;font-size:10.5px;min-height:42px;display:flex;flex-direction:column;justify-content:center;align-items:center;line-height:1.15;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.result-pdf-card>div:first-child{font-size:10px}.result-pdf-card>div:nth-child(2){font-size:12px;margin-top:2px}
.result-pdf-card.fullmarks{background:#e8f5d8}.result-pdf-card.total{background:#e1f0fb}.result-pdf-card.percent{background:#f1e4f7}.result-pdf-card.attendance{background:#fff1cc}.result-pdf-card.result{background:#e8f5e9}.result-pdf-card.reward-score{background:#fff0d9}.result-pdf-card.champion-level{background:#e6e0f5}.result-pdf-card.best-subject{background:#e1f3e8}.result-pdf-card.weak-subject{background:#fde4e4}.result-pdf-card.overall-grade{background:#e8edf8}.result-pdf-card.class-rank{background:#e9f2ff}.result-pdf-card.institutional-rank{background:#eee8f7}.result-pdf-card.performance{background:#e5f5f5}.result-pdf-card.teacher-remarks{background:#f3eee5;grid-column:span 2;min-height:42px}
.result-pdf-card.performance.best{background:#fff3e0;color:#e65100}.result-pdf-card.performance.better{background:#e8eaf6;color:#283593}.result-pdf-card.performance.excellent{background:#e8f5e9;color:#246b3d}.result-pdf-card.performance.good{background:#eef6ff;color:#1a4d75}.result-pdf-card.performance.poor{background:#fde4e4;color:#9b3535}
.result-pdf-card.teacher-remarks>div:first-child{font-size:10px}.result-pdf-card.teacher-remarks>div:nth-child(2){font-size:9.5px;font-weight:normal;line-height:1.15}
.result-pdf-footer{margin-top:auto;width:100%;display:flex;justify-content:space-between;align-items:flex-end;padding-top:70px;padding-bottom:15mm;font-size:18px}
.result-pdf-sign-box{width:40%;text-align:center;font-weight:bold}.result-pdf-sign-box hr{border:none;border-top:2px solid #000;margin:0 0 12px;width:100%}.result-pdf-signature-name{font-weight:bold;font-size:18px;margin:8px 0 4px}
.result-pdf-no-photo{font-size:11px;color:#777;text-align:center;padding:8px}
@media(max-width:900px){.result-session-control{justify-content:flex-end}.result-download-btn{margin-top:0}}


/* =====================================================
   PDF NOTES - WEBSITE STUDENT PORTAL
   ===================================================== */
.portal-pdf-notes-section{margin-top:26px;position:relative}
.pdf-notes-subject-control{display:flex;align-items:center;gap:8px}
.pdf-notes-subject-control label{font-size:10px!important;letter-spacing:.3px!important;color:#6f7e91!important;font-weight:800!important}
.pdf-notes-subject-control select{min-width:190px;height:38px;padding:0 34px 0 12px;border:1px solid #d7e2ec;border-radius:10px;background:linear-gradient(135deg,#fff,#f7fbff);color:#173654;font:inherit;font-size:11px;font-weight:800;outline:none;cursor:pointer;box-shadow:0 6px 16px rgba(30,64,175,.04)}
.pdf-notes-subject-control select:focus{border-color:#9fc4e9;box-shadow:0 0 0 3px rgba(22,114,232,.08)}
.pdf-notes-subject-control select:disabled{opacity:.55;cursor:not-allowed}
.pdf-notes-status{margin:0 0 12px;padding:10px 13px;border:1px solid #dde7f0;background:#fff;border-radius:11px;font-size:10.5px;color:#768397}
.pdf-notes-status.success{border-color:#d8ebdf;background:#f5fbf7;color:#2c6d43}
.pdf-notes-status.error{border-color:#f0d7d7;background:#fff8f8;color:#9a4343}
.pdf-notes-card{display:none;border:1px solid rgba(148,163,184,.24);border-radius:22px;overflow:hidden;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 18px 45px rgba(15,39,66,.07)}
.pdf-notes-card.is-visible{display:block}
.pdf-notes-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px}
.pdf-note-item{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:8px 12px;padding:15px;border:1px solid #e0e8f1;border-radius:15px;background:linear-gradient(135deg,#fff,#f8fbff);box-shadow:0 7px 18px rgba(15,39,66,.035)}
.pdf-note-item:hover{border-color:#c9daee;box-shadow:0 12px 25px rgba(30,64,175,.07)}
.pdf-note-meta{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.pdf-note-subject{display:inline-block;padding:5px 8px;border-radius:8px;background:linear-gradient(135deg,#ede9fe,#eef2ff);border:1px solid #ddd6fe;color:#5b21b6;font-size:9px;font-weight:850}
.pdf-note-meta small{font-size:8.5px;color:#7b8798;text-align:right}
.pdf-note-item h4{grid-column:1;grid-row:2;margin:0;color:#173a5e;font-size:11px;line-height:1.5;font-weight:800;word-break:break-word}
.pdf-note-open-btn{grid-column:2;grid-row:2;align-self:center;height:36px;padding:0 12px;border:1px solid #cfe0f2;border-radius:9px;background:linear-gradient(135deg,#eff6ff,#ffffff);color:#1d4ed8;font:inherit;font-size:10px;font-weight:850;cursor:pointer;white-space:nowrap}
.pdf-note-open-btn:hover{background:#eaf2ff;border-color:#a9c7e8;transform:translateY(-1px)}
.pdf-notes-empty{padding:24px;border:1px dashed #d6e0e9;background:#fbfdff;text-align:center;color:#7a8797;font-size:10.5px}
.pdf-viewer-panel{margin-top:16px;border:1px solid rgba(148,163,184,.24);border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 20px 50px rgba(15,39,66,.09)}
.pdf-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:linear-gradient(135deg,#0f3b72,#1d4ed8 60%,#0f766e);color:#fff}
.pdf-viewer-header .student-profile-kicker{color:#dbeafe}
.pdf-viewer-header h4{margin:3px 0 0;color:#fff;font-size:13px;line-height:1.4;font-weight:800;word-break:break-word}
.pdf-viewer-close{height:34px;padding:0 12px;border:1px solid rgba(255,255,255,.28);border-radius:9px;background:rgba(255,255,255,.10);color:#fff;font:inherit;font-size:10px;font-weight:850;cursor:pointer;white-space:nowrap}
.pdf-viewer-close:hover{background:rgba(255,255,255,.18)}
.pdf-viewer-frame-wrap{height:min(76vh,760px);background:#1e293b}
.pdf-viewer-frame-wrap iframe{width:100%;height:100%;border:0;display:block;background:#fff}
@media(max-width:820px){.pdf-notes-list{grid-template-columns:1fr}}
@media(max-width:680px){.portal-pdf-notes-section .portal-profile-heading{flex-direction:column;align-items:flex-start}.pdf-notes-subject-control{width:100%;justify-content:space-between}.pdf-notes-subject-control select{flex:1;min-width:0}.pdf-viewer-header{align-items:flex-start;flex-direction:column}.pdf-viewer-close{align-self:flex-end}.pdf-viewer-frame-wrap{height:68vh}}

.material-action-card{appearance:none;width:100%;font:inherit;text-align:left;background:#fff;border:1px solid #e0e7ef;border-radius:18px;padding:27px;cursor:pointer;color:#12233b;display:flex;gap:14px;align-items:flex-start;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.material-action-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(23,54,91,.10);border-color:#b8d2ec}.material-action-card:focus-visible{outline:3px solid rgba(22,114,232,.20);outline-offset:3px}.material-action-card h3{font-size:18px;margin:0 0 5px}.material-action-card p{font-size:12.5px;color:#6d798a}.material-action-card small{display:block;margin-top:13px;color:#1672e8;font-size:10.5px;font-weight:800}.material-action-icon{font-size:27px;line-height:1.2}
.public-pdf-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:22px}.public-pdf-modal[hidden]{display:none}.public-pdf-backdrop{position:absolute;inset:0;background:rgba(8,24,41,.62);backdrop-filter:blur(5px)}.public-pdf-dialog{position:relative;width:min(1180px,96vw);max-height:92vh;overflow:auto;background:#f7fbff;border:1px solid rgba(255,255,255,.16);border-radius:26px;box-shadow:0 35px 100px rgba(0,0,0,.30)}body.public-pdf-open{overflow:hidden}.public-pdf-header{padding:25px 26px 20px;background:linear-gradient(125deg,#0f3b72,#176fc1 62%,#0f766e);color:#fff;display:flex;justify-content:space-between;gap:25px;align-items:flex-start}.public-pdf-kicker{display:block;font-size:10px;letter-spacing:2px;font-weight:850;color:#cfe7ff}.public-pdf-header h2{margin:7px 0 7px;font-size:clamp(24px,3vw,36px);line-height:1.08;letter-spacing:-1px}.public-pdf-header p{color:#dbe8f5;font-size:12.5px;max-width:650px}.public-pdf-close{width:40px;height:40px;border:1px solid rgba(255,255,255,.25);border-radius:11px;background:rgba(255,255,255,.10);color:#fff;font-size:16px;cursor:pointer;flex:0 0 auto}.public-pdf-close:hover{background:rgba(255,255,255,.18)}.public-pdf-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px 20px;background:#fff;border-bottom:1px solid #e5edf5}.public-pdf-filters label{display:flex;flex-direction:column;gap:7px;color:#5c6b7d;font-size:10px;letter-spacing:.4px;font-weight:800}.public-pdf-filters select{width:100%;height:42px;border:1px solid #d8e3ed;border-radius:11px;padding:0 12px;background:#f9fbfe;color:#173654;font:inherit;font-size:12px;font-weight:750;outline:none}.public-pdf-filters select:focus{border-color:#90b8de;box-shadow:0 0 0 3px rgba(22,114,232,.08)}.public-pdf-status{margin:16px 20px 12px;padding:11px 13px;border:1px solid #dce7f0;border-radius:11px;background:#fff;color:#718095;font-size:11px}.public-pdf-status.success{border-color:#d5e9dc;background:#f5fbf7;color:#2e6b43}.public-pdf-status.error{border-color:#efd7d7;background:#fff8f8;color:#984545}.public-pdf-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 20px 20px}.public-pdf-item{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:8px 14px;padding:15px 16px;background:#fff;border:1px solid #e1e9f1;border-radius:15px}.public-pdf-item-meta{grid-column:1/-1;display:flex;gap:9px;align-items:center;flex-wrap:wrap}.public-pdf-item-meta span{font-size:10px;font-weight:850;color:#1d5fa2;background:#edf6ff;border-radius:7px;padding:4px 7px}.public-pdf-item-meta small{font-size:9.5px;color:#758396}.public-pdf-item h3{grid-column:1;grid-row:2;margin:0;color:#203950;font-size:12px;line-height:1.45;font-weight:800;word-break:break-word}.public-pdf-view-btn{grid-column:2;grid-row:2;align-self:center;height:36px;padding:0 12px;border:1px solid #cfe0f2;border-radius:9px;background:linear-gradient(135deg,#eff6ff,#fff);color:#1d4ed8;font:inherit;font-size:10px;font-weight:850;cursor:pointer;white-space:nowrap}.public-pdf-view-btn:hover{background:#eaf2ff;border-color:#a9c7e8;transform:translateY(-1px)}.public-pdf-empty{grid-column:1/-1;padding:28px;text-align:center;border:1px dashed #d2deea;border-radius:14px;background:#fff;color:#768396;font-size:11px}.public-pdf-viewer{margin:0 20px 20px;border:1px solid rgba(148,163,184,.25);border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 18px 45px rgba(15,39,66,.08)}.public-pdf-viewer[hidden]{display:none}.public-pdf-viewer-header{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 16px;background:linear-gradient(135deg,#0f3b72,#1d4ed8 60%,#0f766e);color:#fff}.public-pdf-viewer-header span{font-size:9px;letter-spacing:1.3px;font-weight:850;color:#dbeafe}.public-pdf-viewer-header h3{margin:3px 0 0;color:#fff;font-size:12px;line-height:1.4}.public-pdf-viewer-close{height:34px;padding:0 12px;border:1px solid rgba(255,255,255,.28);border-radius:9px;background:rgba(255,255,255,.10);color:#fff;font:inherit;font-size:10px;font-weight:850;cursor:pointer}.public-pdf-viewer-close:hover{background:rgba(255,255,255,.18)}.public-pdf-viewer-frame-wrap{height:min(68vh,690px);background:#1e293b}.public-pdf-viewer-frame-wrap iframe{width:100%;height:100%;border:0;display:block;background:#fff}
@media(max-width:820px){.public-pdf-list{grid-template-columns:1fr}.public-pdf-filters{grid-template-columns:1fr}.public-pdf-header{padding:20px}.public-pdf-dialog{max-height:95vh;border-radius:20px}.public-pdf-viewer-frame-wrap{height:65vh}}
@media(max-width:540px){.public-pdf-modal{padding:0}.public-pdf-dialog{width:100vw;height:100vh;max-height:none;border-radius:0}.public-pdf-header{padding:18px 16px}.public-pdf-filters,.public-pdf-status,.public-pdf-list,.public-pdf-viewer{margin-left:0;margin-right:0}.public-pdf-filters{padding:14px 16px}.public-pdf-status{margin:12px 16px}.public-pdf-list{padding:0 16px 16px}.public-pdf-viewer{margin:0 16px 16px}.public-pdf-viewer-header{align-items:flex-start;flex-direction:column}.public-pdf-viewer-close{align-self:flex-end}}




/* Responsive layout fix — prevent text and cards from overlapping */

*,
*::before,
*::after {
  box-sizing: border-box;
}

.nav nav {
  flex-wrap: wrap;
}

.stats,
.subject-grid,
.courses,
.feature-grid,
.materials,
.principles,
.profile-detail-grid {
  min-width: 0;
}

.stats > div,
.subject-grid > div,
.courses > article,
.feature-grid > article,
.materials > article,
.principles > div {
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (max-width: 1100px) {
  .stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .subject-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .courses {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .feature-grid,
  .materials {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 950px) {
  .subject-grid,
  .courses {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 540px) {
  .courses,
  .feature-grid,
  .materials,
  .principles {
    grid-template-columns: minmax(0, 1fr);
  }

  .subject-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}



/* FIX: EDUCOM responsive navigation menu */
@media (max-width: 900px) {
  .nav {
    position: relative;
    flex-wrap: wrap;
  }

  .nav .menu {
    display: block;
    margin-left: auto;
  }

  .nav nav {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    padding: 12px 16px;
    box-sizing: border-box;
    background: #fff;
  }

  .nav nav.open {
    display: flex;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
  }

  .nav nav a,
  .nav nav > button,
  .nav nav .educom-my-orders {
    width: 100%;
    box-sizing: border-box;
    text-align: left;
  }

  .nav nav a {
    padding: 10px 12px;
  }
}


@media (max-width: 1100px) {
  .nav .menu {
    position: relative;
    z-index: 1002;
    pointer-events: auto;
    touch-action: manipulation;
    cursor: pointer;
  }
}


/* FIX: Make the mobile navigation menu visible */
@media (max-width: 1100px) {
  header.nav {
    position: sticky !important;
    top: 0;
    z-index: 99999 !important;
  }

  header.nav > #primaryNavigation {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: auto !important;
    max-height: calc(100vh - 78px);
    overflow-y: auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 4px !important;
    padding: 12px 16px 20px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 100000 !important;
  }

  header.nav > #primaryNavigation.open {
    display: flex !important;
  }

  header.nav > #primaryNavigation.open a,
  header.nav > #primaryNavigation.open button {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}





/* ==========================================================
   EDUCOM SMART ASSISTANT — floating help chatbot
   Add-on styles; existing site components remain unchanged.
   ========================================================== */
.educom-chatbot{position:fixed;right:24px;bottom:96px;z-index:200000;font-family:Inter,system-ui,Segoe UI,sans-serif;color:#172b45}
.educom-chat-toggle{display:flex;align-items:center;gap:10px;min-height:56px;padding:0 17px 0 12px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:linear-gradient(135deg,#1267d8,#0e3c78);color:#fff;box-shadow:0 14px 35px rgba(15,60,120,.3);cursor:pointer;font:inherit;font-weight:800;transition:transform .2s,box-shadow .2s}
.educom-chat-toggle:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(15,60,120,.36)}
.educom-chat-toggle-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.16);font-size:21px}
.educom-chat-toggle-label{font-size:13px;white-space:nowrap}
.educom-chat-online-dot,.educom-chat-header i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#54dfa0;box-shadow:0 0 0 3px rgba(84,223,160,.14)}
.educom-chat-panel{position:absolute;right:0;bottom:70px;width:min(390px,calc(100vw - 28px));height:min(590px,calc(100dvh - 145px));min-height:390px;overflow:hidden;display:flex;flex-direction:column;border:1px solid #dbe5f0;border-radius:23px;background:#fff;box-shadow:0 25px 85px rgba(14,35,63,.28);animation:educom-chat-in .18s ease-out}
.educom-chat-panel[hidden]{display:none!important}
@keyframes educom-chat-in{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.educom-chat-header{display:flex;align-items:center;gap:11px;padding:17px 16px;background:linear-gradient(120deg,#102b48,#1768a8);color:#fff;flex:0 0 auto}
.educom-chat-avatar{width:42px;height:42px;display:grid;place-items:center;flex:0 0 42px;border:1px solid rgba(255,255,255,.25);border-radius:14px;background:rgba(255,255,255,.13);font-size:21px;font-weight:900}
.educom-chat-header-copy{min-width:0;flex:1}.educom-chat-header-copy strong{display:block;font-size:13px;line-height:1.3}.educom-chat-header-copy span{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:10px;color:#d4e7f9}.educom-chat-header i{width:6px;height:6px;box-shadow:none}
.educom-chat-close{width:32px;height:32px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(255,255,255,.1);color:#fff;font-size:24px;line-height:1;cursor:pointer}
.educom-chat-messages{flex:1;min-height:0;overflow-y:auto;padding:18px 15px 15px;background:linear-gradient(180deg,#f7faff,#fff 60%);scroll-behavior:smooth}
.educom-chat-message{display:flex;margin:0 0 13px}.educom-chat-message.user{justify-content:flex-end}.educom-chat-bubble{display:block;max-width:91%;padding:11px 13px;border:1px solid #e0e8f2;border-radius:5px 15px 15px 15px;background:#fff;color:#3b4b61;font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 4px 12px rgba(23,50,80,.04)}.educom-chat-message.user .educom-chat-bubble{border-color:#1768d4;border-radius:15px 5px 15px 15px;background:#1768d4;color:#fff}
.educom-chat-quick-title{margin:16px 0 9px;color:#8391a4;font-size:9px;font-weight:900;letter-spacing:.15em}
.educom-chat-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.educom-chat-quick-grid button,.educom-chat-action{min-height:40px;padding:9px 10px;border:1px solid #dce7f4;border-radius:12px;background:#fff;color:#28517d;text-align:left;font:inherit;font-size:11px;font-weight:750;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.educom-chat-quick-grid button:hover,.educom-chat-action:hover{background:#eef6ff;border-color:#9fc6f2;transform:translateY(-1px)}
.educom-chat-actions{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 13px 0;padding-left:2px}.educom-chat-action{min-height:34px;padding:7px 10px;background:#f5f9ff}
.educom-chat-compose{display:flex;align-items:center;gap:8px;padding:12px;border-top:1px solid #e7edf4;background:#fff;flex:0 0 auto}.educom-chat-compose input{min-width:0;flex:1;height:43px;padding:0 13px;border:1px solid #dbe4ef;border-radius:13px;background:#f8fafc;color:#172b45;font:inherit;font-size:12px;outline:none}.educom-chat-compose input:focus{border-color:#76adeb;box-shadow:0 0 0 3px #1672e814}.educom-chat-compose button{width:43px;height:43px;flex:0 0 43px;border:0;border-radius:13px;background:#1672e8;color:#fff;font-size:20px;cursor:pointer}.educom-chat-compose button:hover{background:#0f5fc8}.educom-chat-footnote{padding:0 12px 10px;background:#fff;text-align:center;color:#9aa5b4;font-size:9px}.educom-chat-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){.educom-chatbot{right:14px;bottom:88px}.educom-chat-panel{position:fixed;right:10px;bottom:78px;width:calc(100vw - 20px);height:min(620px,calc(100dvh - 95px));min-height:350px;border-radius:20px}.educom-chat-toggle{min-height:52px;padding-right:14px}.educom-chat-toggle-icon{width:31px;height:31px}}
@media(prefers-reduced-motion:reduce){.educom-chat-panel{animation:none}.educom-chat-toggle,.educom-chat-quick-grid button,.educom-chat-action{transition:none}}

/* ==================================================
   EDUCOM CONTACT SECTION — UNIFIED LAYOUT
   Contact details and map in the same container
   ================================================== */

#contact.contact {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 24px !important;
  align-items: start !important;
}

/* Contact heading */
#contact.contact > div:first-child {
  grid-column: 1 / -1;
  width: 100%;
  box-sizing: border-box;
}

/* Contact details card */
#contact.contact > .contact-card {
  grid-column: 1 / -1;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
}

/* Map card */
#contact.contact > .contact-map {
  grid-column: 1 / -1;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
}

/* Map display */
#contact .contact-map-frame {
  width: 100%;
  height: 350px;
  overflow: hidden;
  border-radius: 12px;
}

#contact .contact-map-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Mobile */
@media (max-width: 600px) {
  #contact.contact {
    gap: 18px !important;
  }

  #contact .contact-map-frame {
    height: 260px;
  }
}


/* Reduce PDF Notes popup heading size */
#publicPdfNotesTitle {
  font-size: 30px !important;
  line-height: 1.2;
}

/* Smaller heading on mobile screens */
@media (max-width: 600px) {
  #publicPdfNotesTitle {
    font-size: 23px !important;
  }
}




/* ==========================================================
   EDUCOM ACADEMY — PREMIUM TOPPERS GALLERY
   Responsive layout, gold accents and subtle animations
   ========================================================== */

.educom-toppers-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 95px 6% 65px;
  color: #f8fafc;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(42, 84, 143, .42), transparent 48%),
    linear-gradient(145deg, #071629 0%, #102743 52%, #071629 100%);
}

.educom-toppers-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1250px;
  margin: 0 auto;
}

.educom-toppers-glow {
  position: absolute;
  z-index: 0;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  filter: blur(75px);
  opacity: .18;
  pointer-events: none;
  animation: educom-topper-glow 9s ease-in-out infinite alternate;
}

.educom-toppers-glow-one {
  top: 8%;
  left: -170px;
  background: #eabf63;
}

.educom-toppers-glow-two {
  right: -180px;
  bottom: 0;
  background: #2f80ed;
  animation-delay: -4s;
}

.educom-toppers-heading {
  max-width: 760px;
  margin: 0 auto 45px;
  text-align: center;
}

.educom-toppers-eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #e9c878;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .23em;
}

.educom-toppers-star {
  font-size: 19px;
  animation: educom-topper-twinkle 2.4s ease-in-out infinite;
}

.educom-toppers-heading h2 {
  margin: 15px 0 14px;
  color: #fff;
  font-size: clamp(32px, 4.5vw, 54px);
  font-weight: 850;
  line-height: 1.1;
  letter-spacing: -1.8px;
}

.educom-toppers-heading h2 span {
  color: #e9c878;
  background: linear-gradient(110deg, #fff1b8, #d5a746, #fff0b2);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.educom-toppers-heading > p {
  max-width: 590px;
  margin: 0 auto;
  color: #b8c8dc;
  font-size: 14px;
  line-height: 1.8;
}

.educom-toppers-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  margin-top: 25px;
  color: #e9c878;
}

.educom-toppers-divider span {
  width: 55px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #d8b45c);
}

.educom-toppers-divider span:last-child {
  transform: rotate(180deg);
}

.educom-toppers-status {
  max-width: 600px;
  margin: 0 auto 28px;
  padding: 15px 18px;
  border: 1px solid rgba(233, 200, 120, .22);
  border-radius: 13px;
  background: rgba(255, 255, 255, .045);
  color: #d9e4f2;
  text-align: center;
  font-size: 12px;
}

.educom-toppers-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 24px;
}

.educom-topper-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  overflow: hidden;
  padding: 26px 22px 0;
  border: 1px solid rgba(226, 190, 104, .28);
  border-radius: 23px;
  background:
    radial-gradient(circle at 50% 20%, rgba(224, 186, 91, .11), transparent 38%),
    linear-gradient(155deg, rgba(28, 52, 80, .98), rgba(9, 25, 44, .99));
  box-shadow: 0 18px 40px rgba(0, 0, 0, .2);
  animation: educom-topper-enter .7s both;
  animation-delay: calc(var(--topper-index, 0) * 100ms);
  transition: transform .28s ease, border-color .28s ease,
              box-shadow .28s ease;
}

.educom-topper-card:hover {
  transform: translateY(-8px);
  border-color: rgba(255, 220, 133, .75);
  box-shadow: 0 26px 55px rgba(0, 0, 0, .32),
              0 0 25px rgba(220, 183, 91, .09);
}

.educom-topper-card-shine {
  position: absolute;
  top: -65%;
  left: -80%;
  width: 55%;
  height: 230%;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, .055),
    transparent
  );
  transform: rotate(22deg);
  transition: left .8s ease;
}

.educom-topper-card:hover .educom-topper-card-shine {
  left: 140%;
}

.educom-topper-rank {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 11px;
  border: 1px solid rgba(232, 197, 110, .25);
  border-radius: 999px;
  background: rgba(222, 181, 86, .09);
  color: #f0d58e;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .16em;
}

.educom-topper-rank span {
  font-size: 12px;
}

.educom-topper-photo-wrap {
  position: relative;
  width: 146px;
  height: 146px;
  flex: 0 0 146px;
  margin: 22px auto 18px;
  border-radius: 50%;
}

.educom-topper-photo-wrap img,
.educom-topper-photo-fallback {
  position: absolute;
  inset: 7px;
  width: calc(100% - 14px);
  height: calc(100% - 14px);
  overflow: hidden;
  border-radius: 50%;
}

.educom-topper-photo-wrap img {
  z-index: 2;
  object-fit: cover;
  object-position: center;
  border: 3px solid #172e49;
  background: #f3f6fb;
}

.educom-topper-photo-fallback {
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #f7e4a5, #bc8c36);
  color: #14243a;
  font-size: 49px;
  font-weight: 900;
  text-transform: uppercase;
}

.educom-topper-photo-ring {
  position: absolute;
  inset: 0;
  border: 1px solid #d9b55e;
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(217, 181, 94, .08),
              0 0 24px rgba(217, 181, 94, .15);
  animation: educom-topper-ring 4s ease-in-out infinite;
}

.educom-topper-details {
  width: 100%;
  text-align: center;
}

.educom-topper-details h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(17px, 1.6vw, 21px);
  font-weight: 800;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.educom-topper-class {
  margin: 7px 0 19px;
  color: #bdcde0;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .06em;
}

.educom-topper-score {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin-bottom: 19px;
  padding: 15px 10px;
  border-top: 1px solid rgba(255, 255, 255, .08);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  background: rgba(255, 255, 255, .025);
}

.educom-topper-score strong {
  color: #f2d27f;
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: -1px;
}

.educom-topper-score span {
  color: #9eafc4;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .2em;
}

.educom-topper-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px;
  margin-bottom: 23px;
}

.educom-topper-meta span {
  padding: 6px 9px;
  border: 1px solid rgba(205, 221, 239, .12);
  border-radius: 7px;
  background: rgba(255, 255, 255, .045);
  color: #d0dceb;
  font-size: 9px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.educom-topper-card-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: calc(100% + 44px);
  margin-top: auto;
  padding: 13px 22px;
  border-top: 1px solid rgba(233, 200, 120, .14);
  background: rgba(0, 0, 0, .12);
  color: #c7d3e2;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .15em;
}

.educom-topper-card-bottom span:last-child {
  color: #e9c878;
  font-size: 14px;
}

.educom-toppers-footer-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  margin-top: 38px;
  color: #d9c17d;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .2em;
  text-align: center;
}

.educom-toppers-footer-note span {
  color: #fff0b2;
  font-size: 15px;
}

@keyframes educom-topper-enter {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes educom-topper-ring {
  0%, 100% {
    box-shadow: 0 0 0 5px rgba(217, 181, 94, .07),
                0 0 18px rgba(217, 181, 94, .10);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(217, 181, 94, .12),
                0 0 28px rgba(217, 181, 94, .20);
  }
}

@keyframes educom-topper-twinkle {
  0%, 100% { opacity: .65; transform: scale(.95); }
  50% { opacity: 1; transform: scale(1.12); }
}

@keyframes educom-topper-glow {
  from { transform: translateY(-10px) scale(.95); }
  to { transform: translateY(20px) scale(1.08); }
}

/* Tablet */
@media (max-width: 900px) {
  .educom-toppers-section {
    padding: 75px 5%;
  }

  .educom-toppers-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }

  .educom-topper-photo-wrap {
    width: 132px;
    height: 132px;
    flex-basis: 132px;
  }
}

/* Mobile */
@media (max-width: 580px) {
  .educom-toppers-section {
    padding: 62px 5% 45px;
  }

  .educom-toppers-heading {
    margin-bottom: 30px;
  }

  .educom-toppers-heading h2 {
    font-size: 34px;
    letter-spacing: -1px;
  }

  .educom-toppers-heading > p {
    font-size: 12px;
  }

  .educom-toppers-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 17px;
    max-width: 390px;
    margin: 0 auto;
  }

  .educom-topper-card {
    padding: 23px 20px 0;
  }

  .educom-topper-details h3 {
    font-size: 20px;
  }

  .educom-topper-card-bottom {
    width: calc(100% + 40px);
    padding-right: 20px;
    padding-left: 20px;
  }

  .educom-toppers-footer-note {
    gap: 7px;
    font-size: 8px;
    letter-spacing: .12em;
  }
}

/* Respect visitors who prefer less animation */
@media (prefers-reduced-motion: reduce) {
  .educom-toppers-glow,
  .educom-topper-card,
  .educom-topper-star,
  .educom-topper-photo-ring {
    animation: none !important;
  }

  .educom-topper-card,
  .educom-topper-card-shine {
    transition: none !important;
  }
}




/* TOPPERS GALLERY — COMPACT SIZE OVERRIDE */
.educom-toppers-section {
  padding: 48px 5% 35px;
}

.educom-toppers-heading {
  margin-bottom: 25px;
}

.educom-toppers-heading h2 {
  font-size: clamp(28px, 3.3vw, 40px);
  margin: 10px 0;
}

.educom-toppers-heading > p {
  font-size: 12px;
  line-height: 1.6;
}

.educom-toppers-divider {
  margin-top: 16px;
}

.educom-toppers-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  max-width: 1000px;
  margin: 0 auto;
}

.educom-topper-card {
  padding: 18px 16px 0;
  border-radius: 18px;
}

.educom-topper-photo-wrap {
  width: 105px;
  height: 105px;
  flex-basis: 105px;
  margin: 15px auto 12px;
}

.educom-topper-details h3 {
  font-size: 17px;
}

.educom-topper-class {
  margin: 5px 0 12px;
  font-size: 10px;
}

.educom-topper-score {
  margin-bottom: 12px;
  padding: 10px 8px;
}

.educom-topper-score strong {
  font-size: 28px;
}

.educom-topper-meta {
  margin-bottom: 15px;
}

.educom-topper-meta span {
  font-size: 9px;
  padding: 5px 7px;
}

.educom-topper-card-bottom {
  width: calc(100% + 32px);
  padding: 10px 16px;
}

.educom-toppers-footer-note {
  margin-top: 24px;
}

/* Tablet */
@media (max-width: 900px) {
  .educom-toppers-section {
    padding: 42px 4% 30px;
  }

  .educom-toppers-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .educom-topper-photo-wrap {
    width: 100px;
    height: 100px;
    flex-basis: 100px;
  }
}

/* Mobile */
@media (max-width: 580px) {
  .educom-toppers-section {
    padding: 36px 16px 28px;
  }

  .educom-toppers-heading {
    margin-bottom: 22px;
  }

  .educom-toppers-heading h2 {
    font-size: 29px;
  }

  .educom-toppers-grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: 340px;
    gap: 14px;
  }

  .educom-topper-card {
    padding: 18px 16px 0;
  }

  .educom-topper-photo-wrap {
    width: 100px;
    height: 100px;
    flex-basis: 100px;
    margin: 13px auto;
  }

  .educom-topper-card-bottom {
    width: calc(100% + 32px);
    padding: 10px 16px;
  }
}

/* EDUCOM ACADEMY — 4 Toppers Cards Per Row */
#educomToppersGrid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

/* Tablet: 2 cards per row */
@media (max-width: 900px) {
    #educomToppersGrid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Mobile: 1 card per row */
@media (max-width: 520px) {
    #educomToppersGrid {
        grid-template-columns: 1fr;
    }
}



/* =====================================================
   EDUCOM ACADEMY — ANIMATED PHOTO SLIDESHOW
   ===================================================== */

.educom-photo-showcase {
  padding: 60px 20px 65px;
  overflow: hidden;
  background:
    radial-gradient(ellipse at top left, rgba(42, 104, 175, .09), transparent 45%),
    linear-gradient(180deg, #f7faff, #edf3fa);
}

.educom-showcase-inner {
  max-width: 1120px;
  margin: 0 auto;
}

.educom-showcase-heading {
  margin-bottom: 28px;
  text-align: center;
}

.educom-showcase-eyebrow {
  color: #b17c25;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .2em;
}

.educom-showcase-heading h2 {
  margin: 9px 0;
  color: #142c49;
  font-size: clamp(27px, 4vw, 40px);
  line-height: 1.2;
}

.educom-showcase-heading h2 span {
  color: #bd8b35;
}

.educom-showcase-heading p {
  max-width: 600px;
  margin: 0 auto;
  color: #64748b;
  font-size: 14px;
  line-height: 1.7;
}

.educom-slideshow {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 8.5;
  min-height: 260px;
  max-height: 590px;
  overflow: hidden;
  isolation: isolate;
  border: 5px solid #fff;
  border-radius: 22px;
  background: #14243b;
  box-shadow: 0 22px 55px rgba(18, 40, 70, .17);
}

.educom-slide-track,
.educom-slide {
  position: absolute;
  inset: 0;
}


.educom-slide {
  opacity: 1;
  visibility: visible;
  transform: translateX(100%);
  transition: transform 0.8s ease-in-out;
  will-change: transform;
  z-index: 0;
}

.educom-slide.is-active {
  z-index: 1;
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}




/* Each slide contains a row of three photos */
.educom-slide {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  background: #14243b;
}

/* Fill each photo panel */
.educom-slide img {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  object-fit: cover;
  object-position: center;
}

/* Hide unavailable photos */
.educom-slide img.educom-slide-image-error {
  display: none;
}

/* Keep three panels on desktop; use two on smaller screens */
@media (max-width: 650px) {
  .educom-slide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .educom-slide img:nth-child(3) {
    display: none;
  }
}

.educom-slide-image-error {
  visibility: hidden;
}

.educom-slide-caption {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 65px 28px 24px;
  color: #fff;
  background: linear-gradient(transparent, rgba(5, 15, 30, .86));
  pointer-events: none;
}

.educom-slide-caption span {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .16em;
  color: #f5d18a;
}

.educom-slide-caption h3 {
  margin: 7px 0 0;
  font-size: clamp(19px, 3vw, 30px);
  line-height: 1.25;
  color: #fff;
}

.educom-slide-arrow {
  position: absolute;
  z-index: 5;
  top: 50%;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  background: rgba(10, 25, 45, .58);
  color: #fff;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: background .2s ease, transform .2s ease;
}

.educom-slide-arrow:hover {
  background: #b17c25;
  transform: translateY(-50%) scale(1.07);
}

.educom-slide-prev {
  left: 16px;
}

.educom-slide-next {
  right: 16px;
}

.educom-slide-dots {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}

.educom-slide-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 99px;
  background: #bac7d8;
  cursor: pointer;
  transition: width .25s ease, background .25s ease;
}

.educom-slide-dot.is-active {
  width: 27px;
  background: #b17c25;
}

.educom-slide-status {
  min-height: 18px;
  margin: 10px 0 0;
  color: #64748b;
  font-size: 12px;
  text-align: center;
}

.educom-slide-loading {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  color: #fff;
  font-size: 14px;
  text-align: center;
}

@media (max-width: 650px) {
  .educom-photo-showcase {
    padding: 42px 14px;
  }

  .educom-showcase-heading {
    margin-bottom: 21px;
  }

  .educom-showcase-heading p {
    font-size: 12px;
  }

  .educom-slideshow {
    aspect-ratio: 4 / 3;
    min-height: 230px;
    border-width: 3px;
    border-radius: 16px;
  }

  .educom-slide-caption {
    padding: 48px 15px 17px;
  }

  .educom-slide-arrow {
    width: 38px;
    height: 38px;
    font-size: 28px;
  }

  .educom-slide-prev {
    left: 9px;
  }

  .educom-slide-next {
    right: 9px;
  }

  .educom-slide-dots {
    gap: 7px;
    margin-top: 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .educom-slide,
  .educom-slide-arrow,
  .educom-slide-dot {
    transition: none;
  }
}





/* EDUCOM Slideshow — wider and shorter */
.educom-photo-showcase .educom-showcase-inner {
  width: 100%;
  max-width: 1350px;
  margin: 0 auto;
}

.educom-photo-showcase .educom-slideshow {
  width: 100%;
  aspect-ratio: 16 / 6;
  min-height: 0;
  max-height: 380px;
}

/* Mobile screens */
@media (max-width: 650px) {
  .educom-photo-showcase .educom-showcase-inner {
    width: 100%;
  }

  .educom-photo-showcase .educom-slideshow {
    aspect-ratio: 4 / 3;
    min-height: 0;
    max-height: 300px;
  }
}

/* Fix footer copyright link colour */
footer .copyright a,
footer .copyright a:visited {
    color: #ffffff !important;
    text-decoration: none;
}

footer .copyright a:hover {
    color: #93c5fd !important;
    text-decoration: underline;
}


/* EDUCOM ACADEMY — Footer copyright visibility fix */
footer > small {
    color: #ffffff !important;
    text-decoration: none !important;
    opacity: 1 !important;
}

footer > small a,
footer > small a:visited {
    color: #ffffff !important;
    text-decoration: none !important;
}

footer > small a:hover {
    color: #93c5fd !important;
}


/* =========================================================
   EDUCOM FOUNDER PROFILE — ASHOK KUMAR SHAW
   Additive styles; existing components remain unchanged.
   ========================================================= */
.founder-inline-link{display:inline-flex;align-items:center;gap:8px;margin:12px 0 0 8px}
.founder-profile-section{padding:76px 5%;background:linear-gradient(135deg,#f4f8ff 0%,#ffffff 52%,#f1f8ff 100%)}
.founder-profile-card{width:100%;max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(300px,.82fr) 1.18fr;align-items:center;gap:clamp(28px,5vw,68px);padding:clamp(24px,4vw,48px);border:1px solid #dfe8f3;border-radius:28px;background:#fff;box-shadow:0 22px 60px rgba(23,54,91,.09)}
.founder-profile-photo-frame{position:relative;max-width:390px;width:100%;margin:auto;padding:10px;border-radius:26px;background:linear-gradient(145deg,#dcecff,#f5f9ff);box-shadow:0 18px 38px rgba(24,69,120,.13)}
.founder-profile-photo-frame img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 38%;border-radius:19px}
.founder-photo-caption{position:absolute;left:22px;bottom:22px;padding:9px 13px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(12,35,61,.82);color:#fff;font-size:9px;font-weight:850;letter-spacing:1.5px;backdrop-filter:blur(8px)}
.founder-profile-copy{min-width:0}
.founder-eyebrow{display:inline-block;color:#1672e8;font-size:10px;font-weight:900;letter-spacing:2px}
.founder-profile-copy h2{margin:10px 0 7px;color:#102b48;font-size:clamp(30px,4vw,46px);line-height:1.08;letter-spacing:-1.5px}
.founder-role{margin:0 0 19px;color:#246b3d;font-size:13px;font-weight:800}
.founder-intro{max-width:680px;color:#637187;font-size:15px;line-height:1.8}
.founder-intro strong{color:#173654}
.founder-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:25px 0}
.founder-highlights>div{min-width:0;padding:14px 12px;border:1px solid #e3ebf4;border-radius:14px;background:#f8fbff}
.founder-highlights strong,.founder-highlights span{display:block}
.founder-highlights strong{color:#1672e8;font-size:15px;line-height:1.3}
.founder-highlights span{margin-top:5px;color:#718096;font-size:10px;line-height:1.4}
.founder-profile-cta{display:inline-flex;align-items:center;gap:10px;margin-top:2px}
.founder-profile-page{min-height:100vh;background:#f5f8fc}
.founder-page-hero{padding:70px 6% 80px;background:linear-gradient(135deg,#102b48,#155b91);color:#fff}
.founder-page-inner{max-width:1120px;margin:auto;display:grid;grid-template-columns:minmax(260px,.75fr) 1.25fr;align-items:center;gap:clamp(30px,6vw,75px)}
.founder-page-photo{width:100%;max-width:380px;margin:auto;padding:10px;border-radius:28px;background:rgba(255,255,255,.16);box-shadow:0 25px 65px rgba(0,0,0,.25)}
.founder-page-photo img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 38%;border-radius:20px}
.founder-page-copy .founder-eyebrow{color:#a9d7ff}
.founder-page-copy h1{margin:12px 0;font-size:clamp(36px,5vw,58px);line-height:1.04;letter-spacing:-2px}
.founder-page-copy .founder-role{color:#bce4ff}
.founder-page-copy p{max-width:700px;color:#e1edf8;line-height:1.85}
.founder-page-content{max-width:950px;margin:-30px auto 70px;position:relative;padding:clamp(24px,5vw,48px);border:1px solid #e1e9f2;border-radius:24px;background:#fff;box-shadow:0 20px 55px rgba(23,54,91,.1)}
.founder-page-content h2{margin:0 0 12px;color:#102b48;font-size:26px}
.founder-page-content p{margin:0 0 16px;color:#64748b;line-height:1.85}
.founder-page-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:25px 0}
.founder-page-facts>div{padding:18px;border-radius:15px;background:#f3f8ff;border:1px solid #e1ebf7}
.founder-page-facts strong,.founder-page-facts span{display:block}
.founder-page-facts strong{color:#1672e8;font-size:17px}
.founder-page-facts span{margin-top:5px;color:#718096;font-size:11px}
.founder-page-back{display:inline-flex;margin-top:8px;text-decoration:none}
@media(max-width:760px){
 .founder-profile-section{padding:55px 5%}
 .founder-profile-card,.founder-page-inner{grid-template-columns:1fr;gap:28px}
 .founder-profile-photo-frame,.founder-page-photo{max-width:310px}
 .founder-profile-copy{text-align:center}
 .founder-highlights{grid-template-columns:1fr;max-width:420px;margin:22px auto}
 .founder-profile-cta{justify-content:center}
 .founder-page-hero{padding:45px 6% 65px}
 .founder-page-copy{text-align:center}
 .founder-page-content{width:90%;margin:-25px auto 45px}
 .founder-page-facts{grid-template-columns:1fr}
}


/* =================================================
   EDUCOM DESKTOP NAVIGATION — SINGLE ROW FIX
   ================================================= */

@media (min-width: 1101px) {

  header.nav {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 15px !important;
    padding-left: 3% !important;
    padding-right: 3% !important;
    min-height: 78px;
    height: auto;
  }

  header.nav .brand {
    flex-shrink: 0 !important;
  }

  header.nav #primaryNavigation {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    white-space: nowrap !important;
  }

  header.nav #primaryNavigation > a {
    white-space: nowrap !important;
    font-size: 12px !important;
    padding: 8px 5px !important;
  }

  header.nav #educomOpenCart,
  header.nav .educom-my-orders,
  header.nav .educom-my-orders-toggle {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
  }

  header.nav .educom-my-orders-toggle {
    padding: 8px 5px !important;
  }

  header.nav .menu {
    display: none !important;
  }
}


/* ASHOK KUMAR SHAW — WIDER PROFILE PHOTO */

@media (min-width: 761px) {
  .founder-page-inner {
    grid-template-columns: 0.95fr 1.05fr !important;
    gap: 55px !important;
  }

  .founder-page-photo {
    max-width: 460px !important;
    width: 100% !important;
  }

  .founder-page-photo img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 5 !important;
    object-fit: cover !important;
  }
}

@media (max-width: 760px) {
  .founder-page-photo {
    max-width: 350px !important;
  }
}

/* =========================================================
   EDUCOM — PREMIUM CALL-TO-ACTION BUTTONS
   Scoped to the About and Founder sections only.
   ========================================================= */
.about a.primary,
.about a.secondary.founder-inline-link,
.founder-profile-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  min-height: 50px;
  padding: 13px 21px;
  border-radius: 13px;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .1px;
  text-decoration: none !important;
  vertical-align: middle;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease;
}

.about a.primary,
.founder-profile-cta {
  color: #fff !important;
  border: 1px solid #176bd0;
  background: linear-gradient(135deg, #1672e8 0%, #1456b8 100%);
  box-shadow: 0 9px 22px rgba(22, 104, 211, .22), inset 0 1px 0 rgba(255,255,255,.2);
}

.about a.secondary.founder-inline-link {
  margin: 12px 0 0 9px;
  color: #173654 !important;
  border: 1px solid #cfdae8;
  background: linear-gradient(135deg, #fff 0%, #f3f7fc 100%);
  box-shadow: 0 6px 16px rgba(23,54,91,.07);
}

.about a.primary:hover,
.founder-profile-cta:hover {
  transform: translateY(-3px);
  background: linear-gradient(135deg, #0f63d2 0%, #103f91 100%);
  box-shadow: 0 14px 28px rgba(22, 104, 211, .29);
}

.about a.secondary.founder-inline-link:hover {
  transform: translateY(-3px);
  color: #1265ce !important;
  border-color: #a9c8ec;
  background: #fff;
  box-shadow: 0 12px 24px rgba(23,54,91,.11);
}

.about a.primary:focus-visible,
.about a.secondary.founder-inline-link:focus-visible,
.founder-profile-cta:focus-visible {
  outline: 3px solid rgba(22,114,232,.25);
  outline-offset: 3px;
}

.founder-profile-cta {
  margin-top: 4px;
}

.founder-profile-cta span {
  display: inline-grid;
  place-items: center;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  transition: transform .22s ease;
}

.founder-profile-cta:hover span {
  transform: translateX(3px);
}

@media (max-width: 760px) {
  .about a.primary,
  .about a.secondary.founder-inline-link,
  .founder-profile-cta {
    min-height: 48px;
    padding: 12px 17px;
    font-size: 12px;
  }
  .about a.secondary.founder-inline-link {
    margin-left: 0;
  }
}
