:root {
  --blue: #0a2a66;
  --blue-2: #0f3d8f;
  --gold: #f4b400;
  --green: #08a848;
  --red: #d91f2f;
  --ink: #111827;
  --muted: #5f6b7a;
  --line: #dfe7f0;
  --soft: #f5f8fc;
  --white: #ffffff;
  --shadow: 0 18px 46px rgba(10, 42, 102, 0.1);
  --radius: 14px;
}

/* 2026-07-13 final layout polish */
.practice-system-section {
  background: #fff;
}

.learning-system-section,
.faq-contact-section {
  background: #f7f7f4;
}

.focus-split-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  max-width: 1560px;
  margin: 34px auto 0;
}

.focus-split-grid.three-up {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 1320px;
}

.focus-split-grid article {
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  padding: 28px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.05);
  text-align: left;
}

.focus-split-grid span {
  display: inline-grid;
  min-width: 54px;
  height: 54px;
  place-items: center;
  border-radius: 999px;
  margin-bottom: 20px;
  background: #f4f4f1;
  color: #0a2a66;
  font-weight: 900;
}

.focus-split-grid h3 {
  margin: 0 0 12px;
  color: #111318;
  font-size: 1.35rem;
  line-height: 1.15;
}

.focus-split-grid p {
  color: #596170;
  line-height: 1.65;
}

.timeline-section h2 {
  max-width: 900px;
}

.seven-step {
  align-items: start;
}

.seven-step li {
  display: grid;
  grid-template-rows: 112px minmax(58px, auto) auto;
  align-items: start;
  justify-items: center;
  text-align: center;
}

.seven-step li span {
  align-self: start;
  width: 92px;
  height: 92px;
  margin: 0 auto;
}

.seven-step li strong {
  display: flex;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
}

.seven-step li small {
  max-width: 220px;
  margin: 0 auto;
  line-height: 1.45;
}

.program-back [data-program-back] {
  width: min(100%, 300px);
  min-height: 54px;
  margin-top: 18px;
}

.case-study-grid article {
  padding: 26px;
}

.case-study-grid h3 {
  font-size: 1.25rem;
}

.case-study-grid p:first-of-type {
  color: #404755;
  font-size: 0.98rem;
  line-height: 1.68;
}

/* Student feedback carousel */
.testimonial-marquee {
  position: relative;
  width: 100%;
  margin: 34px auto 0;
  overflow: hidden;
  text-align: left;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 3%, #000 97%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 3%, #000 97%, transparent);
}

.testimonial-track {
  display: flex;
  align-items: flex-start;
  width: max-content;
  gap: 18px;
  animation: testimonial-scroll 56s linear infinite;
  will-change: transform;
}

.testimonial-set {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.testimonial-card {
  display: flex;
  width: clamp(310px, 24vw, 350px);
  height: 330px;
  min-height: 330px;
  max-height: 330px;
  flex-direction: column;
  border: 1px solid rgba(11, 13, 18, 0.1);
  border-radius: 14px;
  padding: 20px;
  background: #fff;
  box-shadow: 0 20px 48px rgba(15, 23, 42, 0.07);
}

.testimonial-card h3 {
  margin: 0 0 10px;
  color: #111318;
  font-size: 1.12rem;
  text-transform: none;
}

.testimonial-card p {
  min-height: 0;
  overflow: visible;
  margin: 0;
  color: #404755;
  font-size: 0.86rem;
  line-height: 1.42;
}

.testimonial-card small {
  margin-top: auto;
  padding-top: 12px;
  color: #697281;
  font-size: 0.84rem;
  font-weight: 750;
}

@keyframes testimonial-scroll {
  to {
    transform: translateX(calc(-50% - 9px));
  }
}

@media (max-width: 760px) {
  .testimonial-card {
    width: min(84vw, 330px);
    height: 340px;
    min-height: 340px;
    max-height: 340px;
  }

  .testimonial-track {
    animation-duration: 88s;
  }
}

.faq-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
  gap: 28px;
  max-width: 1560px;
  margin: 0 auto;
  align-items: start;
}

.faq-contact-section .faq-card {
  padding: clamp(26px, 3vw, 42px);
  background: #fff;
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.05);
  overflow: hidden;
}

.faq-contact-section .faq-card h2 {
  max-width: 100%;
  font-size: clamp(2.1rem, 3.15vw, 3.85rem);
  line-height: 1.04;
  white-space: normal;
}

.compact-contact-form {
  position: sticky;
  top: 130px;
  border-radius: 10px;
  padding: clamp(24px, 3vw, 36px);
  color: #111318;
  background: #fff;
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.12);
}

.compact-contact-form h2 {
  color: #111318;
  font-size: clamp(1.6rem, 2.05vw, 2.7rem);
  line-height: 1.08;
}

.compact-contact-form p,
.compact-contact-form label,
.compact-contact-form small {
  color: #596170;
}

.compact-contact-form .section-kicker.light {
  color: #596170;
}

.compact-contact-form input,
.compact-contact-form select {
  color: #111318;
  border-color: rgba(11, 13, 18, 0.16);
  background: #f7f7f4;
}

.compact-contact-form button {
  color: #fff;
  background: #111318;
}

.compact-contact-form .contact-details {
  display: grid;
  gap: 8px;
  margin-top: 16px;
}

.compact-contact-form .contact-details a {
  color: #111318;
  font-weight: 800;
}

.site-footer {
  grid-template-columns: minmax(260px, 0.9fr) minmax(420px, 1.1fr);
  gap: 22px 56px;
  padding: 24px clamp(24px, 7vw, 120px);
}

.site-footer p {
  max-width: 620px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.82rem;
  font-weight: 650;
  line-height: 1.45;
}

.site-footer .footer-link-columns {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  grid-row: span 2;
}

.footer-link-columns div {
  display: grid;
  align-content: start;
  gap: 8px;
}

.site-footer a,
.site-footer button {
  font-size: 0.78rem;
  font-weight: 750;
  text-align: left;
}

.footer-support-contacts strong {
  color: #fff;
  font-size: 0.78rem;
}

.footer-support-contacts a {
  overflow-wrap: anywhere;
}

