/* MathPro Tutors site-wide consistency + functional surface polish V28
   Loaded last. It deliberately preserves the V27 homepage and applies the
   same navy / violet / pink visual language to linked public pages, auth,
   portals and administration screens. */

:root {
  --mpt28-navy:#080b2a;
  --mpt28-navy-2:#121641;
  --mpt28-blue:#29238f;
  --mpt28-violet:#4a4cff;
  --mpt28-pink:#f451b5;
  --mpt28-pink-dark:#d82d96;
  --mpt28-mint:#93f0d7;
  --mpt28-ink:#151522;
  --mpt28-muted:#62697b;
  --mpt28-soft:#fff5fb;
  --mpt28-soft-blue:#f5f6ff;
  --mpt28-line:rgba(41,35,143,.13);
  --mpt28-shadow:0 22px 58px rgba(12,14,46,.11);
  --mpt28-radius:22px;
}

html { scroll-behavior:smooth; }
body.mathguru-theme { color:var(--mpt28-ink); }
body.mathguru-theme img { max-width:100%; }
body.mathguru-theme input,
body.mathguru-theme select,
body.mathguru-theme textarea,
body.mathguru-theme button { font:inherit; }
body.mathguru-theme textarea { resize:vertical; }
body.mathguru-theme :focus-visible { outline:3px solid rgba(244,81,181,.34); outline-offset:2px; }

/* Keep the user's previous request: no floating cookie-choice badge/banner. */
body.mathguru-theme .cookie-banner { display:none !important; }

