
/* ===== assets/css/style.css ===== */
/* Nation Builders Digital School Portal */
:root{
  --green-900:#064d2a;
  --green-800:#075f35;
  --green-700:#08773f;
  --green-600:#0a8f4a;
  --green-100:#e8f7ee;
  --green-50:#f4fbf7;
  --gold:#d7a62f;
  --ink:#111827;
  --muted:#667085;
  --line:#dfe7e2;
  --white:#ffffff;
  --danger:#b42318;
  --shadow:0 20px 50px rgba(6,77,42,.18);
  --radius:22px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Montserrat','Segoe UI',Roboto,Arial,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at top left, rgba(10,143,74,.18), transparent 33%),
    linear-gradient(180deg, #fff 0%, #f7fbf8 55%, #fff 100%);
  line-height:1.6;
}
a{text-decoration:none;color:inherit}
.container{width:min(1180px, 92%);margin:auto}
.top-strip{background:var(--green-900);color:#fff;font-size:.9rem;padding:10px 0}
.top-strip .container{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
header{
  position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);border-bottom:1px solid rgba(6,77,42,.1)
}
.navbar{height:82px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:12px;font-weight:650;color:var(--green-900);letter-spacing:-.5px}
.brand-mark{
  width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg, var(--green-700), var(--green-900));
  border:4px solid var(--green-100);box-shadow:0 8px 24px rgba(6,77,42,.22);font-size:1.25rem
}
.brand small{display:block;color:var(--muted);font-weight:600;letter-spacing:.5px;font-size:.72rem;text-transform:uppercase}
.nav-links{display:flex;align-items:center;gap:24px;color:#314052;font-weight:600;font-size:.94rem}
.nav-links a:hover{color:var(--green-700)}
.nav-actions{display:flex;align-items:center;gap:12px}
.btn{
  border:0;border-radius:999px;padding:13px 22px;font-weight:600;cursor:pointer;transition:.25s ease;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;font-size:.95rem
}
.btn-primary{background:linear-gradient(135deg,var(--green-700),var(--green-900));color:#fff;box-shadow:0 12px 26px rgba(6,77,42,.22)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(6,77,42,.3)}
.btn-outline{background:#fff;color:var(--green-900);border:1px solid rgba(6,77,42,.35)}
.btn-outline:hover{background:var(--green-50)}
.menu-btn{display:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--green-900);font-size:1.4rem;cursor:pointer}

.hero{padding:72px 0 52px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:44px;align-items:center}
.badge{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:var(--green-100);color:var(--green-900);font-weight:650;font-size:.88rem;margin-bottom:18px}
.hero h1{font-size:clamp(2.5rem,5vw,5.2rem);line-height:1.02;letter-spacing:-3px;margin-bottom:20px;color:#111827}
.hero h1 span{color:var(--green-700)}
.hero p{color:#475467;font-size:1.12rem;max-width:650px;margin-bottom:28px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:28px}
.trust-row{display:flex;gap:18px;flex-wrap:wrap;color:#475467;font-weight:600;font-size:.92rem}
.trust-row span{display:inline-flex;align-items:center;gap:8px}.trust-row b{color:var(--green-700)}

.portal-visual{position:relative;min-height:520px}
.dashboard-card{background:#fff;border:1px solid rgba(6,77,42,.12);border-radius:28px;box-shadow:var(--shadow);overflow:hidden;transform:rotate(-1deg)}
.dash-top{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--green-900),var(--green-700));color:#fff;padding:18px 22px}
.dash-dot{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 6px rgba(34,197,94,.2)}
.dash-body{padding:22px;background:linear-gradient(180deg,#fff,#fbfffc)}
.user-panel{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:16px;background:var(--green-50);border:1px solid var(--line);border-radius:20px;margin-bottom:18px}
.avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--green-700));color:#fff;display:grid;place-items:center;font-weight:650}
.status-pill{font-size:.78rem;color:var(--green-800);background:#dff6e8;padding:6px 10px;border-radius:999px;font-weight:650}
.dash-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.metric{padding:16px;border:1px solid var(--line);border-radius:18px;background:#fff}
.metric .icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--green-100);color:var(--green-800);margin-bottom:12px;font-size:1.15rem}
.metric small{color:var(--muted);font-weight:600}.metric h3{font-size:1.45rem;margin:3px 0}.metric em{font-style:normal;color:var(--green-700);font-size:.8rem;font-weight:650}
.phone-card{position:absolute;left:-24px;bottom:0;width:205px;background:#fff;border:8px solid #18211d;border-radius:34px;box-shadow:0 20px 45px rgba(6,77,42,.22);padding:16px 12px}
.phone-card h4{font-size:.95rem;margin-bottom:5px}.phone-card p{font-size:.72rem;color:var(--muted);margin-bottom:10px}
.phone-balance{background:linear-gradient(135deg,var(--green-800),var(--green-600));color:#fff;border-radius:16px;padding:14px;margin-bottom:12px}
.quick-icons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.quick-icons span{display:grid;place-items:center;background:var(--green-50);border:1px solid var(--line);border-radius:12px;height:42px}

.section{padding:72px 0}.section-head{text-align:center;max-width:760px;margin:0 auto 42px}
.section-head h2{font-size:clamp(2rem,3vw,3rem);line-height:1.12;letter-spacing:-1.5px;margin-bottom:12px}
.section-head h2 span{color:var(--green-700)}.section-head p{color:var(--muted);font-size:1.03rem}
.features,.register-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.feature,.register-card,.auth-card,.dashboard-panel{
  padding:28px;background:#fff;border:1px solid rgba(6,77,42,.12);border-radius:var(--radius);box-shadow:0 12px 34px rgba(15,23,42,.05)
}
.feature:hover,.register-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.feature,.register-card{transition:.25s ease}
.feature-icon,.role-icon{
  width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--green-100);color:var(--green-800);font-size:1.55rem;margin-bottom:18px
}
.feature h3,.register-card h3{margin-bottom:8px;font-size:1.16rem;color:var(--green-900)}
.feature p,.register-card p{color:var(--muted);font-size:.95rem}
.register-card{display:flex;flex-direction:column;min-height:230px}.register-card p{flex:1;margin-bottom:0}.register-card .btn{width:100%}
.register-note{margin-top:22px;padding:18px 20px;border-radius:18px;background:var(--green-50);border:1px solid var(--line);color:#344054;text-align:center;font-weight:600}

.auth-wrap{min-height:calc(100vh - 120px);display:grid;place-items:center;padding:60px 0}
.auth-card{width:min(520px,92%);padding:34px}
.auth-card h1{font-size:2rem;line-height:1.15;color:var(--green-900);margin-bottom:8px}
.auth-card .sub{color:var(--muted);margin-bottom:22px}
.form-grid{display:grid;gap:15px}
.form-group label{display:block;font-size:.88rem;font-weight:650;color:#344054;margin-bottom:6px}
.form-group input,.form-group select{
  width:100%;border:1px solid var(--line);border-radius:14px;padding:13px 14px;outline:none;font:inherit;background:#fff
}
.form-group input:focus,.form-group select:focus{border-color:var(--green-700);box-shadow:0 0 0 4px rgba(10,143,74,.11)}
.form-help{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:.9rem}
.form-help a{color:var(--green-700);font-weight:650}
.alert{padding:13px 15px;border-radius:14px;margin-bottom:16px;font-weight:600;font-size:.92rem}
.alert-error{background:#fef3f2;color:var(--danger);border:1px solid #fecdca}
.alert-success{background:var(--green-100);color:var(--green-900);border:1px solid #bde8cd}
.demo-reset-link{word-break:break-all;display:block;margin-top:8px;color:var(--green-700);font-weight:650}

.portal-access{background:linear-gradient(135deg,var(--green-900),#04361f);border-radius:34px;padding:42px;color:#fff;display:grid;grid-template-columns:1fr .9fr;gap:30px;align-items:center;box-shadow:var(--shadow);overflow:hidden;position:relative}
.portal-access:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.08);right:-120px;top:-120px}
.portal-access h2{font-size:clamp(2rem,3vw,3.2rem);line-height:1.1;letter-spacing:-1.5px;margin-bottom:12px;position:relative}
.portal-access p{color:#dbeee4;max-width:620px;position:relative}.login-box{position:relative;background:#fff;color:var(--ink);border-radius:26px;padding:28px;box-shadow:0 20px 40px rgba(0,0,0,.18)}
.login-box h3{margin-bottom:14px;color:var(--green-900)}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}
.stat{padding:24px;background:#fff;border:1px solid rgba(6,77,42,.12);border-radius:20px;text-align:center}
.stat h3{font-size:2rem;color:var(--green-700)}.stat p{color:var(--muted);font-weight:600;font-size:.92rem}
.cta{text-align:center;background:linear-gradient(180deg,#fff,var(--green-50));border:1px solid rgba(6,77,42,.12);border-radius:34px;padding:50px 24px}
.cta h2{font-size:clamp(2rem,3vw,3rem);letter-spacing:-1px;margin-bottom:10px}.cta p{color:var(--muted);margin-bottom:22px}
.dashboard-layout{display:grid;grid-template-columns:280px 1fr;gap:24px;padding:42px 0}
.sidebar{background:linear-gradient(180deg,var(--green-900),var(--green-700));color:#fff;border-radius:28px;padding:24px;min-height:620px;box-shadow:var(--shadow)}
.sidebar .profile{padding:16px;background:rgba(255,255,255,.1);border-radius:18px;margin:18px 0}
.sidebar a{display:block;padding:12px 14px;border-radius:12px;margin:5px 0;color:#e9fff1;font-weight:600}
.sidebar a:hover,.sidebar a.active{background:rgba(255,255,255,.14)}
.dashboard-main h1{font-size:2rem;letter-spacing:-1px;margin-bottom:8px;color:var(--green-900)}
.dashboard-main > p{color:var(--muted);margin-bottom:24px}
.panel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.dashboard-panel h3{color:var(--green-900);margin-bottom:6px}.dashboard-panel p{color:var(--muted);font-size:.94rem}
.table-wrap{margin-top:22px;overflow:auto}.data-table{width:100%;border-collapse:collapse;background:#fff;border-radius:18px;overflow:hidden;border:1px solid var(--line)}
.data-table th,.data-table td{padding:14px;border-bottom:1px solid var(--line);text-align:left}.data-table th{background:var(--green-50);color:var(--green-900)}
footer{margin-top:70px;background:#041e12;color:#d9eee2;padding:38px 0}
footer .container{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}footer strong{color:#fff}footer a{color:#b8f2d0;margin-left:16px;font-weight:600}

@media (max-width:980px){
  .nav-links,.nav-actions{display:none}.menu-btn{display:block}
  .nav-links.open{display:flex;position:absolute;left:4%;right:4%;top:82px;flex-direction:column;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow)}
  .hero-grid,.portal-access,.dashboard-layout{grid-template-columns:1fr}.portal-visual{min-height:auto}.phone-card{position:relative;left:auto;bottom:auto;margin:18px auto 0}
  .features,.register-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}.panel-grid{grid-template-columns:repeat(2,1fr)}.sidebar{min-height:auto}
}
@media (max-width:620px){
  .top-strip .container{justify-content:center;text-align:center}.hero{padding-top:44px}.hero h1{letter-spacing:-1.5px}
  .features,.register-grid,.stats,.dash-metrics,.panel-grid{grid-template-columns:1fr}
  .portal-access{padding:28px 18px;border-radius:24px}.dashboard-card{transform:none}.hero-actions .btn{width:100%}
  footer .container{justify-content:center;text-align:center}footer a{display:inline-block;margin:10px 8px 0}
}


.student-hero-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:22px;
  padding:30px;
  border-radius:28px;
  background:linear-gradient(135deg,var(--green-900),var(--green-700));
  color:#fff;
  box-shadow:var(--shadow);
  margin-bottom:22px;
}
.student-hero-card h1{
  color:#fff;
  margin:10px 0 8px;
}
.student-hero-card p{
  color:#e3f7eb;
  margin:0;
  max-width:720px;
}
.student-id-card{
  min-width:220px;
  padding:20px;
  border-radius:20px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
}
.student-id-card strong{
  display:block;
  font-size:1.15rem;
}
.student-id-card small{
  color:#e3f7eb;
  font-weight:600;
}
.student-profile-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-top:14px;
}
.student-profile-grid p{
  padding:16px;
  border-radius:16px;
  background:var(--green-50);
  border:1px solid var(--line);
}
.student-submit-form{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--line);
}
.form-group textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:14px;
  padding:13px 14px;
  outline:none;
  font:inherit;
  resize:vertical;
  background:#fff;
}
.form-group textarea:focus{
  border-color:var(--green-700);
  box-shadow:0 0 0 4px rgba(10,143,74,.11);
}
@media (max-width:980px){
  .student-hero-card{flex-direction:column;align-items:flex-start}
  .student-id-card{width:100%}
  .student-profile-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:620px){
  .student-profile-grid{grid-template-columns:1fr}
}


/* v12 Student dashboard tabbed layout */
.student-app-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:310px 1fr;
  background:#f8fbf9;
}
.student-sidebar{
  position:sticky;
  top:0;
  height:100vh;
  overflow-y:auto;
  background:#ffffff;
  border-right:1px solid var(--line);
  padding:26px 18px;
}
.student-brand{
  display:flex;
  align-items:center;
  gap:12px;
  color:#4c5f79;
  font-weight:650;
  font-size:1.05rem;
  margin-bottom:30px;
}
.student-brand-mark{
  width:48px;
  height:48px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,#8fcf38,var(--green-800));
  box-shadow:0 8px 18px rgba(6,77,42,.15);
}
.student-mini-profile{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px;
  border-radius:18px;
  background:#f3fbf6;
  border:1px solid #e3efe7;
  margin-bottom:22px;
}
.student-avatar{
  width:56px;
  height:56px;
  border-radius:15px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--green-700),#74bd62);
  font-size:1.35rem;
  font-weight:650;
}
.student-mini-profile strong{
  display:block;
  color:#42526b;
  line-height:1.2;
}
.student-mini-profile small{
  color:#7b8798;
  font-weight:600;
}
.student-nav-group{
  margin:20px 0;
}
.student-nav-group p{
  text-transform:uppercase;
  letter-spacing:2px;
  color:#8a96a8;
  font-size:.78rem;
  font-weight:650;
  margin:0 0 10px 8px;
}
.student-nav-link{
  width:100%;
  border:0;
  background:transparent;
  color:#5b667a;
  padding:14px 16px;
  border-radius:14px;
  font:inherit;
  font-weight:650;
  display:flex;
  align-items:center;
  gap:12px;
  cursor:pointer;
  text-align:left;
  margin:4px 0;
  transition:.2s ease;
}
.student-nav-link:hover{
  background:#f2fbf5;
  color:var(--green-800);
}
.student-nav-link.active{
  background:#e7f8ee;
  color:var(--green-900);
  box-shadow:inset 4px 0 0 var(--green-700);
}
.student-logout{
  display:block;
  margin:22px 8px;
  padding:13px 16px;
  border-radius:14px;
  font-weight:650;
  color:#b42318;
  background:#fff5f4;
}
.student-main{
  padding:34px;
  overflow:hidden;
}
.student-page{
  display:none;
  animation:studentFade .22s ease;
}
.student-page.active{
  display:block;
}
@keyframes studentFade{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}
.student-cover{
  min-height:370px;
  border-radius:0;
  padding:70px 90px;
  background:
    radial-gradient(circle at 70% 20%, rgba(255,255,255,.18), transparent 28%),
    linear-gradient(135deg,#0a4f31,#0c7a43);
  color:#fff;
  margin-bottom:34px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
}
.student-cover.compact{
  min-height:360px;
}
.student-cover span{
  color:#f4c95d;
  text-transform:uppercase;
  font-weight:650;
  letter-spacing:1.2px;
  margin-bottom:18px;
}
.student-cover h1{
  color:#fff;
  font-size:clamp(3rem,7vw,6.8rem);
  line-height:.96;
  letter-spacing:-4px;
  max-width:920px;
  margin-bottom:22px;
}
.student-cover p{
  color:#e8f6ed;
  font-size:1.25rem;
  max-width:760px;
}
.student-stats-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  margin-bottom:24px;
}
.student-stat,.student-card,.student-message-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.1);
  border-radius:22px;
  padding:24px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.student-stat span{
  color:#667085;
  font-weight:650;
  font-size:.9rem;
}
.student-stat strong{
  display:block;
  color:var(--green-900);
  font-size:2rem;
  margin:5px 0;
}
.student-stat small{
  color:#667085;
  font-weight:600;
}
.student-card h2,.student-message-card strong{
  display:block;
  color:var(--green-900);
  margin-bottom:8px;
}
.student-card p,.student-message-card p{
  color:#667085;
}
.student-card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.student-card-list{
  display:grid;
  gap:14px;
}
.student-message-card small{
  display:block;
  color:#8a96a8;
  font-weight:600;
  margin-bottom:8px;
}
.student-page-head{
  margin-bottom:22px;
}
.student-page-head h1{
  color:var(--green-900);
  font-size:clamp(2.1rem,4vw,4rem);
  line-height:1;
  letter-spacing:-2px;
  margin-bottom:10px;
}
.student-page-head p{
  color:#667085;
  font-size:1.05rem;
}
.student-profile-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-top:14px;
}
.student-profile-grid p{
  padding:16px;
  border-radius:16px;
  background:var(--green-50);
  border:1px solid var(--line);
}
.student-submit-form{
  margin-top:18px;
  padding:20px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
}
.form-group textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:14px;
  padding:13px 14px;
  outline:none;
  font:inherit;
  resize:vertical;
  background:#fff;
}
.form-group textarea:focus{
  border-color:var(--green-700);
  box-shadow:0 0 0 4px rgba(10,143,74,.11);
}
@media (max-width:1100px){
  .student-app-shell{grid-template-columns:1fr}
  .student-sidebar{position:relative;height:auto}
  .student-main{padding:22px}
  .student-stats-grid,.student-card-grid,.student-profile-grid{grid-template-columns:repeat(2,1fr)}
  .student-cover{padding:46px 34px;min-height:300px}
}
@media (max-width:620px){
  .student-stats-grid,.student-card-grid,.student-profile-grid{grid-template-columns:1fr}
  .student-cover h1{font-size:3rem;letter-spacing:-2px}
  .student-cover{padding:34px 22px}
}


/* v13 video detail integration */
.student-cover{
  position:relative;
  overflow:hidden;
}
.student-cover:after{
  content:"";
  position:absolute;
  right:-80px;
  top:-80px;
  width:360px;
  height:360px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
}
.student-cover > *{
  position:relative;
  z-index:1;
}
.student-live-pill{
  margin-top:18px;
  width:max-content;
  padding:8px 13px;
  border-radius:999px;
  background:rgba(255,255,255,.15);
  color:#e6fff0;
  font-weight:650;
  font-size:.9rem;
}
.announcement-filter{
  width:max-content;
  padding:8px 14px;
  border-radius:12px;
  background:#effaf3;
  border:1px solid #d8efe1;
  color:var(--green-900);
  font-weight:650;
  margin:0 0 18px;
}
.student-announcement-card{
  display:flex;
  justify-content:space-between;
  gap:20px;
  background:#fff;
  border:1px solid rgba(6,77,42,.1);
  border-radius:18px;
  padding:22px;
  box-shadow:0 10px 28px rgba(15,23,42,.05);
}
.student-announcement-card span{
  display:inline-block;
  color:var(--green-700);
  font-weight:650;
  font-size:.82rem;
  margin-bottom:8px;
}
.student-announcement-card strong{
  display:block;
  color:#334155;
  font-size:1.08rem;
  margin-bottom:6px;
}
.student-announcement-card p{
  color:#667085;
  margin-bottom:10px;
}
.student-announcement-card em{
  font-style:normal;
  color:var(--green-800);
  background:#effaf3;
  border-radius:999px;
  padding:6px 10px;
  font-size:.8rem;
  font-weight:650;
}
.student-announcement-card small{
  color:#7b8798;
  font-weight:650;
  white-space:nowrap;
}
.subject-registration-form{
  background:#fff;
  border:1px solid rgba(6,77,42,.1);
  border-radius:24px;
  padding:22px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.subject-controls{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
  margin-bottom:18px;
}
.subject-card-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
}
.subject-card{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:16px;
  border-radius:16px;
  background:#fbfefc;
  border:1px solid #e2efe7;
  cursor:pointer;
  transition:.2s ease;
}
.subject-card:hover{
  background:#f2fbf5;
  border-color:#bfe5cd;
}
.subject-card input{
  width:18px;
  height:18px;
  accent-color:var(--green-700);
  margin-top:4px;
}
.subject-card strong{
  display:block;
  color:#344054;
  margin-bottom:4px;
}
.subject-card small{
  display:block;
  color:#6b7a90;
  font-weight:600;
  margin-bottom:6px;
}
.subject-card p{
  color:#667085;
  font-size:.92rem;
}
.subject-card:has(input:checked){
  background:#ecfaf2;
  border-color:#91d8aa;
  box-shadow:inset 4px 0 0 var(--green-700);
}
.subject-save-btn{
  width:100%;
  margin-top:18px;
  border-radius:10px;
}
@media (max-width:760px){
  .subject-controls,.subject-card-grid{
    grid-template-columns:1fr;
  }
  .student-announcement-card{
    flex-direction:column;
  }
}


/* v14 fixed side-by-side student dashboard layout */
body.student-dashboard-body{
  overflow:hidden;
}
.student-app-shell{
  min-height:100vh;
  height:100vh;
  display:grid;
  grid-template-columns:320px minmax(0, 1fr);
  background:#f8fbf9;
  overflow:hidden;
}
.student-sidebar{
  position:sticky;
  top:0;
  left:0;
  height:100vh;
  overflow-y:auto;
  overflow-x:hidden;
  background:#ffffff;
  border-right:1px solid var(--line);
  padding:26px 18px;
  z-index:10;
  scrollbar-width:thin;
  scrollbar-color:#b5cbbf #f4fbf7;
}
.student-sidebar::-webkit-scrollbar{
  width:8px;
}
.student-sidebar::-webkit-scrollbar-track{
  background:#f4fbf7;
}
.student-sidebar::-webkit-scrollbar-thumb{
  background:#b5cbbf;
  border-radius:999px;
}
.student-main{
  height:100vh;
  overflow-y:auto;
  overflow-x:hidden;
  padding:34px;
  min-width:0;
}
.student-page.active{
  width:100%;
}
.student-cover{
  width:100%;
  min-height:360px;
  border-radius:0;
  margin-bottom:34px;
}
.student-cover h1{
  max-width:900px;
}
@media (max-width:900px){
  .student-app-shell{
    grid-template-columns:250px minmax(0, 1fr);
  }
  .student-sidebar{
    padding:20px 12px;
  }
  .student-main{
    padding:22px;
  }
  .student-cover{
    min-height:300px;
    padding:38px 28px;
  }
  .student-cover h1{
    font-size:clamp(2.4rem,6vw,4.2rem);
  }
}
@media (max-width:700px){
  .student-app-shell{
    grid-template-columns:210px minmax(0, 1fr);
  }
  .student-brand span:last-child{
    font-size:.85rem;
  }
  .student-mini-profile{
    padding:12px;
  }
  .student-avatar{
    width:42px;
    height:42px;
  }
  .student-nav-link{
    padding:12px 10px;
    font-size:.86rem;
  }
  .student-nav-group p{
    font-size:.68rem;
  }
  .student-main{
    padding:16px;
  }
  .student-cover{
    padding:28px 18px;
    min-height:260px;
  }
}


/* v15 beautiful outline sidebar icons */
.student-nav-link{
  display:flex;
  align-items:center;
  gap:12px;
}
.student-nav-link .nav-icon{
  width:22px;
  height:22px;
  min-width:22px;
  display:inline-grid;
  place-items:center;
  color:#697586;
  transition:.2s ease;
}
.student-nav-link .nav-icon svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.student-nav-link span:last-child{
  line-height:1.2;
}
.student-nav-link:hover .nav-icon,
.student-nav-link.active .nav-icon{
  color:var(--green-800);
}
.student-nav-link.active{
  background:#eaf8ef;
  color:var(--green-900);
  box-shadow:inset 4px 0 0 var(--green-700);
}
.student-nav-group p{
  color:#8a96a8;
}


/* v16 hero pattern on every student page + page label + logout */
.student-topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  background:#ffffff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:18px;
  padding:14px 18px;
  margin-bottom:18px;
  box-shadow:0 10px 24px rgba(15,23,42,.04);
  position:sticky;
  top:0;
  z-index:8;
}
.student-topbar small{
  display:block;
  color:#7a8799;
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:1.4px;
  font-size:.72rem;
}
.student-topbar strong{
  color:var(--green-900);
  font-size:1.25rem;
}
.student-top-logout{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:104px;
  padding:11px 18px;
  border-radius:999px;
  background:#fff5f4;
  color:#b42318;
  font-weight:650;
  border:1px solid #ffd3ce;
}
.student-quick-actions{
  margin:0 0 18px;
}
.student-logout{
  display:flex !important;
  align-items:center;
  gap:12px;
  color:#b42318;
  background:#fff5f4;
  border:1px solid #ffd3ce;
}
.student-logout .nav-icon{
  color:#b42318;
}
.student-logout .nav-icon svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.student-logout-top{
  margin:0;
  padding:12px 14px;
  border-radius:14px;
  font-weight:650;
}
.student-cover{
  border-radius:0;
  margin-bottom:28px;
  box-shadow:0 18px 42px rgba(6,77,42,.16);
}
.student-cover.compact{
  min-height:330px;
  padding:58px 70px;
}
.student-cover.compact h1{
  font-size:clamp(3rem,6vw,5.8rem);
  line-height:.96;
}
.student-cover.compact p{
  font-size:1.1rem;
  max-width:780px;
}
.student-page > .table-wrap,
.student-page > .student-card,
.student-page > .student-card-grid,
.student-page > .student-card-list,
.student-page > .subject-registration-form,
.student-page > .student-submit-form{
  margin-top:0;
}
@media (max-width:900px){
  .student-cover.compact{
    padding:42px 30px;
    min-height:280px;
  }
  .student-cover.compact h1{
    font-size:clamp(2.4rem,6vw,4.2rem);
    letter-spacing:-2px;
  }
}
@media (max-width:620px){
  .student-topbar{
    flex-direction:column;
    align-items:flex-start;
  }
  .student-top-logout{
    width:100%;
  }
  .student-cover.compact{
    padding:30px 20px;
  }
}


/* v17 guaranteed green hero banner on every student page */
.student-page-hero,
.student-page .student-cover,
.student-page .student-cover.compact{
  width:100%;
  min-height:390px;
  border-radius:0;
  padding:72px 90px;
  margin-bottom:30px;
  background:
    radial-gradient(circle at 82% 18%, rgba(255,255,255,.18), transparent 26%),
    linear-gradient(135deg,#07572f 0%, #0b7942 100%);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
  box-shadow:0 18px 42px rgba(6,77,42,.16);
}
.student-page-hero:after,
.student-page .student-cover:after{
  content:"";
  position:absolute;
  right:-70px;
  top:-80px;
  width:430px;
  height:430px;
  border-radius:50%;
  background:rgba(255,255,255,.10);
}
.student-page-hero > *,
.student-page .student-cover > *{
  position:relative;
  z-index:1;
}
.student-page-hero span,
.student-page .student-cover span{
  color:#ffd66b;
  text-transform:uppercase;
  font-weight:650;
  letter-spacing:1.3px;
  font-size:1rem;
  margin-bottom:22px;
}
.student-page-hero h1,
.student-page .student-cover h1,
.student-page .student-cover.compact h1{
  color:#fff;
  font-size:clamp(3.8rem,7vw,7rem);
  line-height:.96;
  letter-spacing:-4px;
  max-width:980px;
  margin:0 0 22px;
}
.student-page-hero p,
.student-page .student-cover p,
.student-page .student-cover.compact p{
  color:#ecfff4;
  font-size:1.25rem;
  max-width:850px;
  line-height:1.6;
}
.student-page:not(#page-dashboard) .student-live-pill{
  display:none;
}
@media (max-width:900px){
  .student-page-hero,
  .student-page .student-cover,
  .student-page .student-cover.compact{
    min-height:320px;
    padding:46px 32px;
  }
  .student-page-hero h1,
  .student-page .student-cover h1,
  .student-page .student-cover.compact h1{
    font-size:clamp(2.6rem,7vw,4.5rem);
    letter-spacing:-2px;
  }
}
@media (max-width:620px){
  .student-page-hero,
  .student-page .student-cover,
  .student-page .student-cover.compact{
    min-height:280px;
    padding:32px 20px;
  }
  .student-page-hero h1,
  .student-page .student-cover h1,
  .student-page .student-cover.compact h1{
    font-size:2.8rem;
  }
  .student-page-hero p,
  .student-page .student-cover p,
  .student-page .student-cover.compact p{
    font-size:1rem;
  }
}


/* v18 logout moved to last sidebar item */
.student-quick-actions{
  display:none !important;
}
.student-logout-bottom{
  margin:22px 8px 12px !important;
  padding:14px 16px !important;
  border-radius:14px !important;
  width:auto;
}
.student-sidebar{
  display:flex;
  flex-direction:column;
}
.student-sidebar .student-logout-bottom{
  order:99;
}
.student-nav-group{
  flex:0 0 auto;
}


/* v19 sharp compact current-page bar */
.student-main{
  padding:0 !important;
}
.student-topbar{
  border-radius:0 !important;
  margin:0 !important;
  padding:8px 24px !important;
  min-height:58px;
  height:auto;
  border-left:0 !important;
  border-right:0 !important;
  border-top:0 !important;
  box-shadow:0 3px 12px rgba(15,23,42,.05) !important;
  position:sticky;
  top:0;
  z-index:30;
  background:#ffffff;
  justify-content:flex-start !important;
}
.student-topbar small{
  font-size:.66rem !important;
  letter-spacing:1.6px;
  line-height:1;
  margin-bottom:4px;
}
.student-topbar strong{
  font-size:1.15rem !important;
  line-height:1.1;
}
.student-top-logout{
  display:none !important;
}
.student-page{
  padding:24px 34px 34px;
}
.student-page .student-cover,
.student-page-hero,
.student-page .student-cover.compact{
  margin-top:0 !important;
}
@media (max-width:700px){
  .student-page{
    padding:16px;
  }
  .student-topbar{
    padding:8px 16px !important;
    min-height:54px;
  }
}


/* v20 enhanced student profile page */
.profile-dashboard-grid{
  display:grid;
  grid-template-columns:310px minmax(0,1fr);
  gap:22px;
  align-items:start;
}
.profile-summary-card,
.profile-form-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.profile-summary-card{
  border-radius:22px;
  padding:24px;
  position:sticky;
  top:82px;
}
.profile-photo-box{
  width:112px;
  height:112px;
  border-radius:28px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--green-700),#73bf6b);
  font-size:3rem;
  font-weight:650;
  margin-bottom:18px;
}
.profile-summary-card h2{
  color:var(--green-900);
  line-height:1.15;
  margin-bottom:4px;
}
.profile-summary-card > p{
  color:#667085;
  font-weight:600;
  margin-bottom:12px;
}
.profile-status{
  display:inline-flex;
  padding:7px 12px;
  border-radius:999px;
  font-size:.82rem;
  font-weight:650;
  margin-bottom:20px;
}
.profile-status.complete{
  color:var(--green-900);
  background:#e7f8ee;
}
.profile-status.incomplete{
  color:#92400e;
  background:#fff7df;
}
.profile-progress{
  margin:18px 0 22px;
}
.profile-progress-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  color:#344054;
  font-size:.9rem;
  margin-bottom:8px;
}
.profile-progress-top span{
  color:var(--green-700);
  font-weight:650;
}
.profile-progress-track{
  height:10px;
  background:#edf2ef;
  border-radius:999px;
  overflow:hidden;
}
.profile-progress-track div{
  height:100%;
  background:linear-gradient(135deg,var(--green-700),var(--green-900));
  border-radius:999px;
}
.profile-summary-list{
  display:grid;
  gap:12px;
}
.profile-summary-list p{
  background:var(--green-50);
  border:1px solid var(--line);
  border-radius:14px;
  padding:13px;
  color:#667085;
  word-break:break-word;
}
.profile-summary-list strong{
  color:var(--green-900);
}
.profile-form-card{
  border-radius:22px;
  padding:0;
  overflow:hidden;
}
.profile-form-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:24px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#fff,#f8fbf9);
}
.profile-form-head h2{
  color:var(--green-900);
  margin-bottom:4px;
}
.profile-form-head p{
  color:#667085;
}
.profile-form{
  padding:24px;
}
.profile-section-title{
  margin:24px 0 14px;
  padding:10px 13px;
  border-left:4px solid var(--green-700);
  background:#f2fbf5;
  color:var(--green-900);
  font-weight:650;
  border-radius:0 12px 12px 0;
}
.profile-section-title:first-of-type{
  margin-top:0;
}
.profile-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.profile-wide{
  grid-column:1 / -1;
}
.profile-form-actions{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid var(--line);
}
@media (max-width:1000px){
  .profile-dashboard-grid{
    grid-template-columns:1fr;
  }
  .profile-summary-card{
    position:relative;
    top:auto;
  }
}
@media (max-width:700px){
  .profile-form-head{
    flex-direction:column;
    align-items:flex-start;
  }
  .profile-form-head .btn{
    width:100%;
  }
  .profile-form-grid{
    grid-template-columns:1fr;
  }
  .profile-form-actions{
    flex-direction:column;
  }
  .profile-form-actions .btn{
    width:100%;
  }
}


/* v21 student profile live progress and navigation click fix */
.student-nav-link{
  position:relative;
  z-index:20;
  cursor:pointer;
}
.profile-readonly{
  background:#f5f7f6 !important;
  color:#667085;
  font-weight:600;
}
.profile-progress-track div{
  transition:width .25s ease;
}
.profile-status{
  transition:background .25s ease,color .25s ease;
}
.profile-summary-card h2{
  word-break:break-word;
}
.profile-form-card input[readonly]{
  cursor:not-allowed;
}


/* v22 class level/department profile update */
.profile-form-head{
  align-items:flex-start;
}
.profile-form-head > div{
  width:100%;
}
.profile-form-actions{
  position:sticky;
  bottom:0;
  background:#fff;
  z-index:5;
  margin-left:-24px;
  margin-right:-24px;
  margin-bottom:-24px;
  padding:18px 24px;
  border-top:1px solid var(--line);
  box-shadow:0 -8px 24px rgba(15,23,42,.04);
}


/* v23 remove profile summary list spacing */
.profile-summary-card{
  padding-bottom:24px;
}
.profile-summary-list{
  display:none !important;
}


/* v24 profile save popup toast */
.profile-toast-message{
  position:fixed;
  top:78px;
  right:28px;
  width:min(360px, calc(100vw - 40px));
  z-index:9999;
  padding:16px 18px;
  border-radius:10px;
  background:#e8f8ee;
  border:1px solid #b9e8c9;
  color:var(--green-900);
  font-weight:650;
  box-shadow:0 14px 36px rgba(15,23,42,.14);
  animation:profileToastIn .25s ease both;
}
.profile-toast-message.hide{
  animation:profileToastOut .35s ease both;
}
@keyframes profileToastIn{
  from{opacity:0;transform:translateY(-8px) translateX(10px)}
  to{opacity:1;transform:translateY(0) translateX(0)}
}
@keyframes profileToastOut{
  from{opacity:1;transform:translateY(0) translateX(0)}
  to{opacity:0;transform:translateY(-8px) translateX(10px)}
}
@media (max-width:700px){
  .profile-toast-message{
    right:16px;
    top:70px;
    width:calc(100vw - 32px);
  }
}


/* v25 dynamic subject filtering */
.subject-filter-note{
  padding:13px 15px;
  border:1px solid #d8efe1;
  background:#f2fbf5;
  color:var(--green-900);
  border-radius:14px;
  font-weight:600;
  margin-bottom:18px;
}
.subject-empty-state{
  display:none;
  text-align:center;
  padding:20px;
  border:1px dashed #b5cbbf;
  border-radius:16px;
  color:#667085;
  background:#fbfefc;
  font-weight:600;
}
.subject-card{
  min-height:150px;
}
.subject-card[data-department="Common"]{
  background:#f7fcf9;
}
.subject-card[data-department="Common"]:has(input:checked){
  background:#e9f9ef;
}


/* v29 full pages restored + automated CBT/admin */
.exam-overview-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-bottom:22px;
}
.exam-stat-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:18px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.exam-stat-card span{
  display:block;
  color:#667085;
  font-weight:650;
  font-size:.86rem;
  margin-bottom:8px;
}
.exam-stat-card strong{
  display:block;
  color:var(--green-900);
  font-size:2.15rem;
  line-height:1;
}
.exam-stat-card small{
  color:#667085;
  font-weight:600;
}
.exam-layout-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:22px;
  align-items:start;
}
.exam-main-panel,
.exam-side-panel > section{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:22px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.exam-main-panel{
  padding:22px;
}
.exam-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:18px;
}
.exam-panel-head h2,
.exam-side-panel h3{
  color:var(--green-900);
  margin-bottom:5px;
}
.exam-panel-head p{
  color:#667085;
}
.exam-table td small{
  color:#667085;
  font-weight:600;
}
.exam-status{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:650;
}
.status-scheduled{
  background:#fff7df;
  color:#92400e;
}
.status-ongoing{
  background:#e7f8ee;
  color:var(--green-900);
}
.status-closed{
  background:#f3f4f6;
  color:#4b5563;
}
.exam-attempt{
  display:inline-flex;
  padding:6px 10px;
  border-radius:10px;
  background:#f7faf8;
  color:#475467;
  font-weight:650;
  font-size:.78rem;
}
.exam-card-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:22px;
}
.exam-card{
  border:1px solid #e2efe7;
  background:#fbfefc;
  border-radius:18px;
  padding:18px;
}
.exam-card-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:14px;
}
.exam-card-top small{
  color:#667085;
  font-weight:650;
  background:#eef7f1;
  padding:6px 9px;
  border-radius:9px;
}
.exam-card h3{
  color:var(--green-900);
  margin-bottom:5px;
}
.exam-card p{
  color:#667085;
}
.exam-meta-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin:15px 0;
}
.exam-meta-grid span{
  background:#fff;
  border:1px solid #e6eee9;
  border-radius:12px;
  padding:10px;
  color:#667085;
  font-size:.86rem;
}
.exam-meta-grid strong{
  display:block;
  color:var(--green-900);
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.8px;
  margin-bottom:3px;
}
.exam-instruction{
  background:#f2fbf5;
  border-left:4px solid var(--green-700);
  padding:12px 14px;
  border-radius:0 12px 12px 0;
  color:#475467;
  font-weight:600;
  margin-bottom:15px;
}
.exam-instruction small{
  color:#667085;
}
.exam-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.exam-actions form{
  margin:0;
}
.exam-submitted-badge,
.exam-closed-badge{
  display:inline-flex;
  padding:10px 14px;
  border-radius:999px;
  font-weight:650;
}
.exam-submitted-badge{
  color:var(--green-900);
  background:#e7f8ee;
}
.exam-closed-badge{
  color:#667085;
  background:#f3f4f6;
}
.exam-side-panel{
  display:grid;
  gap:16px;
}
.exam-admit-card{
  padding:22px;
  text-align:center;
}
.exam-admit-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
  margin-bottom:16px;
  color:#667085;
  font-weight:650;
}
.exam-admit-head span{
  color:var(--green-900);
}
.exam-admit-photo{
  width:88px;
  height:88px;
  border-radius:24px;
  display:grid;
  place-items:center;
  margin:0 auto 14px;
  color:#fff;
  background:linear-gradient(135deg,var(--green-700),#73bf6b);
  font-size:2.4rem;
  font-weight:650;
}
.exam-admit-card h3{
  margin-bottom:4px;
}
.exam-admit-card > p{
  color:#667085;
  font-weight:650;
  margin-bottom:14px;
}
.exam-admit-list{
  display:grid;
  gap:10px;
  text-align:left;
  margin-bottom:16px;
}
.exam-admit-list span{
  display:block;
  border:1px solid var(--line);
  background:var(--green-50);
  border-radius:12px;
  padding:10px;
  color:#667085;
}
.exam-admit-list strong{
  display:block;
  color:var(--green-900);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.7px;
}
.exam-instructions-card,
.exam-readiness-card{
  padding:20px;
}
.exam-instructions-card ul{
  padding-left:18px;
  color:#475467;
  display:grid;
  gap:9px;
  font-weight:600;
}
.exam-readiness-card{
  display:grid;
  gap:12px;
}
.exam-readiness-card label{
  display:flex;
  align-items:center;
  gap:10px;
  color:#475467;
  font-weight:600;
  background:#fbfefc;
  border:1px solid #e2efe7;
  border-radius:12px;
  padding:10px;
}
.exam-readiness-card input{
  accent-color:var(--green-700);
}
.cbt-body{
  background:#f8fbf9;
}
.cbt-shell{
  max-width:1050px;
  margin:0 auto;
  padding:24px;
}
.cbt-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:28px;
  background:linear-gradient(135deg,#07572f,#0b7942);
  color:#fff;
  margin-bottom:18px;
}
.cbt-header small{
  color:#ffd66b;
  text-transform:uppercase;
  font-weight:650;
  letter-spacing:1px;
}
.cbt-header h1{
  color:#fff;
  margin:6px 0;
}
.cbt-header p{
  color:#ecfff4;
}
.cbt-timer-card{
  min-width:180px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
  padding:18px;
  text-align:center;
}
.cbt-timer-card span{
  display:block;
  color:#ecfff4;
  font-weight:650;
  margin-bottom:5px;
}
.cbt-timer-card strong{
  color:#fff;
  font-size:2.2rem;
}
.cbt-info-bar{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-bottom:18px;
}
.cbt-info-bar span,
.cbt-question-card,
.cbt-submit-bar,
.cbt-closed-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.cbt-info-bar span{
  padding:14px;
  color:#667085;
  font-weight:600;
}
.cbt-info-bar strong{
  color:var(--green-900);
}
.cbt-question-form{
  display:grid;
  gap:16px;
}
.cbt-question-card{
  padding:22px;
  border-radius:18px;
}
.cbt-question-card h2{
  color:var(--green-900);
  margin-bottom:10px;
}
.cbt-question-card p{
  color:#344054;
  font-weight:600;
  margin-bottom:14px;
}
.cbt-option{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px;
  border:1px solid #e2efe7;
  border-radius:12px;
  margin:9px 0;
  background:#fbfefc;
  cursor:pointer;
  color:#475467;
  font-weight:600;
}
.cbt-option input{
  accent-color:var(--green-700);
}
.cbt-option span{
  color:var(--green-900);
  font-weight:650;
}
.cbt-submit-bar{
  position:sticky;
  bottom:0;
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:16px;
  border-radius:18px 18px 0 0;
}
.cbt-closed-wrap{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:#f8fbf9;
}
.cbt-closed-card{
  max-width:560px;
  padding:34px;
  text-align:center;
  border-radius:22px;
}
.cbt-closed-card h1{
  color:var(--green-900);
  margin-bottom:10px;
}
.cbt-closed-card p{
  color:#667085;
  margin-bottom:20px;
}
.admin-automation-shell{
  max-width:1250px;
  margin:0 auto;
  padding:24px;
}
.admin-automation-hero{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:34px;
  margin-bottom:22px;
  background:linear-gradient(135deg,#07572f,#0b7942);
  color:#fff;
}
.admin-automation-hero span{
  color:#ffd66b;
  text-transform:uppercase;
  font-weight:650;
  letter-spacing:1px;
}
.admin-automation-hero h1{
  color:#fff;
  margin:6px 0;
}
.admin-automation-hero p{
  color:#ecfff4;
}
.admin-automation-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-bottom:20px;
}
.admin-auto-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:22px;
  padding:22px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  margin-bottom:20px;
}
.admin-auto-card h2{
  color:var(--green-900);
  margin-bottom:16px;
}
@media (max-width:1120px){
  .exam-overview-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .exam-layout-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:900px){
  .cbt-header,
  .admin-automation-hero{
    flex-direction:column;
    align-items:flex-start;
  }
  .cbt-info-bar,
  .admin-automation-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:720px){
  .exam-overview-grid,
  .exam-card-grid,
  .exam-meta-grid{
    grid-template-columns:1fr;
  }
  .exam-panel-head{
    flex-direction:column;
  }
}
@media print{
  .student-sidebar,
  .student-topbar,
  .student-cover,
  .exam-actions,
  .subject-save-btn,
  .btn{
    display:none !important;
  }
  .student-app-shell{
    display:block !important;
  }
  .student-main,
  .student-page{
    height:auto !important;
    overflow:visible !important;
    padding:0 !important;
  }
  .exam-layout-grid{
    display:block !important;
  }
  .exam-main-panel,
  .exam-side-panel > section{
    box-shadow:none !important;
    border:1px solid #ddd !important;
    margin-bottom:18px !important;
  }
}


/* v31 examination subject dropdown and printable timetable */
.exam-dropdown-panel{
  display:grid;
  grid-template-columns:minmax(260px, 420px) 1fr;
  gap:18px;
  align-items:end;
  padding:18px;
  border:1px solid #d8efe1;
  border-radius:18px;
  background:#f7fcf9;
  margin-bottom:20px;
}
.exam-dropdown-panel .form-group{
  margin:0;
}
.exam-dropdown-panel select{
  font-size:1rem;
  font-weight:650;
  color:var(--green-900);
}
.exam-dropdown-panel p{
  color:#667085;
  font-weight:600;
  margin:0;
}
.exam-subject-detail-grid{
  display:grid;
  gap:18px;
}
.exam-selected-detail{
  display:none;
  border:1px solid #e2efe7;
  background:#fbfefc;
  border-radius:20px;
  padding:20px;
}
.exam-selected-detail.active{
  display:block;
}
.exam-selected-top{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  padding-bottom:16px;
  border-bottom:1px solid #e2efe7;
  margin-bottom:16px;
}
.exam-selected-top h3{
  color:var(--green-900);
  font-size:1.65rem;
  margin:9px 0 4px;
}
.exam-selected-top p{
  color:#667085;
  font-weight:600;
}
.exam-selected-top > small{
  color:#667085;
  font-weight:650;
  background:#eef7f1;
  padding:8px 10px;
  border-radius:10px;
  white-space:nowrap;
}
.exam-detail-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-bottom:16px;
}
.exam-detail-list span{
  display:block;
  background:#fff;
  border:1px solid #e6eee9;
  border-radius:12px;
  padding:12px;
  color:#667085;
  font-weight:600;
}
.exam-detail-list strong{
  display:block;
  color:var(--green-900);
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.7px;
  margin-bottom:4px;
}
.exam-print-timetable{
  display:none;
}
@media(max-width:900px){
  .exam-dropdown-panel,
  .exam-detail-list{
    grid-template-columns:1fr;
  }
  .exam-selected-top{
    flex-direction:column;
  }
}
@media print{
  body.printing-exam-timetable .student-sidebar,
  body.printing-exam-timetable .student-topbar,
  body.printing-exam-timetable .student-cover,
  body.printing-exam-timetable .exam-overview-grid,
  body.printing-exam-timetable .exam-dropdown-panel,
  body.printing-exam-timetable .exam-subject-detail-grid,
  body.printing-exam-timetable .exam-side-panel,
  body.printing-exam-timetable .exam-panel-head,
  body.printing-exam-timetable .profile-toast-message,
  body.printing-exam-timetable .alert,
  body.printing-exam-timetable .btn{
    display:none !important;
  }
  body.printing-exam-timetable .student-app-shell,
  body.printing-exam-timetable .student-main,
  body.printing-exam-timetable .student-page,
  body.printing-exam-timetable .exam-layout-grid,
  body.printing-exam-timetable .exam-main-panel{
    display:block !important;
    height:auto !important;
    overflow:visible !important;
    padding:0 !important;
    box-shadow:none !important;
    border:none !important;
  }
  body.printing-exam-timetable .exam-print-timetable{
    display:block !important;
    padding:20px !important;
  }
  body.printing-exam-timetable .exam-print-header{
    text-align:center;
    margin-bottom:18px;
  }
  body.printing-exam-timetable .exam-print-header h2{
    color:#000;
    margin-bottom:6px;
  }
  body.printing-exam-timetable table{
    width:100%;
    border-collapse:collapse;
  }
  body.printing-exam-timetable th,
  body.printing-exam-timetable td{
    border:1px solid #333 !important;
    padding:8px !important;
    color:#000 !important;
  }
}


/* v33 password show/hide toggle */
.password-toggle-field{
  position:relative;
  display:flex;
  align-items:center;
  width:100%;
}
.password-toggle-field input{
  width:100%;
  padding-right:92px !important;
}
.password-toggle-btn{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:#eef7f1;
  color:var(--green-900);
  font-weight:650;
  font-size:.88rem;
  padding:8px 12px;
  border-radius:999px;
  cursor:pointer;
  transition:.2s ease;
}
.password-toggle-btn:hover{
  background:#dff2e6;
}
.password-toggle-btn:focus{
  outline:3px solid rgba(7,87,47,.18);
  outline-offset:2px;
}


/* v35 assignment subject dropdown, PDF upload, and CBT assignment */
.assignment-selector-panel{
  display:grid;
  grid-template-columns:minmax(260px,420px) 1fr;
  gap:18px;
  align-items:end;
  padding:18px;
  border:1px solid #d8efe1;
  border-radius:18px;
  background:#f7fcf9;
  margin-bottom:20px;
}
.assignment-selector-panel .form-group{
  margin:0;
}
.assignment-selector-panel select{
  font-size:1rem;
  font-weight:650;
  color:var(--green-900);
}
.assignment-selector-panel p{
  color:#667085;
  font-weight:600;
  margin:0;
}
.assignment-subject-panel{
  display:none;
}
.assignment-subject-panel.active{
  display:block;
}
.assignment-subject-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-bottom:16px;
}
.assignment-subject-head h2{
  color:var(--green-900);
}
.assignment-subject-head span{
  background:#eef7f1;
  color:var(--green-900);
  font-weight:650;
  padding:8px 12px;
  border-radius:999px;
}
.assignment-card-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.assignment-action-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.assignment-action-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.assignment-action-top small{
  color:#667085;
  font-weight:650;
}
.assignment-type-badge{
  display:inline-flex;
  padding:7px 11px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:650;
  color:var(--green-900);
  background:#e7f8ee;
}
.assignment-type-badge.type-cbt{
  color:#7c2d12;
  background:#fff7df;
}
.assignment-type-badge.type-pdf{
  color:#064d2a;
  background:#dff2e6;
}
.assignment-action-card h3{
  color:var(--green-900);
  margin-bottom:6px;
}
.assignment-action-card p{
  color:#667085;
  font-weight:600;
  margin-bottom:14px;
}
.assignment-status-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:14px;
}
.assignment-status-row span{
  background:#fbfefc;
  border:1px solid #e2efe7;
  border-radius:12px;
  padding:10px;
  color:#667085;
  font-weight:600;
}
.assignment-status-row strong{
  display:block;
  color:var(--green-900);
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.7px;
}
.assignment-upload-form{
  display:grid;
  gap:12px;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid #e2efe7;
}
.assignment-uploaded{
  background:#f2fbf5;
  color:#667085;
  border:1px solid #d8efe1;
  border-radius:12px;
  padding:10px;
  font-weight:600;
}
.assignment-uploaded a{
  color:var(--green-900);
  font-weight:650;
}
.assignment-muted{
  color:#667085;
  font-weight:650;
}
.assignment-submitted-badge{
  display:inline-flex;
  color:var(--green-900);
  background:#e7f8ee;
  padding:10px 14px;
  border-radius:999px;
  font-weight:650;
}
@media(max-width:900px){
  .assignment-selector-panel,
  .assignment-card-grid,
  .assignment-status-row{
    grid-template-columns:1fr;
  }
  .assignment-subject-head{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* v36 CA CBT and Exam CBT distinction */
.exam-badge-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.exam-cbt-category{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:650;
}
.exam-cbt-category.category-ca{
  background:#fff7df;
  color:#92400e;
}
.exam-cbt-category.category-exam{
  background:#e7f8ee;
  color:var(--green-900);
}


/* v37 CBT auto-mark, admin approval and result download */
.result-action-panel{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  margin-bottom:18px;
}
.result-action-panel h2{
  color:var(--green-900);
  margin-bottom:5px;
}
.result-action-panel p,
.admin-card-note{
  color:#667085;
  font-weight:600;
}
.admin-auto-card form{
  margin:0;
}
@media(max-width:760px){
  .result-action-panel{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* v38 student photo upload and enhanced admit card */
.profile-photo-box.has-photo,
.exam-admit-photo.has-photo{
  overflow:hidden;
  padding:0;
  background:#f2fbf5;
}
.profile-photo-box.has-photo img,
.exam-admit-photo.has-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.profile-upload-note{
  display:block;
  margin-top:8px;
  color:#667085;
  font-weight:600;
  line-height:1.45;
}
.exam-access-list{
  text-align:left;
  margin:16px 0;
  border-top:1px solid var(--line);
  padding-top:14px;
}
.exam-access-list h4{
  color:var(--green-900);
  margin-bottom:10px;
}
.exam-access-list > p{
  color:#667085;
  font-weight:600;
}
.exam-access-item{
  border:1px solid #e2efe7;
  background:#fbfefc;
  border-radius:12px;
  padding:10px;
  margin-bottom:9px;
}
.exam-access-item strong{
  display:block;
  color:var(--green-900);
  font-size:.95rem;
}
.exam-access-item span{
  display:block;
  color:#475467;
  font-weight:650;
  margin:3px 0;
}
.exam-access-item small{
  color:#667085;
  font-weight:600;
}
@media print{
  body.printing-admit-card .student-sidebar,
  body.printing-admit-card .student-topbar,
  body.printing-admit-card .student-cover,
  body.printing-admit-card .exam-main-panel,
  body.printing-admit-card .exam-instructions-card,
  body.printing-admit-card .exam-readiness-card,
  body.printing-admit-card .exam-overview-grid,
  body.printing-admit-card .btn:not(.exam-admit-card .btn),
  body.printing-admit-card .profile-toast-message,
  body.printing-admit-card .alert{
    display:none !important;
  }
  body.printing-admit-card .student-app-shell,
  body.printing-admit-card .student-main,
  body.printing-admit-card .student-page,
  body.printing-admit-card .exam-layout-grid,
  body.printing-admit-card .exam-side-panel{
    display:block !important;
    height:auto !important;
    overflow:visible !important;
    padding:0 !important;
    box-shadow:none !important;
    border:none !important;
  }
  body.printing-admit-card .exam-admit-card{
    display:block !important;
    width:100% !important;
    max-width:760px !important;
    margin:0 auto !important;
    box-shadow:none !important;
    border:1px solid #111 !important;
  }
  body.printing-admit-card .exam-admit-card .btn{
    display:none !important;
  }
}


/* v39 result grouping by session and term */
.result-group-selector{
  display:grid;
  grid-template-columns:minmax(260px,420px) 1fr;
  gap:18px;
  align-items:end;
  padding:18px;
  border:1px solid #d8efe1;
  border-radius:18px;
  background:#f7fcf9;
  margin-bottom:20px;
}
.result-group-selector .form-group{
  margin:0;
}
.result-group-selector select{
  font-size:1rem;
  font-weight:650;
  color:var(--green-900);
}
.result-group-selector p{
  color:#667085;
  font-weight:600;
  margin:0;
}
.result-group-panel{
  display:none;
}
.result-group-panel.active{
  display:block;
}
.result-session-card{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  margin-bottom:18px;
}
.result-session-card span{
  display:block;
  color:#667085;
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:.8px;
  font-size:.78rem;
  margin-bottom:5px;
}
.result-session-card h2{
  color:var(--green-900);
  margin-bottom:5px;
}
.result-session-card p{
  color:#667085;
  font-weight:600;
}
.result-average-box{
  min-width:150px;
  text-align:center;
  background:#f2fbf5;
  border:1px solid #d8efe1;
  border-radius:16px;
  padding:14px;
}
.result-average-box small{
  display:block;
  color:#667085;
  font-weight:650;
  margin-bottom:5px;
}
.result-average-box strong{
  color:var(--green-900);
  font-size:1.75rem;
}
.result-group-footer{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}
.result-group-footer span{
  background:#eef7f1;
  color:#475467;
  border-radius:999px;
  padding:9px 12px;
  font-weight:600;
}
.result-group-footer strong{
  color:var(--green-900);
}
@media(max-width:850px){
  .result-group-selector,
  .result-session-card{
    grid-template-columns:1fr;
    flex-direction:column;
    align-items:flex-start;
  }
  .result-average-box{
    width:100%;
  }
}


/* v40 admit card download and simplified display */
.exam-admit-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin-top:16px;
}
.exam-admit-actions .btn{
  min-width:165px;
}
@media print{
  body.printing-admit-card .exam-admit-actions{
    display:none !important;
  }
}


/* v41 downloadable written assignments and assignment result download */
.result-download-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.assignment-result-archive{
  margin-top:26px;
}
.assignment-result-group{
  margin-top:16px;
}
.assignment-result-group-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:16px;
  padding:15px 18px;
  margin-bottom:12px;
}
.assignment-result-group-head h3{
  color:var(--green-900);
}
.assignment-result-group-head span{
  color:var(--green-900);
  background:#e7f8ee;
  padding:7px 11px;
  border-radius:999px;
  font-weight:650;
}
.admin-auto-card small{
  display:block;
  color:#667085;
  font-weight:600;
  margin-top:6px;
}
@media(max-width:760px){
  .result-download-actions,
  .assignment-result-group-head{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* v42 attendance download */
.attendance-action-panel{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  margin-bottom:18px;
}
.attendance-action-panel h2{
  color:var(--green-900);
  margin-bottom:5px;
}
.attendance-action-panel p{
  color:#667085;
  font-weight:600;
}
.attendance-summary-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
  margin-bottom:18px;
}
.attendance-summary-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:18px;
  padding:18px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.attendance-summary-card span{
  display:block;
  color:#667085;
  font-weight:650;
  font-size:.86rem;
  margin-bottom:8px;
}
.attendance-summary-card strong{
  display:block;
  color:var(--green-900);
  font-size:2rem;
  line-height:1;
}
.attendance-summary-card small{
  color:#667085;
  font-weight:600;
}
@media(max-width:760px){
  .attendance-action-panel{
    flex-direction:column;
    align-items:flex-start;
  }
  .attendance-summary-grid{
    grid-template-columns:1fr;
  }
}


/* v43 student messaging replies and authorised office communication */
.message-compose-panel,
.message-filter-panel,
.sent-message-panel{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  margin-bottom:18px;
}
.message-compose-head h2,
.sent-message-panel h2{
  color:var(--green-900);
  margin-bottom:5px;
}
.message-compose-head p,
.message-filter-panel p{
  color:#667085;
  font-weight:600;
}
.message-compose-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:15px;
}
.message-compose-form .profile-wide{
  grid-column:1 / -1;
}
.message-card-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:10px;
}
.message-card-top span{
  color:#667085;
  font-weight:650;
  white-space:nowrap;
}
.message-reply-thread{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid #e2efe7;
}
.message-reply-thread h4{
  color:var(--green-900);
  margin-bottom:10px;
}
.message-reply-item{
  border:1px solid #e2efe7;
  background:#fbfefc;
  border-radius:14px;
  padding:12px;
  margin-bottom:10px;
}
.message-reply-item.student-reply{
  background:#f2fbf5;
}
.message-reply-item.staff-reply{
  background:#fffdf5;
}
.message-reply-item small,
.sent-message-card small,
.student-reply-admin-card small{
  display:block;
  color:#667085;
  font-weight:650;
  margin-bottom:6px;
}
.message-reply-item p,
.sent-message-card p,
.student-reply-admin-card p{
  color:#475467;
  font-weight:600;
}
.message-reply-form{
  margin-top:14px;
  display:grid;
  gap:10px;
}
.sent-message-card,
.student-reply-admin-card{
  border:1px solid #e2efe7;
  background:#fbfefc;
  border-radius:14px;
  padding:14px;
  margin-top:12px;
}
.sent-message-card strong,
.student-reply-admin-card strong{
  display:block;
  color:var(--green-900);
  margin-bottom:4px;
}
.student-reply-admin-list{
  max-height:620px;
  overflow:auto;
  padding-right:4px;
}
.student-reply-admin-card form{
  margin-top:12px;
  display:grid;
  gap:8px;
}
@media(max-width:800px){
  .message-compose-form{
    grid-template-columns:1fr;
  }
  .message-card-top{
    flex-direction:column;
  }
}


/* v44 lesson notes PDF download and video resources */
.lesson-selector-panel{
  display:grid;
  grid-template-columns:minmax(260px,420px) 1fr;
  gap:18px;
  align-items:end;
  padding:18px;
  border:1px solid #d8efe1;
  border-radius:18px;
  background:#f7fcf9;
  margin-bottom:20px;
}
.lesson-selector-panel .form-group{
  margin:0;
}
.lesson-selector-panel select{
  font-size:1rem;
  font-weight:650;
  color:var(--green-900);
}
.lesson-selector-panel p{
  color:#667085;
  font-weight:600;
  margin:0;
}
.lesson-subject-panel{
  display:none;
}
.lesson-subject-panel.active{
  display:block;
}
.lesson-subject-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  margin-bottom:18px;
}
.lesson-subject-head h2{
  color:var(--green-900);
  margin-bottom:4px;
}
.lesson-subject-head p{
  color:#667085;
  font-weight:600;
}
.lesson-empty-card{
  background:#fff;
  border:1px dashed #b7d9c6;
  border-radius:18px;
  padding:22px;
  color:#667085;
  margin-bottom:18px;
}
.lesson-empty-card h3{
  color:var(--green-900);
  margin-bottom:6px;
}
.lesson-resource-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.lesson-resource-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.lesson-resource-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-bottom:12px;
}
.lesson-resource-top span{
  color:var(--green-900);
  background:#e7f8ee;
  padding:7px 11px;
  border-radius:999px;
  font-weight:650;
  font-size:.78rem;
}
.lesson-resource-top small{
  color:#667085;
  font-weight:650;
}
.lesson-resource-card h3{
  color:var(--green-900);
  margin-bottom:6px;
}
.lesson-resource-card p{
  color:#667085;
  font-weight:600;
  margin-bottom:14px;
}
.lesson-video-shell{position:relative;width:100%;aspect-ratio:16/9;margin:4px 0 15px;overflow:hidden;border-radius:16px;background:#071b13;box-shadow:0 12px 26px rgba(7,61,43,.16)}
.lesson-video-preview,
.lesson-video-shell iframe{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  border:0;
  border-radius:16px;
  margin:0;
  background:linear-gradient(135deg,var(--lesson-video-from,#087844),var(--lesson-video-to,#11a666));
  box-shadow:0 12px 26px rgba(7,61,43,.16);
}
.lesson-video-play{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  border:0;
  padding:0;
  overflow:hidden;
  background:transparent;
  color:#fff;
  cursor:pointer;
  text-align:left;
  font:inherit;
}
.lesson-video-play img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s ease;
}
.lesson-video-play:hover img{transform:scale(1.05)}
.lesson-video-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.82));
}
.lesson-video-preview.no-image:before{
  content:"";
  position:absolute;
  width:170px;
  height:170px;
  right:-38px;
  top:-60px;
  border:34px solid rgba(255,255,255,.11);
  border-radius:50%;
}
.lesson-video-icon{
  position:absolute;
  right:8%;
  top:14%;
  font-size:clamp(3.2rem,8vw,5.8rem);
  opacity:.95;
  filter:drop-shadow(0 10px 15px rgba(0,0,0,.2));
}
.lesson-video-preview.has-image .lesson-video-icon{display:none}
.lesson-video-shell iframe,.lesson-video-shell .nbds-responsive-video-frame{position:absolute;inset:0;display:block;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;border:0!important;border-radius:0!important;margin:0!important;background:#000;object-fit:contain}.nbds-video-fullscreen-button{position:absolute;z-index:20;right:9px;bottom:9px;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:7px 10px;border:1px solid rgba(255,255,255,.58);border-radius:10px;background:rgba(3,27,18,.84);color:#fff;font:inherit;font-size:.72rem;font-weight:800;cursor:pointer;backdrop-filter:blur(8px);box-shadow:0 7px 18px rgba(0,0,0,.25)}.nbds-video-fullscreen-button:hover{background:#087844}.nbds-video-shell:fullscreen,.nbds-video-shell:-webkit-full-screen{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;aspect-ratio:auto!important;margin:0!important;border-radius:0!important;background:#000!important}.nbds-video-shell:fullscreen iframe,.nbds-video-shell:-webkit-full-screen iframe{width:100vw!important;height:100vh!important;object-fit:contain!important}.nbds-video-shell:fullscreen .nbds-video-fullscreen-button,.nbds-video-shell:-webkit-full-screen .nbds-video-fullscreen-button{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}@media(max-width:520px){.lesson-resource-card{padding:14px}.lesson-video-shell{border-radius:13px}.nbds-video-fullscreen-button{right:7px;bottom:7px;padding:7px 8px}.nbds-video-fullscreen-button b{display:none}.lesson-video-caption{right:52px}.lesson-video-caption b{font-size:.78rem}.lesson-video-play-circle{width:54px;height:54px}}
.lesson-video-play-circle{
  position:absolute;
  left:50%;
  top:44%;
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border:4px solid rgba(255,255,255,.82);
  border-radius:50%;
  background:#fff;
  color:#087844;
  box-shadow:0 13px 28px rgba(0,0,0,.3);
  transform:translate(-50%,-50%);
  font-size:1.45rem;
  text-indent:4px;
}
.lesson-video-caption{
  position:absolute;
  left:16px;
  right:16px;
  bottom:14px;
  z-index:2;
}
.lesson-video-caption small{
  display:block;
  margin-bottom:3px;
  color:#ffe37a;
  font-size:.66rem;
  font-weight:750;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.lesson-video-caption b{
  display:block;
  color:#fff;
  font-size:.92rem;
  line-height:1.25;
}
.lesson-resource-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
@media(max-width:900px){
  .lesson-selector-panel,
  .lesson-resource-grid{
    grid-template-columns:1fr;
  }
  .lesson-subject-head{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* v45 fixed class/department teaching timetable */
.timetable-selector-panel{
  display:grid;
  grid-template-columns:minmax(280px, 460px) 1fr;
  gap:18px;
  align-items:end;
  padding:18px;
  border:1px solid #d8efe1;
  border-radius:18px;
  background:#f7fcf9;
  margin-bottom:20px;
}
.timetable-selector-panel .form-group{
  margin:0;
}
.timetable-selector-panel select{
  font-size:1rem;
  font-weight:650;
  color:var(--green-900);
}
.timetable-selector-panel p{
  color:#667085;
  font-weight:600;
  margin:0;
}
.timetable-download-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:20px;
}
.timetable-download-card{
  display:block;
  text-decoration:none;
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:18px;
  padding:18px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  transition:.2s ease;
}
.timetable-download-card:hover{
  transform:translateY(-2px);
  border-color:#b7d9c6;
}
.timetable-download-card span{
  display:inline-flex;
  color:var(--green-900);
  background:#e7f8ee;
  padding:6px 10px;
  border-radius:999px;
  font-weight:650;
  font-size:.78rem;
}
.timetable-download-card strong{
  display:block;
  color:var(--green-900);
  font-size:1.08rem;
  margin:12px 0 4px;
}
.timetable-download-card small{
  color:#667085;
  font-weight:650;
}
.teaching-timetable-panel{
  display:none;
}
.teaching-timetable-panel.active{
  display:block;
}
.teaching-timetable-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  margin-bottom:18px;
}
.teaching-timetable-head span{
  display:block;
  color:#667085;
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:.7px;
  font-size:.78rem;
  margin-bottom:5px;
}
.teaching-timetable-head h2{
  color:var(--green-900);
  margin-bottom:4px;
}
.teaching-timetable-head p{
  color:#667085;
  font-weight:600;
}
@media(max-width:1000px){
  .timetable-download-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .teaching-timetable-head{
    flex-direction:column;
    align-items:flex-start;
  }
}
@media(max-width:760px){
  .timetable-selector-panel,
  .timetable-download-grid{
    grid-template-columns:1fr;
  }
}


/* v46 secure password reset */
.secure-reset-card{
  max-width:850px;
}
.secure-reset-note{
  grid-column:1 / -1;
  background:#f7fcf9;
  border:1px solid #d8efe1;
  color:#475467;
  border-radius:16px;
  padding:14px 16px;
  font-weight:600;
  line-height:1.5;
}
.secure-reset-note strong{
  color:var(--green-900);
}
.secure-reset-success p{
  margin:8px 0 10px;
  font-weight:600;
}
.reset-code-box,
.secure-account-box{
  background:#fff;
  border:1px solid #d8efe1;
  border-radius:16px;
  padding:14px 16px;
  margin:12px 0;
}
.reset-code-box span,
.secure-account-box span{
  display:block;
  color:#667085;
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:.8px;
  font-size:.78rem;
  margin-bottom:4px;
}
.reset-code-box strong{
  color:var(--green-900);
  font-size:2rem;
  letter-spacing:4px;
}
.secure-account-box strong{
  display:block;
  color:var(--green-900);
  font-size:1.2rem;
}
.secure-account-box small{
  color:#667085;
  font-weight:600;
}
.demo-reset-link{
  display:block;
  margin-top:10px;
  word-break:break-all;
  font-weight:650;
}
@media(max-width:760px){
  .secure-reset-card{
    max-width:100%;
  }
}


/* v47 JSS1-3 and SSS1-3 class standardization */
.class-range-note{
  color:#667085;
  font-weight:600;
}


/* v48 live class whiteboard, camera and access-code classroom */
.live-class-selector-panel{
  display:grid;
  grid-template-columns:minmax(260px,420px) 1fr;
  gap:18px;
  align-items:end;
  padding:18px;
  border:1px solid #d8efe1;
  border-radius:18px;
  background:#f7fcf9;
  margin-bottom:20px;
}
.live-class-selector-panel .form-group{margin:0}
.live-class-selector-panel p{color:#667085;font-weight:600;margin:0}
.live-class-subject-panel{display:none}
.live-class-subject-panel.active{display:block}
.live-subject-head{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  margin-bottom:18px;
}
.live-subject-head h2{color:var(--green-900);margin-bottom:4px}
.live-subject-head p{color:#667085;font-weight:600}
.live-class-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.live-class-card,
.live-empty-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.live-class-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-bottom:12px;
}
.live-open-badge,
.live-closed-badge{
  display:inline-flex;
  border-radius:999px;
  padding:7px 11px;
  font-weight:650;
  font-size:.78rem;
}
.live-open-badge{background:#e7f8ee;color:var(--green-900)}
.live-closed-badge{background:#f2f4f7;color:#667085}
.live-class-card h3{color:var(--green-900);margin-bottom:8px}
.live-class-card p{color:#667085;font-weight:600;margin-bottom:6px}
.live-access-form{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.live-access-form .btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.live-access-note{
  display:block;
  color:#667085;
  font-weight:650;
  margin-top:10px;
}
.live-classroom-body{
  margin:0;
  background:#f3faf6;
  color:#172033;
  min-height:100vh;
}
.live-gate-wrap{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
}
.live-gate-card{
  width:min(560px,100%);
  background:#fff;
  border:1px solid rgba(6,77,42,.12);
  border-radius:24px;
  box-shadow:0 24px 70px rgba(15,23,42,.12);
  padding:34px;
}
.live-gate-card span{
  color:var(--green-900);
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:.8px;
}
.live-gate-card h1{color:var(--green-900);font-size:2.2rem;margin:10px 0}
.live-gate-card p{color:#667085;font-weight:600;margin-bottom:20px}
.live-classroom-shell{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
.live-classroom-header{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  background:#fff;
  border-bottom:1px solid rgba(6,77,42,.12);
  padding:16px 22px;
  position:sticky;
  top:0;
  z-index:20;
}
.live-classroom-header small{
  color:#667085;
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:.8px;
}
.live-classroom-header h1{
  color:var(--green-900);
  font-size:1.35rem;
  margin:4px 0;
}
.live-classroom-header p{
  color:#667085;
  font-weight:600;
}
.live-header-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
#liveClock{
  background:#e7f8ee;
  color:var(--green-900);
  border-radius:999px;
  padding:10px 14px;
  font-weight:650;
}
.live-classroom-grid{
  display:grid;
  grid-template-columns:340px 1fr;
  gap:18px;
  padding:18px;
  flex:1;
}
.live-video-panel{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.live-video-main{
  position:relative;
  background:#0b1220;
  border-radius:22px;
  overflow:hidden;
  min-height:250px;
  box-shadow:0 18px 48px rgba(15,23,42,.14);
}
.live-video-main video{
  width:100%;
  height:100%;
  min-height:250px;
  object-fit:cover;
  display:block;
}
.video-placeholder{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  text-align:center;
  padding:24px;
  color:#fff;
}
.video-placeholder strong{
  display:block;
  font-size:1.2rem;
}
.video-placeholder span{
  display:block;
  color:#d0d5dd;
  font-weight:600;
  margin-top:6px;
}
.participant-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
}
.participant-tile{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:16px;
  padding:14px;
  text-align:center;
}
.participant-tile span{
  width:46px;
  height:46px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#e7f8ee;
  color:var(--green-900);
  margin:0 auto 8px;
  font-weight:650;
}
.participant-tile.active span{background:var(--green-700);color:#fff}
.participant-tile small{color:#667085;font-weight:650}
.live-side-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:18px;
  padding:18px;
}
.live-side-card h2{color:var(--green-900);margin-bottom:8px}
.live-side-card p{color:#667085;font-weight:600;margin-bottom:8px}
.whiteboard-panel{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.whiteboard-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:18px;
  padding:12px;
  box-shadow:0 10px 30px rgba(15,23,42,.06);
}
.whiteboard-toolbar button,
.board-tool{
  border:0;
  background:#eef7f1;
  color:var(--green-900);
  border-radius:999px;
  padding:9px 13px;
  font-weight:650;
  cursor:pointer;
}
.whiteboard-toolbar button:hover,
.board-tool.active{
  background:var(--green-700);
  color:#fff;
}
.board-control{
  display:flex;
  align-items:center;
  gap:6px;
  color:#475467;
  font-weight:650;
  background:#f8fbf9;
  border-radius:999px;
  padding:7px 10px;
}
.board-control input[type="color"]{
  width:30px;
  height:28px;
  border:0;
  background:transparent;
}
.board-control input[type="range"]{width:90px}
.whiteboard-stage{
  background:#fff;
  border:1px solid rgba(6,77,42,.14);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 18px 48px rgba(15,23,42,.10);
}
#classWhiteboard{
  width:100%;
  display:block;
  background:#fff;
  touch-action:none;
}
.whiteboard-help{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.whiteboard-help div{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:14px;
  padding:12px;
  color:#667085;
  font-weight:600;
}
.whiteboard-help strong{color:var(--green-900)}
@media(max-width:1100px){
  .live-classroom-grid{grid-template-columns:1fr}
  .whiteboard-help{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .live-class-grid,
  .live-class-selector-panel,
  .whiteboard-help{grid-template-columns:1fr}
  .live-classroom-header{align-items:flex-start;flex-direction:column}
  .live-classroom-grid{padding:10px}
}


/* v50 organized result centre filters */
.organized-result-action{
  align-items:flex-start;
}
.result-filter-board{
  display:grid;
  grid-template-columns:1.1fr 1fr 1fr 1.2fr;
  gap:16px;
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:18px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  margin-bottom:20px;
}
.result-filter-board .form-group{
  margin:0;
}
.result-filter-board select{
  font-weight:650;
  color:var(--green-900);
}
.result-display-area{
  display:block;
}
.result-type-panel{
  display:none;
}
.result-type-panel.active{
  display:block;
}
.filtered-result-panel{
  display:block;
  margin-bottom:20px;
}
.assignment-filtered-panel .result-session-card{
  border-left:5px solid var(--green-700);
}
.result-empty-state{
  background:#fff;
  border:1px dashed #b7d9c6;
  border-radius:18px;
  padding:24px;
  text-align:left;
  color:#667085;
  font-weight:600;
}
.result-empty-state h3{
  color:var(--green-900);
  margin-bottom:6px;
}
@media(max-width:1000px){
  .result-filter-board{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:700px){
  .result-filter-board{
    grid-template-columns:1fr;
  }
}


/* v51 admin control dashboard */
.admin-control-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:290px 1fr;
  background:#f3faf6;
}
.admin-control-sidebar{
  background:linear-gradient(180deg,#064d2a,#0b6b3d);
  color:#fff;
  padding:24px;
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
}
.admin-control-brand{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:24px;
}
.admin-control-brand strong{
  display:block;
  font-size:1.05rem;
}
.admin-control-brand small{
  color:#d8efe1;
  font-weight:600;
}
.admin-control-profile{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  padding:16px;
  margin-bottom:20px;
}
.admin-control-profile strong,
.admin-control-profile small,
.admin-control-profile span{
  display:block;
}
.admin-control-profile small{
  color:#d8efe1;
  margin:5px 0 10px;
  word-break:break-word;
}
.admin-control-profile span{
  display:inline-flex;
  background:#fff;
  color:#064d2a;
  border-radius:999px;
  padding:6px 10px;
  font-weight:650;
  font-size:.78rem;
}
.admin-control-sidebar a{
  display:block;
  color:#ecfff3;
  text-decoration:none;
  font-weight:650;
  padding:12px 14px;
  border-radius:14px;
  margin-bottom:6px;
}
.admin-control-sidebar a:hover,
.admin-control-sidebar a.active{
  background:rgba(255,255,255,.16);
}
.admin-control-main{
  padding:26px;
  min-width:0;
}
.admin-control-hero{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:stretch;
  background:linear-gradient(135deg,#064d2a,#0f8a4c);
  border-radius:28px;
  padding:28px;
  color:#fff;
  margin-bottom:22px;
  box-shadow:0 22px 60px rgba(15,23,42,.12);
}
.admin-control-hero span,
.admin-section-head span{
  display:block;
  text-transform:uppercase;
  letter-spacing:.8px;
  font-weight:650;
  font-size:.78rem;
  opacity:.9;
  margin-bottom:6px;
}
.admin-control-hero h1{
  font-size:2.2rem;
  max-width:760px;
  margin-bottom:8px;
}
.admin-control-hero p{
  color:#e8fff0;
  font-weight:600;
  max-width:880px;
}
.admin-hero-metric{
  min-width:210px;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.18);
  border-radius:22px;
  padding:20px;
  display:grid;
  align-content:center;
}
.admin-hero-metric small{
  font-weight:650;
  color:#d8efe1;
}
.admin-hero-metric strong{
  display:block;
  font-size:2.2rem;
}
.admin-metric-grid,
.admin-content-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-bottom:20px;
}
.admin-content-grid{
  grid-template-columns:repeat(6,minmax(0,1fr));
}
.admin-metric-card,
.admin-content-card,
.admin-control-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:22px;
  padding:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.admin-metric-card span,
.admin-content-card span{
  color:#667085;
  font-weight:650;
  font-size:.86rem;
}
.admin-metric-card strong,
.admin-content-card strong{
  display:block;
  color:#064d2a;
  font-size:2rem;
  line-height:1.1;
  margin:8px 0 4px;
}
.admin-metric-card small{
  color:#667085;
  font-weight:600;
}
.admin-content-card a{
  display:inline-flex;
  color:#064d2a;
  font-weight:650;
  margin-top:8px;
}
.admin-section-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:18px;
}
.admin-section-head span{
  color:#0b6b3d;
}
.admin-section-head h2{
  color:#064d2a;
  margin-bottom:5px;
}
.admin-section-head p{
  color:#667085;
  font-weight:600;
}
.admin-section-head.compact{
  margin-bottom:12px;
}
.student-visibility-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.student-visibility-card{
  border:1px solid #d8efe1;
  border-radius:18px;
  padding:16px;
  background:#fbfefc;
}
.student-visibility-card.disabled{
  background:#fff8f8;
  border-color:#f4c7c7;
}
.visibility-card-top{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  margin-bottom:10px;
}
.visibility-card-top span{
  display:block;
  color:#667085;
  font-size:.78rem;
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:.6px;
}
.visibility-card-top h3{
  color:#064d2a;
  margin-top:3px;
}
.student-visibility-card p{
  color:#667085;
  font-weight:600;
  min-height:48px;
}
.switch-control{
  position:relative;
  display:inline-block;
  width:52px;
  height:30px;
  flex:0 0 auto;
}
.switch-control input{
  display:none;
}
.switch-control span{
  position:absolute;
  inset:0;
  cursor:pointer;
  background:#d0d5dd;
  border-radius:999px;
  transition:.2s ease;
}
.switch-control span:before{
  content:"";
  position:absolute;
  width:24px;
  height:24px;
  left:3px;
  top:3px;
  background:#fff;
  border-radius:50%;
  transition:.2s ease;
  box-shadow:0 2px 8px rgba(15,23,42,.18);
}
.switch-control input:checked + span{
  background:#0f8a4c;
}
.switch-control input:checked + span:before{
  transform:translateX(22px);
}
.backend-control-map{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.backend-map-card{
  text-decoration:none;
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:18px;
  padding:18px;
}
.backend-map-card strong{
  display:block;
  color:#064d2a;
  margin-bottom:6px;
}
.backend-map-card span{
  color:#667085;
  font-weight:600;
}
.admin-control-grid{
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:18px;
  margin-top:20px;
}
@media(max-width:1200px){
  .admin-metric-grid,
  .admin-content-grid,
  .student-visibility-grid,
  .backend-control-map{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:900px){
  .admin-control-shell{
    grid-template-columns:1fr;
  }
  .admin-control-sidebar{
    height:auto;
    position:static;
  }
  .admin-control-hero,
  .admin-section-head{
    flex-direction:column;
  }
  .admin-control-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .admin-metric-grid,
  .admin-content-grid,
  .student-visibility-grid,
  .backend-control-map{
    grid-template-columns:1fr;
  }
}


/* v53 restore student dashboard navigation labels and logout */
.student-sidebar .student-nav-group p{
  display:block !important;
  opacity:1 !important;
  visibility:visible !important;
}
.student-sidebar .student-nav-link,
.student-sidebar .student-logout{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  visibility:visible !important;
  opacity:1 !important;
}
.student-sidebar .student-nav-link span:not(.nav-icon),
.student-sidebar .student-logout span:not(.nav-icon){
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
}
.student-main .student-topbar,
.student-main .student-page{
  visibility:visible !important;
}


/* v55 admin-oriented dashboard using student dashboard interface */
.admin-oriented-body .student-sidebar{
  background:#ffffff;
}
.admin-oriented-sidebar .student-brand{
  color:var(--green-900);
}
.admin-top-action{
  align-self:center;
}
.admin-hero-cover{
  min-height:300px;
}
.admin-stat-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.admin-control-quick-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px;
  margin-top:20px;
}
.admin-control-quick-grid article{
  background:#fff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:20px;
  padding:18px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.admin-control-quick-grid span{
  display:block;
  color:#667085;
  font-weight:650;
  font-size:.82rem;
}
.admin-control-quick-grid strong{
  display:block;
  color:var(--green-900);
  font-size:1.9rem;
  margin:8px 0 4px;
}
.admin-control-quick-grid p{
  color:#667085;
  font-weight:600;
}
.admin-result-layout{
  display:grid;
  grid-template-columns:1.4fr .9fr;
  gap:18px;
  margin-bottom:20px;
}
.admin-result-form h2,
.role-control-section h2{
  color:var(--green-900);
  margin-bottom:12px;
}
.admin-card-note{
  color:#667085;
  font-weight:600;
  margin-bottom:14px;
}
.role-control-section{
  margin-bottom:28px;
}
.role-control-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.role-control-card{
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:18px;
  padding:16px;
}
.role-control-card .visibility-card-top{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  margin-bottom:12px;
}
.role-control-card .visibility-card-top span{
  display:block;
  color:#667085;
  font-weight:650;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.5px;
}
.role-control-card h3{
  color:var(--green-900);
  margin-top:3px;
}
@media(max-width:1200px){
  .admin-control-quick-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .role-control-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:900px){
  .admin-stat-grid,
  .admin-result-layout{
    grid-template-columns:1fr;
  }
}
@media(max-width:700px){
  .admin-control-quick-grid,
  .role-control-grid{
    grid-template-columns:1fr;
  }
}


/* v56 detailed admin pages */
.admin-page-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-bottom:22px;
}
.admin-page-grid .student-card{
  min-width:0;
}
.admin-page-grid .student-card h2,
.student-card h2{
  color:var(--green-900);
  margin-bottom:12px;
}
.admin-page-grid .table-wrap{
  max-height:620px;
  overflow:auto;
}
@media(max-width:1050px){
  .admin-page-grid{
    grid-template-columns:1fr;
  }
}


/* v57 admin student account directory */
.admin-student-overview-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
  margin-bottom:20px;
}
.admin-student-filter-card{
  padding:22px;
}
.admin-student-filter-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:16px;
}
.admin-student-filter-head h2{
  color:var(--green-900);
  margin-bottom:4px;
}
.admin-student-filter-head p{
  color:#667085;
  font-weight:600;
}
.admin-student-filter-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:14px;
  margin-bottom:14px;
}
.admin-student-filter-grid .form-group{
  margin:0;
}
.admin-student-filter-result{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#e7f8ee;
  color:var(--green-900);
  border-radius:999px;
  padding:9px 13px;
  font-weight:650;
  margin-bottom:16px;
}
.admin-student-filter-result strong{
  font-size:1.1rem;
}
.admin-student-table-wrap{
  max-height:680px;
  overflow:auto;
}
.admin-student-table td small{
  color:#667085;
  font-weight:600;
}
@media(max-width:1200px){
  .admin-student-overview-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .admin-student-filter-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:720px){
  .admin-student-overview-grid,
  .admin-student-filter-grid{
    grid-template-columns:1fr;
  }
}


/* v58 admin teacher account directory and module controls */
.admin-teacher-overview-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-bottom:20px;
}
.teacher-admin-grid{
  grid-template-columns:1.1fr .9fr;
}
.admin-teacher-filter-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  margin-bottom:14px;
}
.admin-teacher-table-wrap{
  max-height:680px;
  overflow:auto;
}
.admin-teacher-table td strong{
  color:var(--green-900);
}
.teacher-module-control-list{
  display:grid;
  gap:14px;
  margin-bottom:18px;
}
.teacher-module-control-card{
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:18px;
  padding:16px;
}
.teacher-module-control-card.disabled{
  background:#fff8f8;
  border-color:#f4c7c7;
}
.teacher-module-control-card .visibility-card-top{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  margin-bottom:12px;
}
.teacher-module-control-card .visibility-card-top span{
  display:block;
  color:#667085;
  font-weight:650;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.5px;
}
.teacher-module-control-card h3{
  color:var(--green-900);
  margin-top:3px;
}
@media(max-width:1100px){
  .admin-teacher-overview-grid,
  .teacher-admin-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:760px){
  .admin-teacher-overview-grid,
  .teacher-admin-grid{
    grid-template-columns:1fr;
  }
}


/* v59 admin parent account directory and module controls */
.admin-parent-overview-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-bottom:20px;
}
.parent-admin-grid{
  grid-template-columns:1.1fr .9fr;
}
.admin-parent-filter-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  margin-bottom:14px;
}
.admin-parent-table-wrap{
  max-height:680px;
  overflow:auto;
}
.admin-parent-table td strong{
  color:var(--green-900);
}
.parent-module-control-list{
  display:grid;
  gap:14px;
  margin-bottom:18px;
}
.parent-module-control-card{
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:18px;
  padding:16px;
}
.parent-module-control-card.disabled{
  background:#fff8f8;
  border-color:#f4c7c7;
}
.parent-module-control-card .visibility-card-top{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  margin-bottom:12px;
}
.parent-module-control-card .visibility-card-top span{
  display:block;
  color:#667085;
  font-weight:650;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.5px;
}
.parent-module-control-card h3{
  color:var(--green-900);
  margin-top:3px;
}
@media(max-width:1100px){
  .admin-parent-overview-grid,
  .parent-admin-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:760px){
  .admin-parent-overview-grid,
  .parent-admin-grid{
    grid-template-columns:1fr;
  }
}


/* v60 cascading result publishing */
.admin-result-cascade-layout{
  grid-template-columns:1.35fr .85fr;
}
.admin-result-action-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
}
.admin-result-table-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:14px;
}
.admin-result-table-head h2{
  color:var(--green-900);
  margin-bottom:4px;
}
.admin-result-table-head p{
  color:#667085;
  font-weight:600;
}
.btn-small{
  padding:8px 12px !important;
  font-size:.82rem !important;
  border-radius:12px !important;
}
.admin-result-edit-btn{
  white-space:nowrap;
}
#adminResultPublishForm select:disabled,
#adminResultPublishForm input:disabled{
  background:#f2f4f7;
}
@media(max-width:980px){
  .admin-result-cascade-layout{
    grid-template-columns:1fr;
  }
}


/* v63 assignment DOCX to CBT converter */
.assignment-cbt-upload{
  background:#f7fcf9;
  border:1px dashed #8fc7a5;
  border-radius:16px;
  padding:14px;
}
.field-help{
  display:block;
  margin-top:8px;
  color:#667085;
  font-weight:600;
  line-height:1.5;
}


/* v64 editable assignment / CBT re-upload workflow */
.assignment-edit-btn{
  white-space:nowrap;
}
#assignmentEditNote{
  margin-bottom:14px;
}
#assignmentClearEditButton{
  background:#fff;
}


/* v65 exam DOCX to CBT converter and editable CBT exams */
.exam-cbt-upload{
  background:#f7fcf9;
  border:1px dashed #8fc7a5;
  border-radius:16px;
  padding:14px;
}
.format-guide-box{
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:16px;
  padding:16px;
  margin:12px 0 14px;
}
.format-guide-box p{
  margin:7px 0;
  color:#344054;
  font-weight:600;
}
.exam-edit-btn{
  white-space:nowrap;
}
.cbt-instruction-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.14);
  border-left:6px solid #0f7a3d;
  border-radius:18px;
  padding:18px 20px;
  margin:18px 0;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.cbt-instruction-card h2{
  color:#064d2a;
  margin-bottom:8px;
}
.cbt-instruction-card p{
  color:#344054;
  line-height:1.7;
  font-weight:600;
}


/* v66 department-aware class workflows */
.department-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:4px 9px;
  background:#e7f8ee;
  color:#064d2a;
  font-weight:650;
  font-size:.78rem;
}


/* v67 admin message student search */
.admin-message-search-panel{
  grid-column:1/-1;
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:18px;
  padding:14px;
  margin:8px 0 16px;
}
.admin-message-student-table-wrap{
  max-height:420px;
  overflow:auto;
}
.selected-student-card{
  min-height:58px;
  display:flex;
  flex-direction:column;
  gap:4px;
  justify-content:center;
  background:#fff;
  border:1px dashed #b9d9c6;
  border-radius:14px;
  padding:12px 14px;
  color:#667085;
}
.selected-student-card strong{
  color:#064d2a;
}
.selected-student-card small{
  color:#667085;
  font-weight:600;
}
.selected-student-card.selected{
  border-style:solid;
  background:#eaf8f0;
}
.message-student-selected-row{
  background:#eaf8f0 !important;
}
.admin-message-student-table td strong{
  color:#064d2a;
}


/* v68 reports and CSV downloads */
.admin-report-stat-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-bottom:18px;
}
.admin-report-download-row{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
  background:#fff;
  border:1px solid rgba(6,77,42,.1);
  border-radius:20px;
  padding:16px;
  margin-bottom:18px;
  box-shadow:0 14px 34px rgba(15,23,42,.06);
}
.admin-report-download-form{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.admin-report-download-form label{
  color:#064d2a;
  font-weight:650;
}
.admin-report-download-form select{
  min-width:220px;
}
.admin-report-grid{
  grid-template-columns:1.1fr .9fr;
}
@media(max-width:980px){
  .admin-report-stat-grid,
  .admin-report-grid{
    grid-template-columns:1fr;
  }
}


/* v69 percentage performance analysis */
.admin-performance-analysis-card{
  margin-bottom:18px;
}
.admin-performance-filter-row{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:16px 0;
}
.admin-performance-counter{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:8px;
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:14px;
  padding:8px 12px;
}
.admin-performance-counter strong{
  color:#064d2a;
  font-size:1.35rem;
}
.admin-performance-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:14px 0 18px;
}
.admin-performance-summary-grid article{
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:18px;
  padding:16px;
}
.admin-performance-summary-grid span{
  color:#667085;
  font-weight:650;
  display:block;
}
.admin-performance-summary-grid strong{
  color:#064d2a;
  font-size:1.5rem;
  display:block;
  margin:5px 0;
}
.admin-performance-summary-grid small{
  color:#667085;
  font-weight:600;
}
.admin-performance-subtitle{
  margin:22px 0 10px;
  color:#064d2a;
}
@media(max-width:980px){
  .admin-performance-filter-row,
  .admin-performance-summary-grid{
    grid-template-columns:1fr;
  }
}


/* v70 user restriction and record deletion */
.admin-user-management-controls{
  align-items:end;
  margin-bottom:12px;
}
.admin-inline-user-action{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
  margin-bottom:6px;
}
.admin-inline-user-action input{
  min-width:160px;
  padding:8px 10px;
  border:1px solid #d0d5dd;
  border-radius:10px;
}
.btn-danger{
  background:#b42318 !important;
  color:#fff !important;
  border-color:#b42318 !important;
}
.status-pill.danger{
  background:#fee4e2;
  color:#b42318;
}
.status-pill.success{
  background:#dcfae6;
  color:#067647;
}
.admin-muted-action{
  color:#667085;
  font-weight:650;
}


/* v71 JSS department auto-general */
select.jss-general-locked{
  background:#f0fdf4 !important;
  border-color:#8fc7a5 !important;
  color:#064d2a !important;
  font-weight:650;
}
.jss-general-note{
  display:block;
  margin-top:6px;
  color:#067647;
  font-size:.82rem;
  font-weight:600;
}


/* v72 registered subject dropdown for Exam/CBT */
#examSubject{
  font-weight:600;
}
#examSubject option{
  font-weight:600;
}


/* v73 parent portal */
.parent-dashboard-body{
  background:#f4fbf7;
}
.parent-app-shell .parent-sidebar{
  background:linear-gradient(180deg,#064d2a 0%,#03351d 100%);
}
.parent-hero{
  background:linear-gradient(135deg,#064d2a,#0a7c44);
}
.parent-child-switcher select{
  min-width:280px;
  border:1px solid #d0d5dd;
  border-radius:14px;
  padding:10px 12px;
  font-weight:600;
  color:#064d2a;
  background:#fff;
}
.parent-child-summary-card{
  background:#fff;
  border:1px solid rgba(6,77,42,.1);
  border-radius:22px;
  padding:18px;
  display:flex;
  gap:16px;
  align-items:center;
  margin-bottom:18px;
  box-shadow:0 14px 34px rgba(15,23,42,.06);
}
.parent-child-summary-card h2{
  color:#064d2a;
  margin:0 0 4px;
}
.parent-child-summary-card p{
  color:#667085;
  margin:0;
  font-weight:600;
}
.parent-child-avatar{
  width:64px;
  height:64px;
  font-size:1.5rem;
}
.parent-dashboard-grid{
  grid-template-columns:1.15fr .85fr;
}
.parent-control-list{
  display:grid;
  gap:10px;
}
.parent-control-list article{
  border:1px solid #d8efe1;
  background:#f7fcf9;
  border-radius:16px;
  padding:12px;
  display:grid;
  gap:6px;
}
.parent-control-list small{
  color:#667085;
  font-weight:600;
}
.parent-subject-progress-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.parent-subject-progress-grid article{
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:18px;
  padding:16px;
}
.parent-subject-progress-grid span{
  color:#667085;
  font-weight:650;
  display:block;
}
.parent-subject-progress-grid strong{
  color:#064d2a;
  font-size:1.45rem;
  display:block;
  margin:6px 0;
}
.parent-subject-progress-grid small{
  color:#667085;
  font-weight:600;
}
.parent-section-heading{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-bottom:12px;
  flex-wrap:wrap;
}
.parent-section-heading h2{
  margin:0;
}
.parent-message-list{
  display:grid;
  gap:12px;
}
.parent-message-list article{
  background:#fff;
  border:1px solid #d8efe1;
  border-radius:18px;
  padding:16px;
}
.parent-message-list article > div{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:8px;
}
.parent-message-list strong{
  color:#064d2a;
}
.parent-message-list small{
  color:#667085;
  font-weight:600;
}
.parent-message-list p{
  color:#344054;
  margin:0 0 10px;
  line-height:1.55;
}
@media(max-width:980px){
  .parent-dashboard-grid,
  .parent-subject-progress-grid{
    grid-template-columns:1fr;
  }
  .parent-child-switcher select{
    min-width:100%;
    width:100%;
  }
}


/* v74 parent signup child verification */
.parent-signup-wrap{
  padding:40px 16px;
}
.parent-signup-card{
  max-width:980px;
}
.parent-signup-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.parent-signup-grid h2{
  margin:4px 0 0;
  color:#064d2a;
}
.parent-signup-grid .profile-wide{
  grid-column:1/-1;
}
@media(max-width:760px){
  .parent-signup-grid{
    grid-template-columns:1fr;
  }
}


/* v75 parent dashboard interface matched to admin/student green scheme */
.parent-dashboard-body{
  background:#f6fbf8 !important;
}
.parent-app-shell{
  background:#f6fbf8;
}
.parent-app-shell .parent-sidebar{
  background:#ffffff !important;
  color:#064d2a !important;
  border-right:1px solid #dfeee5;
  box-shadow:8px 0 24px rgba(6,77,42,.06);
}
.parent-sidebar .student-brand{
  color:#064d2a !important;
  font-weight:950;
}
.parent-sidebar .student-brand-mark{
  background:linear-gradient(135deg,#55b947,#0b7a35);
  color:#ffffff;
  box-shadow:0 12px 28px rgba(6,77,42,.22);
}
.parent-sidebar .student-mini-profile{
  background:#f1faf4;
  border:1px solid #dfeee5;
  color:#064d2a;
  box-shadow:none;
}
.parent-sidebar .student-mini-profile strong{
  color:#064d2a;
}
.parent-sidebar .student-mini-profile small{
  color:#667085;
}
.parent-sidebar .student-avatar{
  background:linear-gradient(135deg,#0b7a35,#55b947);
  color:#ffffff;
}
.parent-sidebar .student-nav-group p{
  color:#8a98ad;
  letter-spacing:.24em;
  font-weight:950;
}
.parent-sidebar .student-nav-link{
  color:#344054 !important;
  background:transparent;
  border:1px solid transparent;
  font-weight:650;
}
.parent-sidebar .student-nav-link:hover{
  background:#f1faf4;
  color:#064d2a !important;
}
.parent-sidebar .student-nav-link.active{
  background:#e8f7ed !important;
  color:#064d2a !important;
  border-color:#d8efe1;
  box-shadow:inset 4px 0 0 #0b7a35;
}
.parent-sidebar .student-logout{
  background:#fff5f5;
  color:#b42318 !important;
  border:1px solid #fee4e2;
}
.parent-main .student-topbar{
  background:#ffffff;
  border-bottom:1px solid #e9f3ee;
  box-shadow:0 8px 24px rgba(15,23,42,.04);
}
.parent-main .student-topbar small{
  color:#8a98ad;
  letter-spacing:.24em;
  font-weight:950;
}
.parent-main .student-topbar strong{
  color:#064d2a;
}
.parent-hero{
  background:
    radial-gradient(circle at 90% 18%, rgba(255,255,255,.22) 0 12%, rgba(255,255,255,0) 22%),
    linear-gradient(135deg,#075c2c 0%,#087f3f 55%,#0d8d47 100%) !important;
  color:#ffffff;
  border-radius:0;
  box-shadow:0 18px 40px rgba(6,77,42,.12);
  min-height:300px;
  padding:54px 56px;
}
.parent-hero span{
  color:#ffd84d !important;
  font-weight:950;
  letter-spacing:.12em;
}
.parent-hero h1{
  color:#ffffff !important;
  font-size:clamp(3rem,7vw,6rem);
  line-height:.96;
  letter-spacing:-.06em;
  max-width:780px;
}
.parent-hero p{
  color:#f5fff8 !important;
  font-size:1.08rem;
  max-width:780px;
}
.parent-child-switcher select{
  background:#ffffff;
  color:#064d2a;
  border:1px solid #d8efe1;
  box-shadow:0 10px 25px rgba(6,77,42,.08);
}
.parent-child-summary-card,
.parent-main .student-card,
.parent-main .student-stat-card{
  background:#ffffff;
  border:1px solid #e1eee6;
  box-shadow:0 14px 34px rgba(15,23,42,.06);
}
.parent-main .student-card h2,
.parent-child-summary-card h2{
  color:#064d2a;
}
.parent-main .student-stat-card span{
  color:#667085;
  font-weight:950;
}
.parent-main .student-stat-card strong{
  color:#064d2a;
}
.parent-control-list article,
.parent-subject-progress-grid article{
  background:#f7fcf9;
  border:1px solid #d8efe1;
}
.parent-section-heading .btn,
.parent-main .btn-outline{
  border-color:#0b7a35;
  color:#064d2a;
}
.parent-main .btn-primary{
  background:#064d2a;
  border-color:#064d2a;
}
@media(max-width:760px){
  .parent-hero{
    padding:34px 24px;
    min-height:240px;
  }
}


/* v76 unified signup with role-based parent child authentication */
.unified-signup-wrap{
  padding:40px 16px;
}
.unified-signup-card{
  max-width:1040px;
}
.unified-signup-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.unified-signup-grid .profile-wide{
  grid-column:1/-1;
}
.parent-child-auth-section{
  display:none;
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:22px;
  padding:18px;
  margin:8px 0 4px;
}
.parent-child-auth-section.active{
  display:block;
}
.parent-child-auth-header{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:16px;
}
.parent-child-auth-header span{
  color:#ffd84d;
  background:#064d2a;
  border-radius:999px;
  padding:5px 10px;
  display:inline-flex;
  font-size:.78rem;
  font-weight:950;
  letter-spacing:.08em;
}
.parent-child-auth-header h2{
  color:#064d2a;
  margin:10px 0 5px;
}
.parent-child-auth-header p{
  color:#667085;
  margin:0;
  font-weight:600;
  line-height:1.55;
}
.parent-auth-score-card{
  background:#ffffff;
  border:1px solid #d8efe1;
  border-radius:16px;
  padding:14px;
  min-width:230px;
}
.parent-auth-score-card strong{
  color:#064d2a;
  display:block;
}
.parent-auth-score-card small{
  color:#667085;
  font-weight:600;
}
.parent-relationship-row{
  margin-bottom:10px;
}
.child-verification-card{
  background:#ffffff;
  border:1px solid #d8efe1;
  border-radius:18px;
  padding:16px;
  margin-top:12px;
}
.child-verification-card h3{
  margin:0 0 12px;
  color:#064d2a;
}
.child-verification-card h3 small{
  color:#667085;
  font-weight:600;
}
.optional-child-card{
  background:#fbfefc;
}
@media(max-width:760px){
  .unified-signup-grid,
  .parent-child-auth-header{
    grid-template-columns:1fr;
    flex-direction:column;
  }
  .parent-auth-score-card{
    min-width:0;
    width:100%;
  }
}


/* v77 parent multi-child full access corrections */
.parent-linked-count-note{
  color:#667085;
  font-weight:600;
}
.parent-main .data-table th{
  color:#064d2a;
}
.parent-main .data-table a{
  color:#064d2a;
  font-weight:650;
}


/* v78 parent pages full connection */
.parent-reply-box{
  margin-top:10px !important;
  padding:10px 12px;
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:12px;
}
.admin-parent-reply-form{
  display:grid;
  gap:8px;
  min-width:220px;
}
.admin-parent-reply-form textarea,
.admin-parent-reply-form select{
  width:100%;
  border:1px solid #d0d5dd;
  border-radius:10px;
  padding:8px 10px;
}
.admin-parent-message-card{
  grid-column:1/-1;
}
.parent-main .parent-dashboard-grid .student-card{
  align-self:start;
}


/* v79 connected workflow hub */
.workflow-hub-body{
  background:#f6fbf8;
}
.workflow-sidebar{
  background:#ffffff !important;
  color:#064d2a !important;
  border-right:1px solid #dfeee5;
  box-shadow:8px 0 24px rgba(6,77,42,.06);
}
.workflow-sidebar .student-brand,
.workflow-sidebar .student-mini-profile strong{
  color:#064d2a !important;
}
.workflow-sidebar .student-mini-profile{
  background:#f1faf4;
  border:1px solid #dfeee5;
}
.workflow-sidebar .student-nav-link{
  color:#344054 !important;
}
.workflow-sidebar .student-nav-link.active,
.workflow-sidebar .student-nav-link:hover{
  background:#e8f7ed !important;
  color:#064d2a !important;
}
.workflow-hero{
  background:
    radial-gradient(circle at 90% 18%, rgba(255,255,255,.22) 0 12%, rgba(255,255,255,0) 22%),
    linear-gradient(135deg,#075c2c 0%,#087f3f 55%,#0d8d47 100%) !important;
}
.workflow-action-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.workflow-action-grid a{
  display:flex;
  align-items:center;
  min-height:54px;
  background:#f7fcf9;
  border:1px solid #d8efe1;
  border-radius:14px;
  padding:12px 14px;
  color:#064d2a;
  font-weight:650;
  text-decoration:none;
}
.workflow-action-grid a:hover{
  background:#e8f7ed;
}
.workflow-rule-list{
  margin:0;
  padding-left:18px;
  color:#344054;
  font-weight:600;
  line-height:1.8;
}
.student-workflow-link{
  margin:8px 14px 10px;
}
@media(max-width:760px){
  .workflow-action-grid{
    grid-template-columns:1fr;
  }
}


/* v81 user profile photo upload */
.student-avatar.has-user-photo,
.profile-photo-box.has-user-photo{
  overflow:hidden;
  padding:0 !important;
  background:#f1faf4 !important;
}
.student-avatar.has-user-photo img,
.profile-photo-box.has-user-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:inherit;
}
.user-profile-body{
  background:#f6fbf8;
}
.user-profile-card{
  align-self:start;
}
.user-photo-preview{
  display:flex;
  gap:16px;
  align-items:center;
  padding:14px;
  border:1px solid #d8efe1;
  border-radius:18px;
  background:#f7fcf9;
  margin-bottom:16px;
}
.user-photo-preview strong{
  color:#064d2a;
  display:block;
  font-size:1.05rem;
}
.user-photo-preview small{
  color:#667085;
  font-weight:600;
}
.role-profile-card{
  text-align:center;
}
.role-profile-card .student-avatar{
  margin:0 auto 10px;
}
.student-workflow-link + .student-workflow-link{
  margin-top:0;
}


/* v83 workflow hub full sidebar list fix */
.workflow-hub-shell .student-sidebar{
  overflow-y:auto;
  overflow-x:hidden;
}
.workflow-hub-shell .student-nav-group{
  margin-bottom:18px;
}
.workflow-hub-shell .student-nav-link{
  min-height:42px;
  flex-shrink:0;
}
.workflow-hub-shell .student-logout-bottom{
  position:sticky;
  bottom:10px;
}


/* v84 static dashboard labels */
.static-dashboard-sidebar .student-nav-group{
  display:block !important;
}
.static-dashboard-sidebar .student-nav-link{
  display:flex !important;
  align-items:center;
  width:100%;
  min-height:42px;
  gap:10px;
  white-space:nowrap;
  overflow:visible;
  flex-shrink:0;
}
.static-dashboard-sidebar .student-nav-link span:last-child{
  display:inline !important;
  visibility:visible !important;
  opacity:1 !important;
  flex:1 1 auto;
  min-width:0;
}
.static-dashboard-sidebar .student-nav-link.active{
  font-weight:650;
}
.static-dashboard-sidebar .student-nav-link:not(.active){
  font-weight:600;
}
.static-dashboard-sidebar .student-nav-group p{
  display:block !important;
  white-space:nowrap;
}


/* v86 professional school logo */
.school-logo-mark{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#ffffff !important;
  border:1px solid rgba(6,77,42,.12);
  box-shadow:0 8px 18px rgba(6,77,42,.12);
  color:transparent !important;
}
.school-logo-mark img{
  width:86%;
  height:86%;
  object-fit:contain;
  display:block;
}
.student-brand-mark.school-logo-mark,
.brand-mark.school-logo-mark{
  min-width:52px;
  width:52px;
  height:52px;
  border-radius:16px;
  padding:0;
}
.brand .brand-mark.school-logo-mark{
  min-width:48px;
  width:48px;
  height:48px;
}
.student-brand .school-logo-mark + span,
.brand .school-logo-mark + span{
  line-height:1.15;
}
.admit-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
}
@media(max-width:760px){
  .student-brand-mark.school-logo-mark,
  .brand-mark.school-logo-mark{
    min-width:46px;
    width:46px;
    height:46px;
  }
}


/* v88 mandatory login and registration gate polish */
.register-card-link{
  color:inherit;
  text-decoration:none;
  display:block;
  cursor:pointer;
}
.register-card-link:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(6,77,42,.14);
}


/* v89 contact page and admin-only contact inbox */
.contact-page-grid{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);
  gap:28px;
  align-items:start;
}
.contact-form-card{
  max-width:100%;
}
.form-full{
  grid-column:1 / -1;
}
textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px 16px;
  font:inherit;
  resize:vertical;
  min-height:140px;
}
.contact-info-card{
  position:sticky;
  top:24px;
}
.contact-message-list{
  display:grid;
  gap:18px;
}
.contact-message-card{
  border:1px solid var(--line);
  border-radius:22px;
  padding:20px;
  background:#fff;
  box-shadow:0 12px 32px rgba(6,77,42,.07);
}
.contact-message-card.is-new{
  border-color:rgba(8,123,58,.45);
  box-shadow:0 18px 42px rgba(8,123,58,.13);
}
.contact-message-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:12px;
}
.contact-message-head h3{
  margin:0 0 6px;
}
.contact-message-head p,
.contact-message-head small{
  margin:0;
  color:var(--muted);
}
.contact-message-body{
  border-left:4px solid rgba(8,123,58,.28);
  padding:10px 0 10px 14px;
  line-height:1.65;
}
.contact-message-actions{
  align-items:end;
  margin-top:14px;
}
.delete-inline-form{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.delete-inline-form input{
  max-width:170px;
}
@media(max-width:900px){
  .contact-page-grid{
    grid-template-columns:1fr;
  }
  .contact-info-card{
    position:static;
  }
  .contact-message-head{
    flex-direction:column;
  }
}


/* v90 full features page */
.feature-page-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.feature-page-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:24px;
  box-shadow:0 14px 34px rgba(6,77,42,.08);
  transition:.2s ease;
}
.feature-page-card:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 44px rgba(6,77,42,.13);
}
.feature-page-card h3{
  margin:12px 0 8px;
  color:var(--green-dark);
}
.feature-page-card p{
  color:var(--muted);
  line-height:1.65;
  margin:0;
}
.workflow-steps-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
}
.workflow-steps-grid article{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:24px;
  box-shadow:0 14px 34px rgba(6,77,42,.08);
}
.workflow-steps-grid span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border-radius:16px;
  background:rgba(8,123,58,.1);
  color:var(--green-dark);
  font-weight:650;
}
.workflow-steps-grid h3{
  margin:14px 0 8px;
  color:var(--green-dark);
}
.workflow-steps-grid p{
  color:var(--muted);
  line-height:1.65;
  margin:0;
}
@media(max-width:1000px){
  .feature-page-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .workflow-steps-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:640px){
  .feature-page-grid,
  .workflow-steps-grid{
    grid-template-columns:1fr;
  }
}


/* v91 footer shortcut links and official call line */
.site-footer{
  background:#052d1a;
  color:#eaf8f0;
  padding:54px 0 22px;
  margin-top:42px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.35fr 1fr 1fr;
  gap:34px;
  align-items:start;
}
.footer-brand{
  display:flex;
  align-items:center;
  gap:12px;
  color:#ffffff;
  text-decoration:none;
  font-weight:650;
  font-size:1.05rem;
}
.footer-brand small{
  color:#bfe9cf;
  font-weight:600;
}
.footer-brand-block p,
.footer-note{
  color:#ccebdd;
  line-height:1.65;
}
.footer-contact-line{
  margin:.45rem 0;
}
.footer-contact-line a,
.footer-shortcuts a{
  color:#ffffff;
  text-decoration:none;
  font-weight:600;
}
.footer-contact-line a:hover,
.footer-shortcuts a:hover{
  color:#f4c542;
}
.footer-shortcuts h3{
  color:#ffffff;
  margin:0 0 14px;
}
.footer-links-grid{
  display:grid;
  gap:10px;
}
.footer-links-grid a{
  padding:9px 12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:rgba(255,255,255,.05);
  transition:.2s ease;
}
.footer-links-grid a:hover{
  background:rgba(244,197,66,.12);
  border-color:rgba(244,197,66,.38);
  transform:translateX(3px);
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.12);
  margin-top:34px;
  padding-top:18px;
  color:#bfe9cf;
  font-weight:600;
}
@media(max-width:900px){
  .footer-grid{
    grid-template-columns:1fr;
  }
  .footer-bottom{
    flex-direction:column;
  }
}


/* v93 full teacher dashboard interface */
.teacher-dashboard-body .teacher-hero-cover{
  background:linear-gradient(135deg,#065f2f 0%,#098545 56%,#0d6e3b 100%);
}
.teacher-app-shell .student-sidebar{
  overflow-y:auto;
}
.teacher-quick-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.teacher-main .admin-form-grid,
.teacher-main .admin-filter-grid{
  align-items:end;
}
.teacher-main textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px 16px;
  font:inherit;
  resize:vertical;
}
.teacher-main .form-full{
  grid-column:1 / -1;
}
@media(max-width:800px){
  .teacher-quick-actions{
    grid-template-columns:1fr;
  }
}


/* v95 teacher result entry dropdown workflow */
.teacher-selected-student-card{
  border:1px solid rgba(8,123,58,.22);
  background:#f7fcf9;
  border-radius:18px;
  padding:16px 18px;
  display:grid;
  gap:4px;
}
.teacher-selected-student-card strong{
  color:var(--green-dark);
  font-size:1rem;
}
.teacher-selected-student-card small{
  color:var(--muted);
  font-weight:600;
}
.teacher-result-entry-form select{
  min-height:48px;
}


/* v96 teacher profile photo inside profile page */
.teacher-profile-photo-card{
  min-height:100%;
}
.teacher-profile-photo-preview{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.teacher-profile-large-avatar{
  width:110px;
  height:110px;
  min-width:110px;
  border-radius:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#0f8f49;
  color:#fff;
  font-size:2.3rem;
  font-weight:650;
  box-shadow:0 18px 38px rgba(6,77,42,.18);
}
.teacher-profile-large-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.teacher-profile-photo-preview strong{
  display:block;
  color:var(--green-dark);
  font-size:1.15rem;
}
.teacher-profile-photo-preview small{
  display:block;
  color:var(--muted);
  font-weight:600;
}


/* v97 teacher workflow hub static full sidebar */
.workflow-hub-shell .static-dashboard-sidebar .student-nav-group{
  display:block !important;
}
.workflow-hub-shell .static-dashboard-sidebar .student-nav-link{
  min-height:42px;
  white-space:nowrap;
  flex-shrink:0;
}
.workflow-hub-shell .static-dashboard-sidebar{
  overflow-y:auto;
  overflow-x:hidden;
}


/* v98 parent static sidebar order fix */
.parent-sidebar.static-dashboard-sidebar,
.workflow-hub-shell .static-dashboard-sidebar{
  overflow-y:auto;
  overflow-x:hidden;
}
.parent-sidebar.static-dashboard-sidebar .student-nav-link,
.workflow-hub-shell .static-dashboard-sidebar .student-nav-link,
.user-profile-shell .static-dashboard-sidebar .student-nav-link{
  min-height:42px;
  white-space:nowrap;
  flex-shrink:0;
}
.parent-sidebar.static-dashboard-sidebar .student-nav-group,
.workflow-hub-shell .static-dashboard-sidebar .student-nav-group,
.user-profile-shell .static-dashboard-sidebar .student-nav-group{
  display:block !important;
}


/* v100 admin message student surname autocomplete */
.admin-message-form .form-group{
  position:relative;
}
.admin-message-student-suggestions{
  display:none;
  position:absolute;
  z-index:50;
  top:calc(100% + 8px);
  left:0;
  right:0;
  max-height:280px;
  overflow-y:auto;
  background:#fff;
  border:1px solid rgba(8,123,58,.22);
  border-radius:18px;
  box-shadow:0 20px 45px rgba(6,77,42,.16);
  padding:8px;
}
.admin-message-student-suggestions.active{
  display:grid;
  gap:6px;
}
.admin-message-student-suggestion,
.admin-message-student-suggestion-empty{
  width:100%;
  border:0;
  background:#f7fcf9;
  border-radius:14px;
  padding:12px 14px;
  text-align:left;
  cursor:pointer;
  font:inherit;
}
.admin-message-student-suggestion:hover,
.admin-message-student-suggestion:focus{
  background:#e7f6ed;
  outline:2px solid rgba(8,123,58,.18);
}
.admin-message-student-suggestion strong{
  display:block;
  color:var(--green-dark);
  font-weight:650;
}
.admin-message-student-suggestion small{
  display:block;
  color:var(--muted);
  font-weight:600;
  margin-top:4px;
}
.admin-message-student-suggestion-empty{
  color:var(--muted);
  cursor:default;
}
.selected-student-card.selected{
  border-color:rgba(8,123,58,.42);
  background:#f7fcf9;
}


/* v101 student live class auto-join availability */
.live-class-card.live-class-open-now{
  border-color:rgba(8,123,58,.45);
  box-shadow:0 20px 45px rgba(8,123,58,.16);
}
.live-class-card.live-class-open-now .live-join-button{
  opacity:1;
  cursor:pointer;
}
.live-class-card .live-join-button:disabled{
  opacity:.58;
  cursor:not-allowed;
  filter:grayscale(.2);
}
.live-access-note{
  display:block;
  margin-top:10px;
  color:var(--muted);
  font-weight:600;
}
.live-class-open-now .live-access-note{
  color:var(--green-dark);
}


/* v102 student live class auto-sync from teacher schedule */
.student-dashboard-live-sync-card{
  display:none;
  margin:18px 0 22px;
  padding:20px;
  border-radius:24px;
  background:linear-gradient(135deg,#f7fcf9,#ffffff);
  border:1px solid rgba(8,123,58,.24);
  box-shadow:0 18px 42px rgba(6,77,42,.12);
}
.dashboard-live-sync-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.dashboard-live-sync-top strong{
  color:var(--green-dark);
  font-weight:650;
}
.student-dashboard-live-sync-card h2{
  margin:4px 0 6px;
  color:var(--green-dark);
}
.student-dashboard-live-sync-card p{
  margin:0 0 14px;
  color:var(--muted);
  font-weight:600;
}
.compact-live-access-form{
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto;
  gap:12px;
  align-items:end;
}
.compact-live-access-form .live-access-note{
  grid-column:1 / -1;
}
.student-live-dynamic-sync-panel{
  margin:18px 0 22px;
}
.live-sync-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:18px;
  margin-bottom:14px;
  padding:18px;
  border-radius:22px;
  background:#f7fcf9;
  border:1px solid rgba(8,123,58,.14);
}
.live-sync-head span{
  display:block;
  color:var(--green-dark);
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.76rem;
  margin-bottom:5px;
}
.live-sync-head h2{
  margin:0;
  color:var(--green-dark);
}
.live-sync-head p{
  margin:6px 0 0;
  color:var(--muted);
  font-weight:600;
}
.live-sync-grid{
  margin-bottom:18px;
}
.live-sync-empty-card{
  margin-bottom:18px;
}
@media (max-width:760px){
  .compact-live-access-form{
    grid-template-columns:1fr;
  }
  .live-sync-head{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* v103 Nigerian WAT timezone sync */
.teacher-wat-time-note{
  border-left:4px solid rgba(8,123,58,.45);
  padding-left:12px;
}
.student-live-pill{
  white-space:nowrap;
}


/* v104 live class countdown for admin, teacher and student */
.live-countdown-pill{
  display:inline-grid;
  gap:3px;
  min-width:138px;
  padding:10px 12px;
  border-radius:18px;
  border:1px solid rgba(8,123,58,.18);
  background:#f7fcf9;
  box-shadow:0 10px 24px rgba(6,77,42,.08);
}
.live-countdown-pill span{
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:650;
  color:var(--muted);
}
.live-countdown-pill strong{
  color:var(--green-dark);
  font-size:1rem;
  font-weight:950;
  line-height:1.1;
}
.live-countdown-pill small{
  color:var(--muted);
  font-weight:600;
}
.live-countdown-pill.countdown-open{
  background:#ecfff3;
  border-color:rgba(8,123,58,.36);
}
.live-countdown-pill.countdown-open strong,
.live-countdown-pill.countdown-open span{
  color:var(--green-dark);
}
.live-countdown-pill.countdown-ended{
  background:#f7f7f7;
  border-color:rgba(100,116,139,.22);
}
.live-countdown-pill.countdown-ended strong{
  color:#64748b;
}
.live-student-countdown{
  margin:10px 0 12px;
}
.data-table .live-countdown-pill{
  min-width:128px;
}


/* v105 virtual board icons and responsive full-screen mode */
.whiteboard-toolbar{
  gap:10px;
  align-items:stretch;
}
.board-tool-group{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.whiteboard-toolbar button,
.board-tool,
.board-control{
  min-height:42px;
}
.whiteboard-toolbar button,
.board-tool{
  display:inline-flex;
  align-items:center;
  gap:8px;
  line-height:1;
  box-shadow:0 6px 14px rgba(6,77,42,.06);
}
.board-icon{
  width:20px;
  height:20px;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
}
.board-icon svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.board-control{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.board-control span:not(.board-icon){
  font-size:.86rem;
}
.board-size-control input[type="range"]{
  width:118px;
}
.board-fullscreen-btn{
  background:linear-gradient(135deg,var(--green-700),#0c8f50) !important;
  color:#fff !important;
}
.whiteboard-panel.board-native-fullscreen,
.whiteboard-panel.board-fallback-fullscreen{
  background:#f3faf6;
  padding:12px;
  gap:10px;
}
.whiteboard-panel:fullscreen{
  width:100vw;
  height:100vh;
  overflow:hidden;
}
.whiteboard-panel.board-native-fullscreen .whiteboard-toolbar,
.whiteboard-panel.board-fallback-fullscreen .whiteboard-toolbar{
  position:sticky;
  top:0;
  z-index:5;
  max-height:34vh;
  overflow:auto;
}
.whiteboard-panel.board-native-fullscreen .whiteboard-stage,
.whiteboard-panel.board-fallback-fullscreen .whiteboard-stage{
  flex:1;
  height:calc(100vh - 118px);
  min-height:0;
  border-radius:18px;
}
.whiteboard-panel.board-native-fullscreen .whiteboard-help,
.whiteboard-panel.board-fallback-fullscreen .whiteboard-help{
  display:none;
}
.board-fallback-fullscreen{
  position:fixed !important;
  inset:0 !important;
  z-index:9999 !important;
  width:100vw !important;
  height:100dvh !important;
  overflow:hidden !important;
}
.board-fullscreen-body{
  overflow:hidden !important;
}
@media(max-width:900px){
  .board-tool-text{
    display:none;
  }
  .whiteboard-toolbar button,
  .board-tool{
    padding:10px;
    border-radius:14px;
  }
  .board-tool-group{
    gap:6px;
  }
  .board-control span:not(.board-icon){
    display:none;
  }
  .board-size-control input[type="range"]{
    width:82px;
  }
}
@media(max-width:560px){
  .whiteboard-toolbar{
    border-radius:16px;
    padding:8px;
    gap:8px;
  }
  .board-icon,
  .board-icon svg{
    width:18px;
    height:18px;
  }
  .whiteboard-panel.board-native-fullscreen .whiteboard-stage,
  .whiteboard-panel.board-fallback-fullscreen .whiteboard-stage{
    height:calc(100dvh - 100px);
  }
}


/* v106 full-screen board interface with top-right student preview */
.whiteboard-panel.board-native-fullscreen,
.whiteboard-panel.board-fallback-fullscreen{
  background:#eaf4ef;
  padding:12px;
  gap:10px;
  position:relative;
}
.whiteboard-panel.board-native-fullscreen .whiteboard-toolbar,
.whiteboard-panel.board-fallback-fullscreen .whiteboard-toolbar{
  align-items:flex-start;
  background:#ffffff;
  border:1px solid rgba(6,77,42,.10);
  border-radius:18px;
  box-shadow:0 14px 32px rgba(15,23,42,.08);
  padding:14px;
  max-height:132px;
  overflow:auto;
  padding-right:330px;
}
.whiteboard-panel.board-native-fullscreen .board-tool-group,
.whiteboard-panel.board-fallback-fullscreen .board-tool-group{
  gap:10px;
}
.whiteboard-panel.board-native-fullscreen .whiteboard-toolbar button,
.whiteboard-panel.board-fallback-fullscreen .whiteboard-toolbar button,
.whiteboard-panel.board-native-fullscreen .board-control,
.whiteboard-panel.board-fallback-fullscreen .board-control{
  min-height:44px;
  border-radius:999px;
  background:#eef8f2;
  color:var(--green-900);
  box-shadow:none;
  font-weight:950;
}
.whiteboard-panel.board-native-fullscreen .whiteboard-toolbar button:hover,
.whiteboard-panel.board-fallback-fullscreen .whiteboard-toolbar button:hover,
.whiteboard-panel.board-native-fullscreen .board-tool.active,
.whiteboard-panel.board-fallback-fullscreen .board-tool.active,
.whiteboard-panel.board-native-fullscreen .board-fullscreen-btn,
.whiteboard-panel.board-fallback-fullscreen .board-fullscreen-btn{
  background:var(--green-700) !important;
  color:#fff !important;
}
.whiteboard-panel.board-native-fullscreen .whiteboard-stage,
.whiteboard-panel.board-fallback-fullscreen .whiteboard-stage{
  height:calc(100dvh - 168px);
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 28px rgba(15,23,42,.08);
}
.board-student-preview{
  display:none;
}
.whiteboard-panel.board-native-fullscreen .board-student-preview,
.whiteboard-panel.board-fallback-fullscreen .board-student-preview{
  display:block;
  position:absolute;
  top:4px;
  right:4px;
  z-index:20;
}
.board-preview-window{
  width:292px;
  height:162px;
  background:#202020;
  border:2px solid rgba(255,255,255,.75);
  box-shadow:0 18px 36px rgba(15,23,42,.28);
  overflow:hidden;
  position:relative;
  display:grid;
  place-items:center;
}
.board-preview-window video{
  width:100%;
  height:100%;
  object-fit:cover;
  background:#202020;
}
.board-preview-avatar{
  width:64px;
  height:64px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#0f8a4c;
  color:#fff;
  font-size:1.5rem;
  font-weight:950;
}
.board-preview-name{
  position:absolute;
  left:0;
  bottom:0;
  max-width:72%;
  color:#fff;
  background:rgba(0,0,0,.58);
  padding:5px 8px;
  font-weight:650;
  border-top-right-radius:8px;
}
.board-preview-controls{
  position:absolute;
  top:6px;
  right:6px;
  display:flex;
  gap:5px;
  opacity:0;
  transition:.2s ease;
}
.board-preview-window:hover .board-preview-controls,
.board-student-preview.preview-expanded .board-preview-controls{
  opacity:1;
}
.board-preview-controls button{
  width:30px;
  height:30px;
  border:0;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.92);
  color:#064d2a;
  font-size:1.25rem;
  font-weight:950;
  cursor:pointer;
}
.board-preview-controls button:hover{
  background:#0f8a4c;
  color:#fff;
}
.board-student-preview.preview-expanded .board-preview-window{
  width:min(680px,78vw);
  height:min(420px,48vh);
}
.board-student-preview.preview-expanded .board-preview-avatar{
  width:110px;
  height:110px;
  font-size:2.4rem;
}
@media(max-width:900px){
  .whiteboard-panel.board-native-fullscreen .whiteboard-toolbar,
  .whiteboard-panel.board-fallback-fullscreen .whiteboard-toolbar{
    padding-right:190px;
    max-height:118px;
  }
  .board-preview-window{
    width:176px;
    height:98px;
  }
  .board-preview-name{
    font-size:.78rem;
    padding:4px 6px;
  }
  .board-preview-controls button{
    width:26px;
    height:26px;
    font-size:1rem;
  }
  .board-student-preview.preview-expanded .board-preview-window{
    width:min(92vw,520px);
    height:min(46vh,340px);
  }
  .whiteboard-panel.board-native-fullscreen .whiteboard-stage,
  .whiteboard-panel.board-fallback-fullscreen .whiteboard-stage{
    height:calc(100dvh - 145px);
  }
}
@media(max-width:560px){
  .whiteboard-panel.board-native-fullscreen .whiteboard-toolbar,
  .whiteboard-panel.board-fallback-fullscreen .whiteboard-toolbar{
    padding-right:116px;
    max-height:108px;
  }
  .board-preview-window{
    width:108px;
    height:78px;
  }
  .board-preview-name{
    max-width:100%;
    font-size:.65rem;
  }
  .board-preview-controls{
    top:3px;
    right:3px;
    gap:3px;
  }
  .board-preview-controls button{
    width:22px;
    height:22px;
    font-size:.9rem;
  }
  .board-preview-avatar{
    width:40px;
    height:40px;
    font-size:1rem;
  }
  .board-student-preview.preview-expanded{
    left:8px;
    right:8px;
    top:8px;
  }
  .board-student-preview.preview-expanded .board-preview-window{
    width:calc(100vw - 16px);
    height:42vh;
  }
}


/* v107 virtual classroom moderator controls and reactions */
.board-reaction-menu{
  position:relative;
  display:inline-flex;
}
.board-reaction-options{
  display:none;
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  min-width:190px;
  background:#fff;
  border:1px solid rgba(8,123,58,.16);
  border-radius:18px;
  box-shadow:0 18px 42px rgba(15,23,42,.16);
  padding:8px;
  z-index:80;
}
.board-reaction-options.active{
  display:grid;
  gap:6px;
}
.board-reaction-options button{
  justify-content:flex-start;
  border-radius:12px !important;
  background:#f7fcf9 !important;
  color:#064d2a !important;
  width:100%;
}
.board-reaction-options button:hover{
  background:#e7f8ee !important;
}
.board-reactions-layer{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
  z-index:8;
}
.whiteboard-stage{
  position:relative;
}
.floating-board-reaction{
  position:absolute;
  font-size:2.8rem;
  filter:drop-shadow(0 8px 18px rgba(15,23,42,.16));
  animation:boardReactionFloat 5s ease-out forwards;
  transform:translate(-50%, -50%);
  will-change:transform, opacity;
}
@keyframes boardReactionFloat{
  0%{opacity:0; transform:translate(-50%, -50%) scale(.65) rotate(0deg);}
  12%{opacity:1; transform:translate(-50%, -70%) scale(1.15) rotate(0deg);}
  100%{opacity:0; transform:translate(calc(-50% + var(--reaction-x, 0px)), -310px) scale(1.6) rotate(var(--reaction-rotate, 0deg));}
}
.board-permission-banner{
  display:none;
  position:absolute;
  left:50%;
  top:18px;
  transform:translateX(-50%);
  z-index:12;
  background:#fff7ed;
  color:#9a3412;
  border:1px solid #fed7aa;
  border-radius:999px;
  padding:10px 16px;
  font-weight:950;
  box-shadow:0 12px 30px rgba(15,23,42,.12);
}
.board-permission-banner.active{
  display:block;
}
.board-moderator-panel{
  display:none;
  position:absolute;
  top:76px;
  right:14px;
  z-index:90;
  width:min(430px, calc(100vw - 28px));
  max-height:min(620px, calc(100dvh - 112px));
  overflow:auto;
  background:#fff;
  border:1px solid rgba(8,123,58,.18);
  border-radius:22px;
  box-shadow:0 28px 70px rgba(15,23,42,.22);
  padding:14px;
}
.board-moderator-panel.active{
  display:block;
}
.board-moderator-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:12px;
  border-bottom:1px solid rgba(8,123,58,.10);
  padding-bottom:12px;
}
.board-moderator-head strong{
  display:block;
  color:#064d2a;
  font-size:1.08rem;
  font-weight:950;
}
.board-moderator-head small{
  display:block;
  color:#667085;
  font-weight:600;
  margin-top:3px;
}
#closeModeratorPanelBtn{
  border:0;
  width:34px;
  height:34px;
  border-radius:999px;
  background:#eef7f1;
  color:#064d2a;
  font-size:1.4rem;
  font-weight:950;
  cursor:pointer;
}
.board-moderator-list{
  display:grid;
  gap:10px;
}
.moderator-student-row{
  border:1px solid rgba(8,123,58,.12);
  background:#f8fcfa;
  border-radius:18px;
  padding:12px;
}
.moderator-student-id{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.moderator-student-id > span{
  width:42px;
  height:42px;
  border-radius:50%;
  background:#0f8a4c;
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:950;
}
.moderator-student-id strong{
  display:block;
  color:#064d2a;
  font-weight:950;
}
.moderator-student-id small{
  display:block;
  color:#667085;
  font-weight:600;
}
.moderator-toggle-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.moderator-toggle-grid button{
  border:0;
  border-radius:12px;
  padding:9px 8px;
  background:#e7f8ee;
  color:#064d2a;
  font-weight:950;
  cursor:pointer;
}
.moderator-toggle-grid button.active{
  background:#064d2a;
  color:#fff;
}
.moderator-toggle-grid button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.moderator-empty-state{
  margin:0;
  padding:14px;
  background:#f8fcfa;
  border:1px dashed rgba(8,123,58,.22);
  border-radius:14px;
  color:#667085;
  font-weight:650;
}
.moderator-side-card .btn{
  margin-top:8px;
}
@media(max-width:760px){
  .board-moderator-panel{
    top:98px;
    right:8px;
    left:8px;
    width:auto;
  }
  .moderator-toggle-grid{
    grid-template-columns:1fr;
  }
  .floating-board-reaction{
    font-size:2.2rem;
  }
}


/* v108 clear whiteboard without leaving full-screen mode */
.board-action-flash{
  position:absolute;
  left:50%;
  top:64px;
  transform:translateX(-50%);
  z-index:14;
  background:#064d2a;
  color:#fff;
  border-radius:999px;
  padding:10px 16px;
  font-weight:950;
  box-shadow:0 14px 34px rgba(15,23,42,.18);
  animation:boardFlashFade 1.4s ease forwards;
}
@keyframes boardFlashFade{
  0%{opacity:0; transform:translate(-50%, -8px);}
  15%{opacity:1; transform:translate(-50%, 0);}
  75%{opacity:1; transform:translate(-50%, 0);}
  100%{opacity:0; transform:translate(-50%, -10px);}
}


/* v109 reaction dropdown works inside full-screen board */
.whiteboard-panel.board-native-fullscreen .board-reaction-menu,
.whiteboard-panel.board-fallback-fullscreen .board-reaction-menu{
  position:relative;
  z-index:10020;
}
.board-reaction-options.board-reaction-options-floating{
  position:fixed !important;
  z-index:10050 !important;
  right:auto !important;
  max-height:min(320px, calc(100dvh - 88px));
  overflow:auto;
  box-shadow:0 24px 70px rgba(15,23,42,.26);
  border:1px solid rgba(8,123,58,.22);
}
.whiteboard-panel.board-native-fullscreen .board-reaction-options.active,
.whiteboard-panel.board-fallback-fullscreen .board-reaction-options.active{
  display:grid !important;
}
.whiteboard-panel.board-native-fullscreen .whiteboard-toolbar,
.whiteboard-panel.board-fallback-fullscreen .whiteboard-toolbar{
  overflow-x:auto;
}
.board-reactions-layer{
  z-index:40;
}
.floating-board-reaction{
  z-index:41;
}
@media(max-width:560px){
  .board-reaction-options.board-reaction-options-floating{
    width:calc(100vw - 24px) !important;
    left:12px !important;
    top:112px !important;
  }
}


/* v110 text tool with blinking cursor and movable text */
.board-text-layer{
  position:absolute;
  inset:0;
  z-index:11;
  pointer-events:none;
}
.board-text-item{
  position:absolute;
  min-width:140px;
  max-width:min(620px, 86vw);
  display:flex;
  align-items:flex-start;
  gap:6px;
  pointer-events:auto;
  background:rgba(255,255,255,.78);
  border:1px dashed rgba(8,123,58,.36);
  border-radius:12px;
  padding:6px 8px 6px 6px;
  box-shadow:0 10px 28px rgba(15,23,42,.10);
}
.board-text-item:focus-within{
  border-style:solid;
  border-color:rgba(8,123,58,.72);
  background:#fff;
}
.board-text-drag-handle{
  width:24px;
  height:24px;
  border:0;
  border-radius:8px;
  background:#e7f8ee;
  color:#064d2a;
  font-weight:950;
  cursor:move;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  margin-top:2px;
}
.board-text-drag-handle:hover{
  background:#064d2a;
  color:#fff;
}
.board-text-content{
  min-width:96px;
  min-height:28px;
  outline:none;
  border:0;
  background:transparent;
  font-weight:600;
  white-space:pre-wrap;
  word-break:break-word;
  cursor:text;
  caret-color:#064d2a;
}
.board-text-content:empty::before{
  content:attr(data-placeholder);
  color:#98a2b3;
}
.board-text-content:focus{
  animation:textCaretPulse 1s steps(1) infinite;
}
@keyframes textCaretPulse{
  50%{caret-color:transparent;}
}
.whiteboard-panel.board-native-fullscreen .board-text-item,
.whiteboard-panel.board-fallback-fullscreen .board-text-item{
  background:rgba(255,255,255,.92);
}
@media(max-width:560px){
  .board-text-item{
    max-width:calc(100vw - 24px);
  }
  .board-text-drag-handle{
    width:22px;
    height:22px;
  }
}


/* v111 join-now shared virtual class room */
.live-join-now-action{
  white-space:nowrap;
  box-shadow:0 10px 24px rgba(6,77,42,.16);
}
.live-room-mode-pill{
  background:#fff7ed;
  color:#9a3412;
  border:1px solid #fed7aa;
  border-radius:999px;
  padding:10px 14px;
  font-weight:950;
}
.live-classroom-header .live-room-mode-pill{
  display:inline-flex;
  align-items:center;
}
@media(max-width:760px){
  .live-room-mode-pill{
    padding:8px 11px;
    font-size:.82rem;
  }
}


/* v112 individual student virtual class controls */
.moderator-choose-student{
  background:#f6fbf8;
  border:1px solid rgba(8,123,58,.14);
  border-radius:16px;
  padding:12px;
  display:grid;
  gap:7px;
}
.moderator-choose-student label{
  color:#064d2a;
  font-weight:950;
}
.moderator-choose-student select{
  width:100%;
  border:1px solid rgba(8,123,58,.18);
  border-radius:12px;
  padding:11px 12px;
  font-weight:650;
  color:#064d2a;
  background:#fff;
}
.moderator-choose-student small{
  color:#667085;
  font-weight:600;
}
.moderator-selected-card,
.moderator-other-students{
  display:grid;
  gap:10px;
}
.moderator-selected-card h3,
.moderator-other-students h3{
  margin:4px 0 0;
  font-size:.95rem;
  color:#064d2a;
  font-weight:950;
}
.selected-moderator-student{
  border:2px solid rgba(8,123,58,.42);
  background:#ffffff;
  box-shadow:0 14px 36px rgba(6,77,42,.10);
}
.moderator-status-row{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:8px 0 10px;
}
.moderator-status-chip{
  border-radius:999px;
  padding:5px 8px;
  font-size:.72rem;
  font-weight:950;
}
.moderator-status-chip.joined,
.moderator-status-chip.online,
.moderator-status-chip.allowed{
  background:#e7f8ee;
  color:#067647;
}
.moderator-status-chip.not-joined,
.moderator-status-chip.offline{
  background:#f2f4f7;
  color:#667085;
}
.moderator-status-chip.restricted{
  background:#fff1f3;
  color:#c01048;
}
.individual-toggle-grid button{
  min-height:42px;
}
@media(max-width:760px){
  .moderator-status-row{
    gap:5px;
  }
  .moderator-status-chip{
    font-size:.68rem;
  }
}


/* v113 home page soft educational music */
.home-music-widget{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:9999;
  display:flex;
  align-items:flex-end;
  gap:10px;
}
.home-music-main-btn{
  width:58px;
  height:58px;
  border:0;
  border-radius:50%;
  background:linear-gradient(135deg,#087b3a,#064d2a);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:1.55rem;
  box-shadow:0 18px 42px rgba(6,77,42,.28);
  cursor:pointer;
}
.home-music-widget.music-playing .home-music-main-btn{
  animation:musicPulse 2.2s ease-in-out infinite;
}
@keyframes musicPulse{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.06);}
}
.home-music-panel{
  display:none;
  width:238px;
  background:#fff;
  border:1px solid rgba(8,123,58,.16);
  border-radius:20px;
  box-shadow:0 24px 64px rgba(15,23,42,.18);
  padding:14px;
}
.home-music-panel.active{
  display:grid;
  gap:9px;
}
.home-music-panel strong{
  color:#064d2a;
  font-weight:950;
}
.home-music-panel small,
.home-music-panel p{
  color:#667085;
  font-weight:600;
  margin:0;
}
.home-music-panel label{
  display:grid;
  gap:5px;
  color:#064d2a;
  font-weight:950;
}
.home-music-panel input[type="range"]{
  width:100%;
  accent-color:#087b3a;
}
.home-music-panel button{
  border:0;
  border-radius:999px;
  padding:9px 12px;
  background:#e7f8ee;
  color:#064d2a;
  font-weight:950;
  cursor:pointer;
}
.home-music-panel button:hover{
  background:#064d2a;
  color:#fff;
}
.home-music-admin-card{
  margin-top:20px;
}
.compact-admin-form{
  align-items:end;
}
.compact-admin-form input[type="range"]{
  width:100%;
  accent-color:#087b3a;
}
@media(max-width:640px){
  .home-music-widget{
    right:12px;
    bottom:12px;
  }
  .home-music-main-btn{
    width:52px;
    height:52px;
  }
  .home-music-panel{
    width:min(226px, calc(100vw - 82px));
  }
}


/* v114 louder adjustable home music */
.home-music-buttons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}
.home-music-buttons button{
  width:100%;
}
.home-music-panel input[type="range"]{
  height:6px;
}
.home-music-widget.music-playing .home-music-main-btn::after{
  content:'';
  position:absolute;
  width:70px;
  height:70px;
  border-radius:50%;
  border:2px solid rgba(8,123,58,.25);
  animation:musicRipple 1.8s ease-out infinite;
}
.home-music-main-btn{
  position:relative;
}
@keyframes musicRipple{
  0%{transform:scale(.75); opacity:.85;}
  100%{transform:scale(1.35); opacity:0;}
}
@media(max-width:640px){
  .home-music-buttons{
    grid-template-columns:1fr;
  }
}


/* v115 admin uploaded home page music */
.current-home-music-file{
  background:#f8fcfa;
  border:1px solid rgba(8,123,58,.12);
  border-radius:16px;
  padding:12px;
}
.current-home-music-file audio{
  width:100%;
  margin-top:6px;
}
.checkbox-line{
  display:flex !important;
  gap:8px;
  align-items:center;
  margin-top:8px;
  color:#064d2a;
  font-weight:650;
}
.checkbox-line input{
  width:auto !important;
}
.home-music-panel audio{
  width:100%;
}


/* v117 autoplay homepage music with stop/start and admin default volume */
.home-music-panel #homeMusicStatus{
  background:#f8fcfa;
  border:1px solid rgba(8,123,58,.10);
  border-radius:12px;
  padding:8px 10px;
  color:#475467;
  font-weight:650;
}


/* v118 cartoon voice for clicked buttons */
.nbds-voice-toggle{
  position:fixed;
  right:18px;
  bottom:92px;
  z-index:10000;
  width:52px;
  height:52px;
  border:0;
  border-radius:50%;
  background:linear-gradient(135deg,#ffb703,#fb8500);
  color:#111827;
  display:grid;
  place-items:center;
  font-size:1.45rem;
  box-shadow:0 18px 42px rgba(251,133,0,.28);
  cursor:pointer;
  animation:nbdsVoiceFloat 2.4s ease-in-out infinite;
}
.nbds-voice-toggle:hover{
  transform:translateY(-2px) scale(1.04);
}
.nbds-voice-bubble{
  position:fixed;
  right:78px;
  bottom:104px;
  z-index:9999;
  max-width:min(280px,calc(100vw - 110px));
  background:#fff7e6;
  color:#7a3e00;
  border:1px solid rgba(251,133,0,.22);
  border-radius:18px 18px 4px 18px;
  padding:10px 13px;
  font-weight:950;
  box-shadow:0 18px 48px rgba(15,23,42,.16);
  opacity:0;
  pointer-events:none;
  transform:translateY(8px) scale(.96);
  transition:.22s ease;
}
.nbds-voice-bubble.active{
  opacity:1;
  transform:translateY(0) scale(1);
}
@keyframes nbdsVoiceFloat{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-5px);}
}
@media(max-width:640px){
  .nbds-voice-toggle{
    right:12px;
    bottom:82px;
    width:48px;
    height:48px;
  }
  .nbds-voice-bubble{
    right:66px;
    bottom:92px;
    max-width:calc(100vw - 92px);
  }
}


/* v119 global portal music across pages */
.global-home-music-widget{
  z-index:9998;
}
.student-dashboard-body .global-home-music-widget,
.live-classroom-body .global-home-music-widget{
  right:18px;
  bottom:18px;
}
.live-classroom-body .nbds-voice-toggle{
  bottom:92px;
}
@media(max-width:640px){
  .student-dashboard-body .global-home-music-widget,
  .live-classroom-body .global-home-music-widget{
    right:12px;
    bottom:12px;
  }
}


/* v120 cleaner footer shortcut links */
.footer-shortcuts{
  min-width:0;
}
.footer-shortcuts h3{
  font-weight:600;
  letter-spacing:.01em;
}
.footer-contact-line a,
.footer-shortcuts a{
  font-weight:600;
}
.footer-links-grid{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 20px;
}
.footer-links-grid a{
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  line-height:1.45;
  font-size:.96rem;
  font-weight:600;
  box-shadow:none;
}
.footer-links-grid a:hover{
  background:transparent;
  border-color:transparent;
  transform:none;
  text-decoration:underline;
  text-underline-offset:4px;
}
.footer-note{
  margin-top:12px;
  font-weight:400;
}
.footer-bottom{
  font-weight:500;
}
@media(max-width:900px){
  .footer-links-grid{
    gap:9px 16px;
  }
}
@media(max-width:560px){
  .footer-links-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 12px;
  }
}


/* v121 persistent default portal music */
.home-music-panel small{
  line-height:1.35;
}
.home-music-panel #homeMusicStatus{
  font-size:.82rem;
}
.current-home-music-file small{
  color:#667085;
  font-weight:600;
}


/* v122 music icon compact controls */
.home-music-widget{
  align-items:flex-end;
}
.home-music-main-btn{
  font-size:1.35rem;
}
.home-music-widget.music-playing .home-music-main-btn{
  background:linear-gradient(135deg,#087b3a,#064d2a);
}
.home-music-widget:not(.music-playing) .home-music-main-btn{
  background:linear-gradient(135deg,#667085,#344054);
}
.home-music-panel{
  width:224px;
  transform-origin:bottom right;
}
.home-music-widget:hover .home-music-panel,
.home-music-panel:focus-within{
  display:grid;
  gap:9px;
}
.home-music-compact-controls{
  display:grid;
  grid-template-columns:42px 1fr 42px;
  align-items:center;
  gap:8px;
}
.home-music-mini-btn{
  width:42px;
  height:38px;
  border:0;
  border-radius:14px;
  background:#e7f8ee;
  color:#064d2a;
  font-size:1.35rem;
  font-weight:650;
  cursor:pointer;
}
.home-music-mini-btn:hover{
  background:#064d2a;
  color:#fff;
}
.home-music-volume-label{
  display:grid;
  place-items:center;
  min-height:38px;
  border-radius:14px;
  background:#f8fcfa;
  color:#064d2a;
  font-weight:650;
}
.home-music-buttons{
  display:none !important;
}
@media(max-width:640px){
  .home-music-panel{
    width:min(218px, calc(100vw - 82px));
  }
  .home-music-compact-controls{
    grid-template-columns:40px 1fr 40px;
  }
}


/* v123 music continues after login into dashboards */
.student-dashboard-body .global-home-music-widget,
.teacher-dashboard-body .global-home-music-widget,
.live-classroom-body .global-home-music-widget{
  position:fixed;
}


/* v125 consistent sidebar/page-label icons */
.student-nav-link{
  white-space:normal;
}
.student-nav-link .nav-icon{
  width:22px !important;
  height:22px !important;
  min-width:22px !important;
  flex:0 0 22px !important;
  display:inline-grid !important;
  place-items:center !important;
  opacity:1 !important;
  visibility:visible !important;
}
.student-nav-link .nav-icon svg{
  display:block !important;
  width:21px !important;
  height:21px !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.8 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  opacity:1 !important;
  visibility:visible !important;
}
.student-nav-link > span:not(.nav-icon){
  display:inline-flex !important;
  align-items:center !important;
  min-width:0;
  opacity:1 !important;
  visibility:visible !important;
}
.student-nav-link.active .nav-icon,
.student-nav-link:hover .nav-icon{
  color:var(--green-800) !important;
}
.user-profile-body .student-nav-link .nav-icon,
.workflow-body .student-nav-link .nav-icon,
.admin-oriented-sidebar .student-nav-link .nav-icon,
.teacher-sidebar .student-nav-link .nav-icon,
.parent-sidebar .student-nav-link .nav-icon{
  color:currentColor;
}


/* v126 sidebar icons adjusted to match approved reference */
.student-sidebar{
  background:#ffffff;
}
.student-nav-group p{
  color:#8a96a8;
  font-size:.68rem;
  font-weight:600;
  letter-spacing:3px;
  margin:0 0 10px 2px;
}
.student-nav-link{
  border-radius:10px;
  padding:12px 14px;
  gap:12px;
  color:#53627a;
  font-weight:600;
  font-size:.86rem;
}
.student-nav-link.active{
  background:#e7f8ee;
  color:#006b3f;
  box-shadow:inset 3px 0 0 #008148;
}
.student-nav-link .nav-icon,
.student-logout .nav-icon{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  flex:0 0 16px !important;
  display:inline-grid !important;
  place-items:center !important;
  color:#66758a !important;
  opacity:1 !important;
  visibility:visible !important;
}
.student-nav-link .nav-icon svg,
.student-logout .nav-icon svg{
  width:16px !important;
  height:16px !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.65 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  display:block !important;
  opacity:1 !important;
  visibility:visible !important;
}
.student-nav-link.active .nav-icon,
.student-nav-link.active .nav-icon svg{
  color:#008148 !important;
  stroke:#008148 !important;
}
.student-nav-link:hover .nav-icon,
.student-nav-link:hover .nav-icon svg{
  color:#008148 !important;
  stroke:#008148 !important;
}
.student-nav-link > span:not(.nav-icon),
.student-logout > span:not(.nav-icon){
  display:inline-flex !important;
  align-items:center !important;
  min-width:0;
  line-height:1.15;
  opacity:1 !important;
  visibility:visible !important;
}
.student-logout{
  display:flex !important;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius:10px;
  color:#b42318;
  font-size:.86rem;
  font-weight:600;
}
.student-logout .nav-icon,
.student-logout .nav-icon svg{
  color:#d92d20 !important;
  stroke:#d92d20 !important;
}
@media(max-width:640px){
  .student-nav-link,
  .student-logout{
    font-size:.82rem;
    padding:11px 12px;
  }
}


/* v127 My Photo moved inside Profile page */
.student-profile-photo-note,
.profile-upload-note{
  color:#667085;
}


/* v129 remove separate Print Admit Card button */
.exam-admit-actions{
  justify-content:center;
}
.exam-admit-actions .btn{
  min-width:190px;
  text-align:center;
}


/* v130 examination timetable one-page print layout */
@media print{
  @page{
    size:A4 landscape;
    margin:7mm;
  }

  body.printing-exam-timetable,
  body.single-page-exam-print{
    background:#ffffff !important;
    margin:0 !important;
    padding:0 !important;
    width:100% !important;
    height:auto !important;
    overflow:hidden !important;
  }

  body.printing-exam-timetable *{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }

  body.printing-exam-timetable .student-sidebar,
  body.printing-exam-timetable .student-topbar,
  body.printing-exam-timetable .student-cover,
  body.printing-exam-timetable .exam-overview-grid,
  body.printing-exam-timetable .exam-dropdown-panel,
  body.printing-exam-timetable .exam-subject-detail-grid,
  body.printing-exam-timetable .exam-side-panel,
  body.printing-exam-timetable .exam-panel-head,
  body.printing-exam-timetable .profile-toast-message,
  body.printing-exam-timetable .alert,
  body.printing-exam-timetable .btn,
  body.printing-exam-timetable .home-music-widget,
  body.printing-exam-timetable .nbds-voice-toggle,
  body.printing-exam-timetable .nbds-voice-bubble{
    display:none !important;
  }

  body.printing-exam-timetable .student-app-shell,
  body.printing-exam-timetable .student-main,
  body.printing-exam-timetable .student-page,
  body.printing-exam-timetable .exam-layout-grid,
  body.printing-exam-timetable .exam-main-panel{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    overflow:visible !important;
    padding:0 !important;
    margin:0 !important;
    box-shadow:none !important;
    border:0 !important;
    background:#fff !important;
  }

  body.printing-exam-timetable .exam-print-timetable,
  body.printing-exam-timetable .exam-one-page-print{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    padding:0 !important;
    margin:0 !important;
    page-break-before:auto !important;
    page-break-after:avoid !important;
    page-break-inside:avoid !important;
    break-inside:avoid-page !important;
    overflow:hidden !important;
  }

  body.printing-exam-timetable .exam-print-header{
    text-align:center !important;
    margin:0 0 6px !important;
    padding:0 0 5px !important;
    border-bottom:1px solid #111 !important;
    page-break-after:avoid !important;
  }

  body.printing-exam-timetable .exam-print-header h2{
    color:#000 !important;
    font-size:13px !important;
    line-height:1.1 !important;
    margin:0 0 2px !important;
  }

  body.printing-exam-timetable .exam-print-header p{
    color:#000 !important;
    font-size:8.5px !important;
    line-height:1.2 !important;
    margin:1px 0 !important;
  }

  body.printing-exam-timetable table.exam-print-table-compact,
  body.printing-exam-timetable .exam-print-timetable table{
    width:100% !important;
    table-layout:fixed !important;
    border-collapse:collapse !important;
    font-size:7.4px !important;
    line-height:1.12 !important;
    margin:0 !important;
    page-break-inside:avoid !important;
    break-inside:avoid-page !important;
  }

  body.printing-exam-timetable th,
  body.printing-exam-timetable td{
    border:1px solid #222 !important;
    padding:3px 4px !important;
    color:#000 !important;
    background:#fff !important;
    vertical-align:top !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
  }

  body.printing-exam-timetable th{
    font-size:7.2px !important;
    font-weight:600 !important;
    text-transform:uppercase !important;
    background:#f1f1f1 !important;
  }

  body.printing-exam-timetable td strong{
    display:block !important;
    font-size:7.4px !important;
    line-height:1.1 !important;
    color:#000 !important;
    margin:0 !important;
  }

  body.printing-exam-timetable td small{
    display:block !important;
    font-size:6.5px !important;
    line-height:1.05 !important;
    color:#000 !important;
    margin:1px 0 0 !important;
  }

  body.printing-exam-timetable tr{
    page-break-inside:avoid !important;
    break-inside:avoid-page !important;
  }

  body.printing-exam-timetable th:nth-child(1),
  body.printing-exam-timetable td:nth-child(1){width:25% !important;}
  body.printing-exam-timetable th:nth-child(2),
  body.printing-exam-timetable td:nth-child(2){width:10% !important;}
  body.printing-exam-timetable th:nth-child(3),
  body.printing-exam-timetable td:nth-child(3){width:13% !important;}
  body.printing-exam-timetable th:nth-child(4),
  body.printing-exam-timetable td:nth-child(4){width:13% !important;}
  body.printing-exam-timetable th:nth-child(5),
  body.printing-exam-timetable td:nth-child(5){width:8% !important;}
  body.printing-exam-timetable th:nth-child(6),
  body.printing-exam-timetable td:nth-child(6){width:19% !important;}
  body.printing-exam-timetable th:nth-child(7),
  body.printing-exam-timetable td:nth-child(7){width:12% !important;}

  body.printing-exam-timetable.many-exam-rows table.exam-print-table-compact{
    font-size:6.6px !important;
    line-height:1.05 !important;
  }
  body.printing-exam-timetable.many-exam-rows th,
  body.printing-exam-timetable.many-exam-rows td{
    padding:2px 3px !important;
  }
  body.printing-exam-timetable.very-many-exam-rows .exam-print-header{
    margin-bottom:3px !important;
    padding-bottom:3px !important;
  }
  body.printing-exam-timetable.very-many-exam-rows table.exam-print-table-compact{
    font-size:5.8px !important;
    line-height:1 !important;
  }
  body.printing-exam-timetable.very-many-exam-rows th,
  body.printing-exam-timetable.very-many-exam-rows td{
    padding:1.5px 2px !important;
  }
}


/* v131 examination timetable prints on first page only */
@media print{
  @page{
    size:A4 landscape;
    margin:5mm;
  }

  html,
  body.exam-timetable-first-page-only{
    width:297mm !important;
    min-height:0 !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    background:#fff !important;
  }

  body.exam-timetable-first-page-only{
    page-break-before:avoid !important;
    page-break-after:avoid !important;
  }

  body.exam-timetable-first-page-only *{
    visibility:hidden !important;
    box-shadow:none !important;
    text-shadow:none !important;
  }

  body.exam-timetable-first-page-only #examPrintArea,
  body.exam-timetable-first-page-only #examPrintArea *{
    visibility:visible !important;
  }

  body.exam-timetable-first-page-only #examPrintArea{
    display:block !important;
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:287mm !important;
    max-width:287mm !important;
    height:auto !important;
    max-height:190mm !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    background:#fff !important;
    border:0 !important;
    page-break-before:avoid !important;
    page-break-after:avoid !important;
    page-break-inside:avoid !important;
    break-before:avoid-page !important;
    break-after:avoid-page !important;
    break-inside:avoid-page !important;
  }

  body.exam-timetable-first-page-only .student-app-shell,
  body.exam-timetable-first-page-only .student-main,
  body.exam-timetable-first-page-only .student-page,
  body.exam-timetable-first-page-only .exam-layout-grid,
  body.exam-timetable-first-page-only .exam-main-panel{
    display:block !important;
    width:0 !important;
    height:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
    border:0 !important;
    background:transparent !important;
  }

  body.exam-timetable-first-page-only .exam-print-header{
    display:block !important;
    margin:0 0 3mm !important;
    padding:0 0 2mm !important;
    border-bottom:1px solid #111 !important;
    text-align:center !important;
  }

  body.exam-timetable-first-page-only .exam-print-header h2{
    font-size:11px !important;
    line-height:1.05 !important;
    margin:0 0 1px !important;
    color:#000 !important;
  }

  body.exam-timetable-first-page-only .exam-print-header p{
    font-size:7.5px !important;
    line-height:1.05 !important;
    margin:0 !important;
    color:#000 !important;
  }

  body.exam-timetable-first-page-only table.exam-print-table-compact{
    width:100% !important;
    max-width:100% !important;
    table-layout:fixed !important;
    border-collapse:collapse !important;
    font-size:6.9px !important;
    line-height:1.05 !important;
    margin:0 !important;
    background:#fff !important;
    page-break-before:avoid !important;
    page-break-after:avoid !important;
    page-break-inside:avoid !important;
    break-inside:avoid-page !important;
  }

  body.exam-timetable-first-page-only table.exam-print-table-compact thead{
    display:table-header-group !important;
  }

  body.exam-timetable-first-page-only table.exam-print-table-compact tr{
    page-break-inside:avoid !important;
    break-inside:avoid-page !important;
  }

  body.exam-timetable-first-page-only table.exam-print-table-compact th,
  body.exam-timetable-first-page-only table.exam-print-table-compact td{
    border:1px solid #111 !important;
    padding:2px 3px !important;
    color:#000 !important;
    background:#fff !important;
    vertical-align:top !important;
    overflow:hidden !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
  }

  body.exam-timetable-first-page-only table.exam-print-table-compact th{
    font-size:6.6px !important;
    font-weight:600 !important;
    text-transform:uppercase !important;
    background:#f3f3f3 !important;
  }

  body.exam-timetable-first-page-only table.exam-print-table-compact td strong{
    font-size:6.8px !important;
    line-height:1 !important;
    margin:0 !important;
  }

  body.exam-timetable-first-page-only table.exam-print-table-compact td small{
    font-size:5.8px !important;
    line-height:1 !important;
    margin:0 !important;
  }

  body.exam-timetable-first-page-only.very-many-exam-rows .exam-print-header{
    display:none !important;
  }

  body.exam-timetable-first-page-only.very-many-exam-rows table.exam-print-table-compact{
    font-size:5.6px !important;
    line-height:1 !important;
  }

  body.exam-timetable-first-page-only.very-many-exam-rows table.exam-print-table-compact th,
  body.exam-timetable-first-page-only.very-many-exam-rows table.exam-print-table-compact td{
    padding:1px 1.5px !important;
  }
}


/* v133 parent online transfer payments */
.payment-verify-form{
  display:grid;
  gap:8px;
  min-width:180px;
}
.payment-verify-form textarea{
  width:100%;
  min-height:58px;
  border:1px solid #d8efe1;
  border-radius:10px;
  padding:8px;
  font-family:inherit;
}
.result-download-actions,
.exam-admit-actions{
  gap:10px;
}


/* v134 parent dashboard sidebar reference-style icons */
.parent-sidebar .student-nav-group,
.student-sidebar .parent-reference-nav-group{
  margin-top:22px;
}
.parent-sidebar .student-nav-group:first-of-type,
.student-sidebar .parent-reference-nav-group:first-of-type{
  margin-top:12px;
}
.parent-sidebar .student-nav-group p,
.student-sidebar .parent-reference-nav-group p{
  font-size:.66rem;
  line-height:1;
  letter-spacing:3px;
  text-transform:uppercase;
  color:#98a2b3;
  font-weight:650;
  margin:0 0 10px 6px;
}
.parent-sidebar .student-nav-link{
  min-height:38px;
  padding:10px 12px;
  border-radius:10px;
  gap:10px;
  margin:3px 0;
  color:#344054;
  font-size:.86rem;
  font-weight:650;
}
.parent-sidebar .student-nav-link:hover{
  background:#f2fbf5;
  color:#07572f;
}
.parent-sidebar .student-nav-link.active{
  background:#e7f8ee;
  color:#064d2a;
  box-shadow:inset 3px 0 0 #099250;
}
.parent-sidebar .student-nav-link .nav-icon,
.parent-sidebar .student-logout .nav-icon{
  width:16px;
  height:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 16px;
  color:#667085;
}
.parent-sidebar .student-nav-link .nav-icon svg,
.parent-sidebar .student-logout .nav-icon svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.parent-sidebar .student-nav-link.active .nav-icon,
.parent-sidebar .student-nav-link:hover .nav-icon{
  color:#087443;
}
.parent-sidebar .student-logout{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  margin:22px 6px 8px;
  padding:12px 14px;
  border-radius:10px;
  border:1px solid #fecaca;
  background:#fff5f4;
  color:#b42318;
  font-size:.86rem;
  font-weight:650;
}
.parent-sidebar .student-logout .nav-icon{
  color:#d92d20;
}


/* v135 Paystack and Flutterwave payment gateway integration */
.gateway-status-note{
  color:#667085;
  font-weight:600;
  font-size:.86rem;
}
.payment-method-pill{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:#e7f8ee;
  color:#064d2a;
  font-weight:650;
  font-size:.78rem;
}


/* v137 admin core control button stability */
.admin-oriented-sidebar{
  overflow-x:hidden;
}
.admin-oriented-sidebar .student-nav-group{
  margin-bottom:28px;
}
.admin-oriented-sidebar .student-nav-group p{
  font-size:.68rem;
  line-height:1;
  letter-spacing:4px;
  text-transform:uppercase;
  color:#98a2b3;
  font-weight:650;
  margin:0 0 12px 6px;
}
.admin-oriented-sidebar .student-nav-link,
.admin-oriented-sidebar button.student-nav-link,
.admin-oriented-sidebar a.student-nav-link{
  appearance:none;
  -webkit-appearance:none;
  box-sizing:border-box;
  width:100%;
  min-height:42px;
  height:42px;
  max-height:42px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  padding:0 14px;
  margin:5px 0;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#475467;
  font-family:inherit;
  font-size:.88rem;
  font-weight:650;
  line-height:1;
  text-decoration:none;
  text-align:left;
  white-space:nowrap;
  cursor:pointer;
  transform:none!important;
  box-shadow:none;
}
.admin-oriented-sidebar .student-nav-link span:not(.nav-icon){
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1;
}
.admin-oriented-sidebar .student-nav-link .nav-icon,
.admin-oriented-sidebar .student-logout .nav-icon{
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  flex:0 0 16px!important;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  color:#667085;
}
.admin-oriented-sidebar .student-nav-link .nav-icon svg,
.admin-oriented-sidebar .student-logout .nav-icon svg{
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  display:block!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.65!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.admin-oriented-sidebar .student-nav-link:hover{
  background:#f2fbf5;
  color:#07572f;
}
.admin-oriented-sidebar .student-nav-link.active,
.admin-oriented-sidebar button.student-nav-link.active,
.admin-oriented-sidebar a.student-nav-link.active{
  background:#e7f8ee!important;
  color:#064d2a!important;
  box-shadow:inset 3px 0 0 #099250!important;
}
.admin-oriented-sidebar .student-nav-link.active .nav-icon,
.admin-oriented-sidebar .student-nav-link:hover .nav-icon{
  color:#087443;
}
.admin-oriented-sidebar .student-nav-link:focus,
.admin-oriented-sidebar .student-nav-link:active{
  outline:none;
  transform:none!important;
}
.admin-oriented-sidebar .student-nav-link:focus-visible{
  outline:2px solid rgba(9,146,80,.35);
  outline-offset:2px;
}
.admin-oriented-sidebar .student-logout{
  box-sizing:border-box;
  display:flex!important;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  min-height:44px;
  height:44px;
  max-height:44px;
  padding:0 14px;
  margin:22px 6px 8px;
  border-radius:12px;
  border:1px solid #fecaca;
  background:#fff5f4;
  color:#b42318;
  font-size:.88rem;
  font-weight:650;
  line-height:1;
  text-decoration:none;
}
.admin-oriented-sidebar .student-logout .nav-icon{
  color:#d92d20;
}
.admin-oriented-sidebar .student-logout span:not(.nav-icon){
  line-height:1;
}


/* v138 admin sidebar scroll and label consistency repair */
.admin-oriented-sidebar.admin-sidebar-scroll-normal,
.admin-oriented-sidebar.static-dashboard-sidebar{
  display:block !important;
  height:100vh !important;
  max-height:100vh !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:24px 18px 34px !important;
  scrollbar-width:thin;
}
.admin-oriented-sidebar.admin-sidebar-scroll-normal .student-brand,
.admin-oriented-sidebar.admin-sidebar-scroll-normal .student-mini-profile,
.admin-oriented-sidebar.admin-sidebar-scroll-normal .student-nav-group,
.admin-oriented-sidebar.admin-sidebar-scroll-normal .student-logout-bottom{
  flex:initial !important;
}
.admin-oriented-sidebar.admin-sidebar-scroll-normal .student-logout-bottom,
.admin-oriented-sidebar.static-dashboard-sidebar .student-logout-bottom,
.admin-oriented-sidebar .student-logout.student-logout-bottom{
  position:static !important;
  inset:auto !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  left:auto !important;
  order:initial !important;
  transform:none !important;
  margin:14px 6px 28px !important;
  z-index:auto !important;
}
.admin-oriented-sidebar.admin-sidebar-scroll-normal .student-nav-group{
  display:block !important;
  margin:0 0 30px !important;
  padding:0 !important;
}
.admin-oriented-sidebar.admin-sidebar-scroll-normal .student-nav-group p{
  display:block !important;
  min-height:12px !important;
  height:12px !important;
  margin:0 0 13px 6px !important;
  padding:0 !important;
  font-size:.67rem !important;
  line-height:12px !important;
  letter-spacing:4px !important;
  text-transform:uppercase !important;
  color:#98a2b3 !important;
  font-weight:650 !important;
  white-space:nowrap !important;
}
.admin-oriented-sidebar .student-nav-link,
.admin-oriented-sidebar .student-nav-link.active,
.admin-oriented-sidebar button.student-nav-link,
.admin-oriented-sidebar button.student-nav-link.active,
.admin-oriented-sidebar a.student-nav-link,
.admin-oriented-sidebar a.student-nav-link.active{
  box-sizing:border-box !important;
  width:100% !important;
  min-width:0 !important;
  min-height:40px !important;
  height:40px !important;
  max-height:40px !important;
  padding:0 14px !important;
  margin:4px 0 !important;
  border:0 !important;
  border-radius:10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:12px !important;
  font-family:inherit !important;
  font-size:.84rem !important;
  line-height:1 !important;
  font-weight:650 !important;
  white-space:nowrap !important;
  text-decoration:none !important;
  letter-spacing:0 !important;
  transform:none !important;
  position:static !important;
  overflow:hidden !important;
}
.admin-oriented-sidebar .student-nav-link{
  background:transparent !important;
  color:#475467 !important;
  box-shadow:none !important;
}
.admin-oriented-sidebar .student-nav-link.active{
  background:#e7f8ee !important;
  color:#064d2a !important;
  box-shadow:inset 3px 0 0 #099250 !important;
}
.admin-oriented-sidebar .student-nav-link:hover{
  background:#f2fbf5 !important;
  color:#07572f !important;
}
.admin-oriented-sidebar .student-nav-link .nav-icon,
.admin-oriented-sidebar .student-nav-link.active .nav-icon,
.admin-oriented-sidebar .student-logout .nav-icon{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  flex:0 0 16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
  padding:0 !important;
}
.admin-oriented-sidebar .student-nav-link .nav-icon svg,
.admin-oriented-sidebar .student-logout .nav-icon svg{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  display:block !important;
}
.admin-oriented-sidebar .student-nav-link > span:not(.nav-icon),
.admin-oriented-sidebar .student-logout > span:not(.nav-icon){
  display:block !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  line-height:1 !important;
  opacity:1 !important;
  visibility:visible !important;
}
.admin-oriented-sidebar .student-logout,
.admin-oriented-sidebar .student-logout-bottom{
  box-sizing:border-box !important;
  width:calc(100% - 12px) !important;
  min-height:44px !important;
  height:44px !important;
  max-height:44px !important;
  padding:0 14px !important;
  border-radius:10px !important;
  border:1px solid #fecaca !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:12px !important;
  background:#fff5f4 !important;
  color:#b42318 !important;
  font-size:.84rem !important;
  font-weight:650 !important;
  line-height:1 !important;
}
.admin-oriented-sidebar .student-logout:hover{
  background:#fff1f0 !important;
}
.admin-oriented-sidebar .student-logout .nav-icon,
.admin-oriented-sidebar .student-logout .nav-icon svg{
  color:#d92d20 !important;
  stroke:#d92d20 !important;
}
.admin-oriented-sidebar .student-nav-link:active,
.admin-oriented-sidebar .student-nav-link:focus{
  transform:none !important;
}
.admin-oriented-sidebar .student-nav-link.active span:not(.nav-icon),
.admin-oriented-sidebar .student-nav-link span:not(.nav-icon){
  font-size:.84rem !important;
  font-weight:650 !important;
}


/* v139 single-source admin sidebar: labels never hide or rearrange */
.admin-oriented-sidebar[data-sidebar-scope="admin"]{
  display:block !important;
  height:100vh !important;
  max-height:100vh !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:24px 18px 34px !important;
  background:#fff !important;
}
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-brand,
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-mini-profile,
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-nav-group,
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-logout-bottom{
  flex:none !important;
}
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-nav-group{
  display:block !important;
  margin:0 0 30px !important;
  padding:0 !important;
}
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-nav-group p{
  display:block !important;
  width:100% !important;
  height:12px !important;
  min-height:12px !important;
  line-height:12px !important;
  margin:0 0 13px 6px !important;
  padding:0 !important;
  color:#98a2b3 !important;
  font-size:.67rem !important;
  font-weight:650 !important;
  letter-spacing:4px !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  opacity:1 !important;
  visibility:visible !important;
}
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-nav-link,
.admin-oriented-sidebar[data-sidebar-scope="admin"] a.student-nav-link,
.admin-oriented-sidebar[data-sidebar-scope="admin"] button.student-nav-link{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  box-sizing:border-box !important;
  width:100% !important;
  min-width:0 !important;
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  margin:4px 0 !important;
  padding:0 14px !important;
  gap:12px !important;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  color:#475467 !important;
  box-shadow:none !important;
  font-family:inherit !important;
  font-size:.84rem !important;
  font-weight:650 !important;
  line-height:1 !important;
  text-decoration:none !important;
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  position:static !important;
  transform:none !important;
}
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-nav-link.active{
  background:#e7f8ee !important;
  color:#064d2a !important;
  box-shadow:inset 3px 0 0 #099250 !important;
}
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-nav-link:hover{
  background:#f2fbf5 !important;
  color:#07572f !important;
}
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-nav-link .nav-icon,
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-logout .nav-icon{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  flex:0 0 16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
  padding:0 !important;
  opacity:1 !important;
  visibility:visible !important;
}
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-nav-link .nav-icon svg,
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-logout .nav-icon svg{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  display:block !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.65 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-nav-link > span:not(.nav-icon),
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-logout > span:not(.nav-icon){
  display:block !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  line-height:1 !important;
  opacity:1 !important;
  visibility:visible !important;
}
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-logout,
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-logout-bottom{
  position:static !important;
  inset:auto !important;
  order:initial !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  box-sizing:border-box !important;
  width:calc(100% - 12px) !important;
  min-height:44px !important;
  height:44px !important;
  max-height:44px !important;
  margin:14px 6px 28px !important;
  padding:0 14px !important;
  gap:12px !important;
  border:1px solid #fecaca !important;
  border-radius:10px !important;
  background:#fff5f4 !important;
  color:#b42318 !important;
  font-size:.84rem !important;
  font-weight:650 !important;
  line-height:1 !important;
  text-decoration:none !important;
  transform:none !important;
}
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-logout .nav-icon,
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-logout .nav-icon svg{
  color:#d92d20 !important;
  stroke:#d92d20 !important;
}


/* v140 admin user and student record correction centre */
.admin-record-editor-card{
  margin:18px 0 22px;
  border:1px solid rgba(8,123,58,.18);
  background:linear-gradient(135deg,#ffffff,#f7fcf9);
}
.admin-record-editor-form{
  display:grid;
  gap:16px;
}
.admin-record-editor-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.admin-record-editor-grid .profile-wide{
  grid-column:1 / -1;
}
.admin-record-editor-card textarea{
  min-height:88px;
}
.admin-inline-user-action{
  margin-top:8px;
}
.admin-muted-action{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  color:#667085;
  font-weight:650;
  margin-left:8px;
}
@media(max-width:980px){
  .admin-record-editor-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:680px){
  .admin-record-editor-grid{
    grid-template-columns:1fr;
  }
}


/* v142 parent sidebar single-source consistency */
.parent-sidebar[data-sidebar-scope="parent"]{
  display:block !important;
  height:100vh !important;
  max-height:100vh !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:24px 14px 34px !important;
  background:#fff !important;
}
.parent-sidebar[data-sidebar-scope="parent"] .student-brand,
.parent-sidebar[data-sidebar-scope="parent"] .student-mini-profile,
.parent-sidebar[data-sidebar-scope="parent"] .student-nav-group,
.parent-sidebar[data-sidebar-scope="parent"] .student-logout-bottom{
  flex:none !important;
}
.parent-sidebar[data-sidebar-scope="parent"] .student-nav-group,
.parent-sidebar[data-sidebar-scope="parent"] .parent-reference-nav-group{
  display:block !important;
  margin:0 0 28px !important;
  padding:0 !important;
}
.parent-sidebar[data-sidebar-scope="parent"] .student-nav-group p,
.parent-sidebar[data-sidebar-scope="parent"] .parent-reference-nav-group p{
  display:block !important;
  width:100% !important;
  height:12px !important;
  min-height:12px !important;
  line-height:12px !important;
  margin:0 0 12px 4px !important;
  padding:0 !important;
  color:#98a2b3 !important;
  font-size:.66rem !important;
  font-weight:650 !important;
  letter-spacing:3px !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  opacity:1 !important;
  visibility:visible !important;
}
.parent-sidebar[data-sidebar-scope="parent"] .student-nav-link,
.parent-sidebar[data-sidebar-scope="parent"] a.student-nav-link{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  box-sizing:border-box !important;
  width:100% !important;
  min-width:0 !important;
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  margin:4px 0 !important;
  padding:0 12px !important;
  gap:10px !important;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  color:#344054 !important;
  box-shadow:none !important;
  font-family:inherit !important;
  font-size:.84rem !important;
  font-weight:650 !important;
  line-height:1 !important;
  text-decoration:none !important;
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  position:static !important;
  transform:none !important;
}
.parent-sidebar[data-sidebar-scope="parent"] .student-nav-link.active{
  background:#e7f8ee !important;
  color:#064d2a !important;
  box-shadow:inset 3px 0 0 #099250 !important;
}
.parent-sidebar[data-sidebar-scope="parent"] .student-nav-link:hover{
  background:#f2fbf5 !important;
  color:#07572f !important;
}
.parent-sidebar[data-sidebar-scope="parent"] .student-nav-link .nav-icon,
.parent-sidebar[data-sidebar-scope="parent"] .student-logout .nav-icon{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  flex:0 0 16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
  padding:0 !important;
  opacity:1 !important;
  visibility:visible !important;
}
.parent-sidebar[data-sidebar-scope="parent"] .student-nav-link .nav-icon svg,
.parent-sidebar[data-sidebar-scope="parent"] .student-logout .nav-icon svg{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  display:block !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.65 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}
.parent-sidebar[data-sidebar-scope="parent"] .student-nav-link > span:not(.nav-icon),
.parent-sidebar[data-sidebar-scope="parent"] .student-logout > span:not(.nav-icon){
  display:block !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  line-height:1 !important;
  opacity:1 !important;
  visibility:visible !important;
}
.parent-sidebar[data-sidebar-scope="parent"] .student-logout,
.parent-sidebar[data-sidebar-scope="parent"] .student-logout-bottom{
  position:static !important;
  inset:auto !important;
  order:initial !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  box-sizing:border-box !important;
  width:calc(100% - 12px) !important;
  min-height:44px !important;
  height:44px !important;
  max-height:44px !important;
  margin:14px 6px 28px !important;
  padding:0 14px !important;
  gap:10px !important;
  border:1px solid #fecaca !important;
  border-radius:10px !important;
  background:#fff5f4 !important;
  color:#b42318 !important;
  font-size:.84rem !important;
  font-weight:650 !important;
  line-height:1 !important;
  text-decoration:none !important;
  transform:none !important;
}
.parent-sidebar[data-sidebar-scope="parent"] .student-logout .nav-icon,
.parent-sidebar[data-sidebar-scope="parent"] .student-logout .nav-icon svg{
  color:#d92d20 !important;
  stroke:#d92d20 !important;
}


/* v143 About and FAQ public pages */
.about-page-hero,
.faq-page-hero{
  background:
    radial-gradient(circle at top left, rgba(10,143,74,.18), transparent 36%),
    linear-gradient(135deg,#f8fcfa 0%,#ffffff 48%,#eef8f1 100%);
}
.about-portal-card .metric,
.faq-search-card .dashboard-card{
  min-height:0;
}
.about-grid,
.about-safe-grid,
.timeline-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.about-safe-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.timeline-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.about-card,
.timeline-card{
  background:#fff;
  border:1px solid #d8efe1;
  border-radius:22px;
  padding:22px;
  box-shadow:0 14px 34px rgba(15,23,42,.06);
}
.about-card h3,
.timeline-card h3{
  color:#064d2a;
  margin-bottom:10px;
}
.about-card p,
.timeline-card p{
  color:#475467;
  font-weight:650;
}
.about-icon{
  width:48px;
  height:48px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:#e7f8ee;
  margin-bottom:12px;
  font-size:1.35rem;
}
.timeline-card span{
  width:38px;
  height:38px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#064d2a;
  color:#fff;
  font-weight:650;
  margin-bottom:12px;
}
.about-note{
  margin-top:22px;
}
.faq-search-label{
  display:block;
  color:#064d2a;
  font-weight:650;
  margin-bottom:10px;
}
.faq-search-input{
  width:100%;
  border:1px solid #d8efe1;
  border-radius:16px;
  padding:14px 16px;
  font-size:1rem;
  font-weight:600;
  color:#172033;
  outline:none;
  background:#fff;
}
.faq-search-input:focus{
  border-color:#087443;
  box-shadow:0 0 0 4px rgba(8,116,67,.12);
}
.faq-search-help{
  color:#667085;
  font-weight:600;
  margin-top:10px;
}
.faq-category-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:24px;
}
.faq-category-tabs a{
  display:inline-flex;
  padding:9px 13px;
  border-radius:999px;
  border:1px solid #d8efe1;
  background:#fff;
  color:#064d2a;
  font-weight:650;
  font-size:.9rem;
}
.faq-category-tabs a:hover{
  background:#e7f8ee;
}
.faq-category{
  margin-bottom:26px;
}
.faq-category h2{
  color:#064d2a;
  margin-bottom:12px;
  font-size:1.35rem;
}
.faq-item{
  background:#fff;
  border:1px solid #d8efe1;
  border-radius:16px;
  margin-bottom:10px;
  box-shadow:0 10px 24px rgba(15,23,42,.04);
  overflow:hidden;
}
.faq-item summary{
  cursor:pointer;
  padding:16px 18px;
  color:#172033;
  font-weight:650;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.faq-item summary::-webkit-details-marker{
  display:none;
}
.faq-item summary::after{
  content:"+";
  width:26px;
  height:26px;
  border-radius:999px;
  background:#e7f8ee;
  color:#064d2a;
  display:grid;
  place-items:center;
  flex:0 0 26px;
  font-weight:650;
}
.faq-item[open] summary::after{
  content:"−";
}
.faq-item p{
  padding:0 18px 18px;
  color:#475467;
  font-weight:650;
}
@media(max-width:1000px){
  .about-grid,
  .timeline-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .about-safe-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:650px){
  .about-grid,
  .timeline-grid{
    grid-template-columns:1fr;
  }
  .faq-category-tabs a{
    width:100%;
    justify-content:center;
  }
}


/* v144 FAQ cleanup, user presence and checkbox attendance */
.presence-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 9px;
  border-radius:999px;
  font-weight:650;
  font-size:.76rem;
  white-space:nowrap;
  border:1px solid transparent;
}
.presence-badge > span{
  width:8px;
  height:8px;
  border-radius:999px;
  flex:0 0 8px;
  background:currentColor;
  box-shadow:0 0 0 3px rgba(0,0,0,.04);
}
.presence-badge small{
  font-size:.68rem;
  font-weight:600;
  opacity:.78;
  margin-left:2px;
}
.presence-online{
  color:#067647;
  background:#ecfdf3;
  border-color:#abefc6;
}
.presence-online > span{
  animation:presencePulse 1.4s infinite;
}
.presence-recent{
  color:#b54708;
  background:#fffaeb;
  border-color:#fedf89;
}
.presence-offline{
  color:#475467;
  background:#f2f4f7;
  border-color:#d0d5dd;
}
@keyframes presencePulse{
  0%{box-shadow:0 0 0 0 rgba(6,118,71,.35)}
  70%{box-shadow:0 0 0 7px rgba(6,118,71,0)}
  100%{box-shadow:0 0 0 0 rgba(6,118,71,0)}
}
.attendance-check{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 11px;
  border-radius:999px;
  background:#f7fcf9;
  border:1px solid #d8efe1;
  color:#064d2a;
  font-weight:650;
  white-space:nowrap;
}
.attendance-check input{
  width:16px;
  height:16px;
  accent-color:#087443;
}


/* v147 teacher messaging all users */
.teacher-message-compose-card select[multiple],
#teacherMessageUserSelect{
  width:100%;
  min-height:180px;
  border:1px solid #d8efe1;
  border-radius:14px;
  padding:10px;
  font-family:inherit;
  font-weight:600;
  color:#344054;
  background:#fff;
}
#teacherUserSearch{
  width:100%;
  border:1px solid #d8efe1;
  border-radius:14px;
  padding:12px 14px;
  margin-bottom:10px;
  font-weight:600;
}
.teacher-message-compose-card option{
  padding:7px;
}


/* v148 assessment type and 20-20-60 result scheme */
.assessment-scheme-note,
.result-scheme-note{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  background:#e7f8ee;
  color:#064d2a;
  font-weight:650;
  font-size:.84rem;
  border:1px solid #abefc6;
}


/* v150 live class minimize for admin and teachers */
.live-room-mode-pill{
  display:inline-flex;
  border-radius:999px;
  padding:10px 14px;
  background:#e7f8ee;
  color:#064d2a;
  font-weight:650;
}
.live-mini-helper{
  margin:12px 18px 0;
  border:1px solid #abefc6;
  background:#ecfdf3;
  color:#064d2a;
  border-radius:16px;
  padding:12px 14px;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.live-mini-helper strong{
  font-weight:650;
}
.live-mini-helper span{
  font-weight:600;
  color:#475467;
}
.live-mini-mode .live-classroom-header{
  position:relative;
  padding:10px 12px;
  align-items:flex-start;
  flex-direction:column;
}
.live-mini-mode .live-classroom-header h1{
  font-size:1rem;
}
.live-mini-mode .live-classroom-header p{
  font-size:.78rem;
}
.live-mini-mode .live-header-actions{
  width:100%;
  gap:7px;
}
.live-mini-mode .live-header-actions .btn,
.live-mini-mode #liveClock,
.live-mini-mode .live-room-mode-pill{
  padding:8px 10px;
  font-size:.78rem;
}
.live-mini-mode .live-classroom-grid{
  display:block;
  padding:10px;
}
.live-mini-mode .live-video-panel{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:10px;
}
.live-mini-mode .live-video-main{
  min-height:150px;
}
.live-mini-mode .live-video-main video{
  min-height:150px;
}
.live-mini-mode .participant-grid{
  grid-template-columns:1fr;
  max-height:150px;
  overflow:auto;
}
.live-mini-mode .live-side-card{
  display:none;
}
.live-mini-mode .moderator-side-card{
  display:block;
  grid-column:1 / -1;
}
.live-mini-mode .whiteboard-toolbar{
  max-height:110px;
  overflow:auto;
}
.live-mini-mode .whiteboard-stage{
  height:330px;
  min-height:330px;
}
.live-mini-mode .whiteboard-help{
  display:none;
}
.live-inline-mini-mode .live-classroom-grid{
  grid-template-columns:260px 1fr;
}
.live-inline-mini-mode .live-video-main{
  min-height:170px;
}
.nbds-live-mini-dock{
  position:fixed;
  right:18px;
  bottom:96px;
  z-index:9995;
  display:flex;
  align-items:center;
  gap:10px;
  width:min(420px, calc(100vw - 28px));
  background:#fff;
  border:1px solid #abefc6;
  box-shadow:0 18px 50px rgba(15,23,42,.16);
  border-radius:18px;
  padding:12px;
}
.nbds-live-mini-dock[hidden]{
  display:none!important;
}
.nbds-live-mini-dot{
  width:12px;
  height:12px;
  border-radius:50%;
  background:#12b76a;
  box-shadow:0 0 0 0 rgba(18,183,106,.38);
  animation:presencePulse 1.4s infinite;
  flex:0 0 12px;
}
.nbds-live-mini-text{
  min-width:0;
  flex:1;
}
.nbds-live-mini-text strong{
  display:block;
  color:#064d2a;
  font-weight:650;
  line-height:1.1;
}
.nbds-live-mini-text small{
  display:block;
  color:#667085;
  font-weight:600;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.nbds-live-mini-dock button{
  border:0;
  border-radius:999px;
  background:#e7f8ee;
  color:#064d2a;
  padding:8px 10px;
  font-weight:650;
  cursor:pointer;
}
#nbdsCloseLiveMiniDock{
  background:#fff5f4;
  color:#b42318;
}
@media(max-width:700px){
  .live-mini-mode .live-video-panel{
    grid-template-columns:1fr;
  }
  .nbds-live-mini-dock{
    right:10px;
    bottom:80px;
    align-items:flex-start;
    flex-wrap:wrap;
  }
}


/* v151 live class end button */
.live-end-class-form{
  margin:0;
  display:inline-flex;
}
.btn.btn-danger,
.live-end-class-btn{
  background:#b42318!important;
  color:#fff!important;
  border-color:#b42318!important;
}
.btn.btn-danger:hover,
.live-end-class-btn:hover{
  background:#912018!important;
  border-color:#912018!important;
}
.live-mini-mode .live-end-class-form{
  display:inline-flex;
}


/* v152 smooth pen whiteboard */
#classWhiteboard,
.whiteboard-stage{
  touch-action:none;
}
#classWhiteboard{
  cursor:crosshair;
}
.board-tool[data-tool="pen"].active,
.board-tool[data-tool="eraser"].active{
  box-shadow:0 0 0 3px rgba(8,116,67,.10);
}


/* v153 live class interface upgrade: corrected camera, palette, full user view and relaxing design */
.live-classroom-body{
  background:
    radial-gradient(circle at top left, rgba(186,230,253,.45), transparent 32%),
    radial-gradient(circle at top right, rgba(220,252,231,.55), transparent 28%),
    linear-gradient(135deg,#f7fbff 0%,#f2fbf6 46%,#fffaf0 100%);
}
.live-classroom-header{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(11,116,222,.10);
  box-shadow:0 12px 38px rgba(15,23,42,.07);
}
.live-classroom-header h1{
  color:#075985;
}
.live-classroom-header small{
  color:#0b74de;
}
.live-classroom-header p{
  color:#52637a;
}
.live-room-mode-pill,
#liveClock{
  background:linear-gradient(135deg,#e0f2fe,#dcfce7);
  color:#075985;
  border:1px solid rgba(14,165,233,.18);
}
.live-video-main{
  background:linear-gradient(135deg,#0f172a,#123b50);
  border:1px solid rgba(14,165,233,.18);
  box-shadow:0 20px 60px rgba(11,74,111,.18);
}
#localVideo,
#boardPreviewVideo.local-camera-preview{
  transform:scaleX(-1);
}
.live-video-main::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 35%,rgba(6,77,42,.10));
}
.participant-tile{
  border:1px solid rgba(14,165,233,.16);
  background:linear-gradient(180deg,#ffffff,#f8fcff);
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.participant-tile:hover{
  transform:translateY(-2px);
  border-color:rgba(14,165,233,.35);
  box-shadow:0 18px 44px rgba(11,74,111,.12);
}
.participant-tile.active{
  border-color:#0b74de;
  box-shadow:0 0 0 4px rgba(14,165,233,.12),0 18px 44px rgba(11,74,111,.12);
}
.participant-tile span{
  background:linear-gradient(135deg,#0b74de,#12b76a);
  color:#fff;
}
.participant-view-btn{
  margin-top:8px;
  border:0;
  border-radius:999px;
  padding:6px 10px;
  background:#eef6ff;
  color:#075985;
  font-weight:650;
  cursor:pointer;
}
.participant-view-btn:hover{
  background:#0b74de;
  color:#fff;
}
.whiteboard-panel{
  background:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.78);
  border-radius:26px;
  padding:10px;
  box-shadow:0 24px 70px rgba(15,23,42,.07);
}
.whiteboard-toolbar{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(14px);
  border:1px solid rgba(14,165,233,.13);
  box-shadow:0 16px 42px rgba(11,74,111,.09);
}
.board-tool-group{
  background:rgba(248,252,255,.72);
  border:1px solid rgba(14,165,233,.10);
  border-radius:999px;
  padding:5px;
}
.board-tool,
.whiteboard-toolbar button{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid transparent;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.board-tool:hover,
.whiteboard-toolbar button:hover{
  transform:translateY(-1px);
}
.board-tool[data-tool="pen"]{background:#e0f2fe;color:#075985}
.board-tool[data-tool="eraser"]{background:#fef3c7;color:#92400e}
.board-tool[data-tool="line"]{background:#f3e8ff;color:#6b21a8}
.board-tool[data-tool="rectangle"]{background:#ecfdf3;color:#067647}
.board-tool[data-tool="circle"]{background:#fff1f3;color:#c01048}
.board-tool[data-tool="text"]{background:#eef4ff;color:#3538cd}
.board-tool.active{
  color:#fff!important;
  box-shadow:0 10px 26px rgba(15,23,42,.18);
}
.board-tool[data-tool="pen"].active{background:linear-gradient(135deg,#0284c7,#0b74de)}
.board-tool[data-tool="eraser"].active{background:linear-gradient(135deg,#f79009,#dc6803)}
.board-tool[data-tool="line"].active{background:linear-gradient(135deg,#7a35c2,#9333ea)}
.board-tool[data-tool="rectangle"].active{background:linear-gradient(135deg,#079455,#12b76a)}
.board-tool[data-tool="circle"].active{background:linear-gradient(135deg,#d92d20,#e31b54)}
.board-tool[data-tool="text"].active{background:linear-gradient(135deg,#3538cd,#6172f3)}
.board-icon{
  background:rgba(255,255,255,.56);
  border-radius:10px;
  padding:3px;
}
.board-tool.active .board-icon{
  background:rgba(255,255,255,.20);
}
.board-palette-control{
  flex-wrap:wrap;
  border:1px solid rgba(14,165,233,.12);
  background:#fff;
}
.board-color-palette{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.board-color-swatch{
  width:26px!important;
  height:26px!important;
  min-width:26px!important;
  padding:0!important;
  border-radius:50%!important;
  border:2px solid #fff!important;
  background:var(--swatch)!important;
  box-shadow:0 0 0 1px rgba(15,23,42,.20),0 6px 12px rgba(15,23,42,.10);
}
.board-color-swatch.active{
  box-shadow:0 0 0 3px rgba(11,116,222,.25),0 0 0 1px rgba(15,23,42,.20),0 10px 18px rgba(15,23,42,.14);
  transform:translateY(-1px) scale(1.08);
}
.board-color-swatch[data-board-color="#ffffff"]{
  border-color:#d0d5dd!important;
}
.whiteboard-stage{
  border:1px solid rgba(14,165,233,.14);
  border-radius:26px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),0 22px 60px rgba(11,74,111,.09);
  background:
    linear-gradient(#ffffff,#ffffff) padding-box,
    linear-gradient(135deg,rgba(14,165,233,.18),rgba(18,183,106,.18)) border-box;
}
.whiteboard-help div{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(14,165,233,.12);
  border-radius:16px;
  color:#52637a;
}
.board-student-preview{
  transition:.24s ease;
}
.board-preview-window{
  background:linear-gradient(135deg,#0f172a,#164e63);
  border:1px solid rgba(14,165,233,.22);
  box-shadow:0 18px 48px rgba(11,74,111,.20);
}
.board-preview-name{
  background:rgba(2,6,23,.72);
  backdrop-filter:blur(8px);
}
.board-student-preview.preview-expanded{
  position:fixed!important;
  inset:0!important;
  z-index:10050!important;
  display:grid!important;
  place-items:center!important;
  width:100vw!important;
  height:100dvh!important;
  padding:24px!important;
  background:rgba(2,6,23,.78)!important;
  backdrop-filter:blur(14px)!important;
}
.board-student-preview.preview-expanded .board-preview-window{
  width:min(1120px,94vw)!important;
  height:min(760px,88dvh)!important;
  border-radius:34px!important;
  box-shadow:0 34px 90px rgba(2,6,23,.45)!important;
}
.board-student-preview.preview-expanded video{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  background:#020617!important;
}
.board-student-preview.preview-expanded .board-preview-avatar{
  width:210px!important;
  height:210px!important;
  font-size:5.6rem!important;
  background:linear-gradient(135deg,#0b74de,#12b76a)!important;
  color:#fff!important;
}
.board-student-preview.preview-expanded .board-preview-name{
  font-size:1.15rem!important;
  padding:14px 18px!important;
}
.board-student-preview.preview-expanded .board-preview-controls{
  gap:12px!important;
}
.board-student-preview.preview-expanded .board-preview-controls button{
  min-width:48px;
  min-height:44px;
  border-radius:999px;
  background:#ffffff!important;
  color:#075985!important;
}
.participant-preview-fullscreen{
  overflow:hidden!important;
}
@media(max-width:760px){
  .board-tool-group{
    border-radius:18px;
  }
  .board-palette-control{
    border-radius:18px;
  }
  .board-color-palette{
    width:100%;
    flex-wrap:wrap;
  }
  .board-student-preview.preview-expanded{
    padding:12px!important;
  }
}


/* v154 reaction fix, oval palette and four fixed pen sizes */
.board-reaction-menu{
  position:relative;
  z-index:12030;
}
.board-reaction-menu.active #reactionBoard{
  background:linear-gradient(135deg,#f97316,#ec4899)!important;
  color:#fff!important;
  box-shadow:0 12px 30px rgba(236,72,153,.24);
}
.board-reaction-options,
.board-reaction-options.board-reaction-options-floating{
  pointer-events:auto!important;
  z-index:12050!important;
  min-width:220px;
  border-radius:22px!important;
  border:1px solid rgba(236,72,153,.18)!important;
  box-shadow:0 28px 70px rgba(15,23,42,.24)!important;
  background:rgba(255,255,255,.96)!important;
  backdrop-filter:blur(14px);
}
.board-reaction-options.active{
  display:grid!important;
}
.board-reaction-options button{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:42px!important;
  font-size:.92rem!important;
  background:linear-gradient(135deg,#fff7ed,#fdf2f8)!important;
  color:#9a3412!important;
}
.board-reaction-options button:hover{
  transform:translateY(-1px);
  background:linear-gradient(135deg,#fed7aa,#fbcfe8)!important;
}
.board-palette-control,
.board-fixed-size-control{
  border-radius:999px!important;
  padding:7px 10px!important;
  gap:10px!important;
}
.board-color-palette{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border-radius:999px;
  padding:6px 8px;
  background:linear-gradient(135deg,#f8fafc,#eef6ff);
  border:1px solid rgba(14,165,233,.12);
}
.board-color-swatch{
  border-radius:50%!important;
}
.board-color-swatch:nth-child(2n){
  border-radius:999px!important;
  width:34px!important;
}
.board-color-swatch.active{
  outline:3px solid rgba(11,116,222,.18);
}
.board-size-palette{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border-radius:999px;
  padding:5px;
  background:linear-gradient(135deg,#ecfdf3,#eef6ff);
  border:1px solid rgba(18,183,106,.16);
}
.board-size-swatch{
  min-width:auto!important;
  min-height:36px!important;
  border:0!important;
  border-radius:999px!important;
  padding:7px 10px!important;
  background:#fff!important;
  color:#075985!important;
  box-shadow:0 6px 14px rgba(15,23,42,.08);
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
}
.board-size-swatch i{
  width:var(--dot-size);
  height:var(--dot-size);
  border-radius:50%;
  background:currentColor;
  display:inline-block;
}
.board-size-swatch b{
  font-size:.75rem;
  font-weight:950;
}
.board-size-swatch.active{
  color:#fff!important;
  background:linear-gradient(135deg,#0b74de,#12b76a)!important;
  box-shadow:0 10px 22px rgba(11,116,222,.22);
}
.board-size-control input[type="range"]{
  display:none!important;
}
@media(max-width:760px){
  .board-palette-control,
  .board-fixed-size-control{
    border-radius:18px!important;
    width:100%;
  }
  .board-size-palette,
  .board-color-palette{
    width:100%;
    flex-wrap:wrap;
    justify-content:flex-start;
  }
}


/* v155 compact live-class toolbar dropdowns */
.whiteboard-toolbar{
  position:relative;
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:8px!important;
}
.board-tool-group{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:6px!important;
  max-width:100%;
}
.board-drawing-tools{
  flex:1 1 320px;
}
.board-style-tools{
  flex:1 1 260px;
}
.board-action-tools{
  flex:1 1 360px;
  justify-content:flex-end;
}
.board-tool,
.whiteboard-toolbar button{
  min-height:40px;
  white-space:nowrap;
}
.board-size-dropdown{
  display:none;
  position:absolute;
  z-index:12100;
  width:min(260px, calc(100vw - 42px));
  padding:12px;
  border-radius:22px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(14,165,233,.18);
  box-shadow:0 24px 70px rgba(15,23,42,.22);
  backdrop-filter:blur(14px);
}
.board-size-dropdown.active{
  display:grid;
  gap:8px;
}
.board-size-dropdown-head{
  display:grid;
  gap:2px;
  padding:4px 4px 8px;
  border-bottom:1px solid rgba(14,165,233,.12);
}
.board-size-dropdown-head strong{
  color:#075985;
  font-weight:950;
}
.board-size-dropdown-head small{
  color:#667085;
  font-size:.74rem;
  font-weight:600;
}
.board-size-option{
  width:100%;
  display:flex!important;
  justify-content:flex-start!important;
  align-items:center!important;
  gap:10px!important;
  border-radius:16px!important;
  padding:10px 12px!important;
  background:linear-gradient(135deg,#f8fafc,#eef6ff)!important;
  color:#075985!important;
}
.board-size-option:hover{
  background:linear-gradient(135deg,#e0f2fe,#dcfce7)!important;
}
.board-size-option.active{
  background:linear-gradient(135deg,#0b74de,#12b76a)!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(11,116,222,.22);
}
.board-size-option i{
  width:var(--dot-size);
  height:var(--dot-size);
  border-radius:50%;
  background:currentColor;
  display:inline-block;
}
.board-size-option span{
  font-weight:950;
}
.board-fixed-size-control,
.board-size-palette{
  display:none!important;
}
.board-reaction-options.active{
  display:grid!important;
}
.board-reaction-menu{
  z-index:12100;
}
.board-color-palette{
  flex-wrap:wrap;
  max-width:100%;
}
.board-palette-control{
  max-width:100%;
}
@media(max-width:1150px){
  .board-action-tools{
    justify-content:flex-start;
  }
  .board-tool,
  .whiteboard-toolbar button{
    min-height:38px;
    padding:8px 10px!important;
  }
}
@media(max-width:800px){
  .whiteboard-toolbar{
    gap:7px!important;
    padding:9px!important;
  }
  .board-drawing-tools,
  .board-style-tools,
  .board-action-tools{
    flex:1 1 100%;
    justify-content:flex-start;
    border-radius:18px!important;
  }
  .board-tool-text{
    display:inline!important;
    font-size:.78rem;
  }
  .board-tool,
  .whiteboard-toolbar button{
    min-height:36px;
    padding:7px 9px!important;
  }
  .board-color-swatch{
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
  }
  .board-color-swatch:nth-child(2n){
    width:30px!important;
  }
}
.live-mini-mode .whiteboard-toolbar{
  max-height:170px!important;
  overflow:auto!important;
  align-content:flex-start!important;
}
.live-mini-mode .board-tool-text{
  display:none!important;
}
.live-mini-mode .board-tool,
.live-mini-mode .whiteboard-toolbar button{
  min-height:34px;
  padding:7px 8px!important;
}
.live-mini-mode .board-icon,
.live-mini-mode .board-icon svg{
  width:18px!important;
  height:18px!important;
}
.live-mini-mode .board-color-palette{
  gap:5px;
}
.live-mini-mode .board-color-swatch{
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
}
.live-mini-mode .board-size-dropdown{
  position:fixed;
  left:12px!important;
  top:82px!important;
  width:min(240px, calc(100vw - 24px));
}


/* v156 dropdowns overlay whiteboard for visibility */
.board-size-dropdown.dropdown-over-whiteboard,
.board-reaction-options.dropdown-over-whiteboard{
  position:fixed!important;
  z-index:13050!important;
  border-radius:24px!important;
  background:rgba(255,255,255,.97)!important;
  border:1px solid rgba(14,165,233,.22)!important;
  box-shadow:0 34px 90px rgba(2,6,23,.28)!important;
  backdrop-filter:blur(18px)!important;
}
.board-size-dropdown.dropdown-over-whiteboard{
  width:min(280px, calc(100vw - 24px))!important;
}
.board-size-dropdown.dropdown-over-whiteboard::before,
.board-reaction-options.dropdown-over-whiteboard::before{
  content:'';
  position:absolute;
  inset:-8px;
  border-radius:30px;
  background:linear-gradient(135deg,rgba(14,165,233,.20),rgba(18,183,106,.18));
  z-index:-1;
  filter:blur(2px);
}
.board-size-dropdown.dropdown-over-whiteboard .board-size-option{
  min-height:46px!important;
  font-size:.95rem!important;
}
.board-reaction-options.dropdown-over-whiteboard{
  padding:10px!important;
}
.board-reaction-options.dropdown-over-whiteboard button{
  min-height:46px!important;
  font-size:.95rem!important;
}
.live-mini-mode .board-size-dropdown.dropdown-over-whiteboard,
.live-mini-mode .board-reaction-options.dropdown-over-whiteboard{
  left:12px!important;
  top:116px!important;
  width:min(250px, calc(100vw - 24px))!important;
}
.whiteboard-panel.board-native-fullscreen .board-size-dropdown.dropdown-over-whiteboard,
.whiteboard-panel.board-fallback-fullscreen .board-size-dropdown.dropdown-over-whiteboard,
.whiteboard-panel.board-native-fullscreen .board-reaction-options.dropdown-over-whiteboard,
.whiteboard-panel.board-fallback-fullscreen .board-reaction-options.dropdown-over-whiteboard{
  z-index:14050!important;
}


/* v157 dropdown trigger/display fix */
.board-size-dropdown.active.dropdown-over-whiteboard,
.board-size-dropdown.active{
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}
.board-reaction-options.active.dropdown-over-whiteboard,
.board-reaction-options.active{
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}
#reactionBoard,
.board-tool[data-tool="pen"],
.board-tool[data-tool="eraser"]{
  user-select:none;
  -webkit-user-select:none;
}
.board-tool[data-tool="pen"] *,
.board-tool[data-tool="eraser"] *,
#reactionBoard *{
  pointer-events:none;
}
.board-size-dropdown{
  transform:translateY(0);
}
.board-size-dropdown.active{
  animation:nbdsDropdownPop .16s ease-out;
}
.board-reaction-options.active{
  animation:nbdsDropdownPop .16s ease-out;
}
@keyframes nbdsDropdownPop{
  from{opacity:0; transform:translateY(-8px) scale(.96);}
  to{opacity:1; transform:translateY(0) scale(1);}
}


/* v158 pen and eraser direct size dropdown */
.board-size-trigger-tool{
  position:relative;
}
.board-size-trigger-tool::after{
  content:'⌄';
  display:inline-grid;
  place-items:center;
  width:16px;
  height:16px;
  margin-left:3px;
  border-radius:50%;
  background:rgba(255,255,255,.55);
  font-size:.72rem;
  font-weight:950;
}
.board-size-trigger-tool.active::after{
  background:rgba(255,255,255,.26);
  color:inherit;
}
.board-size-dropdown.active{
  display:grid!important;
  z-index:15000!important;
}
.board-size-dropdown.dropdown-over-whiteboard{
  z-index:15000!important;
}


/* v159 final Pen/Eraser dropdown fix and live subject dropdown */
.board-size-trigger-tool{
  cursor:pointer;
}
.board-size-trigger-tool[title*="double-click"]::after,
.board-size-trigger-tool::after{
  content:'⌄';
  display:inline-grid;
  place-items:center;
  width:16px;
  height:16px;
  margin-left:3px;
  border-radius:50%;
  background:rgba(255,255,255,.58);
  font-size:.72rem;
  font-weight:950;
}
.board-size-dropdown.active{
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  z-index:16000!important;
}
#adminLiveSubject,
#teacherLiveSubject{
  font-weight:650;
}


/* v160 final clickable Pen/Eraser size dropdown */
.board-size-trigger-tool{
  cursor:pointer!important;
  user-select:none;
}
.board-size-trigger-tool::after{
  content:'⌄';
  display:inline-grid;
  place-items:center;
  width:17px;
  height:17px;
  margin-left:4px;
  border-radius:50%;
  background:rgba(255,255,255,.62);
  color:inherit;
  font-size:.74rem;
  font-weight:950;
}
.board-size-trigger-tool[aria-expanded="true"]::after{
  content:'⌃';
  background:rgba(255,255,255,.28);
}
.board-size-trigger-tool *{
  pointer-events:none;
}
.board-size-dropdown.active,
.board-size-dropdown.dropdown-over-whiteboard.active{
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  z-index:18000!important;
}
.board-size-dropdown.dropdown-over-whiteboard{
  position:fixed!important;
  width:min(290px, calc(100vw - 24px))!important;
}
.board-size-option{
  cursor:pointer!important;
}
.board-size-option.active{
  outline:3px solid rgba(11,116,222,.18);
}
.live-mini-mode .board-size-dropdown.dropdown-over-whiteboard.active{
  top:110px!important;
  left:12px!important;
  width:min(270px, calc(100vw - 24px))!important;
}


/* v161 stable high-quality live camera, teacher assignment controls, and visible size tools */
.camera-stable-stream,
.live-video-main video,
#boardPreviewVideo{
  image-rendering:auto;
  backface-visibility:hidden;
  transform-style:preserve-3d;
  will-change:auto;
}
.live-video-main video{
  min-height:280px;
  background:#020617;
}
#localVideo{
  transform:scaleX(-1) translateZ(0);
}
#boardPreviewVideo.local-camera-preview{
  transform:scaleX(-1) translateZ(0);
}
.admin-teacher-assignment-field{
  display:none;
}
#adminLiveTeacher,
#adminLiveSubject,
#teacherProfileSubject,
#adminEditTeacherSubject{
  font-weight:650;
}
.board-size-dropdown.active,
.board-size-dropdown.dropdown-over-whiteboard.active{
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  z-index:19000!important;
}


/* v162 restored subject functions and class-wide subject dropdowns */
#adminLiveSubject,
#teacherLiveSubject,
#teacherProfileSubject,
#adminEditTeacherSubject{
  min-height:42px;
}
#adminLiveTeacherManual{
  font-weight:650;
}
.field-help{
  color:#667085;
}


/* v163 navigation and subject dropdown recovery */
.student-page.active{
  display:block;
}
#adminLiveSubject,
#teacherLiveSubject,
#teacherProfileSubject,
#adminEditTeacherSubject{
  cursor:pointer;
  background:#fff;
}
.student-nav-link.active{
  position:relative;
}
.student-nav-link.active::after{
  content:'';
  position:absolute;
  right:10px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  opacity:.55;
}


/* v164 class-and-department subject dropdowns */
#adminLiveSubject,
#examSubject,
#adminResultSubjectSelect,
#teacherLiveSubject,
#teacherExamSubject,
#teacherResultSubject,
#teacherProfileSubject,
#adminEditTeacherSubject{
  font-weight:650;
  cursor:pointer;
  background:#fff;
}


/* v165 admin-configurable subject settings */
.subject-settings-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:16px;
}
.subject-settings-panel{
  border:1px solid rgba(14,165,233,.18);
  border-radius:22px;
  padding:16px;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(247,251,255,.92));
}
.subject-settings-panel h3{
  margin:0 0 12px;
  color:#075985;
  font-size:1rem;
}
.subject-checkbox-list{
  max-height:360px;
  overflow:auto;
  display:grid;
  gap:8px;
  padding-right:4px;
}
.subject-checkbox-item{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:14px;
  background:#fff;
  border:1px solid rgba(148,163,184,.22);
  font-weight:600;
}
.subject-new-row{
  margin-top:18px;
  display:grid;
  gap:12px;
  border-top:1px solid rgba(148,163,184,.24);
  padding-top:18px;
}
.subject-new-departments{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.subject-new-departments label{
  padding:8px 10px;
  border-radius:999px;
  background:#eef6ff;
  font-weight:600;
}
#adminLiveSubject,#examSubject,#adminResultSubjectSelect,#teacherLiveSubject,#teacherExamSubject,#teacherResultSubject,#teacherProfileSubject,#adminEditTeacherSubject{
  font-weight:650;
}


/* v166 live-class time window controls */
.live-action-window{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
}
.live-action-window .status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  white-space:normal;
}
.live-window-closed{
  background:#fff7ed!important;
  color:#9a3412!important;
  border:1px solid rgba(251,146,60,.35)!important;
}
.live-window-ended{
  background:#fef2f2!important;
  color:#991b1b!important;
  border:1px solid rgba(248,113,113,.35)!important;
}
.live-window-open-now .live-join-now-action{
  animation:nbdsLiveJoinPulse 1.6s ease-in-out infinite;
}
@keyframes nbdsLiveJoinPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(7,148,85,.24);}
  50%{box-shadow:0 0 0 6px rgba(7,148,85,.08);}
}


/* v167 synchronised SSS subject allocation */
#adminLiveSubject,#examSubject,#assignmentSubject,#lessonSubject,#adminResultSubjectSelect,
#teacherLiveSubject,#teacherExamSubject,#teacherLessonSubject,#teacherAssignmentSubject,#teacherTimetableSubject,#teacherResultSubject,#teacherProfileSubject,#adminEditTeacherSubject{
  font-weight:650;
  cursor:pointer;
  background:#fff;
}
.subject-filter-note{
  font-weight:600;
}


/* v168 edit/delete scheduled live class controls */
.live-management-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
.inline-live-delete-form{
  display:inline-flex;
  margin:0;
}
.btn-danger{
  background:#dc2626!important;
  color:#fff!important;
  border-color:#dc2626!important;
}
.btn-danger:hover{
  background:#b91c1c!important;
  border-color:#b91c1c!important;
}
#adminLiveClassForm,
#teacherLiveClassForm{
  scroll-margin-top:24px;
}


/* v169 active countdown, AM/PM and access-code copy */
.live-time-with-period{
  display:grid;
  grid-template-columns:minmax(120px,1fr) 82px;
  gap:8px;
}
.live-time-with-period select{
  font-weight:650;
  text-align:center;
}
.live-countdown-pill{
  min-width:130px;
}
.live-countdown-pill strong{
  font-variant-numeric:tabular-nums;
}
.live-countdown-pill.countdown-upcoming{
  background:#fff7ed!important;
  border-color:rgba(251,146,60,.35)!important;
}
.live-countdown-pill.countdown-open{
  background:#ecfdf3!important;
  border-color:rgba(34,197,94,.35)!important;
}
.live-countdown-pill.countdown-ended{
  background:#fef2f2!important;
  border-color:rgba(248,113,113,.35)!important;
}
.live-access-code-text{
  display:inline-block;
  padding:4px 8px;
  border-radius:10px;
  background:#eef6ff;
  color:#075985;
  letter-spacing:.04em;
}
.live-copy-code-btn{
  margin-top:6px;
}
.copy-code-feedback{
  display:block;
  color:#079455;
  font-weight:600;
  margin-top:4px;
}


/* v170 CBT result publishing workflow */
.status-pill.warning{
  background:#fff7ed!important;
  color:#9a3412!important;
  border:1px solid rgba(251,146,60,.35)!important;
}
.status-pill.success{
  background:#ecfdf3!important;
  color:#067647!important;
  border:1px solid rgba(34,197,94,.35)!important;
}
.admin-result-table-head p strong{
  color:#9a3412;
}


/* v171 CBT component grading and final result publish */
.cbt-publish-now-form{
  margin-top:6px;
}
#adminComponentGradePreview{
  font-weight:650;
  color:#075985;
}


/* v172 CBT edit/update and component grading */
#teacherExamEditorForm,
#examEditorForm{
  scroll-margin-top:24px;
}
#adminGradePreview,
#teacherGradePreview,
#adminComponentGradePreview{
  font-weight:650;
}
.format-guide-box{
  border:1px dashed rgba(7,89,133,.25);
  border-radius:18px;
  padding:14px;
  background:#f8fbff;
}


/* v173 pen and eraser selectable sizes */
.board-size-dropdown.dropdown-over-whiteboard{
  width:min(320px, calc(100vw - 24px))!important;
}
.board-current-size-pill{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  width:max-content;
  max-width:100%;
  margin-top:6px;
  padding:5px 9px;
  border-radius:999px;
  background:#ecfdf3;
  color:#067647;
  font-size:.75rem;
  font-weight:950;
  border:1px solid rgba(18,183,106,.22);
}
.board-size-option{
  display:grid!important;
  grid-template-columns:28px 78px 1fr;
  align-items:center!important;
}
.board-size-option small{
  color:inherit;
  opacity:.78;
  font-weight:600;
  font-size:.72rem;
}
.board-size-option[data-board-size-label="Large"] i{
  box-shadow:0 0 0 4px rgba(7,89,133,.08);
}
.board-size-trigger-tool[aria-expanded="true"]{
  outline:3px solid rgba(18,183,106,.22)!important;
}
@media(max-width:680px){
  .board-size-option{
    grid-template-columns:24px 72px 1fr;
    gap:7px!important;
  }
  .board-size-option small{
    font-size:.68rem;
  }
}


/* v174 restored pen and eraser size increaser */
.board-size-dropdown.dropdown-over-whiteboard{
  width:min(340px, calc(100vw - 24px))!important;
}
.board-size-increaser{
  display:grid;
  gap:9px;
  padding:12px;
  border-radius:18px;
  background:linear-gradient(135deg,#f8fafc,#eef6ff);
  border:1px solid rgba(7,89,133,.16);
  margin-top:4px;
}
.board-size-increaser-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.board-size-increaser-top strong{
  color:#075985;
  font-weight:950;
}
#boardSizeOutput{
  min-width:54px;
  text-align:center;
  padding:5px 8px;
  border-radius:999px;
  background:#075985;
  color:#fff;
  font-weight:950;
  font-variant-numeric:tabular-nums;
}
.board-size-increaser-row{
  display:grid;
  grid-template-columns:42px 1fr 42px;
  gap:8px;
  align-items:center;
}
.board-size-step-btn{
  min-width:42px!important;
  height:42px!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#075985!important;
  border:1px solid rgba(7,89,133,.18)!important;
  font-size:1.35rem!important;
  font-weight:950!important;
  line-height:1!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
}
.board-size-step-btn:hover{
  background:#ecfdf3!important;
  color:#067647!important;
}
#boardSizeRange{
  width:100%;
  accent-color:#079455;
  cursor:pointer;
}
.board-size-increaser small{
  color:#667085;
  font-weight:600;
  font-size:.73rem;
}
.live-mini-mode .board-size-increaser{
  padding:9px;
}
@media(max-width:680px){
  .board-size-increaser-row{
    grid-template-columns:38px 1fr 38px;
  }
  .board-size-step-btn{
    min-width:38px!important;
    height:38px!important;
  }
}


/* v175 reaction pop-up and seven-second random screen burst */
.board-reaction-options.board-reaction-options-floating,
.board-reaction-options.reaction-popup-open{
  display:none;
  position:fixed!important;
  z-index:17020!important;
  width:min(310px, calc(100vw - 24px))!important;
  max-height:min(460px, calc(100dvh - 120px));
  overflow:auto;
  padding:12px!important;
  border-radius:24px!important;
  background:rgba(255,255,255,.98)!important;
  border:1px solid rgba(7,89,133,.18)!important;
  box-shadow:0 34px 90px rgba(15,23,42,.28)!important;
  backdrop-filter:blur(18px)!important;
}
.board-reaction-options.active,
.board-reaction-options.reaction-popup-open.active{
  display:grid!important;
  gap:8px!important;
  animation:nbdsReactionPopupIn .18s ease-out both;
}
.board-reaction-options-head{
  display:grid;
  gap:3px;
  padding:4px 5px 10px;
  border-bottom:1px solid rgba(7,89,133,.12);
  margin-bottom:2px;
}
.board-reaction-options-head strong{
  color:#075985;
  font-weight:950;
  font-size:1rem;
}
.board-reaction-options-head small{
  color:#667085;
  font-weight:600;
  font-size:.75rem;
}
.board-reaction-options button[data-reaction]{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  min-height:42px!important;
  padding:10px 12px!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,#f8fafc,#eef6ff)!important;
  color:#075985!important;
  font-weight:950!important;
  border:1px solid rgba(14,165,233,.12)!important;
}
.board-reaction-options button[data-reaction]:hover{
  background:linear-gradient(135deg,#ecfdf3,#e0f2fe)!important;
  color:#067647!important;
  transform:translateY(-1px);
}
.board-reactions-screen-layer{
  position:fixed;
  inset:0;
  z-index:16500;
  pointer-events:none;
  overflow:hidden;
}
.board-reactions-screen-layer .floating-board-reaction{
  position:absolute;
}
.floating-board-reaction.reaction-seven-second-burst{
  animation-name:boardReactionSevenSecondFloat;
  animation-timing-function:ease-out;
  animation-fill-mode:forwards;
  transform:translate(-50%, -50%);
  will-change:transform, opacity;
}
@keyframes boardReactionSevenSecondFloat{
  0%{
    opacity:0;
    transform:translate(-50%, -50%) scale(.45) rotate(0deg);
  }
  10%{
    opacity:1;
    transform:translate(-50%, -70%) scale(1.18) rotate(0deg);
  }
  72%{
    opacity:.92;
  }
  100%{
    opacity:0;
    transform:translate(calc(-50% + var(--reaction-x, 0px)), calc(-50% + var(--reaction-y, -340px))) scale(var(--reaction-scale, 1.6)) rotate(var(--reaction-rotate, 0deg));
  }
}
@keyframes nbdsReactionPopupIn{
  from{opacity:0; transform:translateY(-8px) scale(.96);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
@media(max-width:620px){
  .board-reaction-options.board-reaction-options-floating,
  .board-reaction-options.reaction-popup-open{
    width:calc(100vw - 24px)!important;
  }
  .board-reaction-options button[data-reaction]{
    min-height:40px!important;
  }
}


/* v178 responsive all-device upgrade */
html{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
img, video, canvas, iframe{
  max-width:100%;
}
input, select, textarea, button{
  max-width:100%;
}
.container{
  width:min(1180px, 94vw);
}
.student-main,
.dashboard-main,
.whiteboard-panel,
.live-classroom-shell,
.live-classroom-grid,
.student-page,
.student-card,
.student-message-card,
.dashboard-panel,
.live-side-card,
.table-wrap{
  min-width:0;
}
.table-wrap,
.data-table-wrap,
.backend-record-table,
.result-table-wrap,
.payment-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:18px;
}
.table-wrap table,
.table-wrap .data-table,
.data-table{
  min-width:720px;
}
.data-table th,
.data-table td{
  vertical-align:top;
}
.student-card,
.student-message-card,
.dashboard-panel,
.live-class-card,
.live-empty-card,
.admin-control-quick-grid article,
.role-control-card,
.student-stat,
.stat,
.feature,
.register-card{
  overflow-wrap:anywhere;
}

/* Broad responsive grid normalization */
@media(max-width:1180px){
  .student-app-shell,
  .teacher-app-shell,
  .parent-app-shell,
  .admin-oriented-shell{
    grid-template-columns:270px minmax(0,1fr);
  }
  .admin-stat-grid,
  .admin-control-quick-grid,
  .student-stats-grid,
  .panel-grid,
  .features,
  .register-grid,
  .stats{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .admin-result-layout,
  .result-filter-board,
  .live-class-selector-panel,
  .portal-access,
  .hero-grid{
    grid-template-columns:1fr!important;
  }
  .student-cover,
  .student-cover.compact{
    padding:44px 34px!important;
    min-height:280px!important;
  }
  .student-cover h1,
  .student-cover.compact h1{
    font-size:clamp(2.4rem, 7vw, 4.5rem)!important;
    letter-spacing:-2px!important;
  }
}

/* Tablet and small laptop layout */
@media(max-width:1024px){
  .student-app-shell,
  .teacher-app-shell,
  .parent-app-shell,
  .admin-oriented-shell{
    display:block!important;
    min-height:auto!important;
  }
  .student-sidebar,
  .admin-oriented-sidebar,
  .parent-sidebar,
  .teacher-sidebar,
  .static-dashboard-sidebar{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    overflow:visible!important;
    border-right:0!important;
    border-bottom:1px solid var(--line)!important;
    border-radius:0!important;
    padding:14px 16px!important;
    z-index:10!important;
  }
  .student-brand{
    margin-bottom:12px!important;
  }
  .student-mini-profile{
    margin-bottom:12px!important;
  }
  .student-nav-group{
    display:flex!important;
    align-items:center!important;
    flex-wrap:nowrap!important;
    gap:8px!important;
    margin:10px 0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:2px 2px 10px!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:thin;
  }
  .student-nav-group p{
    flex:0 0 auto!important;
    margin:0 4px 0 0!important;
    white-space:nowrap!important;
    letter-spacing:.8px!important;
    font-size:.7rem!important;
    background:#f7fbf8!important;
    border:1px solid var(--line)!important;
    color:#667085!important;
    border-radius:999px!important;
    padding:8px 10px!important;
  }
  .student-nav-link,
  .student-logout{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    white-space:nowrap!important;
    margin:0!important;
    padding:11px 13px!important;
    border-radius:999px!important;
  }
  .student-nav-link span:not(.nav-icon),
  .student-logout span:not(.nav-icon){
    display:inline-flex!important;
  }
  .student-main,
  .parent-main{
    padding:18px!important;
  }
  .student-topbar{
    position:relative!important;
    top:auto!important;
    align-items:flex-start!important;
    flex-wrap:wrap!important;
  }
  .student-topbar > *{
    min-width:0;
  }
  .student-topbar strong{
    overflow-wrap:anywhere;
  }
  .student-page-head h1{
    font-size:clamp(1.85rem, 6vw, 3.2rem)!important;
    letter-spacing:-1px!important;
  }
  .student-profile-grid,
  .student-card-grid,
  .student-stats-grid,
  .role-control-grid,
  .student-visibility-grid,
  .backend-control-map,
  .admin-content-grid,
  .admin-metric-grid,
  .parent-child-grid,
  .teacher-metric-grid,
  .payment-summary-grid,
  .live-class-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .whiteboard-help{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .live-classroom-grid{
    grid-template-columns:1fr!important;
    padding:14px!important;
  }
  .live-classroom-header{
    align-items:flex-start!important;
    flex-wrap:wrap!important;
  }
  .participant-grid{
    grid-template-columns:repeat(auto-fit,minmax(120px,1fr))!important;
  }
}

/* Mobile layout */
@media(max-width:720px){
  .top-strip{
    display:none!important;
  }
  .navbar{
    height:auto!important;
    min-height:68px!important;
    padding:10px 0!important;
  }
  .brand{
    min-width:0!important;
  }
  .brand span{
    font-size:.95rem!important;
    line-height:1.12!important;
  }
  .brand-mark,
  .student-brand-mark{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
  }
  .nav-links.open{
    left:3vw!important;
    right:3vw!important;
    top:74px!important;
    max-height:calc(100dvh - 90px)!important;
    overflow:auto!important;
  }
  .hero{
    padding:38px 0 28px!important;
  }
  .hero h1{
    font-size:clamp(2.1rem, 11vw, 3.4rem)!important;
    line-height:1.02!important;
    letter-spacing:-1.4px!important;
  }
  .hero p,
  .student-cover p,
  .student-cover.compact p{
    font-size:1rem!important;
  }
  .hero-actions,
  .nav-actions,
  .live-header-actions{
    width:100%!important;
  }
  .hero-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .btn,
  .student-top-logout,
  .student-logout-top,
  .live-header-actions .btn,
  .live-header-actions a,
  .live-header-actions button{
    width:100%!important;
    justify-content:center!important;
  }
  .features,
  .register-grid,
  .stats,
  .panel-grid,
  .admin-stat-grid,
  .admin-control-quick-grid,
  .student-stats-grid,
  .student-card-grid,
  .student-profile-grid,
  .role-control-grid,
  .student-visibility-grid,
  .backend-control-map,
  .admin-content-grid,
  .admin-metric-grid,
  .parent-child-grid,
  .teacher-metric-grid,
  .payment-summary-grid,
  .live-class-grid,
  .whiteboard-help{
    grid-template-columns:1fr!important;
  }
  .student-main,
  .parent-main{
    padding:12px!important;
  }
  .student-topbar{
    padding:12px!important;
    border-radius:14px!important;
  }
  .student-cover,
  .student-cover.compact{
    padding:26px 18px!important;
    min-height:230px!important;
    margin-bottom:18px!important;
  }
  .student-cover h1,
  .student-cover.compact h1{
    font-size:clamp(2rem, 10vw, 3rem)!important;
    letter-spacing:-1px!important;
  }
  .student-card,
  .student-message-card,
  .student-stat,
  .dashboard-panel,
  .live-class-card,
  .live-empty-card,
  .live-side-card,
  .auth-card,
  .login-box{
    padding:16px!important;
    border-radius:16px!important;
  }
  .form-grid,
  .subject-registration-form,
  .student-submit-form,
  .live-access-form,
  .result-filter-board{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .form-group input,
  .form-group select,
  .form-group textarea,
  input,
  select,
  textarea{
    font-size:16px!important;
  }
  .table-wrap{
    margin-left:-2px!important;
    margin-right:-2px!important;
    padding-bottom:8px!important;
  }
  .table-wrap table,
  .table-wrap .data-table,
  .data-table{
    min-width:640px!important;
    font-size:.86rem!important;
  }
  .data-table th,
  .data-table td{
    padding:10px!important;
  }
  .live-classroom-header{
    padding:12px!important;
    position:relative!important;
  }
  .live-classroom-header h1{
    font-size:1.05rem!important;
    overflow-wrap:anywhere;
  }
  .live-classroom-grid{
    padding:8px!important;
    gap:10px!important;
  }
  .live-video-main,
  .live-video-main video{
    min-height:190px!important;
  }
  .whiteboard-toolbar{
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
    gap:7px!important;
    padding:9px!important;
  }
  .board-tool,
  .whiteboard-toolbar button,
  .board-control{
    flex:0 0 auto!important;
    min-height:38px!important;
    padding:8px 10px!important;
  }
  .board-tool-text{
    font-size:.76rem!important;
  }
  .whiteboard-stage{
    border-radius:16px!important;
  }
  #classWhiteboard{
    min-height:340px!important;
  }
  .board-size-dropdown,
  .board-reaction-options,
  .board-reaction-options.board-reaction-options-floating,
  .board-size-dropdown.dropdown-over-whiteboard{
    width:calc(100vw - 24px)!important;
    left:12px!important;
    right:12px!important;
    max-height:calc(100dvh - 110px)!important;
    overflow:auto!important;
  }
  .board-student-preview{
    max-width:45vw!important;
  }
}

/* Small phones */
@media(max-width:430px){
  .container{
    width:min(100% - 20px, 1180px)!important;
  }
  .student-sidebar{
    padding:12px 10px!important;
  }
  .student-brand{
    font-size:.92rem!important;
  }
  .student-mini-profile{
    padding:10px!important;
    gap:10px!important;
  }
  .student-avatar{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
  }
  .student-nav-link,
  .student-logout{
    padding:10px 11px!important;
    font-size:.86rem!important;
  }
  .nav-icon,
  .student-nav-link .nav-icon{
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
  }
  .student-page-head h1{
    font-size:1.75rem!important;
  }
  .student-card h2,
  .student-message-card strong{
    font-size:1rem!important;
  }
  .data-table{
    font-size:.8rem!important;
  }
  .live-side-card,
  .participant-tile{
    padding:12px!important;
  }
  #classWhiteboard{
    min-height:310px!important;
  }
  .whiteboard-help div{
    padding:10px!important;
    font-size:.82rem!important;
  }
}

/* Large-screen polish */
@media(min-width:1440px){
  .container{
    width:min(1320px, 92vw);
  }
  .student-main{
    padding:40px!important;
  }
  .student-app-shell,
  .teacher-app-shell,
  .parent-app-shell,
  .admin-oriented-shell{
    grid-template-columns:320px minmax(0,1fr);
  }
}


/* v179 CSS WORKING FIX - cache-busted responsive stylesheet */
:root{
  --nbds-css-working-fix:v179;
}
html,body{
  overflow-x:hidden!important;
}
body::before{
  content:"";
  display:none;
}
.student-dashboard-body,
.live-classroom-body{
  min-width:0!important;
}
.student-app-shell,
.teacher-app-shell,
.parent-app-shell,
.admin-oriented-shell,
.live-classroom-grid,
.hero-grid,
.portal-access,
.result-filter-board,
.admin-result-layout{
  max-width:100%!important;
}
.table-wrap{
  display:block!important;
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch!important;
}
@media(max-width:1024px){
  .student-app-shell,
  .teacher-app-shell,
  .parent-app-shell,
  .admin-oriented-shell{
    display:block!important;
    width:100%!important;
  }
  .student-sidebar,
  .admin-oriented-sidebar,
  .parent-sidebar,
  .teacher-sidebar,
  .static-dashboard-sidebar{
    width:100%!important;
    position:relative!important;
    height:auto!important;
    max-height:none!important;
  }
  .student-main,
  .parent-main{
    width:100%!important;
    padding:18px!important;
  }
}
@media(max-width:720px){
  .student-main,
  .parent-main{
    padding:12px!important;
  }
  .student-stats-grid,
  .student-card-grid,
  .student-profile-grid,
  .panel-grid,
  .admin-control-quick-grid,
  .admin-stat-grid,
  .features,
  .register-grid,
  .stats,
  .live-class-grid,
  .whiteboard-help{
    grid-template-columns:1fr!important;
  }
  .student-nav-group{
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .student-nav-link,
  .student-logout{
    white-space:nowrap!important;
  }
}


/* v180 mobile-only hamburger dashboard layout fix */
.nbds-mobile-sidebar-toggle,
.nbds-mobile-sidebar-backdrop{
  display:none;
}

@media(max-width:900px){
  body.nbds-mobile-dashboard-ready{
    overflow-x:hidden!important;
  }

  body.nbds-mobile-dashboard-ready .student-app-shell,
  body.nbds-mobile-dashboard-ready .teacher-app-shell,
  body.nbds-mobile-dashboard-ready .parent-app-shell,
  body.nbds-mobile-dashboard-ready .admin-oriented-shell{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-height:100dvh!important;
    overflow-x:hidden!important;
    background:#f8fbf9!important;
  }

  body.nbds-mobile-dashboard-ready .student-sidebar,
  body.nbds-mobile-dashboard-ready .admin-oriented-sidebar,
  body.nbds-mobile-dashboard-ready .parent-sidebar,
  body.nbds-mobile-dashboard-ready .teacher-sidebar,
  body.nbds-mobile-dashboard-ready .static-dashboard-sidebar{
    position:fixed!important;
    left:0!important;
    top:0!important;
    bottom:auto!important;
    width:min(86vw, 330px)!important;
    max-width:330px!important;
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:100dvh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:24000!important;
    transform:translateX(-112%)!important;
    transition:transform .24s ease!important;
    border-right:1px solid rgba(15,23,42,.10)!important;
    border-bottom:0!important;
    border-radius:0 24px 24px 0!important;
    box-shadow:28px 0 70px rgba(15,23,42,.25)!important;
    padding:72px 16px 22px!important;
    background:#ffffff!important;
    -webkit-overflow-scrolling:touch!important;
  }

  body.nbds-mobile-dashboard-ready.nbds-mobile-sidebar-open .student-sidebar,
  body.nbds-mobile-dashboard-ready .student-sidebar.nbds-mobile-open{
    transform:translateX(0)!important;
  }

  .nbds-mobile-sidebar-toggle{
    position:fixed!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    left:12px!important;
    top:12px!important;
    z-index:25050!important;
    min-width:92px!important;
    height:44px!important;
    padding:0 14px!important;
    border:0!important;
    border-radius:999px!important;
    background:linear-gradient(135deg,#08773f,#064d2a)!important;
    color:#fff!important;
    font-weight:950!important;
    box-shadow:0 14px 30px rgba(6,77,42,.28)!important;
    cursor:pointer!important;
  }
  .nbds-mobile-sidebar-toggle span{
    font-size:1.25rem!important;
    line-height:1!important;
  }
  .nbds-mobile-sidebar-toggle b{
    font-size:.9rem!important;
    letter-spacing:.2px!important;
  }
  body.nbds-mobile-sidebar-open .nbds-mobile-sidebar-toggle{
    background:#b42318!important;
  }
  body.nbds-mobile-sidebar-open .nbds-mobile-sidebar-toggle span{
    transform:rotate(90deg)!important;
  }

  .nbds-mobile-sidebar-backdrop{
    position:fixed!important;
    inset:0!important;
    display:none!important;
    z-index:23000!important;
    background:rgba(2,6,23,.48)!important;
    backdrop-filter:blur(3px)!important;
  }
  body.nbds-mobile-sidebar-open .nbds-mobile-sidebar-backdrop{
    display:block!important;
  }

  body.nbds-mobile-dashboard-ready .student-main,
  body.nbds-mobile-dashboard-ready .parent-main{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:10px 10px 20px!important;
    overflow-x:hidden!important;
  }

  body.nbds-mobile-dashboard-ready .student-topbar{
    width:100%!important;
    min-height:64px!important;
    padding:12px 12px 12px 116px!important;
    margin:0 0 12px!important;
    border-radius:0 0 18px 18px!important;
    position:sticky!important;
    top:0!important;
    z-index:80!important;
    box-shadow:0 10px 28px rgba(15,23,42,.08)!important;
  }
  body.nbds-mobile-dashboard-ready .student-topbar small{
    font-size:.62rem!important;
    letter-spacing:1px!important;
  }
  body.nbds-mobile-dashboard-ready .student-topbar strong{
    font-size:1rem!important;
    line-height:1.15!important;
  }

  body.nbds-mobile-dashboard-ready .student-brand{
    margin-bottom:14px!important;
  }
  body.nbds-mobile-dashboard-ready .student-mini-profile{
    margin-bottom:14px!important;
  }
  body.nbds-mobile-dashboard-ready .student-nav-group{
    display:block!important;
    overflow:visible!important;
    padding:0!important;
    margin:18px 0!important;
  }
  body.nbds-mobile-dashboard-ready .student-nav-group p{
    display:block!important;
    margin:0 0 8px 6px!important;
    background:transparent!important;
    border:0!important;
    padding:0!important;
    border-radius:0!important;
    color:#8a96a8!important;
    letter-spacing:2px!important;
  }
  body.nbds-mobile-dashboard-ready .student-nav-link,
  body.nbds-mobile-dashboard-ready .student-logout{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    white-space:normal!important;
    margin:4px 0!important;
    padding:13px 14px!important;
    border-radius:14px!important;
  }
  body.nbds-mobile-dashboard-ready .student-nav-link span:not(.nav-icon),
  body.nbds-mobile-dashboard-ready .student-logout span:not(.nav-icon){
    display:inline-flex!important;
  }

  body.nbds-mobile-dashboard-ready .student-cover,
  body.nbds-mobile-dashboard-ready .student-cover.compact{
    width:100%!important;
    max-width:100%!important;
    min-height:210px!important;
    padding:26px 18px!important;
    margin:0 0 14px!important;
    border-radius:18px!important;
  }
  body.nbds-mobile-dashboard-ready .student-cover h1,
  body.nbds-mobile-dashboard-ready .student-cover.compact h1{
    font-size:clamp(1.85rem, 10vw, 3rem)!important;
    line-height:1.02!important;
    letter-spacing:-1px!important;
    max-width:100%!important;
  }
  body.nbds-mobile-dashboard-ready .student-cover p,
  body.nbds-mobile-dashboard-ready .student-cover.compact p{
    font-size:.95rem!important;
    max-width:100%!important;
  }

  body.nbds-mobile-dashboard-ready .student-stats-grid,
  body.nbds-mobile-dashboard-ready .student-card-grid,
  body.nbds-mobile-dashboard-ready .student-profile-grid,
  body.nbds-mobile-dashboard-ready .admin-stat-grid,
  body.nbds-mobile-dashboard-ready .admin-control-quick-grid,
  body.nbds-mobile-dashboard-ready .role-control-grid,
  body.nbds-mobile-dashboard-ready .parent-child-grid,
  body.nbds-mobile-dashboard-ready .teacher-metric-grid,
  body.nbds-mobile-dashboard-ready .payment-summary-grid,
  body.nbds-mobile-dashboard-ready .panel-grid,
  body.nbds-mobile-dashboard-ready .live-class-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  body.nbds-mobile-dashboard-ready .student-card,
  body.nbds-mobile-dashboard-ready .student-message-card,
  body.nbds-mobile-dashboard-ready .student-stat,
  body.nbds-mobile-dashboard-ready .dashboard-panel,
  body.nbds-mobile-dashboard-ready .live-class-card,
  body.nbds-mobile-dashboard-ready .live-empty-card,
  body.nbds-mobile-dashboard-ready .admin-control-quick-grid article,
  body.nbds-mobile-dashboard-ready .role-control-card{
    padding:16px!important;
    border-radius:18px!important;
    width:100%!important;
    max-width:100%!important;
  }

  body.nbds-mobile-dashboard-ready .table-wrap,
  body.nbds-mobile-dashboard-ready .result-table-wrap,
  body.nbds-mobile-dashboard-ready .payment-table-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }

  body.nbds-mobile-dashboard-ready .data-table,
  body.nbds-mobile-dashboard-ready table{
    min-width:620px!important;
  }
}

@media(max-width:420px){
  .nbds-mobile-sidebar-toggle{
    min-width:82px!important;
    height:40px!important;
    left:10px!important;
    top:10px!important;
    padding:0 11px!important;
  }
  .nbds-mobile-sidebar-toggle b{
    font-size:.82rem!important;
  }
  body.nbds-mobile-dashboard-ready .student-topbar{
    padding-left:102px!important;
    min-height:58px!important;
  }
  body.nbds-mobile-dashboard-ready .student-main,
  body.nbds-mobile-dashboard-ready .parent-main{
    padding-left:8px!important;
    padding-right:8px!important;
  }
  body.nbds-mobile-dashboard-ready .student-sidebar{
    width:min(90vw, 315px)!important;
  }
}


/* v181 all-users hamburger control panel / widescreen dashboard */
.nbds-dashboard-drawer-ready{
  overflow-x:hidden!important;
}
.nbds-dashboard-drawer-ready .student-app-shell,
.nbds-dashboard-drawer-ready .teacher-app-shell,
.nbds-dashboard-drawer-ready .parent-app-shell,
.nbds-dashboard-drawer-ready .admin-oriented-shell{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-height:100dvh!important;
  overflow-x:hidden!important;
  background:#f8fbf9!important;
}
.nbds-dashboard-drawer-ready .student-sidebar,
.nbds-dashboard-drawer-ready .admin-oriented-sidebar,
.nbds-dashboard-drawer-ready .parent-sidebar,
.nbds-dashboard-drawer-ready .teacher-sidebar,
.nbds-dashboard-drawer-ready .static-dashboard-sidebar{
  position:fixed!important;
  left:0!important;
  top:0!important;
  bottom:0!important;
  width:min(84vw, 340px)!important;
  max-width:340px!important;
  height:100dvh!important;
  max-height:100dvh!important;
  min-height:100dvh!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  z-index:24000!important;
  transform:translateX(-112%)!important;
  transition:transform .24s ease!important;
  border-right:1px solid rgba(15,23,42,.10)!important;
  border-bottom:0!important;
  border-radius:0 26px 26px 0!important;
  box-shadow:30px 0 80px rgba(15,23,42,.26)!important;
  padding:76px 18px 24px!important;
  background:#ffffff!important;
  -webkit-overflow-scrolling:touch!important;
}
.nbds-dashboard-drawer-ready.nbds-dashboard-drawer-open .student-sidebar,
.nbds-dashboard-drawer-ready .student-sidebar.nbds-dashboard-drawer-open-panel,
.nbds-dashboard-drawer-ready .student-sidebar.nbds-mobile-open{
  transform:translateX(0)!important;
}
.nbds-dashboard-drawer-toggle,
.nbds-mobile-sidebar-toggle{
  position:fixed!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  left:14px!important;
  top:14px!important;
  z-index:25050!important;
  min-width:96px!important;
  height:46px!important;
  padding:0 15px!important;
  border:0!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,#08773f,#064d2a)!important;
  color:#fff!important;
  font-weight:950!important;
  box-shadow:0 14px 32px rgba(6,77,42,.28)!important;
  cursor:pointer!important;
}
.nbds-dashboard-drawer-toggle span,
.nbds-mobile-sidebar-toggle span{
  font-size:1.28rem!important;
  line-height:1!important;
}
.nbds-dashboard-drawer-toggle b,
.nbds-mobile-sidebar-toggle b{
  font-size:.9rem!important;
  letter-spacing:.2px!important;
}
.nbds-dashboard-drawer-open .nbds-dashboard-drawer-toggle,
.nbds-mobile-sidebar-open .nbds-mobile-sidebar-toggle{
  background:#b42318!important;
}
.nbds-dashboard-drawer-backdrop,
.nbds-mobile-sidebar-backdrop{
  position:fixed!important;
  inset:0!important;
  display:none!important;
  z-index:23000!important;
  background:rgba(2,6,23,.48)!important;
  backdrop-filter:blur(3px)!important;
}
.nbds-dashboard-drawer-open .nbds-dashboard-drawer-backdrop,
.nbds-mobile-sidebar-open .nbds-mobile-sidebar-backdrop{
  display:block!important;
}
.nbds-dashboard-drawer-ready .student-main,
.nbds-dashboard-drawer-ready .parent-main{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:18px 24px 34px!important;
  overflow-x:hidden!important;
}
.nbds-dashboard-drawer-ready .student-topbar{
  width:100%!important;
  min-height:70px!important;
  padding:14px 18px 14px 128px!important;
  margin:0 0 18px!important;
  border-radius:0 0 20px 20px!important;
  position:sticky!important;
  top:0!important;
  z-index:80!important;
  box-shadow:0 10px 28px rgba(15,23,42,.08)!important;
}
.nbds-dashboard-drawer-ready .student-sidebar .student-nav-group{
  display:block!important;
  overflow:visible!important;
  padding:0!important;
  margin:18px 0!important;
}
.nbds-dashboard-drawer-ready .student-sidebar .student-nav-group p{
  display:block!important;
  margin:0 0 8px 6px!important;
  background:transparent!important;
  border:0!important;
  padding:0!important;
  color:#8a96a8!important;
  letter-spacing:2px!important;
}
.nbds-dashboard-drawer-ready .student-sidebar .student-nav-link,
.nbds-dashboard-drawer-ready .student-sidebar .student-logout{
  width:100%!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  white-space:normal!important;
  margin:4px 0!important;
  padding:13px 14px!important;
  border-radius:14px!important;
}
.nbds-dashboard-drawer-ready .student-cover,
.nbds-dashboard-drawer-ready .student-cover.compact{
  border-radius:22px!important;
  width:100%!important;
  max-width:100%!important;
}
.nbds-dashboard-drawer-ready .student-page,
.nbds-dashboard-drawer-ready .student-card,
.nbds-dashboard-drawer-ready .student-message-card,
.nbds-dashboard-drawer-ready .student-stat,
.nbds-dashboard-drawer-ready .dashboard-panel,
.nbds-dashboard-drawer-ready .live-class-card,
.nbds-dashboard-drawer-ready .live-empty-card{
  max-width:100%!important;
}
.nbds-dashboard-drawer-ready .table-wrap,
.nbds-dashboard-drawer-ready .result-table-wrap,
.nbds-dashboard-drawer-ready .payment-table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch!important;
}
@media(min-width:1200px){
  .nbds-dashboard-drawer-ready .student-main,
  .nbds-dashboard-drawer-ready .parent-main{
    padding-left:34px!important;
    padding-right:34px!important;
  }
  .nbds-dashboard-drawer-ready .student-card-grid,
  .nbds-dashboard-drawer-ready .student-stats-grid{
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr))!important;
  }
}
@media(max-width:900px){
  .nbds-dashboard-drawer-ready .student-main,
  .nbds-dashboard-drawer-ready .parent-main{
    padding:10px 10px 20px!important;
  }
  .nbds-dashboard-drawer-ready .student-topbar{
    padding:12px 12px 12px 116px!important;
    min-height:64px!important;
  }
  .nbds-dashboard-drawer-ready .student-cover,
  .nbds-dashboard-drawer-ready .student-cover.compact{
    padding:26px 18px!important;
    min-height:210px!important;
    margin:0 0 14px!important;
    border-radius:18px!important;
  }
  .nbds-dashboard-drawer-ready .student-cover h1,
  .nbds-dashboard-drawer-ready .student-cover.compact h1{
    font-size:clamp(1.85rem, 10vw, 3rem)!important;
    line-height:1.02!important;
    letter-spacing:-1px!important;
  }
  .nbds-dashboard-drawer-ready .student-stats-grid,
  .nbds-dashboard-drawer-ready .student-card-grid,
  .nbds-dashboard-drawer-ready .student-profile-grid,
  .nbds-dashboard-drawer-ready .admin-stat-grid,
  .nbds-dashboard-drawer-ready .admin-control-quick-grid,
  .nbds-dashboard-drawer-ready .role-control-grid,
  .nbds-dashboard-drawer-ready .parent-child-grid,
  .nbds-dashboard-drawer-ready .teacher-metric-grid,
  .nbds-dashboard-drawer-ready .payment-summary-grid,
  .nbds-dashboard-drawer-ready .panel-grid,
  .nbds-dashboard-drawer-ready .live-class-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
}
@media(max-width:430px){
  .nbds-dashboard-drawer-toggle,
  .nbds-mobile-sidebar-toggle{
    min-width:82px!important;
    height:40px!important;
    left:10px!important;
    top:10px!important;
    padding:0 11px!important;
  }
  .nbds-dashboard-drawer-ready .student-topbar{
    padding-left:102px!important;
    min-height:58px!important;
  }
  .nbds-dashboard-drawer-ready .student-sidebar{
    width:min(90vw, 315px)!important;
  }
}


/* v182 visible hamburger fallback for core controls */
body.nbds-dashboard-drawer-ready .nbds-mobile-sidebar-toggle,
body.nbds-dashboard-drawer-ready .nbds-dashboard-drawer-toggle,
.nbds-dashboard-drawer-ready .nbds-mobile-sidebar-toggle,
.nbds-dashboard-drawer-ready .nbds-dashboard-drawer-toggle{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
}
body.nbds-dashboard-drawer-ready .student-app-shell{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
}
body.nbds-dashboard-drawer-ready .student-sidebar{
  position:fixed!important;
  transform:translateX(-112%)!important;
  left:0!important;
  top:0!important;
  height:100dvh!important;
  z-index:24000!important;
}
body.nbds-dashboard-drawer-ready.nbds-dashboard-drawer-open .student-sidebar,
body.nbds-dashboard-drawer-ready .student-sidebar.nbds-dashboard-drawer-open-panel{
  transform:translateX(0)!important;
}
body.nbds-dashboard-drawer-ready .student-main,
body.nbds-dashboard-drawer-ready .parent-main{
  width:100%!important;
  max-width:100%!important;
}
body.nbds-dashboard-drawer-ready .student-topbar{
  padding-left:128px!important;
}
@media(max-width:900px){
  body.nbds-dashboard-drawer-ready .student-topbar{padding-left:116px!important;}
}
@media(max-width:430px){
  body.nbds-dashboard-drawer-ready .student-topbar{padding-left:102px!important;}
}


/* v183 mobile-only hamburger: desktop/laptop keeps normal sidebar */
@media(min-width:901px){
  body.nbds-dashboard-drawer-ready,
  body.nbds-mobile-dashboard-ready{overflow-x:auto!important;}

  body.nbds-dashboard-drawer-ready .student-app-shell,
  body.nbds-mobile-dashboard-ready .student-app-shell,
  body.nbds-dashboard-drawer-ready .teacher-app-shell,
  body.nbds-mobile-dashboard-ready .teacher-app-shell,
  body.nbds-dashboard-drawer-ready .parent-app-shell,
  body.nbds-mobile-dashboard-ready .parent-app-shell,
  body.nbds-dashboard-drawer-ready .admin-oriented-shell,
  body.nbds-mobile-dashboard-ready .admin-oriented-shell{
    display:grid!important;
    grid-template-columns:310px minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
    min-height:100vh!important;
    background:#f8fbf9!important;
  }

  body.nbds-dashboard-drawer-ready .student-sidebar,
  body.nbds-mobile-dashboard-ready .student-sidebar,
  body.nbds-dashboard-drawer-ready .admin-oriented-sidebar,
  body.nbds-mobile-dashboard-ready .admin-oriented-sidebar,
  body.nbds-dashboard-drawer-ready .parent-sidebar,
  body.nbds-mobile-dashboard-ready .parent-sidebar,
  body.nbds-dashboard-drawer-ready .teacher-sidebar,
  body.nbds-mobile-dashboard-ready .teacher-sidebar,
  body.nbds-dashboard-drawer-ready .static-dashboard-sidebar,
  body.nbds-mobile-dashboard-ready .static-dashboard-sidebar{
    position:sticky!important;
    left:auto!important;
    right:auto!important;
    top:0!important;
    bottom:auto!important;
    width:auto!important;
    max-width:none!important;
    height:100vh!important;
    max-height:100vh!important;
    min-height:100vh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:10!important;
    transform:none!important;
    transition:none!important;
    border-radius:0!important;
    border-right:1px solid var(--line)!important;
    border-bottom:0!important;
    box-shadow:none!important;
    padding:26px 18px!important;
    background:#ffffff!important;
    visibility:visible!important;
    opacity:1!important;
  }

  body.nbds-dashboard-drawer-ready .student-main,
  body.nbds-mobile-dashboard-ready .student-main,
  body.nbds-dashboard-drawer-ready .parent-main,
  body.nbds-mobile-dashboard-ready .parent-main{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:34px!important;
    overflow:hidden!important;
  }

  body.nbds-dashboard-drawer-ready .student-topbar,
  body.nbds-mobile-dashboard-ready .student-topbar{
    padding:14px 18px!important;
    margin-bottom:18px!important;
    border-radius:18px!important;
    position:sticky!important;
    top:0!important;
    z-index:8!important;
  }

  body.nbds-dashboard-drawer-ready .student-sidebar .student-nav-group,
  body.nbds-mobile-dashboard-ready .student-sidebar .student-nav-group{
    display:block!important;
    overflow:visible!important;
    padding:0!important;
    margin:20px 0!important;
  }

  body.nbds-dashboard-drawer-ready .student-sidebar .student-nav-group p,
  body.nbds-mobile-dashboard-ready .student-sidebar .student-nav-group p{
    display:block!important;
    margin:0 0 10px 8px!important;
    background:transparent!important;
    border:0!important;
    padding:0!important;
    border-radius:0!important;
    color:#8a96a8!important;
    letter-spacing:2px!important;
  }

  body.nbds-dashboard-drawer-ready .student-sidebar .student-nav-link,
  body.nbds-mobile-dashboard-ready .student-sidebar .student-nav-link,
  body.nbds-dashboard-drawer-ready .student-sidebar .student-logout,
  body.nbds-mobile-dashboard-ready .student-sidebar .student-logout{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    white-space:normal!important;
    margin:4px 0!important;
    padding:14px 16px!important;
    border-radius:14px!important;
  }

  .nbds-mobile-sidebar-toggle,
  .nbds-dashboard-drawer-toggle,
  .nbds-mobile-sidebar-backdrop,
  .nbds-dashboard-drawer-backdrop,
  #nbdsMobileSidebarToggle,
  #nbdsMobileSidebarBackdrop{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }
}

/* v183: hamburger drawer remains active only for tablet/mobile */
@media(max-width:900px){
  .nbds-mobile-sidebar-toggle,
  .nbds-dashboard-drawer-toggle,
  #nbdsMobileSidebarToggle{
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  body.nbds-dashboard-drawer-ready .student-app-shell,
  body.nbds-mobile-dashboard-ready .student-app-shell,
  body.nbds-dashboard-drawer-ready .teacher-app-shell,
  body.nbds-mobile-dashboard-ready .teacher-app-shell,
  body.nbds-dashboard-drawer-ready .parent-app-shell,
  body.nbds-mobile-dashboard-ready .parent-app-shell,
  body.nbds-dashboard-drawer-ready .admin-oriented-shell,
  body.nbds-mobile-dashboard-ready .admin-oriented-shell{
    display:block!important;
    grid-template-columns:none!important;
  }
}


/* v184 FINAL: mobile-only consistent hamburger; desktop/laptop normal */
@media(min-width:901px){
  html,body{
    overflow-x:auto!important;
  }
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-backdrop,
  body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready #nbdsMobileSidebarBackdrop{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }
  body.nbds-dashboard-ready .student-app-shell,
  body.nbds-dashboard-ready .teacher-app-shell,
  body.nbds-dashboard-ready .parent-app-shell,
  body.nbds-dashboard-ready .admin-oriented-shell{
    display:grid!important;
    grid-template-columns:310px minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
    min-height:100vh!important;
    background:#f8fbf9!important;
  }
  body.nbds-dashboard-ready .student-sidebar,
  body.nbds-dashboard-ready .admin-oriented-sidebar,
  body.nbds-dashboard-ready .parent-sidebar,
  body.nbds-dashboard-ready .teacher-sidebar,
  body.nbds-dashboard-ready .static-dashboard-sidebar{
    position:sticky!important;
    left:auto!important;
    right:auto!important;
    top:0!important;
    bottom:auto!important;
    width:auto!important;
    max-width:none!important;
    height:100vh!important;
    max-height:100vh!important;
    min-height:100vh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:10!important;
    transform:none!important;
    transition:none!important;
    border-radius:0!important;
    border-right:1px solid var(--line)!important;
    border-bottom:0!important;
    box-shadow:none!important;
    padding:26px 18px!important;
    background:#ffffff!important;
    visibility:visible!important;
    opacity:1!important;
  }
  body.nbds-dashboard-ready .student-main,
  body.nbds-dashboard-ready .parent-main{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:34px!important;
    overflow:hidden!important;
  }
  body.nbds-dashboard-ready .student-topbar{
    padding:14px 18px!important;
    margin-bottom:18px!important;
    border-radius:18px!important;
    position:sticky!important;
    top:0!important;
    z-index:8!important;
  }
  body.nbds-dashboard-ready .student-sidebar .student-nav-group{
    display:block!important;
    overflow:visible!important;
    padding:0!important;
    margin:20px 0!important;
  }
  body.nbds-dashboard-ready .student-sidebar .student-nav-group p{
    display:block!important;
    margin:0 0 10px 8px!important;
    background:transparent!important;
    border:0!important;
    padding:0!important;
    border-radius:0!important;
    color:#8a96a8!important;
    letter-spacing:2px!important;
  }
  body.nbds-dashboard-ready .student-sidebar .student-nav-link,
  body.nbds-dashboard-ready .student-sidebar .student-logout{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    white-space:normal!important;
    margin:4px 0!important;
    padding:14px 16px!important;
    border-radius:14px!important;
  }
}
@media(max-width:900px){
  html,body{
    overflow-x:hidden!important;
  }
  body.nbds-dashboard-ready .student-app-shell,
  body.nbds-dashboard-ready .teacher-app-shell,
  body.nbds-dashboard-ready .parent-app-shell,
  body.nbds-dashboard-ready .admin-oriented-shell{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-height:100dvh!important;
    overflow-x:hidden!important;
    background:#f8fbf9!important;
  }
  body.nbds-dashboard-ready .student-sidebar,
  body.nbds-dashboard-ready .admin-oriented-sidebar,
  body.nbds-dashboard-ready .parent-sidebar,
  body.nbds-dashboard-ready .teacher-sidebar,
  body.nbds-dashboard-ready .static-dashboard-sidebar{
    position:fixed!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:min(88vw,330px)!important;
    max-width:330px!important;
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:100dvh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:24000!important;
    transform:translateX(-115%)!important;
    transition:transform .24s ease!important;
    border-radius:0 24px 24px 0!important;
    border-right:1px solid rgba(15,23,42,.10)!important;
    box-shadow:30px 0 80px rgba(15,23,42,.28)!important;
    padding:76px 16px 24px!important;
    background:#ffffff!important;
    visibility:visible!important;
    opacity:1!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .student-sidebar,
  body.nbds-dashboard-ready .student-sidebar.nbds-dashboard-drawer-open-panel,
  body.nbds-dashboard-ready .student-sidebar.nbds-mobile-open{
    transform:translateX(0)!important;
  }
  body.nbds-dashboard-ready .student-main,
  body.nbds-dashboard-ready .parent-main{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:10px 10px 20px!important;
    overflow-x:hidden!important;
  }
  body.nbds-dashboard-ready .student-topbar{
    width:100%!important;
    min-height:64px!important;
    padding:12px 12px 12px 116px!important;
    margin:0 0 12px!important;
    border-radius:0 0 18px 18px!important;
    position:sticky!important;
    top:0!important;
    z-index:80!important;
    box-shadow:0 10px 28px rgba(15,23,42,.08)!important;
  }
  body.nbds-dashboard-ready .student-sidebar .student-nav-group{
    display:block!important;
    overflow:visible!important;
    padding:0!important;
    margin:18px 0!important;
  }
  body.nbds-dashboard-ready .student-sidebar .student-nav-group p{
    display:block!important;
    margin:0 0 8px 6px!important;
    background:transparent!important;
    border:0!important;
    padding:0!important;
    color:#8a96a8!important;
    letter-spacing:2px!important;
  }
  body.nbds-dashboard-ready .student-sidebar .student-nav-link,
  body.nbds-dashboard-ready .student-sidebar .student-logout{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    white-space:normal!important;
    margin:4px 0!important;
    padding:13px 14px!important;
    border-radius:14px!important;
  }
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle,
  body.nbds-dashboard-ready #nbdsMobileSidebarToggle{
    position:fixed!important;
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    left:12px!important;
    top:12px!important;
    z-index:25050!important;
    min-width:92px!important;
    height:44px!important;
    padding:0 14px!important;
    border:0!important;
    border-radius:999px!important;
    background:linear-gradient(135deg,#08773f,#064d2a)!important;
    color:#fff!important;
    font-weight:950!important;
    box-shadow:0 14px 32px rgba(6,77,42,.28)!important;
    cursor:pointer!important;
  }
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-dashboard-drawer-toggle,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarToggle{
    background:#b42318!important;
  }
  body.nbds-dashboard-ready .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-backdrop,
  body.nbds-dashboard-ready #nbdsMobileSidebarBackdrop{
    position:fixed!important;
    inset:0!important;
    display:none!important;
    z-index:23000!important;
    background:rgba(2,6,23,.48)!important;
    backdrop-filter:blur(3px)!important;
  }
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-dashboard-drawer-backdrop,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarBackdrop{
    display:block!important;
  }
  body.nbds-dashboard-ready .student-cover,
  body.nbds-dashboard-ready .student-cover.compact{
    padding:26px 18px!important;
    min-height:210px!important;
    margin:0 0 14px!important;
    border-radius:18px!important;
  }
  body.nbds-dashboard-ready .student-cover h1,
  body.nbds-dashboard-ready .student-cover.compact h1{
    font-size:clamp(1.85rem,10vw,3rem)!important;
    line-height:1.02!important;
    letter-spacing:-1px!important;
  }
  body.nbds-dashboard-ready .student-stats-grid,
  body.nbds-dashboard-ready .student-card-grid,
  body.nbds-dashboard-ready .student-profile-grid,
  body.nbds-dashboard-ready .admin-stat-grid,
  body.nbds-dashboard-ready .admin-control-quick-grid,
  body.nbds-dashboard-ready .role-control-grid,
  body.nbds-dashboard-ready .parent-child-grid,
  body.nbds-dashboard-ready .teacher-metric-grid,
  body.nbds-dashboard-ready .payment-summary-grid,
  body.nbds-dashboard-ready .panel-grid,
  body.nbds-dashboard-ready .live-class-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
}
@media(max-width:430px){
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle,
  body.nbds-dashboard-ready #nbdsMobileSidebarToggle{
    min-width:82px!important;
    height:40px!important;
    left:10px!important;
    top:10px!important;
    padding:0 11px!important;
  }
  body.nbds-dashboard-ready .student-topbar{
    padding-left:102px!important;
    min-height:58px!important;
  }
  body.nbds-dashboard-ready .student-sidebar{
    width:min(90vw,315px)!important;
  }
}


/* v185 FINAL PERSISTENT FIX: hamburger must stay on every mobile dashboard page */
@media(min-width:901px){
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle,
  body.nbds-dashboard-ready .nbds-persistent-mobile-menu-toggle,
  body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-backdrop,
  body.nbds-dashboard-ready #nbdsMobileSidebarBackdrop{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  body.nbds-dashboard-ready .student-app-shell,
  body.nbds-dashboard-ready .teacher-app-shell,
  body.nbds-dashboard-ready .parent-app-shell,
  body.nbds-dashboard-ready .admin-oriented-shell{
    display:grid!important;
    grid-template-columns:310px minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
    min-height:100vh!important;
    background:#f8fbf9!important;
  }

  body.nbds-dashboard-ready .student-sidebar,
  body.nbds-dashboard-ready .admin-oriented-sidebar,
  body.nbds-dashboard-ready .parent-sidebar,
  body.nbds-dashboard-ready .teacher-sidebar,
  body.nbds-dashboard-ready .static-dashboard-sidebar{
    position:sticky!important;
    left:auto!important;
    right:auto!important;
    top:0!important;
    bottom:auto!important;
    width:auto!important;
    max-width:none!important;
    height:100vh!important;
    max-height:100vh!important;
    min-height:100vh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:10!important;
    transform:none!important;
    transition:none!important;
    border-radius:0!important;
    border-right:1px solid var(--line)!important;
    border-bottom:0!important;
    box-shadow:none!important;
    padding:26px 18px!important;
    background:#ffffff!important;
    visibility:visible!important;
    opacity:1!important;
  }

  body.nbds-dashboard-ready .student-main,
  body.nbds-dashboard-ready .parent-main{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:34px!important;
    overflow:hidden!important;
  }

  body.nbds-dashboard-ready .student-topbar{
    padding:14px 18px!important;
    margin-bottom:18px!important;
    border-radius:18px!important;
    position:sticky!important;
    top:0!important;
    z-index:8!important;
  }
}

@media(max-width:900px){
  html,body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  body.nbds-dashboard-ready .student-app-shell,
  body.nbds-dashboard-ready .teacher-app-shell,
  body.nbds-dashboard-ready .parent-app-shell,
  body.nbds-dashboard-ready .admin-oriented-shell{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-height:100dvh!important;
    overflow-x:hidden!important;
    background:#f8fbf9!important;
  }

  body.nbds-dashboard-ready .student-sidebar,
  body.nbds-dashboard-ready .admin-oriented-sidebar,
  body.nbds-dashboard-ready .parent-sidebar,
  body.nbds-dashboard-ready .teacher-sidebar,
  body.nbds-dashboard-ready .static-dashboard-sidebar{
    position:fixed!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:min(88vw,330px)!important;
    max-width:330px!important;
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:100dvh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:2147482000!important;
    transform:translateX(-115%)!important;
    transition:transform .24s ease!important;
    border-radius:0 24px 24px 0!important;
    border-right:1px solid rgba(15,23,42,.10)!important;
    box-shadow:30px 0 80px rgba(15,23,42,.28)!important;
    padding:76px 16px 24px!important;
    background:#ffffff!important;
    visibility:visible!important;
    opacity:1!important;
    -webkit-overflow-scrolling:touch!important;
  }

  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .student-sidebar,
  body.nbds-dashboard-ready .student-sidebar.nbds-dashboard-drawer-open-panel,
  body.nbds-dashboard-ready .student-sidebar.nbds-mobile-open{
    transform:translateX(0)!important;
  }

  body.nbds-dashboard-ready .student-main,
  body.nbds-dashboard-ready .parent-main{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:10px 10px 20px!important;
    overflow-x:hidden!important;
  }

  body.nbds-dashboard-ready .student-topbar{
    width:100%!important;
    min-height:64px!important;
    padding:12px 12px 12px 116px!important;
    margin:0 0 12px!important;
    border-radius:0 0 18px 18px!important;
    position:sticky!important;
    top:0!important;
    z-index:80!important;
    box-shadow:0 10px 28px rgba(15,23,42,.08)!important;
  }

  body.nbds-dashboard-ready .student-sidebar .student-nav-group{
    display:block!important;
    overflow:visible!important;
    padding:0!important;
    margin:18px 0!important;
  }

  body.nbds-dashboard-ready .student-sidebar .student-nav-group p{
    display:block!important;
    margin:0 0 8px 6px!important;
    background:transparent!important;
    border:0!important;
    padding:0!important;
    color:#8a96a8!important;
    letter-spacing:2px!important;
  }

  body.nbds-dashboard-ready .student-sidebar .student-nav-link,
  body.nbds-dashboard-ready .student-sidebar .student-logout{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    white-space:normal!important;
    margin:4px 0!important;
    padding:13px 14px!important;
    border-radius:14px!important;
  }

  body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle,
  body.nbds-dashboard-ready .nbds-persistent-mobile-menu-toggle{
    position:fixed!important;
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    left:12px!important;
    top:12px!important;
    z-index:2147483000!important;
    min-width:92px!important;
    height:44px!important;
    padding:0 14px!important;
    border:0!important;
    border-radius:999px!important;
    background:linear-gradient(135deg,#08773f,#064d2a)!important;
    color:#fff!important;
    font-weight:950!important;
    font-family:'Montserrat','Segoe UI',Roboto,Arial,sans-serif!important;
    line-height:1!important;
    box-shadow:0 14px 32px rgba(6,77,42,.28)!important;
    cursor:pointer!important;
  }

  body.nbds-dashboard-ready #nbdsMobileSidebarToggle span,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle span{
    font-size:1.25rem!important;
    line-height:1!important;
  }

  body.nbds-dashboard-ready #nbdsMobileSidebarToggle b,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle b{
    display:inline!important;
    color:#fff!important;
    font-size:.88rem!important;
    line-height:1!important;
  }

  body.nbds-dashboard-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-mobile-sidebar-toggle{
    background:#b42318!important;
  }

  body.nbds-dashboard-ready #nbdsMobileSidebarBackdrop,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-backdrop,
  body.nbds-dashboard-ready .nbds-persistent-mobile-menu-backdrop{
    position:fixed!important;
    inset:0!important;
    display:none!important;
    z-index:2147481000!important;
    background:rgba(2,6,23,.48)!important;
    backdrop-filter:blur(3px)!important;
  }

  body.nbds-dashboard-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarBackdrop,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-mobile-sidebar-backdrop{
    display:block!important;
  }

  body.nbds-dashboard-ready .student-cover,
  body.nbds-dashboard-ready .student-cover.compact{
    padding:26px 18px!important;
    min-height:210px!important;
    margin:0 0 14px!important;
    border-radius:18px!important;
  }

  body.nbds-dashboard-ready .student-cover h1,
  body.nbds-dashboard-ready .student-cover.compact h1{
    font-size:clamp(1.85rem,10vw,3rem)!important;
    line-height:1.02!important;
    letter-spacing:-1px!important;
  }

  body.nbds-dashboard-ready .student-stats-grid,
  body.nbds-dashboard-ready .student-card-grid,
  body.nbds-dashboard-ready .student-profile-grid,
  body.nbds-dashboard-ready .admin-stat-grid,
  body.nbds-dashboard-ready .admin-control-quick-grid,
  body.nbds-dashboard-ready .role-control-grid,
  body.nbds-dashboard-ready .parent-child-grid,
  body.nbds-dashboard-ready .teacher-metric-grid,
  body.nbds-dashboard-ready .payment-summary-grid,
  body.nbds-dashboard-ready .panel-grid,
  body.nbds-dashboard-ready .live-class-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
}

@media(max-width:430px){
  body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle{
    min-width:82px!important;
    height:40px!important;
    left:10px!important;
    top:10px!important;
    padding:0 11px!important;
  }
  body.nbds-dashboard-ready .student-topbar{
    padding-left:102px!important;
    min-height:58px!important;
  }
  body.nbds-dashboard-ready .student-sidebar{
    width:min(90vw,315px)!important;
  }
}


/* v196 FINAL CLEAN FIX: mobile hamburger opens all page labels and hides after a label click */
@media(min-width:901px){
  body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready #nbdsMobileSidebarBackdrop,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-backdrop{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  body.nbds-dashboard-ready .student-app-shell,
  body.nbds-dashboard-ready .teacher-app-shell,
  body.nbds-dashboard-ready .parent-app-shell,
  body.nbds-dashboard-ready .admin-oriented-shell{
    display:grid!important;
    grid-template-columns:310px minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
    min-height:100vh!important;
    background:#f8fbf9!important;
  }

  body.nbds-dashboard-ready .student-sidebar,
  body.nbds-dashboard-ready .admin-oriented-sidebar,
  body.nbds-dashboard-ready .parent-sidebar,
  body.nbds-dashboard-ready .teacher-sidebar,
  body.nbds-dashboard-ready .static-dashboard-sidebar{
    position:sticky!important;
    left:auto!important;
    right:auto!important;
    top:0!important;
    bottom:auto!important;
    width:auto!important;
    max-width:none!important;
    height:100vh!important;
    max-height:100vh!important;
    min-height:100vh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:10!important;
    transform:none!important;
    transition:none!important;
    border-radius:0!important;
    border-right:1px solid var(--line)!important;
    border-bottom:0!important;
    box-shadow:none!important;
    padding:26px 18px!important;
    background:#ffffff!important;
    visibility:visible!important;
    opacity:1!important;
  }

  body.nbds-dashboard-ready .student-main,
  body.nbds-dashboard-ready .parent-main{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:34px!important;
    overflow:hidden!important;
  }

  body.nbds-dashboard-ready .student-topbar{
    padding:14px 18px!important;
    margin-bottom:18px!important;
    border-radius:18px!important;
    position:sticky!important;
    top:0!important;
    z-index:8!important;
  }

  body.nbds-dashboard-ready .student-sidebar .student-nav-group{
    display:block!important;
    overflow:visible!important;
    padding:0!important;
    margin:20px 0!important;
  }

  body.nbds-dashboard-ready .student-sidebar .student-nav-group p{
    display:block!important;
    margin:0 0 10px 8px!important;
    background:transparent!important;
    border:0!important;
    padding:0!important;
    border-radius:0!important;
    color:#8a96a8!important;
    letter-spacing:2px!important;
  }

  body.nbds-dashboard-ready .student-sidebar .student-nav-link,
  body.nbds-dashboard-ready .student-sidebar .student-logout{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    white-space:normal!important;
    margin:4px 0!important;
    padding:14px 16px!important;
    border-radius:14px!important;
  }
}

@media(max-width:900px){
  html,body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  body.nbds-dashboard-ready .student-app-shell,
  body.nbds-dashboard-ready .teacher-app-shell,
  body.nbds-dashboard-ready .parent-app-shell,
  body.nbds-dashboard-ready .admin-oriented-shell{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-height:100dvh!important;
    overflow-x:hidden!important;
    background:#f8fbf9!important;
  }

  body.nbds-dashboard-ready .student-sidebar,
  body.nbds-dashboard-ready .admin-oriented-sidebar,
  body.nbds-dashboard-ready .parent-sidebar,
  body.nbds-dashboard-ready .teacher-sidebar,
  body.nbds-dashboard-ready .static-dashboard-sidebar{
    position:fixed!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:min(88vw,330px)!important;
    max-width:330px!important;
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:100dvh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:2147482000!important;
    transform:translateX(-115%)!important;
    transition:transform .24s ease!important;
    border-radius:0 24px 24px 0!important;
    border-right:1px solid rgba(15,23,42,.10)!important;
    box-shadow:30px 0 80px rgba(15,23,42,.28)!important;
    padding:76px 16px 24px!important;
    background:#ffffff!important;
    visibility:visible!important;
    opacity:1!important;
    -webkit-overflow-scrolling:touch!important;
  }

  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .student-sidebar,
  body.nbds-dashboard-ready .student-sidebar.nbds-dashboard-drawer-open-panel,
  body.nbds-dashboard-ready .student-sidebar.nbds-mobile-open{
    transform:translateX(0)!important;
  }

  body.nbds-dashboard-ready .student-main,
  body.nbds-dashboard-ready .parent-main{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:10px 10px 20px!important;
    overflow-x:hidden!important;
  }

  body.nbds-dashboard-ready .student-topbar{
    width:100%!important;
    min-height:64px!important;
    padding:12px 12px 12px 116px!important;
    margin:0 0 12px!important;
    border-radius:0 0 18px 18px!important;
    position:sticky!important;
    top:0!important;
    z-index:80!important;
    box-shadow:0 10px 28px rgba(15,23,42,.08)!important;
  }

  body.nbds-dashboard-ready .student-sidebar .student-nav-group{
    display:block!important;
    overflow:visible!important;
    padding:0!important;
    margin:18px 0!important;
  }

  body.nbds-dashboard-ready .student-sidebar .student-nav-group p{
    display:block!important;
    margin:0 0 8px 6px!important;
    background:transparent!important;
    border:0!important;
    padding:0!important;
    color:#8a96a8!important;
    letter-spacing:2px!important;
  }

  body.nbds-dashboard-ready .student-sidebar .student-nav-link,
  body.nbds-dashboard-ready .student-sidebar .student-logout{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    white-space:normal!important;
    margin:4px 0!important;
    padding:13px 14px!important;
    border-radius:14px!important;
  }

  body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle{
    position:fixed!important;
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    left:12px!important;
    top:12px!important;
    z-index:2147483000!important;
    min-width:92px!important;
    height:44px!important;
    padding:0 14px!important;
    border:0!important;
    border-radius:999px!important;
    background:linear-gradient(135deg,#08773f,#064d2a)!important;
    color:#fff!important;
    font-weight:950!important;
    font-family:'Montserrat','Segoe UI',Roboto,Arial,sans-serif!important;
    line-height:1!important;
    box-shadow:0 14px 32px rgba(6,77,42,.28)!important;
    cursor:pointer!important;
  }

  body.nbds-dashboard-ready #nbdsMobileSidebarToggle span,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle span{
    font-size:1.25rem!important;
    line-height:1!important;
  }

  body.nbds-dashboard-ready #nbdsMobileSidebarToggle b,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle b{
    display:inline!important;
    color:#fff!important;
    font-size:.88rem!important;
    line-height:1!important;
  }

  body.nbds-dashboard-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-mobile-sidebar-toggle{
    background:#b42318!important;
  }

  body.nbds-dashboard-ready #nbdsMobileSidebarBackdrop,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-backdrop{
    position:fixed!important;
    inset:0!important;
    display:none!important;
    z-index:2147481000!important;
    background:rgba(2,6,23,.48)!important;
    backdrop-filter:blur(3px)!important;
  }

  body.nbds-dashboard-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarBackdrop,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-dashboard-drawer-backdrop{
    display:block!important;
  }

  body.nbds-dashboard-ready .student-cover,
  body.nbds-dashboard-ready .student-cover.compact{
    padding:26px 18px!important;
    min-height:210px!important;
    margin:0 0 14px!important;
    border-radius:18px!important;
  }

  body.nbds-dashboard-ready .student-cover h1,
  body.nbds-dashboard-ready .student-cover.compact h1{
    font-size:clamp(1.85rem,10vw,3rem)!important;
    line-height:1.02!important;
    letter-spacing:-1px!important;
  }

  body.nbds-dashboard-ready .student-stats-grid,
  body.nbds-dashboard-ready .student-card-grid,
  body.nbds-dashboard-ready .student-profile-grid,
  body.nbds-dashboard-ready .admin-stat-grid,
  body.nbds-dashboard-ready .admin-control-quick-grid,
  body.nbds-dashboard-ready .role-control-grid,
  body.nbds-dashboard-ready .parent-child-grid,
  body.nbds-dashboard-ready .teacher-metric-grid,
  body.nbds-dashboard-ready .payment-summary-grid,
  body.nbds-dashboard-ready .panel-grid,
  body.nbds-dashboard-ready .live-class-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
}

@media(max-width:430px){
  body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle{
    min-width:82px!important;
    height:40px!important;
    left:10px!important;
    top:10px!important;
    padding:0 11px!important;
  }
  body.nbds-dashboard-ready .student-topbar{
    padding-left:102px!important;
    min-height:58px!important;
  }
  body.nbds-dashboard-ready .student-sidebar{
    width:min(90vw,315px)!important;
  }
}


/* v196 FINAL CONSISTENCY FIX: all mobile dashboard and utility pages */
@media(max-width:900px){
  body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle{
    position:fixed!important;
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    left:12px!important;
    top:12px!important;
    z-index:2147483000!important;
    min-width:92px!important;
    height:44px!important;
    padding:0 14px!important;
    border:0!important;
    border-radius:999px!important;
    background:linear-gradient(135deg,#08773f,#064d2a)!important;
    color:#fff!important;
    font-weight:950!important;
    font-family:'Montserrat','Segoe UI',Roboto,Arial,sans-serif!important;
    line-height:1!important;
    box-shadow:0 14px 32px rgba(6,77,42,.28)!important;
    cursor:pointer!important;
  }
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-mobile-sidebar-toggle{
    background:#b42318!important;
  }
  body.nbds-dashboard-ready .student-sidebar,
  body.nbds-dashboard-ready .admin-oriented-sidebar,
  body.nbds-dashboard-ready .parent-sidebar,
  body.nbds-dashboard-ready .teacher-sidebar,
  body.nbds-dashboard-ready .static-dashboard-sidebar{
    position:fixed!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:min(88vw,330px)!important;
    max-width:330px!important;
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:100dvh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:2147482000!important;
    transform:translateX(-115%)!important;
    transition:transform .24s ease!important;
    border-radius:0 24px 24px 0!important;
    border-right:1px solid rgba(15,23,42,.10)!important;
    box-shadow:30px 0 80px rgba(15,23,42,.28)!important;
    padding:76px 16px 24px!important;
    background:#ffffff!important;
    visibility:visible!important;
    opacity:1!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .student-sidebar,
  body.nbds-dashboard-ready .student-sidebar.nbds-dashboard-drawer-open-panel,
  body.nbds-dashboard-ready .student-sidebar.nbds-mobile-open{
    transform:translateX(0)!important;
  }
  body.nbds-dashboard-ready #nbdsMobileSidebarBackdrop,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-backdrop{
    position:fixed!important;
    inset:0!important;
    display:none!important;
    z-index:2147481000!important;
    background:rgba(2,6,23,.48)!important;
    backdrop-filter:blur(3px)!important;
  }
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarBackdrop,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-dashboard-drawer-backdrop{
    display:block!important;
  }
}
@media(min-width:901px){
  body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready #nbdsMobileSidebarBackdrop,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-backdrop{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }
}


/* v196 HARD FIX: visible mobile hamburger must open the menu list */
@media(max-width:900px){
  body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready .nbds-v196-hard-toggle,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle{
    position:fixed!important;
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    left:12px!important;
    top:12px!important;
    z-index:2147483000!important;
    min-width:92px!important;
    height:44px!important;
    padding:0 14px!important;
    border:0!important;
    border-radius:999px!important;
    background:linear-gradient(135deg,#08773f,#064d2a)!important;
    color:#fff!important;
    font-weight:950!important;
    font-family:'Montserrat','Segoe UI',Roboto,Arial,sans-serif!important;
    line-height:1!important;
    box-shadow:0 14px 32px rgba(6,77,42,.28)!important;
    cursor:pointer!important;
  }

  body.nbds-dashboard-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-v196-hard-toggle{
    background:#b42318!important;
  }

  body.nbds-dashboard-ready .student-sidebar,
  body.nbds-dashboard-ready .admin-oriented-sidebar,
  body.nbds-dashboard-ready .parent-sidebar,
  body.nbds-dashboard-ready .teacher-sidebar,
  body.nbds-dashboard-ready .static-dashboard-sidebar{
    position:fixed!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:min(88vw,330px)!important;
    max-width:330px!important;
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:100dvh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:2147482000!important;
    transform:translateX(-115%)!important;
    transition:transform .24s ease!important;
    border-radius:0 24px 24px 0!important;
    border-right:1px solid rgba(15,23,42,.10)!important;
    box-shadow:30px 0 80px rgba(15,23,42,.28)!important;
    padding:76px 16px 24px!important;
    background:#ffffff!important;
    visibility:visible!important;
    opacity:1!important;
    -webkit-overflow-scrolling:touch!important;
  }

  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .student-sidebar,
  body.nbds-dashboard-ready.nbds-mobile-sidebar-open .student-sidebar,
  body.nbds-dashboard-ready .student-sidebar.nbds-dashboard-drawer-open-panel,
  body.nbds-dashboard-ready .student-sidebar.nbds-mobile-open{
    transform:translateX(0)!important;
  }

  body.nbds-dashboard-ready #nbdsMobileSidebarBackdrop,
  body.nbds-dashboard-ready .nbds-v196-hard-backdrop,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-backdrop{
    position:fixed!important;
    inset:0!important;
    display:none!important;
    z-index:2147481000!important;
    background:rgba(2,6,23,.48)!important;
    backdrop-filter:blur(3px)!important;
  }

  body.nbds-dashboard-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarBackdrop,
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-v196-hard-backdrop,
  body.nbds-dashboard-ready.nbds-mobile-sidebar-open #nbdsMobileSidebarBackdrop{
    display:block!important;
  }
}

@media(min-width:901px){
  body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
  body.nbds-dashboard-ready #nbdsMobileSidebarBackdrop,
  body.nbds-dashboard-ready .nbds-v196-hard-toggle,
  body.nbds-dashboard-ready .nbds-v196-hard-backdrop,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle,
  body.nbds-dashboard-ready .nbds-mobile-sidebar-backdrop,
  body.nbds-dashboard-ready .nbds-dashboard-drawer-backdrop{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }
}


/* v196 STUDENT DASHBOARD PAGE LABEL CONSISTENCY */
body.nbds-student-dashboard-ui-ready .student-page{
  display:none!important;
}
body.nbds-student-dashboard-ui-ready .student-page.active{
  display:block!important;
}
body.nbds-student-dashboard-ui-ready .live-class-subject-panel,
body.nbds-student-dashboard-ui-ready .assignment-subject-panel,
body.nbds-student-dashboard-ui-ready .exam-selected-detail,
body.nbds-student-dashboard-ui-ready .lesson-subject-panel,
body.nbds-student-dashboard-ui-ready .teaching-timetable-panel,
body.nbds-student-dashboard-ui-ready [data-result-type-panel]{
  display:none!important;
}
body.nbds-student-dashboard-ui-ready .live-class-subject-panel.active,
body.nbds-student-dashboard-ui-ready .assignment-subject-panel.active,
body.nbds-student-dashboard-ui-ready .exam-selected-detail.active,
body.nbds-student-dashboard-ui-ready .lesson-subject-panel.active,
body.nbds-student-dashboard-ui-ready .teaching-timetable-panel.active,
body.nbds-student-dashboard-ui-ready [data-result-type-panel].active{
  display:block!important;
}
body.nbds-student-dashboard-ui-ready .student-nav-link[data-page]{
  cursor:pointer!important;
}
body.nbds-student-dashboard-ui-ready .student-nav-link[data-page].active{
  background:linear-gradient(135deg,#08773f,#064d2a)!important;
  color:#ffffff!important;
}
body.nbds-student-dashboard-ui-ready .student-nav-link[data-page].active .nav-icon svg{
  stroke:#ffffff!important;
  fill:none!important;
}


/* v196 STUDENT + PARENT DASHBOARD PAGE LABEL CONSISTENCY */
body.nbds-student-dashboard-ui-ready .student-main .student-page,
body.nbds-parent-dashboard-ui-ready .parent-main .student-page{
  display:none!important;
}
body.nbds-student-dashboard-ui-ready .student-main .student-page.active,
body.nbds-parent-dashboard-ui-ready .parent-main .student-page.active{
  display:block!important;
}
body.nbds-student-dashboard-ui-ready .student-nav-link[data-page],
body.nbds-parent-dashboard-ui-ready .student-nav-link[data-page]{
  cursor:pointer!important;
}
body.nbds-student-dashboard-ui-ready .student-nav-link[data-page].active,
body.nbds-parent-dashboard-ui-ready .student-nav-link[data-page].active{
  background:linear-gradient(135deg,#08773f,#064d2a)!important;
  color:#ffffff!important;
}
body.nbds-student-dashboard-ui-ready .student-nav-link[data-page].active .nav-icon svg,
body.nbds-parent-dashboard-ui-ready .student-nav-link[data-page].active .nav-icon svg{
  stroke:#ffffff!important;
  fill:none!important;
}
body.nbds-student-dashboard-ui-ready .live-class-subject-panel,
body.nbds-student-dashboard-ui-ready .assignment-subject-panel,
body.nbds-student-dashboard-ui-ready .exam-selected-detail,
body.nbds-student-dashboard-ui-ready .lesson-subject-panel,
body.nbds-student-dashboard-ui-ready .teaching-timetable-panel,
body.nbds-student-dashboard-ui-ready [data-result-type-panel]{
  display:none!important;
}
body.nbds-student-dashboard-ui-ready .live-class-subject-panel.active,
body.nbds-student-dashboard-ui-ready .assignment-subject-panel.active,
body.nbds-student-dashboard-ui-ready .exam-selected-detail.active,
body.nbds-student-dashboard-ui-ready .lesson-subject-panel.active,
body.nbds-student-dashboard-ui-ready .teaching-timetable-panel.active,
body.nbds-student-dashboard-ui-ready [data-result-type-panel].active{
  display:block!important;
}


/* v196 TEACHER DASHBOARD PAGE LABEL CONSISTENCY */
body.nbds-teacher-dashboard-ui-ready .teacher-app-shell .student-main .student-page{
  display:none!important;
}
body.nbds-teacher-dashboard-ui-ready .teacher-app-shell .student-main .student-page.active{
  display:block!important;
}
body.nbds-teacher-dashboard-ui-ready .teacher-sidebar .student-nav-link[data-page]{
  cursor:pointer!important;
}
body.nbds-teacher-dashboard-ui-ready .teacher-sidebar .student-nav-link[data-page].active{
  background:linear-gradient(135deg,#08773f,#064d2a)!important;
  color:#ffffff!important;
}
body.nbds-teacher-dashboard-ui-ready .teacher-sidebar .student-nav-link[data-page].active .nav-icon svg{
  stroke:#ffffff!important;
  fill:none!important;
}


/* v196 RESTORED FULL TEACHER INTERFACES AND BIODATA */
.teacher-biodata-form{
  display:grid;
  gap:18px;
}
.teacher-biodata-form > .student-card{
  margin:0;
}
.teacher-biodata-form .admin-form-grid{
  align-items:start;
}
.teacher-profile-save-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.teacher-profile-save-card .admin-card-note{
  margin:0;
}
@media(max-width:900px){
  .teacher-biodata-form{
    gap:12px;
  }
  .teacher-biodata-form .admin-form-grid{
    grid-template-columns:1fr!important;
  }
  .teacher-profile-save-card{
    align-items:stretch;
  }
  .teacher-profile-save-card .btn{
    width:100%;
  }
}


/* v196 RESTORED FULL STUDENT INTERFACES AND BACKEND */
.student-dashboard-body .profile-form-card,
.student-dashboard-body .student-card,
.student-dashboard-body .student-page{
  min-width:0;
}
@media(max-width:900px){
  .student-dashboard-body .profile-dashboard-grid,
  .student-dashboard-body .profile-form-grid,
  .student-dashboard-body .student-card-grid,
  .student-dashboard-body .student-stat-grid{
    grid-template-columns:1fr!important;
  }
  .student-dashboard-body .profile-summary-card{
    position:static!important;
  }
}


/* v196 ALL-USERS VERTICAL PAGE SCROLLBARS */
body.student-dashboard-body{
  height:100dvh!important;
  min-height:100dvh!important;
  overflow:hidden!important;
}

body.student-dashboard-body .student-app-shell,
body.student-dashboard-body .teacher-app-shell,
body.student-dashboard-body .parent-app-shell,
body.student-dashboard-body .admin-oriented-shell{
  height:100dvh!important;
  min-height:100dvh!important;
  max-height:100dvh!important;
  overflow:hidden!important;
}

body.student-dashboard-body .student-main,
body.student-dashboard-body .parent-main,
body.student-dashboard-body .teacher-main,
body.student-dashboard-body .admin-main,
body.student-dashboard-body .nbds-page-scroll-container{
  height:100dvh!important;
  min-height:0!important;
  max-height:100dvh!important;
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  overscroll-behavior-y:contain!important;
  scroll-behavior:smooth;
  scrollbar-gutter:stable;
  scrollbar-width:auto;
  scrollbar-color:#08773f #e7efe9;
  touch-action:pan-x pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}

body.student-dashboard-body .student-main::-webkit-scrollbar,
body.student-dashboard-body .parent-main::-webkit-scrollbar,
body.student-dashboard-body .teacher-main::-webkit-scrollbar,
body.student-dashboard-body .admin-main::-webkit-scrollbar,
body.student-dashboard-body .nbds-page-scroll-container::-webkit-scrollbar{
  width:12px;
}

body.student-dashboard-body .student-main::-webkit-scrollbar-track,
body.student-dashboard-body .parent-main::-webkit-scrollbar-track,
body.student-dashboard-body .teacher-main::-webkit-scrollbar-track,
body.student-dashboard-body .admin-main::-webkit-scrollbar-track,
body.student-dashboard-body .nbds-page-scroll-container::-webkit-scrollbar-track{
  background:#e7efe9;
  border-left:1px solid rgba(8,119,63,.08);
}

body.student-dashboard-body .student-main::-webkit-scrollbar-thumb,
body.student-dashboard-body .parent-main::-webkit-scrollbar-thumb,
body.student-dashboard-body .teacher-main::-webkit-scrollbar-thumb,
body.student-dashboard-body .admin-main::-webkit-scrollbar-thumb,
body.student-dashboard-body .nbds-page-scroll-container::-webkit-scrollbar-thumb{
  min-height:54px;
  border:3px solid #e7efe9;
  border-radius:999px;
  background:linear-gradient(180deg,#0a8c4d,#064d2a);
}

body.student-dashboard-body .student-main::-webkit-scrollbar-thumb:hover,
body.student-dashboard-body .parent-main::-webkit-scrollbar-thumb:hover,
body.student-dashboard-body .teacher-main::-webkit-scrollbar-thumb:hover,
body.student-dashboard-body .admin-main::-webkit-scrollbar-thumb:hover,
body.student-dashboard-body .nbds-page-scroll-container::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,#0aa65b,#043c21);
}

body.student-dashboard-body .student-sidebar,
body.student-dashboard-body .parent-sidebar,
body.student-dashboard-body .teacher-sidebar,
body.student-dashboard-body .admin-oriented-sidebar,
body.student-dashboard-body .static-dashboard-sidebar{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior-y:contain!important;
  scrollbar-width:thin;
  scrollbar-color:#7dbd99 #eef5f0;
  touch-action:pan-x pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}

body.student-dashboard-body .student-sidebar::-webkit-scrollbar,
body.student-dashboard-body .parent-sidebar::-webkit-scrollbar,
body.student-dashboard-body .teacher-sidebar::-webkit-scrollbar,
body.student-dashboard-body .admin-oriented-sidebar::-webkit-scrollbar,
body.student-dashboard-body .static-dashboard-sidebar::-webkit-scrollbar{
  width:7px;
}

body.student-dashboard-body .student-sidebar::-webkit-scrollbar-track,
body.student-dashboard-body .parent-sidebar::-webkit-scrollbar-track,
body.student-dashboard-body .teacher-sidebar::-webkit-scrollbar-track,
body.student-dashboard-body .admin-oriented-sidebar::-webkit-scrollbar-track,
body.student-dashboard-body .static-dashboard-sidebar::-webkit-scrollbar-track{
  background:#eef5f0;
}

body.student-dashboard-body .student-sidebar::-webkit-scrollbar-thumb,
body.student-dashboard-body .parent-sidebar::-webkit-scrollbar-thumb,
body.student-dashboard-body .teacher-sidebar::-webkit-scrollbar-thumb,
body.student-dashboard-body .admin-oriented-sidebar::-webkit-scrollbar-thumb,
body.student-dashboard-body .static-dashboard-sidebar::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:#7dbd99;
}

body.student-dashboard-body .nbds-page-scroll-content{
  min-height:min-content;
  touch-action:pan-x pan-y pinch-zoom!important;
}

body.student-dashboard-body .student-topbar{
  position:sticky!important;
  top:0!important;
  z-index:100!important;
}

@media(max-width:900px){
  body.student-dashboard-body .student-main,
  body.student-dashboard-body .parent-main,
  body.student-dashboard-body .teacher-main,
  body.student-dashboard-body .admin-main,
  body.student-dashboard-body .nbds-page-scroll-container{
    width:100%!important;
    height:100dvh!important;
    max-height:100dvh!important;
    padding-bottom:max(30px, env(safe-area-inset-bottom))!important;
    overflow-y:scroll!important;
    scrollbar-width:thin;
  }

  body.student-dashboard-body .student-main::-webkit-scrollbar,
  body.student-dashboard-body .parent-main::-webkit-scrollbar,
  body.student-dashboard-body .teacher-main::-webkit-scrollbar,
  body.student-dashboard-body .admin-main::-webkit-scrollbar,
  body.student-dashboard-body .nbds-page-scroll-container::-webkit-scrollbar{
    width:7px;
  }

  body.student-dashboard-body .student-main::-webkit-scrollbar-thumb,
  body.student-dashboard-body .parent-main::-webkit-scrollbar-thumb,
  body.student-dashboard-body .teacher-main::-webkit-scrollbar-thumb,
  body.student-dashboard-body .admin-main::-webkit-scrollbar-thumb,
  body.student-dashboard-body .nbds-page-scroll-container::-webkit-scrollbar-thumb{
    border-width:1px;
    min-height:42px;
  }
}


/* v196 DESKTOP SCROLLBAR HARD FIX FOR ALL USER DASHBOARDS */
@media(min-width:901px){
  html{
    height:100%!important;
    overflow:hidden!important;
  }

  body.student-dashboard-body{
    width:100%!important;
    height:100vh!important;
    min-height:100vh!important;
    max-height:100vh!important;
    overflow:hidden!important;
  }

  body.student-dashboard-body .student-app-shell,
  body.student-dashboard-body .teacher-app-shell,
  body.student-dashboard-body .parent-app-shell,
  body.student-dashboard-body .admin-oriented-shell,
  body.student-dashboard-body .workflow-hub-shell,
  body.student-dashboard-body .user-profile-shell{
    display:grid!important;
    grid-template-columns:310px minmax(0,1fr)!important;
    grid-template-rows:minmax(0,1fr)!important;
    width:100%!important;
    height:100vh!important;
    min-height:0!important;
    max-height:100vh!important;
    overflow:hidden!important;
  }

  body.student-dashboard-body .student-sidebar,
  body.student-dashboard-body .teacher-sidebar,
  body.student-dashboard-body .parent-sidebar,
  body.student-dashboard-body .admin-oriented-sidebar,
  body.student-dashboard-body .static-dashboard-sidebar{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    bottom:auto!important;
    width:100%!important;
    height:100vh!important;
    min-height:0!important;
    max-height:100vh!important;
    overflow-y:scroll!important;
    overflow-x:hidden!important;
    box-sizing:border-box!important;
    overscroll-behavior:contain!important;
    scrollbar-gutter:stable!important;
    scrollbar-width:thin!important;
    scrollbar-color:#6cae87 #eef5f0!important;
  }

  body.student-dashboard-body .student-main,
  body.student-dashboard-body .parent-main,
  body.student-dashboard-body .teacher-main,
  body.student-dashboard-body .admin-main,
  body.student-dashboard-body .workflow-main,
  body.student-dashboard-body .user-profile-main,
  body.student-dashboard-body .nbds-page-scroll-container{
    position:relative!important;
    width:100%!important;
    height:100vh!important;
    min-height:0!important;
    max-height:100vh!important;
    overflow-y:scroll!important;
    overflow-x:hidden!important;
    box-sizing:border-box!important;
    overscroll-behavior-y:contain!important;
    scroll-behavior:smooth!important;
    scrollbar-gutter:stable both-edges!important;
    scrollbar-width:auto!important;
    scrollbar-color:#08773f #e7efe9!important;
    touch-action:auto!important;
    -webkit-overflow-scrolling:auto!important;
  }

  body.student-dashboard-body .student-main > .student-page,
  body.student-dashboard-body .parent-main > .student-page,
  body.student-dashboard-body .teacher-main > .student-page,
  body.student-dashboard-body .admin-main > .student-page,
  body.student-dashboard-body .workflow-main > .student-page,
  body.student-dashboard-body .user-profile-main > .student-page,
  body.student-dashboard-body .nbds-page-scroll-content{
    min-height:auto!important;
    height:auto!important;
    overflow:visible!important;
  }

  body.student-dashboard-body .student-topbar{
    position:sticky!important;
    top:0!important;
    z-index:120!important;
  }

  body.student-dashboard-body .student-main::-webkit-scrollbar,
  body.student-dashboard-body .parent-main::-webkit-scrollbar,
  body.student-dashboard-body .teacher-main::-webkit-scrollbar,
  body.student-dashboard-body .admin-main::-webkit-scrollbar,
  body.student-dashboard-body .workflow-main::-webkit-scrollbar,
  body.student-dashboard-body .user-profile-main::-webkit-scrollbar,
  body.student-dashboard-body .nbds-page-scroll-container::-webkit-scrollbar{
    width:14px!important;
  }

  body.student-dashboard-body .student-main::-webkit-scrollbar-track,
  body.student-dashboard-body .parent-main::-webkit-scrollbar-track,
  body.student-dashboard-body .teacher-main::-webkit-scrollbar-track,
  body.student-dashboard-body .admin-main::-webkit-scrollbar-track,
  body.student-dashboard-body .workflow-main::-webkit-scrollbar-track,
  body.student-dashboard-body .user-profile-main::-webkit-scrollbar-track,
  body.student-dashboard-body .nbds-page-scroll-container::-webkit-scrollbar-track{
    background:#e7efe9!important;
    border-left:1px solid rgba(8,119,63,.12)!important;
  }

  body.student-dashboard-body .student-main::-webkit-scrollbar-thumb,
  body.student-dashboard-body .parent-main::-webkit-scrollbar-thumb,
  body.student-dashboard-body .teacher-main::-webkit-scrollbar-thumb,
  body.student-dashboard-body .admin-main::-webkit-scrollbar-thumb,
  body.student-dashboard-body .workflow-main::-webkit-scrollbar-thumb,
  body.student-dashboard-body .user-profile-main::-webkit-scrollbar-thumb,
  body.student-dashboard-body .nbds-page-scroll-container::-webkit-scrollbar-thumb{
    min-height:58px!important;
    border:3px solid #e7efe9!important;
    border-radius:999px!important;
    background:linear-gradient(180deg,#0a8c4d,#064d2a)!important;
  }

  body.student-dashboard-body .student-main::-webkit-scrollbar-thumb:hover,
  body.student-dashboard-body .parent-main::-webkit-scrollbar-thumb:hover,
  body.student-dashboard-body .teacher-main::-webkit-scrollbar-thumb:hover,
  body.student-dashboard-body .admin-main::-webkit-scrollbar-thumb:hover,
  body.student-dashboard-body .workflow-main::-webkit-scrollbar-thumb:hover,
  body.student-dashboard-body .user-profile-main::-webkit-scrollbar-thumb:hover,
  body.student-dashboard-body .nbds-page-scroll-container::-webkit-scrollbar-thumb:hover{
    background:linear-gradient(180deg,#0bb964,#043c21)!important;
  }
}


/* v196 PERSISTENT DESKTOP SCROLLBAR FROM 33% ZOOM UPWARDS */
body.nbds-custom-desktop-scrollbar-ready .nbds-custom-desktop-scrollbar-shell{
  position:relative!important;
  overflow:hidden!important;
}

body.nbds-custom-desktop-scrollbar-ready .nbds-custom-desktop-scrollbar-content{
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  scrollbar-width:none!important;
  -ms-overflow-style:none!important;
}

body.nbds-custom-desktop-scrollbar-ready .nbds-custom-desktop-scrollbar-content::-webkit-scrollbar{
  width:0!important;
  height:0!important;
  display:none!important;
}

body.nbds-custom-desktop-scrollbar-ready .nbds-desktop-scrollbar{
  position:absolute!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  top:6px!important;
  right:3px!important;
  bottom:6px!important;
  width:16px!important;
  min-width:16px!important;
  z-index:2147480000!important;
  border-radius:999px!important;
  background:rgba(231,239,233,.96)!important;
  box-shadow:
    inset 0 0 0 1px rgba(8,119,63,.13),
    0 2px 8px rgba(15,23,42,.12)!important;
  user-select:none!important;
  -webkit-user-select:none!important;
}

body.nbds-custom-desktop-scrollbar-ready .nbds-desktop-scrollbar-track{
  position:absolute!important;
  inset:2px!important;
  display:block!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,#eef5f0,#dce9df)!important;
  cursor:pointer!important;
  overflow:hidden!important;
}

body.nbds-custom-desktop-scrollbar-ready .nbds-desktop-scrollbar-thumb{
  position:absolute!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  top:0!important;
  left:1px!important;
  right:1px!important;
  min-height:54px!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,#0ba45b,#08773f 55%,#064d2a)!important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.28),
    0 2px 7px rgba(6,77,42,.28)!important;
  cursor:grab!important;
  touch-action:none!important;
  will-change:transform,height!important;
}

body.nbds-custom-desktop-scrollbar-ready .nbds-desktop-scrollbar-thumb:hover{
  background:linear-gradient(180deg,#10bd6b,#078449 55%,#043c21)!important;
}

body.nbds-custom-desktop-scrollbar-ready .nbds-desktop-scrollbar-thumb:active{
  cursor:grabbing!important;
}

body.nbds-custom-desktop-scrollbar-ready .nbds-desktop-scrollbar.is-disabled{
  display:block!important;
  visibility:visible!important;
  opacity:.78!important;
}

body.nbds-custom-desktop-scrollbar-ready .nbds-desktop-scrollbar.is-disabled .nbds-desktop-scrollbar-thumb{
  min-height:100%!important;
  height:100%!important;
  opacity:.58!important;
  cursor:default!important;
}

body.nbds-custom-desktop-scrollbar-ready .student-main,
body.nbds-custom-desktop-scrollbar-ready .parent-main,
body.nbds-custom-desktop-scrollbar-ready .teacher-main,
body.nbds-custom-desktop-scrollbar-ready .admin-main,
body.nbds-custom-desktop-scrollbar-ready .workflow-main,
body.nbds-custom-desktop-scrollbar-ready .user-profile-main{
  padding-right:max(28px, env(safe-area-inset-right))!important;
}

/* This custom desktop rail is activated by desktop/laptop detection in JavaScript,
   so it remains visible at browser zoom levels such as 33%, 50%, 67%, 80%, 90%,
   100%, 125%, 150% and higher without affecting mobile-phone layouts. */

/* v197 STANDARD/PUBLIC PAGE SCROLLBAR FIX
   Applies to landing, registration, login, password recovery, features,
   about, contact, FAQ, access-required and legacy role-dashboard pages.
   Dashboard-specific v196 scrolling remains isolated and unchanged. */
html.nbds-standard-page-root{
  width:100%!important;
  height:auto!important;
  min-height:100%!important;
  max-height:none!important;
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  scroll-behavior:smooth!important;
  scrollbar-gutter:stable!important;
  scrollbar-width:auto!important;
  scrollbar-color:#08773f #e7efe9!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-x pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}

body.nbds-standard-page-body{
  width:100%!important;
  height:auto!important;
  min-height:100vh!important;
  max-height:none!important;
  overflow:visible!important;
  overflow-x:clip!important;
  position:relative!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-x pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}

html.nbds-standard-page-root::-webkit-scrollbar{
  width:14px!important;
}

html.nbds-standard-page-root::-webkit-scrollbar-track{
  background:#e7efe9!important;
  border-left:1px solid rgba(8,119,63,.12)!important;
}

html.nbds-standard-page-root::-webkit-scrollbar-thumb{
  min-height:58px!important;
  border:3px solid #e7efe9!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,#0a8c4d,#064d2a)!important;
}

html.nbds-standard-page-root::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,#0bb964,#043c21)!important;
}

html.nbds-standard-page-root::-webkit-scrollbar-corner{
  background:#e7efe9!important;
}

@media(max-width:900px){
  html.nbds-standard-page-root{
    min-height:100%!important;
    overflow-y:auto!important;
    scrollbar-gutter:auto!important;
  }

  body.nbds-standard-page-body{
    min-height:100dvh!important;
    padding-bottom:max(0px, env(safe-area-inset-bottom))!important;
  }

  html.nbds-standard-page-root::-webkit-scrollbar{
    width:7px!important;
  }

  html.nbds-standard-page-root::-webkit-scrollbar-thumb{
    min-height:42px!important;
    border-width:1px!important;
  }
}

@media print{
  html.nbds-standard-page-root,
  body.nbds-standard-page-body{
    height:auto!important;
    min-height:auto!important;
    overflow:visible!important;
    scrollbar-gutter:auto!important;
  }
}



/* v198 PERSISTENT STANDARD/PUBLIC PAGE SCROLLBAR — 100% ZOOM DOWNWARD
   A fixed right-side rail is rendered by public_page_scrollbar_manager.js.
   It stays visible on desktop/laptop public pages even when zooming out makes
   the document shorter than the viewport. Normal wheel, trackpad, keyboard,
   touchscreen and browser scrolling remain available. */
@media (min-width:641px){
  html.nbds-standard-page-root.nbds-public-scrollbar-ready{
    scrollbar-width:none!important;
    -ms-overflow-style:none!important;
    scrollbar-gutter:auto!important;
  }

  html.nbds-standard-page-root.nbds-public-scrollbar-ready::-webkit-scrollbar{
    width:0!important;
    height:0!important;
    display:none!important;
  }

  html.nbds-standard-page-root.nbds-public-scrollbar-ready body.nbds-standard-page-body{
    box-sizing:border-box!important;
    padding-right:20px!important;
  }

  .nbds-public-desktop-scrollbar{
    position:fixed!important;
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    top:5px!important;
    right:3px!important;
    bottom:5px!important;
    width:16px!important;
    min-width:16px!important;
    z-index:2147483000!important;
    border-radius:999px!important;
    background:rgba(231,239,233,.98)!important;
    box-shadow:
      inset 0 0 0 1px rgba(8,119,63,.16),
      0 2px 9px rgba(15,23,42,.16)!important;
    user-select:none!important;
    -webkit-user-select:none!important;
    touch-action:none!important;
  }

  .nbds-public-desktop-scrollbar-track{
    position:absolute!important;
    inset:2px!important;
    display:block!important;
    overflow:hidden!important;
    border-radius:999px!important;
    background:linear-gradient(180deg,#eef5f0,#dce9df)!important;
    cursor:pointer!important;
  }

  .nbds-public-desktop-scrollbar-thumb{
    position:absolute!important;
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    top:0!important;
    left:1px!important;
    right:1px!important;
    min-height:54px!important;
    border-radius:999px!important;
    background:linear-gradient(180deg,#0ba45b,#08773f 55%,#064d2a)!important;
    box-shadow:
      inset 0 0 0 1px rgba(255,255,255,.30),
      0 2px 7px rgba(6,77,42,.30)!important;
    cursor:grab!important;
    touch-action:none!important;
    will-change:transform,height!important;
  }

  .nbds-public-desktop-scrollbar-thumb:hover{
    background:linear-gradient(180deg,#10bd6b,#078449 55%,#043c21)!important;
  }

  .nbds-public-desktop-scrollbar-thumb:active,
  .nbds-public-desktop-scrollbar.is-dragging .nbds-public-desktop-scrollbar-thumb{
    cursor:grabbing!important;
  }

  .nbds-public-desktop-scrollbar.is-disabled{
    display:block!important;
    visibility:visible!important;
    opacity:.84!important;
  }

  .nbds-public-desktop-scrollbar.is-disabled .nbds-public-desktop-scrollbar-thumb{
    height:100%!important;
    min-height:100%!important;
    transform:translate3d(0,0,0)!important;
    opacity:.62!important;
    cursor:default!important;
  }
}

@media (max-width:640px){
  .nbds-public-desktop-scrollbar{
    display:none!important;
  }

  html.nbds-standard-page-root.nbds-public-scrollbar-ready body.nbds-standard-page-body{
    padding-right:0!important;
  }
}

@media print{
  .nbds-public-desktop-scrollbar{
    display:none!important;
  }
}


/* v199 admin messaging to parents, students, teachers and other admins */
.admin-message-form #adminMessageUserSearch:disabled{
  background:#f2f4f7;
  color:#98a2b3;
  cursor:not-allowed;
}
.admin-message-form #selectedMessageUserCard{
  min-height:72px;
}
.admin-message-form #adminMessageUserSuggestions{
  z-index:120;
}
.admin-message-form button[type="submit"]{
  margin-top:8px;
}

/* v204 exact unread counter, reply alerts and protected session fallback */
[data-nbds-message-link="1"],
[data-nbds-announcement-link="1"] {
  position: relative;
  padding-right: 52px !important;
}
.nbds-unread-badge {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  min-width: 24px;
  height: 24px;
  padding: 0 7px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #d5162f;
  color: #ffffff;
  border: 2px solid #ffffff;
  box-shadow: 0 3px 10px rgba(213, 22, 47, .35);
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-weight:650;
  z-index: 3;
}
.nbds-unread-badge[hidden] {
  display: none !important;
}


/* v206 internal live-class automatic mobile camera status */
.live-video-main{
  position:relative;
}
.live-camera-status{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  z-index:8;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(12, 24, 18, .90);
  color:#fff;
  box-shadow:0 12px 28px rgba(0,0,0,.22);
  backdrop-filter:blur(8px);
}
.live-camera-status[hidden]{display:none!important;}
.live-camera-status strong{font-size:.88rem;}
.live-camera-status span{flex:1 1 220px;font-size:.78rem;line-height:1.35;color:rgba(255,255,255,.86);}
@media (max-width: 720px){
  .live-camera-status{left:8px;right:8px;bottom:8px;padding:9px 10px;}
  .live-camera-status .btn{width:100%;justify-content:center;}
}


/* v207 MOBILE PINCH-ZOOM ACCESSIBILITY
   Allow two-finger browser zoom on public pages and every dashboard shell.
   Drawing canvases and draggable custom scrollbar thumbs retain touch-action:none. */
html,
body,
html.nbds-standard-page-root,
body.nbds-standard-page-body,
body.student-dashboard-body,
body.student-dashboard-body .student-main,
body.student-dashboard-body .parent-main,
body.student-dashboard-body .teacher-main,
body.student-dashboard-body .admin-main,
body.student-dashboard-body .workflow-main,
body.student-dashboard-body .user-profile-main,
body.student-dashboard-body .nbds-page-scroll-container,
body.student-dashboard-body .nbds-page-scroll-content {
  touch-action:pan-x pan-y pinch-zoom!important;
}

#classWhiteboard,
.whiteboard-stage,
.nbds-desktop-scrollbar-thumb,
.nbds-public-desktop-scrollbar,
.nbds-public-desktop-scrollbar-thumb {
  touch-action:none!important;
}

/* v209 real-time announcement centre */
.student-two-column-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  align-items:start;
  margin-bottom:20px;
}
.responsive-table-wrap{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.portal-table{
  width:100%;
  min-width:760px;
  border-collapse:collapse;
}
.portal-table th,
.portal-table td{
  padding:12px 14px;
  text-align:left;
  vertical-align:top;
  border-bottom:1px solid rgba(31,41,55,.12);
}
.portal-table th{
  font-weight:600;
  white-space:nowrap;
}
.student-announcement-card p{
  white-space:normal;
  overflow-wrap:anywhere;
}
@media (max-width:900px){
  .student-two-column-grid{
    grid-template-columns:1fr;
  }
  .portal-table{
    min-width:680px;
  }
}


/* v215 browser-requested desktop/mobile site mode -------------------------------- */
html.nbds-requested-desktop-site,
html.nbds-requested-desktop-site body{
  min-width:1180px!important;
  overflow-x:auto!important;
}
html.nbds-requested-desktop-site .menu-btn{
  display:none!important;
}
html.nbds-requested-desktop-site .nav-links{
  display:flex!important;
  position:static!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  flex-direction:row!important;
  align-items:center!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  padding:0!important;
  box-shadow:none!important;
}
html.nbds-requested-desktop-site .nav-actions{
  display:flex!important;
}
html.nbds-requested-desktop-site .hero-grid{
  grid-template-columns:1.02fr .98fr!important;
}
html.nbds-requested-desktop-site .portal-access{
  grid-template-columns:1fr .9fr!important;
}
html.nbds-requested-desktop-site .dashboard-layout{
  grid-template-columns:280px minmax(0,1fr)!important;
}
html.nbds-requested-desktop-site .features,
html.nbds-requested-desktop-site .register-grid{
  grid-template-columns:repeat(3,1fr)!important;
}
html.nbds-requested-desktop-site .stats{
  grid-template-columns:repeat(4,1fr)!important;
}
html.nbds-requested-desktop-site .panel-grid{
  grid-template-columns:repeat(3,1fr)!important;
}
html.nbds-requested-desktop-site .phone-card{
  position:absolute!important;
  left:-24px!important;
  bottom:0!important;
  margin:0!important;
}

html.nbds-requested-desktop-site body.nbds-dashboard-ready .student-app-shell,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .teacher-app-shell,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .parent-app-shell,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .admin-oriented-shell,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .student-app-shell,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .teacher-app-shell,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .parent-app-shell,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .admin-oriented-shell{
  display:grid!important;
  grid-template-columns:310px minmax(0,1fr)!important;
  width:100%!important;
  max-width:none!important;
  min-width:1180px!important;
  min-height:100vh!important;
  overflow:visible!important;
  background:#f8fbf9!important;
}
html.nbds-requested-desktop-site body.nbds-dashboard-ready .student-sidebar,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .admin-oriented-sidebar,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .parent-sidebar,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .teacher-sidebar,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .static-dashboard-sidebar,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .student-sidebar,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .admin-oriented-sidebar,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .parent-sidebar,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .teacher-sidebar,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .static-dashboard-sidebar{
  position:sticky!important;
  left:auto!important;
  right:auto!important;
  top:0!important;
  bottom:auto!important;
  width:auto!important;
  max-width:none!important;
  height:100vh!important;
  max-height:100vh!important;
  min-height:100vh!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  z-index:10!important;
  transform:none!important;
  transition:none!important;
  border-radius:0!important;
  border-right:1px solid var(--line)!important;
  border-bottom:0!important;
  box-shadow:none!important;
  padding:26px 18px!important;
  background:#fff!important;
  visibility:visible!important;
  opacity:1!important;
}
html.nbds-requested-desktop-site body.nbds-dashboard-ready .student-main,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .parent-main,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .student-main,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .parent-main{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:34px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
html.nbds-requested-desktop-site body.nbds-dashboard-ready .student-topbar,
html.nbds-requested-desktop-site body.nbds-dashboard-drawer-ready .student-topbar{
  width:100%!important;
  min-height:0!important;
  padding:14px 18px!important;
  margin:0 0 18px!important;
  border-radius:18px!important;
  position:sticky!important;
  top:0!important;
  z-index:8!important;
}
html.nbds-requested-desktop-site #nbdsMobileSidebarToggle,
html.nbds-requested-desktop-site #nbdsMobileSidebarBackdrop,
html.nbds-requested-desktop-site .nbds-mobile-sidebar-toggle,
html.nbds-requested-desktop-site .nbds-dashboard-drawer-toggle,
html.nbds-requested-desktop-site .nbds-mobile-sidebar-backdrop,
html.nbds-requested-desktop-site .nbds-dashboard-drawer-backdrop{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
html.nbds-requested-desktop-site body.nbds-dashboard-ready .student-stats-grid,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .student-card-grid,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .student-profile-grid,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .admin-stat-grid,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .admin-control-quick-grid,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .role-control-grid,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .parent-child-grid,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .teacher-metric-grid,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .payment-summary-grid,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .panel-grid,
html.nbds-requested-desktop-site body.nbds-dashboard-ready .live-class-grid{
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;
}

html.nbds-requested-mobile-site,
html.nbds-requested-mobile-site body{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
  overflow-x:hidden!important;
}
html.nbds-requested-mobile-site .nav-links,
html.nbds-requested-mobile-site .nav-actions{
  display:none!important;
}
html.nbds-requested-mobile-site .menu-btn{
  display:block!important;
}
html.nbds-requested-mobile-site .nav-links.open{
  display:flex!important;
  position:absolute!important;
  left:4%!important;
  right:4%!important;
  top:82px!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  background:#fff!important;
  border:1px solid var(--line)!important;
  border-radius:20px!important;
  padding:22px!important;
  box-shadow:var(--shadow)!important;
}
html.nbds-requested-mobile-site .hero-grid,
html.nbds-requested-mobile-site .portal-access,
html.nbds-requested-mobile-site .dashboard-layout{
  grid-template-columns:1fr!important;
}
html.nbds-requested-mobile-site .features,
html.nbds-requested-mobile-site .register-grid,
html.nbds-requested-mobile-site .stats,
html.nbds-requested-mobile-site .dash-metrics,
html.nbds-requested-mobile-site .panel-grid{
  grid-template-columns:1fr!important;
}
html.nbds-requested-mobile-site .phone-card{
  position:relative!important;
  left:auto!important;
  bottom:auto!important;
  margin:18px auto 0!important;
}

html.nbds-requested-mobile-site body.nbds-dashboard-ready .student-app-shell,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .teacher-app-shell,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .parent-app-shell,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .admin-oriented-shell,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .student-app-shell,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .teacher-app-shell,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .parent-app-shell,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .admin-oriented-shell{
  display:block!important;
  grid-template-columns:none!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:100dvh!important;
  overflow-x:hidden!important;
}
html.nbds-requested-mobile-site body.nbds-dashboard-ready .student-sidebar,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .admin-oriented-sidebar,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .parent-sidebar,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .teacher-sidebar,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .static-dashboard-sidebar,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .student-sidebar,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .admin-oriented-sidebar,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .parent-sidebar,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .teacher-sidebar,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .static-dashboard-sidebar{
  position:fixed!important;
  left:0!important;
  right:auto!important;
  top:0!important;
  bottom:0!important;
  width:min(88vw,330px)!important;
  max-width:330px!important;
  height:100dvh!important;
  max-height:100dvh!important;
  min-height:100dvh!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  z-index:2147482000!important;
  transform:translateX(-115%)!important;
  transition:transform .24s ease!important;
  border-radius:0 24px 24px 0!important;
  border-right:1px solid rgba(15,23,42,.10)!important;
  box-shadow:30px 0 80px rgba(15,23,42,.28)!important;
  padding:76px 16px 24px!important;
  background:#fff!important;
  visibility:visible!important;
  opacity:1!important;
  -webkit-overflow-scrolling:touch!important;
}
html.nbds-requested-mobile-site body.nbds-dashboard-ready.nbds-dashboard-drawer-open .student-sidebar,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .student-sidebar.nbds-dashboard-drawer-open-panel,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .student-sidebar.nbds-mobile-open,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready.nbds-dashboard-drawer-open .student-sidebar,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .student-sidebar.nbds-dashboard-drawer-open-panel,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .student-sidebar.nbds-mobile-open{
  transform:translateX(0)!important;
}
html.nbds-requested-mobile-site body.nbds-dashboard-ready .student-main,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .parent-main,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .student-main,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .parent-main{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:10px 10px 20px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
html.nbds-requested-mobile-site body.nbds-dashboard-ready .student-topbar,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .student-topbar{
  width:100%!important;
  min-height:64px!important;
  padding:12px 12px 12px 116px!important;
  margin:0 0 12px!important;
  border-radius:0 0 18px 18px!important;
  position:sticky!important;
  top:0!important;
  z-index:80!important;
}
html.nbds-requested-mobile-site body.nbds-dashboard-ready #nbdsMobileSidebarToggle,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .nbds-mobile-sidebar-toggle,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .nbds-dashboard-drawer-toggle,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready #nbdsMobileSidebarToggle,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .nbds-mobile-sidebar-toggle,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .nbds-dashboard-drawer-toggle{
  position:fixed!important;
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  left:12px!important;
  top:12px!important;
  z-index:2147483000!important;
  min-width:92px!important;
  height:44px!important;
  padding:0 14px!important;
  border:0!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,#08773f,#064d2a)!important;
  color:#fff!important;
  font-weight:950!important;
}
html.nbds-requested-mobile-site body.nbds-dashboard-ready #nbdsMobileSidebarBackdrop,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .nbds-mobile-sidebar-backdrop,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .nbds-dashboard-drawer-backdrop,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready #nbdsMobileSidebarBackdrop,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .nbds-mobile-sidebar-backdrop,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready .nbds-dashboard-drawer-backdrop{
  position:fixed!important;
  inset:0!important;
  display:none!important;
  z-index:2147481000!important;
  background:rgba(2,6,23,.48)!important;
  backdrop-filter:blur(3px)!important;
}
html.nbds-requested-mobile-site body.nbds-dashboard-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarBackdrop,
html.nbds-requested-mobile-site body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-mobile-sidebar-backdrop,
html.nbds-requested-mobile-site body.nbds-dashboard-ready.nbds-dashboard-drawer-open .nbds-dashboard-drawer-backdrop,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarBackdrop,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready.nbds-dashboard-drawer-open .nbds-mobile-sidebar-backdrop,
html.nbds-requested-mobile-site body.nbds-dashboard-drawer-ready.nbds-dashboard-drawer-open .nbds-dashboard-drawer-backdrop{
  display:block!important;
}
html.nbds-requested-mobile-site body.nbds-dashboard-ready .student-stats-grid,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .student-card-grid,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .student-profile-grid,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .admin-stat-grid,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .admin-control-quick-grid,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .role-control-grid,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .parent-child-grid,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .teacher-metric-grid,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .payment-summary-grid,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .panel-grid,
html.nbds-requested-mobile-site body.nbds-dashboard-ready .live-class-grid{
  grid-template-columns:1fr!important;
}


/* v219: keep homepage real-time values visibly rendered, including zero. */
.homepage-stat-value,
#publicTotalStudents {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  min-height: 1.75rem;
  line-height: 1.2;
  overflow: visible;
}


/* v221 exact unread-announcement counters for all dashboard roles */
[data-nbds-announcement-link="1"] .nbds-unread-badge {
  background: #d5162f;
}


/* v228 reaction overlay and pen-size controls */
.board-reaction-options.dropdown-over-whiteboard{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  background:rgba(255,255,255,.98)!important;
  border:2px solid rgba(8,123,58,.28)!important;
  box-shadow:0 28px 80px rgba(15,23,42,.34)!important;
  backdrop-filter:blur(12px);
}
.board-reaction-options.dropdown-over-whiteboard .board-reaction-options-head{
  grid-column:1/-1;
  position:sticky;
  top:-8px;
  z-index:2;
  background:#fff;
  padding:10px 4px 12px;
}
.board-reaction-options.dropdown-over-whiteboard button[data-reaction]{
  min-height:48px!important;
  font-size:.95rem!important;
}
.board-reactions-screen-layer{
  background:radial-gradient(circle at center, rgba(255,255,255,.06), rgba(255,255,255,0) 62%);
}
.floating-board-reaction.reaction-ten-second-burst{
  animation-name:boardReactionTenSecondFloat;
  animation-timing-function:cubic-bezier(.16,.8,.22,1);
  animation-fill-mode:forwards;
  transform:translate(-50%, -50%);
  will-change:transform,opacity;
}
@keyframes boardReactionTenSecondFloat{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(0deg)}
  8%{opacity:1;transform:translate(-50%,-50%) scale(1.15) rotate(0deg)}
  72%{opacity:1;transform:translate(calc(-50% + var(--reaction-x,0px)*.35),calc(-50% + var(--reaction-y,-340px)*.35)) scale(var(--reaction-scale,1.6)) rotate(var(--reaction-rotate,0deg))}
  100%{opacity:0;transform:translate(calc(-50% + var(--reaction-x,0px)),calc(-50% + var(--reaction-y,-340px))) scale(calc(var(--reaction-scale,1.6) + .35)) rotate(var(--reaction-rotate,0deg))}
}
.board-size-dropdown.dropdown-over-whiteboard{
  border:2px solid rgba(8,123,58,.26)!important;
  box-shadow:0 24px 70px rgba(15,23,42,.3)!important;
}
.board-size-option{
  cursor:pointer;
}
@media(max-width:620px){
  .board-reaction-options.dropdown-over-whiteboard{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    max-height:calc(100dvh - 130px)!important;
  }
  .board-reaction-options.dropdown-over-whiteboard button[data-reaction]{
    font-size:.82rem!important;
    padding:9px!important;
  }
}


/* v229 mobile music autoplay assistance and touch-friendly volume controls */
.home-music-panel input[type="range"]{
  width:100%;
  min-height:34px;
  touch-action:pan-x;
  cursor:pointer;
  accent-color:#087b3a;
}
.home-music-panel.active{
  display:grid !important;
  gap:9px;
}
@media(max-width:768px), (pointer:coarse){
  .home-music-panel{
    width:min(284px, calc(100vw - 76px));
    padding:14px;
  }
  .home-music-panel input[type="range"]{
    min-height:46px;
  }
  .home-music-mini-btn{
    width:48px;
    height:46px;
    font-size:1.55rem;
  }
  .home-music-volume-label{
    min-height:46px;
    font-size:1rem;
  }
  .home-music-main-btn{
    min-width:58px;
    min-height:58px;
    touch-action:manipulation;
  }
}

/* NBDS PWA v230 */
.nbds-pwa-install{position:fixed;right:18px;bottom:84px;z-index:10020;border:0;border-radius:999px;padding:12px 18px;background:#006b3c;color:#fff;font:700 14px/1.2 Arial,sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.25);cursor:pointer;touch-action:manipulation}.nbds-pwa-install[hidden]{display:none!important}.nbds-pwa-install:focus-visible{outline:3px solid #ffd54f;outline-offset:3px}.nbds-pwa-ios-help{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:10030;width:min(420px,calc(100% - 28px));padding:18px 44px 18px 18px;border-radius:16px;background:#fff;color:#17352a;box-shadow:0 16px 50px rgba(0,0,0,.3);font:15px/1.5 Arial,sans-serif}.nbds-pwa-ios-help button{position:absolute;right:12px;top:8px;border:0;background:transparent;font-size:28px;cursor:pointer}@media(display-mode:standalone){.nbds-pwa-install{display:none!important}body{overscroll-behavior-y:contain}}@media(max-width:640px){.nbds-pwa-install{right:12px;bottom:74px;padding:11px 15px}}


/* v235 mobile-safe portal music volume control */
.home-music-panel input[type="range"]{
  touch-action:none!important;
  pointer-events:auto;
  -webkit-user-select:none;
  user-select:none;
}
.home-music-panel input[type="range"]::-webkit-slider-thumb{
  min-width:24px;
  min-height:24px;
}
.home-music-volume-label{
  font-variant-numeric:tabular-nums;
}
@media(max-width:768px), (pointer:coarse){
  .home-music-panel input[type="range"]{
    height:52px;
    padding:8px 0;
  }
  .home-music-compact-controls{
    position:relative;
    z-index:2;
  }
  .home-music-mini-btn{
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
}

/* v237: announcement management, secure password-manager hints and passkeys */
.nbds-announcement-edit-form {
  margin-top: 22px;
  padding: 20px;
  border: 1px solid rgba(0, 107, 60, .18);
  border-radius: 18px;
  background: #f7fbf8;
}
.nbds-announcement-edit-form[hidden] { display: none !important; }
.nbds-inline-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.is-scope-locked select { opacity: .75; }
.nbds-remember-signin {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: .9rem;
  color: #475569;
  line-height: 1.45;
}
.nbds-remember-signin input { width: 18px; height: 18px; margin-top: 2px; accent-color: #006b3c; }
.nbds-passkey-login-panel {
  margin-top: 20px;
  padding: 18px;
  border: 1px solid rgba(0, 107, 60, .18);
  border-radius: 16px;
  background: linear-gradient(135deg, #f2fbf6, #fff);
  display: grid;
  gap: 10px;
}
.nbds-passkey-login-panel > span { font-weight:600; color: #075b35; }
.passkey-status { min-height: 22px; margin: 4px 0 0; font-weight:600; font-size: .9rem; }
.passkey-status.is-error { color: #b42318; }
.passkey-status.is-success { color: #087443; }
.security-settings-wrap { padding: 42px 18px; min-height: 100vh; }
.security-settings-card { max-width: 720px; }
.passkey-account-summary {
  display: flex;
  gap: 14px;
  align-items: center;
  margin: 22px 0;
  padding: 14px;
  border-radius: 16px;
  background: #f4faf6;
}
.passkey-account-summary div { display: grid; gap: 4px; }
.passkey-account-summary small { color: #64748b; }
.passkey-list { margin-top: 26px; }
.passkey-list-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid #e2e8f0;
}
.passkey-list-item div { display: grid; gap: 4px; }
.passkey-list-item small { color: #64748b; }
.passkey-security-note { margin-top: 22px; }
.nbds-passkey-offer {
  position: fixed;
  right: 22px;
  bottom: 96px;
  z-index: 2147482500;
  width: min(360px, calc(100vw - 28px));
  padding: 18px;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(145deg, #075b35, #00854a);
  box-shadow: 0 18px 50px rgba(0, 64, 36, .3);
  display: grid;
  gap: 8px;
}
.nbds-passkey-offer strong { font-size: 1.05rem; }
.nbds-passkey-offer span { font-size: .9rem; line-height: 1.45; opacity: .92; }
.nbds-passkey-offer a {
  justify-self: start;
  padding: 9px 14px;
  border-radius: 999px;
  background: #fff;
  color: #075b35;
  font-weight:600;
  text-decoration: none;
}
.nbds-passkey-offer-close {
  position: absolute;
  top: 8px;
  right: 10px;
  border: 0;
  color: #fff;
  background: transparent;
  font-size: 24px;
  cursor: pointer;
}
@media (max-width: 720px) {
  .passkey-list-item { align-items: flex-start; flex-direction: column; }
  .passkey-list-item .btn { width: 100%; }
  .nbds-passkey-offer { right: 14px; bottom: 88px; }
}

/* v238: CBT reactivation, branded documents and class leadership board */
.exam-reactivation-details{margin-top:8px;min-width:210px}
.exam-reactivation-details summary{cursor:pointer;font-weight:600;color:#8a3d08;background:#fff4e5;border:1px solid #ffd39a;border-radius:9px;padding:7px 9px;list-style:none;text-align:center}
.exam-reactivation-details summary::-webkit-details-marker{display:none}
.exam-reactivation-form{display:grid;gap:7px;margin-top:8px;padding:10px;border:1px solid #f0d6b5;border-radius:12px;background:#fffaf3}
.exam-reactivation-form label{display:grid;gap:3px;font-size:11px;font-weight:600;color:#68421f}
.exam-reactivation-form input{width:100%;min-width:0;padding:8px;border:1px solid #d9c2a7;border-radius:8px;background:#fff}
.exam-reactivation-form small{font-size:10px;line-height:1.35;color:#7a5a38}

.class-leaderboard-card{margin-top:22px;background:#fff;border:1px solid #d9eee2;border-radius:20px;box-shadow:0 14px 35px rgba(18,72,46,.08);overflow:hidden}
.class-leaderboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px;background:linear-gradient(135deg,#f2fbf6,#fff)}
.class-leaderboard-head>div:first-child>span{display:block;color:#14804a;font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.8px;margin-bottom:5px}
.class-leaderboard-head h2{margin:0;color:#0b4f2d;font-size:24px}
.class-leaderboard-head p{max-width:720px;margin:7px 0 0;color:#617468;line-height:1.55;font-weight:600}
.leaderboard-my-badge{min-width:190px;border-radius:14px;padding:12px 14px;text-align:center;border:1px solid rgba(0,0,0,.07);background:#fff}
.leaderboard-my-badge strong,.leaderboard-my-badge small{display:block}.leaderboard-my-badge strong{font-size:14px}.leaderboard-my-badge small{margin-top:4px;color:#65756b;font-weight:600}
.leaderboard-table-wrap{overflow:auto}
.class-leaderboard-table{width:100%;border-collapse:collapse;min-width:720px}
.class-leaderboard-table th,.class-leaderboard-table td{padding:13px 15px;border-top:1px solid #e5f1e9;text-align:left;vertical-align:middle}
.class-leaderboard-table th{background:#f8fcf9;color:#42604e;font-size:11px;text-transform:uppercase;letter-spacing:.55px}
.class-leaderboard-table td{color:#34493c;font-size:13px}
.class-leaderboard-table tr.is-current-student td{background:#eefaf2}
.leaderboard-student{display:flex;align-items:center;gap:10px}.leaderboard-student>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#0f6f3e;color:#fff;font-weight:650}.leaderboard-student strong,.leaderboard-student small{display:block}.leaderboard-student small{color:#75847b;margin-top:2px;font-size:10px}
.leaderboard-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:650;white-space:nowrap}
.badge-diamond{background:#eaf8ff;color:#0c6287}.badge-gold{background:#fff7d8;color:#8a6500}.badge-silver{background:#eff3f5;color:#55646d}.badge-bronze{background:#fff0e5;color:#8a481e}.badge-rising{background:#fff9df;color:#8b6a00}.badge-determined{background:#ffe9e4;color:#9b3424}.badge-new{background:#edf8ed;color:#417a42}
.exam-print-school-logo{width:54px;height:54px;object-fit:contain;display:block;margin:0 auto 8px}
.cbt-heading-brand{display:flex;align-items:center;gap:14px}.cbt-heading-logo{width:60px;height:60px;object-fit:contain;border-radius:14px;background:#fff;padding:5px}.cbt-timer-card small{display:block;margin-top:4px;font-size:10px;max-width:210px}.cbt-closed-logo{width:76px;height:76px;object-fit:contain;display:block;margin:0 auto 12px}

@media (max-width:760px){
  .class-leaderboard-head{display:grid;padding:17px}.class-leaderboard-head h2{font-size:20px}.leaderboard-my-badge{min-width:0;width:100%}
  .class-leaderboard-table th,.class-leaderboard-table td{padding:11px 10px}
  .cbt-heading-brand{align-items:flex-start}.cbt-heading-logo{width:48px;height:48px}
}

/* v239 dashboard responsiveness: hidden modules do not incur layout/paint cost. */
.student-page:not(.active), .admin-page:not(.active), .teacher-page:not(.active), .parent-page:not(.active) { display:none !important; }
.student-page, .admin-page, .teacher-page, .parent-page { content-visibility:auto; contain-intrinsic-size:900px; }
@media (prefers-reduced-motion: no-preference) { .student-page.active, .admin-page.active, .teacher-page.active, .parent-page.active { animation:nbdsFastPageIn .12s ease-out; } }
@keyframes nbdsFastPageIn { from { opacity:.75; transform:translateY(2px) } to { opacity:1; transform:none } }

/* v242 performance: Admin sections switch without fades, transforms or blocking overlays. */
.admin-oriented-shell .student-page,
.admin-oriented-shell .student-page.active {
  animation: none !important;
  transition: none !important;
  transform: none !important;
}
.admin-oriented-shell .student-page:not(.active) {
  display: none !important;
  content-visibility: hidden;
}
.admin-oriented-shell .student-page.active {
  display: block !important;
  content-visibility: visible;
  contain: layout style paint;
}
.admin-oriented-shell .student-main {
  scroll-behavior: auto !important;
}

/* v244 universal Paystack fee cards */
.nbds-fee-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:16px}.nbds-fee-pay-card{display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid rgba(8,120,63,.18);border-radius:16px;background:#f9fcfa}.nbds-fee-pay-card h3,.nbds-fee-pay-card p{margin:0}.nbds-fee-pay-card strong{font-size:1.6rem;color:#08783f}.nbds-fee-pay-card .btn{margin-top:auto}.nbds-fee-pay-card button:disabled{opacity:.55;cursor:not-allowed}


/* v245: paid fee state and printable receipt action */
.nbds-fee-paid-card {
  border-color: rgba(8, 120, 63, .35);
  background: linear-gradient(180deg, #ffffff 0%, #f0fbf4 100%);
}
.nbds-fee-paid-state {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}
.nbds-fee-paid-state .status-pill {
  font-size: .92rem;
  padding: 8px 13px;
}
.nbds-print-receipt-btn,
.nbds-fee-payment-form .btn {
  width: 100%;
  text-align: center;
  justify-content: center;
}


/* ==========================================================================
   v262 Professional visual system — Montserrat, refined colour and motion
   ========================================================================== */
:root{
  --green-900:#082c24;
  --green-800:#0b4f3f;
  --green-700:#0b7a5a;
  --green-600:#11976f;
  --green-100:#e4f5ee;
  --green-50:#f5fbf8;
  --gold:#d6aa4d;
  --gold-soft:#f7e8bd;
  --navy:#13253d;
  --navy-deep:#0a1728;
  --ink:#17251f;
  --muted:#65736c;
  --line:#d9e5df;
  --surface:#ffffff;
  --surface-soft:#f7faf8;
  --shadow:0 24px 70px rgba(10,47,36,.14);
  --shadow-soft:0 12px 36px rgba(17,45,34,.08);
  --radius:24px;
}
html,body,input,select,textarea,button{
  font-family:'Montserrat','Segoe UI',Roboto,Arial,sans-serif;
}
body{
  font-weight:400;
  color:var(--ink);
  background:
    radial-gradient(circle at 9% 2%,rgba(17,151,111,.13),transparent 29%),
    radial-gradient(circle at 90% 16%,rgba(214,170,77,.10),transparent 24%),
    linear-gradient(180deg,#fbfdfc 0%,#f5faf7 48%,#ffffff 100%);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,h6{
  font-weight:650;
  letter-spacing:-.035em;
  text-wrap:balance;
}
strong,b{font-weight:600}
p{letter-spacing:-.006em}
::selection{background:rgba(17,151,111,.22);color:var(--navy-deep)}
:focus-visible{outline:3px solid rgba(17,151,111,.34);outline-offset:3px}
.top-strip{
  background:linear-gradient(90deg,var(--navy-deep),var(--green-900) 52%,var(--green-800));
  border-bottom:1px solid rgba(255,255,255,.08);
  color:#eaf7f1;
}
header{
  background:rgba(255,255,255,.86);
  border-bottom:1px solid rgba(8,44,36,.08);
  box-shadow:0 8px 30px rgba(10,30,24,.04);
  -webkit-backdrop-filter:blur(18px) saturate(145%);
  backdrop-filter:blur(18px) saturate(145%);
}
.navbar{height:88px}
.brand{color:var(--navy);letter-spacing:-.03em}
.brand-mark{
  border:3px solid rgba(255,255,255,.85);
  background:linear-gradient(145deg,var(--green-600),var(--green-900));
  box-shadow:0 12px 32px rgba(11,122,90,.24),0 0 0 1px rgba(11,79,63,.10);
}
.nav-links{gap:22px;color:#43534b}
.nav-links a{
  position:relative;
  padding:10px 1px;
  transition:color .2s ease,transform .2s ease;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:50%;
  right:50%;
  bottom:4px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--green-600),var(--gold));
  transition:left .24s ease,right .24s ease;
}
.nav-links a:hover{color:var(--green-700);transform:translateY(-1px)}
.nav-links a:hover::after{left:0;right:0}
.btn{
  position:relative;
  overflow:hidden;
  min-height:46px;
  border-radius:14px;
  padding:12px 21px;
  letter-spacing:-.01em;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease;
}
.btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.28) 48%,transparent 66%);
  transform:translateX(-130%);
  transition:transform .55s ease;
  pointer-events:none;
}
.btn:hover::before{transform:translateX(130%)}
.btn:hover{transform:translateY(-2px)}
.btn-primary{
  background:linear-gradient(135deg,var(--green-600),var(--green-800) 70%,var(--navy));
  box-shadow:0 13px 30px rgba(11,122,90,.23);
}
.btn-primary:hover{box-shadow:0 18px 40px rgba(11,122,90,.31)}
.btn-outline{
  background:rgba(255,255,255,.88);
  border:1px solid rgba(11,79,63,.22);
  color:var(--green-900);
  box-shadow:0 7px 20px rgba(16,52,40,.05);
}
.btn-outline:hover{background:#fff;border-color:rgba(11,122,90,.45)}
.menu-btn{border-radius:14px;box-shadow:0 8px 22px rgba(12,42,32,.08)}

/* Home hero with the first uploaded portrait blended into the interface */
.home-hero{
  position:relative;
  isolation:isolate;
  min-height:680px;
  padding:96px 0 78px;
  background:
    linear-gradient(90deg,rgba(8,23,40,.98) 0%,rgba(8,44,36,.94) 43%,rgba(8,44,36,.58) 69%,rgba(8,23,40,.24) 100%),
    url('../../nbds-students-hero-v370.jpg?v=370') right 42%/min(54vw,840px) auto no-repeat,
    linear-gradient(135deg,var(--navy-deep),var(--green-900));
}
.home-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    radial-gradient(circle at 73% 18%,rgba(255,255,255,.16),transparent 22%),
    radial-gradient(circle at 48% 84%,rgba(214,170,77,.14),transparent 30%),
    linear-gradient(180deg,transparent 65%,rgba(5,20,16,.44));
}
.home-hero::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-1px;height:120px;
  z-index:-1;
  background:linear-gradient(180deg,transparent,#f7faf8);
  pointer-events:none;
}
.home-hero .hero-grid{position:relative;z-index:1}
.home-hero .badge{
  color:#f8fffb;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:inset 0 1px rgba(255,255,255,.1);
  backdrop-filter:blur(10px);
}
.home-hero h1{color:#fff;text-shadow:0 12px 40px rgba(0,0,0,.24)}
.home-hero h1 span{color:#9ee5c3}
.home-hero p{color:#dcebe5;max-width:680px}
.home-hero .trust-row{color:#e2eee9}
.home-hero .trust-row b{color:#f0c968}
.home-hero .btn-outline{
  color:#fff;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.32);
}
.home-hero .btn-outline:hover{background:rgba(255,255,255,.17)}
.home-hero .portal-visual{filter:drop-shadow(0 28px 50px rgba(0,0,0,.18))}
.home-hero .dashboard-card{
  background:rgba(255,255,255,.94);
  border-color:rgba(255,255,255,.52);
  box-shadow:0 28px 80px rgba(0,0,0,.28);
  transform:rotate(-1.35deg) translateY(4px);
}
.home-hero .phone-card{
  background:rgba(255,255,255,.96);
  border-color:#101d25;
  box-shadow:0 24px 55px rgba(0,0,0,.30);
}
.hero h1{font-weight:650}
.hero p{line-height:1.75}
.badge{box-shadow:0 8px 20px rgba(11,122,90,.08)}

/* Public-page hero treatment */
.features-page-hero,.about-page-hero,.contact-hero,.faq-page-hero{
  position:relative;
  isolation:isolate;
  background:
    linear-gradient(90deg,rgba(8,23,40,.97),rgba(8,44,36,.91) 52%,rgba(8,44,36,.48)),
    linear-gradient(135deg,var(--navy-deep),var(--green-900));
}
.features-page-hero::after,.about-page-hero::after,.contact-hero::after,.faq-page-hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(circle at 78% 25%,rgba(255,255,255,.13),transparent 22%);
}
.features-page-hero h1,.about-page-hero h1,.contact-hero h1,.faq-page-hero h1{color:#fff}
.features-page-hero h1 span,.about-page-hero h1 span,.contact-hero h1 span,.faq-page-hero h1 span{color:#9ee5c3}
.features-page-hero p,.about-page-hero p,.contact-hero p,.faq-page-hero p,
.features-page-hero .trust-row,.about-page-hero .trust-row,.contact-hero .trust-row,.faq-page-hero .trust-row{color:#dcebe5}
.features-page-hero .badge,.about-page-hero .badge,.contact-hero .badge,.faq-page-hero .badge{
  color:#fff;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18)
}
.features-page-hero .btn-outline,.about-page-hero .btn-outline,.contact-hero .btn-outline,.faq-page-hero .btn-outline{
  background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.28);color:#fff
}

/* Professional cards and interactions */
.section{position:relative;padding:84px 0}
.section-head{max-width:820px}
.section-head h2{color:var(--navy);font-weight:650;letter-spacing:-.045em}
.section-head h2 span{color:var(--green-700)}
.section-head p{line-height:1.75}
.feature,.register-card,.auth-card,.dashboard-panel,.about-card,.timeline-card,.student-card,.student-stat-card{
  border-color:rgba(11,79,63,.10);
  box-shadow:var(--shadow-soft);
}
.feature,.register-card,.about-card,.timeline-card,.student-stat-card,.student-card{
  transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background .24s ease;
}
.feature:hover,.register-card:hover,.about-card:hover,.timeline-card:hover,.student-stat-card:hover,.student-card:hover{
  transform:translateY(-7px);
  border-color:rgba(17,151,111,.28);
  box-shadow:0 24px 55px rgba(13,61,45,.14);
}
.feature-icon,.role-icon,.about-icon{
  background:linear-gradient(145deg,#edf9f4,#dcefe6);
  border:1px solid rgba(11,122,90,.11);
  box-shadow:inset 0 1px #fff,0 10px 24px rgba(11,122,90,.08);
}
.register-note{
  background:rgba(247,251,249,.92);
  border-color:rgba(11,79,63,.12);
  box-shadow:0 12px 34px rgba(15,52,40,.05);
}
.form-group input,.form-group select,.form-group textarea{
  min-height:48px;
  border-color:#d5e1db;
  background:rgba(255,255,255,.96);
  box-shadow:inset 0 1px 2px rgba(10,40,30,.025);
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:#b7cdc2}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  border-color:var(--green-600);
  box-shadow:0 0 0 4px rgba(17,151,111,.12),0 10px 28px rgba(15,70,51,.06);
  background:#fff;
}
.auth-wrap{
  position:relative;
  isolation:isolate;
  background:
    linear-gradient(120deg,rgba(246,251,248,.96),rgba(246,251,248,.77)),
    linear-gradient(135deg,#f6fbf8,#eaf5ef);
}
.auth-card{
  border-color:rgba(11,79,63,.12);
  box-shadow:0 30px 80px rgba(10,49,37,.15);
  backdrop-filter:blur(12px);
}

/* Second uploaded portrait as a softly blended registration background */
#register.section{
  isolation:isolate;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(8,23,40,.97),rgba(8,44,36,.90) 54%,rgba(8,44,36,.53)),
    linear-gradient(135deg,var(--navy-deep),var(--green-900));
}
#register.section::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(circle at 20% 10%,rgba(214,170,77,.12),transparent 27%);
}
#register .section-head h2,#register .section-head p{color:#fff}
#register .section-head h2 span{color:#9ee5c3}
#register .register-grid,#register .register-note{position:relative;z-index:1}
#register .register-card{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);
  border-color:rgba(255,255,255,.40);
}
#register .register-note{
  color:#e8f4ef;
  background:rgba(255,255,255,.09);
  border-color:rgba(255,255,255,.17);
}

/* Founder feature */
.founder-spotlight-section{
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 18%,rgba(17,151,111,.12),transparent 26%),
    radial-gradient(circle at 94% 88%,rgba(214,170,77,.13),transparent 27%),
    #f8fbf9;
}
.founder-spotlight{
  display:grid;
  grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);
  gap:clamp(36px,6vw,82px);
  align-items:center;
  padding:clamp(24px,4vw,48px);
  border:1px solid rgba(11,79,63,.10);
  border-radius:36px;
  background:rgba(255,255,255,.82);
  box-shadow:0 30px 90px rgba(12,54,40,.12);
  backdrop-filter:blur(18px);
}
.founder-portrait-wrap{
  position:relative;
  min-height:560px;
  border-radius:30px;
  overflow:hidden;
  background:linear-gradient(145deg,var(--navy),var(--green-900));
  box-shadow:0 30px 65px rgba(9,35,27,.24);
}
.founder-portrait-wrap picture,.founder-portrait-wrap img{display:block;width:100%;height:100%}
.founder-portrait-wrap img{position:absolute;inset:0;object-fit:contain;object-position:center center;background:linear-gradient(145deg,#30343b,#151b25);transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.founder-spotlight:hover .founder-portrait-wrap img{transform:scale(1.035)}
.founder-portrait-wrap::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 48%,rgba(7,24,20,.86));
}
.founder-photo-accent{
  position:absolute;right:-52px;top:-52px;width:170px;height:170px;border-radius:50%;
  border:28px solid rgba(214,170,77,.22);z-index:2;
}
.founder-photo-label{
  position:absolute;left:24px;right:24px;bottom:22px;z-index:3;color:#fff;
}
.founder-photo-label small{display:block;color:#cce8dc;text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;margin-bottom:5px}
.founder-photo-label strong{font-size:clamp(1.05rem,2vw,1.38rem)}
.section-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
  color:var(--green-700);
  font-size:.78rem;
  font-weight:650;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.section-kicker::before{content:"";width:34px;height:2px;background:linear-gradient(90deg,var(--green-600),var(--gold))}
.founder-copy h2,.about-founder-content h2{
  color:var(--navy);
  font-size:clamp(2rem,4vw,4.1rem);
  line-height:1.06;
  margin-bottom:20px;
}
.founder-copy p,.about-founder-content p{color:var(--muted);font-size:1.02rem;line-height:1.82;margin-bottom:16px}
.founder-values{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}
.founder-values span{
  padding:9px 13px;
  border-radius:999px;
  background:var(--green-50);
  border:1px solid rgba(11,122,90,.15);
  color:var(--green-800);
  font-size:.82rem;
  font-weight:600;
}
.founder-actions{margin-top:24px;margin-bottom:0}

/* About founder page */
.about-founder-section{
  background:
    linear-gradient(180deg,#fff,#f4faf7);
}
.about-founder-card{
  display:grid;
  grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);
  gap:clamp(32px,6vw,78px);
  align-items:center;
  padding:clamp(24px,4vw,52px);
  border-radius:38px;
  background:linear-gradient(145deg,#fff,#f5faf7);
  border:1px solid rgba(11,79,63,.10);
  box-shadow:0 28px 80px rgba(10,49,37,.12);
}
.about-founder-media{
  position:relative;
  min-height:620px;
  overflow:hidden;
  border-radius:30px;
  background:var(--navy);
  box-shadow:0 28px 65px rgba(10,35,29,.23);
}
.about-founder-media picture,.about-founder-media img{display:block;width:100%;height:100%}
.about-founder-media img{position:absolute;inset:0;object-fit:contain;object-position:center center;background:linear-gradient(145deg,#30343b,#151b25)}
.about-founder-media::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.22);border-radius:inherit;pointer-events:none}
.founder-role{color:var(--green-700)!important;font-weight:600}

/* Dashboard polish */
.student-app-shell{
  background:
    radial-gradient(circle at 84% 5%,rgba(17,151,111,.09),transparent 24%),
    linear-gradient(180deg,#f8fbf9,#f1f7f4);
}
.student-sidebar{
  background:rgba(255,255,255,.92);
  border-right:1px solid rgba(11,79,63,.09);
  box-shadow:12px 0 40px rgba(13,48,37,.04);
  backdrop-filter:blur(16px);
}
.student-brand-mark,.student-avatar{
  background:linear-gradient(145deg,var(--green-600),var(--green-900));
  box-shadow:0 12px 26px rgba(11,122,90,.18);
}
.student-mini-profile{
  background:linear-gradient(145deg,#f7fbf9,#ecf6f1);
  border-color:rgba(11,79,63,.09);
}
.student-nav-link{
  position:relative;
  transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;
}
.student-nav-link:hover{
  transform:translateX(4px);
  background:#edf7f2;
  color:var(--green-800);
}
.student-nav-link.active{
  background:linear-gradient(135deg,var(--green-700),var(--green-900));
  color:#fff;
  box-shadow:0 12px 28px rgba(11,122,90,.18);
}
.student-main{background:transparent}
.student-topbar{
  background:rgba(255,255,255,.84);
  border:1px solid rgba(11,79,63,.08);
  box-shadow:0 10px 30px rgba(11,45,34,.06);
  backdrop-filter:blur(16px);
}
.student-cover,.student-page-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:linear-gradient(135deg,var(--navy-deep),var(--green-900) 60%,var(--green-700));
  box-shadow:0 28px 65px rgba(8,44,36,.20);
}
.student-cover::before,.student-page-hero::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background:none;
  opacity:0;
  mix-blend-mode:normal;
}
.student-cover::after,.student-page-hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(circle at 78% 18%,rgba(255,255,255,.15),transparent 24%);
}
.student-stat-card,.student-card,.dashboard-panel,.data-table{
  background:rgba(255,255,255,.94);
  border-color:rgba(11,79,63,.09);
  box-shadow:0 14px 38px rgba(12,49,37,.07);
}
.student-stat-card::before{
  background:linear-gradient(90deg,var(--green-600),var(--gold));
}
.data-table tbody tr{transition:background .18s ease,transform .18s ease}
.data-table tbody tr:hover{background:#f1f9f5}
.data-table th{background:linear-gradient(180deg,#f3faf6,#edf6f1)}
.sidebar{
  background:linear-gradient(180deg,var(--navy-deep),var(--green-900));
  box-shadow:0 25px 65px rgba(7,35,27,.24);
}
.sidebar a{transition:transform .2s ease,background .2s ease}
.sidebar a:hover{transform:translateX(4px);background:rgba(255,255,255,.16)}

/* Footer */
.site-footer,footer{
  background:
    radial-gradient(circle at 8% 14%,rgba(17,151,111,.18),transparent 26%),
    linear-gradient(135deg,#071522,#071f18 55%,#0b3328);
  border-top:1px solid rgba(255,255,255,.08);
}
.site-footer a,footer a{transition:color .2s ease,transform .2s ease}
.site-footer a:hover,footer a:hover{color:#fff;transform:translateX(2px)}

/* Reduced-motion accessibility */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
@media (max-width:980px){
  .home-hero{
    min-height:auto;
    background:
      linear-gradient(180deg,rgba(8,23,40,.94),rgba(8,44,36,.91)),
      url('../../nbds-students-hero-v370.jpg?v=370') center 24%/cover no-repeat;
  }
  .home-hero .hero-grid{grid-template-columns:1fr}
  .founder-spotlight,.about-founder-card{grid-template-columns:1fr}
  .founder-portrait-wrap{min-height:580px}
  .about-founder-media{min-height:680px}
  #register.section{
    background:
      linear-gradient(180deg,rgba(8,23,40,.95),rgba(8,44,36,.90)),
      linear-gradient(135deg,var(--navy-deep),var(--green-900));
  }
}
@media (max-width:620px){
  .navbar{height:78px}
  .home-hero{padding:64px 0 56px}
  .home-hero h1{font-size:clamp(2.4rem,12vw,4rem)}
  .section{padding:66px 0}
  .founder-spotlight,.about-founder-card{padding:18px;border-radius:26px}
  .founder-portrait-wrap{min-height:460px;border-radius:22px}
  .about-founder-media{min-height:510px;border-radius:22px}
  .founder-copy h2,.about-founder-content h2{font-size:clamp(2rem,10vw,3rem)}
  .founder-actions .btn{width:100%}
}



/* v263: hosting-safe founder imagery and upright portrait presentation */
.founder-portrait-wrap img,
.about-founder-media img{
  image-orientation:from-image;
  transform-origin:center center;
}
.founder-portrait-wrap picture,
.about-founder-media picture{
  position:absolute;
  inset:0;
  display:block;
}
.nav-actions:empty{display:none}


/* v265: fixed public desktop menu
   The information strip scrolls normally; the main menu docks to the top. */
.nbds-public-header-spacer{display:none}

@media (min-width:981px){
  html.nbds-standard-page-root{
    scroll-padding-top:calc(var(--nbds-public-menu-height, 88px) + 18px)!important;
  }

  body.nbds-standard-page-body{
    padding-top:0!important;
  }

  body.nbds-standard-page-body > .top-strip{
    position:relative!important;
    inset:auto!important;
    z-index:10020!important;
  }

  body.nbds-standard-page-body > header{
    position:fixed!important;
    top:var(--nbds-public-top-strip-height, 40px)!important;
    right:0!important;
    left:0!important;
    width:100%!important;
    z-index:10010!important;
    transform:translateZ(0);
    transition:top .22s ease,box-shadow .22s ease,background-color .22s ease!important;
  }

  html.nbds-public-menu-docked body.nbds-standard-page-body > header{
    top:0!important;
    background:rgba(255,255,255,.94)!important;
    box-shadow:0 14px 38px rgba(8,44,36,.12)!important;
  }

  body.nbds-standard-page-body > header .navbar{
    width:min(1180px,92%)!important;
    margin-inline:auto!important;
  }

  body.nbds-standard-page-body > .nbds-public-header-spacer{
    display:block!important;
    width:100%!important;
    height:var(--nbds-public-menu-height, 88px)!important;
    pointer-events:none!important;
  }
}

@media (max-width:980px){
  body.nbds-standard-page-body{
    padding-top:0!important;
  }

  body.nbds-standard-page-body > .top-strip{
    position:relative!important;
    inset:auto!important;
  }

  body.nbds-standard-page-body > header{
    position:sticky!important;
    top:0!important;
    right:auto!important;
    left:auto!important;
    width:auto!important;
  }

  body.nbds-standard-page-body > .nbds-public-header-spacer{
    display:none!important;
  }
}

@media print{
  body.nbds-standard-page-body > header{
    position:static!important;
  }
  body.nbds-standard-page-body > .nbds-public-header-spacer{
    display:none!important;
  }
}

/* v268 Workflow Hub sidebar consistency for every portal role */
.workflow-hub-shell .workflow-role-sidebar{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:0 !important;
  box-sizing:border-box !important;
}
.workflow-hub-shell .workflow-role-sidebar .student-brand,
.workflow-hub-shell .workflow-role-sidebar .student-mini-profile,
.workflow-hub-shell .workflow-role-sidebar .student-nav-group,
.workflow-hub-shell .workflow-role-sidebar .student-nav-link,
.workflow-hub-shell .workflow-role-sidebar .student-logout{
  width:100% !important;
  box-sizing:border-box !important;
}
.workflow-hub-shell .workflow-role-sidebar .student-nav-group{
  display:block !important;
  flex:none !important;
  margin:0 0 18px !important;
  padding:0 !important;
}
.workflow-hub-shell .workflow-role-sidebar .student-nav-group > p{
  display:block !important;
  width:100% !important;
  margin:0 0 8px !important;
  white-space:nowrap !important;
}
.workflow-hub-shell .workflow-role-sidebar .student-nav-link,
.workflow-hub-shell .workflow-role-sidebar .student-logout{
  display:grid !important;
  grid-template-columns:22px minmax(0,1fr) !important;
  align-items:center !important;
  justify-content:stretch !important;
  column-gap:12px !important;
  min-height:42px !important;
  margin:0 0 4px !important;
  padding:10px 13px !important;
  position:static !important;
  inset:auto !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  flex:none !important;
  line-height:1.3 !important;
}
.workflow-hub-shell .workflow-role-sidebar .student-nav-link .nav-icon,
.workflow-hub-shell .workflow-role-sidebar .student-logout .nav-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:20px !important;
  min-width:20px !important;
  max-width:20px !important;
  height:20px !important;
  min-height:20px !important;
  margin:0 !important;
  padding:0 !important;
  opacity:1 !important;
  visibility:visible !important;
  overflow:visible !important;
}
.workflow-hub-shell .workflow-role-sidebar .nav-icon svg{
  display:block !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.7 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  opacity:1 !important;
  visibility:visible !important;
}
.workflow-hub-shell .workflow-role-sidebar .student-nav-link > .nav-label,
.workflow-hub-shell .workflow-role-sidebar .student-logout > .nav-label,
.workflow-hub-shell .workflow-role-sidebar .student-nav-link > span:last-child,
.workflow-hub-shell .workflow-role-sidebar .student-logout > span:last-child{
  display:block !important;
  min-width:0 !important;
  width:auto !important;
  margin:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  opacity:1 !important;
  visibility:visible !important;
  text-align:left !important;
}
.workflow-hub-shell .workflow-role-sidebar .student-logout-bottom{
  position:static !important;
  bottom:auto !important;
  margin-top:auto !important;
}
@media (max-width:900px){
  .workflow-hub-shell .workflow-role-sidebar .student-nav-link,
  .workflow-hub-shell .workflow-role-sidebar .student-logout{
    grid-template-columns:22px minmax(0,1fr) !important;
  }
}

/* v278 verified tutor marketplace and monthly live-class subscriptions */
.live-market-body{
  overflow-y:auto !important;
  overscroll-behavior-y:auto;
  scrollbar-gutter:stable;
  background:linear-gradient(145deg,#f2f7f4 0%,#eef4f8 52%,#fff9e9 100%);
}
.live-market-main{min-width:0;padding-bottom:72px}
.live-market-hero{
  background:
    radial-gradient(circle at 86% 14%,rgba(255,210,74,.25),transparent 28%),
    linear-gradient(120deg,#073b2b 0%,#0b7248 58%,#0d8a5a 100%);
  position:relative;overflow:hidden
}
.live-market-hero:after{content:"";position:absolute;width:260px;height:260px;border:44px solid rgba(255,255,255,.08);border-radius:50%;right:-80px;bottom:-120px}
.live-market-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:18px 0}
.live-market-summary-grid>.student-card{margin:0;min-height:148px}
.live-subscription-card{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid rgba(10,109,70,.14)}
.live-subscription-card.is-active{box-shadow:inset 4px 0 #0b8f5a}
.live-subscription-card.is-expired{box-shadow:inset 4px 0 #c58a00}
.live-price{text-align:right}.live-price strong{display:block;font-size:2rem;color:#0a6945}.live-price span{font-size:.82rem;color:#65766c}
.live-subscription-action{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(135deg,#fff 0%,#f0fbf6 100%)}
.live-inline-filter{max-width:290px;min-width:220px}
.live-tutor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:18px}
.live-tutor-card{display:flex;flex-direction:column;min-width:0;color:inherit;text-decoration:none;background:#fff;border:1px solid #dce9e2;border-radius:22px;overflow:hidden;box-shadow:0 13px 35px rgba(25,57,43,.08);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.live-tutor-card:hover{transform:translateY(-6px);box-shadow:0 22px 46px rgba(19,73,49,.16);border-color:#92c9ad}
.live-tutor-photo{position:relative;aspect-ratio:4/3;background:linear-gradient(145deg,#dceee5,#f6e9b9);display:grid;place-items:center;overflow:hidden}
.live-tutor-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .35s ease}
.live-tutor-card:hover .live-tutor-photo img{transform:scale(1.035)}
.live-tutor-photo>span{font-size:4rem;font-weight:700;color:#0b7049}
.live-verified-badge{position:absolute;top:12px;right:12px;background:#087748;color:#fff;padding:7px 11px;border-radius:999px;font-size:.77rem;font-weight:650;box-shadow:0 7px 18px rgba(0,0,0,.16);z-index:2}
.live-tutor-card-body{display:flex;flex-direction:column;gap:9px;padding:18px;height:100%}
.live-tutor-card-body>small{color:#0a7d4f;font-weight:650;text-transform:uppercase;letter-spacing:.06em}.live-tutor-card-body h3{margin:0;color:#183629;font-size:1.25rem}.live-tutor-card-body p{margin:0;color:#64736b;line-height:1.62}.live-tutor-headline{font-weight:560;color:#314e40!important}.live-open-profile{margin-top:auto;color:#0a754a;padding-top:8px}
.live-tutor-tags{display:flex;flex-wrap:wrap;gap:7px}.live-tutor-tags span{background:#eef7f2;color:#28513e;border:1px solid #dcebe3;padding:5px 8px;border-radius:999px;font-size:.76rem}
.live-full-profile{display:grid;grid-template-columns:minmax(240px,360px) minmax(0,1fr);gap:34px;align-items:start}
.live-profile-photo{position:relative;border-radius:24px;overflow:hidden;background:#e6f3ec;aspect-ratio:4/5;display:grid;place-items:center}.live-profile-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}.live-profile-photo>span{font-size:6rem;color:#0b7049;font-weight:700}
.live-profile-details>small{color:#0b7e50;text-transform:uppercase;letter-spacing:.07em;font-weight:650}.live-profile-details h1{font-size:clamp(2rem,4vw,3.6rem);line-height:1.04;margin:8px 0 12px;color:#173629}.live-profile-details h3{font-weight:550;color:#4f695d}.live-profile-bio{font-size:1.03rem;line-height:1.85;color:#40554b}
.live-profile-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0 0}.live-profile-list>div{padding:14px;border-radius:14px;background:#f5f9f7;border:1px solid #e1ece6}.live-profile-list dt{font-size:.76rem;color:#718078;text-transform:uppercase;letter-spacing:.05em}.live-profile-list dd{margin:5px 0 0;color:#263f32;font-weight:560;line-height:1.5}
.live-payment-gate{padding:28px;border-radius:18px;background:linear-gradient(135deg,#fff7df,#fff);border:1px solid #f0d48a;text-align:center}
.live-booking-list{display:grid;gap:15px;margin-top:16px}.live-booking-card{padding:18px;border-radius:18px;border:1px solid #dfeae4;background:linear-gradient(135deg,#fff,#f9fcfa)}.live-booking-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.live-booking-card-head>div{display:flex;align-items:center;gap:12px}.live-booking-card h3{margin:0 0 4px}.live-booking-card p{margin:0}.live-booking-meta{display:flex;flex-wrap:wrap;gap:8px;margin:13px 0}.live-booking-meta span{padding:6px 9px;border-radius:9px;background:#edf6f1;color:#365446;font-size:.82rem}.live-booking-note{padding:12px 14px;border-left:3px solid #0a7a4d;background:#f3f8f5;border-radius:0 10px 10px 0;line-height:1.6}.live-booked-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:10px}.live-accept-panel{margin:12px 0}.live-accept-panel summary{display:inline-flex;list-style:none;cursor:pointer}.live-accept-panel form{margin-top:14px;padding:16px;background:#f4f9f6;border-radius:14px}.live-decline-form{display:flex;gap:10px;align-items:center}.live-decline-form input{flex:1}
.live-completion-card{display:flex;align-items:center;gap:18px}.live-completion-ring{--completion:0;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#0a8352 calc(var(--completion)*1%),#e5eee9 0);position:relative;flex:0 0 auto}.live-completion-ring:before{content:"";position:absolute;inset:8px;border-radius:50%;background:#fff}.live-completion-ring strong{position:relative;color:#0b7049;font-size:1.2rem}.live-missing-list{margin-top:16px;padding:13px 15px;border-radius:12px;background:#fff5da;color:#71520a}.live-apply-form{margin-top:16px}
.live-admin-tabs{position:sticky;top:10px;z-index:10;display:flex;gap:8px;overflow-x:auto;padding:10px;margin:18px 0;border:1px solid rgba(12,96,63,.12);border-radius:16px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(30,66,48,.08)}.live-admin-tabs a{white-space:nowrap;padding:8px 12px;border-radius:10px;text-decoration:none;color:#345344;font-weight:560}.live-admin-tabs a:hover{background:#e9f5ee;color:#076c44}
.live-admin-tutor-list{display:grid;gap:16px;margin-top:16px}.live-admin-tutor-card{padding:18px;border:1px solid #dde9e3;border-radius:18px;background:#fff}.live-admin-tutor-person{display:flex;gap:14px;align-items:center}.live-admin-tutor-person img,.live-admin-tutor-person>span{width:72px;height:72px;border-radius:18px;object-fit:cover;object-position:center top;background:#e8f3ed;display:grid;place-items:center;font-size:1.7rem;color:#0a7148}.live-admin-tutor-person h3{margin:0}.live-verified-inline{font-size:.72rem;background:#087a4b;color:#fff;border-radius:999px;padding:4px 7px;white-space:nowrap}.live-completion-bar{height:8px;border-radius:999px;background:#e6eee9;overflow:hidden;margin:15px 0 6px}.live-completion-bar span{display:block;height:100%;background:linear-gradient(90deg,#0a7148,#20ae70);border-radius:inherit}.live-admin-actions{display:grid;grid-template-columns:minmax(160px,1fr) auto auto auto;gap:9px;align-items:center}.live-admin-actions input{min-width:0}.live-child-switch{display:flex;align-items:center;gap:14px}.live-child-switch label{font-weight:650}.live-child-switch select{max-width:420px}
@media(max-width:1150px){.live-tutor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.live-market-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.live-market-summary-grid>:first-child{grid-column:1/-1}}
@media(max-width:800px){.live-market-main{padding-left:14px!important;padding-right:14px!important}.live-market-summary-grid,.live-tutor-grid,.live-full-profile,.live-profile-list{grid-template-columns:1fr}.live-subscription-action,.live-subscription-card,.live-booked-actions{align-items:flex-start;flex-direction:column}.live-price{text-align:left}.live-inline-filter{width:100%;max-width:none}.live-admin-actions{grid-template-columns:1fr}.live-booking-card-head{flex-direction:column}.live-decline-form{align-items:stretch;flex-direction:column}.live-profile-photo{max-width:430px;width:100%;margin:auto}.live-admin-tabs{top:64px}.live-child-switch{align-items:stretch;flex-direction:column}.live-child-switch select{max-width:none}}
@media(max-width:520px){.live-market-summary-grid{grid-template-columns:1fr}.live-market-summary-grid>:first-child{grid-column:auto}.live-tutor-grid{grid-template-columns:1fr}.live-profile-details h1{font-size:2.05rem}.live-tutor-card{border-radius:18px}.live-admin-tutor-person{align-items:flex-start}.live-admin-tutor-person img,.live-admin-tutor-person>span{width:58px;height:58px;border-radius:14px}.live-subscription-card{padding:18px}.live-booking-meta{flex-direction:column;align-items:flex-start}}

/* v278 dashboard links and secure subscription checkout */
.student-stat-link{color:inherit;text-decoration:none;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.student-stat-link:hover,.student-stat-link:focus-visible{transform:translateY(-3px);box-shadow:0 16px 34px rgba(14,77,51,.14);border-color:#99cbb2;outline:none}
.live-paystack-form{margin:0;display:inline-flex}
.live-paystack-form .btn{white-space:nowrap}
@media(max-width:800px){.live-paystack-form,.live-paystack-form .btn{width:100%;justify-content:center}}


/* v279 automatic mobile sidebar label restoration for every user role/page */
@media (max-width:900px){
  body.nbds-dashboard-ready .student-sidebar .student-nav-link > span:not(.nav-icon),
  body.nbds-dashboard-ready .student-sidebar .student-logout > span:not(.nav-icon),
  body.nbds-mobile-dashboard-ready .student-sidebar .student-nav-link > span:not(.nav-icon),
  body.nbds-mobile-dashboard-ready .student-sidebar .student-logout > span:not(.nav-icon),
  body.nbds-dashboard-drawer-open .student-sidebar .student-nav-link > .nav-label,
  body.nbds-dashboard-drawer-open .student-sidebar .student-logout > .nav-label{
    display:inline-flex!important;
    align-items:center!important;
    flex:1 1 auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    clip:auto!important;
    clip-path:none!important;
    white-space:normal!important;
    text-indent:0!important;
    font-size:inherit!important;
    line-height:1.25!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    color:inherit!important;
  }
  body.nbds-dashboard-ready .student-sidebar .student-nav-link,
  body.nbds-dashboard-ready .student-sidebar .student-logout{
    grid-template-columns:22px minmax(0,1fr)!important;
    gap:12px!important;
    text-align:left!important;
    font-size:.86rem!important;
  }
}
html.nbds-requested-mobile-site body .student-sidebar .student-nav-link > span:not(.nav-icon),
html.nbds-requested-mobile-site body .student-sidebar .student-logout > span:not(.nav-icon){
  display:inline-flex!important;
  flex:1 1 auto!important;
  width:auto!important;
  max-width:none!important;
  overflow:visible!important;
  white-space:normal!important;
  font-size:inherit!important;
  opacity:1!important;
  visibility:visible!important;
  color:inherit!important;
}

/* v280 UNIVERSAL MOBILE CORE-CONTROL AND PAGE-LABEL REPAIR
   This final override is intentionally last in the stylesheet so every role and
   every dashboard subpage gets the same reliable drawer layout. */
@media (max-width:900px){
  body.nbds-mobile-menu-v280-ready{
    overflow-x:hidden!important;
  }
  body.nbds-mobile-menu-v280-ready.nbds-mobile-menu-open{
    overflow:hidden!important;
    touch-action:none!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar,
  body.nbds-mobile-menu-v280-ready .admin-oriented-sidebar,
  body.nbds-mobile-menu-v280-ready .parent-sidebar,
  body.nbds-mobile-menu-v280-ready .teacher-sidebar,
  body.nbds-mobile-menu-v280-ready .static-dashboard-sidebar{
    position:fixed!important;
    inset:0 auto 0 0!important;
    width:min(88vw,340px)!important;
    max-width:340px!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    padding:76px 16px 28px!important;
    display:block!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;
    -webkit-overflow-scrolling:touch!important;
    scroll-behavior:auto!important;
    scroll-padding-top:76px!important;
    transform:translate3d(-115%,0,0)!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:none!important;
    z-index:2147482000!important;
    border:0!important;
    border-right:1px solid rgba(15,23,42,.1)!important;
    border-radius:0 24px 24px 0!important;
    background:#fff!important;
    box-shadow:30px 0 80px rgba(15,23,42,.3)!important;
  }
  body.nbds-mobile-menu-v280-ready.nbds-dashboard-drawer-open .student-sidebar,
  body.nbds-mobile-menu-v280-ready.nbds-mobile-sidebar-open .student-sidebar,
  body.nbds-mobile-menu-v280-ready .student-sidebar.nbds-dashboard-drawer-open-panel,
  body.nbds-mobile-menu-v280-ready .student-sidebar.nbds-mobile-open{
    transform:translate3d(0,0,0)!important;
    pointer-events:auto!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar > *,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-brand,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-mini-profile,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group > p,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-link,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-logout{
    visibility:visible!important;
    opacity:1!important;
    max-height:none!important;
    clip:auto!important;
    clip-path:none!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-brand{
    display:flex!important;
    width:100%!important;
    margin:0 0 14px!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-brand > span:not(.student-brand-mark):not(.logo-mark){
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    white-space:normal!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-mini-profile{
    display:flex!important;
    width:100%!important;
    margin:0 0 14px!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-mini-profile > div,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-mini-profile strong,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-mini-profile small{
    display:block!important;
    min-width:0!important;
    visibility:visible!important;
    opacity:1!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group.nbds-core-control-group{
    position:static!important;
    float:none!important;
    clear:both!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    margin:18px 0!important;
    padding:0!important;
    overflow:visible!important;
    white-space:normal!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group:first-of-type,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group.nbds-core-control-group{
    margin-top:10px!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group > p{
    position:static!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    margin:0 0 8px 6px!important;
    padding:0!important;
    overflow:visible!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    color:#768399!important;
    font-size:.69rem!important;
    font-weight:800!important;
    line-height:1.35!important;
    letter-spacing:1.8px!important;
    text-transform:uppercase!important;
    white-space:normal!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-link,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-logout{
    position:relative!important;
    display:grid!important;
    grid-template-columns:24px minmax(0,1fr)!important;
    align-items:center!important;
    justify-content:stretch!important;
    column-gap:12px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    min-height:48px!important;
    margin:4px 0!important;
    padding:12px 13px!important;
    overflow:visible!important;
    white-space:normal!important;
    text-align:left!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-link > .nav-icon,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-logout > .nav-icon{
    display:grid!important;
    place-items:center!important;
    flex:0 0 24px!important;
    width:24px!important;
    min-width:24px!important;
    height:24px!important;
    visibility:visible!important;
    opacity:1!important;
  }
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-link > span:not(.nav-icon),
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-logout > span:not(.nav-icon),
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-link > .nav-label,
  body.nbds-mobile-menu-v280-ready .student-sidebar .student-logout > .nav-label{
    position:static!important;
    display:block!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    clip:auto!important;
    clip-path:none!important;
    color:inherit!important;
    font-size:.86rem!important;
    font-weight:650!important;
    line-height:1.35!important;
    letter-spacing:normal!important;
    text-indent:0!important;
    text-overflow:clip!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    transform:none!important;
    visibility:visible!important;
    opacity:1!important;
  }
  body.nbds-mobile-menu-v280-ready #nbdsMobileSidebarToggle,
  body.nbds-mobile-menu-v280-ready .nbds-v280-menu-toggle{
    position:fixed!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    left:12px!important;
    top:max(12px,env(safe-area-inset-top))!important;
    z-index:2147483000!important;
    min-width:96px!important;
    height:46px!important;
    padding:0 15px!important;
    border:0!important;
    border-radius:999px!important;
    background:linear-gradient(135deg,#08773f,#064d2a)!important;
    color:#fff!important;
    font-family:'Montserrat','Segoe UI',Roboto,Arial,sans-serif!important;
    font-weight:850!important;
    line-height:1!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:transparent!important;
  }
  body.nbds-mobile-menu-v280-ready.nbds-mobile-menu-open #nbdsMobileSidebarToggle,
  body.nbds-mobile-menu-v280-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarToggle{
    background:#b42318!important;
  }
  body.nbds-mobile-menu-v280-ready #nbdsMobileSidebarBackdrop,
  body.nbds-mobile-menu-v280-ready .nbds-v280-menu-backdrop{
    position:fixed!important;
    inset:0!important;
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    z-index:2147481000!important;
    background:rgba(2,6,23,.5)!important;
    backdrop-filter:blur(3px)!important;
  }
  body.nbds-mobile-menu-v280-ready.nbds-dashboard-drawer-open #nbdsMobileSidebarBackdrop,
  body.nbds-mobile-menu-v280-ready.nbds-mobile-sidebar-open #nbdsMobileSidebarBackdrop,
  body.nbds-mobile-menu-v280-ready.nbds-mobile-menu-open #nbdsMobileSidebarBackdrop{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
}

html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar{
  transform:translate3d(-115%,0,0)!important;
}
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready.nbds-dashboard-drawer-open .student-sidebar,
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready.nbds-mobile-sidebar-open .student-sidebar,
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar.nbds-dashboard-drawer-open-panel,
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar.nbds-mobile-open{
  transform:translate3d(0,0,0)!important;
}

/* v280: temporary security prompts must not cover the open dashboard drawer. */
@media (max-width:900px){
  body.nbds-mobile-menu-v280-ready.nbds-mobile-menu-open .nbds-passkey-offer,
  body.nbds-mobile-menu-v280-ready.nbds-dashboard-drawer-open .nbds-passkey-offer,
  body.nbds-mobile-menu-v280-ready.nbds-mobile-sidebar-open .nbds-passkey-offer{
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    transform:translateY(18px)!important;
  }
}

/* v280 requested-mobile mode can use a desktop-sized CSS viewport. */
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group,
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group.nbds-core-control-group{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  margin:18px 0!important;
  padding:0!important;
  overflow:visible!important;
  visibility:visible!important;
  opacity:1!important;
}
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group:first-of-type,
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group.nbds-core-control-group{
  margin-top:10px!important;
}
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-group > p{
  display:block!important;
  position:static!important;
  width:100%!important;
  height:auto!important;
  margin:0 0 8px 6px!important;
  padding:0!important;
  overflow:visible!important;
  visibility:visible!important;
  opacity:1!important;
  white-space:normal!important;
}
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-link,
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar .student-logout{
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr)!important;
  width:100%!important;
  min-width:0!important;
  overflow:visible!important;
}
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar .student-nav-link > span:not(.nav-icon),
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar .student-logout > span:not(.nav-icon),
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready .student-sidebar .nav-label{
  display:block!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  overflow:visible!important;
  visibility:visible!important;
  opacity:1!important;
  white-space:normal!important;
  text-indent:0!important;
}
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready.nbds-mobile-menu-open .nbds-passkey-offer,
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready.nbds-dashboard-drawer-open .nbds-passkey-offer,
html.nbds-requested-mobile-site body.nbds-mobile-menu-v280-ready.nbds-mobile-sidebar-open .nbds-passkey-offer{
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}


/* v282 homepage live-class subscription, payment and always-on welcome */
.nbds-subscription-section{background:linear-gradient(180deg,#eff9f3,#f8fbf9);border-top:1px solid #d8eadf;border-bottom:1px solid #d8eadf}
.subscription-heading{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:30px;align-items:center;margin-bottom:28px}.subscription-heading h2{font-size:clamp(2rem,4vw,3.6rem);line-height:1.08;margin:12px 0}.subscription-heading h2 span{color:#087844}.subscription-heading p{max-width:900px;color:#556b60;line-height:1.75}.subscription-price-card{padding:26px;border-radius:24px;background:linear-gradient(145deg,#063d2b,#0b8651);color:#fff;box-shadow:0 20px 45px rgba(5,74,45,.22);display:grid;gap:4px;text-align:center}.subscription-price-card small{text-transform:uppercase;letter-spacing:.09em;color:#d8f5e5}.subscription-price-card strong{font-size:3rem;line-height:1}.subscription-price-card span{color:#d6eee1}.subscription-price-card b{margin-top:10px;padding:9px;border-radius:999px;background:#ffdd72;color:#4e3a00}
.subscription-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,.7fr);gap:24px;align-items:start}.subscription-benefits,.home-subscription-checkout{background:#fff;border:1px solid #d5e7dc;border-radius:24px;padding:clamp(22px,3vw,34px);box-shadow:0 16px 45px rgba(20,73,46,.08)}.subscription-benefits h3,.home-subscription-checkout h3{margin:0 0 18px;color:#163c2d;font-size:1.55rem}.subscription-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.subscription-feature-grid>div{display:flex;gap:10px;padding:14px;border-radius:16px;background:#f2f9f5;border:1px solid #e0eee6}.subscription-feature-grid>div>span{width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:50%;background:#0a8650;color:#fff;font-weight:700}.subscription-feature-grid p{margin:0;display:grid;gap:4px}.subscription-feature-grid strong{color:#16432f}.subscription-feature-grid small{color:#607269;line-height:1.5}.subscription-note{margin-top:16px;padding:14px;border-radius:14px;background:#fff8de;color:#664d00;line-height:1.55}.checkout-title>span{display:inline-flex;padding:7px 10px;border-radius:999px;background:#e8f7ef;color:#087844;font-size:.75rem;font-weight:700;text-transform:uppercase}.checkout-title h3{margin:12px 0 8px}.checkout-title p{color:#607269;line-height:1.6}.home-payment-mode{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0}.home-payment-mode label{cursor:pointer}.home-payment-mode input{position:absolute;opacity:0;pointer-events:none}.home-payment-mode span{display:block;padding:12px;text-align:center;border:1px solid #bfd7c9;border-radius:12px;font-weight:650;color:#37604d}.home-payment-mode input:checked+span{background:#087844;color:#fff;border-color:#087844}.home-payment-fields{display:grid;gap:12px}.home-payment-fields label{display:grid;gap:6px;color:#2d4e3e;font-size:.88rem;font-weight:650}.home-payment-fields input,.home-payment-fields select{width:100%;min-height:48px;border:1px solid #c8dcd1;border-radius:12px;padding:11px 12px;background:#fff;color:#173428;font:inherit}.home-pay-button{width:100%;margin-top:16px;min-height:50px}.home-pay-button:disabled{opacity:.55;cursor:not-allowed}.checkout-terms,.payment-disabled-note{font-size:.78rem;color:#697c72;line-height:1.55}.payment-disabled-note{padding:10px;border-radius:10px;background:#fff0e8;color:#8a3d17}.free-trial-action{margin-top:14px;padding-top:14px;border-top:1px solid #e0ebe5;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.88rem}.free-trial-action a{color:#087844;font-weight:700}.home-payment-alert{margin:0 0 20px;padding:14px 16px;border-radius:13px;font-weight:600}.home-payment-alert.success{background:#e9f8ef;color:#086d41;border:1px solid #bfe2ce}.home-payment-alert.error{background:#fff0ed;color:#9a321f;border:1px solid #f0c8bf}
.nbds-home-welcome{position:fixed;inset:0;z-index:2147483600;display:grid;place-items:center;padding:20px;background:rgba(3,32,20,.76);backdrop-filter:blur(8px);opacity:1;transition:opacity .18s ease}.nbds-home-welcome.closing{opacity:0}.nbds-home-welcome-dialog{width:min(690px,100%);max-height:calc(100dvh - 32px);overflow:auto;position:relative;padding:clamp(24px,4vw,42px);border-radius:28px;background:linear-gradient(145deg,#fff,#f2fbf6);border:1px solid rgba(255,255,255,.8);box-shadow:0 30px 100px rgba(0,0,0,.4);text-align:center}.nbds-home-welcome-close{position:absolute;right:15px;top:13px;width:42px;height:42px;border:0;border-radius:50%;background:#e5f2eb;color:#173f2f;font-size:27px;cursor:pointer}.nbds-home-welcome-logo{display:flex;justify-content:center;margin-bottom:14px}.nbds-home-welcome-logo img,.nbds-home-welcome-logo .brand-mark{width:84px;height:84px;object-fit:contain}.nbds-home-welcome-dialog>span{display:inline-flex;padding:7px 11px;border-radius:999px;background:#dff4e8;color:#087844;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.nbds-home-welcome-dialog h2{font-size:clamp(2rem,5vw,3.5rem);line-height:1.08;margin:16px 0 13px;color:#153c2c}.nbds-home-welcome-dialog p{max-width:580px;margin:0 auto;color:#566d61;line-height:1.75}.nbds-home-welcome-price{display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(430px,100%);margin:0 auto 18px;padding:15px 20px 17px;border:2px solid rgba(7,134,77,.2);border-radius:20px;background:linear-gradient(145deg,#effcf5,#e0f7ea);box-shadow:0 12px 30px rgba(7,134,77,.1)}.nbds-home-welcome-price small{color:#15613f;font-size:.82rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.nbds-home-welcome-price strong{display:block;color:#07864d;font-size:clamp(2.6rem,7vw,4.8rem);font-weight:900;line-height:1;margin:7px 0 5px;letter-spacing:-.045em}.nbds-home-welcome-price span{color:#27664b;font-size:clamp(.95rem,2.5vw,1.15rem);font-weight:700}.nbds-home-welcome-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px}.nbds-home-welcome-actions button{font:inherit}.nbds-home-welcome-open{overflow:hidden}
@media(max-width:900px){.subscription-heading{grid-template-columns:1fr}.subscription-price-card{max-width:360px}.subscription-layout{grid-template-columns:1fr}.subscription-feature-grid{grid-template-columns:1fr}}
@media(max-width:560px){.nbds-subscription-section .container{width:min(100% - 22px,1200px)}.subscription-benefits,.home-subscription-checkout{padding:19px;border-radius:19px}.home-payment-mode{grid-template-columns:1fr}.nbds-home-welcome{padding:10px}.nbds-home-welcome-dialog{padding:28px 17px 22px;border-radius:22px}.nbds-home-welcome-actions{display:grid}.nbds-home-welcome-actions .btn{width:100%}}


/* v283: native fast scrolling and streamlined verified-tutor access */
html.nbds-standard-page-root,
body.nbds-standard-page-body{
  height:auto!important;
  min-height:100%!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y pan-x pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}
html.nbds-standard-page-root{
  overflow-y:auto!important;
  scrollbar-gutter:auto!important;
}
body.nbds-standard-page-body{
  overflow-y:visible!important;
  padding-right:0!important;
}
.nbds-public-desktop-scrollbar{display:none!important}
html.nbds-standard-page-root.nbds-public-scrollbar-ready{
  scrollbar-width:auto!important;
  -ms-overflow-style:auto!important;
}
html.nbds-standard-page-root.nbds-public-scrollbar-ready::-webkit-scrollbar{
  display:block!important;
  width:10px!important;
}
html.nbds-standard-page-root.nbds-public-scrollbar-ready body.nbds-standard-page-body{
  padding-right:0!important;
}
body.nbds-home-welcome-open{overflow:hidden!important}
.nbds-verified-tutor-action{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin:14px 0 20px;padding:0;background:transparent;border:0;box-shadow:none
}
.nbds-verified-tutor-action p{margin:0;color:#4f685b;line-height:1.55;max-width:720px}
.nbds-verified-tutor-action p strong{color:#075c3b}
.nbds-verified-tutor-button{
  min-height:50px;display:inline-flex!important;align-items:center;justify-content:center;gap:9px;
  padding:12px 19px!important;border-radius:12px!important;background:#087844!important;color:#fff!important;text-decoration:none!important;
  font-weight:800!important;box-shadow:0 9px 22px rgba(8,120,68,.22)!important;border:0!important;white-space:nowrap
}
.nbds-verified-tutor-button:hover{transform:translateY(-1px);background:#05643a!important;box-shadow:0 12px 26px rgba(8,120,68,.28)!important}
#verified-tutors{scroll-margin-top:110px}
.live-tutor-card{position:relative}
.live-select-tutor-button{
  display:flex;align-items:center;justify-content:center;gap:8px;margin-top:auto;padding:12px 14px;
  border-radius:12px;background:#087844;color:#fff;font-weight:800;text-align:center
}
.live-tutor-card:hover .live-select-tutor-button{background:#05643a}
@media(max-width:640px){
  html.nbds-standard-page-root,body.nbds-standard-page-body{touch-action:pan-y pinch-zoom!important}
  .nbds-verified-tutor-action{align-items:stretch}
  .nbds-verified-tutor-button{width:100%;white-space:normal;text-align:center}
}


/* v284: responsive in-portal video fullscreen, including iPhone/iPad fallback */
.lesson-resource-card,.lesson-video-shell,.lesson-video-preview{min-width:0;max-width:100%}
.lesson-video-shell{height:auto!important;aspect-ratio:16/9!important}
body.nbds-video-css-fullscreen-open{overflow:hidden!important;touch-action:none!important}
.nbds-video-shell.nbds-video-css-fullscreen{position:fixed!important;inset:0!important;z-index:2147483600!important;width:100vw!important;height:100vh!important;height:100dvh!important;max-width:none!important;max-height:none!important;aspect-ratio:auto!important;margin:0!important;border-radius:0!important;background:#000!important;box-shadow:none!important}
.nbds-video-shell.nbds-video-css-fullscreen iframe,.nbds-video-shell.nbds-video-css-fullscreen .nbds-responsive-video-frame{position:absolute!important;inset:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;max-width:none!important;max-height:none!important;object-fit:contain!important;background:#000!important}
.nbds-video-shell.nbds-video-css-fullscreen .nbds-video-fullscreen-button{position:fixed!important;right:max(12px,env(safe-area-inset-right))!important;bottom:max(12px,env(safe-area-inset-bottom))!important}
@media(max-width:640px){.lesson-video-shell{width:100%!important;max-width:100%!important;border-radius:12px!important}.lesson-video-preview{width:100%!important;height:100%!important;aspect-ratio:auto!important}.lesson-video-play img{object-position:center}.lesson-video-caption{left:12px!important;right:48px!important;bottom:10px!important}.lesson-video-caption small{font-size:.59rem!important}.lesson-video-caption b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.nbds-video-shell.nbds-video-css-fullscreen{border-radius:0!important}}

/* v285: reliable native page movement for trackpads, mouse wheels and touchscreen swipes. */
html.nbds-standard-page-root:not(.nbds-home-welcome-open),
body.nbds-standard-page-body:not(.nbds-home-welcome-open){
  height:auto!important;
  min-height:100%!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overscroll-behavior-x:none!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}
html.nbds-standard-page-root:not(.nbds-home-welcome-open){
  overflow-y:scroll!important;
  scroll-behavior:auto!important;
  scrollbar-gutter:auto!important;
}
body.nbds-standard-page-body:not(.nbds-home-welcome-open){
  position:static!important;
  overflow-y:visible!important;
}
body.nbds-standard-page-body:not(.nbds-home-welcome-open) main,
body.nbds-standard-page-body:not(.nbds-home-welcome-open) main > section,
body.nbds-standard-page-body:not(.nbds-home-welcome-open) main .container{
  touch-action:pan-y pinch-zoom!important;
}
body.nbds-standard-page-body:not(.nbds-home-welcome-open) .hero,
body.nbds-standard-page-body:not(.nbds-home-welcome-open) .section,
body.nbds-standard-page-body:not(.nbds-home-welcome-open) .founder-spotlight-section,
body.nbds-standard-page-body:not(.nbds-home-welcome-open) .nbds-subscription-section{
  overscroll-behavior-y:auto!important;
}
@media (pointer:coarse), (hover:none), (max-width:1100px){
  html.nbds-standard-page-root:not(.nbds-home-welcome-open),
  body.nbds-standard-page-body:not(.nbds-home-welcome-open),
  body.nbds-standard-page-body:not(.nbds-home-welcome-open) main,
  body.nbds-standard-page-body:not(.nbds-home-welcome-open) main > section{
    touch-action:pan-y pinch-zoom!important;
  }
}

/* v287 UNIVERSAL USER-PAGE, DASHBOARD AND PWA SCROLLING
   Enables natural trackpad, mouse-wheel and direct touchscreen movement across
   every role page while preserving full-screen video, drawers and inner panels. */
html.nbds-universal-scroll-v287{
  scroll-behavior:auto!important;
}
body.nbds-v287-document-scroll{
  width:100%!important;
  min-height:100vh!important;
  overflow-x:hidden!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}
body.nbds-v287-document-scroll main,
body.nbds-v287-document-scroll .lr-shell,
body.nbds-v287-document-scroll .m-shell,
body.nbds-v287-document-scroll .box,
body.nbds-v287-document-scroll .security-settings-wrap{
  touch-action:pan-y pinch-zoom!important;
}
body.nbds-v287-shell-scroll{
  width:100%!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  touch-action:pan-y pinch-zoom!important;
}
body.nbds-v287-shell-scroll .nbds-v287-scroll-shell{
  width:100%!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
body.nbds-v287-shell-scroll .nbds-v287-primary-scroll{
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-x:none!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-gutter:stable;
}
body.nbds-v287-shell-scroll .student-sidebar,
body.nbds-v287-shell-scroll .teacher-sidebar,
body.nbds-v287-shell-scroll .parent-sidebar,
body.nbds-v287-shell-scroll .admin-oriented-sidebar,
body.nbds-v287-shell-scroll .static-dashboard-sidebar{
  overflow-y:auto!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}
html.nbds-mobile-app-mode body.nbds-v287-app-scroll,
html.nbds-requested-mobile-site body.nbds-v287-app-scroll{
  min-height:100dvh!important;
}
html.nbds-mobile-app-mode body.nbds-v287-shell-scroll .nbds-v287-primary-scroll,
html.nbds-requested-mobile-site body.nbds-v287-shell-scroll .nbds-v287-primary-scroll{
  overscroll-behavior-y:auto!important;
  touch-action:pan-y pinch-zoom!important;
}
body.nbds-v287-shell-scroll iframe,
body.nbds-v287-shell-scroll video,
body.nbds-v287-shell-scroll canvas,
body.nbds-v287-document-scroll iframe,
body.nbds-v287-document-scroll video,
body.nbds-v287-document-scroll canvas{
  max-width:100%;
}

/* v289 — separate live-class pages and tutor scheduling workspace */
.live-page-switcher{position:sticky;top:10px;z-index:18;scrollbar-width:thin;overscroll-behavior-x:contain}
.live-page-switcher a{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:10px 16px;border:1px solid transparent;font-weight:650;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.live-page-switcher a:hover{transform:translateY(-1px)}
.live-page-switcher a.active,.live-page-switcher a[aria-current="page"]{background:#e5f5ec;color:#087345;border-color:#cfe8da;box-shadow:0 7px 18px rgba(14,111,70,.10)}
.live-tab-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#0b7d4d;color:#fff;font-size:.76rem;line-height:1}
.live-schedule-form{margin-top:16px;padding:18px;border:1px solid #d9e9df;border-radius:18px;background:#f8fcf9}
.live-code-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.live-code-field .btn{min-height:44px;padding-inline:14px;white-space:nowrap}
.live-schedule-list{display:grid;gap:18px;margin-top:18px}
.live-schedule-card{scroll-margin-top:105px}
.live-schedule-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.live-schedule-facts>span{display:flex;flex-direction:column;gap:4px;padding:13px 14px;border:1px solid #dceae2;border-radius:14px;background:#f7fbf8;min-width:0}
.live-schedule-facts small{color:#6b8176;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.live-schedule-facts strong{overflow-wrap:anywhere;color:#173f2e}
.live-access-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em;color:#087345!important}
.live-schedule-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}
.live-edit-schedule{margin-top:10px}
.live-cancel-schedule{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;align-items:center;margin-top:14px;padding-top:14px;border-top:1px dashed #d7e4dc}
.live-cancel-schedule input{min-height:44px}
.live-booked-actions>div{display:flex;flex-direction:column;gap:4px}
.live-booked-actions small{color:#597064}
@media(max-width:900px){
  .live-page-switcher{top:64px;margin-left:0;margin-right:0;padding:8px;scroll-padding-inline:8px}
  .live-page-switcher a{min-height:42px;padding:9px 13px}
  .live-schedule-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .live-schedule-form{padding:14px}
  .live-code-field{grid-template-columns:1fr}
  .live-code-field .btn{width:100%}
  .live-schedule-facts{grid-template-columns:1fr}
  .live-schedule-actions{align-items:stretch;flex-direction:column}
  .live-schedule-actions .btn{width:100%;justify-content:center}
  .live-cancel-schedule{grid-template-columns:1fr}
  .live-cancel-schedule .btn{width:100%}
}


/* v290 — smooth in-page live-class page switching */
.live-page-switcher[data-live-page-switcher]{
  position:sticky;
  isolation:isolate;
  scroll-behavior:smooth;
}
.live-page-switcher .live-tab-indicator{
  position:absolute;
  left:0;
  top:0;
  width:0;
  height:0;
  z-index:0;
  pointer-events:none;
  border:1px solid #c9e8d6;
  border-radius:11px;
  background:linear-gradient(135deg,#def4e7 0%,#eaf8f0 100%);
  box-shadow:0 8px 20px rgba(9,112,67,.13);
  transition:transform .42s cubic-bezier(.22,1,.36,1),width .42s cubic-bezier(.22,1,.36,1),height .42s cubic-bezier(.22,1,.36,1),opacity .2s ease;
}
.live-page-switcher .live-tab-indicator.is-instant{transition:none!important}
.live-page-switcher[data-live-page-switcher] a{
  position:relative;
  z-index:1;
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  transition:color .3s ease,transform .2s ease;
}
.live-page-switcher[data-live-page-switcher] a.active,
.live-page-switcher[data-live-page-switcher] a[aria-current="page"]{
  color:#087345;
}
.live-page-switcher[data-live-page-switcher].is-switching .live-tab-indicator::after{
  content:"";
  position:absolute;
  right:9px;
  top:50%;
  width:6px;
  height:6px;
  margin-top:-3px;
  border-radius:50%;
  background:#087345;
  animation:nbdsLiveSwitchPulse .8s ease-in-out infinite alternate;
}
@keyframes nbdsLiveSwitchPulse{from{opacity:.35;transform:scale(.75)}to{opacity:1;transform:scale(1.15)}}
.live-page-content{
  opacity:1;
  transform:translateY(0);
  transition:opacity .18s ease,transform .24s cubic-bezier(.22,1,.36,1);
  will-change:opacity,transform;
}
.live-page-content.is-fading-out{opacity:0;transform:translateY(8px);pointer-events:none}
.live-page-content.is-fading-in{opacity:0;transform:translateY(-8px)}
.live-page-content[aria-busy="true"]{cursor:progress}
@media(prefers-reduced-motion:reduce){
  .live-page-switcher .live-tab-indicator,
  .live-page-content,
  .live-page-switcher[data-live-page-switcher]{transition:none!important;scroll-behavior:auto!important}
  .live-page-switcher[data-live-page-switcher].is-switching .live-tab-indicator::after{animation:none}
}

/* v291 — Paystack administration centre */
.status-pill.status-rejected{background:#fff0f0;color:#a61b1b;border-color:#f2caca}
.paystack-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 18px}
.paystack-summary-card{min-width:0;padding:20px;border:1px solid #dcebe2;border-radius:18px;background:linear-gradient(145deg,#fff 0%,#f2faf5 100%);box-shadow:0 12px 28px rgba(12,86,55,.08)}
.paystack-summary-card small{display:block;margin-bottom:8px;color:#6a7d72;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.paystack-summary-card strong{display:block;color:#086c42;font-size:1.7rem;line-height:1.1}
.paystack-summary-card span{display:block;margin-top:8px;color:#627469;font-size:.88rem;line-height:1.45;overflow-wrap:anywhere}
.paystack-control-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;align-items:start;margin-bottom:18px}
.paystack-control-grid>.student-card{margin:0;height:100%}
.nbds-checkbox-row{display:flex!important;align-items:center;gap:10px;font-weight:700;text-transform:none!important;letter-spacing:0!important}
.nbds-checkbox-row input{width:auto!important;min-width:18px;min-height:18px;margin:0}
.danger-check{color:#9a2f2f}
.paystack-form-actions{display:flex;gap:12px;align-items:center}
.paystack-inline-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:15px;padding-top:15px;border-top:1px solid #e4eee8}
.paystack-test-result{font-size:.88rem;color:#64776c}
.paystack-test-result.is-success{color:#087744;font-weight:700}
.paystack-test-result.is-failed{color:#a61b1b;font-weight:700}
.paystack-endpoint{display:grid;grid-template-columns:minmax(120px,.36fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid #e4eee8}
.paystack-endpoint span{font-weight:750;color:#315847}
.paystack-endpoint code{display:block;min-width:0;padding:9px 10px;border:1px solid #dce9e1;border-radius:10px;background:#f5faf7;color:#174c34;font-size:.78rem;overflow-wrap:anywhere;white-space:normal}
.paystack-security-note{margin-top:16px;padding:14px;border:1px solid #cfe7d9;border-radius:13px;background:#eff9f3;color:#315d49;line-height:1.55}
.paystack-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.paystack-table-tools{display:grid;grid-template-columns:minmax(220px,1fr) minmax(170px,.32fr);gap:12px;margin:14px 0}
.paystack-table-tools input,.paystack-table-tools select{width:100%}
.paystack-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.paystack-row-actions form{margin:0}
.paystack-row-actions .btn{white-space:nowrap}
.live-page-switcher[data-live-page-switcher="admin"]{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.live-page-switcher[data-live-page-switcher="admin"] a{flex:0 0 auto;white-space:nowrap}
@media(max-width:1180px){.paystack-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.paystack-control-grid{grid-template-columns:1fr}}
@media(max-width:700px){.paystack-summary-grid{grid-template-columns:1fr 1fr;gap:10px}.paystack-summary-card{padding:15px}.paystack-summary-card strong{font-size:1.35rem}.paystack-table-tools{grid-template-columns:1fr}.paystack-endpoint{grid-template-columns:1fr}.paystack-endpoint .btn{width:100%;justify-content:center}.paystack-heading-actions{justify-content:flex-start}.paystack-heading-actions .btn{width:100%;justify-content:center}}
@media(max-width:440px){.paystack-summary-grid{grid-template-columns:1fr}}

/* v293 — Paystack-connected administrator wallet and withdrawal workspace */
.wallet-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.wallet-summary-card{position:relative;overflow:hidden;display:grid;gap:7px;min-height:132px;padding:20px;border:1px solid #d5e7dd;border-radius:20px;background:linear-gradient(145deg,#fff,#f3faf6);box-shadow:0 12px 30px rgba(17,74,45,.07)}.wallet-summary-card:after{content:"";position:absolute;right:-28px;bottom:-38px;width:110px;height:110px;border-radius:50%;background:rgba(8,120,68,.08)}.wallet-summary-card small{color:#637a6d;font-size:.78rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em}.wallet-summary-card strong{color:#0b6e43;font-size:clamp(1.35rem,2.2vw,2rem);line-height:1.1}.wallet-summary-card span{position:relative;z-index:1;color:#687b70;font-size:.86rem;line-height:1.45}.wallet-balance-card{background:linear-gradient(145deg,#087844,#0f9a5b);border-color:#087844}.wallet-balance-card small,.wallet-balance-card strong,.wallet-balance-card span{color:#fff}.wallet-balance-card:after{background:rgba(255,255,255,.13)}
.wallet-control-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:18px;margin:18px 0}.wallet-linked-account{display:grid;grid-template-columns:58px 1fr;gap:14px;align-items:start;padding:17px;border:1px solid #cde4d7;border-radius:17px;background:#f2faf5}.wallet-linked-account h3{margin:3px 0 4px;color:#173d2d}.wallet-linked-account p{margin:0 0 8px;color:#607368}.wallet-linked-account code{display:inline-block;margin:0 0 8px;max-width:100%;overflow-wrap:anywhere}.wallet-linked-account small{display:block;color:#6a7d72;line-height:1.5}.wallet-bank-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:16px;background:#087844;color:#fff;font-size:1.55rem;font-weight:750;box-shadow:0 8px 18px rgba(8,120,68,.18)}.wallet-unlink-form{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:15px;padding-top:15px;border-top:1px solid #e1ece6}.wallet-unlink-form label{flex:1 1 280px}.wallet-mode-warning{margin-top:14px;background:#fff7e7;border-color:#f2d18b;color:#75510a}.wallet-destination-preview{display:grid;gap:5px;padding:14px 15px;border:1px dashed #b9d8c6;border-radius:14px;background:#f7fbf8}.wallet-destination-preview small{color:#6b7f73;text-transform:uppercase;letter-spacing:.04em;font-weight:650}.wallet-destination-preview strong{color:#1a4a34;line-height:1.45}.wallet-withdraw-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.wallet-withdraw-actions span{color:#6c7d73;font-size:.84rem}.wallet-currency-list{display:flex;flex-wrap:wrap;gap:12px}.wallet-currency-list>span{display:grid;gap:4px;min-width:170px;padding:13px 15px;border:1px solid #d6e7dd;border-radius:14px;background:#f7fbf8}.wallet-currency-list small{color:#687b70}.wallet-currency-list strong{color:#0a7744;font-size:1.05rem}.wallet-row-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.wallet-row-actions form{margin:0}.wallet-otp-form{display:flex;flex-wrap:wrap;gap:6px}.wallet-otp-form input{width:125px;min-height:40px;padding:8px 10px;border:1px solid #c8ddd1;border-radius:10px;font:inherit}.wallet-credit{color:#087844}.wallet-debit{color:#b42318}.wallet-webhook-card .paystack-endpoint{margin-top:12px}.paystack-endpoint-recommended{border-color:#8ed0aa!important;background:#effaf4!important}.paystack-endpoint-recommended span:after{content:"Recommended";display:inline-flex;margin-left:8px;padding:3px 7px;border-radius:999px;background:#087844;color:#fff;font-size:.66rem;font-weight:700;vertical-align:middle}.wallet-account-card,.wallet-withdraw-card,.wallet-sync-card{min-width:0}
@media(max-width:1100px){.wallet-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wallet-control-grid{grid-template-columns:1fr}}
@media(max-width:640px){.wallet-summary-grid{grid-template-columns:1fr}.wallet-summary-card{min-height:112px}.wallet-linked-account{grid-template-columns:46px 1fr;padding:14px}.wallet-bank-mark{width:46px;height:46px;border-radius:13px;font-size:1.2rem}.wallet-unlink-form,.wallet-withdraw-actions{align-items:stretch}.wallet-unlink-form .btn,.wallet-withdraw-actions .btn{width:100%;justify-content:center}.wallet-otp-form{width:100%}.wallet-otp-form input,.wallet-otp-form .btn{width:100%}.wallet-row-actions{min-width:180px}.wallet-currency-list>span{width:100%}.paystack-endpoint-recommended span:after{display:none}}
.alert-warning{background:#fff8e8;color:#75510a;border:1px solid #efd394}

/* v295 compact essential footer and reliable public navigation */
.site-footer.site-footer-compact{
  padding:34px 0 16px;
  background:#073d2c;
  color:#dceee5;
}
.footer-compact-grid{
  display:grid;
  grid-template-columns:minmax(280px,1.1fr) minmax(320px,.9fr);
  gap:28px;
  align-items:center;
}
.footer-compact-brand{min-width:0}
.footer-compact-brand .footer-brand{margin-bottom:10px}
.footer-compact-brand p{
  max-width:620px;
  margin:0;
  color:#c6ded2;
  line-height:1.6;
}
.footer-compact-contact{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin-top:13px;
}
.footer-compact-contact a{
  color:#fff!important;
  font-weight:650;
  overflow-wrap:anywhere;
}
.footer-essential-links{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px 18px;
}
.footer-essential-links a{
  color:#eaf7f0!important;
  font-weight:650;
  text-decoration:none;
}
.footer-essential-links a:hover,
.footer-essential-links a:focus-visible{
  color:#ffdc73!important;
  transform:none!important;
}
.footer-bottom.footer-bottom-compact{
  margin-top:24px;
  padding-top:15px;
  border-top:1px solid rgba(255,255,255,.14);
  gap:12px;
}
@media(max-width:820px){
  .footer-compact-grid{grid-template-columns:1fr;gap:20px}
  .footer-essential-links{justify-content:flex-start}
}
@media(max-width:520px){
  .site-footer.site-footer-compact{padding:27px 0 14px}
  .footer-essential-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px}
  .footer-bottom.footer-bottom-compact{align-items:flex-start;text-align:left}
}

/* v295 reliability overrides: render public content immediately on all engines. */
body.nbds-standard-page-body main > .section,
body.nbds-standard-page-body main > .founder-spotlight-section,
body.nbds-standard-page-body main > .nbds-subscription-section{
  content-visibility:visible!important;
  contain-intrinsic-size:none!important;
}
body.nbds-standard-page-body .nav-links a.active,
body.nbds-standard-page-body .nav-links a[aria-current="page"]{
  color:#087844!important;
  font-weight:750;
}


/* v295: compact footer remains visible on browsers and installed PWA/app displays. */
.site-footer.site-footer-compact{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
@media (display-mode:standalone), (max-width:760px){
  .site-footer.site-footer-compact{
    padding:22px 0 max(12px,env(safe-area-inset-bottom,0));
  }
  .footer-compact-grid{gap:18px}
  .footer-compact-brand p{max-width:34rem;margin-bottom:12px}
  .footer-essential-links{gap:9px 16px}
  .footer-bottom.footer-bottom-compact{gap:5px;padding-top:13px}
}

/* v296 professional compact footer */
.site-footer.site-footer-compact{background:linear-gradient(135deg,#063d2d 0%,#07533a 100%)}
.footer-compact-grid{grid-template-columns:minmax(300px,1.15fr) minmax(260px,.85fr);align-items:start}
.footer-compact-brand .footer-brand{display:inline-flex;align-items:center;gap:12px}
.footer-compact-contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.footer-contact-item{display:flex;align-items:center;gap:11px;min-width:0;padding:11px 13px;border:1px solid rgba(255,255,255,.14);border-radius:13px;background:rgba(255,255,255,.06);text-decoration:none}
.footer-contact-icon{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;background:#fff;color:#087844}
.footer-contact-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.footer-contact-copy{display:grid;min-width:0}.footer-contact-copy small{color:#bcd6c9;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.footer-contact-copy strong{color:#fff;font-size:.9rem;overflow-wrap:anywhere}
.footer-links-panel{padding:4px 0}.footer-links-panel h3{margin:0 0 13px;color:#fff;font-size:.95rem}.footer-essential-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;justify-content:initial}.footer-essential-links a{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.09)}.footer-essential-links a:before{content:'›';color:#61d99b;font-size:1.1rem}
.footer-bottom.footer-bottom-compact{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;color:#c3dcd0;font-size:.82rem}
@media(max-width:820px){.footer-compact-contact{grid-template-columns:1fr}.footer-links-panel{padding-top:2px}.footer-essential-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.footer-essential-links{grid-template-columns:1fr 1fr}.footer-bottom.footer-bottom-compact{display:grid;gap:6px}}

/* v296 administrator live chat */
.admin-live-chat-layout{display:grid;grid-template-columns:minmax(280px,.38fr) minmax(0,.62fr);gap:18px;align-items:stretch}.admin-chat-list-card,.admin-chat-thread-card{margin:0;min-height:650px}.admin-chat-list-head,.admin-chat-thread-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.admin-chat-session-list{display:grid;gap:8px;max-height:610px;overflow:auto}.admin-chat-session{appearance:none;width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;border:1px solid #dce9e2;background:#f8fbf9;border-radius:14px;padding:11px;cursor:pointer}.admin-chat-session.active{border-color:#087844;background:#eaf8f0;box-shadow:0 0 0 2px rgba(8,120,68,.08)}.admin-chat-session-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#087844;color:#fff;font-weight:800}.admin-chat-session>span:nth-child(2){display:grid;min-width:0}.admin-chat-session strong,.admin-chat-session small,.admin-chat-session em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-chat-session small{color:#65776d}.admin-chat-session em{font-size:.75rem;color:#74857c;font-style:normal}.admin-chat-session>b{min-width:24px;height:24px;border-radius:999px;background:#e32929;color:#fff;display:grid;place-items:center;font-size:.72rem}.admin-chat-messages{height:500px;overflow:auto;padding:16px;background:#f5faf7;border:1px solid #dce9e2;border-radius:16px;display:flex;flex-direction:column;gap:10px}.admin-chat-message{display:grid;gap:3px;max-width:78%}.admin-chat-message span{padding:11px 13px;border-radius:14px;background:#fff;box-shadow:0 3px 12px rgba(17,65,43,.06);white-space:pre-wrap}.admin-chat-message.admin{align-self:flex-end}.admin-chat-message.admin span{background:#087844;color:#fff;border-bottom-right-radius:4px}.admin-chat-message.visitor span{background:#e7f5ed;border-bottom-left-radius:4px}.admin-chat-message.bot span{background:#fff7dc}.admin-chat-message small,.admin-chat-message time{font-size:.68rem;color:#74857c}.admin-chat-message.admin small,.admin-chat-message.admin time{text-align:right}.admin-chat-reply{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:12px}.admin-chat-reply textarea{width:100%;resize:vertical;min-height:70px;border:1px solid #cbded4;border-radius:12px;padding:11px;font:inherit}
@media(max-width:980px){.admin-live-chat-layout{grid-template-columns:1fr}.admin-chat-list-card,.admin-chat-thread-card{min-height:0}.admin-chat-session-list{max-height:360px}.admin-chat-messages{height:430px}}@media(max-width:560px){.admin-chat-reply{grid-template-columns:1fr}.admin-chat-reply .btn{width:100%;justify-content:center}.admin-chat-messages{height:52vh}.admin-chat-message{max-width:90%}}
.student-nav-link .nav-live-count{margin-left:auto;min-width:22px;height:22px;border-radius:999px;background:#df2f2f;color:#fff;display:grid;place-items:center;font-size:.68rem;font-weight:800;padding:0 6px}

/* v297 live chat administrator profile identity */
.admin-chat-current-agent{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:-2px 0 16px;border:1px solid #d7e8df;border-radius:15px;background:linear-gradient(135deg,#f8fcfa,#eef8f3)}
.admin-live-chat-profile-avatar{width:52px;height:52px;flex:0 0 auto;position:relative}.admin-live-chat-profile-avatar-inner,.admin-live-chat-profile-avatar-inner.student-avatar{width:52px;height:52px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#087844;color:#fff;font-weight:800;border:3px solid #fff;box-shadow:0 5px 14px rgba(7,86,51,.18)}.admin-live-chat-profile-avatar-inner img{width:100%;height:100%;object-fit:cover}.admin-chat-current-agent>div:last-child{display:grid;gap:2px}.admin-chat-current-agent small{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#718279;font-weight:700}.admin-chat-current-agent strong{color:#183d2e}.admin-chat-current-agent span{font-size:.73rem;color:#397056;display:flex;align-items:center;gap:6px}.admin-chat-current-agent span i{width:8px;height:8px;border-radius:50%;background:#22c774;box-shadow:0 0 0 4px rgba(34,199,116,.13)}
.admin-chat-message-head{display:flex;align-items:center;gap:7px;min-height:26px}.admin-chat-message.admin .admin-chat-message-head{justify-content:flex-end}.admin-chat-message-avatar{width:26px;height:26px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#087844;color:#fff;border:1px solid rgba(8,120,68,.2);position:relative}.admin-chat-message-avatar img,.admin-chat-message-avatar b{grid-area:1/1}.admin-chat-message-avatar img{width:100%;height:100%;object-fit:cover;position:relative;z-index:2}.admin-chat-message-avatar b{font-size:.65rem;font-weight:800}
@media(max-width:560px){.admin-chat-current-agent{padding:10px 11px}.admin-live-chat-profile-avatar,.admin-live-chat-profile-avatar-inner,.admin-live-chat-profile-avatar-inner.student-avatar{width:46px;height:46px}}
.admin-live-chat-profile-avatar>img,.admin-live-chat-profile-avatar>span{grid-area:1/1}.admin-live-chat-profile-avatar>img{width:100%;height:100%;object-fit:cover;border-radius:50%;position:relative;z-index:2}.admin-live-chat-profile-avatar>span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:#087844;color:#fff;font-weight:800}

/* v299 — complete registered-user summary cards on the admin dashboard */
.admin-registered-users-summary{
  margin:0 0 26px;
}
.admin-registered-users-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin:0 0 14px;
  padding:0 4px;
}
.admin-registered-users-heading span{
  display:block;
  margin-bottom:4px;
  color:#087844;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.admin-registered-users-heading h2{
  margin:0;
  color:#17352a;
  font-size:clamp(1.25rem,2vw,1.7rem);
  line-height:1.15;
}
.admin-registered-users-heading small{
  color:#708276;
  font-weight:650;
}
.admin-user-summary-grid{
  grid-template-columns:repeat(5,minmax(180px,1fr))!important;
  gap:18px;
  margin:0!important;
}
.admin-user-summary-card{
  position:relative;
  display:flex;
  min-width:0;
  min-height:158px;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  padding:24px 26px;
  overflow:hidden;
  color:inherit;
  text-decoration:none;
  border:1px solid #dbe5e0;
  border-radius:24px;
  background:linear-gradient(145deg,#ffffff 0%,#fbfdfc 70%,#f4f8f6 100%);
  box-shadow:0 16px 38px rgba(22,52,42,.08);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.admin-user-summary-card::after{
  content:"";
  position:absolute;
  width:96px;
  height:96px;
  right:-42px;
  bottom:-48px;
  border-radius:50%;
  background:rgba(8,120,68,.055);
  pointer-events:none;
}
.admin-user-summary-card:hover,
.admin-user-summary-card:focus-visible{
  transform:translateY(-3px);
  border-color:#aacdb9;
  box-shadow:0 20px 44px rgba(22,52,42,.12);
  outline:none;
}
.admin-user-summary-card span{
  color:#60718e;
  font-size:.94rem;
  font-weight:750;
}
.admin-user-summary-card strong{
  display:block;
  margin:9px 0 7px;
  color:#102852;
  font-size:2.45rem;
  line-height:1;
  font-variant-numeric:tabular-nums;
}
.admin-user-summary-card small{
  color:#8392ac;
  font-size:.9rem;
  font-weight:550;
  line-height:1.35;
}
@media(max-width:1450px){
  .admin-user-summary-grid{grid-template-columns:repeat(3,minmax(190px,1fr))!important}
}
@media(max-width:900px){
  .admin-user-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .admin-registered-users-heading{align-items:flex-start;flex-direction:column;gap:4px}
}
@media(max-width:560px){
  .admin-user-summary-grid{grid-template-columns:1fr!important}
  .admin-user-summary-card{min-height:138px;padding:22px}
}

/* v301 — compact segmented live-class countdown and smaller user summary cards */
.nbds-live-countdown-card{
  margin:16px 0;
  padding:15px;
  border:1px solid #d7e8de;
  border-radius:18px;
  background:linear-gradient(145deg,#f8fcf9,#edf8f2);
  box-shadow:0 10px 26px rgba(18,72,45,.07);
}
.nbds-live-countdown-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.nbds-live-countdown-heading>div{display:grid;gap:3px}
.nbds-live-countdown-heading small{color:#62776b;font-size:.74rem;font-weight:750;text-transform:uppercase;letter-spacing:.07em}
.nbds-live-countdown-heading strong{color:#173d2c;font-size:1rem}
.nbds-live-countdown-heading>span{padding:6px 9px;border-radius:999px;background:#fff;color:#087844;font-size:.7rem;font-weight:750;white-space:nowrap}
.nbds-live-countdown-units{display:flex;align-items:stretch;gap:9px;flex-wrap:wrap}
.nbds-live-countdown-units>span{
  width:74px;
  aspect-ratio:1/1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1px solid #d5e7dc;
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 18px rgba(14,79,48,.07);
}
.nbds-live-countdown-units strong{color:#0b6f43;font-size:1.42rem;line-height:1;font-variant-numeric:tabular-nums}
.nbds-live-countdown-units small{margin-top:7px;color:#708278;font-size:.65rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em}
.nbds-live-countdown-text{display:block;margin-top:9px;color:#65786d;font-size:.75rem;font-weight:650}
.nbds-live-countdown-card.countdown-open{border-color:#70c898;background:linear-gradient(145deg,#e9fbf1,#dff8ea);box-shadow:0 12px 28px rgba(10,126,72,.14)}
.nbds-live-countdown-card.countdown-open .nbds-live-countdown-heading strong,.nbds-live-countdown-card.countdown-open .nbds-live-countdown-units strong{color:#05743f}
.nbds-live-countdown-card.countdown-open .nbds-live-countdown-units>span{border-color:#9edbb8;background:#fff}
.nbds-live-countdown-card.countdown-ended{opacity:.74;background:#f5f7f6}
.nbds-live-countdown-card.countdown-ended .nbds-live-countdown-units strong{color:#6d7d74}
.live-opening-wait,.live-opening-ended{display:inline-flex;align-items:center;min-height:42px;padding:9px 13px;border-radius:11px;font-size:.8rem;font-weight:750}
.live-opening-wait{border:1px solid #ead79b;background:#fff8df;color:#785800}
.live-opening-ended{border:1px solid #dbe2de;background:#f4f6f5;color:#687970}
.live-action-note{flex-basis:100%;margin:0;color:#62766b;font-size:.78rem}

/* Requested compact square administrator user cards, arranged side by side. */
.admin-user-summary-grid{
  grid-template-columns:repeat(auto-fit,minmax(148px,180px))!important;
  justify-content:start;
  gap:12px!important;
}
.admin-user-summary-card{
  width:100%;
  min-height:0!important;
  aspect-ratio:1/1;
  padding:18px!important;
  border-radius:20px!important;
  justify-content:center!important;
}
.admin-user-summary-card strong{margin:8px 0 6px!important;font-size:2rem!important}
.admin-user-summary-card span{font-size:.84rem!important}
.admin-user-summary-card small{font-size:.75rem!important;line-height:1.25!important}
@media(max-width:600px){
  .nbds-live-countdown-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
  .nbds-live-countdown-units>span{width:100%;min-width:0;border-radius:12px}
  .nbds-live-countdown-units strong{font-size:1.12rem}
  .nbds-live-countdown-units small{font-size:.55rem}
  .admin-user-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .admin-user-summary-card{padding:14px!important;border-radius:17px!important}
  .admin-user-summary-card strong{font-size:1.72rem!important}
  .admin-user-summary-card small{font-size:.68rem!important}
}

/* v302 secure homepage subscription credentials */
.home-payment-fields[hidden]{display:none!important}.home-payment-guidance{margin:0;padding:11px 12px;border-radius:12px;background:#eef8f2;border:1px solid #d5e9dc;color:#526b5f;font-size:.78rem;line-height:1.55}.home-payment-fields .password-toggle-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}.home-payment-fields .password-toggle-field input{border-radius:12px 0 0 12px}.home-payment-fields .password-toggle-btn{min-width:64px;border:1px solid #c8dcd1;border-left:0;border-radius:0 12px 12px 0;background:#f2f8f4;color:#17613f;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}.home-payment-fields .password-toggle-btn:hover{background:#e7f4ec}.home-payment-fields input:disabled,.home-payment-fields select:disabled{opacity:.65}.home-payment-mode input:focus-visible+span{outline:3px solid rgba(8,120,68,.22);outline-offset:2px}

/* v303 registration-based free-trial countdown */
.nbds-trial-countdown-card{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.9fr);gap:22px;align-items:center;margin:18px 0;padding:24px;border:1px solid #cfe5d8;border-radius:24px;background:linear-gradient(135deg,#ffffff 0%,#f3fbf6 100%);box-shadow:0 14px 36px rgba(20,72,48,.08)}
.nbds-trial-countdown-card:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;right:-70px;top:-90px;background:rgba(10,139,75,.08);pointer-events:none}
.nbds-trial-countdown-copy{position:relative;z-index:1}.nbds-trial-eyebrow{display:inline-flex;padding:7px 11px;border-radius:999px;background:#e5f7ec;color:#087847;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.nbds-trial-countdown-copy h2{margin:10px 0 7px;color:#123d2b;font-size:clamp(1.25rem,2vw,1.75rem)}.nbds-trial-countdown-copy p{margin:0 0 7px;color:#526e61;line-height:1.55}.nbds-trial-countdown-copy small{color:#70877c}
.nbds-trial-clock{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(58px,1fr));gap:9px}.nbds-trial-clock span{display:grid;place-items:center;min-height:88px;padding:10px 6px;border-radius:17px;background:#087847;color:#fff;box-shadow:0 9px 22px rgba(8,120,71,.18)}.nbds-trial-clock strong{font-size:1.55rem;line-height:1}.nbds-trial-clock small{margin-top:7px;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#dff8e9}
.nbds-trial-progress{grid-column:1/-1;height:8px;border-radius:999px;background:#e1ede6;overflow:hidden}.nbds-trial-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0a8b4b,#34b86e)}.nbds-trial-state{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;align-items:center;color:#526e61;font-size:.85rem}.nbds-trial-state span{font-weight:800;color:#087847}.nbds-trial-countdown-card.is-complete{background:#fbfbfb;border-color:#dfe6e2}.nbds-trial-countdown-card.is-complete .nbds-trial-clock span{background:#66756e;box-shadow:none}.nbds-trial-countdown-card.is-complete .nbds-trial-state span{color:#66756e}.nbds-trial-countdown-card.is-compact{padding:18px;border-radius:18px;grid-template-columns:minmax(0,1fr) minmax(250px,.75fr)}.nbds-trial-countdown-card.is-compact .nbds-trial-countdown-copy h2{font-size:1.15rem}.nbds-trial-countdown-card.is-compact .nbds-trial-clock span{min-height:72px}.nbds-trial-countdown-card.is-compact .nbds-trial-clock strong{font-size:1.25rem}
.admin-trial-monitor{margin-top:20px}.admin-trial-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:15px 0 20px}.admin-trial-summary-grid article{padding:18px;border:1px solid #d8e8df;border-radius:18px;background:#fff}.admin-trial-summary-grid span{display:block;color:#667b70;font-size:.78rem;font-weight:700}.admin-trial-summary-grid strong{display:block;margin-top:6px;color:#123b29;font-size:1.65rem}.admin-trial-table .nbds-admin-mini-countdown{display:grid;grid-template-columns:repeat(4,42px);gap:4px}.nbds-admin-mini-countdown span{display:grid;place-items:center;padding:6px 3px;border-radius:8px;background:#edf7f1;color:#087847;font-size:.65rem}.nbds-admin-mini-countdown strong{font-size:.9rem}.nbds-admin-mini-countdown small{font-size:.52rem;text-transform:uppercase}
@media(max-width:900px){.nbds-trial-countdown-card,.nbds-trial-countdown-card.is-compact{grid-template-columns:1fr}.admin-trial-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.nbds-trial-countdown-card{padding:17px;border-radius:18px}.nbds-trial-clock{gap:6px}.nbds-trial-clock span{min-height:68px;border-radius:13px;padding:8px 3px}.nbds-trial-clock strong{font-size:1.15rem}.nbds-trial-clock small{font-size:.54rem}.nbds-trial-state{align-items:flex-start;flex-direction:column}.admin-trial-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-trial-table .nbds-admin-mini-countdown{grid-template-columns:repeat(4,36px)}}


/* v305 — compact, screenshot-matched administrator role cards */
.admin-registered-users-summary{margin:0 0 20px!important}
.admin-user-summary-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  align-items:stretch!important;
  justify-content:stretch!important;
  gap:14px!important;
  width:100%!important;
  margin:0!important;
}
.admin-user-summary-card{
  width:auto!important;
  min-width:0!important;
  min-height:132px!important;
  aspect-ratio:auto!important;
  justify-content:center!important;
  padding:18px 20px!important;
  border:1px solid #d9e3e9!important;
  border-radius:22px!important;
  background:linear-gradient(145deg,#fff,#fbfcfd)!important;
  box-shadow:0 10px 26px rgba(28,54,85,.07)!important;
}
.admin-user-summary-card::after{width:72px!important;height:72px!important;right:-34px!important;bottom:-36px!important}
.admin-user-summary-card span{font-size:.84rem!important;line-height:1.15!important}
.admin-user-summary-card strong{margin:8px 0 6px!important;font-size:2rem!important;line-height:1!important}
.admin-user-summary-card small{font-size:.74rem!important;line-height:1.3!important}
@media(max-width:1260px){.admin-user-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:760px){
  .admin-user-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .admin-user-summary-card{min-height:116px!important;padding:14px 15px!important;border-radius:18px!important}
  .admin-user-summary-card strong{font-size:1.72rem!important}
  .admin-user-summary-card small{font-size:.66rem!important}
}
@media(max-width:360px){
  .admin-user-summary-grid{grid-template-columns:1fr!important}
  .admin-user-summary-card{min-height:104px!important}
}


/* v307: clean administrator live-chat portrait and secure email OTP screen. */
#adminCurrentAgentAvatar > span,
#adminCurrentAgentAvatar > b,
#adminCurrentAgentAvatar .admin-live-chat-profile-avatar-inner:not(.has-user-photo) {
  display: none !important;
}
#adminCurrentAgentAvatar > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.admin-otp-card {
  max-width: 520px;
  text-align: center;
}
.admin-otp-shield {
  width: 58px;
  height: 58px;
  margin: 0 auto 12px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg,#087844,#0aa15e);
  color: #fff;
  font-size: 1.6rem;
  font-weight: 900;
  box-shadow: 0 12px 28px rgba(8,120,68,.2);
}
.admin-otp-kicker {
  display: inline-flex;
  padding: 7px 11px;
  border-radius: 999px;
  background: #eaf8f0;
  color: #087844;
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.admin-otp-form {
  text-align: left;
  margin-top: 18px;
}
.admin-otp-form input[name="otp_code"] {
  text-align: center;
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: .42em;
  padding-left: calc(1rem + .42em);
}
.admin-otp-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 16px 0;
  color: #60756b;
  font-size: .85rem;
}
.admin-otp-meta strong {
  color: #087844;
  background: #eef8f2;
  border-radius: 9px;
  padding: 7px 10px;
  min-width: 58px;
}
.admin-otp-meta strong.is-expired { color: #a6422b; background: #fff0ec; }
.admin-otp-resend-form {
  display: grid;
  gap: 12px;
  justify-items: center;
}
.admin-otp-resend-form a {
  color: #315b49;
  font-size: .85rem;
}
.admin-otp-security-note {
  margin: 20px 0 0;
  padding: 12px 14px;
  border-radius: 11px;
  background: #fff7dc;
  color: #725200;
  font-size: .78rem;
  line-height: 1.55;
  text-align: left;
}
@media (max-width: 560px) {
  .admin-otp-card { padding: 24px 18px; }
  .admin-otp-form input[name="otp_code"] { font-size: 1.45rem; letter-spacing: .32em; }
}

/* v310 live-only Paystack wallet */
.wallet-live-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.wallet-live-heading b{font-size:.66rem;letter-spacing:.08em;color:#067844;background:#e5f8ee;border:1px solid #bfe9d2;border-radius:999px;padding:5px 8px;white-space:nowrap}.wallet-balance-card[data-live-ready="0"] .wallet-live-heading b{color:#9b3c28;background:#fff0eb;border-color:#ffd4c8}.wallet-live-refresh{margin-top:10px;width:max-content;min-height:36px;padding:8px 12px;font-size:.78rem}.wallet-balance-card.is-syncing{opacity:.84}.wallet-clean-test-form{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.wallet-cleanup-card{border-color:#cce8d8}.wallet-cleanup-card .status-pill{white-space:nowrap}@media(max-width:640px){.wallet-live-heading{align-items:flex-start;flex-direction:column}.wallet-clean-test-form{align-items:stretch}.wallet-clean-test-form .btn{width:100%}}

/* v311: one authoritative Paystack balance and compact transaction controls. */
.wallet-summary-grid.wallet-live-only-grid{grid-template-columns:minmax(0,2fr) minmax(240px,1fr)}
.wallet-source-card{align-content:center}
.wallet-live-transactions-card .btn-danger,.paystack-row-actions .btn-danger,.wallet-row-actions .btn-danger{min-height:36px;padding:8px 12px;font-size:.78rem;white-space:nowrap}
.paystack-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wallet-live-transactions-card code{word-break:break-all}
@media(max-width:760px){.wallet-summary-grid.wallet-live-only-grid{grid-template-columns:1fr}.wallet-live-transactions-card .btn-danger{width:100%;justify-content:center}}

/* v320: authenticated logout reviews, public testimonials and Admin review controls. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.nbds-testimonials-section{position:relative;overflow:hidden;background:linear-gradient(180deg,#f7fbf8 0%,#edf8f2 100%)}
.nbds-testimonials-section::before{content:"";position:absolute;inset:auto auto -180px -120px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(8,120,68,.11),rgba(8,120,68,0) 68%);pointer-events:none}
.nbds-testimonials-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:28px;position:relative;z-index:1}
.nbds-testimonials-heading>div:first-child{max-width:720px}
.nbds-testimonials-heading h2{margin:10px 0 9px;font-size:clamp(1.8rem,4vw,3rem);line-height:1.08;color:#143e2c}
.nbds-testimonials-heading h2 span{color:#087844}
.nbds-testimonials-heading p{margin:0;color:#61766b;line-height:1.7}
.nbds-review-summary{flex:0 0 auto;min-width:170px;padding:17px 20px;border-radius:18px;background:#fff;border:1px solid #d7eadf;box-shadow:0 14px 34px rgba(20,73,48,.09);display:grid;grid-template-columns:auto auto;align-items:end;justify-content:center;text-align:center}
.nbds-review-summary>strong{font-size:2.15rem;line-height:1;color:#087844}
.nbds-review-summary>span{font-weight:800;color:#65786e;margin-bottom:3px}
.nbds-summary-stars{grid-column:1/-1;color:#f1b51c;letter-spacing:.08em;font-size:1.05rem;margin-top:6px}
.nbds-review-summary small{grid-column:1/-1;color:#6b7c73;margin-top:5px}
.nbds-review-carousel{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) 46px;gap:14px;align-items:center;z-index:1}
.nbds-review-viewport{overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory;border-radius:22px;outline:none;padding:4px 1px 14px}
.nbds-review-viewport::-webkit-scrollbar{display:none}
.nbds-review-viewport:focus-visible{box-shadow:0 0 0 4px rgba(8,120,68,.16)}
.nbds-review-track{display:flex;gap:18px;align-items:stretch}
.nbds-review-card{flex:0 0 calc((100% - 36px)/3);min-width:0;scroll-snap-align:start;background:#fff;border:1px solid #d9e9df;border-radius:20px;padding:22px;box-shadow:0 15px 36px rgba(20,73,48,.08);display:flex;flex-direction:column;min-height:250px;transition:transform .2s ease,box-shadow .2s ease}
.nbds-review-card:hover{transform:translateY(-3px);box-shadow:0 20px 42px rgba(20,73,48,.12)}
.nbds-review-card-top{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center}
.nbds-review-photo,.logout-review-avatar,.admin-review-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#087844,#d7a62f);color:#fff;font-weight:900;box-shadow:0 7px 18px rgba(8,120,68,.18)}
.nbds-review-photo img,.logout-review-avatar img,.admin-review-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.nbds-review-card-top strong{display:block;color:#143e2c;font-size:.96rem;line-height:1.25}
.nbds-review-card-top span{display:block;color:#778a80;font-size:.78rem;margin-top:3px}
.nbds-review-card-stars,.admin-review-stars{color:#f1b51c;letter-spacing:.04em;white-space:nowrap;font-size:.84rem}
.nbds-review-card-stars span,.admin-review-stars span{display:inline;color:#dfe6e2}
.nbds-review-card blockquote{margin:20px 0 18px;color:#365648;line-height:1.75;font-size:.93rem;flex:1;word-break:break-word}
.nbds-review-card>small{color:#7c8d84;font-size:.74rem}
.nbds-review-empty{flex:0 0 100%;min-height:230px;border:1px dashed #b9d8c6;border-radius:20px;background:rgba(255,255,255,.76);display:grid;place-items:center;text-align:center;align-content:center;padding:28px;color:#527064}
.nbds-review-empty>span{color:#f1b51c;font-size:1.3rem;letter-spacing:.1em}
.nbds-review-empty h3{margin:10px 0 5px;color:#173f2d}
.nbds-review-empty p{max-width:620px;margin:0;line-height:1.65}
.nbds-review-arrow{width:44px;height:44px;border-radius:50%;border:1px solid #cbe2d5;background:#fff;color:#087844;font-size:1.75rem;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 24px rgba(15,73,46,.1);transition:.18s ease}
.nbds-review-arrow:hover:not(:disabled){background:#087844;color:#fff;transform:translateY(-2px)}
.nbds-review-arrow:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}
.nbds-review-thanks{margin-bottom:24px}

.logout-review-page{margin:0;min-height:100vh;background:linear-gradient(150deg,#eaf7ef 0%,#f9fcfa 45%,#f3ead3 100%);color:#183a2b}
.logout-review-overlay{min-height:100vh;display:grid;place-items:center;padding:24px;box-sizing:border-box}
.logout-review-dialog{width:min(620px,100%);background:#fff;border:1px solid #d5e8dc;border-radius:26px;padding:30px;box-shadow:0 28px 80px rgba(18,67,43,.18);text-align:center;position:relative;overflow:hidden}
.logout-review-dialog::before{content:"";position:absolute;inset:0 0 auto;height:7px;background:linear-gradient(90deg,#087844,#d7a62f)}
.logout-review-brand{display:flex;align-items:center;justify-content:center;gap:10px;color:#17432f;font-weight:850;font-size:.86rem;margin-bottom:22px}
.logout-review-brand .brand-mark{width:38px;height:38px}
.logout-review-icon{width:60px;height:60px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:#e8f7ef;color:#087844;font-size:1.8rem;font-weight:900}
.logout-review-user{display:flex;align-items:center;justify-content:center;gap:12px;margin:2px 0 19px}
.logout-review-user>div:last-child{text-align:left;display:grid}
.logout-review-user small,.logout-review-user span{color:#75877e;font-size:.72rem}
.logout-review-user strong{color:#173f2d;font-size:.98rem;margin:2px 0}
.logout-review-kicker{display:inline-flex;padding:7px 11px;border-radius:999px;background:#eaf8f0;color:#087844;text-transform:uppercase;letter-spacing:.07em;font-weight:850;font-size:.68rem}
.logout-review-dialog h1{font-size:clamp(1.55rem,5vw,2.25rem);line-height:1.15;margin:14px 0 10px;color:#143e2c}
.logout-review-dialog>p{margin:0 auto 20px;max-width:520px;color:#61766b;line-height:1.7}
.logout-review-form{display:grid;gap:17px;text-align:left}
.logout-review-fieldset{border:0;margin:0;padding:0;text-align:center}
.logout-review-fieldset legend{width:100%;font-weight:800;color:#315443;font-size:.84rem;margin-bottom:7px}
.logout-review-stars{display:flex;flex-direction:row-reverse;justify-content:center;gap:5px}
.logout-review-stars input{position:absolute;opacity:0;pointer-events:none}
.logout-review-stars label{cursor:pointer;color:#dce4df;font-size:2.5rem;line-height:1;transition:color .14s ease,transform .14s ease}
.logout-review-stars input:checked~label,.logout-review-stars label:hover,.logout-review-stars label:hover~label{color:#f1b51c;transform:translateY(-2px)}
.logout-review-stars input:focus-visible+label{outline:3px solid rgba(8,120,68,.28);outline-offset:3px;border-radius:7px}
.logout-review-feedback{display:grid;gap:7px}
.logout-review-feedback>span{font-weight:800;color:#315443;font-size:.84rem}
.logout-review-feedback textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:112px;border:1px solid #cbded3;border-radius:14px;padding:13px 14px;font:inherit;line-height:1.6;color:#244738;background:#fbfdfc;outline:none}
.logout-review-feedback textarea:focus{border-color:#087844;box-shadow:0 0 0 4px rgba(8,120,68,.12)}
.logout-review-feedback small{text-align:right;color:#7a8d83;font-size:.72rem}
.logout-review-consent{display:flex;align-items:flex-start;gap:9px;color:#60776b;font-size:.77rem;line-height:1.5}
.logout-review-consent input{margin-top:3px;accent-color:#087844}
.logout-review-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:4px}
.logout-review-actions .btn{min-width:155px}

.admin-review-list{display:grid;gap:14px}
.admin-review-item{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(320px,1.7fr) auto;gap:18px;align-items:center;border:1px solid #dceae2;border-radius:16px;padding:17px;background:#fbfdfc}
.admin-review-person{display:flex;align-items:center;gap:11px;min-width:0}
.admin-review-person>div:last-child{min-width:0}
.admin-review-person strong{display:block;color:#173f2d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-review-person span,.admin-review-person small{display:block;color:#74867c;font-size:.73rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}
.admin-review-content{min-width:0}
.admin-review-content p{margin:7px 0 0;color:#436153;line-height:1.6;word-break:break-word}
.admin-review-avatar{flex:0 0 48px}

@media(max-width:1020px){
  .nbds-review-card{flex-basis:calc((100% - 18px)/2)}
  .admin-review-item{grid-template-columns:1fr auto}.admin-review-content{grid-column:1/-1;grid-row:2}
}
@media(max-width:720px){
  .nbds-testimonials-heading{align-items:stretch;flex-direction:column}
  .nbds-review-summary{align-self:flex-start}
  .nbds-review-carousel{grid-template-columns:1fr}
  .nbds-review-arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:40px;height:40px}
  .nbds-review-arrow:hover:not(:disabled){transform:translateY(calc(-50% - 2px))}
  .nbds-review-arrow.is-prev{left:-5px}.nbds-review-arrow.is-next{right:-5px}
  .nbds-review-viewport{padding-left:20px;padding-right:20px}
  .nbds-review-card{flex-basis:100%;min-height:235px}
  .logout-review-dialog{padding:26px 19px;border-radius:21px}
  .logout-review-actions{display:grid}.logout-review-actions .btn{width:100%}
  .admin-review-item{grid-template-columns:1fr}.admin-review-content{grid-column:auto;grid-row:auto}.admin-review-item form .btn{width:100%}
}
@media(max-width:440px){
  .nbds-review-card-top{grid-template-columns:46px minmax(0,1fr)}
  .nbds-review-card-stars{grid-column:1/-1;margin-top:2px}
  .logout-review-stars label{font-size:2.2rem}
}
@media(prefers-reduced-motion:reduce){.nbds-review-card,.nbds-review-arrow,.logout-review-stars label{transition:none}.nbds-review-viewport{scroll-behavior:auto}}


/* v321: Referral programme remains inside the Student/Admin dashboards. */
.nbds-referral-copy-row{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
.nbds-referral-copy-row input{flex:1;min-width:260px}
.nbds-referral-copy-row .btn{white-space:nowrap}
#page-referrals .student-card,#page-admin-referrals .student-card{overflow:visible}
#page-referrals .table-wrap,#page-admin-referrals .table-wrap{max-width:100%;overflow:auto}
@media (max-width:700px){
  .nbds-referral-copy-row{display:grid;grid-template-columns:1fr}
  .nbds-referral-copy-row input{min-width:0;width:100%}
  #page-referrals .student-stats-grid,#page-admin-referrals .student-stats-grid{grid-template-columns:1fr}
}


/* v323: homepage uses buttons only; all registration/payment forms stay on a separate page. */
.nbds-home-access-cta .register-note{
  margin-top:0;
  padding:clamp(28px,5vw,54px);
}
.nbds-home-access-cta .section-head{margin-bottom:24px}
.nbds-home-access-cta .hero-actions{
  justify-content:center;
  margin-bottom:0;
}

/* v324: centred Pay & Register experience and once-per-tab homepage welcome. */
.nbds-home-welcome[hidden]{display:none!important}
.pay-register-main{background:linear-gradient(180deg,#f5fbf7 0,#fbfdfc 42%,#f2f8f4 100%)}
.pay-register-stage{position:relative;overflow:hidden;padding:clamp(54px,7vw,92px) 0 clamp(62px,8vw,108px)}
.pay-register-stage::before,.pay-register-stage::after{content:"";position:absolute;border-radius:50%;pointer-events:none;filter:blur(2px)}
.pay-register-stage::before{width:420px;height:420px;left:-230px;top:-180px;background:radial-gradient(circle,rgba(22,163,96,.14),rgba(22,163,96,0) 70%)}
.pay-register-stage::after{width:500px;height:500px;right:-280px;bottom:-260px;background:radial-gradient(circle,rgba(8,64,82,.12),rgba(8,64,82,0) 70%)}
.pay-register-container{position:relative;z-index:1}
.pay-register-heading{width:min(760px,100%);margin:0 auto 30px;text-align:center}
.pay-register-heading .badge{display:inline-flex;align-items:center;justify-content:center;margin:0 auto 14px}
.pay-register-heading h1{margin:0;color:#123b2b;font-size:clamp(2.05rem,5vw,3.75rem);line-height:1.08;letter-spacing:-.035em}
.pay-register-heading h1 span{color:#07834c}
.pay-register-heading>p{width:min(690px,100%);margin:16px auto 0;color:#5c7066;font-size:clamp(.98rem,1.6vw,1.08rem);line-height:1.72}
.pay-register-trust{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:20px}
.pay-register-trust span{display:inline-flex;align-items:center;min-height:36px;padding:7px 12px;border:1px solid #d5e8dc;border-radius:999px;background:rgba(255,255,255,.82);color:#315d48;font-size:.82rem;font-weight:700;box-shadow:0 7px 20px rgba(19,72,45,.05)}
.pay-register-card-wrap{display:flex;justify-content:center;align-items:flex-start;width:100%}
.pay-register-checkout{width:min(620px,100%);box-sizing:border-box;padding:clamp(24px,4vw,38px);border-radius:28px;border:1px solid rgba(181,215,195,.92);box-shadow:0 28px 75px rgba(17,75,47,.13),0 2px 8px rgba(17,75,47,.05);background:rgba(255,255,255,.97)}
.pay-register-plan-line{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-4px 0 22px;padding:14px 16px;border-radius:17px;background:linear-gradient(135deg,#eaf8f0,#f4fbf7);border:1px solid #d7ebdf}
.pay-register-plan-line>div{display:grid;gap:2px}
.pay-register-plan-line small{color:#577064;font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.055em}
.pay-register-plan-line strong{color:#087844;font-size:1.4rem;line-height:1.1}
.pay-register-plan-line>span{padding:7px 10px;border-radius:999px;background:#fff;color:#315d48;font-size:.76rem;font-weight:750;border:1px solid #d5e7dc;white-space:nowrap}
.pay-register-checkout .checkout-title{text-align:left}
.pay-register-checkout .checkout-title h2{margin:12px 0 8px;color:#153d2d;font-size:clamp(1.5rem,3vw,2rem);line-height:1.2}
.pay-register-checkout .checkout-title p{margin:0;color:#607269;line-height:1.65}
.pay-register-checkout .home-payment-mode{margin:22px 0 20px}
.pay-register-checkout .home-payment-mode span{min-height:48px;box-sizing:border-box;display:grid;place-items:center;padding:11px 12px;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.pay-register-checkout .home-payment-mode label:hover span{transform:translateY(-1px);border-color:#82b99b}
.pay-register-checkout .home-payment-mode input:focus-visible+span{outline:3px solid rgba(8,120,68,.18);outline-offset:2px}
.pay-register-checkout .home-payment-fields{gap:15px}
.pay-register-checkout .home-payment-fields label{gap:7px;font-size:.9rem;color:#294d3c}
.pay-register-checkout .home-payment-fields input,.pay-register-checkout .home-payment-fields select{min-height:52px;border-radius:13px;border-color:#bfd7c9;background:#fcfefd;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.pay-register-checkout .home-payment-fields input:focus,.pay-register-checkout .home-payment-fields select:focus{outline:0;border-color:#07834c;background:#fff;box-shadow:0 0 0 4px rgba(7,131,76,.11)}
.pay-register-checkout .home-payment-guidance{margin:1px 0 0;padding:12px 13px;border-radius:12px;background:#eef8f2;border:1px solid #d6eadf;color:#587066;font-size:.78rem;line-height:1.55}
.pay-register-referral{margin:17px 0 2px!important;background:#fff8df!important;border-color:#eddfa7!important;color:#6d5611!important}
.pay-register-checkout .home-pay-button{min-height:54px;margin-top:20px;border-radius:14px;font-size:.96rem;box-shadow:0 12px 25px rgba(8,120,68,.18)}
.pay-register-checkout .checkout-terms{text-align:center;margin:11px auto 0;max-width:500px}
.pay-register-checkout .free-trial-action{align-items:center;margin-top:18px;padding-top:17px}
.pay-register-alert{width:min(620px,100%);box-sizing:border-box;margin:0 auto 18px}
.pay-register-steps{width:min(900px,100%);margin:28px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pay-register-steps>div{display:flex;align-items:flex-start;gap:11px;padding:15px 16px;border:1px solid #dcebe2;border-radius:17px;background:rgba(255,255,255,.78);box-shadow:0 10px 28px rgba(19,72,45,.045)}
.pay-register-steps>div>span{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:50%;background:#087844;color:#fff;font-weight:800;font-size:.82rem}
.pay-register-steps p{display:grid;gap:4px;margin:0}
.pay-register-steps strong{color:#204b38;font-size:.87rem}
.pay-register-steps small{color:#687a71;line-height:1.45}
.pay-register-security-note{width:min(760px,100%);margin:18px auto 0;text-align:center;color:#667970;font-size:.82rem;line-height:1.6}
@media(max-width:720px){
  .pay-register-stage{padding:38px 0 70px}
  .pay-register-container{width:min(100% - 24px,1200px)}
  .pay-register-heading{margin-bottom:23px}
  .pay-register-heading>p{line-height:1.62}
  .pay-register-trust{gap:7px}
  .pay-register-trust span{font-size:.74rem;padding:6px 9px}
  .pay-register-checkout{border-radius:22px;padding:22px 18px}
  .pay-register-plan-line{padding:12px 13px}
  .pay-register-plan-line strong{font-size:1.2rem}
  .pay-register-steps{grid-template-columns:1fr}
}
@media(max-width:420px){
  .pay-register-container{width:min(100% - 16px,1200px)}
  .pay-register-heading h1{font-size:1.95rem}
  .pay-register-trust{display:grid;justify-items:center}
  .pay-register-plan-line{align-items:flex-start;flex-direction:column;gap:8px}
  .pay-register-checkout .home-payment-mode{grid-template-columns:1fr}
  .pay-register-checkout .free-trial-action{display:grid;text-align:center;justify-content:center}
}

/* v338: homepage conversion sections — price, grades, learning path and verified tutors */
.nbds-hero-subscription{
  width:min(540px,100%);
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  margin:-4px 0 24px;
  padding:15px 17px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:20px;
  background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.07));
  box-shadow:inset 0 1px rgba(255,255,255,.13),0 18px 40px rgba(0,0,0,.13);
  backdrop-filter:blur(14px);
}
.nbds-hero-subscription>div{display:grid;gap:2px;min-width:150px}
.nbds-hero-subscription small{
  color:#d7ede2;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.095em;
  text-transform:uppercase;
}
.nbds-hero-subscription strong{
  color:#8ff0bd;
  font-size:clamp(2rem,4.6vw,3.4rem);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:900;
}
.nbds-hero-subscription>span{color:#fff;font-weight:750;font-size:1rem}
.nbds-hero-subscription>b{
  margin-left:auto;
  padding:8px 11px;
  border-radius:999px;
  background:#f2d675;
  color:#4c3a00;
  font-size:.72rem;
  letter-spacing:.025em;
}

.nbds-curriculum-overview{
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 18%,rgba(17,151,111,.11),transparent 27%),
    radial-gradient(circle at 94% 76%,rgba(214,170,77,.12),transparent 25%),
    #f7fbf8;
}
.nbds-curriculum-overview .section-head .section-kicker,
.nbds-learning-steps .section-head .section-kicker{justify-content:center}
.nbds-grade-band-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.nbds-grade-band-card{
  position:relative;
  overflow:hidden;
  min-height:290px;
  padding:25px 23px 23px;
  border:1px solid rgba(11,79,63,.11);
  border-radius:25px;
  background:rgba(255,255,255,.92);
  box-shadow:0 17px 42px rgba(14,69,48,.075);
  transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;
}
.nbds-grade-band-card::after{
  content:"";
  position:absolute;
  width:110px;
  height:110px;
  right:-48px;
  top:-48px;
  border-radius:50%;
  background:rgba(15,145,91,.075);
}
.nbds-grade-band-card:hover{
  transform:translateY(-7px);
  border-color:rgba(15,145,91,.27);
  box-shadow:0 25px 58px rgba(14,69,48,.13);
}
.nbds-grade-band-icon{
  width:53px;
  height:53px;
  display:grid;
  place-items:center;
  margin-bottom:17px;
  border-radius:17px;
  background:linear-gradient(145deg,#e7f7ee,#d7eddf);
  box-shadow:inset 0 1px #fff;
  font-size:1.45rem;
}
.nbds-grade-band-card>span{
  display:inline-block;
  margin-bottom:7px;
  color:#087844;
  font-size:.76rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.nbds-grade-band-card h3{margin:0 0 9px;color:#123d2c;font-size:1.24rem}
.nbds-grade-band-card p{margin:0;color:#607269;line-height:1.64;font-size:.91rem}
.nbds-grade-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:18px}
.nbds-grade-pills b{
  padding:6px 8px;
  border:1px solid #d6e9de;
  border-radius:999px;
  background:#f3faf6;
  color:#315f49;
  font-size:.68rem;
  font-weight:750;
}
.nbds-subject-showcase{
  display:grid;
  grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);
  gap:34px;
  align-items:center;
  margin-top:28px;
  padding:clamp(25px,4vw,44px);
  border:1px solid rgba(255,255,255,.2);
  border-radius:31px;
  background:
    radial-gradient(circle at 90% 8%,rgba(158,229,195,.16),transparent 28%),
    linear-gradient(135deg,#082b25,#07533a 58%,#087844);
  box-shadow:0 25px 65px rgba(6,67,45,.22);
}
.nbds-subject-showcase .section-kicker{color:#9ee5c3}
.nbds-subject-showcase .section-kicker::before{background:linear-gradient(90deg,#9ee5c3,#f0cf73)}
.nbds-subject-showcase-copy h3{
  max-width:540px;
  margin:0 0 12px;
  color:#fff;
  font-size:clamp(1.7rem,3vw,2.65rem);
  line-height:1.13;
  letter-spacing:-.035em;
}
.nbds-subject-showcase-copy p{margin:0 0 21px;color:#d6eae1;line-height:1.72}
.nbds-subject-showcase-copy .btn-primary{background:#fff;color:#075c3b;box-shadow:0 12px 30px rgba(0,0,0,.16)}
.nbds-subject-cloud{display:flex;align-content:center;justify-content:center;gap:10px;flex-wrap:wrap}
.nbds-subject-cloud span{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:9px 13px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(255,255,255,.095);
  color:#f6fff9;
  box-shadow:inset 0 1px rgba(255,255,255,.08);
  font-size:.82rem;
  font-weight:700;
  backdrop-filter:blur(8px);
}

.nbds-learning-steps{background:#fff}
.nbds-learning-step-grid{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.nbds-learning-step-grid::before{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:43px;
  height:2px;
  background:linear-gradient(90deg,#bfe2ce,#087844,#bfe2ce);
  z-index:0;
}
.nbds-learning-step-card{
  position:relative;
  z-index:1;
  min-height:255px;
  padding:24px 22px 22px;
  border:1px solid #dcebe2;
  border-radius:23px;
  background:linear-gradient(180deg,#fff,#f7fbf8);
  box-shadow:0 15px 38px rgba(20,73,46,.065);
}
.nbds-learning-step-card>span{
  position:absolute;
  top:15px;
  right:17px;
  color:#b8d5c6;
  font-size:1.35rem;
  line-height:1;
  font-weight:900;
}
.nbds-learning-step-icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  margin-bottom:20px;
  border:6px solid #fff;
  border-radius:50%;
  background:linear-gradient(145deg,#087844,#064b35);
  color:#fff;
  box-shadow:0 0 0 1px #cfe7d9,0 10px 25px rgba(8,120,68,.18);
  font-size:1.35rem;
}
.nbds-learning-step-card h3{margin:0 0 9px;color:#163e2e;font-size:1.11rem;line-height:1.35}
.nbds-learning-step-card p{margin:0;color:#607269;line-height:1.65;font-size:.9rem}
.nbds-learning-step-cta{
  display:flex;
  align-items:center;
  gap:13px;
  flex-wrap:wrap;
  margin-top:24px;
  padding:17px 19px;
  border:1px solid #d5e8dc;
  border-radius:19px;
  background:#f0f9f4;
}
.nbds-learning-step-cta strong{color:#16432f;font-size:1.02rem}
.nbds-learning-step-cta span{color:#5a7065}
.nbds-learning-step-cta .btn{margin-left:auto}

.nbds-home-tutors{
  overflow:hidden;
  background:
    radial-gradient(circle at 0 0,rgba(20,167,105,.14),transparent 28%),
    radial-gradient(circle at 100% 100%,rgba(217,177,82,.12),transparent 25%),
    #f4faf6;
}
.nbds-home-tutor-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) 235px;
  gap:34px;
  align-items:end;
  margin-bottom:31px;
}
.nbds-home-tutor-heading h2{
  max-width:790px;
  margin:0 0 12px;
  color:#102f25;
  font-size:clamp(2rem,4vw,3.55rem);
  line-height:1.08;
  letter-spacing:-.045em;
}
.nbds-home-tutor-heading h2 span{color:#087844}
.nbds-home-tutor-heading p{max-width:760px;margin:0;color:#5e7368;line-height:1.72}
.nbds-tutor-trust-stamp{
  display:grid;
  gap:7px;
  padding:21px;
  border:1px solid #cbe3d6;
  border-radius:23px;
  background:rgba(255,255,255,.82);
  box-shadow:0 16px 40px rgba(18,73,46,.085);
}
.nbds-tutor-trust-stamp strong{color:#087844;font-size:1.25rem}
.nbds-tutor-trust-stamp span{position:relative;padding-left:15px;color:#526b5f;font-size:.8rem;font-weight:650}
.nbds-tutor-trust-stamp span::before{content:"•";position:absolute;left:0;color:#d19e35}
.nbds-home-tutor-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:19px;
}
.nbds-home-tutor-card{
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  gap:17px;
  min-width:0;
  padding:17px;
  border:1px solid #d6e8de;
  border-radius:24px;
  background:#fff;
  box-shadow:0 16px 42px rgba(16,69,44,.075);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.nbds-home-tutor-card:hover{transform:translateY(-5px);border-color:#a8d3bb;box-shadow:0 23px 52px rgba(16,69,44,.13)}
.nbds-home-tutor-photo{
  position:relative;
  min-height:142px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:linear-gradient(145deg,#0b6c49,#063b2b);
}
.nbds-home-tutor-photo img{width:100%;height:100%;object-fit:cover}
.nbds-home-tutor-photo>span{color:#fff;font-size:2.3rem;font-weight:900}
.nbds-home-tutor-photo b{
  position:absolute;
  left:7px;
  right:7px;
  bottom:7px;
  padding:6px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:#087844;
  text-align:center;
  font-size:.65rem;
}
.nbds-home-tutor-body{min-width:0;align-self:center}
.nbds-home-tutor-body>small{color:#087844;font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.nbds-home-tutor-body h3{margin:4px 0 7px;color:#163d2d;font-size:1.06rem;line-height:1.25}
.nbds-home-tutor-body p{margin:0;color:#61746a;font-size:.82rem;line-height:1.55}
.nbds-home-tutor-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}
.nbds-home-tutor-tags span{padding:5px 7px;border-radius:999px;background:#edf8f2;color:#315f49;font-size:.64rem;font-weight:700}
.nbds-tutor-standard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
.nbds-tutor-standard-grid article{
  min-height:210px;
  padding:26px;
  border:1px solid #d5e8dc;
  border-radius:24px;
  background:#fff;
  box-shadow:0 16px 42px rgba(16,69,44,.07);
}
.nbds-tutor-standard-grid article>div{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  margin-bottom:17px;
  border-radius:16px;
  background:#e8f6ee;
  font-size:1.35rem;
}
.nbds-tutor-standard-grid h3{margin:0 0 8px;color:#153d2d;font-size:1.13rem}
.nbds-tutor-standard-grid p{margin:0;color:#607269;line-height:1.65;font-size:.9rem}
.nbds-home-tutor-action{
  display:flex;
  align-items:center;
  gap:20px;
  margin-top:23px;
  padding:20px 22px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:22px;
  background:linear-gradient(135deg,#082c25,#075c3e);
  box-shadow:0 20px 45px rgba(5,74,45,.18);
}
.nbds-home-tutor-action>div:first-child{display:grid;gap:4px;min-width:0}
.nbds-home-tutor-action strong{color:#fff;font-size:1.08rem}
.nbds-home-tutor-action span{color:#d3e9df;font-size:.88rem;line-height:1.55}
.nbds-home-tutor-action .hero-actions{margin:0 0 0 auto;flex:0 0 auto}
.nbds-home-tutor-action .btn-outline{color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.3)}

@media(max-width:1120px){
  .nbds-grade-band-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nbds-learning-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nbds-learning-step-grid::before{display:none}
  .nbds-home-tutor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .nbds-subject-showcase{grid-template-columns:1fr}
  .nbds-subject-cloud{justify-content:flex-start}
  .nbds-home-tutor-heading{grid-template-columns:1fr;align-items:start}
  .nbds-tutor-trust-stamp{width:min(100%,420px)}
  .nbds-home-tutor-action{align-items:flex-start;flex-direction:column}
  .nbds-home-tutor-action .hero-actions{margin-left:0}
}
@media(max-width:700px){
  .home-hero{min-height:0}
  .nbds-hero-subscription{align-items:flex-start}
  .nbds-hero-subscription>b{margin-left:0}
  .nbds-grade-band-grid,
  .nbds-learning-step-grid,
  .nbds-home-tutor-grid,
  .nbds-tutor-standard-grid{grid-template-columns:1fr}
  .nbds-grade-band-card,.nbds-learning-step-card{min-height:0}
  .nbds-learning-step-cta{align-items:flex-start;flex-direction:column}
  .nbds-learning-step-cta .btn{margin-left:0;width:100%}
  .nbds-home-tutor-card{grid-template-columns:96px minmax(0,1fr)}
  .nbds-home-tutor-photo{min-height:130px}
  .nbds-home-tutor-action .hero-actions{display:grid;width:100%}
  .nbds-home-tutor-action .btn{width:100%}
}
@media(max-width:420px){
  .nbds-hero-subscription{display:grid;gap:10px;padding:14px}
  .nbds-subject-showcase{padding:23px 18px;border-radius:24px}
  .nbds-subject-cloud{gap:7px}
  .nbds-subject-cloud span{min-height:37px;padding:7px 10px;font-size:.74rem}
  .nbds-home-tutor-card{grid-template-columns:1fr}
  .nbds-home-tutor-photo{height:210px}
}

/* v344: Homepage-only floating WhatsApp support button positioned on the left. */
.nbds-whatsapp-float{
  position:fixed;
  left:max(18px,env(safe-area-inset-left));
  bottom:max(18px,env(safe-area-inset-bottom));
  z-index:10010;
  display:flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  border:3px solid rgba(255,255,255,.96);
  border-radius:50%;
  background:#25d366;
  color:#fff;
  box-shadow:0 12px 32px rgba(0,72,39,.32);
  text-decoration:none;
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;
  isolation:isolate;
}
.nbds-whatsapp-float::before{
  content:"";
  position:absolute;
  inset:-7px;
  z-index:-1;
  border:2px solid rgba(37,211,102,.32);
  border-radius:inherit;
  animation:nbdsWhatsAppPulse 2.2s ease-out infinite;
}
.nbds-whatsapp-float svg{width:34px;height:34px;display:block;fill:currentColor}
.nbds-whatsapp-float:hover{transform:translateY(-3px) scale(1.04);background:#1ebe5d;box-shadow:0 16px 38px rgba(0,72,39,.4)}
.nbds-whatsapp-float:focus-visible{outline:4px solid #ffcf33;outline-offset:4px}

@keyframes nbdsWhatsAppPulse{
  0%{opacity:.8;transform:scale(.88)}
  70%,100%{opacity:0;transform:scale(1.18)}
}
@media(max-width:640px){
  .nbds-whatsapp-float{left:max(13px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));width:58px;height:58px}
  .nbds-whatsapp-float svg{width:31px;height:31px}
}
@media(prefers-reduced-motion:reduce){
  .nbds-whatsapp-float{transition:none}
  .nbds-whatsapp-float::before{animation:none}
}


/* V359 automatic Grade 1-12 CBT launch */
.auto-cbt-launch-card{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:18px 0 20px;padding:22px 24px;border:1px solid #cfe7d8;border-radius:20px;background:linear-gradient(135deg,#f1fbf5 0%,#ffffff 66%);box-shadow:0 12px 32px rgba(16,93,58,.08)}
.auto-cbt-launch-card>div{min-width:0}.auto-cbt-launch-kicker{display:inline-block;margin-bottom:6px;color:#078049;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.auto-cbt-launch-card h2{margin:0 0 7px;color:#16372a;font-size:clamp(1.18rem,2vw,1.5rem)}.auto-cbt-launch-card p{margin:0;max-width:850px;color:#63776d;font-size:.86rem;line-height:1.62}.auto-cbt-launch-button{flex:0 0 auto;white-space:nowrap}
@media(max-width:760px){.auto-cbt-launch-card{align-items:stretch;flex-direction:column;padding:18px}.auto-cbt-launch-button{width:100%;justify-content:center;text-align:center}}

/* v361 historical result archive and individual assignment result controls */
.result-filter-board{
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
}
.assignment-result-table .btn-small,
[data-parent-result-type="assignment"] .btn-small{
  white-space:nowrap;
  margin:2px 3px 2px 0;
}
.assignment-result-row td:first-child,
.parent-assignment-result-row td:first-child{
  white-space:nowrap;
  font-weight:700;
  color:var(--green-900);
}
@media(max-width:700px){
  .result-filter-board{grid-template-columns:1fr;}
}

/* v406: Verified tutor marketplace cards show the tutor's complete uploaded photo without cropping. */
.live-tutor-photo{
  aspect-ratio:4/5;
  min-height:320px;
  background:linear-gradient(145deg,#f1f8f4,#ffffff);
}
.live-tutor-photo img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center center !important;
  background:#f7fbf9;
  transform:none !important;
}
.live-tutor-card:hover .live-tutor-photo img{
  transform:none !important;
}
@media(max-width:520px){
  .live-tutor-photo{
    aspect-ratio:4/5;
    min-height:0;
  }
}

/* v407: polished verified-tutor subject filter */
#tutorSubjectFilter.live-inline-filter{
  width:min(100%, 320px);
  min-width:240px;
  height:50px;
  padding:0 48px 0 18px;
  border:1.5px solid #b9ddca;
  border-radius:14px;
  background-color:#ffffff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23087848' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 15px center;
  background-size:19px;
  color:#173a2b;
  font-family:'Montserrat',sans-serif;
  font-size:15px;
  font-weight:600;
  line-height:1.2;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  box-shadow:0 7px 20px rgba(15,92,59,.08), inset 0 1px 0 rgba(255,255,255,.9);
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease, background-color .2s ease;
}
#tutorSubjectFilter.live-inline-filter:hover{
  border-color:#56ad83;
  background-color:#fbfffd;
  box-shadow:0 10px 24px rgba(15,92,59,.12);
}
#tutorSubjectFilter.live-inline-filter:focus,
#tutorSubjectFilter.live-inline-filter:focus-visible{
  outline:none;
  border-color:#07844f;
  background-color:#ffffff;
  box-shadow:0 0 0 4px rgba(7,132,79,.13), 0 10px 25px rgba(15,92,59,.12);
}
#tutorSubjectFilter.live-inline-filter option{
  color:#173a2b;
  background:#ffffff;
  font-family:'Montserrat',sans-serif;
  font-weight:500;
}
@media(max-width:800px){
  #tutorSubjectFilter.live-inline-filter{
    width:100%;
    max-width:none;
    min-width:0;
    height:52px;
    font-size:15px;
  }
}


/* NBDS v409 role-safe notification placement. Badges belong only to the
   action-bearing button itself; PhET simulations never carries a notification. */
[data-nbds-message-link="1"],
[data-nbds-announcement-link="1"],
[data-nbds-live-action-link="1"],
[data-nbds-message-nav="1"],
[data-nbds-announcement-nav="1"],
[data-nbds-live-action-nav="1"]{
  position:relative!important;
  padding-right:52px!important;
}
.nbds-live-action-badge{background:#d71920!important;color:#fff!important;}
.student-nav-link[href*="phet"] .nbds-unread-badge,
.student-nav-link[data-label*="PhET" i] .nbds-unread-badge,
.student-nav-link[href*="phet"] .nbds-live-action-badge,
.student-nav-link[data-label*="PhET" i] .nbds-live-action-badge{display:none!important;}

/* v410 — reliable student dashboard interaction and active-state feedback */
body.student-dashboard-body .student-sidebar .student-nav-link[data-page]{
  position:relative;
  z-index:1;
  pointer-events:auto!important;
  cursor:pointer!important;
  touch-action:manipulation;
  -webkit-tap-highlight-color:rgba(0,129,72,.14);
  text-decoration:none!important;
  user-select:none;
}
body.student-dashboard-body .student-sidebar .student-nav-link[data-page]:hover,
body.student-dashboard-body .student-sidebar .student-nav-link[data-page]:focus-visible{
  background:#f0faf4!important;
  color:#006b3f!important;
  outline:none;
}
body.student-dashboard-body .student-sidebar .student-nav-link[data-page]:focus-visible{
  box-shadow:inset 3px 0 0 #008148,0 0 0 3px rgba(0,129,72,.13)!important;
}
body.student-dashboard-body .student-sidebar .student-nav-link[data-page].active{
  background:#e7f8ee!important;
  color:#006b3f!important;
  box-shadow:inset 3px 0 0 #008148!important;
}

/* v411 — structured tutor weekly availability editor */
.nbds-weekly-availability-field{gap:10px}
.nbds-weekly-availability-help{margin:0;color:#64748b;font-size:.92rem;line-height:1.55}
.nbds-weekly-availability{display:grid;gap:10px;margin-top:4px}
.nbds-availability-row{display:grid;grid-template-columns:minmax(180px,.72fr) minmax(320px,1.28fr);align-items:center;gap:18px;padding:14px 16px;border:1px solid #d8e7df;border-radius:16px;background:#fff;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,transform .18s ease}
.nbds-availability-row:hover{border-color:#9fd5ba;box-shadow:0 9px 24px rgba(6,95,70,.07)}
.nbds-availability-row.is-selected{border-color:#16985d;background:linear-gradient(90deg,#f3fcf7 0%,#fff 62%);box-shadow:0 10px 28px rgba(5,150,105,.1)}
.nbds-availability-day{display:flex;align-items:center;gap:11px;min-width:0;cursor:pointer;color:#163c2f}
.nbds-availability-day input{position:absolute;opacity:0;pointer-events:none}
.nbds-availability-check{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border:2px solid #b8d6c7;border-radius:9px;background:#fff;color:transparent;font-size:16px;font-weight:900;line-height:1;transition:.18s ease}
.nbds-availability-day input:focus-visible + .nbds-availability-check{outline:3px solid rgba(16,185,129,.22);outline-offset:2px}
.nbds-availability-day input:checked + .nbds-availability-check{background:#087a49;border-color:#087a49;color:#fff;box-shadow:0 5px 13px rgba(8,122,73,.2)}
.nbds-availability-day strong{font-size:1rem;font-weight:800;letter-spacing:-.01em}
.nbds-availability-times{display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr);align-items:end;gap:10px}
.nbds-availability-times label{display:grid;gap:5px;margin:0}
.nbds-availability-times label>span{font-size:.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b}
.nbds-availability-times input[type=time]{width:100%;min-height:46px;padding:10px 12px;border:1px solid #cadcd3;border-radius:12px;background:#fff;color:#17382d;font:700 .95rem/1.2 'Montserrat',sans-serif;box-shadow:0 2px 7px rgba(15,23,42,.025)}
.nbds-availability-times input[type=time]:focus{outline:none;border-color:#0c8b55;box-shadow:0 0 0 3px rgba(12,139,85,.12)}
.nbds-availability-times input[type=time]:disabled{background:#f5f7f6;color:#94a3b8;cursor:not-allowed;opacity:.75}
.nbds-availability-separator{align-self:center;padding-top:20px;color:#718096;font-weight:800}
.nbds-availability-note{display:block;margin-top:4px;color:#64748b}
@media(max-width:760px){
  .nbds-availability-row{grid-template-columns:1fr;gap:12px;padding:13px}
  .nbds-availability-times{grid-template-columns:1fr auto 1fr;gap:8px}
  .nbds-availability-times input[type=time]{min-height:48px;font-size:16px}
}
@media(max-width:430px){
  .nbds-availability-times{grid-template-columns:1fr}
  .nbds-availability-separator{display:none}
}


/* v412 — newly scheduled learner tutor request */
#my-live-class-bookings{scroll-margin-top:110px}
.live-booking-card.nbds-new-scheduled-request{
  border:2px solid #0b7a53;
  box-shadow:0 14px 34px rgba(11,122,83,.14);
  position:relative;
}
.live-booking-card.nbds-new-scheduled-request::before{
  content:'Schedule sent';
  position:absolute;
  top:-12px;right:18px;
  padding:5px 12px;
  border-radius:999px;
  background:#0b7a53;
  color:#fff;
  font:700 12px/1.2 Montserrat,Arial,sans-serif;
}


/* v474 school-logo navigation safety */
.student-sidebar .student-brand[data-nbds-brand-home="1"]{
  position:relative!important;
  z-index:50!important;
  pointer-events:auto!important;
  isolation:isolate;
}
.student-sidebar .student-brand[data-nbds-brand-home="1"] .school-logo-mark,
.student-sidebar .student-brand[data-nbds-brand-home="1"] img{
  pointer-events:none!important;
}
.student-sidebar .student-logout,
.student-sidebar .student-logout-bottom{
  z-index:1!important;
}

/* NBDS v480 — keep Teacher unread-message count physically attached to Messages button. */
body.teacher-dashboard-body .student-sidebar [data-nbds-message-nav="1"]{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  padding-right:16px!important;
  overflow:visible!important;
}
body.teacher-dashboard-body .student-sidebar [data-nbds-message-nav="1"] > span:not(.nav-icon):not(.nbds-unread-badge){
  min-width:0;
  flex:1 1 auto;
}
body.teacher-dashboard-body .student-sidebar [data-nbds-message-nav="1"] .nbds-unread-badge{
  position:static!important;
  right:auto!important;
  top:auto!important;
  transform:none!important;
  flex:0 0 auto;
  margin-left:auto!important;
  min-width:28px;
  height:24px;
  padding:0 7px;
  z-index:auto!important;
}
@media (max-width:800px){
  body.teacher-dashboard-body .student-sidebar [data-nbds-message-nav="1"] .nbds-unread-badge{
    min-width:30px;
    height:25px;
    font-size:12px;
  }
}


/* v487 persistent Core Control icons on standalone Admin pages and Workflow Hub */
.student-sidebar[data-nbds-icons-persistent="1"] .student-nav-link > .nav-icon,
.student-sidebar[data-nbds-icons-persistent="1"] .student-logout > .nav-icon,
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-nav-link > .nav-icon,
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-logout > .nav-icon,
.workflow-hub-shell .workflow-role-sidebar .student-nav-link > .nav-icon,
.workflow-hub-shell .workflow-role-sidebar .student-logout > .nav-icon{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 18px!important;
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  max-height:18px!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  visibility:visible!important;
  opacity:1!important;
  color:currentColor!important;
}
.student-sidebar[data-nbds-icons-persistent="1"] .nav-icon > svg,
.admin-oriented-sidebar[data-sidebar-scope="admin"] .nav-icon > svg,
.workflow-hub-shell .workflow-role-sidebar .nav-icon > svg{
  display:block!important;
  width:17px!important;
  min-width:17px!important;
  max-width:17px!important;
  height:17px!important;
  min-height:17px!important;
  max-height:17px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.65!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  visibility:visible!important;
  opacity:1!important;
  transform:none!important;
}
.student-sidebar[data-nbds-icons-persistent="1"] .student-nav-link.active > .nav-icon,
.admin-oriented-sidebar[data-sidebar-scope="admin"] .student-nav-link.active > .nav-icon,
.workflow-hub-shell .workflow-role-sidebar .student-nav-link.active > .nav-icon{
  color:#087443!important;
}

/* v494 mandatory tutor-verification teaching-demo reminder */
html.nbds-verification-modal-open{overflow:hidden}
.nbds-tutor-verification-modal{position:fixed;inset:0;z-index:2147482500;display:grid;place-items:center;padding:18px}
.nbds-tutor-verification-backdrop{position:absolute;inset:0;background:rgba(8,24,18,.68);backdrop-filter:blur(3px)}
.nbds-tutor-verification-panel{position:relative;z-index:1;width:min(760px,100%);max-height:min(88vh,820px);overflow:auto;background:#fff;border-radius:22px;padding:28px;box-shadow:0 28px 80px rgba(0,0,0,.3);outline:none}
.nbds-tutor-verification-close{position:absolute;right:16px;top:12px;border:0;background:#eef5f1;border-radius:50%;width:38px;height:38px;font-size:26px;line-height:1;cursor:pointer;color:#17352a}
.nbds-tutor-verification-kicker{display:inline-flex;background:#e8f6ee;color:#137a49;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}
.nbds-tutor-verification-panel h2{margin:0 44px 10px 0;font-size:clamp(22px,4vw,32px);line-height:1.15;color:#17352a}
.nbds-tutor-verification-panel p{line-height:1.65;color:#52645c}
.nbds-tutor-verification-video-rule{margin:18px 0;padding:15px 16px;border-radius:14px;background:#fff7df;border:1px solid #f0d88c;color:#654d00;line-height:1.55}
.nbds-tutor-verification-list{margin:14px 0 18px;padding-left:23px;display:grid;gap:9px;color:#29463a;line-height:1.5}
.nbds-tutor-verification-missing{border-radius:14px;background:#fff1f1;border:1px solid #efc3c3;padding:14px 16px;color:#7a2828}
.nbds-tutor-verification-missing ul{margin:8px 0 0;padding-left:20px;display:grid;gap:5px}
.nbds-tutor-verification-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.nbds-teaching-demo-confirm{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid #d8e7df;background:#f7fbf9;border-radius:12px;margin-top:12px;line-height:1.45}
.nbds-teaching-demo-confirm input{margin-top:3px;flex:0 0 auto}
.nbds-admin-demo-review{display:flex;align-items:flex-start;gap:9px;margin:10px 0 2px;padding:11px 12px;border-radius:10px;background:#fff7df;border:1px solid #f0d88c;font-size:13px;line-height:1.45}
@media(max-width:640px){.nbds-tutor-verification-modal{padding:10px}.nbds-tutor-verification-panel{max-height:94vh;border-radius:17px;padding:22px 16px 18px}.nbds-tutor-verification-panel h2{margin-right:38px}.nbds-tutor-verification-actions{display:grid}.nbds-tutor-verification-actions .btn{width:100%;justify-content:center}}


/* v511 learner cancelled-booking dismissal */
.nbds-booking-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.nbds-dismiss-cancelled-form{margin:0!important;padding:0!important;display:inline-flex}
.nbds-dismiss-cancelled-button{appearance:none;-webkit-appearance:none;border:1px solid #dc2626;background:#fff;color:#b42318;border-radius:10px;padding:8px 12px;font:inherit;font-size:.78rem;font-weight:800;line-height:1;cursor:pointer;box-shadow:0 4px 12px rgba(180,35,24,.08);transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}
.nbds-dismiss-cancelled-button:hover,.nbds-dismiss-cancelled-button:focus-visible{background:#b42318;color:#fff;border-color:#b42318;outline:none;transform:translateY(-1px)}
@media(max-width:800px){.live-booking-card-head>.nbds-booking-head-actions{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.nbds-dismiss-cancelled-button{min-height:38px;padding:9px 14px}}

/* ===== assets/css/public_home_v371.css ===== */
/* NBDS V371 public interface — screenshot-led redesign */
:root{
  --nbds371-green:#087b48;
  --nbds371-green-dark:#003e39;
  --nbds371-navy:#071d3f;
  --nbds371-ink:#101a2b;
  --nbds371-muted:#68758a;
  --nbds371-line:#e7ebe9;
  --nbds371-soft:#f7faf8;
}
html{scroll-behavior:smooth}
body.nbds-standard-page-body{background:#fff;color:var(--nbds371-ink)}
body.nbds-standard-page-body>.top-strip{height:18px;min-height:18px;padding:0;background:#063f3a;border:0;overflow:hidden}
body.nbds-standard-page-body>.top-strip .container{display:none}
body.nbds-standard-page-body>header.nbds-v371-public-header{background:rgba(255,255,255,.98);border-bottom:1px solid #edf0ee;box-shadow:0 8px 24px rgba(5,48,40,.04);z-index:1200}
.nbds-v371-navbar{min-height:118px;display:grid;grid-template-columns:minmax(250px,330px) 1fr auto;align-items:center;gap:24px;max-width:1600px}
.nbds-v371-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--nbds371-navy);min-width:0}
.nbds-v371-brand-logo{width:64px;height:64px;object-fit:contain;filter:drop-shadow(0 3px 7px rgba(0,68,53,.08))}
.nbds-v371-brand-copy{display:flex;flex-direction:column;line-height:1}
.nbds-v371-brand-copy strong{font-size:clamp(36px,3vw,50px);letter-spacing:-2px;font-weight:900;color:#064d38}
.nbds-v371-brand-copy small{font-size:10px;letter-spacing:.25px;font-weight:900;color:#111b24;margin-top:5px;white-space:nowrap}
.nbds-v371-nav-links{justify-content:center;align-items:stretch;gap:clamp(14px,1.6vw,28px)}
.nbds-v371-nav-links>a,.nbds-v371-nav-trigger{position:relative;display:flex;align-items:center;justify-content:center;background:none;border:0;color:#182237;font:inherit;font-weight:700;font-size:15px;padding:47px 0 41px;cursor:pointer;text-decoration:none;white-space:nowrap}
.nbds-v371-nav-links>a::after,.nbds-v371-nav-trigger::after{content:"";position:absolute;left:0;right:0;bottom:31px;height:2px;background:var(--nbds371-green);transform:scaleX(0);transition:transform .22s ease;transform-origin:center}
.nbds-v371-nav-links>a:hover::after,.nbds-v371-nav-links>a.active::after,.nbds-v371-nav-trigger:hover::after,.nbds-v371-nav-trigger.active::after{transform:scaleX(1)}
.nbds-v371-nav-links>a:hover,.nbds-v371-nav-links>a.active,.nbds-v371-nav-trigger:hover,.nbds-v371-nav-trigger.active{color:#076b41}
.nbds-v371-nav-dropdown{position:relative;display:flex;align-items:stretch}
.nbds-v371-nav-trigger span{font-size:16px;margin-left:4px;transition:transform .2s ease}
.nbds-v371-nav-dropdown.open .nbds-v371-nav-trigger span{transform:rotate(180deg)}
.nbds-v371-nav-menu{position:absolute;top:94px;left:50%;transform:translate(-50%,10px);width:220px;padding:10px;background:#fff;border:1px solid #e6ece8;border-radius:14px;box-shadow:0 20px 50px rgba(2,42,34,.16);opacity:0;visibility:hidden;pointer-events:none;transition:.2s ease;z-index:1500}
.nbds-v371-nav-dropdown.open .nbds-v371-nav-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.nbds-v371-nav-menu a{display:block;padding:11px 13px;border-radius:9px;color:#253047;text-decoration:none;font-size:14px;font-weight:700}
.nbds-v371-nav-menu a:hover,.nbds-v371-nav-menu a.active{background:#eef8f2;color:#087447}
.nbds-v371-nav-actions{display:flex;align-items:center;gap:14px;white-space:nowrap}
.nbds-v371-nav-actions .btn{min-height:52px;padding:0 25px;border-radius:9px;display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:800;box-shadow:none}
.nbds-v371-nav-actions .nbds-v371-login{background:#fff;color:#10203b;border:1px solid #cbd2da}
.nbds-v371-nav-actions .nbds-v371-login:hover{background:#f7faf8;border-color:#9ab8aa}
.nbds-v371-nav-actions .nbds-v371-register{background:linear-gradient(135deg,#0e8e59,#087547);border-color:#087547;color:#fff}

/* Hero — exact structure inspired by the supplied reference */
.nbds-v371-hero{position:relative;padding:0 0 82px;background:#fff}
.nbds-v371-slider{position:relative;width:min(1710px,calc(100% - 30px));min-height:665px;margin:0 auto;border-radius:0 0 26px 26px;overflow:hidden;background:#eef4f0;isolation:isolate}
.nbds-v371-slide{display:none}
.nbds-v371-slide-photo{position:absolute;inset:0;background-size:cover;background-position:center 44%;transform:scale(1.012);transition:opacity .38s ease,transform 3.4s ease;z-index:-3}
.nbds-v371-slider.is-changing .nbds-v371-slide-photo{opacity:.34;transform:scale(1.025)}
.nbds-v371-slide-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.96) 23%,rgba(255,255,255,.74) 39%,rgba(255,255,255,.18) 57%,rgba(255,255,255,0) 72%);z-index:-2;pointer-events:none}
.nbds-v371-hero-inner{min-height:665px;display:flex;align-items:center;max-width:1600px;padding-bottom:50px}
.nbds-v371-hero-copy{width:min(650px,49%);padding:40px 15px 45px 28px}
.nbds-v371-hero-copy h1,.nbds-v371-hero-copy>p,.nbds-v371-learner-note{transition:opacity .2s ease,transform .2s ease}
.nbds-v371-slider.is-changing .nbds-v371-hero-copy h1,.nbds-v371-slider.is-changing .nbds-v371-hero-copy>p,.nbds-v371-slider.is-changing .nbds-v371-learner-note{opacity:.28;transform:translateY(5px)}
.nbds-v371-hero-actions{position:relative;z-index:12;opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto}
.nbds-v371-hero-copy h1{min-height:2.12em;margin:0 0 24px;font-size:clamp(52px,4.8vw,78px);line-height:1.06;letter-spacing:-3.2px;color:#081526;font-weight:900}
.nbds-v371-hero-copy h1 span,.nbds-v371-hero-copy h1 strong{display:block}
.nbds-v371-hero-copy h1 strong{color:#087447;font-weight:900}
.nbds-v371-hero-copy>p{min-height:5.1em;max-width:610px;margin:0 0 28px;color:#334058;font-size:19px;line-height:1.7;font-weight:500}
.nbds-v371-hero-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-bottom:28px}
.nbds-v371-hero-actions .btn{min-height:54px;border-radius:9px;padding:0 25px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;box-shadow:none}
.nbds-v371-hero-actions .btn-primary{background:#08804c;border-color:#08804c;color:#fff}
.nbds-v371-hero-actions .btn-outline{background:#fff;border:1px solid #d8dfe2;color:#1d2a40}
.nbds-v371-learner-note{display:inline-flex;align-items:center;gap:12px;padding:11px 16px;border-radius:13px;background:rgba(255,255,255,.91);box-shadow:0 10px 30px rgba(0,39,30,.07);border:1px solid rgba(223,233,228,.9)}
.nbds-v371-learner-note>span:last-child{display:flex;flex-direction:column;gap:2px;font-size:13px}
.nbds-v371-learner-note small{color:#667483}
.nbds-v371-learner-dots{display:flex;align-items:center}
.nbds-v371-learner-dots i{width:24px;height:24px;border-radius:50%;background:#0c8052;border:2px solid #fff;margin-left:-7px;box-shadow:0 0 0 1px #dce7e1}
.nbds-v371-learner-dots i:first-child{margin-left:0;background:#173d36}.nbds-v371-learner-dots i:nth-child(2){background:#96b5a8}.nbds-v371-learner-dots i:nth-child(3){background:#0a6e48}
.nbds-v371-slide-arrow{position:absolute;top:48%;transform:translateY(-50%);width:54px;height:54px;border:0;border-radius:50%;background:rgba(255,255,255,.95);color:#073e35;font-size:36px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px rgba(10,32,27,.13);z-index:5;transition:.2s ease}
.nbds-v371-slide-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.05)}
.nbds-v371-slide-arrow.is-prev{left:22px}.nbds-v371-slide-arrow.is-next{right:22px}
.nbds-v371-slide-dots{position:absolute;right:50%;bottom:82px;transform:translateX(50%);display:flex;gap:8px;z-index:6}
.nbds-v371-slide-dots button{width:9px;height:9px;border-radius:99px;border:0;background:rgba(255,255,255,.72);box-shadow:0 0 0 1px rgba(0,75,52,.12);padding:0;cursor:pointer;transition:.2s}
.nbds-v371-slide-dots button.is-active{width:28px;background:#0a8150}
.nbds-v371-feature-wrap{position:relative;z-index:10;margin-top:-61px;max-width:1530px}
.nbds-v371-feature-strip{background:rgba(255,255,255,.98);border:1px solid #edf0ef;border-radius:17px;box-shadow:0 14px 42px rgba(1,48,37,.10);display:grid;grid-template-columns:repeat(4,1fr);padding:26px 24px}
.nbds-v371-feature-strip article{display:grid;grid-template-columns:58px 1fr;gap:13px;align-items:center;padding:5px 25px;border-right:1px solid #e7ebe9}
.nbds-v371-feature-strip article:last-child{border-right:0}
.nbds-v371-feature-icon{font-size:35px;filter:saturate(.65);display:flex;align-items:center;justify-content:center;color:#087447}
.nbds-v371-feature-strip strong{display:block;color:#17253b;font-size:16px;line-height:1.25;margin-bottom:6px}
.nbds-v371-feature-strip small{display:block;color:#718095;font-size:14px;line-height:1.4}
.nbds-v371-anchor{display:block;position:relative;top:-120px;visibility:hidden}

/* Section polish to flow with the new homepage */
.nbds-curriculum-overview,.nbds-learning-steps,.nbds-home-tutors,.nbds-testimonials-section,.founder-spotlight-section,.nbds-v371-pricing,.nbds-home-access-cta,.contact-landing-section{scroll-margin-top:120px}
.nbds-curriculum-overview{padding-top:55px!important}
.section-head .section-kicker{color:#07804c;font-weight:800;letter-spacing:.8px;text-transform:uppercase}
.nbds-v371-pricing{background:#f7faf8}
.nbds-v371-price-card{width:min(1040px,100%);margin:34px auto 0;background:#fff;border:1px solid #dfeae3;border-radius:24px;box-shadow:0 18px 48px rgba(0,58,41,.07);display:grid;grid-template-columns:1.1fr 1.6fr auto;gap:28px;align-items:center;padding:30px 34px}
.nbds-v371-price-card>div{display:flex;flex-direction:column;gap:4px}.nbds-v371-price-card small{font-weight:800;color:#51655a}.nbds-v371-price-card strong{font-size:42px;line-height:1;color:#087a49}.nbds-v371-price-card span{color:#65756c}.nbds-v371-price-card ul{margin:0;padding-left:22px;color:#435348;display:grid;gap:8px}.nbds-v371-price-card .btn{white-space:nowrap}

/* Public dropdown/menu mobile behaviour */
@media(max-width:1250px){
  .nbds-v371-navbar{grid-template-columns:250px 1fr auto;gap:14px}.nbds-v371-brand-logo{width:55px;height:55px}.nbds-v371-brand-copy strong{font-size:38px}.nbds-v371-brand-copy small{font-size:8.5px}.nbds-v371-nav-links{gap:15px}.nbds-v371-nav-links>a,.nbds-v371-nav-trigger{font-size:14px}.nbds-v371-nav-actions .btn{padding:0 16px}.nbds-v371-hero-copy{width:54%}
}
@media(max-width:980px){
  body.nbds-standard-page-body>.top-strip{height:4px;min-height:4px}
  .nbds-v371-navbar{min-height:78px;grid-template-columns:1fr auto auto;padding-top:8px;padding-bottom:8px}.nbds-v371-brand-logo{width:48px;height:48px}.nbds-v371-brand-copy strong{font-size:33px}.nbds-v371-brand-copy small{font-size:7.7px}.nbds-v371-nav-actions{display:none}.nbds-v371-navbar .menu-btn{display:flex}
  .nbds-v371-nav-links{position:absolute!important;top:78px;left:14px;right:14px;display:none!important;flex-direction:column;align-items:stretch!important;gap:2px!important;padding:12px!important;background:#fff;border:1px solid #e5ece7;border-radius:16px;box-shadow:0 18px 50px rgba(5,45,34,.16);max-height:calc(100vh - 100px);overflow:auto}
  .nbds-v371-nav-links.open{display:flex!important}.nbds-v371-nav-links>a,.nbds-v371-nav-trigger{justify-content:flex-start;padding:13px 14px!important;border-radius:10px}.nbds-v371-nav-links>a::after,.nbds-v371-nav-trigger::after{display:none}.nbds-v371-nav-links>a:hover,.nbds-v371-nav-trigger:hover{background:#f0f8f3}
  .nbds-v371-nav-dropdown{display:block}.nbds-v371-nav-trigger{width:100%}.nbds-v371-nav-menu{position:static;width:auto;transform:none!important;box-shadow:none;border:0;border-left:2px solid #dcebe2;margin:0 0 4px 17px;padding:2px 0 2px 10px;display:none;opacity:1;visibility:visible;pointer-events:auto}.nbds-v371-nav-dropdown.open .nbds-v371-nav-menu{display:block}
  .nbds-v371-slider{width:calc(100% - 18px);min-height:720px;border-radius:0 0 22px 22px}.nbds-v371-slide-photo{background-position:63% center}.nbds-v371-slide-shade{background:linear-gradient(180deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.90) 48%,rgba(255,255,255,.28) 78%,rgba(255,255,255,.08) 100%)}.nbds-v371-hero-inner{min-height:720px;align-items:flex-start}.nbds-v371-hero-copy{width:100%;padding:62px 34px 270px}.nbds-v371-hero-copy h1{font-size:clamp(44px,9vw,67px);max-width:700px}.nbds-v371-hero-copy>p{font-size:17px;max-width:600px}.nbds-v371-slide-arrow{width:46px;height:46px;font-size:31px;top:60%}.nbds-v371-slide-arrow.is-prev{left:14px}.nbds-v371-slide-arrow.is-next{right:14px}.nbds-v371-slide-dots{bottom:92px}.nbds-v371-feature-wrap{margin-top:-65px}.nbds-v371-feature-strip{grid-template-columns:repeat(2,1fr);gap:0;padding:14px}.nbds-v371-feature-strip article{border-right:0;border-bottom:1px solid #edf0ef;padding:17px}.nbds-v371-feature-strip article:nth-last-child(-n+2){border-bottom:0}.nbds-v371-price-card{grid-template-columns:1fr;padding:28px}
}
@media(max-width:620px){
  .nbds-v371-navbar{min-height:70px;padding-left:12px;padding-right:12px}.nbds-v371-brand{gap:8px}.nbds-v371-brand-logo{width:43px;height:43px}.nbds-v371-brand-copy strong{font-size:28px;letter-spacing:-1.3px}.nbds-v371-brand-copy small{font-size:6.6px}.nbds-v371-nav-links{top:70px}
  .nbds-v371-hero{padding-bottom:58px}.nbds-v371-slider{min-height:680px}.nbds-v371-hero-inner{min-height:680px}.nbds-v371-hero-copy{padding:44px 22px 280px}.nbds-v371-hero-copy h1{font-size:42px;letter-spacing:-2px}.nbds-v371-hero-copy>p{font-size:15.5px;line-height:1.6}.nbds-v371-hero-actions{gap:10px}.nbds-v371-hero-actions .btn{min-height:48px;padding:0 16px;font-size:13px}.nbds-v371-learner-note{display:none}.nbds-v371-slide-arrow{top:66%;width:42px;height:42px}.nbds-v371-feature-wrap{margin-top:-62px;padding:0 16px}.nbds-v371-feature-strip{grid-template-columns:1fr 1fr;padding:8px;border-radius:14px}.nbds-v371-feature-strip article{grid-template-columns:38px 1fr;padding:12px 8px;gap:8px}.nbds-v371-feature-icon{font-size:25px}.nbds-v371-feature-strip strong{font-size:12px}.nbds-v371-feature-strip small{font-size:10.5px}.nbds-v371-slide-dots{bottom:76px}.nbds-v371-price-card strong{font-size:36px}
}
@media(prefers-reduced-motion:reduce){.nbds-v371-slide-photo,.nbds-v371-hero-copy h1,.nbds-v371-hero-copy>p,.nbds-v371-learner-note,.nbds-v371-nav-menu{transition:none!important}}

/* v372: standalone public menu pages and brand alignment */
.nbds-v371-navbar{max-width:none!important;width:100%!important;padding-left:18px!important;padding-right:34px!important}
.nbds-v371-brand{transform:translateX(-4px)}
.nbds-v371-nav-links>a .nbds-v372-about-caret{font-size:15px;margin-left:4px;display:inline-block;transform:translateY(-1px)}
@media(min-width:1600px){.nbds-v371-navbar{padding-left:14px!important;padding-right:44px!important}.nbds-v371-brand{transform:translateX(-6px)}}
@media(max-width:980px){.nbds-v371-navbar{padding-left:10px!important;padding-right:12px!important}.nbds-v371-brand{transform:none}}


/* v375: keep a clear Login/Dashboard action visible in the mobile public header */
.nbds-v375-mobile-login{display:none}
@media(max-width:980px){
  .nbds-v375-mobile-login{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    min-height:42px;padding:0 15px;border-radius:10px;text-decoration:none;
    background:linear-gradient(135deg,#075b48,#087a4b);color:#fff!important;
    border:1px solid #076a49;font-size:13px;font-weight:900;white-space:nowrap;
    box-shadow:0 8px 20px rgba(5,87,63,.12);
  }
  .nbds-v375-mobile-login:hover,.nbds-v375-mobile-login:focus{background:#064f40;color:#fff!important}
}
@media(max-width:620px){
  .nbds-v375-mobile-login{min-height:40px;padding:0 12px;font-size:12px;border-radius:9px}
}
@media(max-width:390px){
  .nbds-v371-brand-copy small{display:none}
  .nbds-v371-brand-copy strong{font-size:25px}
  .nbds-v375-mobile-login{padding:0 10px}
}

/* =========================================================
   NBDS v376 — professional public navigation alignment
   ========================================================= */
.nbds-v371-public-header .nbds-v371-navbar{
  box-sizing:border-box;
  width:100%!important;
  max-width:1760px!important;
  margin:0 auto;
  min-height:104px;
  padding:0 28px!important;
  display:grid;
  grid-template-columns:minmax(330px,380px) minmax(560px,1fr) auto;
  align-items:center;
  column-gap:36px;
}
.nbds-v371-public-header .nbds-v371-brand{
  justify-self:start;
  align-self:center;
  transform:none!important;
  margin:0;
  gap:13px;
  min-width:0;
}
.nbds-v371-public-header .nbds-v371-brand-logo{
  width:62px;
  height:62px;
  flex:0 0 62px;
}
.nbds-v371-public-header .nbds-v371-brand-copy{
  min-width:0;
  justify-content:center;
}
.nbds-v371-public-header .nbds-v371-brand-copy strong{
  font-size:44px;
  line-height:.92;
}
.nbds-v371-public-header .nbds-v371-brand-copy small{
  margin-top:7px;
  font-size:9px;
  line-height:1.1;
  letter-spacing:.18px;
}
.nbds-v371-public-header .nbds-v371-nav-links{
  justify-self:center;
  width:auto;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(18px,1.55vw,31px);
  height:104px;
}
.nbds-v371-public-header .nbds-v371-nav-links>a,
.nbds-v371-public-header .nbds-v372-nav-menu>a{
  min-height:104px;
  padding:0!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  font-size:15px;
  font-weight:800;
}
.nbds-v371-public-header .nbds-v371-nav-links>a::after,
.nbds-v371-public-header .nbds-v372-nav-menu>a::after{
  bottom:24px;
}
.nbds-v371-public-header .nbds-v372-nav-menu{
  height:104px;
  display:flex;
  align-items:center;
}
.nbds-v371-public-header .nbds-v372-nav-dropdown{
  top:82px;
  left:50%;
  transform:translate(-50%,8px);
}
.nbds-v371-public-header .nbds-v372-nav-menu:hover .nbds-v372-nav-dropdown,
.nbds-v371-public-header .nbds-v372-nav-menu:focus-within .nbds-v372-nav-dropdown{
  transform:translate(-50%,0);
}
.nbds-v371-public-header .nbds-v371-nav-actions{
  justify-self:end;
  align-self:center;
  display:flex;
  align-items:center;
  gap:12px;
}
.nbds-v371-public-header .nbds-v371-nav-actions .btn{
  min-height:48px;
  padding:0 20px;
  border-radius:11px;
  font-size:14px;
}
.nbds-v371-public-header .menu-btn{
  align-items:center;
  justify-content:center;
  margin:0;
  flex:0 0 auto;
}

@media(min-width:1500px){
  .nbds-v371-public-header .nbds-v371-navbar{
    grid-template-columns:390px minmax(640px,1fr) auto;
    column-gap:44px;
    padding-left:18px!important;
    padding-right:30px!important;
  }
}

@media(min-width:981px) and (max-width:1320px){
  .nbds-v371-public-header .nbds-v371-navbar{
    grid-template-columns:285px minmax(500px,1fr) auto;
    column-gap:20px;
    padding-left:18px!important;
    padding-right:20px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{width:54px;height:54px;flex-basis:54px}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:37px}
  .nbds-v371-public-header .nbds-v371-brand-copy small{font-size:7.8px}
  .nbds-v371-public-header .nbds-v371-nav-links{gap:15px}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{font-size:13.5px}
  .nbds-v371-public-header .nbds-v371-nav-actions{gap:8px}
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{padding:0 13px;font-size:13px}
}

@media(max-width:980px){
  .nbds-v371-public-header .nbds-v371-navbar{
    position:relative;
    min-height:76px;
    grid-template-columns:minmax(0,1fr) auto auto;
    column-gap:9px;
    padding:8px 14px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand{
    gap:9px;
    overflow:hidden;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{
    width:47px;
    height:47px;
    flex-basis:47px;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy strong{
    font-size:31px;
    line-height:.95;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy small{
    margin-top:5px;
    font-size:7px;
  }
  .nbds-v371-public-header .nbds-v375-mobile-login{
    height:42px;
    min-height:42px;
    padding:0 14px;
    border-radius:10px;
    margin:0;
  }
  .nbds-v371-public-header .menu-btn{
    display:flex;
    width:42px;
    height:42px;
    min-width:42px;
    border-radius:10px;
    border:1px solid #cfe2d8;
    background:#fff;
    color:#075b48;
    box-shadow:none;
    font-size:21px;
    line-height:1;
  }
  .nbds-v371-public-header .menu-btn:hover,
  .nbds-v371-public-header .menu-btn:focus{
    background:#eff8f3;
    border-color:#9fc8b3;
  }
  .nbds-v371-public-header .nbds-v371-nav-links{
    position:absolute!important;
    z-index:1600;
    top:76px;
    left:12px;
    right:12px;
    width:auto;
    height:auto;
    max-height:calc(100vh - 96px);
    padding:10px!important;
    gap:0!important;
    align-items:stretch!important;
    justify-content:flex-start;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:#fff;
    border:1px solid #dfece5;
    border-radius:15px;
    box-shadow:0 22px 55px rgba(4,52,39,.18);
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{
    width:100%;
    min-height:48px;
    height:auto;
    justify-content:flex-start;
    padding:0 14px!important;
    border-radius:10px;
    font-size:14px;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a + a,
  .nbds-v371-public-header .nbds-v372-nav-menu + a{
    margin-top:2px;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a:hover,
  .nbds-v371-public-header .nbds-v371-nav-links>a.active,
  .nbds-v371-public-header .nbds-v372-nav-menu>a:hover,
  .nbds-v371-public-header .nbds-v372-nav-menu>a.active{
    background:#eff8f3;
  }
  .nbds-v371-public-header .nbds-v372-nav-menu{
    display:block;
    width:100%;
    height:auto;
  }
  .nbds-v371-public-header .nbds-v372-nav-dropdown{
    position:static;
    width:auto;
    margin:0 8px 7px;
    padding:5px;
    transform:none!important;
    border-radius:10px;
    box-shadow:none;
    background:#f8fcfa;
  }
  .nbds-v371-public-header .nbds-v372-nav-dropdown a{
    min-height:42px;
    display:flex;
    align-items:center;
    padding:0 12px;
    font-size:13px;
  }
}

@media(max-width:540px){
  .nbds-v371-public-header .nbds-v371-navbar{
    min-height:70px;
    padding:7px 10px!important;
    column-gap:7px;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{width:42px;height:42px;flex-basis:42px}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:27px}
  .nbds-v371-public-header .nbds-v371-brand-copy small{font-size:6.1px;letter-spacing:0}
  .nbds-v371-public-header .nbds-v375-mobile-login{height:39px;min-height:39px;padding:0 11px;font-size:12px}
  .nbds-v371-public-header .menu-btn{width:39px;height:39px;min-width:39px;font-size:19px}
  .nbds-v371-public-header .nbds-v371-nav-links{top:70px;left:8px;right:8px}
}

@media(max-width:390px){
  .nbds-v371-public-header .nbds-v371-brand-copy small{display:none}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:25px}
  .nbds-v371-public-header .nbds-v375-mobile-login span:first-child{display:none}
}

/* =========================================================
   NBDS v379 — full-width desktop navigation distribution
   Keeps every menu item independent and pushes access buttons
   to the extreme right without covering navigation links.
   ========================================================= */
@media (min-width:1281px){
  .nbds-v371-public-header .nbds-v371-navbar{
    width:100%!important;
    max-width:none!important;
    min-height:100px;
    padding:0 16px 0 12px!important;
    grid-template-columns:minmax(292px,330px) minmax(0,1fr) max-content;
    column-gap:22px;
  }
  .nbds-v371-public-header .nbds-v371-brand{
    justify-self:start;
    margin-left:0!important;
    padding-left:0!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{
    width:58px;
    height:58px;
    flex-basis:58px;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:41px}
  .nbds-v371-public-header .nbds-v371-nav-links{
    width:100%;
    height:100px;
    justify-self:stretch;
    justify-content:space-evenly;
    gap:8px!important;
    overflow:visible;
    white-space:nowrap;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{
    min-height:100px;
    padding:0 7px!important;
    font-size:14px;
    flex:0 0 auto;
  }
  .nbds-v371-public-header .nbds-v372-nav-menu{height:100px;flex:0 0 auto}
  .nbds-v371-public-header .nbds-v371-nav-actions{
    justify-self:end;
    margin-left:auto;
    gap:10px;
    padding-left:10px;
    white-space:nowrap;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{
    min-height:48px;
    padding:0 17px;
    font-size:13.5px;
  }
}

@media (min-width:1281px) and (max-width:1450px){
  .nbds-v371-public-header .nbds-v371-navbar{
    grid-template-columns:278px minmax(0,1fr) max-content;
    column-gap:14px;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{width:52px;height:52px;flex-basis:52px}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:36px}
  .nbds-v371-public-header .nbds-v371-brand-copy small{font-size:7.4px}
  .nbds-v371-public-header .nbds-v371-nav-links{gap:3px!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{font-size:12.8px;padding:0 5px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions{gap:7px;padding-left:6px}
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{padding:0 12px;font-size:12.5px}
}

/* On narrower screens switch cleanly to the mobile/tablet menu before
   desktop items become crowded or hidden behind access buttons. */
@media (min-width:981px) and (max-width:1280px){
  .nbds-v371-public-header .nbds-v371-navbar{
    position:relative;
    min-height:78px;
    grid-template-columns:minmax(0,1fr) auto auto;
    column-gap:10px;
    padding:8px 14px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions{display:none!important}
  .nbds-v371-public-header .nbds-v375-mobile-login{display:inline-flex!important}
  .nbds-v371-public-header .menu-btn{display:flex!important}
  .nbds-v371-public-header .nbds-v371-nav-links{
    display:none;
    position:absolute!important;
    z-index:1600;
    top:78px;
    left:14px;
    right:14px;
    width:auto;
    height:auto;
    max-height:calc(100vh - 100px);
    padding:10px!important;
    gap:0!important;
    flex-direction:column;
    align-items:stretch!important;
    justify-content:flex-start;
    overflow-y:auto;
    background:#fff;
    border:1px solid #dfece5;
    border-radius:15px;
    box-shadow:0 22px 55px rgba(4,52,39,.18);
  }
  .nbds-v371-public-header .nbds-v371-nav-links.open,
  .nbds-v371-public-header .nbds-v371-nav-links.is-open{display:flex!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{
    width:100%;
    min-height:48px;
    height:auto;
    justify-content:flex-start;
    padding:0 14px!important;
    border-radius:10px;
    font-size:14px;
  }
  .nbds-v371-public-header .nbds-v372-nav-menu{display:block;width:100%;height:auto}
  .nbds-v371-public-header .nbds-v372-nav-dropdown{
    position:static;
    width:auto;
    margin:0 8px 7px;
    padding:5px;
    transform:none!important;
    border-radius:10px;
    box-shadow:none;
    background:#f8fcfa;
  }
}

/* ===== assets/css/public_pages_v372.css ===== */
/* NBDS v372 bright standalone public pages */
:root{--v372-green:#07834f;--v372-deep:#053f37;--v372-navy:#10213e;--v372-ink:#172238;--v372-soft:#f4fbf7;--v372-line:#dcebe3;--v372-white:#fff}
body.nbds-standard-page-body{background:#fff;color:var(--v372-ink)}
.nbds-v372-page{background:#fff;min-height:60vh}
.nbds-v372-hero{position:relative;overflow:hidden;padding:76px 0 68px;background:linear-gradient(135deg,#f7fff9 0%,#fff 50%,#eefaf3 100%);border-bottom:1px solid #edf5f0}
.nbds-v372-hero:before,.nbds-v372-hero:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.nbds-v372-hero:before{width:520px;height:520px;right:-170px;top:-250px;background:radial-gradient(circle,rgba(11,145,85,.16),rgba(11,145,85,0) 68%)}.nbds-v372-hero:after{width:330px;height:330px;left:-140px;bottom:-220px;background:radial-gradient(circle,rgba(13,76,66,.10),rgba(13,76,66,0) 70%)}
.nbds-v372-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(350px,.92fr);gap:54px;align-items:center}
.nbds-v372-kicker{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border:1px solid #d7ece0;border-radius:999px;background:#fff;color:var(--v372-green);font-size:12px;font-weight:900;letter-spacing:.75px;text-transform:uppercase;box-shadow:0 8px 24px rgba(7,91,59,.05)}
.nbds-v372-hero h1{margin:19px 0 18px;color:var(--v372-navy);font-size:clamp(44px,5vw,72px);line-height:1.03;letter-spacing:-2.6px;font-weight:900}.nbds-v372-hero h1 span{display:block;color:var(--v372-green)}
.nbds-v372-hero p{max-width:740px;margin:0;color:#536176;font-size:18px;line-height:1.75}
.nbds-v372-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.nbds-v372-actions .btn{min-height:50px;border-radius:11px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center}
.nbds-v372-visual{position:relative;border:1px solid #e2eee7;border-radius:28px;background:#fff;padding:13px;box-shadow:0 28px 70px rgba(3,62,44,.12);transform:rotate(.3deg)}
.nbds-v372-visual img{display:block;width:100%;height:370px;object-fit:cover;border-radius:19px}.nbds-v372-visual-note{position:absolute;left:-24px;bottom:24px;max-width:230px;padding:13px 15px;background:#fff;border:1px solid #dfece5;border-radius:14px;box-shadow:0 16px 38px rgba(2,46,34,.12);font-size:13px;line-height:1.45;color:#45566a}.nbds-v372-visual-note strong{display:block;color:var(--v372-deep);font-size:14px;margin-bottom:3px}
.nbds-v372-section{padding:72px 0}.nbds-v372-section.soft{background:#f7fbf9}.nbds-v372-section-head{max-width:780px;margin:0 auto 36px;text-align:center}.nbds-v372-section-head .eyebrow{display:block;color:var(--v372-green);font-size:12px;font-weight:900;letter-spacing:1px;text-transform:uppercase;margin-bottom:9px}.nbds-v372-section-head h2{margin:0 0 12px;font-size:clamp(34px,4vw,50px);line-height:1.1;letter-spacing:-1.6px;color:var(--v372-navy)}.nbds-v372-section-head h2 span{color:var(--v372-green)}.nbds-v372-section-head p{margin:0;color:#677589;font-size:16px;line-height:1.7}
.nbds-v372-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.nbds-v372-card{position:relative;overflow:hidden;background:#fff;border:1px solid #e2ece6;border-radius:22px;padding:27px;box-shadow:0 14px 36px rgba(3,57,42,.055);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.nbds-v372-card:hover{transform:translateY(-4px);box-shadow:0 20px 46px rgba(3,57,42,.10);border-color:#cfe3d7}.nbds-v372-card .icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin-bottom:18px;background:#eaf8f0;color:#087849;font-size:25px}.nbds-v372-card h3{margin:0 0 9px;color:#14213b;font-size:20px}.nbds-v372-card p{margin:0;color:#6a778a;line-height:1.65}.nbds-v372-card .tag{display:inline-flex;margin-top:16px;padding:6px 10px;border-radius:999px;background:#f0f8f4;color:#167249;font-size:11px;font-weight:800}
.nbds-v372-chip-row{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin:0 0 30px}.nbds-v372-chip{display:inline-flex;padding:9px 13px;border-radius:999px;background:#fff;border:1px solid #dcebe3;color:#36534a;font-size:13px;font-weight:800}
.nbds-v372-cta{margin-top:34px;padding:30px;border-radius:24px;background:linear-gradient(135deg,#073f37,#07824e);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:0 22px 55px rgba(2,67,45,.16)}.nbds-v372-cta h3{margin:0 0 6px;color:#fff;font-size:27px}.nbds-v372-cta p{margin:0;color:rgba(255,255,255,.8)}.nbds-v372-cta .btn{background:#fff;color:#075b3d;border-color:#fff;white-space:nowrap}
.nbds-v372-levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.nbds-v372-level{background:#fff;border:1px solid #dfece5;border-radius:20px;padding:24px;min-height:195px}.nbds-v372-level strong{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;border-radius:13px;background:#eaf7ef;color:#087849;margin-bottom:15px}.nbds-v372-level h3{margin:0 0 8px;color:#17233d}.nbds-v372-level p{margin:0;color:#68778a;line-height:1.6;font-size:14px}
.nbds-v372-price-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;align-items:stretch}.nbds-v372-price-card{padding:34px;border:1px solid #dcebe3;border-radius:26px;background:#fff;box-shadow:0 18px 50px rgba(4,67,48,.08)}.nbds-v372-price-card.featured{background:linear-gradient(145deg,#073f37,#0a8552);color:#fff;border-color:transparent}.nbds-v372-price-card h2,.nbds-v372-price-card h3{margin-top:0}.nbds-v372-price-card.featured h2,.nbds-v372-price-card.featured h3{color:#fff}.nbds-v372-price{font-size:54px;line-height:1;font-weight:900;color:#07804c;margin:16px 0 8px}.nbds-v372-price-card.featured .nbds-v372-price{color:#fff}.nbds-v372-price-card ul{padding-left:20px;display:grid;gap:10px;line-height:1.5}.nbds-v372-price-card.featured p,.nbds-v372-price-card.featured li{color:rgba(255,255,255,.84)}
.nbds-v372-faq{max-width:980px;margin:0 auto;display:grid;gap:12px}.nbds-v372-faq details{background:#fff;border:1px solid #e0ece5;border-radius:16px;padding:0 18px;box-shadow:0 8px 24px rgba(3,51,39,.035)}.nbds-v372-faq summary{cursor:pointer;list-style:none;padding:18px 34px 18px 0;font-weight:800;color:#19263e;position:relative}.nbds-v372-faq summary::-webkit-details-marker{display:none}.nbds-v372-faq summary:after{content:"+";position:absolute;right:2px;top:13px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eaf8f0;color:#087849;font-size:20px}.nbds-v372-faq details[open] summary:after{content:"−"}.nbds-v372-faq p{margin:0;padding:0 0 18px;color:#68768a;line-height:1.65}
.nbds-v372-contact-wrap{border:1px solid #dfece5;background:#fff;border-radius:28px;padding:30px;box-shadow:0 20px 55px rgba(3,58,43,.08)}
/* brighten existing Features/About/Contact layouts too */
.nbds-standard-page-body .hero.features-page-hero,.nbds-standard-page-body .hero.about-page-hero,.nbds-standard-page-body .hero.contact-hero,.nbds-standard-page-body .hero.faq-page-hero{background:linear-gradient(135deg,#f7fff9,#fff 54%,#edf9f2);border-bottom:1px solid #edf4f0}
.nbds-standard-page-body .feature-page-card,.nbds-standard-page-body .about-card,.nbds-standard-page-body .timeline-card,.nbds-standard-page-body .auth-card,.nbds-standard-page-body .dashboard-card{border-color:#deebe4!important;box-shadow:0 14px 38px rgba(2,54,40,.06)!important}
.nbds-standard-page-body .section:nth-of-type(even){background-color:#fbfefc}
@media(max-width:1050px){.nbds-v372-hero-grid{grid-template-columns:1fr;gap:34px}.nbds-v372-visual{max-width:720px}.nbds-v372-card-grid{grid-template-columns:repeat(2,1fr)}.nbds-v372-levels{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.nbds-v372-hero{padding:48px 0}.nbds-v372-hero h1{font-size:44px}.nbds-v372-hero p{font-size:16px}.nbds-v372-visual img{height:265px}.nbds-v372-visual-note{position:static;max-width:none;margin-top:10px}.nbds-v372-section{padding:54px 0}.nbds-v372-card-grid,.nbds-v372-levels,.nbds-v372-price-grid{grid-template-columns:1fr}.nbds-v372-cta{align-items:flex-start;flex-direction:column}.nbds-v372-price{font-size:44px}}


/* v372 separate-page navigation + exact NBDS student imagery */
.nbds-v371-navbar{padding-left:8px!important}
.nbds-v371-brand{transform:translateX(-8px)!important}
.nbds-v372-nav-menu{position:relative;display:flex;align-items:stretch}
.nbds-v372-nav-menu>a{display:flex;align-items:center;gap:4px;color:#172238;text-decoration:none;font-weight:800;position:relative;padding:46px 0 43px}
.nbds-v372-nav-menu>a:after{content:"";position:absolute;left:0;right:0;bottom:28px;height:2px;background:transparent;border-radius:999px}
.nbds-v372-nav-menu>a.active,.nbds-v372-nav-menu:hover>a,.nbds-v372-nav-menu:focus-within>a{color:#07834f}
.nbds-v372-nav-menu>a.active:after,.nbds-v372-nav-menu:hover>a:after,.nbds-v372-nav-menu:focus-within>a:after{background:#07834f}
.nbds-v372-about-caret{font-size:12px;transition:transform .2s ease}.nbds-v372-nav-menu:hover .nbds-v372-about-caret,.nbds-v372-nav-menu:focus-within .nbds-v372-about-caret{transform:rotate(180deg)}
.nbds-v372-nav-dropdown{position:absolute;z-index:120;top:88px;left:-20px;width:245px;padding:10px;background:#fff;border:1px solid #dfece5;border-radius:16px;box-shadow:0 20px 55px rgba(4,52,39,.16);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.nbds-v372-nav-menu:hover .nbds-v372-nav-dropdown,.nbds-v372-nav-menu:focus-within .nbds-v372-nav-dropdown{opacity:1;visibility:visible;transform:none}
.nbds-v372-nav-dropdown a{display:block;padding:11px 12px;border-radius:10px;color:#263246;text-decoration:none;font-size:14px;font-weight:700}.nbds-v372-nav-dropdown a:hover,.nbds-v372-nav-dropdown a:focus{background:#eef9f3;color:#07834f}
.about-page-hero .nbds-v372-visual{transform:none}.about-page-hero .nbds-v372-visual img{height:410px;object-position:center 35%}
.nbds-v372-login-page{padding:56px 18px!important;background:linear-gradient(135deg,#f7fff9,#fff 48%,#eefaf3)!important;display:block!important;min-height:calc(100vh - 118px)!important}
.nbds-v372-login-shell{width:min(1180px,96%);margin:0 auto;display:grid;grid-template-columns:minmax(360px,.82fr) minmax(460px,1.18fr);background:#fff;border:1px solid #dcebe3;border-radius:28px;overflow:hidden;box-shadow:0 28px 70px rgba(4,62,45,.12)}
.nbds-v372-login-card{width:auto!important;max-width:none!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:44px!important;align-self:center}
.nbds-v372-login-card h1{font-size:2.35rem!important;color:#10213e!important}.nbds-v372-login-card .sub{font-size:14px;line-height:1.65}
.nbds-v372-login-visual{position:relative;min-height:690px;background:#073f37;overflow:hidden}.nbds-v372-login-visual>img{width:100%;height:100%;min-height:690px;object-fit:cover;object-position:58% center;display:block}
.nbds-v372-login-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,31,25,0) 35%,rgba(3,40,31,.84) 100%)}
.nbds-v372-login-overlay{position:absolute;z-index:2;left:34px;right:34px;bottom:34px;color:#fff;display:grid;justify-items:start;gap:5px}.nbds-v372-login-overlay img{width:66px;height:66px;object-fit:contain;filter:drop-shadow(0 3px 9px rgba(0,0,0,.2))}.nbds-v372-login-overlay span{font-size:13px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:#bff0d4}.nbds-v372-login-overlay strong{font-size:31px;line-height:1.1}.nbds-v372-login-overlay small{max-width:540px;font-size:14px;line-height:1.6;color:rgba(255,255,255,.84)}
@media(max-width:980px){.nbds-v371-brand{transform:none!important}.nbds-v372-nav-menu{display:block}.nbds-v372-nav-menu>a{padding:11px 14px}.nbds-v372-nav-menu>a:after{display:none}.nbds-v372-nav-dropdown{position:static;width:auto;padding:4px 8px 8px;margin:0 10px 8px;box-shadow:none;border-radius:12px;opacity:1;visibility:visible;transform:none;display:none}.nbds-v372-nav-menu:focus-within .nbds-v372-nav-dropdown,.nbds-v372-nav-menu:hover .nbds-v372-nav-dropdown{display:block}.nbds-v372-login-shell{grid-template-columns:1fr}.nbds-v372-login-visual{min-height:360px;order:-1}.nbds-v372-login-visual>img{min-height:360px;height:360px}.nbds-v372-login-overlay{left:24px;right:24px;bottom:22px}}
@media(max-width:640px){.nbds-v372-login-page{padding:24px 10px!important}.nbds-v372-login-shell{width:100%;border-radius:20px}.nbds-v372-login-card{padding:28px 22px!important}.nbds-v372-login-visual,.nbds-v372-login-visual>img{min-height:285px;height:285px}.nbds-v372-login-overlay strong{font-size:24px}.nbds-v372-login-overlay small{display:none}.about-page-hero .nbds-v372-visual img{height:280px}}

/* v374: move NBDS brand farther left and create clear breathing room before Home */
@media (min-width:1260px){
  .nbds-v371-navbar{
    grid-template-columns:minmax(360px,410px) minmax(0,1fr) auto!important;
    column-gap:40px!important;
    padding-left:4px!important;
    padding-right:30px!important;
  }
  .nbds-v371-brand{
    transform:translateX(-2px)!important;
    justify-self:start!important;
  }
  .nbds-v371-nav-links{
    justify-self:stretch!important;
    justify-content:flex-start!important;
    gap:clamp(22px,1.55vw,32px)!important;
  }
}
@media (min-width:1500px){
  .nbds-v371-navbar{
    grid-template-columns:minmax(390px,445px) minmax(0,1fr) auto!important;
    column-gap:46px!important;
    padding-left:2px!important;
    padding-right:34px!important;
  }
}
@media (min-width:981px) and (max-width:1259px){
  .nbds-v371-navbar{
    grid-template-columns:300px minmax(0,1fr) auto!important;
    column-gap:24px!important;
    padding-left:6px!important;
  }
  .nbds-v371-brand{transform:none!important}
}


/* =========================================================
   NBDS v380 — reference-accurate desktop public menu bar
   Recreates the supplied 1680px reference: brand at far left,
   centered independent menu items, access controls at far right.
   ========================================================= */
@media (min-width:1361px){
  body.nbds-standard-page-body>.top-strip{
    height:24px!important;
    min-height:24px!important;
    background:#063f3a!important;
  }
  body.nbds-standard-page-body>header.nbds-v371-public-header{
    min-height:120px!important;
    background:#fff!important;
    border-bottom:1px solid #e9eeeb!important;
    box-shadow:0 3px 14px rgba(4,45,38,.035)!important;
  }
  .nbds-v371-public-header .nbds-v371-navbar{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    min-height:120px!important;
    height:120px!important;
    margin:0!important;
    padding:0 44px 0 52px!important;
    display:grid!important;
    grid-template-columns:340px minmax(650px,1fr) 350px!important;
    column-gap:48px!important;
    align-items:center!important;
  }
  .nbds-v371-public-header .nbds-v371-brand{
    justify-self:start!important;
    align-self:center!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    gap:13px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{
    width:72px!important;
    height:72px!important;
    flex:0 0 72px!important;
    object-fit:contain!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy{
    min-width:0!important;
    justify-content:center!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy strong{
    margin:0!important;
    color:#07513f!important;
    font-size:48px!important;
    line-height:.82!important;
    letter-spacing:-2.7px!important;
    font-weight:900!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy small{
    margin-top:9px!important;
    color:#111927!important;
    font-size:10.5px!important;
    line-height:1!important;
    letter-spacing:.05px!important;
    font-weight:900!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links{
    width:100%!important;
    max-width:760px!important;
    min-width:650px!important;
    height:120px!important;
    justify-self:center!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:stretch!important;
    justify-content:space-between!important;
    gap:0!important;
    overflow:visible!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:120px!important;
    height:120px!important;
    padding:0 5px!important;
    color:#182237!important;
    font-size:18px!important;
    line-height:1!important;
    font-weight:700!important;
    text-decoration:none!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a::after,
  .nbds-v371-public-header .nbds-v372-nav-menu>a::after{
    content:""!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:31px!important;
    height:2px!important;
    border-radius:2px!important;
    background:#07834c!important;
    transform:scaleX(0)!important;
    transform-origin:center!important;
    transition:transform .2s ease!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a:hover::after,
  .nbds-v371-public-header .nbds-v371-nav-links>a.active::after,
  .nbds-v371-public-header .nbds-v372-nav-menu>a:hover::after,
  .nbds-v371-public-header .nbds-v372-nav-menu>a.active::after,
  .nbds-v371-public-header .nbds-v372-nav-menu.is-active>a::after{
    transform:scaleX(1)!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a:hover,
  .nbds-v371-public-header .nbds-v371-nav-links>a.active,
  .nbds-v371-public-header .nbds-v372-nav-menu>a:hover,
  .nbds-v371-public-header .nbds-v372-nav-menu>a.active,
  .nbds-v371-public-header .nbds-v372-nav-menu.is-active>a{
    color:#087447!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-menu{
    height:120px!important;
    display:flex!important;
    align-items:stretch!important;
    flex:0 0 auto!important;
  }
  .nbds-v371-public-header .nbds-v372-about-caret{
    margin-left:7px!important;
    font-size:15px!important;
    line-height:1!important;
    transform:translateY(-1px)!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-dropdown{
    top:91px!important;
    left:50%!important;
    min-width:230px!important;
    transform:translate(-50%,8px)!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-menu:hover .nbds-v372-nav-dropdown,
  .nbds-v371-public-header .nbds-v372-nav-menu:focus-within .nbds-v372-nav-dropdown{
    transform:translate(-50%,0)!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions{
    justify-self:end!important;
    align-self:center!important;
    width:350px!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:18px!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{
    box-sizing:border-box!important;
    min-height:56px!important;
    height:56px!important;
    margin:0!important;
    border-radius:9px!important;
    padding:0 22px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
    font-size:17px!important;
    line-height:1!important;
    font-weight:750!important;
    box-shadow:none!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{
    min-width:121px!important;
    color:#fff!important;
    background:#064b43!important;
    border:1px solid #064b43!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login:hover{
    background:#043f39!important;
    border-color:#043f39!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{
    min-width:205px!important;
    color:#fff!important;
    background:#0a8d55!important;
    border:1px solid #0a8d55!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register:hover{
    background:#087849!important;
    border-color:#087849!important;
  }
  .nbds-v371-public-header .nbds-v380-action-icon{
    width:20px!important;
    height:20px!important;
    flex:0 0 20px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }
  .nbds-v371-public-header .nbds-v375-mobile-login,
  .nbds-v371-public-header .menu-btn{
    display:none!important;
  }
}

/* Keep the same visual proportions on common 1366–1599px desktop screens. */
@media (min-width:1361px) and (max-width:1599px){
  .nbds-v371-public-header .nbds-v371-navbar{
    padding-left:34px!important;
    padding-right:30px!important;
    grid-template-columns:300px minmax(610px,1fr) 316px!important;
    column-gap:27px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{width:62px!important;height:62px!important;flex-basis:62px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:42px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy small{font-size:9px!important}
  .nbds-v371-public-header .nbds-v371-nav-links{min-width:610px!important;max-width:700px!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{font-size:15.5px!important;padding-left:3px!important;padding-right:3px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions{width:316px!important;gap:12px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{font-size:14.5px!important;padding-left:16px!important;padding-right:16px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{min-width:108px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{min-width:190px!important}
}

/* =========================================================
   NBDS v381 — compact access buttons + refined menu fit
   Keeps Login / Pay & Register visually subordinate to the
   navigation while preserving the reference layout.
   ========================================================= */
@media (min-width:1361px){
  .nbds-v371-public-header .nbds-v371-navbar{
    grid-template-columns:340px minmax(650px,1fr) 286px!important;
    column-gap:42px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions{
    width:286px!important;
    gap:10px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{
    min-height:44px!important;
    height:44px!important;
    border-radius:8px!important;
    padding:0 14px!important;
    gap:7px!important;
    font-size:14px!important;
    font-weight:750!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{
    min-width:92px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{
    min-width:172px!important;
  }
  .nbds-v371-public-header .nbds-v380-action-icon{
    width:17px!important;
    height:17px!important;
    flex-basis:17px!important;
  }
}
@media (min-width:1361px) and (max-width:1599px){
  .nbds-v371-public-header .nbds-v371-navbar{
    grid-template-columns:300px minmax(610px,1fr) 246px!important;
    column-gap:22px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions{
    width:246px!important;
    gap:8px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{
    min-height:42px!important;
    height:42px!important;
    padding:0 11px!important;
    font-size:12.8px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{min-width:78px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{min-width:160px!important}
  .nbds-v371-public-header .nbds-v380-action-icon{width:15px!important;height:15px!important;flex-basis:15px!important}
}
@media (min-width:981px) and (max-width:1360px){
  .nbds-v371-public-header .nbds-v371-nav-actions{gap:7px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{
    min-height:40px!important;
    height:40px!important;
    padding:0 10px!important;
    border-radius:8px!important;
    font-size:12px!important;
    gap:6px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{min-width:76px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{min-width:146px!important}
  .nbds-v371-public-header .nbds-v380-action-icon{width:14px!important;height:14px!important;flex-basis:14px!important}
}

/* ===== assets/css/zoom_responsive_v382.css ===== */
/* NBDS v382 — zoom-safe responsive interface
   Makes public pages, dashboards, Lingua, forms, tables and media reflow
   cleanly when browser zoom changes the effective CSS viewport. */

html{
  width:100%;
  max-width:100%;
  overflow-x:clip;
  text-size-adjust:100%;
  -webkit-text-size-adjust:100%;
}
body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
*,*::before,*::after{min-width:0;box-sizing:border-box}
img,svg,video,canvas,audio{max-width:100%;height:auto}
iframe,embed,object{max-width:100%}
pre,code{max-width:100%;overflow-wrap:anywhere}
input,select,textarea,button{max-width:100%;font:inherit}

/* Never let long text, IDs, URLs or labels force a page wider than the viewport. */
:is(.student-main,.parent-main,.teacher-main,.admin-main,.admin-control-main,.workflow-main,.lesson-body,.nbds-v372-page-main,.nbds-v371-hero-copy,.student-card,.panel,.card,.table-card,.resource-card,.lesson-resource-card) :is(p,h1,h2,h3,h4,h5,h6,span,strong,small,a,td,th,label){
  overflow-wrap:anywhere;
}

/* Fluid global containers. */
.container:not(.nbds-v371-navbar){
  width:min(100% - clamp(20px,4vw,64px),1600px)!important;
  max-width:1600px!important;
}
.nbds-v371-navbar{max-width:none!important}
:is(main,.student-main,.parent-main,.teacher-main,.admin-main,.admin-control-main,.workflow-main){min-width:0!important}

/* Scroll dense data instead of breaking the entire page at high zoom. */
:is(.table-wrap,.table-responsive,.responsive-table,.student-table-wrap,.admin-table-wrap,.results-table-wrap,.nbds-table-scroll){
  width:100%;
  max-width:100%;
  overflow-x:auto!important;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
}
table{max-width:100%}

/* Generic grids/cards become intrinsically shrinkable. */
:is(.panel-grid,.stats,.features,.admin-metric-grid,.admin-content-grid,.backend-control-map,.student-visibility-grid,.parent-subject-progress-grid,.teacher-quick-actions,.detail-grid,.vocab-grid,.sentence-grid,.quiz-options)>*{min-width:0}

/* -------------------- PUBLIC SITE -------------------- */
body.nbds-standard-page-body{overflow-x:clip!important}
.nbds-v371-public-header,.nbds-v371-navbar,.nbds-v371-nav-links,.nbds-v371-nav-actions{min-width:0!important}
.nbds-v371-slider{max-width:calc(100vw - 16px)!important}
.nbds-v371-hero-inner{width:100%!important;max-width:1600px!important}
.nbds-v371-slide-photo{background-size:cover!important}
.nbds-v371-feature-wrap{width:min(100% - 24px,1530px)!important}
.nbds-v371-feature-strip>*{min-width:0}
.nbds-v372-hero-grid>*{min-width:0}
.nbds-v372-visual img{width:100%;height:auto;object-fit:cover}

/* Switch to the compact menu BEFORE zoom makes the full desktop header collide.
   Browser zoom reduces the CSS viewport, so this automatically activates. */
@media (max-width:1320px){
  body.nbds-standard-page-body>.top-strip{height:12px!important;min-height:12px!important}
  body.nbds-standard-page-body>header.nbds-v371-public-header{min-height:76px!important;height:auto!important}
  .nbds-v371-public-header .nbds-v371-navbar{
    position:relative!important;
    width:100%!important;
    max-width:none!important;
    min-height:76px!important;
    height:auto!important;
    margin:0!important;
    padding:8px clamp(10px,2.2vw,24px)!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto auto!important;
    gap:clamp(7px,1.2vw,12px)!important;
    align-items:center!important;
  }
  .nbds-v371-public-header .nbds-v371-brand{
    width:max-content!important;
    max-width:100%!important;
    justify-self:start!important;
    gap:clamp(7px,1vw,10px)!important;
    overflow:hidden!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{
    width:clamp(42px,5vw,52px)!important;
    height:clamp(42px,5vw,52px)!important;
    flex:0 0 clamp(42px,5vw,52px)!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy strong{
    font-size:clamp(27px,4vw,36px)!important;
    line-height:.95!important;
    letter-spacing:-1.5px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy small{
    font-size:clamp(6px,.82vw,8px)!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions{display:none!important}
  .nbds-v371-public-header .nbds-v375-mobile-login{display:inline-flex!important;justify-self:end!important}
  .nbds-v371-public-header .menu-btn{display:flex!important;justify-self:end!important}
  .nbds-v371-public-header .nbds-v371-nav-links{
    display:none!important;
    position:absolute!important;
    z-index:1800!important;
    top:calc(100% + 1px)!important;
    left:clamp(8px,2vw,18px)!important;
    right:clamp(8px,2vw,18px)!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    max-height:min(72vh,620px)!important;
    padding:10px!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:2px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    white-space:normal!important;
    background:#fff!important;
    border:1px solid #dfece5!important;
    border-radius:15px!important;
    box-shadow:0 22px 55px rgba(4,52,39,.18)!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links.open,
  .nbds-v371-public-header .nbds-v371-nav-links.is-open{display:flex!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{
    width:100%!important;
    min-height:46px!important;
    height:auto!important;
    padding:0 14px!important;
    justify-content:flex-start!important;
    font-size:14px!important;
    border-radius:10px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a::after,
  .nbds-v371-public-header .nbds-v372-nav-menu>a::after{display:none!important}
  .nbds-v371-public-header .nbds-v372-nav-menu{display:block!important;width:100%!important;height:auto!important}
  .nbds-v371-public-header .nbds-v372-nav-dropdown{
    position:static!important;
    width:auto!important;
    min-width:0!important;
    margin:0 7px 7px!important;
    transform:none!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    box-shadow:none!important;
  }
}

@media (max-width:980px){
  .nbds-v371-hero{padding-bottom:46px!important}
  .nbds-v371-slider{
    width:calc(100% - 12px)!important;
    min-height:clamp(540px,78vh,700px)!important;
    border-radius:0 0 20px 20px!important;
  }
  .nbds-v371-hero-inner{
    min-height:clamp(540px,78vh,700px)!important;
    align-items:flex-end!important;
    padding:clamp(18px,4vw,34px)!important;
    padding-bottom:76px!important;
  }
  .nbds-v371-slide-shade{
    background:linear-gradient(0deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.95) 42%,rgba(255,255,255,.42) 68%,rgba(255,255,255,.05) 100%)!important;
  }
  .nbds-v371-slide-photo{background-position:center 30%!important}
  .nbds-v371-hero-copy{
    width:100%!important;
    max-width:720px!important;
    padding:0!important;
  }
  .nbds-v371-hero-copy h1{
    min-height:0!important;
    font-size:clamp(35px,8vw,56px)!important;
    line-height:1.02!important;
    letter-spacing:-2px!important;
    margin-bottom:14px!important;
  }
  .nbds-v371-hero-copy>p{
    min-height:0!important;
    font-size:clamp(14px,2.8vw,18px)!important;
    line-height:1.55!important;
    margin-bottom:18px!important;
  }
  .nbds-v371-hero-actions{gap:10px!important;margin-bottom:15px!important}
  .nbds-v371-hero-actions .btn{min-height:46px!important;padding:0 16px!important;font-size:13px!important}
  .nbds-v371-slide-arrow{width:42px!important;height:42px!important;font-size:28px!important}
  .nbds-v371-slide-arrow.is-prev{left:10px!important}.nbds-v371-slide-arrow.is-next{right:10px!important}
  .nbds-v371-feature-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:16px!important}
  .nbds-v371-feature-strip article{padding:12px!important;border-right:0!important;border-bottom:1px solid #e7ebe9!important}
  .nbds-v371-feature-strip article:nth-last-child(-n+2){border-bottom:0!important}
  .nbds-v371-price-card{grid-template-columns:1fr!important;padding:22px!important}
}

@media (max-width:620px){
  .nbds-v371-public-header .nbds-v371-brand-copy small{display:none!important}
  .nbds-v371-public-header .nbds-v375-mobile-login{min-width:0!important;padding:0 10px!important}
  .nbds-v371-slider{min-height:590px!important}
  .nbds-v371-hero-inner{min-height:590px!important;padding:18px 18px 82px!important}
  .nbds-v371-slide-photo{background-position:60% 24%!important}
  .nbds-v371-hero-copy h1{font-size:clamp(31px,10vw,44px)!important}
  .nbds-v371-learner-note{display:none!important}
  .nbds-v371-feature-strip{grid-template-columns:1fr!important}
  .nbds-v371-feature-strip article{border-bottom:1px solid #e7ebe9!important}
  .nbds-v371-feature-strip article:last-child{border-bottom:0!important}
  .nbds-v371-hero-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important}
  .nbds-v371-hero-actions .btn{width:100%!important;padding:0 10px!important}
  .nbds-v371-slide-dots{bottom:62px!important}
}

/* -------------------- DASHBOARDS -------------------- */
/* Use drawer mode earlier at high browser zoom, not only on phone widths. */
@media (max-width:1100px){
  body.student-dashboard-body,
  body.parent-dashboard-body,
  body.teacher-dashboard-body{overflow:hidden!important}
  :is(.student-app-shell,.teacher-app-shell,.parent-app-shell,.admin-oriented-shell,.workflow-hub-shell){
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
  }
  :is(.student-main,.parent-main,.teacher-main,.admin-oriented-main,.workflow-main){
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding:clamp(14px,2.8vw,24px)!important;
  }
  body.nbds-dashboard-ready :is(.student-sidebar,.parent-sidebar,.teacher-sidebar,.admin-oriented-sidebar,.static-dashboard-sidebar){
    position:fixed!important;
    top:0!important;
    bottom:0!important;
    left:0!important;
    width:min(86vw,320px)!important;
    max-width:320px!important;
    height:100dvh!important;
    z-index:2147482500!important;
    transform:translateX(-105%)!important;
    transition:transform .22s ease!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
  }
  body.nbds-dashboard-ready.nbds-dashboard-drawer-open :is(.student-sidebar,.parent-sidebar,.teacher-sidebar,.admin-oriented-sidebar,.static-dashboard-sidebar),
  body.nbds-dashboard-ready.nbds-mobile-sidebar-open :is(.student-sidebar,.parent-sidebar,.teacher-sidebar,.admin-oriented-sidebar,.static-dashboard-sidebar),
  body.nbds-dashboard-ready :is(.student-sidebar,.parent-sidebar,.teacher-sidebar,.admin-oriented-sidebar,.static-dashboard-sidebar).nbds-dashboard-drawer-open-panel,
  body.nbds-dashboard-ready :is(.student-sidebar,.parent-sidebar,.teacher-sidebar,.admin-oriented-sidebar,.static-dashboard-sidebar).nbds-mobile-open{
    transform:translateX(0)!important;
  }
  .student-topbar{gap:10px!important;flex-wrap:wrap!important}
  .student-cover{min-height:0!important;padding:clamp(22px,4vw,36px)!important}
  .student-cover h1{font-size:clamp(2rem,7vw,4rem)!important}
}

@media (max-width:760px){
  :is(.student-main,.parent-main,.teacher-main,.admin-oriented-main,.workflow-main){padding:12px!important}
  :is(.panel-grid,.stats,.features,.register-grid,.admin-metric-grid,.admin-content-grid,.backend-control-map,.student-visibility-grid,.parent-dashboard-grid,.parent-subject-progress-grid,.teacher-quick-actions,.admin-form-grid,.admin-filter-grid){
    grid-template-columns:minmax(0,1fr)!important;
  }
  .student-card,.panel,.card{padding:clamp(12px,3vw,18px)!important}
  .student-topbar{align-items:flex-start!important}
}

/* -------------------- NBDS LINGUA -------------------- */
body .shell{max-width:100%!important}
@media (max-width:1100px){
  .hero{grid-template-columns:minmax(0,1fr)!important}
  .language-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .detail-grid,.vocab-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .level-roadmap{grid-template-columns:repeat(6,minmax(170px,1fr))!important;overflow-x:auto!important}
}
@media (max-width:680px){
  .shell{width:calc(100% - 12px)!important}
  .topbar{flex-wrap:wrap!important}
  .brand{min-width:0!important}
  .top-actions{width:100%!important}
  .top-actions a{flex:1 1 140px!important}
  .language-grid,.detail-grid,.vocab-grid,.sentence-grid,.quiz-options{grid-template-columns:minmax(0,1fr)!important}
  .unit-path{max-width:100%!important;padding-inline:8px!important}
  .path-unit{width:min(88%,240px)!important}
}

/* Zoomed-out / very wide screens: preserve readable line length rather than stretching. */
@media (min-width:1920px){
  .nbds-v371-slider{width:min(1840px,calc(100% - 48px))!important}
  .nbds-v371-hero-inner{max-width:1700px!important}
  .nbds-v371-feature-wrap{max-width:1600px!important}
  :is(.student-main,.parent-main,.teacher-main,.admin-oriented-main,.workflow-main)>.student-page,
  :is(.student-main,.parent-main,.teacher-main,.admin-oriented-main,.workflow-main)>main{max-width:1900px;margin-inline:auto}
}

/* Respect user accessibility preferences. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* =========================================================
   NBDS v386 — zoom-stable public header alignment
   Keeps the entire public menu comfortably on-screen at 100%
   and reflows before browser zoom can make items overlap.
   ========================================================= */
@media (min-width:1321px){
  body.nbds-standard-page-body>header.nbds-v371-public-header{
    width:100%!important;
    overflow:visible!important;
  }
  .nbds-v371-public-header .nbds-v371-navbar{
    width:100%!important;
    max-width:none!important;
    height:clamp(92px,6.2vw,118px)!important;
    min-height:clamp(92px,6.2vw,118px)!important;
    margin:0!important;
    padding:0 clamp(20px,2vw,38px)!important;
    display:grid!important;
    grid-template-columns:minmax(270px,320px) minmax(600px,720px) minmax(220px,260px)!important;
    column-gap:clamp(20px,2vw,34px)!important;
    justify-content:start!important;
    align-items:center!important;
  }
  .nbds-v371-public-header .nbds-v371-brand{
    justify-self:start!important;
    width:auto!important;
    max-width:320px!important;
    gap:11px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{
    width:clamp(58px,4vw,68px)!important;
    height:clamp(58px,4vw,68px)!important;
    flex:0 0 clamp(58px,4vw,68px)!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy strong{
    font-size:clamp(38px,2.65vw,46px)!important;
    line-height:.88!important;
    letter-spacing:-2.1px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy small{
    margin-top:8px!important;
    font-size:clamp(8px,.62vw,10px)!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links{
    justify-self:start!important;
    width:100%!important;
    min-width:0!important;
    max-width:720px!important;
    height:100%!important;
    display:flex!important;
    align-items:stretch!important;
    justify-content:space-between!important;
    gap:clamp(12px,1.25vw,24px)!important;
    overflow:visible!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{
    height:100%!important;
    min-height:0!important;
    padding:0!important;
    flex:0 0 auto!important;
    font-size:clamp(14px,1.05vw,17px)!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-menu{
    height:100%!important;
    flex:0 0 auto!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a::after,
  .nbds-v371-public-header .nbds-v372-nav-menu>a::after{
    bottom:clamp(20px,1.8vw,28px)!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-dropdown{
    top:calc(100% - 24px)!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions{
    justify-self:start!important;
    width:auto!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:8px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{
    min-height:40px!important;
    height:40px!important;
    padding:0 11px!important;
    border-radius:8px!important;
    gap:6px!important;
    font-size:12.5px!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{
    min-width:76px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{
    min-width:145px!important;
  }
  .nbds-v371-public-header .nbds-v380-action-icon{
    width:14px!important;
    height:14px!important;
    flex-basis:14px!important;
  }
}

/* At ordinary laptop widths / moderate zoom, tighten before collision. */
@media (min-width:1321px) and (max-width:1600px){
  .nbds-v371-public-header .nbds-v371-navbar{
    grid-template-columns:minmax(245px,285px) minmax(560px,650px) minmax(205px,235px)!important;
    column-gap:clamp(14px,1.4vw,22px)!important;
    padding-inline:clamp(16px,1.6vw,26px)!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{
    width:56px!important;height:56px!important;flex-basis:56px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:36px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy small{font-size:7.6px!important}
  .nbds-v371-public-header .nbds-v371-nav-links{gap:clamp(9px,1vw,16px)!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{font-size:13.5px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{height:38px!important;min-height:38px!important;font-size:11.7px!important;padding-inline:9px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{min-width:70px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{min-width:132px!important}
}

/* On very wide/zoomed-out screens keep the navigation visually anchored,
   while avoiding an excessively stretched header. */
@media (min-width:2100px){
  .nbds-v371-public-header .nbds-v371-navbar{
    max-width:1920px!important;
    margin-inline:auto!important;
    grid-template-columns:320px 720px 260px!important;
    column-gap:34px!important;
  }
}

/* Additional zoom resilience throughout the portal. */
html,body{min-width:0!important;width:100%!important;max-width:100%!important}
:is(.student-app-shell,.parent-app-shell,.teacher-app-shell,.admin-oriented-shell,.workflow-hub-shell,.admin-control-shell){max-width:100vw!important;min-width:0!important}
:is(.student-main,.parent-main,.teacher-main,.admin-main,.admin-oriented-main,.workflow-main,.admin-control-main){max-width:100%!important;min-width:0!important}
:is(.student-card,.parent-card,.teacher-card,.admin-card,.panel,.card,.resource-card,.lesson-resource-card){max-width:100%!important;min-width:0!important}

@media (min-width:1101px) and (max-width:1320px){
  /* Use the compact public menu early at zoomed-in desktop widths. */
  .nbds-v371-public-header .nbds-v371-navbar{padding-inline:clamp(12px,2vw,22px)!important}
}

@media (max-width:1100px){
  :is(.student-main,.parent-main,.teacher-main,.admin-main,.admin-oriented-main,.workflow-main,.admin-control-main){
    overflow-x:hidden!important;
  }
}

/* ===== assets/css/public_header_v387.css ===== */
/* NBDS v387 — definitive public header / zoom / mobile CTA treatment.
   This file is deliberately loaded last so the public header has one clear
   responsive source of truth after the historical incremental styles. */

.nbds-v387-brand-mobile,
.nbds-v387-mobile-hero-login{display:none!important}

/* ---------- Full desktop menu ---------- */
@media (min-width:1181px){
  body.nbds-standard-page-body>header.nbds-v371-public-header{
    width:100%!important;
    overflow:visible!important;
  }
  .nbds-v371-public-header .nbds-v371-navbar{
    box-sizing:border-box!important;
    width:min(100%,1680px)!important;
    max-width:1680px!important;
    min-height:96px!important;
    height:96px!important;
    margin-inline:auto!important;
    padding:0 clamp(18px,2vw,32px)!important;
    display:grid!important;
    grid-template-columns:minmax(245px,285px) minmax(0,1fr) max-content!important;
    column-gap:clamp(18px,2vw,34px)!important;
    align-items:center!important;
  }
  .nbds-v371-public-header .nbds-v371-brand{
    justify-self:start!important;
    width:auto!important;
    min-width:0!important;
    max-width:285px!important;
    margin:0!important;
    transform:none!important;
    gap:10px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{
    width:58px!important;height:58px!important;flex:0 0 58px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy strong{
    font-size:38px!important;line-height:.9!important;letter-spacing:-1.9px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy small{
    display:block!important;margin-top:7px!important;font-size:7.8px!important;letter-spacing:.04em!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links{
    position:static!important;
    justify-self:center!important;
    width:min(100%,710px)!important;
    min-width:0!important;
    max-width:710px!important;
    height:96px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:stretch!important;
    justify-content:space-between!important;
    gap:clamp(10px,1vw,18px)!important;
    padding:0!important;
    overflow:visible!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-height:96px!important;
    height:96px!important;
    margin:0!important;
    padding:0 2px!important;
    border-radius:0!important;
    font-size:14.5px!important;
    line-height:1!important;
    font-weight:750!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-menu{
    display:flex!important;height:96px!important;align-items:stretch!important;flex:0 0 auto!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a::after,
  .nbds-v371-public-header .nbds-v372-nav-menu>a::after{bottom:22px!important}
  .nbds-v371-public-header .nbds-v372-nav-dropdown{top:76px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions{
    justify-self:end!important;
    width:auto!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:8px!important;
    margin:0!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{
    min-height:38px!important;height:38px!important;border-radius:8px!important;
    padding:0 11px!important;gap:6px!important;font-size:12px!important;font-weight:800!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{min-width:72px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{min-width:136px!important}
  .nbds-v371-public-header .nbds-v380-action-icon{width:14px!important;height:14px!important;flex-basis:14px!important}
  .nbds-v371-public-header .menu-btn,
  .nbds-v371-public-header .nbds-v375-mobile-login{display:none!important}
}

/* Common 1181–1400 CSS-pixel desktop viewport (including moderate zoom). */
@media (min-width:1181px) and (max-width:1400px){
  .nbds-v371-public-header .nbds-v371-navbar{
    grid-template-columns:235px minmax(0,1fr) max-content!important;
    column-gap:14px!important;padding-inline:16px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{width:52px!important;height:52px!important;flex-basis:52px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:34px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy small{font-size:6.9px!important}
  .nbds-v371-public-header .nbds-v371-nav-links{max-width:620px!important;gap:8px!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{font-size:13px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{height:36px!important;min-height:36px!important;padding-inline:9px!important;font-size:11px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{min-width:66px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{min-width:125px!important}
}

/* ---------- Compact laptop / tablet ---------- */
@media (min-width:769px) and (max-width:1180px){
  .nbds-v371-public-header .nbds-v371-navbar{
    position:relative!important;min-height:78px!important;height:78px!important;
    grid-template-columns:minmax(230px,1fr) auto auto!important;column-gap:9px!important;
    padding:8px 16px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand{transform:none!important;gap:9px!important;overflow:hidden!important}
  .nbds-v371-public-header .nbds-v371-brand-logo{width:48px!important;height:48px!important;flex-basis:48px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:31px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy small{font-size:6.7px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions{display:flex!important;gap:7px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{height:38px!important;min-height:38px!important;padding:0 10px!important;font-size:11.5px!important;gap:5px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{min-width:68px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{min-width:126px!important}
  .nbds-v371-public-header .nbds-v375-mobile-login{display:none!important}
  .nbds-v371-public-header .menu-btn{display:flex!important;width:40px!important;height:40px!important;min-width:40px!important}
  .nbds-v371-public-header .nbds-v371-nav-links{
    position:absolute!important;z-index:1700!important;top:78px!important;left:14px!important;right:14px!important;
    width:auto!important;height:auto!important;display:none!important;flex-direction:column!important;align-items:stretch!important;
    gap:2px!important;padding:11px!important;max-height:calc(100vh - 96px)!important;overflow-y:auto!important;
    background:#fff!important;border:1px solid #dfece5!important;border-radius:15px!important;box-shadow:0 22px 55px rgba(4,52,39,.18)!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links.open{display:flex!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{width:100%!important;min-height:46px!important;height:auto!important;justify-content:flex-start!important;padding:0 14px!important;border-radius:10px!important;font-size:14px!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a::after,
  .nbds-v371-public-header .nbds-v372-nav-menu>a::after{display:none!important}
  .nbds-v371-public-header .nbds-v372-nav-menu{display:block!important;width:100%!important;height:auto!important}
  .nbds-v371-public-header .nbds-v372-nav-dropdown{position:static!important;width:auto!important;margin:0 8px 7px!important;padding:5px!important;transform:none!important;box-shadow:none!important;background:#f8fcfa!important}
}

/* ---------- Phones ---------- */
@media (max-width:768px){
  body.nbds-standard-page-body>.top-strip{height:4px!important;min-height:4px!important}
  .nbds-v371-public-header .nbds-v371-navbar{
    position:relative!important;min-height:74px!important;height:74px!important;
    display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;column-gap:10px!important;
    padding:8px 12px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand{min-width:0!important;gap:9px!important;transform:none!important;overflow:hidden!important}
  .nbds-v371-public-header .nbds-v371-brand-logo{width:48px!important;height:48px!important;flex:0 0 48px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy{min-width:0!important}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:inherit!important;letter-spacing:0!important;line-height:1!important}
  .nbds-v387-brand-desktop{display:none!important}
  .nbds-v387-brand-mobile{
    display:block!important;max-width:205px!important;color:#07513f!important;
    font-size:18px!important;line-height:1.04!important;letter-spacing:-.45px!important;font-weight:900!important;
    white-space:normal!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy small{display:none!important}
  .nbds-v371-public-header .nbds-v371-nav-actions,
  .nbds-v371-public-header .nbds-v375-mobile-login{display:none!important}
  .nbds-v371-public-header .menu-btn{display:flex!important;width:42px!important;height:42px!important;min-width:42px!important;border-radius:11px!important}
  .nbds-v371-public-header .nbds-v371-nav-links{
    position:absolute!important;z-index:1700!important;top:74px!important;left:10px!important;right:10px!important;
    width:auto!important;height:auto!important;display:none!important;flex-direction:column!important;align-items:stretch!important;
    gap:2px!important;padding:10px!important;max-height:calc(100vh - 90px)!important;overflow-y:auto!important;
    background:#fff!important;border:1px solid #dfece5!important;border-radius:15px!important;box-shadow:0 22px 55px rgba(4,52,39,.18)!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links.open{display:flex!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{width:100%!important;min-height:46px!important;height:auto!important;justify-content:flex-start!important;padding:0 13px!important;border-radius:10px!important;font-size:14px!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a::after,
  .nbds-v371-public-header .nbds-v372-nav-menu>a::after{display:none!important}
  .nbds-v371-public-header .nbds-v372-nav-menu{display:block!important;width:100%!important;height:auto!important}
  .nbds-v371-public-header .nbds-v372-nav-dropdown{position:static!important;width:auto!important;margin:0 8px 7px!important;padding:5px!important;transform:none!important;box-shadow:none!important;background:#f8fcfa!important}

  /* Requested mobile CTA arrangement: no Login in the header; Login replaces Explore Subjects. */
  .nbds-v387-desktop-explore{display:none!important}
  .nbds-v387-mobile-hero-login{display:inline-flex!important}
}

@media (max-width:430px){
  .nbds-v371-public-header .nbds-v371-navbar{height:70px!important;min-height:70px!important;padding-inline:9px!important}
  .nbds-v371-public-header .nbds-v371-brand-logo{width:44px!important;height:44px!important;flex-basis:44px!important}
  .nbds-v387-brand-mobile{max-width:175px!important;font-size:16px!important}
  .nbds-v371-public-header .menu-btn{width:40px!important;height:40px!important;min-width:40px!important}
  .nbds-v371-public-header .nbds-v371-nav-links{top:70px!important;left:7px!important;right:7px!important}
}

/* Real registered-user profile images in the social-proof card. */
.nbds-v371-learner-dots{display:flex!important;align-items:center!important;isolation:isolate}
.nbds-v371-learner-dots i{
  width:30px!important;height:30px!important;min-width:30px!important;border-radius:50%!important;
  display:grid!important;place-items:center!important;overflow:hidden!important;
  margin-left:-8px!important;border:2px solid #fff!important;background:#0c8052!important;
  box-shadow:0 0 0 1px #dce7e1!important;color:#fff!important;font-style:normal!important;font-size:10px!important;font-weight:900!important;
}
.nbds-v371-learner-dots i:first-child{margin-left:0!important}
.nbds-v371-learner-dots i img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}
.nbds-v371-learner-dots i:nth-child(1){z-index:3}.nbds-v371-learner-dots i:nth-child(2){z-index:2}.nbds-v371-learner-dots i:nth-child(3){z-index:1}

/* Keep the registered-learner card usable on phones instead of hiding it. */
@media (max-width:620px){
  .nbds-v371-learner-note{display:inline-flex!important;max-width:100%!important;padding:9px 11px!important;gap:9px!important;margin-top:0!important}
  .nbds-v371-learner-note>span:last-child{font-size:11px!important}
  .nbds-v371-learner-note small{font-size:9.5px!important}
  .nbds-v371-learner-dots i{width:25px!important;height:25px!important;min-width:25px!important;margin-left:-7px!important}
}

/* ===== assets/css/public_header_v388.css ===== */
/* NBDS v388 — compact, professional desktop navigation.
   Loaded after all previous public-header styles to prevent overlap at 100% zoom
   and to keep the menu stable across browser zoom levels. */

/* ---------- Desktop ---------- */
@media (min-width:1281px){
  .nbds-v371-public-header{overflow:visible!important}
  .nbds-v371-public-header .nbds-v371-navbar{
    box-sizing:border-box!important;
    width:min(100%,1720px)!important;
    max-width:1720px!important;
    min-height:88px!important;
    height:88px!important;
    margin-inline:auto!important;
    padding:0 clamp(18px,2.2vw,38px)!important;
    display:grid!important;
    grid-template-columns:minmax(250px,300px) minmax(0,1fr) max-content!important;
    column-gap:clamp(20px,2vw,34px)!important;
    align-items:center!important;
    overflow:visible!important;
  }

  .nbds-v371-public-header .nbds-v371-brand{
    justify-self:start!important;
    width:auto!important;
    max-width:300px!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    gap:10px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{
    width:54px!important;height:54px!important;flex:0 0 54px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy{min-width:0!important}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{
    font-size:34px!important;
    line-height:.95!important;
    letter-spacing:-1.25px!important;
    font-weight:800!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy small{
    display:block!important;
    margin-top:6px!important;
    font-size:7px!important;
    line-height:1!important;
    letter-spacing:.045em!important;
    font-weight:650!important;
    white-space:nowrap!important;
  }

  .nbds-v371-public-header .nbds-v371-nav-links{
    position:static!important;
    justify-self:center!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:88px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:stretch!important;
    justify-content:center!important;
    gap:clamp(14px,1.45vw,25px)!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    white-space:nowrap!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:0!important;
    min-height:88px!important;
    height:88px!important;
    margin:0!important;
    padding:0 1px!important;
    border-radius:0!important;
    font-size:13.25px!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:0!important;
    flex:0 0 auto!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-menu{
    position:relative!important;
    display:flex!important;
    align-items:stretch!important;
    height:88px!important;
    flex:0 0 auto!important;
  }
  .nbds-v371-public-header .nbds-v372-about-caret{
    font-size:11px!important;
    margin-left:4px!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a::after,
  .nbds-v371-public-header .nbds-v372-nav-menu>a::after{
    bottom:17px!important;
    height:2px!important;
  }

  .nbds-v371-public-header .nbds-v372-nav-dropdown{
    position:absolute!important;
    z-index:2200!important;
    top:72px!important;
    left:50%!important;
    width:220px!important;
    transform:translate(-50%,8px)!important;
    padding:8px!important;
    border-radius:13px!important;
    box-shadow:0 18px 44px rgba(4,52,39,.15)!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-menu:hover .nbds-v372-nav-dropdown,
  .nbds-v371-public-header .nbds-v372-nav-menu:focus-within .nbds-v372-nav-dropdown{
    transform:translate(-50%,0)!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-dropdown a{
    padding:10px 11px!important;
    font-size:12.5px!important;
    line-height:1.3!important;
    font-weight:550!important;
  }

  .nbds-v371-public-header .nbds-v371-nav-actions{
    justify-self:end!important;
    width:auto!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:8px!important;
    margin:0!important;
    padding:0!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{
    min-height:36px!important;
    height:36px!important;
    border-radius:8px!important;
    padding:0 10px!important;
    gap:5px!important;
    font-size:11.25px!important;
    line-height:1!important;
    font-weight:650!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{min-width:66px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{min-width:124px!important}
  .nbds-v371-public-header .nbds-v380-action-icon{
    width:13px!important;height:13px!important;flex:0 0 13px!important;
  }
  .nbds-v371-public-header .menu-btn,
  .nbds-v371-public-header .nbds-v375-mobile-login{display:none!important}
}

/* Common laptops / Windows scaling / moderate browser zoom. */
@media (min-width:1281px) and (max-width:1500px){
  .nbds-v371-public-header .nbds-v371-navbar{
    grid-template-columns:245px minmax(0,1fr) max-content!important;
    column-gap:15px!important;
    padding-inline:15px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{width:48px!important;height:48px!important;flex-basis:48px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:30px!important;letter-spacing:-1px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy small{font-size:6.3px!important}
  .nbds-v371-public-header .nbds-v371-nav-links{gap:10px!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{font-size:12px!important;font-weight:600!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{font-size:10.5px!important;padding-inline:8px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{min-width:61px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{min-width:115px!important}
}

/* Switch before crowding occurs. This is intentionally higher than older
   breakpoints because zooming in reduces the CSS viewport width. */
@media (min-width:769px) and (max-width:1280px){
  .nbds-v371-public-header .nbds-v371-navbar{
    position:relative!important;
    min-height:76px!important;height:76px!important;
    display:grid!important;
    grid-template-columns:minmax(220px,1fr) auto auto!important;
    column-gap:8px!important;
    padding:8px 14px!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{width:46px!important;height:46px!important;flex-basis:46px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:29px!important;font-weight:800!important}
  .nbds-v371-public-header .nbds-v371-brand-copy small{font-size:6.2px!important;font-weight:600!important}
  .nbds-v371-public-header .nbds-v371-nav-actions{display:flex!important;gap:6px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{height:36px!important;min-height:36px!important;padding:0 8px!important;font-size:10.5px!important;font-weight:650!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{min-width:61px!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{min-width:114px!important}
  .nbds-v371-public-header .menu-btn{display:flex!important;width:40px!important;height:40px!important;min-width:40px!important}
  .nbds-v371-public-header .nbds-v375-mobile-login{display:none!important}

  .nbds-v371-public-header .nbds-v371-nav-links{
    position:absolute!important;z-index:2200!important;top:76px!important;left:12px!important;right:12px!important;
    width:auto!important;height:auto!important;display:none!important;flex-direction:column!important;align-items:stretch!important;
    gap:2px!important;padding:10px!important;max-height:calc(100vh - 92px)!important;overflow-y:auto!important;
    background:#fff!important;border:1px solid #dfece5!important;border-radius:14px!important;box-shadow:0 20px 50px rgba(4,52,39,.17)!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links.open,
  .nbds-v371-public-header .nbds-v371-nav-links.is-open{display:flex!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{
    width:100%!important;min-height:44px!important;height:auto!important;justify-content:flex-start!important;
    padding:0 13px!important;border-radius:9px!important;font-size:13px!important;font-weight:600!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a::after,
  .nbds-v371-public-header .nbds-v372-nav-menu>a::after{display:none!important}
  .nbds-v371-public-header .nbds-v372-nav-menu{display:block!important;width:100%!important;height:auto!important}
  .nbds-v371-public-header .nbds-v372-nav-dropdown{
    position:static!important;width:auto!important;margin:0 8px 7px!important;padding:5px!important;
    transform:none!important;box-shadow:none!important;background:#f8fcfa!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-dropdown a{font-size:12.5px!important;font-weight:550!important}
}

/* Phone behaviour remains as defined in v387, with slightly lighter menu text. */
@media (max-width:768px){
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{font-size:13px!important;font-weight:600!important}
  .nbds-v371-public-header .nbds-v372-nav-dropdown a{font-size:12.5px!important;font-weight:550!important}
}

/* ===== assets/css/public_autolayout_v390.css ===== */
/* NBDS v390 — intrinsic auto-layout for public pages and homepage.
   This stylesheet is deliberately loaded last. It replaces the accumulated
   breakpoint overrides with a small set of layout rules that react to the
   actual available width. */

:root{
  --nbds-page-max:1680px;
  --nbds-gutter:clamp(14px,2.6vw,42px);
  --nbds-nav-h:88px;
}
html,body{width:100%;max-width:100%;overflow-x:clip!important}
body.nbds-standard-page-body{min-width:0!important}
body.nbds-standard-page-body *{box-sizing:border-box}
body.nbds-standard-page-body img,
body.nbds-standard-page-body svg,
body.nbds-standard-page-body video,
body.nbds-standard-page-body canvas{max-width:100%;height:auto}

/* ---------- Public header: true auto layout ---------- */
.nbds-v371-public-header{width:100%!important;overflow:visible!important;background:#fff!important}
.nbds-v371-public-header .nbds-v371-navbar{
  width:min(100%,var(--nbds-page-max))!important;
  max-width:var(--nbds-page-max)!important;
  min-height:var(--nbds-nav-h)!important;
  height:auto!important;
  margin-inline:auto!important;
  padding:0 var(--nbds-gutter)!important;
  display:grid!important;
  grid-template-columns:max-content minmax(0,1fr) max-content!important;
  align-items:center!important;
  gap:clamp(18px,2.1vw,38px)!important;
  overflow:visible!important;
}
.nbds-v371-public-header .nbds-v371-brand{
  min-width:0!important;width:max-content!important;max-width:100%!important;
  display:flex!important;align-items:center!important;gap:10px!important;
  margin:0!important;padding:0!important;transform:none!important;overflow:visible!important;
}
.nbds-v371-public-header .nbds-v371-brand-logo{
  width:clamp(46px,3.6vw,58px)!important;height:clamp(46px,3.6vw,58px)!important;
  flex:0 0 clamp(46px,3.6vw,58px)!important;object-fit:contain!important;
}
.nbds-v371-public-header .nbds-v371-brand-copy{display:block!important;min-width:0!important;white-space:nowrap!important}
.nbds-v371-public-header .nbds-v371-brand-copy strong{
  display:block!important;font-size:clamp(29px,2.25vw,37px)!important;line-height:.96!important;
  font-weight:800!important;letter-spacing:-1.1px!important;white-space:nowrap!important;
}
.nbds-v371-public-header .nbds-v371-brand-copy small{
  display:block!important;margin-top:5px!important;font-size:clamp(6.2px,.48vw,8px)!important;
  line-height:1!important;font-weight:650!important;letter-spacing:.04em!important;white-space:nowrap!important;
}
.nbds-v371-public-header .nbds-v387-brand-mobile{display:none!important}
.nbds-v371-public-header .nbds-v387-brand-desktop{display:inline!important}

.nbds-v371-public-header .nbds-v371-nav-links{
  position:static!important;z-index:auto!important;min-width:0!important;width:100%!important;height:var(--nbds-nav-h)!important;
  display:flex!important;align-items:stretch!important;justify-content:center!important;
  gap:clamp(13px,1.25vw,24px)!important;margin:0!important;padding:0!important;
  overflow:visible!important;white-space:nowrap!important;background:transparent!important;border:0!important;box-shadow:none!important;
}
.nbds-v371-public-header .nbds-v371-nav-links>a,
.nbds-v371-public-header .nbds-v372-nav-menu>a{
  position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;
  width:auto!important;min-width:0!important;height:var(--nbds-nav-h)!important;min-height:var(--nbds-nav-h)!important;
  padding:0!important;margin:0!important;border-radius:0!important;white-space:nowrap!important;
  font-size:clamp(11.5px,.84vw,13.5px)!important;line-height:1!important;font-weight:580!important;letter-spacing:0!important;
}
.nbds-v371-public-header .nbds-v372-nav-menu{position:relative!important;display:flex!important;align-items:stretch!important;width:auto!important;height:var(--nbds-nav-h)!important}
.nbds-v371-public-header .nbds-v372-about-caret{margin-left:4px!important;font-size:10px!important}
.nbds-v371-public-header .nbds-v372-nav-dropdown{
  position:absolute!important;z-index:3500!important;top:70px!important;left:50%!important;width:218px!important;
  transform:translate(-50%,8px)!important;padding:8px!important;border-radius:13px!important;
  background:#fff!important;border:1px solid #dfece5!important;box-shadow:0 18px 44px rgba(4,52,39,.15)!important;
}
.nbds-v371-public-header .nbds-v372-nav-menu:hover .nbds-v372-nav-dropdown,
.nbds-v371-public-header .nbds-v372-nav-menu:focus-within .nbds-v372-nav-dropdown{transform:translate(-50%,0)!important}
.nbds-v371-public-header .nbds-v372-nav-dropdown a{padding:10px 11px!important;font-size:12px!important;font-weight:520!important;line-height:1.3!important}

.nbds-v371-public-header .nbds-v371-nav-actions{
  min-width:0!important;width:max-content!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;
  gap:8px!important;margin:0!important;padding:0!important;white-space:nowrap!important;
}
.nbds-v371-public-header .nbds-v371-nav-actions .btn{
  min-height:36px!important;height:36px!important;padding:0 10px!important;border-radius:8px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;
  font-size:11px!important;line-height:1!important;font-weight:620!important;white-space:nowrap!important;
}
.nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-login{min-width:64px!important}
.nbds-v371-public-header .nbds-v371-nav-actions .nbds-v371-register{min-width:118px!important}
.nbds-v371-public-header .nbds-v380-action-icon{width:13px!important;height:13px!important;flex:0 0 13px!important}
.nbds-v371-public-header .menu-btn,
.nbds-v371-public-header .nbds-v375-mobile-login{display:none!important}

/* Collision-aware compact mode is applied by public_autolayout_v390.js. */
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-navbar{
  min-height:76px!important;grid-template-columns:minmax(0,1fr) max-content max-content!important;gap:8px!important;padding-block:8px!important;
}
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-brand-logo{width:46px!important;height:46px!important;flex-basis:46px!important}
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-brand-copy strong{font-size:29px!important}
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-brand-copy small{font-size:6.2px!important}
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-nav-actions{display:flex!important}
.nbds-v371-public-header.nbds-autolayout-compact .menu-btn{display:flex!important;width:40px!important;height:40px!important;min-width:40px!important;align-items:center!important;justify-content:center!important}
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-nav-links{
  display:none!important;position:absolute!important;z-index:3600!important;top:100%!important;left:var(--nbds-gutter)!important;right:var(--nbds-gutter)!important;
  width:auto!important;height:auto!important;max-height:min(72vh,620px)!important;padding:10px!important;flex-direction:column!important;
  align-items:stretch!important;justify-content:flex-start!important;gap:2px!important;overflow-y:auto!important;overflow-x:hidden!important;
  white-space:normal!important;background:#fff!important;border:1px solid #dfece5!important;border-radius:14px!important;box-shadow:0 20px 50px rgba(4,52,39,.17)!important;
}
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-nav-links.open,
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-nav-links.is-open{display:flex!important}
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-nav-links>a,
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v372-nav-menu>a{
  width:100%!important;height:auto!important;min-height:44px!important;padding:0 13px!important;justify-content:flex-start!important;
  border-radius:9px!important;font-size:13px!important;font-weight:560!important;
}
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-nav-links>a::after,
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v372-nav-menu>a::after{display:none!important}
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v372-nav-menu{display:block!important;width:100%!important;height:auto!important}
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v372-nav-dropdown{display:none!important}

/* Mobile: no header Login button; the hero Login remains the secondary CTA. */
@media (max-width:768px){
  :root{--nbds-gutter:clamp(12px,4vw,20px)}
  .nbds-v371-public-header .nbds-v371-navbar,
  .nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-navbar{
    min-height:72px!important;grid-template-columns:minmax(0,1fr) max-content!important;gap:9px!important;padding:7px var(--nbds-gutter)!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions,
  .nbds-v371-public-header .nbds-v375-mobile-login{display:none!important}
  .nbds-v371-public-header .menu-btn{display:flex!important;width:40px!important;height:40px!important;min-width:40px!important;align-items:center!important;justify-content:center!important}
  .nbds-v371-public-header .nbds-v371-brand-logo{width:43px!important;height:43px!important;flex-basis:43px!important}
  .nbds-v371-public-header .nbds-v371-brand-copy small{display:none!important}
  .nbds-v371-public-header .nbds-v387-brand-desktop{display:none!important}
  .nbds-v371-public-header .nbds-v387-brand-mobile{display:inline!important}
  .nbds-v371-public-header .nbds-v371-brand-copy strong{font-size:clamp(14px,4.7vw,21px)!important;letter-spacing:-.35px!important;white-space:normal!important;line-height:1.05!important}
  .nbds-v371-public-header .nbds-v371-nav-links{
    display:none!important;position:absolute!important;z-index:3600!important;top:100%!important;left:var(--nbds-gutter)!important;right:var(--nbds-gutter)!important;
    width:auto!important;height:auto!important;max-height:72vh!important;padding:10px!important;flex-direction:column!important;align-items:stretch!important;
    gap:2px!important;overflow-y:auto!important;background:#fff!important;border:1px solid #dfece5!important;border-radius:14px!important;box-shadow:0 20px 50px rgba(4,52,39,.17)!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links.open,
  .nbds-v371-public-header .nbds-v371-nav-links.is-open{display:flex!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{width:100%!important;height:auto!important;min-height:44px!important;padding:0 13px!important;justify-content:flex-start!important;font-size:13px!important;font-weight:560!important}
  .nbds-v371-public-header .nbds-v372-nav-menu{display:block!important;width:100%!important;height:auto!important}
  .nbds-v371-public-header .nbds-v372-nav-dropdown{display:none!important}
}

/* ---------- Homepage intrinsic auto layout ---------- */
.nbds-v371-hero{width:100%!important;min-width:0!important;padding-bottom:clamp(52px,5vw,82px)!important}
.nbds-v371-slider{
  width:min(calc(100% - clamp(12px,2vw,28px)),1880px)!important;max-width:1880px!important;margin-inline:auto!important;
  min-width:0!important;min-height:clamp(560px,67svh,690px)!important;overflow:hidden!important;border-radius:0 0 clamp(18px,2vw,30px) clamp(18px,2vw,30px)!important;
}
.nbds-v371-hero-inner{
  width:min(100%,var(--nbds-page-max))!important;max-width:var(--nbds-page-max)!important;min-height:clamp(560px,67svh,690px)!important;
  margin-inline:auto!important;padding:clamp(28px,4.6vw,70px) var(--nbds-gutter) clamp(74px,6vw,96px)!important;
  display:grid!important;grid-template-columns:minmax(300px,620px) minmax(0,1fr)!important;align-items:center!important;
}
.nbds-v371-hero-copy{width:100%!important;max-width:620px!important;min-width:0!important;padding:0!important}
.nbds-v371-hero-copy h1{
  min-height:0!important;margin:0 0 clamp(16px,2vw,24px)!important;font-size:clamp(42px,4.25vw,74px)!important;
  line-height:1.02!important;letter-spacing:clamp(-3px,-.16vw,-1.6px)!important;overflow-wrap:normal!important;word-break:normal!important;
}
.nbds-v371-hero-copy>p{min-height:0!important;max-width:590px!important;margin:0 0 clamp(18px,2vw,28px)!important;font-size:clamp(15px,1.1vw,19px)!important;line-height:1.62!important}
.nbds-v371-hero-actions{display:flex!important;align-items:center!important;gap:clamp(10px,1.4vw,20px)!important;flex-wrap:wrap!important;margin-bottom:clamp(16px,2vw,26px)!important}
.nbds-v371-hero-actions .btn{min-height:50px!important;height:auto!important;padding:10px clamp(15px,1.5vw,24px)!important;font-size:clamp(12px,.9vw,15px)!important;white-space:nowrap!important}
.nbds-v371-slide-arrow{top:50%!important;transform:translateY(-50%)!important}
.nbds-v371-slide-dots{bottom:clamp(68px,7vw,92px)!important}

.nbds-v371-feature-wrap{width:min(calc(100% - 2*var(--nbds-gutter)),1530px)!important;max-width:1530px!important;margin-inline:auto!important}
.nbds-v371-feature-strip{
  display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))!important;gap:0!important;
  padding:clamp(12px,1.5vw,22px)!important;overflow:hidden!important;
}
.nbds-v371-feature-strip article{
  min-width:0!important;display:grid!important;grid-template-columns:48px minmax(0,1fr)!important;gap:12px!important;align-items:center!important;
  padding:clamp(12px,1.5vw,20px)!important;border-right:1px solid #e7ebe9!important;border-bottom:0!important;
}
.nbds-v371-feature-strip article:last-child{border-right:0!important}
.nbds-v371-feature-icon{width:42px!important;height:42px!important;display:grid!important;place-items:center!important;color:#087447!important;font-size:0!important;filter:none!important}
.nbds-v371-feature-icon svg{width:36px!important;height:36px!important;display:block!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.nbds-v371-feature-strip strong{font-size:clamp(12px,.98vw,16px)!important;overflow-wrap:normal!important}
.nbds-v371-feature-strip small{font-size:clamp(10.5px,.85vw,14px)!important}

.nbds-grade-band-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr))!important}
.nbds-grade-band-icon{font-size:0!important;color:#087844!important}
.nbds-grade-band-icon svg{width:29px!important;height:29px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.nbds-learning-step-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr))!important}
.nbds-learning-step-grid::before{display:none!important}
.nbds-learning-step-icon{font-size:0!important}
.nbds-learning-step-icon svg{width:27px!important;height:27px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.features{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))!important}
.feature{min-width:0!important}
.feature-icon{font-size:0!important;color:#087844!important}
.feature-icon svg{width:30px!important;height:30px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.nbds-home-tutor-grid,.nbds-tutor-standard-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))!important}
.nbds-home-tutor-heading{grid-template-columns:minmax(0,1fr) minmax(190px,235px)!important}
.nbds-subject-showcase{grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr)!important}

/* Hero and cards collapse by available space. Browser zoom automatically
   changes CSS viewport width, so the same rules work at 80%, 100%, 125%, etc. */
@media (max-width:980px){
  .nbds-v371-slider{min-height:clamp(600px,80svh,760px)!important}
  .nbds-v371-hero-inner{min-height:clamp(600px,80svh,760px)!important;grid-template-columns:1fr!important;align-items:end!important;padding:clamp(20px,5vw,40px)!important;padding-bottom:clamp(86px,11vw,112px)!important}
  .nbds-v371-hero-copy{max-width:720px!important}
  .nbds-v371-slide-shade{background:linear-gradient(0deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.95) 42%,rgba(255,255,255,.45) 70%,rgba(255,255,255,.08) 100%)!important}
  .nbds-v371-slide-photo{background-position:center 30%!important}
  .nbds-v371-hero-copy h1{font-size:clamp(34px,7.6vw,56px)!important}
  .nbds-v371-feature-strip article{border-right:0!important;border-bottom:1px solid #e7ebe9!important}
  .nbds-v371-feature-strip article:last-child{border-bottom:0!important}
  .nbds-home-tutor-heading,.nbds-subject-showcase{grid-template-columns:1fr!important}
}
@media (max-width:620px){
  .nbds-v371-slider{width:100%!important;border-radius:0 0 18px 18px!important;min-height:620px!important}
  .nbds-v371-hero-inner{min-height:620px!important;padding:18px 18px 92px!important}
  .nbds-v371-slide-photo{background-position:58% 22%!important}
  .nbds-v371-hero-copy h1{font-size:clamp(31px,10vw,44px)!important}
  .nbds-v371-hero-copy>p{font-size:clamp(14px,4vw,16px)!important}
  .nbds-v371-hero-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important}
  .nbds-v371-hero-actions .btn{width:100%!important;padding-inline:8px!important}
  .nbds-v371-feature-wrap{width:calc(100% - 22px)!important}
  .nbds-v371-feature-strip{grid-template-columns:1fr!important}
  .nbds-v371-feature-strip article{grid-template-columns:42px minmax(0,1fr)!important}
  .nbds-v371-feature-icon{width:36px!important;height:36px!important}.nbds-v371-feature-icon svg{width:31px!important;height:31px!important}
  .nbds-grade-band-grid,.nbds-learning-step-grid,.features,.nbds-home-tutor-grid,.nbds-tutor-standard-grid{grid-template-columns:1fr!important}
}

/* Broad public-page auto layout, including About/Login/Features/etc. */
.nbds-v372-page-main,.nbds-v372-page-main>*{min-width:0!important}
.nbds-v372-hero-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))!important}
.nbds-v372-feature-grid,.nbds-v372-value-grid,.nbds-v372-class-grid,.nbds-v372-subject-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))!important}

/* Keep controls/icons stable during zoom. */
.nbds-v371-public-header svg,.nbds-v371-hero svg,.nbds-learning-steps svg,.features svg{flex:none!important;vector-effect:non-scaling-stroke}

/* ========================================================================
   NBDS v390 — predictable About dropdown + stronger responsive auto layout
   ======================================================================== */

/* The About submenu is never held open merely because the link has keyboard
   focus or because About is the current page. On desktop it appears only
   while the About control is actually highlighted by the pointer. */
.nbds-v371-public-header .nbds-v372-nav-dropdown{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translate(-50%,8px)!important;
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease!important;
}
.nbds-v371-public-header .nbds-v372-nav-menu:focus-within .nbds-v372-nav-dropdown,
.nbds-v371-public-header .nbds-v372-nav-menu.is-active .nbds-v372-nav-dropdown{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translate(-50%,8px)!important;
}
@media (hover:hover) and (pointer:fine) and (min-width:769px){
  .nbds-v371-public-header:not(.nbds-autolayout-compact) .nbds-v372-nav-menu:hover .nbds-v372-nav-dropdown{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translate(-50%,0)!important;
  }
  .nbds-v371-public-header:not(.nbds-autolayout-compact) .nbds-v372-nav-menu:hover .nbds-v372-about-caret{
    transform:rotate(180deg)!important;
  }
}

/* In compact/mobile navigation the About item behaves as a normal page link.
   The submenu does not expand and therefore cannot scatter the drawer. */
.nbds-v371-public-header.nbds-autolayout-compact .nbds-v372-nav-dropdown{display:none!important}
@media (max-width:768px){
  .nbds-v371-public-header .nbds-v372-nav-dropdown{display:none!important}
}

/* Fluid page shell. This deliberately avoids fixed card/page widths so
   browser zoom, split-screen windows, landscape phones and tablets reflow. */
body.nbds-standard-page-body main,
body.nbds-standard-page-body section,
body.nbds-standard-page-body .container,
body.nbds-standard-page-body [class*="grid"],
body.nbds-standard-page-body [class*="wrap"],
body.nbds-standard-page-body [class*="shell"]{
  min-inline-size:0;
}
body.nbds-standard-page-body .container{
  width:min(100%,var(--nbds-page-max))!important;
  max-width:var(--nbds-page-max)!important;
  padding-inline:var(--nbds-gutter);
  margin-inline:auto;
}
body.nbds-standard-page-body :where(h1,h2,h3,h4,p,li,a,button,label,span,strong,small){
  max-inline-size:100%;
}
body.nbds-standard-page-body :where(p,li,label){overflow-wrap:anywhere}
body.nbds-standard-page-body :where(input,select,textarea,button,.btn){max-width:100%}
body.nbds-standard-page-body table{max-width:100%}

/* Public header can shrink without any item overlapping its neighbour. */
.nbds-v371-public-header .nbds-v371-navbar{container-type:inline-size!important}
.nbds-v371-public-header .nbds-v371-brand,
.nbds-v371-public-header .nbds-v371-nav-links,
.nbds-v371-public-header .nbds-v371-nav-actions{min-inline-size:0!important}
.nbds-v371-public-header .nbds-v371-nav-links{flex-wrap:nowrap!important}
.nbds-v371-public-header .nbds-v371-nav-actions{flex-shrink:0!important}
.nbds-v371-public-header .nbds-v371-brand{flex-shrink:1!important}

/* Hero scales from wide desktop through zoomed desktop without fixed visual
   jumps. Clamp keeps the text legible while preserving the reference layout. */
.nbds-v371-hero-inner{
  gap:clamp(16px,3vw,52px)!important;
  grid-template-columns:minmax(260px,min(38vw,620px)) minmax(0,1fr)!important;
}
.nbds-v371-hero-copy h1{font-size:clamp(34px,4.2vw,74px)!important}
.nbds-v371-hero-copy>p{font-size:clamp(14px,1.08vw,19px)!important}

/* Auto-fit repeated content blocks instead of forcing a fixed column count. */
.nbds-v371-feature-strip,
.nbds-grade-band-grid,
.nbds-learning-step-grid,
.features,
.nbds-home-tutor-grid,
.nbds-tutor-standard-grid,
.nbds-v372-feature-grid,
.nbds-v372-value-grid,
.nbds-v372-class-grid,
.nbds-v372-subject-grid{
  grid-auto-flow:row!important;
}

/* Intermediate widths produced by desktop zoom or narrow laptop windows. */
@media (max-width:1180px){
  .nbds-v371-hero-inner{grid-template-columns:minmax(280px,.88fr) minmax(0,1.12fr)!important}
  .nbds-v371-feature-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .nbds-v371-feature-strip article:nth-child(2){border-right:0!important}
  .nbds-v371-feature-strip article:nth-child(-n+2){border-bottom:1px solid #e7ebe9!important}
}
@media (max-width:980px){
  .nbds-v371-hero-inner{grid-template-columns:1fr!important}
  .nbds-v371-feature-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:680px){
  .nbds-v371-feature-strip{grid-template-columns:1fr!important}
  .nbds-v371-feature-strip article{border-right:0!important;border-bottom:1px solid #e7ebe9!important}
  .nbds-v371-feature-strip article:last-child{border-bottom:0!important}
}

/* Respect text enlargement and user zoom: never crop focused controls. */
@media (max-height:650px) and (min-width:769px){
  .nbds-v371-slider,.nbds-v371-hero-inner{min-height:520px!important}
  .nbds-v371-hero-inner{padding-block:28px 78px!important}
}

/* ===== assets/css/public_polish_v391.css ===== */
/* =========================================================
   NBDS v391 — reliable typography, unified SVG icons,
   brighter feature/contact presentation, photographic bands.
   ========================================================= */
:root{
  --nbds-v391-green:#087844;
  --nbds-v391-green-2:#0aa15e;
  --nbds-v391-deep:#063f31;
  --nbds-v391-navy:#17324d;
  --nbds-v391-soft:#effaf4;
  --nbds-v391-line:#dcebe3;
  --nbds-v391-ink:#142331;
  --nbds-v391-muted:#5f6f7e;
}

/* Do not depend on an external web-font for readable public pages. */
.nbds-standard-page-body,
.nbds-standard-page-body button,
.nbds-standard-page-body input,
.nbds-standard-page-body select,
.nbds-standard-page-body textarea{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
  font-synthesis:none;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
.nbds-standard-page-body h1,
.nbds-standard-page-body h2,
.nbds-standard-page-body h3,
.nbds-standard-page-body h4,
.nbds-standard-page-body p,
.nbds-standard-page-body label,
.nbds-standard-page-body a,
.nbds-standard-page-body span,
.nbds-standard-page-body small{
  opacity:1;
  visibility:visible;
}

.nbds-public-icon,
.nbds-v391-action-icon,
.nbds-menu-icon,
.nbds-nav-chevron{
  display:block;
  width:1.25em;
  height:1.25em;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

/* Header actions */
.nbds-v371-public-header .nbds-v371-nav-actions .btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
}
.nbds-action-icon-chip{
  width:27px;
  height:27px;
  border-radius:8px;
  display:grid;
  place-items:center;
  flex:0 0 27px;
  background:#eef8f3;
  color:var(--nbds-v391-green);
}
.nbds-v371-register .nbds-action-icon-chip{
  background:rgba(255,255,255,.18);
  color:#fff;
}
.nbds-v391-action-icon{width:16px;height:16px}
.nbds-v375-mobile-login .nbds-mobile-action-icon{display:grid;place-items:center;width:20px;height:20px}
.nbds-v375-mobile-login .nbds-mobile-action-icon svg{width:18px;height:18px}
.nbds-v371-public-header .menu-btn{font-size:0!important;display:grid;place-items:center}
.nbds-v371-public-header .menu-btn .nbds-menu-icon{width:24px;height:24px;font-size:initial}
.nbds-v372-about-caret{display:inline-grid!important;place-items:center!important;width:15px!important;height:15px!important;margin-left:2px!important}
.nbds-nav-chevron{width:13px;height:13px}

/* Icon buttons used throughout public pages */
.nbds-icon-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:9px!important}
.nbds-icon-btn>svg{width:19px;height:19px;flex:0 0 19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.nbds-v391-badge{display:inline-flex!important;align-items:center!important;gap:8px!important}
.nbds-v391-badge>svg{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.trust-row span>svg{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:var(--nbds-v391-green-2);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Modern feature icons: no emoji, no icon font, no CDN. */
.feature-page-card .feature-icon,
.about-card .about-icon,
.nbds-v372-card .icon{
  width:54px!important;
  height:54px!important;
  border-radius:17px!important;
  display:grid!important;
  place-items:center!important;
  margin-bottom:15px!important;
  background:linear-gradient(145deg,#e9f8f0,#f8fffb)!important;
  border:1px solid #cfe8db!important;
  color:var(--nbds-v391-green)!important;
  box-shadow:0 10px 24px rgba(8,120,68,.10)!important;
  font-size:0!important;
}
.feature-page-card .feature-icon svg,
.about-card .about-icon svg,
.nbds-v372-card .icon svg{
  width:29px!important;
  height:29px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.75!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.feature-page-card{
  min-width:0;
  border-color:#e0ece6!important;
  background:linear-gradient(180deg,#fff,#fbfffd)!important;
}
.feature-page-card h3{color:var(--nbds-v391-deep)!important;font-weight:750!important;line-height:1.25!important}
.feature-page-card p{color:var(--nbds-v391-muted)!important}

/* Reliable readable page heroes */
.nbds-standard-page-body .features-page-hero h1,
.nbds-standard-page-body .contact-hero h1{color:var(--nbds-v391-ink)!important}
.nbds-standard-page-body .features-page-hero h1 span,
.nbds-standard-page-body .contact-hero h1 span{color:var(--nbds-v391-green)!important}
.nbds-standard-page-body .features-page-hero p,
.nbds-standard-page-body .contact-hero p,
.nbds-standard-page-body .features-page-hero .trust-row,
.nbds-standard-page-body .contact-hero .trust-row{color:#536575!important}
.nbds-standard-page-body .features-page-hero .badge,
.nbds-standard-page-body .contact-hero .badge{color:var(--nbds-v391-deep)!important;background:#e9f8f0!important;border-color:#cfe8db!important}

/* Three-image learning showcase */
.nbds-v391-photo-showcase{background:linear-gradient(180deg,#f5fbf8 0%,#fff 100%)}
.nbds-v391-eyebrow{display:block;text-align:center;color:var(--nbds-v391-green);font-size:12px;font-weight:800;letter-spacing:.14em;margin-bottom:10px}
.nbds-v391-photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));
  gap:20px;
}
.nbds-v391-photo-card{
  min-width:0;
  overflow:hidden;
  border-radius:24px;
  background:#fff;
  border:1px solid var(--nbds-v391-line);
  box-shadow:0 18px 45px rgba(6,63,49,.09);
}
.nbds-v391-photo-card>img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .45s ease}
.nbds-v391-photo-card:hover>img{transform:scale(1.035)}
.nbds-v391-photo-card>div{position:relative;padding:22px 22px 24px}
.nbds-v391-photo-card>div>span{position:absolute;right:20px;top:-25px;width:50px;height:50px;border-radius:16px;background:linear-gradient(145deg,#087844,#0aa15e);color:#fff;display:grid;place-items:center;box-shadow:0 12px 26px rgba(8,120,68,.25)}
.nbds-v391-photo-card>div>span svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nbds-v391-photo-card h3{color:var(--nbds-v391-deep);margin:0 58px 8px 0;font-size:20px}
.nbds-v391-photo-card p{color:var(--nbds-v391-muted);margin:0;line-height:1.65}

/* Contact page */
.nbds-v391-contact-highlights{padding:26px 0 6px;background:#fff}
.nbds-v391-contact-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.nbds-v391-contact-photo-grid figure{position:relative;min-width:0;margin:0;overflow:hidden;border-radius:20px;border:1px solid var(--nbds-v391-line);background:#fff;box-shadow:0 14px 34px rgba(6,63,49,.08)}
.nbds-v391-contact-photo-grid figure img{display:block;width:100%;height:190px;object-fit:cover}
.nbds-v391-contact-photo-grid figcaption{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;padding:15px 17px}
.nbds-v391-contact-photo-grid figcaption>svg{width:42px;height:42px;padding:10px;border-radius:13px;background:#eaf8f1;color:var(--nbds-v391-green);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nbds-v391-contact-photo-grid figcaption span{min-width:0;color:var(--nbds-v391-muted);font-size:12.5px;line-height:1.45}
.nbds-v391-contact-photo-grid figcaption strong{display:block;color:var(--nbds-v391-deep);font-size:14px;margin-bottom:2px}
.contact-form-card,.contact-info-card{border-color:#dcebe3!important;box-shadow:0 18px 45px rgba(6,63,49,.08)!important}
.contact-form-card h1,.contact-info-card h2{color:var(--nbds-v391-deep)!important}
.contact-form-card .sub,.contact-info-card p{color:var(--nbds-v391-muted)!important}
.contact-form-card label{color:#263d4d!important;font-weight:700!important}
.contact-form-card input,.contact-form-card select,.contact-form-card textarea{color:#172938!important;background:#fff!important;border-color:#cadfd4!important}
.contact-form-card input::placeholder,.contact-form-card textarea::placeholder{color:#8a98a5!important;opacity:1}
.nbds-v391-contact-list{display:grid;gap:10px;margin:15px 0 18px}
.nbds-v391-contact-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start;padding:13px;border-radius:16px;background:#f7fcf9;border:1px solid #e1efe7}
.nbds-v391-contact-row>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#e6f6ed;color:var(--nbds-v391-green)}
.nbds-v391-contact-row>span svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nbds-v391-contact-row strong{display:block;color:var(--nbds-v391-deep);font-size:13px;margin-bottom:2px}
.nbds-v391-contact-row a,.nbds-v391-contact-row p{font-size:13px!important;color:#5a6c78!important;overflow-wrap:anywhere;margin:0!important}

/* Kicker icons on the other public pages */
.nbds-v372-kicker.nbds-v391-kicker{display:inline-flex!important;align-items:center!important;gap:8px!important}
.nbds-v372-kicker.nbds-v391-kicker svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

@media(max-width:900px){
  .nbds-v391-contact-photo-grid{grid-template-columns:1fr 1fr}
  .nbds-v391-contact-photo-grid figure:last-child{grid-column:1/-1}
}
@media(max-width:620px){
  .nbds-v391-contact-photo-grid{grid-template-columns:1fr}
  .nbds-v391-contact-photo-grid figure:last-child{grid-column:auto}
  .nbds-v391-contact-photo-grid figure img{height:170px}
  .nbds-v391-photo-card h3{font-size:18px}
  .nbds-action-icon-chip{width:24px;height:24px;flex-basis:24px}
}

/* ===== assets/css/public_mobile_cleanup_v392.css ===== */
/* NBDS v392 — mobile public-header access button cleanup.
   Login and Pay & Register remain available on desktop, but the paired
   header buttons are completely removed from phone layouts. The more
   specific compact-layout selector prevents JavaScript compact mode from
   re-enabling them on small screens. */
@media (max-width: 768px) {
  body.nbds-standard-page-body > header.nbds-v371-public-header .nbds-v371-nav-actions,
  body.nbds-standard-page-body > header.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-nav-actions {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    min-width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body.nbds-standard-page-body > header.nbds-v371-public-header .nbds-v371-navbar,
  body.nbds-standard-page-body > header.nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-navbar {
    grid-template-columns: minmax(0, 1fr) max-content !important;
  }
}

/* ===== assets/css/public_final_v398.css ===== */
/* =========================================================
   NBDS v398 — fixed navigation on all devices, desktop menu restore,
   Montserrat typography, pricing icon repair.
   ========================================================= */

/* ---------- Montserrat everywhere on public pages ---------- */
html body.nbds-standard-page-body,
html body.nbds-standard-page-body *:not(svg):not(path){
  font-family:'Montserrat','Segoe UI',Arial,sans-serif!important;
}

/* ---------- Keep the public navigation fixed on every device ----------
   The thin top strip and the main navigation are pinned to the viewport.
   A spacer keeps page content from sliding underneath the fixed header. */
html.nbds-standard-page-root{
  scroll-padding-top:calc(var(--nbds-public-top-strip-height,4px) + var(--nbds-public-menu-height,88px) + 16px)!important;
}
body.nbds-standard-page-body>.top-strip{
  position:fixed!important;
  top:0!important;
  right:0!important;
  left:0!important;
  width:100%!important;
  z-index:10030!important;
}
body.nbds-standard-page-body>header.nbds-v371-public-header{
  position:fixed!important;
  top:var(--nbds-public-top-strip-height,4px)!important;
  right:0!important;
  left:0!important;
  width:100%!important;
  z-index:10020!important;
  transform:none!important;
  background:rgba(255,255,255,.985)!important;
  border-bottom:1px solid #e7eee9!important;
  box-shadow:0 8px 26px rgba(5,48,40,.06)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
}
body.nbds-standard-page-body>.nbds-public-header-spacer{
  display:block!important;
  width:100%!important;
  height:calc(var(--nbds-public-top-strip-height,4px) + var(--nbds-public-menu-height,88px))!important;
  min-height:calc(var(--nbds-public-top-strip-height,4px) + var(--nbds-public-menu-height,88px))!important;
  pointer-events:none!important;
}
html.nbds-public-menu-docked body.nbds-standard-page-body>header.nbds-v371-public-header{
  top:var(--nbds-public-top-strip-height,4px)!important;
}

/* ---------- Desktop/laptop: restore full menu, never hamburger ---------- */
@media (min-width:769px){
  .nbds-v371-public-header .menu-btn,
  .nbds-v371-public-header .nbds-v375-mobile-login{
    display:none!important;
  }
  .nbds-v371-public-header .nbds-v371-navbar{
    width:min(100%,1680px)!important;
    max-width:1680px!important;
    min-height:88px!important;
    height:88px!important;
    margin-inline:auto!important;
    padding:0 clamp(10px,1.5vw,28px)!important;
    display:grid!important;
    grid-template-columns:minmax(150px,235px) minmax(0,1fr) max-content!important;
    align-items:center!important;
    column-gap:clamp(8px,1.25vw,22px)!important;
    overflow:visible!important;
  }
  .nbds-v371-public-header .nbds-v371-brand{
    justify-self:start!important;
    min-width:0!important;
    width:auto!important;
    max-width:235px!important;
    gap:clamp(7px,.8vw,10px)!important;
    overflow:hidden!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-logo{
    width:clamp(40px,3.3vw,54px)!important;
    height:clamp(40px,3.3vw,54px)!important;
    flex:0 0 clamp(40px,3.3vw,54px)!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy strong{
    font-size:clamp(23px,2.2vw,34px)!important;
    line-height:.96!important;
    letter-spacing:-.8px!important;
    font-weight:800!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-brand-copy small{
    display:block!important;
    margin-top:4px!important;
    font-size:clamp(5.4px,.47vw,7.2px)!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:.025em!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v387-brand-desktop{display:inline!important}
  .nbds-v371-public-header .nbds-v387-brand-mobile{display:none!important}

  .nbds-v371-public-header .nbds-v371-nav-links,
  .nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-nav-links{
    position:static!important;
    z-index:auto!important;
    justify-self:center!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:88px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:stretch!important;
    justify-content:center!important;
    gap:clamp(5px,.85vw,15px)!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    white-space:nowrap!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a,
  .nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-nav-links>a,
  .nbds-v371-public-header.nbds-autolayout-compact .nbds-v372-nav-menu>a{
    position:relative!important;
    width:auto!important;
    min-width:0!important;
    height:88px!important;
    min-height:88px!important;
    padding:0 1px!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:0!important;
    font-size:clamp(9.5px,.86vw,13px)!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:0!important;
    flex:0 0 auto!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links>a::after,
  .nbds-v371-public-header .nbds-v372-nav-menu>a::after{
    display:block!important;
    bottom:17px!important;
    height:2px!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-menu,
  .nbds-v371-public-header.nbds-autolayout-compact .nbds-v372-nav-menu{
    position:relative!important;
    display:flex!important;
    align-items:stretch!important;
    width:auto!important;
    height:88px!important;
    flex:0 0 auto!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-dropdown,
  .nbds-v371-public-header.nbds-autolayout-compact .nbds-v372-nav-dropdown{
    position:absolute!important;
    top:70px!important;
    left:50%!important;
    width:220px!important;
    margin:0!important;
    padding:8px!important;
    border:1px solid #dfece5!important;
    border-radius:13px!important;
    background:#fff!important;
    box-shadow:0 18px 44px rgba(4,52,39,.15)!important;
    transform:translate(-50%,8px)!important;
  }
  .nbds-v371-public-header .nbds-v372-nav-dropdown a{
    min-height:0!important;
    height:auto!important;
    padding:10px 11px!important;
    font-size:12px!important;
    font-weight:550!important;
    line-height:1.3!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions,
  .nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-nav-actions{
    justify-self:end!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    display:flex!important;
    visibility:visible!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    white-space:nowrap!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{
    min-height:36px!important;
    height:36px!important;
    padding:0 clamp(7px,.7vw,10px)!important;
    border-radius:8px!important;
    gap:5px!important;
    font-size:clamp(9px,.75vw,11.5px)!important;
    line-height:1!important;
    font-weight:600!important;
  }
  .nbds-v371-public-header .nbds-action-icon-chip{
    width:22px!important;
    height:22px!important;
    flex:0 0 22px!important;
    border-radius:7px!important;
  }
  .nbds-v371-public-header .nbds-v391-action-icon{width:13px!important;height:13px!important}
}

/* More breathing room on regular and wide desktop screens. */
@media (min-width:1181px){
  .nbds-v371-public-header .nbds-v371-navbar{
    grid-template-columns:minmax(225px,275px) minmax(0,1fr) max-content!important;
    column-gap:clamp(14px,1.7vw,30px)!important;
  }
  .nbds-v371-public-header .nbds-v371-nav-links,
  .nbds-v371-public-header.nbds-autolayout-compact .nbds-v371-nav-links{gap:clamp(10px,1.1vw,20px)!important}
  .nbds-v371-public-header .nbds-v371-nav-links>a,
  .nbds-v371-public-header .nbds-v372-nav-menu>a{font-size:clamp(11.5px,.9vw,14px)!important}
  .nbds-v371-public-header .nbds-v371-nav-actions .btn{font-size:11.5px!important;padding-inline:10px!important}
}

/* Mobile keeps the hamburger, but never the removed Login / Pay & Register
   pair in the header. The sticky menu bar remains visible on scroll. */
@media (max-width:768px){
  .nbds-v371-public-header .menu-btn{display:grid!important}
  body.nbds-standard-page-body>header.nbds-v371-public-header{position:fixed!important;top:var(--nbds-public-top-strip-height,4px)!important}
}

/* ---------- Pricing page: ensure every visual marker is a real SVG ---------- */
.nbds-v393-pricing-list{
  list-style:none!important;
  padding-left:0!important;
  margin:22px 0 0!important;
  display:grid!important;
  gap:11px!important;
}
.nbds-v393-pricing-list li{
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr)!important;
  gap:10px!important;
  align-items:start!important;
}
.nbds-v393-pricing-list .nbds-v393-list-icon{
  width:24px!important;
  height:24px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.14)!important;
  color:#fff!important;
}
.nbds-v393-pricing-list .nbds-v393-list-icon svg{width:15px!important;height:15px!important}
.nbds-v393-pricing-process .icon{font-size:0!important}
.nbds-v393-pricing-process .icon svg{
  width:29px!important;
  height:29px!important;
  display:block!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.nbds-v393-pricing-actions .btn{gap:8px!important}
.nbds-v393-pricing-actions .btn>svg{width:18px!important;height:18px!important;flex:0 0 18px!important}

/* =========================================================
   NBDS v394 — restore readable text on bright public-page heroes.
   public_pages_v372 intentionally uses a light hero background, so these
   colours must override the older dark-hero text rules in style.css.
   ========================================================= */
body.nbds-standard-page-body :is(.features-page-hero,.about-page-hero,.contact-hero,.faq-page-hero) h1{
  color:#10213e!important;
  opacity:1!important;
  text-shadow:none!important;
}
body.nbds-standard-page-body :is(.features-page-hero,.about-page-hero,.contact-hero,.faq-page-hero) h1 span{
  color:#07834f!important;
  opacity:1!important;
}
body.nbds-standard-page-body :is(.features-page-hero,.about-page-hero,.contact-hero,.faq-page-hero) p{
  color:#536176!important;
  opacity:1!important;
}
body.nbds-standard-page-body :is(.features-page-hero,.about-page-hero,.contact-hero,.faq-page-hero) .trust-row,
body.nbds-standard-page-body :is(.features-page-hero,.about-page-hero,.contact-hero,.faq-page-hero) .trust-row span{
  color:#35534a!important;
  opacity:1!important;
}
body.nbds-standard-page-body :is(.features-page-hero,.about-page-hero,.contact-hero,.faq-page-hero) .badge{
  color:#07834f!important;
  background:#fff!important;
  border:1px solid #d7ece0!important;
  box-shadow:0 8px 24px rgba(7,91,59,.06)!important;
  opacity:1!important;
}
body.nbds-standard-page-body :is(.features-page-hero,.about-page-hero,.contact-hero,.faq-page-hero) .badge svg{
  color:currentColor!important;
  stroke:currentColor!important;
}
body.nbds-standard-page-body :is(.features-page-hero,.about-page-hero,.contact-hero,.faq-page-hero) .btn-outline{
  background:#fff!important;
  border-color:#bfdccd!important;
  color:#075f41!important;
}
body.nbds-standard-page-body :is(.features-page-hero,.about-page-hero,.contact-hero,.faq-page-hero) .btn-outline:hover,
body.nbds-standard-page-body :is(.features-page-hero,.about-page-hero,.contact-hero,.faq-page-hero) .btn-outline:focus{
  background:#eef9f3!important;
  border-color:#8fc6aa!important;
  color:#064c36!important;
}


/* =========================================================
   NBDS v396 — FAQ icon hardening
   Uses a native Montserrat question-mark glyph rather than depending on
   SVG helper rendering, so the FAQ card cannot display as an empty box.
   ========================================================= */
.nbds-standard-page-body .nbds-v396-faq-icon{
  display:grid!important;
  place-items:center!important;
  color:#087844!important;
  background:linear-gradient(145deg,#e9f8f0,#f8fffb)!important;
  border:1px solid #cfe8db!important;
  overflow:visible!important;
}
.nbds-standard-page-body .nbds-v396-faq-symbol{
  display:grid!important;
  place-items:center!important;
  width:28px!important;
  height:28px!important;
  border:2px solid #087844!important;
  border-radius:50%!important;
  color:#087844!important;
  font-family:'Montserrat','Segoe UI',Arial,sans-serif!important;
  font-size:18px!important;
  line-height:1!important;
  font-weight:800!important;
  opacity:1!important;
  visibility:visible!important;
  text-indent:0!important;
}

/* ===== assets/css/public_seo_v521.css ===== */

/* NBDS v520 public SEO/tutor/learning-guide pages */
.nbds-seo-page{background:#fff;color:#0b1f3a}
.nbds-seo-hero{background:linear-gradient(135deg,#f5fffa 0%,#fff 50%,#edf9f3 100%)}
.nbds-seo-trust-panel{background:#fff;border:1px solid #d9ebe1;border-radius:24px;padding:28px;box-shadow:0 18px 50px rgba(7,62,42,.08);align-self:center}
.nbds-seo-trust-panel>strong{display:block;font-size:1.25rem;color:#073e2a;margin-bottom:14px}
.nbds-seo-trust-panel ul,.nbds-seo-trust-panel ol{margin:0;padding-left:20px;display:grid;gap:10px;color:#44566c;line-height:1.65}
.nbds-seo-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.nbds-seo-link-grid>a,.nbds-seo-link-grid>div{display:flex;flex-direction:column;gap:6px;min-height:120px;padding:20px;border:1px solid #dce9e2;border-radius:18px;background:#fff;text-decoration:none;color:#0b1f3a;box-shadow:0 8px 25px rgba(11,31,58,.045)}
.nbds-seo-link-grid>a:hover{border-color:#14965b;transform:translateY(-2px);box-shadow:0 14px 32px rgba(11,31,58,.08)}
.nbds-seo-link-grid strong{font-size:1.04rem;color:#0b1f3a}.nbds-seo-link-grid span{color:#66758a;line-height:1.5;font-size:.9rem}
.nbds-seo-tutor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.nbds-seo-tutor-card{overflow:hidden;border:1px solid #dce9e2;border-radius:22px;background:#fff;box-shadow:0 12px 34px rgba(11,31,58,.06)}
.nbds-seo-tutor-card>div{padding:18px}.nbds-seo-tutor-card small{display:block;color:#0b8a50;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:7px}.nbds-seo-tutor-card h3{margin:0 0 8px;font-size:1.22rem}.nbds-seo-tutor-card h3 a{color:#0b1f3a;text-decoration:none}.nbds-seo-tutor-card p{color:#66758a;line-height:1.55;margin:0 0 12px}
.nbds-seo-tutor-photo{position:relative;display:block;height:250px;background:#edf7f1;overflow:hidden;text-decoration:none}.nbds-seo-tutor-photo img{width:100%;height:100%;object-fit:cover;display:block}.nbds-seo-tutor-photo>span{display:grid;place-items:center;width:100%;height:100%;font-size:4rem;font-weight:900;color:#0b8a50}.nbds-seo-tutor-photo b{position:absolute;left:14px;bottom:14px;background:#fff;color:#087647;border:1px solid #c9ead8;border-radius:999px;padding:8px 11px;font-size:.77rem;box-shadow:0 7px 20px rgba(0,0,0,.10)}
.nbds-seo-tags{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 14px}.nbds-seo-tags span{padding:7px 9px;border-radius:999px;background:#eff8f3;color:#245642;border:1px solid #d9eee3;font-size:.76rem;font-weight:700}
.nbds-seo-text-link{color:#087647!important;text-decoration:none;font-weight:800}.nbds-seo-text-link:hover{text-decoration:underline}
.nbds-seo-subject-links{margin-top:28px;padding-top:20px;border-top:1px solid #e2ebe6;display:flex;flex-wrap:wrap;gap:9px;align-items:center}.nbds-seo-subject-links strong{margin-right:4px}.nbds-seo-subject-links a{padding:8px 11px;border-radius:999px;background:#f5faf7;color:#0b6f46;text-decoration:none;border:1px solid #dcebe3;font-size:.82rem}
.nbds-seo-empty{padding:38px;border:1px dashed #bcd9c9;border-radius:22px;background:#f8fcfa;text-align:center}.nbds-seo-empty h1,.nbds-seo-empty h3{margin-top:0}.nbds-seo-empty p{color:#66758a;max-width:720px;margin:0 auto 20px;line-height:1.7}
.nbds-seo-guide-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px;border-radius:24px;background:#0a5c3d;color:#fff}.nbds-seo-guide-cta h2{margin:4px 0 8px;color:#fff}.nbds-seo-guide-cta p{margin:0;color:#d9f2e6;max-width:760px}.nbds-seo-guide-cta .eyebrow{color:#a8e5c5}.nbds-seo-guide-cta .btn{background:#fff;color:#0a5c3d;border-color:#fff;white-space:nowrap}
.nbds-seo-profile-hero{padding:58px 0;background:linear-gradient(135deg,#f7fffb,#edf8f2)}.nbds-seo-profile-grid{display:grid;grid-template-columns:minmax(240px,360px) minmax(0,1fr);gap:44px;align-items:center}.nbds-seo-profile-photo{position:relative;aspect-ratio:1;border-radius:30px;overflow:hidden;background:#dff1e8;box-shadow:0 24px 60px rgba(7,62,42,.14)}.nbds-seo-profile-photo img{width:100%;height:100%;object-fit:cover;display:block}.nbds-seo-profile-photo>span{display:grid;place-items:center;width:100%;height:100%;font-size:7rem;color:#0b8a50;font-weight:900}.nbds-seo-profile-photo b{position:absolute;left:18px;bottom:18px;background:#fff;color:#087647;padding:10px 14px;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.12)}.nbds-seo-profile-copy h1{font-size:clamp(2.15rem,4.6vw,4rem);line-height:1.04;margin:14px 0}.nbds-seo-profile-copy h1 span{color:#0a8f53}.nbds-seo-profile-headline{font-size:1.12rem;font-weight:700;color:#44566c}.nbds-seo-profile-copy>p{line-height:1.78;color:#586a80;max-width:850px}
.nbds-seo-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0}.nbds-seo-detail-grid>div{padding:20px;border-radius:18px;border:1px solid #dfe9e4;background:#fff}.nbds-seo-detail-grid dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#0a8f53;font-weight:900;margin-bottom:7px}.nbds-seo-detail-grid dd{margin:0;color:#20354d;line-height:1.55;font-weight:650}
.nbds-seo-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.nbds-seo-guide-grid article{padding:24px;border:1px solid #dfe9e4;border-radius:22px;background:#fff;box-shadow:0 10px 30px rgba(11,31,58,.05)}.nbds-seo-guide-grid small{color:#66758a}.nbds-seo-guide-grid h2{font-size:1.25rem;line-height:1.35}.nbds-seo-guide-grid h2 a{text-decoration:none;color:#0b1f3a}.nbds-seo-guide-grid p{color:#66758a;line-height:1.65}
.nbds-seo-article{padding:58px 0 72px}.nbds-seo-article header{max-width:980px}.nbds-seo-article h1{font-size:clamp(2.2rem,5vw,4.6rem);line-height:1.04;margin:14px 0 20px}.nbds-seo-article-lead{font-size:1.18rem;line-height:1.75;color:#506277}.nbds-seo-article-meta{display:flex;gap:14px;flex-wrap:wrap;color:#6d7c90;font-size:.86rem;margin-top:18px}.nbds-seo-article-body{max-width:900px;padding-top:30px}.nbds-seo-article-body section{padding:22px 0;border-top:1px solid #e2ebe6}.nbds-seo-article-body h2{font-size:1.55rem;margin:0 0 10px}.nbds-seo-article-body p{font-size:1.02rem;line-height:1.85;color:#45576d}.nbds-seo-related{margin-top:34px;padding:26px;border-radius:22px;background:#eff8f3;border:1px solid #d7eadf}.nbds-seo-related h2{margin-top:0}.nbds-seo-related div{display:flex;gap:10px;flex-wrap:wrap}.nbds-seo-related a{padding:10px 13px;background:#fff;border:1px solid #cfe4d8;border-radius:999px;color:#087647;text-decoration:none;font-weight:800;font-size:.86rem}
@media(max-width:980px){.nbds-seo-link-grid,.nbds-seo-tutor-grid,.nbds-seo-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nbds-seo-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nbds-seo-profile-grid{grid-template-columns:290px minmax(0,1fr);gap:28px}}
@media(max-width:700px){.nbds-seo-link-grid,.nbds-seo-tutor-grid,.nbds-seo-guide-grid,.nbds-seo-detail-grid{grid-template-columns:1fr}.nbds-seo-profile-grid{grid-template-columns:1fr}.nbds-seo-profile-photo{max-width:330px;width:100%;margin:0 auto}.nbds-seo-profile-copy{text-align:left}.nbds-seo-guide-cta{align-items:flex-start;flex-direction:column}.nbds-seo-tutor-photo{height:230px}.nbds-seo-trust-panel{padding:22px}.nbds-seo-article{padding-top:36px}}


/* NBDS v521: fully clickable tutor cards, complete public profiles, fast clean-route rendering */
.nbds-seo-tutor-card[data-tutor-href]{cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.nbds-seo-tutor-card[data-tutor-href]:hover,.nbds-seo-tutor-card[data-tutor-href]:focus-visible{transform:translateY(-3px);border-color:#14965b;box-shadow:0 18px 42px rgba(11,31,58,.10);outline:none}
.nbds-seo-page .nbds-v372-section{content-visibility:auto;contain-intrinsic-size:1px 620px}
.nbds-seo-video-section{background:linear-gradient(180deg,#fff,#f5fbf8)}
.nbds-seo-public-video{max-width:980px;margin:0 auto;border:1px solid #dbe8e1;border-radius:24px;background:#071a12;padding:12px;box-shadow:0 20px 54px rgba(5,47,31,.14);overflow:hidden}
.nbds-seo-public-video .nbds-upload-intro-video{position:relative;width:100%;aspect-ratio:16/9;min-height:280px;border-radius:16px;overflow:hidden;background:#000}
.nbds-seo-public-video .nbds-upload-intro-video video{display:block;width:100%;height:100%;object-fit:contain;background:#000}
.nbds-seo-public-embed{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:16px;background:#000}
.nbds-seo-public-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:700px){.nbds-seo-public-video{padding:6px;border-radius:18px}.nbds-seo-public-video .nbds-upload-intro-video{min-height:210px;border-radius:13px}.nbds-seo-page .nbds-v372-section{contain-intrinsic-size:1px 760px}}

/* v522 public tutor video: direct web-server media + clear buffering/error states */
.nbds-upload-intro-video .nbds-upload-video-buffer-state{position:absolute;left:50%;top:50%;z-index:25;transform:translate(-50%,-50%);display:none;max-width:min(84%,420px);padding:10px 14px;border-radius:999px;background:rgba(0,0,0,.78);color:#fff;font-weight:800;font-size:.86rem;line-height:1.25;text-align:center;pointer-events:none}
.nbds-upload-intro-video .nbds-upload-video-buffer-state.is-visible{display:block}
.nbds-upload-intro-video .nbds-upload-video-buffer-state.is-error{border-radius:14px;background:rgba(92,18,18,.94)}
.nbds-upload-intro-video .nbds-upload-video-direct-link{position:absolute;left:50%;top:calc(50% + 62px);z-index:26;transform:translateX(-50%);padding:9px 13px;border-radius:999px;background:#fff;color:#075b3a!important;font-weight:900;text-decoration:none;box-shadow:0 5px 18px rgba(0,0,0,.25)}
.nbds-upload-intro-video .nbds-upload-video-direct-link[hidden]{display:none!important}

/* v524 tutor directory rating stars */
.nbds-seo-tags .nbds-seo-rating-stars{display:inline-flex;align-items:center;gap:2px;padding:6px 9px;background:#fff9df;border-color:#f5df7c;line-height:1}
.nbds-seo-rating-stars b{font-size:1rem;line-height:1;font-weight:900}
.nbds-seo-rating-stars .is-filled{color:#f4b400;text-shadow:0 1px 0 rgba(126,89,0,.08)}
.nbds-seo-rating-stars .is-empty{color:#e6e8ec}

/* v525 homepage Student + Teacher referral programme */
.nbds-home-referral{position:relative;overflow:hidden;background:linear-gradient(135deg,#f5fbf7 0%,#fff 52%,#eef9f2 100%)}
.nbds-home-referral:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-180px;top:-190px;background:radial-gradient(circle,rgba(7,134,77,.13),rgba(7,134,77,0) 68%);pointer-events:none}
.nbds-home-referral-shell{position:relative;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(340px,.94fr);gap:clamp(28px,5vw,68px);align-items:center;padding:clamp(28px,5vw,60px);border:1px solid #d6eadf;border-radius:30px;background:rgba(255,255,255,.9);box-shadow:0 24px 70px rgba(8,74,47,.08)}
.nbds-home-referral-copy h2{max-width:800px;margin:12px 0 14px;color:#102d22;font-size:clamp(2rem,4.4vw,4rem);line-height:1.04;letter-spacing:-.045em}.nbds-home-referral-copy h2 span{color:#07864d}.nbds-home-referral-copy>p{max-width:760px;color:#64786d;font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.75}
.nbds-home-referral-example{display:grid;gap:4px;width:min(560px,100%);margin:22px 0;padding:18px 20px;border-radius:18px;background:linear-gradient(135deg,#075b3f,#07864d);color:#fff;box-shadow:0 14px 34px rgba(7,91,63,.2)}.nbds-home-referral-example span{font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.09em;color:#c9f6df}.nbds-home-referral-example strong{font-size:clamp(1.2rem,2.2vw,1.65rem);line-height:1.25}.nbds-home-referral-example small{color:rgba(255,255,255,.82);line-height:1.5}
.nbds-home-referral-steps{display:grid;gap:12px}.nbds-home-referral-steps article{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:start;padding:16px;border:1px solid #d8ebe0;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(8,63,43,.045)}.nbds-home-referral-steps article>b{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#e4f7ec;color:#07864d;font-size:1.08rem}.nbds-home-referral-steps strong{display:block;color:#14382a;font-size:1rem;margin:2px 0 4px}.nbds-home-referral-steps p{margin:0;color:#6a7f73;font-size:.89rem;line-height:1.55}
.nbds-referral-welcome-dialog{width:min(720px,100%)}.nbds-referral-welcome-dialog h2 strong{color:#07864d}.nbds-referral-welcome-percent{display:grid;place-items:center;width:112px;height:112px;margin:4px auto 15px;border-radius:50%;background:linear-gradient(145deg,#07864d,#055a3d);color:#fff;font-size:2.2rem;font-weight:950;letter-spacing:-.04em;box-shadow:0 16px 36px rgba(7,134,77,.25);border:7px solid #dff4e8}.nbds-referral-welcome-example{width:min(520px,100%);margin:16px auto 0;padding:12px 15px;border-radius:14px;background:#eaf8f0;color:#245f45;font-size:.9rem;line-height:1.5}.nbds-referral-welcome-example b{color:#07864d}
@media(max-width:900px){.nbds-home-referral-shell{grid-template-columns:1fr}.nbds-home-referral-steps{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.nbds-home-referral-shell{padding:22px 16px;border-radius:22px}.nbds-home-referral-steps{grid-template-columns:1fr}.nbds-home-referral-copy .hero-actions{display:grid}.nbds-home-referral-copy .hero-actions .btn{width:100%}.nbds-referral-welcome-percent{width:94px;height:94px;font-size:1.9rem}.nbds-referral-welcome-dialog h2{font-size:clamp(1.8rem,8vw,2.55rem)}}

/* All portal users: keep dashboard/page heroes green with no founder/person photo. */
.student-cover::before,.student-page-hero::before{
  background:none!important;
  opacity:0!important;
  mix-blend-mode:normal!important;
}


/* NBDS dashboard safety override: no photographic/human imagery in dashboard hero panels. */
.dashboard-hero,
.student-cover.student-page-hero.dashboard-hero,
.teacher-dashboard-body .dashboard-hero,
.parent-dashboard-body .dashboard-hero,
.admin-oriented-body .dashboard-hero {
  background: linear-gradient(135deg,#075c2c 0%,#087f3f 55%,#0d8d47 100%) !important;
  background-image: linear-gradient(135deg,#075c2c 0%,#087f3f 55%,#0d8d47 100%) !important;
}
.dashboard-hero::before,
.student-cover.student-page-hero.dashboard-hero::before,
.teacher-dashboard-body .dashboard-hero::before,
.parent-dashboard-body .dashboard-hero::before,
.admin-oriented-body .dashboard-hero::before {
  content:"" !important;
  background:none !important;
  background-image:none !important;
  opacity:0 !important;
  filter:none !important;
}
.dashboard-hero::after,
.student-cover.student-page-hero.dashboard-hero::after {
  content:"" !important;
  background:radial-gradient(circle at 84% 18%,rgba(255,255,255,.16),transparent 25%) !important;
  background-image:radial-gradient(circle at 84% 18%,rgba(255,255,255,.16),transparent 25%) !important;
  opacity:1 !important;
}
.dashboard-hero img,
.dashboard-hero picture,
.dashboard-hero video,
.dashboard-hero canvas {
  display:none !important;
  visibility:hidden !important;
}

/* v537: authentication/registration pages must not render photographic human backgrounds. */
.auth-wrap,
.unified-signup-wrap,
.nbds-v372-login-page{
  background-image:none!important;
}
.auth-wrap::before,.auth-wrap::after,
.unified-signup-wrap::before,.unified-signup-wrap::after{
  background-image:none!important;
}