.footer-support-contacts a span {
  display: block;
  margin-bottom: 2px;
  color: rgba(255, 255, 255, 0.52);
  font-size: 0.66rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.site-footer small {
  max-width: 720px;
  border-top: 0;
  padding-top: 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.68rem;
  line-height: 1.42;
}

@media (max-width: 1200px) {
  .focus-split-grid,
  .focus-split-grid.three-up {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .faq-contact-grid,
  .site-footer {
    grid-template-columns: 1fr;
  }

  .compact-contact-form {
    position: static;
  }
}

@media (max-width: 900px) {
  .faq-contact-section .faq-card h2 {
    white-space: normal;
  }

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

@media (max-width: 760px) {
  .focus-split-grid,
  .focus-split-grid.three-up,
  .faq-contact-grid,
  .site-footer .footer-link-columns {
    grid-template-columns: 1fr;
  }

  .seven-step li {
    grid-template-rows: auto;
  }

  .seven-step li span {
    margin-bottom: 14px;
  }

  .seven-step li strong {
    min-height: 0;
  }
}

/* Student portal final layout pass */
body .portal-page.active {
  grid-template-columns: 300px minmax(0, 1fr);
  background: #f7f7f4;
}

body .portal-sidebar {
  border-right: 1px solid rgba(11, 13, 18, 0.08);
  background: #fff;
}

body .portal-brand {
  padding: 24px 26px 18px;
}

body .portal-brand .brand-mark {
  width: 74px;
  height: 74px;
}

body .portal-nav {
  display: grid;
  gap: 17px;
  overflow: auto;
  padding: 14px 16px 24px;
}

body .portal-nav-group {
  display: grid;
  gap: 6px;
}

body .portal-nav-group > span {
  padding: 0 10px;
  color: #8a8f98;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body .portal-sidebar nav button,
body .logout-button {
  border-radius: 999px;
  padding: 10px 14px;
  color: #4b5563;
  background: transparent;
  font-size: 0.92rem;
  font-weight: 850;
}

body .portal-sidebar nav button.active,
body .portal-sidebar nav button:hover {
  color: #fff;
  background: #111318;
}

body .portal-main {
  background: #f7f7f4;
}

body .portal-topbar {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr) auto auto auto;
  gap: 12px;
  min-height: 78px;
  padding: 14px clamp(18px, 3vw, 34px);
  background: rgba(255, 255, 255, 0.94);
}

body .menu-button,
body .portal-top-actions button,
body .access-switch button {
  border-radius: 999px;
  padding: 9px 14px;
  font-size: 0.92rem;
  font-weight: 850;
}

body .menu-button,
body .portal-top-actions button {
  border: 1px solid rgba(11, 13, 18, 0.1);
  color: #111318;
  background: #fff;
}

body .portal-search {
  display: flex;
  align-items: center;
  gap: 10px;
  width: min(100%, 540px);
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 999px;
  padding: 9px 14px;
  background: #fff;
}

body .portal-search span,
body .access-switch span {
  color: #7b8492;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body .portal-search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: #111318;
  font: inherit;
}

body .access-switch,
body .portal-top-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

body .access-switch {
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 999px;
  padding: 5px;
  background: #fff;
}

body .access-switch button {
  border: 0;
  color: #424957;
  background: transparent;
}

body .access-switch button.active,
body .portal-top-actions button:hover {
  color: #fff;
  background: #111318;
}

body .portal-content {
  padding: clamp(24px, 4vw, 50px);
}

body .portal-heading {
  max-width: 920px;
  margin-bottom: 26px;
}

body .portal-kicker {
  display: inline-block;
  margin-bottom: 12px;
  color: #6f7785;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body .portal-heading h1 {
  margin: 0 0 12px;
  color: #080b11;
  font-size: clamp(2.25rem, 4.8vw, 4.8rem);
  line-height: 0.96;
  letter-spacing: 0;
}

body .portal-heading p {
  max-width: 780px;
  color: #646c79;
  font-size: clamp(1rem, 1.2vw, 1.16rem);
  line-height: 1.55;
}

body .portal-home-grid,
body .account-grid,
body .question-bank-summary,
body .guidance-grid,
body .mentor-support-grid,
body .course-player-grid {
  display: grid;
  gap: 18px;
}

body .portal-home-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

body .portal-home-grid > .portal-card {
  grid-column: span 4;
}

body .portal-home-grid > .portal-primary-card {
  grid-column: span 7;
}

body .portal-home-grid > .portal-week-card {
  grid-column: span 5;
}

body .portal-card {
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  padding: clamp(22px, 2.5vw, 34px);
  background: #fff;
  box-shadow: 0 24px 65px rgba(15, 23, 42, 0.05);
}

body .portal-card h2 {
  margin: 0 0 16px;
  color: #0b0f16;
  font-size: clamp(1.25rem, 1.7vw, 1.72rem);
  line-height: 1.15;
}

body .portal-card button,
body .lesson-actions button,
body .portal-quick-actions button,
body .mentor-support-grid button {
  border: 1px solid rgba(11, 13, 18, 0.12);
  border-radius: 999px;
  padding: 11px 18px;
  color: #111318;
  background: #fff;
  font-weight: 850;
}

body .portal-card button:hover,
body .lesson-actions button:hover,
body .portal-quick-actions button:hover,
body .mentor-support-grid button:hover {
  color: #fff;
  background: #111318;
}

body .portal-primary-card {
  color: #fff;
  background: #111318;
}

body .portal-primary-card h2,
body .portal-primary-card p,
body .portal-primary-card strong,
body .portal-primary-card span {
  color: #fff;
}

body .portal-primary-card > span {
  display: inline-block;
  margin-bottom: 14px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body .portal-primary-card h2 {
  font-size: clamp(2rem, 3vw, 3.2rem);
  line-height: 1;
}

body .portal-primary-card p {
  max-width: 610px;
  color: rgba(255, 255, 255, 0.74);
}

body .portal-primary-card button {
  margin-top: 18px;
  color: #111318;
  background: #fff;
}

body .portal-progress-line {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}

body .portal-progress-line i,
body .course-row i {
  height: 7px;
  border-radius: 999px;
  background: linear-gradient(90deg, #111318 var(--value), rgba(11, 13, 18, 0.12) var(--value));
}

body .portal-primary-card .portal-progress-line i {
  background: linear-gradient(90deg, #fff var(--value), rgba(255, 255, 255, 0.22) var(--value));
}

body .portal-list {
  display: grid;
  gap: 12px;
  color: #626b79;
}

body .portal-list div {
  display: grid;
  gap: 3px;
  border-top: 1px solid rgba(11, 13, 18, 0.08);
  padding-top: 12px;
}

body .portal-list div:first-child {
  border-top: 0;
  padding-top: 0;
}

body .portal-list span {
  color: #7b8492;
  font-size: 0.82rem;
  font-weight: 850;
}

body .portal-list strong {
  color: #111318;
}

body .portal-metric-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

body .portal-metric-row div {
  border-radius: 10px;
  padding: 18px;
  background: #f4f4f1;
}

body .portal-metric-row strong,
body .portal-metric-row span {
  display: block;
}

body .portal-metric-row strong {
  color: #111318;
  font-size: 1.8rem;
}

body .portal-metric-row span {
  color: #747d8b;
  font-weight: 750;
}

body .portal-quick-actions,
body .lesson-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

body .account-grid {
  grid-template-columns: 1.2fr 1fr;
}

body .account-profile-card > div:first-child {
  display: grid;
  justify-items: center;
  gap: 12px;
  margin-bottom: 20px;
  text-align: center;
}

body .account-profile-card > div:first-child > div:last-child {
  display: grid;
  justify-items: center;
}

body .account-profile-card img {
  width: 82px;
  height: 82px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}

body .profile-photo-control {
  display: grid;
  justify-items: center;
  gap: 7px;
  flex: 0 0 auto;
}

body .profile-photo-action {
  border: 0;
  padding: 0;
  cursor: pointer;
  color: #111318;
  background: transparent;
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.02em;
  text-decoration: underline;
  text-underline-offset: 3px;
}

body img[data-profile-image] {
  object-position: center;
}

body img[data-profile-image].is-default-profile-image {
  object-position: 72% 24%;
}

body .profile-photo-dialog { width: min(430px, calc(100vw - 28px)); padding: 0; overflow: hidden; border: 0; border-radius: 16px; color: #111318; background: #fff; box-shadow: 0 30px 90px rgba(11,15,23,.28); }
body .profile-photo-dialog::backdrop { background: rgba(11,15,23,.58); backdrop-filter: blur(4px); }
body .profile-photo-dialog-card { display: grid; gap: 18px; padding: 24px; }
body .profile-photo-dialog-head { display: flex; align-items: start; justify-content: space-between; gap: 18px; }
body .profile-photo-dialog-head span { color: #7b818c; font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
body .profile-photo-dialog-head h2 { margin: 5px 0 0; font-size: 1.55rem; }
body .profile-photo-dialog-head button { width: 34px; height: 34px; border: 1px solid #dedfdb; border-radius: 50%; color: #111318; background: #fff; font-size: 1.25rem; cursor: pointer; }
body .profile-photo-dialog-card > p { margin: 0; color: #626a78; line-height: 1.55; }
body .profile-photo-file-action { display: grid; min-height: 50px; place-items: center; border-radius: 999px; color: #fff; background: #111318; font-weight: 850; cursor: pointer; }
body .profile-photo-file-action input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body .profile-photo-cancel { min-height: 44px; border: 1px solid #dedfdb; border-radius: 999px; color: #303640; background: #fff; font-weight: 800; cursor: pointer; }

body .account-profile-card dl {
  display: grid;
  gap: 12px;
  margin: 0;
}

body .account-profile-card dl div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  border-top: 1px solid rgba(11, 13, 18, 0.08);
  padding-top: 12px;
}

body .course-player-grid {
  grid-template-columns: minmax(0, 1.3fr) minmax(310px, 0.7fr);
  margin-bottom: 20px;
}

body .lesson-video-placeholder {
  display: grid;
  min-height: 280px;
  place-items: center;
  border-radius: 10px;
  padding: 28px;
  color: #fff;
  background: radial-gradient(circle at 70% 20%, rgba(255, 255, 255, 0.14), transparent 30%), #111318;
  text-align: center;
}

body .lesson-video-placeholder strong {
  max-width: 520px;
  color: #fff;
  font-size: clamp(1.8rem, 3vw, 3rem);
  line-height: 1;
}

body .lesson-video-placeholder span,
body .lesson-video-placeholder small {
  color: rgba(255, 255, 255, 0.72);
  font-weight: 900;
}

body .module-outline ol {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body .module-outline li {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 12px;
  align-items: center;
  border-top: 1px solid rgba(11, 13, 18, 0.08);
  padding-top: 12px;
  color: #111318;
  font-weight: 850;
}

body .module-outline li:first-child {
  border-top: 0;
  padding-top: 0;
}

body .module-outline li span {
  display: inline-grid;
  height: 32px;
  place-items: center;
  border-radius: 999px;
  color: #6f7785;
  background: #f1f1ee;
  font-size: 0.72rem;
  font-weight: 900;
}

body .module-outline li.done span,
body .module-outline li.active span {
  color: #fff;
  background: #111318;
}

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

body .course-module span {
  display: inline-grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 50%;
  margin-bottom: 18px;
  color: #111318;
  background: #f1f1ee;
  font-weight: 900;
}

body .resource-toolbar {
  display: grid;
  grid-template-columns: 1.5fr repeat(2, minmax(180px, 0.6fr));
  gap: 12px;
  margin-bottom: 18px;
}

body .resource-toolbar.compact-toolbar {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 14px;
}

body .resource-toolbar label,
body .mentor-request-card label,
body .flashcard-deck-row label {
  display: grid;
  gap: 7px;
  color: #6f7785;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body .resource-toolbar input,
body .resource-toolbar select,
body .mentor-request-card input,
body .mentor-request-card select,
body .mentor-request-card textarea,
body .flashcard-deck-row select {
  width: 100%;
  border: 1px solid rgba(11, 13, 18, 0.1);
  border-radius: 10px;
  padding: 12px 14px;
  color: #111318;
  background: #fff;
  font: inherit;
  letter-spacing: 0;
  text-transform: none;
}

body .flashcard-deck-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}

body .flashcard-deck-row label {
  flex: 1;
}

body .flashcard-actions {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

body .flashcard-actions button:nth-child(3) {
  color: #111318;
  background: #fff;
}

body .qbank-setup-card {
  grid-column: span 2;
}

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

body .disclaimer-card {
  color: #fff;
  background: #111318;
}

body .disclaimer-card h2,
body .disclaimer-card p {
  color: #fff;
}

body .mentor-support-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
}

body .mentor-request-card {
  display: grid;
  gap: 14px;
}

body .is-hidden {
  display: none !important;
}

@media (max-width: 1320px) {
  body .portal-page.active {
    grid-template-columns: 260px minmax(0, 1fr);
  }

  body .portal-topbar {
    grid-template-columns: auto minmax(190px, 1fr) auto;
  }

  body .portal-user {
    grid-column: 1 / -1;
    justify-self: end;
  }

  body .portal-home-grid > .portal-primary-card,
  body .portal-home-grid > .portal-week-card,
  body .portal-home-grid > .portal-card {
    grid-column: span 6;
  }
}

@media (max-width: 1060px) {
  body .portal-page.active {
    grid-template-columns: 1fr;
  }

  body .portal-sidebar {
    position: relative;
    height: auto;
  }

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

  body .portal-topbar,
  body .portal-home-grid,
  body .account-grid,
  body .course-player-grid,
  body .compact-modules,
  body .guidance-grid,
  body .mentor-support-grid,
  body .question-bank-summary,
  body .detail-grid {
    grid-template-columns: 1fr;
  }

  body .portal-home-grid > .portal-primary-card,
  body .portal-home-grid > .portal-week-card,
  body .portal-home-grid > .portal-card,
  body .qbank-setup-card {
    grid-column: auto;
  }
}

@media (max-width: 680px) {
  body .portal-brand .brand-mark {
    width: 58px;
    height: 58px;
  }

  body .portal-nav,
  body .portal-metric-row,
  body .resource-toolbar,
  body .resource-toolbar.compact-toolbar,
  body .flashcard-actions {
    grid-template-columns: 1fr;
  }

  body .portal-content {
    padding: 22px 16px;
  }

  body .portal-search,
  body .access-switch,
  body .portal-top-actions,
  body .flashcard-deck-row,
  body .lesson-actions {
    align-items: stretch;
    flex-direction: column;
  }

  body .account-profile-card > div:first-child,
  body .account-profile-card dl div {
    grid-template-columns: 1fr;
  }
}

/* Student portal MVP brief overrides */
.portal-page.active {
  grid-template-columns: 300px minmax(0, 1fr);
  background: #f7f7f4;
}

.portal-sidebar {
  border-right: 1px solid rgba(11, 13, 18, 0.08);
  background: #fff;
}

.portal-brand {
  padding: 24px 26px 18px;
}

.portal-brand .brand-mark {
  width: 74px;
  height: 74px;
}

.portal-nav {
  display: grid;
  gap: 17px;
  overflow: auto;
  padding: 14px 16px 24px;
}

.portal-nav-group {
  display: grid;
  gap: 6px;
}

.portal-nav-group > span {
  padding: 0 10px;
  color: #8a8f98;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.portal-sidebar nav button,
.logout-button {
  border-radius: 999px;
  padding: 10px 14px;
  color: #4b5563;
  background: transparent;
  font-size: 0.92rem;
  font-weight: 850;
}

.portal-sidebar nav button.active,
.portal-sidebar nav button:hover {
  color: #fff;
  background: #111318;
}

.logout-button {
  margin: auto 16px 20px;
  color: #c24141;
}

.portal-main {
  background: #f7f7f4;
}

.portal-topbar {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr) auto auto auto;
  gap: 12px;
  min-height: 78px;
  padding: 14px clamp(18px, 3vw, 34px);
  background: rgba(255, 255, 255, 0.94);
}

.menu-button {
  border: 1px solid rgba(11, 13, 18, 0.1);
  border-radius: 999px;
  padding: 9px 14px;
  color: #111318;
  background: #fff;
  font-size: 0.92rem;
  font-weight: 850;
}

.portal-search {
  display: flex;
  align-items: center;
  gap: 10px;
  width: min(100%, 540px);
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 999px;
  padding: 9px 14px;
  background: #fff;
}

.portal-search span {
  flex: 0 0 auto;
  color: #7b8492;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.portal-search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: #111318;
  font: inherit;
}

.access-switch,
.portal-top-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.access-switch {
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 999px;
  padding: 5px;
  background: #fff;
}

.access-switch span {
  padding-left: 8px;
  color: #7b8492;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.access-switch button,
.portal-top-actions button {
  border: 0;
  border-radius: 999px;
  padding: 8px 12px;
  color: #424957;
  background: transparent;
  font-weight: 850;
}

.access-switch button.active,
.portal-top-actions button:hover {
  color: #fff;
  background: #111318;
}

.portal-top-actions button {
  border: 1px solid rgba(11, 13, 18, 0.08);
  background: #fff;
}

.portal-user {
  min-width: 190px;
}

.portal-content {
  padding: clamp(24px, 4vw, 50px);
}

.portal-heading {
  max-width: 920px;
  margin-bottom: 26px;
}

.portal-kicker {
  display: inline-block;
  margin-bottom: 12px;
  color: #6f7785;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.portal-heading h1 {
  margin: 0 0 12px;
  color: #080b11;
  font-size: clamp(2.25rem, 4.8vw, 4.8rem);
  line-height: 0.96;
  letter-spacing: 0;
}

.portal-heading p {
  max-width: 780px;
  color: #646c79;
  font-size: clamp(1rem, 1.2vw, 1.16rem);
  line-height: 1.55;
}

.portal-home-grid,
.account-grid,
.question-bank-summary,
.guidance-grid,
.mentor-support-grid,
.course-player-grid {
  display: grid;
  gap: 18px;
}

.portal-home-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.portal-home-grid > .portal-card {
  grid-column: span 4;
}

.portal-home-grid > .portal-primary-card {
  grid-column: span 7;
}

.portal-home-grid > .portal-week-card {
  grid-column: span 5;
}

.portal-card {
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  padding: clamp(22px, 2.5vw, 34px);
  background: #fff;
  box-shadow: 0 24px 65px rgba(15, 23, 42, 0.05);
}

.portal-card h2 {
  margin: 0 0 16px;
  color: #0b0f16;
  font-size: clamp(1.25rem, 1.7vw, 1.72rem);
  line-height: 1.15;
}

.portal-card p,
.portal-list,
.resource-card p,
.guidance-card p,
.mentor-request-card small {
  color: #626b79;
  line-height: 1.6;
}

.portal-card button,
.lesson-actions button,
.portal-quick-actions button,
.mentor-support-grid button {
  border: 1px solid rgba(11, 13, 18, 0.12);
  border-radius: 999px;
  padding: 11px 18px;
  color: #111318;
  background: #fff;
  font-weight: 850;
}

.portal-card button:hover,
.lesson-actions button:hover,
.portal-quick-actions button:hover,
.mentor-support-grid button:hover {
  color: #fff;
  background: #111318;
}

.portal-primary-card {
  color: #fff;
  background: #111318;
}

.portal-primary-card span,
.portal-primary-card p,
.portal-primary-card h2,
.portal-primary-card strong {
  color: #fff;
}

.portal-primary-card > span {
  display: inline-block;
  margin-bottom: 14px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.portal-primary-card h2 {
  font-size: clamp(2rem, 3vw, 3.2rem);
  line-height: 1;
}

.portal-primary-card p {
  max-width: 610px;
  color: rgba(255, 255, 255, 0.74);
}

.portal-primary-card button {
  margin-top: 18px;
  color: #111318;
  background: #fff;
}

.portal-progress-line {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}

.portal-progress-line i,
.course-row i {
  height: 7px;
  border-radius: 999px;
  background: linear-gradient(90deg, #111318 var(--value), rgba(11, 13, 18, 0.12) var(--value));
}

.portal-primary-card .portal-progress-line i {
  background: linear-gradient(90deg, #fff var(--value), rgba(255, 255, 255, 0.22) var(--value));
}

.portal-list {
  display: grid;
  gap: 12px;
}

.portal-list div {
  display: grid;
  gap: 3px;
  border-top: 1px solid rgba(11, 13, 18, 0.08);
  padding-top: 12px;
}

.portal-list div:first-child {
  border-top: 0;
  padding-top: 0;
}

.portal-list span {
  color: #7b8492;
  font-size: 0.82rem;
  font-weight: 850;
}

.portal-list strong {
  color: #111318;
}

.portal-metric-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.portal-metric-row div {
  border-radius: 10px;
  padding: 18px;
  background: #f4f4f1;
}

.portal-metric-row strong,
.portal-metric-row span {
  display: block;
}

.portal-metric-row strong {
  color: #111318;
  font-size: 1.8rem;
}

.portal-metric-row span {
  color: #747d8b;
  font-weight: 750;
}

.portal-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.portal-announcement-card small {
  display: block;
  margin-top: 18px;
  color: #7b8492;
}

.account-grid {
  grid-template-columns: 1.2fr 1fr;
}

.account-profile-card > div:first-child {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-bottom: 20px;
}

.account-profile-card img {
  width: 82px;
  height: 82px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
}

.account-profile-card dl {
  display: grid;
  gap: 12px;
  margin: 0;
}

.account-profile-card dl div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  border-top: 1px solid rgba(11, 13, 18, 0.08);
  padding-top: 12px;
}

.account-profile-card dt {
  color: #7b8492;
  font-weight: 850;
}

.account-profile-card dd {
  margin: 0;
  color: #111318;
  overflow-wrap: anywhere;
}

.course-player-grid {
  grid-template-columns: minmax(0, 1.3fr) minmax(310px, 0.7fr);
  margin-bottom: 20px;
}

.lesson-breadcrumbs {
  margin-bottom: 14px;
  color: #7b8492;
  font-size: 0.84rem;
  font-weight: 850;
}

.lesson-video-placeholder {
  display: grid;
  min-height: 280px;
  place-items: center;
  border-radius: 10px;
  padding: 28px;
  color: #fff;
  background: radial-gradient(circle at 70% 20%, rgba(255, 255, 255, 0.14), transparent 30%), #111318;
  text-align: center;
}

.lesson-video-placeholder span,
.lesson-video-placeholder small,
.lesson-video-placeholder strong {
  display: block;
  color: #fff;
}

.lesson-video-placeholder span {
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.lesson-video-placeholder strong {
  max-width: 520px;
  font-size: clamp(1.8rem, 3vw, 3rem);
  line-height: 1;
}

.lesson-video-placeholder small {
  color: rgba(255, 255, 255, 0.68);
}

.lesson-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.module-outline ol {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.module-outline li {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 12px;
  align-items: center;
  border-top: 1px solid rgba(11, 13, 18, 0.08);
  padding-top: 12px;
  color: #111318;
  font-weight: 850;
}

.module-outline li:first-child {
  border-top: 0;
  padding-top: 0;
}

.module-outline li span {
  display: inline-grid;
  height: 32px;
  place-items: center;
  border-radius: 999px;
  color: #6f7785;
  background: #f1f1ee;
  font-size: 0.72rem;
  font-weight: 900;
}

.module-outline li.done span,
.module-outline li.active span {
  color: #fff;
  background: #111318;
}

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

.course-module span {
  display: inline-grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 50%;
  margin-bottom: 18px;
  color: #111318;
  background: #f1f1ee;
  font-weight: 900;
}

.resource-toolbar {
  display: grid;
  grid-template-columns: 1.5fr repeat(2, minmax(180px, 0.6fr));
  gap: 12px;
  margin-bottom: 18px;
}

.resource-toolbar.compact-toolbar {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 14px;
}

.resource-toolbar label,
.mentor-request-card label,
.flashcard-deck-row label {
  display: grid;
  gap: 7px;
  color: #6f7785;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.resource-toolbar input,
.resource-toolbar select,
.mentor-request-card input,
.mentor-request-card select,
.mentor-request-card textarea,
.flashcard-deck-row select {
  width: 100%;
  border: 1px solid rgba(11, 13, 18, 0.1);
  border-radius: 10px;
  padding: 12px 14px;
  color: #111318;
  background: #fff;
  font: inherit;
  letter-spacing: 0;
  text-transform: none;
}

.resource-card > span,
.guidance-card > span {
  display: block;
  margin-bottom: 12px;
  color: #7b8492;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.flashcard-deck-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}

.flashcard-deck-row label {
  flex: 1;
}

.flashcard-actions {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.flashcard-actions button:nth-child(3) {
  color: #111318;
  background: #fff;
}

.flashcard-actions button:hover {
  color: #fff;
  background: #111318;
}

.qbank-setup-card {
  grid-column: span 2;
}

.qbank-category-card,
.qbank-hero-card {
  min-height: 100%;
}

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

.disclaimer-card {
  color: #fff;
  background: #111318;
}

.disclaimer-card h2,
.disclaimer-card p {
  color: #fff;
}

.disclaimer-card button {
  color: #111318;
  background: #fff;
}

.mentor-support-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
}

.mentor-request-card {
  display: grid;
  gap: 14px;
}

.mentor-request-card button {
  justify-self: start;
}

.is-hidden {
  display: none !important;
}

@media (max-width: 1320px) {
  .portal-page.active {
    grid-template-columns: 260px minmax(0, 1fr);
  }

  .portal-topbar {
    grid-template-columns: auto minmax(190px, 1fr) auto;
  }

  .access-switch,
  .portal-top-actions {
    grid-column: span 1;
  }

  .portal-user {
    grid-column: 1 / -1;
    justify-self: end;
  }

  .portal-home-grid > .portal-primary-card,
  .portal-home-grid > .portal-week-card,
  .portal-home-grid > .portal-card {
    grid-column: span 6;
  }
}

@media (max-width: 1060px) {
  .portal-page.active {
    grid-template-columns: 1fr;
  }

  .portal-sidebar {
    position: relative;
    height: auto;
  }

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

  .portal-topbar {
    position: static;
    grid-template-columns: 1fr;
  }

  .portal-search,
  .portal-user,
  .access-switch,
  .portal-top-actions {
    width: 100%;
    justify-content: start;
  }

  .portal-home-grid,
  .account-grid,
  .course-player-grid,
  .compact-modules,
  .guidance-grid,
  .mentor-support-grid,
  .question-bank-summary,
  .detail-grid {
    grid-template-columns: 1fr;
  }

  .portal-home-grid > .portal-primary-card,
  .portal-home-grid > .portal-week-card,
  .portal-home-grid > .portal-card,
  .qbank-setup-card {
    grid-column: auto;
  }
}

@media (max-width: 680px) {
  .portal-brand .brand-mark {
    width: 58px;
    height: 58px;
  }

  .portal-nav {
    grid-template-columns: 1fr;
  }

  .portal-content {
    padding: 22px 16px;
  }

  .portal-search,
  .access-switch,
  .portal-top-actions,
  .flashcard-deck-row,
  .lesson-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .access-switch {
    border-radius: 14px;
  }

  .portal-metric-row,
  .resource-toolbar,
  .resource-toolbar.compact-toolbar,
  .flashcard-actions {
    grid-template-columns: 1fr;
  }

  .account-profile-card > div:first-child,
  .account-profile-card dl div {
    grid-template-columns: 1fr;
  }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
}

button,
input,
select {
  font: inherit;
}

button {
  cursor: pointer;
}

a {
  color: inherit;
}

.page {
  display: none;
}

.page.active {
  display: block;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 26px;
  min-height: 74px;
  padding: 16px clamp(18px, 5vw, 64px);
  border-bottom: 1px solid rgba(223, 231, 240, 0.9);
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(14px);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--blue);
  text-decoration: none;
}

.bee-mark {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 3px solid var(--gold);
  border-radius: 50% 50% 50% 10px;
  color: var(--blue);
  background: #fff9e8;
  font-weight: 900;
}

.brand-mark {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  object-fit: cover;
  box-shadow: 0 8px 18px rgba(10, 42, 102, 0.14);
}

.brand strong,
.brand small {
  display: block;
  line-height: 1;
}

.brand strong {
  font-size: 2rem;
}

.brand small {
  margin-top: 4px;
  color: var(--blue);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-left: auto;
}

.main-nav a,
.nav-link-button,
.nav-dropdown-toggle {
  border: 0;
  color: var(--ink);
  background: transparent;
  font-size: 0.92rem;
  font-weight: 800;
  text-decoration: none;
}

.nav-dropdown {
  position: relative;
}

.nav-dropdown::after {
  position: absolute;
  top: 100%;
  left: -18px;
  width: calc(100% + 36px);
  height: 14px;
  content: "";
}

.nav-dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
}

.dropdown-chevron {
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 180ms ease;
}

.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  z-index: 40;
  display: grid;
  min-width: 230px;
  border: 1px solid rgba(11, 13, 18, 0.09);
  border-radius: 8px;
  padding: 8px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.14);
  opacity: 0;
  transform: translate(-50%, -6px);
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
  visibility: hidden;
  pointer-events: none;
}

.nav-dropdown-menu a,
.nav-dropdown-menu .nav-link-button {
  display: block;
  width: 100%;
  border-radius: 6px;
  padding: 11px 12px;
  text-align: left;
  white-space: nowrap;
}

.nav-dropdown-menu a:hover,
.nav-dropdown-menu .nav-link-button:hover {
  color: var(--ink);
  background: #f2f2ef;
  transform: none;
}

.nav-dropdown.open .nav-dropdown-menu,
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu {
  opacity: 1;
  transform: translate(-50%, 0);
  visibility: visible;
  pointer-events: auto;
}

.nav-dropdown.open .dropdown-chevron,
.nav-dropdown:hover .dropdown-chevron,
.nav-dropdown:focus-within .dropdown-chevron {
  transform: translateY(2px) rotate(225deg);
}

.primary-action,
.whatsapp-action,
.outline-action,
.program-card button,
.lead-form button,
.profile-hero-card button,
.portal-card button {
  border: 0;
  border-radius: 9px;
  font-weight: 900;
}

.primary-action,
.whatsapp-action,
.outline-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.primary-action {
  padding: 13px 20px;
  color: var(--white);
  background: var(--blue);
  box-shadow: 0 10px 22px rgba(10, 42, 102, 0.18);
}

.primary-action.blue {
  background: var(--blue-2);
}

.whatsapp-action {
  padding: 13px 20px;
  color: var(--white);
  background: var(--green);
  box-shadow: 0 10px 22px rgba(8, 168, 72, 0.18);
}

.outline-action {
  padding: 13px 20px;
  color: var(--white);
  border: 1px solid rgba(255, 255, 255, 0.64);
  background: transparent;
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 0.82fr);
  align-items: stretch;
  min-height: 640px;
  padding: clamp(34px, 7vw, 92px) clamp(18px, 5vw, 64px) 0;
  overflow: hidden;
  background: linear-gradient(90deg, #fff 0%, #fff 49%, #edf5f8 100%);
}

.founder-page.active {
  display: block;
  background: var(--white);
}

.hero-copy {
  display: grid;
  align-content: center;
  padding-bottom: 56px;
}

.eyebrow,
.section-kicker {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  margin: 0 0 16px;
  padding: 7px 11px;
  color: var(--blue);
  background: #eef5ff;
  font-size: 0.77rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.section-kicker {
  display: block;
  margin-inline: auto;
  padding: 0;
  background: transparent;
  text-align: center;
}

.section-kicker.light {
  margin-inline: 0;
  color: #cfe4ff;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

.hero h1 {
  max-width: 760px;
  margin-bottom: 20px;
  color: #050b18;
  font-size: clamp(3.2rem, 6vw, 5.9rem);
  line-height: 1.05;
  letter-spacing: 0;
}

.hero h1 span {
  color: var(--blue-2);
}

.hero h1 em {
  color: var(--red);
  font-style: normal;
}

.subhead {
  max-width: 720px;
  margin-bottom: 28px;
  color: #303b4c;
  font-size: 1.28rem;
}

.contact-line {
  margin: -26px 0 34px;
  color: var(--muted);
  font-weight: 750;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 50px;
}

.trust-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 18px;
  max-width: 720px;
}

.trust-row span {
  color: var(--blue);
  font-size: 0.88rem;
  font-weight: 900;
}

.trust-row span::before {
  color: var(--gold);
  content: "★ ";
}

.hero-image-wrap {
  position: relative;
  display: grid;
  align-items: end;
  min-height: 560px;
}

.hero-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
}

.hero-stat-card {
  position: absolute;
  right: 8%;
  top: 29%;
  width: 196px;
  border-radius: 22px;
  padding: 20px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--shadow);
}

.hero-stat-card strong,
.hero-stat-card small {
  display: block;
}

.hero-stat-card strong {
  color: var(--ink);
  font-size: 1.9rem;
}

.hero-stat-card small {
  color: var(--ink);
  font-weight: 750;
}

.hero-stat-card hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 18px 0;
}

.avatar-stack {
  color: var(--blue);
  letter-spacing: 0;
  font-size: 1.6rem;
}

.section {
  padding: clamp(52px, 7vw, 84px) clamp(18px, 5vw, 76px);
  text-align: center;
}

.section h2,
.faq-card h2,
.lead-form h2 {
  max-width: 880px;
  margin: 0 auto 34px;
  color: #070b17;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
  letter-spacing: 0;
}

.program-grid,
.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
}

.pathway-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  max-width: 1560px;
  margin: 0 auto;
}

.pathway-card,
.program-card,
.testimonial-grid article,
.faq-card,
.lead-form,
.portal-card,
.progress-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: 0 12px 30px rgba(10, 42, 102, 0.06);
}

.pathway-card {
  min-height: 270px;
  padding: 28px;
  text-align: left;
}

.pathway-card.canada {
  background: linear-gradient(135deg, #eef6ff, #fff);
}

.pathway-card.usa {
  background: linear-gradient(135deg, #fff0f3, #fff);
}

.pathway-card.exam {
  background: linear-gradient(135deg, #effaf2, #fff);
}

.pathway-card.post {
  background: linear-gradient(135deg, #fff8e6, #fff);
}

.pathway-card.lpn,
.pathway-card.language,
.pathway-card.registration {
  background: linear-gradient(135deg, #f4f7fb, #fff);
}

.flag {
  display: grid;
  width: 64px;
  height: 64px;
  margin-bottom: 14px;
  place-items: center;
  border-radius: 50%;
  background: var(--white);
  box-shadow: 0 8px 20px rgba(10, 42, 102, 0.08);
  font-size: 2rem;
}

.pathway-card h3 {
  color: #071126;
  font-size: 1.45rem;
}

.pathway-card ul,
.program-card ul {
  display: grid;
  gap: 10px;
  margin: 16px 0 20px;
  padding: 0;
  list-style: none;
}

.pathway-card li,
.program-card li {
  color: #26354a;
  font-weight: 650;
}

.pathway-card li::before,
.program-card li::before {
  color: var(--blue);
  content: "⊙ ";
}

.pathway-card a {
  color: var(--blue);
  font-weight: 900;
  text-decoration: none;
}

.choose-section {
  background: #fbfdff;
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  max-width: 1180px;
  margin: 0 auto;
}

.feature-grid article {
  text-align: center;
}

.feature-grid article:nth-child(5) {
  grid-column: 2;
}

.feature-grid article:nth-child(6) {
  grid-column: 3;
}

.feature-icon {
  display: grid;
  width: 84px;
  height: 84px;
  margin: 0 auto 18px;
  place-items: center;
  border-radius: 50%;
  color: var(--blue);
  background: #eef5ff;
  font-weight: 900;
}

.feature-grid h3 {
  margin-bottom: 10px;
  color: #071126;
}

.feature-grid p {
  color: var(--muted);
}

.timeline-section {
  background: linear-gradient(180deg, #fff, #f7fbff);
}

.timeline {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.timeline li {
  position: relative;
  display: grid;
  gap: 8px;
  justify-items: center;
}

.timeline span {
  display: grid;
  width: 78px;
  height: 78px;
  place-items: center;
  border: 1px solid #bed0e8;
  border-radius: 50%;
  color: var(--blue);
  background: var(--white);
  font-weight: 900;
}

.timeline strong {
  color: var(--ink);
}

.timeline small {
  max-width: 160px;
  color: var(--muted);
}

.program-card {
  position: relative;
  overflow: hidden;
  text-align: left;
}

.program-card header {
  padding: 22px;
  color: var(--white);
  font-size: 1.35rem;
  font-weight: 900;
  text-align: center;
}

.program-card header small {
  display: block;
  margin-top: 4px;
  font-size: 0.84rem;
  letter-spacing: 0.03em;
}

.blue-header {
  background: var(--blue);
}

.green-header {
  background: var(--green);
}

.gold-header {
  background: linear-gradient(135deg, var(--gold), #f7c63a);
}

.program-card ul,
.price-row {
  padding: 24px;
}

.price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 0;
}

.price-row strong {
  font-size: 1.5rem;
}

.stacked-price strong {
  font-size: 1.35rem;
}

.price-row button {
  padding: 12px 22px;
  color: var(--white);
  background: var(--blue);
}

.premium-card .price-row button {
  background: var(--gold);
  color: #261d00;
}

.program-note {
  max-width: 900px;
  margin: 28px auto 0;
  color: #334155;
  font-weight: 750;
}

.founder-preview {
  background: #fbfdff;
}

.founder-preview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: 28px;
  align-items: center;
  max-width: 1180px;
  margin: 0 auto;
  text-align: left;
}

.founder-preview-grid .section-kicker,
.founder-preview-grid h2 {
  margin-left: 0;
  text-align: left;
}

.founder-preview-grid p {
  color: var(--muted);
  font-size: 1.08rem;
}

.founder-preview-card {
  display: grid;
  gap: 18px;
  justify-items: start;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  background: var(--white);
  box-shadow: var(--shadow);
}

.founder-preview-card img,
.founder-card img {
  width: 96px;
  height: 96px;
  border-radius: 22px;
  object-fit: cover;
}

.founder-preview-card strong {
  color: var(--blue);
  font-size: 1.18rem;
}

.ribbon {
  position: absolute;
  right: -36px;
  top: 16px;
  width: 140px;
  padding: 7px 0;
  color: var(--white);
  background: var(--red);
  font-size: 0.75rem;
  font-weight: 900;
  text-align: center;
  text-transform: uppercase;
  transform: rotate(45deg);
}

.testimonials {
  background: #fbfdff;
}

.testimonial-grid article {
  display: grid;
  gap: 10px;
  padding: 22px;
  text-align: left;
}

.testimonial-grid p {
  color: #334155;
}

.testimonial-grid small,
.testimonial-grid span {
  color: var(--muted);
}

.testimonial-grid span {
  color: var(--gold);
}

.testimonial-grid article::before {
  color: var(--gold);
  content: "★★★★★";
  font-weight: 900;
}

.testimonial-note {
  max-width: 780px;
  margin: 18px auto 0;
  color: var(--muted);
  font-size: 0.92rem;
  font-weight: 650;
}

.founder-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: 32px;
  align-items: center;
  min-height: 560px;
  padding: clamp(42px, 7vw, 92px) clamp(18px, 5vw, 76px);
  background: linear-gradient(135deg, #fff 0%, #f3f8ff 100%);
}

.founder-hero h1 {
  max-width: 760px;
  margin-bottom: 20px;
  color: #050b18;
  font-size: clamp(3rem, 6vw, 5.4rem);
  line-height: 1.05;
  letter-spacing: 0;
}

.founder-card {
  display: grid;
  gap: 12px;
  justify-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 32px;
  background: var(--white);
  box-shadow: var(--shadow);
  text-align: center;
}

.founder-card strong {
  color: var(--blue);
  font-size: 1.18rem;
}

.founder-card span {
  color: var(--muted);
}

.founder-story-section {
  background: var(--white);
}

.founder-story-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  max-width: 1120px;
  margin: 0 auto;
}

.founder-story-grid article {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  background: #fbfdff;
  text-align: left;
}

.founder-story-grid h3 {
  color: var(--blue);
}

.founder-story-grid p {
  color: var(--muted);
}

.founder-proof-section {
  background: #fbfdff;
}

.proof-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  max-width: 1180px;
  margin: 0 auto;
}

.proof-list div {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 20px;
  background: var(--white);
  text-align: left;
}

.proof-list strong,
.proof-list span {
  display: block;
}

.proof-list strong {
  margin-bottom: 8px;
  color: var(--blue);
}

.proof-list span {
  color: var(--muted);
}

.center-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  margin-top: 28px;
}

.faq-lead-section {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(360px, 1.15fr);
  gap: 28px;
  padding: 0 clamp(18px, 5vw, 76px) clamp(52px, 7vw, 84px);
}

.faq-card,
.lead-form {
  padding: 28px;
}

.faq-card {
  text-align: left;
}

.faq-card .section-kicker,
.faq-card h2 {
  margin-left: 0;
  text-align: left;
}

details {
  border-bottom: 1px solid var(--line);
  padding: 16px 0;
}

summary {
  color: #071126;
  font-weight: 850;
  cursor: pointer;
}

details p {
  margin: 10px 0 0;
  color: var(--muted);
}

.lead-form {
  color: var(--white);
  background: radial-gradient(circle at right bottom, #1957b8, var(--blue));
}

.lead-form h2 {
  margin-left: 0;
  color: var(--white);
  text-align: left;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

input,
select {
  width: 100%;
  border: 1px solid #bfd0e9;
  border-radius: 7px;
  padding: 13px;
  color: var(--ink);
  background: var(--white);
}

.lead-form button {
  width: 100%;
  margin-top: 12px;
  padding: 14px;
  color: #211900;
  background: var(--gold);
}

.lead-form small {
  display: block;
  margin-top: 10px;
  text-align: center;
}

.final-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 28px clamp(18px, 5vw, 76px);
  color: var(--white);
  background: linear-gradient(135deg, var(--blue), #0752ad);
}

.final-cta h2,
.final-cta p {
  margin-bottom: 0;
}

.final-cta div:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.login-page.active {
  display: grid;
  min-height: 100vh;
  background:
    linear-gradient(120deg, rgba(255, 255, 255, 0.96), rgba(245, 248, 252, 0.92)),
    url("assets/nurse-hero.jpg") right center / auto 100% no-repeat;
}

.login-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 74px;
  padding: 16px clamp(18px, 5vw, 64px);
  border-bottom: 1px solid rgba(223, 231, 240, 0.9);
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(14px);
}

.login-shell {
  display: grid;
  grid-template-columns: minmax(320px, 520px) minmax(280px, 420px);
  gap: 28px;
  align-items: center;
  max-width: 1160px;
  width: 100%;
  margin: 0 auto;
  padding: clamp(38px, 6vw, 80px) clamp(18px, 5vw, 64px);
}

.login-panel,
.login-benefits {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow);
}

.login-panel {
  padding: clamp(26px, 4vw, 38px);
}

.login-panel h1 {
  margin-bottom: 14px;
  color: #050b18;
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  line-height: 1.08;
  letter-spacing: 0;
}

.login-panel p {
  color: var(--muted);
  font-size: 1.05rem;
}

.login-form {
  display: grid;
  gap: 14px;
  margin-top: 24px;
}

.login-form label {
  display: grid;
  gap: 8px;
  color: #26354a;
  font-weight: 850;
}

.login-form button {
  width: 100%;
  margin-top: 4px;
}

.login-form small {
  color: var(--muted);
  text-align: center;
}

.login-status {
  min-height: 1.35em;
  margin: 0;
  color: #b42318 !important;
  font-size: .9rem !important;
  font-weight: 700;
  text-align: center;
}

.login-benefits {
  padding: 28px;
}

.login-benefits h2 {
  color: var(--blue);
  font-size: 1.45rem;
}

.login-benefits ul {
  display: grid;
  gap: 14px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.login-benefits li {
  color: #26354a;
  font-weight: 750;
}

.login-benefits li::before {
  color: var(--gold);
  content: "✓ ";
  font-weight: 900;
}

.portal-page {
  display: none;
  min-height: 100vh;
  background: var(--soft);
}

.portal-page.active {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
}

.portal-sidebar {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  height: 100vh;
  border-right: 1px solid var(--line);
  background: var(--white);
}

.portal-brand {
  padding: 20px 24px;
}

.portal-sidebar nav {
  display: grid;
  gap: 7px;
  padding: 16px;
}

.portal-sidebar nav button,
.logout-button {
  border: 0;
  border-radius: 9px;
  padding: 14px;
  color: #22304a;
  background: transparent;
  font-weight: 850;
  text-align: left;
}

.portal-sidebar nav button.active,
.portal-sidebar nav button:hover {
  color: var(--white);
  background: var(--blue);
}

.logout-button {
  margin: auto 16px 18px;
  color: var(--red);
}

.portal-main {
  min-width: 0;
}

.dashboard-grid,
.portal-card,
.profile-hero-card,
.progress-card {
  min-width: 0;
}

.portal-topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 74px;
  padding: 14px 28px;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
}

.menu-button {
  border: 0;
  color: var(--ink);
  background: transparent;
  font-size: 1.4rem;
}

.portal-user {
  display: flex;
  align-items: center;
  gap: 12px;
}

.portal-user img {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
}

.portal-user strong,
.portal-user small {
  display: block;
}

.portal-user small {
  color: var(--muted);
}

.notice-dot {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  color: var(--white);
  background: var(--red);
  font-size: 0.75rem;
  font-weight: 900;
}

.portal-content {
  display: none;
  padding: 26px;
}

.portal-content.active {
  display: block;
}

.portal-heading h1 {
  margin-bottom: 6px;
  font-size: 2rem;
}

.portal-heading p {
  color: var(--muted);
}

.dashboard-top {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(380px, 0.95fr);
  gap: 22px;
  margin-bottom: 24px;
}

.profile-hero-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 26px;
  align-items: start;
  border-radius: var(--radius);
  padding: 28px;
  color: var(--white);
  background: linear-gradient(135deg, var(--blue), #06215a);
}

.profile-identity {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.profile-hero-card img {
  width: 112px;
  height: 112px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
  background: var(--white);
}

.profile-hero-card h2 {
  margin-bottom: 6px;
  color: var(--white);
}

.profile-hero-card h2 span {
  border-radius: 999px;
  margin-left: 8px;
  padding: 5px 8px;
  color: var(--white);
  background: rgba(8, 168, 72, 0.65);
  font-size: 0.78rem;
}

.profile-course {
  margin: 0 0 12px;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 700;
}

.profile-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 18px;
}

.profile-hero-card small {
  display: inline-block;
  margin-top: 0;
  color: rgba(255, 255, 255, 0.76);
}

.profile-hero-card button {
  margin-top: 18px;
  padding: 10px 26px;
  color: var(--white);
  border: 1px solid rgba(255, 255, 255, 0.75);
  background: transparent;
}

.profile-hero-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 24px;
  margin: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: 22px;
}

.profile-hero-card dt {
  color: #bfd0e9;
}

.profile-hero-card dd {
  margin: 0;
}

.progress-card {
  padding: 24px;
}

.progress-card h2,
.portal-card h2 {
  margin-bottom: 18px;
  font-size: 1.3rem;
}

.progress-layout {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 26px;
  align-items: center;
}

.progress-ring {
  display: grid;
  width: 150px;
  height: 150px;
  place-items: center;
  border: 16px solid #edf1f7;
  border-top-color: var(--green);
  border-right-color: var(--green);
  border-radius: 50%;
  color: var(--ink);
  font-size: 2.3rem;
  font-weight: 900;
}

.progress-ring span {
  display: block;
  margin-top: -52px;
  color: #334155;
  font-size: 0.9rem;
  font-weight: 650;
}

.progress-lines {
  display: grid;
  gap: 20px;
}

.progress-lines div,
.course-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
}

.progress-lines i,
.course-row i {
  grid-column: 1 / -1;
  height: 6px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--green) var(--value), #e8edf5 var(--value));
}

.progress-card button {
  margin-top: 22px;
  padding: 11px 24px;
  color: var(--blue);
  border: 1px solid var(--blue);
  background: transparent;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 22px;
}

.portal-card {
  padding: 22px;
}

.dashboard-grid .portal-card:nth-child(1),
.dashboard-grid .portal-card:nth-child(2),
.dashboard-grid .portal-card:nth-child(3) {
  grid-column: span 4;
}

.dashboard-grid .portal-card:nth-child(4) {
  grid-column: span 3;
}

.dashboard-grid .portal-card:nth-child(5) {
  grid-column: span 3;
}

.dashboard-grid .portal-card:nth-child(6) {
  grid-column: span 6;
}

.card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.card-head button {
  color: var(--blue-2);
  background: transparent;
}

.course-row,
.class-row,
.score-row {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 12px;
  margin-top: 12px;
  padding: 14px;
}

.class-row,
.score-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.class-row time {
  min-width: 58px;
  border-radius: 11px;
  padding: 8px;
  color: var(--red);
  background: #f6f8fb;
  font-weight: 900;
  text-align: center;
  text-transform: uppercase;
}

.class-row time b {
  display: block;
  color: var(--ink);
  font-size: 1.5rem;
}

.class-row span,
.score-row small {
  display: block;
  color: var(--muted);
}

.class-row button,
.mentor-actions button,
.mentor-actions a {
  border: 1px solid var(--blue-2);
  padding: 10px 18px;
  border-radius: 9px;
  color: var(--blue-2);
  background: transparent;
  font-weight: 850;
  text-decoration: none;
}

.tracker-list {
  position: relative;
  display: grid;
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tracker-list li {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  gap: 12px;
  align-items: center;
  color: #334155;
}

.tracker-list span {
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border: 3px solid #a8b3c4;
  border-radius: 50%;
  background: var(--white);
}

.tracker-list li.done span {
  border-color: var(--green);
  background: var(--green);
}

.tracker-list li.active span {
  border-color: #f5a000;
}

.tracker-list strong {
  border-radius: 999px;
  padding: 6px 10px;
  color: var(--muted);
  background: #f2f5f9;
  font-size: 0.78rem;
}

.tracker-list li.done strong {
  color: var(--green);
  background: #dff6eb;
}

.tracker-list li.active strong {
  color: #c06d00;
  background: #fff0d8;
}

.tracker-list.large {
  gap: 24px;
  font-size: 1.05rem;
}

.mentor-card {
  display: flex;
  align-items: center;
  gap: 14px;
}

.mentor-card img {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
}

.mentor-card strong,
.mentor-card span {
  display: block;
}

.mentor-card span {
  color: var(--muted);
}

.mentor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.quick-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.quick-grid button {
  min-height: 76px;
  color: var(--blue);
  background: #eef5ff;
}

.portal-content:not(#portal-dashboard) .full-card {
  max-width: 860px;
}

.detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.profile-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.profile-detail-grid div {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px;
  background: #fbfdff;
}

.profile-detail-grid span,
.muted-text {
  color: var(--muted);
}

.profile-detail-grid span,
.profile-detail-grid strong {
  display: block;
}

.profile-detail-grid strong {
  margin-top: 6px;
  color: var(--ink);
}

.topic-list {
  display: grid;
  gap: 15px;
}

.topic-list div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
}

.topic-list i {
  grid-column: 1 / -1;
  height: 7px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--blue-2) var(--value), #e8edf5 var(--value));
}

.topic-list.compact {
  margin-top: 18px;
}

.flashcard-layout,
.exam-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  gap: 22px;
}

.flashcard-study-card,
.exam-card {
  overflow: visible;
}

.flashcard-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
}

.flashcard-meta span,
.exam-pill {
  border-radius: 999px;
  padding: 7px 10px;
  color: var(--blue);
  background: #eef5ff;
  font-size: 0.88rem;
  font-weight: 850;
}

.flashcard {
  position: relative;
  display: block;
  width: 100%;
  min-height: 310px;
  border: 0;
  border-radius: 18px;
  padding: 0;
  background: transparent;
  perspective: 1100px;
}

.flashcard-face {
  position: absolute;
  inset: 0;
  display: grid;
  align-content: center;
  gap: 18px;
  border: 1px solid rgba(10, 42, 102, 0.12);
  border-radius: 18px;
  padding: 34px;
  color: var(--white);
  background: linear-gradient(135deg, var(--blue), #0d4aa2);
  box-shadow: var(--shadow);
  text-align: left;
  backface-visibility: hidden;
  transition: transform 220ms ease;
}

.flashcard-back {
  background: linear-gradient(135deg, #063b45, var(--teal));
  transform: rotateY(180deg);
}

.flashcard.flipped .flashcard-front {
  transform: rotateY(180deg);
}

.flashcard.flipped .flashcard-back {
  transform: rotateY(360deg);
}

.flashcard-face small {
  width: max-content;
  border-radius: 999px;
  padding: 7px 11px;
  color: var(--blue);
  background: var(--white);
  font-weight: 900;
}

.flashcard-face strong {
  max-width: 760px;
  color: var(--white);
  font-size: clamp(1.5rem, 3vw, 2.15rem);
  line-height: 1.2;
  white-space: pre-line;
}

.flashcard.is-empty {
  cursor: default;
  opacity: 0.82;
}

.flashcard-face em {
  color: rgba(255, 255, 255, 0.78);
  font-style: normal;
  font-weight: 750;
}

.flashcard-actions,
.quiz-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.flashcard-actions button,
.quiz-actions button {
  border: 1px solid var(--blue-2);
  border-radius: 9px;
  padding: 11px 16px;
  color: var(--blue-2);
  background: transparent;
  font-weight: 850;
}

.flashcard-actions button:nth-child(3),
.quiz-actions button:first-child {
  color: var(--white);
  border-color: var(--green);
  background: var(--green);
}

.exam-library-card {
  margin-bottom: 22px;
}

.exam-library {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

.exam-choice {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px;
  background: #fbfdff;
}

.exam-choice span {
  width: max-content;
  border-radius: 999px;
  padding: 5px 8px;
  color: var(--blue);
  background: #eef5ff;
  font-size: 0.78rem;
  font-weight: 900;
}

.exam-choice strong {
  color: var(--ink);
  line-height: 1.25;
}

.exam-choice small {
  color: var(--muted);
}

.exam-choice button {
  margin-top: 6px;
  border: 1px solid var(--green);
  border-radius: 9px;
  padding: 10px 12px;
  color: var(--white);
  background: var(--green);
  font-weight: 900;
}

.quiz-choice span {
  color: #5a2bbd;
  background: #f2edff;
}

.quiz-choice button {
  border-color: var(--blue-2);
  background: var(--blue-2);
}

.runner-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
}

.runner-heading button {
  border: 1px solid var(--blue-2);
  border-radius: 9px;
  padding: 11px 16px;
  color: var(--blue-2);
  background: transparent;
  font-weight: 850;
}

.exam-helper {
  margin: -8px 0 18px;
}

.quiz-form {
  display: grid;
  gap: 16px;
}

.quiz-question {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 18px;
}

.quiz-question legend {
  padding-right: 10px;
  color: var(--ink);
  font-weight: 900;
}

.quiz-question label {
  display: block;
  border: 1px solid transparent;
  border-radius: 10px;
  margin-top: 10px;
  padding: 10px 12px;
  color: #334155;
  background: #f8fbff;
}

.quiz-question input {
  margin-right: 8px;
}

.quiz-question p {
  display: none;
  border-left: 3px solid var(--blue-2);
  margin-top: 12px;
  padding-left: 12px;
  color: var(--muted);
}

.quiz-question.correct {
  border-color: rgba(8, 168, 72, 0.35);
  background: #f4fcf7;
}

.quiz-question.incorrect {
  border-color: rgba(222, 48, 48, 0.28);
  background: #fff8f8;
}

.quiz-question.correct p,
.quiz-question.incorrect p {
  display: block;
}

.quiz-question label.is-correct {
  border-color: rgba(8, 168, 72, 0.3);
  background: #e8f8ef;
  color: var(--green);
  font-weight: 850;
}

.quiz-question label.is-wrong {
  border-color: rgba(222, 48, 48, 0.25);
  background: #fff0f0;
  color: var(--red);
  font-weight: 850;
}

.quiz-score {
  display: grid;
  min-height: 120px;
  place-items: center;
  border-radius: 16px;
  margin-bottom: 16px;
  color: var(--blue);
  background: #eef5ff;
  font-size: 2rem;
  font-weight: 950;
  text-align: center;
}

.score-bars {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  align-items: end;
  height: 220px;
  padding-top: 20px;
}

.score-bars span {
  display: grid;
  align-items: end;
  justify-items: center;
  height: var(--value);
  min-height: 72px;
  border-radius: 12px 12px 8px 8px;
  padding: 12px 6px;
  color: var(--white);
  background: linear-gradient(180deg, var(--blue-2), var(--blue));
  font-size: 0.9rem;
  font-weight: 900;
  text-align: center;
}

.toast {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 100;
  max-width: 340px;
  border-radius: 12px;
  padding: 12px 14px;
  color: var(--white);
  background: var(--blue);
  box-shadow: var(--shadow);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 160ms ease, transform 160ms ease;
  pointer-events: none;
}

.toast.show {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1320px) {
  .dashboard-top {
    grid-template-columns: 1fr;
  }

  .dashboard-grid .portal-card {
    grid-column: span 6 !important;
  }
}

@media (max-width: 1100px) {
  .feature-grid article:nth-child(5),
  .feature-grid article:nth-child(6) {
    grid-column: auto;
  }

  .site-header {
    flex-wrap: wrap;
  }

  .main-nav {
    order: 3;
    width: 100%;
    flex-wrap: wrap;
    overflow: visible;
  }

  .nav-dropdown-menu {
    left: 0;
    transform: translateY(-6px);
  }

  .nav-dropdown.open .nav-dropdown-menu,
  .nav-dropdown:hover .nav-dropdown-menu,
  .nav-dropdown:focus-within .nav-dropdown-menu {
    transform: translateY(0);
  }

  .hero,
  .founder-hero,
  .founder-preview-grid,
  .faq-lead-section,
  .flashcard-layout,
  .exam-layout,
  .dashboard-top,
  .login-shell {
    grid-template-columns: 1fr;
  }

  .hero-copy {
    padding-bottom: 0;
  }

  .hero-image-wrap {
    min-height: 440px;
  }

  .pathway-grid,
  .program-grid,
  .testimonial-grid,
  .feature-grid,
  .founder-story-grid,
  .proof-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-page.active {
    grid-template-columns: 1fr;
  }

  .portal-sidebar {
    position: static;
    height: auto;
  }

  .portal-sidebar nav {
    display: flex;
    flex-wrap: wrap;
  }

  .portal-sidebar nav button {
    flex: 1 1 170px;
  }

  .logout-button {
    margin-top: 0;
  }

  .dashboard-grid .portal-card {
    grid-column: span 6 !important;
  }

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

@media (max-width: 720px) {
  .site-header,
  .login-header,
  .hero,
  .founder-hero,
  .section,
  .faq-lead-section,
  .final-cta,
  .portal-content {
    padding-inline: 16px;
  }

  .brand strong {
    font-size: 1.6rem;
  }

  .site-header > .primary-action {
    width: 100%;
  }

  .login-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .login-page.active {
    background: var(--soft);
  }

  .hero h1 {
    font-size: clamp(2.6rem, 13vw, 4rem);
  }

  .subhead {
    font-size: 1rem;
  }

  .trust-row,
  .pathway-grid,
  .program-grid,
  .testimonial-grid,
  .feature-grid,
  .founder-story-grid,
  .proof-list,
  .timeline,
  .form-grid,
  .detail-grid,
  .profile-detail-grid,
  .dashboard-top,
  .profile-hero-card,
  .progress-layout {
    grid-template-columns: 1fr;
  }

  .hero-image-wrap {
    min-height: 360px;
  }

  .hero-stat-card {
    position: static;
    width: auto;
    margin: -80px 16px 20px;
  }

  .final-cta,
  .card-head,
  .runner-heading,
  .class-row,
  .score-row {
    align-items: start;
    flex-direction: column;
  }

  .portal-topbar {
    align-items: start;
    flex-direction: column;
  }

  .flashcard {
    min-height: 360px;
  }

  .flashcard-face {
    padding: 24px;
  }

  .flashcard-actions button,
  .quiz-actions button {
    flex: 1 1 140px;
  }

  .profile-hero-card dl {
    border-left: 0;
    padding-left: 0;
  }

  .dashboard-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-grid .portal-card {
    grid-column: auto !important;
  }

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

  .exam-library {
    grid-template-columns: 1fr;
  }
}

/* Premium visual refresh */
:root {
  --blue: #071a3f;
  --blue-2: #0b3a86;
  --gold: #c59b3b;
  --green: #079455;
  --red: #c81e35;
  --ink: #0b0d12;
  --muted: #667085;
  --line: #e6e8ec;
  --soft: #f5f5f2;
  --white: #ffffff;
  --shadow: 0 26px 70px rgba(15, 23, 42, 0.08);
  --radius: 10px;
}

html {
  scroll-behavior: smooth;
}

body {
  background: #f7f7f4;
  color: var(--ink);
  letter-spacing: 0;
}

button,
a,
input,
select {
  transition: background 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

button:hover,
a:hover {
  transform: translateY(-1px);
}

.site-header,
.login-header {
  min-height: 68px;
  border-bottom: 1px solid rgba(11, 13, 18, 0.08);
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 10px 40px rgba(15, 23, 42, 0.04);
  backdrop-filter: blur(24px) saturate(140%);
}

.brand {
  color: var(--ink);
}

.brand-mark {
  flex: 0 0 auto;
  width: 88px;
  height: 88px;
  border-radius: 10px;
  object-fit: cover;
  object-position: center;
  box-shadow: none;
}

.brand strong {
  color: var(--ink);
  font-size: 1.85rem;
  letter-spacing: 0;
}

.brand small {
  color: #424854;
  letter-spacing: 0.18em;
}

.main-nav {
  gap: 26px;
}

.main-nav a,
.nav-link-button,
.nav-dropdown-toggle {
  color: rgba(11, 13, 18, 0.78);
  font-size: 0.88rem;
  letter-spacing: 0;
}

.main-nav a:hover,
.nav-link-button:hover,
.nav-dropdown-toggle:hover {
  color: var(--ink);
}

.primary-action,
.whatsapp-action,
.outline-action,
.program-card button,
.lead-form button,
.profile-hero-card button,
.portal-card button {
  border-radius: 999px;
}

.primary-action,
.primary-action.blue,
.price-row button {
  background: #111318;
  box-shadow: none;
}

.whatsapp-action {
  background: #079455;
  box-shadow: none;
}

.primary-action:hover,
.whatsapp-action:hover,
.price-row button:hover,
.exam-choice button:hover {
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.16);
}

.hero {
  position: relative;
  grid-template-columns: minmax(0, 800px);
  align-items: center;
  min-height: 700px;
  padding: 48px clamp(20px, 6vw, 84px);
  isolation: isolate;
  background: #0b0d12;
}

.hero::before {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(5, 8, 15, 0.84) 0%, rgba(5, 8, 15, 0.58) 42%, rgba(5, 8, 15, 0.16) 78%),
    linear-gradient(0deg, rgba(5, 8, 15, 0.28), rgba(5, 8, 15, 0.04));
  content: "";
}

.hero-copy {
  position: relative;
  z-index: 3;
  align-content: center;
  padding-bottom: 0;
}

.hero-image-wrap {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 0;
  min-height: 0;
}

.hero-image-wrap img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  filter: saturate(0.96) contrast(1.03);
  object-position: center right;
}

.eyebrow,
.section-kicker {
  color: rgba(11, 13, 18, 0.58);
  background: transparent;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
}

.hero .eyebrow {
  color: rgba(255, 255, 255, 0.74);
}

.hero h1 {
  max-width: 860px;
  color: #fff;
  font-size: 4.6rem;
  line-height: 1.02;
  letter-spacing: 0;
}

.hero h1 span,
.hero h1 em {
  color: #fff;
}

.subhead,
.contact-line {
  color: rgba(255, 255, 255, 0.78);
}

.subhead {
  max-width: 680px;
  font-size: clamp(1.05rem, 1.7vw, 1.3rem);
}

.contact-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 22px;
  margin: -28px 0 28px;
  font-size: 0.95rem;
}

.contact-line span + span::before {
  margin-right: 22px;
  color: rgba(255, 255, 255, 0.5);
  content: "•";
}

.trust-row {
  grid-template-columns: repeat(4, max-content);
  gap: 24px;
  max-width: none;
}

.trust-row span {
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.84rem;
  font-weight: 760;
  white-space: nowrap;
}

.trust-row span::before {
  color: rgba(255, 255, 255, 0.58);
}

.hero-stat-card {
  right: clamp(20px, 5vw, 74px);
  top: auto;
  bottom: clamp(34px, 7vw, 88px);
  width: 270px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 12px;
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
  box-shadow: none;
  backdrop-filter: blur(20px);
}

.hero-stat-card strong,
.hero-stat-card small,
.avatar-stack {
  color: #fff;
}

.hero-stat-card hr {
  border-top-color: rgba(255, 255, 255, 0.24);
}

.hero-highlight-list {
  display: grid;
  gap: 9px;
  margin: 0;
  padding-left: 18px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.35;
}

.section {
  padding-block: clamp(68px, 8vw, 108px);
}

.section h2,
.faq-card h2,
.lead-form h2 {
  color: var(--ink);
  font-size: clamp(2.35rem, 4.8vw, 4.25rem);
  letter-spacing: 0;
}

.pathway-card,
.program-card,
.testimonial-grid article,
.faq-card,
.lead-form,
.portal-card,
.progress-card,
.founder-preview-card,
.founder-card,
.founder-story-grid article,
.proof-list div,
.login-panel,
.login-benefits {
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.06);
}

.pathway-card {
  min-height: 310px;
  padding: 30px;
  background: #fff !important;
}

.pathway-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  max-width: 1760px;
}

.pathway-card:hover,
.program-card:hover,
.testimonial-grid article:hover,
.portal-card:hover,
.progress-card:hover {
  box-shadow: 0 28px 70px rgba(15, 23, 42, 0.1);
  transform: translateY(-2px);
}

.flag,
.feature-icon,
.timeline span {
  box-shadow: none;
  background: #f4f4f1;
}

.pathway-card h3,
.feature-grid h3,
.founder-story-grid h3 {
  color: var(--ink);
}

.pathway-card li,
.program-card li,
.feature-grid p,
.founder-preview-grid p,
.testimonial-grid p,
.founder-story-grid p,
.proof-list span,
details p {
  color: #596170;
}

.pathway-card li::before,
.program-card li::before {
  color: #111318;
  content: "- ";
}

.pathway-card a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 5px;
}

.choose-section,
.testimonials,
.founder-preview,
.founder-proof-section {
  background: #f7f7f4;
}

.timeline-section,
.founder-hero {
  background: linear-gradient(180deg, #fff, #f7f7f4);
}

.program-card {
  min-height: 700px;
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
  perspective: 1400px;
}

.program-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 1560px;
}

.program-card:hover {
  box-shadow: none;
  transform: none;
}

.program-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 700px;
  transition: transform 520ms cubic-bezier(0.2, 0.72, 0.2, 1);
  transform-style: preserve-3d;
}

.program-card.flipped .program-card-inner {
  transform: rotateY(180deg);
}

.program-front,
.program-back,
.program-face {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.06);
  backface-visibility: hidden;
}

.program-front {
  background: #fff;
  transform: rotateY(0deg);
}

.program-front ul {
  flex: 1;
  margin-bottom: 8px;
}

.program-front [data-program-flip],
.program-flip-button {
  flex: 0 0 auto;
  margin: 0 24px 24px;
  padding: 12px 20px;
  color: #fff;
  background: #111318;
}

.program-back {
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 36px;
  color: #fff;
  background: linear-gradient(145deg, #111318, #20242d);
  text-align: center;
  transform: rotateY(180deg);
}

.text-link-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  border: 0;
  border-radius: 999px;
  margin-top: 8px;
  padding: 11px 18px;
  color: #fff;
  background: #111318;
  box-shadow: 0 12px 24px rgba(17, 19, 24, 0.14);
  font-size: 0.94rem;
  font-weight: 900;
  line-height: 1;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.text-link-button::after {
  margin-left: 8px;
  content: "→";
}

.text-link-button:hover {
  background: #0a2a66;
  box-shadow: 0 16px 30px rgba(10, 42, 102, 0.16);
  transform: translateY(-2px);
}

.program-back span {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.85rem;
  font-weight: 800;
  text-transform: uppercase;
}

.program-back strong {
  color: #fff;
  font-size: 3rem;
  line-height: 1;
}

.program-back p {
  max-width: 260px;
  color: rgba(255, 255, 255, 0.76);
}

.program-back button {
  min-width: 180px;
  padding: 12px 20px;
  color: #111318;
  background: #fff;
}

.program-back .program-back-button {
  border: 1px solid rgba(255, 255, 255, 0.42);
  color: #fff;
  background: transparent;
}

.program-card header {
  flex: 0 0 auto;
  min-height: 92px;
  padding: 24px;
  color: #fff;
  background: #111318 !important;
  text-align: left;
}

.program-front > header {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 170px;
  min-height: 170px;
}

.testimonial-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 1560px;
}

.gold-header {
  background: linear-gradient(135deg, #111318, #34302a) !important;
}

.premium-card .price-row button {
  color: #fff;
  background: #111318;
}

.program-contact strong {
  color: #596170;
  font-size: 0.95rem;
  font-weight: 700;
}

.founder-hero h1 {
  max-width: none;
  font-size: 3.75rem;
  line-height: 1.08;
  white-space: nowrap;
}

.founder-hero .subhead {
  color: #596170;
}

.founder-credentials {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0 4px;
}

.founder-credentials span {
  border: 1px solid rgba(11, 13, 18, 0.12);
  border-radius: 999px;
  padding: 9px 14px;
  color: #2f3745;
  background: rgba(255, 255, 255, 0.78);
  font-size: 0.82rem;
  font-weight: 800;
}

.founder-story-section > h2 {
  max-width: 1500px;
  font-size: 3.6rem;
  white-space: nowrap;
}

.founder-story-heading span {
  display: block;
}

.founder-story-lead {
  max-width: 980px;
  margin: -24px auto 64px;
  color: #596170;
  font-size: 1.08rem;
  line-height: 1.75;
  text-align: center;
}

.founder-story-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 64px;
  max-width: 1240px;
}

.founder-story-grid article {
  min-height: 260px;
  border: 0;
  border-top: 1px solid rgba(11, 13, 18, 0.2);
  border-radius: 0;
  padding: 32px 0 44px;
  background: transparent;
  box-shadow: none;
}

.founder-story-grid h3 {
  margin-top: 14px;
  color: #111318;
  font-size: 1.35rem;
}

.story-code {
  color: #596170;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.program-note {
  color: #596170;
}

.founder-preview-grid {
  max-width: 1240px;
}

.founder-preview-grid h2 {
  max-width: none;
  font-size: 3rem;
  white-space: nowrap;
}

.founder-preview-card img,
.founder-card img,
.mentor-card img {
  object-fit: cover;
  object-position: center;
}

.founder-preview-card strong,
.founder-card strong,
.proof-list strong,
.login-benefits h2 {
  color: var(--ink);
}

.ribbon {
  background: #111318;
}

.lead-form {
  color: #fff;
  background:
    linear-gradient(135deg, rgba(5, 8, 15, 0.92), rgba(5, 8, 15, 0.78)),
    url("assets/nurse-hero.jpg") center / cover no-repeat;
}

.lead-form input,
.lead-form select,
input,
select {
  border: 1px solid rgba(11, 13, 18, 0.14);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.94);
}

.lead-form button {
  color: #fff;
  background: #111318;
}

.direct-contact {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.direct-contact a {
  display: grid;
  gap: 3px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 8px;
  padding: 13px 14px;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  font-size: 0.9rem;
  font-weight: 800;
  text-decoration: none;
}

.direct-contact a:hover {
  border-color: rgba(255, 255, 255, 0.55);
  background: rgba(255, 255, 255, 0.14);
}

.direct-contact span {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.footer-contact-links a {
  display: inline-block;
  margin: 8px 16px 0 0;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}

.footer-contact-links a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.final-cta {
  background: #111318;
}

.login-page.active {
  background:
    linear-gradient(90deg, rgba(247, 247, 244, 0.98), rgba(247, 247, 244, 0.82)),
    url("assets/nurse-hero.jpg") right center / auto 100% no-repeat;
}

.portal-page {
  background: #f5f5f2;
}

.portal-page.active {
  grid-template-columns: 272px minmax(0, 1fr);
}

.portal-sidebar {
  border-right: 1px solid rgba(11, 13, 18, 0.08);
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(18px);
}

.portal-sidebar nav {
  gap: 4px;
}

.portal-sidebar nav button,
.logout-button {
  border-radius: 8px;
  color: rgba(11, 13, 18, 0.72);
}

.portal-sidebar nav button.active,
.portal-sidebar nav button:hover {
  color: #fff;
  background: #111318;
}

.portal-topbar {
  border-bottom: 1px solid rgba(11, 13, 18, 0.08);
  background: rgba(247, 247, 244, 0.86);
  backdrop-filter: blur(18px);
}

.portal-content {
  padding: clamp(22px, 3vw, 38px);
}

.portal-heading h1 {
  color: var(--ink);
  font-size: clamp(2rem, 3vw, 3.15rem);
  letter-spacing: 0;
}

.profile-hero-card {
  border-radius: 10px;
  background: #111318;
  box-shadow: 0 26px 70px rgba(15, 23, 42, 0.12);
}

.profile-hero-card h2 span {
  background: rgba(7, 148, 85, 0.85);
}

.progress-ring {
  border-color: #e8e8e4;
  border-top-color: #111318;
  border-right-color: #111318;
}

.progress-lines i,
.course-row i,
.topic-list i {
  background: linear-gradient(90deg, #111318 var(--value), #e8e8e4 var(--value));
}

.course-row,
.class-row,
.score-row,
.profile-detail-grid div,
.quiz-question,
.exam-choice {
  border-color: rgba(11, 13, 18, 0.08);
  border-radius: 9px;
  background: #fbfbf8;
}

.card-head button,
.progress-card button,
.class-row button,
.mentor-actions button,
.mentor-actions a,
.runner-heading button,
.flashcard-actions button,
.quiz-actions button {
  border-color: #111318;
  color: #111318;
}

.quick-grid button,
.exam-pill,
.flashcard-meta span,
.exam-choice span,
.quiz-choice span,
.quiz-score {
  color: #111318;
  background: #eeeeea;
}

.exam-choice button,
.quiz-choice button,
.flashcard-actions button:nth-child(3),
.quiz-actions button:first-child {
  border-color: #111318;
  color: #fff;
  background: #111318;
}

.flashcard-face {
  border-radius: 10px;
  background: linear-gradient(135deg, #111318, #2a2d35);
  box-shadow: none;
}

.flashcard-back {
  background: linear-gradient(135deg, #111318, #22352c);
}

.quiz-question label {
  background: #f4f4f1;
}

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

  .hero h1 {
    font-size: 4rem;
  }

  .program-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 980px;
  }

  .testimonial-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 980px;
  }
}

@media (max-width: 1100px) {
  .hero {
    grid-template-columns: 1fr;
    min-height: 760px;
  }

  .hero-stat-card {
    position: relative;
    right: auto;
    bottom: auto;
    width: min(100%, 520px);
    margin-top: 34px;
  }

  .founder-hero h1 {
    font-size: 3rem;
  }

  .founder-preview-grid h2 {
    font-size: 2.5rem;
  }
}

@media (max-width: 720px) {
  .site-header {
    gap: 16px;
  }

  .brand-mark {
    width: 76px;
    height: 76px;
  }

  .hero {
    min-height: 680px;
    padding-block: 52px;
  }

  .hero::before {
    background:
      linear-gradient(180deg, rgba(5, 8, 15, 0.82) 0%, rgba(5, 8, 15, 0.62) 54%, rgba(5, 8, 15, 0.36) 100%);
  }

  .trust-row {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .trust-row span {
    white-space: normal;
  }

  .pathway-grid {
    grid-template-columns: 1fr;
  }

  .hero-stat-card {
    margin: 28px 0 0;
  }

  .founder-hero h1 {
    font-size: 1.65rem;
  }

  .founder-preview-grid h2 {
    font-size: 1.65rem;
  }

  .program-grid {
    grid-template-columns: 1fr;
  }
}

/* NCLEX-RN program detail page */
.pathway-link {
  border: 0;
  padding: 0;
  color: var(--ink);
  background: transparent;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 5px;
}

.nclex-page {
  color: var(--ink);
  background: #f7f7f4;
}

.nclex-program-hero {
  position: relative;
  display: grid;
  align-content: center;
  min-height: 590px;
  padding: clamp(72px, 9vw, 130px) clamp(20px, 7vw, 110px);
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(5, 8, 15, 0.9) 0%, rgba(5, 8, 15, 0.72) 50%, rgba(5, 8, 15, 0.18) 100%),
    url("assets/nurse-hero.jpg") center right / cover no-repeat;
}

.nclex-program-hero .section-kicker {
  margin: 0 0 18px;
  color: rgba(255, 255, 255, 0.72);
  text-align: left;
}

.nclex-program-hero h1 {
  max-width: 900px;
  margin-bottom: 24px;
  color: #fff;
  font-size: clamp(3rem, 6vw, 5.4rem);
  line-height: 1.02;
}

.nclex-program-hero > p:not(.section-kicker) {
  max-width: 760px;
  margin-bottom: 32px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 1.16rem;
}

.lpn-program-hero {
  min-height: 680px;
}

.lpn-program-hero h1 {
  max-width: 980px;
  font-size: clamp(2.8rem, 5.4vw, 4.9rem);
}

.lpn-program-hero > p:not(.section-kicker) {
  margin-bottom: 16px;
}

.language-program-hero,
.registration-program-hero {
  min-height: 650px;
}

.language-program-hero h1,
.registration-program-hero h1 {
  max-width: 1050px;
  font-size: clamp(2.8rem, 5.4vw, 4.9rem);
}

.nclex-hero-points {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  max-width: 900px;
}

.nclex-hero-points span {
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  padding: 9px 14px;
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  font-size: 0.86rem;
  font-weight: 800;
  backdrop-filter: blur(14px);
}

.nclex-package-section {
  padding: clamp(72px, 9vw, 120px) clamp(18px, 6vw, 88px);
  background: #f7f7f4;
}

.nclex-package-section.quick-review {
  background: #fff;
}

.nclex-package-container {
  max-width: 1420px;
  margin: 0 auto;
}

.nclex-package-heading {
  max-width: 960px;
  margin-bottom: 54px;
}

.nclex-package-heading .section-kicker {
  margin: 0 0 14px;
  text-align: left;
}

.nclex-package-heading h2 {
  margin-bottom: 22px;
  font-size: clamp(2.5rem, 5vw, 4.4rem);
  line-height: 1.04;
}

.nclex-package-heading p {
  max-width: 900px;
  color: #596170;
  font-size: 1.08rem;
}

.nclex-package-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: clamp(42px, 6vw, 86px);
  align-items: start;
}

.nclex-package-content > h3,
.nclex-best-for h3 {
  margin-bottom: 22px;
  font-size: 1.55rem;
}

.nclex-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 34px;
}

.nclex-feature-grid article {
  border-top: 1px solid rgba(11, 13, 18, 0.12);
  padding: 24px 0;
}

.nclex-feature-grid h4 {
  position: relative;
  margin: 0 0 8px;
  padding-left: 24px;
  color: var(--ink);
  font-size: 1.05rem;
}

.nclex-feature-grid h4::before {
  position: absolute;
  left: 0;
  color: #c59b3b;
  content: "★";
}

.nclex-feature-grid p {
  margin: 0;
  color: #596170;
}

.nclex-best-for {
  margin-top: 38px;
  border-radius: 8px;
  padding: 30px;
  background: #ecece7;
}

.nclex-best-for p {
  margin-bottom: 16px;
  color: #596170;
}

.nclex-best-for ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nclex-best-for li {
  font-weight: 750;
}

.nclex-best-for li::before {
  margin-right: 8px;
  color: #079455;
  content: "✓";
}

.lpn-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-top: 38px;
}

