
/*
 * YENTUMI Gradebook — Public Experience 2026.08.27.020
 * Complete product landing, guided school onboarding and self-contained
 * Parent & Learner Portal. Does not depend on Bootstrap or icon fonts.
 */

body.landing-body,
body.result-portal-body{
  --public-bg:#f4f8fd;
  --public-surface:#ffffff;
  --public-surface-soft:#f7faff;
  --public-line:#dce6f2;
  --public-text:#10213b;
  --public-muted:#687b93;
  --public-blue:#1f63e9;
  --public-blue-dark:#124bb8;
  --public-blue-soft:#edf5ff;
  --public-green:#07965d;
  --public-shadow:0 20px 55px rgba(27,62,101,.10);
  color:#10213b;
}

/* ---------------- landing page ---------------- */
body.landing-body{
  background:
    radial-gradient(circle at 76% 7%,rgba(58,138,255,.12),transparent 28rem),
    linear-gradient(180deg,#fff 0,#f5f9ff 48%,#fff 100%);
}
body.landing-body .landing-brand small{white-space:nowrap}
body.landing-body .landing-hero{
  align-items:center;
}
body.landing-body .landing-hero .hero-copy h1{
  max-width:760px;
  letter-spacing:-.045em;
  line-height:.98;
}
body.landing-body .landing-hero .hero-copy h1 em{
  display:block;
  color:var(--public-blue);
  font-style:normal;
}
body.landing-body .landing-hero .hero-copy>p{
  max-width:760px;
  line-height:1.65;
}
body.landing-body .hero-points{
  max-width:760px;
}
body.landing-body .hero-points span{
  background:rgba(255,255,255,.78);
  border-color:#d7e5f5;
}
.landing-capabilities{
  width:min(1180px,calc(100% - 40px));
  margin:40px auto 84px;
}
.capabilities-heading{
  max-width:760px;
  margin:0 auto 30px;
  text-align:center;
}
.capabilities-heading>span{
  display:block;
  color:var(--public-blue);
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.capabilities-heading h2{
  margin:8px 0 10px;
  font-size:clamp(30px,4vw,48px);
  line-height:1.04;
  letter-spacing:-.035em;
}
.capabilities-heading p{margin:0;color:var(--public-muted);line-height:1.7}
.capabilities-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.capabilities-grid article{
  min-height:210px;
  padding:24px;
  border:1px solid var(--public-line);
  border-radius:22px;
  background:rgba(255,255,255,.88);
  box-shadow:0 12px 32px rgba(30,66,110,.06);
}
.capabilities-grid article>span{
  width:38px;height:38px;display:grid;place-items:center;
  border-radius:11px;
  background:var(--public-blue-soft);
  color:var(--public-blue);
  font-size:11px;font-weight:900;
}
.capabilities-grid h3{margin:18px 0 8px;font-size:19px}
.capabilities-grid p{margin:0;color:var(--public-muted);line-height:1.6;font-size:14px}

/* ---------------- guided school registration ---------------- */
body.landing-body dialog.registration-modal{
  color-scheme:light;
  width:min(1020px,calc(100vw - 32px))!important;
  max-width:1020px!important;
  max-height:min(94dvh,860px)!important;
  padding:0!important;
  margin:auto!important;
  border:1px solid #d7e2ef!important;
  border-radius:24px!important;
  overflow:hidden!important;
  background:#fff!important;
  color:var(--public-text)!important;
  box-shadow:0 34px 100px rgba(7,30,58,.34)!important;
}
body.landing-body dialog.registration-modal[open]{display:flex!important;flex-direction:column!important}
body.landing-body dialog.registration-modal::backdrop{
  background:rgba(8,26,48,.58)!important;
  backdrop-filter:blur(5px);
}
body.landing-body .registration-modal .modal-heading{
  position:relative;
  z-index:6;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 44px;
  gap:18px;
  align-items:start;
  padding:20px 26px 18px!important;
  background:linear-gradient(135deg,#f7fbff,#eef5ff)!important;
  color:var(--public-text)!important;
  border-bottom:1px solid var(--public-line)!important;
}
body.landing-body .registration-modal .modal-heading span{
  color:var(--public-blue)!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.14em!important;
  text-transform:uppercase;
}
body.landing-body .registration-modal .modal-heading h2{
  margin:4px 0 6px!important;
  color:var(--public-text)!important;
  font-size:clamp(23px,2.1vw,29px)!important;
  line-height:1.12!important;
  letter-spacing:-.03em;
}
body.landing-body .registration-modal .modal-heading p{
  max-width:720px;
  margin:0!important;
  color:var(--public-muted)!important;
  font-size:14px!important;
  line-height:1.5!important;
}
body.landing-body .registration-modal [data-close-registration]{
  width:42px!important;height:42px!important;min-height:42px!important;
  padding:0!important;border-radius:12px!important;
  border:1px solid #cbd9e8!important;background:#fff!important;color:#30445f!important;
  font-size:22px!important;line-height:1!important
}
body.landing-body .registration-modal [data-close-registration]:focus-visible{
  outline:3px solid rgba(31,99,233,.18)!important;outline-offset:2px!important
}
body.landing-body .registration-modal form{
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto auto;
  height:min(640px,calc(94dvh - 124px));
  min-height:0;
  overflow:hidden!important;
  padding:0!important;
  background:#fff!important;
}
.registration-progress{
  position:relative;
  z-index:5;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  padding:13px 26px 12px;
  background:#fff;
  border-bottom:1px solid #edf2f7;
}
.registration-progress button{
  min-width:0;
  min-height:44px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:8px 10px!important;
  border:1px solid transparent!important;
  border-radius:11px!important;
  background:#f4f7fb!important;color:#697d94!important;
  font-size:11px!important;font-weight:850!important;
  line-height:1.15!important;
  cursor:pointer;
  overflow:hidden;
}
.registration-progress-index{
  display:grid;place-items:center;flex:0 0 auto;
  width:23px;height:23px;border-radius:999px;
  background:#e8eef6;color:#5a6e87;font-size:10px;font-weight:900
}
.registration-progress-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.registration-progress-short{display:none}
.registration-progress button.active{
  background:var(--public-blue-soft)!important;
  color:var(--public-blue-dark)!important;
  border-color:#d6e5ff!important;
}
.registration-progress button.active .registration-progress-index{
  background:var(--public-blue)!important;color:#fff!important
}
.registration-progress button.complete{
  color:#36516c!important;background:#f5faf8!important;border-color:#dcefe7!important
}
.registration-progress button.complete .registration-progress-index{
  font-size:0;background:#e4f6ed;color:var(--public-green)
}
.registration-progress button.complete .registration-progress-index::before{content:"✓";font-size:11px;font-weight:950}
.registration-step{
  display:none;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding:20px 26px 26px;
}
.registration-step.active{display:block}
.registration-step-head{margin-bottom:17px}
.registration-step-head span{
  display:block;color:var(--public-blue);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase
}
.registration-step-head h3{margin:5px 0 5px;font-size:21px;line-height:1.2;color:var(--public-text)}
.registration-step-head p{margin:0;max-width:720px;color:var(--public-muted);font-size:13px;line-height:1.5}
body.landing-body .registration-modal .registration-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-items:start!important;
  gap:16px!important;
  padding:0!important;
}
body.landing-body .registration-modal label{
  min-width:0;
  display:grid!important;
  align-content:start!important;
  gap:7px!important;
  margin:0!important;
  color:#32455f!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.25!important;
}
body.landing-body .registration-modal label.full{grid-column:1/-1}
body.landing-body .registration-modal :is(input,select,textarea){
  width:100%!important;
  min-width:0!important;
  min-height:50px!important;
  padding:11px 13px!important;
  border:1px solid #cbd8e7!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#14243c!important;
  font:600 14px/1.3 inherit!important;
  box-shadow:none!important;
}
body.landing-body .registration-modal select{padding-right:36px!important;text-overflow:ellipsis}
body.landing-body .registration-modal textarea{min-height:104px!important;resize:vertical}
body.landing-body .registration-modal :is(input,select,textarea)::placeholder{color:#93a1b2!important}
body.landing-body .registration-modal :is(input,select,textarea):focus{
  outline:3px solid rgba(31,99,233,.14)!important;
  border-color:var(--public-blue)!important
}
body.landing-body .registration-modal :is(input,select,textarea):invalid:not(:placeholder-shown){box-shadow:none!important}
/* Existing subscription cards/plan chooser remain usable inside Step 2. */
body.landing-body .registration-modal :is(.registration-plan-grid,.subscription-plan-grid,.plan-options,.plan-grid,.subscription-options){
  grid-column:1/-1;
  width:100%!important;
  min-width:0!important;
}
.registration-actions{
  position:relative;
  z-index:6;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  padding:12px 26px;
  border-top:1px solid var(--public-line);
  background:#fff;
  box-shadow:0 -10px 26px rgba(28,57,92,.05);
}
.registration-actions .registration-back{margin-right:auto}
.registration-actions button{
  min-height:48px!important;
  min-width:118px;
  padding:0 18px!important;
  border-radius:11px!important;
  font-weight:850!important;
  white-space:nowrap;
}
.registration-actions button[hidden]{display:none!important}
.registration-actions .registration-next,
.registration-actions .registration-final{
  background:var(--public-blue)!important;color:#fff!important;border:1px solid var(--public-blue)!important;
}
.registration-actions .registration-back{
  background:#f3f6fa!important;color:#334861!important;border:1px solid #dce5ef!important;
}
body.landing-body .registration-modal .modal-submit{display:none!important}
body.landing-body .registration-modal .modal-privacy{
  display:block!important;
  margin:0!important;
  padding:0 26px 12px!important;
  background:#fff!important;
  color:#7a8ba0!important;
  text-align:center!important;
  font-size:10px!important;
  line-height:1.35!important;
}

@media(max-height:760px) and (min-width:701px){
  body.landing-body .registration-modal .modal-heading{padding:15px 22px 13px!important}
  body.landing-body .registration-modal .modal-heading h2{font-size:23px!important}
  body.landing-body .registration-modal .modal-heading p{font-size:12px!important}
  body.landing-body .registration-modal form{height:calc(94dvh - 102px)}
  .registration-progress{padding:9px 22px}
  .registration-progress button{min-height:38px!important}
  .registration-step{padding:15px 22px 18px}
  .registration-step-head{margin-bottom:12px}
  body.landing-body .registration-modal :is(input,select,textarea){min-height:44px!important}
  .registration-actions{padding:9px 22px}
  .registration-actions button{min-height:44px!important}
  body.landing-body .registration-modal .modal-privacy{padding:0 22px 8px!important}
}

@media(max-width:820px) and (min-width:701px){
  body.landing-body dialog.registration-modal{width:calc(100vw - 24px)!important}
  body.landing-body .registration-modal .modal-heading{padding-inline:20px!important}
  .registration-progress{padding-inline:20px}
  .registration-step{padding-inline:20px}
  body.landing-body .registration-modal .registration-grid{gap:14px!important}
  .registration-actions{padding-inline:20px}
  body.landing-body .registration-modal .modal-privacy{padding-inline:20px!important}
}

@media(max-width:700px){
  body.landing-body dialog.registration-modal{
    width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;
    margin:0!important;border:0!important;border-radius:0!important
  }
  body.landing-body .registration-modal .modal-heading{
    grid-template-columns:minmax(0,1fr) 42px;
    padding:max(14px,env(safe-area-inset-top)) 16px 13px!important;
    gap:10px!important
  }
  body.landing-body .registration-modal .modal-heading span{font-size:9px!important}
  body.landing-body .registration-modal .modal-heading h2{font-size:21px!important;margin-top:3px!important}
  body.landing-body .registration-modal .modal-heading p{font-size:12px!important;line-height:1.4!important}
  body.landing-body .registration-modal [data-close-registration]{width:40px!important;height:40px!important;min-height:40px!important}
  body.landing-body .registration-modal form{height:auto;min-height:0;flex:1 1 auto;max-height:none;grid-template-rows:auto minmax(0,1fr) auto auto}
  .registration-progress{gap:6px;padding:9px 10px}
  .registration-progress button{min-height:42px!important;gap:5px!important;padding:6px 5px!important}
  .registration-progress-index{width:21px;height:21px}
  .registration-progress-title{display:none}
  .registration-progress-short{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
  .registration-step{padding:16px 14px 20px;scrollbar-gutter:auto}
  .registration-step-head{margin-bottom:14px}
  .registration-step-head h3{font-size:20px}
  .registration-step-head p{font-size:12px}
  body.landing-body .registration-modal .registration-grid{grid-template-columns:1fr!important;gap:13px!important}
  body.landing-body .registration-modal label.full{grid-column:auto}
  body.landing-body .registration-modal :is(input,select,textarea){min-height:49px!important;font-size:16px!important}
  body.landing-body .registration-modal textarea{min-height:110px!important}
  .registration-actions{padding:10px 12px}
  .registration-actions button{min-width:0;min-height:46px!important;padding-inline:14px!important}
  .registration-actions .registration-back{flex:0 0 auto}
  .registration-actions .registration-next,.registration-actions .registration-final{flex:1}
  body.landing-body .registration-modal .modal-privacy{padding:0 14px calc(9px + env(safe-area-inset-bottom))!important}
}

@media(max-width:380px){
  body.landing-body .registration-modal .modal-heading p{display:none}
  .registration-progress{padding-inline:8px}
  .registration-progress-short{font-size:9px}
  .registration-actions{gap:8px;padding-inline:10px}
  .registration-actions button{font-size:12px!important;padding-inline:10px!important}
}

/* ---------------- Parent & Learner Portal ---------------- */
body.result-portal-body{
  min-height:100dvh;
  margin:0!important;
  background:
    radial-gradient(circle at 82% 8%,rgba(31,99,233,.12),transparent 28rem),
    linear-gradient(180deg,#f5f9ff,#eef5fb 55%,#f8fbff)!important;
  color:var(--public-text)!important;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
}
body.result-portal-body>.app-header,
body.result-portal-body .public-shell>.page-head,
body.result-portal-body>.site-footer,
body.result-portal-body .public-shell+.site-footer{
  display:none!important;
}
body.result-portal-body main.public-shell{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
}
body.result-portal-body .premium-portal{
  box-sizing:border-box;
}
body.result-portal-body .premium-portal.search-view{
  width:min(100%,1080px)!important;
  min-height:100dvh;
  margin:0 auto!important;
  padding:28px 28px 36px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:0!important;
}
body.result-portal-body .portal-brand{
  min-height:64px;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  padding:0 0 22px!important;
  border-bottom:1px solid #dbe6f2!important;
  background:transparent!important;
}
.portal-brand-main{display:flex;align-items:center;gap:12px;min-width:0}
body.result-portal-body .portal-logo-placeholder.brand-mark{
  width:46px!important;height:46px!important;min-width:46px!important;
  display:grid!important;place-items:center!important;
  border-radius:13px!important;
  background:linear-gradient(145deg,#195bd4,#2c74f3)!important;
  color:#fff!important;font-size:13px!important;font-weight:950!important;
  overflow:hidden!important;
}
body.result-portal-body .portal-logo-placeholder.brand-mark img{
  width:100%!important;height:100%!important;object-fit:contain!important;background:#fff!important;padding:5px!important
}
body.result-portal-body .portal-product{display:grid!important;gap:1px!important}
body.result-portal-body .portal-product>img{display:none!important}
body.result-portal-body .portal-product b{
  color:var(--public-text)!important;font-size:18px!important;line-height:1.1!important
}
body.result-portal-body .portal-product span{
  color:var(--public-muted)!important;font-size:11px!important
}
.portal-home-link{
  min-height:42px;display:flex;align-items:center;
  padding:0 14px;border:1px solid var(--public-line);border-radius:11px;
  background:#fff;color:#31506f!important;text-decoration:none!important;font-size:12px;font-weight:800
}
.portal-home-link:hover{border-color:#a8c3e3;background:#f8fbff}
body.result-portal-body .portal-welcome{
  max-width:760px!important;
  margin:54px auto 26px!important;
  padding:0!important;
  text-align:center!important;
  background:transparent!important;
}
body.result-portal-body .secure-pill{
  display:inline-flex!important;align-items:center!important;gap:7px!important;
  margin-bottom:14px!important;padding:7px 11px!important;
  border:1px solid #cfe0f5!important;border-radius:999px!important;
  background:#f8fbff!important;color:#24588e!important;
  font-size:11px!important;font-weight:850!important
}
body.result-portal-body .secure-pill i{display:none!important}
body.result-portal-body .portal-welcome h1{
  margin:0!important;
  color:var(--public-text)!important;
  font-size:clamp(32px,5vw,52px)!important;
  line-height:1.04!important;
  letter-spacing:-.04em!important
}
body.result-portal-body .portal-welcome p{
  max-width:650px!important;margin:14px auto 0!important;
  color:var(--public-muted)!important;
  font-size:15px!important;line-height:1.7!important
}
body.result-portal-body .portal-search-card{
  width:min(100%,720px)!important;
  margin:0 auto!important;
  padding:26px!important;
  border:1px solid var(--public-line)!important;
  border-radius:24px!important;
  background:#fff!important;
  box-shadow:var(--public-shadow)!important;
}
body.result-portal-body .form-heading{
  display:block!important;margin-bottom:10px!important
}
body.result-portal-body .form-heading>i{display:none!important}
body.result-portal-body .form-heading h2{
  margin:0!important;color:var(--public-text)!important;
  font-size:22px!important;letter-spacing:-.025em!important
}
body.result-portal-body .form-heading p{
  margin:6px 0 0!important;color:var(--public-muted)!important;line-height:1.55!important;font-size:13px!important
}
body.result-portal-body .portal-login-tabs{
  display:grid!important;grid-template-columns:1fr 1fr!important;
  gap:8px!important;margin:20px 0 18px!important;
  padding:5px!important;border-radius:14px!important;background:#f1f5fa!important
}
body.result-portal-body .portal-login-tab{
  width:100%!important;min-height:46px!important;margin:0!important;padding:9px 12px!important;
  border:0!important;border-radius:10px!important;background:transparent!important;
  color:#536b84!important;font:800 13px/1.2 inherit!important;box-shadow:none!important
}
body.result-portal-body .portal-login-tab.active{
  background:#fff!important;color:var(--public-blue-dark)!important;
  box-shadow:0 4px 12px rgba(29,60,98,.10)!important
}
body.result-portal-body .portal-login-panels{display:block!important}
body.result-portal-body .portal-login-panel{display:none!important;gap:16px!important}
body.result-portal-body .portal-login-panel.active{display:grid!important}
body.result-portal-body .portal-login-panel label{
  display:grid!important;gap:7px!important;
  color:#31455f!important;font-size:12px!important;font-weight:850!important
}
body.result-portal-body .input-with-icon{
  position:relative!important;
  display:block!important;
}
body.result-portal-body .input-with-icon>i{display:none!important}
body.result-portal-body .portal-login-panel input{
  width:100%!important;min-height:50px!important;
  padding:12px 13px!important;
  border:1px solid #cbd8e7!important;border-radius:12px!important;
  background:#fff!important;color:#13233b!important;
  font:650 16px/1.3 inherit!important;
  box-shadow:none!important
}
body.result-portal-body .portal-login-panel input:focus{
  outline:3px solid rgba(31,99,233,.14)!important;border-color:var(--public-blue)!important
}
body.result-portal-body .find-learner-button{
  width:100%!important;min-height:50px!important;
  margin-top:2px!important;padding:0 18px!important;
  border:1px solid var(--public-blue)!important;border-radius:12px!important;
  background:var(--public-blue)!important;color:#fff!important;
  font:850 14px/1 inherit!important;box-shadow:0 10px 24px rgba(31,99,233,.18)!important
}
body.result-portal-body .find-learner-button i{display:none!important}
body.result-portal-body .privacy-note{
  margin:0!important;padding:12px 13px!important;
  border:1px solid #e3eaf3!important;border-radius:11px!important;
  background:#f8fafc!important;color:#657991!important;
  font-size:11px!important;line-height:1.5!important
}
body.result-portal-body .privacy-note i{display:none!important}
body.result-portal-body .portal-footer{
  margin:auto auto 0!important;padding:30px 0 0!important;
  text-align:center!important;color:#7b8da2!important
}
body.result-portal-body .portal-footer small{font-size:10px!important;line-height:1.6!important}

/* Verified family view remains within the same coherent shell. */
body.result-portal-body .premium-portal.verified-view{
  width:min(100%,1100px)!important;margin:0 auto!important;padding:26px!important
}

/* ---------------- responsive public experience ---------------- */
@media(max-width:900px){
  .capabilities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  body.landing-body .landing-brand small{display:none}
  body.landing-body .landing-hero .hero-copy h1{font-size:clamp(40px,13vw,62px)}
  .landing-capabilities{width:calc(100% - 24px);margin:24px auto 56px}
  .capabilities-grid{grid-template-columns:1fr}
  .capabilities-grid article{min-height:auto;padding:20px}
  body.landing-body dialog.registration-modal{
    width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;
    margin:0!important;border:0!important;border-radius:0!important
  }
  body.landing-body .registration-modal .modal-heading{padding:16px 16px 14px!important}
  body.landing-body .registration-modal .modal-heading h2{font-size:22px!important}
  body.landing-body .registration-modal form{max-height:calc(100dvh - 105px)}
  .registration-progress{padding:10px 12px}.registration-progress button{font-size:9px!important;padding-inline:5px!important}
  .registration-step{padding:18px 14px 8px}
  body.landing-body .registration-modal .registration-grid{grid-template-columns:1fr!important;gap:13px!important}
  body.landing-body .registration-modal label.full{grid-column:auto}
  .registration-actions{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
  .registration-actions button{flex:1;min-width:0;padding-inline:10px!important}
  body.landing-body .registration-modal .modal-privacy{padding:0 14px 14px!important}

  body.result-portal-body .premium-portal.search-view{
    width:100%!important;padding:14px 14px calc(24px + env(safe-area-inset-bottom))!important
  }
  body.result-portal-body .portal-brand{
    min-height:58px;padding-bottom:14px!important
  }
  body.result-portal-body .portal-logo-placeholder.brand-mark{
    width:42px!important;height:42px!important;min-width:42px!important
  }
  body.result-portal-body .portal-product b{font-size:16px!important}
  .portal-home-link{padding:0 10px;font-size:10px}
  body.result-portal-body .portal-welcome{
    margin:34px auto 20px!important;text-align:left!important
  }
  body.result-portal-body .portal-welcome h1{font-size:clamp(32px,10vw,44px)!important}
  body.result-portal-body .portal-welcome p{margin:12px 0 0!important;font-size:14px!important}
  body.result-portal-body .portal-search-card{
    padding:18px!important;border-radius:20px!important
  }
  body.result-portal-body .portal-login-tabs{grid-template-columns:1fr!important}
  body.result-portal-body .portal-login-tab{min-height:44px!important}
}
@media(max-width:380px){
  .portal-home-link{font-size:0;width:42px;padding:0;justify-content:center}
  .portal-home-link::before{content:"⌂";font-size:18px}
}


/* Release 2026.08.27.021 — Parent & Learner Portal clean auth shell */
body.result-portal-body .portal-home-link{display:none!important}
body.result-portal-body{
  background:
    radial-gradient(circle at 18% 0%,rgba(31,99,233,.07),transparent 32rem),
    #f4f8fd!important;
}
body.result-portal-body .premium-portal.search-view{
  width:min(100%,760px)!important;
  min-height:100dvh!important;
  margin:0 auto!important;
  padding:54px 24px 34px!important;
  display:block!important;
}
body.result-portal-body .portal-brand{
  width:min(100%,500px)!important;
  min-height:auto!important;
  margin:0 auto 26px!important;
  padding:0!important;
  border:0!important;
  justify-content:flex-start!important;
}
body.result-portal-body .portal-brand-main{
  width:100%!important;
  justify-content:center!important;
  gap:10px!important;
}
body.result-portal-body .portal-logo-placeholder.brand-mark{
  width:44px!important;height:44px!important;min-width:44px!important;border-radius:12px!important
}
body.result-portal-body .portal-product{text-align:left!important}
body.result-portal-body .portal-product b{font-size:17px!important;color:#10213b!important}
body.result-portal-body .portal-product span{font-size:10px!important;color:#687b93!important}
body.result-portal-body .portal-welcome{
  width:min(100%,500px)!important;
  margin:0 auto 18px!important;
  padding:0!important;
  text-align:left!important;
}
body.result-portal-body .portal-eyebrow{
  display:block!important;
  margin-bottom:7px!important;
  color:#135fd8!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.15em!important;
}
body.result-portal-body .portal-welcome h1{
  margin:0!important;color:#10213b!important;font-size:31px!important;line-height:1.1!important;letter-spacing:-.035em!important
}
body.result-portal-body .portal-welcome p{
  margin:8px 0 0!important;max-width:none!important;color:#687b93!important;font-size:13px!important;line-height:1.55!important
}
body.result-portal-body .secure-pill{display:none!important}
body.result-portal-body .portal-search-card{
  width:min(100%,500px)!important;
  margin:0 auto!important;
  padding:28px!important;
  border:1px solid #dce6f2!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:0 20px 55px rgba(27,62,101,.10)!important;
}
body.result-portal-body .form-heading{margin-bottom:16px!important}
body.result-portal-body .form-heading h2{font-size:21px!important;color:#10213b!important}
body.result-portal-body .form-heading p{margin-top:5px!important;font-size:12px!important;color:#687b93!important}
body.result-portal-body .portal-login-tabs{
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;
  margin:0 0 20px!important;padding:4px!important;background:#f2f6fb!important;border-radius:12px!important
}
body.result-portal-body .portal-login-tab{
  min-height:44px!important;padding:8px 10px!important;border-radius:9px!important;font-size:12px!important
}
body.result-portal-body .portal-login-tab.active{
  background:#fff!important;color:#124bb8!important;border:0!important;box-shadow:0 4px 12px rgba(29,60,98,.10)!important
}
body.result-portal-body .portal-login-panel{gap:15px!important}
body.result-portal-body .portal-login-panel label{gap:6px!important;font-size:12px!important}
body.result-portal-body .portal-login-panel input{min-height:48px!important;border-radius:11px!important;font-size:16px!important}
body.result-portal-body .find-learner-button{min-height:48px!important;border-radius:11px!important;font-size:13px!important}
body.result-portal-body .privacy-note{padding:10px 11px!important;border:0!important;background:#f6f8fb!important;font-size:10px!important}
body.result-portal-body .portal-footer{
  width:min(100%,500px)!important;margin:26px auto 0!important;padding:0!important;color:#7b8da2!important
}
body.result-portal-body .portal-footer small{font-size:9px!important}

html[data-theme="dark"] body.result-portal-body{
  background:
    radial-gradient(circle at 18% 0%,rgba(79,140,255,.10),transparent 32rem),
    #081321!important;color:#edf4fb!important
}
html[data-theme="dark"] body.result-portal-body .portal-product b,
html[data-theme="dark"] body.result-portal-body .portal-welcome h1,
html[data-theme="dark"] body.result-portal-body .form-heading h2{color:#edf4fb!important}
html[data-theme="dark"] body.result-portal-body .portal-product span,
html[data-theme="dark"] body.result-portal-body .portal-welcome p,
html[data-theme="dark"] body.result-portal-body .form-heading p,
html[data-theme="dark"] body.result-portal-body .portal-footer{color:#9fb0c5!important}
html[data-theme="dark"] body.result-portal-body .portal-search-card{
  background:#101d2d!important;border-color:#2d425a!important;box-shadow:0 24px 65px rgba(0,0,0,.28)!important
}
html[data-theme="dark"] body.result-portal-body .portal-login-tabs{background:#0b1725!important}
html[data-theme="dark"] body.result-portal-body .portal-login-tab{color:#9fb0c5!important}
html[data-theme="dark"] body.result-portal-body .portal-login-tab.active{
  background:#17283d!important;color:#8db4ff!important
}
html[data-theme="dark"] body.result-portal-body .portal-login-panel label{color:#dce7f4!important}
html[data-theme="dark"] body.result-portal-body .portal-login-panel input{
  background:#0b1725!important;color:#edf4fb!important;border-color:#38506a!important
}
html[data-theme="dark"] body.result-portal-body .privacy-note{background:#142337!important;color:#9fb0c5!important}

@media(max-width:700px){
  body.result-portal-body .premium-portal.search-view{
    width:100%!important;
    padding:max(24px,env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom))!important
  }
  body.result-portal-body .portal-brand{width:100%!important;margin-bottom:24px!important}
  body.result-portal-body .portal-brand-main{justify-content:flex-start!important}
  body.result-portal-body .portal-welcome{width:100%!important;margin-bottom:16px!important}
  body.result-portal-body .portal-welcome h1{font-size:30px!important}
  body.result-portal-body .portal-search-card{width:100%!important;padding:20px!important;border-radius:18px!important}
}
@media(max-width:390px){
  body.result-portal-body .portal-login-tabs{grid-template-columns:1fr!important}
}


/* ==========================================================================
   Release 2026.08.27.022 — Unified login background and auth-shell alignment
   Parent & Learner Portal now matches Staff / Super Admin login shell.
   ========================================================================== */

body.result-portal-body{
  background:
    radial-gradient(circle at 18% 0%,rgba(31,99,233,.07),transparent 32rem),
    #eef3f9 !important;
  color:#10213b!important;
}

body.result-portal-body .premium-portal.search-view{
  width:min(100%,980px)!important;
  min-height:100dvh!important;
  margin:0 auto!important;
  padding:56px 24px 40px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(420px,480px)!important;
  align-items:start!important;
  column-gap:64px!important;
}

body.result-portal-body .portal-welcome.auth-shell-copy{
  grid-column:1!important;
  grid-row:1!important;
  width:100%!important;
  max-width:320px!important;
  margin:0!important;
  padding-top:8px!important;
  text-align:left!important;
}

body.result-portal-body .portal-brand.auth-shell-brand{
  grid-column:2!important;
  grid-row:1!important;
  width:100%!important;
  max-width:480px!important;
  margin:0 0 14px!important;
  padding:0!important;
  min-height:auto!important;
  border:0!important;
  display:flex!important;
  justify-content:center!important;
}

body.result-portal-body .portal-brand.auth-shell-brand .portal-brand-main{
  width:auto!important;
  justify-content:center!important;
  align-items:center!important;
  gap:12px!important;
}

body.result-portal-body .portal-brand.auth-shell-brand .portal-logo-placeholder.brand-mark{
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  border-radius:12px!important;
  box-shadow:none!important;
}

body.result-portal-body .portal-brand.auth-shell-brand .portal-product{
  text-align:left!important;
}

body.result-portal-body .portal-brand.auth-shell-brand .portal-product b{
  display:block!important;
  font-size:17px!important;
  line-height:1.15!important;
  color:#dfe8f4!important;
  opacity:.95!important;
}

body.result-portal-body .portal-brand.auth-shell-brand .portal-product span{
  display:block!important;
  margin-top:3px!important;
  font-size:13px!important;
  line-height:1.25!important;
  color:#6f829b!important;
}

body.result-portal-body .portal-search-card{
  grid-column:2!important;
  grid-row:2!important;
  width:100%!important;
  max-width:480px!important;
  margin:0 auto!important;
  padding:30px!important;
  border:1px solid #dce6f2!important;
  border-radius:22px!important;
  background:#ffffff!important;
  box-shadow:0 20px 55px rgba(27,62,101,.10)!important;
}

body.result-portal-body .form-heading{
  margin-bottom:16px!important;
}

body.result-portal-body .form-heading h2{
  font-size:22px!important;
  line-height:1.15!important;
  color:#10213b!important;
  margin:0!important;
}

body.result-portal-body .form-heading p{
  margin:6px 0 0!important;
  font-size:12px!important;
  color:#687b93!important;
}

body.result-portal-body .portal-welcome .portal-eyebrow{
  display:block!important;
  margin-bottom:10px!important;
  color:#135fd8!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.16em!important;
}

body.result-portal-body .portal-welcome h1{
  margin:0!important;
  color:#10213b!important;
  font-size:31px!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
}

body.result-portal-body .portal-welcome p{
  margin:10px 0 0!important;
  color:#687b93!important;
  font-size:14px!important;
  line-height:1.6!important;
}

body.result-portal-body .portal-login-tabs{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  margin:0 0 20px!important;
  padding:4px!important;
  background:#f2f6fb!important;
  border-radius:12px!important;
}

body.result-portal-body .portal-login-tab{
  min-height:44px!important;
  padding:9px 12px!important;
  border-radius:10px!important;
  font-size:12px!important;
  font-weight:800!important;
}

body.result-portal-body .portal-login-tab.active{
  background:#ffffff!important;
  color:#124bb8!important;
  border:0!important;
  box-shadow:0 4px 12px rgba(29,60,98,.10)!important;
}

body.result-portal-body .portal-login-panel label{
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
  font-size:12px!important;
  font-weight:800!important;
  color:#10213b!important;
}

body.result-portal-body .portal-login-panel input{
  min-height:48px!important;
  border-radius:11px!important;
  font-size:16px!important;
  border:1px solid #cfdae8!important;
}

body.result-portal-body .find-learner-button{
  min-height:48px!important;
  border-radius:11px!important;
  font-size:14px!important;
  font-weight:800!important;
}

body.result-portal-body .privacy-note{
  padding:11px 12px!important;
  border:0!important;
  background:#f6f8fb!important;
  color:#7b8da2!important;
  font-size:10px!important;
  border-radius:10px!important;
}

body.result-portal-body .portal-footer{
  grid-column:1 / span 2!important;
  width:100%!important;
  max-width:480px!important;
  margin:24px auto 0!important;
  padding:0!important;
  text-align:center!important;
  color:#7b8da2!important;
}

body.result-portal-body .portal-footer small{
  font-size:9px!important;
}

@media(max-width:900px){
  body.result-portal-body .premium-portal.search-view{
    width:min(100%,760px)!important;
    grid-template-columns:1fr!important;
    column-gap:0!important;
    row-gap:0!important;
    padding:48px 20px 34px!important;
  }
  body.result-portal-body .portal-welcome.auth-shell-copy{
    grid-column:1!important;
    grid-row:2!important;
    max-width:500px!important;
    margin:0 auto 16px!important;
  }
  body.result-portal-body .portal-brand.auth-shell-brand{
    grid-column:1!important;
    grid-row:1!important;
    max-width:500px!important;
    margin:0 auto 18px!important;
  }
  body.result-portal-body .portal-search-card{
    grid-column:1!important;
    grid-row:3!important;
    max-width:500px!important;
    padding:26px!important;
  }
  body.result-portal-body .portal-footer{
    grid-column:1!important;
    margin-top:24px!important;
  }
}

@media(max-width:700px){
  body.result-portal-body .premium-portal.search-view{
    width:100%!important;
    padding:max(24px,env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom))!important;
  }
  body.result-portal-body .portal-brand.auth-shell-brand,
  body.result-portal-body .portal-welcome.auth-shell-copy,
  body.result-portal-body .portal-search-card,
  body.result-portal-body .portal-footer{
    max-width:100%!important;
  }
  body.result-portal-body .portal-welcome.auth-shell-copy{
    margin:0 0 16px!important;
  }
  body.result-portal-body .portal-brand.auth-shell-brand{
    margin:0 0 18px!important;
    justify-content:flex-start!important;
  }
  body.result-portal-body .portal-brand.auth-shell-brand .portal-brand-main{
    justify-content:flex-start!important;
  }
  body.result-portal-body .portal-search-card{
    padding:20px!important;
    border-radius:18px!important;
  }
  body.result-portal-body .portal-welcome h1{
    font-size:30px!important;
  }
}

@media(max-width:390px){
  body.result-portal-body .portal-login-tabs{
    grid-template-columns:1fr!important;
  }
}

/* dark-theme parity to keep the shared login shell consistent */
html[data-theme="dark"] body.result-portal-body{
  background:
    radial-gradient(circle at 18% 0%,rgba(79,140,255,.10),transparent 32rem),
    #081321!important;
  color:#edf4fb!important;
}
html[data-theme="dark"] body.result-portal-body .portal-welcome h1,
html[data-theme="dark"] body.result-portal-body .form-heading h2{
  color:#edf4fb!important;
}
html[data-theme="dark"] body.result-portal-body .portal-welcome p,
html[data-theme="dark"] body.result-portal-body .form-heading p,
html[data-theme="dark"] body.result-portal-body .portal-footer{
  color:#9fb0c5!important;
}
html[data-theme="dark"] body.result-portal-body .portal-search-card{
  background:#101d2d!important;
  border-color:#2d425a!important;
  box-shadow:0 24px 65px rgba(0,0,0,.28)!important;
}
html[data-theme="dark"] body.result-portal-body .portal-login-tabs{
  background:#0b1725!important;
}
html[data-theme="dark"] body.result-portal-body .portal-login-tab{
  color:#9fb0c5!important;
}
html[data-theme="dark"] body.result-portal-body .portal-login-tab.active{
  background:#17283d!important;
  color:#8db4ff!important;
}
html[data-theme="dark"] body.result-portal-body .portal-login-panel label{
  color:#dce7f4!important;
}
html[data-theme="dark"] body.result-portal-body .portal-login-panel input{
  background:#0b1725!important;
  color:#edf4fb!important;
  border-color:#38506a!important;
}
html[data-theme="dark"] body.result-portal-body .privacy-note{
  background:#142337!important;
  color:#9fb0c5!important;
}