/* ---------- shared non-homepage shell ---------- */
body.mathguru-theme:not(.mp-homepage):not(.mp-portal-dashboard) main#main-content {
  min-height:55vh;
  background:#fff;
}
body.mathguru-theme:not(.mp-homepage) .mgt-reference-header {
  background:var(--mpt28-navy) !important;
  box-shadow:0 12px 32px rgba(8,11,42,.10);
}
body.mathguru-theme:not(.mp-homepage) .mgt-dropdown-menu {
  background:var(--mpt28-navy-2) !important;
}
body.mathguru-theme:not(.mp-homepage) .mgt-reference-nav > a.is-current,
body.mathguru-theme:not(.mp-homepage) .mgt-nav-parent.is-current { color:#ff7bca !important; }

body.mathguru-theme .button {
  border-radius:8px;
  font-weight:850;
  letter-spacing:0;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;
}
body.mathguru-theme .button:hover { transform:translateY(-1px); }
body.mathguru-theme .button-primary,
body.mathguru-theme .button-accent {
  border-color:var(--mpt28-pink) !important;
  background:var(--mpt28-pink) !important;
  color:#fff !important;
  box-shadow:0 12px 26px rgba(244,81,181,.19);
}
body.mathguru-theme .button-primary:hover,
body.mathguru-theme .button-accent:hover { background:var(--mpt28-pink-dark) !important; border-color:var(--mpt28-pink-dark) !important; }
body.mathguru-theme .button-secondary {
  border-color:rgba(41,35,143,.28) !important;
  background:#fff !important;
  color:var(--mpt28-blue) !important;
}
body.mathguru-theme .button-secondary:hover { border-color:var(--mpt28-blue) !important; }
body.mathguru-theme .field-error { color:#b91c5c !important; font-size:.78rem; font-weight:750; }
body.mathguru-theme .alert { border-radius:12px; padding:13px 15px; line-height:1.45; }
body.mathguru-theme .alert-error { background:#fff0f5; border:1px solid rgba(185,28,92,.20); color:#8f1747; }
body.mathguru-theme .alert-success { background:#eafbf4; border:1px solid rgba(0,135,94,.18); color:#087451; }

/* ---------- marketing/public pages ---------- */
body.mp-marketing-page:not(.mp-homepage) .pro-page-hero,
body.mp-marketing-page:not(.mp-homepage) .mp-page-hero,
body.mp-marketing-page:not(.mp-homepage) .sky-about-hero,
body.mp-marketing-page:not(.mp-homepage) .sky-directory-hero {
  position:relative;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 86% 12%,rgba(244,81,181,.25),transparent 28%),
    radial-gradient(circle at 18% 86%,rgba(74,76,255,.22),transparent 30%),
    linear-gradient(120deg,var(--mpt28-navy) 0%,#111341 58%,#231254 100%) !important;
}
body.mp-marketing-page:not(.mp-homepage) .pro-page-hero::after,
body.mp-marketing-page:not(.mp-homepage) .mp-page-hero::after,
body.mp-marketing-page:not(.mp-homepage) .sky-about-hero::after,
body.mp-marketing-page:not(.mp-homepage) .sky-directory-hero::after {
  content:"+   ÷   −   +";
  position:absolute;
  right:3%; bottom:7%;
  color:rgba(147,240,215,.17);
  font-size:clamp(2rem,5vw,5rem);
  font-weight:950;
  letter-spacing:.35em;
  pointer-events:none;
}
body.mp-marketing-page:not(.mp-homepage) .pro-page-hero > .container,
body.mp-marketing-page:not(.mp-homepage) .mp-page-hero > .container,
body.mp-marketing-page:not(.mp-homepage) .sky-about-hero > .container,
body.mp-marketing-page:not(.mp-homepage) .sky-directory-hero > .container { position:relative; z-index:2; }
body.mp-marketing-page:not(.mp-homepage) .pro-page-hero,
body.mp-marketing-page:not(.mp-homepage) .mp-page-hero { padding:clamp(70px,8vw,116px) 0; }
body.mp-marketing-page:not(.mp-homepage) .pro-page-hero h1,
body.mp-marketing-page:not(.mp-homepage) .mp-page-hero h1,
body.mp-marketing-page:not(.mp-homepage) .sky-about-hero h1,
body.mp-marketing-page:not(.mp-homepage) .sky-directory-hero h1 {
  color:#fff !important;
  font-size:clamp(2.65rem,5vw,5.1rem) !important;
  line-height:.98 !important;
  letter-spacing:-.05em !important;
  max-width:780px;
}
body.mp-marketing-page:not(.mp-homepage) .pro-page-hero p,
body.mp-marketing-page:not(.mp-homepage) .mp-page-hero p,
body.mp-marketing-page:not(.mp-homepage) .sky-about-hero p,
body.mp-marketing-page:not(.mp-homepage) .sky-directory-hero p { color:rgba(255,255,255,.87) !important; line-height:1.68; }
body.mp-marketing-page:not(.mp-homepage) .pro-eyebrow,
body.mp-marketing-page:not(.mp-homepage) .sky-kicker,
body.mp-marketing-page:not(.mp-homepage) .mp-kicker,
body.mp-marketing-page:not(.mp-homepage) .mp-badge { color:var(--mpt28-pink); font-weight:900; letter-spacing:.11em; }
body.mp-marketing-page:not(.mp-homepage) .pro-eyebrow-light { color:#ff72c6 !important; }

body.mp-marketing-page:not(.mp-homepage) .pro-section,
body.mp-marketing-page:not(.mp-homepage) .mp-content-section,
body.mp-marketing-page:not(.mp-homepage) .sky-section { padding:clamp(62px,6vw,92px) 0; }
body.mp-marketing-page:not(.mp-homepage) .pro-section-heading,
body.mp-marketing-page:not(.mp-homepage) .sky-section-heading { margin-bottom:34px; }
body.mp-marketing-page:not(.mp-homepage) .pro-section-heading h1,
body.mp-marketing-page:not(.mp-homepage) .pro-section-heading h2,
body.mp-marketing-page:not(.mp-homepage) .sky-section-heading h2 {
  color:var(--mpt28-ink);
  letter-spacing:-.035em;
  line-height:1.08;
}
body.mp-marketing-page:not(.mp-homepage) .card,
body.mp-marketing-page:not(.mp-homepage) .pro-plan-card,
body.mp-marketing-page:not(.mp-homepage) .pro-course-card,
body.mp-marketing-page:not(.mp-homepage) .pro-tutor-card,
body.mp-marketing-page:not(.mp-homepage) .sky-directive-grid article,
body.mp-marketing-page:not(.mp-homepage) .sky-role-grid article,
body.mp-marketing-page:not(.mp-homepage) .sky-directory-card,
body.mp-marketing-page:not(.mp-homepage) .sky-filter-card,
body.mp-marketing-page:not(.mp-homepage) .pro-empty-state {
  border:1px solid var(--mpt28-line) !important;
  border-radius:var(--mpt28-radius) !important;
  box-shadow:var(--mpt28-shadow) !important;
  background:#fff !important;
}
body.mp-marketing-page:not(.mp-homepage) .sky-directive-grid article,
body.mp-marketing-page:not(.mp-homepage) .sky-role-grid article { padding:28px; }
body.mp-marketing-page:not(.mp-homepage) .sky-feature-icon,
body.mp-marketing-page:not(.mp-homepage) .mp-contact-icon { color:var(--mpt28-pink) !important; }
body.mp-marketing-page:not(.mp-homepage) .sky-role-grid article > span { color:var(--mpt28-pink); font-weight:900; }

body.mp-marketing-page:not(.mp-homepage) input:not([type="checkbox"]):not([type="radio"]),
body.mp-marketing-page:not(.mp-homepage) select,
body.mp-marketing-page:not(.mp-homepage) textarea {
  width:100%;
  min-height:48px;
  border:1px solid #d8dbe7;
  border-radius:9px;
  background:#fff;
  color:#171725;
  padding:11px 13px;
}
body.mp-marketing-page:not(.mp-homepage) textarea { min-height:112px; }
body.mp-marketing-page:not(.mp-homepage) input:focus,
body.mp-marketing-page:not(.mp-homepage) select:focus,
body.mp-marketing-page:not(.mp-homepage) textarea:focus { border-color:var(--mpt28-pink); box-shadow:0 0 0 4px rgba(244,81,181,.10); outline:0; }

/* Contact page */
body.mp-marketing-page .mp-contact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
body.mp-marketing-page .mp-contact-grid .card { padding:32px; }
body.mp-marketing-page .mp-contact-grid .mp-contact-icon { width:54px; height:54px; display:grid; place-items:center; border-radius:16px; background:#fff0fa; font-size:1.5rem; }
body.mp-marketing-page .mp-text-link { display:inline-block; margin-top:15px; color:var(--mpt28-blue); font-weight:850; }

/* ---------- login / registration ---------- */
body.mp-auth-route main#main-content {
  background:
    radial-gradient(circle at 10% 18%,rgba(244,81,181,.22),transparent 27%),
    radial-gradient(circle at 90% 84%,rgba(74,76,255,.20),transparent 26%),
    #f8f7fc;
}
body.mp-auth-route .mpt-auth-page { padding:clamp(54px,7vw,96px) 0; }
body.mp-auth-route .mpt-auth-shell,
body.mp-auth-route .mpt-register-shell {
  width:min(100% - 40px,1120px);
  display:grid;
  grid-template-columns:minmax(300px,.88fr) minmax(0,1.12fr);
  gap:0;
  align-items:stretch;
  margin:0 auto;
  border-radius:28px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 30px 82px rgba(11,13,45,.17);
  border:1px solid rgba(41,35,143,.08);
}
body.mp-auth-route .mpt-auth-brand-panel,
body.mp-auth-route .mpt-register-intro {
  position:relative;
  overflow:hidden;
  padding:clamp(38px,5vw,64px);
  color:#fff;
  background:
    radial-gradient(circle at 10% 10%,rgba(244,81,181,.28),transparent 31%),
    radial-gradient(circle at 94% 88%,rgba(74,76,255,.28),transparent 36%),
    var(--mpt28-navy);
}
body.mp-auth-route .mpt-auth-brand-panel::after,
body.mp-auth-route .mpt-register-intro::after {
  content:"+   −\A÷   =\A+   x²";
  white-space:pre;
  position:absolute;
  right:-10px; bottom:12px;
  color:rgba(147,240,215,.16);
  font-size:clamp(2rem,4vw,4rem);
  font-weight:950;
  line-height:1.5;
  letter-spacing:.16em;
}
body.mp-auth-route .mpt-auth-brand-panel > *,
body.mp-auth-route .mpt-register-intro > * { position:relative; z-index:2; }
body.mp-auth-route .mpt-auth-brand-panel h1,
body.mp-auth-route .mpt-register-intro h1 { color:#fff; font-size:clamp(2.5rem,4vw,4.2rem); line-height:1; letter-spacing:-.05em; margin:12px 0 20px; }
body.mp-auth-route .mpt-auth-brand-panel p,
body.mp-auth-route .mpt-register-intro p { color:rgba(255,255,255,.86); line-height:1.65; }
body.mp-auth-route .mpt-auth-feature-list { display:grid; gap:12px; margin:28px 0; }
body.mp-auth-route .mpt-auth-feature-list span { display:flex; align-items:center; gap:10px; font-weight:800; }
body.mp-auth-route .mpt-auth-feature-list b { width:25px; height:25px; display:grid; place-items:center; border-radius:999px; background:var(--mpt28-violet); }
body.mp-auth-route .mpt-auth-demo-link,
body.mp-auth-route .mpt-register-intro > a { color:#fff; font-weight:850; text-decoration:underline; text-underline-offset:4px; }
body.mp-auth-route .mpt-register-intro ul { margin:25px 0; padding-left:1.15rem; display:grid; gap:10px; color:rgba(255,255,255,.92); font-weight:750; }
body.mp-auth-route .mpt-auth-card,
body.mp-auth-route .mpt-register-card { padding:clamp(34px,5vw,62px); background:#fff; }
body.mp-auth-route .mpt-auth-card header,
body.mp-auth-route .mpt-register-card > header { margin-bottom:25px; }
body.mp-auth-route .mpt-auth-card h2,
body.mp-auth-route .mpt-register-card h2 { margin:5px 0 8px; color:var(--mpt28-ink); font-size:clamp(1.8rem,2.8vw,2.55rem); letter-spacing:-.035em; }
body.mp-auth-route .mpt-auth-card header p,
body.mp-auth-route .mpt-register-card header p { color:var(--mpt28-muted); line-height:1.55; }
body.mp-auth-route .mpt-auth-kicker { color:var(--mpt28-pink); font-size:.78rem; font-weight:950; letter-spacing:.11em; text-transform:uppercase; }
body.mp-auth-route .mpt-auth-form,
body.mp-auth-route .mpt-register-form { display:grid; gap:18px; }
body.mp-auth-route .mpt-register-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
body.mp-auth-route .mpt-register-form.inner-grid { margin-top:12px; }
body.mp-auth-route .span-2 { grid-column:1 / -1; }
body.mp-auth-route .mpt-auth-form label,
body.mp-auth-route .mpt-register-form label { display:grid; gap:7px; color:#27283a; font-size:.87rem; font-weight:800; }
body.mp-auth-route .mpt-auth-form input:not([type="checkbox"]),
body.mp-auth-route .mpt-auth-form select,
body.mp-auth-route .mpt-auth-form textarea,
body.mp-auth-route .mpt-register-form input:not([type="checkbox"]),
body.mp-auth-route .mpt-register-form select,
body.mp-auth-route .mpt-register-form textarea {
  width:100%; min-height:49px; border:1px solid #d9dce7; border-radius:9px; padding:11px 13px; color:#171725; background:#fff;
}
body.mp-auth-route .mpt-register-form textarea { min-height:105px; }
body.mp-auth-route .mpt-auth-form input:focus,
body.mp-auth-route .mpt-register-form input:focus,
body.mp-auth-route .mpt-register-form select:focus,
body.mp-auth-route .mpt-register-form textarea:focus { border-color:var(--mpt28-pink); box-shadow:0 0 0 4px rgba(244,81,181,.10); outline:0; }
body.mp-auth-route .mpt-auth-form label > small:not(.field-error),
body.mp-auth-route .mpt-register-form label > small:not(.field-error) { color:#7c8292; font-weight:550; line-height:1.35; }
body.mp-auth-route .mpt-auth-submit { min-height:52px; width:100%; }
body.mp-auth-route .mpt-auth-links { display:flex; justify-content:space-between; gap:18px; margin:20px 0 12px; color:#777d8c; font-size:.9rem; }
body.mp-auth-route .mpt-auth-links a,
body.mp-auth-route .mpt-auth-account-actions a,
body.mp-auth-route .mpt-auth-signin-note a { color:var(--mpt28-blue); font-weight:850; }
body.mp-auth-route .mpt-auth-account-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
body.mp-auth-route .mpt-auth-account-actions a { padding:12px; text-align:center; border:1px solid var(--mpt28-line); border-radius:9px; background:#f8f8fd; }
body.mp-auth-route .mpt-auth-resend { margin-top:22px; border-top:1px solid #ececf2; padding-top:18px; }
body.mp-auth-route .mpt-auth-resend summary { cursor:pointer; color:#555c70; font-weight:800; }
body.mp-auth-route .mpt-auth-resend form { margin-top:14px; }
body.mp-auth-route .mpt-auth-signin-note { margin:20px 0 0; text-align:center; color:#686f80; }
body.mp-auth-route .mpt-guardian-fields { border:1px solid var(--mpt28-line); border-radius:14px; padding:18px; background:#fafaff; }
body.mp-auth-route .mpt-guardian-fields legend { padding:0 7px; color:var(--mpt28-blue); font-weight:900; }
body.mp-auth-route .check-row { display:flex !important; grid-template-columns:auto 1fr; align-items:flex-start; gap:10px !important; font-weight:650 !important; line-height:1.4; }
body.mp-auth-route .check-row input { width:18px; height:18px; margin-top:2px; accent-color:var(--mpt28-pink); }

/* ---------- free demo class ---------- */
body.mp-marketing-page .mpt-demo-hero {
  position:relative;
  overflow:hidden;
  padding:clamp(70px,8vw,112px) 0;
  color:#fff;
  background:
    radial-gradient(circle at 75% 24%,rgba(244,81,181,.27),transparent 28%),
    radial-gradient(circle at 18% 84%,rgba(74,76,255,.24),transparent 32%),
    linear-gradient(120deg,var(--mpt28-navy),#171347 64%,#351259);
}
body.mp-marketing-page .mpt-demo-hero::after { content:"+  ÷  =\A−  +  x²"; white-space:pre; position:absolute; right:3%; bottom:5%; color:rgba(147,240,215,.15); font-size:clamp(2rem,4vw,4rem); font-weight:950; line-height:1.5; }
body.mp-marketing-page .mpt-demo-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1fr) minmax(310px,.65fr); gap:clamp(36px,6vw,76px); align-items:center; }
body.mp-marketing-page .mpt-demo-copy h1 { max-width:760px; color:#fff; font-size:clamp(2.8rem,5.1vw,5.2rem); line-height:.99; letter-spacing:-.05em; margin:12px 0 20px; }
body.mp-marketing-page .mpt-demo-copy > p { max-width:720px; color:rgba(255,255,255,.88); font-size:1.05rem; line-height:1.65; }
body.mp-marketing-page .mpt-demo-points { display:flex; flex-wrap:wrap; gap:12px 22px; list-style:none; margin:26px 0 0; padding:0; }
body.mp-marketing-page .mpt-demo-points li { display:flex; gap:8px; align-items:center; color:#fff; font-weight:800; }
body.mp-marketing-page .mpt-demo-points span { width:24px; height:24px; display:grid; place-items:center; border-radius:999px; background:var(--mpt28-violet); }
body.mp-marketing-page .mpt-demo-note { background:rgba(255,255,255,.96); color:var(--mpt28-ink); padding:28px; border-radius:20px; box-shadow:0 24px 60px rgba(0,0,0,.23); }
body.mp-marketing-page .mpt-demo-note > span { color:var(--mpt28-pink); font-weight:950; letter-spacing:.09em; text-transform:uppercase; font-size:.78rem; }
body.mp-marketing-page .mpt-demo-note ol { list-style:none; padding:0; margin:19px 0 0; display:grid; gap:18px; }
body.mp-marketing-page .mpt-demo-note li { display:grid; grid-template-columns:34px 1fr; gap:12px; align-items:start; }
body.mp-marketing-page .mpt-demo-note li b { width:34px; height:34px; display:grid; place-items:center; border-radius:999px; background:#fce6f5; color:var(--mpt28-pink-dark); }
body.mp-marketing-page .mpt-demo-note li div { display:grid; gap:2px; }
body.mp-marketing-page .mpt-demo-note small { color:#717788; line-height:1.4; }
body.mp-marketing-page .mpt-demo-form-section { background:linear-gradient(180deg,#fff,#fff8fd); }
body.mp-marketing-page .mpt-demo-form-layout { display:grid; grid-template-columns:minmax(260px,.55fr) minmax(0,1fr); gap:clamp(30px,5vw,68px); align-items:start; }
body.mp-marketing-page .mpt-demo-form-heading { position:sticky; top:28px; }
body.mp-marketing-page .mpt-demo-form-heading h2 { font-size:clamp(2rem,3.4vw,3.35rem); line-height:1.05; letter-spacing:-.04em; margin:10px 0 14px; }
body.mp-marketing-page .mpt-demo-form-heading p { color:var(--mpt28-muted); line-height:1.6; }
body.mp-marketing-page .mpt-demo-form-card { padding:clamp(24px,3.5vw,42px); border:1px solid var(--mpt28-line); border-radius:24px; background:#fff; box-shadow:var(--mpt28-shadow); }
body.mp-marketing-page .mpt-demo-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
body.mp-marketing-page .mpt-demo-form > label { display:grid; gap:7px; color:#26283b; font-size:.86rem; font-weight:800; }
body.mp-marketing-page .mpt-demo-form label > span { color:var(--mpt28-pink-dark); }
body.mp-marketing-page .mpt-demo-form .span-2 { grid-column:1 / -1; }
body.mp-marketing-page .mpt-demo-form .check-row { display:flex; gap:10px; align-items:flex-start; font-weight:650; line-height:1.45; }
body.mp-marketing-page .mpt-demo-form .check-row input { width:18px; height:18px; min-height:0; margin-top:2px; accent-color:var(--mpt28-pink); }
body.mp-marketing-page .mpt-demo-submit { min-height:54px; }
body.mp-marketing-page .mpt-form-honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* ---------- country pages ---------- */
body.mp-marketing-page .mpt-country-hero {
  position:relative; overflow:hidden; padding:clamp(72px,8vw,118px) 0;
  background:linear-gradient(120deg,var(--mpt28-navy) 0%,#15144b 58%,#42145a 100%); color:#fff;
}
body.mp-marketing-page .mpt-country-hero::after { content:"∑  +  ÷  x²"; position:absolute; right:3%; bottom:7%; color:rgba(147,240,215,.13); font-size:clamp(2rem,5vw,5rem); font-weight:900; letter-spacing:.3em; }
body.mp-marketing-page .mpt-country-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1fr) minmax(290px,.62fr); gap:clamp(36px,6vw,72px); align-items:center; }
body.mp-marketing-page .mpt-country-hero h1 { max-width:780px; color:#fff; font-size:clamp(2.8rem,5vw,5rem); line-height:.99; letter-spacing:-.05em; margin:12px 0 20px; }
body.mp-marketing-page .mpt-country-hero p { max-width:720px; color:rgba(255,255,255,.86); line-height:1.65; }
body.mp-marketing-page .mpt-country-placeholder { padding:30px; border-radius:22px; color:var(--mpt28-ink); background:#fff; box-shadow:0 26px 64px rgba(0,0,0,.22); }
body.mp-marketing-page .mpt-country-placeholder > span { display:inline-grid; place-items:center; min-width:50px; height:50px; padding:0 13px; border-radius:13px; background:linear-gradient(145deg,var(--mpt28-pink),#8b36cc); color:#fff; font-weight:950; }
body.mp-marketing-page .mpt-country-placeholder h2 { margin:18px 0 9px; font-size:1.65rem; }
body.mp-marketing-page .mpt-country-placeholder p { color:var(--mpt28-muted); }
body.mp-marketing-page .mpt-country-content { background:#fff9fd; }
body.mp-marketing-page .mpt-country-placeholder-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
body.mp-marketing-page .mpt-country-placeholder-grid article { padding:28px; border:1px solid var(--mpt28-line); border-radius:20px; background:#fff; box-shadow:var(--mpt28-shadow); }
body.mp-marketing-page .mpt-country-placeholder-grid article > span { color:var(--mpt28-pink); font-size:.78rem; font-weight:950; letter-spacing:.1em; }
body.mp-marketing-page .mpt-country-placeholder-grid h3 { margin:12px 0 9px; font-size:1.3rem; }
body.mp-marketing-page .mpt-country-placeholder-grid p { margin:0; color:var(--mpt28-muted); line-height:1.55; }

/* ---------- testimonials page (no fabricated endorsements) ---------- */
body.mp-marketing-page .mpt-testimonials-page { background:linear-gradient(180deg,#fff,#fff7fc); }
body.mp-marketing-page .mpt-testimonials-page .pro-section-heading { max-width:840px; }
body.mp-marketing-page .mpt-review-empty-panel { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:30px; border-radius:20px; background:#f2f2f5; margin-bottom:24px; }
body.mp-marketing-page .mpt-google-label { color:var(--mpt28-pink); font-weight:950; letter-spacing:.08em; text-transform:uppercase; font-size:.78rem; }
body.mp-marketing-page .mpt-review-empty-panel h2 { margin:8px 0; }
body.mp-marketing-page .mpt-review-empty-panel p { max-width:720px; color:var(--mpt28-muted); }
body.mp-marketing-page .mpt-review-placeholder-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
body.mp-marketing-page .mpt-review-placeholder-grid article { min-height:210px; padding:27px; border-radius:20px; background:#f0f0f3; }
body.mp-marketing-page .mpt-review-placeholder-grid article > span { color:#0b8f69; font-size:.75rem; font-weight:950; text-transform:uppercase; letter-spacing:.1em; }

/* ---------- public checkout/forms ---------- */
body.mathguru-theme:not(.mp-homepage) .checkout-shell,
body.mathguru-theme:not(.mp-homepage) .phase2-checkout-shell,
body.mathguru-theme:not(.mp-homepage) .phase3-enrollment-shell { max-width:1180px; margin-inline:auto; }
body.mathguru-theme:not(.mp-homepage) .checkout-card,
body.mathguru-theme:not(.mp-homepage) .phase2-card,
body.mathguru-theme:not(.mp-homepage) .phase3-card { border-radius:20px !important; border-color:var(--mpt28-line) !important; box-shadow:var(--mpt28-shadow) !important; }

/* ---------- generic admin pages ---------- */
body.mp-admin-route:not(.mp-portal-dashboard) main#main-content { background:#f5f6fb; padding:38px 0 68px; }
body.mp-admin-route:not(.mp-portal-dashboard) main#main-content > .container,
body.mp-admin-route:not(.mp-portal-dashboard) main#main-content > .page-section { width:min(100% - 36px,1240px); margin-inline:auto; }
body.mp-admin-route .page-header,
body.mp-admin-route .page-heading,
body.mp-admin-route .split-heading,
body.mp-admin-route .section-heading { margin-bottom:22px; }

/* Keep shared headings vertical; the notification module opts into its split layout. */
body.mathguru-theme .section-heading { display:block; }
body.mathguru-theme .notification-admin-section .section-heading {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
}

/* Branded fallback used only when a genuinely unavailable module is requested. */
.mpt-availability-page {
  display:grid;
  align-items:center;
  min-height:clamp(520px,calc(100vh - 360px),720px);
}
.mpt-availability-card {
  position:relative;
  overflow:hidden;
  padding:clamp(30px,6vw,64px);
  border:1px solid #eadfe8;
  border-radius:28px;
  background:radial-gradient(circle at 100% 0,rgba(244,81,181,.14),transparent 38%),linear-gradient(145deg,#fff 0%,#fbf7fa 100%);
  box-shadow:0 24px 70px rgba(29,18,34,.10);
}
.mpt-availability-card::after {
  content:"";
  position:absolute;
  right:-72px;
  bottom:-96px;
  width:210px;
  height:210px;
  border:34px solid rgba(77,92,255,.08);
  border-radius:50%;
  pointer-events:none;
}
.mpt-availability-icon {
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  margin-bottom:24px;
  border-radius:16px;
  color:#fff;
  background:linear-gradient(135deg,#f451b5,#4d5cff);
  box-shadow:0 12px 28px rgba(244,81,181,.24);
  font:900 1.25rem/1 Georgia,serif;
}
.mpt-availability-copy { position:relative; z-index:1; max-width:680px; }
.mpt-availability-copy .eyebrow { display:block; margin:0 0 12px; color:#d93898; }
.mpt-availability-copy h1 {
  max-width:660px;
  margin:0 0 18px;
  font-size:clamp(2.25rem,5vw,4.25rem);
  line-height:1.02;
}
.mpt-availability-copy p { max-width:650px; margin:0; color:#6e6876; font-size:clamp(1rem,2vw,1.12rem); }
.mpt-availability-actions { position:relative; z-index:1; flex-wrap:wrap; margin-top:30px; }
.mpt-availability-link { align-self:center; padding:10px 4px; color:#343fcf; font-weight:800; text-decoration:none; }
.mpt-availability-link:hover { text-decoration:underline; }
@media (max-width:620px) {
  .mpt-availability-page { min-height:auto; padding-block:32px; }
  .mpt-availability-card { padding:28px 22px; border-radius:22px; }
  .mpt-availability-actions { display:grid; }
  .mpt-availability-actions .button { width:100%; }
  .mpt-availability-link { justify-self:center; }
}
body.mp-admin-route .page-header h1,
body.mp-admin-route .page-heading h1,
body.mp-admin-route .split-heading h1 { color:var(--mpt28-ink); font-size:clamp(2rem,3.4vw,3.2rem); line-height:1.05; letter-spacing:-.04em; margin:.3rem 0 .55rem; }
body.mp-admin-route .page-header p,
body.mp-admin-route .page-heading p,
body.mp-admin-route .split-heading p { color:var(--mpt28-muted); line-height:1.55; }
body.mp-admin-route .eyebrow,
body.mp-admin-route .admin-eyebrow { color:var(--mpt28-pink); font-size:.76rem; font-weight:950; letter-spacing:.11em; text-transform:uppercase; }
body.mp-admin-route .card,
body.mp-admin-route .panel,
body.mp-admin-route .ui-card,
body.mp-admin-route .page-section,
body.mp-admin-route .table-card,
body.mp-admin-route .settings-panel,
body.mp-admin-route .phase2-admin-panel,
body.mp-admin-route .phase3-panel {
  border:1px solid var(--mpt28-line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 14px 38px rgba(13,16,47,.065);
}
body.mp-admin-route .card,
body.mp-admin-route .panel,
body.mp-admin-route .settings-panel,
body.mp-admin-route .phase2-admin-panel,
body.mp-admin-route .phase3-panel { padding:22px; }
body.mp-admin-route .form-grid,
body.mp-admin-route .settings-form-grid,
body.mp-admin-route .grid.grid-2,
body.mp-admin-route .grid-two { gap:16px; }
body.mp-admin-route label { color:#303246; font-weight:750; }
body.mp-admin-route input:not([type="checkbox"]):not([type="radio"]),
body.mp-admin-route select,
body.mp-admin-route textarea {
  width:100%; min-height:45px; border:1px solid #d9dce7; border-radius:8px; background:#fff; color:#171725; padding:9px 11px;
}
body.mp-admin-route textarea { min-height:96px; }
body.mp-admin-route input:focus,
body.mp-admin-route select:focus,
body.mp-admin-route textarea:focus { border-color:var(--mpt28-pink); box-shadow:0 0 0 4px rgba(244,81,181,.09); outline:0; }
body.mp-admin-route .table-wrap,
body.mp-admin-route .table-responsive { overflow:auto; border-radius:13px; }
body.mp-admin-route table { width:100%; border-collapse:collapse; }
body.mp-admin-route th { background:#f4f4fa; color:#33364b; font-size:.76rem; text-transform:uppercase; letter-spacing:.07em; text-align:left; }
body.mp-admin-route th,
body.mp-admin-route td { padding:12px 13px; border-bottom:1px solid #ececf2; vertical-align:top; }
body.mp-admin-route tbody tr:hover { background:#fff8fc; }
body.mp-admin-route .status-pill,
body.mp-admin-route .status-badge,
body.mp-admin-route .badge { border-radius:999px; font-size:.74rem; font-weight:850; }
body.mp-admin-route .status-new { background:#fff0fa; color:#b62379; }
body.mp-admin-route .status-in_review { background:#eef0ff; color:#403bc1; }
body.mp-admin-route .status-contacted { background:#e8f8ff; color:#156c8b; }
body.mp-admin-route .status-qualified { background:#e8faf2; color:#087451; }
body.mp-admin-route .status-closed { background:#eef0f3; color:#566070; }
body.mp-admin-route .status-spam { background:#fff0f0; color:#9b3030; }

/* Admin dashboard */
body.mp-portal-dashboard .admin-dashboard-shell { background:#f3f4fa !important; }
body.mp-portal-dashboard .admin-sidebar { background:var(--mpt28-navy) !important; color:#fff; }
body.mp-portal-dashboard .admin-brand span { background:var(--mpt28-pink) !important; }
body.mp-portal-dashboard .admin-nav section h2 { color:rgba(255,255,255,.48) !important; }
body.mp-portal-dashboard .admin-nav a { color:rgba(255,255,255,.84) !important; border-radius:9px; }
body.mp-portal-dashboard .admin-nav a:hover,
body.mp-portal-dashboard .admin-nav a.is-active { background:rgba(244,81,181,.15) !important; color:#fff !important; }
body.mp-portal-dashboard .admin-dashboard-hero { background:linear-gradient(125deg,var(--mpt28-navy),#17164d) !important; border-radius:22px !important; color:#fff !important; }
body.mp-portal-dashboard .admin-dashboard-hero h1,
body.mp-portal-dashboard .admin-dashboard-hero p { color:#fff !important; }
body.mp-portal-dashboard .admin-metric-card,
body.mp-portal-dashboard .pro-admin-action-grid > a,
body.mp-portal-dashboard .admin-dashboard-section { border-radius:16px !important; border:1px solid var(--mpt28-line) !important; box-shadow:0 13px 34px rgba(13,16,47,.07) !important; }
body.mp-portal-dashboard .pro-admin-action-grid > a span { background:#fff0fa !important; color:var(--mpt28-pink-dark) !important; }

/* Demo requests inside admin */
body.mp-admin-route .mpt-demo-admin-card { padding:0; overflow:hidden; }
body.mp-admin-route .mpt-demo-admin-card > .card-heading { padding:22px 24px; border-bottom:1px solid #ececf2; }
body.mp-admin-route .mpt-demo-admin-list { display:grid; }
body.mp-admin-route .mpt-demo-admin-item { padding:24px; border-bottom:1px solid #ececf2; }
body.mp-admin-route .mpt-demo-admin-item:last-child { border-bottom:0; }
body.mp-admin-route .mpt-demo-admin-item > header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
body.mp-admin-route .mpt-demo-admin-item h3 { margin:7px 0 3px; font-size:1.24rem; }
body.mp-admin-route .mpt-demo-admin-item header p,
body.mp-admin-route .mpt-demo-admin-item time { color:#777e8e; font-size:.82rem; }
body.mp-admin-route .mpt-demo-admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:20px 0; }
body.mp-admin-route .mpt-demo-admin-grid dl { margin:0; display:grid; gap:10px; padding:16px; border-radius:13px; background:#f8f8fc; }
body.mp-admin-route .mpt-demo-admin-grid dl > div { display:grid; grid-template-columns:120px minmax(0,1fr); gap:10px; }
body.mp-admin-route .mpt-demo-admin-grid dt { color:#777e8e; font-size:.78rem; font-weight:850; }
body.mp-admin-route .mpt-demo-admin-grid dd { margin:0; overflow-wrap:anywhere; }
body.mp-admin-route .mpt-demo-admin-notes { margin:15px 0; }
body.mp-admin-route .mpt-demo-admin-notes summary { cursor:pointer; color:var(--mpt28-blue); font-weight:850; }
body.mp-admin-route .mpt-demo-admin-notes pre { white-space:pre-wrap; overflow-wrap:anywhere; padding:15px; background:#11142e; color:#f5f5fa; border-radius:11px; font:inherit; line-height:1.5; }
body.mp-admin-route .mpt-demo-status-form { display:flex; align-items:end; gap:10px; }
body.mp-admin-route .mpt-demo-status-form label { min-width:190px; display:grid; gap:5px; }

/* ---------- student / parent / teacher portal consistency ---------- */
body.mp-portal-route main#main-content { background:#f5f6fb; }
body.mp-portal-route .student-panel,
body.mp-portal-route .teacher-panel,
body.mp-portal-route .parent-panel,
body.mp-portal-route .student-summary-card,
body.mp-portal-route .teacher-summary-card,
body.mp-portal-route .parent-summary-card,
body.mp-portal-route .quick-action-list a {
  border-color:var(--mpt28-line) !important;
  border-radius:16px !important;
  box-shadow:0 12px 32px rgba(13,16,47,.055) !important;
}
body.mp-portal-route .panel-kicker,
body.mp-portal-route .student-eyebrow,
body.mp-portal-route .teacher-eyebrow,
body.mp-portal-route .parent-eyebrow { color:var(--mpt28-pink) !important; }
body.mp-portal-route .text-link { color:var(--mpt28-blue) !important; font-weight:850; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  body.mp-auth-route .mpt-auth-shell,
  body.mp-auth-route .mpt-register-shell { grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); }
  body.mp-marketing-page .mpt-demo-form-layout { grid-template-columns:1fr; }
  body.mp-marketing-page .mpt-demo-form-heading { position:static; max-width:760px; }
  body.mp-marketing-page .mpt-country-placeholder-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
  body.mp-auth-route .mpt-auth-shell,
  body.mp-auth-route .mpt-register-shell { grid-template-columns:1fr; }
  body.mp-auth-route .mpt-auth-brand-panel,
  body.mp-auth-route .mpt-register-intro { padding:38px; }
  body.mp-auth-route .mpt-auth-brand-panel h1,
  body.mp-auth-route .mpt-register-intro h1 { max-width:680px; }
  body.mp-marketing-page .mpt-demo-hero-grid,
  body.mp-marketing-page .mpt-country-hero-grid { grid-template-columns:1fr; }
  body.mp-marketing-page .mpt-demo-note,
  body.mp-marketing-page .mpt-country-placeholder { max-width:680px; }
  body.mp-marketing-page .mpt-review-placeholder-grid { grid-template-columns:1fr 1fr; }
  body.mp-marketing-page .mp-contact-grid { grid-template-columns:1fr; }
  body.mp-admin-route .mpt-demo-admin-grid { grid-template-columns:1fr; }
}

@media (max-width: 720px) {
  body.mp-auth-route .mpt-register-form,
  body.mp-marketing-page .mpt-demo-form { grid-template-columns:1fr; }
  body.mp-auth-route .mpt-register-form .span-2,
  body.mp-marketing-page .mpt-demo-form .span-2 { grid-column:auto; }
  body.mp-auth-route .mpt-auth-account-actions { grid-template-columns:1fr; }
  body.mp-marketing-page .mpt-country-placeholder-grid,
  body.mp-marketing-page .mpt-review-placeholder-grid { grid-template-columns:1fr; }
  body.mp-marketing-page .mpt-review-empty-panel { align-items:flex-start; flex-direction:column; }
  body.mp-admin-route .mpt-demo-admin-item > header { flex-direction:column; }
  body.mp-admin-route .mpt-demo-status-form { align-items:stretch; flex-direction:column; }
  body.mp-admin-route .mpt-demo-status-form label { min-width:0; }
}

@media (max-width: 520px) {
  body.mathguru-theme .container { width:min(100% - 28px,1180px); }
  body.mp-auth-route .mpt-auth-shell,
  body.mp-auth-route .mpt-register-shell { width:min(100% - 22px,1120px); border-radius:20px; }
  body.mp-auth-route .mpt-auth-brand-panel,
  body.mp-auth-route .mpt-register-intro,
  body.mp-auth-route .mpt-auth-card,
  body.mp-auth-route .mpt-register-card { padding:28px 20px; }
  body.mp-auth-route .mpt-auth-links { flex-direction:column; gap:6px; }
  body.mp-marketing-page .mpt-demo-form-card { padding:22px 17px; border-radius:18px; }
  body.mp-marketing-page .mpt-demo-hero,
  body.mp-marketing-page .mpt-country-hero { padding:58px 0; }
  body.mp-marketing-page .mpt-demo-copy h1,
  body.mp-marketing-page .mpt-country-hero h1 { font-size:clamp(2.4rem,12vw,3.4rem); }
  body.mp-admin-route:not(.mp-portal-dashboard) main#main-content { padding-top:24px; }
  body.mp-admin-route .mpt-demo-admin-grid dl > div { grid-template-columns:1fr; gap:3px; }
}

/* Secondary authentication screens: password reset, MFA and invitation. */
body.mp-auth-route .auth-shell.single-auth {
  width:min(100% - 30px,620px);
  margin:0 auto;
  padding:clamp(54px,7vw,92px) 0;
}
body.mp-auth-route .auth-shell.single-auth .auth-panel {
  padding:clamp(28px,5vw,48px);
  border:1px solid var(--mpt28-line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 26px 68px rgba(12,14,46,.15);
}
body.mp-auth-route .auth-shell.single-auth .eyebrow {
  color:var(--mpt28-pink);
  font-size:.77rem;
  font-weight:950;
  letter-spacing:.11em;
  text-transform:uppercase;
}
body.mp-auth-route .auth-shell.single-auth h1 {
  margin:9px 0 12px;
  color:var(--mpt28-ink);
  font-size:clamp(2rem,4vw,3.15rem);
  line-height:1.03;
  letter-spacing:-.045em;
}
body.mp-auth-route .auth-shell.single-auth p { color:var(--mpt28-muted); line-height:1.6; }
body.mp-auth-route .auth-shell.single-auth .form-stack { display:grid; gap:16px; margin-top:22px; }
body.mp-auth-route .auth-shell.single-auth label { display:grid; gap:7px; font-weight:800; color:#292b3d; }
body.mp-auth-route .auth-shell.single-auth input:not([type="checkbox"]) {
  min-height:49px; width:100%; border:1px solid #d9dce7; border-radius:9px; padding:11px 13px;
}
body.mp-auth-route .auth-shell.single-auth input:focus { border-color:var(--mpt28-pink); box-shadow:0 0 0 4px rgba(244,81,181,.10); outline:0; }
body.mp-auth-route .mpt-simple-register-form{align-content:start}
body.mp-auth-route .mpt-simple-register-consent{margin:0;padding:14px 16px;border-left:4px solid var(--mpt28-pink);background:#fff7fc;color:#606273;font-size:.78rem;line-height:1.55}
body.mp-auth-route .mpt-simple-register-consent a{color:#8f1765;font-weight:850;text-underline-offset:3px}