.lpn-summary-grid .nclex-best-for {
  margin-top: 0;
}

.lpn-summary-grid .nclex-best-for ul {
  grid-template-columns: 1fr;
}

.lpn-action-panel > strong {
  font-size: 2.8rem;
}

.language-action-panel > strong,
.registration-action-panel > strong {
  font-size: 2.05rem;
  line-height: 1.1;
}

.registration-disclaimer {
  max-width: 980px;
  margin: 48px 0 0;
  border-left: 3px solid #111318;
  padding: 18px 22px;
  color: #596170;
  background: #f0f0eb;
  font-size: 0.96rem;
  font-weight: 700;
}

.nclex-action-panel {
  position: sticky;
  top: 142px;
  display: grid;
  gap: 16px;
  border-radius: 10px;
  padding: 34px;
  color: #fff;
  background: #111318;
  box-shadow: 0 28px 70px rgba(15, 23, 42, 0.16);
}

.nclex-action-panel > span {
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.nclex-action-panel > strong {
  font-size: 2.8rem;
  line-height: 1;
}

.nclex-action-panel p {
  color: rgba(255, 255, 255, 0.72);
}

.nclex-action-panel .primary-action,
.nclex-secondary-action {
  width: 100%;
  min-height: 48px;
  padding: 12px 18px;
  text-align: center;
}

.nclex-action-panel .primary-action {
  color: #111318;
  background: #fff;
}

.nclex-secondary-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 999px;
  color: #fff;
  font-weight: 850;
  text-decoration: none;
}

.nclex-secondary-action:hover {
  border-color: #fff;
}

.nclex-closing-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: clamp(52px, 7vw, 88px) clamp(20px, 7vw, 110px);
  color: #fff;
  background: #111318;
}

.nclex-closing-cta .section-kicker {
  margin: 0 0 12px;
  text-align: left;
}

.nclex-closing-cta h2 {
  margin-bottom: 10px;
  color: #fff;
  font-size: clamp(2rem, 4vw, 3.5rem);
}

.nclex-closing-cta p:not(.section-kicker) {
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.7);
}

@media (max-width: 980px) {
  .nclex-package-layout {
    grid-template-columns: 1fr;
  }

  .nclex-action-panel {
    position: static;
  }
}

@media (max-width: 720px) {
  .nclex-program-hero {
    min-height: 650px;
    padding-inline: 20px;
    background:
      linear-gradient(180deg, rgba(5, 8, 15, 0.78), rgba(5, 8, 15, 0.68)),
      url("assets/nurse-hero.jpg") 62% center / cover no-repeat;
  }

  .nclex-program-hero h1 {
    font-size: 2.9rem;
  }

  .nclex-feature-grid,
  .nclex-best-for ul,
  .lpn-summary-grid {
    grid-template-columns: 1fr;
  }

  .nclex-closing-cta {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Founder portrait placement */
.founder-story-action {
  min-width: 210px;
  margin-top: 24px;
}

.founder-preview-card {
  gap: 0;
  justify-items: stretch;
  overflow: hidden;
  padding: 0;
}

.founder-preview-card .founder-photo {
  width: 100%;
  height: auto;
  aspect-ratio: 1086 / 1448;
  border-radius: 0;
  object-fit: contain;
  object-position: center;
}

.founder-preview-card strong {
  padding: 22px 24px 26px;
  line-height: 1.4;
}

.founder-card .founder-photo {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  border-radius: 6px;
  object-fit: contain;
  object-position: center;
}

.founder-card {
  gap: 14px;
  padding: 10px 10px 22px;
}

/* Keep the founder introduction compact and give the portrait a homepage-style crop. */
body .founder-hero {
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  align-items: start;
  min-height: 0;
  padding-top: clamp(34px, 4vw, 56px);
  padding-bottom: clamp(34px, 4vw, 56px);
}

body .founder-card .founder-photo {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
}

@media (max-width: 720px) {
  body .founder-card .founder-photo {
    height: auto;
    aspect-ratio: auto;
  }
}

@media (max-width: 720px) {
  .founder-story-action {
    width: 100%;
  }

  .founder-preview-card .founder-photo,
  .founder-card .founder-photo {
    height: auto;
  }
}

@media (max-width: 1100px) {
  .founder-story-section > h2 {
    max-width: 900px;
    font-size: 3rem;
    white-space: normal;
  }

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

@media (max-width: 720px) {
  .direct-contact {
    grid-template-columns: 1fr;
  }

  .footer-contact-links a {
    display: block;
    margin: 6px 0 0;
  }

  .profile-identity {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 16px;
  }

  .profile-hero-card img {
    width: 82px;
    height: 82px;
  }

  .profile-hero-card h2 span {
    display: block;
    width: max-content;
    margin: 8px 0 0;
  }

  .profile-hero-card dl {
    grid-template-columns: 1fr;
  }

  .founder-credentials {
    gap: 8px;
  }

  .founder-credentials span {
    width: 100%;
    border-radius: 8px;
  }

  .founder-story-lead {
    margin-top: -12px;
    text-align: left;
  }

  .founder-story-section > h2 {
    font-size: 2.2rem;
  }

  .founder-story-grid {
    grid-template-columns: 1fr;
  }

  .founder-story-grid article {
    min-height: 0;
  }
}

.is-hidden {
  display: none !important;
}

.access-switch {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 5px;
  background: var(--white);
}

.access-switch span {
  padding: 0 8px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.access-switch button {
  border: 0;
  border-radius: 999px;
  padding: 9px 13px;
  color: var(--muted);
  background: transparent;
  font-weight: 900;
}

.access-switch button.active {
  color: var(--white);
  background: var(--ink);
}

.course-module-grid,
.question-bank-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.question-bank-summary {
  grid-template-columns: minmax(320px, 0.75fr) minmax(0, 1fr);
}

.course-module {
  display: grid;
  gap: 12px;
  align-content: start;
}

.course-module span {
  width: max-content;
  border-radius: 999px;
  padding: 7px 10px;
  color: var(--white);
  background: var(--ink);
  font-size: 0.78rem;
  font-weight: 900;
}

.course-module p {
  color: var(--muted);
}

.course-module button,
.qbank-hero-card button {
  width: 100%;
  border: 0;
  border-radius: 999px;
  margin-top: 8px;
  padding: 13px 18px;
  color: var(--white);
  background: var(--ink);
  font-weight: 900;
}

.exam-mode-module {
  color: var(--white);
  background: var(--ink);
}

.exam-mode-module h2,
.exam-mode-module p {
  color: var(--white);
}

.exam-mode-module span,
.exam-mode-module button {
  color: var(--ink);
  background: var(--white);
}

.qbank-hero-card {
  display: grid;
  gap: 14px;
  align-content: start;
  color: var(--white);
  background: var(--ink);
}

.qbank-hero-card span {
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.qbank-hero-card strong {
  max-width: 420px;
  color: var(--white);
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1;
}

.qbank-hero-card p {
  color: rgba(255, 255, 255, 0.78);
}

.qbank-hero-card button {
  color: var(--ink);
  background: var(--white);
}

.exam-status-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 18px 0;
}

.exam-status-strip div {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 13px;
  background: #fbfdff;
}

.exam-status-strip span,
.exam-status-strip strong {
  display: block;
}

.exam-status-strip span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.exam-status-strip strong {
  margin-top: 4px;
  color: var(--ink);
  font-size: 1.2rem;
}

.question-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}

.question-nav button {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--ink);
  background: var(--white);
  font-weight: 900;
}

.question-nav button.answered {
  color: var(--white);
  border-color: var(--green);
  background: var(--green);
}

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

@media (max-width: 720px) {
  .access-switch {
    align-items: stretch;
    width: 100%;
    flex-wrap: wrap;
    border-radius: 14px;
  }

  .access-switch button {
    flex: 1 1 150px;
  }

  .course-module-grid,
  .question-bank-summary,
  .exam-status-strip {
    grid-template-columns: 1fr;
  }
}
/* 2026-07-13 public content refresh */
.section-intro {
  max-width: 820px;
  margin: 0 auto 34px;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.75;
  text-align: center;
}

.pathway-selection .pathway-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.pathway-selection .pathway-card p {
  color: var(--muted);
  line-height: 1.6;
}

.pathway-selection .flag {
  width: auto;
  min-width: 54px;
  padding: 0 12px;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

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

.seven-step {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.program-summary-grid,
.split-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.program-summary-grid article,
.split-service-grid article,
.pricing-guide,
.career-readiness {
  border: 1px solid var(--line);
  background: #fff;
}

.program-summary-grid article,
.split-service-grid article {
  min-height: 260px;
  padding: 32px;
}

.program-summary-grid article > span {
  display: block;
  margin-bottom: 32px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.program-summary-grid h3,
.split-service-grid h3 {
  margin: 0 0 14px;
  font-size: clamp(1.35rem, 2vw, 2rem);
}

.program-summary-grid p,
.split-service-grid p {
  color: var(--muted);
  line-height: 1.7;
}

.program-summary-grid button {
  margin-top: 18px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.registration-overview .registration-disclaimer,
.registration-disclaimer {
  max-width: 1050px;
  margin: 30px auto 0;
  padding: 20px 22px;
  border-left: 3px solid var(--gold);
  background: #f6f6f4;
  color: var(--muted);
  line-height: 1.65;
}

.pricing-guide,
.career-readiness {
  text-align: center;
}

.pricing-guide .primary-action,
.career-readiness > .primary-action {
  margin-top: 8px;
}

.testimonial-placeholders article {
  border-style: dashed;
  background: #fafaf8;
}

.faq-section {
  background: #f7f7f5;
}

.faq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 18px;
  max-width: 1150px;
  margin: 0 auto;
}

.faq-grid details {
  border: 1px solid var(--line);
  background: #fff;
  padding: 18px 20px;
}

.faq-grid summary {
  cursor: pointer;
  font-weight: 800;
}

.faq-grid details p {
  color: var(--muted);
  line-height: 1.65;
}

.pathway-review-section {
  display: grid;
  grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
  gap: 40px;
  align-items: start;
  background: var(--ink);
  color: #fff;
}

.pathway-review-section .section-kicker,
.pathway-review-section h2 {
  color: #fff;
  text-align: left;
}

.pathway-review-copy > p {
  color: #c8ccd4;
  line-height: 1.7;
}

.pathway-review-section .lead-form {
  padding: 28px;
  background: #fff;
  color: var(--ink);
}

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

.expanded-lead-form label {
  display: grid;
  gap: 7px;
}

.expanded-lead-form label > span {
  font-size: 0.82rem;
  font-weight: 750;
}

.expanded-lead-form input,
.expanded-lead-form select {
  width: 100%;
}

.consent-field {
  grid-template-columns: auto 1fr !important;
  align-items: start;
  margin: 18px 0;
  line-height: 1.5;
}

.consent-field input {
  width: 18px;
  margin-top: 3px;
}

.expanded-lead-form > small {
  display: block;
  margin-top: 14px;
  color: var(--muted);
  line-height: 1.5;
}

.comprehensive-footer {
  display: grid;
  gap: 28px;
  padding: 58px max(5vw, 28px);
}

.comprehensive-footer > p,
.general-disclaimer {
  max-width: 1100px;
  color: #c8ccd4;
  line-height: 1.65;
}

.comprehensive-footer nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 22px;
}

.comprehensive-footer nav a,
.comprehensive-footer nav button {
  border: 0;
  background: transparent;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.general-disclaimer {
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.2);
  font-size: 0.86rem;
}

.detail-header .main-nav button {
  border: 0;
  background: transparent;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.founder-philosophy .proof-list {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.founder-quote {
  text-align: center;
  background: var(--ink);
  color: #fff;
}

.founder-quote blockquote {
  max-width: 980px;
  margin: 0 auto 24px;
  font-size: clamp(1.45rem, 3vw, 2.75rem);
  font-weight: 700;
  line-height: 1.25;
}

.founder-quote p {
  margin-bottom: 30px;
  color: #c8ccd4;
}

@media (max-width: 1100px) {
  .pathway-selection .pathway-grid,
  .seven-step {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .founder-philosophy .proof-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .six-up,
  .program-summary-grid,
  .split-service-grid,
  .faq-grid,
  .pathway-review-section,
  .expanded-lead-form .form-grid,
  .founder-philosophy .proof-list,
  .pathway-selection .pathway-grid,
  .seven-step {
    grid-template-columns: 1fr;
  }
  .program-summary-grid article,
  .split-service-grid article {
    min-height: 0;
    padding: 24px;
  }
  .pathway-review-section {
    padding: 54px 20px;
  }
}

/* 2026-07-13 pathway and founder content refinement */
.hero h1 {
  max-width: 980px;
  font-size: clamp(2.5rem, 4.8vw, 4.85rem);
  line-height: 1.04;
}

.trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  max-width: 980px;
}

.trust-row span {
  white-space: normal;
}

.pathway-selection {
  background: #f7f7f4;
}

.pathway-choice-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  max-width: 1560px;
  margin: 0 auto;
}

.pathway-choice-card {
  display: flex;
  min-height: 360px;
  flex-direction: column;
  align-items: flex-start;
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  padding: 28px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.06);
  text-align: left;
}

.pathway-choice-card:hover {
  box-shadow: 0 28px 70px rgba(15, 23, 42, 0.1);
  transform: translateY(-2px);
}

.pathway-choice-card > span {
  display: inline-grid;
  min-width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 999px;
  margin-bottom: 22px;
  color: #111318;
  background: #f0f0ed;
  font-weight: 900;
}

.pathway-choice-card h3 {
  margin-bottom: 14px;
  color: #111318;
  font-size: 1.55rem;
}

.pathway-choice-card p {
  flex: 1;
  color: #596170;
  font-size: 0.98rem;
  line-height: 1.65;
}

.pathway-choice-card .text-link-button {
  margin-top: 18px;
}

#programs .section-intro {
  margin-bottom: 42px;
}

.founder-opening {
  max-width: 850px;
  color: #596170;
  font-size: 1.05rem;
  line-height: 1.75;
}

.founder-method {
  max-width: 1120px;
  margin: 28px auto 0;
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  padding: 28px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.06);
  text-align: left;
}

.founder-method h3 {
  margin-bottom: 16px;
  color: #111318;
}

.founder-method ul,
.program-best-for ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.founder-method li,
.program-best-for li {
  border-radius: 999px;
  padding: 10px 14px;
  color: #111318;
  background: #f4f4f1;
  font-size: 0.92rem;
  font-weight: 800;
}

blockquote.founder-quote {
  max-width: 1120px;
  margin: 28px auto 0;
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 12px;
  padding: clamp(28px, 4vw, 52px);
  background: #fff;
  color: #2d3543;
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.05);
  font-size: clamp(1.02rem, 1.25vw, 1.28rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.85;
  text-align: left;
}

blockquote.founder-quote p {
  margin: 0 0 18px;
  color: inherit;
}

blockquote.founder-quote cite {
  display: grid;
  gap: 4px;
  margin-top: 24px;
  color: #111318;
  font-size: 0.98rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.5;
}

blockquote.founder-quote cite span:first-child {
  font-weight: 750;
}

blockquote.founder-quote cite span + span {
  color: #667085;
  font-size: 0.9rem;
}

.founder-story-section > .service-cta-row {
  display: flex;
  justify-content: center;
  margin-top: 28px;
}

.nclex-package-heading p strong {
  color: #111318;
}

.program-best-for {
  margin-top: 32px;
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  padding: 24px;
  background: #fff;
}

.program-best-for h3 {
  margin-bottom: 18px;
}

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

  .founder-method ul,
  .program-best-for ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .hero h1 {
    font-size: clamp(2.3rem, 11vw, 3.4rem);
  }

  .pathway-choice-grid,
  .founder-method ul,
  .program-best-for ul {
    grid-template-columns: 1fr;
  }

  .pathway-choice-card {
    min-height: 0;
  }
}

/* 2026-07-13 full content, service pages, and QA refinements */
meta {
  display: none;
}

.program-grid {
  align-items: stretch;
}

.program-card {
  height: 760px;
  min-height: 0;
  overflow: hidden;
  isolation: isolate;
}

.program-card-inner {
  min-height: 0;
  height: 100%;
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

.program-front,
.program-back {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.program-front {
  z-index: 2;
}

.program-front ul {
  overflow: auto;
  padding-bottom: 6px;
}

.program-front [data-program-flip] {
  width: calc(100% - 48px);
  min-height: 50px;
  border-radius: 999px;
}

.program-back {
  overflow: hidden;
}

.program-back .program-back-button,
.program-back [data-program-back] {
  width: min(100%, 280px);
  min-height: 46px;
  border-radius: 999px;
}

.pricing-intro {
  max-width: 1180px;
  margin: 38px auto 0;
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  padding: 30px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.05);
  text-align: center;
}

.pricing-intro h3 {
  margin-bottom: 10px;
  color: #111318;
  font-size: clamp(1.35rem, 2vw, 2rem);
}

.pricing-intro p {
  max-width: 920px;
  margin: 0 auto 22px;
  color: #596170;
  line-height: 1.7;
}

.case-study-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  max-width: 1560px;
  margin: 34px auto 0;
  text-align: left;
}

.case-study-grid article {
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  padding: 24px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.05);
}

.case-study-grid h3 {
  margin-bottom: 14px;
  color: #111318;
  font-size: 1.05rem;
}

.case-study-grid p {
  margin: 0 0 10px;
  color: #596170;
  font-size: 0.92rem;
  line-height: 1.55;
}

.case-study-grid strong {
  color: #111318;
}

.testimonial-note {
  max-width: 860px;
  margin: 22px auto 0;
  color: #777f8c;
  font-size: 0.9rem;
  text-align: center;
}

.track-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.track-card {
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  padding: clamp(24px, 3vw, 40px);
  background: #fff;
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.05);
}

.track-card h2 {
  margin: 8px 0 14px;
  color: #111318;
  font-size: clamp(1.65rem, 2.4vw, 2.7rem);
  line-height: 1.08;
}

.track-card h3 {
  margin: 22px 0 12px;
  color: #111318;
}

.track-card p,
.track-card li {
  color: #596170;
  line-height: 1.65;
}

.track-card ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 18px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}

.track-card li::before {
  content: "- ";
  color: #111318;
  font-weight: 900;
}

.service-disclaimer {
  margin-top: 26px;
  border-left: 3px solid #c69a2d;
  padding: 16px 18px;
  background: #f6f6f4;
  color: #596170;
  font-size: 0.95rem;
  line-height: 1.65;
}

.service-disclaimer.prominent {
  max-width: 1200px;
  margin: 28px auto 0;
}

.pathway-review-hero {
  padding: clamp(90px, 12vw, 170px) clamp(24px, 7vw, 120px) 40px;
  text-align: center;
}

.pathway-review-hero h1 {
  max-width: 980px;
  margin: 0 auto 20px;
  color: #111318;
  font-size: clamp(2.8rem, 6vw, 6rem);
  line-height: 1;
}

.pathway-review-hero p {
  max-width: 780px;
  margin: 0 auto;
  color: #596170;
  font-size: 1.08rem;
  line-height: 1.7;
}

.pathway-review-page .pathway-review-section {
  display: block;
  padding: 30px clamp(24px, 7vw, 120px) clamp(80px, 10vw, 130px);
  background: #f7f7f4;
  color: #111318;
}

.pathway-review-page .lead-form {
  max-width: 1180px;
  margin: 0 auto;
  border-radius: 10px;
  box-shadow: 0 30px 90px rgba(15, 23, 42, 0.08);
}

.expanded-lead-form .form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.consent-row {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 10px;
  margin: 20px 0;
  color: #596170;
  line-height: 1.5;
}

.consent-row input {
  width: 18px;
  margin-top: 3px;
}

.site-footer {
  display: grid;
  gap: 18px;
  padding: 34px clamp(24px, 7vw, 120px);
  background: #111318;
  color: rgba(255, 255, 255, 0.82);
}

.site-footer p,
.site-footer small {
  max-width: 1180px;
  margin: 0;
  line-height: 1.6;
}

.site-footer p {
  font-weight: 700;
}

.site-footer nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
}

.site-footer a,
.site-footer button {
  border: 0;
  padding: 0;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}

.site-footer small {
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  padding-top: 16px;
  color: rgba(255, 255, 255, 0.64);
  font-size: 0.82rem;
}

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

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

@media (max-width: 980px) {
  .program-grid,
  .track-grid,
  .expanded-lead-form .form-grid,
  .nclex-feature-grid {
    grid-template-columns: 1fr;
  }

  .program-card {
    height: 700px;
  }

  .track-card ul {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .case-study-grid,
  .pathway-choice-grid {
    grid-template-columns: 1fr;
  }

  .program-card {
    height: 720px;
  }

  .pathway-review-hero {
    padding-top: 70px;
  }
}

/* Final active polish overrides */
.practice-system-section {
  background: #fff;
}

.learning-system-section,
.faq-contact-section {
  background: #f7f7f4;
}

.focus-split-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  max-width: 1560px;
  margin: 34px auto 0;
}

.focus-split-grid.three-up {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 1320px;
}

.focus-split-grid article {
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  padding: 28px;
  background: #fff;
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.05);
  text-align: left;
}

.focus-split-grid span {
  display: inline-grid;
  min-width: 54px;
  height: 54px;
  place-items: center;
  border-radius: 999px;
  margin-bottom: 20px;
  background: #f4f4f1;
  color: #0a2a66;
  font-weight: 900;
}

.focus-split-grid h3 {
  margin: 0 0 12px;
  color: #111318;
  font-size: 1.35rem;
  line-height: 1.15;
}

.focus-split-grid p {
  color: #596170;
  line-height: 1.65;
}

.timeline-section h2 {
  max-width: 900px;
}

.seven-step {
  align-items: start;
}

.seven-step li {
  display: grid;
  grid-template-rows: 112px minmax(58px, auto) auto;
  align-items: start;
  justify-items: center;
  text-align: center;
}

.seven-step li span {
  align-self: start;
  width: 92px;
  height: 92px;
  margin: 0 auto;
}

.seven-step li strong {
  display: flex;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
}

.seven-step li small {
  max-width: 220px;
  margin: 0 auto;
  line-height: 1.45;
}

.program-back [data-program-back] {
  width: min(100%, 300px);
  min-height: 54px;
  margin-top: 18px;
}

.case-study-grid article {
  padding: 26px;
}

.case-study-grid h3 {
  font-size: 1.25rem;
}

.case-study-grid p:first-of-type {
  color: #404755;
  font-size: 0.98rem;
  line-height: 1.68;
}

.faq-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(390px, 0.78fr);
  gap: 28px;
  max-width: 1560px;
  margin: 0 auto;
  align-items: start;
}

.faq-contact-section .faq-card {
  padding: clamp(26px, 3vw, 42px);
  background: #fff;
  box-shadow: 0 22px 55px rgba(15, 23, 42, 0.05);
}

.faq-contact-section .faq-card h2 {
  max-width: none;
  font-size: clamp(2.25rem, 4.3vw, 5rem);
  line-height: 0.98;
  white-space: nowrap;
}

.compact-contact-form {
  position: sticky;
  top: 130px;
  border-radius: 10px;
  padding: clamp(24px, 3vw, 36px);
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.12);
}

.compact-contact-form h2 {
  font-size: clamp(1.8rem, 2.8vw, 3.4rem);
}

.compact-contact-form .contact-details {
  display: grid;
  gap: 8px;
  margin-top: 16px;
}

.compact-contact-form .contact-details a {
  color: #fff;
  font-weight: 800;
}

.site-footer {
  grid-template-columns: minmax(260px, 0.9fr) minmax(420px, 1.1fr);
  gap: 22px 56px;
  padding: 24px clamp(24px, 7vw, 120px);
}

.site-footer p {
  max-width: 620px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.82rem;
  font-weight: 650;
  line-height: 1.45;
}

.site-footer .footer-link-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  grid-row: span 2;
}

.footer-link-columns div {
  display: grid;
  align-content: start;
  gap: 8px;
}

.site-footer a,
.site-footer button {
  font-size: 0.78rem;
  font-weight: 750;
  text-align: left;
}

.site-footer small {
  max-width: 720px;
  border-top: 0;
  padding-top: 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.68rem;
  line-height: 1.42;
}

@media (max-width: 1200px) {
  .focus-split-grid,
  .focus-split-grid.three-up {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .faq-contact-grid,
  .site-footer {
    grid-template-columns: 1fr;
  }

  .compact-contact-form {
    position: static;
  }
}

@media (max-width: 900px) {
  .faq-contact-section .faq-card h2 {
    white-space: normal;
  }

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

@media (max-width: 760px) {
  .focus-split-grid,
  .focus-split-grid.three-up,
  .faq-contact-grid,
  .site-footer .footer-link-columns {
    grid-template-columns: 1fr;
  }

  .seven-step li {
    grid-template-rows: auto;
  }

  .seven-step li span {
    margin-bottom: 14px;
  }

  .seven-step li strong {
    min-height: 0;
  }
}
/* Portal EOF override: keeps the student portal aligned after legacy demo CSS. */
body .portal-page.active {
  grid-template-columns: 300px minmax(0, 1fr);
  background: #f7f7f4;
}

body .portal-sidebar {
  border-right: 1px solid rgba(11, 13, 18, 0.08);
  background: #fff;
}

body .portal-nav {
  display: grid;
  gap: 17px;
  overflow: auto;
  padding: 14px 16px 24px;
}

body .portal-nav-group {
  display: grid;
  gap: 6px;
}

body .portal-nav-group > span {
  padding: 0 10px;
  color: #8a8f98;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body .portal-sidebar nav button,
body .logout-button {
  border-radius: 999px;
  padding: 10px 14px;
  color: #4b5563;
  background: transparent;
  font-size: 0.92rem;
  font-weight: 850;
}

body .portal-sidebar nav button.active,
body .portal-sidebar nav button:hover {
  color: #fff;
  background: #111318;
}

body .portal-main {
  background: #f7f7f4;
}

body .portal-topbar {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr) auto auto auto;
  gap: 12px;
  min-height: 78px;
  padding: 14px clamp(18px, 3vw, 34px);
  background: rgba(255, 255, 255, 0.94);
}

body .portal-content {
  padding: clamp(24px, 4vw, 50px);
}

body .portal-heading {
  max-width: 920px;
  margin-bottom: 26px;
}

body .portal-kicker {
  display: inline-block;
  margin-bottom: 12px;
  color: #6f7785;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body .portal-heading h1 {
  margin: 0 0 12px;
  color: #080b11;
  font-size: clamp(2.25rem, 4.8vw, 4.8rem);
  line-height: 0.96;
  letter-spacing: 0;
}

body .portal-heading p {
  max-width: 780px;
  color: #646c79;
  font-size: clamp(1rem, 1.2vw, 1.16rem);
  line-height: 1.55;
}

body .portal-home-grid,
body .account-grid,
body .question-bank-summary,
body .guidance-grid,
body .mentor-support-grid,
body .course-player-grid {
  display: grid;
  gap: 18px;
}

body .portal-home-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

body .portal-home-grid > .portal-card {
  grid-column: span 4;
}

body .portal-home-grid > .portal-primary-card {
  grid-column: span 7;
}

body .portal-home-grid > .portal-week-card {
  grid-column: span 5;
}

body .portal-card {
  border: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 10px;
  padding: clamp(22px, 2.5vw, 34px);
  background: #fff;
  box-shadow: 0 24px 65px rgba(15, 23, 42, 0.05);
}

body .portal-card h2 {
  margin: 0 0 16px;
  color: #0b0f16;
  font-size: clamp(1.25rem, 1.7vw, 1.72rem);
  line-height: 1.15;
}

body .portal-card button {
  border: 1px solid rgba(11, 13, 18, 0.12);
  border-radius: 999px;
  padding: 11px 18px;
  color: #111318;
  background: #fff;
  font-weight: 850;
}

body .portal-card button:hover {
  color: #fff;
  background: #111318;
}

body .portal-primary-card {
  color: #fff;
  background: #111318;
}

body .portal-primary-card h2,
body .portal-primary-card p,
body .portal-primary-card strong,
body .portal-primary-card span {
  color: #fff;
}

body .portal-primary-card button {
  color: #111318;
  background: #fff;
}

body .course-player-grid {
  grid-template-columns: minmax(0, 1.3fr) minmax(310px, 0.7fr);
}

body .account-grid {
  grid-template-columns: 1.2fr 1fr;
}

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

body .mentor-support-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
}

body .qbank-setup-card {
  grid-column: span 2;
}

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

body .resource-toolbar {
  display: grid;
  grid-template-columns: 1.5fr repeat(2, minmax(180px, 0.6fr));
  gap: 12px;
}

body .flashcard-actions {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

body .is-hidden {
  display: none !important;
}

@media (max-width: 1060px) {
  body .portal-page.active,
  body .portal-home-grid,
  body .account-grid,
  body .course-player-grid,
  body .compact-modules,
  body .guidance-grid,
  body .mentor-support-grid,
  body .question-bank-summary,
  body .detail-grid {
    grid-template-columns: 1fr;
  }

  body .portal-sidebar {
    position: relative;
    height: auto;
  }

  body .portal-home-grid > .portal-primary-card,
  body .portal-home-grid > .portal-week-card,
  body .portal-home-grid > .portal-card,
  body .qbank-setup-card {
    grid-column: auto;
  }
}

@media (max-width: 680px) {
  body .portal-nav,
  body .portal-metric-row,
  body .resource-toolbar,
  body .flashcard-actions {
    grid-template-columns: 1fr;
  }
}

/* Portal compact visual polish - keeps the student app calm, dense, and readable. */
body .portal-page.active {
  grid-template-columns: 276px minmax(0, 1fr);
}

body .portal-brand {
  gap: 12px;
  padding: 18px 20px 12px;
}

body .portal-brand .brand-mark {
  width: 58px;
  height: 58px;
}

body .portal-brand strong {
  font-size: 1.8rem;
  line-height: 0.95;
}

body .portal-brand small {
  font-size: 0.66rem;
  line-height: 1.2;
  letter-spacing: 0.16em;
}

body .portal-nav {
  gap: 12px;
  padding: 10px 14px 18px;
}

body .portal-nav-group {
  gap: 4px;
}

body .portal-nav-group > span {
  padding: 0 9px;
  font-size: 0.66rem;
  letter-spacing: 0.14em;
}

body .portal-sidebar nav button,
body .logout-button {
  padding: 8px 12px;
  font-size: 0.86rem;
  line-height: 1.25;
}

body .portal-topbar {
  grid-template-columns: auto minmax(220px, 1fr) auto auto auto;
  gap: 10px;
  min-height: 66px;
  padding: 10px 22px;
}

body .menu-button,
body .portal-top-actions button,
body .access-switch button {
  padding: 8px 12px;
  font-size: 0.84rem;
  line-height: 1.1;
}

body .portal-search {
  max-width: 430px;
  padding: 8px 13px;
}

body .portal-search span {
  display: none;
}

body .portal-search input {
  font-size: 0.92rem;
}

body .access-switch {
  padding: 4px;
}

body .access-switch span {
  padding-left: 8px;
  font-size: 0.62rem;
}

body .portal-user {
  min-width: 168px;
  gap: 9px;
}

body .portal-user img {
  width: 38px;
  height: 38px;
}

body .portal-user strong {
  font-size: 0.92rem;
  line-height: 1.1;
}

body .portal-user small {
  font-size: 0.76rem;
}

body .portal-content {
  padding: clamp(20px, 2.8vw, 34px);
}

body .portal-heading {
  max-width: 760px;
  margin-bottom: 18px;
}

body .portal-kicker {
  margin-bottom: 8px;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
}

body .portal-heading h1 {
  margin-bottom: 9px;
  font-size: clamp(1.85rem, 2.8vw, 3.15rem);
  line-height: 1.04;
}

body .portal-heading p {
  max-width: 680px;
  font-size: 0.98rem;
  line-height: 1.5;
}

body .portal-home-grid {
  gap: 14px;
  align-items: stretch;
}

body .portal-home-grid > .portal-primary-card {
  grid-column: span 6;
}

body .portal-home-grid > .portal-week-card,
body .portal-home-grid > .portal-card {
  grid-column: span 3;
}

body .portal-home-grid > .portal-announcement-card {
  grid-column: span 6;
}

body .portal-card {
  border-radius: 8px;
  padding: clamp(18px, 1.7vw, 24px);
}

body .portal-card h2 {
  margin-bottom: 11px;
  font-size: clamp(1.05rem, 1.25vw, 1.32rem);
  line-height: 1.18;
}

body .portal-card p,
body .portal-list,
body .muted-text {
  font-size: 0.92rem;
  line-height: 1.5;
}

body .portal-card button,
body .lesson-actions button,
body .portal-quick-actions button,
body .mentor-support-grid button {
  padding: 9px 14px;
  font-size: 0.86rem;
  line-height: 1.12;
}

body .portal-primary-card > span {
  margin-bottom: 10px;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
}

body .portal-primary-card h2 {
  font-size: clamp(1.65rem, 2.35vw, 2.5rem);
  line-height: 1.04;
}

body .portal-primary-card p {
  font-size: 0.95rem;
}

body .portal-progress-line {
  gap: 8px;
  margin-top: 16px;
}

body .portal-progress-line strong {
  font-size: 0.86rem;
}

body .portal-list {
  gap: 9px;
}

body .portal-list div {
  padding-top: 9px;
}

body .portal-list span {
  font-size: 0.74rem;
}

body .portal-list strong {
  font-size: 0.9rem;
  line-height: 1.35;
}

body .course-row,
body .class-row,
body .score-row {
  margin-top: 9px;
  border-radius: 9px;
  padding: 10px;
  font-size: 0.9rem;
}

body .portal-metric-row {
  gap: 9px;
  margin-bottom: 12px;
}

body .portal-metric-row div {
  border-radius: 8px;
  padding: 13px;
}

body .portal-metric-row strong {
  font-size: 1.4rem;
}

body .portal-metric-row span {
  font-size: 0.78rem;
}

body .portal-announcement-card small {
  font-size: 0.78rem;
  line-height: 1.45;
}

body .course-player-grid {
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 14px;
  margin-bottom: 14px;
}

body .lesson-video-placeholder {
  min-height: 230px;
  padding: 24px;
}

body .lesson-video-placeholder strong {
  font-size: clamp(1.45rem, 2.2vw, 2.3rem);
}

body .module-outline li {
  grid-template-columns: 46px 1fr;
  gap: 10px;
  font-size: 0.9rem;
}

body .compact-modules,
body .detail-grid,
body .account-grid,
body .guidance-grid,
body .mentor-support-grid {
  gap: 14px;
}

body .resource-toolbar {
  gap: 10px;
  margin-bottom: 14px;
}

body .resource-toolbar input,
body .resource-toolbar select,
body .mentor-request-card input,
body .mentor-request-card select,
body .mentor-request-card textarea,
body .flashcard-deck-row select {
  padding: 10px 12px;
  font-size: 0.92rem;
}

body .flashcard {
  min-height: 280px;
}

body .flashcard-face strong {
  font-size: clamp(1.25rem, 2vw, 1.9rem);
}

body .exam-library {
  gap: 12px;
}

body .exam-choice {
  border-radius: 8px;
  padding: 16px;
}

body .question-bank-summary {
  grid-template-columns: 0.9fr 1.1fr;
  gap: 14px;
}

body .qbank-setup-card {
  grid-column: auto;
}

body .qbank-category-card {
  grid-column: 1 / -1;
}

@media (max-width: 1280px) {
  body .portal-topbar {
    grid-template-columns: auto minmax(190px, 1fr) auto auto;
  }

  body .access-switch {
    grid-column: 2 / 5;
    justify-self: end;
  }

  body .portal-home-grid > .portal-primary-card {
    grid-column: span 7;
  }

  body .portal-home-grid > .portal-week-card {
    grid-column: span 5;
  }

  body .portal-home-grid > .portal-card {
    grid-column: span 4;
  }
}

@media (max-width: 1060px) {
  body .portal-page.active {
    grid-template-columns: 1fr;
  }

  body .portal-home-grid > .portal-primary-card,
  body .portal-home-grid > .portal-week-card,
  body .portal-home-grid > .portal-card,
  body .portal-home-grid > .portal-announcement-card,
  body .qbank-category-card {
    grid-column: auto;
  }

  body .portal-topbar,
  body .portal-content {
    padding-left: 18px;
    padding-right: 18px;
  }
}

@media (max-width: 760px) {
  body .portal-topbar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  body .access-switch,
  body .portal-user,
  body .portal-search {
    grid-column: auto;
    justify-self: stretch;
    width: 100%;
    max-width: none;
  }

  body .portal-heading h1 {
    font-size: clamp(1.7rem, 8vw, 2.3rem);
  }
}

/* Portal dashboard identity pass - restores profile context and removes demo clutter. */
body .portal-page.active {
  grid-template-columns: 288px minmax(0, 1fr);
}

body .portal-brand {
  align-items: center;
  padding-right: 16px;
}

body .portal-brand span {
  min-width: 0;
}

body .portal-brand small {
  display: block;
  white-space: nowrap;
  font-size: 0.58rem;
  letter-spacing: 0.15em;
}

body .portal-topbar {
  grid-template-columns: auto minmax(260px, 1fr) auto;
  min-height: 64px;
}

body .access-switch,
body .portal-top-actions {
  display: none !important;
}

body .menu-button {
  display: none;
}

body .portal-user {
  min-width: 210px;
}

body .portal-home-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}

body .student-dashboard-card {
  grid-column: span 4;
}

body .portal-home-grid > .portal-primary-card {
  grid-column: span 4;
}

body .portal-home-grid > .portal-week-card {
  grid-column: span 4;
}

body .portal-home-grid > .portal-card {
  grid-column: span 4;
}

body .portal-home-grid > .portal-announcement-card {
  grid-column: span 8;
}

body .student-dashboard-head {
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 14px;
  align-items: center;
  margin-bottom: 18px;
}

body .student-dashboard-head img {
  width: 74px;
  height: 74px;
  border-radius: 50%;
  object-fit: cover;
}

body .student-dashboard-head span {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 5px;
  border-radius: 999px;
  padding: 5px 9px;
  color: #0f7a45;
  background: rgba(13, 148, 86, 0.1);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body .student-dashboard-head h2 {
  margin: 0 0 2px;
  font-size: 1.45rem;
  line-height: 1.05;
}

body .student-dashboard-head p {
  margin: 0;
  font-size: 0.82rem;
}

body .student-dashboard-card dl {
  display: grid;
  gap: 10px;
  margin: 0;
}

body .student-dashboard-card dl div {
  display: grid;
  gap: 3px;
  border-top: 1px solid rgba(11, 13, 18, 0.08);
  padding-top: 10px;
}

body .student-dashboard-card dt {
  color: #7a828f;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body .student-dashboard-card dd {
  margin: 0;
  color: #111318;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.3;
}

body .portal-metric-row {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body .portal-metric-row div {
  min-width: 0;
}

body .portal-metric-row strong {
  overflow-wrap: anywhere;
  font-size: clamp(1.15rem, 2vw, 1.55rem);
}

body .portal-metric-row span {
  line-height: 1.25;
}

body .support-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

body .support-contact-grid-single {
  grid-template-columns: minmax(0, 800px);
}

body .mentor-simple-card {
  min-width: 0;
}

body .mentor-simple-card > span {
  color: #747b86;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body .mentor-simple-card h2 {
  margin-top: 8px;
  font-size: clamp(1.8rem, 3vw, 3rem);
}

body .mentor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

body .mentor-actions a,
body .mentor-actions button {
  border: 1px solid rgba(11, 13, 18, 0.14);
  border-radius: 999px;
  padding: 11px 18px;
  color: #111318;
  background: #fff;
  font-weight: 900;
  text-decoration: none;
}

body .mentor-actions a {
  color: #fff;
  background: #111318;
}

body .technical-support-card {
  background: #f7f8fa;
}

@media (max-width: 1280px) {
  body .student-dashboard-card,
  body .portal-home-grid > .portal-primary-card,
  body .portal-home-grid > .portal-week-card,
  body .portal-home-grid > .portal-card,
  body .portal-home-grid > .portal-announcement-card {
    grid-column: span 6;
  }
}

@media (max-width: 1060px) {
  body .portal-page.active {
    grid-template-columns: 1fr;
  }

  body .student-dashboard-card,
  body .portal-home-grid > .portal-primary-card,
  body .portal-home-grid > .portal-week-card,
  body .portal-home-grid > .portal-card,
  body .portal-home-grid > .portal-announcement-card {
    grid-column: auto;
  }
}

@media (max-width: 760px) {
  body .portal-topbar {
    grid-template-columns: 1fr;
  }

  body .portal-brand small {
    white-space: normal;
  }
}

/* Enrollment-aware student portal */
body .is-feature-hidden {
  display: none !important;
}

.legal-dialog {
  width: min(760px, calc(100vw - 32px));
  max-height: min(780px, calc(100vh - 32px));
  padding: 0;
  border: 1px solid #d9d9d6;
  border-radius: 8px;
  color: #0b0f17;
  background: #fff;
  box-shadow: 0 24px 70px rgba(11, 15, 23, 0.22);
}

.legal-dialog::backdrop {
  background: rgba(11, 15, 23, 0.58);
}

.assessment-exit-dialog {
  width: min(480px, calc(100vw - 32px));
  border: 0;
  border-radius: 4px;
  padding: 30px;
  color: #111318;
  box-shadow: 0 24px 70px rgba(11, 15, 23, 0.28);
}

.assessment-exit-dialog::backdrop {
  background: rgba(11, 15, 23, 0.58);
}

.assessment-exit-dialog > span {
  color: #747b86;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.assessment-exit-dialog h2 {
  margin: 12px 0;
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  letter-spacing: -0.035em;
  line-height: 1.05;
}

.assessment-exit-dialog p {
  margin: 0;
  color: #626a77;
  line-height: 1.55;
}

.assessment-exit-dialog .assessment-submit-status {
  min-height: 1.45em;
  margin-top: 14px;
  color: #48505d;
  font-size: 0.88rem;
  font-weight: 750;
}

.assessment-submit-status[data-tone="retry"] {
  color: #8a5700;
}

.assessment-submit-status[data-tone="error"] {
  color: #9c2525;
}

.assessment-exit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

.assessment-exit-actions button {
  border: 1px solid #111318;
  border-radius: 3px;
  padding: 11px 16px;
  color: #111318;
  background: #fff;
  font-weight: 850;
}

.assessment-exit-actions button:last-child {
  color: #fff;
  background: #111318;
}

.assessment-exit-dialog.is-submitting {
  cursor: progress;
}

.assessment-exit-dialog.is-submitting .assessment-exit-actions button {
  pointer-events: none;
}

.assessment-exit-actions button[aria-busy="true"] {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  opacity: .82;
}

.assessment-exit-actions button[aria-busy="true"]::after {
  width: 15px;
  height: 15px;
  border: 2px solid rgba(255,255,255,.42);
  border-top-color: #fff;
  border-radius: 50%;
  animation: material-loading-spin .75s linear infinite;
  content: "";
}

.legal-dialog-header {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 22px 26px;
  border-bottom: 1px solid #e5e5e2;
  background: #fff;
}

.legal-dialog-header span {
  display: block;
  margin-bottom: 4px;
  color: #697184;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.legal-dialog-header h2 {
  margin: 0;
  font-size: clamp(1.45rem, 3vw, 2rem);
}

.legal-dialog-header button {
  flex: 0 0 auto;
  padding: 10px 16px;
  border: 1px solid #d6d6d2;
  border-radius: 999px;
  background: #fff;
  font-weight: 800;
}

.legal-dialog-content {
  padding: 26px;
  color: #515a6c;
  line-height: 1.7;
}

.legal-dialog-content h3 {
  margin: 24px 0 8px;
  color: #0b0f17;
  font-size: 1.05rem;
}

.legal-dialog-content h3:first-child {
  margin-top: 0;
}

.legal-dialog-content p {
  margin: 0 0 12px;
}

body .portal-nav button.is-locked {
  opacity: 0.42;
  cursor: not-allowed;
}

body .portal-nav button.is-locked::after {
  content: "Locked";
  float: right;
  font-size: 0.58rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body .portal-access-banner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin: 20px clamp(20px, 3vw, 38px) 0;
  border-radius: 8px;
  padding: 14px 16px;
  color: #fff;
  background: #111318;
}

body .portal-access-banner[hidden] {
  display: none;
}

body .portal-access-banner strong {
  font-size: 0.92rem;
}

body .portal-access-banner span {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.84rem;
}

body .portal-access-banner button {
  border-color: #fff;
  padding: 8px 13px;
  color: #111318;
  background: #fff;
}

body .status-ended {
  color: #a42929 !important;
}

body .account-grid,
body .payment-grid,
body .baseline-grid,
body .assessment-result-grid,
body .result-overview,
body .flashcard-layout {
  display: grid;
  gap: 16px;
}

body .account-grid {
  grid-template-columns: 1.15fr 0.85fr;
}

body .account-grid > :last-child {
  grid-column: 1 / -1;
}

body .payment-grid,
body .result-overview {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body .assessment-result-grid {
  width: min(100%, 620px);
  grid-template-columns: 1fr;
}

body .result-score-card {
  min-height: 0;
  padding: 20px;
}

body .result-score-card h2 {
  margin: 5px 0 0;
  color: #fff;
  font-size: 1rem;
}

body #portal-payments .portal-heading {
  margin-bottom: 22px;
}

body #portal-payments .payment-grid {
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  align-items: start;
  gap: 14px;
}

body #portal-payments .portal-card {
  padding: 24px;
}

body .payment-history-card {
  grid-column: 1 / -1;
}

body .payment-currency-list {
  display: grid;
  gap: 10px;
  margin: 14px 0;
}

body .payment-currency-row {
  display: grid;
  grid-template-columns: 52px repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: center;
  border: 1px solid #e1e2df;
  border-radius: 8px;
  padding: 13px;
  background: #fafaf8;
}

body .payment-currency-row > strong {
  color: #0b0f17;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
}

body .payment-currency-row span,
body .payment-currency-row small {
  display: block;
}

body .payment-currency-row span {
  color: #0b0f17;
  font-weight: 800;
}

body .payment-currency-row small {
  margin-bottom: 3px;
  color: #7a808c;
  font-size: 0.68rem;
  font-weight: 700;
}

body .mentor-update-card {
  margin-top: 16px;
}

body .student-support-update span small {
  display: block;
  margin-top: 5px;
  color: #7a808c;
  line-height: 1.45;
}

body .student-support-update strong {
  display: grid;
  justify-items: end;
  gap: 7px;
}

body .student-update-link {
  border: 1px solid #d7d9d5;
  border-radius: 999px;
  padding: 6px 10px;
  color: #111318;
  background: #fff;
  font-size: 0.72rem;
  text-decoration: none;
}

body .portal-week-card .student-update-link {
  display: inline-flex;
  width: max-content;
  margin-top: 8px;
}

body .portal-week-card .portal-list strong {
  display: grid;
  gap: 4px;
}

body .portal-week-card .portal-list strong small {
  color: #7b8492;
  font-size: 0.78rem;
}

body .payment-summary-card,
body .baseline-hero-card,
body .result-score-card {
  color: #fff;
  background: #111318;
}

body .payment-summary-card > span,
body .baseline-hero-card > span,
body .result-score-card > span {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

body .payment-total {
  display: flex;
  gap: 8px;
  align-items: baseline;
  margin: 18px 0 10px;
}

body .payment-total strong {
  font-size: clamp(1.8rem, 3vw, 2.75rem);
}

body .payment-summary-card h2 {
  margin-top: 8px;
  font-size: 1.05rem;
  line-height: 1.3;
}

body .payment-account-card .portal-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

body .payment-account-card .portal-list > div {
  align-items: start;
  padding: 12px 0;
}

body .payment-account-card .muted-text {
  margin: 10px 0 0;
  font-size: 0.82rem;
}

body .payment-total span,
body .payment-total b,
body .baseline-hero-card p {
  color: rgba(255, 255, 255, 0.68);
}

body .baseline-grid {
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
}

body .baseline-hero-card h2 {
  margin-top: 12px;
  font-size: clamp(2rem, 4vw, 4.2rem);
}

body .baseline-meta,
body .result-stat-pair,
body .flashcard-stat-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 24px 0;
}

body .baseline-meta div,
body .result-stat-pair div,
body .flashcard-stat-list div {
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  padding: 12px;
}

body .baseline-meta span,
body .result-stat-pair span,
body .flashcard-stat-list span {
  display: block;
  margin-bottom: 4px;
  color: rgba(255, 255, 255, 0.58);
  font-size: 0.7rem;
}

body .assigned-pretest-resource {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 18px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.07);
}

body .assigned-pretest-resource > div {
  display: grid;
  gap: 4px;
}

body .assigned-pretest-resource strong {
  color: #fff;
  font-size: 0.9rem;
}

body .assigned-pretest-resource span {
  color: rgba(255, 255, 255, 0.64);
  font-size: 0.78rem;
}

body .assigned-pretest-resource .material-open-button {
  flex: 0 0 auto;
  border-color: #fff;
  color: #111318;
  background: #fff;
}

body .baseline-note-card ol {
  display: grid;
  gap: 14px;
  margin: 18px 0;
  padding-left: 20px;
}

body .enrollment-banner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  margin-bottom: 16px;
  color: #fff;
  background: #111318;
}

body .enrollment-banner div {
  display: grid;
  gap: 3px;
}

body .enrollment-banner span {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.64rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body .course-browser {
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

body .topic-browser {
  position: sticky;
  top: 82px;
  padding: 14px;
}

body .card-head,
body .topic-workspace-head,
body .runner-heading,
body .flashcard-deck-row {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
}

body .card-head h2,
body .topic-workspace-head h3 {
  margin: 0;
}

body .card-head > span,
body .access-pill,
body .exam-pill {
  border-radius: 999px;
  padding: 6px 9px;
  color: #5f6672;
  background: #f0f0ed;
  font-size: 0.66rem;
  font-weight: 900;
}

body .topic-browser-list {
  max-height: 62vh;
  margin-top: 12px;
  overflow: auto;
}

body .topic-row {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  min-height: 68px;
  gap: 10px;
  width: 100%;
  border: 0;
  border-top: 1px solid rgba(11, 13, 18, 0.08);
  border-radius: 0;
  padding: 12px 8px;
  align-items: center;
  color: #111318;
  background: transparent;
  text-align: left;
}

body .topic-row:hover,
body .topic-row.is-active {
  border-radius: 7px;
  color: #fff;
  background: #111318;
}

body .topic-row small {
  display: block;
  margin-top: 3px;
  color: #747b86;
  font-size: 0.64rem;
  line-height: 1.3;
}

body .topic-row:hover small,
body .topic-row.is-active small {
  color: rgba(255, 255, 255, 0.6);
}

body .topic-number {
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.08em;
}

body .topic-workspace {
  min-width: 0;
  border: 1px solid rgba(11, 13, 18, 0.09);
  border-radius: 8px;
  padding: clamp(18px, 2.4vw, 30px);
  background: #fff;
}

body .topic-workspace-head {
  align-items: flex-start;
  margin-bottom: 22px;
}

body .topic-workspace-head h3 {
  max-width: 720px;
  font-size: clamp(1.5rem, 2.6vw, 2.55rem);
  line-height: 1.05;
}

body .topic-resource-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

body .topic-resource-card {
  display: flex;
  min-height: 205px;
  flex-direction: column;
  align-items: flex-start;
  border: 1px solid rgba(11, 13, 18, 0.1);
  border-radius: 8px;
  padding: 16px;
}

body .topic-resource-card h4 {
  margin: 22px 0 6px;
  font-size: 1.05rem;
}

body .topic-resource-card p {
  margin: 0 0 16px;
  color: #6f7682;
  font-size: 0.83rem;
}

body .topic-resource-card button {
  margin-top: auto;
}

body .resource-index {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #f0f0ed;
  font-size: 0.68rem;
  font-weight: 900;
}

body .flashcard-layout {
  grid-template-columns: minmax(0, 1.4fr) minmax(270px, 0.6fr);
  align-items: start;
}

body .flashcard-deck-row label,
body .flashcard-deck-row > div {
  display: grid;
  flex: 1;
  gap: 6px;
}

body .flashcard-deck-row label span,
body .flashcard-deck-row > div span {
  color: #747b86;
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body .flashcard-deck-row > div strong {
  font-size: 1rem;
}

body .flashcard-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0;
}

body .flashcard-meta > span {
  border-radius: 999px;
  padding: 6px 10px;
  background: #f0f0ed;
  font-size: 0.72rem;
}

body .flashcard {
  position: relative;
  display: block;
  width: 100%;
  min-height: 360px;
  border: 0;
  border-radius: 28px;
  padding: 0;
  overflow: visible;
  background: transparent;
  perspective: 1400px;
}

body .flashcard::before,
body .flashcard::after {
  display: none !important;
  content: none !important;
}

body .flashcard-face {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  border-radius: 28px;
  padding: clamp(24px, 4vw, 46px);
  overflow: hidden;
  color: #fff;
  background: #111318;
  box-shadow: 0 18px 42px rgba(17, 19, 24, 0.14);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: rotateY(0deg);
  transform-style: preserve-3d;
  transition: transform 0.5s ease;
}

body .flashcard-back {
  border: 1px solid #cdd7e2;
  color: #111318;
  background: linear-gradient(145deg, #f4f7fa 0%, #dfe8f1 100%);
  box-shadow: 0 18px 42px rgba(38, 65, 92, 0.16);
  transform: rotateY(180deg);
}

body .flashcard-back strong {
  color: #111318;
  font-size: clamp(1rem, 1.45vw, 1.35rem);
  font-weight: 400;
  line-height: 1.45;
}

body .flashcard-back small,
body .flashcard-back em {
  color: #111318;
}

body .flashcard.is-flipped .flashcard-front {
  transform: rotateY(-180deg);
}

body .flashcard.is-flipped .flashcard-back {
  transform: rotateY(0deg);
}

body .portal-card button.flashcard,
body .portal-card button.flashcard:hover,
body .portal-card button.flashcard:focus-visible {
  border: 0;
  border-radius: 28px;
  padding: 0;
  color: inherit;
  background: transparent;
  box-shadow: none;
  transform: none;
}

body .flashcard-face small {
  margin-bottom: 24px;
  font-weight: 900;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

body .flashcard-face em {
  margin-top: 24px;
  color: inherit;
  opacity: 0.6;
  font-size: 0.75rem;
}

body .flashcard-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

body .flashcard-count-card {
  position: sticky;
  top: 82px;
}

body .flashcard-topic-selector {
  display: grid;
  gap: 8px;
}

body .flashcard-topic-selector label {
  color: #6f7682;
  font-size: 0.82rem;
}

body .flashcard-topic-selector select {
  width: 100%;
  border: 1px solid rgba(17, 19, 24, 0.14);
  border-radius: 12px;
  padding: 11px 38px 11px 12px;
  color: #111318;
  background-color: #fff;
  font: inherit;
  font-size: 1rem;
  font-weight: 800;
  cursor: pointer;
}

body .flashcard-topic-selector select:focus-visible {
  outline: 2px solid #111318;
  outline-offset: 2px;
}

body .reviewed-count {
  margin: 28px 0;
}

body .reviewed-count strong {
  display: block;
  font-size: clamp(3rem, 6vw, 5.4rem);
  line-height: 0.9;
}

body .reviewed-count span {
  color: #6f7682;
}

body .flashcard-stat-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body .flashcard-stat-list div {
  border-color: rgba(11, 13, 18, 0.1);
}

body .flashcard-stat-list span {
  color: #747b86;
}

body .bank-library {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

body .assessment-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  border: 1px solid rgba(11, 13, 18, 0.1);
  border-radius: 8px;
  padding: 16px;
}

body .assessment-card h3 {
  margin: 0 0 4px;
  font-size: 1rem;
}

body .assessment-card p,
body .assessment-card small {
  margin: 0;
  color: #747b86;
  font-size: 0.76rem;
}

body .five-exam-library {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 18px;
}

body .five-exam-library .assessment-card {
  display: flex;
  min-height: 225px;
  flex-direction: column;
  align-items: stretch;
}

body .five-exam-library .assessment-card button {
  margin-top: auto;
}

body .portal-disclaimer {
  margin: 18px 0 0;
  border-top: 1px solid rgba(11, 13, 18, 0.1);
  padding-top: 14px;
  color: #747b86;
  font-size: 0.72rem;
}

body .runner-heading {
  max-width: none;
  align-items: flex-end;
}

body .runner-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}

body .runner-actions strong {
  border-radius: 999px;
  padding: 10px 14px;
  color: #fff;
  background: #111318;
  font-variant-numeric: tabular-nums;
}

body .exam-question {
  margin-bottom: 20px;
  border-bottom: 1px solid rgba(11, 13, 18, 0.1);
  padding-bottom: 20px;
}

body .exam-question label {
  display: block;
  margin-top: 8px;
  border: 1px solid rgba(11, 13, 18, 0.09);
  border-radius: 7px;
  padding: 11px;
}

body .result-stat-pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 14px 0;
}

.assessment-review-dialog-content {
  display: grid;
  gap: 12px;
}

.assessment-review-dialog-content article {
  border-top: 1px solid rgba(11, 13, 18, 0.1);
  padding: 18px 0 6px;
}

.assessment-review-dialog-content article:first-child {
  border-top: 0;
}

.assessment-review-dialog-content article strong {
  display: block;
  color: #111318;
  font-size: 1rem;
  line-height: 1.45;
}

.assessment-review-dialog-content article p {
  margin: 9px 0 0;
  color: #626a76;
  line-height: 1.55;
}

body .result-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

body .result-tab {
  border: 1px solid rgba(11, 13, 18, 0.12);
  border-radius: 999px;
  padding: 10px 15px;
  color: #111318;
  background: #fff;
}

body .result-tab.is-active {
  color: #fff;
  background: #111318;
}

body .result-summary-card > span,
body .result-guidance-card > span {
  color: #747b86;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body .result-summary-card > strong {
  display: block;
  margin: 18px 0;
  font-size: clamp(3rem, 7vw, 6rem);
  line-height: 0.9;
}

body .completion-track {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e3e3df;
}

body .completion-track i {
  display: block;
  width: var(--value, 0%);
  height: 100%;
  background: #111318;
}

body .completion-track i.is-score-low,
body .trend-bar.is-score-low {
  background: #ff7900;
}

body .completion-track i.is-score-developing,
body .trend-bar.is-score-developing {
  background: #ffd400;
}

body .completion-track i.is-score-strong,
body .trend-bar.is-score-strong {
  background: #18c768;
}

body .trend-bar.is-score-developing {
  color: #111318;
}

body .result-chart-card {
  margin-top: 16px;
}

body .result-chart-heading,
body .result-score-legend {
  display: flex;
  align-items: center;
}

body .result-chart-heading {
  justify-content: space-between;
  gap: 18px;
}

body .result-score-legend {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px;
}

body .result-score-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #676e79;
  font-size: .68rem;
  font-weight: 750;
}

body .result-score-legend span::before {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
  content: "";
}

body .result-score-legend .is-score-low { color: #d65f00; }
body .result-score-legend .is-score-developing { color: #9b7d00; }
body .result-score-legend .is-score-strong { color: #079a4c; }
body .result-score-legend .is-score-low::before { background: #ff7900; }
body .result-score-legend .is-score-developing::before { background: #ffd400; }
body .result-score-legend .is-score-strong::before { background: #18c768; }

body .result-trend {
  display: flex;
  min-height: 280px;
  gap: 12px;
  align-items: flex-end;
  margin-top: 20px;
}

body .trend-column {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  height: 250px;
  justify-content: flex-end;
}

body .trend-bar {
  display: flex;
  width: min(100%, 120px);
  min-height: 28px;
  align-items: flex-end;
  justify-content: center;
  border-radius: 7px 7px 2px 2px;
  padding: 8px;
  color: #fff;
  background: #111318;
  transition: height 0.3s ease;
}

body .trend-column > span {
  color: #747b86;
  font-size: 0.68rem;
  text-align: center;
}

/* Portal visual refinement: restrained, high-contrast and task-led. */
body .portal-page.active {
  --portal-ink: #171717;
  --portal-muted: #6e7075;
  --portal-line: #e3e3e0;
  background: #f6f6f4;
}

body .portal-sidebar,
body .portal-topbar {
  background: rgba(255, 255, 255, 0.97);
}

@media (min-width: 761px) {
  body .portal-topbar {
    display: flex;
    align-items: center;
  }

  body .portal-topbar .portal-search {
    flex: 0 1 430px;
  }

  body .portal-topbar .portal-user {
    margin-left: auto;
  }
}

body .portal-sidebar {
  border-right-color: var(--portal-line);
}

body .portal-nav-group {
  padding-bottom: 10px;
  border-bottom: 1px solid var(--portal-line);
}

body .portal-nav-group:last-child {
  border-bottom: 0;
}

body .portal-nav-group > span {
  color: #8b8d91;
  letter-spacing: 0.16em;
}

body .portal-sidebar nav button,
body .logout-button {
  position: relative;
  border-radius: 5px;
  padding: 10px 12px;
  color: #4e5055;
  font-weight: 750;
}

body .portal-sidebar nav button.active,
body .portal-sidebar nav button:hover {
  color: #fff;
  background: var(--portal-ink);
}

body .portal-content {
  max-width: 1480px;
  padding-top: clamp(28px, 4vw, 64px);
  padding-bottom: clamp(42px, 6vw, 88px);
}

body #portal-courses {
  padding-top: clamp(20px, 2.8vw, 34px);
}

body #portal-flashcards {
  padding-top: clamp(20px, 2.8vw, 34px);
}

body #portal-pretest,
body #portal-question-bank,
body #portal-posttest {
  padding-top: clamp(20px, 2.8vw, 34px);
}

/* Admin dashboard demo */
.login-header-actions { display: flex; align-items: center; gap: 14px; }
.login-header-actions a { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.admin-login-button { padding: 10px 16px; border: 0; border-radius: 999px; color: #fff; background: #111318; font: inherit; font-size: .86rem; font-weight: 800; cursor: pointer; }
.admin-login-button:hover { background: #2671d9; }
.admin-demo-link { margin-top: 18px; }
.admin-student-grid { grid-template-columns: minmax(0, 1fr); min-width: 0; align-items: start; }
.admin-students-panel { display: none; min-width: 0; }
.admin-students-panel.active { display: block; }
.admin-students-panel[hidden] { display: none !important; }
.admin-students-panel[data-admin-students-panel="add"] { max-width: 1040px; }
.admin-view-switch { display: inline-flex; gap: 4px; margin: 0 0 18px; padding: 4px; border: 1px solid #dfdfda; border-radius: 999px; background: #ecece8; }
.admin-view-switch button { min-height: 40px; padding: 8px 18px; border: 0; border-radius: 999px; background: transparent; color: #62666e; font: inherit; font-size: .84rem; font-weight: 800; cursor: pointer; }
.admin-view-switch button.active { color: #fff; background: #111318; box-shadow: 0 5px 14px rgba(17,19,24,.16); }
.admin-form { display: grid; gap: 14px; }
.admin-form label { display: grid; gap: 7px; color: #2d3138; font-size: .82rem; font-weight: 800; }
.admin-form .admin-checkbox-label { display: flex; align-items: center; gap: 9px; font-weight: 700; }
.admin-form .admin-checkbox-label input { width: 17px; min-height: 17px; margin: 0; accent-color: #111318; }
.admin-form input, .admin-form select, .admin-form textarea { min-height: 44px; padding: 0 12px; border: 1px solid #deded9; border-radius: 8px; background: #fff; color: #111318; font: inherit; }
.admin-form textarea { min-height: 112px; padding-top: 12px; padding-bottom: 12px; resize: vertical; }
.admin-resource-panel { display: grid; gap: 8px; }
.admin-resource-panel[hidden] { display: none !important; }
.admin-resource-panel small { color: #747984; font-size: .76rem; font-weight: 600; line-height: 1.45; }
.admin-assignment-panel[hidden] { display: none !important; }
.admin-assignment-panel label { margin: 0; }
.admin-file-drop { position: relative; min-height: 116px; padding: 18px; border: 1px dashed #c9cbc7; border-radius: 8px; background: #f7f7f4; transition: border-color .18s ease, background .18s ease; }
.admin-file-drop:hover, .admin-file-drop:focus-within { border-color: #111318; background: #fff; }
.admin-file-drop input[type="file"] { width: 100%; min-height: 48px; padding: 10px; border-color: transparent; background: transparent; cursor: pointer; }
.admin-file-drop input[type="file"]::file-selector-button { margin-right: 12px; border: 0; border-radius: 999px; padding: 9px 14px; color: #fff; background: #111318; font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.admin-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-package-fieldset { display: grid; gap: 14px; min-width: 0; margin: 0; padding: 20px; border: 1px solid #e1e2de; border-radius: 12px; background: #fafaf8; }
.admin-package-fieldset[hidden] { display: none !important; }
.admin-package-fieldset legend { padding: 0 8px; color: #111318; font-size: .88rem; font-weight: 850; letter-spacing: -.01em; }
.admin-package-fieldset:disabled { opacity: .52; }
.admin-package-fieldset label { margin: 0; }
.admin-package-fieldset label small { color: #7a7f88; font-size: .7rem; font-weight: 650; }
.admin-package-summary { display: grid; gap: 5px; padding: 16px; border-radius: 9px; color: #fff; background: #111318; }
.admin-package-summary strong { font-size: .96rem; }
.admin-package-summary span { color: #c9ced7; font-size: .78rem; line-height: 1.5; }
.admin-custom-template-section { display: grid; gap: 12px; margin-top: 28px; padding-top: 24px; border-top: 1px solid #e4e5e1; }
.admin-custom-template-section .card-head { align-items: end; }
.admin-custom-template-list > div { grid-template-columns: minmax(180px, .8fr) minmax(280px, 1.5fr) auto; }
.admin-custom-template-list em button { min-height: 38px; padding: 0 16px; }
.admin-entitlement-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.admin-entitlement-grid label { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 10px 12px; border: 1px solid #e3e3df; border-radius: 8px; color: #353941; background: #fff; font-size: .76rem; }
.admin-entitlement-grid input { width: 16px; min-height: 16px; margin: 0; accent-color: #111318; }
.admin-installment-builder { display: grid; gap: 9px; padding: 16px; border: 1px solid #e3e3df; border-radius: 10px; background: #fff; }
.admin-installment-builder .card-head h3 { margin: 0; font-size: .9rem; }
.admin-installment-builder .card-head small { color: #7a7f88; font-size: .72rem; }
.admin-installment-row { display: grid; grid-template-columns: 30px repeat(3, minmax(0, 1fr)); align-items: end; gap: 10px; }
.admin-installment-row > span { display: grid; width: 28px; height: 28px; margin-bottom: 8px; place-items: center; border-radius: 50%; color: #fff; background: #111318; font-size: .72rem; font-weight: 850; }
.admin-installment-row label { font-size: .73rem; }
.admin-installment-help { margin-left: 40px; color: #686b73; font-size: .7rem; line-height: 1.45; }
.admin-form-note, .admin-form-status { margin: 0; font-size: .84rem; line-height: 1.45; }
.admin-form-note { color: #686b73; }
.admin-form-status { min-height: 1.4em; color: #1e5e35; font-weight: 750; }
@media (max-width: 620px) {
  .admin-form-row,
  .admin-entitlement-grid { grid-template-columns: 1fr; }
  .admin-package-fieldset { padding: 15px; }
  .admin-installment-row { grid-template-columns: 26px 1fr; }
  .admin-installment-row label { grid-column: 2; }
  .admin-installment-help { margin-left: 36px; }
}
.admin-page { min-height: 100vh; background: #f6f6f4; }
.admin-workspace-active { overflow: hidden; }
.admin-page.active { display: grid; grid-template-columns: 282px minmax(0, 1fr); width: 100%; max-width: 100vw; overflow-x: hidden; }
.admin-sidebar { display: flex; position: fixed; inset: 0 auto 0 0; z-index: 4; flex-direction: column; width: 282px; height: 100dvh; padding: 16px; overflow-y: auto; overscroll-behavior: contain; border-right: 1px solid #e5e5e1; background: #fff; }
.admin-sidebar .portal-brand { width: 100%; padding: 18px 14px; border: 0; background: #f2f2f0; text-align: left; cursor: pointer; }
.admin-nav { display: grid; gap: 4px; margin-top: 22px; }
.admin-nav > span { padding: 0 12px 8px; color: #888b91; font-size: .7rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.admin-nav button { padding: 11px 12px; border: 0; border-radius: 6px; background: transparent; color: #555961; font: inherit; font-size: .9rem; font-weight: 750; text-align: left; cursor: pointer; }
.admin-nav button:hover, .admin-nav button.active { color: #fff; background: #111318; }
.admin-sidebar .logout-button { margin-top: auto; }
.admin-main { grid-column: 2; width: 100%; max-width: 100%; min-width: 0; height: 100dvh; overflow-x: clip; overflow-y: auto; }
.admin-topbar { display: flex; align-items: center; justify-content: space-between; min-height: 78px; padding: 14px clamp(24px, 3.2vw, 54px); border-bottom: 1px solid #e7e7e3; background: rgba(255,255,255,.96); }
.admin-topbar > div:first-child { display: grid; gap: 2px; }
.admin-topbar strong { color: #101217; font-size: .98rem; }
.admin-user { display: flex; align-items: center; gap: 10px; }
.admin-user > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #fff; background: #111318; font-size: .78rem; font-weight: 850; }
.admin-user div { display: grid; gap: 2px; }.admin-user small { color: #747985; }
.admin-content { display: none; max-width: 1440px; padding: clamp(30px, 4vw, 64px); }.admin-content.active { display: block; }
.admin-heading { max-width: 780px; margin-bottom: 30px; }.admin-heading > span { color: #777b83; font-size: .72rem; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }.admin-heading h1 { margin: 10px 0; color: #090b10; font-size: clamp(2.4rem, 5vw, 4.4rem); letter-spacing: -.07em; line-height: .98; }.admin-heading p { margin: 0; color: #686e78; font-size: 1.05rem; line-height: 1.55; }
.admin-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }.admin-stats article, .admin-card { border: 1px solid #e2e2de; border-radius: 9px; background: #fff; box-shadow: 0 12px 30px rgba(23,28,36,.035); }.admin-stats article { display: grid; gap: 7px; padding: 22px; }.admin-stats span { color: #747984; font-size: .82rem; font-weight: 750; }.admin-stats strong { color: #101217; font-size: 2rem; letter-spacing: -.05em; }.admin-stats small { color: #81858d; }
.admin-grid { display: grid; grid-template-columns: 1.45fr 1fr; gap: 18px; }.admin-card { padding: 24px; }.admin-card h2 { margin: 0 0 18px; color: #12151b; font-size: 1.12rem; letter-spacing: -.03em; }.admin-wide { min-height: 260px; }.card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.card-head button { border: 0; background: transparent; color: #1766d8; font: inherit; font-weight: 800; cursor: pointer; }
.admin-grid.admin-student-grid { grid-template-columns: minmax(0, 1fr); width: 100%; max-width: 100%; }
#adminStudentsListPanel { width: 100%; max-width: none; }
.admin-list { display: grid; }.admin-list > div { display: grid; grid-template-columns: 1.2fr 1fr auto; align-items: center; gap: 12px; padding: 15px 0; border-top: 1px solid #ededeb; }.admin-list strong { color: #171a20; }.admin-list span { color: #757a84; font-size: .87rem; }.admin-list em { color: #47725d; font-size: .78rem; font-style: normal; font-weight: 800; text-align: right; }.admin-list .attention { color: #a66021; }
.admin-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.admin-actions button { min-height: 54px; padding: 10px; border: 1px solid #e3e3df; border-radius: 6px; background: #fafaf8; color: #252931; font: inherit; font-size: .84rem; font-weight: 750; text-align: left; cursor: pointer; }.admin-actions button:hover { border-color: #16191f; background: #16191f; color: #fff; }
.admin-toolbar { display: flex; gap: 12px; margin-bottom: 18px; }.admin-toolbar input, .admin-card label input, .admin-card label select, .admin-card label textarea { width: 100%; padding: 12px 13px; border: 1px solid #deded9; border-radius: 6px; background: #fff; color: #22252c; font: inherit; }.admin-toolbar input { max-width: 430px; }.admin-toolbar .primary-action { margin-left: auto; }.admin-card label { display: grid; gap: 7px; margin: 14px 0; color: #646a74; font-size: .8rem; font-weight: 800; }.admin-card textarea { min-height: 115px; resize: vertical; }.admin-card > .primary-action { margin-top: 8px; }
.admin-card .admin-assignment-panel label { margin: 0; }
.admin-card label[hidden] { display: none !important; }
.admin-support-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-support-list-card { grid-column: 1 / -1; }
.admin-support-list-card .admin-list strong small { display: block; margin-top: 4px; color: #858a92; font-size: .75rem; font-weight: 650; }
.admin-table { display: grid; width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
.admin-table-head,
#adminStudentsRows > div { display: grid; grid-template-columns: minmax(160px, 1.05fr) minmax(210px, 1.3fr) minmax(135px, .85fr) minmax(220px, 1.35fr) minmax(175px, 1fr) minmax(150px, .9fr) minmax(82px, .55fr) minmax(96px, .65fr); gap: 18px; align-items: center; min-width: 1395px; padding: 16px 0; border-top: 1px solid #ededeb; color: #686e78; font-size: .88rem; }
#adminStudentsRows { display: grid; min-width: 1395px; }
.admin-table .admin-table-head { padding-top: 0; border-top: 0; color: #888c94; font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.admin-table strong { display: grid; color: #16191f; }
.admin-table strong small { margin-top: 3px; color: #858a92; font-weight: 600; }
.admin-table em { justify-self: start; border-radius: 999px; padding: 5px 9px; color: #2f6d4d; background: #edf7f1; font-size: .76rem; font-style: normal; font-weight: 800; text-transform: capitalize; }
.admin-student-actions { display: flex; align-items: center; gap: 7px; }
.admin-student-edit,
.admin-student-delete { justify-self: start; border: 1px solid #d8d9d6; border-radius: 999px; padding: 7px 11px; color: #17191d; background: #fff; font: inherit; font-size: .76rem; font-weight: 800; cursor: pointer; white-space: nowrap; }
.admin-student-edit:hover { border-color: #17191d; color: #fff; background: #17191d; }
.admin-student-delete { border-color: #e7caca; color: #a23b3b; }
.admin-student-delete:hover { border-color: #a23b3b; color: #fff; background: #a23b3b; }
.admin-student-edit-dialog { width: min(760px, calc(100vw - 28px)); max-height: calc(100vh - 28px); padding: 0; overflow: auto; border: 0; border-radius: 16px; color: #17191d; background: #fff; box-shadow: 0 30px 90px rgba(11,15,23,.28); }
.admin-student-edit-dialog::backdrop { background: rgba(15,18,24,.7); backdrop-filter: blur(5px); }
.admin-student-edit-form { display: grid; gap: 20px; padding: clamp(22px, 4vw, 36px); }
.admin-student-edit-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 1px solid #e7e7e3; }
.admin-student-edit-header > div { display: grid; gap: 4px; }
.admin-student-edit-header span { color: #747984; font-size: .7rem; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.admin-student-edit-header h2 { margin: 0; font-size: clamp(1.65rem, 4vw, 2.35rem); letter-spacing: -.05em; }
.admin-student-edit-header small { color: #757b86; font-weight: 700; }
.admin-student-edit-header button,
.admin-student-edit-actions button { border: 1px solid #dbdcd8; border-radius: 999px; padding: 10px 16px; color: #22252c; background: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.admin-student-edit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.admin-student-edit-form label { display: grid; gap: 7px; color: #626873; font-size: .8rem; font-weight: 800; }
.admin-student-edit-form input,
.admin-student-edit-form select { width: 100%; padding: 12px 13px; border: 1px solid #dadbd7; border-radius: 7px; color: #17191d; background: #fff; font: inherit; }
.admin-student-edit-context { display: grid; gap: 4px; padding: 14px 16px; border-radius: 9px; background: #f5f5f2; }
.admin-student-edit-context span { color: #7b808a; font-size: .7rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.admin-student-email-notice { grid-template-columns: auto 1fr !important; align-items: flex-start; padding: 14px 16px; border: 1px solid #e0e1dd; border-radius: 9px; line-height: 1.45; }
.admin-student-email-notice input { width: 18px; height: 18px; margin: 1px 0 0; }
.admin-student-edit-actions { display: flex; justify-content: flex-end; gap: 10px; }
.admin-student-edit-actions .primary-action { border-color: #111318; color: #fff; background: #111318; }
@media (max-width: 620px) { .admin-student-edit-grid { grid-template-columns: 1fr; }.admin-student-edit-actions { flex-direction: column-reverse; }.admin-student-edit-actions button { width: 100%; }.admin-student-edit-header button { padding: 8px 12px; } }
.admin-payment-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-payment-grid { grid-template-columns: minmax(340px, .9fr) minmax(480px, 1.35fr); }
.admin-payment-mode { flex-wrap: wrap; }
.admin-payment-mode button { min-height: 40px; border: 1px solid #deded9; border-radius: 999px; padding: 8px 13px; background: #fff; color: #555961; font: inherit; font-size: .8rem; font-weight: 800; cursor: pointer; }
.admin-payment-mode button.primary-action { border-color: #111318; color: #fff; background: #111318; }
.admin-payment-history { max-height: 640px; overflow-y: auto; }
.admin-payment-history > .admin-payment-row { grid-template-columns: minmax(170px, 1.1fr) minmax(180px, 1fr) minmax(145px, auto); }
.admin-overdue-card { margin-top: 18px; border-color: #ead7d2; }
.admin-overdue-card .card-head { align-items: flex-start; }
.admin-overdue-card .card-head h2 { margin-bottom: 4px; }
.admin-overdue-card .card-head small { color: #7b8089; font-size: .78rem; line-height: 1.4; }
.admin-overdue-badge { flex: 0 0 auto; border-radius: 999px; padding: 7px 10px; color: #9b3f35; background: #fbefec; font-size: .72rem; font-weight: 850; }
.admin-overdue-list { margin-top: 12px; }
.admin-overdue-list > .admin-overdue-row { grid-template-columns: minmax(180px, 1.2fr) minmax(150px, .8fr) minmax(120px, .7fr) minmax(145px, auto); }
.admin-overdue-row span small { display: block; margin-top: 4px; color: #7b8089; font-size: .75rem; }
.admin-overdue-row > em { color: #a04438; background: #fbefec; text-align: center; }
.admin-payment-row strong small,
#adminAnnouncementsList strong small { display: block; margin-top: 4px; color: #7b8089; font-size: .75rem; font-weight: 600; line-height: 1.35; }
.admin-payment-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.admin-payment-actions em { text-transform: capitalize; }
.admin-inline-action { border: 1px solid #d9dad6; border-radius: 999px; padding: 7px 10px; color: #111318; background: #fff; font: inherit; font-size: .72rem; font-weight: 800; cursor: pointer; }
.admin-inline-action:hover { border-color: #111318; color: #fff; background: #111318; }
.admin-delete-action { border-color: #e7caca; color: #a23b3b; }
.admin-delete-action:hover { border-color: #a23b3b; background: #a23b3b; }
.admin-form-status { min-height: 1.4em; margin: 12px 0 0; color: #47725d; font-size: .82rem; font-weight: 700; }
.student-announcement { border-top: 1px solid rgba(11, 13, 18, .1); padding: 13px 0; }
.student-announcement:first-child { border-top: 0; padding-top: 0; }
.student-announcement p { margin: 6px 0; }
.student-announcement time { color: #7b8089; font-size: .72rem; font-weight: 700; }
@media (max-width: 980px) {
  .admin-payment-stats,
  .admin-payment-grid { grid-template-columns: 1fr; }
}
.admin-content-link { color: #1766d8; font-size: .82rem; font-weight: 800; text-decoration: none; }
.admin-content-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.admin-list > .admin-content-row { grid-template-columns: minmax(180px, 1.5fr) minmax(105px, .7fr) minmax(110px, auto) auto; }
.admin-list > .admin-assessment-row { grid-template-columns: minmax(180px, 1.25fr) minmax(155px, 1fr) minmax(100px, auto) auto; }
.admin-assessment-grid { align-items: start; }
.admin-assessment-list { max-height: 720px; overflow-y: auto; padding-right: 4px; }
.admin-content-control { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.admin-material-name { display: grid; gap: 4px; min-width: 0; }
.admin-material-name strong { overflow-wrap: anywhere; }
.admin-material-name small { display: block; color: #7b8089; font-size: .76rem; font-weight: 650; line-height: 1.35; }
.admin-content-control a, .material-open-button { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; border: 1px solid #d9dad6; border-radius: 999px; padding: 7px 13px; color: #111318; background: #fff; font: inherit; font-size: .78rem; font-weight: 800; text-decoration: none; cursor: pointer; }
.admin-content-control a:hover, .material-open-button:hover { border-color: #111318; color: #fff; background: #111318; text-decoration: none; }
.material-publish-button { min-height: 36px; border: 1px solid #111318; border-radius: 999px; padding: 7px 13px; color: #fff; background: #111318; font: inherit; font-size: .75rem; font-weight: 800; cursor: pointer; }
.material-publish-button:hover { color: #111318; background: #fff; }
.material-publish-button:disabled { opacity: .55; cursor: wait; }
.material-delete-button { min-height: 36px; border: 1px solid #c9cbc7; border-radius: 999px; padding: 7px 13px; color: #6e2424; background: #fff; font: inherit; font-size: .75rem; font-weight: 800; cursor: pointer; }
.material-delete-button:hover { border-color: #9f2f2f; color: #fff; background: #9f2f2f; }
.material-delete-button:disabled { opacity: .55; cursor: wait; }
.material-unavailable { color: #8a8e96; font-size: .78rem; font-weight: 700; }
.gamma-slide-dialog { position: relative; width: min(1120px, calc(100vw - 32px)); height: min(760px, calc(100vh - 32px)); padding: 0; overflow: hidden; border: 0; border-radius: 10px; color: #111318; background: #fff; box-shadow: 0 28px 80px rgba(11,15,23,.3); }
.gamma-slide-dialog.is-maximized { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; border-radius: 0; }
.gamma-slide-dialog::backdrop { background: rgba(11,15,23,.68); backdrop-filter: blur(3px); }
.gamma-slide-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 76px; padding: 14px 18px 14px 22px; border-bottom: 1px solid #e3e3df; background: #fff; }
.gamma-slide-header > div { display: grid; gap: 3px; }
.gamma-slide-header > .gamma-slide-actions { display: flex; align-items: center; gap: 8px; }
.gamma-slide-header span { color: #777b84; font-size: .66rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.gamma-slide-header h2 { margin: 0; font-size: 1.05rem; letter-spacing: -.025em; }
.gamma-slide-header button { border: 1px solid #d9dad6; border-radius: 999px; padding: 9px 14px; color: #111318; background: #fff; font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.gamma-slide-header button:hover { color: #fff; background: #111318; }
.gamma-slide-header button[hidden] { display: none; }
.gamma-slide-dialog iframe { display: block; width: 100%; height: calc(100% - 76px); border: 0; background: #111318; }
.gamma-forensic-watermark { position: absolute; z-index: 2; top: 76px; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(4, minmax(210px, 1fr)); align-items: center; gap: clamp(60px, 9vh, 110px) 24px; overflow: hidden; padding: 34px 0; pointer-events: none; user-select: none; }
.gamma-forensic-watermark span { color: #173f5b; font-size: clamp(.58rem, .68vw, .74rem); font-weight: 900; letter-spacing: .08em; line-height: 1.35; opacity: .12; text-align: center; text-transform: uppercase; transform: rotate(-22deg); white-space: nowrap; }
.material-loading-layer { display: grid; position: absolute; z-index: 3; top: 76px; right: 0; bottom: 0; left: 0; place-content: center; justify-items: center; gap: 13px; color: #fff; background: #111318; }
.material-loading-layer[hidden] { display: none; }
.material-loading-layer strong { font-size: .9rem; letter-spacing: .01em; }
.material-loading-spinner { width: 42px; height: 42px; border: 4px solid rgba(255,255,255,.24); border-top-color: #fff; border-radius: 50%; animation: material-loading-spin .8s linear infinite; }
.material-loading-layer.is-error .material-loading-spinner { display: none; }
.material-loading-layer.is-error strong { max-width: 340px; color: #fff; line-height: 1.5; text-align: center; }
@keyframes material-loading-spin { to { transform: rotate(360deg); } }
.video-lesson-dialog { width: min(1120px, calc(100vw - 32px)); padding: 0; overflow: hidden; border: 0; border-radius: 10px; color: #111318; background: #111318; box-shadow: 0 28px 80px rgba(11,15,23,.38); }
.video-lesson-dialog::backdrop { background: rgba(11,15,23,.78); backdrop-filter: blur(4px); }
.video-lesson-stage { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #050607; }
.video-lesson-stage iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.pdf-viewer-dialog { position: relative; width: min(1180px, calc(100vw - 24px)); height: min(880px, calc(100vh - 24px)); padding: 0; overflow: hidden; border: 0; border-radius: 10px; color: #111318; background: #25282e; box-shadow: 0 28px 80px rgba(11,15,23,.38); }
.pdf-viewer-dialog.is-maximized { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; border-radius: 0; }
.pdf-viewer-dialog::backdrop { background: rgba(11,15,23,.75); backdrop-filter: blur(4px); }
.pdf-viewer-header { display: flex; position: relative; z-index: 2; align-items: center; justify-content: space-between; gap: 18px; min-height: 82px; padding: 13px 18px 13px 22px; border-bottom: 1px solid #dedfdb; background: #fff; }
.pdf-viewer-header > div:first-child { display: grid; gap: 2px; min-width: 0; }
.pdf-viewer-header span { color: #777b84; font-size: .64rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.pdf-viewer-header h2 { overflow: hidden; margin: 0; font-size: 1.02rem; letter-spacing: -.025em; text-overflow: ellipsis; white-space: nowrap; }
.pdf-viewer-header small { color: #767b84; font-size: .7rem; }
.pdf-viewer-actions { display: flex; flex: 0 0 auto; gap: 7px; }
.pdf-viewer-actions button { border: 1px solid #d9dad6; border-radius: 999px; padding: 9px 13px; color: #111318; background: #fff; font: inherit; font-size: .75rem; font-weight: 800; cursor: pointer; }
.pdf-viewer-actions button:hover { color: #fff; background: #111318; }
.pdf-viewer-pages { display: grid; align-content: start; gap: 22px; height: calc(100% - 116px); padding: 22px; overflow: auto; overscroll-behavior: contain; background: #25282e; }
.pdf-viewer-page { display: grid; justify-items: center; gap: 7px; width: min(100%, 1080px); margin: 0 auto; }
.pdf-viewer-page > span { color: #c9cbd0; font-size: .68rem; font-weight: 750; }
.pdf-viewer-page canvas { display: block; width: 100%; max-width: 1080px; height: auto; background: #fff; box-shadow: 0 10px 32px rgba(0,0,0,.28); user-select: none; -webkit-user-select: none; }
.pdf-viewer-dialog.is-maximized .pdf-viewer-pages { height: calc(100dvh - 116px); padding: 0; }
.pdf-viewer-notice { position: absolute; right: 0; bottom: 0; left: 0; height: 34px; margin: 0; padding: 9px 16px; color: #c8cbd0; background: rgba(17,19,24,.96); font-size: .67rem; font-weight: 700; text-align: center; }
.pdf-material-loading { top: 82px; bottom: 34px; background: #25282e; }
@media (prefers-reduced-motion: reduce) { .material-loading-spinner { animation-duration: 1.6s; } }
@media (max-width: 680px) { .pdf-material-loading { top: 150px; } }
.login-recovery-button { justify-self: start; margin-top: -3px; padding: 2px 0; border: 0; color: #505762; background: transparent; font: inherit; font-size: .78rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.login-recovery-button:hover { color: #111318; }

/* Dedicated student account activation */
.account-setup-body { min-height: 100vh; margin: 0; color: #101217; background: #f3f3f0; font-family: Arial, Helvetica, sans-serif; }
.account-setup-body *, .account-setup-body *::before, .account-setup-body *::after { box-sizing: border-box; }
.account-setup-shell { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); min-height: 100vh; }
.account-setup-card { display: flex; flex-direction: column; justify-content: center; width: min(680px, 100%); padding: clamp(32px, 7vw, 88px); background: #fff; }
.account-setup-brand { display: inline-flex; align-items: center; align-self: flex-start; gap: 12px; margin-bottom: clamp(44px, 8vh, 90px); color: #101217; text-decoration: none; }
.account-setup-brand img { width: 48px; height: 48px; object-fit: contain; }
.account-setup-brand span { display: grid; gap: 1px; }
.account-setup-brand strong { font-size: 1.55rem; letter-spacing: -.045em; }
.account-setup-brand small { color: #5f6570; font-size: .62rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.account-setup-copy > span, .account-setup-success > span, .account-setup-error > span { color: #737984; font-size: .7rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.account-setup-copy h1 { max-width: 620px; margin: 14px 0 18px; font-size: clamp(2.65rem, 6vw, 5.35rem); letter-spacing: -.075em; line-height: .92; }
.account-setup-copy p, .account-setup-success p, .account-setup-error p { max-width: 560px; margin: 0; color: #656c77; font-size: 1rem; line-height: 1.6; }
.account-setup-loading { margin-top: 30px; border-radius: 8px; padding: 16px 18px; color: #525963; background: #f3f3f0; font-size: .88rem; font-weight: 750; }
.account-setup-form { display: grid; gap: 15px; margin-top: 30px; }
.account-setup-copy[hidden], .account-setup-loading[hidden], .account-setup-form[hidden], .account-setup-success[hidden], .account-setup-error[hidden] { display: none !important; }
.account-setup-form label { display: grid; gap: 8px; color: #565d68; font-size: .8rem; font-weight: 800; }
.account-setup-form input { width: 100%; min-height: 52px; padding: 13px 14px; border: 1px solid #d8d9d5; border-radius: 7px; color: #111318; background: #fff; font: inherit; }
.account-setup-form input[readonly] { color: #555c66; background: #f2f2ef; }
.account-setup-form input:focus { border-color: #111318; outline: 3px solid rgba(17,19,24,.1); outline-offset: 1px; }
.account-setup-hint { margin-top: -7px; color: #858a93; font-size: .72rem; line-height: 1.45; }
.account-setup-form button, .account-setup-success a, .account-setup-error a { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; margin-top: 4px; border: 1px solid #111318; border-radius: 999px; padding: 12px 20px; color: #fff; background: #111318; font: inherit; font-size: .88rem; font-weight: 850; text-decoration: none; cursor: pointer; }
.account-setup-form button:hover, .account-setup-success a:hover, .account-setup-error a:hover { color: #111318; background: #fff; }
.account-setup-form button:disabled { opacity: .55; cursor: wait; }
.account-setup-status { min-height: 1.35em; margin: 0; color: #356449; font-size: .8rem; font-weight: 750; }
.account-setup-success, .account-setup-error { margin-top: 8px; }
.account-setup-success h2, .account-setup-error h2 { max-width: 570px; margin: 14px 0 18px; font-size: clamp(2.5rem, 6vw, 4.9rem); letter-spacing: -.07em; line-height: .94; }
.account-setup-success a, .account-setup-error a { width: min(340px, 100%); margin-top: 28px; }
.account-setup-security { margin: 26px 0 0; color: #8a8e96; font-size: .72rem; line-height: 1.5; }
.account-setup-aside { display: flex; flex-direction: column; justify-content: flex-end; min-height: 100%; padding: clamp(38px, 6vw, 76px); color: #fff; background: radial-gradient(circle at 65% 20%, rgba(23,124,178,.54), transparent 36%), linear-gradient(145deg, #0a2249 0%, #071528 56%, #090b10 100%); }
.account-setup-aside span { margin-bottom: 16px; color: rgba(255,255,255,.65); font-size: .72rem; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.account-setup-aside strong { max-width: 620px; font-size: clamp(2.2rem, 4.5vw, 5rem); letter-spacing: -.065em; line-height: .96; }
@media (max-width: 880px) { .account-setup-shell { grid-template-columns: 1fr; }.account-setup-card { width: 100%; min-height: 100vh; }.account-setup-aside { display: none; }.account-setup-brand { margin-bottom: 56px; } }
@media (max-width: 1050px) { .admin-workspace-active { overflow: auto; }.admin-page.active { grid-template-columns: 1fr; height: auto; overflow: visible; }.admin-sidebar { position: relative; inset: auto; width: auto; height: auto; overflow: visible; }.admin-main { grid-column: 1; height: auto; overflow: visible; }.admin-nav { grid-template-columns: repeat(2, minmax(0,1fr)); }.admin-nav > span { grid-column: 1 / -1; }.admin-sidebar .logout-button { margin-top: 20px; }.admin-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px) { .login-header-actions, .admin-nav, .admin-grid, .admin-stats, .admin-actions { grid-template-columns: 1fr; }.login-header-actions { align-items: stretch; width: 100%; flex-direction: column; gap: 8px; }.admin-topbar { align-items: flex-start; gap: 14px; flex-direction: column; }.admin-content { padding: 28px 18px; }.admin-list > div, .admin-list > .admin-content-row, .admin-list > .admin-assessment-row { grid-template-columns: 1fr; }.admin-list em { text-align: left; }.admin-toolbar { align-items: stretch; flex-direction: column; }.admin-toolbar .primary-action { margin-left: 0; }.gamma-slide-dialog, .pdf-viewer-dialog { width: calc(100dvw - 12px); max-width: calc(100dvw - 12px); height: calc(100dvh - 12px); max-height: calc(100dvh - 12px); margin: auto; }.gamma-slide-header { min-height: 70px; padding: 12px 14px; }.gamma-slide-dialog iframe { height: calc(100% - 70px); }.gamma-forensic-watermark { top: 70px; grid-template-columns: repeat(2, minmax(180px, 1fr)); gap: 58px 12px; }.pdf-viewer-header { align-items: flex-start; min-height: 116px; padding: 11px 12px; flex-direction: column; }.pdf-viewer-header h2 { max-width: calc(100dvw - 34px); }.pdf-viewer-actions { width: 100%; }.pdf-viewer-actions button { flex: 1; padding: 8px 6px; }.pdf-viewer-pages { box-sizing: border-box; width: 100%; min-width: 0; height: calc(100% - 150px); padding: 14px 8px; overflow-x: hidden; }.pdf-viewer-page { box-sizing: border-box; width: 100%; min-width: 0; }.pdf-viewer-page canvas { box-sizing: border-box; width: 100% !important; max-width: 100%; height: auto !important; }.pdf-viewer-dialog.is-maximized { width: 100dvw; max-width: 100dvw; height: 100dvh; max-height: 100dvh; }.pdf-viewer-dialog.is-maximized .pdf-viewer-pages { height: calc(100dvh - 150px); } }

body .portal-heading {
  max-width: 800px;
  margin-bottom: 34px;
}

body .portal-heading h1 {
  max-width: 680px;
  font-size: clamp(2.25rem, 4.2vw, 4.3rem);
  font-weight: 750;
  letter-spacing: -0.055em;
  line-height: 0.96;
}

body .portal-heading p {
  max-width: 610px;
  color: var(--portal-muted);
  font-size: 1rem;
}

body .portal-card {
  border-color: var(--portal-line);
  border-radius: 3px;
  box-shadow: none;
}

body .portal-card:hover {
  transform: none;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.035);
}

body .portal-card h2 {
  letter-spacing: -0.035em;
}

body .portal-card-eyebrow,
body .assessment-label,
body .portal-primary-card > span {
  display: block;
  margin-bottom: 10px;
  color: #777a80;
  font-size: 0.66rem;
  font-weight: 850;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body .portal-primary-card {
  position: relative;
  overflow: hidden;
  background: var(--portal-ink);
}

body .portal-primary-card::after {
  position: absolute;
  right: -48px;
  bottom: -86px;
  width: 240px;
  height: 240px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 50%;
  content: "";
}

body .portal-primary-card > * {
  position: relative;
  z-index: 1;
}

body .portal-primary-card > span {
  color: rgba(255, 255, 255, 0.58);
}

body .portal-card button,
body .mentor-actions a {
  border-radius: 3px;
  font-weight: 800;
}

body .portal-card button:hover,
body .mentor-actions a:hover {
  transform: translateY(-1px);
}

body .portal-primary-card button {
  color: #fff;
  border-color: #fff;
  background: transparent;
}

body .portal-primary-card button:hover {
  color: var(--portal-ink);
  background: #fff;
}

body .course-row {
  border-radius: 3px;
  background: #fafaf8;
}

body .portal-metric-row div {
  border-radius: 3px;
  background: #f1f1ee;
}

body .assessment-card,
body .topic-resource-card,
body .topic-workspace {
  border-color: var(--portal-line);
  border-radius: 3px;
  box-shadow: none;
}

body .assessment-card {
  align-items: end;
  min-height: 178px;
}

body .bank-library .assessment-card {
  min-height: 112px;
  gap: 6px 20px;
  padding: 16px 20px;
}

body .bank-library .assessment-card .assessment-label,
body .bank-library .assessment-card .assessment-meta {
  grid-column: 1;
}

body .assessment-meta-inline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
}

body .assessment-meta-inline span:last-child {
  margin-left: auto;
  text-align: right;
}

body .assessment-meta-stacked {
  display: grid;
  gap: 4px;
}

body .bank-library .assessment-card button {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  margin: 0;
}

body .assessment-card p,
body .topic-resource-card p {
  max-width: 38ch;
}

body .assessment-card-dark {
  color: #fff;
  background: var(--portal-ink);
}

body .assessment-card-dark h3,
body .assessment-card-dark p,
body .assessment-card-dark .assessment-label,
body .assessment-card-dark .assessment-meta {
  color: inherit;
}

body .assessment-card-dark p,
body .assessment-card-dark .assessment-meta {
  opacity: 0.64;
}

body .bank-library {
  gap: 10px;
}

body .exam-question {
  border-bottom-color: var(--portal-line);
}

body .exam-question label {
  border-radius: 3px;
  border-color: var(--portal-line);
  transition: border-color 160ms ease, background 160ms ease;
}

body .exam-question label:hover {
  border-color: var(--portal-ink);
  background: #fafaf8;
}

body .assessment-question-progress { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; color: #6f7682; font-size: .82rem; font-weight: 800; }
body .exam-question-single { width: 100%; min-width: 0; margin: 0; border: 0; border-bottom: 0; padding: 0; }
body .exam-question-single legend { margin-bottom: 20px; color: var(--portal-ink); font-size: clamp(1rem, 1.55vw, 1.25rem); font-weight: 400; line-height: 1.5; }
body .exam-question-single label { display: flex; width: 100%; min-width: 0; min-height: 54px; align-items: flex-start; gap: 12px; margin-top: 10px; padding: 14px 16px; cursor: pointer; }
body .exam-question-single input[type="radio"] { flex: 0 0 18px; width: 18px; height: 18px; min-height: 0; margin: 3px 0 0; border: 0; padding: 0; accent-color: var(--portal-ink); }
body .exam-question-single label > span { display: block; flex: 1 1 auto; min-width: 0; color: var(--portal-ink); line-height: 1.5; overflow-wrap: anywhere; }
body .exam-question-single label:has(input:checked) { border-color: var(--portal-ink); background: #f3f3f0; }
body .exam-question-single label.is-correct-answer { border-color: #218452; background: #edf8f1; }
body .exam-question-single label.is-incorrect-answer { border-color: #b84040; background: #fff0f0; }
body .practice-answer-feedback { margin: 20px 0; border-left: 4px solid #218452; padding: 18px 20px; background: #edf8f1; }
body .practice-answer-feedback.is-incorrect { border-left-color: #b84040; background: #fff3f3; }
body .practice-answer-feedback p { margin: 8px 0 0; color: #4f5763; line-height: 1.6; }
body .assessment-question-actions { display: flex; justify-content: space-between; gap: 12px; margin: 24px 0; }
body .assessment-question-actions button, body .result-completion-actions button { min-height: 44px; border: 1px solid var(--portal-line); border-radius: 3px; padding: 10px 18px; color: var(--portal-ink); background: #fff; font-weight: 800; cursor: pointer; }
body .assessment-question-actions button.primary-action { margin-left: auto; color: #fff; background: var(--portal-ink); }
body .assessment-question-actions button:disabled { opacity: .42; cursor: not-allowed; }
body .assessment-question-palette { display: flex; flex-wrap: wrap; gap: 8px; border-top: 1px solid var(--portal-line); padding-top: 20px; }
body .assessment-question-palette button { display: grid; width: 44px; height: 44px; flex: 0 0 44px; padding: 0; place-items: center; border: 1px solid #c8cbd0; border-radius: 50%; color: #5f6671; background: #f1f1ef; font-size: .76rem; font-weight: 850; line-height: 1; cursor: pointer; }
body .assessment-question-palette button.is-answered { border-color: #218452; color: #fff; background: #218452; }
body .assessment-question-palette button.is-current { outline: 3px solid rgba(17,19,24,.2); outline-offset: 2px; }
body .result-completion-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 14px; }
body .result-completion-actions button:only-child { grid-column: 1 / -1; }
body .result-completion-actions button:first-child { color: #fff; background: var(--portal-ink); }
body .assessment-review-dialog {
  width: min(900px, calc(100vw - 28px));
  height: min(760px, calc(100vh - 28px));
  margin: auto;
  border: 0;
  border-radius: 18px;
  padding: 0;
  color: var(--portal-ink);
  background: #fff;
  box-shadow: 0 28px 80px rgba(11, 13, 18, .28);
  overflow: hidden;
}

body .assessment-review-dialog::backdrop {
  background: rgba(11, 13, 18, .64);
  backdrop-filter: blur(3px);
}

body .assessment-review-dialog-shell {
  display: grid;
  height: 100%;
  grid-template-rows: auto minmax(0, 1fr);
}

body .assessment-review-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--portal-line);
  padding: 20px 24px;
}

body .assessment-review-dialog-header span {
  color: #777e89;
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .16em;
  text-transform: uppercase;
}

body .assessment-review-dialog-header h2 {
  margin: 4px 0 0;
  font-size: 1.35rem;
}

body .assessment-review-dialog-header button {
  flex: 0 0 auto;
  border: 1px solid var(--portal-line);
  border-radius: 999px;
  padding: 10px 18px;
  color: var(--portal-ink);
  background: #fff;
  font-weight: 800;
  cursor: pointer;
}

body .assessment-review-dialog-content {
  min-height: 0;
  padding: 8px 24px 24px;
  overflow-y: auto;
}

body .flashcard-bookmark-actions,
body .flashcard-bookmark-item-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

body .flashcard-bookmark-actions button {
  white-space: nowrap;
}

body [data-flash-bookmark][aria-pressed="true"] {
  border-color: #111318;
  color: #fff;
  background: #111318;
}

body [data-flash-bookmark-count] {
  display: inline-grid;
  min-width: 21px;
  height: 21px;
  margin-left: 5px;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: #111318;
  font-size: .68rem;
}

body .flashcard-bookmarks-dialog {
  width: min(760px, calc(100vw - 28px));
  height: min(680px, calc(100vh - 28px));
  margin: auto;
  border: 0;
  border-radius: 18px;
  padding: 0;
  color: var(--portal-ink);
  background: #fff;
  box-shadow: 0 28px 80px rgba(11, 13, 18, .28);
  overflow: hidden;
}

body .flashcard-bookmarks-dialog::backdrop {
  background: rgba(11, 13, 18, .64);
  backdrop-filter: blur(3px);
}

body .flashcard-bookmarks-dialog-shell {
  display: grid;
  height: 100%;
  grid-template-rows: auto minmax(0, 1fr);
}

body .flashcard-bookmarks-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--portal-line);
  padding: 20px 24px;
}

body .flashcard-bookmarks-dialog-header span,
body .flashcard-bookmark-item span {
  color: #777e89;
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body .flashcard-bookmarks-dialog-header h2 {
  margin: 4px 0 0;
  font-size: 1.35rem;
}

body .flashcard-bookmarks-dialog-header button,
body .flashcard-bookmark-item button {
  border: 1px solid var(--portal-line);
  border-radius: 999px;
  padding: 9px 14px;
  color: var(--portal-ink);
  background: #fff;
  font-weight: 800;
  cursor: pointer;
}

body .flashcard-bookmarks-list {
  min-height: 0;
  padding: 8px 24px 24px;
  overflow-y: auto;
}

body .flashcard-bookmark-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  border-bottom: 1px solid var(--portal-line);
  padding: 16px 0;
}

body .flashcard-bookmark-item strong {
  display: block;
  margin-top: 6px;
  line-height: 1.4;
}

body .flashcard-bookmark-item [data-open-bookmarked-card] {
  color: #fff;
  background: #111318;
}

body .flashcard-bookmarks-empty {
  display: grid;
  min-height: 260px;
  place-content: center;
  text-align: center;
}

body .flashcard-bookmarks-empty p {
  margin: 7px 0 0;
  color: #747b86;
}

body .result-tab {
  border-radius: 3px;
}

body .result-tab.is-active {
  background: var(--portal-ink);
}

body .mentor-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body .preferences-panel {
  display: grid;
  gap: 10px;
  margin-top: 16px;
  border-top: 1px solid var(--portal-line);
  padding-top: 16px;
}

body .preferences-panel[hidden] {
  display: none;
}

body .preferences-panel label {
  color: #4f5156;
  font-size: 0.88rem;
}

body .preferences-panel input {
  accent-color: var(--portal-ink);
}

body .preferences-panel button {
  justify-self: start;
}

body .student-materials-panel {
  margin-top: 20px;
}

body .student-material-list {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--portal-line);
}

body .student-material-list > strong,
body .student-material-list > span {
  display: block;
  padding: 18px 0 0;
}

body .student-material-list > span {
  padding-top: 6px;
  color: var(--portal-muted);
}

body .student-material-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 0;
  border-bottom: 1px solid var(--portal-line);
}

body .student-material-row:last-child {
  border-bottom: 0;
}

body .student-material-row > div {
  display: grid;
  gap: 5px;
}

body .student-material-row > div span {
  color: var(--portal-muted);
  font-size: 0.88rem;
}

body .student-material-row a,
body .student-material-row .material-open-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 36px;
  border: 1px solid #d9dad6;
  border-radius: 999px;
  padding: 7px 13px;
  color: var(--portal-ink);
  background: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
}

body .student-material-row a:hover,
body .student-material-row .material-open-button:hover {
  color: #fff;
  background: var(--portal-ink);
  text-decoration: none;
}

@media (max-width: 1280px) {
  body .topic-resource-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body .five-exam-library {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  body .course-browser,
  body .baseline-grid,
  body .flashcard-layout {
    grid-template-columns: 1fr;
  }

  body .topic-browser,
  body .flashcard-count-card {
    position: static;
  }

  body .topic-browser-list {
    max-height: 360px;
  }

  body .five-exam-library {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  body .portal-access-banner,
  body .account-grid,
  body .payment-grid,
  body .assessment-result-grid,
  body .result-overview,
  body .support-contact-grid,
  body .bank-library,
  body .topic-resource-grid,
  body .five-exam-library {
    grid-template-columns: 1fr;
  }

  body .account-grid > :last-child {
    grid-column: auto;
  }

  body .payment-history-card {
    grid-column: auto;
  }

  body .result-completion-actions {
    grid-template-columns: 1fr;
  }

  body .flashcard-deck-row,
  body .flashcard-bookmark-item {
    grid-template-columns: 1fr;
  }

  body .flashcard-deck-row {
    align-items: stretch;
    flex-direction: column;
  }

  body .flashcard-bookmark-actions {
    flex-wrap: wrap;
  }

  body .flashcard-bookmark-item-actions {
    justify-content: flex-start;
  }

  body .payment-currency-row {
    grid-template-columns: 1fr;
  }

  body .payment-account-card .portal-list {
    grid-template-columns: 1fr;
  }

  body .student-support-update strong {
    justify-items: start;
  }

  body .portal-access-banner button {
    justify-self: start;
  }

  body .enrollment-banner {
    grid-template-columns: 1fr;
  }

  body .flashcard {
    min-height: 330px;
  }

  body .baseline-meta {
    grid-template-columns: 1fr;
  }

  body .assigned-pretest-resource {
    align-items: flex-start;
    flex-direction: column;
  }

  body .runner-heading {
    align-items: flex-start;
  }

  body .student-material-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }
}

/* 2026-07-27 premium launch, accessibility, and performance pass */
:root {
  color-scheme: light;
}

body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body .site-header {
  min-height: 78px;
  padding-block: 8px;
}

body .site-header .brand-mark {
  width: 64px;
  height: 64px;
}

body .site-header .brand {
  gap: 6px;
}

body .site-header .brand strong {
  font-size: 1.72rem;
}

body .site-header .primary-action {
  min-height: 46px;
}

body .mobile-nav-toggle {
  display: none;
}

body :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid rgba(7, 148, 85, 0.34);
  outline-offset: 3px;
}

body :is(button, .primary-action, .whatsapp-action, .outline-action) {
  touch-action: manipulation;
}

body .landing-page > main > section,
body .nclex-page > main > section,
body .founder-page > main > section {
  content-visibility: auto;
  contain-intrinsic-size: 1px 800px;
}

body .hero,
body .founder-hero,
body .login-shell {
  content-visibility: visible;
  contain-intrinsic-size: auto;
}

body .section-intro,
body .founder-opening,
body .founder-story-lead {
  line-height: 1.72;
}

body .program-card,
body .pathway-choice-card,
body .portal-card,
body .admin-card {
  transition: border-color 180ms ease, box-shadow 240ms ease, transform 240ms ease;
}

body .pathway-choice-card:hover,
body .portal-card:hover,
body .admin-card:hover {
  border-color: rgba(11, 13, 18, 0.14);
}

body .login-panel,
body .login-benefits,
body .account-setup-card {
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.09);
}

@media (max-width: 720px) {
  body .site-header {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 12px;
    padding: 8px 16px;
  }

  body .site-header .brand-mark {
    width: 60px;
    height: 60px;
  }

  body .site-header .brand strong {
    font-size: 1.42rem;
  }

  body .site-header .brand small {
    font-size: 0.48rem;
  }

  body .mobile-nav-toggle {
    display: inline-grid;
    grid-template-columns: 18px auto;
    grid-template-rows: repeat(3, 3px);
    align-items: center;
    align-self: center;
    gap: 3px 8px;
    min-width: 78px;
    min-height: 44px;
    border: 1px solid rgba(11, 13, 18, 0.12);
    border-radius: 999px;
    padding: 9px 12px;
    color: #111318;
    background: #fff;
  }

  body .mobile-nav-toggle span {
    grid-column: 1;
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
  }

  body .mobile-nav-toggle b {
    grid-column: 2;
    grid-row: 1 / 4;
    font-size: 0.72rem;
    letter-spacing: 0.02em;
  }

  body .site-header.nav-open .mobile-nav-toggle span:nth-child(1) {
    transform: translateY(5px) rotate(45deg);
  }

  body .site-header.nav-open .mobile-nav-toggle span:nth-child(2) {
    opacity: 0;
  }

  body .site-header.nav-open .mobile-nav-toggle span:nth-child(3) {
    transform: translateY(-5px) rotate(-45deg);
  }

  body .site-header .main-nav,
  body .site-header > .primary-action {
    display: none;
  }

  body .site-header.nav-open .main-nav {
    grid-column: 1 / -1;
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    border-top: 1px solid rgba(11, 13, 18, 0.08);
    padding: 10px 0 2px;
    overflow: visible;
  }

  body .site-header.nav-open .main-nav > :is(a, button, .nav-dropdown) {
    width: 100%;
  }

  body .site-header.nav-open .main-nav > a,
  body .site-header.nav-open .main-nav > button,
  body .site-header.nav-open .nav-dropdown-toggle {
    display: flex;
    min-height: 44px;
    align-items: center;
    justify-content: space-between;
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 0.9rem;
    text-align: left;
  }

  body .site-header.nav-open .main-nav > :is(a, button):hover,
  body .site-header.nav-open .nav-dropdown-toggle:hover {
    background: #f2f2ef;
  }

  body .site-header.nav-open > .primary-action {
    grid-column: 1 / -1;
    display: inline-flex;
    width: 100%;
    min-height: 46px;
    margin-top: 2px;
  }

  body .site-header.nav-open .nav-dropdown-menu {
    position: static;
    display: none;
    min-width: 0;
    border: 0;
    padding: 4px 0 4px 12px;
    box-shadow: none;
    opacity: 1;
    transform: none;
    visibility: visible;
  }

  body .site-header.nav-open .nav-dropdown.open .nav-dropdown-menu {
    display: grid;
    transform: none;
    pointer-events: auto;
  }

  body .hero {
    padding-block: 42px 48px;
  }

  body .hero .hero-stat-card {
    display: none;
  }

  body .hero h1 {
    font-size: clamp(2.45rem, 11.5vw, 3.25rem);
    line-height: 1.01;
  }

  body .hero-actions > :is(a, button) {
    width: 100%;
    min-height: 50px;
  }

  body .login-header :is(a, button),
  body .login-panel :is(a, button),
  body .account-setup-card :is(a, button) {
    min-height: 44px;
  }

  body .portal-topbar {
    gap: 12px;
  }

  body .portal-search {
    min-height: 44px;
  }
}

/* Premium eligibility and contact card */
body .faq-contact-section .faq-card h2 {
  max-width: 760px;
  font-size: clamp(2.35rem, 3.8vw, 4.35rem);
  line-height: 1.02;
  white-space: normal;
}

body .compact-contact-form {
  position: sticky;
  top: 108px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 16px;
  overflow: hidden;
  border: 1px solid rgba(11, 13, 18, 0.1);
  border-radius: 16px;
  padding: clamp(30px, 3.2vw, 48px);
  color: #111318 !important;
  background: #fff !important;
  background-image: none !important;
  box-shadow: 0 30px 80px rgba(15, 23, 42, 0.1);
}

body .compact-contact-form::before {
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, #111318 0 58%, #16a15e 58% 100%);
  content: "";
}

body .compact-contact-form > .contact-form-intro,
body .compact-contact-form > button,
body .compact-contact-form > small,
body .compact-contact-form > .contact-details {
  grid-column: 1 / -1;
}

body .compact-contact-form .contact-form-intro {
  max-width: 640px;
  margin-bottom: 4px;
}

body .compact-contact-form .section-kicker.light {
  margin-bottom: 14px;
  color: #747b86;
}

body .compact-contact-form h2 {
  margin: 0;
  color: #111318;
  font-size: clamp(2rem, 2.75vw, 3.15rem);
  line-height: 1.02;
}

body .compact-contact-form .contact-form-intro > p:last-child {
  max-width: 590px;
  margin: 16px 0 0;
  color: #626a78;
  font-size: 1rem;
  line-height: 1.6;
}

body .compact-contact-form label {
  display: grid;
  gap: 8px;
  min-width: 0;
  color: #303640;
  font-size: 0.84rem;
  font-weight: 850;
  letter-spacing: 0.01em;
}

body .compact-contact-form :is(input, select) {
  width: 100%;
  height: 52px;
  border: 1px solid rgba(11, 13, 18, 0.14);
  border-radius: 10px;
  padding: 0 15px;
  color: #111318;
  background: #f7f7f4;
  font: inherit;
  font-weight: 650;
  outline: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

body .compact-contact-form :is(input, select):focus {
  border-color: #111318;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(17, 19, 24, 0.08);
}

body .compact-contact-form input::placeholder {
  color: #969ca6;
  font-weight: 550;
}

body .compact-contact-form > button {
  min-height: 54px;
  margin: 6px 0 0;
  border-radius: 999px;
  color: #fff;
  background: #111318;
  box-shadow: 0 14px 30px rgba(17, 19, 24, 0.14);
}

body .compact-contact-form > button:hover {
  background: #20242b;
  box-shadow: 0 18px 36px rgba(17, 19, 24, 0.18);
}

body .compact-contact-form > small {
  margin: -4px 0 0;
  color: #7b818c;
  font-size: 0.72rem;
  line-height: 1.45;
  text-align: center;
}

body .compact-contact-form .contact-details {
  display: grid;
  grid-template-columns: 0.88fr 1fr 1.35fr;
  gap: 8px;
  margin-top: 2px;
  padding-top: 18px;
  border-top: 1px solid rgba(11, 13, 18, 0.09);
}

body .compact-contact-form .contact-details a {
  display: grid;
  gap: 3px;
  min-width: 0;
  border-radius: 9px;
  padding: 10px 11px;
  color: #242830;
  background: #f7f7f4;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.35;
  overflow-wrap: anywhere;
  text-decoration: none;
}

body .compact-contact-form .contact-details a span {
  color: #878d97;
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

@media (max-width: 1200px) {
  body .compact-contact-form {
    position: static;
  }
}

@media (max-width: 720px) {
  body .compact-contact-form {
    grid-template-columns: 1fr;
    gap: 16px;
    border-radius: 12px;
    padding: 28px 20px;
  }

  body .compact-contact-form > *,
  body .compact-contact-form > .contact-form-intro,
  body .compact-contact-form > button,
  body .compact-contact-form > small,
  body .compact-contact-form > .contact-details {
    grid-column: 1;
  }

  body .compact-contact-form .contact-details {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  body *,
  body *::before,
  body *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }

  body .testimonial-track {
    animation-name: testimonial-scroll !important;
    animation-duration: 56s !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
  }
}

/* Protected Student Portal security */
.admin-nav-count {
  display: inline-grid;
  min-width: 22px;
  height: 22px;
  margin-left: auto;
  place-items: center;
  border-radius: 999px;
  padding-inline: 6px;
  color: #fff;
  background: #c73434;
  font-size: 0.7rem;
  font-weight: 900;
}

.security-scope-note {
  display: grid;
  grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1.58fr);
  gap: 22px;
  margin: -14px 0 22px;
  border: 1px solid #d8d9d6;
  border-radius: 14px;
  padding: 20px 22px;
  background: #f7f7f4;
}

.security-scope-note strong {
  color: #111318;
  font-size: 0.93rem;
}

.security-scope-note p {
  margin: 0;
  color: #656c78;
  font-size: 0.88rem;
  line-height: 1.58;
}

.admin-security-grid {
  grid-template-columns: 1fr;
}

.admin-security-grid .admin-wide {
  min-height: 0;
}

.admin-list > .admin-security-row {
  grid-template-columns: minmax(170px, 0.95fr) minmax(260px, 1.45fr) minmax(220px, 1fr) minmax(125px, auto);
  align-items: center;
}

.admin-security-row strong,
.admin-security-row span {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.admin-security-row small {
  color: #858a92;
  font-size: 0.73rem;
  font-weight: 650;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.admin-security-row em {
  justify-self: end;
}

.security-severity-critical,
.security-severity-blocked {
  color: #8c2222 !important;
  background: #fbeaea !important;
}

.security-severity-warning,
.security-severity-stale {
  color: #8a5b13 !important;
  background: #fff4dd !important;
}

.security-severity-notice,
.security-severity-active {
  color: #246347 !important;
  background: #e9f6ee !important;
}

.security-severity-revoked,
.security-severity-expired {
  color: #626872 !important;
  background: #f0f1ef !important;
}

.portal-forensic-watermark {
  position: fixed;
  inset: 0;
  z-index: 75;
  display: grid;
  grid-template-columns: repeat(4, minmax(260px, 1fr));
  gap: clamp(110px, 14vh, 160px) 56px;
  overflow: hidden;
  padding: 82px 0;
  pointer-events: none;
  user-select: none;
}

.portal-forensic-watermark span {
  align-self: center;
  color: #111318;
  font-size: clamp(0.58rem, 0.66vw, 0.72rem);
  font-weight: 900;
  letter-spacing: 0.09em;
  line-height: 1.4;
  opacity: 0.065;
  text-align: center;
  text-transform: uppercase;
  transform: rotate(-22deg);
  white-space: nowrap;
}

body.portal-security-active #studentPortal {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

body.portal-obscured #studentPortal > :not(.portal-forensic-watermark):not(.portal-security-lock) {
  filter: blur(24px);
  opacity: 0.18;
  transition: filter 90ms linear, opacity 90ms linear;
}

.portal-security-lock {
  position: fixed;
  inset: 0;
  z-index: 220;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(17, 19, 24, 0.96);
}

.portal-security-lock[hidden] {
  display: none;
}

.portal-security-lock > div {
  width: min(560px, 100%);
  color: #fff;
  text-align: center;
}

.portal-security-lock span,
.portal-security-dialog-header span {
  color: #8b929e;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.portal-security-lock h2 {
  margin: 16px 0 12px;
  font-size: clamp(2rem, 4vw, 3.5rem);
  letter-spacing: -0.055em;
  line-height: 1;
}

.portal-security-lock p {
  margin: 0 auto 24px;
  color: #c7cbd2;
  line-height: 1.6;
}

.portal-security-lock button {
  min-height: 48px;
  border: 0;
  border-radius: 999px;
  padding: 0 24px;
  color: #111318;
  background: #fff;
  font: inherit;
  font-weight: 850;
}

.portal-security-dialog {
  width: min(760px, calc(100vw - 32px));
  max-height: min(88vh, 860px);
  overflow: auto;
  border: 0;
  border-radius: 20px;
  padding: clamp(28px, 4vw, 48px);
  color: #111318;
  background: #fff;
  box-shadow: 0 40px 120px rgba(7, 9, 13, 0.35);
}

.portal-security-dialog::backdrop {
  background: rgba(10, 12, 16, 0.76);
  backdrop-filter: blur(9px);
}

.portal-security-dialog-header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
}

.portal-security-dialog-header h2 {
  max-width: 620px;
  margin: 10px 0 0;
  font-size: clamp(2.15rem, 4vw, 3.8rem);
  letter-spacing: -0.06em;
  line-height: 0.98;
}

.portal-security-dialog > p {
  margin: 22px 0;
  color: #5d6572;
  line-height: 1.65;
}

.portal-security-points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.portal-security-points > div {
  display: grid;
  align-content: start;
  gap: 8px;
  border: 1px solid #e0e1de;
  border-radius: 12px;
  padding: 16px;
  background: #f7f7f4;
}

.portal-security-points strong {
  font-size: 0.88rem;
}

.portal-security-points span {
  color: #6a717d;
  font-size: 0.78rem;
  line-height: 1.52;
}

.portal-security-consent {
  display: flex;
  gap: 12px;
  margin: 22px 0 0;
  border: 1px solid #d5d6d3;
  border-radius: 12px;
  padding: 16px;
  color: #323741;
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.5;
}

.portal-security-consent input {
  flex: 0 0 auto;
  width: 19px;
  height: 19px;
  margin-top: 1px;
  accent-color: #111318;
}

.portal-security-consent button {
  border: 0;
  padding: 0;
  color: #1766d8;
  background: transparent;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.portal-security-dialog .portal-security-reality {
  margin: 14px 0 0;
  border-left: 3px solid #111318;
  padding: 4px 0 4px 14px;
  color: #727985;
  font-size: 0.78rem;
}

.portal-security-status {
  min-height: 24px;
  margin: 14px 0 0 !important;
  color: #4e5662 !important;
  font-size: 0.82rem;
  font-weight: 750;
}

.portal-security-dialog-actions {
  display: flex;
  gap: 10px;
  margin-top: 8px;
}

.portal-security-dialog-actions button {
  min-height: 50px;
  border: 1px solid #d5d6d3;
  border-radius: 999px;
  padding: 0 22px;
  background: #fff;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}

.portal-security-dialog-actions .primary-action {
  flex: 1;
  border-color: #111318;
  color: #fff;
  background: #111318;
}

.portal-security-dialog-actions button:disabled {
  cursor: wait;
  opacity: 0.62;
}

@media (max-width: 900px) {
  .security-scope-note {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .admin-list > .admin-security-row {
    grid-template-columns: 1fr;
  }

  .admin-security-row em {
    justify-self: start;
  }

  .portal-forensic-watermark {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
    gap: 90px 36px;
  }

  .portal-forensic-watermark span:nth-child(n + 9) {
    display: none;
  }

  .portal-security-points {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .portal-security-dialog {
    width: calc(100vw - 14px);
    max-height: calc(100vh - 14px);
    border-radius: 14px;
    padding: 24px 18px;
  }

  .portal-security-dialog-header h2 {
    font-size: 2.35rem;
  }

  .portal-security-dialog-actions {
    flex-direction: column;
  }

  .portal-security-dialog-actions button {
    width: 100%;
  }

  .portal-forensic-watermark {
    grid-template-columns: 1fr;
    gap: 76px;
    padding: 60px 0;
  }

  .portal-forensic-watermark span:nth-child(n + 5) {
    display: none;
  }
}

@media print {
  body.portal-security-active * {
    visibility: hidden !important;
  }

  body.portal-security-active::before {
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    visibility: visible !important;
    color: #111318;
    background: #fff;
    font: 800 18px/1.5 system-ui, sans-serif;
    content: "Printing protected BeeRN Student Portal content is disabled.";
  }
}

/* Keep the desktop course workspace inside the available portal viewport. */
@media (min-width: 981px) {
  body .portal-page.active:has(#portal-courses.active),
  body .portal-page.active:has(#portal-baseline.active),
  body .portal-page.active:has(#portal-dashboard.active),
  body .portal-page.active:has(#portal-account.active),
  body .portal-page.active:has(#portal-exam-result.active),
  body .portal-page.active:has(#portal-posttest.active) {
    height: 100vh;
    overflow: hidden;
  }

  body .portal-page.active:has(#portal-courses.active) .portal-main,
  body .portal-page.active:has(#portal-baseline.active) .portal-main,
  body .portal-page.active:has(#portal-dashboard.active) .portal-main,
  body .portal-page.active:has(#portal-account.active) .portal-main,
  body .portal-page.active:has(#portal-exam-result.active) .portal-main,
  body .portal-page.active:has(#portal-posttest.active) .portal-main {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    height: 100vh;
    overflow: hidden;
  }

  body #portal-posttest.active {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    min-height: 0;
    padding: 14px 28px 18px;
    overflow: hidden;
  }

  body #portal-posttest .result-tabs {
    margin-bottom: 12px;
  }

  body #portal-posttest .result-overview {
    min-height: 0;
    gap: 12px;
  }

  body #portal-posttest .result-overview > .portal-card {
    min-height: 0;
    padding: 18px 22px;
  }

  body #portal-posttest .result-summary-card > strong {
    margin: 10px 0;
    font-size: clamp(2.8rem, 5vw, 4.8rem);
  }

  body #portal-posttest .result-guidance-card h2 {
    margin: 4px 0 8px;
  }

  body #portal-posttest .result-guidance-card p {
    margin: 0 0 8px;
    line-height: 1.45;
  }

  body #portal-posttest .result-chart-card {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
    height: 100%;
    margin-top: 12px;
    padding: 18px 22px;
    overflow: hidden;
  }

  body #portal-posttest .result-chart-card h2 {
    margin: 0;
    font-size: 1.05rem;
  }

  body #portal-posttest .result-trend {
    min-height: 0;
    height: 100%;
    margin-top: 10px;
  }

  body #portal-posttest .trend-column {
    height: 100%;
    min-height: 120px;
  }

  body #portal-exam-result.active {
    display: grid;
    grid-template-rows: auto auto;
    align-content: start;
    min-height: 0;
    padding: 24px 28px;
    overflow: hidden;
  }

  body #portal-exam-result .portal-heading {
    margin-bottom: 12px;
  }

  body #portal-exam-result .portal-heading h1 {
    margin-bottom: 4px;
    font-size: clamp(2.2rem, 3.2vw, 3.35rem);
  }

  body #portal-exam-result .portal-heading p {
    margin: 0;
  }

  body #portal-courses.active {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
    padding: 14px 28px 18px;
    overflow: hidden;
  }

  body #portal-courses .enrollment-banner {
    margin-bottom: 12px;
    padding: 16px 22px;
  }

  body #portal-courses .course-browser {
    min-height: 0;
    height: 100%;
    align-items: stretch;
  }

  body #portal-courses .topic-browser {
    position: static;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
    height: 100%;
    overflow: hidden;
  }

  body #portal-courses .topic-browser-list {
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body #portal-courses .topic-workspace {
    min-height: 0;
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body #portal-baseline.active {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
    padding: 18px 28px;
    overflow: hidden;
  }

  body #portal-baseline .portal-heading {
    margin-bottom: 14px;
  }

  body #portal-baseline .portal-heading .portal-kicker {
    margin-bottom: 6px;
  }

  body #portal-baseline .portal-heading h1 {
    margin-bottom: 6px;
    font-size: clamp(2.5rem, 4vw, 4.25rem);
  }

  body #portal-baseline .portal-heading p {
    max-width: 900px;
    margin: 0;
  }

  body #portal-baseline .baseline-grid {
    min-height: 0;
    height: 100%;
    align-items: stretch;
  }

  body #portal-baseline .baseline-grid > .portal-card {
    min-height: 0;
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body #portal-baseline .baseline-hero-card h2 {
    font-size: clamp(2rem, 3.5vw, 3.7rem);
  }

  body #portal-dashboard.active {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
    padding: 12px 28px 16px;
    overflow: hidden;
  }

  body #portal-dashboard .portal-heading {
    margin-bottom: 12px;
  }

  body #portal-dashboard .portal-kicker {
    margin-bottom: 5px;
  }

  body #portal-dashboard .portal-heading h1 {
    margin-bottom: 5px;
    font-size: clamp(2.4rem, 3.6vw, 3.85rem);
  }

  body #portal-dashboard .portal-heading p {
    max-width: 1000px;
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.35;
  }

  body #portal-dashboard .portal-home-grid {
    grid-template-rows: repeat(2, minmax(0, 1fr));
    min-height: 0;
    height: 100%;
    gap: 12px;
  }

  body #portal-dashboard .portal-home-grid > .portal-card {
    min-height: 0;
    height: 100%;
    padding: 18px 20px;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body #portal-dashboard .portal-primary-card h2 {
    font-size: clamp(1.45rem, 2vw, 2.05rem);
  }

  body #portal-dashboard .portal-primary-card p {
    margin: 8px 0;
    font-size: 0.86rem;
    line-height: 1.4;
  }

  body #portal-dashboard .course-row {
    margin-top: 6px;
    padding: 8px 10px;
  }

  body #portal-dashboard .portal-list div {
    padding-top: 7px;
  }

  body #portal-dashboard .portal-metric-row div {
    padding: 10px 12px;
  }

  body #portal-account.active {
    display: block;
    min-height: 0;
    padding: 18px 28px;
    overflow: hidden;
  }

  body #portal-account .account-grid {
    grid-template-rows: minmax(0, 1fr) auto;
    min-height: 0;
    height: 100%;
    gap: 12px;
    align-items: stretch;
  }

  body #portal-account .account-grid > .portal-card {
    min-height: 0;
    padding: 18px 22px;
  }

  body #portal-account .account-grid > .portal-card:not(:last-child) {
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body #portal-account .account-profile-card > div:first-child {
    gap: 8px;
    margin-bottom: 12px;
  }

  body #portal-account .account-profile-card img {
    width: 70px;
    height: 70px;
  }

  body #portal-account .account-profile-card h2 {
    margin-bottom: 5px;
  }

  body #portal-account .account-profile-card p {
    margin: 0;
  }

  body #portal-account .account-profile-card dl {
    gap: 7px;
  }

  body #portal-account .account-profile-card dl div {
    padding-top: 9px;
  }

  body #portal-account .account-grid > .portal-card:last-child h2,
  body #portal-account .account-grid > .portal-card:last-child p {
    margin-top: 0;
    margin-bottom: 8px;
  }
}

body .topic-resource-card button.topic-assessment-action {
  min-height: 36px;
  border: 1px solid #d9dad6;
  border-radius: 999px;
  padding: 7px 13px;
  color: #111318;
  background: #fff;
  font-size: 0.78rem;
  font-weight: 800;
  cursor: pointer;
}

body .topic-resource-card button.topic-assessment-action:not(:disabled):hover {
  border-color: #111318;
  color: #fff;
  background: #111318;
}

body .topic-resource-card button.topic-assessment-action:disabled {
  border-color: transparent;
  color: #989ca3;
  background: #f0f0ee;
  cursor: not-allowed;
  opacity: 0.72;
}

/* Compact desktop login: keep the complete sign-in workspace in one viewport. */
@media (min-width: 901px) {
  body .login-page.active {
    grid-template-rows: 76px minmax(0, 1fr);
    width: 100%;
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
  }

  body .login-header {
    min-height: 76px;
    padding: 7px clamp(24px, 4vw, 56px);
  }

  body .login-header .brand-mark {
    width: 58px;
    height: 58px;
    border-radius: 8px;
  }

  body .login-header .brand strong {
    font-size: 1.72rem;
  }

  body .login-header .brand small {
    font-size: 0.54rem;
  }

  body .login-shell {
    grid-template-columns: minmax(420px, 590px) minmax(320px, 430px);
    align-items: center;
    gap: clamp(18px, 2vw, 28px);
    width: min(1100px, 100%);
    max-width: 1100px;
    height: 100%;
    min-height: 0;
    margin: 0 auto;
    padding: 14px 28px;
  }

  body .login-panel {
    padding: 20px 24px 18px;
  }

  body .login-panel .eyebrow {
    margin-bottom: 8px;
    padding: 5px 9px;
    font-size: 0.68rem;
  }

  body .login-panel h1 {
    margin: 0 0 8px;
    font-size: clamp(2.15rem, 3.4vw, 3rem);
    line-height: 1.02;
  }

  body .login-panel > p:not(.eyebrow) {
    margin: 0;
    font-size: 0.94rem;
    line-height: 1.42;
  }

  body .login-form {
    gap: 9px;
    margin-top: 14px;
  }

  body .login-form label {
    gap: 5px;
    font-size: 0.88rem;
  }

  body .login-form input {
    min-height: 44px;
    padding: 10px 12px;
  }

  body .login-form .primary-action {
    min-height: 46px;
    padding-block: 10px;
  }

  body .login-form small {
    font-size: 0.74rem;
    line-height: 1.35;
  }

  body .login-status {
    min-height: 0;
    font-size: 0.78rem !important;
  }

  body .admin-demo-link {
    min-height: 40px;
    margin-top: 8px;
    padding: 8px 14px;
  }

  body .login-benefits {
    padding: 22px 24px;
  }

  body .login-benefits h2 {
    margin: 0;
    font-size: 1.25rem;
  }

  body .login-benefits ul {
    gap: 10px;
    margin-top: 14px;
  }

  body .login-benefits li {
    font-size: 0.9rem;
    line-height: 1.35;
  }
}

@media (min-width: 901px) and (max-height: 680px) {
  body .login-page.active {
    grid-template-rows: 66px minmax(0, 1fr);
  }

  body .login-header {
    min-height: 66px;
    padding-block: 4px;
  }

  body .login-header .brand-mark {
    width: 50px;
    height: 50px;
  }

  body .login-shell {
    padding-block: 8px;
  }

  body .login-panel {
    padding-block: 15px 13px;
  }

  body .login-panel h1 {
    font-size: 2.1rem;
  }

  body .login-panel > p:not(.eyebrow) {
    font-size: 0.86rem;
  }

  body .login-form {
    gap: 6px;
    margin-top: 10px;
  }

  body .login-form input {
    min-height: 40px;
    padding-block: 8px;
  }

  body .login-form .primary-action {
    min-height: 42px;
  }

  body .login-benefits {
    padding: 18px 22px;
  }
}

/* NCLEX-RN item presentation: BeeRN styling with exam-faithful interactions. */
body .assessment-question-progress.is-nclex {
  display: flex;
  align-items: center;
  border-top: 6px solid #168b94;
  padding-top: 14px;
}

body .assessment-question-progress.is-nclex > span {
  display: flex;
  min-width: 0;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

body .nclex-progress-brand {
  color: #168b94;
  font-size: .72rem;
  letter-spacing: .14em;
}

body .assessment-question-progress.is-nclex em {
  border: 1px solid #b7c8ca;
  border-radius: 999px;
  padding: 4px 9px;
  color: #42555b;
  background: #f2f7f7;
  font-size: .7rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: .02em;
}

body .nclex-item-shell {
  display: grid;
  grid-template-columns: minmax(260px, 0.82fr) minmax(0, 1.35fr);
  gap: 22px;
  align-items: stretch;
}

body .nclex-item-shell.is-case-study {
  grid-template-columns: minmax(320px, 0.96fr) minmax(0, 1.04fr);
  gap: 0;
  align-items: start;
  border: 1px solid #aeb9bd;
  background: #fff;
}

body .nclex-item-shell.is-case-study > .nclex-clinical-record,
body .nclex-item-shell.is-case-study > .exam-question.is-nclex-item {
  border: 0;
}

body .nclex-item-shell.is-case-study > .nclex-clinical-record {
  border-right: 1px solid #aeb9bd;
}

body .nclex-case-record-header {
  display: grid;
  gap: 4px;
  min-height: 92px;
  align-content: center;
  padding: 16px 20px;
  background: #263338;
  color: #fff;
}

body .nclex-case-record-header span,
body .nclex-case-question-header span {
  color: #168b94;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

body .nclex-case-record-header strong {
  font-size: 1rem;
  line-height: 1.3;
}

body .nclex-case-record-header small {
  color: #d6e0e2;
  font-size: .78rem;
  font-weight: 700;
}

body .nclex-case-question-header {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: -28px -28px 22px;
  padding: 12px 18px;
  border-bottom: 1px solid #cfd6d8;
  background: #f2f7f7;
}

body .nclex-case-question-header strong {
  color: #42555b;
  font-size: .78rem;
}

body .nclex-item-shell > .exam-question:only-child {
  grid-column: 1 / -1;
}

body .nclex-clinical-record {
  min-width: 0;
  border: 1px solid #cfd6d8;
  background: #f7f9f9;
}

body .nclex-record-tabs {
  display: flex;
  overflow-x: auto;
  border-bottom: 1px solid #cfd6d8;
  background: #e8eff0;
}

body .nclex-record-tabs button {
  flex: 0 0 auto;
  min-height: 44px;
  border: 0;
  border-right: 1px solid #cfd6d8;
  border-radius: 0;
  background: transparent;
  color: #263338;
}

body .nclex-record-tabs button.is-active {
  background: #fff;
  box-shadow: inset 0 -4px #168b94;
}

body .nclex-record-panel {
  display: none;
  max-height: 520px;
  overflow: auto;
  padding: 22px;
  color: #20282c;
  font-size: 0.96rem;
  line-height: 1.65;
}

body .nclex-record-panel.is-active {
  display: block;
}

body .nclex-record-panel p:first-child,
body .nclex-record-list:first-child,
body .nclex-record-details:first-child {
  margin-top: 0;
}

body .nclex-record-table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid #cfd6d8;
  background: #fff;
}

body .nclex-record-table {
  width: 100%;
  min-width: 430px;
  border-collapse: collapse;
  font-size: .9rem;
}

body .nclex-record-table th,
body .nclex-record-table td {
  padding: 9px 11px;
  border: 1px solid #dce2e4;
  text-align: left;
  vertical-align: top;
}

body .nclex-record-table th {
  background: #e8eff0;
  color: #24343a;
  font-weight: 800;
}

body .nclex-record-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 20px;
}

body .nclex-record-details {
  display: grid;
  gap: 0;
  margin: 0;
  border: 1px solid #cfd6d8;
  background: #fff;
}

body .nclex-record-details > div {
  display: grid;
  grid-template-columns: minmax(120px, .7fr) minmax(0, 1.3fr);
  border-bottom: 1px solid #dce2e4;
}

body .nclex-record-details > div:last-child {
  border-bottom: 0;
}

body .nclex-record-details dt,
body .nclex-record-details dd {
  margin: 0;
  padding: 9px 11px;
}

body .nclex-record-details dt {
  background: #e8eff0;
  font-weight: 800;
}

body .exam-question.is-nclex-item,
body .exam-question-single.is-nclex-item {
  min-width: 0;
  margin: 0;
  padding: 28px;
  border: 1px solid #cfd6d8;
  border-radius: 0;
  background: #fff;
}

body .exam-question.is-nclex-item legend {
  width: 100%;
  padding: 0 0 22px;
  color: #10191d;
  font-size: clamp(1.05rem, 1.6vw, 1.3rem);
  font-weight: 500;
  line-height: 1.5;
}

body .exam-question.is-nclex-item legend .nclex-inline-select {
  display: inline-block;
  width: auto;
  min-width: 150px;
  min-height: 38px;
  margin: 0 5px;
  vertical-align: middle;
  border: 1px solid #168b94;
  border-radius: 4px;
  color: #10191d;
  background: #f2f8f8;
  font: inherit;
  font-size: .86em;
}

body .nclex-cloze-helper {
  margin: 14px 0 0;
  color: #5d6c72;
  font-size: .9rem;
  font-weight: 700;
}

body .nclex-item-instruction {
  position: relative;
  margin: 0 0 14px;
  padding-left: 18px;
  color: #42555b;
  font-size: 0.92rem;
  font-weight: 700;
}

body .nclex-item-instruction::before {
  content: "›";
  position: absolute;
  left: 0;
  color: #168b94;
}

body .exam-question.is-nclex-item .nclex-options {
  display: grid;
  gap: 10px;
}

body .exam-question.is-nclex-item .nclex-options label {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 12px;
  align-items: start;
  min-height: 52px;
  padding: 13px 16px;
  border: 1px solid #d8dddf;
  border-radius: 0;
  background: #fff;
  cursor: pointer;
}

body .exam-question.is-nclex-item .nclex-options input {
  position: static;
  width: 18px;
  height: 18px;
  margin: 4px 0 0;
  opacity: 1;
  accent-color: #168b94;
}

body .exam-question.is-nclex-item .nclex-options label:has(input:checked) {
  border-color: #168b94;
  background: #eef8f8;
}

body .exam-question.is-nclex-item .nclex-options label.is-correct-answer {
  border-color: #18864b;
  background: #eff9f2;
}

body .exam-question.is-nclex-item .nclex-options label.is-incorrect-answer {
  border-color: #c66c1c;
  background: #fff6eb;
}

body .nclex-matrix-wrap {
  max-width: 100%;
  overflow-x: auto;
}

body .nclex-matrix {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

body .nclex-matrix caption {
  padding: 0 0 12px;
  color: #42555b;
  font-size: .9rem;
  font-weight: 700;
  text-align: left;
}

body .nclex-matrix th,
body .nclex-matrix td {
  padding: 12px;
  border: 1px solid #cfd6d8;
  text-align: center;
}

body .nclex-matrix thead th {
  background: #e8eff0;
}

body .nclex-matrix tbody th {
  width: 45%;
  min-width: 230px;
  text-align: left;
  font-weight: 500;
}

body .nclex-matrix td.is-correct-answer {
  background: #eff9f2;
}

body .nclex-matrix td.is-incorrect-answer {
  background: #fff6eb;
}

body .nclex-matrix-cell {
  position: relative;
  display: grid;
  min-height: 34px;
  place-items: center;
  cursor: pointer;
}

body .nclex-matrix-cell input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

body .nclex-matrix-cell span {
  display: block;
  width: 22px;
  height: 22px;
  border: 2px solid #7e8b90;
  border-radius: 50%;
  background: #fff;
}

body .nclex-matrix-cell input[type="checkbox"] + span {
  border-radius: 3px;
}

body .nclex-matrix-cell input:checked + span {
  border-color: #168b94;
  background: radial-gradient(circle, #168b94 0 45%, #fff 48% 62%, #168b94 65% 100%);
}

body .nclex-matrix-cell input[type="checkbox"]:checked + span {
  background: #168b94;
  box-shadow: inset 0 0 0 4px #fff;
}

body .nclex-matrix-cell input:focus-visible + span {
  outline: 3px solid rgba(22, 139, 148, .26);
  outline-offset: 3px;
}

body .nclex-matrix-guidance,
body .nclex-highlight-guidance,
body .nclex-order-guidance,
body .nclex-selection-guidance {
  margin: 10px 0 0;
  color: #5d6c72;
  font-size: .86rem;
  font-weight: 650;
}

body .nclex-highlight-guidance.is-case-guidance {
  margin: 0;
  padding: 14px 16px;
  border-left: 4px solid #168b94;
  background: #f2f7f7;
}

body .nclex-cloze {
  display: grid;
  gap: 14px;
}

body .nclex-cloze label {
  display: grid;
  gap: 7px;
  color: #42555b;
  font-weight: 700;
}

body .nclex-cloze select {
  min-height: 46px;
  border: 1px solid #aeb9bd;
  background: #fff;
}

body .nclex-highlight-record {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  padding: 20px;
  border: 1px solid #cfd6d8;
  background: #fff;
  line-height: 1.65;
}

body .nclex-highlight-record button {
  display: block;
  width: 100%;
  min-height: 0;
  padding: 10px 12px;
  border: 0;
  border-radius: 2px;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
}

body .nclex-highlight-record button:hover {
  background: #e8eff0;
}

body .nclex-highlight-record button.is-selected {
  background: #ffe37a;
  box-shadow: inset 0 -2px #b88b00;
}

body .nclex-highlight-record button.is-correct-answer {
  background: #c9f0d5;
  box-shadow: inset 0 -2px #18864b;
}

body .nclex-highlight-record button.is-incorrect-answer {
  background: #ffe0bb;
  box-shadow: inset 0 -2px #c66c1c;
}

body .nclex-highlight-static {
  white-space: pre-wrap;
}

body .nclex-order-list {
  display: grid;
  gap: 10px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

body .nclex-order-list li {
  display: grid;
  grid-template-columns: 36px 24px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 60px;
  padding: 10px 12px;
  border: 1px solid #cfd6d8;
  background: #fff;
  cursor: grab;
}

body .nclex-order-list li:active {
  cursor: grabbing;
}

body .nclex-order-list li.is-dragging {
  opacity: .45;
}

body .nclex-order-list li.is-correct-answer {
  border-color: #18864b;
  background: #eff9f2;
}

body .nclex-order-list li.is-incorrect-answer {
  border-color: #c66c1c;
  background: #fff6eb;
}

body .nclex-order-rank {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #168b94;
  color: #fff;
  font-weight: 800;
}

body .nclex-order-grip {
  color: #7b898e;
  font-size: 1.15rem;
  letter-spacing: -5px;
}

body .nclex-order-text {
  min-width: 0;
  color: #20282c;
  line-height: 1.45;
}

body .nclex-order-controls {
  display: flex;
  gap: 6px;
}

body .nclex-order-controls button {
  display: grid;
  width: 36px;
  min-height: 36px;
  padding: 0;
  place-items: center;
  border: 1px solid #aeb9bd;
  border-radius: 3px;
  background: #fff;
  color: #20282c;
}

body .nclex-bow-tie {
  display: grid;
  gap: 22px;
  margin-top: 8px;
}

body .nclex-bow-targets {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, .8fr) minmax(0, 1fr);
  gap: 34px;
  align-items: center;
  padding: 26px 0;
}

body .nclex-bow-lines {
  position: absolute;
  inset: 20% 20%;
  z-index: 0;
  background:
    linear-gradient(26deg, transparent 48.8%, #168b94 49%, #168b94 51%, transparent 51.2%) left center / 50% 50% no-repeat,
    linear-gradient(-26deg, transparent 48.8%, #168b94 49%, #168b94 51%, transparent 51.2%) right center / 50% 50% no-repeat,
    linear-gradient(-26deg, transparent 48.8%, #168b94 49%, #168b94 51%, transparent 51.2%) left bottom / 50% 50% no-repeat,
    linear-gradient(26deg, transparent 48.8%, #168b94 49%, #168b94 51%, transparent 51.2%) right bottom / 50% 50% no-repeat;
  pointer-events: none;
}

body .nclex-bow-target {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 16px;
  border: 1px solid #cfd6d8;
  background: #f7f9f9;
}

body .nclex-bow-target-label {
  margin: 0 0 4px;
  font-size: 0.94rem;
  font-weight: 800;
}

body .nclex-bow-target.is-condition {
  border: 3px solid #168b94;
  background: #fff;
}

body .nclex-bow-slot {
  display: grid;
  min-height: 56px;
  padding: 9px 11px;
  place-items: center;
  border: 2px dashed #aeb9bd;
  border-radius: 4px;
  background: #fff;
  color: #42555b;
  text-align: center;
}

body .nclex-bow-slot.is-filled {
  border-style: solid;
  border-color: #168b94;
  color: #162328;
  background: #eef8f8;
}

body .nclex-bow-slot.is-correct-answer {
  border-color: #18864b;
  background: #eff9f2;
}

body .nclex-bow-slot.is-incorrect-answer {
  border-color: #c66c1c;
  background: #fff6eb;
}

body .nclex-bow-slot small {
  margin-top: 3px;
  color: #66767c;
  font-size: .7rem;
}

body .nclex-bow-banks {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

body .nclex-bow-bank {
  min-width: 0;
  padding: 14px;
  border: 1px solid #cfd6d8;
  background: #f7f9f9;
}

body .nclex-bow-bank h4 {
  margin: 0 0 10px;
  color: #263338;
  font-size: .86rem;
}

body .nclex-bow-bank > div {
  display: grid;
  gap: 8px;
}

body .nclex-bow-bank button {
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid #aeb9bd;
  border-radius: 3px;
  background: #fff;
  color: #20282c;
  text-align: left;
}

body .nclex-bow-bank button.is-used {
  opacity: .42;
}

@media (max-width: 850px) {
  body .nclex-item-shell,
  body .nclex-bow-targets,
  body .nclex-bow-banks {
    grid-template-columns: 1fr;
  }

  body .nclex-bow-lines {
    display: none;
  }

  body .nclex-record-panel {
    max-height: 340px;
  }

  body .nclex-item-shell.is-case-study > .nclex-clinical-record {
    border-right: 0;
    border-bottom: 1px solid #aeb9bd;
  }

  body .exam-question.is-nclex-item {
    padding: 20px;
  }

  body .nclex-order-list li {
    grid-template-columns: 34px 20px minmax(0, 1fr);
  }

  body .nclex-order-controls {
    grid-column: 1 / -1;
    justify-self: end;
  }
}
/* Secure public forms and administrator enquiries workspace */
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; }
.form-submission-status { min-height: 1.5em; margin: 0; color: #dff6e9; font-size: .82rem; font-weight: 750; line-height: 1.5; }
.form-submission-status:empty { display: none; }
.form-submission-status[data-tone="error"] { color: #ffd5d5; }
.expanded-lead-form .form-submission-status { color: #236441; }
.expanded-lead-form .form-submission-status[data-tone="error"] { color: #a53e3e; }
.admin-enquiries-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.admin-enquiries-summary article { display: grid; gap: 6px; padding: 20px 22px; border: 1px solid #e2e2de; border-radius: 9px; background: #fff; }
.admin-enquiries-summary span { color: #747984; font-size: .8rem; font-weight: 750; }
.admin-enquiries-summary strong { color: #101217; font-size: 1.8rem; }
.admin-enquiries-grid { align-items: start; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-enquiry-list { display: grid; gap: 14px; }
.admin-enquiry-item { border: 1px solid #e4e5e1; border-radius: 9px; padding: 17px; background: #fafaf8; }
.admin-enquiry-item header, .admin-enquiry-item footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.admin-enquiry-item header > div { display: grid; gap: 4px; min-width: 0; }
.admin-enquiry-item header strong { color: #171a20; }
.admin-enquiry-item header span, .admin-enquiry-item time { color: #727780; font-size: .78rem; overflow-wrap: anywhere; }
.admin-enquiry-item header em { border-radius: 999px; padding: 5px 9px; color: #2f6d4d; background: #edf7f1; font-size: .7rem; font-style: normal; font-weight: 800; text-transform: capitalize; }
.admin-enquiry-item dl { display: grid; gap: 8px; margin: 16px 0; }
.admin-enquiry-item dl > div { display: grid; grid-template-columns: minmax(110px, .7fr) minmax(0, 1.3fr); gap: 12px; padding-top: 8px; border-top: 1px solid #e7e7e3; }
.admin-enquiry-item dt { color: #777b83; font-size: .72rem; font-weight: 750; }
.admin-enquiry-item dd { margin: 0; color: #292d34; font-size: .8rem; line-height: 1.45; overflow-wrap: anywhere; }
.admin-enquiry-actions { display: flex; gap: 7px; }
.admin-enquiry-actions a { border: 1px solid #d8d9d6; border-radius: 999px; padding: 6px 10px; color: #17191d; background: #fff; font-size: .72rem; font-weight: 800; text-decoration: none; }
.admin-enquiry-actions a:hover { border-color: #17191d; color: #fff; background: #17191d; }
.admin-empty-state { margin: 0; padding: 20px; border: 1px dashed #d8d9d6; border-radius: 8px; color: #747984; text-align: center; }
.admin-empty-state.error { color: #9b3f3f; border-color: #e4bcbc; background: #fff7f7; }
@media (max-width: 900px) { .admin-enquiries-grid { grid-template-columns: 1fr; } }
@media (max-width: 680px) {
  .admin-enquiries-summary { grid-template-columns: 1fr; }
  .admin-enquiry-item header, .admin-enquiry-item footer { flex-direction: column; }
  .admin-enquiry-item dl > div { grid-template-columns: 1fr; gap: 4px; }
}

/* Mobile-only layout refinement: founder flow, swipeable content rails, and compact FAQs. */
.mobile-faq-toggle {
  display: none;
}

@media (max-width: 720px) {
  body .landing-page.active,
  body .founder-page.active {
    overflow-x: clip;
  }

  body .founder-hero {
    display: flex !important;
    width: 100%;
    min-width: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 28px;
    overflow: hidden;
    padding: 38px 18px 48px;
  }

  body .founder-hero > div,
  body .founder-hero .founder-card {
    position: static;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
    transform: none;
  }

  body .founder-hero h1,
  body .founder-hero .subhead,
  body .founder-hero .founder-opening {
    width: 100%;
    max-width: none;
    overflow-wrap: anywhere;
  }

  body .founder-hero h1 {
    font-size: clamp(2.15rem, 10vw, 3rem);
    line-height: 1.04;
  }

  body .founder-hero .founder-credentials {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    gap: 9px;
  }

  body .founder-hero .founder-credentials span {
    width: auto;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  body .founder-hero .hero-actions {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  body .founder-hero .hero-actions > * {
    width: 100%;
    min-width: 0;
  }

  body .founder-hero .founder-card {
    align-self: stretch;
    padding: 10px 10px 22px;
  }

  body .founder-hero .founder-card .founder-photo {
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
  }

  body .hero-image-wrap img {
    object-position: center right;
    transform: scaleX(-1);
    transform-origin: center;
  }

  body :is(.pathway-choice-grid, .feature-grid, .timeline.seven-step, .focus-split-grid, .focus-split-grid.three-up, .program-grid) {
    display: flex !important;
    width: auto;
    max-width: none;
    grid-template-columns: none;
    align-items: stretch;
    gap: 14px;
    margin-inline: -18px;
    padding: 4px 18px 20px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scroll-behavior: smooth;
    scroll-padding-inline: 18px;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body :is(.pathway-choice-grid, .feature-grid, .timeline.seven-step, .focus-split-grid, .focus-split-grid.three-up, .program-grid)::-webkit-scrollbar {
    display: none;
  }

  body :is(.pathway-choice-card, .feature-grid > article, .timeline.seven-step > li, .focus-split-grid > article, .program-card) {
    box-sizing: border-box;
    width: auto;
    min-width: 0;
    max-width: none;
    flex: 0 0 calc(100vw - 56px);
    grid-column: auto !important;
    scroll-snap-align: center;
    scroll-snap-stop: always;
  }

  body .pathway-choice-card {
    min-height: 420px;
  }

  body .feature-grid > article {
    min-height: 390px;
  }

  body .timeline.seven-step {
    list-style: none;
  }

  body .timeline.seven-step::before {
    display: none;
  }

  body .timeline.seven-step > li {
    display: grid;
    min-height: 350px;
    align-content: center;
    justify-items: center;
    border: 1px solid rgba(11, 13, 18, 0.08);
    border-radius: 10px;
    padding: 28px 24px;
    background: #fff;
    box-shadow: 0 22px 55px rgba(15, 23, 42, 0.05);
  }

  body .timeline.seven-step > li small {
    max-width: 280px;
  }

  body .focus-split-grid > article {
    min-height: 430px;
  }

  body .program-card {
    height: 720px;
    min-height: 720px;
  }

  body .program-card-inner,
  body .program-front,
  body .program-back {
    min-width: 0;
  }

  body .faq-card:not(.mobile-faq-expanded) details:nth-of-type(n + 2) {
    display: none;
  }

  body .mobile-faq-toggle {
    display: inline-flex;
    width: 100%;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    margin-top: 18px;
    border: 1px solid #111318;
    border-radius: 999px;
    padding: 12px 20px;
    color: #fff;
    background: #111318;
    font: inherit;
    font-weight: 850;
    cursor: pointer;
  }
}

@media (prefers-reduced-motion: reduce) {
  body :is(.pathway-choice-grid, .feature-grid, .timeline.seven-step, .focus-split-grid, .focus-split-grid.three-up, .program-grid) {
    scroll-behavior: auto;
  }
}

/* Mobile-only typography pass. Desktop typography remains unchanged. */
@media (max-width: 720px) {
  html {
    font-size: 15px;
  }

  body {
    font-size: 1rem;
    line-height: 1.55;
  }

  body :is(.hero-copy h1, .nclex-hero h1, .pathway-review-hero h1, .login-card h1) {
    font-size: clamp(2.35rem, 10.5vw, 3rem);
    line-height: 1.04;
    letter-spacing: -0.035em;
  }

  body :is(.section h2, .nclex-page h2, .founder-story-heading) {
    font-size: clamp(1.85rem, 8.2vw, 2.35rem);
    line-height: 1.1;
    letter-spacing: -0.025em;
  }

  body :is(.section h3, .nclex-page h3, .feature-grid h3, .program-card h3) {
    font-size: clamp(1.25rem, 5.8vw, 1.55rem);
    line-height: 1.2;
  }

  body :is(.hero-copy p, .section > p, .section-lead, .subhead, .founder-opening, .founder-story-lead, .nclex-hero p, .pathway-review-hero p, .feature-grid p, .timeline small, .program-card p, .program-card li, .track-card p, .track-card li) {
    font-size: 1rem;
    line-height: 1.6;
  }

  body :is(.primary-action, .secondary-action, .hero-actions a, .hero-actions button, .program-card button, .program-card a) {
    font-size: 0.95rem;
    line-height: 1.25;
  }

  body .section-kicker,
  body .eyebrow {
    font-size: 0.78rem;
    line-height: 1.35;
    letter-spacing: 0.18em;
  }

  body .founder-hero h1 {
    max-width: 100%;
    font-size: clamp(1.45rem, 6.15vw, 1.72rem);
    line-height: 1.1;
    letter-spacing: -0.045em;
    overflow-wrap: normal;
    word-break: normal;
    white-space: nowrap !important;
    text-wrap: nowrap;
  }

  body .founder-credentials span {
    font-size: 0.86rem;
    line-height: 1.25;
  }

  body .founder-card strong {
    font-size: 1.25rem;
    line-height: 1.25;
    text-align: center;
  }

  body .founder-card span {
    font-size: 0.95rem;
  }
}

/* Mobile-only Student Portal: stacked content and a dismissing navigation drawer. */
@media (max-width: 720px) {
  body #studentPortal.portal-page.active {
    display: block !important;
    width: 100%;
    min-width: 0;
    overflow-x: clip;
  }

  body #studentPortal .portal-main,
  body #studentPortal .portal-content,
  body #studentPortal .portal-heading,
  body #studentPortal .portal-home-grid,
  body #studentPortal .portal-card {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body #studentPortal .portal-home-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px;
  }

  body #studentPortal .portal-home-grid > .portal-card,
  body #studentPortal .portal-home-grid > .portal-primary-card,
  body #studentPortal .portal-home-grid > .portal-week-card,
  body #studentPortal .portal-announcement-card {
    grid-column: 1 !important;
    margin: 0;
    overflow: hidden;
  }

  body #studentPortal .portal-metric-row,
  body #studentPortal .account-grid,
  body #studentPortal .guidance-grid,
  body #studentPortal .mentor-support-grid,
  body #studentPortal .compact-modules,
  body #studentPortal .detail-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body #studentPortal .portal-topbar {
    position: sticky;
    top: 0;
    z-index: 80;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    padding: 12px 16px;
  }

  body #studentPortal .menu-button {
    display: inline-flex !important;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    align-self: center;
    border: 1px solid #d8d9d6;
    border-radius: 999px;
    padding: 10px 16px;
    color: #111318;
    background: #fff;
    font-weight: 850;
  }

  body #studentPortal .portal-search {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  body #studentPortal .portal-user {
    grid-column: 2;
    grid-row: 1;
    width: auto;
    min-width: 0;
    justify-self: end;
  }

  body #studentPortal .portal-user small {
    overflow-wrap: anywhere;
  }

  body #studentPortal .portal-sidebar {
    position: fixed !important;
    z-index: 120;
    inset: 0 auto 0 0;
    display: flex !important;
    width: min(88vw, 350px) !important;
    height: 100dvh !important;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
    border-right: 1px solid #d8d9d6;
    background: #fff;
    box-shadow: 24px 0 60px rgba(15, 23, 42, 0.2);
    transform: translateX(-105%);
    visibility: hidden;
    transition: transform 220ms ease, visibility 0s linear 220ms;
  }

  body #studentPortal.portal-menu-open .portal-sidebar {
    transform: translateX(0);
    visibility: visible;
    transition: transform 220ms ease;
  }

  body #studentPortal .portal-sidebar .portal-brand {
    flex: 0 0 auto;
  }

  body #studentPortal .portal-nav {
    display: grid !important;
    flex: 1 1 auto;
    grid-template-columns: 1fr !important;
    align-content: start;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body #studentPortal .logout-button {
    flex: 0 0 auto;
    margin: 8px 16px 18px;
  }

  body.portal-mobile-menu-active {
    overflow: hidden;
  }
}

@media (max-width: 720px) and (prefers-reduced-motion: reduce) {
  body #studentPortal .portal-sidebar {
    transition: none;
  }
}

/* Keep the mobile document fixed to the viewport. Horizontal movement is
   available only inside the intentional swipe-card rails. */
@media (max-width: 720px) {
  html,
  body {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    overflow-x: hidden !important;
    overscroll-behavior-x: none;
  }

  body > .page,
  body > .page.active,
  body :is(#landingPage, #founderPage, .landing-page, .founder-page),
  body :is(main, section, header, footer) {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body > .page.active,
  body :is(#landingPage, #founderPage) {
    overflow-x: clip;
  }

  body :is(.hero, .hero-copy, .founder-preview-grid, .founder-preview-copy, .founder-preview-card) {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body :is(.hero-copy, .founder-preview-copy) > *,
  body :is(.founder-preview-grid, .founder-story-grid) > * {
    min-width: 0;
    max-width: 100%;
  }

  body img,
  body video,
  body iframe {
    max-width: 100%;
  }

  body :is(.pathway-choice-grid, .feature-grid, .timeline.seven-step, .focus-split-grid, .focus-split-grid.three-up, .program-grid) {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    padding-inline: 0;
    scroll-padding-inline: 0;
  }
}
